版本比较

密钥

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。
目录

当前同步算法

区块同步代码分析

dag 同步

...

名词解释

tips 节点

即 dag 的尖端节点。也就是如果我们把 dag 看成单链,那么就是当前高度最高的节点,放到 dag 图中,则是在当前某个时间领域内的无子区块的节点。

确认的 tips 节点表示需要从这些节点开始同步后续的子节点。

accumulator

merkle tree,叶子节点即我们的数据的hash值节点,可以快速验证和遍历叶子节点。更多详见https://cookbook.starcoin.org/zh/docs/concepts/accumulator

dag accumulator 构建流程

同步的三大任务

确认tips节点和验证历史节点

为什么要确认和验证

主要原因有两个:

1、握手;同步两个节点之间的状态;同步

2、防止恶意 peer 假冒诚实节点,必须通过历史区块的验证才能识别出节点是否为诚实节点。

确认流程

验证流程

对应代码

同步新的tips节点

获取后续节点

拉取数据内容

对应代码

拉取区块数据

攻击和异常

使用老旧的父节点作为新节点造成大量回滚

冒充诚实节点

时间复杂度

获得 current tips

只有 Genesis 区块

...