管理排序服务
本主题包含有关创始人和参与者如何管理订购服务的信息。
什么是排序服务?
Oracle Blockchain Platform 支持 Raft 作为共识类型。
有关 Raft 协议的 Hyperledger Fabric 实现的更多信息,请参见: The Ordering Service - Raft 。
使用较旧的 Kafka 共识类型,整个网络最多可以有两个排序节点,它们必须加入所有通道。在某些情况下,它们可能超载,并且无法扩展。使用 Raft 共识类型,网络可以具有任意数量的排序节点,每个通道可以定义自己的排序节点集。不同的通道可以使用不同的排序节点,排序节点将不再是瓶颈。
但是,Raft 共识类型可能很难正确配置。有一些规则是关于什么可以或不能做什么,如果这些规则没有遵循频道,甚至网络可能不起作用。以下准则应减少您遇到的问题:
使大多数订购服务节点 (Ordering Service Nodes,OSN) 保持活动状态
- 如果有 50% 或更少的 OSN 在网络中工作,网络管理将不再正常运行。无法创建新通道,无法将新排序节点添加到网络中,无法从网络中删除排序节点等。
- 如果有 50% 或更少的 OSN 在应用程序通道中工作,则无法将任何事务处理提交到此应用程序通道。查询仍然可以正常运行,但是管理操作(如添加新组织、更改访问控制列表或实例化或部署链代码)将失败。
将新 OSN 添加到网络或应用程序通道时要小心。确保所有者值得信赖,并且 OSN 稳健。
在删除 OSN 或组织时,请确保 50% 以上的 OSN 仍然有效。例如,如果有 2 个组织,每个组织有 3 个 OSN,如果删除了一个组织,则在删除期间,该组织将被解释为只有 50% 的 OSN 正常运行。在删除无关组织之前,将 OSN 添加到剩余组织,以确保您始终超过工作 OSN 的 50%。
不经常添加或删除排序者
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 设置
要将参与者或扩展排序者加入网络,您需要导出其设置并将其导入创建者。
-
在参与者控制台(或横向扩展排序器的创建者控制台)中,在节点选项卡上查找排序者节点(如果存在多个节点,则查找第一个排序者节点)。选择此节点的 "Action"(操作)菜单,然后选择 Export OSN Settings(导出 OSN 设置)。
这将生成包含设置的 JSON 文件并保存文件。该文件包含组织的证书和由参与者组织的管理员的私钥签名的所选排序器服务节点 (orderer service node,OSN) 设置。此文件需要发送给创建者实例的管理员。
在使用此 OSN 的通道上运行的应用程序也需要此导出的 TLS 证书。请参见 Before You Develop an Application 。
-
在创始控制台中,打开 Network(网络)选项卡。单击 Add OSN(添加 OSN)。此时将打开一个窗口,提示您输入参与者提供的 JSON 文件的位置。选择此项可上载文件,然后单击添加。
参与者组织或新扩展的排序者将被添加到系统渠道列表的排序者组织部分。
导出建立者的配置设置
一旦参与者或横向扩展排序者被添加到创建者,您需要导出创建者的设置并将其导入到参与者或横向扩展排序者。
-
在创始控制台中,打开 Network(网络)选项卡。单击 Export Network Config Block 。
网络配置块包含最新的系统通道配置块。这可以保存并发送给参与者管理员。
-
在参与者控制台(或横向扩展排序器的创建者控制台)中,在节点选项卡上查找排序者节点(如果存在多个节点,则查找第一个排序者节点)。选择此节点的 "Action"(操作)菜单,然后选择 Import Network Config Block(导入网络配置块)。
系统将提示您输入创建者实例管理员发送的文件。
-
在参与者控制台中,刷新节点选项卡。排序节点状态应列为 "down"。在“操作”菜单中选择启动。
启动的每个排序节点都将添加到创建者的 Raft 集群中。
注意:
不能将多个 OSN 添加到单个批中的网络中。确保一次仅添加 1 个 OSN。编辑网络的排序服务设置
您可以更新创建者实例的排序服务设置。
- 更新后的设置在创建新通道时使用,不会应用于现有通道。
- 另外,您可以更新单个现有渠道的订购服务设置,如 Edit Ordering Service Settings for a Channel 中所述。
- 如果您更改了订购服务设置,并且存在针对网络运行的应用程序,则必须手动更新这些应用程序以使用修订后的订购服务设置。
- 这并不常见,但在某些情况下,您可能会向一些网络参与者公开不同的排序服务。在这种情况下,您将导出更新的网络配置块,所需的参与者将导入修改后的设置。请参见 Join the Participant or Scaled-Out OSNs to the Founder's Ordering Service 。
查看订购服务设置
您可以查看导入到参与者的 Oracle Blockchain Platform 实例的创始人的订购服务设置。