System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于区块链的数据处理方法、装置、设备及可读存储介质制造方法及图纸_技高网

基于区块链的数据处理方法、装置、设备及可读存储介质制造方法及图纸

技术编号:40172701 阅读:8 留言:0更新日期:2024-01-26 23:42
本申请公开了一种基于区块链的数据处理方法、装置、设备及可读存储介质,该方法包括:根据区块链中的业务区块分别对应的区块高度,确定业务区块关联的状态树的状态树节点的节点高度;通过节点高度与节点哈希生成状态树节点的存储关键字,基于状态树节点相关联的存储关键字,将状态树节点的状态数据存入层级数据库中;若初始有序表所存储的状态数据的数据量,达到初始层对应的第一数据量阈值,则将目标有序表与关联有序表拼接为目标有序合并表;将目标有序合并表存储至层级数据库中的初始层的下一层。采用本申请,可以提高区块链状态数据的存储效率。

【技术实现步骤摘要】

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


技术介绍

1、目前区块链的状态树的状态树节点使用节点哈希作为数据库存储的关键字(key),由于节点哈希具有随机性,使得状态树节点在存储到数据库时,关键字是无序的,并且可能重复,对于使用顺序读写结构的数据库,数据库需要反复对关键字进行大小排序,才能确定关键字的存储位置,存储效率非常低,并且数据库每个分层或者分块所存储的关键字也会重复,所对应的关键字范围也会重叠,从而导致数据库在将分层或者分块合并时,需要进行大量的压缩(compaction)处理,影响数据写入性能。


技术实现思路

1、本申请实施例提供了一种基于区块链的数据处理方法、装置、设备及可读存储介质,可以提高区块链状态数据的存储效率。

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

3、根据区块链中的业务区块分别对应的区块高度,确定业务区块关联的状态树的状态树节点的节点高度;每个状态树的状态树节点均包含节点哈希,单个状态树中每个状态树节点的节点高度均与所属的业务区块的区块高度相同;

4、通过节点高度与节点哈希生成状态树节点的存储关键字,基于状态树节点相关联的存储关键字,将状态树节点的状态数据存入层级数据库中;层级数据库包括初始层,初始层包含一个或多个分别具有互不重叠的初始关键字范围的初始有序表,初始有序表用于按序存储属于所具有的初始关键字范围内的状态数据;

5、若初始有序表所存储的状态数据的数据量,达到初始层对应的第一数据量阈值,则将达到第一数据量阈值的初始有序表,确定为目标有序表,基于目标有序表的初始关键字范围,在初始层中确定关联有序表,将目标有序表与关联有序表拼接为目标有序合并表;目标有序表和关联有序表分别包含的状态数据在目标有序合并表中的顺序,与目标有序表和关联有序表分别对应的存储关键字的排序顺序相同;

6、将目标有序合并表存储至层级数据库中的初始层的下一层。

7、其中,通过节点高度与节点哈希生成状态树节点的存储关键字,包括:

8、获取状态树为状态树节点分配的节点前缀;

9、基于节点高度、状态树的地址以及节点前缀,生成状态树节点的存储关键字。

10、其中,层级数据库还包括缓存层,初始层的一个或多个初始有序表中包括初始有序表si,i为正整数;基于状态树节点相关联的存储关键字,将状态树节点的状态数据存入层级数据库中,包括:

11、将状态树节点的状态数据存入层级数据库的缓存层中;

12、若缓存层的状态数据的数据量,达到缓存层对应的缓存数据量阈值,则将缓存层中的状态数据存储至层级数据库中的初始层;

13、若状态树节点相关联的存储关键字属于初始有序表si的初始关键字范围,则将存储关键字属于初始有序表si的初始关键字范围的状态数据,存储至初始有序表si中。

14、其中,层级数据库中初始层的下一层为第一合并层,第一合并层包含一个或多个分别具有互不重叠的第一关键字范围的第一有序表,第一有序表用于按序存储属于所具有的第一关键字范围内的状态数据;

15、基于状态树节点相关联的存储关键字,将状态树节点的状态数据存入层级数据库中,包括:

16、将状态树节点的状态数据存入层级数据库的缓存层中;

17、若缓存层的状态数据的数据量,达到缓存层对应的缓存数据量阈值,则将缓存层中的状态数据存储至层级数据库中的初始层;

18、若初始层中不存在初始有序表,则将状态数据的存储关键字从大到小顺序排列,基于初始层对应的初始表数据阈值,将顺序排列后的存储关键字划分为m个初始数据组;m为正整数;

19、通过m个初始数据组中的存储关键字,确定m个初始数据组分别对应初始关键字范围,基于初始关键字范围生成m个初始有序表,基于初始关键字范围与存储关键字之间的关系,将状态数据存储至所关联的初始有序表中。

20、其中,层级数据库中初始层的下一层为第一合并层,第一合并层包含一个或多个分别具有互不重叠的第一关键字范围的第一有序表,第一有序表用于按序存储属于所具有的第一关键字范围内的状态数据;

21、基于目标有序表的初始关键字范围,在初始层中确定关联有序表,将目标有序表与关联有序表拼接为目标有序合并表,包括:

22、若第一有序表中的第一关键字范围中包含目标有序表的初始关键字范围,则将包含目标有序表的初始关键字范围的第一有序表,确定为待拼接表;

23、将初始关键字范围属于待拼接表的第一关键字范围的剩余初始有序表,确定为关联有序表,将目标有序表与关联有序表拼接至待拼接表中,得到目标有序合并表;剩余初始有序表为除了目标有序表之外的初始有序表。

24、其中,还包括:

25、若目标有序合并表所存储的状态数据的数据量,大于第一合并层对应的第二数据量阈值,则基于待拼接有序表所存储的状态数据的数据量与待拼接有序表的第一关键字范围,在目标有序合并表中确定拼接数据组,将拼接数据组拼接至待拼接有序表;

26、将目标有序合并表中的剩余存储关键字划分为q个合并数据组,通过q个合并数据组中的存储关键字,确定q个合并数据组分别对应第一关键字范围,基于q个合并数据组分别对应的第一关键字范围将目标有序合并表划分为q个第一有序表,将q个第一有序表存储至第一合并层;剩余存储关键字是指目标有序合并表中除了拼接数据组对应的存储关键字以外的存储关键字;

27、若目标有序合并表所存储的状态数据的数据量,小于或等于第一合并层对应的第二数据量阈值,则执行将目标有序合并表存储至层级数据库中的初始层的下一层的步骤。

28、其中,还包括:

29、若目标有序合并表所存储的状态数据的数据量,大于第一合并层对应的第二数据量阈值,则基于第二数据量阈值,将目标有序合并表中的存储关键字划分为n个合并数据组;n为正整数;第一合并层为层级数据库中的初始层的下一层;

30、通过n个合并数据组中的存储关键字,确定n个合并数据组分别对应第一关键字范围,基于n个合并数据组分别对应的第一关键字范围将目标有序合并表划分为n个第一有序表,将n个第一有序表存储至第一合并层;

31、若目标有序合并表所存储的状态数据的数据量,小于或等于第一合并层对应的第二数据量阈值,则执行将目标有序合并表存储至层级数据库中的初始层的下一层的步骤。

32、其中,层级数据库中初始层的下一层为第一合并层,第一合并层包含一个或多个分别具有互不重叠的第一关键字范围的第一有序表,第一有序表用于按序存储属于所具有的第一关键字范围内的状态数据;一个或多个第一有序表包括目标有序合并表;

33、方法还包括:

34、若初始有序表所存储的状态数据的数据量,达到初始层对应的第一数据量阈值,则将达到第一数据量阈值的初始有序表,确定为跨层有序表;

3本文档来自技高网...

【技术保护点】

1.一种基于区块链的数据处理方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述通过所述节点高度与所述节点哈希生成所述状态树节点的存储关键字,包括:

3.根据权利要求1所述的方法,其特征在于,所述层级数据库还包括缓存层,所述初始层的一个或多个初始有序表中包括初始有序表Si,i为正整数;所述基于所述状态树节点相关联的存储关键字,将所述状态树节点的状态数据存入层级数据库中,包括:

4.根据权利要求1所述的方法,其特征在于,所述层级数据库中所述初始层的下一层为第一合并层,所述第一合并层包含一个或多个分别具有互不重叠的第一关键字范围的第一有序表,所述第一有序表用于按序存储属于所具有的第一关键字范围内的状态数据;

5.根据权利要求1所述的方法,其特征在于,所述层级数据库中所述初始层的下一层为第一合并层,所述第一合并层包含一个或多个分别具有互不重叠的第一关键字范围的第一有序表,所述第一有序表用于按序存储属于所具有的第一关键字范围内的状态数据;

6.根据权利要求5所述的方法,其特征在于,还包括:

7.根据权利要求1所述的方法,其特征在于,还包括:

8.根据权利要求1所述的方法,其特征在于,所述层级数据库中所述初始层的下一层为第一合并层,所述第一合并层包含一个或多个分别具有互不重叠的第一关键字范围的第一有序表,所述第一有序表用于按序存储属于所具有的第一关键字范围内的状态数据;一个或多个第一有序表包括所述目标有序合并表;

9.根据权利要求1所述的方法,其特征在于,所述状态树节点包含所述状态树节点的子节点的节点高度和节点哈希,所述方法还包括:

10.一种基于区块链的数据处理装置,其特征在于,包括:

11.一种计算机设备,其特征在于,包括:处理器、存储器以及网络接口;

12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1-9任一项所述的方法。

13.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中,且适于由处理器读取并执行,以使得具有所述处理器的计算机设备执行权利要求1-9任一项所述的方法。

...

【技术特征摘要】

1.一种基于区块链的数据处理方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述通过所述节点高度与所述节点哈希生成所述状态树节点的存储关键字,包括:

3.根据权利要求1所述的方法,其特征在于,所述层级数据库还包括缓存层,所述初始层的一个或多个初始有序表中包括初始有序表si,i为正整数;所述基于所述状态树节点相关联的存储关键字,将所述状态树节点的状态数据存入层级数据库中,包括:

4.根据权利要求1所述的方法,其特征在于,所述层级数据库中所述初始层的下一层为第一合并层,所述第一合并层包含一个或多个分别具有互不重叠的第一关键字范围的第一有序表,所述第一有序表用于按序存储属于所具有的第一关键字范围内的状态数据;

5.根据权利要求1所述的方法,其特征在于,所述层级数据库中所述初始层的下一层为第一合并层,所述第一合并层包含一个或多个分别具有互不重叠的第一关键字范围的第一有序表,所述第一有序表用于按序存储属于所具有的第一关键字范围内的状态数据;

6.根据权利要求5所述的方法,其特征在于,还包括:

7.根据权利要求1所述的方法,...

【专利技术属性】
技术研发人员:廖志勇聂凯轩黄杨峻刘汉卿刘区城朱耿良时一防王宗友
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

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

1