基于区块链的数据处理方法、装置、设备及可读存储介质与流程

文档序号:37263526发布日期:2024-03-12 20:45阅读:10来源:国知局
基于区块链的数据处理方法、装置、设备及可读存储介质与流程

本技术涉及计算机,尤其涉及一种基于区块链的数据处理方法、装置、设备及可读存储介质。


背景技术:

1、区块链是一种分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,主要用于对数据按时间顺序进行整理,并加密成账本,使其不可被篡改和伪造,同时可进行数据的验证、存储和更新。区块链还可以进行数据加密传输、节点识别和安全访问,是一种先进的分布式基础架构。目前,因为区块链的不可篡改性与真实性,对于区块链的应用也越来越多。

2、在区块链的相关技术中,在存储区块链的链上数据时,每个区块链节点均会不断同步数据,使得各个区块链节点所存储的区块数据是相同的。例如,对于区块链中的各个区块的交易状态数据,每个区块链节点均会同步拉取同样的交易状态数据并将其存储到本地,这将带来数据过渡冗余的问题,即每个区块链节点均存储着一致的数据,无疑会带来大量的存储空间的浪费,存储成本过大。


技术实现思路

1、本技术实施例提供一种基于区块链的数据处理方法、装置、设备及可读存储介质,可以在区块链的存储业务中,减少数据冗余度,减小存储空间消耗。

2、本技术实施例一方面提供了一种基于区块链的数据处理方法,包括:

3、第一节点向状态数据库发送针对目标交易状态数据的数据查询请求;目标交易状态数据是指目标区块中所包含的交易数据的状态数据;状态数据库是指用于统一存储区块链中每个区块的状态数据的数据库;第一节点属于区块链;

4、接收状态数据库基于数据查询请求所返回的数据查询结果;

5、若数据查询结果为状态数据库中未包含目标交易状态数据的查询结果,则向状态数据库发送针对目标交易状态数据的数据写入请求;数据写入请求用于请求将目标交易状态数据写入至状态数据库中;状态数据库中的目标交易状态数据具备共享查阅属性,具备共享查阅属性的目标交易状态数据,用于第一节点与第二节点进行共享查阅,第二节点属于区块链。

6、本技术实施例一方面提供了一种基于区块链的数据处理装置,包括:

7、查询请求发送模块,用于向状态数据库发送针对目标交易状态数据的数据查询请求;目标交易状态数据是指目标区块中所包含的交易数据的状态数据;状态数据库是指用于统一存储区块链中每个区块的状态数据的数据库;第一节点属于区块链;

8、结果接收模块,用于接收状态数据库基于数据查询请求所返回的数据查询结果;

9、写入请求发送模块,用于若数据查询结果为状态数据库中未包含目标交易状态数据的查询结果,则向状态数据库发送针对目标交易状态数据的数据写入请求;数据写入请求用于请求状态数据库将目标交易状态数据写入至状态数据库中;状态数据库中的目标交易状态数据具备共享查阅属性,具备共享查阅属性的目标交易状态数据,用于第一节点与第二节点进行共享查阅,第二节点属于区块链。

10、在一个实施例中,该基于区块链的数据处理装置还可以包括:

11、验证模块,用于若数据查询结果为包含存在性证明的查询结果,则基于存在性证明对目标交易状态数据的一致性进行验证,得到验证结果;

12、本地写入模块,用于若验证结果为验证失败结果,则将目标交易状态数据写入至第一节点的本地数据库中;

13、属性确定模块,用于若验证结果为验证通过结果,则将目标交易状态数据的写入属性确定为已写入属性。

14、在一个实施例中,存在性证明包含针对目标区块的目标交易状态数据的目标默克尔根;

15、验证模块可以包括:

16、哈希获取单元,用于获取已存区块对应的已存状态哈希值;已存区块是指区块链中区块高度小于目标区块的区块,已存区块的交易状态数据的写入属性为已写入属性;

17、生成单元,用于获取目标交易状态数据的目标状态哈希值,根据已存状态哈希值与目标状态哈希值,生成针对目标交易状态数据的待匹配默克尔根;

18、匹配单元,用于将待匹配默克尔根与目标默克尔根进行匹配;

19、结果确定单元,用于若待匹配默克尔根与目标默克尔根相同,则将验证结果确定为验证通过结果;

20、结果确定单元,还用于若待匹配默克尔根与目标默克尔根不同,则将验证结果确定为验证失败结果。

21、在一个实施例中,写入请求发送模块可以包括:

22、区块信息获取单元,用于获取目标区块中所包含的交易数据的交易标识,以及目标区块的区块高度;

23、版本号确定单元,用于将目标区块的区块高度与交易标识,作为目标交易状态数据的数据版本号;

24、请求生成单元,用于在数据版本号与目标交易状态数据之间建立映射关系,生成包含目标交易状态数据以及映射关系的数据写入请求;

25、写入请求发送单元,用于将包含目标交易状态数据以及映射关系的数据写入请求,确定为针对目标交易状态数据的数据写入请求,向状态数据库发送针对目标交易状态数据的数据写入请求。

26、在一个实施例中,该基于区块链的数据处理装置还可以包括:

27、接收模块,用于接收状态数据库基于数据写入请求所返回的数据写入结果;

28、读取请求发送模块,用于若数据写入结果为成功写入结果,则在到达针对目标交易状态数据的读取时刻时,向状态数据库发送携带数据版本号的数据读取请求;数据读取请求用于请求读取目标交易状态数据;读取时刻晚于写入时刻,写入时刻是指,第一节点将目标交易状态数据成功写入至状态数据库的时刻;

29、状态检测模块,用于接收状态数据库基于数据读取请求所返回的数据读取结果,基于数据读取结果对目标交易状态数据进行存储状态检测。

30、在一个实施例中,状态检测模块可以包括:

31、第一状态确定单元,用于若数据读取结果为携带目标交易状态数据的读取结果,则确定目标交易状态数据的存储状态为正常状态;

32、第二状态确定单元,用于若数据读取结果为状态数据库中未包含目标交易状态数据的读取结果,则确定目标交易状态数据的存储状态为异常状态;异常状态用于表征状态数据库已基于状态数据库的存储上限值,将目标交易状态数据移出状态数据库。

33、在一个实施例中,状态检测模块还可以包括:

34、本地写入单元,用于若目标交易状态数据的存储状态为异常状态,则将目标交易状态数据写入至第一节点的本地数据库中。

35、在一个实施例中,在读取时刻时,目标区块的区块高度,为第一节点所对应的本地区块高度集合中的最大区块高度;本地区块高度集合为第一节点的本地数据库中,所存储的n个本地区块所分别对应的区块高度所组成的集合,n个本地区块包括目标区块;n为正整数;

36、状态检测模块还可以包括:

37、节点标记单元,用于在目标交易状态数据的存储状态为异常状态时,将第一节点标记为同步落后节点;在执行待共识区块的共识业务时,同步落后节点针对共识业务的投票信息为无效投票信息;待共识区块的区块生成时间,晚于目标区块的区块生成时间。

38、在一个实施例中,该基于区块链的数据处理装置还可以包括:

39、遍历模块,用于在到达针对目标交易状态数据的读取时刻时,遍历第一节点的本地数据库所存储的已存状态数据集合;已存状态数据集合包含本地数据库所存储的一个或多个已存状态数据;

40、步骤执行模块,用于若本地数据库所存储的一个或多个已存状态数据中不存在目标交易状态数据,则执行向状态数据库发送携带数据版本号的数据读取请求的步骤。

41、在一个实施例中,第一节点向状态数据库发送数据查询请求的时刻为第一时刻;状态数据库中包含目标交易状态数据的时间段为第二时刻与第三时刻所组成的时间段,第二时刻为第二节点将目标交易状态数据写入至状态数据库的时刻,第三时刻为状态数据库基于状态数据库的存储上限值,将目标交易状态数据移出状态数据库的时刻;第一时刻与第三时刻均晚于第二时刻,第三时刻早于第一时刻;第二节点属于区块链。

42、在一个实施例中,基于区块链的数据处理装置还可以包括:

43、提示接收模块,用于接收状态数据库基于数据写入请求返回的重复写入提示信息;重复写入提示信息,用于提示目标交易状态数据为针对状态数据库的重复写入数据;

44、状态本地写入模块,用于根据重复写入提示信息,将目标交易状态数据写入至第一节点的本地数据库中。

45、在一个实施例中,基于区块链的数据处理装置还可以包括:

46、落后标记模块,用于根据重复写入提示信息,将第一节点标记为同步落后节点;在执行待共识区块的共识业务时,同步落后节点针对共识业务的投票信息为无效投票信息;待共识区块的区块生成时间,晚于目标区块的区块生成时间。

47、本技术实施例一方面提供了一种计算机设备,包括:处理器和存储器;

48、存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行本技术实施例中的方法。

49、本技术实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时,执行本技术实施例中的方法。

50、本技术的一个方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行本技术实施例中一方面提供的方法。

51、在本技术实施例中,采用统一的状态数据库来存储区块链中不同节点(如第一节点与第二节点)的交易状态数据,每个节点均可将本地区块的交易状态数据写入到状态数据库中,而为了减少重复写入的情况,每个节点在将某个区块的交易状态数据写入至状态数据库前,可以先向状态数据库发送一个数据查询请求,若该状态数据库中未包含该交易状态数据,则该节点可以将该交易状态数据写入至该状态数据库中。而对于状态数据库中所存储的交易状态数据,其具备共享查阅属性,区块链中的各个节点均可进行共享查阅。应当理解,通过采用统一的状态数据库来存储不同节点的交易状态数据的方式,可以将各个节点的交易状态数据于统一的位置进行存储,从而很好地改善每个节点的本地所存储的数据均一致的情况,可以降低数据的冗余,进而降低区块链整体的存储空间的消耗。综上,本技术可以在区块链的存储业务中,减小数据的冗余度,减小存储空间的消耗。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1