snarkOS网络通信协议

3 篇文章 1 订阅

snarkOS网络通信协议

snarkOS 网络协议建立了一个点对点网络,通过主动交换交易和数据块来保持账本的活跃性。

发现节点

当一个节点第一次加入网络时,它需要填充网络中活动对等方的列表。为了引导对等发现,snarkOS 包括一组可选的专用“信标”节点。一旦连接,它们将提供一组初始对等点,其中包括同步提供程序的地址。同步提供程序将向节点提供 chainstate 的初始同步。为了使用户具有灵活性,snarkOS 允许用户在配置文件中配置初始节点集,或通过命令行标志作为输入。一旦一个节点连接到一个或多个节点,它可能会扫描网络以发现更多对等点。该过程首先通过 GetPeers 消息向对等方请求网络中更多连接的节点,然后尝试与每个新发现的对等方建立连接。成功后,snarkOS 将存储新的对等地址,以允许它在将来直接与该对等连接,而无需使用信标在将来启动。

连接节点

对等连接通过 XX 噪声(https://noiseprotocol.org/)握手建立。
对等连接使用乒乓协议进行维护,该协议定期中继乒乓消息以验证对等点是否仍然连接。snarkOS 将更新其对等机簿,以说明新连接的对等机和断开连接的对等机。

下载同步区块

节点必须先将自身同步到账本的最新状态,然后才能加入网络。无论节点是新连接到网络,还是仅具有过时状态,它都必须与其对等节点同步,并下载丢失的块和事务。snarkOS 使用“头优先”的方法来同步块,其中节点在并行下载相应的完整块之前下载并验证每个块头。当节点确定需要下载状态时,它会选择一个对等节点作为同步节点,并向其发送一条 GetSync 消息。GetSync 消息包含有关节点当前块状态的信息,因此同步节点能够确定哪些块头需要作为响应发送。在接收到 GetSync 消息后,同步节点通过同步消息发回最多 100 个块头。然后请求者验证这些头并通过发送 GetBlock 消息并行下载块。下载这些块后,请求者发送另一条 GetSync 消息,并重复此过程,直到其链状态完全更新。

广播交易

节点可以通过向其连接的对等方发送 Transaction 消息来向网络广播事务。接收该事务的对等方验证该事务,并通过向其连接的对等方广播该事务来进一步传播该事务。此事务将通过网络继续进行,直到它传播到网络中的每个连接的对等方。

广播区块

节点可以使用 Block 消息广播块,方式与广播事务相同。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值