[发明专利]一种基于半节点的区块链账本同步方法及装置在审
申请号: | 202110725554.8 | 申请日: | 2021-06-29 |
公开(公告)号: | CN113434599A | 公开(公告)日: | 2021-09-24 |
发明(设计)人: | 刘彦;胡智;袁畅;石志国;章敏 | 申请(专利权)人: | 北京市大数据中心;北京科技大学 |
主分类号: | G06F16/27 | 分类号: | G06F16/27;G06F21/64 |
代理公司: | 北京市广友专利事务所有限责任公司 11237 | 代理人: | 张仲波 |
地址: | 101117 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 节点 区块 账本 同步 方法 装置 | ||
1.一种基于半节点的区块链账本同步方法,其特征在于,所述方法包括:
S1、创建半节点并完成所述半节点的部署,初始化所述半节点,并创建所述半节点的最初存储空间,设定初始最大存储空间;
S2、寻找最佳节点,所述最佳节点为与所述半节点临近的全节点;
S3、从所述最佳节点向所述半节点同步全部的区块头数据;
S4、验证同步的区块头数据是否正确,如果验证所述区块头数据的内容正确,则将所述区块头数据存储在所述半节点的本地账本中;
S5、计算所述本地账本中已保存的区块头所用的总空间,计算初始区块体的可用空间,所述初始区块体的可用空间为所述初始最大存储空间与所述区块头所用的总空间的差值;
S6、根据任一区块的区块号、所述初始区块体的可用空间、随机数、当前总区块数、平均区块体占用内存大小、同时同步的区块数量,判断是否同步所述区块号对应的区块体数据;
S7、如果判断同步所述区块号对应的区块体数据,则验证同步的区块体数据是否正确,如果验证正确,则将所述区块体数据同步到所述本地账本中;
S8、重复执行S6-S7,直到判断所有区块的区块体数据是否同步后,完成区块链账本同步操作。
2.根据权利要求1所述的方法,其特征在于,所述验证同步的区块头数据是否正确之后,所述方法还包括:
如果验证所述区块头数据的内容不正确,则抛弃从所述最佳节点同步的区块头数据,向其他节点发起最佳节点验证请求;
当接收到其他节点的最佳节点验证回复消息时,跳转执行S3。
3.根据权利要求1所述的方法,其特征在于,所述计算所述本地账本中已保存的区块头所用的总空间,计算初始区块体的可用空间,包括:
根据下述公式(1)计算初始区块体的可用空间:
M=Msum-Mheader……(1)
其中,M表示初始区块体的可用空间,Msum表示初始最大存储空间,Mheader表示所述本地账本中已保存的区块头所用的总空间。
4.根据权利要求3所述的方法,其特征在于,所述根据任一区块的区块号、所述初始区块体的可用空间、随机数、当前总区块数、平均区块体占用内存大小、同时同步的区块数量,判断是否同步所述区块号对应的区块体数据,包括:
计算下述不等式(2)是否成立:
其中,
其中,lrandom为0-1均匀分布的随机数,n为目前总区块数,i为判断的区块号,a为平均区块体占用内存大小,u为同时同步的区块数量;
如果上述不等式(2)成立,则判断同步所述区块号对应的区块体数据;
如果上述不等式(2)不成立,则判断不同步所述区块号对应的区块体数据。
5.根据权利要求4所述的方法,其特征在于,所述同步所述区块号对应的区块体数据,包括:
同步区块号为imin+u×(imin-1)到i0+u×imin-1的区块体数据,其中,imin为所有区块号中的最小值。
6.根据权利要求1所述的方法,其特征在于,所述验证同步的区块体数据是否正确之后,还包括:
如果验证不正确,则抛弃从所述最佳节点同步的区块头数据以及区块体数据,向其他节点发起最佳节点验证请求;
当接收到其他节点的最佳节点验证回复消息时,跳转执行S3。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京市大数据中心;北京科技大学,未经北京市大数据中心;北京科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110725554.8/1.html,转载请声明来源钻瓜专利网。