DNS
GoQuorum 中的 DNS 支持两个不同的领域,静态节点文件中的使用和节点发现协议中的使用。您可以自由使用其中一种而不用另一种,或者根据用例的需要混合使用。
静态节点
静态节点是即使不活跃我们仍然保持引用的节点,当节点活跃起来,我们就可以连接到它了。此处允许使用主机名,并在启动时解析一次。如果静态记账节点脱机并且其 IP 地址发生更改,则预计该记账节点将在全静态网络中重新建立连接,或启用发现功能。
发现
发现协议不支持 DNS 。改用 bootnode ,它可以使用重复解析的 DNS 名称 。
兼容性
对于 Raft ,整个网络必须在 GoQuorum 2.4.0 或更高版本, DNS 才能正常运行。一旦节点迁移到版本 2.4.0 或更高版本,就必须使用 --raftdnsenable 选项为每个节点显式启用 DNS 。当一些节点在 2.4.0 或更高版本中时,网络运行良好,而一些节点在旧版本中,只要不启用此功能。为了安全迁移,建议采用以下方法:
请注意,在部分迁移的网络(其中一些节点在 2.4.0 或更高版本上,而其他节点在较低版本上)中,为迁移节点 启用了 DNS 功能 ,在整个网络迁移到版本之前,不应使用 Hostname 调用 raft.addPeer 或更高版本。如果调用,此调用将使所有在旧版本中运行的节点崩溃,并且这些节点必须使用 GoQuorum 2.4.0 或更高版本重新启动。 raft.addPeer 仍然可以使用 IP 地址调用,而不会影响运行旧版本 GoQuorum 的节点。
笔记
在所有节点都在 GoQuorum 2.4.0 版上运行的网络中,仅很少节点启用 DNS ,我们建议 --verbosity 为 3 或更低。我们观察到,如果 --verbosity 设置为 3 以上,则如果使用主机名调用 raft.addPeer ,则未启用 DNS 的节点无法重新启动。