CN112202933A - 区块链网络的信息处理方法、装置及节点设备 - Google Patents
区块链网络的信息处理方法、装置及节点设备 Download PDFInfo
- Publication number
- CN112202933A CN112202933A CN202011420516.3A CN202011420516A CN112202933A CN 112202933 A CN112202933 A CN 112202933A CN 202011420516 A CN202011420516 A CN 202011420516A CN 112202933 A CN112202933 A CN 112202933A
- Authority
- CN
- China
- Prior art keywords
- block
- information
- consensus
- target
- consensus verification
- 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
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- 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
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例公开了一种区块链网络的信息处理方法、装置及节点设备,其中信息处理方法包括:在目标共识节点对第一区块进行共识验证的过程中,若接收到对第二区块进行共识验证的目标共识验证信息,则根据第二区块的区块属性信息确定目标共识验证信息是否满足缓存条件;如果目标共识验证信息满足缓存条件,则将目标共识验证信息存储至目标共识节点对应的信息缓存池;在对第一区块的共识验证完成后,基于信息缓存池中的目标共识验证信息对第二区块进行共识验证。采用本发明实施例可提高区块链网络的可靠性。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种区块链网络的信息处理方法、装置及节点设备。
背景技术
目前的区块链网络,尤其是基于拜占庭共识算法的网络,共识节点处理消息的速度都是依赖于本节点资源以及网络传输速度。在整个区块链共识网络资源可能各不相同以及网络资源的差异化,导致各个共识节点处理消息的速度也不尽相同。而且通常情况下,已知的共识节点之间消息传递通常是一次性的以及共识节点处理共识验证消息需要遵循严格的协议规则,比如只处理与自己节点区块高度相同的共识验证消息。以上这些因素都可能导致共识过程卡住,无法对外提供服务。因此,在区块链网络中如何有效地进行共识验证以保证区块链网络的可靠性成为当今研究的热点问题。
发明内容
本发明实施例提供了一种区块链网络的信息处理方法、装置及节点设备,可提高区块链网络的可靠性。
一方面,本发明实施例提供了一种区块链网络的信息处理方法,所述区块链网络包括目标共识节点,所述方法包括:
在所述目标共识节点对第一区块进行共识验证的过程中,若接收到对第二区块进行共识验证的目标共识验证信息,则根据所述第二区块的区块属性信息确定所述目标共识验证信息是否满足缓存条件;
如果所述目标共识验证信息满足缓存条件,则将所述目标共识验证信息存储至所述目标共识节点对应的信息缓存池;
在对所述第一区块的共识验证完成后,基于所述信息缓存池中的目标共识验证信息对所述第二区块进行共识验证。
一方面,本发明实施例提供了一种区块链网络的信息处理装置,所述装置包括:
接收单元,用于在所述目标共识节点对第一区块进行共识验证的过程中,接收对第二区块进行共识验证的目标共识验证信息;
处理单元,用于根据所述第二区块的区块属性信息确定所述目标共识验证信息是否满足缓存条件;
存储单元,用于如果所述目标共识验证信息满足缓存条件,则将所述目标共识验证信息存储至所述目标共识节点对应的信息缓存池;
所述处理单元,还用于在对所述第一区块的共识验证完成后,基于所述信息缓存池中的所述目标共识验证信息对所述第二区块进行共识验证。
在一个实施例中,所述共识验证包括区块提案阶段、预投票阶段以及预提交阶段;所述目标共识节点对所述第一区块进行共识验证包括:
当处于所述区块提案阶段时,若在预设时间内接收到对所述第一区块进行提案的提案信息,则进入所述预投票阶段,所述目标共识节点针对所述提案信息进行投票处理得到预投票信息,并将所述预投票信息广播至其他共识节点;
当处于所述预投票阶段时,若所述目标共识节点接收到来自所述其他共识节点的预投票信息的数量满足第一数量阈值,则进入所述预提交阶段;
当处于所述预提交阶段时,若所述目标共识节点接收到来自所述其他共识节点的预提交信息的数量满足第二数量阈值,则确定对所述第一区块的共识验证完成。
在一个实施例中,所述第二区块的区块属性信息包括第二区块的区块高度,所述处理单元在根据所述第二区块的区块属性信息确定所述目标共识验证信息是否满足缓存条件时,执行如下步骤:
确定所述第二区块的区块高度与所述第一区块的区块高度之间的高度差;若所述高度差小于或等于高度差阈值,则确定所述目标共识验证信息满足缓存条件。
在一个实施例中,所述第二区块的区块属性信息还包括第二区块对应的共识视图,所述处理单元在根据所述第二区块的区块属性信息确定所述目标共识验证信息是否满足缓存条件时,执行如下步骤:
若所述第二区块的区块高度与所述第一区块的区块高度相同,且所述目标共识验证信息为目标提案信息,则获取所述第二区块对应的共识视图和所述第一区块对应的共识视图之间的共识视图差值,所述目标提案信息是指在对所述第二区块进行共识验证的区块提案阶段产生的,对所述第二区块进行提案的提案信息;如果所述共识视图差值小于或等于共识视图差阈值,则确定所述目标提案信息满足缓存条件。
在一个实施例中,所述目标共识节点在对所述第一区块进行共识验证的过程中,所述目标共识节点属于共识治理委员会成员节点;所述处理单元在对所述第一区块的共识验证完成后,基于所述信息缓存池中的所述目标共识验证信息对所述第二区块进行共识验证时,执行如下步骤:
在对所述第一区块的共识验证完成后,若检测到所述共识治理委员会成员节点发生切换,则判断所述目标共识节点是否属于切换后的共识治理委员会成员节点;如果是,则基于所述信息缓存池中的所述目标共识验证信息对所述第二区块进行共识验证。
在一个实施例中,所述信息处理装置还包括发送单元,所述区块链网络还包括其他共识节点;所述处理单元,还用于如果所述目标共识节点不属于切换后的共识治理委员会成员节点,则删除所述信息缓存池中存储的所述目标共识验证信息;所述发送单元,用于向所述其他共识节点发送区块同步请求,以指示所述其他共识节点将共识验证完成后的第二区块同步给所述目标共识节点。
在一个实施例中,所述处理单元在根据所述第二区块的区块属性信息确定所述目标共识验证信息是否满足缓存条件时,执行如下步骤:
确定所述目标共识节点对应的信息缓存池的信息存储功能是否开启;若所述信息缓存池的信息存储功能开启,则执行所述根据所述第二区块的区块属性信息确定所述目标共识验证信息是否满足缓存条件的步骤。
在一个实施例中,所述处理单元,还用于若所述信息缓存池中已存储了数量阈值个区块的共识验证信息,则关闭所述信息缓存池的信息存储功能;当接收到第三区块的共识验证信息时,丢弃所述第三区块的共识验证信息。
在一个实施例中,所述处理单元,还用于若基于所述目标共识验证信息对所述第二区块进行共识验证后,将所述目标共识验证信息从所述信息存储池中删除。
在一个实施例中,所述处理单元,还用于开启所述信息缓存池的信息存储功能,并从其他共识节点同步共识验证完成的第三区块。
一方面,本发明实施例提供了一种节点设备,其特征在于,包括:处理器,适于实现计算机程序;以及计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序适于由所述处理器加载并执行:
在所述目标共识节点对第一区块进行共识验证的过程中,若接收到对第二区块进行共识验证的目标共识验证信息,则根据所述第二区块的区块属性信息确定所述目标共识验证信息是否满足缓存条件;
如果所述目标共识验证信息满足缓存条件,则将所述目标共识验证信息存储至所述目标共识节点对应的信息缓存池;
在对所述第一区块的共识验证完成后,基于所述信息缓存池中的所述目标共识验证信息对所述第二区块进行共识验证。
一方面,本发明实施例提供了一种计算机存储介质,其特征在于,所述计算机存储介质中存储有计算机程序,所述计算机程序被处理器执行时,用于执行如下步骤:
在所述目标共识节点对第一区块进行共识验证的过程中,若接收到对第二区块进行共识验证的目标共识验证信息,则根据所述第二区块的区块属性信息确定所述目标共识验证信息是否满足缓存条件;
如果所述目标共识验证信息满足缓存条件,则将所述目标共识验证信息存储至所述目标共识节点对应的信息缓存池;
在对所述第一区块的共识验证完成后,基于所述信息缓存池中的所述目标共识验证信息对所述第二区块进行共识验证。
一方面,本发明实施例提供了一种计算机程序产品或计算机程序,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中;节点设备的处理器从所述计算机存储介质中读取所述计算机程序,所述处理器执行所述计算机程序,使得节点设备执行:
在所述目标共识节点对第一区块进行共识验证的过程中,若接收到对第二区块进行共识验证的目标共识验证信息,则根据所述第二区块的区块属性信息确定所述目标共识验证信息是否满足缓存条件;
如果所述目标共识验证信息满足缓存条件,则将所述目标共识验证信息存储至所述目标共识节点对应的信息缓存池;
在对所述第一区块的共识验证完成后,基于所述信息缓存池中的所述目标共识验证信息对所述第二区块进行共识验证。
本发明实施例中,在目标共识节点对第一区块进行共识验证过程中,若接收到对第二区块进行共识验证的目标共识验证信息,则根据第二区块的区块属性信息判断目标共识验证信息是否满足缓存条件;在所述共识验证信息满足缓存条件的情况下,将目标共识验证信息存储至目标共识节点对应的信息缓存池中;等待目标共识节点对第一区块的共识验证完成时,基于存储在信息缓存池中的目标共识验证信息对第二区块进行验证。上述信息处理方法中,在对当前区块共识验证的过程中,当接收到对新的区块的共识验证信息时,不是直接丢弃而是在该共识验证信息满足缓存条件的情况下,存储该共识验证信息,以便于对当前区块验证结束后,基于存储的共识验证信息对新的区块进行验证。如此一来,有效避免了由于直接丢弃与当前区块高度不相符的共识验证信息,而导致共识卡住的情况,提高了区块链网络的可靠性。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种区块链网络的结构示意图;
图2是本发明实施例提供的另一种区块链的结构示意图;
图3是本发明实施例提供的一种区块链的结构图;
图4是本发明实施例提供的一种区块链网络的信息处理方法的流程示意图;
图5是本发明实施例提供的另一种区块链网络的信息处理方法的流程示意图;
图6是本发明实施例提供的一种区块链网络的信息处理装置的结构示意图;
图7是本发明实施例提供的一种节点设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
本发明实施例提供了一种信息处理方案,应用于区块链网络中,在区块链网络中的目标共识节点在对第一区块进行共识验证过程中,如果接收到对第二区块进行验证的目标共识验证信息,则在目标共识验证信息满足缓存条件的情况下,将目标共识验证信息缓存起来。当处理完对第一区块的共识验证,从缓存中取出目标共识验证信息,并基于目标共识验证信息对第二区块进行验证。本发明实施例提出的信息处理方案能保证在区块链异步网络情况下能持续对外提供区块链网络服务,提高区块链网络的可靠性。
在一个实施例中,所述区块链网络可以理解成一个数据共享系统,该数据共享系统用于进行节点与节点之间的数据共享。参见图1,为本发明实施例提供的一种区块链网络的结构示意图,100表示区块链网络,区块链网络100中可包括多个节点101,多个节点101可以是接入区块链网络100中的终端设备或者服务器。其中,所述终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、智能车载等。所述服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
在一个实施例中,区块链网络100中每个节点101在进行正常工作时可以接收输入到区块链网络100中的信息,并基于接收到的输入信息维护区块链网络内的共享数据。为了保证区块链网络内的信息互通,区块链网络中的每个节点101之间可以存在信息连接,节点中间可以通过上述信息连接进行信息传输。例如,当区块链网络中的任意节点101接收到输入信息时,区块链网络中的其他节点101便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得区块链网络中全部节点101上存储的数据均一致。
对于区块链网络中的每个节点101,均具有与其对应的节点标识,而且区块链网络中的每个节点101均可以存储有区块链网络中其他节点101的节点标识,以便后续根据其他节点101中可维护一个如下表所述的节点标识列表,将节点名称和节点标识对应存储至节点标识列表中。其中,节点标识可以为IP(Internet Protocol,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息,表1中仅以IP地址为例进行说明。
表1
节点名称 | 节点标识 |
节点1 | 117.114.151.174 |
节点2 | 117.116.189.145 |
… | … |
节点N | 119.123.789.258 |
在一个实施例中,区块链网络中包括的节点需要具有的功能包括:路由功能以及应用,其中,路由功能是区块链网络中的节点应当具备的基本功能,用于支持节点之间的通信,上述多个节点之间可以共享输入到区块链网络中的数据,就是依赖节点的路由功能实现的。
所述应用包括钱包、共享账本、智能合约以及区块链。所述钱包是用于提供进行电子货币的交易的功能;所述共享账本是用于提供数据的存储、查询和修改等操作的功能;所述智能合约是计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于满足一定条件时而执行的代码实现,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;所述区块链包括一系列按照产生的先后时间顺序相互接续的区块。
基于上述区块链中节点具有的功能,按照每个节点101具有的功能不同,区块链网络100中多个节点101可以分为以下几种:轻节点、路由节点、共识节点以及全节点。其中,轻节点是指具有钱包、路由功能以及区块链的节点,路由节点是指仅具有路由功能和区块链的节点,共识节点是指具有共识功能、路由功能以及区块链的节点。全节点是指具有钱包功能、路由功能、共识功能、区块链及智能合约功能的节点。应当理解的,当全节点具有共识功能时,全节点也可以是共识节点。本发明实施例中上述信息处理方案可以由目标共识节点执行,所述目标共识节点是指区块链网络中包括的多个共识节点中的任意一个。
基于上述描述,本发明实施例提供了另一种区块链网络的结构示意图,参见图2所示。在图2中示出了各个节点具有的功能,比如全节点102具有路由功能和全部应用功能;再如,轻节点103具有钱包、路由功能以及存储有区块链。
由上述图2可知,区块链网络中的每个节点中均存储一条相同的区块链。区块链由多个区块组成,参见图3,为本发明实施例提供的一种区块链的结构示意图。图3所示的区块链中可以包括多个区块,每个区块中包括本区块的哈希值,以及前一个区块的哈希值,各个区块通过哈希值进行连接形成区块链。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
在一个实施例中,区块链上的每个区块在被添加到区块链上之前,都需要共识节点对其进行共识验证,共识验证通过后的区块才可被添加到区块链上。可选的,区块链网络中运行有一个共识算法,各个共识节点基于区块链网络中运行的共识算法对区块进行共识验证。
不失一般性,以拜占庭共识算法为例,通常拜占庭共识算法对区块验证的一个完成过程可以包括区块提案阶段、预投票阶段、预提交阶段。这三个阶段状态的流转是通过提案信息、预投票信息以及预提交信息等共识验证信息驱动的。
具体来讲,任一共识节点从区块提案阶段到预投票阶段有两种触发条件,一种是在预设时间内收到提案信息;另一种是超过预设时间还未收到提案信息。进入到预投票阶段后,任一共识节点对接收到的提案信息进行投票,并生成预投票信息,将预投票信息广播给其他共识节点;如果任一共识节点在预投票阶段接收到来自其他共识节点的预投票信息的数量满足第一数量阈值,则进入到预提交阶段;当处于所述预提交阶段时,若所述任一节点接收到来自其他共识节点的预提交信息的数量满足第二数量阈值,则确定对该区块的验证完成。
可选的,第一数量阈值和第二数量阈值均可以指共识节点总数量的2/3,在预投票阶段,如果任一共识节点接收到来自其他共识节点的预投票消息的数量不满足第一数量阈值,则任一共识节点可以一直等待或者采用超时的方法进入到预提交阶段,本发明实施例中假设任一共识节点会一直等待足够数量的预投票信息,以进入到预提交阶段;同理的,当在预提交阶段,如果任一共识节点接收到来自其他共识节点的预提交信息的数量不满足第二数量阈值,则任一共识节点可以一直等待直到收到足够数量的预提交信息,或者进入超时处理。本发明实施例假设任一共识节点会一直等待足够数量的预提交信息,以完成对区块的共识验证。
区块链网络中多个共识节点在上述三个阶段的流转速度都是异步的,速度也不尽相同,特别是在提案新区块时,大概率存在部分共识节点已经完成了上述三个阶段,进入对新区块的共识验证过程,还有部分节点则还在继续处理上个区块的共识验证逻辑。已经对新区块进行共识验证的节点会广播对新区块的共识验证信息,继续在处理上个区块共识验证逻辑的共识节点接收到新区块的共识验证信息,会认为该共识验证信息与自己当前的共识验证过程不匹配,丢弃对新区块的共识验证信息。当共识节点对上个区块的共识验证完成后,也进入新区块的共识验证过程,但是由于该共识节点已将对新区块共识验证的共识验证信息丢弃,并且共识节点之间消息传递通常是一次性的,基于拜占庭共识算法要求存在整个共识网络因为需要等待足够多的共识验证信息而导致共识验证卡住。
基于此考虑,本发明实施例提出了上述区块链网络中的信息处理方案,当区块链网络中的任一共识节点在对第一区块进行共识验证过程中,如果接收到对第二区块进行验证的目标共识验证信息,则在目标共识验证信息满足缓存条件的情况下,将目标共识验证信息缓存起来。当处理完对第一区块的共识验证,从缓存中取出目标共识验证信息,并基于目标共识验证信息对第二区块进行验证。本发明实施例提出的信息处理方案能保证在区块链异步网络情况下能持续对外提供区块链网络服务,提高区块链网络的可靠性。
基于上述区块链网络的信息处理方案,本发明实施例提供了一种区块链网络的信息处理方法,参见图4为本发明实施例提供的一种区块链网络的信息处理方法的流程示意图。图4所示的信息处理方法可由目标共识节点执行,所述目标共识节点是区块链网络包括的多个共识节点中任意一个,图4所示的信息处理方法可包括如下步骤:
步骤S401、在目标共识节点对第一区块进行共识验证的过程中,若接收到对第二区块进行共识验证的目标共识验证信息,则根据第二区块的区块属性信息确定目标共识验证信息是否满足缓存条件。
由前述可知,任一共识节点对任一区块的验证均包括区块提案阶段、预投票阶段以及预提交阶段,目标共识节点对第一区块的共识验证也不例外。具体地,所述目标共识节点对第一区块进行共识验证可以包括区块提案阶段、预投票阶段以及预提交阶段。当处于所述区块提案阶段时,若在预设时间内接收到对所述第一区块进行提案的提案信息,则进入所述预投票阶段,所述目标节点针对所述提案信息进行投票处理得到预投票信息,并将所述预投票信息广播至其他共识节点;当处于所述预投票阶段时,若所述目标共识节点接收到来自其他共识节点的预投票信息的数量满足第一数量阈值,则进入所述预提交节点;当处于所述预提交阶段时,若所述目标共识接收到来自所述其他共识节点的预提交信息满足第二数量阈值,则确定所述第一区块的共识验证完成。
可选的,步骤S401中所述的对第一区块进行共识验证的过程可以是指上述的提案阶段、预投票阶段以及预提交阶段中任意一个。
在目标共识节点对第一区块进行共识验证的过程中,如果接收到对第二区块进行共识验证的目标共识验证信息,不是直接将目标共识验证信息丢弃,而是根据第二区块的区块属性信息确定目标共识验证信息是否满足缓存条件;当目标共识节点满足缓存条件时,则通过步骤S402将目标共识验证信息存储在目标共识节点对应的信息缓存池中。
在一个实施例中,所述第二区块的区块属性信息可以包括第二区块的区块高度,则所述根据第二区块的区块属性信息确定所述目标共识验证信息是否满足缓存条件,包括:确定所述第二区块的区块高度与所述第一区块的区块高度之间的高度差;若所述高度差小于或等于高度差阈值,则确定所述目标共识验证信息满足缓存条件。
其中,所述高度差阈值可以是目标共识节点根据当前区块链网络的传输速度以及目标共识节点资源情况确定的;高度差阈值用于表示在当前网络传输速度以及目标共识节点资源情况下,目标共识节点落后高度差阈值个区块的共识验证过程是可以追赶上的。因此,当第二区块的区块高度和第一区块的区块高度之间的高度差小于或等于高度差阈值时,可以不必丢弃对第二区块进行共识验证的目标共识验证信息,只需将目标共识验证信息存储起来,等待对第一区块与验证完成后,便会依次对存储的目标共识验证信息进行验证。
由前述可知,对任一区块进行共识验证过程产生的共识验证信息可以包括区块提案信息、预投票信息以及预提交信息,同样的,目标共识节点接收到对第二区块进行共识验证的目标共识验证信息可以包括对第二区块进行提案的目标提案信息、目标预投票信息以及目标预提交信息中任意一个或多个。
应当理解的,区块链网络中每个共识节点都有进行区块提案的权利,但是并不是每个共识节点提案的区块会通过共识验证。如果一个共识节点提案的区块未通过共识验证,则换共识治理委员会中的下一个共识节点继续对该区块进行提案,依次各个共识节点轮流对该区块进行提案。假设以第二区块为例,如果第二区块是第一次被提案,提案第二区块的共识节点可以为第一共识节点,此时第二区块对应的共识视图为n,n可以为任意整数;如果在对第二区块的共识验证未通过,则第二区块需要被不同于第一共识节点的第二共识节点继续提案,此时第二区块对应的共识视图为n+1。
基于上述描述,第二区块的区块属性信息还可以包括第二区块对应的共识视图;根据所述第二区块的区块属性信息确定所述目标共识验证信息是否满足缓存条件,包括:若所述第二区块的区块高度与所述第一区块的区块高度相同,且所述目标共识验证信息为目标提案信息,则获取所述第二区块对应的共识视图和所述第一区块对应的共识视图之间的共识视图差值;如果所述共识视图差值小于或等于共识视图差阈值,则确定所述目标提案信息满足缓存条件。由前述可知,所述目标提案信息是指在对所述第二区块进行共识验证的区块提案阶段产生的,对所述第二区块进行提案的提案信息。
总结而言,本发明实施例中,如果第二区块的区块高度与第一区块的区块高度之间的高度差小于或等于高度差阈值,则无论目标共识验证信息是目标提案信息、目标预投票信息还是目标预提交信息,都将目标共识验证信息存储起来;但是如果第二区块的区块高度与第一区块的区块高度相同,则当目标共识验证信息为目标提案信息时,且第一区块的共识视图和第二区块的共识视图之间的共识视图差值小于或等于共识视图差阈值时,也可以存储;如果是目标预投票消息或者目标预提交信息,则不需要存储。
步骤S402、如果目标共识验证信息满足缓存条件,则将目标共识验证信息存储至目标共识节点对应的信息缓存池。
在一个实施例中,本发明实施例为了提高区块链网络的可靠性,以及避免对区块的共识过程卡住,可以为每个共识节引入一个信息缓存池,每个共识节点对应的信息缓存池可以是一个信息缓存组件。在确定出对第二区块进行共识验证的目标共识验证信息满足缓存条件情况下,目标共识节点将目标共识验证信息存储至目标共识节点对应的信息缓存池中。
在一个实施例中,将目标共识验证信息存储至目标共识节点对应的信息缓存池的实施方式可以是:将目标共识验证信息、第二区块的区块高度以及第二区块的共识视图进行关系存储,如此方便后续基于目标共识验证信息对第二区块进行共识验证。假设第二区块的区块高度为3,第二区块的共识视图为1,则信息缓存池中目标共识验证信息的存储方式可以是:区块高度3—共识视图1—目标提案信息;再如区块高度3—共识视图1—目标预投票信息。
在一个实施例中,目标共识节点将目标共识验证信息存储到目标共识节点对应的信息缓存池是通过信息写入组件实现的。其中,所述消息写入组件可以包括提案信息写入组件、预投票信息写入组件以及预提交信息写入组件中任意一个。具体实现中,如果目标共识验证信息是目标提案信息,则目标共识节点可以通过提案信息写入组件将目标共识验证信息存储到目标共识节点对应的信息缓存池中;如果目标共识验证信息是目标预投票消息,则目标共识节点可以通过预投票信息写入组件将目标共识验证信息存储到目标共识节点对应的信息缓存池中;如果目标共识验证信息是目标预提交信息,则目标共识节点可以通过预提交信息写入组件将目标共识验证信息存储到目标共识节点对应的信息缓存池中。
步骤S403、在对第一区块的共识验证完成后,基于信息缓存池中的目标共识验证信息对第二区块进行共识验证。
在一个实施例中,如果目标共识节点对第一区块的共识验证完成后,可以从信息缓存池中取出目标共识验证信息。应当理解的,第二区块的数量可以为一个或多个,那么目标共识验证信息的数量也可以是一个或多个。目标共识节点基于信息缓存池中取出目标共识验证信息对第二区块进行共识验证的实施方式可以包括:
确定多个第二区块中区块高度最小的目标第二区块;并获取所述目标第二区块对应的目标共识验证信息;如果所述目标共识验证信息为目标提案信息,则针对该目标提案信息进行投票处理生成一个预投票信息,并将预投票信息广播给其他共识节点;如果目标共识验证信息为目标预投票信息,则统计目标预投票信息的数量是否满足第一数量阈值,如果不满足,则继续等待目标预投票信息;如果满足,则会生成一个预提交信息,并将生成的预提交信息广播给共识网络中的其他共识节点;如果目标共识验证信息为目标预提交信息,则统计接收到的目标预提交信息的数量是否满足第二数量阈值,如果不满足,则继续等待目标预提交信息,如果满足,则确定对目标第二区块验证通过,将目标第二区块添加到区块链上。
在一个实施例中,为了及时释放信息缓存池中存储空间,目标共识节点基于目标共识验证信息对第二区块进行共识验证后,可以将目标共识验证信息从所述目标共识节点对应的信息缓存池中删除。
本发明实施例中,在目标共识节点对第一区块进行共识验证过程中,若接收到对第二区块进行共识验证的目标共识验证信息,则根据第二区块的区块高度判断目标共识验证信息是否满足缓存条件;在所述共识验证信息满足缓存条件的情况下,将目标共识验证信息存储至目标共识节点对应的信息缓存池中;等待目标共识节点对第一区块的共识验证完成时,基于存储在信息缓存池中的目标共识验证信息对第二区块进行验证。上述信息处理方法中,在对当前区块共识验证的过程中,当接受到对新的区块的共识验证信息时,不是直接丢弃而是在该共识验证信息满足缓存条件的情况下,存储该共识验证信息,以便于对当前区块验证结束后,基于存储的共识验证信息对新的区块进行验证。如此一来,有效避免了由于直接丢弃与当前区块高度不相符的共识验证信息,而导致共识卡住的情况,提高了区块链网络的可靠性。
基于上述的信息处理方法,本发明实施例还提供了另一种区块链网络中的信息处理方法。参见图5,为本发明实施例提供的另一种区块链网络的信息处理方法的流程示意图,图5所示的信息处理方法可由目标共识节点执行,所述目标共识节点属于共识治理委员会成员节点;所述信息处理方法可包括如下步骤:
步骤S501、在目标共识节点对第一区块进行共识验证的过程中,若接收到对第二区块进行共识验证的目标共识验证信息,则判断目标共识节点对应的信息缓存池的信息存储功能是否开启。
在一个实施例中,考虑到区块链网络中对区块共识验证的效率以及区块链网络中存储账本同步功能,可以限制目标共识节点的信息缓存池中缓存信息的范围,比如限制目标共识节点的信息缓存池中最多只能缓存数量阈值个区块的共识验证信息。
基于此,如果目标共识节点中已经存储了数量阈值个区块的共识验证信息,则目标共识节点可以暂时关闭信息缓存池的信息存储功能,当信息存储功能关闭时,目标共识节点不能向信息缓存池中存储共识验证信息,此时目标共识节点如果接收到对新的区块的共识验证信息,只能丢弃;随着目标共识节点根据缓存池中存储的共识验证信息对相应区块进行验证完成后,信息缓存池的一部分存储空间被释放,则此时可以开启信息缓存池的信息存储功能。
步骤S502、如果信息缓存池的信息存储功能开启,则根据第二区块的区块属性信息确定目标共识验证信息是否满足缓存条件。
应当理解的,判断信息缓存池的信息存储功能是否开启所需要的功耗开销,小于确定目标共识验证信息是否缓存条件所需的功耗开销,因此,为了节省目标共识节点的功耗开销,在确定目标共识验证信息是否满足缓存条件之前,需要先判断信息缓存池的信息存储功能是否开启;如果开启,则表明目标共识验证信息若满足缓存条件的话,可以被存储在信息缓存池中,因此需要进一步判断目标共识验证信息是否满足缓存条件;如果信息存储功能关闭,则表明即使目标共识验证信息满足缓存条件,也不会存储在信息存储池中,那么目标共识节点则不必浪费多余的功耗开销去检测了。
步骤S503、如果目标共识验证信息满足缓存条件,则将目标共识验证信息存储至目标共识节点对应的信息缓存池中。
在一个实施例中,步骤S503中包括的一些可行的实施方式可参见图4实施例中相关步骤的具体描述,在此不再赘述。
步骤S504、在对第一区块的共识验证完成后,若检测到共识治理委员会成员节点发生切换,则判断目标共识节点是否属于切换后的共识治理委员会成员节点。
步骤S505、如果是,则基于目标共识验证信息对第二区块进行共识验证。
由前述可知,在对第一区块进行共识验证时,目标共识节点属于共识治理委员会成员节点,也就是说目标共识节点具有对区块进行共识验证的权利;考虑到在对第一区块进行共识验证完成后,共识治理委员会成员节点可能会发生变化,目标共识节点有可能不属于变化后的共识治理委员会成员节点,此时目标共识节点不能对第二区块进行共识验证。或者说,目标共识节点对第二区块的共识验证是无效的。
基于此,为了节省目标共识节点的无用功耗开销,在步骤S504中对第一区块的共识验证完成后,若检测到共识治理委员会成员节点发生切换,则判断目标共识节点是否属于切换后的共识治理委员会成员节点;如果目标共识节点属于切换后的共识治理委员会成员节点,则执行步骤S505,即根据信息缓存池中存储的目标共识验证信息对第二区块进行共识验证;如果目标共识节点不属于切换后的共识治理委员会成员节点,则删除所述信息缓存吃中存储的目标共识验证信息。进一步的,可以向他共识节点发送区块同步请求,以指示所述其他共识节点将验证完成后的第二区块同步给所述目标共识节点。
在一个实施例中,目标共识节点将目标共识验证信息存储至所述目标共识节点对应的信息缓存池中后,可以检测当前信息缓存池中是否已存储了数量阈值个区块的共识验证信息;如果是,则为了避免目标共识节点处堆积了多个待验证区块的消息,而导致区块验证效率降低,可以关闭所述目标共识节点对应的信息缓存池的信息存储功能。
在信息缓存池的信息存储功能关闭后,如果接收到第三区块的共识验证信息,则可以直接将第三区块的共识验证信息丢弃。
在一个实施例中,当目标共识节点根据目标共识验证信息对第二区块的共识验证完成后,可以通过区块链网络中的账本同步模块追赶第三区块。具体来讲,可以向其他共识节点发送区块同步请求,以指示其他共识节点将验证完成后的第三区块发送给目标共识节点。
本发明实施例中,在目标节点对第一区块进行共识验证过程中,若接收到对第二区块进行共识验证的目标共识验证信息,则判断目标共识节点对应的信息缓存池的信息存储功能是否开启;在信息缓存池的信息存储功能开启的情况下,进一步判断目标共识验证信息是否满足缓存条件,并在目标共识验证信息满足缓存条件的情况下,将目标共识验证信息存储在信息缓存池中。如此一来,可以节省目标共识节点不必要的开销。
接着,在目标共识节点对第一区块的共识验证完成后,可以根据信息缓存池中存储的目标共识验证信息对第二区块进行共识验证。但是考虑到在对第一区块的共识验证完成后,共识管理委员会成员节点可能发生变化,目标共识节点可能不再属于共识治理委员会,如果目标共识节点不再属于共识治理委员会则无需再对第二区块进行共识验证。基于此,为了节省目标共识节点的功耗开销,以及提高区块验证的有效性,目标共识节点在根据目标验证信息对第二区块进行共识验证之前,先判断共识治理委员会成员节点是否发生切换,若发生切换,目标共识节点是否属于切换后的共识治理委员会成员节点。如果是,目标共识节点再执行根据目标共识验证信息对第二区块进行共识验证的步骤。
基于上述的区块链网络的信息处理方法,本发明实施例提供了一种区块链网络的信息处理装置。参见图6,为本发明实施例提供的一种区块链网络的信息处理装置的结构示意图。图6所示的信息处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该信息处理装置为一个应用软件;图6所示的信息处理装置也可以是一个硬件装置。图6所示的信息处理装置可用于执行图4和图5所示的区块链网络中的信息处理方法。图6所示的信息处理装置可运行如下单元:
接收单元601,用于在所述目标共识节点对第一区块进行共识验证的过程中,接收对第二区块进行共识验证的目标共识验证信息;
处理单元602,用于根据所述第二区块的区块属性信息确定所述目标共识验证信息是否满足缓存条件;
存储单元603,用于如果所述目标共识验证信息满足缓存条件,则将所述目标共识验证信息存储至所述目标共识节点对应的信息缓存池;
所述处理单元602,还用于在对所述第一区块的共识验证完成后,基于所述信息缓存池中的目标共识验证信息对所述第二区块进行共识验证。
在一个实施例中,所述共识验证包括区块提案阶段、预投票阶段以及预提交阶段;所述目标共识节点对所述第一区块进行共识验证包括:
当处于所述区块提案阶段时,若在预设时间内接收到对所述第一区块进行提案的提案信息,则进入所述预投票阶段,以及所述目标共识节点针对所述提案信息进行投票处理得到预投票信息,并将所述预投票信息广播至所述区块链网络中的其他共识节点;
当处于所述预投票阶段时,若所述目标共识节点接收到来自所述其他共识节点的预投票信息的数量满足第一数量阈值,则进入所述预提交阶段;
当处于所述预提交阶段时,若所述目标共识节点接收到来自所述其他共识节点的预提交信息的数量满足第二数量阈值,则确定对所述第一区块的共识验证完成。
在一个实施例中,所述第二区块的区块属性信息包括第二区块的区块高度所述处理单元602在根据所述第二区块的区块属性信息确定所述目标共识验证信息是否满足缓存条件时,执行如下步骤:
确定所述第二区块的区块高度与所述第一区块的区块高度之间的高度差;若所述高度差小于或等于高度差阈值,则确定所述目标共识验证信息满足缓存条件。
在一个实施例中,所述第二区块的区块属性信息还包括第二区块对应的共识视图,所述处理单元602在根据所述第二区块的区块属性信息确定所述目标共识验证信息是否满足缓存条件时,执行如下步骤:
若所述第二区块的区块高度与所述第一区块的区块高度相同,且所述目标共识验证信息为目标提案信息,则获取所述第二区块对应的共识视图和所述第一区块对应的共识视图之间的共识视图差值,所述目标提案信息是指在对所述第二区块进行共识验证的区块提案阶段产生的,对所述第二区块进行提案的提案信息;如果所述共识视图差值小于或等于共识视图差阈值,则确定所述目标提案信息满足缓存条件。
在一个实施例中,所述目标共识节点在对所述第一区块进行共识验证的过程中,所述目标共识节点属于共识治理委员会成员节点;所述处理单元602在对所述第一区块的共识验证完成后,基于所述信息缓存池中的所述目标共识验证信息对所述第二区块进行共识验证时,执行如下步骤:
在对所述第一区块的共识验证完成后,若检测到所述共识治理委员会成员节点发生切换,则判断所述目标共识节点是否属于切换后的共识治理委员会成员节点;如果是,则基于所述信息缓存池中的所述目标共识验证信息对所述第二区块进行共识验证。
在一个实施例中,所述区块链网络还包括其他共识节点;所述信息处理装置还包括发送单元604;所述处理单元602还用于:如果所述目标共识节点不属于切换后的共识治理委员会成员节点,则删除所述信息缓存池中存储的所述目标共识验证信息;所述发送单元604,用于向所述其他共识节点发送区块同步请求,以指示所述其他共识节点将共识验证完成后的第二区块同步给所述目标共识节点。
在一个实施例中,所述处理单元602在根据所述第二区块的区块属性信息确定所述目标共识验证信息是否满足缓存条件时,执行如下步骤:
确定所述目标共识节点对应的信息缓存池的信息存储功能是否开启;若所述信息缓存池的信息存储功能开启,则执行所述根据所述第二区块的区块属性信息确定所述目标共识验证信息是否满足缓存条件的步骤。
在一个实施例中,所述处理单元602还用于:若所述信息缓存池中已存储了数量阈值个区块的共识验证信息,则关闭所述信息缓存池的信息存储功能;当接收到第三区块的共识验证信息时,丢弃所述第三区块的共识验证信息。
在一个实施例中,所述处理单元602还用于:若基于所述目标共识验证信息对所述第二区块进行共识验证后,将所述目标共识验证信息从所述信息存储池中删除。
在一个实施例中,所述处理单元602还用于:开启所述信息缓存池的信息存储功能,并从其他共识节点同步共识验证完成的第三区块。
根据本发明的一个实施例,图4和图5所示的信息处理方法所涉及各个步骤可以是由图6所示的信息处理装置中的各个单元来执行的。例如,图4所述的步骤S401可由图6所示的信息处理装置中的接收单元601和处理单元602来执行,步骤S402可由图6所示的信息处理装置中的存储单元603来执行,步骤S40可由图6所示的信息处理装置中的处理单元602来执行;再如,图5所示的步骤S501可由图6所示的信息处理装置中的接收单元601和处理单元602来执行,步骤S502可由图6所示的信息处理装置中的处理单元602来执行,步骤S503可由图6所示的信息处理装置中的存储单元603来执行,步骤S504和步骤S505可由图6所示的信息处理装置中处理单元602来执行。
根据本发明的另一个实施例,图6所示的信息处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本发明的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本发明的其它实施例中,基于信息处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本发明的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图4和图5所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图6中所示的信息处理装置,以及来实现本发明实施例信息处理方法。所述计算机程序可以记载于例如计算机可读存储介质上,并通过计算机可读存储介质装载于上述计算设备中,并在其中运行。
本发明实施例中,在目标共识节点对第一区块进行共识验证过程中,若接收到对第二区块进行共识验证的目标共识验证信息,则根据第二区块的区块高度判断目标共识验证信息是否满足缓存条件;在所述共识验证信息满足缓存条件的情况下,将目标共识验证信息存储至目标共识节点对应的信息缓存池中;等待目标共识节点对第一区块的共识验证完成时,基于存储在信息缓存池中的目标共识验证信息对第二区块进行验证。上述信息处理方法中,在对当前区块共识验证的过程中,当接受到对新的区块的共识验证信息时,不是直接丢弃而是在该共识验证信息满足缓存条件的情况下,存储该共识验证信息,以便于对当前区块验证结束后,基于存储的共识验证信息对新的区块进行验证。如此一来,有效避免了由于直接丢弃与当前区块高度不相符的共识验证信息,而导致共识卡住的情况,提高了区块链网络的可靠性。
基于上述的方法实施例以及装置实施例,本发明实施例还提供了一种节点设备,所述节点设备可以指前述的目标共识节点。参见图7,为本发明实施提供的一种节点设备的结构示意图。图7所示的节点设备可至少包括处理器701、输入接口702、输出接口703以及计算机存储介质704。其中,处理器701、输入接口702、输出接口703以及计算机存储介质704可通过总线或其他方式连接。
计算机存储介质704可以存储在节点设备的存储器中,所述计算机存储介质701用于存储计算机程序,所述计算机程序包括程序计算机程序,所述处理器701用于执行所述计算机存储介质704存储的程序计算机程序。处理器701(或称CPU(Central ProcessingUnit,中央处理器))是节点设备的计算核心以及控制核心,其适于实现计算机程序,具体适于加载并执行:
在所述目标共识节点对第一区块进行共识验证的过程中,若接收到对第二区块进行共识验证的目标共识验证信息,则根据所述第二区块的区块属性信息确定所述目标共识验证信息是否满足缓存条件;如果所述目标共识验证信息满足缓存条件,则将所述目标共识验证信息存储至所述目标共识节点对应的信息缓存池;在对所述第一区块的共识验证完成后,基于所述信息缓存池中的目标共识验证信息对所述第二区块进行共识验证。
本发明实施例还提供了一种计算机存储介质(Memory),所述计算机存储介质是节点设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机存储介质既可以包括节点设备的内置存储介质,当然也可以包括节点设备所支持的扩展存储介质。计算机存储介质提供存储空间,该存储空间存储了节点设备的操作系统。并且,在该存储空间中还存放了适于被处理器701加载并执行的计算机程序,这些计算机程序可以是一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的计算机存储介质。
在一个实施例中,所述计算机存储介质可由处理器701加载并执行计算机存储介质中存放计算机程序,以实现上述有关图4和图5所示的区块链网络的信息处理方法的相应步骤。具体实现中,计算机存储介质中的计算机程序由处理器701加载并执行如下步骤:
在所述目标共识节点对第一区块进行共识验证的过程中,若接收到对第二区块进行共识验证的目标共识验证信息,则根据所述第二区块的区块属性信息确定所述目标共识验证信息是否满足缓存条件;如果所述目标共识验证信息满足缓存条件,则将所述目标共识验证信息存储至所述目标共识节点对应的信息缓存池;在对所述第一区块的共识验证完成后,基于所述信息缓存池中的所述目标共识验证信息对所述第二区块进行共识验证。
在一个实施例中,共识验证包括区块提案阶段、预投票阶段以及预提交阶段;所述目标共识节点对所述第一区块进行共识验证包括:
当处于所述区块提案阶段时,若在预设时间内接收到对所述第一区块进行提案的提案信息,则进入所述预投票阶段,以及所述目标共识节点针对所述提案信息进行投票处理得到预投票信息,并将所述预投票信息广播至所述区块链网络中的其他共识节点;
当处于所述预投票阶段时,若所述目标共识节点接收到来自所述其他共识节点的预投票信息的数量满足第一数量阈值,则进入所述预提交阶段;
当处于所述预提交阶段时,若所述目标共识节点接收到来自所述其他共识节点的预提交信息的数量满足第二数量阈值,则确定对所述第一区块的共识验证完成。
在一个实施例中,所述第二区块的区块属性信息包括第二区块的区块高度,所述处理器701在根据所述第二区块的区块属性信息确定所述目标共识验证信息是否满足缓存条件时,执行如下步骤:确定所述第二区块的区块高度与所述第一区块的区块高度之间的高度差;若所述高度差小于或等于高度差阈值,则确定所述目标共识验证信息满足缓存条件。
在一个实施例中,所述第二区块的区块属性信息还包括第二区块对应的共识视图,所述处理器701在根据所述第二区块的区块属性信息确定所述目标共识验证信息是否满足缓存条件时,执行如下步骤:
若所述第二区块的区块高度与所述第一区块的区块高度相同,且所述目标共识验证信息为目标提案信息,则获取所述第二区块对应的共识视图和所述第一区块对应的共识视图之间的共识视图差值,所述目标提案信息是指在对所述第二区块进行共识验证的区块提案阶段产生的,对所述第二区块进行提案的提案信息;如果所述共识视图差值小于或等于共识视图差阈值,则确定所述目标提案信息满足缓存条件。
在一个实施例中,所述目标共识节点在对所述第一区块进行共识验证过程中,所述目标共识节点属于共识治理委员会成员节点;所述处理器701在对所述第一区块的共识验证完成后,基于所述信息缓存池中的所述目标共识验证信息对所述第二区块进行共识验证时,执行如下步骤:在对所述第一区块的共识验证完成后,若检测到所述共识治理委员会成员节点发生切换,则判断所述目标共识节点是否属于切换后的共识治理委员会成员节点;如果是,则基于所述信息缓存池中的所述目标共识验证信息对所述第二区块进行共识验证。
在一个实施例中,所述区块链网络还包括其他共识节点,所述处理器701还用于:如果所述目标共识节点不属于切换后的共识治理委员会成员节点,则删除所述信息缓存池中存储的所述目标共识验证信息;向所述其他共识节点发送区块同步请求,以指示所述其他共识节点将共识验证完成后的第二区块同步给所述目标共识节点。
在一个实施例中,所述处理器701在根据所述第二区块的区块属性信息确定所述目标共识验证信息是否满足缓存条件时,执行如下步骤:
确定所述目标共识节点对应的信息缓存池的信息存储功能是否开启;若所述信息缓存池的信息存储功能开启,则所述根据所述第二区块的属性信息确定所述目标共识验证信息是否满足缓存条件。
在一个实施例中,将所述目标共识验证信息存储至所述目标共识节点对应的信息缓存池后,所述处理器701还用于:若所述信息缓存池中已存储了数量阈值个区块的共识验证信息,则关闭所述信息缓存池的信息存储功能;当接收到第三区块的共识验证信息时,丢弃所述第三区块的共识验证信息。
在一个实施例中,所述处理器701还用于:若基于所述目标共识验证信息对所述第二区块进行共识验证后,将所述目标共识验证信息从所述信息存储池中删除。
在一个实施例中,所述在基于所述目标共识验证信息对所述第二区块进行共识验证后,所述处理器701还用于:开启所述信息缓存池的信息存储功能,并从其他共识节点同步共识验证完成的第三区块。
本发明实施例中,在目标共识节点对第一区块进行共识验证过程中,若接收到对第二区块进行共识验证的目标共识验证信息,则根据第二区块的区块高度判断目标共识验证信息是否满足缓存条件;在所述共识验证信息满足缓存条件的情况下,将目标共识验证信息存储至目标共识节点对应的信息缓存池中;等待目标共识节点对第一区块的共识验证完成时,基于存储在信息缓存池中的目标共识验证信息对第二区块进行验证。上述信息处理方法中,在对当前区块共识验证的过程中,当接受到对新的区块的共识验证信息时,不是直接丢弃而是在该共识验证信息满足缓存条件的情况下,存储该共识验证信息,以便于对当前区块验证结束后,基于存储的共识验证信息对新的区块进行验证。如此一来,有效避免了由于直接丢弃与当前区块高度不相符的共识验证信息,而导致共识卡住的情况,提高了区块链网络的可靠性。
根据本申请的一个方面,本发明实施例还提供了一种计算机产品或计算机程序,该计算机产品或计算机程序包括计算机程序,该计算机程序存储在计算机可读存储介质中。处理器701从计算机可读存储介质中读取该计算机程序,处理器701执行该计算机程序,使得节点设备执行图3所述的区块链网络的信息处理方法,具体地:
在所述目标共识节点对第一区块进行共识验证过程中,若接收到对第二区块进行共识验证的目标共识验证信息,则根据所述第二区块的区块属性信息确定所述目标共识验证信息是否满足缓存条件;如果所述目标共识验证信息满足缓存条件,则将所述目标共识验证信息存储至所述目标共识节点对应的信息缓存池;在对所述第一区块的共识验证完成后,基于所述信息缓存池中的目标共识验证信息对所述第二区块进行共识验证。
本领域普通技术人员可以意识到,结合本申请上述各个实施例描述的各示例单元以及算法步骤,能够以电子硬件、计算机软件或者二者结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明书中已经按照功能一般性地描述了各示例的组成以及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
Claims (13)
1.一种区块链网络的信息处理方法,其特征在于,所述区块链网络包括目标共识节点,所述方法包括:
在所述目标共识节点对第一区块进行共识验证的过程中,若接收到对第二区块进行共识验证的目标共识验证信息,则根据所述第二区块的区块属性信息确定所述目标共识验证信息是否满足缓存条件;
如果所述目标共识验证信息满足缓存条件,则将所述目标共识验证信息存储至所述目标共识节点对应的信息缓存池;
在对所述第一区块的共识验证完成后,基于所述信息缓存池中的所述目标共识验证信息对所述第二区块进行共识验证。
2.如权利要求1所述的方法,其特征在于,所述共识验证包括区块提案阶段、预投票阶段以及预提交阶段;所述目标共识节点对所述第一区块进行共识验证包括:
当处于所述区块提案阶段时,若在预设时间内接收到对所述第一区块进行提案的提案信息,则进入所述预投票阶段,以及所述目标共识节点针对所述提案信息进行投票处理得到预投票信息,并将所述预投票信息广播至所述区块链网络中的其他共识节点;
当处于所述预投票阶段时,若所述目标共识节点接收到来自所述其他共识节点的预投票信息的数量满足第一数量阈值,则进入所述预提交阶段;
当处于所述预提交阶段时,若所述目标共识节点接收到来自所述其他共识节点的预提交信息的数量满足第二数量阈值,则确定对所述第一区块的共识验证完成。
3.如权利要求1所述的方法,其特征在于,所述第二区块的区块属性信息包括第二区块的区块高度,所述根据所述第二区块的区块属性信息确定所述目标共识验证信息是否满足缓存条件,包括:
确定所述第二区块的区块高度与所述第一区块的区块高度之间的高度差;
若所述高度差小于或等于高度差阈值,则确定所述目标共识验证信息满足缓存条件。
4.如权利要求3所述的方法,其特征在于,所述第二区块的区块属性信息还包括第二区块对应的共识视图,所述根据所述第二区块的区块属性信息确定所述目标共识验证信息是否满足缓存条件,包括:
若所述第二区块的区块高度与所述第一区块的区块高度相同,且所述目标共识验证信息为目标提案信息,则获取所述第二区块对应的共识视图和所述第一区块对应的共识视图之间的共识视图差值,所述目标提案信息是指在对所述第二区块进行共识验证的区块提案阶段产生的,对所述第二区块进行提案的提案信息;
如果所述共识视图差值小于或等于共识视图差阈值,则确定所述目标提案信息满足缓存条件。
5.如权利要求1所述的方法,其特征在于,所述目标共识节点在对所述第一区块进行共识验证的过程中,所述目标共识节点属于共识治理委员会成员节点;所述在对所述第一区块的共识验证完成后,基于所述信息缓存池中的所述目标共识验证信息对所述第二区块进行共识验证,包括:
在对所述第一区块的共识验证完成后,若检测到所述共识治理委员会成员节点发生切换,则判断所述目标共识节点是否属于切换后的共识治理委员会成员节点;
如果是,则基于所述信息缓存池中的所述目标共识验证信息对所述第二区块进行共识验证。
6.如权利要求5所述的方法,其特征在于,所述区块链网络还包括其他共识节点,所述方法还包括:
如果所述目标共识节点不属于切换后的共识治理委员会成员节点,则删除所述信息缓存池中存储的所述目标共识验证信息;
向所述其他共识节点发送区块同步请求,以指示所述其他共识节点将共识验证完成后的第二区块同步给所述目标共识节点。
7.如权利要求1所述的方法,其特征在于,所述根据所述第二区块的区块属性信息确定所述目标共识验证信息是否满足缓存条件,包括:
确定所述目标共识节点对应的信息缓存池的信息存储功能是否开启;
若所述信息缓存池的信息存储功能开启,则根据所述第二区块的区块属性信息确定所述目标共识验证信息是否满足缓存条件。
8.如权利要求7所述的方法,其特征在于,所述将所述目标共识验证信息存储至所述目标共识节点对应的信息缓存池后,所述方法还包括:
若所述信息缓存池中已存储了数量阈值个区块的共识验证信息,则关闭所述信息缓存池的信息存储功能;
当接收到第三区块的共识验证信息时,丢弃所述第三区块的共识验证信息。
9.如权利要求8所述的方法,其特征在于,所述方法还包括:
若基于所述目标共识验证信息对所述第二区块进行共识验证后,将所述目标共识验证信息从所述信息缓存池中删除。
10.如权利要求9所述的方法,其特征在于,所述基于所述目标共识验证信息对所述第二区块进行共识验证后,所述方法还包括:
开启所述信息缓存池的信息存储功能,并从其他共识节点同步共识验证完成的第三区块。
11.一种区块链网络的信息处理装置,其特征在于,所述区块链网络包括目标共识节点,所述装置包括:
接收单元,用于在所述目标共识节点对第一区块进行共识验证的过程中,接收对第二区块进行共识验证的目标共识验证信息;
处理单元,用于根据所述第二区块的区块属性信息确定所述目标共识验证信息是否满足缓存条件;
存储单元,用于如果所述目标共识验证信息满足缓存条件,则将所述目标共识验证信息存储至所述目标共识节点对应的信息缓存池;
所述处理单元,还用于在对所述第一区块的共识验证完成后,基于所述信息缓存池中的所述目标共识验证信息对所述第二区块进行共识验证。
12.一种节点设备,其特征在于,包括:
处理器,适用于实现计算机程序;以及
计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1-10任一项所述的区块链网络的信息处理方法。
13.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时,用于执行如权利要求1-10任一项所述的区块链网络的信息处理方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011420516.3A CN112202933B (zh) | 2020-12-08 | 2020-12-08 | 区块链网络的信息处理方法、装置及节点设备 |
PCT/CN2021/129944 WO2022121612A1 (zh) | 2020-12-08 | 2021-11-11 | 区块链网络的信息处理方法、装置、设备及存储介质 |
EP21902319.9A EP4198861A4 (en) | 2020-12-08 | 2021-11-11 | INFORMATION PROCESSING METHOD AND DEVICE FOR A BLOCKCHAIN NETWORK AND DEVICE AND STORAGE MEDIUM |
US17/978,906 US11899652B2 (en) | 2020-12-08 | 2022-11-01 | Method and apparatus for processing information of blockchain network, device and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011420516.3A CN112202933B (zh) | 2020-12-08 | 2020-12-08 | 区块链网络的信息处理方法、装置及节点设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112202933A true CN112202933A (zh) | 2021-01-08 |
CN112202933B CN112202933B (zh) | 2021-03-05 |
Family
ID=74033790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011420516.3A Active CN112202933B (zh) | 2020-12-08 | 2020-12-08 | 区块链网络的信息处理方法、装置及节点设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11899652B2 (zh) |
EP (1) | EP4198861A4 (zh) |
CN (1) | CN112202933B (zh) |
WO (1) | WO2022121612A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342902A (zh) * | 2021-08-09 | 2021-09-03 | 腾讯科技(深圳)有限公司 | 区块链网络的数据处理方法、装置、计算机设备和介质 |
WO2022121612A1 (zh) * | 2020-12-08 | 2022-06-16 | 腾讯科技(深圳)有限公司 | 区块链网络的信息处理方法、装置、设备及存储介质 |
CN115186035A (zh) * | 2022-09-13 | 2022-10-14 | 腾讯科技(深圳)有限公司 | 一种区块处理方法、相关系统及存储介质和服务器 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107528882A (zh) * | 2017-07-14 | 2017-12-29 | 阿里巴巴集团控股有限公司 | 区块链共识网络中处理共识请求的方法、装置和电子设备 |
WO2018153486A1 (en) * | 2017-02-24 | 2018-08-30 | NEC Laboratories Europe GmbH | Method for signing a new block in a decentralized blockchain consensus network |
CN110708171A (zh) * | 2019-12-13 | 2020-01-17 | 腾讯科技(深圳)有限公司 | 区块链共识投票方法、装置、设备以及存储介质 |
CN111061769A (zh) * | 2019-12-24 | 2020-04-24 | 腾讯科技(深圳)有限公司 | 一种区块链系统的共识方法及相关设备 |
US20200136799A1 (en) * | 2019-12-20 | 2020-04-30 | Intel Corporation | Methods and apparatus to determine provenance for data supply chains |
CN111382456A (zh) * | 2020-06-01 | 2020-07-07 | 腾讯科技(深圳)有限公司 | 提案消息处理方法、装置、设备以及存储介质 |
CN111506656A (zh) * | 2020-04-20 | 2020-08-07 | 腾讯科技(深圳)有限公司 | 区块链系统的共识处理方法、装置及智能设备、存储介质 |
CN111654395A (zh) * | 2020-06-01 | 2020-09-11 | 腾讯科技(深圳)有限公司 | 投票信息处理方法、装置、设备以及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10740733B2 (en) * | 2017-05-25 | 2020-08-11 | Oracle International Corporaton | Sharded permissioned distributed ledgers |
US20190303623A1 (en) * | 2018-04-02 | 2019-10-03 | Ca, Inc. | Promotion smart contracts for software development processes |
US11153070B2 (en) * | 2018-09-11 | 2021-10-19 | International Business Machines Corporation | Access to data broadcast in encrypted form based on blockchain |
CN111241188B (zh) * | 2018-11-29 | 2024-05-17 | 北京京东尚科信息技术有限公司 | 区块链网络中的共识方法、节点及存储介质 |
US11423016B2 (en) * | 2019-06-26 | 2022-08-23 | Indian Institute Of Technology Bombay | Method for scaling computation in blockchain by delaying transaction execution |
CN110493148B (zh) * | 2019-08-12 | 2022-04-01 | 深圳前海微众银行股份有限公司 | 一种区块处理、区块共识和区块同步方法及装置 |
CN112202933B (zh) * | 2020-12-08 | 2021-03-05 | 腾讯科技(深圳)有限公司 | 区块链网络的信息处理方法、装置及节点设备 |
-
2020
- 2020-12-08 CN CN202011420516.3A patent/CN112202933B/zh active Active
-
2021
- 2021-11-11 WO PCT/CN2021/129944 patent/WO2022121612A1/zh unknown
- 2021-11-11 EP EP21902319.9A patent/EP4198861A4/en active Pending
-
2022
- 2022-11-01 US US17/978,906 patent/US11899652B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018153486A1 (en) * | 2017-02-24 | 2018-08-30 | NEC Laboratories Europe GmbH | Method for signing a new block in a decentralized blockchain consensus network |
CN107528882A (zh) * | 2017-07-14 | 2017-12-29 | 阿里巴巴集团控股有限公司 | 区块链共识网络中处理共识请求的方法、装置和电子设备 |
CN110708171A (zh) * | 2019-12-13 | 2020-01-17 | 腾讯科技(深圳)有限公司 | 区块链共识投票方法、装置、设备以及存储介质 |
US20200136799A1 (en) * | 2019-12-20 | 2020-04-30 | Intel Corporation | Methods and apparatus to determine provenance for data supply chains |
CN111061769A (zh) * | 2019-12-24 | 2020-04-24 | 腾讯科技(深圳)有限公司 | 一种区块链系统的共识方法及相关设备 |
CN111506656A (zh) * | 2020-04-20 | 2020-08-07 | 腾讯科技(深圳)有限公司 | 区块链系统的共识处理方法、装置及智能设备、存储介质 |
CN111382456A (zh) * | 2020-06-01 | 2020-07-07 | 腾讯科技(深圳)有限公司 | 提案消息处理方法、装置、设备以及存储介质 |
CN111654395A (zh) * | 2020-06-01 | 2020-09-11 | 腾讯科技(深圳)有限公司 | 投票信息处理方法、装置、设备以及存储介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022121612A1 (zh) * | 2020-12-08 | 2022-06-16 | 腾讯科技(深圳)有限公司 | 区块链网络的信息处理方法、装置、设备及存储介质 |
US11899652B2 (en) | 2020-12-08 | 2024-02-13 | Tencent Technology (Shenzhen) Company Limited | Method and apparatus for processing information of blockchain network, device and storage medium |
CN113342902A (zh) * | 2021-08-09 | 2021-09-03 | 腾讯科技(深圳)有限公司 | 区块链网络的数据处理方法、装置、计算机设备和介质 |
CN113342902B (zh) * | 2021-08-09 | 2021-11-12 | 腾讯科技(深圳)有限公司 | 区块链网络的数据处理方法、装置、计算机设备和介质 |
WO2023016090A1 (zh) * | 2021-08-09 | 2023-02-16 | 腾讯科技(深圳)有限公司 | 区块链网络的数据处理方法、装置、计算机设备、计算机可读存储介质及计算机程序产品 |
CN115186035A (zh) * | 2022-09-13 | 2022-10-14 | 腾讯科技(深圳)有限公司 | 一种区块处理方法、相关系统及存储介质和服务器 |
CN115186035B (zh) * | 2022-09-13 | 2022-11-22 | 腾讯科技(深圳)有限公司 | 一种区块处理方法、相关系统及存储介质和服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN112202933B (zh) | 2021-03-05 |
US20230066467A1 (en) | 2023-03-02 |
EP4198861A4 (en) | 2024-02-14 |
US11899652B2 (en) | 2024-02-13 |
WO2022121612A1 (zh) | 2022-06-16 |
EP4198861A1 (en) | 2023-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112202933B (zh) | 区块链网络的信息处理方法、装置及节点设备 | |
CN107332876B (zh) | 区块链状态的同步方法及装置 | |
CN109242500B (zh) | 区块链交易有效性验证方法、装置及存储介质 | |
CN111061769B (zh) | 一种区块链系统的共识方法及相关设备 | |
CN112685796B (zh) | 一种基于区块链的区块共识方法以及相关设备 | |
US20230216920A1 (en) | Fast propagation of recent transactions over a blockchain network | |
CN111091429A (zh) | 电子票据标识分配方法及装置、电子票据生成系统 | |
US20230370285A1 (en) | Block-chain-based data processing method, computer device, computer-readable storage medium | |
CN111698315B (zh) | 针对区块的数据处理方法、数据处理装置及计算机设备 | |
CN110597922B (zh) | 数据处理方法、装置、终端及存储介质 | |
CN111338806B (zh) | 一种业务控制方法及装置 | |
CN113347164A (zh) | 基于区块链的分布式共识系统及方法、设备、存储介质 | |
CN110659905B (zh) | 交易验证方法、装置、终端设备以及存储介质 | |
EP4030314A1 (en) | Blockchain-based data processing method, apparatus and device, and readable storage medium | |
CN113064764B (zh) | 在区块链系统中执行区块的方法及装置 | |
CN112200680B (zh) | 区块链节点管理方法、装置、计算机以及可读存储介质 | |
EP4042359A1 (en) | Distributed network with consensus mechanism | |
CN117370460A (zh) | 基于双链存储的区块链存储优化方法及装置 | |
CN113760519B (zh) | 分布式事务处理方法、装置、系统和电子设备 | |
CN112258184B (zh) | 冻结区块链网络的方法、装置、电子设备及可读存储介质 | |
CN110324425B (zh) | 混合云交易路由处理方法及装置 | |
CN114422526A (zh) | 一种区块同步方法、装置、电子设备和存储介质 | |
CN117057799B (zh) | 资产数据处理方法、装置、设备及存储介质 | |
US20240015037A1 (en) | Data processing method and apparatus for consensus network, program product, device, and medium | |
CN118827693A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40037785 Country of ref document: HK |