使用GoQuorum
向网络添加节点
向现有网络添加新节点的范围可以从经常发生 或 永远不会发生。 在公共区块链中,例如以太坊主网,新节点不断加入并与现有网络对话。 在许可的区块链中,这可能不会经常发生,但随着网络的发展,这仍然是一项重要的任务。
在向网络添加新节点时,重要的是要了解 GoQuorum 网络和 Tessera 网络是不同的,并且不会以任何方式重叠。
因此,适用于一个的选项不适用于另一个。
在某些情况下,它们可能有自己的选项来实现类似的任务,但必须单独指定。
先决条件
添加 GoQuorum 节点
Raft
1. 在现有节点上,将新对等点添加到 Raft 网络。
在 geth 控制台中,运行:
结果是:
在此示例中,您的新节点的 Raft ID 为 7 。
2.如果您使用许可或对等发现,请参阅 extra options . 。
3.您现在需要使用网络的创世配置初始化新节点。初始化新节点与原始节点完全相同。
4.现在您可以启动新节点并让它与网络同步。 现在的主要区别是使用 --raftjoinexisting 标志,它让节点知道它正在加入现有网络。 在步骤 1 中获得的 Raft ID 作为参数传递给这个标志:
新节点现已启动并运行,并将开始从现有节点同步区块链。 一旦完成,它就可以像任何其他对等点一样发送新的交易。
IBFT/Clique
将节点添加到 IBFT/Clique 网络要简单一些,因为它只需要配置自己而不是在网络上预先分配(除了许可)。
1. 使用网络的创世配置初始化新节点。初始化新节点和原来的节点完全一样:
2.如果您使用许可或对等发现,请参阅 extra options 。
3.启动新节点,指向 bootnode 或在 static-nodes.json 文件中列出现有对等节点。 建立连接后,节点将开始同步区块链,然后可以发送交易。
额外选项
无论使用何种共识机制,某些选项都会生效。
许 可节点
如果使用 permissioned-nodes.json 文件进行许可,那么您必须确保在新节点能够与现有节点通信之前在所有节点上更新此文件。
您无需重新启动任何节点即可使更改生效。
静态节点连接
如果不使用对等节点发现(例如,您指定了 --nodiscover ),则节点建立的唯一连接将是与 static-nodes.json 文件中定义的对等节点。
添加新节点时,您应该确保在其 static-nodes.json 文件中定义了对等节点。
您在此处定义的对等点越多,您的网络连接性和容错性就越好。
点对点发现
如果您使用发现,那么除了静态节点之外,还有更多选项可用。
任何连接到对等节点的节点(开始时将是静态节点列表中定义的节点)然后对您可见,允许您连接到它们; 这是自动完成的。
您可以指定任意数量的引导节点,由 --bootnodes 参数定义。 这需要一个逗号分隔的 enode URI 列表,类似于 static-nodes.json 文件。 它们的行为方式与静态节点相同,让您连接到它们,然后找出其他对等点,然后再连接到哪些对等点。
添加私有交易管理器
在本教程中,将不关注添加新的私有交易管理器 (PTM) 的高级功能。 本教程使用 Tessera 作为示例。
向 PTM 添加一个新节点相对简单,但是有很多额外的选项可以使用,这就是这里将要解释的。
添加新的 PTM 节点
在基本设置中,添加新的 PTM 节点就像确保您在对等列表中列出现有节点一样简单。
在 Tessera 中,这相当于配置文件中的以下内容 :
从那里, Tessera 将连接到该对等点并发现网络中的所有其他 PTM 节点,依次连接到每个节点。
IP白名单
Tessera 提供的 IP 白名单允许您限制连接,就像对 GoQuorum 的 permissioned-nodes.json 文件所做的一样。
只有在您的对等列表中列出的 IP 地址 / 主机名才能连接到您。
有关设置的详细信息,请参阅 Tessera configuration page 。
为了确保新节点被网络接受:
1. 在允许通信之前,您需要将新对等点添加到每个现有节点。 Tessera 提供了一种无需重新启动已经运行的节点即可执行此操作的方法:
2.可以启动新的对等点,设置 peers 配置以镜像现有网络。 如果网络中有 3 个现有节点,则新节点配置将如下所示:
新节点将允许来自现有对等方的传入连接,然后现有对等方将允许来自新对等方的传入连接!
发现
Tessera 发现类似于 IP 白名单。 不同之处在于 IP 白名单会阻止节点之间的通信,而禁用发现只会影响您跟踪的公钥。
有关设置的详细信息,请参阅 Tessera configuration page 。
当发现被禁用时, Tessera 将只允许其对等列表中的节点拥有的密钥对用户可用。
这意味着,如果发现任何由不在您的对等列表中的节点拥有的密钥,它们将被丢弃,并且私有交易无法发送到该公钥。
为了确保新节点被网络接受:
1. 您需要将新对等节点添加到每个现有节点,然后它们才会接受链接到新对等节点的公钥。 Tessera 提供了一种无需重新启动已经运行的节点即可执行此操作的方法:
2.可以启动新的对等点,设置peers 配置以镜像现有网络。 例如,如果网络中有 3 个现有节点,则新节点配置将如下所示:
新节点现在会记录属于现有对等点的公钥,然后现有对等点会记录属于新对等点的公钥; 这允许私有交易双向发送!
例子
有关将上述内容付诸实践的一些示例的演练,请查看本指南 this guide 。