当前位置: 首页 > 专利查询>东北大学专利>正文

基于B-M树的区块链存储结构、B-M树建立算法及查找算法制造技术

技术编号:19511618 阅读:44 留言:0更新日期:2018-11-21 07:58
本发明专利技术的一种基于B‑M树的区块链存储结构、B‑M树建立算法及查找算法,存储结构包括:数据序列化后的哈希值或合并后的哈希值、其包含所有叶子节点记录发起者地址的最大值和叶子节点记录发起者地址的最小值、该位置在平衡二叉树映射节点地址、指向叶子节点的左指针和右指针;梅克尔树的根是由区块主体中所有交易的哈希值再逐级两两哈希计算出来的。本发明专利技术的基于B‑M树的区块链存储结构,既实现了梅克尔树的特点,又提高了在一条完整区块链上的数据查询效率,并使区块链支持数据范围查询。并给出了B‑M树的建立算法和基于B‑M树的查找算法。区块链基于B‑M树的存储结构,会在区块链进行在块内的局部查找时,提高区块链的查询速度。

【技术实现步骤摘要】
基于B-M树的区块链存储结构、B-M树建立算法及查找算法
本专利技术属于计算机数据库
,具体涉及基于B-M树的区块链存储结构、B-M树建立算法及查找算法。
技术介绍
区块链技术起源于2008年,因为具有去中心化、透明性、开放性、自治性、匿名性和信息不可篡改等特点,被认为是继大型机、个人电脑、互联网、移动社交网络之后计算范式的第五次颠覆式创新,是人类信用进化史上继血亲信用、贵金属信用、央行纸币信用之后的第四个里程碑。区块链技术为解决中心化机构普遍存在的高成本、低效率和数据存储不安全等问题提供了解决方案。目前,区块链数据在每个块中以梅克尔树的形式存储。梅克尔树的特点是一个数据利用其生成的哈希值,可以快速的验证是否存在于区块链中。当用户想要访问区块链中的一条具体数据信息时,对于一个完全节点就需要遍历区块内利用梅克尔树存储的全部数据。但是,随着区块链应用的广泛普及,区块链中保存的数据量也会急剧增加,在一条完整的区块链上进行数据查询效率随之越来越慢。因此,如何提高在一条完整区块链上的数据查询效率则越来越重要。
技术实现思路
为解决上述技术问题,本专利技术提供一种基于B-M树的区块链存储结构、B-M树建立算法及查找算法,以提高在一条完整区块链上的数据查询效率。本专利技术提供一种基于B-M树的区块链存储结构,包括:数据序列化后的哈希值或合并后的哈希值、其包含所有叶子节点记录发起者地址的最大值和叶子节点记录发起者地址的最小值、该位置在平衡二叉树映射节点地址、指向叶子节点的左指针和指向叶子节点的右指针;梅克尔树的根是由区块主体中所有交易的哈希值再逐级两两哈希计算出来的一个数值;hash表示梅克尔树中的数据序列化后的哈希值或合并后的哈希值;Min表示叶子节点记录发起者地址的最小值;Max表示叶子节点记录发起者地址的最大值;K表示平衡二叉树映射节点地址;L1表示指向叶子节点的左指针;R1表示指向叶子节点的右指针。本专利技术还提供一种B-M树建立算法,包括以下步骤:步骤1:系统先确认在一个区块产生的固定时间里要写入区块的数据;步骤2:将每个记录发起者的用户地址根据ASCII表转换成唯一的一串十进制的数字;步骤3:根据每个转换数字的大小,建立起一个平衡二叉树,保证树中每个节点左右两个子树的高度差的绝对值不超过1;步骤4:从树的底部开始,逐层地将这个平衡二叉树的叶子节点的哈希值两两进行合并,组成新的哈希值,并同时保存所有合并的记录包括:发起者地址的最小值和发起者地址的最大值、该位置在平衡二叉树映射节点地址和指向叶子节点的左指针与指向叶子节点的右指针;步骤5:重复步骤4直到合并成一个哈希值,将最终合并的结果作为B-M树根,保存在区块头中。在本专利技术的B-M树建立算法中,所述步骤4具体为:在哈希值两两合并过程中,从平衡二叉树的底部开始,左叶子节点和其父节点先做一次合并,然后将得到的合并哈希值与右叶子节点再次合并,得到父节点和左右两个叶子节点的合并在一起的哈希值,直到合并成一个哈希值。本专利技术还提供一种B-M树查找算法,包括以下步骤:步骤1:一个节点发起一个范围查询时,判断该节点是否为完全节点;步骤2:如果这个节点是完全节点则在本地查询;如果不是完全节点则在网络中找到一个完全节点,在这个完全节点中进行查询;步骤3:将查询数据的发起者地址根据ASCII表转换成十进制的一串数字;步骤4:从新区块到旧区块的顺序遍历每个区块的区块头中B-M树的树根,根据B-M树根中所有叶子节点的记录发起者地址最大值和记录发起者地址最小值,判断要查询数据是否存在于这个区块中;步骤5:如果数据不在树根的最大值和最小值范围内,则校验下一个区块;如果在范围内,则根据B-M树中保存的平衡二叉树映射节点地址进行基于平衡二叉树的查找算法进行搜索;如果搜索完整个B-M树还没有找到所查找数据,则以相同方法搜索下一个区块,直到获得需要查找的数据。本专利技术提出了一种基于B-M树的区块链存储结构,既实现了梅克尔树的特点(一个节点可以在不下载整个块的情况下,验证区块中是否包含某笔交易),又提高了在一条完整区块链上的数据查询效率,并使区块链支持数据范围查询。并给出了B-M树的建立算法和基于B-M树的查找算法。区块链基于B-M树的存储结构,会在区块链进行在块内的局部查找时,提高区块链的查询速度。附图说明图1为本专利技术具体实施方式的基于B-M树的区块链存储结构;图2为本专利技术具体实施方式的B-M树的建立过程图;图3为本专利技术具体实施方式的B-M树的查找算法的流程图。具体实施方式如图1所示本专利技术的基于B-M树的区块链存储结构,包括:数据序列化后的哈希值或合并后的哈希值、其包含所有叶子节点记录发起者地址的最大值和叶子节点记录发起者地址的最小值、该位置在平衡二叉树映射节点地址、指向叶子节点的左指针和指向叶子节点的右指针;梅克尔树的根是由区块主体中所有交易的哈希值再逐级两两哈希计算出来的一个数值;hash表示梅克尔树中的数据序列化后的哈希值或合并后的哈希值;Min表示叶子节点记录发起者地址的最小值;Max表示叶子节点记录发起者地址的最大值;K表示平衡二叉树映射节点地址;L1表示指向叶子节点的左指针;R1表示指向叶子节点的右指针。图2为本专利技术的B-M树建立过程图,该B-M树建立算法,包括以下步骤:步骤1:系统先确认在一个区块产生的固定时间里要写入区块的数据;步骤2:将每个记录发起者的用户地址根据ASCII表转换成唯一的一串十进制的数字;步骤3:根据每个转换数字的大小,建立起一个平衡二叉树,保证树中每个节点左右两个子树的高度差的绝对值不超过1;步骤4:从树的底部开始,逐层地将这个平衡二叉树的叶子节点的哈希值两两进行合并,组成新的哈希值,并同时保存所有合并的记录包括:发起者用户地址的最大值和发起者用户地址的最小值、该位置在平衡二叉树映射节点地址和指向叶子节点的左指针与右指针;具体实施时,在哈希值两两合并过程中,从平衡二叉树的底部开始,左叶子节点和其父节点先做一次合并,然后将得到的合并哈希值与右叶子节点再次合并,得到父节点和左右两个叶子节点的合并在一起的哈希值,直到合并成一个哈希值。步骤5:重复步骤4直到合并成一个哈希值,将最终合并的结果作为B-M树根,保存在区块头中。如图3所示,本专利技术的B-M树查找算法,包括以下步骤:步骤1:一个节点发起一个范围查询时,判断该节点是否为完全节点;步骤2:如果这个节点是完全节点则在本地查询;如果不是完全节点则在网络中找到一个完全节点,在这个完全节点中进行查询;步骤3:将查询数据的发起者地址根据ASCII表转换成十进制的一串数字;步骤4:从新区块到旧区块的顺序遍历每个区块的区块头中B-M树的树根,根据B-M树根中所有叶子节点的记录发起者地址最大值和记录发起者地址最小值,判断要查询数据是否存在于这个区块中;步骤5:如果数据不在树根的最大值和最小值范围内,则校验下一个区块;如果在范围内,则根据B-M树中保存的平衡二叉树映射节点地址进行基于平衡二叉树的查找算法进行搜索;如果搜索完整个B-M树还没有找到所查找数据,则以相同方法搜索下一个区块,直到获得需要查找的数据。本专利技术提出了一种基于B-M树的区块链存储结构,既实现了梅克尔树的特点(一个节点可以在不下载整个块的情况下,验证区块中是否包含某笔交本文档来自技高网...

【技术保护点】
1.一种基于B‑M树的区块链存储结构,其特征在于,包括:数据序列化后的哈希值或合并后的哈希值、其包含所有叶子节点记录发起者地址的最大值和叶子节点记录发起者地址的最小值、该位置在平衡二叉树映射节点地址、指向叶子节点的左指针和指向叶子节点的右指针;梅克尔树的根是由区块主体中所有交易的哈希值再逐级两两哈希计算出来的一个数值;hash表示梅克尔树中的数据序列化后的哈希值或合并后的哈希值;Min表示叶子节点记录发起者地址的最小值;Max表示叶子节点记录发起者地址的最大值;K表示平衡二叉树映射节点地址;L1表示指向叶子节点的左指针;R1表示指向叶子节点的右指针。

【技术特征摘要】
1.一种基于B-M树的区块链存储结构,其特征在于,包括:数据序列化后的哈希值或合并后的哈希值、其包含所有叶子节点记录发起者地址的最大值和叶子节点记录发起者地址的最小值、该位置在平衡二叉树映射节点地址、指向叶子节点的左指针和指向叶子节点的右指针;梅克尔树的根是由区块主体中所有交易的哈希值再逐级两两哈希计算出来的一个数值;hash表示梅克尔树中的数据序列化后的哈希值或合并后的哈希值;Min表示叶子节点记录发起者地址的最小值;Max表示叶子节点记录发起者地址的最大值;K表示平衡二叉树映射节点地址;L1表示指向叶子节点的左指针;R1表示指向叶子节点的右指针。2.一种B-M树建立算法,其特征在于,包括以下步骤:步骤1:系统先确认在一个区块产生的固定时间里要写入区块的数据;步骤2:将每个记录发起者的用户地址根据ASCII表转换成唯一的一串十进制的数字;步骤3:根据每个转换数字的大小,建立起一个平衡二叉树,保证树中每个节点左右两个子树的高度差的绝对值不超过1;步骤4:从树的底部开始,逐层地将这个平衡二叉树的叶子节点的哈希值两两进行合并,组成新的哈希值,并同时保存所有合并的记录包括:发起者地址的最小值和发起者地址的最大值、该位置在平衡二叉树映射节点地址和指向叶子节点的左指针与指向叶子节点的右指...

【专利技术属性】
技术研发人员:信俊昌贾大宇刘禄郝琨白砚领
申请(专利权)人:东北大学
类型:发明
国别省市:辽宁,21

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

1