CN115190130B - 基于区块链的数据处理方法、装置、电子设备及存储介质 - Google Patents
基于区块链的数据处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115190130B CN115190130B CN202211107367.4A CN202211107367A CN115190130B CN 115190130 B CN115190130 B CN 115190130B CN 202211107367 A CN202211107367 A CN 202211107367A CN 115190130 B CN115190130 B CN 115190130B
- Authority
- CN
- China
- Prior art keywords
- nodes
- node
- information
- master node
- slave
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Hardware Redundancy (AREA)
Abstract
本申请涉及数据处理技术领域,提供一种基于区块链的数据处理方法、装置、电子设备及存储介质。包括:基于目标区块链中各节点的权重参考信息,从所有节点中筛选出主节点候选节点;从所述主节点候选节点中确定主节点,并从所有节点的其他节点中确定从属节点;由所述主节点与所有所述从属节点,共同对当前的区块处理请求进行共识;其中,所述权重参考信息是基于所述目标区块链中所有节点,在对历史区块处理请求进行共识时广播信息的异常情况,对所有节点的原权重参考信息进行调整得到的。本申请可以避免异常节点的干扰,提高选出的主节点的健壮性,并防止主节点作恶,因此可以提高基于实用拜占庭容错进行共识时的速度,进而提高共识效率。
Description
技术领域
本申请涉及数据处理技术领域,具体涉及一种基于区块链的数据处理方法、装置、电子设备及存储介质。
背景技术
区块链是一种按时间顺序存储数据的链式数据结构,目前涉及区块链使用场景中常见的共识技术包括PoW(Proof-of-Work,工作量证明)、PoS(Proof of Stake,权益证明)、DPoS(Delegated Proof of Stake,代理权益证明)以及PBFT(Practical Byzantine FaultTolerance,实用拜占庭容错)等。其中,PBFT即实用拜占庭容错,该算法于20世纪末由Miguel Castro和Barbara Liskov提出。在应用PBFT算法的网络系统中,可以容纳至多全部节点数量的三分之一的作恶节点。PBFT适用于分布式计算系统,在区块链问世后,PBFT由于其易用性强、无需挖矿等特点在近年来广泛应用于多种区块链技术系统中。
但是,由于作恶节点的存在,使得当前基于实用拜占庭容错进行共识时速度慢,进而导致当前的共识效率低下。
发明内容
本申请实施例提供一种基于区块链的数据处理方法、装置、电子设备及存储介质,用以提高基于实用拜占庭容错进行共识时的速度,以提高共识效率。
第一方面,本申请实施例提供一种基于区块链的数据处理方法,包括:
基于目标区块链中各节点的权重参考信息,从所有节点中筛选出主节点候选节点;
从所述主节点候选节点中确定主节点,并从所有节点的其他节点中确定从属节点;
由所述主节点与所有所述从属节点,共同对当前的区块处理请求进行共识;
其中,所述权重参考信息是基于所述目标区块链中所有节点,在对历史区块处理请求进行共识时广播信息的异常情况,对所有节点的原权重参考信息进行调整得到的。
在一个实施例中,所述基于目标区块链中各节点的权重参考信息,从所有节点中筛选出主节点候选节点的步骤包括:
分别将目标区块链的各节点的权重参考信息与第一预设阈值进行比较;
将权重参考信息大于或等于所述第一预设阈值的节点确定为主节点候选节点。
在一个实施例中,所述从所有节点的其他节点中确定从属节点的步骤包括:
从所有第一节点中确定出第二节点;所述第一节点为所有节点中所述主节点候选节点之外的节点;
将所述第二节点与所述主节点候选节点中除所述主节点之外的主节点候选节点,均确定为从属节点。
在一个实施例中,所述从所有第一节点中确定出第二节点的步骤包括:
将所有所述第一节点的权重参考信息分别与第二预设阈值进行比较;
将所有所述第一节点中,权重参考信息小于所述第二预设阈值的第一节点剔除,得到第二节点,其中,所述第二预设阈值小于所述第一预设阈值。
在一个实施例中,所述从所述主节点候选节点中确定主节点的步骤包括:
基于轮询调度算法从所有所述主节点候选节点中确定主节点;或
基于所有所述主节点候选节点生成随机数,并基于各所述随机数从各所述主节点候选节点中确定主节点。
在一个实施例中,所述由所述主节点与所有所述从属节点,共同对当前的区块处理请求进行共识的步骤包括:
基于所述主节点生成当前的区块处理请求对应的区块,并将所述区块对应的区块信息加密后广播至所述目标区块链;
基于所有所述从属节点接收所述区块信息,对所述区块信息进行验证,并广播验证得到的第一验证信息,所述第一验证信息包括第一确认信息或空赋值消息;
确定任一所述从属节点接收到数量大于第三预设阈值的所述第一验证信息,则检测是否存在任一所述从属节点在预设时间内接收到数量大于所述第三预设阈值的第一确认信息,并基于检测结果广播第二验证信息,所述第二验证信息包括第二确认信息或空赋值消息,所述第三预设阈值基于所述从属节点的数量确定;
确定任一所述从属节点接收到数量大于所述第三预设阈值的第二确认信息,则在确定接收到所述区块后将所述区块添加至所述目标区块链。
在一个实施例中,在对当前的区块处理请求进行共识之后,还包括:
基于对当前的区块处理请求与历史区块处理请求进行共识的过程中,各所述从属节点广播信息的异常情况,对各所述从属节点对应的权重参考信息进行调整,得到各所述从属节点的更新权重参考信息。
第二方面,本申请实施例提供一种基于区块链的数据处理装置,包括:
剔除模块,用于基于目标区块链中各节点的权重参考信息,从所有节点中筛选出主节点候选节点,其中,所述权重参考信息是基于所述目标区块链中所有节点,在对历史区块处理请求进行共识时广播信息的异常情况,对所有节点的原权重参考信息进行调整得到的;
确定模块,用于从所述主节点候选节点中确定主节点,并从所有节点的其他节点中确定从属节点;
共识模块,用于由所述主节点与所有所述从属节点,共同对当前的区块处理请求进行共识。
第三方面,本申请实施例提供一种电子设备,包括处理器和存储有计算机程序的存储器,所述处理器执行所述程序时实现第一方面或第二方面所述的基于区块链的数据处理方法的步骤。
第四方面,本申请实施例提供一种存储介质,所述存储介质为计算机可读存储介质,包括计算机程序,所述计算机程序被处理器执行时实现第一方面或第二方面所述的基于区块链的数据处理方法的步骤。
本申请实施例提供的基于区块链的数据处理方法、装置、电子设备及存储介质,通过由目标区块链中各节点在对历史区块处理请求进行共识时广播信息的异常情况,对各节点的原权重参考信息进行调整得到的权重参考信息,从目标区块链的各节点中筛选出主节点候选节点,从主节点候选节点中确定主节点,并从所有节点的其他节点中确定从属节点,使得可以由主节点与所有从属节点共同对当前的区块处理请求进行共识,通过主节点选取与从属节点的确定,可以避免异常节点的干扰,提高选出的主节点的健壮性,并防止主节点作恶,因此可以提高基于实用拜占庭容错进行共识时的速度,进而提高共识效率。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的基于区块链的数据处理方法的流程示意图之一;
图2是本申请实施例提供的基于区块链的数据处理方法的流程示意图之二;
图3是本申请实施例提供的基于区块链的数据处理方法的流程示意图之三;
图4是本申请实施例提供的基于区块链的数据处理方法的流程示意图之四;
图5是本申请基于区块链的数据处理装置实施例的功能模块示意图;
图6是本申请实施例提供的电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面结合实施例对本发明提供的基于区块链的数据处理方法、装置、电子设备及存储介质进行详细描述。
图1为本申请实施例提供的基于区块链的数据处理方法的流程示意图之一。参照图1,本申请实施例提供一种基于区块链的数据处理方法,可以包括:
步骤S100,基于目标区块链中各节点的权重参考信息,从所有节点中筛选出主节点候选节点;
需要说明的是,本申请实施例提供的基于区块链的数据处理方法的执行主体可以是服务器、计算机设备,例如手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等。
本实施例中可以将当前所处的区块链确定为目标区块链,也可以将指定的区块链确定为目标区块链。
其中,目标区块链可以由多个按时间顺序存储数据的链式数据结构组成,其中,链式数据结构又称为区块。
并且,目标区块链中可以包括多个节点,本实施例目标区块链中的节点可以为手机、矿机、服务器中的任一种。
本实施例目标区块链中每一节点均对应有一个权重参考信息,其中权重参考信息用于确定该节点是否可以参与共识或主节点选举。
需要说明的是,本实施例中各节点的权重参考信息是基于目标区块链中各节点在对历史区块处理请求进行共识时广播信息的异常情况,对各节点的原权重参考信息进行调整得到的。
在一些可选的实施例中,历史区块处理请求具体可以是上一次区块处理请求,或者是前h次区块处理请求,其中h>1。
进一步需要说明的是,本实施例中各节点初始的权重参考信息可以根据实际需求设定,例如可以将各节点初始的权重参考信息均设置为k,其中,k>0。
可以理解地,若各节点的权重参考信息为初始的权重参考信息,则可以直接将各节点均作为主节点候选节点并进行主节点选举,得到主节点,并将剩余的节点均作为从属节点。
区块处理请求在本实施例中可以用于请求向目标区块链中新增区块,区块处理请求可以包括所需新增的区块的区块信息。区块信息可以包括区块高度、区块哈希值、区块的体积大小等一项或多项。
主节点候选节点即作为主节点候选的节点,主节点候选节点可以参与主节点选举。
其中,主节点在本实施例中可以用于接收区块处理请求、生成区块处理请求对应的区块、将生成的区块及其区块信息广播至目标区块链中。
本实施例中,广播信息的异常情况可以为广播验证信息的异常次数。
验证信息可以包括确认信息与空赋值信息,确认信息中可以包括本节点标识信息、时间戳,或本节点的标识信息、区块处理请求对应的区块信息、时间戳。其中,确认信息可以包括第一确认信息与第二确认信息。
步骤S200,从主节点候选节点中确定主节点,并从所有节点的其他节点中确定从属节点;
在确定出主节点候选节点后,本实施例可以从各主节点候选节点中选举出主节点。
本实施例从各主节点候选节点中选举主节点的方式,可以为基于轮询调度算法的方式、基于各主节点候选节点自生成的随机数确定的方式中的任一种,本实施例在此不进行具体限定。
其中,基于轮询调度算法的方式可以对各主节点候选节点进行排序,并按排序顺序逐一轮询各主节点候选节点,轮询到的主节点候选节点即为本次的主节点。
基于各主节点候选节点自生成的随机数的方式可以为通过各主节点候选节点分别生成一个随机数,将随机数最大或最小的主节点候选节点确定为主节点。
本实施例中的从属节点为可以参与共识的所有节点中,除了主节点之外的其他节点。
步骤S300,由主节点与所有从属节点,共同对当前的区块处理请求进行共识。
在选举出主节点后,可以通过主节点检测当前是否存在区块处理请求,若存在则接收该区块处理请求。
需要说明的是,本实施例中共识的过程可以包括创建区块、验证区块、提交区块等步骤,其中创建区块的步骤可以通过主节点实现,验证区块的步骤可以通过所有从属节点实现,提交区块的步骤可以通过区块链中的所有节点实现。
本申请实施例提供的基于区块链的数据处理方法,通过由目标区块链中各节点在对历史区块处理请求进行共识时广播信息的异常情况,对各节点的原权重参考信息进行调整得到的权重参考信息,从目标区块链的各节点中筛选出主节点候选节点,从主节点候选节点中确定主节点,并从所有节点的其他节点中确定从属节点,使得可以由主节点与所有从属节点共同对当前的区块处理请求进行共识,通过主节点选取与从属节点的确定,可以避免异常节点的干扰,提高选出的主节点的健壮性,并防止主节点作恶,因此可以提高基于实用拜占庭容错进行共识时的速度,进而提高共识效率。
本实施例改善了传统PBFT共识处理过程,提供比较简便的主节点选择方式,能够容纳一定的拜占庭节点,通过针对主节点采取更换机制,也在一定程度上防止了主节点作恶。于此同时提升了共识过程的速度效率。
图2为本申请实施例提供的基于区块链的数据处理方法的流程示意图之二。参照图2,在一个实施例中,基于目标区块链中各节点的权重参考信息,从所有节点中筛选出主节点候选节点的步骤包括:
步骤S101,分别将目标区块链的各节点的权重参考信息与第一预设阈值进行比较;
获取目标区块链中各节点的权重参考信息以及预设阈值,并将各权重参考信息分别与第一预设阈值进行比较。其中,第一预设阈值可以为根据实际需求进行设定。
步骤S102,将权重参考信息大于或等于第一预设阈值的节点确定为主节点候选节点。
在完成比较后,将比较结果为权重参考信息大于或等于第一预设阈值的节点均确定为主节点候选节点,各主节点候选节点可以参与后续的主节点选举。而其余比较结果为权重参考信息小于第一预设阈值的节点均不参与主节点选举。
本实施例可以根据目标区块链的所有节点的权重参考信息,准确地确定出主节点候选节点,以供后续基于主节点候选节点进行主节点选举,以此提高选出的主节点的健壮性,防止主节点作恶,因此可以提高基于实用拜占庭容错进行共识时的速度,进而提高共识效率。
在一个实施例中,从主节点候选节点中确定主节点的步骤包括:
步骤A,基于轮询调度算法从所有主节点候选节点中确定主节点;
在确定出各主节点候选节点后,本实施例可以对各主节点候选节点进行排序,并按排序顺序逐一轮询各主节点候选节点,将轮询到的主节点候选节点确定为本次的主节点。
步骤B,基于所有主节点候选节点生成随机数,并基于各随机数从各主节点候选节点中确定主节点。
本实施例也可以通过各主节点候选节点分别生成一个随机数,并从各随机数中确定最大或最小的随机数,将最大或最小的随机数对应的主节点候选节点确定为主节点。
可以理解地,各节点内可以具有可信执行环境,在可信执行环境中生成随机数。
本实施例可以通过多样化的轮换机制在各主节点候选节点中确定出主节点,选举方式简洁高效,提高选出的主节点的健壮性,防止主节点作恶,进而可以提高基于实用拜占庭容错进行共识时的速度,进而提高共识效率。
图3为本申请实施例提供的基于区块链的数据处理方法的流程示意图之三。参照图3,从所有节点的其他节点中确定从属节点的步骤包括:
步骤S201,从所有第一节点中确定出第二节点;第一节点为所有节点中主节点候选节点之外的节点;
将目标区块链的所有节点中,除主节点候选节点之外的其他节点均确定为第一节点。
进一步地,根据各第一节点的权重参考信息,剔除不能参与共识的第一节点,并将剩余的第一节点均确定为第二节点。
步骤S202,将第二节点与主节点候选节点中除主节点之外的主节点候选节点,均确定为从属节点。
在确定主节点候选节点、主节点以及第二节点后,将所有第二节点与主节点候选节点中除主节点之外的其他主节点候选节点,均确定为从属节点,从属节点可以参与共识。
进一步地,从所有第一节点中确定出第二节点的步骤包括:
步骤S2011,将所有第一节点的权重参考信息分别与第二预设阈值进行比较;
获取第二预设阈值,其中,第二预设阈值是根据实际需求设置的,小于第一预设阈值的值。
将所有第一节点的权重参考信息分别与第二预设阈值进行比较,以此确定各第一节点的权重参考信息分别与第二预设阈值之间的大小关系。
举例来说,第一预设阈值为M1,第二预设阈值为M2。其中0<M2<M1。
步骤S2012,将所有第一节点中,权重参考信息小于第二预设阈值的第一节点剔除,得到第二节点,其中,第二预设阈值小于第一预设阈值。
在完成比较后,将所有第一节点中,权重参考信息小于第二预设阈值的第一节点剔除,并将剩余的其他第一节点确定为第二节点。需要说明的是,被剔除后的第一节点不能参与共识。
本实施例通过将权重参考信息小于第二预设阈值的节点剔除从而不允许这些节点参与共识,可以进一步避免异常节点的干扰,因此可以进一步提高基于实用拜占庭容错进行共识时的速度,进而提高共识效率。
图4为本申请实施例提供的基于区块链的数据处理方法的流程示意图之四。参照图4,在一个实施例中,由主节点与所有从属节点,共同对当前的区块处理请求进行共识的步骤包括:
步骤S301,基于主节点生成当前的区块处理请求对应的区块,并将区块对应的区块信息加密后广播至目标区块链;
本实施例可以通过主节点检测当前是否存在区块处理请求,若存在则接收该区块处理请求,并可以确定进入提案阶段。
在提案阶段,可以通过主节点生成区块处理请求对应的区块,其中可以根据区块处理请求中的区块信息生成。进一步地,可以对区块信息进行加密,其中加密方式可以包括对称加密与非对称加密。
其中,对称加密中,一个密钥既能加密原始信息,又能执行逆处理解密。非对称加密使用一对私钥和公钥。一般进行加密时,节点使用公钥来加密数据,加密后的数据发送给其他节点,具有对应私钥的节点可以解密获得原始内容。此外,拥有私钥的节点通过私钥对信息进行签名并发出,收到签名的节点可以通过公钥对签名做验证。
进一步地,可以将生成的区块及加密后的区块信息广播至目标区块链中,目标区块链的各从属节点可以接收区块及其区块信息,并可以对区块信息进行验证。
步骤S302,基于所有从属节点接收区块信息,对区块信息进行验证,并广播验证得到的第一验证信息,第一验证信息包括第一确认信息或空赋值消息;
本实施例可以通过从属节点接收区块信息,并在确定从属节点接收到区块信息时,确定该从属节点进入第一确认阶段,并启动一个定时。在第一确认阶段,任意从属节点验证区块信息后可以广播第一验证信息,第一验证信息包括第一确信息或空赋值信息。
其中,若区块信息通过验证,则由该从属节点广播第一确认消息,第一确认消息的内容可以包括本节点的标识信息、该区块信息、时间戳等;如果区块信息未通过验证,或者第一确认阶段超时未收到区块,则由该从属节点广播空赋值消息。
步骤S303,确定任一从属节点接收到数量大于第三预设阈值的第一验证信息,则检测是否存在任一从属节点在预设时间内接收到数量大于第三预设阈值的第一确认信息,并基于检测结果广播第二验证信息,第二验证信息包括第二确认信息或空赋值消息,第三预设阈值基于从属节点的数量确定;
进一步地,本实施例可以确定是否存在任一从属节点接收到数量大于第三预设阈值的第一验证信息即第一确认信息或空赋值消息。其中,第三预设阈值是基于从属节点的数量确定的,本实施例中更具体可以为从属节点的数量的三分之二。
若确定任一从属节点接收到数量大于第三预设阈值的第一验证信息,则确定该从属节点进入第二确认阶段,并可以启动一个定时。在第二确认阶段,可以确定任一从属节点是否收到大于第三预设阈值的第一确认消息,并根据是否接收到的结果广播第二验证信息,其中第二验证信息包括第二确认信息或空赋值消息。具体地,若接收到,则由该从属节点广播第二确认消息(内容包含本节点标识信息、时间戳)。若在第二确认阶段超时前没有接收到,则由该从属节点广播空赋值消息。
步骤S304,确定任一从属节点接收到数量大于第三预设阈值的第二确认信息,则在确定接收到区块后将区块添加至目标区块链。
进一步地,确定任一从属节点是否接收到数量大于第三预设阈值的第二确认消息,若是则可以确定进入第三确认阶段。在第三确认阶段,再次确认该从属节点收到了区块处理请求对应的区块,并将区块添加在目标区块链上。
进一步地,在对当前的区块处理请求进行共识之后,具体可以是如图4所示在确定接收到区块后将区块添加至目标区块链的步骤之后,还包括:
步骤S305,基于对当前的区块处理请求与历史区块处理请求进行共识的过程中,各从属节点广播信息的异常情况,对各从属节点对应的权重参考信息进行调整,得到各从属节点的更新权重参考信息。
举例来说,可以在今后选举主节点候选节点之前,获取各从属节点广播的第一验证信息与第二验证信息等验证信息的异常情况,并根据各从属节点广播信息的异常情况,对各从属节点对应的权重参考信息进行调整。
具体地,每个节点在系统初始时可以保留自身的权重参考信息和除自身以外的节点的权重参考信息,各节点最初的权重参考信息值相同。随着区块链系统的运行,每一从属节点根据其他从属节点在对当前的区块处理请求与历史区块处理请求进行共识的过程中广播信息的异常情况,对其他从属节点的权重参考信息进行调整,降低存在异常情况的其他从属节点的权重参考信息值。随后从属节点向其他从属节点广播调整后最新的权重参考信息。使得其他从属节点接收到最新的权重参考信息后,可以对应更新自身的权重参考信息。以在今后选择主节点候选节点时,可以将各节点的最新权重参考信息作为参考与第一预设阈值、第二预设阈值做比较,选举新的主节点候选节点以及确定新的从属节点。
其中异常情况可以为可以为广播验证信息的异常次数。因此可以将各从属节点中,广播验证信息的异常次数达到异常次数阈值的从属节点的权重参考信息降低。其中,异常次数阈值为可以根据实际需求设置的数值。
举例来说,当一个节点,例如节点a,在定时超时前未收到另一个节点,例如节点b的验证信息,则节点a记录该节点b出现一次异常;或虽然节点b没有超时,但节点b的验证信息相比其他节点最晚到达的次数或频率达到预设门限,则节点a 将记录该节点b出现一次异常。若存在多次则进行累计。共识过程中,节点多次超时或者频繁地最迟发出验证信息,表明其极有可能存在处理异常或通信异常。通过降低该节点的权重参考信息,可以在后续筛选主节点以及从属节点时禁止其参选。
使得权重参考信息低于第一预设阈值的节点不能参与下次主节点选举,而权重参考信息进一步低于第二预设阈值的节点不能参与下次共识,即无法参与上述第一确认阶段、第二确认阶段、第三确认阶段,通过此种筛选机制,使得选举出的主节点具有更好的处理性能,此外还使得从属节点也具有较好的处理和通信性能,由此可以提升整个系统的效率和速度。
本实施例中还可以设置核验节点,其中,核验节点不参与主节点选举,也不参与共识。
若设置有核验节点,则每一从属节点可以将其保存的其他从属节点的最新权重参考信息发送至核验节点,以在下选举主节点之前,由核验节点根据所收到的各节点的最新权重参考信息,剔除不可参选主节点的节点,以及剔除异常节点,禁止其参与共识。其中,最新权重参考信息包括每一从属节点发送的,根据对当前的区块处理请求与历史区块处理请求进行共识的过程中广播信息的异常情况调整后的,其他从属节点的最新权重参考信息。
本实施例由主节点与从属节点共同对当前的区块处理请求进行共识,剔除了异常节点的干扰,提高选出的主节点的健壮性,并防止了主节点作恶,同时根据当前与历史的共识过程中各从属节点广播信息的异常情况,对各从属节点的权重参考信息进行调整,便于后续进行主节点选举与从属节点确定,进一步避免异常节点的干扰并防止主节点作恶,因此可以提高基于实用拜占庭容错进行共识时的速度,进而提高共识效率。
本申请实施例的方案对于不良节点进行筛选和有效剔除,不允许其参选主节点,维护了主节点,并能够提升系统整体交互和共识效率。并且本发明实施例的技术方案在容忍拜占庭节点的同时,有效筛除存在故障隐患的节点以及低效率节点,从而提升节点群的整体处理效率。
进一步地,本申请还提供一种基于区块链的数据处理装置。
参照图5,图5为本申请基于区块链的数据处理装置实施例的功能模块示意图。
所述基于区块链的数据处理装置包括:
剔除模块100,用于基于目标区块链中各节点的权重参考信息,从所有节点中筛选出主节点候选节点,其中,所述权重参考信息是基于所述目标区块链中所有节点,在对历史区块处理请求进行共识时广播信息的异常情况,对所有节点的原权重参考信息进行调整得到的;
确定模块200,用于从所述主节点候选节点中确定主节点,并从所有节点的其他节点中确定从属节点;
共识模块300,用于由所述主节点与所有所述从属节点,共同对当前的区块处理请求进行共识。
本申请实施例提供的基于区块链的数据处理装置,通过由目标区块链中各节点在对历史区块处理请求进行共识时广播信息的异常情况,对各节点的原权重参考信息进行调整得到的权重参考信息,从目标区块链的各节点中筛选出主节点候选节点,从主节点候选节点中确定主节点,并从所有节点的其他节点中确定从属节点,使得可以由主节点与所有从属节点共同对当前的区块处理请求进行共识,通过主节点选取与从属节点的确定,可以避免异常节点的干扰,提高选出的主节点的健壮性,并防止主节点作恶,因此可以提高基于实用拜占庭容错进行共识时的速度,进而提高共识效率。
本申请实施例的方案对于不良节点进行筛选和有效剔除,不允许其参选主节点,维护了主节点,并能够提升系统整体交互和共识效率。在容忍拜占庭节点的同时,有效筛除存在故障隐患的节点以及低效率节点,从而提升节点群的整体处理效率。
在一个实施例中,剔除模块100具体用于:
分别将目标区块链的各节点的权重参考信息与第一预设阈值进行比较;
将权重参考信息大于或等于所述第一预设阈值的节点确定为主节点候选节点。
在一个实施例中,确定模块200具体用于:
基于轮询调度算法从所有所述主节点候选节点中确定主节点;或
基于所有所述主节点候选节点生成随机数,并基于各所述随机数从各所述主节点候选节点中确定主节点。
在一个实施例中,确定模块200还用于:
从所有第一节点中确定出第二节点;所述第一节点为所有节点中所述主节点候选节点之外的节点;
将所述第二节点与所述主节点候选节点中除所述主节点之外的主节点候选节点,均确定为从属节点。
在一个实施例中,确定模块200还包括剔除单元(图中未示出),所述剔除单元用于:
将所有所述第一节点的权重参考信息分别与第二预设阈值进行比较;
将所有所述第一节点中,权重参考信息小于所述第二预设阈值的第一节点剔除,得到第二节点,其中,所述第二预设阈值小于所述第一预设阈值。
在一个实施例中,共识模块300具体用于:
基于所述主节点生成当前的区块处理请求对应的区块,并将所述区块对应的区块信息加密后广播至所述目标区块链;
基于所有所述从属节点接收所述区块信息,对所述区块信息进行验证,并广播验证得到的第一验证信息,所述第一验证信息包括第一确认信息或空赋值消息;
确定任一所述从属节点接收到数量大于第三预设阈值的所述第一验证信息,则检测是否存在任一所述从属节点在预设时间内接收到数量大于所述第三预设阈值的第一确认信息,并基于检测结果广播第二验证信息,所述第二验证信息包括第二确认信息或空赋值消息,所述第三预设阈值基于所述从属节点的数量确定;
确定任一所述从属节点接收到数量大于所述第三预设阈值的第二确认信息,则在确定接收到所述区块后将所述区块添加至所述目标区块链。
在一个实施例中,共识模块300还用于:
基于对当前的区块处理请求与历史区块处理请求进行共识的过程中,各所述从属节点广播信息的异常情况,对各所述从属节点对应的权重参考信息进行调整,得到各所述从属节点的更新权重参考信息。
图6示例了一种电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器(processor)810、通信接口(Communication Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的计算机程序,以执行基于区块链的数据处理方法的步骤,例如包括:
基于目标区块链中各节点的权重参考信息,从所有节点中筛选出主节点候选节点;
从所述主节点候选节点中确定主节点,并从所有节点的其他节点中确定从属节点;
由所述主节点与所有所述从属节点,共同对当前的区块处理请求进行共识;
其中,所述权重参考信息是基于所述目标区块链中所有节点,在对历史区块处理请求进行共识时广播信息的异常情况,对所有节点的原权重参考信息进行调整得到的。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本申请实施例还提供一种存储介质,所述存储介质为计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于使处理器执行上述各实施例提供的方法的步骤,例如包括:
基于目标区块链中各节点的权重参考信息,从所有节点中筛选出主节点候选节点;
从所述主节点候选节点中确定主节点,并从所有节点的其他节点中确定从属节点;
由所述主节点与所有所述从属节点,共同对当前的区块处理请求进行共识;
其中,所述权重参考信息是基于所述目标区块链中所有节点,在对历史区块处理请求进行共识时广播信息的异常情况,对所有节点的原权重参考信息进行调整得到的。
所述计算机可读存储介质可以是处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NANDFLASH)、固态硬盘(SSD))等。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (9)
1.一种基于区块链的数据处理方法,其特征在于,包括:
基于目标区块链中各节点的权重参考信息,从所有节点中筛选出主节点候选节点;
从所述主节点候选节点中确定主节点,并从所有节点的其他节点中确定从属节点;
由所述主节点与所有所述从属节点,共同对当前的区块处理请求进行共识;
其中,所述权重参考信息是基于所述目标区块链中所有节点,在对历史区块处理请求进行共识时广播信息的异常情况,对所有节点的原权重参考信息进行调整得到的;
其中,所述由所述主节点与所有所述从属节点,共同对当前的区块处理请求进行共识的步骤包括:
基于所述主节点生成当前的区块处理请求对应的区块,并将所述区块对应的区块信息加密后广播至所述目标区块链;
基于所有所述从属节点接收所述区块信息,对所述区块信息进行验证,并广播验证得到的第一验证信息,所述第一验证信息包括第一确认信息或空赋值消息;
确定任一所述从属节点接收到数量大于第三预设阈值的所述第一验证信息,则检测是否存在任一所述从属节点在预设时间内接收到数量大于所述第三预设阈值的第一确认信息,并基于检测结果广播第二验证信息,所述第二验证信息包括第二确认信息或空赋值消息,所述第三预设阈值基于所述从属节点的数量确定;
确定任一所述从属节点接收到数量大于所述第三预设阈值的第二确认信息,则在确定接收到所述区块后将所述区块添加至所述目标区块链。
2.根据权利要求1所述的基于区块链的数据处理方法,其特征在于,所述基于目标区块链中各节点的权重参考信息,从所有节点中筛选出主节点候选节点的步骤包括:
分别将目标区块链的各节点的权重参考信息与第一预设阈值进行比较;
将权重参考信息大于或等于所述第一预设阈值的节点确定为主节点候选节点。
3.根据权利要求2所述的基于区块链的数据处理方法,其特征在于,所述从所有节点的其他节点中确定从属节点的步骤包括:
从所有第一节点中确定出第二节点;所述第一节点为所有节点中所述主节点候选节点之外的节点;
将所述第二节点与所述主节点候选节点中除所述主节点之外的主节点候选节点,均确定为从属节点。
4.根据权利要求3所述的基于区块链的数据处理方法,其特征在于,所述从所有第一节点中确定出第二节点的步骤包括:
将所有所述第一节点的权重参考信息分别与第二预设阈值进行比较;
将所有所述第一节点中,权重参考信息小于所述第二预设阈值的第一节点剔除,得到第二节点,其中,所述第二预设阈值小于所述第一预设阈值。
5.根据权利要求1所述的基于区块链的数据处理方法,其特征在于,所述从所述主节点候选节点中确定主节点的步骤包括:
基于轮询调度算法从所有所述主节点候选节点中确定主节点;或
基于所有所述主节点候选节点生成随机数,并基于各所述随机数从各所述主节点候选节点中确定主节点。
6.根据权利要求1至5任意一项所述的基于区块链的数据处理方法,其特征在于,在对当前的区块处理请求进行共识之后,还包括:
基于对当前的区块处理请求与历史区块处理请求进行共识的过程中,各所述从属节点广播信息的异常情况,对各所述从属节点对应的权重参考信息进行调整,得到各所述从属节点的更新权重参考信息。
7.一种基于区块链的数据处理装置,其特征在于,包括:
剔除模块,用于基于目标区块链中各节点的权重参考信息,从所有节点中筛选出主节点候选节点,其中,所述权重参考信息是基于所述目标区块链中所有节点,在对历史区块处理请求进行共识时广播信息的异常情况,对所有节点的原权重参考信息进行调整得到的;
确定模块,用于从所述主节点候选节点中确定主节点,并从所有节点的其他节点中确定从属节点;
共识模块,用于由所述主节点与所有所述从属节点,共同对当前的区块处理请求进行共识;
所述共识模块,还用于基于所述主节点生成当前的区块处理请求对应的区块,并将所述区块对应的区块信息加密后广播至所述目标区块链;基于所有所述从属节点接收所述区块信息,对所述区块信息进行验证,并广播验证得到的第一验证信息,所述第一验证信息包括第一确认信息或空赋值消息;确定任一所述从属节点接收到数量大于第三预设阈值的所述第一验证信息,则检测是否存在任一所述从属节点在预设时间内接收到数量大于所述第三预设阈值的第一确认信息,并基于检测结果广播第二验证信息,所述第二验证信息包括第二确认信息或空赋值消息,所述第三预设阈值基于所述从属节点的数量确定;确定任一所述从属节点接收到数量大于所述第三预设阈值的第二确认信息,则在确定接收到所述区块后将所述区块添加至所述目标区块链。
8.一种电子设备,包括处理器和存储有计算机程序的存储器,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6任一项所述的基于区块链的数据处理方法的步骤。
9.一种存储介质,所述存储介质为计算机可读存储介质,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6任一项所述的基于区块链的数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211107367.4A CN115190130B (zh) | 2022-09-13 | 2022-09-13 | 基于区块链的数据处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211107367.4A CN115190130B (zh) | 2022-09-13 | 2022-09-13 | 基于区块链的数据处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115190130A CN115190130A (zh) | 2022-10-14 |
CN115190130B true CN115190130B (zh) | 2022-12-02 |
Family
ID=83524223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211107367.4A Active CN115190130B (zh) | 2022-09-13 | 2022-09-13 | 基于区块链的数据处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115190130B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116226138B (zh) * | 2023-05-08 | 2023-07-25 | 湖南三湘银行股份有限公司 | 一种基于区块链的信息漏洞处理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109559120A (zh) * | 2018-12-03 | 2019-04-02 | 国网电子商务有限公司 | 基于权重的区块链共识方法、系统、存储介质及电子设备 |
CN111464353A (zh) * | 2020-03-31 | 2020-07-28 | 财付通支付科技有限公司 | 区块链节点管理方法、装置、计算机以及可读存储介质 |
CN114024974A (zh) * | 2021-10-28 | 2022-02-08 | 上海应用技术大学 | 用于化工厂易燃气体监测系统的pbft算法改进方法 |
CN114741721A (zh) * | 2022-03-15 | 2022-07-12 | 国网四川省电力公司天府新区供电公司 | 针对文件区块链的基于贡献值证明的共识装置及共识方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10944624B2 (en) * | 2019-06-28 | 2021-03-09 | Advanced New Technologies Co., Ltd. | Changing a master node in a blockchain system |
US20210099312A1 (en) * | 2019-09-27 | 2021-04-01 | Cypherium Blockchain Inc. | Systems and methods for selecting and utilizing a committee of validator nodes in a distributed system |
CN113127569A (zh) * | 2021-05-11 | 2021-07-16 | 中国工商银行股份有限公司 | 用于区块链系统的共识方法、装置、电子设备及存储介质 |
CN113269630A (zh) * | 2021-07-06 | 2021-08-17 | 贵州大学 | 一种用于联盟区块链的实用拜占庭容错算法改进方案 |
CN114048517B (zh) * | 2022-01-14 | 2022-05-20 | 北京大学深圳研究生院 | 区块链的双通道共识系统和方法、计算机可读存储介质 |
-
2022
- 2022-09-13 CN CN202211107367.4A patent/CN115190130B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109559120A (zh) * | 2018-12-03 | 2019-04-02 | 国网电子商务有限公司 | 基于权重的区块链共识方法、系统、存储介质及电子设备 |
CN111464353A (zh) * | 2020-03-31 | 2020-07-28 | 财付通支付科技有限公司 | 区块链节点管理方法、装置、计算机以及可读存储介质 |
CN114024974A (zh) * | 2021-10-28 | 2022-02-08 | 上海应用技术大学 | 用于化工厂易燃气体监测系统的pbft算法改进方法 |
CN114741721A (zh) * | 2022-03-15 | 2022-07-12 | 国网四川省电力公司天府新区供电公司 | 针对文件区块链的基于贡献值证明的共识装置及共识方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115190130A (zh) | 2022-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210105295A1 (en) | Trust topology selection for distributed transaction processing in computing environments | |
US11347726B2 (en) | Cross-chain transaction method and apparatus | |
US20220385460A1 (en) | Systems and methods for selecting and utilizing a committee of validator nodes in a distributed system | |
CN111383021B (zh) | 基于区块链网络的节点管理方法、装置、设备及介质 | |
EP3394756B1 (en) | Method and system for byzantine fault - tolerance replicating of data | |
CN111262701B (zh) | 一种重放攻击检测方法、系统、设备及存储介质 | |
CN111343208B (zh) | 基于区块链的数据检测方法、装置及计算机可读存储介质 | |
CN109478216B (zh) | 知识推断和统计相关系统的并行化和n层级化 | |
CN110569251A (zh) | 一种数据处理方法、相关设备及计算机可读存储介质 | |
EP3937053B1 (en) | Methods and apparatuses for transferring transaction based on blockchain integrated station | |
US20220158836A1 (en) | Fork Processing Method And Blockchain Node | |
CN115190130B (zh) | 基于区块链的数据处理方法、装置、电子设备及存储介质 | |
US20230037460A1 (en) | Cluster-wise license information replication | |
CN110661656A (zh) | 一种区块链快速共识方法及装置 | |
CN113923093B (zh) | 一种基于可信执行环境的新型拜占庭容错共识方法 | |
CN111432028A (zh) | 一种基于区块链的业务处理方法及装置 | |
CN114465792B (zh) | 基于区块链和Mesh组网的集群控制与任务分配方法及系统 | |
CN111814204B (zh) | 基于区块链的数据共识方法、相关设备及存储介质 | |
CN114257404B (zh) | 异常外联统计告警方法、装置、计算机设备和存储介质 | |
CN113761479A (zh) | 一种软件授权方法、系统、设备及计算机存储介质 | |
Xie et al. | A raft algorithm with byzantine fault-tolerant performance | |
Dadon-Elichai | RDS: Remote distributed scheme for protecting mobile agents | |
US20240259421A1 (en) | SYSTEM AND METHOD TO MITIGATE DISTRIBUTED DENIAL OF SERVICE (DDoS) ATTACKS | |
CN115392912B (zh) | 随机数生成方法、系统、设备及存储介质 | |
CN117220931A (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 |