谢谢大家不断的为这篇文章点赞。从 3 月份开始专注于区块链开发,那时国内基本没有区块链的相关内容,科学上网还是必备技能,一点一点积累和开拓吧。现在国内有很多的各种链,大大小小的组织和会议,应该有很多的『新人』在做区块链了,我后面会为每一幅图解加一些文字解释,希望可以帮助到大家。如果有不对的地方大家也可以留言。
1. fabric-ca.png
fabric-ca.png
有两种方式与 Fabric CA 服务端交互:通过 Fabric CA 客户端,或者 Fabric SDK,所有与 Fabric CA 的交互都是通过 REST APIs 来实现的。REST APIs 的 swagger 说明文档见 fabric-ca/swagger/swagger-fabric-ca.json
swagger/swagger-fabric-ca.json APIs 的文档.
Fabric CA 客户端或者 SDK 可能会连接到 Fabric CA 集群中某一个 Fabric CA 服务端,这一部分可以通过上图右上部分获得更好的理解。客户端连接的是一个 HA 代理节点,这个 HA 代理节点为 Fabric CA 集群作负载均衡。所有的 Fabric CA 服务端共享同一个数据库。数据库用来保存用户和证书信息。如果配置了 LDAP,那么用户信息将会保存在 LDAP 中,而不是数据库中。
2. fabric-ca 运行时流程图.png
fabric-ca 运行时流程图.png
3. 两个不同的chaincode并行进行背书和共识处理的过程.png
两个不同的chaincode并行进行背书和共识处理的过程.png
4. transaction flow.png 这张图在文档中已经做了修改请看 图36
transaction flow.png
该流程图对应的交易处理步骤如下:
1、Client发起交易,这个场景下的Client是通过Submitting Peer代理和其他Peer以及交易共识排序系统交互的,Client的接入合法性可由Submitting Peer来控制。主要看系统是如何设计的;
2、Submitting Peer按照背书策略,继续发送交易给其他节点(Endorsing Peer),模拟执行智能合约(Chain Code),暂存合约执行结果(Key-Value读写集),但执行结果不会真正更新到本地账本和Key-Value 状态数据库中;
3、Endorsing Peer验证交易签名,验证读写集版本依赖关系是否有效,并将结果发送给Submitting Peer;
4、Submitting Peer收集Endorsing Peer的签名的执行结果和交易数据,发送到共识排序服务(Consensus Service,又称Ordering Service);
5、共识排序系统按特定的共识算法将多笔交易排序打包成区块,并将区块递交给同一通道内的全部Peer;
6、接收到区块的全部Peer检查验证区块里的每一笔交易,比对模拟执行读写集结果,根据比对结果设置交易是否生效,设定好标记,并更新本地账本和状态数据库,这时,交易才真正反映到区块链上;
7、补充一个步骤,图中没有画出来,Submitting Peer需将交易是否执行成功等信息反馈给Client,或者Client可以通过调用SDK接收Fabric“事件”(event)得知交易执行结果。
5. Data structures blocks forming.png
Data structures blocks.png
6. 多链与多通道.png
多链与多通道.png
7. 交易(数据)流程说明.png
交易(数据)流程说明.png
8. fabric 架构图.png
fabric 架构图.png
9. fabric 1.0 运行时架构图.png
fabric 1.0 运行时架构图.png
10. fabric 0.6 总体架构图.png
fabric 0.6 总体架构图.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
网友评论