Hyperledger Fabric1.0 整體結構
阿新 • • 發佈:2018-02-10
管理 配置文件 erl pro 兩種 protobuf 許可 user ofo
整體結構
Hyperledger Fabric 在 1.0 中,架構已經解耦為三部分:
- fabric-peer:主要起到 peer 作用,包括 endorser、committer 兩種角色;
- fabric-ca:即原先的 membersrvc,獨立成一個新的項目。
- fabric-order:起到 order 作用。
其中,fabric-peer 和 fabric-order 代碼暫時都在 fabric 項目中,未來可能進一步拆分。
核心代碼
fabric 項目中主要包括代碼、工具、腳本等部分,核心源代碼目前約為 430 個文件,80K 行。
$ cd fabric $ find bccsp common core events gossip msp orderer peer protos-not -path "*/vendor/*" -name "*.go" -not -name "*_test.go" | wc -l 431 $ find bccsp common core events gossip msp orderer peer protos -not -path "*/vendor/*" -name "*.go" -not -name "*_test.go" | xargs cat | wc -l 80560
源代碼
實現 fabric 功能的核心代碼,包括:
- bccsp 包:實現對加解密算法和機制的支持。
- common 包:一些通用的模塊;
- core 包:大部分核心實現代碼都在本包下。其它包的代碼封裝上層接口,最終調用本包內代碼;
- events 包:支持 event 框架;
- examples 包:包括一些示例的 chaincode 代碼;
- gossip 包:實現 gossip 協議;
- msp 包:Member Service Provider 包;
- order 包:order 服務相關的入口和框架代碼;
- peer 包:peer 的入口和框架代碼;
- protos 包:包括各種協議和消息的 protobuf 定義文件和生成的 go 文件。
源碼相關工具
一些輔助代碼包,包括:
- bddtests:測試包,含有大量 bdd 測試用例;
- gotools:golang 開發相關工具安裝;
- vendor 包:管理依賴;
安裝部署
包括:
- busybox:busybox 環境,精簡的 linux;
- devenv:配置開發環境;
- images:鏡像生成模板等。
- scripts:各種安裝配置腳本;
其它工具
其他工具,包括:
- docs:文檔,大部分文檔都可以 在線查閱;
配置、腳本和文檔
除了些目錄外,還包括一些說明文檔、安裝需求說明、License 信息文件等。
Docker 相關文件
- .baseimage-release:生成 baseimage 時候的版本號。
- .dockerignore:生成 Docker 鏡像時忽略一些目錄,包括 .git 目錄。
git 相關文件
- .gitattributes:git 代碼管理時候的屬性文件,帶有不同類型文件中換行符的規則,默認都為 linux 格式,即
\n
。 - .gitignore:git 代碼管理時候忽略的文件和目錄,包括 build 和 bin 等中間生成路徑。
- .gitreview:使用 git review 時候的配置,帶有項目的倉庫地址信息。
- README.md:項目的說明文件,包括一些有用的鏈接等。
travis 相關文件
- .travis.yml:travis 配置文件,目前是使用 golang 1.6 編輯,運行了三種測試:unit-test、behave、node-sdk-unit-tests。
其它
- LICENSE:Apache 2 許可文件。
- docker-env.mk:被 Makefile 引用,生成 Docker 鏡像時的環節變量。
- Makefile:執行測試、格式檢查、安裝依賴、生成鏡像等操作。
- mkdocs.yml:生成 http://hyperledger-fabric.readthedocs.io 在線文檔的配置文件。
- TravisCI_Readme.md
來源:https://github.com/yeasy/hyperledger_code_fabric/blob/master/overview.md
Hyperledger Fabric1.0 整體結構