[发明专利]一种基于区块链的共识方法及装置有效
申请号: | 201710190786.1 | 申请日: | 2017-03-28 |
公开(公告)号: | CN107368507B | 公开(公告)日: | 2020-03-27 |
发明(设计)人: | 唐强 | 申请(专利权)人: | 创新先进技术有限公司 |
主分类号: | G06F16/27 | 分类号: | G06F16/27;G06F9/46 |
代理公司: | 北京晋德允升知识产权代理有限公司 11623 | 代理人: | 王戈 |
地址: | 开曼群岛大开曼岛西湾路802号木槿*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 区块 共识 方法 装置 | ||
本申请实施例公开了一种基于区块链的共识方法及装置,一个区块链节点包括第一服务器、第二服务器和至少一个数据库,所述方法包括:数据库存储执行共识所需的共识数据,供第一服务器和第二服务器在执行共识的过程中进行调用,第一服务器在执行共识前或执行共识过程中出现异常,第二服务器代替第一服务器,从数据库中获取共识数据,并根据共识数据执行共识,生成共识结果,第二服务器将共识结果存储在数据库中。利用本申请实施例,节点中正常的服务器能够接替异常的服务器,从数据库中获取共识数据执行共识,从而保证了共识的正常进行,能够在一定程度上提升共识过程的成功率,进而提升区块链的业务处理效率。
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于区块链的共识方法及装置。
背景技术
目前,区块链技术得到了广泛应用,其去中心化的模式保证了数据不易被篡改,从而提升了安全性。
在实际应用场景下,区块链能够为客户端提供相应的业务服务,其中的区块链节点可以针对用户的业务请求进行处理,生成相应的处理结果。但区块链中可能包含恶意节点或故障节点,这无疑将影响客户端所获得的业务服务。为此,区块链中各节点之间可进行诸如拜占庭容错算法(Practical Byzantine Fault Tolerance,PBFT)的共识过程,以使得各节点能够共同认可正确的处理结果。
以基于PBFT的共识过程为例,PBFT的共识过程包含预准备阶段(pre-prepare)、准备阶段(prepare)、确认阶段(commit),如图1所示。接收到客户端(Client,图1中以C表示)的业务请求的节点(如图中编号为0的节点),会将该业务请求发送给其他节点(如图中编号为1、2、3的节点)进行共识。在每个阶段,各节点均会向彼此发送共识消息,使得各节点进行共识。经过三个阶段的共识过程,可视为共识达成,各节点便会分别处理业务请求,并向客户端反馈处理结果。
在现有技术中的一些场景下,为了能够处理大量的共识过程,上述区块链的每个节点中,通常设置多个服务器,不同的服务器可分别参与不同的共识过程,以提升区块链的处理量及处理效率。
但是,在实际应用中,节点中的服务器存在下线或重启等异常现象,以PBFT的共识过程为例,一旦服务器出现异常现象,将导致服务器不能继续参与共识并影响共识达成的概率,若某次共识未达成,则无论区块链处于任何一种共识阶段,均会从预准备阶段起重新发起共识。显然,这无疑会影响区块链共识的效率,并进一步影响区块链对业务处理的效率。
发明内容
本申请实施例提供一种基于区块链的共识方法及装置,用以解决目前节点中的服务器发生异常时导致共识效率较低的问题。
本申请实施例提供的一种基于区块链的共识方法,一个区块链节点包括第一服务器、第二服务器和至少一个数据库构成,所述方法包括:
所述数据库存储执行共识所需的共识数据,供所述第一服务器和所述第二服务器在执行共识的过程中进行调用;
所述第一服务器在执行共识前或执行共识时出现异常;
所述第二服务器代替所述第一服务器,从所述数据库中获取共识数据,并根据所述共识数据执行共识,生成共识结果;
所述第二服务器将所述共识结果存储在所述数据库中。
本申请实施例提供的一种基于区块链的共识装置,一个区块链节点包括第一服务器、第二服务器和至少一个数据库,其中,
所述数据库存储执行共识所需的共识数据,供所述第一服务器和所述第二服务器在执行共识的过程中进行调用;
所述第一服务器在执行共识前或执行共识时出现异常;
所述装置包括:
获取模块,根据所述共识消息,从所述数据库中获取与所述共识消息对应的共识数据;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于创新先进技术有限公司,未经创新先进技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710190786.1/2.html,转载请声明来源钻瓜专利网。