CN110569305B - 区块同步方法、装置、介质和计算设备 - Google Patents
区块同步方法、装置、介质和计算设备 Download PDFInfo
- Publication number
- CN110569305B CN110569305B CN201910800201.2A CN201910800201A CN110569305B CN 110569305 B CN110569305 B CN 110569305B CN 201910800201 A CN201910800201 A CN 201910800201A CN 110569305 B CN110569305 B CN 110569305B
- Authority
- CN
- China
- Prior art keywords
- block
- node
- blockchain
- global state
- state information
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Development Economics (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Computing Systems (AREA)
- Economics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明的实施方式提供了一种区块同步方法,应用于区块链网络中的一个区块链节点,包括:获取所述区块链网络中另一区块链节点的区块链信息,所述区块链信息包括区块高度;当所述一个区块链节点的区块高度小于所述另一区块链节点的区块高度时,获取所述另一区块链节点中与当前最新区块关联的全局状态信息;存储所述全局状态信息;以及,基于所述全局状态信息执行所述区块链网络的共识验证合约。本发明的实施方式还提供了一种区块同步装置、介质和计算设备。
Description
技术领域
本发明的实施方式涉及计算机技术领域,更具体地,本发明的实施方式涉及区块同步方法、装置、介质和计算设备。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
基于相关技术中的区块同步方式,进行区块同步的区块链节点需要依次获取并执行每个待同步区块的相关数据。该过程耗时较长,且在区块同步过程中,区块链节点无法参与区块链网络中的正常工作过程。整个区块链网络因等待该区块链节点的区块同步完成而导致吞吐量降低。
发明内容
在本上下文中,本发明的实施方式期望提供一种区块同步方法、装置、介质和计算设备。
在本发明实施方式的第一方面中,提供了一种区块同步方法,应用于区块链网络中的一个区块链节点。该方法包括:获取区块链网络中另一区块链节点的区块链信息。其中区块链信息包括区块高度。当上述一个区块链节点的区块高度小于上述另一区块链节点的区块高度时,获取上述另一区块链节点中与当前最新区块关联的全局状态信息,并存储该全局状态信息。接着基于该全局状态信息执行区块链网络的共识验证合约。
在本发明的一个实施例中,上述方法还包括:在存储全局状态信息之后,基于上述一个区块链节点的区块高度与上述另一区块链节点的区块高度之间的差异,确定待同步区块。接着按照区块生成时间从先至后的顺序,依次获取并执行待同步区块。
其中,上述依次获取并执行待同步区块包括:对于任一待同步区块,获取该任一待同步区块的区块信息,该区块信息包括交易列表。然后执行该交易列表并持久化状态变更。接着获取并执行该任一待同步区块的下一个待同步区块,直至获取并执行上述另一区块链节点中的当前最新区块。
在本发明的另一实施例中,上述另一区块链节点中与当前最新区块关联的全局状态信息存储于指定树形数据结构中。
在本发明的又一实施例中,上述获取另一区块链节点中与当前最新区块关联的全局状态信息包括:向上述另一区块链节点发送区块同步请求,以使上述另一区块链节点从树结构根节点开始遍历与当前最新区块关联的指定树形数据结构的树结构节点内容,进而获取来自于上述另一区块链节点的上述树结构节点内容。
在本发明的再一实施例中,上述存储全局状态信息包括:将与节点内容对应的键值对信息存储于上述一个区块链节点的数据库中。
在本发明的再一实施例中,上述基于所述全局状态信息执行所述区块链网络的共识验证合约包括:以全局状态信息为基础,进行与共识验证合约相关的状态获取和状态变更。
在本发明的再一实施例中,上述方法还包括:当上述一个区块链节点的区块高度小于上述另一区块链节点的区块高度时,确定上述一个区块链节点的区块高度与上述另一区块链节点的区块高度之间的差异是否大于预定阈值。如果是,则执行上述获取上述另一区块链节点中与当前最新区块关联的全局状态信息。如果否,则基于上述差异确定待同步区块,并按照区块生成时间从先至后的顺序,依次获取并执行上述待同步区块。
在本发明的再一实施例中,上述共识验证合约包括实用拜占庭容错共识算法。
在本发明实施方式的第二方面中,提供了一种区块同步装置,应用于区块链网络中的一个区块链节点。该装置包括:第一获取模块、第二获取模块、状态存储模块、以及共识验证模块。其中,第一获取模块用于获取区块链网络中另一区块链节点的区块链信息,区块链信息包括区块高度。第二获取模块用于当上述一个区块链节点的区块高度小于上述另一区块链节点的区块高度时,获取上述另一区块链节点中与当前最新区块关联的全局状态信息。状态存储模块用于存储全局状态信息。共识验证模块用于基于全局状态信息执行区块链网络的共识验证合约。
在本发明的一个实施例中,上述装置还包括:确定模块和执行模块。其中,确定模块用于在存储全局状态信息之后,基于上述一个区块链节点的区块高度与上述另一区块链节点的区块高度之间的差异,确定待同步区块。执行模块用于按照区块生成时间从先至后的顺序,依次获取并执行待同步区块。
其中,执行模块包括:区块信息获取子模块和持久化子模块。区块信息获取子模块用于对于任一待同步区块,获取该任一待同步区块的区块信息,该区块信息包括交易列表。持久化子模块用于执行该交易列表并持久化状态变更。然后执行模块接着获取并执行该任一待同步区块的下一个待同步区块,直至获取并执行上述另一区块链节点中的当前最新区块。
在本发明的另一实施例中,上述另一区块链节点中与当前最新区块关联的全局状态信息存储于指定树形数据结构中。
在本发明的又一实施例中,第二获取模块具体用于:向上述另一区块链节点发送区块同步请求,以使上述另一区块链节点从树结构根节点开始遍历与当前最新区块关联的指定树形数据结构的树结构节点内容,进而获取来自于上述另一区块链节点的上述树结构节点内容。
在本发明的再一实施例中,状态存储模块具体用于将与节点内容对应的键值对信息存储于上述一个区块链节点的数据库中。
在本发明的再一实施例中,上述共识验证模块具体用于以全局状态信息为基础,进行与共识验证合约相关的状态获取和状态变更。
在本发明的再一实施例中,上述装置还包括:判断模块和辅助同步模块。其中,判断模块用于当上述一个区块链节点的区块高度小于上述另一区块链节点的区块高度时,确定上述一个区块链节点的区块高度与上述另一区块链节点的区块高度之间的差异是否大于预定阈值。如果是,则通知第二获取模块执行上述获取另一区块链节点中与当前最新区块关联的全局状态信息。如果否,则通知辅助同步模块执行操作,辅助同步模块用于基于上述差异确定待同步区块,并按照区块生成时间从先至后的顺序,依次获取并执行上述待同步区块。
在本发明的再一实施例中,上述共识验证合约包括实用拜占庭容错共识算法。
在本发明实施方式的第三方面中,提供了一种介质,存储有计算机可执行指令,指令在被处理器执行时用于实现:上述实施例中任一项所述的区块同步方法。
在本发明实施方式的第四方面中,提供了一种计算设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的可执行指令,处理器执行指令时实现:上述实施例中任一项所述的区块同步方法。
根据本发明实施方式的区块同步方法和装置,只需一个区块链节点对另一区块链节点的当前最新区块的全局状态进行一次同步,在该全局状态的基础上,上述一个区块链节点即可进行正常出块过程,以便参与区块链网络中的共识验证。在需要进行强一致性共识验证过程的情况下,可以大幅减少其他区块链节点对进行区块同步的区块链节点的等待过程,提高区块链网络的处理效率。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性地示出了根据本发明实施方式的区块同步方法及其装置的应用场景;
图2示意性地示出了根据本发明一个实施例的区块同步方法的流程图;
图3A示意性地示出了根据本发明一个实施例的两个区块链节点的区块链的示例示意图;
图3B示意性地示出了根据本发明另一个实施例的区块同步方法的流程图;
图4示意性地示出了根据本发明一个实施例的区块同步装置的框图;
图5示意性地示出了根据本发明另一个实施例的区块同步装置的框图;
图6示意性地示出了根据本发明实施方式的计算机可读存储介质产品的示意图;
图7示意性地示出了根据本发明实施方式的计算设备的框图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种区块同步方法、装置、介质和计算设备。
在本文中,需要理解的是,所涉及的术语包括:区块链(Blockchain)、区块高度(Block Height)、区块链节点(Node)、区块链网络(Blockchain Network)、MPT(MerklePatricia Trie)树形结构、实用拜占庭容错共识(Practical Byzantine FaultTolerance,PBFT)算法等。其中,区块链是通过散列指针按时间顺序链接的区块的分布式数据库。多个区块链节点组成区块链网络。区块高度用于描述该区块在区块链中的位置。MPT是结合了默克尔树(Merkle Tree)以及紧凑前缀树(Patricia Tree)的特点后创建的树形数据结构,用于组织管理账户数据、生成交易集合哈希等。PBFT算法是一种三阶段提交强一致性、消息可防篡改的共识算法。联盟链本质上仍然是一种私有链,其规模介于私有链和公有链之间。此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
基于相关技术中的区块同步方式,进行区块同步的区块链节点需要依次获取并执行每个待同步区块的相关数据。该过程耗时较长,且在区块同步过程中,区块链节点无法参与区块链网络中的正常工作过程。整个区块链网络因等待该区块链节点的区块同步完成而导致吞吐量降低。
为此,本发明实施例提供了一种区块同步方法和装置,该方法与装置应用于区块链网络中的一个区块链节点。该方法包括:获取区块链网络中另一区块链节点的区块链信息。其中区块链信息包括区块高度。当上述一个区块链节点的区块高度小于上述另一区块链节点的区块高度时,获取上述另一区块链节点中与当前最新区块关联的全局状态信息,并存储该全局状态信息。接着基于该全局状态信息执行区块链网络的共识验证合约。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
应用场景总览
首先参考图1详细阐述本发明实施例的区块同步方法及其装置的应用场景。
图1示意性地示出了根据本发明实施方式的区块同步方法及其装置的应用场景。需要注意的是,图1所示仅为可以应用本公开实施例的场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,该应用场景示出了区块链网络100,该区块链网络100可以包括区块链节点101~106,区块链节点101~106共同维护区块链110。
区块链节点101~106可以是具有相同或不同计算能力的各种计算节点,例如可以是个人计算机、网络服务器、数据库服务器、智能手机等等,在此不做限定。区块链节点101~106中任意两个区块链节点之间都可进行点对点通信。
区块链110是通过散列指针按时间顺序链接的区块的分布式数据库。区块链的区块是按照时间顺序加入的,当满足预定条件时,区块链网络中的各区块链节点允许当前区块链节点创建区块并将该区块加入到区块链中,加入的区块作为该区块链上当前最新区块。在某一特定时刻,维护同一区块链的区块链节点从区块链上获取的当前最新区块是相同的。为保证同一区块链网络中的不同区块链节点本地存储的区块链一致,需要进行区块同步过程。
需要说明的是,本公开实施例所提供的区块同步方法一般可以由任一区块链节点执行。相应地,本公开实施例所提供的区块同步装置一般可以设置于任一区块链节点中。
应该理解,图1中的区块链网络的规模和类型、区块链节点的数量、区块链的长度、区块的数量等仅仅是示意性的。根据实际需要,可以具有任意规模和类型的区块链网络、任意数量的区块链节点、任意长度的区块链、任意数量的区块等,在此不做限制。
示例性方法
下面结合图1的应用场景,参考图2、图3A和图3B来描述根据本发明示例性实施方式的区块同步方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
图2示意性地示出了根据本发明一个实施例的区块同步方法的流程图,该方法可以应用于区块链网络中的一个区块链节点。
如图2所示,该方法可以包括如下操作S201~S204。
在操作S201,获取区块链网络中另一区块链节点的区块链信息。
其中,为便于区分,下文中可将执行根据本公开实施例的一个区块链节点称为区块链节点A,将同一区块链网络中的另一区块链节点称为区块链节点B。区块链节点A可以是区块链网络中的任一节点,区块链节点B可以是区块链网络中不同于区块链节点A的任一节点。一个区块链节点获取另一区块链节点的区块链信息是指区块链节点A获取区块链节点B本地存储的区块链的相关信息,用于表征区块链的当前状态。例如,区块链中每个区块可以具有区块高度,用于描述该区块在区块链中的位置,如第一个区块的区块高度为0,第二个区块的区块高度为1,……,以此类推。本操作S201中区块链节点A所获取的区块链信息可以是区块链节点B的区块链中当前最新区块的区块高度。当两个区块链节点各自本地存储的区块链的区块高度不同时,说明两个区块链节点的区块链不一致,需要进行区块同步。
在操作S202,当一个区块链节点的区块高度小于另一区块链节点的区块高度时,获取另一区块链节点中与当前最新区块关联的全局状态信息。
本操作S202将区块链节点A自身存储的区块链的区块高度与区块链节点B自身存储的区块链的区块高度进行比较。当区块链节点A自身存储的区块链的区块高度小于区块链节点B所存储的区块链的区块高度时,说明区块链节点A自身存储的区块链与区块链节点B的区块链相比存在缺失,故需要以区块链节点B的区块链作为标准进行区块同步。获取与区块链节点B所存储的区块链的当前最新区块关联的全局状态信息,基于该全局状态信息能够还原出区块链节点B的区块链的当前最新区块的全局状态。
在操作S203,存储全局状态信息。
其中,在区块链节点A存储与区块链节点B的当前最新区块关联的全局状态信息,相当于区块链节点A直接同步区块链节点B的当前最新区块的全局状态。
在操作S204,基于全局状态信息执行区块链网络的共识验证合约。
其中,在区块链节点A完成对于区块链节点B的当前最新区块的全局状态的同步后,在该全局状态的基础上,区块链节点A即可参与区块链网络中的共识验证过程,可以进行正常出块过程,无需等待所有相差区块的同步结束。
本领域技术人员可以理解,当区块链节点A的区块链相对于区块链节点B的区块链存在缺失、需要进行区块同步时,相关技术要求区块链节点A依次下载所缺失的各待同步区块并执行其中的交易,直至同步至区块链节点B的最新区块。然后才允许区块链节点A参与区块链网络中的共识验证过程。图2所示的方法只需区块链节点A对区块链节点B的当前最新区块的全局状态进行一次同步,在该全局状态的基础上,区块链节点A即可进行正常出块过程,参与区块链网络中的共识验证。在需要进行强一致性共识验证过程的情况下,可以大幅减少其他区块链节点对进行区块同步的区块链节点的等待过程,提高区块链网络的处理效率。
在本公开的实施例中,进一步地,根据本公开实施例的区块同步方法可以在区块链节点A完成对于区块链节点B的当前最新区块的全局状态的同步后,区块链节点A再从区块链节点B异步拉取二者相差的区块数据。由于同步全局状态后区块链节点A即可正常工作,二者相差的区块数据的同步过程不受时间限制,不影响区块链节点A的正常工作状态。
示例性地,根据本公开实施例的区块同步方法在存储全局状态信息之后,还可以基于区块链节点A的区块高度与另一区块链节点B的区块高度之间的差异,确定待同步区块,然后按照区块生成时间从先至后的顺序,依次获取并执行上述待同步区块。其中,依次获取并执行所述待同步区块的过程可以包括:对于任一待同步区块,获取该任一待同步区块的区块信息,区块信息例如可以包括交易列表(Transaction List),然后执行交易列表并持久化状态变更,接着获取并执行该任一待同步区块的下一个待同步区块,直至获取并执行区块链节点B的区块链中的当前最新区块。
图3A示意性地示出了根据本发明一个实施例的两个区块链节点的区块链的示例示意图。如图3A所示,上方示例性地展示了区块链节点A的区块链,下方示例性地展示了区块链节点B的区块链,每个区块包括如下信息:区块高度、区块摘要(Block Hash)、在前区块摘要(Previous Block Hash)、区块难度(Block Difficulty)、以及链总难度(TotalDifficulty)。
区块链节点A与区块链节点B之间建立连接时,各自均可以获取对方的快照信息,该快照信息中包括上文所述的区块链信息。区块链节点通过比较双方的快照信息来确定是否需要进行区块同步。本例中,区块链信息可以包括区块高度、链总难度和当前最新区块的区块摘要。区块链节点A的区块链中当前最新区块的区块高度为1,链总难度为22。区块链节点B的区块链中当前最新区块的区块高度为40,链总难度为1238。由于区块链节点A的区块高度小于区块链节点B的区块高度,区块链节点A的链总难度小于区块链节点B的链总难度,故区块链节点A应向区块链节点B发起区块同步流程,并确定待同步区块为:区块链节点B的区块链中从区块高度为2的区块至区块高度为40的区块。
根据本公开实施例的区块同步方法,区块链节点A可以先执行全量同步过程,即直接获取区块链节点B的区块链中当前最新区块(即区块高度为40的区块)的全局状态信息并进行存储,在该全局状态信息的基础上区块链节点A可以参与区块链网络中的共识验证过程,可以执行例如与其他区块链节点一同选举出块节点、作为出块节点进行新的区块的打包等等事务。此外再根据需要执行增量同步过程,即异步地进行各待同步区块的交易列表的获取和执行。例如,区块链节点A从区块高度为2的区块开始,对于每个待同步区块,首先,区块链节点A向区块链节点B发起区块头(Block Header)请求,区块链节点B在收到区块链节点A的区块头请求后,会根据相应的区块高度返回区块头(区块头包含区块相关的控制信息,如区块摘要等)。然后区块链节点A再依据区块摘要再次向区块链节点B发起区块体(Block Body)请求。区块链节点B在收到区块链节点A的区块体请求后,会根据区块摘要返回相应的区块体(区块体包含具体的交易数据,如交易列表等)。区块链节点A收到区块链节点B返回的区块体后,会执行区块导入,导入的核心是通过虚拟机执行区块体所包含的交易列表并持久化状态变更。重复上述过程,直到区块链节点A完成区块高度为40的区块的获取执行。
在本公开的一个实施例中,区块链节点B中与当前最新区块关联的全局状态信息存储于指定树形数据结构中。故上述区块链节点A获取区块链节点B中与当前最新区块关联的全局状态信息包括:向区块链节点B发送区块同步请求,以使区块链节点B从树结构根节点开始遍历与当前最新区块关联的指定树形数据结构的树结构节点内容,然后区块链节点A获取来自于区块链节点B的树结构节点内容。
例如,在以太坊(Ethereum)区块链网络中,状态信息均是通过状态数据库(StateDB)来存储和获取的。StateDB作为表层和其他逻辑模块交互,在StateDB之后使用MPT树结构来构建编码后的状态关系,用于快速索引以及回滚等操作。MPT是结合了默克尔树(Merkle Tree)以及紧凑前缀树(Patricia Tree)的特点后创建的树形数据结构,用于组织管理账户数据、生成交易集合哈希等。其具有如下特点:能存储任意长度的键值对(Key-Value)数据;支持默克尔证明(Merkle Proof),用于树结构节点的快速校验;能快速查询键(key)所对应的值(Value)数据;基于根节点(Root)能够还原整个树形结构,即还原出全局状态信息等。MPT中的所有树结构节点最后会以键值对的形式存入区块链节点的磁盘数据库。
在本例中,区块链中每个区块均包含一个MPT的状态根节点(State Root,即树结构根节点),作为该区块的全局存储状态根节点。依然参考图3A所示的区块链,区块链节点A与区块链节点B之间建立连接时,获取对方的快照信息,该快照信息中包括上文所述的区块链信息。区块链节点通过比较双方的快照信息来确定是否需要进行区块同步。由于区块链节点A的区块高度小于区块链节点B的区块高度,区块链节点A的链总难度小于区块链节点B的链总难度,故区块链节点A应向区块链节点B发起区块同步流程,并确定待同步区块为:区块链节点B的区块链中从区块高度为2的区块至区块高度为40的区块。
区块链节点A向区块链节点B发起关于区块链节点B的当前最新区块(即区块高度为40的区块)的全量同步请求消息,区块链节点B解析该全量同步请求消息,针对区块高度为40的区块加载状态树(MPT树形结构)。从区块高度为40的区块中的状态根节点开始,遍历相应状态树中的全部树结构节点。区块链节点B将所加载的树结构节点内容发送至区块链节点A,还可以再发送一个表征同步完成的消息。区块链节点A在收到来自于区块链节点B返回的树结构节点内容,可以直接落盘,以键值对的形式存储至区块链节点A的磁盘数据库。并在收到表征同步完成的消息后,确定完成对区块链节点B的当前最新区块的全局状态信息的全量同步过程,在后续可以寻找合适时机异步地进行各待同步区块的增量同步过程。上述全量同步过程中,无论区块链节点A和区块链节点B之间相差的区块高度有多少,仅需同步当前最新区块所关联的全局状态信息即可,无需通过以太坊虚拟机(EVM)依次执行每个待同步区块中的交易列表,因此同步速度会大幅提升,尤其适用于同步双方的区块高度相差较大的情况。
区块链节点A在完成上述全量同步过程后即可正常出块、正常参与执行区块链网络中的共识验证合约。示例性地,区块链节点A基于全局状态信息执行区块链网络的共识验证合约可以包括:以全局状态信息为基础,进行与共识验证合约相关的状态获取和状态变更。
上述全量同步过程在区块链网络使用强一致性共识验证合约的情况能够提高共识效率。例如,区块链网络使用PBFT算法时,正常情况下,区块链网络中的各区块链节点会轮流出块,并发起共识。例如当前联盟链有a、b、c、d四个区块链节点(四个区块链节点已共识区块高度一致,这里假设区块高度为10)。继续假设区块高度11的区块由区块链节点a产生,并发起共识,共识成功后,区块链节点b、c、d共识成功。那么,区块高度为12的区块将由区块链节点b产生,再发起共识,如此轮流出块。这时,假如新的区块链节点e加入区块链网络,那么轮到区块链节点e出块时,由于区块链节点e需要首先需要进行区块同步,然后再进行正常出块。依据本公开实施例的区块同步方法,其他各区块链节点只需等待区块链节点e同步当前最新区块(区块高度为12的区块)的全局状态信息完成,即可继续进行共识节点的选举和出块过程。而依据相关技术中,其他区块链节点只能等待区块链节点e依次进行所有待同步区块的交易列表的获取和执行过程,或者等待区块链节点e共识超时,然后再重新选举出新的共识节点,会导致整体的共识吞吐下降。
图3B示意性地示出了根据本发明另一个实施例的区块同步方法的流程图,该方法可应用于区块链网络中的任一区块链节点,如区块链节点A。如图3B所示,该方法可以包括如下操作S301~S304。
在操作S301,获取区块链网络中另一区块链节点B的区块链信息。
在操作S302,当区块链节点A的区块高度小于区块链节点B的区块高度时,确定区块链节点A的区块高度与区块链节点B的区块高度之间的差异是否大于预定阈值。
其中,预定阈值可以根据实际需要进行设置。
在操作S303,如果是,则执行关于区块链节点B的当前最新区块的全量同步过程。
其中,全量同步过程在上文中已详细说明,即区块链节点A获取区块链节点B中与当前最新区块关联的全局状态信息,在此不再赘述。
在操作S304,如果否,则基于区块高度之间的差异确定待同步区块,并按照区块生成时间从先至后的顺序,依次获取并执行每个待同步区块。
其中,依次获取并执行每个待同步区块的过程为依次获取并执行每个待同步区块中的交易列表的过程,即增量同步过程,上文中已详细说明,在此不再赘述。
示例性装置
在介绍了本发明示例性实施方式的方法之后,接下来,参考图4和图5对本发明示例性实施方式的区块同步装置进行详细阐述。
图4示意性地示出了根据本发明一个实施例的区块同步装置的框图,该装置可以应用于区块链网络中的一个区块链节点。
如图4所示,该区块同步装置400包括:第一获取模块410、第二获取模块420、状态存储模块430、以及共识验证模块440。
第一获取模块410用于获取区块链网络中另一区块链节点的区块链信息,区块链信息包括区块高度。
第二获取模块420用于当上述一个区块链节点的区块高度小于上述另一区块链节点的区块高度时,获取上述另一区块链节点中与当前最新区块关联的全局状态信息。
状态存储模块430用于存储全局状态信息。
共识验证模块440用于基于全局状态信息执行区块链网络的共识验证合约。
图5示意性地示出了根据本发明另一个实施例的区块同步装置的框图,该装置可以应用于区块链网络中的一个区块链节点。
如图5所示,该区块同步装置500包括:第一获取模块510、第二获取模块520、状态存储模块530、以及共识验证模块540。其中,第一获取模块510、第二获取模块520、状态存储模块530、以及共识验证模块540分别具有与第一获取模块410、第二获取模块420、状态存储模块430、以及共识验证模块440对应相同的功能,重复的部分不再赘述。
在本发明的一个实施例中,上述区块同步装置500还包括:确定模块550和执行模块560。其中,确定模块550用于在存储全局状态信息之后,基于上述一个区块链节点的区块高度与上述另一区块链节点的区块高度之间的差异,确定待同步区块。执行模块560用于按照区块生成时间从先至后的顺序,依次获取并执行待同步区块。
其中,执行模块560包括:区块信息获取子模块561和持久化子模块562。区块信息获取子模块561用于对于任一待同步区块,获取该任一待同步区块的区块信息,该区块信息包括交易列表。持久化子模块562用于执行该交易列表并持久化状态变更。然后执行模块560接着获取并执行该任一待同步区块的下一个待同步区块,直至获取并执行上述另一区块链节点中的当前最新区块。
在本发明的另一实施例中,上述另一区块链节点中与当前最新区块关联的全局状态信息存储于指定树形数据结构中。
在本发明的又一实施例中,第二获取模块520具体用于:向上述另一区块链节点发送区块同步请求,以使上述另一区块链节点从树结构根节点开始遍历与当前最新区块关联的指定树形数据结构的树结构节点内容,进而获取来自于上述另一区块链节点的上述树结构节点内容。
在本发明的再一实施例中,状态存储模块530具体用于将与节点内容对应的键值对信息存储于上述一个区块链节点的数据库中。
在本发明的再一实施例中,上述共识验证模块540具体用于以全局状态信息为基础,进行与共识验证合约相关的状态获取和状态变更。
在本发明的再一实施例中,上述区块同步装置500还包括:判断模块570和辅助同步模块580。其中,判断模块570用于当上述一个区块链节点的区块高度小于上述另一区块链节点的区块高度时,确定上述一个区块链节点的区块高度与上述另一区块链节点的区块高度之间的差异是否大于预定阈值。如果是,则通知第二获取模块520执行上述获取另一区块链节点中与当前最新区块关联的全局状态信息。如果否,则通知辅助同步模块580执行操作,辅助同步模块580用于基于上述差异确定待同步区块,并按照区块生成时间从先至后的顺序,依次获取并执行上述待同步区块。
在本发明的再一实施例中,上述共识验证合约包括PBFT算法。
需要说明的是,装置部分实施例中各模块/单元/子单元等的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。
示例性介质
在介绍了本发明示例性实施方式的方法和装置之后,接下来,对本发明示例性实施方式的、用于实现区块同步方法的介质进行介绍。
本发明实施例提供了一种介质,存储有计算机可执行指令,上述指令在被处理器执行时用于实现上述方法实施例中任一项所述的区块同步方法。
在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算设备上运行时,所述程序代码用于使所述计算设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的区块同步方法中的操作步骤。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
图6示意性地示出了根据本发明实施方式的计算机可读存储介质产品的示意图,如图6所示,描述了根据本发明的实施方式的用于实现区块同步方法的程序产品60,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆,RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言——诸如Java,C++等,还包括常规的过程式程序设计语言——诸如“C”,语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)一连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
示例性计算设备
在介绍了本发明示例性实施方式的方法、介质和装置之后,接下来,介绍根据本发明的另一示例性实施方式的用于实现区块同步方法的计算设备。
本发明实施例还提供了一种计算设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的可执行指令,所述处理器执行所述指令时实现上述方法实施例中任一项所述的区块同步方法。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本发明的用于实现区块同步方法的计算设备可以至少包括至少一个处理单元、以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的区块同步方法中的操作步骤。
下面参照图7来描述根据本发明的这种实施方式的用于实现区块同步方法的计算设备70。如图7所示的计算设备70仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,计算设备70以通用计算设备的形式表现。计算设备70的组件可以包括但不限于:上述至少一个处理单元701、上述至少一个存储单元702、连接不同系统组件(包括存储单元702和处理单元701)的总线703。
总线703表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储单元702可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)7021和/或高速缓存存储器7022,还可以进一步包括只读存储器(ROM)7023。
存储单元702还可以包括具有一组(至少一个)程序模块7024的程序/实用工具7025,这样的程序模块7024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算设备70也可以与一个或多个外部设备704(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与计算设备70交互的设备通信,和/或与使得计算设备70能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口705进行。并且,计算设备70还可以通过网络适配器706与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器706通过总线703与计算设备70的其它模块通信。应当明白,尽管图中未示出,可以结合计算设备70使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了区块同步装置的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (18)
1.一种区块同步方法,应用于区块链网络中的一个区块链节点,所述方法包括:
获取所述区块链网络中另一区块链节点的区块链信息,所述区块链信息包括区块高度;
当所述一个区块链节点的区块高度小于所述另一区块链节点的区块高度时,获取所述另一区块链节点中与当前最新区块关联的全局状态信息;
存储所述全局状态信息;以及
基于所述全局状态信息执行所述区块链网络的共识验证合约;
其中,在一个区块链节点存储与另一区块链节点的当前最新区块关联的全局状态信息,相当于一个区块链节点直接同步另一区块链节点的当前最新区块的全局状态;
在一个区块链节点完成对于另一区块链节点的当前最新区块的全局状态的同步后,在该全局状态的基础上,所述一个区块链节点参与区块链网络中的共识验证过程,进行正常出块过程,无需等待所有相差区块的同步结束。
2.根据权利要求1所述的方法,还包括:
在存储所述全局状态信息之后,基于所述一个区块链节点的区块高度与所述另一区块链节点的区块高度之间的差异,确定待同步区块;以及
按照区块生成时间从先至后的顺序,依次获取并执行所述待同步区块,
其中,所述依次获取并执行所述待同步区块包括:
对于任一待同步区块,获取所述任一待同步区块的区块信息,所述区块信息包括交易列表;
执行所述交易列表并持久化状态变更;以及
获取并执行所述任一待同步区块的下一个待同步区块,直至获取并执行所述另一区块链节点中的当前最新区块。
3.根据权利要求1所述的方法,其中,所述另一区块链节点中与当前最新区块关联的全局状态信息存储于指定树形数据结构中。
4.根据权利要求3所述的方法,其中,所述获取所述另一区块链节点中与当前最新区块关联的全局状态信息包括:
向所述另一区块链节点发送区块同步请求,以使所述另一区块链节点从树结构根节点开始遍历与所述当前最新区块关联的指定树形数据结构的树结构节点内容;以及
获取来自于所述另一区块链节点的所述树结构节点内容。
5.根据权利要求4所述的方法,其中,所述存储所述全局状态信息包括:
将与所述节点内容对应的键值对信息存储于所述一个区块链节点的数据库中。
6.根据权利要求1所述的方法,其中,所述基于所述全局状态信息执行所述区块链网络的共识验证合约包括:
以所述全局状态信息为基础,进行与所述共识验证合约相关的状态获取和状态变更。
7.根据权利要求1所述的方法,还包括:
当所述一个区块链节点的区块高度小于所述另一区块链节点的区块高度时,确定所述一个区块链节点的区块高度与所述另一区块链节点的区块高度之间的差异是否大于预定阈值;
如果是,则执行所述获取所述另一区块链节点中与当前最新区块关联的全局状态信息;以及
如果否,则基于所述差异确定待同步区块,并按照区块生成时间从先至后的顺序,依次获取并执行所述待同步区块。
8.根据权利要求1所述的方法,其中,所述共识验证合约包括实用拜占庭容错共识算法。
9.一种区块同步装置,应用于区块链网络中的一个区块链节点,所述装置包括:
第一获取模块,用于获取所述区块链网络中另一区块链节点的区块链信息,所述区块链信息包括区块高度;
第二获取模块,用于当所述一个区块链节点的区块高度小于所述另一区块链节点的区块高度时,获取所述另一区块链节点中与当前最新区块关联的全局状态信息;
状态存储模块,用于存储所述全局状态信息;以及
共识验证模块,用于基于所述全局状态信息执行所述区块链网络的共识验证合约;
其中,在一个区块链节点存储与另一区块链节点的当前最新区块关联的全局状态信息,相当于一个区块链节点直接同步另一区块链节点的当前最新区块的全局状态;
在一个区块链节点完成对于另一区块链节点的当前最新区块的全局状态的同步后,在该全局状态的基础上,所述一个区块链节点参与区块链网络中的共识验证过程,进行正常出块过程,无需等待所有相差区块的同步结束。
10.根据权利要求9所述的装置,还包括:
确定模块,用于在所述状态存储模块存储所述全局状态信息之后,基于所述一个区块链节点的区块高度与所述另一区块链节点的区块高度之间的差异,确定待同步区块;以及
执行模块,用于按照区块生成时间从先至后的顺序,依次获取并执行所述待同步区块,
其中,所述执行模块包括:
区块信息获取子模块,用于对于任一待同步区块,获取所述任一待同步区块的区块信息,所述区块信息包括交易列表;以及
持久化子模块,用于执行所述交易列表并持久化状态变更;
所述执行模块,还用于在获取并执行所述任一待同步区块之后,获取并执行所述任一待同步区块的下一个待同步区块,直至获取并执行所述另一区块链节点中的当前最新区块。
11.根据权利要求9所述的装置,其中,所述另一区块链节点中与当前最新区块关联的全局状态信息存储于指定树形数据结构中。
12.根据权利要求11所述的装置,其中,
所述第二获取模块,用于向所述另一区块链节点发送区块同步请求,以使所述另一区块链节点从树结构根节点开始遍历与所述当前最新区块关联的指定树形数据结构的树结构节点内容,进而获取来自于所述另一区块链节点的所述树结构节点内容。
13.根据权利要求12所述的装置,其中,
所述状态存储模块,用于将与所述节点内容对应的键值对信息存储于所述一个区块链节点的数据库中。
14.根据权利要求9所述的装置,其中,
所述共识验证模块,用于以所述全局状态信息为基础,进行与所述共识验证合约相关的状态获取和状态变更。
15.根据权利要求9所述的装置,还包括:
判断模块,用于当所述一个区块链节点的区块高度小于所述另一区块链节点的区块高度时,确定所述一个区块链节点的区块高度与所述另一区块链节点的区块高度之间的差异是否大于预定阈值,如果是,则通知所述第二获取模块执行所述获取另一区块链节点中与当前最新区块关联的全局状态信息的操作,如果否,则通知辅助同步模块执行操作;以及
所述辅助同步模块,用于在接收到所述判断模块的通知后,基于所述差异确定待同步区块,并按照区块生成时间从先至后的顺序,依次获取并执行所述待同步区块。
16.根据权利要求9所述的装置,其中,所述共识验证合约包括实用拜占庭容错共识算法。
17.一种介质,存储有计算机可执行指令,所述指令在被处理器执行时用于实现:
如权利要求1至8中任一项所述的区块同步方法。
18.一种计算设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的可执行指令,所述处理器执行所述指令时实现:
如权利要求1至8中任一项所述的区块同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910800201.2A CN110569305B (zh) | 2019-08-27 | 2019-08-27 | 区块同步方法、装置、介质和计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910800201.2A CN110569305B (zh) | 2019-08-27 | 2019-08-27 | 区块同步方法、装置、介质和计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110569305A CN110569305A (zh) | 2019-12-13 |
CN110569305B true CN110569305B (zh) | 2021-09-03 |
Family
ID=68776503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910800201.2A Active CN110569305B (zh) | 2019-08-27 | 2019-08-27 | 区块同步方法、装置、介质和计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110569305B (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111159289B (zh) * | 2019-12-17 | 2024-03-01 | 深圳前海微众银行股份有限公司 | 一种区块同步的方法及装置 |
CN110990490B (zh) * | 2019-12-19 | 2023-09-01 | 京东科技信息技术有限公司 | 区块链网络中区块链的入账方法、装置、设备及介质 |
CN111163148B (zh) * | 2019-12-24 | 2021-09-28 | 腾讯科技(深圳)有限公司 | 一种区块链系统的共识状态的同步方法及相关设备 |
CN111241593A (zh) * | 2020-01-02 | 2020-06-05 | 支付宝(杭州)信息技术有限公司 | 用于区块链节点的数据同步方法及装置 |
CN111259074A (zh) * | 2020-01-12 | 2020-06-09 | 杭州复杂美科技有限公司 | 区块同步方法、设备和存储介质 |
CN111371557B (zh) * | 2020-02-26 | 2024-01-23 | 百度在线网络技术(北京)有限公司 | 区块链数据处理方法、装置、电子设备及介质 |
CN111444203B (zh) * | 2020-03-24 | 2021-09-28 | 腾讯科技(深圳)有限公司 | 一种同步处理方法、装置、设备及介质 |
CN113472561A (zh) * | 2020-03-31 | 2021-10-01 | 华为技术有限公司 | 一种区块链数据处理方法及其设备 |
CN111464393B (zh) * | 2020-03-31 | 2023-08-18 | 腾讯科技(深圳)有限公司 | 一种区块链运行状态的监测方法、装置及存储介质 |
CN111698244B (zh) * | 2020-06-08 | 2022-05-10 | 杭州溪塔科技有限公司 | 一种新增节点快速参与共识的方法、装置及电子设备 |
CN111756829A (zh) * | 2020-06-19 | 2020-10-09 | 深圳市蔚链科技有限公司 | 账本数据同步方法、装置、设备和存储介质 |
CN111935315B (zh) * | 2020-09-25 | 2021-01-12 | 支付宝(杭州)信息技术有限公司 | 区块同步方法及装置 |
CN112383610B (zh) * | 2020-11-11 | 2022-12-09 | 上海保险交易所股份有限公司 | 区块链状态数据的同步处理方法及系统 |
CN112328693A (zh) * | 2020-11-16 | 2021-02-05 | 杭州复杂美科技有限公司 | 区块同步方法、设备和存储介质 |
CN112541825B (zh) * | 2020-12-09 | 2024-07-16 | 网易(杭州)网络有限公司 | 基于区块链的交易处理方法及装置、电子设备 |
CN112800129B (zh) * | 2020-12-31 | 2024-04-23 | 杭州趣链科技有限公司 | 区块状态更新方法、装置、系统和电子设备 |
CN112766503B (zh) * | 2021-03-10 | 2022-09-20 | 电子科技大学 | 基于关键层回滚机制的卷积神经网络模型容错方法 |
CN113037852B (zh) * | 2021-03-22 | 2022-08-09 | 中国人民银行数字货币研究所 | 一种区块链节点同步方法和装置 |
CN113094437B (zh) * | 2021-04-14 | 2023-10-03 | 深圳前海移联科技有限公司 | 一种基于Rsync的区块链状态数据同步方法及系统 |
CN113220685B (zh) * | 2021-05-11 | 2022-04-19 | 支付宝(杭州)信息技术有限公司 | 智能合约存储内容的遍历方法及装置、电子设备 |
CN114338724A (zh) * | 2021-12-31 | 2022-04-12 | 支付宝(杭州)信息技术有限公司 | 一种区块同步方法、装置、电子设备和存储介质 |
CN114422526B (zh) * | 2021-12-31 | 2024-03-15 | 支付宝(杭州)信息技术有限公司 | 一种区块同步方法、装置、电子设备和存储介质 |
CN114363359A (zh) * | 2021-12-31 | 2022-04-15 | 支付宝(杭州)信息技术有限公司 | 一种区块同步方法、装置、电子设备和存储介质 |
CN115277697B (zh) * | 2022-07-18 | 2023-06-23 | 华南师范大学 | 大数据区块链的可信安全方法和医康养数据共享系统 |
CN118101677A (zh) * | 2024-04-28 | 2024-05-28 | 杭州高新区(滨江)区块链与数据安全研究院 | 一种基于状态增量的区块链同步方法、设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107332876A (zh) * | 2017-05-31 | 2017-11-07 | 深圳前海微众银行股份有限公司 | 区块链状态的同步方法及装置 |
CN108365993A (zh) * | 2018-03-09 | 2018-08-03 | 深圳前海微众银行股份有限公司 | 区块链节点动态变更方法、系统和计算机可读存储介质 |
CN109859047A (zh) * | 2019-01-31 | 2019-06-07 | 北京瑞卓喜投科技发展有限公司 | 一种区块链更新方法和区块链更新系统 |
CN109886681A (zh) * | 2019-01-31 | 2019-06-14 | 北京瑞卓喜投科技发展有限公司 | 区块链共识方法及共识系统 |
-
2019
- 2019-08-27 CN CN201910800201.2A patent/CN110569305B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107332876A (zh) * | 2017-05-31 | 2017-11-07 | 深圳前海微众银行股份有限公司 | 区块链状态的同步方法及装置 |
CN108365993A (zh) * | 2018-03-09 | 2018-08-03 | 深圳前海微众银行股份有限公司 | 区块链节点动态变更方法、系统和计算机可读存储介质 |
CN109859047A (zh) * | 2019-01-31 | 2019-06-07 | 北京瑞卓喜投科技发展有限公司 | 一种区块链更新方法和区块链更新系统 |
CN109886681A (zh) * | 2019-01-31 | 2019-06-14 | 北京瑞卓喜投科技发展有限公司 | 区块链共识方法及共识系统 |
Non-Patent Citations (2)
Title |
---|
Blockchain Based Log System;Jiansen Huang 等;《2018 IEEE International Conference on Big Data (Big Data)》;20190124;全文 * |
基于区块链的去中心化交易关键技术研究及应用;安庆文;《中国优秀硕士学位论文全文数据库 经济与管理科学辑》;20170715(第7期);J155-17 * |
Also Published As
Publication number | Publication date |
---|---|
CN110569305A (zh) | 2019-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110569305B (zh) | 区块同步方法、装置、介质和计算设备 | |
CN109274754B (zh) | 用于在区块链网络中同步数据的方法、设备和存储介质 | |
CN109325016B (zh) | 数据迁移方法、装置、介质及电子设备 | |
US20160048703A1 (en) | Securing integrity and consistency of a cloud storage service with efficient client operations | |
CN102799485A (zh) | 历史数据的迁移方法及装置 | |
US9329953B2 (en) | Reducing application downtime during failover | |
CN115185787B (zh) | 处理事务日志的方法及装置 | |
CN111338834B (zh) | 数据存储方法和装置 | |
US8468386B2 (en) | Detecting and recovering from process failures | |
CN111414356A (zh) | 数据存储方法、装置、非关系数据库系统及存储介质 | |
CN114500416A (zh) | 用于最多一次消息投递的投递方法和投递系统 | |
CN114064438A (zh) | 数据库故障处理方法和装置 | |
CN109919768B (zh) | 区块生成方法、装置、介质和计算设备 | |
CN117056123A (zh) | 数据恢复方法、装置、介质及电子设备 | |
US11386043B2 (en) | Method, device, and computer program product for managing snapshot in application environment | |
CN116974983A (zh) | 数据处理方法、装置、计算机可读介质及电子设备 | |
JP6169485B2 (ja) | 分散処理システム | |
CN108733704B (zh) | 多数据库数据处理方法、装置及存储介质和电子设备 | |
CN111858234A (zh) | 一种任务执行方法、装置、设备、介质 | |
CN105765908A (zh) | 一种多站点自动更新方法、客户端和系统 | |
CN112306962A (zh) | 计算机集群系统中的文件拷贝方法、装置及存储介质 | |
CN111258954B (zh) | 数据迁移方法、装置、设备及存储介质 | |
CN111797062B (zh) | 数据处理方法、装置和分布式数据库系统 | |
US11379147B2 (en) | Method, device, and computer program product for managing storage system | |
US11941432B2 (en) | Processing system, processing method, higher-level system, lower-level system, higher-level program, and lower-level program |
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 |