溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Hyperledger Fabric中鏈碼的示例分析

發(fā)布時間:2021-12-06 14:31:26 來源:億速云 閱讀:150 作者:小新 欄目:互聯(lián)網(wǎng)科技

這篇文章主要為大家展示了“Hyperledger Fabric中鏈碼的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Hyperledger Fabric中鏈碼的示例分析”這篇文章吧。

1

鏈碼概念

網(wǎng)絡(luò)運行環(huán)境我們已經(jīng)啟動完成,現(xiàn)在我們從開發(fā)者的角度來認(rèn)識一下完成交易所必須的智能合約(在 Hyperledger Fabric 中被稱之為 Chaincode,也就是鏈上代碼)的相關(guān)知識,以便于理解賬本中的數(shù)據(jù)到底是通過什么方式進(jìn)行操作。

Chaincode:鏈上代碼,簡稱鏈碼,一般是指由開發(fā)人員使用Go語言(也支持Java等語言)編寫的應(yīng)用程序代碼,提供分布式賬本的狀態(tài)處理邏輯。鏈碼被部署在Fabric的網(wǎng)絡(luò)節(jié)點中,能夠獨立運行在具有安全特性的受保護(hù)的 Docker 容器中,以 gRPC 協(xié)議與相應(yīng)的 peer 節(jié)點進(jìn)行通信,以操作(初始化或管理)分布式賬本中的數(shù)據(jù)??梢愿鶕?jù)不同的需求開發(fā)出不同的復(fù)雜的應(yīng)用。

鏈碼分類

在 Hyperledger Fabric 中,鏈碼一般分為:

  • 系統(tǒng)鏈碼

  • 用戶鏈碼

2

Fabric提供了什么-系統(tǒng)鏈碼

負(fù)責(zé) Fabric 節(jié)點自身的處理邏輯, 包括系統(tǒng)配置、背書、校驗等工作

系統(tǒng)鏈碼僅支持 Go 語言, 在 Peer 節(jié)點啟動時會自動完成注冊和部署

系統(tǒng)鏈碼共有五種類型:

配置系統(tǒng)鏈碼(CSCC)

CSCC:Configuration System Chaincode,負(fù)責(zé)處理 Peer 端的 Channel 配置。

生命周期系統(tǒng)鏈碼(LSCC)

LSCC:Lifecycle System Chaincode,負(fù)責(zé)對用戶鏈碼的生命周期進(jìn)行管理。

查詢系統(tǒng)鏈碼(QSCC)

QSCC:Query System Chaincode,提供賬本查詢 API。如獲取區(qū)塊和交易等信息。

背書管理系統(tǒng)鏈碼(ESCC)

ESCC:Endorsement System Chaincode,負(fù)責(zé)背書(簽名)過程, 并可以支持對背書策略進(jìn)行管理

對提交的交易提案的模擬運行結(jié)果進(jìn)行簽名,,之后創(chuàng)建響應(yīng)消息返回給客戶端

驗證系統(tǒng)鏈碼(VSCC)

VSCC:Validation System Chaincode,處理交易的驗證,包括檢查背書策略以及多版本并發(fā)控制

3

什么是用戶鏈碼

由應(yīng)用程序開發(fā)人員根據(jù)不同場景需求及成員制定的相關(guān)規(guī)則,使用 Golang(或Java等)語言編寫的基于操作區(qū)塊鏈分布式賬本的狀態(tài)的業(yè)務(wù)處理邏輯代碼,運行在鏈碼容器中,通過 Fabric 提供的接口與賬本狀態(tài)進(jìn)行交互。

用戶鏈碼在整個應(yīng)用程序中處于重要地位。因為它下可對賬本數(shù)據(jù)進(jìn)行操作,上可以給企業(yè)級應(yīng)用程序提供調(diào)用接口。所以一個沒有鏈碼的企業(yè)級應(yīng)用程序,不能稱之為是基于區(qū)塊鏈的企業(yè)級應(yīng)用程序。

4

鏈碼的生命周期管理

鏈碼開發(fā)編寫完成后,并不能立刻使用,而是必須經(jīng)過一系列的操作之后才能應(yīng)用在 Hyperledger Fabric 網(wǎng)絡(luò)中進(jìn)而處理客戶端提交的交易。這一系列的操作是由鏈碼的生命周期來負(fù)責(zé)管理。

管理 Chaincode 的生命周期共有五個命令:

  • install:將已編寫完成的鏈碼安裝在網(wǎng)絡(luò)節(jié)點中。

  • instantiate:對已安裝的鏈碼進(jìn)行實例化。

  • upgrade:對已有鏈碼進(jìn)行升級。鏈代碼可以在安裝后根據(jù)具體需求的變化進(jìn)行升級。

  • package:對指定的鏈碼進(jìn)行打包的操作。

  • singnpackage:簽名。

安裝、實例化、升級這三項操作不適用于系統(tǒng)鏈碼

鏈碼的生命周期管理命令現(xiàn)階段只有這五個,但未來還會支持 stop 和 start 命令, 用來停止和啟動鏈碼。

鏈代碼成功安裝和實例化后,則處于活動狀態(tài)(正在運行),時刻準(zhǔn)備執(zhí)行處理提交的交易提案。

下一節(jié)開始我們會使用這些生命周期管理命令來實現(xiàn)對鏈碼的相關(guān)操作。

以上是“Hyperledger Fabric中鏈碼的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI