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