系统运行架构。
下图是上图简化版。
Orderer排序节点配置文件:
orderer.yaml | 通用配置文、账本配置、Kafka配置 | /etc/hyperledger/fabric |
msp | 组织成员身份证书、签名私钥等文件 | /var/ hyperledger/orderer |
tls | TLS认证证书密钥等文件 | |
orderer.genesis.block | 系统通道创世区块文件 |
Peer节点配置文件:
channel.tx | 应用通道配置交易文件 | /etc/hyperledger/fabric |
Org1MSPanchors.tx | Org1MSP组织锚节点配置更新交易文件 | /opt/gopath/src/github.com/ hyperledger/fabric/peer/channel-artifaxts |
Org2MSPanchors.tx | Org2MSP组织锚节点配置更新交易文件 |
配置机制:Viper。
配置区块文件。
crypto-config.yaml:定义组织成员关系,用于生成指定拓扑结构的组织关系与身份证书、密钥等文件,TLS认证证书。
configtx.yaml:定义Orderer系统通道和应用通道配置信息,包括联盟和组织定义,生成系统通道创世区块文件、新建应用通道配置交易文件、锚节点更新交易文件等。
core.yaml:定义Peer节点的日志配置、通用配置、Gossip配置、events配置、tls配置、vm链码运行环境、链码相关配置等。
环境变量:
RDERER_XXX:Orderer节点环境变量配置,与orderer.yaml配置项对应。
CORE_XXX:Peer节点环境配置,与core.yaml配置项对应。
测试流程脚本(测试Orderer排序节点是否可用、创建应用通道、添加Peer节点到指定通道、更新通道中每个组织的锚点配置、安装链码、实例化链码、查询链码)
Orderer节点源码:
blocksprovider:区块提供者模块。
client.go:提供broadcastClient客户端。
deliveryclient.go:Deliver服务客户端。
requester.go:请求区块数据。
/fabric/protos/orderer:protobuf消息定义模块。
/fabric/common/deliver:定义Deliver服务器及处理接口。
Peer节点包括Endorser背书节点、Committer记账节点等。
Endorser背书节点:检查用户提交的签名提案消息,启动链码容器模拟执行交易提案,验证结果通过后进行签名背书。
Committer记账节点:负责检查交易消息格式的合法性与验证背书策略的有效性。