【技术实现步骤摘要】
一种基于共识组划分和多层索引的联盟链数据查询方法
[0001]本专利技术涉及区块链查询领域,具体涉及一种基于共识组划分和多层索引的联盟链数据查询方法。
技术介绍
[0002]随着当今社会的不断发展以及科学技术的不断进步,衍生出许多新颖的技术。例如5G技术,chatGPT,人工智能、AI、云技术、大数据和区块链等技术。随着研究人员对这些技术不断深入的研究,已有大量相关的技术产品落地。最初的应用是比特币,其所运用的底层技术为区块链技术。区块链通过将数据存储在一系列链接的块中来实现数据的安全和可信。每个块都包含先前块的哈希值,形成了一个不可篡改的数据链。区块链技术由于其不可篡改、去中心化、数据透明等特性受到国内外研究者持续的关注和研究。
[0003]区块链技术结合了多种其他关键技术,如分布式系统、密码学、Merkle树和共识算法等。区块链技术本质是一种去中心化的分布式数据库,但跟传统的中心化分布式数据库不同,区块链网络中各节点备份了系统中的全部数据,在一定程度上能提高节点的查询效率和保证系统的数据安全,也可以减少原有数据库 ...
【技术保护点】
【技术特征摘要】
1.一种基于共识组划分和多层索引的联盟链数据查询方法,其特征在于,具体包括以下步骤:步骤1:将fabric中的节点划分为多个共识组的架构;步骤2:客户端节点向fabric网络的背书节点提交交易提案,交易提案把带有本次交易要调用的合约标识、合约方法和参数信息以及客户端签名信息发送给背书节点;步骤3:背书节点收到交易提案后,验证签名并确定提交者是否有权执行操作,同时根据背书策略模拟执行智能合约,并将结果及其各自的CA证书签名发还给应用程序客户端;步骤4:客户端收到背书节点返回的信息后,判断提案结果是否一致,以及是否参照指定的背书策略执行,如果没有足够的背书,则中止处理;否则,应用程序客户端把数据打包到一起组成一个交易并签名,发送给共识组排序节点;步骤5:共识组排序节点对接收到的交易进行多层PBFT共识排序并将交易打包生成新的区块,发送给提交节点;提交节点收到区块后对区块中的交易进行校验,完成后将区块追加到本地的区块链,并修改世界状态;步骤6:为新生成的区块构建双层跳跃列表索引;步骤7:客户端向共识组中的peer节点发起查询请求,peer节点收到查询请求后基于步骤6索引查询并对区块数据进行验证。2.根据权利要求1所述的一种基于共识组划分和多层索引的联盟链数据查询方法,其特征在于,步骤1具体为:将联盟链网络中的节点划分为多个共识组,共识组中包含多个层级,其中r
im
为第m层的第i个节点,上标m表示区块链节点所在层号,下标i表示节点为所在层级的索引位置;r
im
为第m+1层节点r
im+1
的leader节点;每个共识组中的节点都满足PBFT实用拜占庭共识协议的基本要求,即共识组中的节点数大小num满足num>=3f+1不等式,其中f为共识组中作恶节点的数量;且共识组中的leader节点与master节点就组内达成小共识,依次往上层节点迭代这个过程;所有节点最终达成多层共识,对比单层节点PBFT,能减少共识时间复杂度且能支持更多的节点加入。3.根据权利要求1所述的一种基于共识组划分和多层索引的联盟链数据查询方法,其特征在于,步骤5所述世界状态状态具体表示为:将元组(k,(va1,va2,...,van),ver)定义为一个世界状态条目,其中k是区块链状态的键,(va1,va2,...,van)是不同类型值的集合也为单个值,ver是世界状态的版本号,每条数据的插入都会引起世界状态的改变,ver的值大小递增1个单位;区块链状态的键看作账户u,相关的历史状态记录结构为:pre表示前缀,前缀01表示信誉值,10表示余额值,pre_val为前缀计数器,表示前面区块与该当前区块前缀相同的个数,1表示没有被修改,即前面有1个区块的前缀与该区块相同;0表示已修改,即前面有0个区块与该区块的前缀相同;(Txn,Block)表示哪个事务对哪个区块做了修改;State value表示多维状态值集合;Version表示区块的版本号;保留前缀的相应计数器,用于计算提交的事务是否更改了该特定值;在状态S
k2,v2
下,区块b中的交易txn1更新了两个余额和信誉值(B,R),所以这两个值的前缀值都是0;在下一个状态S
k2,v3
中,交易txn2更新了余额但没有改变信誉,因此前缀01的值增加了1,表明信誉在当前状态S
k2,v3
和之前的状态下具有相同的值状态S
k2,v2
;另一方面,前缀10在该状态S
k2,v3
中为0,表示余额由块b+1中的事务txn2从先前状
态S
k2,v2
更新。4.根据权利要求1所述的一种基于共识组划分和多层索引的联盟链数据查询方法,其特征在于,步骤6设计双层跳越列表时将最新状...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。