一种减少区块链共识系统中无效请求的方法技术方案

技术编号:26797814 阅读:23 留言:0更新日期:2020-12-22 17:15
本发明专利技术提出了一种减少区块链共识系统中无效请求的方法,包括如下步骤:S1,获取区块链中需要进行交互的节点,对每个节点达成RAFT共识协议,以太坊客户端负责接收有效生成的请求,RAFT共识协议则负责同步区块数据的共识工作;S2,以太坊客户端将生成的合法请求信息放入有效请求池然后向其他节点进行广播,整个区块将被以RAFT的方式同步到全部区块链节点;S3,假如在RAFT共识协议层面出现分区或者其他异常请求信息,导致各节点不能正确受理客户端发送的有效请求,造成了很多无效请求,进而影响系统使用效果;为了降低无效请求量,通过健康诊断方法,减少无效请求量,提升区块链使用效果。

【技术实现步骤摘要】
一种减少区块链共识系统中无效请求的方法
本专利技术涉及区块链领域,尤其涉及一种减少区块链共识系统中无效请求的方法。
技术介绍
企业版以太坊(quorum)、超级账本(Hyperledger)在使用RAFT协议作为共识算法时,针对RAFT节点分区后,原主节点无法成功执行交易,这种异常情况没有进行处理,所有写请求都会被转发到领导节点。1)所有写请求都被转发到领导节点,增加领导节点服务压力。2)当领导节点被分区到节点数量不足整体数量半数的分区,此领导节点的打包的交易数据将不能正常上链,如果使用本地交易的方式,会造成交易丢失。3)当领导节点被分区到节点数量不足整体数量半数的分区,客户端发送到该分区的请求没有返回正确的异常信息,可能造成访问超时、重复访问等问题。4)当领导节点被分区到节点数量不足整体数量半数的分区,这些节点的数据将不再是最新数据,此时读数据的请求得到的返回数据将是脏数据。
技术实现思路
本专利技术旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种减少区块链共识系统中无效请求的方法。为了实现本专利技术的上述目的,本专利技术提供了一种减少区块链共识系统中无效请求的方法,包括如下步骤:S1,获取区块链中需要进行交互的节点,对每个节点达成RAFT共识协议,以太坊客户端负责接收有效生成的请求,RAFT共识协议则负责同步区块数据的共识工作;S2,以太坊客户端将生成的合法请求信息放入有效请求池然后向其他节点进行广播,在RAFT共识协议中,角色为Leader的主节点将负责从有效请求池中取出数据进行打包并生成区块,并通过RAFT协议请求其他RAFT角色为Follower的从节点确认消息,当Leader主节点收到系统半数以上的Follower从节点的确认消息后,整个区块将被以RAFT的方式同步到全部区块链节点;S3,假如在RAFT共识协议层面出现分区或者其他异常请求信息,导致各节点不能正确受理客户端发送的有效请求,造成了很多无效请求,进而影响系统使用效果;为了降低无效请求量,通过健康诊断方法,减少无效请求量,提升区块链使用效果。优选的,所述S2包括:如果以太坊客户端发送进入区块链的请求,以太坊客户端进行P2P广播,通过广播协议将有效的请求写入有效请求池,将该有效请求发送至其它没有覆盖该有效请求的节点,进行RAFT共识协议的角色划分,如果得到半数以上的确认信息,则提交有效请求确认数据。优选的,所述S3包括:S3-1,在以太坊客户端中设置区块链上每个节点全局状态参数;S3-2,自身节点以心跳方式与其他节点维护联系,若节点无法与半数以上节点取得联系,则标记该节点健康状态为异常;S3-3,在区块链的RPC远程过程调用接口入口处设置拦截器,在执行RPC请求前要校验全局状态参数;S3-4,若全局状态参数异常,则返回给以太坊客户端特殊的状态码,以太坊客户端则直接向其他节点发送请求。优选的,还包括:通过在RAFT共识协议对各节点进行健康监测,若RAFT共识协议状态异常,会直接将状态同步至整个区块链,当有请求到达某一节点时会返回给以太坊客户端特定的状态码,以太坊客户端会向其他节点发送请求以获得正确数据。使用RAFT共识搭建的区块链,降低无效请求数据请求量。综上所述,由于采用了上述技术方案,本专利技术的有益效果是:任何分布式系统节点都存在网络分区的情况,在RAFT共识层被网络分区之后,此节点的数据将不是最新数据,本专利技术实施后发往此节点的交易请求能够在区块链上查到,交易时间缩短,并且提高数据反馈效率,降低无效指令请求量。节点一旦被异常分区,节点本身的健康检查机制会监测到分区异常,此节点将对请求的客户端发送特殊返回码以表示节点异常,降低请求等待、交易丢失、脏数据。本专利技术的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术的实践了解到。附图说明本专利技术的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:图1是本专利技术以太坊客户端改造示意图;图2是本专利技术共识系统工作示意图;图3是本专利技术RAFT协议层示意图;图4是本专利技术工作流程图。具体实施方式下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本专利技术,而不能理解为对本专利技术的限制。1)、如图1所示,CoralChain系统基于以太坊客户端进行改造,在共识层面使用RAFT共识协议,以太坊客户端负责接收交易生成的请求、维护有效请求池、交易广播等工作,RAFT则负责同步区块数据的共识工作。2)、如图2所示,是区块链系统正常工作的流程,以太坊客户端将生成的合法请求信息放入有效请求池然后向其他节点进行广播,在RAFT共识层面,角色为Leader(主)的节点将负责从有效请求池中取出数据进行打包并生成区块,并通过RAFT协议请求其他RAFT角色为Follower(从)的节点确认消息,当Leader节点收到系统半数以上的Follower节点的确认消息后,整个区块将被以RAFT的方式同步到全网。3)、如图3所示,假如在RAFT协议层面出现分区或者其他异常信息,导致节点不能正确受理客户端发送的请求,例如读取到了脏数据、交易不能被打包进区块、请求延迟等,造成了很多无效请求,进而影响系统使用效果;4)、为了降低无效请求量,提升区块链使用效果,我们采用如下解决方案,4.1)、在系统中设置节点全局状态参数;4.2)、自身节点以心跳方式与其他节点维护联系,若节点无法与半数以上节点取得联系,则视健康状态为异常;4.3)、在区块链的RPC接口入口处设置拦截器,在执行RPC请求前要校验全局状态参数;4.4)、若全局状态参数异常,则返回给客户端特殊的状态码,客户端则直接向其他节点发送请求。本专利技术通过在RAFT层面对节点进行健康监测,若RAFT层状态异常,会直接将状态同步至整个程序,当有请求到达该节点时会返回给客户端特定的状态码,客户端会向其他节点发送请求以获得正确数据。使用RAFT共识搭建的区块链系统,降低无效请求数据请求量。尽管已经示出和描述了本专利技术的实施例,本领域的普通技术人员可以理解:在不脱离本专利技术的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本专利技术的范围由权利要求及其等同物限定。本文档来自技高网...

【技术保护点】
1.一种减少区块链共识系统中无效请求的方法,其特征在于,包括如下步骤:/nS1,获取区块链中需要进行交互的节点,对每个节点达成RAFT共识协议,以太坊客户端负责接收有效生成的请求,RAFT共识协议则负责同步区块数据的共识工作;/nS2,以太坊客户端将生成的合法请求信息放入有效请求池然后向其他节点进行广播,在RAFT共识协议中,角色为Leader的主节点将负责从有效请求池中取出数据进行打包并生成区块,并通过RAFT协议请求其他RAFT角色为Follower的从节点确认消息,当Leader主节点收到系统半数以上的Follower从节点的确认消息后,整个区块将被以RAFT的方式同步到全部区块链节点;/nS3,假如在RAFT共识协议层面出现分区或者其他异常请求信息,导致各节点不能正确受理客户端发送的有效请求,造成了很多无效请求,进而影响系统使用效果;为了降低无效请求量,通过健康诊断方法,减少无效请求量,提升区块链使用效果。/n

【技术特征摘要】
1.一种减少区块链共识系统中无效请求的方法,其特征在于,包括如下步骤:
S1,获取区块链中需要进行交互的节点,对每个节点达成RAFT共识协议,以太坊客户端负责接收有效生成的请求,RAFT共识协议则负责同步区块数据的共识工作;
S2,以太坊客户端将生成的合法请求信息放入有效请求池然后向其他节点进行广播,在RAFT共识协议中,角色为Leader的主节点将负责从有效请求池中取出数据进行打包并生成区块,并通过RAFT协议请求其他RAFT角色为Follower的从节点确认消息,当Leader主节点收到系统半数以上的Follower从节点的确认消息后,整个区块将被以RAFT的方式同步到全部区块链节点;
S3,假如在RAFT共识协议层面出现分区或者其他异常请求信息,导致各节点不能正确受理客户端发送的有效请求,造成了很多无效请求,进而影响系统使用效果;为了降低无效请求量,通过健康诊断方法,减少无效请求量,提升区块链使用效果。


2.根据权利要求1所述的减少区块链共识系统中无效请求的方法,其特征在于,所述S2包括:
如果以太坊客户端发送进入区块链的请求,以太坊客户端进行P2P广播,通过广播协议将有...

【专利技术属性】
技术研发人员:刘铜冯宏伟田文丰张博徐强
申请(专利权)人:北京易安睿龙科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1