管理排序服务

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

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

什么是排序服务?

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

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

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

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

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

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

将新 OSN 添加到网络或应用程序通道时要小心。确保所有者值得信赖,并且 OSN 稳健。

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

不经常添加或删除排序者

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

这可能会持续几分钟。如果您已从通道中删除了之前的 Raft 领导 OSN,则这可能持续 20 分钟。

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

确保新排序器尽快启动

在网络中添加新的排序者时,通常会涉及两个组织:新排序者的创始人和所有者。双方都必须按照 Join the Participant or Scaled-Out OSNs to the Founder's Ordering Service 中的说明进行操作,否则创始人将无法管理网络。

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

预配参与者实例时,将创建 3 个排序者。折磨者处于非活动状态,直到他们加入网络。当您扩展创建者时,新排序者也处于不活动状态,直到他们加入网络。

如果必须添加或删除多个排序者,请在进行下一次更改之前,一次执行一个操作,确保网络已恢复到运行状态。有关添加、删除、启动和停止 Raft 排序程序的其他重要详细信息,请参见 What is the Ordering Service?

从参与者或扩展排序者导出 OSN 设置

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

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

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

    在使用此 OSN 的通道上运行的应用程序也需要此导出的 TLS 证书。请参见 Before You Develop an Application

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

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

导出建立者的配置设置

一旦参与者或横向扩展排序者被添加到创建者,您需要导出创建者的设置并将其导入到参与者或横向扩展排序者。

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

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

  2. 在参与者控制台(或横向扩展排序器的创建者控制台)中,在节点选项卡上查找排序者节点(如果存在多个节点,则查找第一个排序者节点)。选择此节点的 "Action"(操作)菜单,然后选择 Import Network Config Block(导入网络配置块)

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

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

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

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

注意:

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

编辑网络的排序服务设置

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

请注意以下有关编辑订购服务设置的重要信息:
  • 更新后的设置在创建新通道时使用,不会应用于现有通道。
  • 另外,您可以更新单个现有渠道的订购服务设置,如 Edit Ordering Service Settings for a Channel 中所述。
  • 如果您更改了订购服务设置,并且存在针对网络运行的应用程序,则必须手动更新这些应用程序以使用修订后的订购服务设置。
  • 这并不常见,但在某些情况下,您可能会向一些网络参与者公开不同的排序服务。在这种情况下,您将导出更新的网络配置块,所需的参与者将导入修改后的设置。请参见 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. 单击更新
    此时将保存更新的设置。

查看订购服务设置

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

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