整体结构
整体结构图如下:
网络拓扑结构
客户端节点
包括引用程序,SDK,命令行工具等,它是应用程序与底层之间两者交互的媒介节点,它不能够独立存在,必须与ordeerr节点和peer节点建立连接才能发挥作用。在一个基于fabric的应用程序之中,它是不可或缺的。
Peer
包括 Anchor, Endorser, Committer等
Anchor节点是和组织紧密关联的,一个组织内部可能会有多个Peer节点,但只有一个Anchor节点。它可以翻译为锚节点或组节点,它是一个组的内部唯一一个与order通信的节点,组节点可以在网络启动的时候由最初的配置指定。如果组节点宕机或下线,组的内部会自动的选举一个新的组节点。
Endorser 节点为背书节点,可以简单理解为担保节点。背书节点主要作用是用来为交易做担保的。背书节点不是一个固定的节点类型,它是和fabirc中的智能合约是绑定的。 每一个只能合约被安装在区块链上时,都会设置其专有的背书策略,指定该交易被哪些节点背书以后才是有效的。
Committer 是记账节点,组节点和背书节点都是Committer节点。 Committer节点的主要作用是验证从orderer接收到的区块的有效性和交易的有效性。验证后会记录到本地的账本中,如果交易有效,则会同时更改区块链上的状态数据。
Orderer
orderer节点可以称之为排序节点,它主要有两个功能。第一个功能是从全网接收交易,并将交易按照一定的规则排序。第二个功能是将排序号的交易,按照固定的时间间隔,打包成区块,分发给组织上的组节点。(solo,kafka)
CA(可选)
证书颁发机构,主要作用是建立一个区块链上的身份,只有被CA认可的身份才能在区块链上发布交易,否则就会被拒绝。