块链式账本中全局状态的哈希的生成方法、装置及设备制造方法及图纸

技术编号:24995799 阅读:27 留言:0更新日期:2020-07-24 17:58
公开了块链式账本中全局状态的哈希的生成方法、装置及设备。在更新块链式账本中的全局状态树,对新来的交易采用批量更新的方式计算临时默克尔树时,将批量的新交易划分为K个部分,并创建一一对应的K个线程来计算哈希值。

【技术实现步骤摘要】
块链式账本中全局状态的哈希的生成方法、装置及设备
本说明书实施例涉及信息
,尤其涉及块链式账本中全局状态的哈希的生成方法、装置及设备。
技术介绍
在块链式账本中,通常都会存在一颗记录全局状态的全局状态树。在对于全局状态的更新时,可以对新来的交易进行批量的计算。例如,每过来多个新交易,按照顺序对这一批交易进行哈希计算,得到对应这多个新交易的子树的根哈希,然后再根据这颗子树的根哈希去计算全局状态树的根哈希。在计算新交易根哈希时采用依次计算的方式,效率太低。
技术实现思路
本申请实施例的目的是提供一种在块链式账本中计算全局状态的哈希时可以提高效率的方案。为解决上述技术问题,本申请实施例是这样实现的:块链式账本中全局状态的哈希的生成方法,应用于以块链式账本存储数据记录的中心化的数据库服务端中,包括:获取已经确定需要写入账本的多个新交易,其中,所述多个新交易的哈希还没有写入全局状态树;对所述多个新交易进行排序,将排序后的所述多个新交易划分为K个有序的集合;针对第i集合,创建与该集合对应的第本文档来自技高网...

【技术保护点】
1.块链式账本中全局状态的哈希的生成方法,应用于以块链式账本存储数据记录的中心化的数据库服务端中,包括:/n获取已经确定需要写入账本的多个新交易,其中,所述多个新交易的哈希还没有写入全局状态树;/n对所述多个新交易进行排序,将排序后的所述多个新交易划分为K个有序的集合;/n针对第i集合,创建与该集合对应的第i个线程,根据第i集合中所包含的新交易的顺 序,生成以第i集合中所包含的新交易为叶子节点的第i个子树,

【技术特征摘要】
1.块链式账本中全局状态的哈希的生成方法,应用于以块链式账本存储数据记录的中心化的数据库服务端中,包括:
获取已经确定需要写入账本的多个新交易,其中,所述多个新交易的哈希还没有写入全局状态树;
对所述多个新交易进行排序,将排序后的所述多个新交易划分为K个有序的集合;
针对第i集合,创建与该集合对应的第i个线程,根据第i集合中所包含的新交易的顺
序,生成以第i集合中所包含的新交易为叶子节点的第i个子树,;
依序拼接生成得到的K个子树,生成以所述多个新交易为叶子节点的临时默克尔树;
合并所述临时默克尔树和当前的全局状态树,生成以所述多个新交易的哈希为叶子节点的新的全局状态树;
获取所述新的全局状态树的根哈希,将所述新的全局状态树的根哈希写入所述账本中的数据块的块头中。


2.如权利要求1所述的方法,对所述多个新交易进行排序,包括:
确定每个新交易在账本中的排序信息,所述排序信息包括写入时间或者位置信息;
根据所述排序信息的先后对所述多个新交易排序。


3.如权利要求1所述的方法,合并所述临时默克尔树和当前的全局状态树,生成以所述多个新交易的哈希为叶子节点的新的全局状态树,包括:
确定所述临时默克尔树的根节点的高度;
保持所述临时默克尔树的根节点的高度不变,拼接所述临时默克尔树至当前的全局状态树中最晚的叶子节点的右侧,生成以所述多个新交易的哈希为叶子节点的新的全局状态树。


4.如权利要求1所述的方法,将所述新的全局状态树的根哈希写入所述账本中的数据块的块头中,包括:
生成包含所述多个新交易的新数据块,将所述新的全局状态树的根哈希写入所述新数据块的块头中。


5.如权利要求1所述的方法,所述方法还包括:删除所述临时默克尔树。


6.如权利要求1所述的方法,在所述块链式账本中,数据块通过如下方式生成:
接收待存储的数据记录,确定各数据记录的哈希值;
当达到预设的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块,具体包括:
当N=1时,初始数据块的哈希值和块高基于预设方式给定;
当N>1时,根据待写入数据块中的各数据记录和第N-1个数据块的哈希值确定第N个数据块的哈希值,生成包含第N个数据块的哈希值和各数据记录的第N个数据块。


7.块链式账本中全...

【专利技术属性】
技术研发人员:张渊杨新颖俞本权李亿泽闫文远
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:浙江;33

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

1