Skip to main content

概要

节点发现让新的验证者或全节点能够通过与其他现有节点连接来加入网络,以接收验证和跟上链最新块所需的共识消息。 要参与节点发现,节点需要生成一个 MonadNameRecord,其中包含一个名称记录以及使用其 secp 密钥对该记录的签名。
一个 NameRecord 包含节点的 IPv4 地址、端口信息和一个序列号。目前仅支持 IPv4 地址。有两种线格式:一种是所有协议共享单一端口的旧格式,另一种是较新的格式,支持按协议(TCP、UDP、AuthenticatedUDP)标记的多个端口以及一个 capabilities 字段。启用认证 UDP的节点使用较新的格式。 IP 地址和端口描述了网络中其他节点可以联系它的网络端点。序列号是必要的,以确保较新的名称记录优先于较旧的名称记录。例如,当节点看到具有更高序列号的对等节点名称记录时,它将用新的名称记录更新其路由表。 节点在启动时指定几个引导节点及其名称记录。引导节点不是专门的节点;网络中的任何节点都可以是引导节点。然后节点将通过向其他对等节点发送 ping 来宣传自己的名称记录,其中 ping 消息包含它自己的名称记录。当节点缺少当前活跃验证者的名称记录时,它还会向其对等节点发送查找请求。节点会定期查找新节点或根据配置的最小和最大节点数修剪多余的节点。