管理通道
本主题包含有关管理网络中的渠道的信息,例如如何创建和查看渠道、如何加入对等节点以及如何指定和锚定对等节点、如何处理策略和访问控制列表,以及如何将排序节点与渠道关联。
什么是通道?
通过渠道对对对等节点和分类账数据进行分区和隔离,从而在区块链网络上提供私密事务。
- 对等
- 共享分类账
- 渠道上实例化的链代码
- 一个或多个排序服务节点
- 应用了定义的通道策略定义和 ACL
加入渠道的每个对等节点都有自己的身份,可以向渠道对等节点和服务进行身份验证。虽然对等节点可以属于多个渠道,但有关事务处理、分类账状态和渠道成员资格的信息仅限于每个渠道内的对等节点。
您可以使用 Oracle Blockchain Platform 控制台或超级账本架构 SDK 在区块链网络上创建渠道。请参阅查看通道。
创建通道
您可以向网络添加通道,并指定哪些成员可以使用通道,以及哪些对等节点可以加入通道。无法删除通道。
您必须是管理员才能执行此任务。
-
(Hyperledger Fabric v2.x) 在通道上部署链代码。请参阅部署链代码。
-
(Hyperledger Fabric v1.4.7) 在渠道上实例化链代码。请参见 Instantiate a Chaincode 。
-
如果网络包含参与者,则他们使用控制台将成员对等节点加入到通道。请参见 Join a Peer to a Channel 。
加入对等渠道
您可以将对等节点添加到通道,以便节点可以使用该节点与通道上的其他对等节点交换专用事务处理信息。
-
创建通道时,可以指定哪些本地对等节点可以加入该通道。
-
如果您要创建包含参与者的网络,则可以选择参与者作为渠道上的成员。或者,您可以在创建渠道后添加参与者。
-
您的实例具有多个可用性域或容错域,Oracle 建议您将每个分区中的一个对等连接连接到通道。这是因为如果一个 VM 不可用,该通道仍可用于背书和提交。要确定对等方位于哪个域,请在更多操作菜单中选择显示 AD 信息以查看可用性域信息。
- 您最多可以从每个域加入七个对等节点。
请参阅创建通道。
您必须是管理员才能执行此任务。
添加锚点同级
每个使用通道的成员必须指定至少一个锚点对等点。锚点对等点是主要网络联系点,用于发现和与通道上的其他网络对等点通信。
您可以将组织中的一个或多个对等节点指定为渠道上的锚点对等节点。对于高可用性网络,可以指定两个或多个锚点对等点。使用网络通道的所有成员都必须使用其控制台将一个或多个对等节点指定为锚点对等节点。
您必须是管理员才能执行此任务。
更改或删除锚点对等点
您可以更改或删除渠道的锚点对等点。锚点对等点是主要网络联系点,用于发现和与通道上的其他网络对等点通信。
在更改或删除通道的锚点对等点之前,请注意以下信息:
- 要在渠道上进行通信,您必须将组织中的一个或多个对等节点指定为锚点对等节点。
- 对于高可用性网络,可以指定两个或多个锚点对等点。
- 使用网络通道的所有成员都必须使用其控制台将一个或多个对等节点指定为锚点对等节点。
您必须是管理员才能执行此任务。
查看有关已部署链代码的信息
您可以查看有关在网络中的不同通道上部署的链代码的信息。
- 转到控制台并选择渠道选项卡。
- 在通道表中,单击包含要查看其信息的链代码的通道名称。
- 在渠道信息页中,确认已部署的“链代码”窗格已选中
- 在链代码表中,您可以:
- 单击链代码包 ID 可转至“链代码”选项卡,以了解有关它的更多信息。例如,链代码安装在上的对等节点以及部署链代码的通道。
- 在链代码的“更多操作”菜单中,单击查看链代码定义以查找有关链代码定义的详细信息,包括背书策略。
- (可选)如果您看到没有链代码的通道列表,则可以转至“链代码”选项卡并将链代码部署到该通道。请参阅部署链代码。
使用渠道策略和 ACL
本主题包含有关渠道的策略和访问控制列表 (access control list,ACL) 的信息。它概述了哪些策略、策略类型以及如何修改策略,以及如何使用 ACL 管理哪些组织和角色可以访问渠道的资源。
什么是渠道策略?(Hyperledger Fabric v2.x)
策略定义一组条件。所需各方必须满足政策的条件,才能将其签名视为有效,并且相应的请求在网络上发生。
区块链网络由这些策略管理。策略根据与履行请求所需的资源关联的策略检查与请求关联的身份。策略位于通道的配置中。
配置通道的策略后,将它们分配给通道的 ACL 资源,以确定在通道上发生更改或操作之前需要签署哪些成员。例如,假设您修改了 Writers 策略以包括组织 A 或组织 B 中的成员。然后将 Writers 策略分配给通道的 cscc/GetConfigBlock
ACL 资源。现在,只有组织 A 或组织 B 的成员才能在 cscc
组件上调用 GetConfigBlock
。
策略类型有哪些?
有两种策略类型:签名和 ImplicitMeta。
- 签名 - 指定评估规则的组合。它支持 AND 、 OR 和 NOutOf 的组合。例如,您可以定义“组织 A 和其他 2 名管理员的管理员”或“20 名组织管理员中的 11 名”。
您创建的任何新策略都将是签名策略。
- ImplicitMeta - 此策略类型仅在配置上下文中有效。它汇总了配置层次中更深入评估策略的结果,这些策略由签名策略定义。它支持默认规则,例如“大多数组织管理策略”。
何时创建策略?
将渠道添加到网络时,Oracle Blockchain Platform 将创建默认策略。默认策略为:Admins、Writers、Readers、Endorsement、LifecycleEndorsement(ImplicitMeta 策略)和 Creator(签名策略)。如果需要,可以修改这些策略或创建新策略。
请注意有关通道策略的以下重要问题:
-
可以使用控制台创建通道并将组织的 ACL 设置为 ReaderOnly。保存新渠道后,无法从渠道的“编辑组织”选项更新此 ACL 设置。
但是,可以使用控制台的“Manage Channel Policies(管理渠道策略)”功能将组织添加到写入器策略,该策略将覆盖通道的 ReaderOnly ACL 设置。
什么是渠道策略?(Hyperledger Fabric v1.4.7)
策略定义一组条件。所需各方必须满足政策的条件,才能将其签名视为有效,并且相应的请求在网络上发生。
区块链网络由这些策略管理。策略根据与履行请求所需的资源关联的策略检查与请求关联的身份。策略位于通道的配置中。
配置通道的策略后,将它们分配给通道的 ACL 资源,以确定在通道上发生更改或操作之前需要签署哪些成员。例如,假设您修改了 Writers 策略以包括组织 A 或组织 B 中的成员。然后将 Writers 策略分配给通道的 cscc/GetConfigBlock ACL 资源。现在,只有组织 A 或组织 B 的成员才能在 cscc 组件上调用 GetConfigBlock。
策略类型有哪些?
有两种策略类型:签名和 ImplicitMeta。
- 签名 - 指定评估规则的组合。它支持 AND 、 OR 和 NOutOf 的组合。例如,您可以定义“组织 A 和其他 2 名管理员的管理员”或“20 名组织管理员中的 11 名”。
请注意,当您修改作为 ImplicitMeta 策略创建的 Oracle Blockchain Platform 的默认管理员策略时,将使用签名策略。您创建的任何新策略都将是签名策略。
- ImplicitMeta - 此策略类型仅在配置上下文中有效。它汇总了配置层次中更深入评估策略的结果,这些策略由签名策略定义。它支持默认规则,例如“大多数组织管理策略”。
Oracle Blockchain Platform 使用 ImplicitMeta 策略类型创建管理策略。修改管理策略时,将使用签名策略。无法使用 ImplicitMeta 策略创建或修改任何策略。Oracle Blockchain Platform 仅支持使用签名策略类型修改或创建策略。
何时创建策略?
将渠道添加到网络时,Oracle Blockchain Platform 将创建默认策略。默认策略为:Admins(ImplicitMeta 策略)、Creator(创建者)、Writers(写入者和读取者)(签名策略)。如果需要,可以修改这些策略或创建新策略。
请注意有关通道策略的以下重要问题:
-
可以使用控制台创建通道并将组织的 ACL 设置为 ReaderOnly。保存新渠道后,无法从渠道的“编辑组织”选项更新此 ACL 设置。
但是,可以使用控制台的“Manage Channel Policies(管理渠道策略)”功能将组织添加到写入器策略,该策略将覆盖通道的 ReaderOnly ACL 设置。
-
使用超级账本架构 SDK 创建通道时,Fabric 将使用 ImplicitMeta 策略作为读取器和写入器的默认通道策略。当渠道使用这些策略时,Oracle Blockchain Platform 控制台无法保证管理操作(例如,编辑组织)将成功处理。
要更正此问题,请将读者和写进程策略更新为签名策略,并根据需要定义策略规则。请参阅 https://hyperledger-fabric.readthedocs.io/en/release-1.3/access_control.html
- 使用超级账本架构 SDK 或 CLI 创建渠道时,configtx.yaml 文件中不包括创建者策略。Oracle Blockchain Platform 需要创建者策略才能允许渠道创建者编辑渠道的配置。您必须手动编辑 configtx.yaml 文件并添加创建者策略。
添加或修改渠道的策略
您可以添加或修改渠道的策略,以指定需要哪些成员对渠道执行特定操作。定义策略后,将策略分配给通道的 ACL。
在添加或更新策略之前,您需要了解 Oracle Blockchain Platform 如何创建默认渠道策略。请参见 What Are Channel Policies?(Hyperledger Fabric v1.4.7) 或 What Are Channel Policies?(Hyperledger Fabric v2.x) 。
您必须是管理员才能执行此任务。
- 转到控制台并选择 Channels(通道)选项卡。
此时将显示 Channels(通道)选项卡,通道表包含网络上所有通道的列表。
- 在通道表中,单击要为其添加策略或修改策略的通道名称。
此时将显示 Channel Information(渠道信息)页面。
- 在渠道信息页中,单击渠道策略窗格。
- 执行以下操作之一:
- 要添加新策略,请单击创建新策略按钮。将显示创建策略对话框。在 Policy Name 字段中输入名称,然后在 Policy Type 字段中选择 Signature。展开签名策略部分。
- 要修改现有策略,请单击策略的名称。将显示更新策略对话框。
- 单击添加身份按钮可添加组织。或者根据需要修改现有签名策略。请注意以下信息:
域 说明 MSP 标识 从下拉菜单中选择必须签署策略的组织。 角色 选择策略所需的对应对等角色。通常,这将是会员。您可以通过查看对等方的配置信息来查找其角色。 策略表达式模式 在大多数情况下,您将使用基本。选择高级可使用 AND 、 OR 和 NOutOf 编写表达式字符串。有关如何编写有效的策略表达式字符串的信息,请参阅 Hyperledger Fabric 文档中的背书策略。 签署人 选择必须签署策略以完成请求的成员数。 - 如果要添加新策略,请单击创建。如果要修改策略,请单击更新。
删除渠道的策略
您可以删除您创建的渠道策略。
无法删除默认策略:管理员、创建者、读取者、写入者、背书和 LifecycleEndorsement。此外,如果通道策略已分配给 ACL,则无法将其删除。在尝试删除渠道策略之前,请确认策略未分配。
您必须是管理员才能执行此任务。
- 转到控制台并选择 Channels(通道)选项卡。
此时将显示 Channels(通道)选项卡,通道表包含网络上所有通道的列表。
- 在通道表中,单击要删除策略的通道。
此时将显示 Channel Information(渠道信息)页面。
- 在渠道信息页中,单击渠道策略窗格。
- 找到要删除的策略,然后单击其更多选项按钮。
- 单击删除并确认删除。
什么是通道 ACL?
访问控制列表 (Access Control List,ACL) 使用策略来管理哪些组织和角色可以访问渠道的资源。
用户通过定位诸如查询系统链代码 (qscc
)、生命周期系统链代码( Hyperledger Fabric v2.x 上的 _lifecycle
、 Hyperledger Fabric v1.4.7 上的 lscc
)、配置系统链代码 (cscc
)、对等节点和事件等组件与区块链网络进行交互。这些组件与可在通道级别将策略分配给的特定资源(例如 GetConfigBlock
或 GetChaincodeData
)关联。这些策略是通道配置的一部分。
策略定义哪些组织和角色可以请求资源。发出请求时,策略会告知系统检查申请者的身份并确定其是否有权发出请求。创建渠道时,Oracle Blockchain Platform 将包含具有该渠道的默认超级账本架构 ACL。Oracle Blockchain Platform 还会为渠道创建默认策略(管理员、创建者、写入者和读取者;还会在 Hyperledger Fabric v2.x 上创建背书和 LifecycleEndorsement)。可以根据需要修改这些策略或创建新策略。请参见 What Are Channel Policies?(Hyperledger Fabric v2.x) 或 What Are Channel Policies?(Hyperledger Fabric v1.4.7) 。
更新通道 ACL
可以通过将策略分配给通道的资源来更新通道的 ACL。策略定义哪些组织和角色可以请求资源
在更新通道的 ACL 之前,您应该了解哪些策略和 ACL。请参阅什么是渠道策略?(Hyperledger Fabric v1.4.7) 和什么是渠道 ACL?
- 转到控制台并选择 Channels(通道)选项卡。
此时将显示 Channels(通道)选项卡,通道表包含网络上所有通道的列表。
- 在通道表中,单击要为其更新 ACL 的通道的名称。
此时将显示 Channel Information(渠道信息)页面。
- 在 Channel Information(渠道信息)页面中,单击 ACL 窗格。
- 在“资源”表中,找到要更新的资源。单击资源的展开按钮,然后选择要分配给资源的策略。
- 根据需要修改其他资源的策略。
- 单击 Update ACLs(更新 ACL)。
在渠道中添加或删除排序器
排序者管理组织可以在渠道中添加或删除排序者。
- 在创建者控制台中,打开 Channels(通道)选项卡并选择通道以查看其详细信息视图。
- 打开 Orderers 子选项卡。将列出当前加入渠道的所有排序节点。
- 单击联接通道。选择尚未在此通道中的 OSN,然后单击加入。
- 在创建者控制台中,打开 Channels(通道)选项卡并选择通道以查看其详细信息视图。
- 打开 Orderers 子选项卡。将列出当前加入渠道的所有排序节点。
- 选择要从渠道中删除的排序者,然后从其“更多操作”菜单中选择删除。
设置排序者管理员组织
您可以将渠道中 OSN 的管理分配给任何组织。通常会分配创建者或渠道创建者。
- 在创建者控制台中,打开 Channels(通道)选项卡。
- 选择要为其设置排序程序管理员组织的渠道,然后从“操作”菜单中选择管理 OSN 管理员。
- 从可用组织列表中选择,然后单击“提交”。
编辑渠道的订购服务设置
您可以更新特定渠道的订购服务设置。
- 另外,您可以更新整个网络的排序服务设置,如 Edit Ordering Service Settings for the Network 中所述。
- 如果您更改了排序服务设置,并且有针对网络运行的应用程序,则必须手动更新这些应用程序以使用修订后的排序服务设置。
- 这并不常见,但在某些情况下,您可能会向某些网络参与者公开不同的排序服务。在这种情况下,您将导出更新的网络配置块,所需的参与者将导入修订的设置。请参见 Join the Participant or Scaled-Out OSNs to the Founder's Ordering Service 。