[发明专利]一种区块链节点同步方法有效
申请号: | 201810025258.5 | 申请日: | 2018-01-11 |
公开(公告)号: | CN108243253B | 公开(公告)日: | 2020-05-12 |
发明(设计)人: | 吴思进;王志文 | 申请(专利权)人: | 杭州复杂美科技有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;G06Q40/04 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 310000 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 区块 节点 同步 方法 | ||
本发明公开了一种区块链节点同步方法,以区块链技术为技术支撑,结合快照技术,开发出一种共识节点重新参与共识或新节点加入共识的方式,将重新参与共识节点或新加入的共识节点统称为追赶节点。在此种同步模式下,追赶节点向数据节点获取最新的状态或余额快照,然后追赶当前的状态数据,当追赶节点的状态数据与大多数数据节点的状态数据一致时,追赶节点成为共识节点的一员并参与共识。
技术领域
本发明涉及区块链技术领域,涉及一种区块链节点同步方法。
背景技术
现有的区块链在正常工作时,共识节点会因为多种原因失效,虽然大多数的共识节点正常工作就能继续共识,但是共识节点的失效会引起不稳定性等问题;有时由于性能需求等多种原因,需要增加新的共识节点。出现上述情况时,追赶节点需要在最短的时间内正确同步其它共识节点的状态数据后,才能作为新的共识节点参与共识。
综上所述,当前需要提供一种技术方案能够保证在共识节点正常工作的情况下,快速且有效的恢复或加入新的追赶节点。
发明内容
有鉴于此,本发明提供一种解决或部分解决上述问题的一种区块链节点同步方法。
为达到上述技术方案的效果,本发明的技术方案为:一种区块链节点同步方法,包含以下内容:
节点同步方法的角色包括:共识节点、数据节点、追赶节点;共识节点至少有四个,数据节点至少有两个,追赶节点至少有一个;
共识节点用于共识区块链中每个区块的区块头及交易信息,其中,共识节点保存区块头信息;数据节点不参与区块的共识过程,并在每隔一定区块高度存储一份状态或余额快照,其中,数据节点保存共识成功的交易数据及状态数据,快照存储区块链的状态数据;追赶节点向数据节点获取最新的状态或余额快照,然后追赶当前的状态数据,当追赶节点的状态数据与大多数数据节点的状态数据一致时,追赶节点成为共识节点的一员并参与共识;
节点同步方法,是一种共识节点重新参与共识或新节点加入共识的方法,包括以下处理步骤:
1)追赶节点向数据节点获取最近的快照;
2)追赶节点获取数据节点的最近的快照高度后的各高度的状态数据的增量;
3)将获得的最近的快照和增量数据合并成最新的区块高度的状态或余额;
4)当追赶节点的区块高度与其他共识节点的高度一致时,追赶节点在下一高度参与共识过程;
共识节点和数据节点可以在一台服务器上,也可以在不同服务器上;
当状态数据很大时,状态数据可以每隔一定区块高度,按照一定的方式进行保存,例如:轮流将状态数据分为多个较小的状态数据分别保存到多个数据节点;
当状态或余额快照数据很大时,区块链系统可以将超过一定时间后未使用地址的余额快照与其它余额快照分开存储,检索常用地址和不常用地址的余额可以依次或同时检索;
当状态或余额快照数据很大,且小于一定币数量的账户数量与总账户数量的比值较大时,可每隔一定周期对小于一定币数量的账户收取费用,当收费超过账户余额时,余额记0;当小于一定币数量的账户数量与总账户数量的比值小于一定比值时,停止对小于一定币数量的账户收取费用的操作;
如果最近一次快照中将某账户余额记0,且该账户在前一个快照余额记0,同时这两个快照之间没有该账户的交易,则之后的快照中不包含该账户的快照信息。
附图说明
图1是本发明的节点同步方法示意图;
图2是本发明的分片快照保存示意图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州复杂美科技有限公司,未经杭州复杂美科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810025258.5/2.html,转载请声明来源钻瓜专利网。