区块链中轻节点的数据同步方法、节点、存储介质及设备技术

技术编号:37054331 阅读:14 留言:0更新日期:2023-03-29 19:31
本申请公开了一种区块链中轻节点的数据同步方法、节点、存储介质及设备,属于区块链技术领域。方法包括:当块高为n

【技术实现步骤摘要】
区块链中轻节点的数据同步方法、节点、存储介质及设备


[0001]本申请实施例涉及区块链
,特别涉及一种区块链中轻节点的数据同步方法、节点、存储介质及设备。

技术介绍

[0002]区块链数据为链式账本数据,链上账户的状态是由账本数据(交易数据)执行后的结果所产生,从而导致了链上数据包括区块数据(区块信息和交易信息)以及状态数据(交易执行后的结果),而且随着时间的积累,账本数据会不断的膨胀。同时,由于区块链的状态是由从创世块开始的每个块中的每笔交易执行累加的结果,因此,需要基于完整的账本数据来验证最新的状态,这就要求很多运行中的全节点需要存储全量的账本数据,这对于仅需做查询操作的轻节点来说,存储压力较大。

技术实现思路

[0003]本申请实施例提供了一种区块链中轻节点的数据同步方法、节点、存储介质及设备,用于解决区块链的状态不断膨胀,导致轻节点的存储压力不断增加的问题。所述技术方案如下:一方面,提供了一种区块链中轻节点的数据同步方法,所述方法包括:当块高为n

1的轻节点需要同步第n个区块的数据时,向区块链中的全节点获取所述第n个区块的区块信息和默克尔山脉MMR头,所述MMR头包括当前区块的交易根和前一区块的MMR根,所述交易根是根据当前区块内所有交易哈希计算得到的,所述MMR根是根据MMR算法对当前区块的MMR证明进行计算得到的,所述MMR证明包括对所有区块的MMR头进行二叉树排列后,位于所述二叉树中预定位置处的MMR头的哈希,n≥1;获取本地存储的第n

1个区块的MMR根;根据所述第n

1个区块的MMR根、所述第n个区块的区块信息和MMR根进行验证;当验证通过时,将所述第n个区块的MMR头和MMR证明同步至本地。
[0004]在一种可能的实现方式中,所述根据所述第n

1个区块的MMR根、所述第n个区块的区块信息和MMR根进行验证,包括:从所述第n个区块的区块信息中获取所有交易哈希,根据所有交易哈希计算交易根,验证计算得到的交易根与所述第n个区块的MMR头中的交易根是否一致;验证所述第n个区块的MMR头中的MMR根与本地存储的所述第n

1个区块的MMR根是否一致。
[0005]在一种可能的实现方式中,所述方法还包括:当所述轻节点的块高与需要同步的区块的块高m不连续时,向区块链中的全节点获取第m个区块的区块信息、MMR头和MMR证明,m≥1;根据所述第m个区块的区块信息、MMR头和MMR证明进行验证;当验证通过时,将所述第m个区块的MMR头和MMR证明同步至本地。
[0006]在一种可能的实现方式中,所述根据所述第m个区块的区块信息、MMR头和MMR证明进行验证,包括:从所述第m个区块的区块信息中获取所有交易哈希,根据所有交易哈希计算交易根,验证计算得到的交易根与所述第m个区块的MMR头中的交易根是否一致;根据MMR算法对所述MMR证明进行计算,验证计算得到的MMR根与所述第m个区块的MMR头中的MMR根是否一致。
[0007]在一种可能的实现方式中,所述方法还包括:接收携带有对象标识的查询请求,所述对象标识是交易标识或区块标识;根据所述对象标识向区块链中的全节点查询对象信息;对所述对象信息进行验证;在验证通过后,将所述对象信息同步至本地。
[0008]在一种可能的实现方式中,当所述对象标识是交易标识时,所述对象信息包括交易信息、交易树的默克尔证明、所述交易所属区块的MMR头和MMR证明,则所述对所述对象信息进行验证,包括:验证所述对象信息中的MMR头与本地存储的MMR头是否一致;根据所述交易信息计算交易哈希,验证计算得到的交易哈希与根据所述默克尔证明得到的交易哈希是否一致;根据所述默克尔证明获取所述交易所属区块的所有交易哈希,根据所有交易哈希计算交易根,验证计算得到的交易根与所述MMR头中的交易根是否一致;根据MMR算法对所述MMR证明进行计算,验证计算得到的MMR根与所述MMR头中的MMR根是否一致。
[0009]在一种可能的实现方式中,当所述对象标识是区块标识时,所述对象信息包括区块信息、MMR头和MMR证明,则所述对所述对象信息进行验证,包括:验证所述对象信息中的MMR头与本地存储的MMR头是否一致;根据所述区块信息计算区块哈希,验证计算得到的区块哈希与所述MMR头中的区块哈希是否一致;获取所述区块信息中的所有交易哈希,根据所有交易哈希计算交易根,验证计算得到的交易根与所述MMR头中的交易根是否一致;根据MMR算法对所述MMR证明进行计算,验证计算得到的MMR根与所述MMR头中的MMR根是否一致。
[0010]一方面,提供了一种区块链中的轻节点,所述轻节点包括:获取模块,用于当块高为n

1的轻节点需要同步第n个区块的数据时,向区块链中的全节点获取所述第n个区块的区块信息和默克尔山脉MMR头,所述MMR头包括当前区块的交易根和前一区块的MMR根,所述交易根是根据当前区块内所有交易哈希计算得到的,所述MMR根是根据MMR算法对当前区块的MMR证明进行计算得到的,所述MMR证明包括对所有区块的MMR头进行二叉树排列后,位于所述二叉树中预定位置处的MMR头的哈希,n≥1;所述获取模块,还用于获取本地存储的第n

1个区块的MMR根;验证模块,用于根据所述第n

1个区块的MMR根、所述第n个区块的区块信息和MMR根进行验证;
同步模块,用于当验证通过时,将所述第n个区块的MMR头和MMR证明同步至本地。
[0011]一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如上所述的区块链中轻节点的数据同步方法。
[0012]一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如上所述的区块链中轻节点的数据同步方法。
[0013]本申请实施例提供的技术方案的有益效果至少包括:轻节点只需要同步一个区块的MMR头和MMR证明,相比于需要存储全量的区块头来说,可以减轻轻节点的存储压力。并且,轻节点可以对区块信息和MMR头进行校验,并不会牺牲轻节点同步过程中的安全性。
[0014]轻节点可以从最新区块开始同步,相比于需要从头开始同步所有区块的区块头来说,可以减轻轻节点的存储压力。
[0015]轻节点可以针对交易和区块进行存在性证明,可以保证通过轻节点查询到的交易信息和区块信息是真实可靠的。
附图说明
[0016]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0017]图1是本申请一个实施例提供的链式的数据结构的示意图;图2是本申请一个实施例本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链中轻节点的数据同步方法,其特征在于,所述方法包括:当块高为n

1的轻节点需要同步第n个区块的数据时,向区块链中的全节点获取所述第n个区块的区块信息和默克尔山脉MMR头,所述MMR头包括当前区块的交易根和前一区块的MMR根,所述交易根是根据当前区块内所有交易哈希计算得到的,所述MMR根是根据MMR算法对当前区块的MMR证明进行计算得到的,所述MMR证明包括对所有区块的MMR头进行二叉树排列后,位于所述二叉树中预定位置处的MMR头的哈希,n≥1;获取本地存储的第n

1个区块的MMR根;根据所述第n

1个区块的MMR根、所述第n个区块的区块信息和MMR根进行验证;当验证通过时,将所述第n个区块的MMR头和MMR证明同步至本地。2.根据权利要求1所述的方法,其特征在于,所述根据所述第n

1个区块的MMR根、所述第n个区块的区块信息和MMR根进行验证,包括:从所述第n个区块的区块信息中获取所有交易哈希,根据所有交易哈希计算交易根,验证计算得到的交易根与所述第n个区块的MMR头中的交易根是否一致;验证所述第n个区块的MMR头中的MMR根与本地存储的所述第n

1个区块的MMR根是否一致。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:当所述轻节点的块高与需要同步的区块的块高m不连续时,向区块链中的全节点获取第m个区块的区块信息、MMR头和MMR证明,m≥1;根据所述第m个区块的区块信息、MMR头和MMR证明进行验证;当验证通过时,将所述第m个区块的MMR头和MMR证明同步至本地。4.根据权利要求3所述的方法,其特征在于,所述根据所述第m个区块的区块信息、MMR头和MMR证明进行验证,包括:从所述第m个区块的区块信息中获取所有交易哈希,根据所有交易哈希计算交易根,验证计算得到的交易根与所述第m个区块的MMR头中的交易根是否一致;根据MMR算法对所述MMR证明进行计算,验证计算得到的MMR根与所述第m个区块的MMR头中的MMR根是否一致。5.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:接收携带有对象标识的查询请求,所述对象标识是交易标识或区块标识;根据所述对象标识向区块链中的全节点查询对象信息;对所述对象信息进行验证;在验证通过后,将所述对象信息同步至本地。6.根据权利要求5所述的方法,其特征在于,当所述对象标识是交易标识时,所述对象信息包括交易信息、交易树...

【专利技术属性】
技术研发人员:王晓亮姚鹏飞宁志伟
申请(专利权)人:北京溪塔科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1