CN111259078B - 区块链共识方法、装置、计算机设备和存储介质 - Google Patents
区块链共识方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN111259078B CN111259078B CN202010039864.XA CN202010039864A CN111259078B CN 111259078 B CN111259078 B CN 111259078B CN 202010039864 A CN202010039864 A CN 202010039864A CN 111259078 B CN111259078 B CN 111259078B
- Authority
- CN
- China
- Prior art keywords
- block
- consensus
- node
- consensus node
- transaction data
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种上述区块链共识方法、装置、计算机设备和存储介质,第一共识节点获取当前时隙内的交易数据,并根据交易数据更新第一共识节点的第一账本状态数据;第一共识节点为当前时隙对应的出块节点;然后,将包含交易数据以及第一账本状态数据的第一区块,发送至各个第二共识节点;第一区块用于指示第二共识节点基于第一区块确定是否返回确认签名信息;在接收到预设数量的确认签名信息后,将接收到的确认签名信息与第一区块打包生成第二区块;并将第二区块广播至各个第二共识节点以及各个非共识节点。采用上述方法可以提升区块链系统的共识效率。
Description
技术领域
本申请涉及信息技术领域,特别是涉及一种区块链共识方法、装置、计算机设备和存储介质。
背景技术
随着信息技术的发展,区块链为一个公开的分布式账簿系统,通过分布式数据存储、共识算法、加密算法等技术,来保障数据的不可篡改、不可抵赖以及永久保存。在区块链系统中,共识机制是保持区块链安全稳定运行的核心。共识机制主要通过一定规则,使系统中各个节点就系统中记录的数据达成一致。
传统技术中,一种共识方法通过区块链系统中的一部分共识节点执行出块,以及对区块进行确认。其中一个共识节点将交易信息打包出块之后,可以通过网络向系统内的其它普通节点以及共识节点广播区块;该出块的共识节点接收到其它共识节点的确认签名信息后,区块链系统中的各节点才可以将确认后的区块写入本地区块链中。
但是,采用上述共识方法,出块的共识节点接收其它共识节点的确认签名信息的时间较长,导致共识效率低。
发明内容
基于此,有必要针对上述技术问题,提供一种区块链共识方法、装置、计算机设备和存储介质。
一种区块链共识方法,方法包括:
获取当前时隙内的交易数据,并根据交易数据更新第一共识节点的第一账本状态数据;第一共识节点为当前时隙对应的出块节点;
将包含交易数据以及第一账本状态数据的第一区块,发送至各个第二共识节点;第一区块用于指示第二共识节点基于第一区块确定是否返回确认签名信息;
在接收到预设数量的确认签名信息后,将接收到的确认签名信息与第一区块打包生成第二区块;
将第二区块广播至各个第二共识节点以及各个非共识节点。
在其中一个实施例中,上述预设数量大于或等于第二共识节点的数量的三分之二。
在其中一个实施例中,上述获取当前时隙内的交易数据之前,方法还包括:
根据预设的逻辑时钟,判断当前时隙是否为第一共识节点的出块时隙;
若是,则执行获取当前时隙内的交易数据的步骤;
若否,则将接收到的交易数据转发至当前时隙对应的共识节点。
在其中一个实施例中,上述第一区块通过覆盖所有共识节点的第一网络发送;第一网络为基于点对点传输的星型网络。
在其中一个实施例中,上述第一区块还用于指示第二共识节点在确定返回确认签名信息之后,将第三区块写入存储区域;第三区块包括第二账本状态数据以及交易数据;第二账本状态数据为第二共识节点基于第一区块进行更新所获得的。
在其中一个实施例中,上述第二区块用于指示第二共识节点将所述存储区域中的所述第三区块写入本地区块链中。
在其中一个实施例中,上述方法还包括:
根据区块链系统中各个候选节点的出块权重,确定共识节点列表;候选节点包括提交共识申请的非共识节点以及各个共识节点;出块权重由各候选节点对应的投票结果,和/或各个共识节点的出块执行情况确定。
一种区块链共识装置,上述装置包括:
获取模块,用于获取当前时隙内的交易数据,并根据交易数据更新第一共识节点的第一账本状态数据;第一共识节点为当前时隙对应的出块节点;
发送模块,用于将包含交易数据以及第一账本状态数据的第一区块,发送至各个第二共识节点;第一区块用于指示第二共识节点基于第一区块确定是否返回确认签名信息;
打包模块,用于在接收到预设数量的确认签名信息后,将接收到的确认签名信息与第一区块打包生成第二区块;
广播模块,用于将第二区块广播至各个第二共识节点以及各个非共识节点。
一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,上述处理器执行计算机程序时实现上述区块链共识方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,上述计算机程序被处理器执行时实现上述区块链共识方法的步骤。
上述区块链共识方法、装置、计算机设备和存储介质,第一共识节点获取当前时隙内的交易数据,并根据交易数据更新第一共识节点的第一账本状态数据;第一共识节点为当前时隙对应的出块节点;然后,将包含交易数据以及第一账本状态数据的第一区块,发送至各个第二共识节点;第一区块用于指示第二共识节点基于第一区块确定是否返回确认签名信息;在接收到预设数量的确认签名信息后,将接收到的确认签名信息与第一区块打包生成第二区块;并将第二区块广播至各个第二共识节点以及各个非共识节点。由于第一共识节点将第一区块发送至各个第二共识节点,使得区块链系统可以通过各共识节点完成区块的共识,而不需要通过所有节点共同完成共识,提升了共识达成效率;进一步地,第一共识节点在接收到预设数量的确认签名信息之后,将第二区块广播至所有节点,而不需要接收到所有第二共识节点返回的确认签名信息,缩短了确认签名信息获取时长,从而提升共识效率;另外,上述第二区块为所有共识节点已达成共识的区块,因此区块链系统中的节点接收到第一共识节点广播的第二区块之后,可以直接对第二区块进行存储操作,进一步提升共识效率。
附图说明
图1为一个实施例中区块链共识方法的应用环境图;
图2为一个实施例中区块链共识方法的流程示意图;
图3为一个实施例中区块链共识方法的流程示意图;
图4为另一个实施例中区块链共识方法的流程示意图;
图5为一个实施例中区块链共识装置的结构框图;
图6为一个实施例中区块链共识装置的结构框图;
图7为一个实施例中区块链共识装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的区块链共识方法,可以应用于如图1所示的应用环境中。其中,各个共识节点100以及各个普通节点200通过网络连接;各个节点可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种区块链共识方法,以该方法应用于图1中,当前时隙对应的第一共识节点100为例进行说明,包括以下步骤:
S101、获取当前时隙内的交易数据,并根据交易数据更新第一共识节点的第一账本状态数据;第一共识节点为当前时隙对应的出块节点。
其中,上述交易数据可以是智能合同调用数据,还可以是区域链系统支持的其它数据,对于上述交易数据的类型在此不做限定。
上述第一共识节点为当前时隙对应的出块节点。区块链系统中可以包括共识节点以及非共识节点,其中,共识节点执行对数据进行共识的操作,以确保各节点存储的数据的正确性。对于同一个出块时隙,区块链系统可以通过其中一个共识节点执行出块操作;也就是说当前时隙内,第一共识节点可以执行当前时隙内各个节点的交易数据,并执行交易数据的打包发送。
出块时隙与出块节点对应时,可以根据物理时钟确定当前时隙对应的第一共识节点,也可以根据逻辑时钟来判断,在此不做限定。
具体地,上述第一共识节点在获取交易数据时,可以获取非共识节点发起的交易数据,也可以获取第二共识节点转发的交易数据;也就是说,当轮到第一共识节点出块时,上述交易数据可以是本节点对应的时隙内,交易池中积累的交易数据。
上述第一共识节点获取交易数据之后,可以对交易数据的有效性进行验证。
进一步地,第一共识节点可以根据获取的交易数据,执行各交易数据对应的交易,也就是更新第一共识节点的第一账本状态数据。上述第一账本状态数据用于表征第一节点中存储的数据状态,可以包括各个节点的资产数据,也可以包括各个节点之间的交易过程数据;例如,第一共识节点可以更新根据执行上述交易之后各个节点的数据状态,更新第一共识节点中存储的第一账本的状态数据。
102、将包含交易数据以及第一账本状态数据的第一区块,发送至各个第二共识节点;第一区块用于指示第二共识节点基于第一区块确定是否返回确认签名信息。
第一共识节点更新完第一账本状态数据之后,可以将交易数据以及第一账本状态数据进行打包,获得第一区块。
上述第二共识节点为区块链系统中的其它共识节点。第一共识节点可以将第一区块通过网络发送至各个第二共识节点。具体地,第一共识节点可以将第一区块发送至所有的第二共识节点,也可以将第一区块发送至部分第二共识节点,在此不做限定。例如,区块链系统中包含27个共识节点,那么第一共识节点可以将第一区块发送至26个第二共识节点,或者发送至24个第二共识节点。
具体地,第一共识节点通过网络向第二共识节点发送第一区块时,可以通过区块链系统中覆盖所有节点的网络进行发送,也可以覆盖所有共识节点的第一网络发送,在此不做限定。
可选地,区块链系统中包含共识网络层以及区块广播网络层,上述共识网络层为覆盖所有共识节点的第一网络,上述区块广播网络层为覆盖所有节点的第二网络。上述第一网络基于点对点传输的星型网络,使得第一共识节点和第二共识节点可以通过一次交互达成共识,提升共识效率。
第二共识节点在接收到第一区块之后,可以基于第一区块确定是否返回确认签名信息。具体地,第二共识节点可以对第一区块中的交易数据的有效性进行验证;进一步地,第二共识节点可以根据第一区块中的交易数据执行交易,并根据交易结果更新第二共识节点中的第二账本状态数据。第二共识节点可以将第二账本状态数据以及第一账本状态数据进行比较,若根据比较结果确定第一账本状态数据正确,则向第一共识节点返回确认签名信息。上述确认签名信息可以是第二共识节点发送的签名。
S103、在接收到预设数量的确认签名信息后,将接收到的确认签名信息与第一区块打包生成第二区块。
在各个第二共识节点返回确认签名信息之后,第一共识节点可以根据接收到的确认签名信息的数量确定各共识节点是否对第一区块达成共识。若上述确认签名信息的数量大于等于预设数量,那么第一共识节点认为该第一区块已经达成共识,可以将接收到的确认签名信息与第一区块打包生成第二区块。
其中,上述预设数量小于第二共识节点的数量,可以是第二共识节点数量的百分之八十,也可以是上述第二共识节点数量的百分之90,在此不做限定。
可选地,上述预设数量大于或等于第二共识节点的数量的三分之二。
S104、将第二区块广播至各个第二共识节点以及各个非共识节点。
进一步地,第一共识节点可以将打包生成的第二区块通过网络广播区块链系统中的所有节点,包括各个第二共识节点以及各个非共识节点。
各个第二共识节点以及各个非共识节点接收到第二区块之后,可以根据第二区块中的交易数据执行交易,并更新本地的账本状态数据,然后将账本状态数据以及交易数据存储在本地区块链中。
另外,上述第二共识节点还可以在接收到第二区块之后,通过网络向其它非共识节点广播上述第二区块,以确保各个节点可以顺利接收到第二区块。
上述区块链共识方法,第一共识节点获取当前时隙内的交易数据,并根据交易数据更新第一共识节点的第一账本状态数据;第一共识节点为当前时隙对应的出块节点;然后,将包含交易数据以及第一账本状态数据的第一区块,发送至各个第二共识节点;第一区块用于指示第二共识节点基于第一区块确定是否返回确认签名信息;在接收到预设数量的确认签名信息后,将接收到的确认签名信息与第一区块打包生成第二区块;并将第二区块广播至各个第二共识节点以及各个非共识节点。由于第一共识节点将第一区块发送至各个第二共识节点,使得区块链系统可以通过各共识节点完成区块的共识,而不需要通过所有节点共同完成共识,提升了共识达成效率;进一步地,第一共识节点在接收到预设数量的确认签名信息之后,将第二区块广播至所有节点,而不需要接收到所有第二共识节点返回的确认签名信息,缩短了确认签名信息获取时长,从而提升共识效率;另外,上述第二区块为所有共识节点已达成共识的区块,因此区块链系统中的节点接收到第一共识节点广播的第二区块之后,可以直接对第二区块进行存储操作,进一步提升共识效率。
图3为一个实施例中区块链共识方法的流程示意图,第一共识节点获取当前时隙内的交易数据之前,还包括:
S201、根据预设的逻辑时钟,判断当前时隙是否为第一共识节点的出块时隙。
区块链系统可以通过逻辑时钟来控制各共识节点的出块顺序。上述逻辑时钟可以按照顺序对应一个出块周期内的多个出块时隙,每个出块时隙对应一个共识节点。例如,区块链系统可以对共识节点进行编号,当共识节点根据逻辑时钟的信号确定当前时隙对应的编号为自身的编号时,可以确定当前时隙为该第一共识节点对应的出块时隙。
S202、若是,则执行获取当前时隙内的交易数据的步骤。
若当前时隙为第一共识节点的出块时隙,那么第一共识节点为出块节点,可以进一步执行获取当前时隙内的交易数据的步骤,并进一步根据交易数据执行交易以及更新第一账本状态数据等。
S203、若否,则将接收到的交易数据转发至当前时隙对应的共识节点。
若当前时隙不是第一共识节点的出块时隙,那么该共识节点可以将接收到的交易数据转发至当前时隙对应的共识节点。
上述区块链共识方法,区块链系统通过逻辑时钟控制各个共识节点的出块顺序,可以避免各个共识节点之间的物理时钟不同意造成的数据验证以及发送失败的问题,提升了区块链共识的可靠性。
在一个实施例中,上述第一区块还用于指示第二共识节点在确定返回确认签名信息之后,将第三区块写入存储区域;第三区块包括第二账本状态数据以及交易数据;第二账本状态数据为第二共识节点基于第一区块进行更新所获得的。
第二共识节点接收到第一区块,通过对第一区块进行校验确定返回确认签名信息之后,第二共识节点可以将本地更新的第二账本状态数据以及第一区块中的交易数据进行打包,并写入存储区域。其中,上述存储区域可以是异构缓存池。
在各个第二共识节点向第一共识节点返回确认签名信息,且确认签名信息数量达到预设数量之后,第一共识节点可以将打包生成的第二区块广播至所有节点。
相应地,上述第二区块用于指示第二共识节点将第二账本状态以及交易数据写入本地区块链中。
第二共识节点接收到第二区块之后,可以确定上述第二区块中的交易数据为各个共识节点已达成共识的数据,那么可以将存储区域中缓存的第三区块直接写入本地区块链中。
上述区块链共识方法,第二共识节点通过将第三区块写入存储区域,并在接收到第二区块之后直接将存储区域中的数据写入本地区块链,可以避免对交易数据进行二次验证,提升数据存储效率。
在一个实施例中,涉及第一共识节点确定共识节点列表的过程,在上述实施例的基础上,上述方法还包括:第一共识节点根据区块链系统中各个候选节点的出块权重,确定共识节点列表;其中,上述候选节点包括提交共识申请的非共识节点以及各个共识节点;上述出块权重由各候选节点的投票结果,和/或各个共识节点的出块执行情况确定。
具体地,非共识节点可以发起申请成为候选共识节点。区块链系统中的其它节点接收到非共识节点的申请之后,可以向各个候选共识节点进行投票。具体地,其它节点可以根据候选共识节点的资产抵押情况确定是否投票,也可以根据候选共识节点的网络服务认证状态,对候选共识节点进行投票,在此不做限定。例如,当区块链系统中有5个非共识节点发起申请成为候选共识节点的情况下,其它节点可以投票给5个候选共识节点中抵押的数字资产最多的候选共识节点。
另外,对应当前的各个共识节点,区块链系统中的各个节点可以根据各个共识节点的出块执行情况确定共识节点的出块权重。其中,上述出块情况可以是上一轮出块中该共识节点的出块数量是否满足要求,也可以是上一轮出块中是否出现网络中断等情况。
第一共识节点可以在上一轮出块结束之后,根据各个候选共识节点的出块权重计算新的共识节点列表,通过新的共识节点列表中的节点执行下一轮出块任务;可选地,还可以在当前共识节点列表中的共识节点出块权重低于预设阈值时,计算新的共识节点列表,在此不做限定。
当前共识节点被踢出共识节点列表的情况下,区块链系统可以将该共识节点抵押的数字资产罚没。
需要说明的时,上述共识节点列表的确定方法还适用于各个第二共识节点,各个共识节点计算下一轮的共识节点列表之后,可以将该共识节点列表广播至区块链系统中的所有节点。当提交申请的非共识节点成为新的共识节点时,可以开启出块流程,在该节点对应的出块时隙内获取交易数据。
上述区块链共识方法,区块链系统总的各个共识节点的行为可以受到全网的监督,提升了区块链系统的安全性,有利于推广区块链系统在各个领域的应用。
在一个实施例中,在上述实施例的基础上,如图4所示,上述区块链共识方法包括:
S301、非共识节点发起交易数据;
S302、第一共识节点根据逻辑时钟判断当前时隙是否为第一共识节点的出块时隙,若是,则执行S304,若否则执行S303;
S303、第一共识节点将接收到的交易数据转发至当前时隙对应的共识节点;
S304、第一共识节点获取当前时隙内的交易数据;
S305、第一共识节点将包含交易数据以及第一账本状态数据的第一区块,通过第一网络发送至各个第二共识节点;
S306、第二共识节点返回确认签名信息;
S307、第二共识节点基于第一区块进行更新所获得的第二账本状态数据;
S308、第二共识节点将包括第二账本状态数据以及交易数据的第三区块写入存储区域;
S309、第一共识节点接收到预设数量的确认签名信息后,将接收到的确认签名信息与第一区块打包生成第二区块;
S310、第一共识节点将第二区块广播至各个第二共识节点以及各个非共识节点;
S311、第二共识节点将存储区域中的第三区块写入本地区块链中。
上述区块链共识方法的实现原理以及技术效果与上述实施例类似,在此不做赘述。
应该理解的是,虽然图2-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-4中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种区块链共识装置,包括:获取模块10、发送模块20、打包模块30和广播模块40,其中:
获取模块10,用于获取当前时隙内的交易数据,并根据交易数据更新第一共识节点的第一账本状态数据;第一共识节点为当前时隙对应的出块节点;
发送模块20,用于将包含交易数据以及第一账本状态数据的第一区块,发送至各个第二共识节点;第一区块用于指示第二共识节点基于第一区块确定是否返回确认签名信息;
打包模块30,用于在接收到预设数量的确认签名信息后,将接收到的确认签名信息与第一区块打包生成第二区块;
广播模块40,用于将第二区块广播至各个第二共识节点以及各个非共识节点。
本申请实施例提供的区块链共识装置,可以实现上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在一个实施例中,在上述实施例的基础上,预设数量大于或等于第二共识节点的数量的三分之二。
在一个实施例中,在上述实施例的基础上,如图6所示,上述装置还包括判断模块50,用于:根据预设的逻辑时钟,判断当前时隙是否为第一共识节点的出块时隙;若是,则执行获取当前时隙内的交易数据的步骤;若否,则将接收到的交易数据转发至当前时隙对应的共识节点。
在一个实施例中,在上述实施例的基础上,第一区块通过覆盖所有共识节点的第一网络发送;第一网络为基于点对点传输的星型网络。
在一个实施例中,在上述实施例的基础上,第一区块还用于指示第二共识节点在确定返回确认签名信息之后,将第三区块写入存储区域;第三区块包括第二账本状态数据以及交易数据;第二账本状态数据为第二共识节点基于第一区块进行更新所获得的。
在一个实施例中,在上述实施例的基础上,第二区块用于指示第二共识节点将存储区域中的第三区块写入本地区块链中。
在一个实施例中,在上述实施例的基础上,如图7所示,上述装置还包括确定模块60,用于:根据区块链系统中各个候选节点的出块权重,确定共识节点列表;候选节点包括提交共识申请的非共识节点以及各个共识节点;出块权重由各候选节点对应的投票结果,和/或各个共识节点的出块执行情况确定。
本申请实施例提供的区块链共识装置,可以实现上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
关于区块链共识装置的具体限定可以参见上文中对于区块链共识方法的限定,在此不再赘述。上述区块链共识装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储区块链共识数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种区块链共识方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取当前时隙内的交易数据,并根据交易数据更新第一共识节点的第一账本状态数据;第一共识节点为当前时隙对应的出块节点;
将包含交易数据以及第一账本状态数据的第一区块,发送至各个第二共识节点;第一区块用于指示第二共识节点基于第一区块确定是否返回确认签名信息;
在接收到预设数量的确认签名信息后,将接收到的确认签名信息与第一区块打包生成第二区块;
将第二区块广播至各个第二共识节点以及各个非共识节点。
在一个实施例中,预设数量大于或等于第二共识节点的数量的三分之二。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据预设的逻辑时钟,判断当前时隙是否为第一共识节点的出块时隙;若是,则执行获取当前时隙内的交易数据的步骤;若否,则将接收到的交易数据转发至当前时隙对应的共识节点。
在一个实施例中,第一区块通过覆盖所有共识节点的第一网络发送;第一网络为基于点对点传输的星型网络。
在一个实施例中,第一区块还用于指示第二共识节点在确定返回确认签名信息之后,将第三区块写入存储区域;第三区块包括第二账本状态数据以及交易数据;第二账本状态数据为第二共识节点基于第一区块进行更新所获得的。
在一个实施例中,第二区块用于指示第二共识节点将存储区域中的第三区块写入本地区块链中。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据区块链系统中各个候选节点的出块权重,确定共识节点列表;候选节点包括提交共识申请的非共识节点以及各个共识节点;出块权重由各候选节点对应的投票结果,和/或各个共识节点的出块执行情况确定。
本实施例提供的计算机设备,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取当前时隙内的交易数据,并根据交易数据更新第一共识节点的第一账本状态数据;第一共识节点为当前时隙对应的出块节点;
将包含交易数据以及第一账本状态数据的第一区块,发送至各个第二共识节点;第一区块用于指示第二共识节点基于第一区块确定是否返回确认签名信息;
在接收到预设数量的确认签名信息后,将接收到的确认签名信息与第一区块打包生成第二区块;
将第二区块广播至各个第二共识节点以及各个非共识节点。
在一个实施例中,预设数量大于或等于第二共识节点的数量的三分之二。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据预设的逻辑时钟,判断当前时隙是否为第一共识节点的出块时隙;若是,则执行获取当前时隙内的交易数据的步骤;若否,则将接收到的交易数据转发至当前时隙对应的共识节点。
在一个实施例中,第一区块通过覆盖所有共识节点的第一网络发送;第一网络为基于点对点传输的星型网络。
在一个实施例中,第一区块还用于指示第二共识节点在确定返回确认签名信息之后,将第三区块写入存储区域;第三区块包括第二账本状态数据以及交易数据;第二账本状态数据为第二共识节点基于第一区块进行更新所获得的。
在一个实施例中,第二区块用于指示第二共识节点将存储区域中的第三区块写入本地区块链中。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据区块链系统中各个候选节点的出块权重,确定共识节点列表;候选节点包括提交共识申请的非共识节点以及各个共识节点;出块权重由各候选节点对应的投票结果,和/或各个共识节点的出块执行情况确定。
本实施例提供的计算机可读存储介质,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种区块链共识方法,所述方法包括:
获取当前时隙内的交易数据,并根据所述交易数据更新第一共识节点的第一账本状态数据;所述第一共识节点为所述当前时隙对应的出块节点;
将包含所述交易数据以及所述第一账本状态数据的第一区块,发送至各个第二共识节点;所述第一区块用于指示所述第二共识节点基于所述第一区块确定是否返回确认签名信息;所述第一区块还用于指示所述第二共识节点在返回确认签名信息之后,将第三区块写入存储区域;所述第三区块包括第二账本状态数据以及所述交易数据;所述第二账本状态数据为所述第二共识节点基于所述第一区块进行更新所获得的;
在接收到预设数量的确认签名信息后,将接收到的确认签名信息与所述第一区块打包生成第二区块;
将所述第二区块广播至各个第二共识节点以及各个非共识节点。
2.根据权利要求1所述的区块链共识方法,其特征在于,所述预设数量大于或等于所述第二共识节点的数量的三分之二。
3.根据权利要求1所述的区块链共识方法,其特征在于,所述获取当前时隙内的交易数据之前,所述方法还包括:
根据预设的逻辑时钟,判断当前时隙是否为所述第一共识节点的出块时隙;
若是,则执行获取当前时隙内的交易数据的步骤;
若否,则将接收到的交易数据转发至当前时隙对应的共识节点。
4.根据权利要求1-3任一项所述的区块链共识方法,其特征在于,所述第一区块通过覆盖所有共识节点的第一网络发送;所述第一网络为基于点对点传输的星型网络。
5.根据权利要求1所述的区块链共识方法,其特征在于,各个所述第二共识节点以及各个所述非共识节点接收到所述第二区块后,根据所述第二区块中的交易数据执行交易,并更新本地的账本状态数据,并将所述账本状态数据以及所述交易数据存储在本地区块链中。
6.根据权利要求5所述的区块链共识方法,其特征在于,所述第二区块用于指示所述第二共识节点将所述存储区域中的所述第三区块写入本地区块链中。
7.根据权利要求1-3任一项所述的区块链共识方法,其特征在于,所述方法还包括:
根据区块链系统中各个候选节点的出块权重,确定共识节点列表;所述候选节点包括提交共识申请的非共识节点以及各个共识节点;所述出块权重由各候选节点对应的投票结果,和/或各个共识节点的出块执行情况确定。
8.一种区块链共识装置,其特征在于,所述装置包括:
获取模块,用于获取当前时隙内的交易数据,并根据所述交易数据更新第一共识节点的第一账本状态数据;所述第一共识节点为所述当前时隙对应的出块节点;
发送模块,用于将包含所述交易数据以及所述第一账本状态数据的第一区块,发送至各个第二共识节点;所述第一区块用于指示所述第二共识节点基于所述第一区块确定是否返回确认签名信息;所述第一区块还用于指示所述第二共识节点在返回确认签名信息之后,将第三区块写入存储区域;所述第三区块包括第二账本状态数据以及所述交易数据;所述第二账本状态数据为所述第二共识节点基于所述第一区块进行更新所获得的;
打包模块,用于在接收到预设数量的确认签名信息后,将接收到的确认签名信息与所述第一区块打包生成第二区块;
广播模块,用于将所述第二区块广播至各个第二共识节点以及各个非共识节点。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010039864.XA CN111259078B (zh) | 2020-01-15 | 2020-01-15 | 区块链共识方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010039864.XA CN111259078B (zh) | 2020-01-15 | 2020-01-15 | 区块链共识方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111259078A CN111259078A (zh) | 2020-06-09 |
CN111259078B true CN111259078B (zh) | 2023-10-10 |
Family
ID=70951167
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010039864.XA Active CN111259078B (zh) | 2020-01-15 | 2020-01-15 | 区块链共识方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111259078B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111858770B (zh) * | 2020-07-30 | 2023-11-28 | 杭州复杂美科技有限公司 | 共识方法、设备和存储介质 |
CN112087518B (zh) * | 2020-09-10 | 2022-10-21 | 中国工商银行股份有限公司 | 用于区块链的共识方法、装置、计算机系统和介质 |
CN112037068B (zh) * | 2020-09-17 | 2024-04-23 | 广州运通链达金服科技有限公司 | 资源转移方法、系统、装置、计算机设备和存储介质 |
CN112184244A (zh) * | 2020-09-29 | 2021-01-05 | 壹链盟生态科技有限公司 | 基于区块链的共识达成方法、装置及存储介质 |
CN112487496B (zh) * | 2020-12-07 | 2024-04-16 | 合肥达朴汇联科技有限公司 | 一种区块链共识系统 |
CN112702174B (zh) * | 2020-12-25 | 2022-11-04 | 深圳市星际大陆科技有限公司 | 基于区块链的交易出块方法、系统、设备及存储介质 |
CN112667621B (zh) * | 2020-12-31 | 2023-03-10 | 杭州趣链科技有限公司 | 区块链监管方法、设备和计算机可读存储介质 |
CN112907369B (zh) * | 2021-02-08 | 2022-04-12 | 网易(杭州)网络有限公司 | 基于区块链的数据共识方法及装置、电子设备、存储介质 |
CN113269542A (zh) * | 2021-04-07 | 2021-08-17 | 北京邮电大学 | 区块链系统的共识方法、装置以及存储介质 |
CN113268345A (zh) * | 2021-04-07 | 2021-08-17 | 北京邮电大学 | 基于区块链系统的交易方法、装置以及存储介质 |
CN113378144B (zh) * | 2021-07-14 | 2022-09-02 | 湖北央中巨石信息技术有限公司 | 基于区块链的图像文件共识方法及系统及装置及介质 |
CN115760388B (zh) * | 2022-11-07 | 2023-11-21 | 深圳市腾盟技术有限公司 | 基于区块链的共识方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108665363A (zh) * | 2018-05-09 | 2018-10-16 | 合肥达朴汇联科技有限公司 | 一种区块链共识达成装置 |
CN110011814A (zh) * | 2019-04-16 | 2019-07-12 | 北京艾摩瑞策科技有限公司 | 一种可验证的DPoS共识方法及其系统 |
WO2019223469A1 (zh) * | 2018-05-21 | 2019-11-28 | 腾讯科技(深圳)有限公司 | 区块链网络的管理方法、装置、介质及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107450979B (zh) * | 2017-03-28 | 2020-06-02 | 创新先进技术有限公司 | 一种区块链共识方法及装置 |
-
2020
- 2020-01-15 CN CN202010039864.XA patent/CN111259078B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108665363A (zh) * | 2018-05-09 | 2018-10-16 | 合肥达朴汇联科技有限公司 | 一种区块链共识达成装置 |
WO2019223469A1 (zh) * | 2018-05-21 | 2019-11-28 | 腾讯科技(深圳)有限公司 | 区块链网络的管理方法、装置、介质及电子设备 |
CN110011814A (zh) * | 2019-04-16 | 2019-07-12 | 北京艾摩瑞策科技有限公司 | 一种可验证的DPoS共识方法及其系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111259078A (zh) | 2020-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111259078B (zh) | 区块链共识方法、装置、计算机设备和存储介质 | |
CN110659988B (zh) | 区块链共识与执行的并行处理方法、装置和电子设备 | |
CN108804706B (zh) | 一种区块链数据处理方法、装置、设备及存储介质 | |
EP3933646A1 (en) | Consensus methods and systems in consortium blockchain | |
CN110602239A (zh) | 一种区块链信息存储方法及相关设备 | |
CN113783935B (zh) | 一种拜占庭容错方法及装置 | |
CN108769264B (zh) | 一种区块链分域方法 | |
US20220027970A1 (en) | Method and apparatus for agreement of block in blockchain network | |
CN111078662B (zh) | 一种区块链数据存储方法与装置 | |
CN111061735B (zh) | 一种基于单链区块链的扩容方法及装置 | |
EP3934164A1 (en) | Consensus methods and systems in consortium blockchain | |
EP2689333B1 (en) | Method and system for storing and reading data in or from a key value storage | |
CN110213368B (zh) | 数据处理方法、数据处理装置和计算机系统 | |
CN111400267A (zh) | 记录日志的方法和装置 | |
CN113556238B (zh) | 区块验证方法 | |
CN109921897B (zh) | 工作量证明计算的触发方法、装置、计算设备及存储介质 | |
CN111489156A (zh) | 基于区块链的交易方法、电子装置及可读存储介质 | |
CN115037472B (zh) | 基于双层dag共识机制的交易处理方法及系统、服务设备 | |
CN116977067A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN112258184B (zh) | 冻结区块链网络的方法、装置、电子设备及可读存储介质 | |
CN113220475A (zh) | 交易数据处理方法、装置、计算机设备和存储介质 | |
CN111242778A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
Su | Cross-chain interaction model in a fully verified way | |
CN107342942B (zh) | 一种多节点控制器集群的信息传输方法及装置 | |
CN111711537B (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 |