确定节点同步一致

  1. 节点启动之后,先获取本地的addrbook里面的节点信息
  2. 根据获取的addrbook里面的节点信息进行校验(向addrbook里面的节点发送hash消息确认,如果都一样,则可以广播数据。如果不一致,则发送自己的节点的信息到对方的节点,同时获取对方的节点信息,如果发现数据有修改,则开启新的轮次再次向其他的节点进行hash确认,最终达到节点的一致性)
  3. 如果在整个过程中任何一次发现节点信息不一致,那么,就要修改广播的状态为false

根据jch分发数据

  1. 在本节点的广播状态为true的情况下,进行jch算法广播数据
  2. 如果为false,则一直保存到本地的数据库中

节点重启

  1. 节点重启之后,先进行节点一致性的确认

节点的加入

  1. 新添加的节点里面只有seeds,所以,如果之前的系统是一个完整的系统,那么,本次需要同步完毕所有的节点信息才能写入数据

节点的退出

  1. 节点退出之后需要通知到其他的节点,其他节点各自更新自己的节点信息

数据迁移

  1. 在新节点添加之后,在节点同步完毕之后,就可以进行数据迁移了
  2. 迁移数据的时候,新数据不能够进行数据的写入,放到本地的广播队列中
  3. 迁移完毕之后,需要进行迁移完毕确认,确认成功之后则可以进行数据的广播

节点的安全

  1. 节点之间进行通讯需要通过tls的方式进行网络传输
05-11 22:34