CN111461887B - 一种区块链的共识处理方法、装置和电子设备 - Google Patents
一种区块链的共识处理方法、装置和电子设备 Download PDFInfo
- Publication number
- CN111461887B CN111461887B CN202010248779.4A CN202010248779A CN111461887B CN 111461887 B CN111461887 B CN 111461887B CN 202010248779 A CN202010248779 A CN 202010248779A CN 111461887 B CN111461887 B CN 111461887B
- Authority
- CN
- China
- Prior art keywords
- consensus
- module
- proposal
- control module
- interface
- 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
-
- 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Engineering & Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本说明书一个或多个实施例公开了一种区块链的共识处理方法、装置和电子设备,该方法包括:共识模块基于选定的共识算法的标识,调用与所述标识匹配的共识接口;所述共识模块采用所述共识接口对应的共识算法对提案进行共识处理。从而,通过将共识算法与区块链其它部分解耦的方式,根据需求调用相应的共识接口进行共识处理,实现灵活且方便,且可以在区块链***中支持多类共识算法的切换。
Description
技术领域
本文件涉及区块链技术领域,尤其涉及一种区块链的共识处理方法、装置和电子设备。
背景技术
区块链,是利用分布式账本技术解决多方信任问题的去中心化创新性的解决方案,是当前社会的前沿技术。
其中,共识算法是区块链的核心,且共识算法与区块链的其他部分都有很强的耦合,通常情况下,一个区块链***只能支持初始选定的某种共识算法。如果后续应用场景发生变化,需要变更共识算法,将会牵一发而动全身,几乎等于重新设计整个区块链***。由此可见,在现有的区块链网络中无法基于应用场景变化而简单便捷地更换共识算法。
发明内容
本说明书一个或多个实施例的目的是提供一种区块链的共识处理方法、装置和电子设备,以通过将共识算法与区块链其它部分解耦的方式,根据需求调用相应的共识接口进行共识处理,实现灵活且方便,且可以在区块链***中支持多类共识算法的切换。
为解决上述技术问题,本说明书一个或多个实施例是这样实现的:
第一方面,提出了一种区块链的共识处理方法,应用于区块链网络的区块链节点上,所述区块链网络封装有多个共识接口,每个所述共识接口内封装有一类共识算法;所述方法包括:
共识模块基于选定的共识算法的标识,调用与所述标识匹配的共识接口;
所述共识模块采用所述共识接口对应的共识算法对提案进行共识处理,其中,所述共识模块与其它模块功能解耦。
第二方面,提出了一种区块链的共识处理装置,应用于区块链网络的区块链节点上,所述区块链网络封装有多个共识接口,每个所述共识接口内封装有一类共识算法;所述装置包括:共识模块和其它模块;其中,
共识模块,基于选定的共识算法的标识,调用与所述标识匹配的共识接口;
所述共识模块,采用所述共识接口对应的共识算法对提案进行共识处理,其中,所述共识模块与其它模块功能解耦。
第三方面,提出了一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行:
基于选定的共识算法的标识,调用与所述标识匹配的共识接口;
采用所述共识接口对应的共识算法对提案进行共识处理,其中,区块链网络的区块链节点内共识模块与其它模块功能解耦。
第四方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行:
基于选定的共识算法的标识,调用与所述标识匹配的共识接口;
采用所述共识接口对应的共识算法对提案进行共识处理,其中,区块链网络的区块链节点内共识模块与其它模块功能解耦。
由以上本说明书一个或多个实施例提供的技术方案可见,共识模块基于选定的共识算法的标识,调用与所述标识匹配的共识接口;所述共识模块采用所述共识接口对应的共识算法对提案进行共识处理。从而,通过将共识算法与区块链其它部分解耦的方式,根据需求调用相应的共识接口进行共识处理,实现灵活且方便,且可以在区块链***中支持多类共识算法的切换。
附图说明
为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对一个或多个实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书实施例提供的一种区块链的共识处理方法的步骤示意图。
图2是本说明书实施例提供的区块链的共识处理方案的流程示意图。
图3是本说明书实施例提供的一种区块链的共识处理装置的结构示意图。
图4是本说明书的一个实施例提供的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的一个或多个实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。
实施例一
参照图1所示,为本说明书实施例提供的一种区块链的共识处理方法的步骤示意图,应理解,该方法应用在区块链网络中,所述区块链网络封装有多个共识接口,每个所述共识接口内封装有一类共识算法,且其执行主体可以是区块链的共识处理装置,该区块链的共识处理装置具体可以是区块链节点。
所述共识处理方法可以包括以下步骤:
步骤102:共识模块基于选定的共识算法的标识,调用与所述标识匹配的共识接口。
应理解,所述区块链网络中,可以预先抽象出多个共识接口,且每个共识接口封装有一类共识算法及其相应功能。同时,共识接口内还封装有对应的共识算法的延迟块数量,以便于最终确定共识结果的确定性。
不同的共识算法,流程和属性差别较大,因此,在一个区块链网络中,针对一个提案的共识,应当保障所有区块链节点所调用的共识接口的类型相同,也就是说,所有区块链节点所使用的共识算法一致。
以实用拜占庭容错算法PBFT和工作量证明POW为例,最主要的差别是确定性。PBFT只要达成共识,结果就确定了,不会再更改。但是POW之类的共识,是没有终极确定性的,一个块经过共识之后,后面还有可能会被推翻,只是随着时间的推移被推翻的概率越来越小。
针对这个问题的解决方法是,每个共识算法都指定一个延迟块数量,可以记为BLOCK_DELAY_NUMBER;比如PBFT类共识算法,其延迟块数量取值是0,即一旦共识出结果,就是最终结果。而POW类共识算法,其延迟块数量取值可以是6,即共识出结果之后,再延迟6个块,然后才认为是最终结果。应理解,这里面的数值6是作为举例,其还可以根据实际延迟情况设定延迟块数量,其它共识算法对应的延迟块数量也不乏其它取值,在此不作详述。
相应地,为了能够准确使用共识接口内封装的共识算法,每个所述共识接口内还封装有与共识算法适配的延迟块数量;在所述共识模块基于选定的共识算法的标识,调用与所述标识匹配的共识接口之后,控制模块在初始化阶段从所述共识模块获取所述延迟块数量,以便后续最终确定共识结果,控制模块会维护一个最新的BLOCK_DELAY_NUMBER个高度有分叉的链。
在本说明书实施例中,假设共识算法的选择可以在共识模块初始化时实现,那么,在出块阶段,所述控制模块可以将打包的交易组装成提案;然后,由网络模块将所述提案广播给区块链内其它节点。
一种可实现的方案,网络模块可以提供注册接口,共识模块以及其它模块均可以在初始化阶段注册接口,注册时可以提供必要的匹配信息,例如模块标识,这样,共识模块或其它模块在需要通过网络模块传输数据时,可动态调用相应的传输接口进行处理。这样,可以规避静态配置后导致的依赖耦合,尤其是可以实现共识模块与网络模块的解耦,方便共识模块更新共识算法。
具体地,所述网络模块在与所述区块链内的其它节点传输数据时,可以基于有传输需求的其它模块的传输数据进行参数比对,并在匹配之后调用所述其它模块注册的传输接口,使用所述传输接口传输数据。
步骤104:所述共识模块采用所述共识接口对应的共识算法对提案进行共识处理,其中,所述共识模块与其它模块功能解耦。
在共识阶段,所述网络模块接收由出块方广播的提案,并转发给所述控制模块;所述控制模块对所述提案进行校验,并在校验通过后将所述提案作为新区块上链,其中,所述新区块携带有表征所述提案未经共识处理的标记;所述控制模块将所述提案的共识所需信息发送给所述共识模块,以便于共识模块采用共识接口对应的共识算法,对提案进行共识处理。由此,将提案校验以及交易合法性校验的功能转移到控制模块,从而,解除共识模块对控制模块的依赖。
在所述共识模块将共识结果发送给所述控制模块之后,所述控制模块将共识结果加入基于所述延迟块数量为高度维护的分叉链的相应位置。
应理解,在所述共识模块共识投票之后,将共识结果通知所述控制模块;如果共识成功,则所述控制模块将所述新区块转换为正式块,并通知共识模块共识下一个高度的区块;否则,通知所述共识模块对与所述新区块同一高度的其它区块进行共识。
其实,在共识模块对提案进行共识处理过程中,可能会使用一些***配置信息,例如共识节点地址列表等,而这些不具有业务逻辑的***配置信息的更新可以通过放在交易中实现,不需要依赖智能合约,从而,解耦共识模块与智能合约以及执行模块的依赖。
下面通过一个具体的实例对本说明书实施例所涉及的共识处理方案进行详述。
参照图2所示,该共识处理方案可以包括以下流程:
步骤202:区块链***初始化。
在该初始化过程中,可以通过选定的共识算法调用合适的共识接口;同时,各个模块可以在网络模块注册传输接口,以便于后续动态调用。
应理解,并不是每次共识处理都需要初始化,这里仅是以需要重新选定共识算法时的情况为例。如果不需要更换共识算法,共识处理过程可以基于步骤204开始。
步骤204:出块节点的控制模块直接将打包好的交易组装成proposal。
步骤206:出块节点的网络模块将proposal广播给其它共识节点。
其中,网络模块广播proposal时,可以基于控制模块的传输数据动态调用传输接口,以实现数据的传输。
步骤208:其它共识节点的网络模块收到proposal之后转发给本节点的控制模块。
步骤210:其它共识节点的控制模块完成proposal的校验,并加入到当前区块链上面,同时标记这个块还没有经过共识。
步骤212:其它共识节点的控制模块将proposal的哈希以及其他必要的信息发送给本节点的共识模块进行后续共识投票。
步骤214:共识完成之后,通知控制模块共识的结果。
如果共识成功,执行步骤216,否则,执行步骤218。
步骤216:所有共识节点的控制模块会将该proposal转换为正式块,并通知共识模块继续共识下一个高度。
共识模块将某个proposal的共识结果发给控制面之后,控制面会将其加入带有分叉的链的合适位置。如果最高高度有增长,则延迟块数量个块之前的块得到确认,可以继续这个块后面的处理流程,并裁剪掉延迟块数量个块之前的分叉。
步骤218:控制模块会通知共识模块换同一个高度的另外一个proposal重试。
通过上述技术方案,共识模块基于选定的共识算法的标识,调用与所述标识匹配的共识接口;所述共识模块采用所述共识接口对应的共识算法对提案进行共识处理。从而,通过将共识算法与区块链其它部分解耦的方式,根据需求调用相应的共识接口进行共识处理,实现灵活且方便,且可以在区块链***中支持多类共识算法的切换。
实施例二
参照图3所示,为本说明书实施例提供的区块链的共识处理装置,应用于区块链网络的区块链节点上,所述区块链网络封装有多个共识接口,每个所述共识接口内封装有一类共识算法;该装置300可以包括:共识模块302和其它模块,例如控制模块304、网络模块306、执行模块308;其中,
共识模块302,基于选定的共识算法的标识,调用与所述标识匹配的共识接口;
所述共识模块302,采用所述共识接口对应的共识算法对提案进行共识处理,其中,所述共识模块与其它模块功能解耦。
可选地,作为一个实施例,每个所述共识接口内还封装有与共识算法适配的延迟块数量;
在所述共识模块基于选定的共识算法的标识,调用与所述标识匹配的共识接口之后,且在所述共识模块采用所述共识接口对应的共识算法对提案进行共识处理之前,所述控制模块在初始化阶段从所述共识模块获取所述延迟块数量;
以及在所述共识模块将共识结果发送给所述控制模块之后,所述控制模块还将共识结果加入基于所述延迟块数量为高度维护的分叉链的相应位置。
在本说明书实施例的一种具体实现方式中,在出块阶段,所述控制模块,将打包的交易组装成提案;
所述网络模块,将所述提案广播给区块链内其它节点。
在本说明书实施例的再一种具体实现方式中,在共识阶段,所述网络模块,接收由出块方广播的提案,并转发给所述控制模块;
所述控制模块,对所述提案进行校验,并在校验通过后将所述提案作为新区块上链,其中,所述新区块携带有表征所述提案未经共识处理的标记;
所述控制模块,将所述提案的共识所需信息发送给所述共识模块。
在本说明书实施例的再一种具体实现方式中,在所述共识模块共识投票之后,还将共识结果通知所述控制模块,
如果共识成功,则所述控制模块将所述新区块转换为正式块,并通知共识模块共识下一个高度的区块;
否则,通知所述共识模块对与所述新区块同一高度的其它区块进行共识。
在本说明书实施例的再一种具体实现方式中,所述网络模块在与所述区块链内的其它节点传输数据时,还基于有传输需求的其它模块的传输数据进行参数比对,并在匹配之后调用所述其它模块注册的动态传输接口,使用所述动态传输接口传输数据。
在本说明书实施例的再一种具体实现方式中,所述共识模块在共识处理时所需***配置信息不依赖所述区块链的智能合约。也就是说,共识模块302在共识处理过程中所涉及到的***配置信息,不需要执行模块308通过执行智能合约的方式进行配置更新。具体可以通过发送交易的方式,将***配置信息放在交易中,从而实现对***配置的更新管理。这样,将***配置信息的管理与智能合约以及执行模块308解耦,便于单独对共识算法进行切换,且不影响其它模块的维护。
通过上述技术方案,共识模块基于选定的共识算法的标识,调用与所述标识匹配的共识接口;所述共识模块采用所述共识接口对应的共识算法对提案进行共识处理。从而,通过将共识算法与区块链其它部分解耦的方式,根据需求调用相应的共识接口进行共识处理,实现灵活且方便,且可以在区块链***中支持多类共识算法的切换。
实施例三
图4是本说明书的一个实施例电子设备的结构示意图。请参考图4,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成区块链的共识处理装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
基于选定的共识算法的标识,调用与所述标识匹配的共识接口;
采用所述共识接口对应的共识算法对提案进行共识处理,其中,区块链网络的区块链节点内共识模块与其它模块功能解耦。
上述如本说明书图1所示实施例揭示的装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书一个或多个实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书一个或多个实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图1的方法,并实现相应装置在图1所示实施例的功能,本说明书实施例在此不再赘述。
当然,除了软件实现方式之外,本说明书实施例的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
通过上述技术方案,共识模块基于选定的共识算法的标识,调用与所述标识匹配的共识接口;所述共识模块采用所述共识接口对应的共识算法对提案进行共识处理。从而,通过将共识算法与区块链其它部分解耦的方式,根据需求调用相应的共识接口进行共识处理,实现灵活且方便,且可以在区块链***中支持多类共识算法的切换。
实施例四
本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1所示实施例的方法,并具体用于执行以下方法:
基于选定的共识算法的标识,调用与所述标识匹配的共识接口;
采用所述共识接口对应的共识算法对提案进行共识处理,其中,区块链网络的区块链节点内共识模块与其它模块功能解耦。
通过上述技术方案,共识模块基于选定的共识算法的标识,调用与所述标识匹配的共识接口;所述共识模块采用所述共识接口对应的共识算法对提案进行共识处理。从而,通过将共识算法与区块链其它部分解耦的方式,根据需求调用相应的共识接口进行共识处理,实现灵活且方便,且可以在区块链***中支持多类共识算法的切换。
总之,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书的保护范围之内。
上述一个或多个实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
Claims (14)
1.一种区块链的共识处理方法,应用于区块链网络的区块链节点上,所述区块链网络封装有多个共识接口,每个所述共识接口内封装有一类共识算法;所述方法包括:
共识模块基于选定的共识算法的标识,调用与所述标识匹配的共识接口;
所述共识模块采用所述共识接口对应的共识算法对提案进行共识处理,其中,所述共识模块与其它模块功能解耦;
每个所述共识接口内还封装有与共识算法适配的延迟块数量;
在所述共识模块基于选定的共识算法的标识,调用与所述标识匹配的共识接口之后,且在所述共识模块采用所述共识接口对应的共识算法对提案进行共识处理之前,所述方法还包括:
控制模块在初始化阶段从所述共识模块获取所述延迟块数量;
以及在所述共识模块将共识结果发送给所述控制模块之后,还包括:
所述控制模块将共识结果加入基于所述延迟块数量为高度维护的分叉链的相应位置。
2.如权利要求1所述的方法,所述方法还包括:
在出块阶段,所述控制模块将打包的交易组装成提案;
网络模块将所述提案广播给区块链内其它节点。
3.如权利要求2所述的方法,所述方法还包括:
在共识阶段,所述网络模块接收由出块方广播的提案,并转发给所述控制模块;
所述控制模块对所述提案进行校验,并在校验通过后将所述提案作为新区块上链,其中,所述新区块携带有表征所述提案未经共识处理的标记;
所述控制模块将所述提案的共识所需信息发送给所述共识模块。
4.如权利要求3所述的方法,所述方法还包括:
在所述共识模块共识投票之后,将共识结果通知所述控制模块,
如果共识成功,则所述控制模块将所述新区块转换为正式块,并通知共识模块共识下一个高度的区块;
否则,通知所述共识模块对与所述新区块同一高度的其它区块进行共识。
5.如权利要求2-4任一项所述的方法,所述网络模块在与所述区块链内的其它节点传输数据时,基于有传输需求的其它模块的传输数据进行参数比对,并在匹配之后调用所述其它模块注册的传输接口,使用所述传输接口传输数据。
6.如权利要求1-4任一项所述的方法,所述共识模块在共识处理时所需***配置信息不依赖所述区块链的智能合约。
7.一种区块链的共识处理装置,应用于区块链网络的区块链节点上,所述区块链网络封装有多个共识接口,每个所述共识接口内封装有一类共识算法;所述装置包括:共识模块和其它模块;其中,
共识模块,基于选定的共识算法的标识,调用与所述标识匹配的共识接口;
所述共识模块,采用所述共识接口对应的共识算法对提案进行共识处理,其中,所述共识模块与其它模块功能解耦;
每个所述共识接口内还封装有与共识算法适配的延迟块数量;所述其它模块包括:控制模块;
在所述共识模块基于选定的共识算法的标识,调用与所述标识匹配的共识接口之后,且在所述共识模块采用所述共识接口对应的共识算法对提案进行共识处理之前,所述控制模块在初始化阶段从所述共识模块获取所述延迟块数量;
以及在所述共识模块将共识结果发送给所述控制模块之后,所述控制模块还将共识结果加入基于所述延迟块数量为高度维护的分叉链的相应位置。
8.如权利要求7所述的装置,所述其它模块还包括:网络模块;
在出块阶段,所述控制模块,将打包的交易组装成提案;
所述网络模块,将所述提案广播给区块链内其它节点。
9.如权利要求8所述的装置,
在共识阶段,所述网络模块,接收由出块方广播的提案,并转发给所述控制模块;
所述控制模块,对所述提案进行校验,并在校验通过后将所述提案作为新区块上链,其中,所述新区块携带有表征所述提案未经共识处理的标记;
所述控制模块,将所述提案的共识所需信息发送给所述共识模块。
10.如权利要求9所述的装置,
在所述共识模块共识投票之后,还将共识结果通知所述控制模块,
如果共识成功,则所述控制模块将所述新区块转换为正式块,并通知共识模块共识下一个高度的区块;
否则,通知所述共识模块对与所述新区块同一高度的其它区块进行共识。
11.如权利要求8-10任一项所述的装置,所述网络模块在与所述区块链内的其它节点传输数据时,还基于有传输需求的其它模块的传输数据进行参数比对,并在匹配之后调用所述其它模块注册的动态传输接口,使用所述动态传输接口传输数据。
12.如权利要求7-10任一项所述的装置,所述共识模块在共识处理时所需***配置信息不依赖所述区块链的智能合约。
13.一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行:
基于选定的共识算法的标识,调用与所述标识匹配的共识接口;
采用所述共识接口对应的共识算法对提案进行共识处理,其中,区块链网络的区块链节点内共识模块与其它模块功能解耦;
每个所述共识接口内还封装有与共识算法适配的延迟块数量;所述其它模块包括:控制模块;
在所述共识模块基于选定的共识算法的标识,调用与所述标识匹配的共识接口之后,且在所述共识模块采用所述共识接口对应的共识算法对提案进行共识处理之前,所述控制模块在初始化阶段从所述共识模块获取所述延迟块数量;
以及在所述共识模块将共识结果发送给所述控制模块之后,所述控制模块还将共识结果加入基于所述延迟块数量为高度维护的分叉链的相应位置。
14.一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行:
基于选定的共识算法的标识,调用与所述标识匹配的共识接口;
采用所述共识接口对应的共识算法对提案进行共识处理,其中,区块链网络的区块链节点内共识模块与其它模块功能解耦;
每个所述共识接口内还封装有与共识算法适配的延迟块数量;所述其它模块包括:控制模块;
在所述共识模块基于选定的共识算法的标识,调用与所述标识匹配的共识接口之后,且在所述共识模块采用所述共识接口对应的共识算法对提案进行共识处理之前,所述控制模块在初始化阶段从所述共识模块获取所述延迟块数量;
以及在所述共识模块将共识结果发送给所述控制模块之后,所述控制模块还将共识结果加入基于所述延迟块数量为高度维护的分叉链的相应位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010248779.4A CN111461887B (zh) | 2020-04-01 | 2020-04-01 | 一种区块链的共识处理方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010248779.4A CN111461887B (zh) | 2020-04-01 | 2020-04-01 | 一种区块链的共识处理方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111461887A CN111461887A (zh) | 2020-07-28 |
CN111461887B true CN111461887B (zh) | 2022-06-03 |
Family
ID=71681155
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010248779.4A Active CN111461887B (zh) | 2020-04-01 | 2020-04-01 | 一种区块链的共识处理方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111461887B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111767347B (zh) * | 2020-07-27 | 2021-09-10 | 腾讯科技(深圳)有限公司 | 共识算法的切换方法、装置、节点设备及存储介质 |
CN112433885B (zh) * | 2020-11-19 | 2021-09-10 | 腾讯科技(深圳)有限公司 | 区块链共识处理方法及装置、电子设备、存储介质 |
CN112492016B (zh) * | 2020-11-23 | 2023-05-30 | 北京微芯区块链与边缘计算研究院 | 一种跨进程可扩展的共识方法及*** |
CN112511312B (zh) * | 2020-11-23 | 2023-10-17 | 北京微芯区块链与边缘计算研究院 | 一种可组装的共识方法及*** |
CN112486518B (zh) * | 2020-12-01 | 2024-03-12 | 北京微芯区块链与边缘计算研究院 | 共识算法装配方法及装置 |
CN114048264A (zh) * | 2021-09-28 | 2022-02-15 | 中诚区块链研究院(南京)有限公司 | 一种共识智能合约算法 |
CN117221337A (zh) * | 2022-06-02 | 2023-12-12 | 腾讯科技(深圳)有限公司 | 区块链共识方法、装置、介质及电子设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109698753B (zh) * | 2018-12-17 | 2022-05-03 | 成都四方伟业软件股份有限公司 | 基于区块链的上链共识算法匹配方法及装置 |
CN109639406B (zh) * | 2018-12-24 | 2022-03-04 | 国泰君安证券股份有限公司 | 基于区块链和ipfs的高效信任解决方法 |
CN110365695A (zh) * | 2019-07-24 | 2019-10-22 | 中国工商银行股份有限公司 | 可切换共识算法的区块链数据交互方法及装置 |
-
2020
- 2020-04-01 CN CN202010248779.4A patent/CN111461887B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111461887A (zh) | 2020-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111461887B (zh) | 一种区块链的共识处理方法、装置和电子设备 | |
CN109639636B (zh) | 业务数据转发、业务数据处理方法、装置及电子设备 | |
CN108765159B (zh) | 一种基于区块链的上链与状态处理方法、装置及互联*** | |
CN110020859B (zh) | 一种并行执行的区块链共识方法、装置及电子设备 | |
CN109886689B (zh) | 基于区块链的数据存证、取证方法及装置 | |
CN109298926B (zh) | 资源转移方入驻资源转移平台的方法、装置及电子设备 | |
CN110708163B (zh) | 一种区块链的共识方法、装置、***和电子设备 | |
CN111369358A (zh) | 一种区块链共识方法、装置和电子设备 | |
CN111651467A (zh) | 一种区块链节点接口发布调用方法和装置 | |
CN111225018A (zh) | 一种请求报文处理方法、装置和电子设备 | |
CN111461886B (zh) | 区块链上不依赖智能合约的***配置的管理方法和装置 | |
CN110648125B (zh) | 一种打包交易方法、装置、电子设备及存储介质 | |
CN112751935B (zh) | 请求处理方法、装置、电子设备及存储介质 | |
CN114138888B (zh) | 一种分布式数据路由的处理方法、***、介质和设备 | |
CN109345081B (zh) | 一种数据采集方法、装置及电子设备 | |
CN108596581B (zh) | 资源转移的验证方法、装置和电子支付验证方法、装置 | |
CN107368293B (zh) | 页面结构生成方法、页面截图上报方法、装置及*** | |
CN113485758A (zh) | 微服务发布方法、装置及电子设备、存储介质 | |
CN110851207A (zh) | 状态转换管理方法、装置、电子设备和计算机可读存储介质 | |
CN110750271B (zh) | 服务聚合、聚合服务的执行方法、装置和电子设备 | |
CN110599139B (zh) | 一种区块链共识算法中的出块方法和装置 | |
CN114327941A (zh) | 一种服务提供方法及装置 | |
CN113706146A (zh) | 一种基于区块链执行批量交易的处理方法、装置和*** | |
CN111884808A (zh) | 一种防止交易跨链重放的方法、装置及电子设备 | |
CN112487497A (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 |