1. 程式人生 > 實用技巧 >Fabric專案學習:原始碼

Fabric專案學習:原始碼

Fabric專案學習。第八次週報。

原始碼https://github.com/hyperledger/fabric.git

系統執行架構。

下圖是上圖簡化版。

Orderer排序節點配置檔案:

orderer.yaml

通用配置文、賬本配置、Kafka配置

/etc/hyperledger/fabric

msp

組織成員身份證書、簽名私鑰等檔案

/var/ hyperledger/orderer

tls

TLS認證證書金鑰等檔案

orderer.genesis.block

系統通道創世區塊檔案

Peer節點配置檔案:

channel.tx

應用通道配置交易檔案

/etc/hyperledger/fabric

Org1MSPanchors.tx

Org1MSP組織錨節點配置更新交易檔案

/opt/gopath/src/github.com/ hyperledger/fabric/peer/channel-artifaxts

Org2MSPanchors.tx

Org2MSP組織錨節點配置更新交易檔案

配置機制:Viper。

配置區塊檔案。

crypto-config.yaml:定義組織成員關係,用於生成指定拓撲結構的組織關係與身份證書、金鑰等檔案,TLS認證證書。

configtx.yaml:定義Orderer系統通道和應用通道配置資訊,包括聯盟和組織定義,生成系統通道創世區塊檔案、新建應用通道配置交易檔案、錨節點更新交易檔案等。

core.yaml:定義Peer節點的日誌配置、通用配置、Gossip配置、events配置、tls配置、vm鏈碼執行環境、鏈碼相關配置等。

環境變數:

RDERER_XXX:Orderer節點環境變數配置,與orderer.yaml配置項對應。

CORE_XXX:Peer節點環境配置,與core.yaml配置項對應。

測試流程指令碼(測試Orderer排序節點是否可用、建立應用通道、新增Peer節點到指定通道、更新通道中每個組織的錨點配置、安裝鏈碼、例項化鏈碼、查詢鏈碼)

Orderer節點原始碼:

blocksprovider:區塊提供者模組。

client.go:提供broadcastClient客戶端。

deliveryclient.go:Deliver服務客戶端。

requester.go:請求區塊資料。

/fabric/protos/orderer:protobuf訊息定義模組。

/fabric/common/deliver:定義Deliver伺服器及處理介面。

Peer節點包括Endorser背書節點、Committer記賬節點等。

Endorser背書節點:檢查使用者提交的簽名提案訊息,啟動鏈碼容器模擬執行交易提案,驗證結果通過後進行簽名背書。

Committer記賬節點:負責檢查交易訊息格式的合法性與驗證背書策略的有效性。