[发明专利]一种区块链节点的并行块同步方法有效
申请号: | 201810327200.6 | 申请日: | 2018-04-12 |
公开(公告)号: | CN108600353B | 公开(公告)日: | 2021-01-12 |
发明(设计)人: | 蔡维德 | 申请(专利权)人: | 北京天德科技有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;G06Q40/04 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100089 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 区块 节点 并行 同步 方法 | ||
1.一种区块链节点的并行块同步方法,其特征包含以下几个步骤:
(1)确定同步的高度范围,放入内存队列:
(1.1)各个节点在建块的第一个步骤中,会将本地的高度信息随交易hash一起发送至其他节点;
(1.2)将某一节点收到的超过三分之二节点数量的最大高度作为标准高度;
(1.3)如果该节点本地高度小于该标准高度,说明这一节点的高度落后于其他节点,需要进行块同步;
(1.4)将本地高度与标准高度进行对比,缺少的这些高度记录到本地内存待同步高度的队列中,然后将本地高度强制更新为标准高度,参与后面的共识过程;
(2)异步线程定时从内存队列获取待同步的块高度,向其他节点发出块同步请求;
(3)收到块同步请求的节点将本地的对应数据取出,发送给请求同步的节点;
(4)节点收集其他节点返回的块信息,通过共识判断是否需要存储;
(5)如果同步成功,删除此高度的待同步标记,如果同步不成功,放回内存队列。
2.根据权利要求1所述的一种区块链节点的并行块同步方法,其特征在于:所述步骤(2)具体为:
步骤2.1 系统启动时开启异步线程执行定时扫描任务,扫描待同步高度队列;
步骤2.2 该定时任务扫描到待同步高度队列中存在元素,则从队头取出一个元素,即需要同步数据的高度,向其他节点发出该高度的数据同步请求。
3.根据权利要求1所述的一种区块链节点的并行块同步方法,其特征在于:所述步骤(3)具体为:
步骤3.1 收到块同步请求的节点根据请求中的高度信息在本地进行数据查找;
步骤3.2 查询到数据的节点将对应高度的块数据以及交易数据发送给待同步的节点。
4.根据权利要求1所述的一种区块链节点的并行块同步方法,其特征在于:所述步骤(4)具体为:
步骤4.1 待同步的节点接收其他各个节点发来的数据信息;
步骤4.2 待同步节点收集齐其他节点发来的块和交易数据后,进行数据汇总与对比,根据拜占庭算法,超过三分之二的节点发来的块和交易数据完全一致,则说明获取到了要同步的块信息,否则同步失败。
5.根据权利要求1所述的一种区块链节点的并行块同步方法,其特征在于:所述步骤(5)具体为:
步骤5.1 同步成功,则将块和交易信息存储到本地的记录中,同时将这些交易从本地的待处理交易数据中清除;同步不成功,则将该高度信息放回待同步的高度队列队尾,等待下次同步处理。
6.根据权利要求1所述的一种区块链节点的并行块同步方法,其特征为:系统共有3f+1个节点,而需要同步数据的节点不应超过f个。
7.根据权利要求1所述的一种区块链节点的并行块同步方法,其特征为:不同高度的数据同步请求以及对应返回的数据用不同的高度标记,多个高度的同步可以同时进行,而数据互相之间不会发生混淆。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京天德科技有限公司,未经北京天德科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810327200.6/1.html,转载请声明来源钻瓜专利网。