本发明专利技术基于内置索引和外联数据仓库的方法,提出了一种新型链上数据高速检索模型。该模型由改进索引存储形式的区块链网络、数据处理集群和应用层服务三部分组成。新型区块链网络针对传统区块链系统交易数据的组织形式进行了改进,设计出一种适合高速检索的数据结构来组织交易数据;数据处理集群负责在保证数据一致性的情况下,按照高效的同步策略将链上数据同步到链下关系型数据仓库;应用层服务针对关系型数据库所支持的丰富查询功能进行封装,最终以HTTP、RPC等形式对外提供服务。该模型能够使得区块链系统在查询效率、查询功能等方面得到有效扩展,提高区块链链上数据的查询速率。率。率。
【技术实现步骤摘要】
一种新型区块链链上数据高速检索模型
[0001]本专利技术涉及到了区块链技术以及在链上数据检索过程中提高检索效率的领域,总结起来就是一种新型区块链链上数据高速检索模型。
技术介绍
[0002]当今互联网时代,随着海量数据的涌现,区块链链上数据查询功能和查询速率渐渐暴露出一定问题。大多数区块链项目在设计时,主要将精力集中在如何解决数据上链过程中快速达成分布式共识的问题上,而忽略了大量数据涌现所带来的链上数据检索问题。受限于区块链底层的数据存储模式和分布式存储的特点,区块链在链上数据检索方面还存在检索功能单一、检索速率低等亟需解决的问题。这就需要一种高效的链上数据检索方案,来满足人们对区块链链上数据检索速率的需求。
[0003]区块链技术源自于2008年中本聪发表的比特币白皮书“Bitcoin:APeer
‑
to
‑
Peer Electronic Cash System”一文。本质上是一个去中心化的分布式账本,账本数据由连入区块链网络的各个节点共同维护,具有去中心化、可追溯和不可篡改的特性。网络中的每个节点都是一个交易驱动的状态机,网络中节点的一致性状态通过共识机制来保证,用户在网络中发布一个交易后,会被挖矿节点打包进区块,等待挖矿节点获得记账权,将区块发布到区块链上。由于区块链数据采用分布式存储的限制,区块链数据在检索速度和检索功能方面相较于传统数据存储方案具有检索速度慢、功能单一等特点。
[0004]当前针对区块链链上数据检索速度的优化方案进行可归纳为两种,一种解决方案是针对区块链系统底层的数据持久化机制进行优化,通常是改进区块链底层的数据组织形式或在原有持久化机制上层新建索引层。另一种解决方案称为外接数据仓库,将查询功能受限的区块链数据同步到查询功能丰富的关系型数据库。这两种方案都存在一定弊端,第一种方案虽然在一定程度上提高了数据检索速率,仍然不足以满足多数场景下实时性检索的需求,同时在查询功能上仍然仅仅key
‑
value类型数据,并不支持范围查询,模糊查询等丰富功能。第二种方案将数据检索的任务转移到外接数据仓库中,一定程度上满足了实时性检索的需求,但其数据组织形式并没有发生变化,区块链系统本身的数据检索并没有得到提升。
技术实现思路
[0005]互联网大数据时代,为了满足人们日益增长的对区块链链上数据高速检索等方面的需求,基于内置索引和外联数据仓库相结合的方法,提出一种新型链上数据高速检索模型,提高了区块链链上数据查询效率,丰富了区块链链上数据查询功能。
[0006]本专利技术为实现上述目的所采用的技术方案是:一种新型区块链链上数据高速检索模型,包括:
[0007]链上端,基于混合索引改进传统区块链网络中交易数据的组织形式,用于剪枝链上数据的检索操作;
[0008]链下端,数据处理集群包括同步服务器和数据仓库,所述同步服务器监测链上区块状态,批量同步合法的链上数据到数据仓库,用于向用户提供查询服务前同步链上数据;
[0009]应用层服务端,将链下数据仓库中的数据封装成对应的服务形式,以HTTP、RPC方式提供给用户,供其检索查询。所述对应的服务形式包括范围查询、模糊查询,用于扩展链上数据查询功能。
[0010]所述的新型区块链网络所组织的数据包括:
[0011]区块间,按照区块交易数据的Hash值连接各个区块,生成块头数据Block Header;
[0012]区块内,按照区块内交易数据生成布隆过滤器数据,并将其添加到Merkle Tree的中间节点,生成块头下链接的块体数据Block Body。
[0013]所述块头数据Block Header,存储该区块的基本信息:前一个区块的Hash值、Pow过程计算的随机数Nounce、当前区块哈希值RootHash、BloomFilter数据;
[0014]所述块体数据Block Body,存储有交易数据的Hash值、BloomFilter数据、交易数据;
[0015]所述隆过滤器数据用于快速验证区块链网络中交易数据是否存在。
[0016]所述Block Header中的Root Hash与中间节点存储的Hash值用于提供Merkle Proof。
[0017]链上全节点向其它节点提供Merkle Proof包括以下步骤:
[0018]验证交易数据不合法状态a:首先验证当前区块的Root Hash的Bloom Filter中是否存在交易数据的布隆过滤器数据,若不存在则判断当前交易数据不合法;若存在交易数据的布隆过滤器数据,则从Merkle Tree的当前节点位置递归向下查找执行步骤b;
[0019]验证交易数据伪合法状态b:从当前区块的Root Hash递归向下查找,直到查询到叶子节点,若发现叶子节点的Bloom Filter中不存在该交易数据的布隆过滤器数据,则执行二次查找;
[0020]验证交易数据合法状态c:若发现叶子节点的Bloom Filter中存在该交易数据的布隆过滤器数据,则取出该交易数据,将包含节点链路的查询路径提供给发起proof请求的节点。
[0021]所述当前节点的Bloom Filter中存储有交易数据的布隆过滤器数据,上层节点的布隆过滤器数据是根据下层节点的布隆过滤器数据计算得到的,通过查询上层节点的布隆过滤器数据能判定下层节点是否包含该交易数据;所述二次查找为通过排序后的叶子节点进行查找交易数据实现验证。
[0022]所述数据同步服务器监测链上区块状态,批量同步合法的链上数据到数据仓库包括以下步骤:
[0023]步骤21:数据同步服务器实时监测链上区块状态,批量同步链上数据到本地缓存队列,用于应对链上数据分叉情况的发生;
[0024]步骤22:数据同步服务器检测本地缓存队列的长度是否大于预设的批量同步数量的最大值,若是则按照FIFO原则将队头元素出队,判断对头元素的合法性;
[0025]步骤221:若不合法,则数据同步服务器判断当前队头元素不在最长合法链上,并丢弃该队头元素;返回步骤21继续同步下一个批量队列;
[0026]步骤222:若合法,数据同步服务器将队头元素清洗、打包,并持久化存储到数据仓
库。
[0027]所述区块链状态为是否生成新区块。
[0028]所述合法性为根据当前缓存队列的长度判断该区块是否在最长合法链上,同时根据当前缓存队列中该区块的下一个区块中所保存的preHash是否等于该区块的Hash值,进而判断队头元素是否合法。
[0029]所述链下端的数据处理集群还包括:链下数据热备份服务器,用于当数据仓库数据损坏或丢失时的热备份处理,以保证系统的高可用性。
[0030]应用层服务端向用户提供查询包括执行以下步骤:
[0031]接收用户通过终端发起的查询请求;
[0032]对用户身份进行认证、授权;
[0033]向链下端的数据仓库发送查询指令,获取对应本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种新型区块链链上数据高速检索模型,其特征在于,包括:链上端,基于混合索引改进传统区块链网络中交易数据的组织形式,用于剪枝链上数据的检索操作;链下端,数据处理集群包括同步服务器和数据仓库,所述同步服务器监测链上区块状态,批量同步合法的链上数据到数据仓库,用于向用户提供查询服务前同步链上数据;应用层服务端,将链下数据仓库中的数据封装成对应的服务形式,以HTTP、RPC方式提供给用户,供其检索查询。2.根据权利要求1所述的一种新型区块链链上数据高速检索模型,其特征在于,所述的新型区块链网络所组织的数据包括:区块间,按照区块交易数据的Hash值连接各个区块,生成块头数据Block Header;区块内,按照区块内交易数据生成布隆过滤器数据,并将其添加到Merkle Tree的中间节点,生成块头下链接的块体数据Block Body。3.根据权利要求2所述的一种新型区块链链上数据高速检索模型,其特征在于,所述块头数据Block Header,存储该区块的基本信息:前一个区块的Hash值、Pow过程计算的随机数Nounce、当前区块哈希值RootHash、BloomFilter数据;所述块体数据Block Body,存储有交易数据的Hash值、BloomFilter数据、交易数据。4.根据权利要求3所述的一种新型区块链链上数据高速检索模型,其特征在于,所述Block Header中的Root Hash与中间节点存储的Hash值用于提供Merkle Proof。5.根据权利要求3所述的一种新型区块链链上数据高速检索方法,其特征在于,链上全节点向其它节点提供Merkle Proof包括以下步骤:验证交易数据不合法状态a:首先验证当前区块的Root Hash的Bloom Filter中是否存在交易数据的布隆过滤器数据,若不存在则判断当前交易数据不合法;若存在交易数据的布隆过滤器数据,则从Merkle Tree的当前节点位置递归向下查找执行步骤b;验证交易数据伪合法状态b:从当前区块的Root Hash递归向下查找,...
【专利技术属性】
技术研发人员:于金刚,侯勇康,于波,温直锋,于碧辉,李姝,
申请(专利权)人:中国科学院沈阳计算技术研究所有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。