CN116245526A - 区块链节点管理方法、装置、设备及存储介质 - Google Patents
区块链节点管理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116245526A CN116245526A CN202310206716.6A CN202310206716A CN116245526A CN 116245526 A CN116245526 A CN 116245526A CN 202310206716 A CN202310206716 A CN 202310206716A CN 116245526 A CN116245526 A CN 116245526A
- Authority
- CN
- China
- Prior art keywords
- transaction
- target
- node
- block
- blockchain
- 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.)
- Pending
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
-
- 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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明属于区块链技术领域,解决了现有技术中如何有效规避接收客户端交易的节点作恶问题,提供了一种区块链节点管理方法、装置、设备及存储介质。包括客户端将目标交易发送给多个成员节点,然后由其中至少一个成员节点将目标交易发送个主节点,在接收到目标交易后,主节点基于PBFT协议对目标交易打包上链共识,生成对应的目标区块,使得目标交易在区块链上被正常执行;本发明通过多个成员节点同时接收到客户端发送的目标交易,可以避免单一成员节点作为目标交易的交易接收节点时成员节点作恶导致交易失败现象,提高目标交易在区块链的执行成功率,降低成员节点作恶带来的交易失败风险。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种区块链节点管理方法、装置、设备及存储介质。
背景技术
区块链技术构建在传输网络(也可称为区块链网络)之上,传输网络中的分布式节点设备(以下简称为节点)通过运行区块链程序,实现以预设共识策略生成区块数据,并利用链式数据结构验证与存储区块数据,最终实现了数据防篡改机制,为业务开展提供了安全可信的技术新思路。
PBFT(Practical Byzantine Fault Tolerance,拜占庭)协议是区块链的联盟链最常用的共识机制;现有技术中,区块链的交易流程为客户端将交易发送至PBFT集群中的任一节点上,然后任一节点将该交易转发至Leader节点(主节点),Leader节点对该交易打包后再基于PBFT协议对该交易进行共识,但如果PBFT集群中接收交易的节点或Leader节点作恶,则可能导致交易被恶意遗弃,虽然PBFT协议自身能够发现作恶节点,但依靠PBFT协议自身发现作恶节点存在滞后性,存在系统吞吐量下降问题。
发明内容
有鉴于此,本发明实施例提供了一种区块链节点管理方法、装置、设备及存储介质,用以解决现有技术中如何有效规避接收客户端交易的节点作恶问题。
本发明采用的技术方案是:
一方面,本发明提供了一种区块链节点管理方法,所述方法包括:
响应于至少一个成员节点发送的目标交易,其中,所述目标交易为客户端将同一笔交易同时发送给区块链上多个成员节点的交易请求;
基于PBFT协议对所述目标交易上链共识,得到所述目标交易对应的目标区块。
优选地,将所述目标交易发送给f+m个成员节点,其中,f为预设作恶成员节点数量,m为正整数,且1≤m。
优选地,将所述目标交易发送给2f+q个成员节点,其中,f为预设作恶成员节点数量,q为正整数,且1≤q。
优选地,所述响应于至少一个成员节点发送的目标交易,其中,所述目标交易为客户端将同一笔交易同时发送给区块链上多个成员节点的交易请求包括:
获取所述目标交易对应的第一目标区块,其中,所述第一目标区块为在先将所述目标交易发送给区块链任一成员节点进行区块链交易对应的区块;
若所述第一目标区块不满足出块条件,则将所述目标交易再次发送给区块链多个成员节点。
优选地,所述第一目标区块包括2f+1个成员节点的签名。
优选地,若存在所述第一目标区块,所述若所述第一目标区块不满足出块条件,则将所述目标交易再次发送给区块链多个成员节点包括:
获取所述第一目标区块携带的签名数量;
若所述签名数量小于预设数量,则所述第一目标区块不满足出块条件,将所述目标交易再次发送给区块链多个成员节点。
优选地,所述基于PBFT协议对所述目标交易上链共识,得到所述目标交易对应的目标区块包括:
获取各成员节点针对所述目标交易进行共识的共识信息,其中,所述共识信息包括节点的签名信息;
若接收的所述共识信息的数量达到预设数量,则将各所述共识信息写入当前区块并提交给应用层,得到所述目标区块。
另一方面,本发明还提供了一种区块链节点管理装置,包括:
交易获取模块:用于响应于至少一个成员节点发送的目标交易,其中,所述目标交易为客户端发送给区块链多个成员节点的交易请求;
交易执行模块:用于基于PBFT协议对所述目标交易上链共识,得到所述目标交易的共识结果并写入所述目标交易对应的目标区块。
本发明还提供了一种介质,其上存储有计算机程序指令,当所述计算机程序指令被处理器执行时实现上述任一项所述的方法。
综上所述,本发明的有益效果如下:
本发明提供的区块链节点管理方法、装置、设备及存储介质,包括客户端将目标交易发送给多个成员节点,然后由其中至少一个成员节点将目标交易发送个主节点,在接收到目标交易后,主节点基于PBFT协议对目标交易打包上链共识,生成对应的目标区块,使得目标交易在区块链上被正常执行;避免采用单一成员节点接收目标交易时,若成员节点作恶故意丢弃或延迟发送目标交易至主节点,主节点无法正常对该目标交易打包并进行区块链共识,致使目标交易因为出块异常造成交易失败;本发明通过多个成员节点同时接收到客户端发送的目标交易,可以避免单一成员节点作为目标交易的交易接收节点时成员节点作恶导致交易失败现象,提高目标交易在区块链的执行成功率,降低成员节点作恶带来的交易失败风险。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,这些均在本发明的保护范围内。图1为区块链中各区块的连接关系示意图;
图2为本发明实施例1中获取目标交易基于PBFT协议生成的目标区块的流程示意图;
图3为本发明实施例1中获取交易通过多个节点二次递交给区块链的流程示意图;
图4为本发明实施例1中获取交易在区块链执行生成目标区块的流程示意图;
图5为本发明实施例1中获取主节点重新选举的流程示意图;
图6为本发明实施例1中获取节点交易池交易状态的流程示意图;
图7为本发明实施例2中基于PBFT协议进行区块链交易的交易装置结构示意图;
图8为本发明实施例2中防止区块链节点作恶的交易装置结构示意图;
图9为本发明实施例2中区块链节点作恶的区块链二次交易的交易装置结构示意图;
图10为本发明实施例3中的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。在本发明的描述中,需要理解的是,术语“中心”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。如果不冲突,本发明以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。
区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块(即区块或数据区块),每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后进行记录存储。对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
区块链网络中可以包括多个节点,多个节点可以是形成区块链网络的各个客户端。每个节点在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护该区块链网络内的共享数据。为了保证区块链网络内的信息互通,区块链网络中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。例如,当区块链网络中的任意节点接收到输入信息时,区块链网络中的其它节点便根据共识算法获取该输入信息,将该输入信息作为共享数据进行存储,使得区块链网络中全部节点上存储的数据均一致。
区块链网络中的每个节点(成员节点)均具有与其对应的节点标识,而且区块链网络中的每个节点均可以存储有其它节点的节点标识,以便后续根据其它节点的节点标识,将生成的区块广播至区块链网络中的其它节点。每个节点中可维护一个节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为I P(I nternetProtoco l,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息。
区块链网络中的每个节点均存储一条相同的区块链。区块链由多个区块组成,参见图1所示,区块链由多个区块组成,创世块包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度值等,区块主体中存储有输入信息;创世块的下一区块以创世块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值等,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。
在生成区块链中的各个区块时,区块链所在的节点在接收到输入信息时,对输入信息进行校验,完成校验后,将输入信息存储至内存池中,并更新其用于记录输入信息的哈希树;之后,将更新时间戳更新为接收到输入信息的时间,并尝试不同的随机数,多次进行特征值计算,得到符合要求的特征值,符合要求的特征值在一段时间内为定值,并在超出固定时间段后再次进行确定。
这样,当计算得到符合要求的随机数时,便可将信息对应存储,生成区块头和区块主体,得到当前区块。随后,区块链所在节点根据数据共享系统中其它节点的节点标识,将新生成的区块分别发送给其所在的数据共享系统中的其它节点,由其它节点对新生成的区块进行校验,并在完成校验后将新生成的区块添加至其存储的区块链中。
区块链网络中各个节点可以是服务器,也可以是终端设备。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算(Cloud Computing)、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。各个节点之间可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
现有技术中基于PBFT协议的共识流程说明:客户端发出交易请求至PBFT集群的任一节点,该节点接收到交易后将该交易发送至Leader节点;Leader节点打包该交易并进行三阶段共识,三阶段共识包括:预备(pre-prepare)、准备(prepare)、落实执行(commit),具体流程如下:
(1)Leader节点(主节点)对该交易进行验证,验证通过后打包该交易并广播(主节点给请求赋值一个序号,广播序号分配消息和客户端的请求消息),并将构造pre-prepare消息,然后发起pre-prepare消息给所有的成员节点,并且自己也保存这个交易;所有的成员收到pre-prepare消息后对该交易进行校验,包括数据的顺序是否正确,操作的先后有序性,以及交易是否有效比如签名(防止客户端造假或者Leader节点篡改造假);成员节点验证通过后保存该交易,然后广播Prepare消息同时进入Prepare阶段;
(2)所有成员节点统计针对该交易的Prepare消息,当统计的Prepare消息超过对应节点数量时,表明大部分节点已经完成了持久化,则进入commit阶段;
(3)广播commit消息,并且统计收到的commit消息的数量,当超过对应数量节点都发出commit的消息时,该节点完成commit阶段,将共识结果写入自身的区块。
实施例1
请参见图2,图2为本发明实施例1中区块链节点管理方法,所述方法包括:
S1:响应于至少一个成员节点发送的目标交易,其中,所述目标交易为客户端将同一笔交易同时发送给区块链上多个成员节点的交易请求;
具体的,客户端在有交易需要在区块链执行时,将该目标交易发送给区块链多个成员节点,也即区块链上多个成员节点会在同一时间收到来至同一客户端的同一个目标交易,收到客户端发送的目标交易的成员节点可能包括主节点,也可能仅包括从节点;如果客户端将目标交易随机发送给多个成员节点不包括主节点,那么需要成员节点将该目标交易再发送给主节点,主节点再对该目标交易打包后进行区块链共识,若客户端将目标交易随机发送给多个成员节点包括主节点,则主节点对该目标交易打包后进行区块链共识。
S2:基于PBFT协议对所述目标交易上链共识,得到所述目标交易对应的目标区块。
具体的,主节点接收到来至从节点或直接来至客户端的目标交易后,主节点基于PBFT协议对目标交易打包后进行区块链共识,包括:主节点对接收的目标交易进行验证,验证通过后,向区块链各成员节点广播,广播内容包括:分配给目标交易的序号信息和客户端的请求信息,然后构建目标交易的pre-prepare消息并上链由各成员节点进行共识,最后各成员节点生成共识对应的commit消息写入对应的区块,得到目标交易的区块数据并发送至区块链的应用层(客户端可以从应用层抓取该区块,从而得到目标交易的执行信息)。
本发明提供的区块链节点管理方法,包括客户端将目标交易发送给多个成员节点,然后由其中至少一个成员节点将目标交易发送个主节点,在接收到目标交易后,主节点基于PBFT协议对目标交易打包上链共识,生成对应的目标区块,使得目标交易在区块链上被正常执行;避免采用单一成员节点接收目标交易时,若成员节点作恶故意丢弃或延迟发送目标交易至主节点,主节点无法正常对该目标交易打包并进行区块链共识,致使目标交易因为出块异常造成交易失败;本发明通过多个成员节点同时接收到客户端发送的目标交易,可以避免单一成员节点作为目标交易的交易接收节点时成员节点作恶导致交易失败现象,提高目标交易在区块链的执行成功率,降低成员节点作恶带来的交易失败风险。
在一实施例中,所述S1包括:将所述目标交易发送给f+1个成员节点,其中,f为预设作恶成员节点数量。
具体的,客户端在发送目标交易给多个成员节点时,优选将目标交易发送给f+1个成员节点,其中,f为预设作恶成员节点数量,从而保证至少有一个成员节点会正常将目标交易发送给主节点,保证目标交易能够正常到达主节点并进行上链交易,防止存在从节点作恶,导致主节点无法收到客户端发送的目标交易,其中,f为基于PBFT共识机制所选取,PBFT共识方法作为本领域现有技术,此处不再赘述。
需要说明的是:客户端将目标交易发送给多个成员节点,接收目标交易的成员节点数量不限于上述f+1个节点,还可以是f+m个,m为正整数,且1≤m,同样的,也可以是f-n个,n为小于f在的正整数,当采用f-n个成员节点时,存在无法确保有1个成员节点会正常将目标交易发送给主节点,可以采用定时获取目标交易对应的目标区块来判定执行结果,若认为成员节点作恶,则可以再重新选择新的f-n个节点再次发起目标交易,f+1个仅为优选实施方式,其他形式的节点数量也应在本方案的保护范围内。
在一实施例中,所述S1包括:将所述目标交易发送给2f+1个成员节点,其中,f为预设作恶成员节点数量。
具体的,客户端将目标交易发送给多个成员节点,接收目标交易的成员节点数量优选2f+1个节点,还可以是2f+q个,q为大于等于1的正整数,基于PBFT协议的共识机制,允许区块链存在f个作恶节点,假设接收到客户端发送的目标交易的成员节点数量刚好有f个节点,且主节点刚好是f个节点之一,或主节点接收到目标交易后作恶,那么有f+1个节点可以同时发起主节点选举交易,也能避免作恶节点恶意发起主节点选举交易;其中,选择2f+1个成员节点接收目标交易仅为优选实施方式,其他形式的节点数量也应在本方案的保护范围内。
在一实施例中,请参见图3,所述S1包括:
S11:获取所述目标交易对应的第一目标区块,其中,所述第一目标区块为在先将所述目标交易发送给区块链任一成员节点进行区块链交易对应的区块;
S12:若所述第一目标区块不满足出块条件,则将所述目标交易再次发送给区块链多个成员节点。
具体的,客户端就一个新的目标交易需要提交给区块链执行时,区块链采用常规的将目标交易随机发送给任意一个成员节点,该成员节点可以是从节点,也可以是主节点本身;在从节点接收到目标交易后再发送给主节点,主节点接收到目标交易后,对接收的目标交易进行验证,验证通过后,向区块链各成员节点广播,然后构建目标交易的pre-prepare消息并上链由各成员节点进行共识,最后各成员节点生成共识对应的commit消息写入对应的区块,在区块链数据层得到目标交易的区块数据,然后将该区块数据传输至区块链业务层,从而在区块链业务层得到目标交易对应的第一目标区块,以便客户端可以从区块链业务层获得目标交易对应的第一目标区块;若获得的第一目标区块不符合出块条件,则认为存在成员节点作恶,那么重新将目标交易发送给多个成员节点,再次进行区块链交易,最终得到目标交易在区块链上执行成功对应的目标区块;其中,第一目标区块不符合出块条件包括:目标交易被丢弃不存在第一目标区块、第一目标区块出块时间不符合要求等。
在一实施例中,若目标交易在区块链上执行成功,也即在区块链上生成目标交易对应的目标区块,则目标区块应至少包括2f+1个成员节点签名的签名信息。
具体的,基于PBFT协议的共识方法,节点需要在接收到2f+1个节点的commit消息后才能正常出块,若成员节点作恶,则可能导致出块数据中包含的commit消息数量不足,恶意丢弃或掉包正常节点的commi t消息;为此,本发明在区块中增加commit消息签名信息,也即各节点在做出commit消息后需要对该commit消息签名后才能发布到区块链上;如此客户端在调取目标交易对应的区块数据后可以对区块数据中的签名数量和签名真实性进行验证,从而判断目标交易是否在区块链上执行成功,避免节点作恶误导客户端对目标交易的执行结果的判断。
在一实施例中,若存在所述第一目标区块,所述S12包括:
S121:获取所述第一目标区块携带的签名数量;
S122:若所述签名数量小于预设数量,则所述第一目标区块不满足出块条件,将所述目标交易再次发送给区块链多个成员节点。
具体的,客户端从区块链业务层随机抓取目标交易对应的第一目标区块(每个节点都存有该第一目标区块,各节点存储的第一目标区块的差异在于存有不同节点签名的签名信息,需要说明的是,节点签名的签名数量是一致的,这是共识逻辑预先设置好的),调取第一目标区块节点签名信息,统计其中具有节点签名的commi t信息数量,若节点签名的签名数量符合预设数量,则认为该目标交易的执行结果可信,不存在成员节点作恶现象,该区块符合区块出块条件,表明目标交易在区块链上执行成功;若节点签名的签名数量小于预设数量,说明该区块出块异常,则认为存在成员节点作恶,此时客户端重新将目标交易同时发送给多个区块链节点,再次进行区块链交易;其中,所述第一目标区块不满足出块条件为,所述第一目标区块包括k个成员节点的签名,k≤2f,且k为正整数,其中,f为预设作恶成员节点数量。
在一实施例中,若不存在所述第一目标区块,则将所述目标交易再次发送给区块链多个成员节点,以便目标交易能够被区块链成功执行,也即最后客户端可以从区块链上抓取到目标交易对应的目标区块,该目标区块存在2f+1个成员节点签名的共识信息(commit信息)。
具体的,若客户端从区块链获取第一目标区块失败,则表明目标交易未在区块链上执行,则可能存在目标交易被接收的从节点丢弃或主节点未将目标交易打包上链,即存在从节点或主节点作恶现象;则客户端将目标交易再次发送给多个成员节点进行上链交易,为了保证至少有一个从节点是正常节点,客户端将目标交易同时发送给f+m个成员节点,1≤m,且m为整数;为了保证主节点作恶能够正常发起主节点重新选举交易,客户端将目标交易同时发送给2f+q个成员节点,1≤q,且q为整数;即如果存在f个节点作恶,且包括主节点作恶,那么将至少会有f+1个正常节点会发起主节点作恶,需重新选举主节点的交易,同样的,接收到至少f+1个节点发起主节点重新选举交易,能够保证至少有1个交易是真实的;避免主节点被恶意轮换掉。
需要说明的是:因为默认作恶节点为f,那么f+1个确认节点中,肯定有1个是正常节点,只要有1个正常节点的确认消息,则标识交易成功;同时,因为1个确认消息必须是至少2f+1个节点都确认操作成功了,才生成1个最终确认消息的。
在一实施例中,请参见图4,所述S2包括:
S21:获取各成员节点针对所述目标交易进行共识的共识信息,其中,所述共识信息包括节点的签名信息;
S22:若接收的所述共识信息的数量达到预设数量,则将各所述共识信息写入当前区块并提交给应用层,得到所述目标区块。
具体的,主节点在接收到目标交易后,将目标交易打包上链给各成员节点进行共识,成员节点在完成目标交易的执行结果上进行签名,签名后将共识信息发布到区块链上,同时接收其他成员节点发布在区块链上针对该目标交易的共识信息,共识信息包括执行结果和签名信息;当成员节点接收到足够多的共识信息后,将其写入对应的区块,并将该区块发送至任务层,从而使得任务层可被客户端抓取的区块中额外包含了各执行结果对应的成员节点的签名信息,通过判断签名数量识别目标区块是否为异常出块。
在一实施例中,请参见图5,所述方法包括:
S3:获取目标交易在交易池的第一状态信息,其中,所述目标交易为客户端将同一笔交易同时发送给区块链上多个成员节点的交易请求;
S4:若所述第一状态信息不符合要求,则发起主节点选举交易,得到目标主节点。
具体的,成员节点在接收到客户端发送的目标交易后,将目标交易存储在其交易池内,根据预设规则去获取交易池中目标交易的第一状态信息,若第一状态信息表明目标交易没有被主节点打包上链共识,则认为当前主节点存在作恶情况,则发起主节点选举交易,从而选出新的主节点对目标交易进行打包上链;预设规则包括定时任务和交易数量任务,定时任务:当接收到目标交易后,启动定时任务,在对应时间去获取第一状态信息;交易数量任务:实时统计交易池内未处理的交易数量,当到达预设值时,获取最先的交易对应的第一状态信息。
在一实施例中,所述S3包括:
S31:根据所述目标交易,启动第一定时任务;
S32:响应于所述第一定时任务,获取交易池中所述目标交易的第一状态信息;
其中,所述第一状态信息包括已执行信息和未执行信息。
具体的,成员节点(从节点)接收到目标交易后,将目标交易存储在交易池中,并启动第一定时任务,当到达第一定时任务所规定的时间时,从节点查询交易池中目标交易的第一状态信息,第一状态信息包括已执行信息和未执行信息,已执行信息包括:已删除、已执行标签。
在一实施例中,请参见图6,所述S32包括:
S321:响应于所述第一定时任务,获取交易池中所述目标交易的第二状态信息;
S322:若所述第二状态信息不符合要求,则发送所述目标交易至主节点,启动第二定时任务;
S323:响应于所述第二定时任务,获取交易池中所述目标交易的所述第一状态信息。
具体的,依据第一定时任务,从节点在T1时刻获取交易池中目标交易的第二状态信息,若第二状态信息不符合要求,如交易池依然存在目标交易或目标交易的标签依然为未执行,则从节点将目标交易主动发送至主节点,以确保主节点接收到该目标交易,同时启动第二定时任务,然后在T2时刻从节点再次获取交易池中目标交易的第一状态信息,以第一状态信息来判断主节点是否作恶;通过第一定时任务和第二定时任务相结合,避免主节点因为未接收到目标任务而被误替换。
在一实施例中,所述第一状态信息不符合要求为所述目标交易的执行标签为未执行或所述目标交易未被删除。
具体的,优选交易池中被执行的交易进行删除,也即从节点获取到目标交易完成基于PBFT协议的三阶段共识后,删除交易池中对应的目标交易,从而释放从节点的存储空间。
在一实施例中,当区块链选举出新的主节点后,所述方法还包括:
S5:将所述目标交易发送给所述目标主节点;
S6:根据所述目标交易,所述目标主节点对所述目标交易上链共识,得到所述目标交易对应的目标区块。
在一具体实施例中,以客户端A向客户端B发起一笔转账交易为例,客户端A发起转账交易,并基于第一执行逻辑将转账交易发送给任一成员节点,并在预设时间内向区块链任一节点抓取第一目标区块,第一目标区块为区块链针对该转账交易生成的区块数据,若区块链上不存在第一目标区块,即客户端A未能从区块链上获取到该转账交易对应的数据区块,则认为区块链存在主节点(Leader节点)或接收转账交易的从节点(follower节点)作恶,而致使该转账交易未被提议至区块链上进行共识交易;此时,客户端A则再次将转账交易发送给多个成员节点,多个成员节点包括全部由从节点组成,或由从节点和主节点共同组成;各成员节点将接收到的转账交易存储在节点的交易池中,并启动第一定时任务,若在第一定时任务对应的T1时刻,交易池中依然存在该转账交易或该转账交易的标签为未执行,则认为主节点没有接收到该转账交易(即认为客户端A再向多个成员节点发起转账交易时,成员节点不包括主节点),因此,将该转账交易发送给主节点,并启动第二定时任务,同时将转账交易的状态标签调整为已发送标签,若在T2第二定时任务对应的T2时刻,交易池中依然存在该转账交易或该转账交易的标签为未执行,则发起主节点重新选举的交易,从而选择新的主节点;新的主节点将该转账交易进行打包上链共识,从而得到客户端A发起的转账交易对应的第一目标区块;客户端A可以抓取该第一目标区块,从而获得转账交易的执行结果。
需要说明的是:从节点作恶表现为恶意丢弃交易不转发到主节点,导致交易交易未被执行,因为只有主节点将交易打包发起PBFT三阶段共识才能够有效的防止作恶攻击,若交易未到达主节点,那么基于PBFT协议的交易机制就无法有效防范这类从节点作恶;主节点作恶表现为主节点未对交易发起提议(未将交易打包上链共识),若主节点作恶则需要重新更换主节点,其中,交易未发起提议包括:主节点接收到交易但是故意不发起(作恶)和主节点未接收到交易。
在一实施例中,第一目标区块包括多个节点签名后的共识信息,即每个成员节点对该转账交易共识的commit信息签名后再广播至区块链网络,并同时接收其他节点签名后的commit信息;当commit消息数量达到要求后,该节点将commit消息写入目标交易对应的区块,并将该区块发送到业务层,使得目标交易对应的目标区块包括符合出块要求的节点签名对应的签名数量,从而便于客户端通过分析抓取的第一目标区块对应的签名数量来辨识目标交易是否存在节点作恶现象。
本发明提供的区块链节点管理方法,包括客户端将目标交易发送给多个成员节点,然后由其中至少一个成员节点将目标交易发送个主节点,在接收到目标交易后,主节点基于PBFT协议对目标交易打包上链共识,生成对应的目标区块,使得目标交易在区块链上被正常执行;避免采用单一成员节点接收目标交易时,若成员节点作恶故意丢弃或延迟发送目标交易至主节点,主节点无法正常对该目标交易打包并进行区块链共识,致使目标交易因为出块异常造成交易失败;本发明通过多个成员节点同时接收到客户端发送的目标交易,可以避免单一成员节点作为目标交易的交易接收节点时成员节点作恶导致交易失败现象,提高目标交易在区块链的执行成功率,降低成员节点作恶带来的交易失败风险。
实施例2
请参见图7,本发明基于实施例1的区块链节点管理方法还提供了一种区块链节点管理装置,所述装置包括:
交易获取模块:用于响应于至少一个成员节点发送的目标交易,其中,所述目标交易为客户端将同一笔交易同时发送给区块链上多个成员节点的交易请求;
交易执行模块:用于基于PBFT协议对所述目标交易上链共识,得到所述目标交易对应的目标区块。
本发明提供的区块链节点管理方法,包括客户端将目标交易发送给多个成员节点,然后由其中至少一个成员节点将目标交易发送个主节点,在接收到目标交易后,主节点基于PBFT协议对目标交易打包上链共识,生成对应的目标区块,使得目标交易在区块链上被正常执行;避免采用单一成员节点接收目标交易时,若成员节点作恶故意丢弃或延迟发送目标交易至主节点,主节点无法正常对该目标交易打包并进行区块链共识,致使目标交易因为出块异常造成交易失败;本发明通过多个成员节点同时接收到客户端发送的目标交易,可以避免单一成员节点作为目标交易的交易接收节点时成员节点作恶导致交易失败现象,提高目标交易在区块链的执行成功率,降低成员节点作恶带来的交易失败风险。
在一实施例中,所述交易获取模块还包括:将所述目标交易发送给f+1个成员节点,其中,f为预设作恶成员节点数量。
在一实施例中,所述交易获取模块还包括:将所述目标交易发送给2f+1个成员节点,其中,f为预设作恶成员节点数量。
在一实施例中,请参见图8,还包括:
第一执行模块:用于获取所述目标交易对应的第一目标区块,其中,所述第一目标区块为在先将所述目标交易发送给区块链任一成员节点进行区块链交易对应的区块;
数据分析模块:用于若所述第一目标区块不满足出块条件,则将所述目标交易再次发送给区块链多个成员节点。
在一实施例中,交易执行模块还包括:所述第一目标区块包括2f+1个成员节点的签名。
在一实施例中,若存在所述第一目标区块,所述数据分析模块包括:
签名数据获取单元:获取所述第一目标区块携带的签名数量;
签名数据处理单元:若所述签名数量小于预设数量,则所述第一目标区块不满足出块条件,将所述目标交易再次发送给区块链多个成员节点。
在一实施例中,区块抓取单元包括:若不存在所述第一目标区块,则将所述目标交易再次发送给区块链多个成员节点。
在一实施例中,所述交易执行模块包括:
信息获取单元:获取各成员节点针对所述目标交易进行共识的共识信息,其中,所述共识信息包括节点的签名信息;
信息统计单元:若接收的所述共识信息的数量达到预设数量,则将各所述共识信息写入当前区块并提交给应用层,得到所述目标区块。
在一实施例中,请参见图9,所述装置包括:
交易状态模块:获取目标交易在交易池的第一状态信息,其中,所述目标交易为客户端将同一笔交易同时发送给区块链上多个成员节点的交易请求;
交易执行模块:若所述第一状态信息不符合要求,则发起主节点选举交易,得到目标主节点。
在一实施例中,所述交易状态模块包括:
第一定时任务单元:根据所述目标交易,启动第一定时任务;
第一任务响应单元:响应于所述第一定时任务,获取交易池中所述目标交易的第一状态信息;
其中,所述第一状态信息包括已执行信息和未执行信息。
在一实施例中,所述第一任务响应单元包括:
第一信息单元:响应于所述第一定时任务,获取交易池中所述目标交易的第二状态信息;
第二信息单元:若所述第二状态信息不符合要求,则发送所述目标交易至主节点,启动第二定时任务;
信息输出单元:响应于所述第二定时任务,获取交易池中所述目标交易的所述第一状态信息。
在一实施例中,所述第一状态信息不符合要求为所述目标交易的执行标签为未执行或所述目标交易未被删除。
在一实施例中,所述装置还包括二次交易单元,当区块链选举出新的主节点后,所述二次交易单元包括:
交易发送单元:将所述目标交易发送给所述目标主节点;
交易处理单元:根据所述目标交易,所述目标主节点对所述目标交易上链共识,得到所述目标交易对应的目标区块。
本发明提供的一种区块链节点管理装置,包括客户端将目标交易发送给多个成员节点,然后由其中至少一个成员节点将目标交易发送个主节点,在接收到目标交易后,主节点基于PBFT协议对目标交易打包上链共识,生成对应的目标区块,使得目标交易在区块链上被正常执行;避免采用单一成员节点接收目标交易时,若成员节点作恶故意丢弃或延迟发送目标交易至主节点,主节点无法正常对该目标交易打包并进行区块链共识,致使目标交易因为出块异常造成交易失败;本发明通过多个成员节点同时接收到客户端发送的目标交易,可以避免单一成员节点作为目标交易的交易接收节点时成员节点作恶导致交易失败现象,提高目标交易在区块链的执行成功率,降低成员节点作恶带来的交易失败风险。
实施例3
本发明提供了一种电子设备和存储介质,请参见图10,包括至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令。
具体地,上述处理器可以包括中央处理器(CPU),或者特定集成电路(ApplicationSpecific Integrated Circuit,ASIC),或者可以被配置成实施本发明实施例的一个或多个集成电路,电子设备至少包括以下之一:计算机、移动终端、PC、平板电脑等。
存储器可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器可在数据处理装置的内部或外部。在特定实施例中,存储器是非易失性固态存储器。在特定实施例中,存储器包括只读存储器(ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。
处理器通过读取并执行存储器中存储的计算机程序指令,以实现上述实施例方式一中任意一种区块链节点管理方法。
在一个示例中,电子设备还可包括通信接口和总线。其中,处理器、存储器、通信接口通过总线连接并完成相互间的通信。
通信接口,主要用于实现本发明实施例中各模块、装置、单元和/或设备之间的通信。
总线包括硬件、软件或两者,将电子设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。
需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种区块链节点管理方法,其特征在于,所述方法包括:
响应于至少一个成员节点发送的目标交易,其中,所述目标交易为客户端将同一笔交易同时发送给区块链上多个成员节点的交易请求;
基于PBFT协议对所述目标交易上链共识,得到所述目标交易对应的目标区块。
2.根据权利要求1所述的区块链节点管理方法,其特征在于,将所述目标交易发送给f+m个成员节点,其中,f为预设作恶成员节点数量,m为正整数,且1≤m。
3.根据权利要求1所述的区块链节点管理方法,其特征在于,将所述目标交易发送给2f+q个成员节点,其中,f为预设作恶成员节点数量,q为正整数,且1≤q。
4.根据权利要求1所述的区块链节点管理方法,其特征在于,所述响应于至少一个成员节点发送的目标交易,其中,所述目标交易为客户端将同一笔交易同时发送给区块链上多个成员节点的交易请求包括:
获取所述目标交易对应的第一目标区块,其中,所述第一目标区块为在先将所述目标交易发送给区块链任一成员节点进行区块链交易对应的区块;
若所述第一目标区块不满足出块条件,则将所述目标交易再次发送给区块链多个成员节点。
5.根据权利要求4所述的区块链节点管理方法,其特征在于,所述第一目标区块包括2f+1个成员节点的签名。
6.根据权利要求4所述的区块链节点管理方法,其特征在于,若存在所述第一目标区块,所述若所述第一目标区块不满足出块条件,则将所述目标交易再次发送给区块链多个成员节点包括:
获取所述第一目标区块携带的签名数量;
若所述签名数量小于预设数量,则所述第一目标区块不满足出块条件,将所述目标交易再次发送给区块链多个成员节点。
7.根据权利要求1至6任一项所述的区块链节点管理方法,其特征在于,所述基于PBFT协议对所述目标交易上链共识,得到所述目标交易对应的目标区块包括:
获取各成员节点针对所述目标交易进行共识的共识信息,其中,所述共识信息包括节点的签名信息;
若接收的所述共识信息的数量达到预设数量,则将各所述共识信息写入当前区块并提交给应用层,得到所述目标区块。
8.一种区块链节点管理装置,其特征在于,包括:
交易获取模块:用于响应于至少一个成员节点发送的目标交易,其中,所述目标交易为客户端发送给区块链多个成员节点的交易请求;
交易执行模块:用于基于PBFT协议对所述目标交易上链共识,得到所述目标交易的共识结果并写入所述目标交易对应的目标区块。
9.一种电子设备,其特征在于,包括:至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现如权利要求1-7中任一项所述的方法。
10.一种存储介质,其上存储有计算机程序指令,其特征在于,当所述计算机程序指令被处理器执行时实现如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310206716.6A CN116245526A (zh) | 2023-03-07 | 2023-03-07 | 区块链节点管理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310206716.6A CN116245526A (zh) | 2023-03-07 | 2023-03-07 | 区块链节点管理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116245526A true CN116245526A (zh) | 2023-06-09 |
Family
ID=86632902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310206716.6A Pending CN116245526A (zh) | 2023-03-07 | 2023-03-07 | 区块链节点管理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116245526A (zh) |
-
2023
- 2023-03-07 CN CN202310206716.6A patent/CN116245526A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112837160B (zh) | 基于区块链的跨链交易方法、装置和计算机可读存储介质 | |
CN111010376B (zh) | 基于主从链的物联网认证系统及方法 | |
CN111444211B (zh) | 区块链共识节点校验方法、装置、设备以及存储介质 | |
CN111314067B (zh) | 区块存储方法、装置、计算机设备及存储介质 | |
CN112541758A (zh) | 基于区块链的多轮投票式容错排序共识机制与方法 | |
CN112600678B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN111654395B (zh) | 投票信息处理方法、装置、设备以及存储介质 | |
CN112311779B (zh) | 应用于区块链系统的数据访问控制方法及装置 | |
CN111899019A (zh) | 一种黑名单多方交叉验证和共享的方法及系统 | |
CN110928880A (zh) | 基于区块链的数据处理方法、装置、终端及介质 | |
CN111339141A (zh) | 一种数据传输的方法、区块链节点设备以及介质 | |
CN111259084A (zh) | 联盟链的记账节点管理方法、装置、设备及存储介质 | |
CN112256799A (zh) | 基于区块链的数据处理方法、装置、服务器及存储介质 | |
CN116245526A (zh) | 区块链节点管理方法、装置、设备及存储介质 | |
CN116384995A (zh) | 节点作恶的区块链交易方法、装置、设备及存储介质 | |
CN116188011A (zh) | 区块链防节点作恶的交易方法、装置、设备及存储介质 | |
CN112465516B (zh) | 基于区块链网络的设备管理方法,相关设备及存储介质 | |
CN115189871A (zh) | 一种基于可验证随机函数和门限签名的拜占庭容错共识算法 | |
CN112258184B (zh) | 冻结区块链网络的方法、装置、电子设备及可读存储介质 | |
CN117061538A (zh) | 一种基于区块链网络的共识处理方法及相关装置 | |
CN111190754A (zh) | 一种区块链事件通知方法及区块链系统 | |
CN115632800B (zh) | 基于区块链共识的物联网源端数据存储方法及装置 | |
CN117240478B (zh) | 一种pos机数据传输方法及系统 | |
CN117036038B (zh) | 一种基于联盟链的交易处理方法、装置、设备及存储介质 | |
CN117040929B (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 |