定义功能需求
如文档 通道capabilities 中所述,在通道配置(在通道的最新配置区块中找到)中,为每个通道定义了功能需求。通道配置包含三个位置,每个位置定义了不同类型的功能。
Capability Type | Canonical Path | JSON Path |
---|---|---|
Channel | /Channel/Capabilities | .channel_group.values.Capabilities |
Orderer | /Channel/Orderer/Capabilities | .channel_group.groups.Orderer.values.Capabilities |
Application | /Channel/Application/Capabilities | .channel_group.groups.Application.values. Capabilities |
功能设置
功能设置是通道配置的一部分(要么作为初始配置,要么作为重新配置的一部分)。
注解
有关如何更新通道配置的更多信息,请查看 doc:channel_update_tutorial。要了解不同的通道更新类型,请查看 更新通道配置。
默认情况下,新通道将复制排序系统通道的配置,因此新通道将被自动配置为和排序系统通道中的排序节点、通道功能以及通道创建交易是指定的应用功能一起工作。通道已经存在了,但是必须被重新配置。
功能的值在 protobuf 定义如下:
message Capabilities { map<string, Capability> capabilities = 1; } message Capability { }
JSON 格式如下:
{ "capabilities": { "V1_1": {} } }
初始配置中的功能
在发布的构件中 config
目录下的 configtx.yaml
文件中,有一个 Capabilities
部分,列举了每种功能类型(通道、排序节点和应用程序)的可能功能。
使用功能最简答的方法就是将 v1.1 中的示例结构复制过来并修改。例如:
SampleSingleMSPRaftV1_1: Capabilities: <<: *GlobalCapabilities Orderer: <<: *OrdererDefaults Organizations: - *SampleOrg Capabilities: <<: *OrdererCapabilities Consortiums: SampleConsortium: Organizations: - *SampleOrg
请注意, Capabilities
在根级别(用于通道功能)和 Orderer 级别(用于排序节点功能)各有一个定义部分。上边的示例使用 YAML 引用了在 YAML 文件底部定义的功能。
定义排序服务通道的时候没有 Application 部分,它在创建应用通道的时候会被创建。要在创建通道的时候定义新通道中应用的功能,应用程序管理员需要在
SampleSingleMSPChannelV1_1
结构后边定义他们的通道创建交易。SampleSingleMSPChannelV1_1: Consortium: SampleConsortium Application: Organizations: - *SampleOrg Capabilities: <<: *ApplicationCapabilities
这里,Application 部分有一个新元素 Capabilities
,引用了 YAML 最后部分的 ApplicationCapabilities
。
注解
Channel 和 Orderer 部分的功能继承了排序系统通道的定义,并被在创建通道时自动包含到了排序节点中。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论