管理通道

本主题包含有关管理网络中的渠道的信息,例如如何创建和查看渠道、如何加入对等节点以及如何指定和锚定对等节点、如何处理策略和访问控制列表以及如何将排序者与渠道关联。

什么是通道?

通道对对对等节点和分类账数据进行分区和隔离,以在区块链网络上提供专用和机密事务处理。

成员定义并构建渠道,以允许特定对等方执行同一区块链网络上的其他成员无法查看或访问的专用和机密事务处理。每个通道包括:
  • 对等
  • 共享分类账
  • 在通道上实例化的链代码
  • 一个或多个排序服务节点
  • 应用定义的通道策略定义和 ACL

通道中的每个对等点都具有自己的身份,可以向通道对等点和服务进行身份验证。虽然对等节点可以属于多个渠道,但有关事务处理、分类账状态和渠道成员资格的信息仅限于每个渠道中的对等节点。

您可以使用 Oracle Blockchain Platform 控制台或 Hyperledger Fabric SDK 在区块链网络上创建渠道。请参见 View Channels

查看通道

您网络中的成员使用渠道私下通信区块链交易信息。

使用通道选项卡可查看网络中的通道列表、创建和监视通道、指定锚点对等点以及升级通道上使用的实例化链代码。
  1. 转到控制台并选择渠道选项卡。
    此时将显示 Channels(通道)选项卡,并且通道表包含网络上所有通道的列表。
  2. 在渠道表中,单击所需的有关信息的渠道名称。请注意,如果与渠道连接的所有对等节点都已停止,则会列出该渠道,但其信息不可供查看。
    此时将显示渠道信息页。
  3. 单击渠道信息页的窗格以查找有关渠道的信息。
    我可以在此窗格中执行哪些操作?
    帐目 获取有关渠道的分类账活动的信息,例如块编号和块中的用户事务处理数。单击块编号可钻取到有关其事务处理的信息。您可以使用筛选器字段指定要查看的汇总信息(例如,来自过去一天或上个月的信息),或使用自定义选项输入开始和结束时间。请参阅查看渠道的分类帐活动
    (Hyperledger Fabric v2.x) 部署的链代码 查看已在渠道上部署的链代码列表。
    (Hyperledger Fabric v1.4.7) 实例化链代码 查看已在通道上实例化的链代码列表。
    排序者 查看当前活动的排序者列表,并允许您添加新的 OSN 以加入通道。
    对等 查看已加入渠道的对等节点列表。使用此部分可以设置通道的锚点对等点。
    组织 查看其对等点正在使用该通道进行通信的网络成员列表。
    通道策略 查看为渠道创建的标准策略和任何策略的列表。使用此部分可以添加、修改和删除策略。
    ACL 查看访问控制列表 (access control list,ACL) 以及用于管理哪些组织和角色可以访问渠道资源的策略。

创建通道

您可以将通道添加到网络,并指定哪些成员可以使用通道,以及哪些对等点可以加入通道。无法删除渠道。

您必须是管理员才能完成此任务。

  1. 转到控制台并选择渠道选项卡。
  2. 通道选项卡中,单击创建新通道
  3. 渠道名称字段中,输入渠道的唯一名称。通道名称的长度最大为 128 个字符。
  4. 组织部分中,选择要在该渠道上通信的任何其他成员。
    如果您在参与者实例中工作,则需要在创建者的 MSP ID 显示在“组织”部分中之前将创建者添加到您的实例。要添加创建者组织,请转到 "Network"(网络)选项卡,然后单击 Add Organization(添加组织)按钮上载创建者的证书。
  5. MSP ID ACL 部分中,指定有权访问每个选定组织的渠道和权限的组织。请注意,您可以稍后根据需要向渠道中添加或删除更多组织。
    您的组织的权限设置为写入 (ReaderWriter),您无法修改此设置。默认情况下,其他成员的权限设置为写入 (ReaderWriter),但如果不希望成员调用链代码以及仅读取通道信息和通道块,则可以将这些权限更改为读取 (ReaderOnly)。
  6. (可选)在对等连接渠道字段中,选择一个或多个对等连接。请注意以下信息:
    • 如果您的网络包含参与者,则参与者的同伴不会显示在此列表中。参与者必须使用自己的控制台将同级加入到渠道中。参与者无法将其同级加入渠道,除非其组织已添加到渠道的 MSP ID ACL 部分。
    • 如果您只想创建渠道,则不要选择任何对等节点。您可以稍后向通道添加对等节点。
  7. 单击提交
    渠道表显示新渠道。
创建渠道后,您可以完成以下任务:
  • 在通道上部署链代码。请参阅部署链代码

  • 如果网络包含参与者,则这些参与者使用控制台将成员对等节点加入到通道中。请参见 Join a Peer to a Channel

查看渠道的分类帐活动

使用分类账查找特定渠道上事务处理的汇总信息和运行时统计数据。

  1. 转到控制台并选择渠道选项卡。
  2. 在渠道表中,单击需要事务处理信息的渠道名称。在渠道信息页中,确认已选择分类帐窗格。
  3. 使用分类帐汇总区域查找有关渠道活动的基本信息,例如分类帐链中的块总数以及渠道上的用户事务处理总数。
  4. 要查看在特定时间(如最后一天或一周)发生的区块链活动,请使用筛选器下拉列表选择所需的时间范围。要查找并下钻到特定的事务处理集,请选择自定义并在开始时间结束时间字段中输入搜索标准,或者单击日历图标并选取所需的日期。单击应用
    如果选择特定时段(例如,最后一天),然后再次选择该时段以重新运行查询,则查询不会再次运行。要获取最新信息,请单击刷新按钮。
    可以为块显示以下事务处理类型:
    • genesis - 运行配置块以初始化通道的事务。
    • data (sys) —启动链代码容器以使链代码可供使用的事务处理。
    • data —在通道上调用链代码事务以执行。
  5. 要查找有关特定事务处理的更多信息,请在查询分类账表中找到该事务处理,然后单击它。“事务处理”表显示事务处理的详细信息。

    对于任何给定的块,表中的事务处理将按事务处理编号的顺序列出,该编号在创建块时由排序服务分配。因此,表中列出的事务处理可能有时间戳(来自对等方对链代码的背书),这些时间戳位于同一块中的其他事务处理之前或之后。单个块中的事务处理时间范围受排序服务设置(包括批超时参数)的控制(排序服务在初始事务处理之后等待附加事务处理的时间,然后再切断块)。

    事务处理详细信息 说明
    TxID 分配给事务处理的唯一字母数字 ID。TxID 构造为与签名标识的序列化字节连接的随机数的散列。
    Time 事务的时间戳(事务发生的日期和时间)。
    链代码 执行事务处理的链代码的名称。此字段可以显示您编写、安装和部署的链代码的名称,但也可以显示系统链代码。

    系统链代码选项包括:

    • (Hyperledger Fabric v2.x) _lifecycle(生命周期)- 用于生命周期请求,例如安装、部署和升级。
    • (Hyperledger Fabric v1.4.7) LSCC- 用于生命周期请求,例如实例化、安装和升级。
    • QSCC —用于查询。此链代码包括分类账查询的 API。
    状态 指明事务处理是成功还是失败的状态。
  6. 单击 TxID 旁边的三角形图标可查看有关事务处理的深入信息,例如函数名称、参数、验证结果、响应状态、启动器和背书者。
    如果事务处理失败,则可以使用 TxID 在对等节点或排序节点上搜索错误日志以了解更多信息。

查看或更新渠道的组织列表

您可以查看有权访问该渠道的组织列表。如果您创建了渠道,则可以更改组织对渠道的权限,并且可以将组织添加到渠道或从渠道中删除它们

  1. 转到控制台并选择渠道选项卡。
    此时将显示 Channels(通道)选项卡,并且通道表包含网络中所有通道的列表。
  2. 在渠道表中,找到所需信息的渠道,单击渠道更多操作按钮,然后单击编辑渠道组织
    显示编辑组织页。
  3. MSP ID ACL 部分中,可以执行以下操作:
    • 修改组织的权限。创建通道的组织设置为写入 (ReaderWriter)。您不能更改此设置。

    • 如果您是网络创始人,则清除组织的复选框以将其从渠道中删除。如果您是网络参与者,则使用删除按钮从渠道中删除组织。如果从渠道中删除组织,则组织及其对等节点将无法再在渠道上查询、调用和实例化链代码。被删除组织的同行无法加入渠道。

    • 单击组织的复选框以将组织添加到渠道并设置其权限。默认情况下,每个成员的权限都设置为写入 (ReaderWriter),但如果不希望成员调用链代码以及仅读取通道信息和通道块,则可以将其更改为读取 (ReaderOnly)。

  4. 单击提交保存更改。

加入对等节点到渠道

您可以将对等节点添加到通道,以便该节点可以使用它与通道上的其他对等节点交换专用事务处理信息。

请注意以下信息:
  • 创建通道时,您可以指定哪些本地对等节点可以加入通道。

  • 如果您要创建包含参与者的网络,则可以选择该参与者作为渠道上的成员。或者,您可以在创建渠道后添加参与者。

  • 您的实例具有多个可用性域或容错域,Oracle 建议您加入每个分区到通道的一个对等节点。这是因为,如果一个 VM 不可用,则通道仍可用于背书和提交。要确定对等方位于哪个域,请在 More Actions(更多操作)菜单中,选择 Show AD Info(显示 AD 信息)以查看可用性域信息。

  • 最多可以从每个域加入七个对等节点。

请参阅创建通道

您必须是管理员才能执行此任务。

  1. 转到控制台并选择节点选项卡。
  2. 节点选项卡中,单击要添加到通道的对等节点。
  3. 节点信息页中,单击渠道窗格以查看对等方已使用的渠道列表。
  4. 单击加入新渠道
    此时将显示加入新渠道对话框。
  5. 单击渠道名称字段,然后从列表中选择要加入的渠道的名称。再次单击该字段以选择其他渠道。单击联接

添加定位点

每个使用通道的成员必须至少指定一个锚点对等点。锚点对等点是主要网络联系点,用于发现通道上的其他网络对等点并与之通信。

您可以将组织中的一个或多个对等节点指定为渠道上的锚点对等节点。对于高可用性网络,您可以指定两个或多个锚点对等点。使用网络通道的所有成员都必须使用其控制台将其一个或多个对等节点指定为锚定对等节点。

您必须是管理员才能执行此任务。

  1. 转到控制台并选择渠道选项卡。
    此时将显示 Channels(通道)选项卡,并且通道表包含网络上所有通道的列表。
  2. 在通道表中,单击要向其添加锚点对等点的通道名称。
    此时将显示渠道信息页。
  3. 渠道信息页中,单击对等方窗格。
  4. 查找要指定为锚定对等点的对等点,然后单击其锚定对等点复选框以选择它们。
  5. 单击应用 按钮。

更改或删除锚点对等点

您可以更改或删除渠道的锚点对等点。锚点对等点是主要网络联系点,用于发现通道上的其他网络对等点并与之通信。

在更改或删除通道的锚点对等点之前,请注意以下信息:

  • 要在渠道上进行通信,您必须将组织中的一个或多个对等节点指定为锚点对等节点。
  • 对于高可用性网络,您可以指定两个或多个锚点对等点。
  • 使用网络通道的所有成员都必须使用其控制台将其一个或多个对等节点指定为锚定对等节点。

您必须是管理员才能执行此任务。

  1. 转到控制台并选择渠道选项卡。
    此时将显示 Channels(通道)选项卡,并且通道表包含网络上所有通道的列表。
  2. 在通道表中,单击要从中删除锚点对等点的通道名称。
    此时将显示渠道信息页。
  3. 渠道信息页中,单击对等方窗格。
  4. 查找要删除的对等节点或对等节点,并清除其锚点对等节点复选框。或者,要添加另一个对等节点作为锚点对等节点,请单击其锚点对等节点复选框以将其选中。
  5. 单击应用 按钮。

查看有关已部署链代码的信息

您可以查看有关在网络中的不同通道上部署的链代码的信息。

您可能需要有关已部署链代码的信息来确定是否需要升级链代码,或者找出在哪些渠道上部署了链代码。
  1. 转到控制台并选择渠道选项卡。
  2. 在通道表中,单击包含要查看其信息的链代码的通道名称。
  3. 渠道信息页中,确认已选择“部署的链代码”窗格
  4. 在链代码表中,您可以:
    • 单击链代码包 ID 可转到“链代码”选项卡,以了解有关它的更多信息。例如,链代码所安装到的对等点和部署链代码的通道。
    • 在链代码的“更多操作”菜单中,单击查看链代码定义以查找有关链代码定义的详细信息,包括背书策略。
  5. (可选)如果您看到没有链代码的渠道列表,则可以转至“链代码”选项卡并向渠道部署链代码。请参阅部署链代码

使用渠道策略和 ACL

本主题包含有关渠道策略和访问控制列表 (access control list,ACL) 的信息。它概述了什么是策略、策略类型以及如何修改它们,以及如何使用 ACL 管理哪些组织和角色可以访问渠道的资源。

什么是渠道策略?(超级账本结构 v2.x)

策略定义了一组条件。所需各方必须满足政策的条件,才能将其签名视为有效,并且相应的请求在网络上发生。

区块链网络由这些策略管理。策略根据与满足请求所需的资源关联的策略检查与请求关联的身份。策略位于通道的配置中。

配置通道的策略后,将它们分配给通道的 ACL 资源,以确定在通道上发生更改或操作之前需要签署哪些成员。例如,假设修改了“写入者”策略以包括组织 A 或组织 B 中的成员。然后,将 Writers 策略分配给通道的 cscc/GetConfigBlock ACL 资源。现在,只有组织 A 或组织 B 的成员才能在 cscc 组件上调用 GetConfigBlock

有哪些策略类型?

有两种策略类型:签名和 ImplicitMeta。

  • 签名 - 指定评估规则的组合。它支持 ANDORNOutOf 的组合。例如,您可以定义“组织 A 和其他 2 位管理员的管理员”或“20 位组织管理员中的 11 位”之类的内容。

    您创建的任何新策略都将是签名策略。

  • ImplicitMeta - 此策略类型仅在配置上下文中有效。它汇总配置层次中更深层次的策略评估结果,这些策略由签名策略定义。它支持默认规则,例如“大多数组织管理策略”。

何时创建策略?

将渠道添加到网络时,Oracle Blockchain Platform 会创建默认策略。默认策略为:管理员、写入者、读取者、背书、LifecycleEndorsement(ImplicitMeta 策略)和创建者(签名策略)。如果需要,可以修改这些策略或创建新策略。

请注意有关渠道策略的以下重要问题:

  • 可以使用控制台创建通道并将组织的 ACL 设置为 ReaderOnly。保存新渠道后,无法从渠道的“编辑组织”选项更新此 ACL 设置。

    但是,您可以使用控制台的“Manage Channel Policies(管理渠道策略)”功能将组织添加到“Writers(写入者)”策略中,该策略将覆盖渠道的 ReaderOnly ACL 设置。

添加或修改渠道的策略

您可以添加或修改渠道的策略,以指定在渠道上执行特定操作所需的成员。定义策略后,将它们分配给通道的 ACL。

在添加或更新策略之前,您需要了解 Oracle Blockchain Platform 如何创建默认渠道策略。请参见 What Are Channel Policies?(Hyperledger Fabric v2.x)

您必须是管理员才能执行此任务。

  1. 转到控制台并选择通道选项卡。

    此时将显示 Channels(通道)选项卡,并且通道表包含网络上所有通道的列表。

  2. 在通道表中,单击要为其添加策略或修改策略的通道名称。

    此时将显示渠道信息页。

  3. 渠道信息页中,单击渠道策略窗格。
  4. 可执行以下操作之一:
    • 要添加新策略,请单击创建新策略按钮。此时将显示创建策略对话框。在 Policy Name 字段中输入一个名称,然后在 Policy Type 字段中选择 Signature。展开签名策略部分。
    • 要修改现有策略,请单击策略的名称。将显示 Update Policy 对话框。
  5. 单击添加身份按钮以添加组织。或者根据需要修改现有签名策略。请注意以下信息:
    说明
    MSP 标识 从下拉菜单中选择必须对策略进行签名的组织。
    角色 选择策略所需的对应对等角色。通常,这将是会员。您可以通过查看对等节点的配置信息来查找其角色。
    策略表达式模式 在大多数情况下,您将使用基本。选择高级可使用 ANDORNOutOf 编写表达式字符串。有关如何编写有效策略表达式字符串的信息,请参见 Hyperledger Fabric 文档中的背书策略
    签署人 选择为履行请求而必须签署策略的成员数。
  6. 如果要添加新策略,请单击创建。如果要修改策略,请单击更新

删除渠道的策略

您可以删除您创建的渠道策略。

无法删除默认策略:管理员、创建者、读取者、写入者、背书和 LifecycleEndorsement。此外,如果渠道策略已分配给 ACL,则无法删除该策略。尝试删除渠道策略之前,请确认未分配策略。

您必须是管理员才能执行此任务。

  1. 转到控制台并选择通道选项卡。

    此时将显示 Channels(通道)选项卡,并且通道表包含网络上所有通道的列表。

  2. 在通道表中,单击要删除策略的通道。

    此时将显示渠道信息页。

  3. 渠道信息页中,单击渠道策略窗格。
  4. 找到要删除的策略并单击其更多选项按钮。
  5. 单击删除并确认删除。

什么是通道 ACL?

访问控制列表 (Access Control List,ACL) 使用策略管理哪些组织和角色可以访问渠道的资源。

用户通过定位组件(例如查询系统链代码 (qscc)、生命周期系统链代码 (_lifecycle)、配置系统链代码 (cscc)、对等节点和事件)与区块链网络进行交互。这些组件与可以在渠道级别为其分配策略的特定资源(例如 GetConfigBlockGetChaincodeData)关联。这些策略是通道配置的一部分。

策略定义哪些组织和角色可以请求资源。发出请求时,策略会告知系统检查请求者的身份,并确定是否有权发出请求。创建渠道时,Oracle Blockchain Platform 包含带该渠道的默认 Hyperledger Fabric ACL。Oracle Blockchain Platform 还为渠道创建默认策略(管理员、创建者、写入者、读取者、背书和 LifecycleEndorsement)。您可以根据需要修改这些策略或创建新策略。请参见 What Are Channel Policies?(Hyperledger Fabric v2.x)

更新通道 ACL

可以通过将策略分配给通道的资源来更新通道的 ACL。策略定义哪些组织和角色可以请求资源

在更新通道的 ACL 之前,您应该了解什么是策略和 ACL。有关更多信息,请参见 What Are Channel ACLs?

  1. 转到控制台并选择通道选项卡。

    此时将显示 Channels(通道)选项卡,并且通道表包含网络上所有通道的列表。

  2. 在通道表中,单击要为其更新 ACL 的通道的名称。

    此时将显示渠道信息页。

  3. 渠道信息页中,单击 ACL 窗格。
  4. 在 "Resources"(资源)表中,找到要更新的资源。单击资源的展开按钮,然后选择要分配给资源的策略。
  5. 根据需要修改其他资源的策略。
  6. 单击 Update ACLs(更新 ACL)

在渠道中添加或删除排序者

排序者管理组织可以在渠道中添加或删除排序者。

要将排序者添加到通道,请执行以下操作:
  1. 在创建者控制台中,打开通道选项卡,然后选择通道以查看其详细信息视图。
  2. 打开排序者子选项卡。将列出当前加入通道的所有排序节点。
  3. 单击联接渠道。选择尚未在此通道中的 OSN,然后单击加入
要从通道中删除排序者,请执行以下操作:
  1. 在创建者控制台中,打开通道选项卡,然后选择通道以查看其详细信息视图。
  2. 打开排序者子选项卡。将列出当前加入通道的所有排序节点。
  3. 选择要从渠道中删除的排序者,从其“更多操作”菜单中选择删除

设置排序者管理员组织

您可以将渠道中 OSN 的管理分配给任何组织。通常会分配创建者或渠道创建者。

  1. 在创始控制台中,打开 Channels(通道)选项卡。
  2. 选择要为其设置排序器管理员组织的渠道,然后从“操作”菜单中选择管理 OSN 管理员
  3. 从可用组织列表中进行选择,然后单击“提交”

编辑渠道的订购服务设置

您可以更新特定渠道的订购服务设置。

请注意以下有关编辑渠道的订购服务设置的重要信息:
  • 另外,您可以更新整个网络的订购服务设置,如 Edit Ordering Service Settings for the Network 中所述。
  • 如果您更改了订购服务设置,并且存在针对网络运行的应用程序,则必须手动更新这些应用程序以使用修订后的订购服务设置。
  • 这并不常见,但在某些情况下,您可能会向一些网络参与者公开不同的排序服务。在这种情况下,您将导出更新的网络配置块,所需的参与者将导入修改后的设置。请参见 Join the Participant or Scaled-Out OSNs to the Founder's Ordering Service
您必须是管理员才能执行此任务。
  1. 转到创始人的控制台,然后选择渠道选项卡。
  2. 定位渠道,单击更多操作菜单,然后选择更新订购服务设置
    此时将显示 Ordering Service Settings(排序服务设置)对话框。
  3. 根据需要更新设置。
    说明
    批处理超时(毫秒) 指定系统在创建批处理之前应等待的时间量(以毫秒为单位)。输入一个介于 1 和 3600000 之间的数字。
    最大消息计数 指定要包括在批中的最大消息数。输入一个介于 1 和 4294967295 之间的数字。
    绝对消息字节数 指定批中序列化消息允许的最大字节数。

    此数字必须大于您在“首选消息字节数”字段中输入的值。

    首选消息字节数 指定批中序列化消息允许的首选字节数。大于此大小的消息会导致批处理变大,但批处理大小将等于或小于您在“绝对消息字节数”字段中指定的字节数。

    Oracle 建议将此值设置为 1 MB 或更小。

    在此字段中输入的值必须小于在“绝对消息字节数”字段中输入的值。

    快照时间间隔大小 定义每个快照的 MB 数。
  4. 单击更新
    此时将保存更新的设置。