数据存储和查询响应方法、区块执行方法技术

技术编号:29223663 阅读:28 留言:0更新日期:2021-07-10 01:06
本发明专利技术提供一种数据存储和查询响应方法、区块执行方法、计算机设备和存储介质,各合约中配置有对应于交易类型的keylist生成函数,该方法包括:根据预配置的状态数据分布式存储规则在区块链网络中确定若干需存储第一状态数据的第一区块链节点;在当前节点不包括于第一区块链节点时,删除本地存储的第一状态数据;接收第二区块链节点发送的包括第一键的第一数据查询请求信息,在本地存储有第一键对应的第一状态数据时,返回第一状态数据。本申请在状态数据分布式存储的环境下,保证区块执行效率和区块的交易量。效率和区块的交易量。效率和区块的交易量。

【技术实现步骤摘要】
数据存储和查询响应方法、区块执行方法


[0001]本申请涉及区块链
,具体涉及一种数据存储和查询响应方法、区块执行方法、计算机设备和存储介质。

技术介绍

[0002]在现有技术中,执行交易的步骤是:1、从本地读取执行交易所需的状态数据,2、根据上述状态数据执行交易。交易是串行执行的,读取本地的状态数据的延时一般在1ms内,这种延时对于状态数据的读取和交易的执行的影响不大。但随着区块的增长,状态数据越来越多,希望能将状态数据进行分布式存储。但是如果分布式存储状态数据,则不同节点间远程获取状态数据的延时一般大于1s,这样读取状态数据、执行交易的时间将大大延长,执行一个区块将需要占用大量时间,影响区块链的整体性能。
[0003]针对上述问题,申请人同日提交的专利申请提出了解决方案:所有交易都携带有执行本交易所需读取的key,区块链节点在执行一个区块时,首先汇总该区块中所有交易所需读取的key,并分别对每个key执行:向存储有上述key的区块链节点请求获取上述key对应的value;其次,根据各所返回的value执行上述区块。
[0004]上述解决方案存在如下问题,由于所有交易都携带有执行本交易所需读取的key,交易非常冗长,冗长的交易需要占用区块的大量存储空间,每个区块所能存放的交易量下降。

技术实现思路

[0005]鉴于现有技术中的上述缺陷或不足,期望提供一种在状态数据分布式存储的环境下,保证区块执行效率和区块的交易量的数据存储和查询响应方法、区块执行方法、计算机设备和存储介质。r/>[0006]第一方面,本专利技术提供一种适用于区块链节点的数据存储和查询响应方法,各合约中配置有对应于交易类型的keylist生成函数,上述方法包括:
[0007]根据预配置的状态数据分布式存储规则在区块链网络中确定若干需存储第一状态数据的第一区块链节点;
[0008]在当前节点不包括于第一区块链节点时,删除本地存储的第一状态数据;
[0009]接收第二区块链节点发送的包括第一键的第一数据查询请求信息,在本地存储有第一键对应的第一状态数据时,返回第一状态数据;其中,第一状态数据用于供第二区块链节点执行需要读取第一状态数据才能执行的第一交易,执行第一交易所需的各项键由第一交易指定的第一合约的第一交易类型对应的第一keylist生成函数生成,第二区块链节点配置用于根据各项键和状态数据分布式存储规则生成若干数据查询请求信息并同时分别发送至对应的区块链节点。
[0010]第二方面,本专利技术提供一种适用于区块链节点的区块执行方法,各合约中配置有对应于交易类型的keylist生成函数,区块链节点配置用于分布存储状态数据、存储有根据
分布式存储规则所确定应存储在当前节点的部分状态数据,上述方法包括:
[0011]接收或生成包括若干第一交易的第一区块;
[0012]对各第一交易执行如下操作:读取第一交易指定的第一合约的第一交易类型,通过执行第一交易类型的第一keylist生成函数生成执行第一交易所需读取的各第二状态数据对应的第二键;
[0013]汇总各第一交易的各第二键;
[0014]分别对各第二键执行:向若干存储有第二键的第二区块链节点发送查询请求信息;
[0015]根据各所返回的第二状态数据执行第一区块。
[0016]第三方面,本专利技术还提供一种设备,包括一个或多个处理器和存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本专利技术各实施例提供的数据存储和查询响应方法、区块执行方法。
[0017]第四方面,本专利技术还提供一种存储有计算机程序的存储介质,该计算机程序使计算机执行根据本专利技术各实施例提供的数据存储和查询响应方法、区块执行方法。
[0018]本专利技术诸多实施例提供的数据存储和查询响应方法、区块执行方法、计算机设备和存储介质通过根据预配置的状态数据分布式存储规则在区块链网络中确定若干需存储第一状态数据的第一区块链节点;在当前节点不包括于第一区块链节点时,删除本地存储的第一状态数据;接收第二区块链节点发送的包括第一键的第一数据查询请求信息,在本地存储有第一键对应的第一状态数据时,返回第一状态数据;其中,第一状态数据用于供第二区块链节点执行需要读取第一状态数据才能执行的第一交易,执行第一交易所需的各项键由第一交易指定的第一合约的第一交易类型对应的第一keylist生成函数生成,第二区块链节点配置用于根据各项键和状态数据分布式存储规则生成若干数据查询请求信息并同时分别发送至对应的区块链节点的方法,在状态数据分布式存储的环境下,保证区块执行效率和区块的交易量。
附图说明
[0019]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
[0020]图1为本专利技术一实施例提供的一种数据存储和查询响应方法的流程图。
[0021]图2为本专利技术一实施例提供的一种区块执行方法的流程图。
[0022]图3为本专利技术一实施例提供的一种计算机设备的结构示意图。
具体实施方式
[0023]下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关专利技术,而非对该专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与专利技术相关的部分。
[0024]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
[0025]图1为本专利技术一实施例提供的一种数据存储和查询响应方法的流程图。如图1所
示,在本实施例中,本专利技术提供一种适用于区块链节点的数据存储和查询响应方法,各合约中配置有对应于交易类型的keylist生成函数,上述方法包括:
[0026]S12:根据预配置的状态数据分布式存储规则在区块链网络中确定若干需存储第一状态数据的第一区块链节点;
[0027]S14:在当前节点不包括于第一区块链节点时,删除本地存储的第一状态数据;
[0028]S16:接收第二区块链节点发送的包括第一键的第一数据查询请求信息,在本地存储有第一键对应的第一状态数据时,返回第一状态数据;其中,第一状态数据用于供第二区块链节点执行需要读取第一状态数据才能执行的第一交易,执行第一交易所需的各项键由第一交易指定的第一合约的第一交易类型对应的第一keylist生成函数生成,第二区块链节点配置用于根据各项键和状态数据分布式存储规则生成若干数据查询请求信息并同时分别发送至对应的区块链节点。
[0029]具体地,以区块链上记录有状态数据对应的键的前缀和分片的对应关系,S12包括“根据第一状态数据对应的第一键的第一前缀查找第一分片;将第一分片中的若干节点确定为第一区块链节点”为例;假设区块链网络中有4个分片,分片1上有区块链节点node1~node10,分片2上有区块链节点node11~node20,分片3上有区块链节点n本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种数据存储和查询响应方法,其特征在于,各合约中配置有对应于交易类型的keylist生成函数,所述方法适用于区块链节点,所述方法包括:根据预配置的状态数据分布式存储规则在区块链网络中确定若干需存储第一状态数据的第一区块链节点;在当前节点不包括于所述第一区块链节点时,删除本地存储的所述第一状态数据;接收第二区块链节点发送的包括第一键的第一数据查询请求信息,在本地存储有所述第一键对应的第一状态数据时,返回所述第一状态数据;其中,所述第一状态数据用于供所述第二区块链节点执行需要读取所述第一状态数据才能执行的第一交易,执行所述第一交易所需的各项键由所述第一交易指定的第一合约的第一交易类型对应的第一keylist生成函数生成,所述第二区块链节点配置用于根据所述各项键和所述状态数据分布式存储规则生成若干数据查询请求信息并同时分别发送至对应的区块链节点。2.根据权利要求1所述的方法,其特征在于,区块链上记录有状态数据对应的键的前缀和分片的对应关系,所述根据预配置的状态数据分布式存储规则在区块链网络中确定若干需存储第一状态数据的第一区块链节点包括:根据所述第一状态数据对应的第一键的第一前缀查找第一分片;将所述第一分片中的若干节点确定为所述第一区块链节点。3.根据权利要求1所述的方法,其特征在于,所述根据预配置的状态数据分布式存储规则在区块链网络中确定若干需存储第一状态数据的第一区块链节点包括:对所述第一状态数据所在的第一数据集合做哈希运算以计算得到第一数据;分别计算所述第一数据与各区块链节点的节点id的第一异或值;将所述第一异或值最小的第一数量个区块链节点确定为所述第一区块链节点。4.一种区块执行方法,其特征在于,各合约中配置有对应于交易类型的keylist生成函数,区块链节点配置用于分布存储状态数据、存储有根据分布式存储规则所确定应存储在当前节点的部分状态数据,所述方法适用于区块链节点,所述方法包括:接收或生成包括若干第一交易的第一区块;对各所述第一交易执行如下操作:读取所述第一交易指定的第一合约的第一交易类型,通过执行所述第一交易类型的第一keylist生成函数生成执行所述第一交易所需读取的各第二状态数据对应的第二键;汇总各所述第一交易的各所述第二键;分别对各所述第二键执行:向若干存储有所述第二键的第二区块链节点发送查询请求信息;根据各所返回的所述第二状态数据执行所述第一区块。5.根据权利要求4所述的方法,其特征...

【专利技术属性】
技术研发人员:王志文吴思进
申请(专利权)人:杭州复杂美科技有限公司
类型:发明
国别省市:

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

1