共识机制的部署方法、装置、设备和存储介质制造方法及图纸

技术编号:19778039 阅读:26 留言:0更新日期:2018-12-15 11:13
本发明专利技术实施例公开了一种共识机制的部署方法、装置、设备和存储介质。该方法包括:获取自定义共识插件,其中所述自定义共识插件是对基于标准化的共识机制框架编写的自定义共识机制进行编译得到的;在本机节点中部署所述自定义共识插件。本发明专利技术实施例基于标准化的共识机制框架编写自定义共识机制,实现了为区块链网络部署满足区块链创建者业务需求的共识机制,避免了区块链网络中共识机制无法修改或升级的问题,提高了区块链网络的事务处理能力和用户体验。

【技术实现步骤摘要】
共识机制的部署方法、装置、设备和存储介质
本专利技术实施例涉及区块链
,尤其涉及一种共识机制的部署方法、装置、设备和存储介质。
技术介绍
随着互联网技术的不断发展,一种去中心化且公开透明的区块链技术应运而生。区块链网络可以支持不同的共识机制,共识机制作为区块链技术的重要组件,辅助区块链网络实现对区块链内部产生的事务进行验证和确认,保证区块链网络中所有诚实节点的一致性以及事务记录的有效性。现有技术中,区块链网络在创建前期就已经完成了内部共识机制的配置,例如在创建创世区块时就配置了相应的共识机制,从而区块链网络中的节点依据区块链网络内嵌的共识机制,完成对区块链网络内部产生的事务进行验证和确认。例如,比特币应用场景中内嵌的共识机制为工作量证明机制(ProofofWork,POW),以太坊应用场景中内嵌的共识机制为POW或权益证明机制(ProofofStake,POS),超级账本(HyperledgerFabric)应用场景中内嵌的共识机制为实用拜占庭容错机制(PracticalByzantineFaultTolerance,PBFT)或分布式队列机制(Kafka)。然而,在创建区块链之后,现有技术中的共识机制以固定且不可修改的形式配置于区块链网络中,系统内嵌的共识机制得不到升级,无法满足区块链创建者日渐增加或变化的业务需求。
技术实现思路
本专利技术实施例提供了一种共识机制的部署方法、装置、设备和存储介质,能够为区块链网络部署自定义共识机制。第一方面,本专利技术实施例提供了一种共识机制的部署方法,由区块链网络中的节点执行,所述方法包括:获取自定义共识插件,其中所述自定义共识插件是对基于标准化的共识机制框架编写的自定义共识机制进行编译得到的;在本机节点中部署所述自定义共识插件。第二方面,本专利技术实施例提供了一种共识机制的部署装置,配置于区块链网络中的节点中,所述装置包括:插件获取模块,用于获取自定义共识插件,其中所述自定义共识插件是对基于标准化的共识机制框架编写的自定义共识机制进行编译得到的;插件部署模块,用于在本机节点中部署所述自定义共识插件。第三方面,本专利技术实施例提供了一种设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本专利技术任意实施例所述的共识机制的部署方法。第四方面,本专利技术实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本专利技术任意实施例所述的共识机制的部署方法。本专利技术实施例通过采用标准化的共识机制框架来编写自定义共识机制,并将编写的自定义共识机制编译为自定义共识插件,以插件的形式将自定义共识机制部署于本机节点中。本专利技术实施例基于标准化的共识机制框架编写自定义共识机制,实现了为区块链网络部署满足区块链创建者业务需求的共识机制,避免了区块链网络中共识机制无法修改或升级的问题,提高了区块链网络的事务处理能力和用户体验。附图说明图1为本专利技术实施例一提供的一种共识机制的部署方法的流程图;图2为本专利技术实施例二提供的一种共识机制的部署方法的流程图;图3为本专利技术实施例三提供的一种共识机制的部署方法的流程图;图4为本专利技术实施例四提供的一种共识机制的部署装置的结构示意图;图5为本专利技术实施例五提供的一种设备的结构示意图。具体实施方式下面结合附图和实施例对本专利技术实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术实施例,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术实施例相关的部分而非全部结构。实施例一图1为本专利技术实施例一提供的一种共识机制的部署方法的流程图。该方法应用于区块链网络中的节点,区块链可以是公有链、联盟链或私有链,区块链网络通常都会包括多个节点。本专利技术实施例可适用于依据用户需求提出自定义共识机制的情况,该方法可由配置于区块链网络的节点中的一种共识机制的部署装置来执行。该方法具体包括如下步骤:S110、获取自定义共识插件,其中自定义共识插件是对基于标准化的共识机制框架编写的自定义共识机制进行编译得到的。在本专利技术具体实施例中,自定义共识机制是指区块链网络中的一个节点依据用户业务需求所编写的可供区块链网络中的各个节点进行事务验证和确认时所执行的代码段。自定义共识插件是指编写自定义共识机制的节点将自定义共识机制代码编译成的可执行文件,并以插件的形式配置于区块链网站的节点中。需要说明的是,自定义共识插件可以是本机节点用户自己编写并编译的,也可以是其他用户在区块链网络中其他节点编写自定义共识机制代码,将自定义共识机制代码编译成可执行文件,并发布到本机节点中的。具体的,本实施例采用标准化的共识机制框架来编写自定义共识机制。其中,标准化的共识机制框架将共识机制架构进行了规范化处理,其中可以对共识机制的编写格式、存在形式以及命名规则等编写方式进行了统一的限制。因此区块链网络中的节点在编写自定义共识机制时,依据框架内的编写规则,在标准化的共识机制框架的基础上自定义共识机制相应的内容即可。本实施例中的标准化的共识机制框架不仅对共识机制的编写方式进行了统一,为用户的编写带来了便利,而且便于后期共识机制的统一调用。进一步的,本实施例可以采用区块链原生语言来编写自定义共识机制,其中区块链原生语言是指可以编写区块链底层网络架构的语言,例如GO语言、Java语言或者C++语言等。示例性的,本实施例中的标准化的共识机制框架中包括至少三个基本的共识运行函数,分别为初始化函数、区块生成权验证函数以及区块有效性验证函数。可以理解的是,初始化函数用于在自定义共识机制首次部署于区块链网络中的节点中时,依据当前区块链网络的状态为自定义共识机制进行初始化,例如对自定义共识机制中包括的参数或条件赋予初始值;区块生成权验证函数用于验证是否争取到事务处理权;区块有效性验证函数用于验证新的区块中所记录的事务的有效性。值得注意的是,本实施例即使采用现有的共识机制作为当前区块链网络的共识机制时,仍然需要按照标准化的共识机制框架对现有的共识机制进行标准化处理,以对其进行格式或形式上的转换,符合当前区块链网络中的共识机制框架。示例性的,在上述示例中,若采用POW机制作为当前区块链网络的共识机制,则需要将POW机制转换为包括初始化函数、区块生成权验证函数以及区块有效性验证函数三种函数的存在形式,并依据命名规则规范函数的命名。进一步的,在获取自定义共识插件时,若本机节点发起的自定义共识机制,则本机节点可以获取基于标准化的共识机制框架编写的自定义共识机制,对自定义共识机制进行编译得到自定义共识插件。并向区块链网络中包括的其他节点发送该自定义共识插件,使其他节点部署该自定义共识插件。若区块链网络中的其他节点发起的自定义共识机制,则本机节点可以接收区块链网络中其他节点发送的自定义共识插件。实现区块链网络的各节点中自定义共识机制的统一部署。S120、在本机节点中部署自定义共识插件。在本专利技术具体实施例中,无论是本机节点下发的自定义共识机制还是区块链网络中的其他节点下发的自定义共识机制,自定义共识插件都会发布到区块链网络中的各个节点当中,以使区块链网络内部的共识机制得到统一,区块链网络中的所有节点都可以依据一致本文档来自技高网...

【技术保护点】
1.一种共识机制的部署方法,其特征在于,由区块链网络中的节点执行,所述方法包括:获取自定义共识插件,其中所述自定义共识插件是对基于标准化的共识机制框架编写的自定义共识机制进行编译得到的;在本机节点中部署所述自定义共识插件。

【技术特征摘要】
1.一种共识机制的部署方法,其特征在于,由区块链网络中的节点执行,所述方法包括:获取自定义共识插件,其中所述自定义共识插件是对基于标准化的共识机制框架编写的自定义共识机制进行编译得到的;在本机节点中部署所述自定义共识插件。2.根据权利要求1所述的方法,其特征在于,在所述在本机节点中部署所述自定义共识插件之后,还包括:生成包括所述自定义共识机制的升级请求,并依据所述升级请求发起投票提案事务;在区块链网络中传输所述投票提案事务,使区块生成节点执行如下操作:响应所述投票提案事务进行投票,若投票通过则将所述自定义共识机制作为区块链网络采用的共识机制。3.根据权利要求1所述的方法,其特征在于,在所述在本机节点中部署所述自定义共识插件之后,还包括:若检测到将所述自定义共识机制作为区块链网络采用的共识机制,则采用自定义共识机制中的初始化函数对所述自定义共识机制的状态进行初始化。4.根据权利要求3所述的方法,其特征在于,所述采用自定义共识机制中的初始化函数对所述自定义共识机制的状态进行初始化,包括:采用自定义共识机制中的初始化函数对所述自定义共识机制中的至少两个共识运行函数进行初始化,其中所述至少两个共识运行函数包括区块生成权校验函数和区块有效性验证函数。5.根据权利要求3所述的方法,其特征在于,在所述采用自定义共识机制中的初始化函数对所述自定义共识机制的状态进行初始化之后,还包括:基于所述共识机制框架中的共识运行函数名称从所述自定义共识机制中调用相应的共识运行函数。6.根据权利要求2所述的方法,其特征在于,所述依据所述升级请求发起投票提案事务,包括:确定投票生效区块高度;依据所述升级请求以及所述投票生效区块高度发起投票提案事务,使所述区块生成节点若检测到待生成的当前区块高度是所述投票生效区块高度,则响应所述投票提案事务进行投票。7.根据权利要求2所述的方法,其特征在于,所述依据所述升级请求发起投票提案事务,包括:确定所述投票提案事务的投票生效比例阈值;依据所述升级请求以及所述投票生效比例阈值发起投票提案事务,使所述区块生成节点在若投票通过的比例值大于所述投票生效比例阈值,则确定投票通过。8.根据权利要求7所述的方法,其特征在于,所述确定所述投票提案事务的投票生效比例阈值,包括:获取本机节点设定的投票生效比例阈值;若设定的投票生效比例阈值等于或小于系统投票生效比例阈值,则将系统投票生效比例阈值作为所述投票提案事务的投票生效比例阈值;否则,将设定的投票生效比例阈值作为所述投票提案事务的投票生效比例阈值。9.根据权利要求1所述的方法,其特征在于,所述获取自定义共识插件,包括:获取基于标准化的共识机制框架编写的自定义共识机制;对所述自定义共识机制进行编译得到所述自定义共识插件。10.根据权利要求9所述的方法,其特征在于,在所述对所述自定义共识机制进行编译得到所述自定义共识插件之后,还包括:向区块链网络中包括的其他节点发送所述自定义共识插件,使所述其...

【专利技术属性】
技术研发人员:肖伟
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:北京,11

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

1