管理排序服务
本主题包含有关创始人和参与者如何管理订购服务的信息。
什么是排序服务?
Oracle Blockchain Platform 支持 Raft 作为共识类型。
有关 Raft 协议的 Hyperledger Fabric 实现的更多信息,请参见: The Ordering Service - Raft 。
使用较旧的 Kafka 共识类型,整个网络最多可以有两个排序节点,它们必须加入所有通道。在某些情况下,它们可能超载,并且无法扩展。使用 Raft 共识类型,网络可以具有任意数量的排序节点,每个通道可以定义自己的排序节点集。不同的通道可以使用不同的排序节点,排序节点将不再是瓶颈。
但是,要正确配置 Raft 共识类型可能会很复杂。有一些规则可以或不能做什么,如果这些规则没有遵循通道,甚至网络可能不起作用。以下准则可减少您遇到的问题数:
使大多数订购服务节点 (Ordering Service Nodes,OSN) 保持活动状态
- 如果网络中工作的 OSN 达到 50% 或更少,则网络管理将不再起作用。不能创建通道,不能向网络中添加新的排序节点,也不能从网络中删除排序节点等。
- 如果应用程序通道中工作的 OSN 达到 50% 或更少,则无法将任何事务处理提交到此应用程序通道。查询仍然可以正常运行,但是诸如添加新组织、更改访问控制列表或部署链代码等管理操作将失败。
将新 OSN 添加到网络或应用程序通道时要小心。确保所有者值得信赖,并且 OSN 稳健。
当移除 OSN 或组织时,请确保超过 50% 的 OSN 仍能正常工作。例如,如果您有两个组织,每个组织有三个 OSN,则如果删除一个组织,在删除过程中,它将被解释为只有 50% 的 OSN 正常工作。在删除无关组织之前将 OSN 添加到其余组织,以确保始终超过 50% 的 OSN 工作。
不经常添加或删除排序者
UNKNOWN: Stream removed
SERVICE UNAVAILABLE
BAD REQUEST
这可能持续几分钟。如果您已从渠道中删除了先前的 Raft 领导者 OSN,则这可能会持续 20 分钟。
确保您不会频繁添加或删除排序者。如果必须添加或删除多个排序节点,请一次执行一个操作,并确保网络在进行下一次更改之前已恢复运行状态。
确保新排序器尽快启动
在网络中添加新的排序者时,通常会涉及两个组织:新排序者的创始人和所有者。双方必须按照加入参与方或将 OSN 横向扩展到创始人的订购服务中的说明完成操作,否则创始人将无法管理网络。
加入参与者或扩展 OSN 到创始人订购服务
预配参与者实例时,将使用 3 个排序者创建该实例。排序者处于不活动状态,直到它们加入网络。当您横向扩展创始人时,新的排序者也会处于不活动状态,直到他们加入网络。
要添加或删除多个排序节点,请一次添加或删除一个排序节点,并确保在进行下一次更改之前网络已恢复运行状态。有关添加、删除、启动和停止 Raft 排序程序的其他重要详细信息,请参阅什么是排序服务?。
从参与者或扩展排序者导出 OSN 设置
要将参与者或横向扩展的排序者加入网络,请导出其设置并将其导入到创建者。
-
在参与者控制台(或横向扩展排序器的创建者控制台)中,在节点选项卡上查找排序者节点(如果存在多个节点,则查找第一个排序者节点)。选择此节点的 "Action"(操作)菜单,然后选择 Export OSN Settings(导出 OSN 设置)。
这将生成包含设置的 JSON 文件并保存文件。该文件包含组织的证书以及由参与者组织的管理员私钥签名的所选排序器服务节点 (Orderer Service Node,OSN) 设置。将此文件发送给创建者实例的管理员。
在使用此 OSN 的通道上运行的应用程序也需要此导出的 TLS 证书。
-
在创始控制台中,打开 Network(网络)选项卡。单击 Add OSN 。此时将打开一个窗口,提示您输入参与者提供的 JSON 文件的位置。选择此项可上载文件,然后单击添加。
参与者组织或新扩展的排序者将添加到系统渠道列表的排序者组织部分。
导出建立者的配置设置
将参与者或横向收缩的排序者添加到创建者之后,必须导出创建者的设置并将其导入到参与者或横向收缩的排序者中。
-
在创始控制台中,打开 Network(网络)选项卡。单击 Export Network Config Block 。
网络配置块包含最新的系统通道配置块。这可以保存并发送给参与者管理员。
-
在参与者控制台(或横向扩展排序器的创建者控制台)中,在节点选项卡上查找排序者节点(如果存在多个节点,则查找第一个排序者节点)。选择此节点的 "Action"(操作)菜单,然后选择 Import Network Config Block(导入网络配置块)。
系统会提示您输入由创建者实例管理员发送的文件。
-
在参与者控制台中,刷新节点选项卡。orderer 节点状态将列为 down 。从“操作”菜单中选择开始。
每个启动的排序节点都将添加到创建者的 Raft 集群中。
注意:
您不能将多个 OSN 添加到单个批中的网络。确保一次仅添加一个 OSN。编辑网络的排序服务设置
您可以更新创建者实例的排序服务设置。
- 更新后的设置在创建通道时使用,不会应用于现有通道。
- 您可以更新单个现有渠道的排序服务设置,如编辑渠道的排序服务设置中所述。
- 如果您更改了订购服务设置,并且存在针对网络运行的应用程序,则必须手动更新这些应用程序以使用修订后的订购服务设置。
- 这并不常见,但在某些情况下,您可能会向某些网络参与者公开不同的订购服务。在这种情况下,您将导出更新的网络配置块,所需的参与者将导入修订后的设置。请参见 Join the Participant or Scaled-Out OSNs to the Founder's Ordering Service 。
查看订购服务设置
您可以查看导入到参与者的 Oracle Blockchain Platform 实例的创始人的订购服务设置。