区块链专列之一:Fabric配置文件
1. 共享配置是存储在每一个通道的配置交易集合中,这个集合通常以configtx为前缀。
2. 区块的类型是HeaderType_CONFIG,区块中没有其他交易,我们称这种区块为Configuration Blocks,第一个区块也就是创世区块就是配置区块。
3. 配置的原型结构存储在fabric/protos/common/configtx.proto,类型为HeaderType_CONFIG的Envelope将ConfigEnvelope消息编码为 Payload
data
字段。ConfigEnvelope原型定义如下:
message ConfigEnvelope { Config config = 1; Envelope last_update = 2; }
↓
message Config { uint64 sequence = 1; ConfigGroup channel_group = 2; }
↓
message ConfigGroup { uint64 version = 1; map<string,ConfigGroup> groups = 2; map<string,ConfigValue> values = 3; map<string,ConfigPolicy> policies = 4; string mod_policy = 5; }
4. 配置更新
类型为HeaderType_CONFIG_UPDATE的Envelope将ConfigUpdateEnvelope消息编码为 Payload
data
字段,ConfigUpdateEnvelope定义如下:
message ConfigUpdateEnvelope { bytes config_update = 1; repeated ConfigSignature signatures = 2; }
签名字段包含了一系列获得授权者的签名信息,签名消息是如下定义的:
message ConfigSignature { bytes signature_header = 1; bytes signature = 2; }
signature_header定义为标准的交易,签名信息是在signature_header字节和config_update字节组合起来的ConfigUpdateEnvelope消息上面。
ConfigUpdateEnvelope的config_update字节是一个封装好的ConfigUpdate消息,定义如下:
message ConfigUpdate { string channel_id = 1; ConfigGroup read_set = 2; ConfigGroup write_set = 3; }
channel_id是要更新的通道ID编号,是用来验证这个签名是不是有权限来重新配置这个通道。
5. Orderer系统通道配置
排序系统通道需要定义排序参数和创建通道的组织。注意所有有读去排序系统通道权限的组织成员可以看到所有通道的创建,所以通道的访问权限要严格限制。
Orderer启动的时候,Orderer面对的是一个包含所有通道信息的文件系统。
6. 应用通道配置
应用通道配置设计为应用类型的交易。
- 点赞
- 收藏
- 关注作者
评论(0)