Hyperledger Fabric 示意圖

謝謝大家不斷的為這篇文章點贊。從 3 月份開始專注于區(qū)塊鏈開發(fā),那時國內(nèi)基本沒有區(qū)塊鏈的相關(guān)內(nèi)容,科學(xué)上網(wǎng)還是必備技能,一點一點積累和開拓吧。現(xiàn)在國內(nèi)有很多的各種鏈,大大小小的組織和會議,應(yīng)該有很多的『新人』在做區(qū)塊鏈了,我后面會為每一幅圖解加一些文字解釋,希望可以幫助到大家。如果有不對的地方大家也可以留言。

1. fabric-ca.png

fabric-ca.png

有兩種方式與 Fabric CA 服務(wù)端交互:通過 Fabric CA 客戶端,或者 Fabric SDK,所有與 Fabric CA 的交互都是通過 REST APIs 來實現(xiàn)的。REST APIs 的 swagger 說明文檔見 fabric-ca/swagger/swagger-fabric-ca.json

swagger/swagger-fabric-ca.json APIs 的文檔.

Fabric CA 客戶端或者 SDK 可能會連接到 Fabric CA 集群中某一個 Fabric CA 服務(wù)端,這一部分可以通過上圖右上部分獲得更好的理解??蛻舳诉B接的是一個 HA 代理節(jié)點,這個 HA 代理節(jié)點為 Fabric CA 集群作負載均衡。所有的 Fabric CA 服務(wù)端共享同一個數(shù)據(jù)庫。數(shù)據(jù)庫用來保存用戶和證書信息。如果配置了 LDAP,那么用戶信息將會保存在 LDAP 中,而不是數(shù)據(jù)庫中。

2. fabric-ca 運行時流程圖.png

fabric-ca 運行時流程圖.png

3. 兩個不同的chaincode并行進行背書和共識處理的過程.png

兩個不同的chaincode并行進行背書和共識處理的過程.png

4. transaction flow.png 這張圖在文檔中已經(jīng)做了修改請看 圖36

transaction flow.png

該流程圖對應(yīng)的交易處理步驟如下:
1、Client發(fā)起交易,這個場景下的Client是通過Submitting Peer代理和其他Peer以及交易共識排序系統(tǒng)交互的,Client的接入合法性可由Submitting Peer來控制。主要看系統(tǒng)是如何設(shè)計的;
2、Submitting Peer按照背書策略,繼續(xù)發(fā)送交易給其他節(jié)點(Endorsing Peer),模擬執(zhí)行智能合約(Chain Code),暫存合約執(zhí)行結(jié)果(Key-Value讀寫集),但執(zhí)行結(jié)果不會真正更新到本地賬本和Key-Value 狀態(tài)數(shù)據(jù)庫中;
3、Endorsing Peer驗證交易簽名,驗證讀寫集版本依賴關(guān)系是否有效,并將結(jié)果發(fā)送給Submitting Peer;
4、Submitting Peer收集Endorsing Peer的簽名的執(zhí)行結(jié)果和交易數(shù)據(jù),發(fā)送到共識排序服務(wù)(Consensus Service,又稱Ordering Service);
5、共識排序系統(tǒng)按特定的共識算法將多筆交易排序打包成區(qū)塊,并將區(qū)塊遞交給同一通道內(nèi)的全部Peer;
6、接收到區(qū)塊的全部Peer檢查驗證區(qū)塊里的每一筆交易,比對模擬執(zhí)行讀寫集結(jié)果,根據(jù)比對結(jié)果設(shè)置交易是否生效,設(shè)定好標(biāo)記,并更新本地賬本和狀態(tài)數(shù)據(jù)庫,這時,交易才真正反映到區(qū)塊鏈上;
7、補充一個步驟,圖中沒有畫出來,Submitting Peer需將交易是否執(zhí)行成功等信息反饋給Client,或者Client可以通過調(diào)用SDK接收Fabric“事件”(event)得知交易執(zhí)行結(jié)果。

5. Data structures blocks forming.png

Data structures blocks.png

6. 多鏈與多通道.png

多鏈與多通道.png

7. 交易(數(shù)據(jù))流程說明.png

交易(數(shù)據(jù))流程說明.png

8. fabric 架構(gòu)圖.png

fabric 架構(gòu)圖.png

9. fabric 1.0 運行時架構(gòu)圖.png

fabric 1.0 運行時架構(gòu)圖.png

10. fabric 0.6 總體架構(gòu)圖.png

fabric 0.6 總體架構(gòu)圖.png

11. marbles comm_flow.png

comm_flow.png

12. fabric 交易的生命周期

Fabric 交易的生命周期.png

13. Chaincode Deployment Proposal.png

Chaincode Deployment Proposal.png

14. Chaincode Deployment Transaction.png

Chaincode Deployment Transaction.png

15. Endorse Transactions.png

Endorse Transactions.png

16. Commit Transactions.png

Commit Transactions.png

17. Fabric v1.0 部署方式.png

Fabric v1.0 部署方式.png

18. architecture of marbles app.png

architecture of marbles app.png

19. marbles app config and cc resources.png

marbles app config and cc resources.png

20. blockchain_overview.png

blockchain_overview.png

21. fabric-1.0-release

Fabric-release.png

22. chaincode_swimlane.png

chaincode_swimlane.png

23. Architecture_Step-1.png

Architecture_Step-1.png

24. Architecture_Step-2.png

Architecture_Step-2.png

25. Architecture_Step-3.png

Architecture_Step-3.png

26. Architecture_Step-4.png

Architecture_Step-4.png

27. attributes_flow.png

attributes_flow.png

28. Canonical-Use-Cases_Asset-Depository.png

Canonical-Use-Cases_Asset-Depository.png

29. Canonical-Use-Cases_B2BContract.png

image.png

30.Canonical-Use-Cases_Direct-Communication.png

image.png

31. Canonical-Use-Cases_Interoperability-of-Assets.png

Canonical-Use-Cases_Interoperability-of-Assets.png

32. Canonical-Use-Cases_Manufacturing-Supply-Chain.png

Canonical-Use-Cases_Manufacturing-Supply-Chain.png

33. Canonical-Use-Cases_One-Trade-One-Contract.png

Canonical-Use-Cases_One-Trade-One-Contract.png

34. Canonical-Use-Cases_Separation-of-Asset-Ownership-and-Custodians-Duties.png

Canonical-Use-Cases_Separation-of-Asset-Ownership-and-Custodians-Duties.png

35. sec-entities.png

sec-entities.png

36. Illustration of one possible transaction flow (common-case path).

flow-4.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容