管理排序服务

本主题包含有关创始人和参与者如何管理订购服务的信息。

除了本主题中介绍的内容外,还可以在控制台的渠道页上执行排序节点的多个特定于渠道的任务。请参见:

什么是排序服务?

Oracle Blockchain Platform 支持 Raft 作为共识类型。

有关 Raft 协议的 Hyperledger Fabric 实现的更多信息,请参见: The Ordering Service - Raft

使用较旧的 Kafka 共识类型,整个网络最多可以具有两个排序节点,并且必须加入所有通道。在某些情况下,它们可能会超载,并且无法缩小。通过 Raft 共识类型,网络可以具有任意数量的排序节点,并且每个通道都可以定义自己的排序节点集。不同的渠道可以使用不同的排序节点,排序节点将不再是瓶颈。

但是,正确配置 Raft 共识类型可能很复杂。有关于什么可以或不能做什么的规则,如果这些规则没有遵循通道,甚至网络可能不起作用。以下准则应减少遇到的问题:

使大多数订购服务节点 (Ordering Service Nodes,OSN) 保持活动状态

Raft 共识算法要求大多数排序服务节点 (Ordering Service Node,OSN) 正在工作;否则无法达成共识。多数意味着大于 50%。例如,对于五个 OSN,必须至少有三个 OSN 工作;对于六个 OSN,必须至少有四个 OSN 工作。
  • 如果有 50% 或更少的 OSN 在网络中工作,则网络管理将不再起作用。不能创建新通道,不能向网络中添加新的排序节点,不能从网络中删除排序节点,等等。
  • 如果有 50% 或更少的 OSN 在应用程序通道中工作,则无法将任何事务处理提交到此应用程序通道。查询仍然可以正常运行,但是管理操作(例如添加新组织、更改访问控制列表、实例化或部署链代码)将失败。

将新 OSN 添加到网络或应用程序通道时要小心。确保所有者是可信的,OSN 是健壮的。

删除 OSN 或组织时,请确保超过 50% 的 OSN 将继续工作。例如,如果您有 2 个组织,每个组织具有 3 个 OSN,则删除一个组织时,在删除期间,该组织将被解释为只有 50% 的 OSN 正常运行。在删除无关组织之前,将 OSN 添加到其余组织,以确保始终超过 50% 的 OSN 工作。

不经常添加或删除排序者

每次将新 OSN 添加到网络或通道中,或者从通道中删除现有 OSN 时,当前的 Raft OSN 集群将短暂地变得不稳定。在此期间内,无法处理任何事务处理,类似以下内容的错误消息可能指示此类状态:
UNKNOWN: Stream removed
SERVICE UNAVAILABLE
BAD REQUEST

此操作可能会持续几分钟。如果您已从通道中删除了以前的 Raft 引导者 OSN,则这可能会持续 20 分钟。

确保您不经常添加或删除排序规则。如果必须添加或删除多个排序器,则一次执行一个操作,确保在进行下一次更改之前网络已恢复运行状态。

确保新排序器尽快启动

在网络中添加新的排序器时,通常会涉及两个组织:新排序器的创建者和所有者。双方都必须遵循加入参与者或横向扩展 OSN 到创始人的订购服务中的说明才能完成,否则创始人将无法管理网络。

加入参与方或扩展 OSN 到创始人的订购服务

预配参与者实例时,将使用 3 个排序器创建该实例。那里的刽子手是无效的,直到他们加入一个网络。当您扩展创始人时,新的排序者也处于不活动状态,直到他们加入网络。

如果必须添加或删除多个排序器,则一次执行一个操作,确保在进行下一次更改之前网络已恢复运行状态。有关添加、删除、启动和停止 Raft 排序器的其他重要详细信息,请参阅什么是排序服务?

从参与者或分级排序器导出 OSN 设置

要将参与者或扩展的排序器加入网络,您需要导出其设置并将其导入到创建者中。

  1. 在参与者控制台(或扩展排序器的创建者控制台)中,在节点选项卡上查找排序器节点(或存在多个节点的第一个排序器节点)。选择此节点的“操作”菜单,然后选择导出 OSN 设置

    这将生成具有设置的 JSON 文件并保存该文件。该文件包含组织的证书和所选排序器服务节点 (OSN) 设置,这些设置由参与者组织的管理员的私钥签名。需要将此文件发送给创建者实例的管理员。

    使用此 OSN 在通道上运行的应用程序还需要此导出的 TLS 证书。请参阅开发应用程序之前

  2. 在创建者控制台中,打开 Network(网络)选项卡。单击添加 OSN 。此时将打开一个窗口,提示您输入参与者提供的 JSON 文件的位置。选择此项可上载文件,然后单击添加

    参与者组织或新扩展的排序器将添加到系统渠道列表的排序器组织部分。

导出建立者的配置设置

一旦将参与者或缩放的排序器添加到创建者,您需要导出创始人的设置并将其导入到参与者或缩放排序器。

  1. 在创建者控制台中,打开 Network(网络)选项卡。单击 Export Network Config Block

    网络配置块包含最新的系统通道配置块。这可以保存并发送给参与者管理员。

  2. 在参与者控制台(或扩展排序器的创建者控制台)中,在节点选项卡上查找排序器节点(或存在多个节点的第一个排序器节点)。选择此节点的“操作”菜单,然后选择导入网络配置块

    系统将提示您输入创建者实例管理员发送的文件。

  3. 在参与者控制台中,刷新 Node(节点)选项卡。排序节点状态应列为 "down"。从“操作”菜单中选择启动

    启动的每个排序节点都将添加到创建者的 Raft 集群中。

每次通过扩展排序器(如缩放实例中所述)添加新 OSN 时,都需要重复这些步骤以将新 OSN 添加到 Raft 集群。

注意:

不能在单个批处理中将多个 OSN 添加到网络中。确保一次仅添加 1 个 OSN。

编辑网络的订购服务设置

您可以更新创建者实例的排序服务设置。

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

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

    首选消息字节数 指定批中序列化消息允许的首选字节数。大于此大小的消息会产生更大的批处理,但批处理大小将等于或小于在 "Absolute Message Bytes"(绝对消息字节数)字段中指定的字节数。

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

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

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

查看订购服务设置

您可以查看导入参与者的 Oracle Blockchain Platform 实例的创始人的订购服务设置。

如果创建者更改了排序服务设置,则必须将新设置移植到参与者,如 Join the Participant or Scaled-Out OSNs to the Founder's Ordering Service 中所述。如果有针对网络运行的应用程序,则必须手动更新这些应用程序以使用修订后的排序服务设置。
  1. 转到参与者的控制台并选择网络选项卡。
  2. 单击对服务设置排序,然后单击查看
    将显示“排序设置”对话框。