Fabric 整体框架

Fabric交易整体流程

Fabric学习之路

  1. 应用程序客户端通过SDK调用证书服务(CA)服务,进行注册和登记,并获取身份证书;

  2. 应用程序客户端通过SDK向区块链网络发起一个交易提案(Proposal),交易提案把带有本次交易要调用的合约标识、合约方法和参数信息以及客户端签名等信息发送给背书(Endorser)节点。

  3. 背书(Endorser)节点收到交易提案(Proposal)后,验证签名并确定提交者是否有权执行操作,同时根据背书策略模拟执行智能合约,并将结果及其各自的CA证书签名发还给应用程序客户端。

  4. 应用程序客户端收到背书(Endorser)节点返回的信息后,判断提案结果是否一致,以及是否参照指定的背书策略执行,如果没有足够的背书,则中止处理;否则,应用程序客户端把数据打包到一起组成一个交易并签名,发送给Orderers。

  5. Orderers对接收到的交易进行共识排序,然后按照区块生成策略,将一批交易打包到一起,生成新的区块,发送给提交(Committer)节点;

  6. 提交(Committer)节点收到区块后,会对区块中的每笔交易进行校验,检查交易依赖的输入输出是否符合当前区块链的状态,完成后将区块追加到本地的区块链,并修改世界状态。

源码模块功能分析

Fabric学习之路
这里对重要的一些目录进行说明:

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中使用的第三方包。

相关文章:

  • 2021-05-15
  • 2021-10-26
  • 2021-12-08
  • 2021-11-01
猜你喜欢
  • 2021-12-23
  • 2021-12-23
  • 2022-02-07
  • 2022-02-25
  • 2022-12-23
  • 2022-12-23
  • 2021-12-29
相关资源
相似解决方案