管理排序服务

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

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

什么是排序服务?

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 工作。
  • 如果网络中工作的 OSN 达到 50% 或更少,则网络管理将不再起作用。不能创建通道,不能向网络中添加新的排序节点,也不能从网络中删除排序节点等。
  • 如果应用程序通道中工作的 OSN 达到 50% 或更少,则无法将任何事务处理提交到此应用程序通道。查询仍然可以正常运行,但是诸如添加新组织、更改访问控制列表或部署链代码等管理操作将失败。

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

当移除 OSN 或组织时,请确保超过 50% 的 OSN 仍能正常工作。例如,如果您有两个组织,每个组织有三个 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. 在参与者控制台(或横向扩展排序器的创建者控制台)中,在节点选项卡上查找排序者节点(如果存在多个节点,则查找第一个排序者节点)。选择此节点的 "Action"(操作)菜单,然后选择 Export OSN Settings(导出 OSN 设置)

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

    在使用此 OSN 的通道上运行的应用程序也需要此导出的 TLS 证书。

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

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

导出建立者的配置设置

将参与者或横向收缩的排序者添加到创建者之后,必须导出创建者的设置并将其导入到参与者或横向收缩的排序者中。

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

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

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

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

  3. 在参与者控制台中,刷新节点选项卡。orderer 节点状态将列为 down 。从“操作”菜单中选择开始

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

每次通过扩展排序器(如扩展实例中所述)添加新 OSN 时,必须重复这些步骤才能将新 OSN 添加到 Raft 群集。

注意:

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

编辑网络的排序服务设置

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

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

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

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

    通常将此值设置为 1 MB 或更小。

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

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

查看订购服务设置

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

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