CN112800129B - 区块状态更新方法、装置、系统和电子设备 - Google Patents

区块状态更新方法、装置、系统和电子设备 Download PDF

Info

Publication number
CN112800129B
CN112800129B CN202011625998.6A CN202011625998A CN112800129B CN 112800129 B CN112800129 B CN 112800129B CN 202011625998 A CN202011625998 A CN 202011625998A CN 112800129 B CN112800129 B CN 112800129B
Authority
CN
China
Prior art keywords
block
block height
height
nodes
highest
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
Application number
CN202011625998.6A
Other languages
English (en)
Other versions
CN112800129A (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.)
Hangzhou Qulian Technology Co Ltd
Original Assignee
Hangzhou Qulian 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 Hangzhou Qulian Technology Co Ltd filed Critical Hangzhou Qulian Technology Co Ltd
Priority to CN202011625998.6A priority Critical patent/CN112800129B/zh
Publication of CN112800129A publication Critical patent/CN112800129A/zh
Application granted granted Critical
Publication of CN112800129B publication Critical patent/CN112800129B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/23Updating
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种区块状态更新方法、装置、系统和电子设备,其中,方法应用于区块链网络中的落后节点,包括:落后节点获取自身区块高度;基于所述自身区块高度按照区块高度由低到高的顺序依次分批向所述其他节点获取区块,动态检测所述区块链网络中最高区块高度,直至获取到最高区块高度对应的区块,所述最高区块高度包括区块高度最高的其他节点和/或检查点的区块高度。实现从自身区块高度依次向最高区块高度的顺序获取区块,在区块链网络中其他节点区块高度增加的过程中可以从低到高更新至最高区块高度对应的区块,直至达到最高区块高度,可以使得区块链网络中的其他节点可以继续正常工作,实现落后节点更新不影响其他节点工作的效果。

Description

区块状态更新方法、装置、系统和电子设备
技术领域
本申请涉及区块链技术领域,尤其涉及一种区块状态更新方法、装置、系统和电子设备。
背景技术
区块链网络是一个分布式的系统架构,在区块链的网络中,经常出现节点故障的问题,由于区块链网络是一个分布式的网络,允许部分节点故障,故障节点无法与区块链网络进行区块同步,导致节点发生区块会落后于整个区块链网络的情况。
相关技术中,通常采用如下落后节点恢复方法:落后节点会向其它节点询问当前区块链的最高区块高度,待落后节点收集到其它节点发送给它的最高区块高度,它会向其它节点发送同步缺失区块的请求,待区块收集完成节点即可正常工作。然而,相关技术中,在落后节点同步的过程中,需要停止区块链系统的正常工作,待完成同步之后,再启动区块链正常工作,否则会导致区块最高高度会不断增加,无法达到状态一致的情况。严重降低了区块工作效率。
发明内容
本申请提供了一种区块状态更新方法、装置、系统和电子设备,以解决现有技术中存在的在进行落后节点更新时区块系统无法正常工作的技术问题。
第一方面,本申请提供了一种区块状态更新方法,应用于区块链网络中的落后节点,所述方法包括:落后节点获取自身区块高度;基于所述自身区块高度按照区块高度由低到高的顺序依次分批向所述其他节点获取区块,动态检测所述区块链网络中最高区块高度,直至获取到最高区块高度对应的区块,所述最高区块高度包括区块高度最高的其他节点和/或检查点的区块高度。
可选地,所述基于所述自身区块高度按照区块高度由低到高的顺序依次分批向所述其他节点获取区块包括:分批校验所述区块;校验完成每一批次的区块,执行当前批次对应的区块。
可选地,所述分批校验所述区块包括:依次校验区块头和区块体;在当前批次的区块头和区块体通过校验时,确定完成当前批次的区块校验。
可选地,所述依次校验区块头和区块体包括:基于所述自身区块高度按照区块高度由低到高的顺序依次分批向所述其他节点获取区块头;每获取一个批次的区块头,通过哈希算法依次校验当前批次的区块头的元数据;在当前批次的区块头检验通过时,基于所述区块头拉取对应的区块体,通过默克尔证明对区块体进行验证,直至完成当前批次的区块体验证。
可选地,动态检测所述区块链网络中最高区块高度包括:持续向所述区块链网络中的节点广播区块更新请求;接收第一响应信息,所述第一响应信息为所述其他节点基于所述区块更新请求发送的当前节点和/或所述当前节点对应的检查点的最新区块信息;在所述第一响应信息中筛选出所述区块链网络中共识的最高区块高度。
可选地,所述在所述第一响应信息中筛选出所述区块链网络中共识的最高区块高度包括:对所述第一响应信息进行计数;在所述第一响应信息的数量达到第一预设数量时,在所述第一响应信息中筛选出所述区块链网络中共识的最高区块高度。
可选地,区块状态更新方法还包括:向所述其他节点发送请求信息,所述请求信息用于获取所述其他节点中记录的主节点信息;接收第二响应信息,所述第二响应信息为所述其他节点基于所述请求信息发送的当前节点记录的主节点信息;在所述第二响应信息达到第二预设数量时,记录所述主节点信息。
可选地,在获取到最高区块高度对应的区块之后包括:向最高区块高度对应的区块所属的其他节点和/或检查点发送共识数据获取请求;接收第三响应信息,所述第三响应信息为最高区块高度对应的区块所属的其他节点和/或检查点发送的共识数据;基于所述第三响应信息完成共识。
第二方面,本申请提供了一种区块状态更新装置,包括:第一获取模块,用于落后节点获取自身区块高度;第二获取模块,用于基于所述自身区块高度按照区块高度由低到高的顺序依次分批向所述其他节点获取区块,动态检测所述区块链网络中最高区块高度,直至获取到最高区块高度对应的区块,所述最高区块高度包括区块高度最高的其他节点和/或检查点的区块高度。
第三方面,本申请提供了一种区块状态更新系统,包括落后节点和区块链网络中的其他节点;所述落后节点用于执行权利要求1-8任一项所述的区块状态更新方法;所述其他节点用于响应所述落后节点,基于所述落后节点的区块高度按照区块高度由低到高的顺序依次分批向所述落后节点发送区块。
第四方面,本申请提供了一种电子设备,包括:处理器、通信组件、存储器和通信总线,其中,处理器、通信组件和存储器通过通信总线完成相互间的通信;所述存储器,用于存储计算机程序;所述处理器,用于执行所述存储器中所存储的程序,实现第一方面所述的区块状态更新方法。
第五方面,本申请提供了一种计算机可读存储介质,存储有计算机程序,实现第一方面所述区块状态更新方法。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请实施例提供的该方法,在落后节点获取到自身区块高度后,基于所述自身区块高度按照区块高度由低到高的顺序依次分批向所述其他节点获取区块,并且,实时动态检测区块链网络中最高区块高度,直至获取到最高区块高度对应的区块,实现从自身区块高度依次向最高区块高度的顺序获取区块,在区块链网络中其他节点区块高度增加的过程中可以从低到高“追赶”最高区块高度对应的区块,直至达到最高区块高度,可以使得区块链网络中的其他节点可以继续正常工作,实现落后节点更新不影响其他节点工作的效果。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中基于区块链的查询系统结构示意图;
图2为本申请实施例中区块链结构示意图;
图3为本申请实施例中区块链网络功能结构示意图;
图4为本申请实施例中区域块状态更新方法流程示意图;
图5为本申请实施例中另一区域块状态更新方法具体流程示意图;
图6为本申请实施例中区域块状态更新装置结构示意图;
图7为本申请实施例中电子设备结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一个具体实施例”,其描述了所有可能实施例的子集,但是可以理解,“一个具体实施例”,其描述了所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
除非另有定义,本文所使用的所有的技术的科学技术与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
在对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
(1)交易(Transaction),等同于计算机术语“事务”,交易包括了需要提交到区块链网络执行的操作,并非单指商业语境中的交易,鉴于在区块链技术中约定俗称地使用了“交易”这一术语,本发明实施例遵循了这一习惯。
例如,部署(Deploy)交易用于向区块链网络中的结点安装指定的智能合约并准备好被调用;调用(Invoke)交易用于通过调用智能合约在区块链中追加交易的记录,并对区块链的状态数据库进行操作,包括更新操作(包括增加、删除和修改状态数据库中的键值对)和查询操作(即查询状态数据库中的键值对)。
(2)区块链(Blockchain),是由区块(Block)形成的加密的、链式的交易的存储结构。
(3)区块链网络(Blockchain Network),通过共识的方式将新区块纳入区块链的一系列的节点的集合。
(4)账本(Ledger),是区块链(也称为账本数据)和与区块链同步的状态数据库的统称。其中,区块链是以文件系统中的文件的形式来记录交易;状态数据库是以不同类型的键(Key)值(Value)对的形式来记录区块链中的交易,用于支持区块链中交易的快速查询。
(5)智能合约(Smart Contracts),也称为链码(Chaincode)或应用代码,部署在区块链网络的节点中的程序,节点执行接收的交易中所调用的智能合约,来对状态数据库的键值对数据进行更新或查询操作。
(6)共识(Consensus),是区块链网络中的一个过程,用于在涉及的多个节点之间对区块中的交易达成一致,达成一致的区块将被追加到区块链的尾部,实现共识的机制包括工作量证明(PoW,Proof of Work)、权益证明(PoS,Proof of Stake)、股权授权证明(DPoS,Delegatd Proof-of-Stake)、消逝时间量证明(PoET,Proof of Elapsed Time)等。
下面说明本发明实施例,提供的区块链网络的示例性应用,如图1所示,图1是本发明实施例提供的区块状态更新系统示意图,包括区块链网络101、共识节点102,认证中心103、业务主体104、客户端节点104-1,业务主体105和客户端节点105-1,下面分别进行说明:
区块链网络101的类型是灵活多样的,例如可以为公有链、私有链或联盟链中的任意一种。以公有链为例,任何业务主体的电子设备例如用户终端和服务器,都可以在不需要授权的情况下接入区块链网络101;以联盟链为例,业务主体在获得授权后其下辖的电子设备(例如终端/服务器)可以接入区块链网络101,此时,成为区块链网络101中的客户端节点。
在一些实施例中,客户端节点104-1可以只作为区块链网络101的观察者,即提供支持业务主体发起交易(例如,用于上链存储数据或查询链上数据)功能,对于区块链网络101的共识节点102的功能,例如排序功能、共识服务和账本功能等,客户端节点可以缺省或者有选择性(例如,取决于业务主体的具体业务需求)地实施。从而,可以将业务主体的数据和业务处理逻辑最大程度迁移到区块链网络101中,通过区块链网络101实现数据和业务处理过程的可信和可追溯。
区块链网络101中的共识节点接收来自不同业务主体,例如图1中示出的业务主体104的客户端节点104-1提交的交易,执行交易以更新账本或者查询账本,执行交易的各种中间结果或最终结果可以返回业务主体104的客户端节点104-1中显示。
例如,客户端节点104-1可以订阅区块链网络101中感兴趣的事件,例如区块链网络101中特定的组织/通道中发生的交易,由共识节点102推送相应的交易通知到客户端节点104-1,从而触发客户端节点104-1中相应的业务逻辑。
作为区块链的示例,如图2所示,图2是本发明实施例提供的区块链网络101中区块链的结构示意图,每个区块的头部既可以包括区块中所有交易的哈希值,同时也包含前一个区块中所有交易的哈希值,新产生的交易的记录被填充到区块并经过区块链网络中节点的共识后,会被追加到区块链的尾部从而形成链式的增长,区块之间基于哈希值的链式结构保证了区块中交易的防篡改和防伪造。
下面说明本发明实施例提供的区块链网络的示例性的功能架构,如图3所示,图3是本发明实施例提供的区块链网络101的功能架构示意图,包括应用层301、共识层302、网络层303、数据层304和资源层305,下面分别进行说明:
应用层301封装了区块链网络能够实现的各种业务,包括交易的溯源、存证和验证等。
共识层302封装了区块链网络101中的节点102对区块达成一致性的机制(即共识机制)、交易管理和账本管理的功能。共识机制包括POS、POW和DPOS等共识算法,支持共识算法的可插拔。交易管理用于验证节点101接收到的交易中携带的数字签名,验证业务主体104的身份信息,并根据身份信息判断确认其是否具有权限进行交易(从业务主体身份管理读取相关信息);对于获得接入区块链网络101的授权的业务主体而言,均拥有认证中心颁发的数字证书,业务主体利用自己的数字证书中的私钥对提交的交易进行签名,从而声明自己的合法身份。账本管理用于维护区块链和状态数据库。对于取得共识的区块,追加到区块链的尾部;执行取得共识的区块中的交易,当交易包括更新操作时更新状态数据库中的键值对,当交易包括查询操作时查询状态数据库中的键值对并向业务主体的客户端节点返回查询结果。支持对状态数据库的多种维度的查询操作,包括:根据区块序列号(例如交易的哈希值)查询区块;根据区块哈希值查询区块;根据交易序列号查询区块;根据交易序列号查询交易;根据业务主体的账号(序列号)查询业务主体的账号数据;根据通道名称查询通道中的区块链。
网络层303封装了点对点(P2P,PointtoPoint)网络协议、数据传播机制和数据验证机制、接入认证机制和业务主体身份管理的功能。
其中,P2P网络协议实现区块链网络101中节点102之间的通信,数据传播机制保证了交易在区块链网络101中的传播,数据验证机制用于基于加密学方法(例如数字证书、数字签名、公/私钥对)实现节点102之间传输数据的可靠性;接入认证机制用于根据实际的业务场景对加入区块链网络101的业务主体的身份进行认证,并在认证通过时赋予业务主体接入区块链网络101的权限;业务主体104身份管理用于存储允许接入区块链网络101的业务主体104的身份、以及权限(例如能够发起的交易的类型)。
数据层304封装了实现账本的各种数据结构,包括以文件系统中的文件实现的区块链,键值型的状态数据库和存在性证明(例如区块中交易的哈希树)。
资源层305封装了实现区块链网路101中的各个节点102的计算资源、存储资源和通信资源。
基于上述架构,本发明实施例提出了以下的实现方式。
本申请实施例提供了一种区块状态更新方法,该方法适用于区块链网络中的落后节点,该落后节点由于故障、网络问题或新加入区块链网络导致区块高度落后于区块链网络中的其他节点的区块高度。
下面,为了更清楚的说明本申请,首先将智能合约的工作原理进行简单介绍:
构建智能合约:智能合约由区块链内的多个用户共同参与制定,可用于任何用户之间的任何交易。协议当中明确规定了交易双方的权利和义务,开发人员将这些权利和义务以电子化的方式进行编程,代码中包含会触发合约自动执行的条件。
存储智能合约:一旦编码完成,这份智能合约上传至区块链网络上,即全网的每个节点都可以收到这份智能合约。
执行智能合约:智能合约会定期检查是否存在相关事件和触发条件,以满足条件的事件推送到待验证的队列中,区块链上的验证节点先对事件进行签名验证,以确保其有效性,等大多数验证节点对该事件达成共识,智能合约将成功执行,并通知给用户。
如图4所示,本申请实施例中的区块状态更新方法可以包括如下步骤:
S401,落后节点获取自身区块高度;
S402,基于所述自身区块高度按照区块高度由低到高的顺序依次分批向所述其他节点获取区块,动态检测所述区块链网络中最高区块高度,直至获取到最高区块高度对应的区块,所述最高区块高度包括区块高度最高的其他节点和/或检查点的区块高度。
通过步骤S401和步骤S402,在落后节点获取到自身区块高度后,基于所述自身区块高度按照区块高度由低到高的顺序依次分批向所述其他节点获取区块,并且,实时动态检测区块链网络中最高区块高度,直至获取到最高区块高度对应的区块,实现从自身区块高度依次向最高区块高度的顺序获取区块,在区块链网络中其他节点区块高度增加的过程中可以从低到高“追赶”最高区块高度对应的区块,直至达到最高区块高度,可以使得区块链网络中的其他节点可以继续正常工作,实现落后节点更新不影响其他节点工作的效果。
针对步骤S401中的技术方案,区块链节点在运行时,会定时向其它节点广播自身的最高区块高度。节点收到其它节点广播过来的区块高度后,会和自身区块高度进行比较,若自身区块高度落后于最高区块高度,则进行区块状态更新。
针对步骤S402中的技术方案,在本实施例中,在得到自身区块高度之后,可以以自身区块高度为基础,按照预设的区块高度范围分批次的向其他节点发送更新请求,请求当前区块高度范围内的区块高度。示例性的,可以先基于第一区块高度范围向其他节点发送更新请求,获取第一区块高度范围对应的区块,之后,基于第二区块高度范围向其他节点发送更新请求,获取第二区块高度范围对应的区块高度,依次类推,其中,第一区块高度范围中的最小区块高度为落后节点自身区块高度,在分批获取的过程中,由于区块链网路处于正常工作状态,其他节点的正常工作,区块高度不断增加,因此,需要实时动态的检测最高区块高度,在高度范围对应的区块高度与当前检测到的最高区块高度对应时,可以确定落后节点更新完成。在本实施例中,最高区块高度可以包括区块高度最高的其他节点和/或检查点的区块高度。在本实施例中,可以以检查点的区块高度作为最高区块高度。下面将以具体的实例进行说明:
当前区块链有四个节点,节点4为落后节点为例进行说明,当前区块链网络最高区块高度为135,最高区块高度的检查点的区块高度是130,检查点范围是10个区块,即预设的区块高度范围,节点4的区块高度为100,节点4获取110、120、130的检查点信息;节点4获取向其它节点(节点1、节点2和节点3)分批获取101-110的区块,111-120的区块,121-130的区块;在获取区块的过程中,区块链网络最高区块高度不断增加,此时继续按照检查点范围向其他节点继续分配获取,直至获取到的区块高度达到区块链网络最高区块高度或达到最高区块高度的检查点的区块高度。
落后节点在更新时会需要较大一段延迟时间才能重新参与工作,在这个过程中系统的健壮性降低,不稳定可能性增大,作为示例性的实施例,可以分批校验所述区块;校验完成每一批次的区块,执行当前批次对应的区块。示例性的,每得到一批区块,对当前批次区块进行验证,在当前批次验证通过之后,可以使落后节点执行当前批次的对应的区块,以使落后节点在更新的过程中,更新的区块实时进入工作状态,减小落后区块的延时,提高系统的健壮性和稳定性。
作为示例性的实施例,对于区块的校验,可以依次校验区块头和区块体;在当前批次的区块头和区块体通过校验时,确定完成当前批次的区块校验。具体的,基于所述自身区块高度按照区块高度由低到高的顺序依次分批向所述其他节点获取区块头;每获取一个批次的区块头,通过哈希算法依次校验当前批次的区块头的元数据;在当前批次的区块头检验通过时,基于所述区块头拉取对应的区块体,通过默克尔证明对区块体进行验证,直至完成当前批次的区块体验证。作为示例性的实施例,基于所述自身区块高度按照区块高度由低到高的顺序依次分批向所述其他节点获取区块头;通过哈希算法校验区块头的元数据,元数据包括区块哈希,区块父哈希;如果发现区块头检验不通过,则向其它节点(可以不包括之前发送当前批次区块头的节点)获取。校验完成每一批次的区块头,即可拉取对应的区块体,区块体内交易和回执的验证通过默克尔证明来进行验证。如果发现区块体检验不通过,则向其它节点(可以不包括之前发送当前批次区块体的节点)获取。校验完成每一批次的区块体,即可执行对应的区块。
作为示例性的实施例,如图5所示,动态检测所述区块链网络中最高区块高度可以包括如下步骤:
S501,持续向所述区块链网络中的节点广播区块更新请求;
S502,接收第一响应信息,所述第一响应信息为所述其他节点基于所述区块更新请求发送的当前节点和/或所述当前节点对应的检查点的最新区块信息;
S503,在所述第一响应信息中筛选出所述区块链网络中共识的最高区块高度。
作为示例性的实施例,持续向所述区块链网络中的节点广播区块更新请求,通知其他节点本节点需要进行自动恢复,请求其他节点的检查点信息和最新区块信息,其他节点根据更新请求将自身的检查点信息以及最新区块信息返回落后节点。在本实施例中,在得到第一响应信息之后,在所述第一响应信息中筛选出所述区块链网络中共识的最高区块高度。具体的,对所述第一响应信息进行计数;在所述第一响应信息的数量达到第一预设数量时,在所述第一响应信息中筛选出所述区块链网络中共识的最高区块高度。作为示例性的实施例,在接收到的第一响应信息达到2f+1个之后,其中,f为当前区块链网络能容忍最大的拜占庭节点数,可以确认落后节点接收到的消息达到了可以容忍的拜占庭,此时可以在第一响应信息中筛选出所述区块链网络中共识的最高区块高度。
作为示例性的实施例,在进行更新之前,落后节点需要确定区块链网络中的主节点信息,具体的,可以向所述其他节点发送请求信息,所述请求信息用于获取所述其他节点中记录的主节点信息;接收第二响应信息,所述第二响应信息为所述其他节点基于所述请求信息发送的当前节点记录的主节点信息;在所述第二响应信息达到第二预设数量时,记录所述主节点信息。示例性的,落后节点首先获取当前区块链网络中其他节点的记录的主节点信息;其他节点向落后节点发送当前的节点记录的主节点信息;落后节点收到2f+1个消息后,其中,f为当前区块链网络能容忍最大的拜占庭节点数,在落后节点中记录区块链网络中的主节点信息,其中,主节点信息可以包括主节点的最新区块状态,检查点区块装填以及主节点的标识信息等。
作为示例性的实施例,在落后节点获取到最高区块高度对应的区块向最高区块高度对应的区块所属的其他节点和/或检查点发送共识数据获取请求;接收第三响应信息,所述第三响应信息为最高区块高度对应的区块所属的其他节点和/或检查点发送的共识数据;基于所述第三响应信息完成共识。最终同步至全网最新的状态。
本申请实施例还提供了一种区块状态更新装置,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图6所示,该装置主要包括:
第一获取模块601,用于落后节点获取自身区块高度;
第二获取模块602,用于基于所述自身区块高度按照区块高度由低到高的顺序依次分批向所述其他节点获取区块,动态检测所述区块链网络中最高区块高度,直至获取到最高区块高度对应的区块,所述最高区块高度包括区块高度最高的其他节点和/或检查点的区块高度。
基于同一构思,本申请实施例中还提供了一种区块状态更新系统,其特征在于,包括落后节点和区块链网络中的其他节点;
所述落后节点用于执行上述实施例中描述的区块状态更新方法;
所述其他节点用于响应所述落后节点,基于所述落后节点的区块高度按照区块高度由低到高的顺序依次分批向所述落后节点发送区块。
作为示例性的实施例,其他节点可以包括主节点和其他从节点,其他节点可以基于落后节点的请求向落后节点发送与请求对应的响应信息,例如,分配发送区块,发送主节点信息,发送当前节点中的最新区块状态和检查点的最新区块信息以及共识数据。
基于同一构思,本申请实施例中还提供了一种电子设备,如图7所示,该电子设备主要包括:处理器701、通信组件702、存储器703和通信总线704,其中,处理器701、通信组件702和存储器703通过通信总线704完成相互间的通信。其中,存储器703中存储有可被至处理器701执行的程序,处理器701执行存储器703中存储的程序,实现如下步骤:
S1.落后节点获取自身区块高度;
S2.基于所述自身区块高度按照区块高度由低到高的顺序依次分批向所述其他节点获取区块,动态检测所述区块链网络中最高区块高度,直至获取到最高区块高度对应的区块,所述最高区块高度包括区块高度最高的其他节点和/或检查点的区块高度。
上述电子设备中提到的通信总线704可以是外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。该通信总线704可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信组件702用于上述电子设备与其他设备之间的通信。
存储器703可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器701的存储装置。
上述的处理器701可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等,还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述实施例中所描述区块状态更新方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机可以时通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、微波等)方式向另外一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如DVD)或者半导体介质(例如固态硬盘)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种区块状态更新方法,其特征在于,应用于区块链网络中的落后节点,所述方法包括:
落后节点获取自身区块高度;
基于所述自身区块高度按照区块高度由低到高的顺序依次分批向其他节点获取区块,并动态检测所述区块链网络中最高区块高度,直至获取到最高区块高度对应的区块,所述最高区块高度包括区块高度最高的其他节点和/或检查点的区块高度;
所述基于所述自身区块高度按照区块高度由低到高的顺序依次分批向所述其他节点获取区块包括:
分批校验所述区块;
校验完成每一批次的区块,执行当前批次对应的区块;
所述分批校验所述区块包括:
依次校验区块头和区块体;
在当前批次的区块头和区块体通过校验时,确定完成当前批次的区块校验;
所述基于所述自身区块高度按照区块高度由低到高的顺序依次分批向其他节点获取区块,并动态检测所述区块链网络中最高区块高度,直至获取到最高区块高度对应的区块包括:
基于第一区块高度范围向其他节点发送更新请求,获取第一区块高度范围对应的区块,基于第二区块高度范围向其他节点发送更新请求,获取第二区块高度范围对应的区块高度,依次类推,其中,第一区块高度范围中的最小区块高度为落后节点自身区块高度,在分批获取的过程中,实时动态的检测所述区块链网络中最高区块高度,在高度范围对应的区块高度与当前检测到的最高区块高度对应时,确定落后节点更新完成。
2.如权利要求1所述的区块状态更新方法,其特征在于,所述依次校验区块头和区块体包括:
基于所述自身区块高度按照区块高度由低到高的顺序依次分批向所述其他节点获取区块头;
每获取一个批次的区块头,通过哈希算法依次校验当前批次的区块头的元数据;
在当前批次的区块头检验通过时,基于所述区块头拉取对应的区块体,
通过默克尔证明对区块体进行校验,直至完成当前批次的区块体校验。
3.如权利要求1所述区块状态更新方法,其特征在于,所述动态检测所述区块链网络中最高区块高度包括:
持续向所述区块链网络中的节点广播区块更新请求;
接收第一响应信息,所述第一响应信息为所述其他节点基于所述区块更新请求发送的当前节点和/或所述当前节点对应的检查点的最新区块信息;
在所述第一响应信息中筛选出所述区块链网络中共识的最高区块高度。
4.如权利要求3所述的区块状态更新方法,其特征在于,所述在所述第一响应信息中筛选出所述区块链网络中共识的最高区块高度包括:
对所述第一响应信息进行计数;
在所述第一响应信息的数量达到第一预设数量时,在所述第一响应信息中筛选出所述区块链网络中共识的最高区块高度。
5.如权利要求1所述的区块状态更新方法,其特征在于,还包括:
向所述其他节点发送请求信息,所述请求信息用于获取所述其他节点中记录的主节点信息;
接收第二响应信息,所述第二响应信息为所述其他节点基于所述请求信息发送的当前节点记录的主节点信息;
在所述第二响应信息达到第二预设数量时,记录所述主节点信息。
6.如权利要求1所述的区块状态更新方法,其特征在于,在获取到最高区块高度对应的区块之后包括:
向最高区块高度对应的区块所属的其他节点和/或检查点发送共识数据获取请求;
接收第三响应信息,所述第三响应信息为最高区块高度对应的区块所属的其他节点和/或检查点发送的共识数据;
基于所述第三响应信息完成共识。
7.一种区块状态更新装置,其特征在于,包括:
第一获取模块,用于落后节点获取自身区块高度;
第二获取模块,用于基于所述自身区块高度按照区块高度由低到高的顺序依次分批向其他节点获取区块,并动态检测所述区块链网络中最高区块高度,直至获取到最高区块高度对应的区块,所述最高区块高度包括区块高度最高的其他节点和/或检查点的区块高度;
其中,所述基于所述自身区块高度按照区块高度由低到高的顺序依次分批向所述其他节点获取区块包括:分批校验所述区块;校验完成每一批次的区块,执行当前批次对应的区块;
所述分批校验所述区块包括:依次校验区块头和区块体;在当前批次的区块头和区块体通过校验时,确定完成当前批次的区块校验;
所述基于所述自身区块高度按照区块高度由低到高的顺序依次分批向其他节点获取区块,并动态检测所述区块链网络中最高区块高度,直至获取到最高区块高度对应的区块包括:
基于第一区块高度范围向其他节点发送更新请求,获取第一区块高度范围对应的区块,基于第二区块高度范围向其他节点发送更新请求,获取第二区块高度范围对应的区块高度,依次类推,其中,第一区块高度范围中的最小区块高度为落后节点自身区块高度,在分批获取的过程中,实时动态的检测所述区块链网络中最高区块高度,在高度范围对应的区块高度与当前检测到的最高区块高度对应时,确定落后节点更新完成。
8.一种区块状态更新系统,其特征在于,包括落后节点和区块链网络中的其他节点;
所述落后节点用于执行权利要求1-6任一项所述的区块状态更新方法;
所述其他节点用于响应所述落后节点,基于所述落后节点的区块高度按照区块高度由低到高的顺序依次分批向所述落后节点发送区块。
9.一种电子设备,其特征在于,包括:处理器、通信组件、存储器和通信总线,其中,处理器、通信组件和存储器通过通信总线完成相互间的通信;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中所存储的程序,实现权利要求1-6任一项所述区块状态更新方法。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-6任一项所述区块状态更新方法。
CN202011625998.6A 2020-12-31 2020-12-31 区块状态更新方法、装置、系统和电子设备 Active CN112800129B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011625998.6A CN112800129B (zh) 2020-12-31 2020-12-31 区块状态更新方法、装置、系统和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011625998.6A CN112800129B (zh) 2020-12-31 2020-12-31 区块状态更新方法、装置、系统和电子设备

Publications (2)

Publication Number Publication Date
CN112800129A CN112800129A (zh) 2021-05-14
CN112800129B true CN112800129B (zh) 2024-04-23

Family

ID=75807684

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011625998.6A Active CN112800129B (zh) 2020-12-31 2020-12-31 区块状态更新方法、装置、系统和电子设备

Country Status (1)

Country Link
CN (1) CN112800129B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114338676B (zh) * 2021-12-31 2024-05-28 支付宝(杭州)信息技术有限公司 一种区块同步方法、装置、电子设备和存储介质
CN114363359A (zh) * 2021-12-31 2022-04-15 支付宝(杭州)信息技术有限公司 一种区块同步方法、装置、电子设备和存储介质
CN114338714B (zh) * 2021-12-31 2024-04-02 支付宝(杭州)信息技术有限公司 一种区块同步方法、装置、电子设备和存储介质
CN114422527B (zh) * 2021-12-31 2024-05-28 支付宝(杭州)信息技术有限公司 一种区块同步方法、装置、电子设备和存储介质
CN115473908B (zh) * 2022-11-03 2023-04-28 山东区块链研究院 一种区块链节点故障恢复方法及区块链系统
CN115495531B (zh) * 2022-11-17 2023-03-24 山东区块链研究院 基于检查点的区块链数据同步方法及系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107423152A (zh) * 2017-04-24 2017-12-01 杭州趣链科技有限公司 一种区块链共识节点自动恢复方法
CN108734453A (zh) * 2018-05-21 2018-11-02 腾讯科技(深圳)有限公司 区块链数据处理方法、装置、计算机设备和存储介质
CN109714412A (zh) * 2018-12-25 2019-05-03 深圳前海微众银行股份有限公司 区块同步方法、装置、设备及计算机可读存储介质
CN110569305A (zh) * 2019-08-27 2019-12-13 网易(杭州)网络有限公司 区块同步方法、装置、介质和计算设备
CN111241593A (zh) * 2020-01-02 2020-06-05 支付宝(杭州)信息技术有限公司 用于区块链节点的数据同步方法及装置
CN111241069A (zh) * 2020-01-19 2020-06-05 上海墨珩网络科技有限公司 一种基于区块链的数据扁平化方法及系统
CN111475575A (zh) * 2020-04-09 2020-07-31 腾讯科技(深圳)有限公司 基于区块链的数据同步方法、装置及计算机可读存储介质
CN111698244A (zh) * 2020-06-08 2020-09-22 杭州溪塔科技有限公司 一种新增节点快速参与共识的方法、装置及电子设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200139034A (ko) * 2019-06-03 2020-12-11 삼성에스디에스 주식회사 블록체인 기반 컴퓨팅 시스템 및 그 시스템의 트랜잭션 관리 방법

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107423152A (zh) * 2017-04-24 2017-12-01 杭州趣链科技有限公司 一种区块链共识节点自动恢复方法
CN108734453A (zh) * 2018-05-21 2018-11-02 腾讯科技(深圳)有限公司 区块链数据处理方法、装置、计算机设备和存储介质
CN109714412A (zh) * 2018-12-25 2019-05-03 深圳前海微众银行股份有限公司 区块同步方法、装置、设备及计算机可读存储介质
CN110569305A (zh) * 2019-08-27 2019-12-13 网易(杭州)网络有限公司 区块同步方法、装置、介质和计算设备
CN111241593A (zh) * 2020-01-02 2020-06-05 支付宝(杭州)信息技术有限公司 用于区块链节点的数据同步方法及装置
CN111241069A (zh) * 2020-01-19 2020-06-05 上海墨珩网络科技有限公司 一种基于区块链的数据扁平化方法及系统
CN111475575A (zh) * 2020-04-09 2020-07-31 腾讯科技(深圳)有限公司 基于区块链的数据同步方法、装置及计算机可读存储介质
CN111698244A (zh) * 2020-06-08 2020-09-22 杭州溪塔科技有限公司 一种新增节点快速参与共识的方法、装置及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于区块链的航空监视信息可信存储系统的研究与实现;丁斯也;《中国优秀硕士学位论文全文数据库工程科技Ⅱ辑》;20190815(第08期);第C031-217页 *

Also Published As

Publication number Publication date
CN112800129A (zh) 2021-05-14

Similar Documents

Publication Publication Date Title
CN112800129B (zh) 区块状态更新方法、装置、系统和电子设备
WO2020258846A1 (zh) 一种跨链发送可认证消息的方法和装置
CN110825420B (zh) 分布式集群的配置参数更新方法、装置、设备及存储介质
WO2021233049A1 (zh) 基于区块链的数据处理方法、装置、设备及可读存储介质
CN110597918B (zh) 一种账户管理方法、装置及计算机可读存储介质
CN111291000B (zh) 基于区块链的文件获取方法、设备及存储介质
CN112506987B (zh) 基于区块链的查询方法、装置、设备及存储介质
CN111258723B (zh) 分布式系统的事务处理方法、装置、系统、介质及设备
CN108134713B (zh) 一种通信方法及装置
CN112069169B (zh) 区块数据存储方法、装置、电子设备及可读存储介质
WO2022134797A1 (zh) 一种数据分片存储方法、装置、计算机设备和存储介质
EP3537740B1 (en) Hash based device configuration management
CN112818014B (zh) 区块链数据解析方法、装置和电子设备
CN112905364A (zh) 微服务的调用方法与电子设备
WO2023050966A1 (zh) 验证区块链数据
CN113810453B (zh) 基于共识区块链的时间戳标记方法和装置
CN114363162A (zh) 区块链日志的生成方法及装置、电子设备、存储介质
CN112702419B (zh) 基于区块链的数据处理方法、装置、设备和存储介质
CN111327680A (zh) 认证数据同步方法、装置、系统、计算机设备和存储介质
CN108347462B (zh) 一种传输操作数据的方法及设备
CN111935251B (zh) 区块链网络管理方法、网络、装置、设备及存储介质
CN115328509A (zh) 算法变更方法、装置、计算机设备及存储介质
KR101753237B1 (ko) 디바이스들의 상호 검증을 이용하는 네트워크 시스템
CN112597512B (zh) 基于区块链的温度数据管控方法、装置及存储介质
CN117056131B (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