CN111400106B - 一种区块链账本同步方法、装置以及电子设备 - Google Patents
一种区块链账本同步方法、装置以及电子设备 Download PDFInfo
- Publication number
- CN111400106B CN111400106B CN202010232071.XA CN202010232071A CN111400106B CN 111400106 B CN111400106 B CN 111400106B CN 202010232071 A CN202010232071 A CN 202010232071A CN 111400106 B CN111400106 B CN 111400106B
- Authority
- CN
- China
- Prior art keywords
- block
- account book
- ledger
- electronic device
- target
- 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
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000001360 synchronised effect Effects 0.000 claims abstract description 19
- 238000005096 rolling process Methods 0.000 claims abstract description 4
- 230000015654 memory Effects 0.000 claims description 19
- 238000012545 processing Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 abstract description 7
- 238000004891 communication Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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
- G06F16/275—Synchronous replication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种区块链账本同步方法、装置以及电子设备,涉及区块链技术领域。具体实现方案为:在检测到电子设备的账本与区块链网络中第一目标设备的账本发生分叉的情况下,获取第一目标设备的账本的第一区别区块中的第一目标区块,并将电子设备从区块链网络中分离;确定电子设备的账本中的分叉区块;将电子设备中分叉区块回滚;依据第一区别区块对电子设备的回滚后的账本进行同步,其中,第一区别区块为第一目标设备的账本中存在且电子设备的账本不存在的区块。在区块链账本同步过程中,无需将电子设备的账本删除后重建,通过确定分叉区块,将其回滚,根据第一目标区块对回滚后的账本进行同步即可,减少账本同步耗时,提高账本同步效率。
Description
技术领域
本申请涉及计算机技术中的区块链技术领域,尤其涉及一种区块链账本同步方法、装置以及电子设备。
背景技术
区块链网络通过分布式账本和点对点网络实现,区块链网络中可包括多个连接的节点(每个节点是一个电子设备),区块链网络中每个节点可维护各自的区块链,节点中的区块链即可以理解为该节点中的账本,即区块链账本,节点中的区块链可包括多个按时间顺序链接的区块,节点中的一个区块可以理解为该节点的账本中的一部分,且区块链为单向链式结构,区块链中每个区块均指向前一个区块,区块的前一个区块的时间早于该区块,这里的区块的时间可以理解为该区块被创建的时间。每个节点需要维护同样的一条区块链,即区块链状态需同步,可以理解为账本状态需同步,然而,可能因为各种原因导致节点之间的账本发生分叉,使节点账本状态不一致,比如网络分区、代码漏洞以及恶意攻击等原因。而区块链网络中节点状态不一致不仅不利于网络健康运行,也会导致严重的经济损失。
在发生分叉导致节点账本状态不一致时,为使状态一致,可进行节点账本同步,然而,目前常采用的方法为将节点中的账本删除后重建实现账本同步,但这种重建账本的方式实现同步的过程中,耗时较长,同步效率较差,特别是当历史账本积累到一定量的情况。
发明内容
本申请提供一种区块链账本同步方法、装置和电子设备,以解决现有账本同步方法中同步效率较差的问题。
第一方面,本申请一个实施例提供一种区块链账本同步方法,应用区块链网络中的电子设备,所述方法包括:
在检测到所述电子设备的账本与所述区块链网络中第一目标设备的账本发生分叉的情况下,获取所述第一目标设备的账本的第一区别区块中的第一目标区块,并将所述电子设备从所述区块链网络中分离,其中,所述第一区别区块为所述第一目标设备的账本中存在且所述电子设备的账本不存在的区块;
确定所述电子设备的账本中的分叉区块;
将所述电子设备中分叉区块回滚;
依据所述第一区别区块对所述电子设备的回滚后的账本进行同步,其中,所述电子设备的同步后的账本中包括所述回滚后的账本以及所述第一区别区块。
在电子设备的账本发生分叉情况下进行账本同步过程中,通过确定电子设备的账本中的分叉区块,将其回滚,然后将第一目标设备的账本中存在且电子设备的账本不存在的第一区别区块中的第一目标区块同步到电子设备的回滚后的账本中即可,无需将电子设备中的账本删除后重建,从而可减少账本同步耗时,提高账本同步效率。
可选的,所述确定所述电子设备的账本中的分叉区块,包括:
确定所述电子设备的账本中与所述第一目标设备的账本发生分叉的起始区块;
在所述起始区块不为所述电子设备的账本中最后一个区块的情况下,获取所述电子设备的账本中在所述起始区块之后的第二目标区块,其中,所述分叉区块包括所述起始区块以及所述第二目标区块;
或者,在所述起始区块为所述电子设备的账本中最后一个区块的情况下,确定所述分叉区块为所述起始区块。
在本实施例中,在确定电子设备的账本中的分叉区块的过程中,首先确定发生分叉的起始区块,若起始区块不为电子设备的账本中最后一个区块,获取电子设备的账本中在起始区块之后的第二目标区块,将起始区块和第二目标区块作为分叉区块,以实现分叉区块的确定,若起始区块为电子设备的账本中最后一个区块,将起始区块作为分叉区块,如此,可提高确定的分叉区块的准确性,以便后续进行回滚和同步。
可选的,所述依据所述第一目标区块对所述电子设备的回滚后的账本进行同步,包括:
在所述回滚后的账本中最后一个区块之后添加所述第一目标区块。
即在本实施例中,通过将从区块链网络中分离前获取的第一目标区块添加到回滚后的账本中最后一个区块之后即可,可提高账本同步的效率。
可选的,所述依据所述第一目标区块对所述电子设备的回滚后的账本进行同步之后,还包括:
将所述电子设备加入到所述区块链网络中。
将其重新加入到区块链网络中,如此,可恢复电子设备与区块链网络中其他设备的连接,电子设备与区块链网络中其他设备的通信,如此,电子设备可与区块链网络中其他设备进行交互等。电子设备重新加入到区块链网络中之后,电子设备可与区块链网络中其他设备维护同样的区块链即账本,能够确保账本的一致性。
第二方面,本申请一个实施例提供一种区块链账本同步装置,应用区块链网络中的电子设备,所述装置包括:
处理模块,用于在检测到所述电子设备的账本与所述区块链网络中第一目标设备的账本发生分叉的情况下,获取所述第一目标设备的账本的第一区别区块中的第一目标区块,并将所述电子设备从所述区块链网络中分离,其中,所述第一区别区块为所述第一目标设备的账本中存在且所述电子设备的账本不存在的区块;
确定模块,用于确定所述电子设备的账本中的分叉区块;
回滚模块,用于将所述电子设备中分叉区块回滚;
同步模块,用于依据所述第一目标区块对所述电子设备的回滚后的账本进行同步,其中,所述电子设备的同步后的账本中包括所述回滚后的账本以及所述第一目标区块。
可选的,所述确定模块,包括:
起始区块确定模块,用于确定所述电子设备的账本中与所述第一目标设备的账本发生分叉的起始区块;
获取模块,用于在所述起始区块不为所述电子设备的账本中最后一个区块的情况下,获取所述电子设备的账本中在所述起始区块之后的第二目标区块,其中,所述分叉区块包括所述起始区块以及所述第二目标区块;
分叉确定模块,用于在所述起始区块为所述电子设备的账本中最后一个区块的情况下,确定所述分叉区块为所述起始区块。
可选的,所述依据所述第一目标区块对所述电子设备的回滚后的账本进行同步,包括:
在所述回滚后的账本中最后一个区块之后添加所述第一目标区块。
可选的,所述装置还包括:
加入模块,用于在所述同步模块执行依据所述第一目标区块对所述电子设备的回滚后的账本进行同步之后,将所述电子设备加入到所述区块链网络中。
第三方面,本申请一个实施例还提供一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请各实施例提供的方法。
第四方面,本申请一个实施例还提供一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本申请各实施例提供的方法。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本申请提供的一个实施例的区块链账本同步方法的流程示意图;
图2是本申请提供的一个实施例的区块链账本同步方法装置的结构图;
图3是用来实现本申请实施例的区块链账本同步方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
如图1所示,根据本申请的实施例,本申请提供一种区块链账本同步方法,应用区块链网络中的电子设备,方法包括:
步骤S101:在检测到电子设备的账本与区块链网络中第一目标设备的账本发生分叉的情况下,获取第一目标设备的账本的第一区别区块中的第一目标区块,并将电子设备从区块链网络中分离。
其中,第一区别区块为第一目标电子设备的账本中存在且电子设备的不存在的区块。
一个区块链网络中包括多个连接的电子设备,电子设备之间可进行交互,上述应用区块链账本同步方法的电子设备为该区块链网络中多个电子设备中的任一个,即在区块链网络中任一电子设备上可应用上述区块链账本同步方法,上述第一目标设备也为该区块链网络中多个电子设备中的设备,且与上述电子设备不同。
导致电子设备的账本状态不一致的原因可以有多个,例如,由于网络延时,账本增长缓慢导致不一致,以及因为账本发生分叉导致账本状态不一致,由于网络延时,账本增长缓慢导致不一致的情况,随着时间推移,账本会最终实现一致,然而一旦账本发生分叉,后续会沿着分叉的分支发展,无法最终实现一致。因此,在检测到电子设备的账本与区块链网络中第一目标设备的账本发生分叉的情况下,需要进行回滚以及同步。在检测到电子设备的账本与区块链网络中第一目标设备的账本发生分叉的情况下,首先获取第一目标设备的账本的第一区别区块中的第一目标区块,并将电子设备从区块链网络中分离。即电子设备需对自身的账本状态进行检测,若检测到电子设备的账本与区块链网络中第一目标设备的账本发生分叉,则需要进行账本同步,首先可获取第一目标设备的账本中的第一区别区块,即第一目标设备的账本中存在而电子设备的账本不存在的区块,然后可从第一区别区块中获取第一目标区块,用于后续的同步,并且将电子设备从区块链网络中分离,即切断电子设备与区块链网络中其他设备的连接,关闭电子设备与区块链网络中其他设备的通信,使电子设备与区块链网络中其他设备无法进行交互。目前,检测电子设备的账本是否分叉的方式有多种,在此不作限定。
举例说明,电子设备的账本发生分叉,电子设备的账本包括链接的A、B、X和Y区块,第一目标设备的账本包括链接的A、B、Z、W和P区块,第一目标电子设备的账本中存在而电子设备的账本中不存在的第一区别区块包括Z、W和P区块,从Z、W和P区块中获取第一目标区块即可。需要说明的是,若第一目标区块中区块数量为1,第一目标区块与第一区别区块相同,若第一目标区块中区块数量大于1,第一目标区块为第一区别区块中链接的至少一个区块,且第一目标区块中最前的区块与第一目标设备的账本中与第一区别区块相邻的区块链接。例如,对于第一区别区块包括Z、W和P区块的情况,第一目标区块可以为Z区块,可以包括Z和W区块,也可以包括Z、W和P区块,其中Z区块是与B区块链接的。
作为一个示例,上述第一目标设备为区块链网络中未发生分叉的设备中的任一个,未发生分叉的设备的账本状态一致,即可认为第一目标设备属于该区块链网络中的正常设备(正常节点),也就是说,电子设备发生分叉,会导致其本地的账本状态与区块链网络中的正常设备的账本状态不一致,电子设备需要进行同步,则首先获取第一目标设备的账本中第一区别区块的第一目标区块,并将电子设备从区块链网络中分离。作为一个示例,若区块链为联盟链,上述第一目标设备可以为区块链网络中的权威设备,即权威节点,联盟链由多个中心控制,由多个权威节点共同分布式记账,这些权威节点再根据共识机制协调工作,如此,电子设备在检测到分叉的情况下,可将电子设备的账本状态与这些权威节点中任一节点的账本状态进行比较,以获取权威节点的账本中存在但电子设备的账本不存在的第一区别区块,且获取第一区别区块中的第一目标区块,并将电子设备从区块链网络中分离。
步骤S102:确定电子设备的账本中的分叉区块。
由于账本是通过多个区块按照时间顺序链接形成,每个区块中记录有交易数据等,在检测到电子设备的账本与区块链网络中第一目标设备的账本发生分叉之后,电子设备需确定本地账本中的分叉区块,具体可基于第一目标设备的账本确定电子设备的账本中的分叉区块。例如,如上,电子设备的账本中的分叉区块包括X和Y区块。
步骤S103:将电子设备中分叉区块回滚。
确定分叉区块之后,电子设备即可将分叉区块回滚,可以理解,分叉区块中的交易数据全部回滚,即将电子设备的账本回滚到分叉区块中的起始区块的前一个区块,回滚后的账本中包括的最后一个区块为分叉区块中的起始区块的前一个区块,分叉区块全部截断。例如,如上,电子设备的账本回滚后包括A和B区块,分叉区块X和Y区块截断。
步骤S104:依据第一目标区块对电子设备的回滚后的账本进行同步。
即通过第一目标设备的账本中存在而电子设备的账本中不存在的第一目标区块对电子设备的回滚后的账本同步,其中,电子设备的同步后的账本中包括回滚后的账本以及第一目标区块,可以理解,在回滚后的账本基础上沿第一目标设备的第一目标区块发展。
本申请的实施例的区块链账本同步方法中,电子设备在检测到电子设备的账本与区块链网络中第一目标设备的账本发生分叉的情况下,获取第一目标设备的账本的第一区别区块中的第一目标区块,第一区别区块为第一目标设备的账本中存在且电子设备的账本不存在的区块,并从区块链网络中分离,然后将确定的电子设备中分叉区块回滚,再依据第一目标区块对电子设备的回滚后的账本进行同步,实现电子设备的账本同步。在电子设备的账本发生分叉情况下进行账本同步过程中,通过确定电子设备的账本中的分叉区块,将其回滚,然后将第一目标设备的账本中存在且电子设备的账本不存在的第一区别区块中的第一目标区块同步到电子设备的回滚后的账本中即可,无需将电子设备中的账本删除后重建,从而可减少账本同步耗时,提高账本同步效率。与此同时,可避免由于其他原因例如网络延时账本增长缓慢导致的状态不一致,而进行分叉区块确定、分叉区块回滚以及同步等过程,从而减少不必要的同步过程。只有在检测到电子设备的账本与区块链网络中第一目标设备的账本发生分叉的情下,获取第一目标设备的账本中第一区别区块的第一目标区块,并将电子设备从区块链网络中分离,然后确定电子设备的账本中的分叉区块,并将电子设备中分叉区块回滚。再依据第一目标区块对电子设备的回滚后的账本进行同步,减少账本修复成本。
在一个实施例中,依据第一目标区块对电子设备的回滚后的账本进行同步,包括:在回滚后的账本中最后一个区块之后添加第一目标区块。
即将第一目标区块添加到电子设备的回滚后的账本中,具体在电子设备的回滚后的账本的最后一个区块之后添加第一目标区块。若第一目标区块中区块数量为1,第一目标区块与回滚后的账本的最后一个区块链接,第一目标区块指向电子设备的回滚后的账本的最后一个区块。若第一区别区块中区块数量大于1,第一区别区块中排序在第一的区块与回滚后的账本的最后一个区块链接,且指向回滚后的账本的最后一个区块。例如,如上,对于第一分支区块包括Z、W和P区块以及回滚后的账本包括A和B区块的情况,若第一目标区块包括Z、W和P区块,在回滚后的账本的最后一个区块(即B区块)之后添加Z、W和P区块,电子设备的同步后的账本中包括A、B、Z、W和P区块,与第一目标设备的账本一致。若第一目标区块包括Z,在回滚后的账本的最后一个区块之后添加Z区块,电子设备的同步后的账本中包括A、B和Z区块,即使还没有第一目标设备中的W和P区块,但是同步后的账本中包括了A、B和Z区块,将其重新加入到网络中之后,若不发生分叉,账本会沿着正常分支进行发展,如此,随着时间的推移,电子设备的账本与第一目标电子设备的账本会最终一致。若重新加入网络后,即使又发生分叉,还是通过本实施例的方法进行同步,如此,可实现电子设备的账本同步。
即在本实施例中,通过将从区块链网络中分离前获取的第一目标区块添加到回滚后的账本中最后一个区块之后即可,可提高账本同步的效率。
在一个实施例中,依据第一目标区块对电子设备的回滚后的账本进行同步之后,还包括:将电子设备加入到区块链网络中。
基于第一目标区块进行账本同步后,需将其重新加入到区块链网络中,如此,可恢复电子设备与区块链网络中其他设备的连接,电子设备与区块链网络中其他设备的通信,如此,电子设备可与区块链网络中其他设备进行交互等。电子设备重新加入到区块链网络中之后,电子设备可与区块链网络中其他设备维护同样的区块链即账本,能够确保账本的一致性。
在一个实施例中,确定电子设备的账本中的分叉区块,包括:确定电子设备的账本中与第一目标设备的账本发生分叉的起始区块;在起始区块不为电子设备的账本中最后一个区块的情况下,获取电子设备的账本中在起始区块之后的第二目标区块,其中,分叉区块包括起始区块以及第二目标区块;或者,在起始区块为电子设备的账本中最后一个区块的情况下,确定分叉区块为起始区块。
在区块链网络发生分叉时,分叉的节点之间形成一个派系,继续沿着分叉的分支发展,如此,会将区块链网络的节点资源一分为二。在发生分叉后,发生分叉的节点的账本状态会与网络中其他正常节点的账本状态发生不一致,如此,在检测到电子设备的账本与区块链网络中第一目标设备的账本发生分叉的情况下,获取第一目标设备的账本中存在但电子设备的账本不存在的第一区别区块中的第一目标区块,并将电子设备从区块链网络中分离之后,可确定电子设备的账本中的分叉区块,即确定电子设备的账本中发生分叉的区块。那么首先确定电子设备的账本中与第一目标设备的账本发生分叉的起始区块,由于区块链中是多个区块链接的,在得到发生分叉的起始区块之后,若起始区块不为电子设备的账本中最后一个区块,表示电子设备的账本中起始区块之后还存在区块,如此,可获取起始区块之后(可以理解时间在起始区块的时间之后)的所有区块即第二目标区块,将起始区块和第二目标区块作为分叉区块。需要说明的是,目前确定电子设备的账本中与第一目标设备的账本发生分叉的起始区块的方式有多种,在此不作限定。另外,若起始区块为电子设备的账本中最后一个区块,表示电子设备的账本中起始区块之后不存在区块,在这种情况下,分叉区块即是起始区块。
举例说明,电子设备的账本包括链接的A、B、X和Y区块,第一目标设备的账本包括链接的A、B、Z、W和P区块,首先可确定电子设备的账本与第一目标设备的账本发生分叉的起始区块,即X区块,由于电子设备的账本中X区块之后还存在Y区块,获取电子设备的账本中的Y区块,确定的分叉区块包括X和Y区块。若电子设备的账本包括链接的A、B和X区块,首先可确定电子设备的账本与第一目标设备的账本发生分叉的起始区块,即X区块,由于电子设备的账本中X区块为电子设备的账本中最后一个区块,可确定分叉区块为起始区块X。
在本实施例中,在确定电子设备的账本中的分叉区块的过程中,首先确定发生分叉的起始区块,若起始区块不为电子设备的账本中最后一个区块,获取电子设备的账本中在起始区块之后的第二目标区块,将起始区块和第二目标区块作为分叉区块,以实现分叉区块的确定,若起始区块为电子设备的账本中最后一个区块,将起始区块作为分叉区块,如此,可提高确定的分叉区块的准确性,以便后续进行回滚和同步。
本申请上述实施例的区块链账本同步方法,当检测到电子设备本地账本与区块链网络中的绝大部分的节点(未发生分叉,且这些节点的账本状态一致)账本状态不一致时,不是因为账本增长缓慢,而是因为账本发生了分叉。电子设备会计算本地账本与区块链网络中的绝大部分的节点的分叉部分(即分叉区块),然后将分叉部分的交易数据全部回滚,分叉区块全部截断,然后继续沿着正常节点(区块链网络中的绝大部分的节点)的账本发展,从而保证有问题的节点(即发生分叉的节点)能够最终与正常节点的状态保持一致。如此,不需要删除并重建所有的账本,只需要找到发生分叉的起始区块,并获取起始区块之后的第二目标区块,即可实现分叉区块的确定,然后回滚并同步,可减少的账本修复成本,而且可提高账本同步的效率。
如图2所示,根据本申请的实施例,本申请还提供一种区块链账本同步装置,应用区块链网络中的电子设备,装置包括:
处理模块201,用于在检测到电子设备的账本与区块链网络中第一目标设备的账本发生分叉的情况下,获取第一目标设备的账本的第一区别区块中的第一目标区块,并将电子设备从区块链网络中分离,其中,第一区别区块为第一目标设备的账本中存在且电子设备的账本不存在的区块;
确定模块202,用于确定电子设备的账本中的分叉区块;
回滚模块203,用于将电子设备中分叉区块回滚;
同步模块204,用于依据第一目标区块对电子设备的回滚后的账本进行同步,其中,电子设备的同步后的账本中包括回滚后的账本以及第一目标区块。
可选的,确定模块,包括:
起始区块确定模块,用于确定电子设备的账本中与第一目标设备的账本发生分叉的起始区块;
获取模块,用于在所述起始区块不为所述电子设备的账本中最后一个区块的情况下,获取所述电子设备的账本中在所述起始区块之后的第二目标区块,其中,所述分叉区块包括所述起始区块以及所述第二目标区块;
分叉确定模块,用于在所述起始区块为所述电子设备的账本中最后一个区块的情况下,确定所述分叉区块为所述起始区块。
可选的,依据第一目标区块对电子设备的回滚后的账本进行同步,包括:
在回滚后的账本中最后一个区块之后添加第一目标区块。
可选的,装置还包括:
加入模块,用于在同步模块执行依据第一目标区块对电子设备的回滚后的账本进行同步之后,将电子设备加入到区块链网络中。
上述各实施例的区块链账本同步方法装置为实现上述各实施例的区块链账本同步方法的装置,技术特征对应,技术效果对应,在此不再赘述。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图3所示,是根据本申请实施例的区块链账本同步方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图3所示,该电子设备包括:一个或多个处理器301、存储器302,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUM的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图3中以一个处理器301为例。
存储器302即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的区块链账本同步方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的区块链账本同步方法。
存储器302作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的区块链账本同步方法对应的程序指令/模块(例如,附图2所示的处理模块201、确定模块202、回滚模块203、同步模块204)。处理器301通过运行存储在存储器302中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的区块链账本同步方法。
存储器302可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据键盘显示的电子设备的使用所创建的数据等。此外,存储器302可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器302可选包括相对于处理器301远程设置的存储器,这些远程存储器可以通过网络连接至键盘显示的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
区块链账本同步方法的电子设备还可以包括:输入装置303和输出装置304。处理器301、存储器302、输入装置303和输出装置304可以通过总线或者其他方式连接,图3中以通过总线连接为例。
输入装置303可接收输入的数字或字符信息,以及产生与键盘显示的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置304可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASMC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,在电子设备的账本发生分叉情况下进行账本同步过程中,通过确定电子设备的账本中的分叉区块,将其回滚,然后将第一目标设备的账本中存在且电子设备的账本不存在的第一区别区块中的第一目标区块同步到电子设备的回滚后的账本中即可,无需将电子设备中的账本删除后重建,从而可减少账本同步耗时,提高账本同步效率。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (10)
1.一种区块链账本同步方法,其特征在于,应用区块链网络中的电子设备,所述方法包括:
在检测到所述电子设备的账本与所述区块链网络中第一目标设备的账本发生分叉的情况下,获取所述第一目标设备的账本的第一区别区块中的第一目标区块,并将所述电子设备从所述区块链网络中分离,其中,所述第一区别区块为所述第一目标设备的账本中存在且所述电子设备的账本不存在的区块;
确定所述电子设备的账本中的分叉区块;
将所述电子设备中分叉区块回滚;
依据所述第一目标区块对所述电子设备的回滚后的账本进行同步,其中,所述回滚后的账本中的最后一个区块为所述分叉区块中的起始区块的前一个区块,所述回滚后的账本包括所述电子设备的账本中截断所述分叉区块后的账本,所述电子设备的同步后的账本中包括所述回滚后的账本以及所述第一目标区块。
2.根据权利要求1所述的方法,其特征在于,所述确定所述电子设备的账本中的分叉区块,包括:
确定所述电子设备的账本中与所述第一目标设备的账本发生分叉的起始区块;
在所述起始区块不为所述电子设备的账本中最后一个区块的情况下,获取所述电子设备的账本中在所述起始区块之后的第二目标区块,其中,所述分叉区块包括所述起始区块以及所述第二目标区块;
或者,在所述起始区块为所述电子设备的账本中最后一个区块的情况下,确定所述分叉区块为所述起始区块。
3.根据权利要求1所述的方法,其特征在于,所述依据所述第一目标区块对所述电子设备的回滚后的账本进行同步,包括:
在所述回滚后的账本中最后一个区块之后添加所述第一目标区块。
4.根据权利要求1所述的方法,其特征在于,所述依据所述第一目标区块对所述电子设备的回滚后的账本进行同步之后,还包括:
将所述电子设备加入到所述区块链网络中。
5.一种区块链账本同步装置,其特征在于,应用区块链网络中的电子设备,所述装置包括:
处理模块,用于在检测到所述电子设备的账本与所述区块链网络中第一目标设备的账本发生分叉的情况下,获取所述第一目标设备的账本的第一区别区块中的第一目标区块,并将所述电子设备从所述区块链网络中分离,其中,所述第一区别区块为所述第一目标设备的账本中存在且所述电子设备的账本不存在的区块;
确定模块,用于确定所述电子设备的账本中的分叉区块;
回滚模块,用于将所述电子设备中分叉区块回滚;
同步模块,用于依据所述第一目标区块对所述电子设备的回滚后的账本进行同步,其中,所述回滚后的账本中的最后一个区块为所述分叉区块中的起始区块的前一个区块,所述回滚后的账本包括所述电子设备的账本中截断所述分叉区块后的账本,所述电子设备的同步后的账本中包括所述回滚后的账本以及所述第一目标区块。
6.根据权利要求5所述的装置,其特征在于,所述确定模块,包括:
起始区块确定模块,用于确定所述电子设备的账本中与所述第一目标设备的账本发生分叉的起始区块;
获取模块,用于在所述起始区块不为所述电子设备的账本中最后一个区块的情况下,获取所述电子设备的账本中在所述起始区块之后的第二目标区块,其中,所述分叉区块包括所述起始区块以及所述第二目标区块;
分叉确定模块,用于在所述起始区块为所述电子设备的账本中最后一个区块的情况下,确定所述分叉区块为所述起始区块。
7.根据权利要求5所述的装置,其特征在于,所述依据所述第一目标区块对所述电子设备的回滚后的账本进行同步,包括:
在所述回滚后的账本中最后一个区块之后添加所述第一目标区块。
8.根据权利要求5所述的装置,其特征在于,所述装置还包括:
加入模块,用于在所述同步模块执行依据所述第一目标区块对所述电子设备的回滚后的账本进行同步之后,将所述电子设备加入到所述区块链网络中。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-4中任一所述的方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行如权利要求1-4中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010232071.XA CN111400106B (zh) | 2020-03-27 | 2020-03-27 | 一种区块链账本同步方法、装置以及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010232071.XA CN111400106B (zh) | 2020-03-27 | 2020-03-27 | 一种区块链账本同步方法、装置以及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111400106A CN111400106A (zh) | 2020-07-10 |
CN111400106B true CN111400106B (zh) | 2023-07-28 |
Family
ID=71436704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010232071.XA Active CN111400106B (zh) | 2020-03-27 | 2020-03-27 | 一种区块链账本同步方法、装置以及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111400106B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112532713B (zh) * | 2020-11-25 | 2023-05-16 | 深圳前海微众银行股份有限公司 | 一种区块链的抗分叉检测方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109446266A (zh) * | 2018-09-20 | 2019-03-08 | 成都捕风数据科技有限公司 | 一种适用于区块链网络改进事务效率与稳定性的方法 |
CN109542888A (zh) * | 2018-12-03 | 2019-03-29 | 百度在线网络技术(北京)有限公司 | 区块链的数据修改和同步方法、装置、设备及存储介质 |
CN109859047A (zh) * | 2019-01-31 | 2019-06-07 | 北京瑞卓喜投科技发展有限公司 | 一种区块链更新方法和区块链更新系统 |
CN110169036A (zh) * | 2016-09-28 | 2019-08-23 | 迈克菲公司 | 使用多个恢复源的装置驱动的自动恢复 |
CN110322352A (zh) * | 2019-07-09 | 2019-10-11 | 深圳市炳德区块链技术有限公司 | 一种基于区块链的账本建立及查询方法、电子设备 |
CN110889729A (zh) * | 2019-11-29 | 2020-03-17 | 腾讯科技(深圳)有限公司 | 一种基于区块链网络的数据验证方法和装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10417217B2 (en) * | 2016-08-05 | 2019-09-17 | Chicago Mercantile Exchange Inc. | Systems and methods for blockchain rule synchronization |
US10102265B1 (en) * | 2017-04-12 | 2018-10-16 | Vijay K. Madisetti | Method and system for tuning blockchain scalability for fast and low-cost payment and transaction processing |
CN107507006A (zh) * | 2017-08-11 | 2017-12-22 | 杭州秘猿科技有限公司 | 一种基于许可链的共识分叉处理方法 |
CN108924223B (zh) * | 2018-06-29 | 2020-11-06 | 北京金山安全软件有限公司 | 一种区块链的节点同步方法及装置 |
CN109542979B (zh) * | 2018-11-19 | 2023-08-22 | 北京市密网信息科技有限公司 | 一种区块链系统快速同步及简精数据存储的方式 |
CN109685502B (zh) * | 2018-12-06 | 2021-04-30 | 成都佰纳瑞信息技术有限公司 | 一种适用于区块链网络的加速共识方法 |
CN109714412B (zh) * | 2018-12-25 | 2021-08-10 | 深圳前海微众银行股份有限公司 | 区块同步方法、装置、设备及计算机可读存储介质 |
CN110471795B (zh) * | 2019-07-31 | 2020-10-02 | 阿里巴巴集团控股有限公司 | 区块链状态数据恢复方法及装置、电子设备 |
CN110365768B (zh) * | 2019-07-15 | 2021-07-06 | 腾讯科技(深圳)有限公司 | 分布式系统的数据同步方法、装置、介质、电子设备 |
-
2020
- 2020-03-27 CN CN202010232071.XA patent/CN111400106B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110169036A (zh) * | 2016-09-28 | 2019-08-23 | 迈克菲公司 | 使用多个恢复源的装置驱动的自动恢复 |
CN109446266A (zh) * | 2018-09-20 | 2019-03-08 | 成都捕风数据科技有限公司 | 一种适用于区块链网络改进事务效率与稳定性的方法 |
CN109542888A (zh) * | 2018-12-03 | 2019-03-29 | 百度在线网络技术(北京)有限公司 | 区块链的数据修改和同步方法、装置、设备及存储介质 |
CN109859047A (zh) * | 2019-01-31 | 2019-06-07 | 北京瑞卓喜投科技发展有限公司 | 一种区块链更新方法和区块链更新系统 |
CN110322352A (zh) * | 2019-07-09 | 2019-10-11 | 深圳市炳德区块链技术有限公司 | 一种基于区块链的账本建立及查询方法、电子设备 |
CN110889729A (zh) * | 2019-11-29 | 2020-03-17 | 腾讯科技(深圳)有限公司 | 一种基于区块链网络的数据验证方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111400106A (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111506401B (zh) | 自动驾驶仿真任务调度方法、装置、电子设备及存储介质 | |
CN111858506B (zh) | 测试数据的处理方法、装置、电子设备及存储介质 | |
CN102946410A (zh) | 网络同步方法和装置 | |
CN112527474B (zh) | 任务处理方法及装置、设备、可读介质、计算机程序产品 | |
CN102946411A (zh) | 网络同步系统 | |
CN111562969A (zh) | 一种区块链的智能合约实现方法、装置、设备和介质 | |
CN111400106B (zh) | 一种区块链账本同步方法、装置以及电子设备 | |
CN111339187A (zh) | 基于智能合约的数据处理方法、装置、设备和存储介质 | |
EP3859529A2 (en) | Backup management method and system, electronic device and medium | |
CN111782357B (zh) | 标签控制方法及装置、电子设备和可读存储介质 | |
CN112069137B (zh) | 生成信息的方法、装置、电子设备及计算机可读存储介质 | |
CN111581049A (zh) | 分布式系统运行状态监测方法、装置、设备及存储介质 | |
CN113747423B (zh) | 云手机状态同步方法、装置、设备、存储介质及程序产品 | |
CN111865683B (zh) | 虚拟网关版本灰度发布方法、装置、设备以及存储介质 | |
CN111475572B (zh) | 区块生成方法、装置、设备和介质 | |
CN113821232A (zh) | 模型更新方法和装置 | |
CN113132126B (zh) | 投票权重确定方法及相关设备 | |
CN113760469A (zh) | 分布式计算的方法和装置 | |
CN113379421A (zh) | 基于区块链的信息处理和区块链网络组成方法和装置 | |
CN112346512A (zh) | 时间同步方法和装置 | |
CN111694854B (zh) | 一种区域进出监控方法、装置、电子设备及存储介质 | |
CN112148563B (zh) | 信息生成方法、装置、设备以及存储介质 | |
CN117113942B (zh) | 一种模型同步方法、装置、电子设备以及存储介质 | |
CN114780021B (zh) | 副本修复方法、装置、电子设备及存储介质 | |
CN116610751A (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 |