Hyperledger Fabric 链码(0) 说明
1. 概念
基于區(qū)塊鏈的應(yīng)用,一般都由部署在區(qū)塊鏈上的智能合約以及調(diào)用這些智能合約的業(yè)務(wù)程序組成,智能合約又稱為鏈碼(Chaincode),是一段運(yùn)行在容器中的程序。
- Chaincode 是客戶端程序和區(qū)塊鏈網(wǎng)絡(luò)之間溝通的橋梁,通過Chaincode客戶端程序可以發(fā)起交易,查詢交易。
- Chaincode 在 Fabric 節(jié)點(diǎn)上的 Docker 容器中運(yùn)行
- 通過 gRPC 協(xié)議來與各個(gè)節(jié)點(diǎn)通信。
- 用來修改記錄在鏈上的狀態(tài),狀態(tài)一般記錄著與業(yè)務(wù)相關(guān)的數(shù)據(jù),通過調(diào)用智能合約,應(yīng)用程序可以發(fā)起和記錄交易,從而實(shí)現(xiàn)復(fù)雜的業(yè)務(wù)邏輯。
1.1 Chaincode包含兩部分
- Chaincode 代碼
業(yè)務(wù)的承載體,負(fù)責(zé)具體的業(yè)務(wù)邏輯 - Chaincode 管理命令
負(fù)責(zé) Chaincode的部署,安裝,維護(hù)等工作
2. 鏈碼的多個(gè)階段
Chaincode管理命令可以對Chaincode進(jìn)行安裝、實(shí)例化、調(diào)用、打包和簽名操作,對應(yīng)命令為install、instantiate、invoke、package、upgrade。
Chaincode的運(yùn)行分為:install,instantiate和invoke三步
- transaction用于停止與開啟chaincode,而不用去卸載chaincode。
- chaincode在成功install以及instantiate之后,chaincode則是運(yùn)行狀態(tài),能夠通過invoke transaction來處理交易。
- 后續(xù)也能夠?qū)haincode進(jìn)行升級
3. 業(yè)務(wù)流程
- 用戶
關(guān)注與業(yè)務(wù)邏輯相關(guān)的應(yīng)用程序。 - CA 機(jī)構(gòu)
根據(jù)標(biāo)準(zhǔn) PKI 規(guī)范生成權(quán)限證書的機(jī)構(gòu),生成賬號和頒發(fā)證書。 - 智能合約
4. 框架流程
step1:. 客戶端(App)使用 SDK 和區(qū)塊鏈網(wǎng)絡(luò)進(jìn)行交互,客戶端首先從 CA 機(jī)構(gòu)獲取證書加入通道。
step2. 將交易提案提交給 Endorser 節(jié)點(diǎn)進(jìn)行背書;背書節(jié)點(diǎn)完成背書操作后回復(fù)App
step3. App獲得一定量的 Endorser 支持后,生成交易請求,發(fā)送給 Orderer
step3. Orderer 節(jié)點(diǎn)進(jìn)行排序操作,構(gòu)造區(qū)塊之后將交易區(qū)塊發(fā)送至 Committer 節(jié)點(diǎn)
step4. commit監(jiān)聽網(wǎng)絡(luò)事件,執(zhí)行合法交易并將交易信息記錄到賬本中。
- Committer 節(jié)點(diǎn)
在網(wǎng)絡(luò)中維護(hù)區(qū)塊鏈網(wǎng)絡(luò)和賬本數(shù)據(jù); - Orderer 節(jié)點(diǎn)
用于對交易請求排序,并將排序后的交易組合生成區(qū)塊結(jié)構(gòu);
總結(jié)
以上是生活随笔為你收集整理的Hyperledger Fabric 链码(0) 说明的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Html 教程 (9)列表
- 下一篇: 区块链BaaS云服务(19)趣链Hype