CN112383610A - 区块链状态数据的同步处理方法及系统 - Google Patents
区块链状态数据的同步处理方法及系统 Download PDFInfo
- Publication number
- CN112383610A CN112383610A CN202011251113.0A CN202011251113A CN112383610A CN 112383610 A CN112383610 A CN 112383610A CN 202011251113 A CN202011251113 A CN 202011251113A CN 112383610 A CN112383610 A CN 112383610A
- Authority
- CN
- China
- Prior art keywords
- data
- state
- backup
- block chain
- block
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种区块链状态数据的同步处理方法及系统,其中该方法包括:新加入或重置节点将获取数据指令发送至区块链网络;根据预设分配策略确定作为获取数据的下载节点的区块链节点;获取数据指令中包括查询得到的最新的区块高度,最新的状态备份标识及状态数据备份时的区块高度;下载节点根据最新的状态备份标识提供状态备份数据;根据最新的区块高度及状态数据备份时的区块高度提供备份时点后的所有区块数据;新加入或重置节点将状态备份数据存入本地;顺序执行后续区块数据对应的交易,得到后续区块状态数据;根据后续区块状态数据更新该状态备份数据,得到新加入节点或重置节点的状态数据。本发明可以高效地进行区块链状态数据的同步处理。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及区块链状态数据的同步处理方法及系统。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
现有区块链状态数据同步处理方案中,区块链节点间状态数据同步的常规方式是新加入节点或重置节点先同步所有区块数据,然后从创世区块开始顺序执行该区块数据对应的所有交易,从而得到新加入节点或重置节点的状态数据。新加入节点或重置节点必须同步所有区块,并追赶上区块链网络中其他节点的区块高度之后,才能进入工作状态。随着区块链长度的增长,这个过程会越来越漫长,影响这一过程的不仅仅是数据量大和网络带宽的限制原因,更主要的是重放交易时的算力消耗和磁盘读写IO的时间,从而导致区块链状态数据同步处理的效率低。
发明内容
本发明实施例提供一种区块链状态数据的同步处理方法,用以高效地进行区块链状态数据的同步处理,该方法包括:
新加入区块链节点或重置区块链节点在发起区块链状态数据同步请求时,生成获取数据指令,将获取数据指令发送至区块链网络;根据预设分配策略确定作为获取数据的下载节点的区块链节点;所述获取数据指令中包括查询得到的最新的区块高度,最新的状态备份标识及状态数据备份时的区块高度;
下载节点在接收到通过区块链网络发送的获取数据指令后,根据最新的状态备份标识,为新加入区块链节点或重置区块链节点提供状态备份数据,根据最新的区块高度及状态数据备份时的区块高度,为新加入区块链节点或重置区块链节点提供状态数据备份时区块高度之后区块的所有区块数据;在确定数据提供完成后,生成数据提供完成通知信息,将数据提供完成通知信息发送至区块链网络;
新加入区块链节点或重置区块链节点在接收到通过区块链网络发送的数据提供完成通知信息时,将状态备份数据存入本地数据库;顺序执行状态数据备份时区块高度之后区块的所有区块数据对应的交易,得到后续区块状态数据;根据所述后续区块状态数据更新本地数据库中的状态备份数据,得到新加入区块链节点或重置区块链节点的状态数据。
本发明实施例还提供一种区块链状态数据的同步处理系统,用以高效地进行区块链状态数据的同步处理,包括:
新加入区块链节点或重置区块链节点,用于在发起区块链状态数据同步请求时,生成获取数据指令,将获取数据指令发送至区块链网络;根据预设分配策略确定作为获取数据的下载节点的区块链节点;所述获取数据指令中包括查询得到的最新的区块高度,最新的状态备份标识及状态数据备份时的区块高度;在接收到通过区块链网络发送的数据提供完成通知信息时,将状态备份数据存入本地数据库;顺序执行状态数据备份时区块高度之后区块的所有区块数据对应的交易,得到后续区块状态数据;根据所述后续区块状态数据更新本地数据库中的状态备份数据,得到新加入区块链节点或重置区块链节点的状态数据;
下载节点,用于在接收到通过区块链网络发送的获取数据指令后,根据最新的状态备份标识,为新加入区块链节点或重置区块链节点提供状态备份数据,根据最新的区块高度及状态数据备份时的区块高度,为新加入区块链节点或重置区块链节点提供状态数据备份时区块高度之后区块的所有区块数据;在确定数据提供完成后,生成数据提供完成通知信息,将数据提供完成通知信息发送至区块链网络。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述区块链状态数据的同步处理方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述区块链状态数据的同步处理方法的计算机程序。
本发明实施例中,区块链状态数据的同步处理方案,实现了在新节点加入或重置节点时,新加入节点或重置节点无需先同步所有区块数据,然后从创世区块开始顺序执行所有交易,得到本地的状态数据,只需要根据最新的区块高度,最新的状态备份标识及状态数据备份时的区块高度,同步最新的状态备份数据和备份时点后的区块数据,并执行备份时点后区块数据中的交易,得到后续区块状态数据,根据后续区块状态数据更新上述最新的状态备份数据,就能使得新加入区块链节点或重置区块链节点快速达到状态数据同步的状态,提高了区块链状态数据同步处理的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中区块链状态数据的同步处理方法的流程示意图;
图2为本发明实施例中区块链状态数据备份的流程示意图;
图3为现有技术中区块链节点数据存储示意图;
图4为本发明实施例中区块链节点数据存储示意图;
图5为本发明实施例中区块链状态数据的同步处理系统的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
本发明实施例在区块链底层提供对达到某一区块时点的状态数据做备份的功能,各节点将备份状态数据的哈希进行共识,并记录在区块链的下一区块上(保证各节点备份数据一致)。当有新节点加入到区块链网络或节点重置时,首先从区块链网络中下载最近一次的状态备份数据(可从多个区块链节点同时加载以提高效率,减少对单节点的压力)。状态备份数据导入后,再下载备份状态数据之后的区块数据,执行该区块数据中记录的交易,达到新加入节点或重置节点的状态数据和其他节点一致的目的,新加入节点或重置节点可快速投入生产。
区块链网络中各节点主要存储两类数据:一类叫做区块数据,包括区块头和区块中记录的交易的;另一类是状态数据,该状态数据是区块中记录的交易按顺序执行后产生的数据。状态数据反映了某一时点的业务数据,而交易则是系统在运行过程中执行的操作,区块链中记录了所有操作。因此节点同步不仅包含区块数据同步,还包含状态数据的同步。因为区块中记录了所有执行过的交易,逻辑上只要同步了所有的区块数据,就可以根据区块上记录的所有交易产生状态数据,从而达到状态数据同步的目的,但此过程需要耗费算力和时间。考虑到上述技术问题,发明人提出了一种区块链状态数据的同步处理方案,该方案可通过实现状态数据备份和快速追加新节点或进行节点重置的方案。下面对该区块链状态数据备份和区块链数据同步的方案进行详细介绍。
图1为本发明实施例中区块链状态数据的同步处理方法的流程示意图,区块链节点构成区块链网络,如图1所示,该方法包括如下步骤:
步骤101:新加入区块链节点或重置区块链节点在发起区块链状态数据同步请求时,生成获取数据指令,将获取数据指令发送至区块链网络;根据预设分配策略确定作为获取数据的下载节点的区块链节点;所述获取数据指令中包括查询得到的最新的区块高度,最新的状态备份标识及状态数据备份时的区块高度;
步骤102:下载节点在接收到通过区块链网络发送的获取数据指令后,根据最新的状态备份标识,为新加入区块链节点或重置区块链节点提供状态备份数据,根据最新的区块高度及状态数据备份时的区块高度,为新加入区块链节点或重置区块链节点提供状态数据备份时区块高度之后区块的所有区块数据;在确定数据提供完成后,生成数据提供完成通知信息,将数据提供完成通知信息发送至区块链网络;
步骤103:新加入区块链节点或重置区块链节点在接收到通过区块链网络发送的数据提供完成通知信息时,将状态备份数据存入本地数据库;顺序执行状态数据备份时区块高度之后区块的所有区块数据对应的交易,得到后续区块状态数据;根据所述后续区块状态数据更新本地数据库中的状态备份数据,得到新加入区块链节点或重置区块链节点的状态数据。
本发明实施例中区块链状态数据的同步处理方法实现了在新节点加入或重置节点时,新加入节点或重置节点无需先同步所有区块数据,然后从创世区块开始顺序执行所有交易,得到本地的状态数据,只需要同步最新的状态备份数据和备份时点后的区块数据,并执行备份时点后区块数据中的交易,得到后续区块状态数据,根据后续区块状态数据更新上述最新的状态备份数据,就能使得新加入区块链节点或重置区块链节点快速达到状态数据同步的状态,提高了区块链状态数据同步处理的效率。
本发明实施例中区块链状态数据的同步处理方法主要分为两个大阶段:一是在实施状态数据的同步处理之前,预先进行状态数据备份的阶段;二是实施状态数据的同步处理的阶段。下面对这两个阶段进行详细介绍。
一、首先,介绍预先进行状态数据备份的阶段。
在一个实施例中,如图2所示,上述区块链状态数据的同步处理方法还可以包括:按照如下方法进行状态数据备份,得到状态备份数据:
步骤201:每一区块链节点在确定满足预设状态数据备份条件时,发出状态数据备份请求至区块链网络;
步骤202:获得记账权的区块链节点在接收到通过区块链网络发送的状态数据备份请求的数目超过预设值时,生成状态备份开始指令,将状态备份开始指令发送至区块链网络;
步骤203:每一区块链节点在接收到通过区块链网络发送的状态备份开始指令时,暂停接收和处理普通业务数据,根据状态备份开始指令,进行本地状态数据备份操作处理,在完成本地状态数据备份处理后,确定出状态备份数据对应的状态备份标识,将状态备份标识发送至区块链网络;
步骤204:获得记账权的区块链节点在接收到预设数目区块链节点通过区块链网络发送的状态备份标识时,将状态备份标识和状态数据备份时的区块高度存入状态数据备份时的区块高度之后的区块中,根据状态备份标识和状态数据备份时的区块高度生成状态备份完成通知,将状态备份完成通知发送至区块链网络;
步骤205:每一区块链节点在接收到通过区块链网络发送的状态备份完成通知时,恢复接收和处理普通业务数据。
具体实施时,通过上述可知,状态数据备份过程主要包括:
首先,每一共识节点(区块链节点)判定是否达到状态数据备份条件,该数据备份条件可以是达到预设区块高度或是达到预设时长;如果已满足数据备份条件,获得记账权的共识节点(区块链节点)创建【状态备份开始】交易(生成状态备份开始指令),并把交易单独打包成一个区块全网共识,即将状态备份开始指令发送至区块链网络;收到包含【状态备份开始】交易的共识节点(所有共识节点,包括获得记账权的区块链节点),暂停接收和处理普通业务数据(为保证各节点状态数据一致),全部算力用于处理状态数据备份逻辑。
接着,共识节点(每一区块链节点)完成本地状态数据备份后,将备份数据存储在本地状态备份池中,并计算出备份数据的哈希值(状态备份标识)。记账节点(获得记账权的区块链节点)根据状态备份的哈希值和状态备份时的区块高度,创建【状态备份完成】的交易(生成状态备份完成通知),并单独打包成一个区块,进行共识并落账(落账是指全部共识节点共识了备份的哈希值和区块高度,并把这一信息记录在区块链上)。
最后,共识节点接收到包含【状态备份完成】交易的区块后,恢复接收和处理普通业务数据,即在接收到通过区块链网络发送的状态备份完成通知时,恢复接收和处理普通业务数据。
综上,本发明实施例在区块链底层提供对达到某一区块时点的状态数据做备份的功能,各节点将备份状态数据的哈希进行共识,并记录在区块链的下一区块上,通过上述状态数据备份的实施方式,为后续区块链状态数据的同步处理奠定了坚实的基础,保证了后续区块链状态数据同步处理的高效进行。
二、接着,介绍实施状态数据的同步处理的阶段,即新节点加入或节点重置后启动阶段。
在一个实施例中,在上述步骤101中,上述区块链状态数据的同步处理方法还可以包括按照如下方法查询得到的最新的区块高度,最新的状态备份标识及状态数据备份时的区块高度:
新加入区块链节点或重置区块链节点在生成查询指令,将查询指令发送至区块链网络;
每一区块链节点接收通过区块链网络发送的查询指令,将最新的区块高度,最新的状态备份标识及状态数据备份时的区块高度作为查询结果发送至区块链网络;
新加入区块链节点或重置区块链节点接收通过区块链网络发送的查询结果,在确定所有查询结果一致的比例超过预设值时,得到最新的区块高度,最新的状态备份标识及状态数据备份时的区块高度。
具体实施时,新加入区块链节点或重置区块链节点通过向区块链网络发送查询指令,进而将得到的所有区块链节点发来的查询结果进行校验比对,得到更加准确的最新的区块高度,最新的状态备份标识及状态数据备份时的区块高度,进而提高了后续区块链状态数据的同步处理的准确率。
在一个实施例中,在上述步骤104中,新加入区块链节点或重置区块链节点在接收到通过区块链网络发送的数据提供完成通知信息时,将状态备份数据存入本地数据库,可以包括:
新加入区块链节点或重置区块链节点在接收到通过区块链网络发送的数据提供完成通知信息时,确认状态备份数据接收完成后,根据接收的状态备份数据计算状态备份标识;将计算出的状态备份标识与状态数据备份时区块高度之后区块中存储的状态备份标识进行比对,在比对结果为一致时,将状态备份数据存入本地数据库。
具体实施时,新加入区块链节点或重置区块链节点在接收完数据,将状态备份数据存入本地数据库之前,根据接收的状态备份数据计算状态备份标识;将计算出的状态备份标识与状态数据备份时区块高度之后区块中存储的状态备份标识进行比对,在比对结果为一致时,确定接收的状态备份数据的完整性后,才进行后续操作流程,进一步提高了区块链状态数据同步处理的准确性。
下面再介绍进一步提高数据加载效率,进而进一步提高区块链状态数据同步处理效率的实施方案。
在一个实施例中,根据预设分配策略确定作为获取状态数据的下载节点的区块链节点,可以包括:
根据预设分配策略确定作为获取状态数据的下载节点的区块链节点为N个;其中,N为大于1的正整数;
根据获取数据指令,将获取数据任务分为N个,为每一任务确定下载节点,将每一任务及其对应的下载节点标识发送至区块链网络;
每一下载节点在接收到通过区块链网络发送的对应的任务后,根据最新的状态备份标识,为新加入区块链节点或重置区块链节点提供本下载节点任务对应的状态备份数据,根据最新的区块高度及状态数据备份时的区块高度,为新加入区块链节点或重置区块链节点提供本下载节点任务对应的状态数据备份时区块高度之后区块的区块数据;在确定数据提供完成后,生成数据提供完成子通知信息,将数据提供完成子通知信息发送至区块链网络;
新加入区块链节点或重置区块链节点在接收到通过区块链网络发送的数据提供完成通知信息时,将状态备份数据存入本地数据库;顺序执行状态数据备份时区块高度之后区块的所有区块数据对应的交易,得到后续区块状态数据,包括:新加入区块链节点或重置区块链节点在接收到通过区块链网络发送的N个数据提供完成子通知信息时,将N个下载节点的任务对应的状态备份数据进行拼接,将拼接后得到的状态备份数据存入本地数据库;将N个下载节点的任务对应的区块数据进行拼接,并顺序执行拼接后的区块数据对应的交易,得到后续区块状态数据。
具体实施时,上述实施方案从多个节点同时加载数据以提高效率,减少对单节点的压力,进一步提高了区块链状态数据的同步处理效率。
另外,综上所述,在一个实施例中,所述状态备份标识可以为根据状态备份数据计算出的哈希值,进一步提高了区块链状态数据的同步处理的效率。
为了便于理解上述实施状态数据的同步处理阶段如何实施,下面再结合附图3和图4进行整体介绍。
1、新节点或重置节点启动后,设置为未就绪状态,并向区块链网络询问最新的区块高度,最近的状态备份和备份时的区块高度,即上述步骤101,新加入区块链节点或重置区块链节点接收用户输入的区块链状态数据的同步请求,将所述同步请求发送至区块链网络。
2、新节点或重置节点从网络中下载最近的状态备份数据。同时下载备份时间节点后的所有区块数据,即上述步骤102和步骤103。
3、状态备份数据下载完成后计算哈希值,与后续区块中记录的哈希值对比(即,下载后的备份文件在本地计算哈希,与区块链上记录的备份文件哈希比对)一致则进行后续流程,否则节点启动失败,即上述步骤104中的将状态备份数据存入本地数据库之前的详细实施步骤。
4、导入备份数据到本地状态DB。顺序执行备份时点后续区块的交易,变更本地状态数据(本地状态数据是指区块链节点的状态数据,通过备份得到了某一块高的状态数据,后续区块的交易并没有执行,则后续区块的交易应该顺序执行以保证节点的状态数据和其他节点保持一致),即上述步骤104。
5、当新节点或重置节点的本地区块高度与区块链网络上其他节点高度相差到设定阈值时,新节点或重置节点标记为已就绪状态,此时,新节点或重置节点可以接收区块链网络中的正常交易数据。
综上,结合图3和图4的比对可知,本发明实施例公开了一种应用在区块链底层的区块链状态数据备份方法,以及基于此备份方法实现的节点间状态数据快速同步的方法。本发明实施例提供的区块链状态数据的同步处理方案在区块链领域有了突破性的改进,提高了区块链状态数据的同步处理的效率和准确率,实现了新加入节点或节点重置时,保证了新加入节点或重置节点快速进入工作状态。
本发明实施例中还提供了一种区块链状态数据的同步处理装置,如下面的实施例所述。由于该装置解决问题的原理与区块链状态数据的同步处理方法相似,因此该装置的实施可以参见区块链状态数据的同步处理方法的实施,重复之处不再赘述。
图5为本发明实施例中区块链状态数据的同步处理系统的结构示意图,如图5所示,该系统包括:
新加入区块链节点或重置区块链节点,用于在发起区块链状态数据同步请求时,生成获取数据指令,将获取数据指令发送至区块链网络;根据预设分配策略确定作为获取数据的下载节点的区块链节点;所述获取数据指令中包括查询得到的最新的区块高度,最新的状态备份标识及状态数据备份时的区块高度;在接收到通过区块链网络发送的数据提供完成通知信息时,将状态备份数据存入本地数据库;顺序执行状态数据备份时区块高度之后区块的所有区块数据对应的交易,得到后续区块状态数据;根据所述后续区块状态数据更新本地数据库中的状态备份数据,得到新加入区块链节点或重置区块链节点的状态数据;
下载节点,用于在接收到通过区块链网络发送的获取数据指令后,根据最新的状态备份标识,为新加入区块链节点或重置区块链节点提供状态备份数据,根据最新的区块高度及状态数据备份时的区块高度,为新加入区块链节点或重置区块链节点提供状态数据备份时区块高度之后区块的所有区块数据;在确定数据提供完成后,生成数据提供完成通知信息,将数据提供完成通知信息发送至区块链网络。
具体实施时,新加入区块链节点或重置区块链节点,获得记账权的区块链节点,下载节点可以是图5中任一区块链节点(副本)。
在一个实施例中,每一区块链节点具体可以用于:在确定满足预设状态数据备份条件时,发出状态数据备份请求至区块链网络;在接收到通过区块链网络发送的状态备份开始指令时,暂停接收和处理普通业务数据,根据状态备份开始指令,进行本地状态数据备份操作处理,在完成本地状态数据备份处理后,确定出状态备份数据对应的状态备份标识,将状态备份标识发送至区块链网络;在接收到通过区块链网络发送的状态备份完成通知时,恢复接收和处理普通业务数据;
获得记账权的区块链节点用于:在接收到通过区块链网络发送的状态数据备份请求的数目超过预设值时,生成状态备份开始指令,将状态备份开始指令发送至区块链网络;在接收到预设数目区块链节点通过区块链网络发送的状态备份标识时,将状态备份标识和状态备份时的区块高度存入备份时的区块高度之后的区块中,根据状态备份标识和状态备份时的区块高度生成状态备份完成通知,将状态备份完成通知发送至区块链网络。
在一个实施例中,新加入区块链节点或重置区块链节点具体可以用于:在接收到通过区块链网络发送的数据提供完成通知信息时,确认状态备份数据接收完成后,根据接收的状态备份数据计算状态备份标识;将计算出的状态备份标识与状态数据备份时区块高度之后区块中存储的状态备份标识进行比对,在比对结果为一致时,将状态备份数据存入本地数据库。
在一个实施例中,新加入区块链节点或重置区块链节点具体用于在生成查询指令,将查询指令发送至区块链网络;接收通过区块链网络发送的查询结果,在确定所有查询结果一致的比例超过预设值时,得到最新的区块高度,最新的状态备份标识及状态数据备份时的区块高度
每一区块链节点接收具体用于通过区块链网络发送的查询指令,将最新的区块高度,最新的状态备份标识及状态数据备份时的区块高度作为查询结果发送至区块链网络。
在一个实施例中,获得记账权的区块链节点具体可以用于:
根据预设分配策略确定作为获取状态数据的下载节点的区块链节点为N个;其中,N为大于1的正整数;
根据获取数据指令,将获取数据任务分为N个,为每一任务确定下载节点,将每一任务及其对应的下载节点标识发送至区块链网络;
每一下载节点具体可以用于:在接收到通过区块链网络发送的对应的任务后,根据最新的状态备份标识,为新加入区块链节点或重置区块链节点提供本下载节点任务对应的状态备份数据,根据最新的区块高度及状态数据备份时的区块高度,为新加入区块链节点或重置区块链节点提供本下载节点任务对应的状态数据备份时区块高度之后区块的区块数据;在确定数据提供完成后,生成数据提供完成子通知信息,将数据提供完成子通知信息发送至区块链网络;
新加入区块链节点或重置区块链节点具体可以用于:新加入区块链节点或重置区块链节点在接收到通过区块链网络发送的N个数据提供完成子通知信息时,将N个下载节点的任务对应的状态备份数据进行拼接,将拼接后得到的状态备份数据存入本地数据库;将N个下载节点的任务对应的区块数据进行拼接,并顺序执行拼接后的区块数据对应的交易,得到后续区块状态数据。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述区块链状态数据的同步处理方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述区块链状态数据的同步处理方法的计算机程序。
本发明实施例中,区块链状态数据的同步处理方案,实现了在新节点加入或重置节点时,新加入节点或重置节点无需先同步所有区块数据,然后从创世区块开始顺序执行所有交易,得到本地的状态数据,只需要根据最新的区块高度,最新的状态备份标识及状态数据备份时的区块高度,同步最新的状态备份数据和备份时点后的区块数据,并执行备份时点后区块数据中的交易,得到后续区块状态数据,根据后续区块状态数据更新上述最新的状态备份数据,就能使得新加入区块链节点或重置区块链节点快速达到状态数据同步的状态,提高了区块链状态数据同步处理的效率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种区块链状态数据的同步处理方法,其特征在于,包括:
新加入区块链节点或重置区块链节点在发起区块链状态数据同步请求时,生成获取数据指令,将获取数据指令发送至区块链网络;根据预设分配策略确定作为获取数据的下载节点的区块链节点;所述获取数据指令中包括查询得到的最新的区块高度,最新的状态备份标识及状态数据备份时的区块高度;
下载节点在接收到通过区块链网络发送的获取数据指令后,根据最新的状态备份标识,为新加入区块链节点或重置区块链节点提供状态备份数据,根据最新的区块高度及状态数据备份时的区块高度,为新加入区块链节点或重置区块链节点提供状态数据备份时区块高度之后区块的所有区块数据;在确定数据提供完成后,生成数据提供完成通知信息,将数据提供完成通知信息发送至区块链网络;
新加入区块链节点或重置区块链节点在接收到通过区块链网络发送的数据提供完成通知信息时,将状态备份数据存入本地数据库;顺序执行状态数据备份时区块高度之后区块的所有区块数据对应的交易,得到后续区块状态数据;根据所述后续区块状态数据更新本地数据库中的状态备份数据,得到新加入区块链节点或重置区块链节点的状态数据。
2.如权利要求1所述的区块链状态数据的同步处理方法,其特征在于,还包括:按照如下方法进行状态数据备份,得到状态备份数据:
每一区块链节点在确定满足预设状态数据备份条件时,发出状态数据备份请求至区块链网络;
获得记账权的区块链节点在接收到通过区块链网络发送的状态数据备份请求的数目超过预设值时,生成状态备份开始指令,将状态备份开始指令发送至区块链网络;
每一区块链节点在接收到通过区块链网络发送的状态备份开始指令时,暂停接收和处理业务数据,根据状态备份开始指令,进行本地状态数据备份操作处理,在完成本地状态数据备份处理后,确定出状态备份数据对应的状态备份标识,将状态备份标识发送至区块链网络;
获得记账权的区块链节点在接收到预设数目区块链节点通过区块链网络发送的状态备份标识时,将状态备份标识和状态数据备份时的区块高度存入状态数据备份时的区块高度之后的区块中,根据状态备份标识和状态数据备份时的区块高度生成状态备份完成通知,将状态备份完成通知发送至区块链网络;
每一区块链节点在接收到通过区块链网络发送的状态备份完成通知时,恢复接收和处理业务数据。
3.如权利要求1所述的区块链状态数据的同步处理方法,其特征在于,新加入区块链节点或重置区块链节点在接收到通过区块链网络发送的数据提供完成通知信息时,将状态备份数据存入本地数据库,包括:
新加入区块链节点或重置区块链节点在接收到通过区块链网络发送的数据提供完成通知信息时,确认状态备份数据接收完成后,根据接收的状态备份数据计算状态备份标识;将计算出的状态备份标识与状态数据备份时区块高度之后区块中存储的状态备份标识进行比对,在比对结果为一致时,将状态备份数据存入本地数据库。
4.如权利要求1所述的区块链状态数据的同步处理方法,其特征在于,还包括按照如下方法查询得到的最新的区块高度,最新的状态备份标识及状态数据备份时的区块高度:
新加入区块链节点或重置区块链节点在生成查询指令,将查询指令发送至区块链网络;
每一区块链节点接收通过区块链网络发送的查询指令,将最新的区块高度,最新的状态备份标识及状态数据备份时的区块高度作为查询结果发送至区块链网络;
新加入区块链节点或重置区块链节点接收通过区块链网络发送的查询结果,在确定所有查询结果一致的比例超过预设值时,得到最新的区块高度,最新的状态备份标识及状态数据备份时的区块高度。
5.如权利要求1所述的区块链状态数据的同步处理方法,其特征在于,所述状态备份标识为根据状态备份数据计算出的哈希值。
6.一种区块链状态数据的同步处理系统,其特征在于,包括:
新加入区块链节点或重置区块链节点,用于在发起区块链状态数据同步请求时,生成获取数据指令,将获取数据指令发送至区块链网络;根据预设分配策略确定作为获取数据的下载节点的区块链节点;所述获取数据指令中包括查询得到的最新的区块高度,最新的状态备份标识及状态数据备份时的区块高度;在接收到通过区块链网络发送的数据提供完成通知信息时,将状态备份数据存入本地数据库;顺序执行状态数据备份时区块高度之后区块的所有区块数据对应的交易,得到后续区块状态数据;根据所述后续区块状态数据更新本地数据库中的状态备份数据,得到新加入区块链节点或重置区块链节点的状态数据;
下载节点,用于在接收到通过区块链网络发送的获取数据指令后,根据最新的状态备份标识,为新加入区块链节点或重置区块链节点提供状态备份数据,根据最新的区块高度及状态数据备份时的区块高度,为新加入区块链节点或重置区块链节点提供状态数据备份时区块高度之后区块的所有区块数据;在确定数据提供完成后,生成数据提供完成通知信息,将数据提供完成通知信息发送至区块链网络。
7.如权利要求6所述的区块链状态数据的同步处理系统,其特征在于,每一区块链节点具体用于:在确定满足预设状态数据备份条件时,发出状态数据备份请求至区块链网络;在接收到通过区块链网络发送的状态备份开始指令时,暂停接收和处理业务数据,根据状态备份开始指令,进行本地状态数据备份操作处理,在完成本地状态数据备份处理后,确定出状态备份数据对应的状态备份标识,将状态备份标识发送至区块链网络;在接收到通过区块链网络发送的状态备份完成通知时,恢复接收和处理业务数据;
获得记账权的区块链节点用于:在接收到通过区块链网络发送的状态数据备份请求的数目超过预设值时,生成状态备份开始指令,将状态备份开始指令发送至区块链网络;在接收到预设数目区块链节点通过区块链网络发送的状态备份标识时,将状态备份标识和状态备份时的区块高度存入备份时的区块高度之后的区块中,根据状态备份标识和状态备份时的区块高度生成状态备份完成通知,将状态备份完成通知发送至区块链网络。
8.如权利要求6所述的区块链状态数据的同步处理系统,其特征在于,新加入区块链节点或重置区块链节点具体用于:在接收到通过区块链网络发送的数据提供完成通知信息时,确认状态备份数据接收完成后,根据接收的状态备份数据计算状态备份标识;将计算出的状态备份标识与状态数据备份时区块高度之后区块中存储的状态备份标识进行比对,在比对结果为一致时,将状态备份数据存入本地数据库。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5任一所述方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至5任一所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011251113.0A CN112383610B (zh) | 2020-11-11 | 2020-11-11 | 区块链状态数据的同步处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011251113.0A CN112383610B (zh) | 2020-11-11 | 2020-11-11 | 区块链状态数据的同步处理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112383610A true CN112383610A (zh) | 2021-02-19 |
CN112383610B CN112383610B (zh) | 2022-12-09 |
Family
ID=74579674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011251113.0A Active CN112383610B (zh) | 2020-11-11 | 2020-11-11 | 区块链状态数据的同步处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112383610B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112714192A (zh) * | 2021-03-25 | 2021-04-27 | 腾讯科技(深圳)有限公司 | 数据同步方法、装置、计算机可读介质及电子设备 |
CN113094437A (zh) * | 2021-04-14 | 2021-07-09 | 深圳前海移联科技有限公司 | 一种基于Rsync的区块链状态数据同步方法及系统 |
CN113157494A (zh) * | 2021-04-19 | 2021-07-23 | 支付宝(杭州)信息技术有限公司 | 区块链系统中数据备份的方法及装置 |
CN113744064A (zh) * | 2021-11-04 | 2021-12-03 | 支付宝(杭州)信息技术有限公司 | 在区块链节点中执行交易的方法及装置 |
WO2023160093A1 (zh) * | 2022-02-25 | 2023-08-31 | 蚂蚁区块链科技(上海)有限公司 | 区块链的节点入网及装置和电子设备 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107317842A (zh) * | 2017-05-31 | 2017-11-03 | 北京大学深圳研究生院 | 基于ndn的区块链同步方法和装置 |
CN107332876A (zh) * | 2017-05-31 | 2017-11-07 | 深圳前海微众银行股份有限公司 | 区块链状态的同步方法及装置 |
WO2018119587A1 (zh) * | 2016-12-26 | 2018-07-05 | 深圳前海达闼云端智能科技有限公司 | 数据处理方法、装置、系统及信息采集设备 |
CN108805570A (zh) * | 2018-06-01 | 2018-11-13 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置及存储介质 |
CN108848184A (zh) * | 2018-06-29 | 2018-11-20 | 北京金山安全软件有限公司 | 一种基于信任机制的区块链节点同步方法及装置 |
CN109274754A (zh) * | 2018-10-11 | 2019-01-25 | 上海保险交易所股份有限公司 | 用于在区块链网络中同步数据的方法、设备和存储介质 |
CN109587238A (zh) * | 2018-12-03 | 2019-04-05 | 百度在线网络技术(北京)有限公司 | 区块链的数据处理和同步方法、装置、设备及存储介质 |
CN109859047A (zh) * | 2019-01-31 | 2019-06-07 | 北京瑞卓喜投科技发展有限公司 | 一种区块链更新方法和区块链更新系统 |
WO2019195639A1 (en) * | 2018-04-05 | 2019-10-10 | Neji, Inc. | Programmatic creation of blockchains |
CN110442579A (zh) * | 2019-08-02 | 2019-11-12 | 杭州复杂美科技有限公司 | 一种状态树数据存储方法、同步方法及设备和存储介质 |
CN110569305A (zh) * | 2019-08-27 | 2019-12-13 | 网易(杭州)网络有限公司 | 区块同步方法、装置、介质和计算设备 |
CN111209346A (zh) * | 2020-04-24 | 2020-05-29 | 腾讯科技(深圳)有限公司 | 一种区块链数据归档方法、装置和计算机可读存储介质 |
EP3673620A2 (en) * | 2019-07-11 | 2020-07-01 | Alibaba Group Holding Limited | Shared blockchain data storage |
CN111813866A (zh) * | 2020-07-30 | 2020-10-23 | 河南中盾云安信息科技有限公司 | 一种改进的区块链账本同步方法 |
-
2020
- 2020-11-11 CN CN202011251113.0A patent/CN112383610B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018119587A1 (zh) * | 2016-12-26 | 2018-07-05 | 深圳前海达闼云端智能科技有限公司 | 数据处理方法、装置、系统及信息采集设备 |
CN107332876A (zh) * | 2017-05-31 | 2017-11-07 | 深圳前海微众银行股份有限公司 | 区块链状态的同步方法及装置 |
CN107317842A (zh) * | 2017-05-31 | 2017-11-03 | 北京大学深圳研究生院 | 基于ndn的区块链同步方法和装置 |
WO2019195639A1 (en) * | 2018-04-05 | 2019-10-10 | Neji, Inc. | Programmatic creation of blockchains |
CN108805570A (zh) * | 2018-06-01 | 2018-11-13 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置及存储介质 |
CN108848184A (zh) * | 2018-06-29 | 2018-11-20 | 北京金山安全软件有限公司 | 一种基于信任机制的区块链节点同步方法及装置 |
CN109274754A (zh) * | 2018-10-11 | 2019-01-25 | 上海保险交易所股份有限公司 | 用于在区块链网络中同步数据的方法、设备和存储介质 |
CN109587238A (zh) * | 2018-12-03 | 2019-04-05 | 百度在线网络技术(北京)有限公司 | 区块链的数据处理和同步方法、装置、设备及存储介质 |
CN109859047A (zh) * | 2019-01-31 | 2019-06-07 | 北京瑞卓喜投科技发展有限公司 | 一种区块链更新方法和区块链更新系统 |
EP3673620A2 (en) * | 2019-07-11 | 2020-07-01 | Alibaba Group Holding Limited | Shared blockchain data storage |
CN110442579A (zh) * | 2019-08-02 | 2019-11-12 | 杭州复杂美科技有限公司 | 一种状态树数据存储方法、同步方法及设备和存储介质 |
CN110569305A (zh) * | 2019-08-27 | 2019-12-13 | 网易(杭州)网络有限公司 | 区块同步方法、装置、介质和计算设备 |
CN111209346A (zh) * | 2020-04-24 | 2020-05-29 | 腾讯科技(深圳)有限公司 | 一种区块链数据归档方法、装置和计算机可读存储介质 |
CN111813866A (zh) * | 2020-07-30 | 2020-10-23 | 河南中盾云安信息科技有限公司 | 一种改进的区块链账本同步方法 |
Non-Patent Citations (1)
Title |
---|
冷迪: "基于区块链的动态数据同态加密保护方法", 《计算机产品与流通》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112714192A (zh) * | 2021-03-25 | 2021-04-27 | 腾讯科技(深圳)有限公司 | 数据同步方法、装置、计算机可读介质及电子设备 |
CN113094437A (zh) * | 2021-04-14 | 2021-07-09 | 深圳前海移联科技有限公司 | 一种基于Rsync的区块链状态数据同步方法及系统 |
CN113094437B (zh) * | 2021-04-14 | 2023-10-03 | 深圳前海移联科技有限公司 | 一种基于Rsync的区块链状态数据同步方法及系统 |
CN113157494A (zh) * | 2021-04-19 | 2021-07-23 | 支付宝(杭州)信息技术有限公司 | 区块链系统中数据备份的方法及装置 |
CN113157494B (zh) * | 2021-04-19 | 2024-03-26 | 支付宝(杭州)信息技术有限公司 | 区块链系统中数据备份的方法及装置 |
CN113744064A (zh) * | 2021-11-04 | 2021-12-03 | 支付宝(杭州)信息技术有限公司 | 在区块链节点中执行交易的方法及装置 |
WO2023160093A1 (zh) * | 2022-02-25 | 2023-08-31 | 蚂蚁区块链科技(上海)有限公司 | 区块链的节点入网及装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112383610B (zh) | 2022-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112383610B (zh) | 区块链状态数据的同步处理方法及系统 | |
CN110569305B (zh) | 区块同步方法、装置、介质和计算设备 | |
CN110532247B (zh) | 数据迁移方法和数据迁移系统 | |
CN109992624B (zh) | 一种区块链Block chain的同步存储方法、装置及计算机设备 | |
CN107391634B (zh) | 数据迁移方法及装置 | |
CN110225078B (zh) | 一种应用服务更新方法、系统及终端设备 | |
WO2017045491A1 (zh) | 一种对 sqlite3 型嵌入式数据库进行升级的方法及系统 | |
CN109063005B (zh) | 一种数据迁移方法及系统、存储介质、电子设备 | |
WO2013163864A1 (zh) | 数据持久化处理方法、装置及数据库系统 | |
CN110764839A (zh) | 一种业务处理流程配置方法、业务请求处理方法及装置 | |
CN104793981B (zh) | 一种虚拟机集群的在线快照管理方法及装置 | |
CN107391303B (zh) | 数据处理方法、装置、系统、服务器及计算机存储介质 | |
CN110825758B (zh) | 一种交易处理的方法及装置 | |
CN113468143A (zh) | 数据迁移方法、系统、计算设备及存储介质 | |
CN110991983B (zh) | 一种任务处理方法、装置、介质和设备 | |
CN107623705B (zh) | 基于视频云存储系统的存储模式升级方法、装置和系统 | |
CN112000850A (zh) | 进行数据处理的方法、装置、系统及设备 | |
CN108121514B (zh) | 元信息更新方法、装置、计算设备及计算机存储介质 | |
CN111338668B (zh) | 用于实时计算中的代码升级的方法及装置 | |
CN112256481A (zh) | 一种敏捷开发中数据恢复方法及系统 | |
CN107153699B (zh) | 一种动态扩展集群服务器的方法及装置 | |
CN111813501A (zh) | 一种数据删除方法、装置、设备及存储介质 | |
CN110908821A (zh) | 任务失败管理的方法、装置、设备和存储介质 | |
CN113011507B (zh) | 建立同步时间预测模型的方法、数据同步方法及对应装置 | |
CN113672255B (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 |