CN113868341B - 联盟链的预期共识方法 - Google Patents
联盟链的预期共识方法 Download PDFInfo
- Publication number
- CN113868341B CN113868341B CN202111465690.4A CN202111465690A CN113868341B CN 113868341 B CN113868341 B CN 113868341B CN 202111465690 A CN202111465690 A CN 202111465690A CN 113868341 B CN113868341 B CN 113868341B
- Authority
- CN
- China
- Prior art keywords
- node
- block
- transaction information
- verification
- endorsement
- 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
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请涉及一种联盟链的预期共识方法。方法包括:通过联盟链中接收交易信息的接收节点广播带有背书结果的交易信息至最终出块节点,最终出块节点是通过预期共识算法对每一联盟链组织的出块节点进行选取所得到的且数量至少为两个。最终出块节点将带有背书结果的交易信息打包为区块,并将打包后的区块广播至联盟链中的其他最终出块节点,最终出块节点将接收到的区块所属父区块的哈希值一致的区块打包为一个区块集,并将打包好的区块集发送至各个联盟链组织下的验证节点,验证节点对区块集中的交易信息进行校验并执行合法的交易信息。本发明提供的方法提高了联盟链网络的运行效率,预防单节点出块时节点作恶对整个联盟链运行的损失。
Description
技术领域
本申请涉及区块链技术领域,特别是涉及一种联盟链的预期共识方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着区块链技术的发展,为了满足企业应用对区块链的技术要求,区块链由公链模式转换为联盟链模式,相比较完全去中心化、任何人均可参与、吞吐量较低的公链模式,联盟链克服了上述公链模式的缺点,参与联盟链需要许可、且联盟链具备高吞吐量、确认延迟小、数据隐私保护的优点。
在相关技术中,联盟链采用非拜占庭容错CFT共识模型实现共识,主要是由各个参与联盟链网络的组织各自提供一个出块节点。这些出块节点中起初没有主节点,均为从节点。其中,每一从节点均设置有计时器,当存在从节点计时达到了超时时长时,则这些从节点会转换为候选节点。候选节点在向自己投票的同时,也会向整个联盟链中其它节点发起请求,要求其它节点向自身投票。对于最先得票数超过一半的候选节点,则进一步会晋升为leader节点,并立刻向其它节点发起通知,告知其他节点leader节点已产生。收到通知的其它节点全部会变回从节点,并将计时器清零。其中,leader节点即为通过Raft算法所选举出的出块者,由这个出块者进行消息排序、打包出块、广播消息。由上述Raft算法的机制可知,每次只会产生一个leader节点作为出块者。当该leader节点为作恶节点时,会对整个联盟链造成损失。
发明内容
基于此,有必要针对上述技术问题,提供一种能够预防联盟链网络中的节点作恶对联盟链网络正常运行造成的危害的一种联盟链的预期共识方法。
本申请提供了一种联盟链的预期共识方法,所述方法包括:
若联盟链中存在组织的接收节点接收到交易信息,则由接收到交易信息的接收节点向联盟链中每一组织的背书节点广播交易信息;
每一背书节点根据交易信息获取第一校验信息,根据第一校验信息对交易信息进行背书,将每一背书结果发送至接收到交易信息的接收节点;
接收到交易信息的接收节点将每一背书结果及交易信息发送至每一出块节点;所有出块节点中的最终出块节点将交易信息及每一背书结果整体打包成区块,并发送至每一最终出块节点;其中,每一组织对应一个出块节点,最终出块节点是由每一出块节点对自身进行选取后所确定的;
每一最终出块节点在接收到区块后,根据接收到的区块所从属的父区块的哈希值对接收到的区块进行分类,将分为同一类的区块打包成区块集,并发送至每一组织的验证节点;
每一验证节点在接收到区块集后,对接收到的区块集进行校验并根据校验结果更新每一验证节点所维护的账本。
在其中一个实施例中,第一校验信息是从每一背书节点对应的组织所维护的账本得到的;相应地,根据第一校验信息对交易信息进行背书,包括:
每一背书节点根据第一校验信息验证交易信息是否正确,并将验证结果作为背书结果。
在其中一个实施例中,根据接收到的区块所从属的父区块的哈希值对接收到的区块进行分类,包括:
每一最终出块节点确定接收到的区块所从属的父区块哈希值,将所从属的父区块哈希值一致的区块分为同一类。
在其中一个实施例中,对接收到的区块集进行校验,包括:
对于任一验证节点,任一验证节点根据接收到的区块集中每一区块所包含的背书结果为正确的交易信息获取第二校验信息;
根据第二校验信息校验每一区块所包含的背书结果为正确的交易信息是否合法。
在其中一个实施例中,最终出块节点的确定过程包括:
每一出块节点获取自身对应的选举命中概率;
每一出块节点对自身进行选举,由选举结果为命中的出块节点作为最终出块节点;其中,每一出块节点的选举结果是由每一出块节点对应的选举命中概率所决定的。
在其中一个实施例中,每一出块节点自身对应的选举命中概率是预先设置的。
在其中一个实施例中,根据校验结果更新每一验证节点所维护的账本,包括:
每一验证节点基于校验结果为合法的交易信息,更新每一验证节点所维护的账本。
本申请还提供了一种联盟链的预期共识系统。所述系统包括:
接收模块,用于若联盟链中存在组织的接收节点接收到交易信息,则由接收到交易信息的接收节点向联盟链中每一组织的背书节点广播交易信息;
背书模块,用于每一背书节点根据交易信息获取第一校验信息,根据第一校验信息对交易信息进行背书,将每一背书结果发送至接收到交易信息的接收节点;
出块模块,用于接收到交易信息的接收节点将每一背书结果及交易信息发送至每一出块节点;所有出块节点中的最终出块节点将交易信息及每一背书结果整体打包成区块,并发送至每一最终出块节点;其中,每一组织对应一个出块节点,最终出块节点是由每一出块节点对自身进行选取后所确定的;
分类模块,用于每一最终出块节点在接收到区块后,根据接收到的区块所从属的父区块的哈希值对接收到的区块进行分类,将分为同一类的区块打包成区块集,并发送至每一组织的验证节点;
执行模块,用于每一验证节点在接收到区块集后,对接收到的区块集进行校验并根据校验结果更新每一验证节点所维护的账本。
本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:
若联盟链中存在组织的接收节点接收到交易信息,则由接收到交易信息的接收节点向联盟链中每一组织的背书节点广播交易信息;
每一背书节点根据交易信息获取第一校验信息,根据第一校验信息对交易信息进行背书,将每一背书结果发送至接收到交易信息的接收节点;
接收到交易信息的接收节点将每一背书结果及交易信息发送至每一出块节点;所有出块节点中的最终出块节点将交易信息及每一背书结果整体打包成区块,并发送至每一最终出块节点;其中,每一组织对应一个出块节点,最终出块节点是由每一出块节点对自身进行选取后所确定的;
每一最终出块节点在接收到区块后,根据接收到的区块所从属的父区块的哈希值对接收到的区块进行分类,将分为同一类的区块打包成区块集,并发送至每一组织的验证节点;
每一验证节点在接收到区块集后,对接收到的区块集进行校验并根据校验结果更新每一验证节点所维护的账本。
本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
若联盟链中存在组织的接收节点接收到交易信息,则由接收到交易信息的接收节点向联盟链中每一组织的背书节点广播交易信息;
每一背书节点根据交易信息获取第一校验信息,根据第一校验信息对交易信息进行背书,将每一背书结果发送至接收到交易信息的接收节点;
接收到交易信息的接收节点将每一背书结果及交易信息发送至每一出块节点;所有出块节点中的最终出块节点将交易信息及每一背书结果整体打包成区块,并发送至每一最终出块节点;其中,每一组织对应一个出块节点,最终出块节点是由每一出块节点对自身进行选取后所确定的;
每一最终出块节点在接收到区块后,根据接收到的区块所从属的父区块的哈希值对接收到的区块进行分类,将分为同一类的区块打包成区块集,并发送至每一组织的验证节点;
每一验证节点在接收到区块集后,对接收到的区块集进行校验并根据校验结果更新每一验证节点所维护的账本。
本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
若联盟链中存在组织的接收节点接收到交易信息,则由接收到交易信息的接收节点向联盟链中每一组织的背书节点广播交易信息;
每一背书节点根据交易信息获取第一校验信息,根据第一校验信息对交易信息进行背书,将每一背书结果发送至接收到交易信息的接收节点;
接收到交易信息的接收节点将每一背书结果及交易信息发送至每一出块节点;所有出块节点中的最终出块节点将交易信息及每一背书结果整体打包成区块,并发送至每一最终出块节点;其中,每一组织对应一个出块节点,最终出块节点是由每一出块节点对自身进行选取后所确定的;
每一最终出块节点在接收到区块后,根据接收到的区块所从属的父区块的哈希值对接收到的区块进行分类,将分为同一类的区块打包成区块集,并发送至每一组织的验证节点;
每一验证节点在接收到区块集后,对接收到的区块集进行校验并根据校验结果更新每一验证节点所维护的账本。
上述联盟链的预期共识方法、系统、计算机设备、存储介质和计算机程序产品。通过联盟链中接收交易信息的接收节点发送交易信息至各个联盟链组织的背书节点,各个联盟链组织的背书节点对交易信息进行背书并将每一背书结果发送至接收节点,接收节点广播带有每一背书结果的交易信息至最终出块节点,最终出块节点是通过预期共识算法对每一组织的出块节点进行选取所得到的且数量至少为两个。最终出块节点将带有每一背书结果的交易信息打包为区块,并将打包后的区块广播至联盟链中的其他最终出块节点,最终出块节点将接收到的区块所属父区块的哈希值一致的区块分为同一类,并将同一类别的区块打包为一个区块集并将打包好的区块集发送至各个联盟链组织下的验证节点,验证节点对区块集中的交易信息进行校验并执行合法的交易信息。本发明提供的方法提高了联盟链网络的运行效率,预防单节点出块时节点作恶对整个联盟链运行的损失,保障了联盟链的正常运行。
附图说明
图1为一个实施例中一种联盟链的预期共识方法的流程示意图;
图2为一个实施例中对打包成的区块集进行校验的流程示意图;
图3为一个实施例中确定最终出块节点的流程示意图;
图4为一个实施例中预期共识算法下消息发布及执行过程示意图;
图5为一个实施例中预期共识算法下的交易流程示意图;
图6为一个实施例中一种联盟链的预期共识系统的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在本发明的描述中,需要理解的是,涉及到方位描述,例如上、下、前、后、左、右等指示的方位或位置关系为附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
本发明的描述中,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。
随着区块链技术的发展,为了满足企业应用对区块链的技术要求,区块链由公链模式转换为联盟链模式,相比较完全去中心化、任何人均可参与、吞吐量较低的公链模式,联盟链克服了上述公链模式的缺点,参与联盟链需要许可、且联盟链具备高吞吐量、确认延迟小、数据隐私保护的优点。
在相关技术中,联盟链采用非拜占庭容错CFT共识模型实现共识,主要是由各个参与联盟链网络的组织各自提供一个出块节点。这些出块节点中起初没有主节点,均为从节点。其中,每一从节点均设置有计时器,当存在从节点计时达到了超时时长时,则这些从节点会转换为候选节点。候选节点在向自己投票的同时,也会向整个联盟链中其它节点发起请求,要求其它节点向自身投票。对于最先得票数超过一半的候选节点,则进一步会晋升为leader节点,并立刻向其它节点发起通知,告知其他节点leader节点已产生。收到通知的其它节点全部会变回从节点,并将计时器清零。其中,leader节点即为通过Raft算法所选举出的出块者,由这个出块者进行消息排序、打包出块、广播消息。由上述Raft算法的机制可知,每次只会产生一个leader节点作为出块者。当该leader节点为作恶节点时,会对整个联盟链造成损失。因此,目前急需一种联盟链的预期共识方法。
针对上述相关技术中存在的问题,参见图1,本发明实施例提供了一种联盟链的预期共识方法。以该方法应用于服务器,且执行主体为服务器为例进行说明,该方法包括如下步骤:
101、若联盟链中存在组织的接收节点接收到交易信息,则由接收到交易信息的接收节点向联盟链中每一组织的背书节点广播交易信息;
102、每一背书节点根据交易信息获取第一校验信息,根据第一校验信息对交易信息进行背书,将每一背书结果发送至接收到交易信息的接收节点;
103、接收到交易信息的接收节点将每一背书结果及交易信息发送至每一出块节点;所有出块节点中的最终出块节点将交易信息及每一背书结果整体打包成区块,并发送至每一最终出块节点;其中,每一组织对应一个出块节点,最终出块节点是由每一出块节点对自身进行选取后所确定的;
104、每一最终出块节点在接收到区块后,根据接收到的区块所从属的父区块的哈希值对接收到的区块进行分类,将分为同一类的区块打包成区块集,并发送至每一组织的验证节点;
105、每一验证节点在接收到区块集后,对接收到的区块集进行校验并根据校验结果更新每一验证节点所维护的账本。
在上述步骤101中,联盟链是由若干机构或组织共同发起并参与维护的链,也被称为许可链,只有被许可才能加入联盟链网络。每个联盟链组织都对应有接收交易信息的接收节点,每个联盟链组织都设置有一个背书节点用于接收交易信息并对交易信息进行背书。
在上述步骤102中,第一校验信息是根据交易信息从联盟链的世界状态中得到的。需要说明的是,世界状态是由联盟链网络中所有角色的状态构成,角色的状态由多个方面构成(账户余额等),消息若涉及角色状态的变更(发生了转账交易)则世界状态也会随之变化。第一校验信息为联盟链组织的账户余额信息、支付信息及收款方地址信息。背书的过程是对根据校验信息对交易信息进行验证并对交易信息的正确性进行签名认证,背书结果用来声明交易信息是否正确。
在上述步骤103中,每个联盟链组织都对应一个出块节点,通过预期共识算法从所有出块节点中选取最终出块节点,最终出块节点的数量为多个。在联盟链网络中,数据会以文件的形式被永久记录,这些文件称为区块。区块是由包含元数据的区块头和包含交易数据的区块主体构成。最终出块节点将交易信息及每一背书结果整体打包到区块的区块主体中,区块头包含该区块的哈希值及该区块所属的父区块的哈希值。
在上述步骤105中,每个联盟链组织对应一个验证节点,每一组织的验证节点与该组织对应的背书节点在物理层面属于同一个节点,具备不同的功能。对区块集的校验是来判断区块集中所包含的交易信息是否合法。
本发明实施例提供的方法,由于通过联盟链网络的各个组织的背书节点对交易信息进行接收及背书,并通过预期共识算法选取多个出块节点,由多个出块节点对每一背书结果及交易信息作为整体进行打包出块发送至每一最终出块节点,最终出块节点将接收到的区块根据父区块的哈希值进行分类打包为区块集,并发送至每一组织的验证节点,从而每一验证节点对接收到的区块集进行校验并执行校验结果为合法的交易信息,进而提高了联盟链网络的运行效率,预防单节点出块时节点作恶对整个联盟链运行的损失,保障了联盟链的正常运行。
结合上述实施例的内容,在一些实施例中,第一校验信息是从每一背书节点对应的组织所维护的账本得到的,本发明实施例不对根据第一校验信息对交易信息进行背书的方式作具体限定,包括但不限于:
每一背书节点根据第一校验信息验证交易信息是否正确,并将验证结果作为背书结果。
在上述步骤中,第一校验信息为联盟链组织的账户余额信息、支付信息及收款方地址信息。
例如,若联盟链中存在两个组织,组织A及组织B,交易信息为组织B向组织A转100元,校验信息显示组织B的账户余额为0,则验证结果为交易信息违法。
本发明实施例提供的方法,由于可以通过校验信息验证交易信息的正确性,从而保障了联盟链网络中交易信息执行的安全性。
结合上述实施例的内容,在一些实施例中,本发明实施例不对根据接收到的区块所从属的父区块的哈希值对接收到的区块进行分类的方式作具体限定,包括但不限于:
每一最终出块节点确定接收到的区块所从属的父区块哈希值,将所从属的父区块哈希值一致的区块分为同一类。
在上述步骤中,区块包含区块头和区块体两个部分,区块头包含该区块所属的父区块的哈希值,每一验证节点将接收到的区块按照区块所属父区块的哈希值进行分类。
本发明实施例提供的方法,由于可以将区块依据父区块的哈希值进行分类,从而构成了区块链存储数据的结构,提高了联盟链网络中的消息吞吐量。
结合上述实施例的内容,在一些实施例中,参见图2,本发明实施例不对接收到的区块集进行校验的方式作具体限定,包括但不限于:
201、对于任一验证节点,任一验证节点根据接收到的区块集中每一区块所包含的背书结果为正确的交易信息获取第二校验信息;
202、根据第二校验信息校验每一区块所包含的背书结果为正确的交易信息是否合法。
在上述步骤201及步骤202中,背书结果用于指示交易信息是否正确,验证节点用于校验接收到的区块集中的区块所包含的交易信息是否合法。验证节点执行区块集中校验结果为合法的交易信息。
本发明实施例提供的方法,由于可以对区块集中交易信息的合法性进行验证,从而保障了联盟链的执行交易信息的可靠性,保障了联盟链正常运行的准确度。
结合上述实施例的内容,在一些实施例中,参见图3,本发明实施例不对最终出块节点的确定过程的方式作具体限定,包括但不限于:
301、每一出块节点获取自身对应的选举命中概率;
302、每一出块节点对自身进行选举,由选举结果为命中的出块节点作为最终出块节点;其中,每一出块节点的选举结果是由每一出块节点对应的选举命中概率所决定的。
在上述步骤301及步骤302中,每一出块节点都有自身对应的选举命中概率,选举过程中,命中自身选举命中概率的出块节点作为最终出块节点。
本发明实施例提供的方法,由于通过预期共识算法选取最终出块节点,从而体现了预期共识算法的公平性、可验证性及可行性。
结合上述实施例的内容,在一些实施例中,每一出块节点自身对应的选举命中概率是预先设置的。
在上述步骤中,根据各个联盟链组织自行商定的结果或所拥有的股份占比来确定各个联盟链组织出块的概率。
本发明实施例提供的方法,由于可以通过预先设置及各个联盟链组织的股份占比来确定各个联盟链组织自身出块的概率,从而体现了该联盟链采用预期共识算法选取最终出块节点的公平性。
结合上述实施例的内容,在一些实施例中,本发明实施例不对根据校验结果更新每一验证节点所维护的账本的方式作具体限定,包括但不限于:
每一验证节点基于校验结果为合法的交易信息,更新每一验证节点所维护的账本。
在上述步骤中,区块集中合法的交易信息会被执行,各个联盟链组织会对自身所维护的账本信息进行更新,以达到联盟链网络的信息一致。
本发明实施例提供的方法,由于执行了合法的交易信息,从而保障了联盟链网络的正常运行,预防了节点作恶对联盟链网络运行造成的风险。
为了便于理解,现结合上述实施例的过程对本发明实施例提及的预期共识算法下消息发布及执行的整体流程进行说明,具体如下:
参见图4,本发明提供了预期共识算法下消息发布及执行过程的示意图,区块链中接收节点接收并广播交易信息到每一背书节点,每一背书节点根据背书策略验证交易信息是否正确,并将验证结果作为背书结果。将每一背书结果发送至接收节点,接收节点将交易信息及每一背书结果整合为消息。接收节点将消息发送至每一出块节点,所有出块节点中的最终出块节点将接收到的消息进行排序并将消息进行打包生成区块,最终出块节点将自身打包形成的区块发送至每一最终出块节点。每一最终出块节点在接收到区块后,根据接收到的区块所属父区块哈希值对接收到的区块进行分类,将分为同一类的区块打包为一个区块集,并发送至每一组织的验证节点。每一验证节点在接收到区块集后,对接收到的区块集进行校验,并执行区块集中合法的交易信息更新区块链所共同维护的账本。
为了便于理解,现结合上述实施例的过程对本发明实施例提及的预期共识算法下的交易流程进行说明,具体如下:
参见图5,本发明提供了预期共识算法下的交易流程示意图,现有一个联盟链网络,有两个组织Org1(组织1),Org2(组织2)。每个组织下均有一个出块节点(负责打包消息出块的节点)名称分别为Org1.Order(组织1的出块节点)及Org2.Order(组织2的出块节点)。分别有一个背书节点(为交易做背书)名称分别为Org1.Ed(组织1的背书节点)及Org2.Ed(组织2的背书节点)。有一个验证节点名称为:Org1.Comm(验证节点)。验证节点用于校验blockset(区块集)中交易信息的合法性。在联盟链网络创世之前Org1与Org2商定好双方因股权各占百分之五十,两个组织均有出块权且出块比例各为50%,此信息将会写入创世区块。
预期共识的交易流程如下:
1、Client(客户)发起一笔与Org1的交易。
2、交易信息发送给Org1.Ed与Org2.Ed进行预执行(不是真正的执行,只是生成校验信息便于后续校验)并进行背书(该消息需要两个背书节点都进行背书)。
3、完成之后将消息返回给Client,Client将带有背书的消息广播给出块节点。
4、这时Org1.Order与Org2.Order经过计算二者均获得本轮打包消息的权力(创世之初对出块权益进行了规定),两个出块节点对消息打包生成区块并将区块广播发送至两个组织对应的出块节点,出块节点将接收到的区块所属父区块的哈希值一致的区块分为同一类,并将同一类别的区块打包为一个blockset。
5、两个出块节点将打包好的blockset广播到网络中。
6、Org1.Comm收到blockset后,对blockset中的交易信息进行校验。
7、Org1.Comm执行合法的交易信息并更新账本,这时此条交易信息就在联盟链网络中执行成功了,blockset也会被保存。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
需要说明的是,上述阐述的技术方案在实际实施过程中可以作为独立实施例来实施,也可以彼此之间进行组合并作为组合实施例实施。另外,在对上述本发明实施例内容进行阐述时,仅基于方便阐述的思路,按照相应顺序对不同实施例进行阐述,而并非是对不同实施例之间的执行顺序进行限定,也不是对实施例内部步骤的执行顺序进行限定。相应地,在实际实施过程中,若需要实施本发明提供的多个实施例,则不一定需要按照本发明阐述实施例时所提供的执行顺序,而是可以根据需求安排不同实施例之间的执行顺序。
基于同样的发明构思,参见图6,本申请实施例还提供了一种用于实现上述所涉及的联盟链的预期共识系统,包括:接收模块601、背书模块602、出块模块603、分类模块604、执行模块605,其中:
接收模块601,用于若联盟链中存在组织的接收节点接收到交易信息,则由接收到交易信息的接收节点向联盟链中每一组织的背书节点广播交易信息;
背书模块602,用于每一背书节点根据交易信息获取第一校验信息,根据第一校验信息对交易信息进行背书,将每一背书结果发送至接收到交易信息的接收节点;
出块模块603,用于接收到交易信息的接收节点将每一背书结果及交易信息发送至每一出块节点;所有出块节点中的最终出块节点将交易信息及每一背书结果整体打包成区块,并发送至每一最终出块节点;其中,每一组织对应一个出块节点,最终出块节点是由每一出块节点对自身进行选取后所确定的;
分类模块604,用于每一最终出块节点在接收到区块后,根据接收到的区块所从属的父区块的哈希值对接收到的区块进行分类,将分为同一类的区块打包成区块集,并发送至每一组织的验证节点;
执行模块605,用于每一验证节点在接收到区块集后,对接收到的区块集进行校验并根据校验结果更新每一验证节点所维护的账本。
在其中一个实施例中,背书模块602,用于每一背书节点根据第一校验信息验证交易信息是否正确,并将验证结果作为背书结果。
在其中一个实施例中,分类模块604,用于每一最终出块节点确定接收到的区块所从属的父区块哈希值,将所从属的父区块哈希值一致的区块分为同一类。
在其中一个实施例中,校验模块604,用于对于任一验证节点,任一验证节点根据接收到的区块集中每一区块所包含的背书结果为正确的交易信息获取第二校验信息;根据第二校验信息校验每一区块所包含的背书结果为正确的交易信息是否合法。
在其中一个实施例中,出块模块603,用于每一出块节点获取自身对应的选举命中概率;每一出块节点对自身进行选举,由选举结果为命中的出块节点作为最终出块节点;其中,每一出块节点的选举结果是由每一出块节点对应的选举命中概率所决定的。
在其中一个实施例中,每一出块节点自身对应的选举命中概率是预先设置的。
在其中一个实施例中,执行模块605,用于每一验证节点基于校验结果为合法的交易信息,更新每一验证节点所维护的账本。
关于一种联盟链的预期共识系统的具体限定可以参见上文中对于一种联盟链的预期共识方法的限定,在此不再赘述。上述一种联盟链的预期共识系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储预设阈值。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种电网监控系统高速内存数据库访问方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
若联盟链中存在组织的接收节点接收到交易信息,则由接收到交易信息的接收节点向联盟链中每一组织的背书节点广播交易信息;
每一背书节点根据交易信息获取第一校验信息,根据第一校验信息对交易信息进行背书,将每一背书结果发送至接收到交易信息的接收节点;
接收到交易信息的接收节点将每一背书结果及交易信息发送至每一出块节点;所有出块节点中的最终出块节点将交易信息及每一背书结果整体打包成区块,并发送至每一最终出块节点;其中,每一组织对应一个出块节点,最终出块节点是由每一出块节点对自身进行选取后所确定的;
每一最终出块节点在接收到区块后,根据接收到的区块所从属的父区块的哈希值对接收到的区块进行分类,将分为同一类的区块打包成区块集,并发送至每一组织的验证节点;
每一验证节点在接收到区块集后,对接收到的区块集进行校验并根据校验结果更新每一验证节点所维护的账本。
在一个实施例中,校验消息是从每一背书节点对应的组织所维护的账本得到的,处理器执行计算机程序时还实现以下步骤:
每一背书节点根据第一校验信息验证交易信息是否正确,并将验证结果作为背书结果。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
每一最终出块节点确定接收到的区块所从属的父区块哈希值,将所从属的父区块哈希值一致的区块分为同一类。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
对于任一验证节点,任一验证节点根据接收到的区块集中每一区块所包含的背书结果为正确的交易信息获取第二校验信息;
根据第二校验信息校验每一区块所包含的背书结果为正确的交易信息是否合法。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
每一出块节点获取自身对应的选举命中概率;
每一出块节点对自身进行选举,由选举结果为命中的出块节点作为最终出块节点;其中,每一出块节点的选举结果是由每一出块节点对应的选举命中概率所决定的。
在一个实施例中,处理器在执行计算机程序时,每一出块节点自身对应的选举命中概率是预先设置的。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
每一验证节点基于校验结果为合法的交易信息,更新每一验证节点所维护的账本。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
若联盟链中存在组织的接收节点接收到交易信息,则由接收到交易信息的接收节点向联盟链中每一组织的背书节点广播交易信息;
每一背书节点根据交易信息获取第一校验信息,根据第一校验信息对交易信息进行背书,将每一背书结果发送至接收到交易信息的接收节点;
接收到交易信息的接收节点将每一背书结果及交易信息发送至每一出块节点;所有出块节点中的最终出块节点将交易信息及每一背书结果整体打包成区块,并发送至每一最终出块节点;其中,每一组织对应一个出块节点,最终出块节点是由每一出块节点对自身进行选取后所确定的;
每一最终出块节点在接收到区块后,根据接收到的区块所从属的父区块的哈希值对接收到的区块进行分类,将分为同一类的区块打包成区块集,并发送至每一组织的验证节点;
每一验证节点在接收到区块集后,对接收到的区块集进行校验并根据校验结果更新每一验证节点所维护的账本。
在一个实施例中,校验消息是从每一背书节点对应的组织所维护的账本得到的,处理器执行计算机程序时还实现以下步骤:
每一背书节点根据第一校验信息验证交易信息是否正确,并将验证结果作为背书结果。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
每一最终出块节点确定接收到的区块所从属的父区块哈希值,将所从属的父区块哈希值一致的区块分为同一类。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
对于任一验证节点,任一验证节点根据接收到的区块集中每一区块所包含的背书结果为正确的交易信息获取第二校验信息;
根据第二校验信息校验每一区块所包含的背书结果为正确的交易信息是否合法。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
每一出块节点获取自身对应的选举命中概率;
每一出块节点对自身进行选举,由选举结果为命中的出块节点作为最终出块节点;其中,每一出块节点的选举结果是由每一出块节点对应的选举命中概率所决定的。
在一个实施例中,计算机程序被处理器执行时,每一出块节点自身对应的选举命中概率是预先设置的。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
每一验证节点基于校验结果为合法的交易信息,更新每一验证节点所维护的账本。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
若联盟链中存在组织的接收节点接收到交易信息,则由接收到交易信息的接收节点向联盟链中每一组织的背书节点广播交易信息;
每一背书节点根据交易信息获取第一校验信息,根据第一校验信息对交易信息进行背书,将每一背书结果发送至接收到交易信息的接收节点;
接收到交易信息的接收节点将每一背书结果及交易信息发送至每一出块节点;所有出块节点中的最终出块节点将交易信息及每一背书结果整体打包成区块,并发送至每一最终出块节点;其中,每一组织对应一个出块节点,最终出块节点是由每一出块节点对自身进行选取后所确定的;
每一最终出块节点在接收到区块后,根据接收到的区块所从属的父区块的哈希值对接收到的区块进行分类,将分为同一类的区块打包成区块集,并发送至每一组织的验证节点;
每一验证节点在接收到区块集后,对接收到的区块集进行校验并根据校验结果更新每一验证节点所维护的账本。
在一个实施例中,校验消息是从每一背书节点对应的组织所维护的账本得到的,处理器执行计算机程序时还实现以下步骤:
每一背书节点根据第一校验信息验证交易信息是否正确,并将验证结果作为背书结果。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
每一最终出块节点确定接收到的区块所从属的父区块哈希值,将所从属的父区块哈希值一致的区块分为同一类。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
对于任一验证节点,任一验证节点根据接收到的区块集中每一区块所包含的背书结果为正确的交易信息获取第二校验信息;
根据第二校验信息校验每一区块所包含的背书结果为正确的交易信息是否合法。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
每一出块节点获取自身对应的选举命中概率;
每一出块节点对自身进行选举,由选举结果为命中的出块节点作为最终出块节点;其中,每一出块节点的选举结果是由每一出块节点对应的选举命中概率所决定的。
在一个实施例中,计算机程序被处理器执行时,每一出块节点自身对应的选举命中概率是预先设置的。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
每一验证节点基于校验结果为合法的交易信息,更新每一验证节点所维护的账本。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种联盟链的预期共识方法,其特征在于,所述方法包括:
若联盟链中存在组织的接收节点接收到交易信息,则由接收到交易信息的接收节点向所述联盟链中每一组织的背书节点广播所述交易信息;
每一背书节点根据所述交易信息获取第一校验信息,根据所述第一校验信息对所述交易信息进行背书,将每一背书结果发送至接收到交易信息的接收节点;
接收到交易信息的接收节点将每一背书结果及所述交易信息发送至每一出块节点;所有出块节点中的最终出块节点将所述交易信息及每一背书结果整体打包成区块,并发送至每一最终出块节点;其中,每一组织对应一个出块节点,最终出块节点是由每一出块节点对自身进行选取后所确定的,所述最终出块节点的数量为多个;
每一最终出块节点在接收到区块后,根据接收到的区块所从属的父区块的哈希值对接收到的区块进行分类,将分为同一类的区块打包成区块集,并发送至每一组织的验证节点;
每一验证节点在接收到区块集后,对接收到的区块集进行校验并根据校验结果更新每一验证节点所维护的账本。
2.根据权利要求1所述的方法,其特征在于,所述第一校验信息是从每一背书节点对应的组织所维护的账本得到的;相应地,所述根据所述第一校验信息对所述交易信息进行背书,包括:
每一背书节点根据所述第一校验信息验证所述交易信息是否正确,并将验证结果作为背书结果。
3.根据权利要求1所述的方法,其特征在于,所述根据接收到的区块所从属的父区块的哈希值对接收到的区块进行分类,包括:
每一最终出块节点确定接收到的区块所从属的父区块哈希值,将所从属的父区块哈希值一致的区块分为同一类。
4.根据权利要求1所述的方法,其特征在于,所述对接收到的区块集进行校验,包括:
对于任一验证节点,所述任一验证节点根据接收到的区块集中每一区块所包含的背书结果为正确的交易信息获取第二校验信息;
根据所述第二校验信息校验每一区块所包含的背书结果为正确的交易信息是否合法。
5.根据权利要求1所述的方法,其特征在于,所述最终出块节点的确定过程包括:
每一出块节点获取自身对应的选举命中概率;
每一出块节点对自身进行选举,由选举结果为命中的出块节点作为最终出块节点;其中,每一出块节点的选举结果是由每一出块节点对应的选举命中概率所决定的。
6.根据权利要求5所述的方法,其特征在于,每一出块节点自身对应的选举命中概率是预先设置的。
7.根据权利要求1所述的方法,其特征在于,所述根据校验结果更新每一验证节点所维护的账本,包括:
每一验证节点基于校验结果为合法的交易信息,更新每一验证节点所维护的账本。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111465690.4A CN113868341B (zh) | 2021-12-03 | 2021-12-03 | 联盟链的预期共识方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111465690.4A CN113868341B (zh) | 2021-12-03 | 2021-12-03 | 联盟链的预期共识方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113868341A CN113868341A (zh) | 2021-12-31 |
CN113868341B true CN113868341B (zh) | 2022-03-18 |
Family
ID=78985793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111465690.4A Active CN113868341B (zh) | 2021-12-03 | 2021-12-03 | 联盟链的预期共识方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113868341B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111200589A (zh) * | 2019-12-05 | 2020-05-26 | 北京数字认证股份有限公司 | 一种联盟链的数据保护方法及系统 |
CN113256427A (zh) * | 2021-06-28 | 2021-08-13 | 北京航空航天大学 | 一种基于联合签名的联盟区块链共识方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108717630B (zh) * | 2018-05-19 | 2020-12-22 | 上海分布信息科技有限公司 | 一种出块方法及其实现系统 |
CN109033405B (zh) * | 2018-08-03 | 2020-09-08 | 华为技术有限公司 | 维护区块链的方法和装置、服务器和计算机可读存储介质 |
-
2021
- 2021-12-03 CN CN202111465690.4A patent/CN113868341B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111200589A (zh) * | 2019-12-05 | 2020-05-26 | 北京数字认证股份有限公司 | 一种联盟链的数据保护方法及系统 |
CN113256427A (zh) * | 2021-06-28 | 2021-08-13 | 北京航空航天大学 | 一种基于联合签名的联盟区块链共识方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113868341A (zh) | 2021-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10795857B2 (en) | Blockchain system and method thereof | |
CN110868440B (zh) | 区块链公链 | |
CN111464518B (zh) | 一种跨链通信数据的发送、验证方法及装置 | |
CN112003942B (zh) | 链下数据请求响应方法、系统、节点设备与存储介质 | |
CN107844976A (zh) | 一种基于区块链的存证应用交易系统及方法 | |
CN112907369B (zh) | 基于区块链的数据共识方法及装置、电子设备、存储介质 | |
CN109064325B (zh) | 一种基于区块链的智能合约实现方法和装置 | |
CN109255056B (zh) | 区块链的数据引用处理方法、装置、设备及存储介质 | |
WO2020228531A1 (zh) | 联盟链的治理方法及装置、计算机设备、存储介质 | |
Wang et al. | Bft in blockchains: From protocols to use cases | |
CN111899019A (zh) | 一种黑名单多方交叉验证和共享的方法及系统 | |
CN113518005B (zh) | 一种区块共识方法、装置、设备及存储介质 | |
CN112597240A (zh) | 一种基于联盟链的联邦学习的数据处理方法与系统 | |
CN110278246B (zh) | 一种针对联盟链的存证业务转移方法、装置及设备 | |
KR20210077176A (ko) | 뉴럴 블록 클러스터 기반의 안전한 블록 체인 네트워크 시스템 | |
CN112700333A (zh) | 一种基于区块链的电子档案共识方法 | |
CN111209542B (zh) | 一种权限管理方法、装置、存储介质及电子设备 | |
CN113868341B (zh) | 联盟链的预期共识方法 | |
CN110784324B (zh) | 一种节点准入方法及装置 | |
CN112995167A (zh) | 基于Kafka机制的用电信息采集方法、区块链网络及用户端 | |
CN112200573A (zh) | 一种可回滚的区块链交易设计方法 | |
CN111131329A (zh) | 区块链系统的数据共识方法、装置及硬件设备 | |
EP3980955A1 (en) | Subscription to edits of blockchain transaction | |
KR102542063B1 (ko) | 뉴럴 블록 클러스터 기반의 안전한 블록 체인을 구축하는 장치 및 그 동작 방법 | |
CN114513498B (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 |