CN114385761A - 一种基于共识***的共识数据存储、获取方法及装置 - Google Patents

一种基于共识***的共识数据存储、获取方法及装置 Download PDF

Info

Publication number
CN114385761A
CN114385761A CN202210289723.2A CN202210289723A CN114385761A CN 114385761 A CN114385761 A CN 114385761A CN 202210289723 A CN202210289723 A CN 202210289723A CN 114385761 A CN114385761 A CN 114385761A
Authority
CN
China
Prior art keywords
consensus
data
node
block data
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202210289723.2A
Other languages
English (en)
Other versions
CN114385761B (zh
Inventor
廖校均
周猛
张子刚
付志嵩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202210289723.2A priority Critical patent/CN114385761B/zh
Publication of CN114385761A publication Critical patent/CN114385761A/zh
Application granted granted Critical
Publication of CN114385761B publication Critical patent/CN114385761B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本说明书实施例提供了一种基于共识***的共识数据存储、获取方法及装置。该共识***可以是区块链网络。该共识***中的任意一个节点设备可以执行以下步骤来存储共识数据:获取共识数据和参与共识该共识数据的节点设备数量,作为共识节点数量;利用纠删码算法和共识节点数量,对该共识数据进行拆分,得到多个分块数据;按照约定顺序,从多个分块数据中选择与节点设备自身对应的分块数据,并将其存储。落后节点可以从参与共识待获取的共识数据的多个节点设备中获取多个分块数据,并利用纠删码算法和共识节点数量,对多个分块数据进行还原,从而获取到该共识数据。

Description

一种基于共识***的共识数据存储、获取方法及装置
技术领域
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及一种基于共识***的共识数据存储、获取方法及装置。
背景技术
在分布式环境下,例如在分布式数据库的应用中,往往需要借助分布式一致性协议,例如共识协议Raft或实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)协议等来达成多副本数据的一致性。因此,共识***可以通过共识协议将业务请求复制到不同的节点设备中,实现多副本数据的一致性,得到多个节点设备的共识数据,例如区块链网络中的共识过程。参与共识的节点设备往往部署在不同的地理位置,具有不同的网络状况,某些节点设备会面临网络隔离或进程启停等问题。这容易导致部分节点设备暂时无法参与共识,从而成为落后节点。为了保持副本数据的一致性,落后节点需要从正常参与的节点设备中获取共识数据。
随着共识过程的持续进行,正常参与共识的节点设备中的共识数据会越来越多,最先存储的共识数据可能会被清理掉。当落后严重的节点设备恢复工作之后,在向正常的节点设备获取共识数据时,会出现无法获取的问题,从而导致这样的落后节点很难恢复到正常的共识过程中,进而降低共识***的稳定性。
因此,希望能有改进的方案,可以尽可能提高落后节点从正常节点中获取共识数据时的成功率,提高共识***的稳定性。
发明内容
本说明书一个或多个实施例描述了一种基于共识***的共识数据存储、获取方法及装置,以尽可能提高落后节点从正常节点中获取共识数据时的成功率,提高共识***的稳定性。具体的技术方案如下。
第一方面,实施例提供了一种基于共识***的共识数据存储方法,所述共识***包含多个节点设备,所述方法通过任意一个第一节点设备执行,包括:
获取经过多个节点设备共识后的第一共识数据;
获取参与共识所述第一共识数据的节点设备数量,作为共识节点数量;
利用纠删码算法和所述共识节点数量,对所述第一共识数据进行拆分,得到所述共识节点数量个分块数据;
按照约定顺序,从所述多个分块数据中选择与所述第一节点设备对应的分块数据;
存储与所述第一节点设备对应的分块数据;其中,所述分块数据,用于与其他节点设备各自存储的分块数据结合,还原出所述第一共识数据;所述其他节点设备是参与共识所述第一共识数据的其他节点设备。
在一种实施方式中,所述利用纠删码算法和所述共识节点数量,对所述第一共识数据进行拆分的步骤,包括:
获取所述共识***设置的容忍故障节点数量;
将所述容忍故障节点数量作为所述纠删码算法的校验块数量;
将所述共识节点数量与所述容忍故障节点数量的差值,确定为所述纠删码算法的数据块数量;
利用所述纠删码算法以及所述校验块数量和所述数据块数量,对所述第一共识数据进行拆分。
在一种实施方式中,所述按照约定顺序,从所述多个分块数据中选择与所述第一节点设备对应的分块数据的步骤,包括:
获取参与共识所述第一共识数据的节点设备的标识;
按照约定排列顺序对多个标识进行排序;
基于所述第一节点设备的标识在排序后多个标识中的位置,从所述多个分块数据中选择与所述第一节点设备对应的分块数据。
在一种实施方式中,所述获取经过多个节点设备共识后的第一共识数据的步骤,包括:
从所述第一节点设备的共识数据库中获取第一共识数据;所述共识数据库用于存储经过多个节点设备共识后的共识数据;
所述存储与所述第一节点设备对应的分块数据的步骤,包括:
将与所述第一节点设备对应的分块数据替换所述共识数据库中的所述第一共识数据。
在一种实施方式中,所述获取经过多个节点设备共识后的第一共识数据的步骤,包括:
从所述第一节点设备的缓存中获取第一共识数据;
所述存储与所述第一节点设备对应的分块数据的步骤,包括:
将与所述第一节点设备对应的分块数据存储在共识数据库中。
在一种实施方式中,共识数据中包含若干个业务请求;所述获取经过多个节点设备共识后的第一共识数据的步骤,包括:
从经过多个节点设备共识后的若干个共识数据中,选择已经由所述第一节点设备执行其中业务请求的共识数据,作为第一共识数据。
在一种实施方式中,所述获取经过多个节点设备共识后的第一共识数据的步骤,包括:
针对经过多个节点设备共识后的多个分批共识数据,获取参与共识每个分批共识数据的共识节点设备;
对由相同的共识节点设备参与共识的分批共识数据进行数据合并,得到第一共识数据。
第二方面,实施例提供了一种基于共识***的共识数据获取方法,所述共识***包含多个节点设备,所述方法通过任意一个第二节点设备执行,包括:
确定当前待获取的已经过共识的第一共识数据;
获取参与共识所述第一共识数据的多个节点设备;
从所述多个节点设备中获取所述第一共识数据的分块数据,得到多个分块数据;其中,任意一个分块数据,是对应的节点设备利用纠删码算法和共识节点数量,对所述第一共识数据进行拆分,并从拆分后的分块数据中按照约定顺序选择的;所述共识节点数量是参与共识所述第一共识数据的节点设备数量;
利用所述纠删码算法,对所述多个分块数据进行还原,得到所述第一共识数据。
在一种实施方式中,所述从所述多个节点设备中获取所述第一共识数据的分块数据的步骤,包括:
获取所述共识***设置的容忍故障节点数量;
基于所述共识节点数量与所述容忍故障节点数量的差值确定参照数量;
从所述多个节点设备中选择不少于所述参照数量的目标节点设备;
从所述目标节点设备中获取所述第一共识数据的分块数据。
在一种实施方式中,所述利用所述纠删码算法,对所述多个分块数据进行还原的步骤,包括:
基于所述约定顺序对所述多个分块数据进行排序;
利用所述纠删码算法,对排序后的多个分块数据进行还原。
在一种实施方式中,所述第二节点设备是所述共识***中的落后节点设备中的任意一个;所述共识***为区块链网络。
第三方面,实施例提供了一种基于共识***的共识数据存储装置,所述共识***包含多个节点设备,所述装置部署在任意一个第一节点设备中,包括:
第一获取模块,配置为,获取经过多个节点设备共识后的第一共识数据;
第二获取模块,配置为,获取参与共识所述第一共识数据的节点设备数量,作为共识节点数量;
第一拆分模块,配置为,利用纠删码算法和所述共识节点数量,对所述第一共识数据进行拆分,得到所述共识节点数量个分块数据;
第一选择模块,配置为,按照约定顺序,从所述多个分块数据中选择与所述第一节点设备对应的分块数据;
第一存储模块,配置为,存储与所述第一节点设备对应的分块数据;其中,所述分块数据,用于与其他节点设备各自存储的分块数据结合,还原出所述第一共识数据;所述其他节点设备是参与共识所述第一共识数据的其他节点设备。
在一种实施方式中,所述第一拆分模块,包括:
第一获取子模块,配置为,获取所述共识***设置的容忍故障节点数量,将所述容忍故障节点数量作为所述纠删码算法的校验块数量;
第一确定子模块,配置为,将所述共识节点数量与所述容忍故障节点数量的差值,确定为所述纠删码算法的数据块数量;
拆分子模块,配置为,利用所述纠删码算法以及所述校验块数量和所述数据块数量,对所述第一共识数据进行拆分。
第四方面,实施例提供了一种基于共识***的共识数据获取装置,所述共识***包含多个节点设备,所述装置部署在任意一个第二节点设备中,包括:
第一确定模块,配置为,确定当前待获取的已经过共识的第一共识数据;
第三获取模块,配置为,获取参与共识所述第一共识数据的多个节点设备;
第四获取模块,配置为,从所述多个节点设备中获取所述第一共识数据的分块数据,得到多个分块数据;其中,任意一个分块数据,是对应的节点设备利用纠删码算法和共识节点数量,对所述第一共识数据进行拆分,并从拆分后的分块数据中按照约定顺序选择的;所述共识节点数量是参与共识所述第一共识数据的节点设备数量;
第一还原模块,配置为,利用所述纠删码算法,对所述多个分块数据进行还原,得到所述第一共识数据。
第五方面,实施例提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面和第二方面中任一项所述的方法。
第六方面,实施例提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面和第二方面中任一项所述的方法。
本说明书实施例提供的方法及装置中,对于经过多个节点设备共识后的共识数据,节点设备会对该共识数据进行拆分,得到多个分块数据,并存储与自身对应的分块数据。对于任意一个共识数据,参与共识的多个节点设备分别存储该共识数据的一个分块数据,单个节点设备中存储的共识数据的数据量大幅减少,这使得节点设备能够存储更多数量的共识数据。落后节点能够从多个节点设备中获取并恢复得到更早的共识数据,从而提高了提高落后节点从正常节点中获取共识数据时的成功率,进而提高了共识***的稳定性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1-1为本说明书披露的一个实施例的实施场景示意图;
图1-2为多个节点设备中的共识数据的一种对比示意图;
图2为实施例提供的一种基于共识***的共识数据存储方法的流程示意图;
图3为实施例提供的节点设备对共识数据进行处理的一种示意图;
图4为实施例提供的对共识数据进行拆分和选择的一种示意图;
图5为实施例提供的一种基于共识***的共识数据获取方法的流程示意图。
图6为实施例提供的节点设备对多个分块数据进行还原的一种示意图;
图7为实施例提供的一种基于共识***的共识数据存储装置的示意性框图;
图8为实施例提供的一种基于共识***的共识数据获取装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1-1为本说明书披露的一个实施例的实施场景示意图。其中,共识***中包含节点设备1~节点设备5,正常情况下节点设备之间可以彼此通信。共识***在接收到业务请求时,其中的节点设备会对业务请求进行共识。在某一时刻,节点设备1、节点设备2和节点设备3参与业务数据的共识,得到共识数据。针对节点设备1、节点设备2和节点设备3中的每一个节点设备,可以对该共识数据进行拆分,得到多个(例如3个)分块数据,并分块存储与自身对应的一个分块数据,三个节点设备分别存储不同的分块数据。这样,对于一个共识数据来说,参与共识的任意一个节点设备仅存储一个分块数据即可。对于没有参与共识的节点设备4和5,可以从节点设备1、节点设备2和节点设备3中获取多个分块数据,并利用多个分块数据还原出完整的共识数据,进而执行共识数据中的业务请求。图1-1中共识***中的节点设备仅仅是一种举例,在实际应用中,共识***中的节点设备的数量可以是大于2的任意数值。
本实施例中的共识***可以是提供某种服务的***,在所提供的服务中,需要使得共识***中多个节点设备的业务请求副本之间达到一致性,实现数据共识,以便多个节点设备执行共识数据中的业务请求,从而使得所有节点设备执行完全相同的业务请求。因此,共识***对业务请求的处理包括数据共识过程和业务执行过程。在数据共识过程中,多个节点设备通过共识协议获得满足一致性的共识数据。在业务执行过程中,共识***中的所有节点设备执行该共识数据中的业务请求,从而利用相同的共识数据得到相同的业务处理结果,也就是基于相同的初始状态和相同的输入,得到相同的输出状态。
在一种应用场景中,共识***可以是区块链网络,或其他需要进行数据共识的***。业务请求可以是交易,例如用于在不同账户之间转账的交易。业务请求也可以是其他需要在共识***中同步执行的业务请求,例如可以是用于更新图数据库中节点之间关联关系的请求,其中,多个节点设备中同步存储有图数据库,而图数据库可以用于存储多个节点以及节点之间的关联关系,图数据库中的节点可以代表用户或商户等。向共识***发送业务请求的设备也可以是除客户端之外的其他设备,例如服务器或者其他平台。
节点设备中不仅有存储共识数据的共识数据库(也叫日志数据库),还有存储业务数据的业务数据库。当节点设备执行共识数据中的业务请求时,可以从业务数据库中读取相关的业务数据,向业务数据库中写入对应的业务数据等。为了给业务数据库分配更多的存储空间,往往把共识数据库的存储空间设置得很小。当然,也可以不采用数据库存储数据,而是采用一部分存储空间存储共识数据,一部分存储空间存储业务数据。
共识***中的共识协议可以包括Raft和PBFT等共识协议。常见的共识协议具备一定的容错性,共识***的正常运行要求大部分节点设备正常运行即可。例如,在Raft协议中要求至少一半以上的节点正常运行,PBFT协议允许***中有不多于三分之一的节点设备失效或作恶。也就是说,有大部分节点设备参与共识数据的共识过程,共识***即可正常运行。如果有少量节点设备因故障等原因发生网络隔离,或因进程启停等原因没有参与共识过程,这部分节点设备中的共识数据便落后于其他正常参与共识过程的节点设备,即共识数据少于正常节点设备的节点设备。这部分节点设备可以称为落后节点,而正常参与共识过程的节点设备,以及并不缺少共识数据的节点设备,称为正常节点。例如,在图1-1中,节点设备1、节点设备2和节点设备3参与了共识数据的共识过程,而节点设备4和节点设备5并没有参与该共识过程,因此成为落后节点。
落后节点需要从正常节点中获取其没有参与共识的共识数据,并执行该共识数据中的业务请求,以便与正常节点执行完全相同的业务请求,在业务上保持最终的一致性。
图1-2为多个节点设备中的共识数据的一种对比示意图。其中,方格代表共识数据,方格上方的一行数字代表共识数据的序号,方格中的数据代表业务数据。假设当前最新的共识数据是序号为8的共识数据,可见,节点设备1、节点设备2和节点设备3具有相同的共识高度,是正常节点;节点设备4和节点设备5则是落后节点,节点设备4中缺少序号6~8的共识数据,节点设备5中缺少序号3~8的共识数据,假设节点设备5可以被认为是严重落后的节点。落后节点需要从正常节点中获取其中缺少的共识数据。
随着共识过程的持续进行,节点设备需要将最早的共识数据清理掉,以便腾出存储空间存储最新的共识数据,严重落后的节点设备可能无法从正常节点中获取连续的共识数据,导致恢复失败。
为了使得落后节点尽可能成功恢复,提高共识***的稳定性,本实施例提供了一种共识数据存储方法,该方法通过共识***中的任意一个第一节点设备执行,包括:步骤S210,获取经过多个节点设备共识后的第一共识数据;步骤S220,获取参与共识第一共识数据的节点设备数量,作为共识节点数量;步骤S230,利用纠删码算法和共识节点数量,对第一共识数据进行拆分,得到共识节点数量个分块数据;步骤S240,按照约定顺序,从多个分块数据中选择与第一节点设备对应的分块数据;步骤S250,存储与第一节点设备对应的分块数据。其中,分块数据,用于与其他节点设备各自存储的分块数据结合,还原出第一共识数据。这样,落后节点可以从多个参与共识的节点设备中获得多个分块数据,并利用这些分块数据还原出原始的共识数据。
在本实施例中,每个参与共识的节点设备仅需存储共识数据的一个分块数据,存储数据量仅为原来的几分之一,大幅度地减少了所存储的共识数据的数据量,能够在不增加存储空间的基础上,大幅提高所存储的共识数据的数量,使得落后节点能从正常节点中获得更早的共识数据,提高落后节点恢复数据时的成功率。同时也节省了节点设备中的存储空间,并且能够容忍故障节点更长的恢复时间。
下面结合图2对本实施例提供的共识数据存储方法进行详细说明。
图2为实施例提供的一种基于共识***的共识数据存储方法的流程示意图。该共识***包含多个节点设备,节点设备可以通过任何具有计算、处理能力的装置、设备、平台、设备集群等来实现。共识***中的任意一个节点设备,可以是逻辑意义上的节点设备,例如,不同的节点设备也可以实现在同一实体设备中。该方法通过共识***中任意一个第一节点设备A执行,具体包括以下步骤S210~S250。
步骤S210,第一节点设备A获取经过多个节点设备共识后的第一共识数据Index1。
其中,第一共识数据Index1可以是第一节点设备A中任意一个已经过共识的数据。参与共识第一共识数据Index1的节点设备,可以是共识***中的大部分节点设备,例如可以是超过一半或超过三分之二的节点设备。
第一共识数据Index1中包含若干个业务请求。该业务请求可以是区块链网络中的交易,也可以是其他数据。当第一节点设备A获取到经过共识后的共识数据时,会通过自身的状态机(或称为虚拟机)执行该共识数据中的业务请求。每个节点设备中都保存有多个共识数据,多个共识数据可以采用序号表示先后顺序。节点设备中的共识数据库可以用于存储经过多个节点设备共识后的共识数据。
图3为实施例提供的节点设备对共识数据进行处理的一种示意图。其中,业务请求是交易Tx,多个交易陆续被发送到区块链网络中,并形成请求队列。请求队列中的请求被打包分成多个批次,例如Batch101、Batch100、Batch99等,并通过批次编号作为分批请求的标识,该批次编号也能体现分批请求的顺序信息。在多个节点设备对分批请求(例如Batch100)达成共识之后,该分批请求Batch100成为共识数据,标记为commitID:100。接着,节点设备可以将该共识数据Batch100发给自身的执行引擎,由执行引擎执行共识数据Batch100中的业务请求,并将业务数据写入业务数据库中,并更新已执行过的批次编号,比如标记为ApplyID:100。共识数据可以存储在共识数据库中。正常的节点设备对共识数据的处理流程大致是共识、执行引擎执行、存储。
在一种实施方式中,第一共识数据Index1可以从自身保存的、经过多个节点设备共识后的若干个共识数据中,选择已经由第一节点设备A执行其中业务请求的共识数据,作为第一共识数据Index1。这样能够保证自身对业务请求的顺利执行。
共识数据可以存储在缓存中,也可以存储在共识数据库中。例如,最新的共识数据存储在缓存中,较早一些的共识数据存储在共识数据库中。在一种实施方式中,第一节点设备A可以从缓存中获取第一共识数据Index1,也可以从第一节点设备A的共识数据库中获取第一共识数据Index1。
在从共识数据库中获取第一共识数据Index1时,可以从多个共识数据中选择时间最早的共识数据,作为第一共识数据Index1。
在一种实施方式中,节点设备(例如主节点设备)可以对业务请求进行分批。多个节点设备针对分批的业务请求进行共识,得到多个分批共识数据。第一节点设备A可以针对多个分批共识数据,获取参与共识每个分批共识数据的共识节点设备,对由相同的共识节点设备参与共识的分批共识数据进行数据合并,得到第一共识数据Index1。也就是,在进行合并时,若干个待合并的分批共识数据是由相同的多个节点设备参与共识的。例如,分批共识数据1和分批共识数据2,都是由节点设备1、节点设备2和节点设备3参与共识的,则分批共识数据1和分批共识数据2可以合并。
在这种实施方式中,节点设备对业务请求进行分批共识。当某个或某些分批共识数据中包含的业务请求较少时,可以进行数据合并,从而减少对数据的拆分次数,提高整体的处理效率。
步骤S220,第一节点设备A获取参与共识第一共识数据Index1的节点设备数量,作为共识节点数量N。其中,N是整数。例如,共识***包括5个节点,参与共识的节点设备数量N可以是3~5个。
第一节点设备A可以从保存的数据中获取参与共识第一共识数据Index1的节点设备列表,从该列表中获取共识节点数量N。该列表可以与共识数据一起存储在共识数据库中。不同的共识数据,对应的参与共识的节点设备数量可以相同,也可以不同。
在步骤S230中,第一节点设备A利用纠删码算法和共识节点数量N,对第一共识数据Index1进行拆分,得到共识节点数量个分块数据,也就是得到N个分块数据。
其中,纠删码算法例如可以采用EC(Erasure Code)算法或Reed-Solomon算法等。在纠删码算法的参数中包含数据块的数量K和校验块的数量M,校验块可以通过对数据块进行编码而得到,校验块的数量是允许缺少的块数量。
在本实施例中,对于任意一个共识数据,例如第一共识数据Index1,如果将第一共识数据Index1拆分成K+M个块,并分散在参与共识该第一共识数据Index1的N个节点设备中,就能容忍M个节点设备故障。即当小于或等于M个节点设备发生故障时,可以利用K个节点设备中剩余的节点设备还原出第一共识数据Index1。
而在共识协议中包含可容忍的故障节点数量,例如在Raft中,当总节点是N个时,容忍故障节点数量f<N/2,在PBFT中,当总节点是N个时,容忍故障节点数量f<N/3。步骤S230在执行时,可以包括以下步骤1a~4a。
步骤1a,获取共识***设置的容忍故障节点数量f。这是共识***预先设置的参数,可以直接从保存的***参数中获取。
步骤2a,将容忍故障节点数量f作为纠删码算法的校验块数量M,也就是将f的取值赋值给M,使得M=f。
步骤3a,将共识节点数量N与容忍故障节点数量f的差值,确定为纠删码算法的数据块数量K,也就是通过K=N-f计算出数据块数量K的取值。在具体计算时,容忍故障节点数量f也可以采用校验块数量M代替,即可以通过K=N-M计算出数据块数量K的取值。
步骤4a,利用纠删码算法以及校验块数量M和数据块数量K,对第一共识数据Index1进行拆分,得到N个分块数据。M和K的取值均可以作为纠删码算法的输入参数,将第一共识数据Index1作为纠删码算法的输入数据,得到纠删码算法输出的N个分块数据。
当将M、K和第一共识数据Index1作为输入数据输入纠删码算法程序中,可以得到按照一定顺序排列的N个分块数据。
在执行步骤4a时,可以包括,将第一共识数据Index1划分成K个数据块,通过纠删码算法对这K个数据块进行编码,得到M个校验块,将K个数据块和M个校验块共同作为N个分块数据。
其中,在将第一共识数据Index1划分成K个数据块时,可以按照多种方式进行划分,K个数据块的数据量可以相同,也可以不同。
在本实施例中,通过将共识协议中的容忍故障节点数量与纠删码算法中允许故障的校验块数量联系起来,能够使得纠删码算法很好地适应共识协议的环境要求,即便是有一部分节点设备被网络隔离,无法获取其中的分块数据,也能根据其他的分块数据还原出原始数据。
在步骤S240中,第一节点设备A按照约定顺序,从多个分块数据中选择与第一节点设备A对应的分块数据。
参与共识第一共识数据Index1的N个节点设备,都会进行步骤S230的操作,得到N个分块数据,每个节点设备仅需存储N个分块数据中的一个。预先约定节点设备存储哪个分块数据,能够使得N个分块数据分散在N个节点设备中,避免出现有分块数据未存储或有多个节点设备存储同一个分块数据的情况出现。
在一种实施方式中,可以按照N个节点设备的标识顺序,从按照一定顺序排列的N个分块数据中分别选择对应的分块数据。具体的,任意一个节点设备,例如第一节点设备A,可以按照以下步骤1b~3b执行步骤S240。
步骤1b,获取参与共识第一共识数据Index1的节点设备的标识。例如,可以获取参与共识第一共识数据Index1的节点设备列表,从该列表中获取各个节点设备的标识。
步骤2b,按照约定排列顺序对多个标识进行排序,约定排列顺序例如可以是按照多个标识的序号排列顺序,或者按照多个标识对应的哈希值的大小排列顺序等。
步骤3b,基于第一节点设备A的标识在排序后多个标识中的位置,从N个分块数据中选择与第一节点设备A对应的分块数据。
图4为实施例提供的对共识数据进行拆分和选择的一种示意图。其中,针对共识数据Batch99,参与共识的节点设备1、2、3均将其通过纠删码算法拆分得到3个分块数据:Block99-1、Block99-2和Block99-3。根据节点设备的编号顺序,每个节点设备分别选择对应编号的分块数据进行存储,即节点设备1存储Block99-1,节点设备2存储Block99-2,节点设备3存储Block99-3。
在步骤S250中,第一节点设备A存储与第一节点设备A对应的分块数据。
其中,分块数据可以用于与其他节点设备各自存储的分块数据结合,还原出第一共识数据Index1。其他节点设备是参与共识第一共识数据Index1的其他节点设备。任何一个有权限获取分块数据的设备,都可以获取多个分块数据,并利用这些分块数据还原出第一共识数据Index1。
如果第一共识数据Index1是从第一节点设备A的共识数据库中获取的,则在存储与第一节点设备A对应的分块数据时,可以将与第一节点设备A对应的分块数据替换共识数据库中的第一共识数据Index1。例如,将分块数据Block99-1替换共识数据库中的共识数据Batch99。
如果第一共识数据Index1是从第一节点设备A的缓存中获取的,则可以直接将与第一节点设备A对应的分块数据存储在共识数据库中。
再回顾下步骤S230。在实际应用中,将第一共识数据Index1采用纠删码拆分成N个分块数据之后,所得到的N个分块数据的总数据量比第一共识数据Index1的数据量多一些,大概前者是后者的1.2倍,可以说增加的数据量并不算多。对于任意一个节点设备来说,其存储的一个分块数据的数据量大致是原始共识数据的N分之一。可以说,节点设备存储的数据量实现了大幅下降。
以上内容说明的是节点设备对共识数据的存储过程。下面结合图5实施例对共识数据的获取过程进行说明。
图5为实施例提供的一种基于共识***的共识数据获取方法的流程示意图。该共识***可以是图2所示实施例中的共识***,本实施例也是在图2所示实施例的基础上得到的,对于图2实施例中已经出现的概念,在本实施例中不再详述,可以参照图2实施例的说明。
本实施例中的方法可以通过共识***中任意一个第二节点设备B执行,该第二节点设备B是共识***中的落后的节点设备(即落后节点)中的任意一个。该方法包括以下步骤S510~S540:
步骤S510,第二节点设备B确定当前待获取的已经过共识的第一共识数据Index1。
在本步骤中,第二节点设备B确定的可以是第一共识数据Index1的编号或序号等标识。第二节点设备B可以根据自身已存储的共识数据的标识,确定待获取的第一共识数据Index1的标识。在Raft协议中,主节点设备会周期性地向其他节点设备发送已经过共识的共识数据的标识,例如通过append消息发送。
步骤S520,第二节点设备B获取参与共识第一共识数据Index1的多个节点设备,例如获取了N个节点设备的标识或地址。
具体的,第二节点设备B可以从自身存储的节点设备列表中获取,也可以通过其他方式获取。例如,在Raft共识***中,所有节点设备维护一个参与共识的节点设备列表。当参与共识的节点设备发生变化时,主节点设备会将修改该节点设备列表的请求作为业务请求,加入共识数据中,从而使得所有节点设备基于该业务请求生成新的节点设备列表。这样,每个节点设备中均存储共识数据以及对应的节点设备列表。
在步骤S530中,第二节点设备B从多个节点设备中获取第一共识数据Index1的分块数据,得到多个分块数据。
其中,任意一个分块数据,是对应的节点设备利用纠删码算法和共识节点数量N,对第一共识数据Index1进行拆分,并从拆分后的N个分块数据中按照约定顺序选择的。共识节点数量N是参与共识第一共识数据Index1的节点设备数量。
本步骤中的多个节点设备,可以是N个节点设备,也可以是少于N个的节点设备。在一种实施方式中,第二节点设备B可以直接从N个节点设备中获取N个分块数据,也可以从N个节点设备中选择部分节点设备获取部分分块数据。根据纠删码算法的容错规则,容许缺少M个分块数据,N=K+M,N是总的分块数据数量,M=f,f是共识***设置的容忍故障节点数量。因此可以从N个节点设备中选择大于或等于K个分块数据,来还原第一共识数据Index1。
具体的,本步骤的实施过程可以包括以下步骤1c~3c。
步骤1c,第二节点设备B获述共识***设置的容忍故障节点数量f。
步骤2c,第二节点设备B基于共识节点数量N与所述容忍故障节点数量f的差值确定参照数量Q。其中,参照数量Q可以等于该差值,即Q=N-f。
步骤3c,第二节点设备B从多个节点设备中选择不少于参照数量Q的目标节点设备。也就是说,可以从N个节点设备中选择不少于Q个目标节点设备,最多选择N个节点设备作为目标节点设备。
例如,参与共识的共识节点数量N为11,共识***能容忍f个节点发生故障,则参照数量Q为6,可以选择6、7、8、9、10或11个目标节点设备。
步骤4c,第二节点设备B从目标节点设备中获取第一共识数据Index1的分块数据。
第二节点设备B可以向目标节点设备发送携带第一共识数据Index1的标识获取请求,接着接收目标节点设备向第二节点设备B发送的分块数据,得到多个分块数据。
步骤S540,第二节点设备B利用纠删码算法,对多个分块数据进行还原,得到第一共识数据Index1。
在本步骤中,第二节点设备B可以基于约定顺序对多个分块数据进行排序,并利用纠删码算法,对排序后的多个分块数据进行还原。纠删码算法对多个分块数据进行还原的过程,也是对多个分块数据进行解码的过程。
图6为实施例提供的节点设备对多个分块数据进行还原的一种示意图。其中,共识数据Batch99通过3个节点设备共识得到,3个节点设备分别存储分块数据Block99-1、Block99-2和Block99-3。落后的节点设备4从3个节点设备中的任意两个节点设备中获取到2个分块数据,例如获取到Block99-1和Block99-3。节点设备4利用纠删码算法从Block99-1和Block99-3还原出共识数据Batch99。
在本实施例中,在步骤S530中第二节点设备B可以获取少于N个的分块数据,即获取一部分数据,而不必获取完整的N个分块数据。这样,第二节点设备B获取的总数据量将会少于第一共识数据Index1的数据量,这样即减少了第二节点设备B需要获取的数据量,从而减少了设备之间的数据传输量,降低了网络带宽,从一定程度上提高处理效率。
本说明书中,第一节点设备、第一共识数据中的“第一”,以及文中相应的“第二”等词语,仅仅是为了区分和描述方便,而不具有任何限定意义。
上述内容对本说明书的特定实施例进行了描述,其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行,并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要按照示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的,或者可能是有利的。
图7为实施例提供的一种基于共识***的共识数据存储装置的示意性框图。该共识***包含多个节点设备,节点设备可以通过任何具有计算、处理能力的装置、设备、平台、设备集群等来实现。该装置实施例与图2所示方法实施例相对应。该装置700部署在任意一个第一节点设备中,该装置700包括:
第一获取模块710,配置为,获取经过多个节点设备共识后的第一共识数据;
第二获取模块720,配置为,获取参与共识所述第一共识数据的节点设备数量,作为共识节点数量;
第一拆分模块730,配置为,利用纠删码算法和所述共识节点数量,对所述第一共识数据进行拆分,得到所述共识节点数量个分块数据;
第一选择模块740,配置为,按照约定顺序,从所述多个分块数据中选择与所述第一节点设备对应的分块数据;
第一存储模块750,配置为,存储与所述第一节点设备对应的分块数据;其中,所述分块数据,用于与其他节点设备各自存储的分块数据结合,还原出所述第一共识数据;所述其他节点设备是参与共识所述第一共识数据的其他节点设备。
在一种实施方式中,第一拆分模块730包括:
第一获取子模块(图中未示出),配置为,获取所述共识***设置的容忍故障节点数量,将所述容忍故障节点数量作为所述纠删码算法的校验块数量;
第一确定子模块(图中未示出),配置为,将所述共识节点数量与所述容忍故障节点数量的差值,确定为所述纠删码算法的数据块数量;
拆分子模块(图中未示出),配置为,利用所述纠删码算法以及所述校验块数量和所述数据块数量,对所述第一共识数据进行拆分。
在一种实施方式中,第一选择模块740包括:
第二获取子模块(图中未示出),配置为,获取参与共识所述第一共识数据的节点设备的标识;
排序子模块(图中未示出),配置为,按照约定排列顺序对多个标识进行排序;
第一选择子模块(图中未示出),配置为,基于所述第一节点设备的标识在排序后多个标识中的位置,从所述多个分块数据中选择与所述第一节点设备对应的分块数据。
在一种实施方式中,第一获取模块710具体配置为:
从所述第一节点设备的共识数据库中获取第一共识数据;所述共识数据库用于存储经过多个节点设备共识后的共识数据;
第一存储模块750具体配置为:
将与所述第一节点设备对应的分块数据替换所述共识数据库中的所述第一共识数据。
在一种实施方式中,第一获取模块710具体配置为,从所述第一节点设备的缓存中获取第一共识数据;
第一存储模块750具体配置为:
将与所述第一节点设备对应的分块数据存储在共识数据库中。
在一种实施方式中,共识数据中包含若干个业务请求;第一获取模块710具体配置为:
从经过多个节点设备共识后的若干个共识数据中,选择已经由所述第一节点设备执行其中业务请求的共识数据,作为第一共识数据。
在一种实施方式中,第一获取模块710包括:
第三获取子模块(图中未示出),配置为,针对经过多个节点设备共识后的多个分批共识数据,获取参与共识每个分批共识数据的共识节点设备;
合并子模块(图中未示出),配置为,对由相同的共识节点设备参与共识的分批共识数据进行数据合并,得到第一共识数据。
图8为实施例提供的一种基于共识***的共识数据获取装置的示意性框图。其中,共识***包含多个节点设备,节点设备可以通过任何具有计算、处理能力的装置、设备、平台、设备集群等来实现。该装置实施例与图5所示方法实施例相对应。该装置800部署在任意一个第二节点设备中,包括:
第一确定模块810,配置为,确定当前待获取的已经过共识的第一共识数据;
第三获取模块820,配置为,获取参与共识所述第一共识数据的多个节点设备;
第四获取模块830,配置为,从所述多个节点设备中获取所述第一共识数据的分块数据,得到多个分块数据;其中,任意一个分块数据,是对应的节点设备利用纠删码算法和共识节点数量,对所述第一共识数据进行拆分,并从拆分后的分块数据中按照约定顺序选择的;所述共识节点数量是参与共识所述第一共识数据的节点设备数量;
第一还原模块840,配置为,利用所述纠删码算法,对所述多个分块数据进行还原,得到所述第一共识数据。
在一种实施方式中,第四获取模块830包括:
第四获取子模块(图中未示出),配置为,获取所述共识***设置的容忍故障节点数量;
第二确定子模块(图中未示出),配置为,基于所述共识节点数量与所述容忍故障节点数量的差值确定参照数量;
第二选择子模块(图中未示出),配置为,从所述多个节点设备中选择不少于所述参照数量的目标节点设备;
第五获取子模块(图中未示出),配置为,从所述目标节点设备中获取所述第一共识数据的分块数据。
在一种实施方式中,第一还原模块840具体配置为:
基于所述约定顺序对所述多个分块数据进行排序;
利用所述纠删码算法,对排序后的多个分块数据进行还原。
在一种实施方式中,所述第二节点设备是所述共识***中的落后节点设备中的任意一个;所述共识***为区块链网络。
上述各个装置实施例与方法实施例相对应,具体说明可以参见方法实施例部分的描述,此处不再赘述。装置实施例是基于对应的方法实施例得到,与对应的方法实施例具有同样的技术效果,具体说明可参见对应的方法实施例。
本说明书实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行图1至图6任一项所述的方法。
本说明书实施例还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现图1至图6任一项所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于存储介质和计算设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明实施例的目的、技术方案和有益效果进行了进一步的详细说明。所应理解的是,以上所述仅为本发明实施例的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

Claims (16)

1.一种基于共识***的共识数据存储方法,所述共识***包含多个节点设备,所述方法通过任意一个第一节点设备执行,包括:
获取经过多个节点设备共识后的第一共识数据;
获取参与共识所述第一共识数据的节点设备数量,作为共识节点数量;
利用纠删码算法和所述共识节点数量,对所述第一共识数据进行拆分,得到所述共识节点数量个分块数据;
按照约定顺序,从所述多个分块数据中选择与所述第一节点设备对应的分块数据;
存储与所述第一节点设备对应的分块数据;其中,所述分块数据,用于与其他节点设备各自存储的分块数据结合,还原出所述第一共识数据;所述其他节点设备是参与共识所述第一共识数据的其他节点设备。
2.根据权利要求1所述的方法,所述利用纠删码算法和所述共识节点数量,对所述第一共识数据进行拆分的步骤,包括:
获取所述共识***设置的容忍故障节点数量;
将所述容忍故障节点数量作为所述纠删码算法的校验块数量;
将所述共识节点数量与所述容忍故障节点数量的差值,确定为所述纠删码算法的数据块数量;
利用所述纠删码算法以及所述校验块数量和所述数据块数量,对所述第一共识数据进行拆分。
3.根据权利要求1所述的方法,所述按照约定顺序,从所述多个分块数据中选择与所述第一节点设备对应的分块数据的步骤,包括:
获取参与共识所述第一共识数据的节点设备的标识;
按照约定排列顺序对多个标识进行排序;
基于所述第一节点设备的标识在排序后多个标识中的位置,从所述多个分块数据中选择与所述第一节点设备对应的分块数据。
4.根据权利要求1所述的方法,所述获取经过多个节点设备共识后的第一共识数据的步骤,包括:
从所述第一节点设备的共识数据库中获取第一共识数据;所述共识数据库用于存储经过多个节点设备共识后的共识数据;
所述存储与所述第一节点设备对应的分块数据的步骤,包括:
将与所述第一节点设备对应的分块数据替换所述共识数据库中的所述第一共识数据。
5.根据权利要求1所述的方法,所述获取经过多个节点设备共识后的第一共识数据的步骤,包括:
从所述第一节点设备的缓存中获取第一共识数据;
所述存储与所述第一节点设备对应的分块数据的步骤,包括:
将与所述第一节点设备对应的分块数据存储在共识数据库中。
6.根据权利要求1所述的方法,共识数据中包含若干个业务请求;所述获取经过多个节点设备共识后的第一共识数据的步骤,包括:
从经过多个节点设备共识后的若干个共识数据中,选择已经由所述第一节点设备执行其中业务请求的共识数据,作为第一共识数据。
7.根据权利要求1所述的方法,所述获取经过多个节点设备共识后的第一共识数据的步骤,包括:
针对经过多个节点设备共识后的多个分批共识数据,获取参与共识每个分批共识数据的共识节点设备;
对由相同的共识节点设备参与共识的分批共识数据进行数据合并,得到第一共识数据。
8.一种基于共识***的共识数据获取方法,所述共识***包含多个节点设备,所述方法通过任意一个第二节点设备执行,包括:
确定当前待获取的已经过共识的第一共识数据;
获取参与共识所述第一共识数据的多个节点设备;
从所述多个节点设备中获取所述第一共识数据的分块数据,得到多个分块数据;其中,任意一个分块数据,是对应的节点设备利用纠删码算法和共识节点数量,对所述第一共识数据进行拆分,并从拆分后的分块数据中按照约定顺序选择的;所述共识节点数量是参与共识所述第一共识数据的节点设备数量;
利用所述纠删码算法,对所述多个分块数据进行还原,得到所述第一共识数据。
9.根据权利要求8所述的方法,所述从所述多个节点设备中获取所述第一共识数据的分块数据的步骤,包括:
获取所述共识***设置的容忍故障节点数量;
基于所述共识节点数量与所述容忍故障节点数量的差值确定参照数量;
从所述多个节点设备中选择不少于所述参照数量的目标节点设备;
从所述目标节点设备中获取所述第一共识数据的分块数据。
10.根据权利要求8所述的方法,所述利用所述纠删码算法,对所述多个分块数据进行还原的步骤,包括:
基于所述约定顺序对所述多个分块数据进行排序;
利用所述纠删码算法,对排序后的多个分块数据进行还原。
11.根据权利要求8所述的方法,所述第二节点设备是所述共识***中的落后节点设备中的任意一个;所述共识***为区块链网络。
12.一种基于共识***的共识数据存储装置,所述共识***包含多个节点设备,所述装置部署在任意一个第一节点设备中,包括:
第一获取模块,配置为,获取经过多个节点设备共识后的第一共识数据;
第二获取模块,配置为,获取参与共识所述第一共识数据的节点设备数量,作为共识节点数量;
第一拆分模块,配置为,利用纠删码算法和所述共识节点数量,对所述第一共识数据进行拆分,得到所述共识节点数量个分块数据;
第一选择模块,配置为,按照约定顺序,从所述多个分块数据中选择与所述第一节点设备对应的分块数据;
第一存储模块,配置为,存储与所述第一节点设备对应的分块数据;其中,所述分块数据,用于与其他节点设备各自存储的分块数据结合,还原出所述第一共识数据;所述其他节点设备是参与共识所述第一共识数据的其他节点设备。
13.根据权利要求12所述的装置,所述第一拆分模块,包括:
第一获取子模块,配置为,获取所述共识***设置的容忍故障节点数量,将所述容忍故障节点数量作为所述纠删码算法的校验块数量;
第一确定子模块,配置为,将所述共识节点数量与所述容忍故障节点数量的差值,确定为所述纠删码算法的数据块数量;
拆分子模块,配置为,利用所述纠删码算法以及所述校验块数量和所述数据块数量,对所述第一共识数据进行拆分。
14.一种基于共识***的共识数据获取装置,所述共识***包含多个节点设备,所述装置部署在任意一个第二节点设备中,包括:
第一确定模块,配置为,确定当前待获取的已经过共识的第一共识数据;
第三获取模块,配置为,获取参与共识所述第一共识数据的多个节点设备;
第四获取模块,配置为,从所述多个节点设备中获取所述第一共识数据的分块数据,得到多个分块数据;其中,任意一个分块数据,是对应的节点设备利用纠删码算法和共识节点数量,对所述第一共识数据进行拆分,并从拆分后的分块数据中按照约定顺序选择的;所述共识节点数量是参与共识所述第一共识数据的节点设备数量;
第一还原模块,配置为,利用所述纠删码算法,对所述多个分块数据进行还原,得到所述第一共识数据。
15.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-11中任一项所述的方法。
16.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-11中任一项所述的方法。
CN202210289723.2A 2022-03-23 2022-03-23 一种基于共识***的共识数据存储、获取方法及装置 Active CN114385761B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210289723.2A CN114385761B (zh) 2022-03-23 2022-03-23 一种基于共识***的共识数据存储、获取方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210289723.2A CN114385761B (zh) 2022-03-23 2022-03-23 一种基于共识***的共识数据存储、获取方法及装置

Publications (2)

Publication Number Publication Date
CN114385761A true CN114385761A (zh) 2022-04-22
CN114385761B CN114385761B (zh) 2022-07-12

Family

ID=81206173

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210289723.2A Active CN114385761B (zh) 2022-03-23 2022-03-23 一种基于共识***的共识数据存储、获取方法及装置

Country Status (1)

Country Link
CN (1) CN114385761B (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109359223A (zh) * 2018-09-17 2019-02-19 重庆邮电大学 基于纠删码实现的区块链账本分布式存储技术
CN110855761A (zh) * 2019-10-29 2020-02-28 深圳前海微众银行股份有限公司 一种基于区块链***的数据处理方法及装置
CN111049902A (zh) * 2019-09-16 2020-04-21 腾讯科技(深圳)有限公司 基于区块链网络的数据存储方法、装置、存储介质和设备
CN111475576A (zh) * 2020-04-15 2020-07-31 中国工商银行股份有限公司 基于区块链的分布式数据库存储方法及***
CN111639309A (zh) * 2020-05-26 2020-09-08 腾讯科技(深圳)有限公司 一种数据处理方法、装置、节点设备及存储介质
CN112039860A (zh) * 2020-08-18 2020-12-04 上海简苏网络科技有限公司 一种在联盟链中实现联合共识分片的方法和装置
CN112818409A (zh) * 2020-07-03 2021-05-18 支付宝(杭州)信息技术有限公司 一种区块生成方法及共识节点
CN113254272A (zh) * 2021-06-09 2021-08-13 腾讯科技(深圳)有限公司 区块链网络的数据处理方法、装置、计算机设备和介质
CN113326329A (zh) * 2021-06-15 2021-08-31 广州以大坊区块链科技有限公司 一种基于区块链共识推举记账者的方法
CN113568974A (zh) * 2021-07-23 2021-10-29 中信银行股份有限公司 基于区块链***的分片共识方法、设备以及可读存储介质
WO2021233048A1 (zh) * 2020-05-21 2021-11-25 腾讯科技(深圳)有限公司 基于区块链的数据检测方法、装置及计算机可读存储介质
CN114047878A (zh) * 2021-11-09 2022-02-15 中山大学 一种面向区块链域名解析的纠删码低开销存储***及方法

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109359223A (zh) * 2018-09-17 2019-02-19 重庆邮电大学 基于纠删码实现的区块链账本分布式存储技术
CN111049902A (zh) * 2019-09-16 2020-04-21 腾讯科技(深圳)有限公司 基于区块链网络的数据存储方法、装置、存储介质和设备
CN110855761A (zh) * 2019-10-29 2020-02-28 深圳前海微众银行股份有限公司 一种基于区块链***的数据处理方法及装置
CN111475576A (zh) * 2020-04-15 2020-07-31 中国工商银行股份有限公司 基于区块链的分布式数据库存储方法及***
WO2021233048A1 (zh) * 2020-05-21 2021-11-25 腾讯科技(深圳)有限公司 基于区块链的数据检测方法、装置及计算机可读存储介质
CN111639309A (zh) * 2020-05-26 2020-09-08 腾讯科技(深圳)有限公司 一种数据处理方法、装置、节点设备及存储介质
CN112818409A (zh) * 2020-07-03 2021-05-18 支付宝(杭州)信息技术有限公司 一种区块生成方法及共识节点
CN112039860A (zh) * 2020-08-18 2020-12-04 上海简苏网络科技有限公司 一种在联盟链中实现联合共识分片的方法和装置
CN113254272A (zh) * 2021-06-09 2021-08-13 腾讯科技(深圳)有限公司 区块链网络的数据处理方法、装置、计算机设备和介质
CN113326329A (zh) * 2021-06-15 2021-08-31 广州以大坊区块链科技有限公司 一种基于区块链共识推举记账者的方法
CN113568974A (zh) * 2021-07-23 2021-10-29 中信银行股份有限公司 基于区块链***的分片共识方法、设备以及可读存储介质
CN114047878A (zh) * 2021-11-09 2022-02-15 中山大学 一种面向区块链域名解析的纠删码低开销存储***及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
YI WANG ET AL.: ""Consensus clustering for bi-objective power network partition"", 《CSEE JOURNAL OF POWER AND ENERGY SYSTEMS》 *
林轩: ""面向多节点失效的纠删码及数据修复技术研究"", 《万方数据知识服务平台》 *

Also Published As

Publication number Publication date
CN114385761B (zh) 2022-07-12

Similar Documents

Publication Publication Date Title
US11347598B2 (en) Consensus system downtime recovery
RU2501072C2 (ru) Распределенное хранение восстанавливаемых данных
US10977135B2 (en) Consensus system downtime recovery
AU2019203862B2 (en) System and method for ending view change protocol
CN107621973B (zh) 一种跨集群的任务调度方法及装置
US10938750B2 (en) Consensus system downtime recovery
Singh et al. Antecedence graph approach to checkpointing for fault tolerance in mobile agent systems
CN111414426A (zh) 一种基于区块链的数据处理方法及***
CN113821376A (zh) 一种基于云灾备的一体化备份容灾方法及***
CN113873030A (zh) 一种区块链的共识方法、共识节点及电子设备
CN113687964A (zh) 数据处理方法、装置、电子设备、存储介质及程序产品
CN107038192B (zh) 数据库容灾方法和装置
CN109684128B (zh) 消息中间件的集群整体故障恢复方法、服务器及存储介质
CN113849564B (zh) 一种区块链的共识方法、共识节点及电子设备
CN114554593A (zh) 数据处理方法及装置
CN110417833B (zh) 基于区块链的数据处理方法、装置及存储介质
WO2021082925A1 (zh) 一种交易处理的方法及装置
CN114385761B (zh) 一种基于共识***的共识数据存储、获取方法及装置
CN111404737B (zh) 一种容灾处理方法以及相关装置
CN111352930A (zh) 一种模板数据处理方法、装置、服务器和存储介质
CN111752892B (zh) 分布式文件***及其实现方法、管理***、设备及介质
CN111158956A (zh) 一种集群***的数据备份方法及相关装置
CN113064768B (zh) 在区块链***中切换分片节点的方法和装置
CN115562805A (zh) 一种资源迁移的方法、装置及电子设备
CN113297318B (zh) 数据处理方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant