Fabric學習之路

2021-10-09 07:47:07 字數 1422 閱讀 6946

應用程式客戶端通過sdk呼叫證書服務(ca)服務,進行註冊和登記,並獲取身份證書;

應用程式客戶端通過sdk向區塊鏈網路發起乙個交易提案(proposal),交易提案把帶有本次交易要呼叫的合約標識、合約方法和引數資訊以及客戶端簽名等資訊傳送給背書(endorser)節點。

背書(endorser)節點收到交易提案(proposal)後,驗證簽名並確定提交者是否有權執行操作,同時根據背書策略模擬執行智慧型合約,並將結果及其各自的ca證書簽名發還給應用程式客戶端。

應用程式客戶端收到背書(endorser)節點返回的資訊後,判斷提案結果是否一致,以及是否參照指定的背書策略執行,如果沒有足夠的背書,則中止處理;否則,應用程式客戶端把資料打包到一起組成乙個交易並簽名,傳送給orderers。

orderers對接收到的交易進行共識排序,然後按照區塊生成策略,將一批交易打包到一起,生成新的區塊,傳送給提交(committer)節點;

提交(committer)節點收到區塊後,會對區塊中的每筆交易進行校驗,檢查交易依賴的輸入輸出是否符合當前區塊鏈的狀態,完成後將區塊追加到本地的區塊鏈,並修改世界狀態。

這裡對重要的一些目錄進行說明:

bccsp:與密碼學(加密、簽名、證書等等)相關的加密服務**。將fabric中用到的密碼學相關的函式抽象成了一組介面,便於拓展。

bddtests:一種新型的軟體開發模式——行為驅動開(需求-開發)。

common:一些公共庫(錯誤處理、日誌處理、賬本儲存、策略以及各種工具等等)。

core:核心庫,元件的核心邏輯,針對每乙個元件都有乙個子目錄(chaincode:與智慧型合約相關,comm:與網路通訊相關,endorser:與背書節點相關)。

devenv:fabric 官方提供的開發環境,使用的是vagrant。

docs:與文件相關。

events:事件監聽機制。

examples:一些例子。

gossip:組織內部節點資料同步的通訊協議,最終一致性演算法,用於組織內部資料同步。

images:docker映象打包,docker映象都是通過這個目錄下的配置檔案生成的。

msp:成員服務管理(member service provider),在fabric網路中會為每乙個成員提供相應的證書,msp模組就是讀取這些證書並做一些相應的處理。

orderer:排序節點的入口,用於訊息的訂閱與分發處理。

peer:peer節點的入口。

protos:定義fabric中的資料結構和資料服務,包括各種協議和訊息的 protobuf 定義檔案和生成的 go 檔案。

vender:存放go中使用的第三方包。

Fabric學習 Fabric整體專案結構介紹

參考版本較低,建議去看高版本手冊。bccsp 提供了加密標準以及演算法的實現,為整個專案提供統一的加密 簽名 驗籤服務。common common模組提供了通用功能以及一些通用的 實現,包括日誌 錯誤 工具包等,主要包括專案全域性的功能性 core core模組為fabric專案的核心 模組,其中包...

Fabric學習筆記

2018.10.29 1 環境配置,doker安裝有點難受 2 搭建好環境後,第一次執行e2e cli專案後,已成生default channel mychannel 如要再次執行e2e cli專案,必須先執行 network setup.sh down 命令,否者提示 error got unex...

Fabric學習 Fabric原始碼中相關縮寫的含義

mspmembership service provifer 成員服務提供者 bccspblockchain cryptographic service provifer 區塊鏈加密服務提供者 abatomic broadcast 原子操作廣播 lscclifecycle system chainc...