区块链专列之一:Fabric配置文件

举报
BitM 发表于 2020/10/05 19:46:34 2020/10/05
【摘要】 1. 共享配置是存储在每一个通道的配置交易集合中,这个集合通常以configtx为前缀。2. 区块的类型是HeaderType_CONFIG,区块中没有其他交易,我们称这种区块为Configuration Blocks,第一个区块也就是创世区块就是配置区块。3. 配置的原型结构存储在fabric/protos/common/configtx.proto,类型为HeaderType_CONFI...

1. 共享配置是存储在每一个通道的配置交易集合中,这个集合通常以configtx为前缀。

2. 区块的类型是HeaderType_CONFIG,区块中没有其他交易,我们称这种区块为Configuration Blocks,第一个区块也就是创世区块就是配置区块。

3. 配置的原型结构存储在fabric/protos/common/configtx.proto,类型为HeaderType_CONFIGEnvelopeConfigEnvelope消息编码为 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_UPDATEEnvelopeConfigUpdateEnvelope消息编码为 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消息上面。

ConfigUpdateEnvelopeconfig_update字节是一个封装好的ConfigUpdate消息,定义如下:

message ConfigUpdate {
    string channel_id = 1;
    ConfigGroup read_set = 2;
    ConfigGroup write_set = 3;
}

channel_id是要更新的通道ID编号,是用来验证这个签名是不是有权限来重新配置这个通道。

5. Orderer系统通道配置

排序系统通道需要定义排序参数和创建通道的组织。注意所有有读去排序系统通道权限的组织成员可以看到所有通道的创建,所以通道的访问权限要严格限制。

Orderer启动的时候,Orderer面对的是一个包含所有通道信息的文件系统。

6. 应用通道配置

应用通道配置设计为应用类型的交易。


【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。