前面幾章,我們從網路搭建,系統編譯,執行乙個demo的角度,體驗了facbic系統,我們從整體認識了fabric。
在公鏈領域,有btc,eth,eos等優秀的開源專案,我們對這些原始碼都有閱讀,在聯盟鏈領域,比較突出的就是ibm發起的fabric,fabric做為聯盟鏈,要求有准入機制,在新的版本裡還增加了資料隱私保護和加密交易。相對於公鏈來說,支援的併發量較高,延遲也小。
系統設計的獨到之處在於,可插拔的模組設計,方便的適用各種環境。並有許可權訪問機制。提高系統的安全機制。支援多語言開發智慧型合約。但是也有一些缺點,複雜的許可權設計和分帳本儲存,組織和通道等,都增加了學習的難度和開發的難度。
今天,我們開始進入fabric原始碼賞析。我們先從目錄結構,解釋一下各個目錄結構的內容,方便大家乙個個模組的理解。
bccsp:加密模組。所有與加密有關的,比如證書、簽名、雜湊、橢圓曲線等都在這個模組裡。前面說到了,fabric高度模組化,優勢體現之一就在這裡,如果想更換其它加密演算法,只要在這個模組裡將介面重新繼承一下並完成相關的**即可。
cmd:這個類似於提供了乙個客戶端,可以通過命令和fabric互動。
common:公共庫,這個主要是相關的日誌、錯誤、工具等。這裡面的彎彎繞挺多,在後面的**分析時遇到乙個分析乙個。
core:fabric的相關核心模組。包括背書、鏈碼等。
devnev:環境設定,vagrant等相關。
docs:相關文件
script:例程,相關應用服務的指令碼,早期版本將例程放在 examples下,後續版本,合併在script資料夾裡。
gossip:網路發現的通訊協議
images:打包檔案
integration:行為驅動開發相關。
msp:成員服務管理,這個是用來在節點間通訊的證書驗證管理的。不同的通道可以通過其來劃分開。
peer:節點管理的模組,包括通道、鏈碼等。
protos:相關的通訊協議資料處理(protobuf)以及資料結構體。
release:發布模板
release_notes:版本迭代記錄
sampleconfig:基礎的配置檔案例子
vendor:用到go的相關的第三方庫。
我們先對第一層目錄功能了解後,後續我們就可以挑選內容開始賞析原始碼。
後續我會在很多個篇幅,給大家分享,這些包的原始碼賞析。與大家共同學習。
謝謝大家,希望能夠幫助到大家。
Fabric學習 Fabric整體專案結構介紹
參考版本較低,建議去看高版本手冊。bccsp 提供了加密標準以及演算法的實現,為整個專案提供統一的加密 簽名 驗籤服務。common common模組提供了通用功能以及一些通用的 實現,包括日誌 錯誤 工具包等,主要包括專案全域性的功能性 core core模組為fabric專案的核心 模組,其中包...
Python之 Fabric開發例項
coding utf 8 檢視本地和遠端主機資訊 本例項呼叫local 方法執行本地 主控端 命令,新增 runs once 修飾符保證該任務函式只執行一次 created on 2018年1月11日 author liuyazhuang from fabric.api import env.use...
Fabric學習 Fabric原始碼中相關縮寫的含義
mspmembership service provifer 成員服務提供者 bccspblockchain cryptographic service provifer 區塊鏈加密服務提供者 abatomic broadcast 原子操作廣播 lscclifecycle system chainc...