CN112102078A - 区块链共识计算方法、装置、计算机设备及存储介质 - Google Patents
区块链共识计算方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN112102078A CN112102078A CN202010788944.5A CN202010788944A CN112102078A CN 112102078 A CN112102078 A CN 112102078A CN 202010788944 A CN202010788944 A CN 202010788944A CN 112102078 A CN112102078 A CN 112102078A
- Authority
- CN
- China
- Prior art keywords
- transaction
- block
- nodes
- node list
- session node
- 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.)
- Granted
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 33
- 238000012795 verification Methods 0.000 claims abstract description 44
- 238000000034 method Methods 0.000 claims abstract description 19
- 230000000903 blocking effect Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 8
- 238000010276 construction Methods 0.000 claims description 2
- 238000004422 calculation algorithm Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000002790 cross-validation Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 102220352372 c.148T>G Human genes 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Computer Networks & Wireless Communication (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Data Mining & Analysis (AREA)
- Signal Processing (AREA)
- General Business, Economics & Management (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种区块链共识计算方法、装置、计算机设备及存储介质,涉及区块链技术领域,主要用于提高区块链共识计算的效率。主要方法包括:获取预置时间段内有效交易的区块;根据区块内的有效交易构建会话节点列表,所述会话节点列表中存储每个有效交易分别对应的交易节点;若会话节点列表中交易节点的数量小于预置安全阈值,则根据交易节点确定邻居节点并将邻居节点加入会话节点列表,以使会话节点列表中的交易节点的数量大于等于预置安全阈值;将区块内的有效交易发送给会话节点列表中的交易节点进行验证;若确定大于等于第一预置数量的交易节点对区块内的有效交易验证成功,则提交区块的有效交易。
Description
技术领域
本发明属于区块链技术领域,尤其涉及一种区块链共识计算方法、装置、计算机设备及存储介质。
背景技术
区块链作为一种分布式账本技术,其由共识驱动、高安全、不可更改、数据标准化且天然加密。这些特性使得区块链技术成为解决上述物联网络问题的一个有效解决方案。然而,常规区块链网络中使用的共识和相关算法对于大规模的工业物联网是几乎不可行的。为了使区块链适用于工业物联网,必须对其基于共识的安全机制进行优化和改造,大幅度提高交易验证以及共识的效率,使其可以满足需求。
目前在联盟链中,已有的共识算法也无法满足工业物联网的需求,如时间证明(PoET)算法,网络创建一个区块需要随机等待一段时间,第一个完成等待的节点获得记账权。然而随着节点规模的扩大,调节节点之间选举过程的成本将越来越大,因此选举的合法性需由每个成员节点来确认,所以当节点规模足够大时,其时间成本过于高昂。
发明内容
本发明实施例提供一种区块链共识计算方法、装置、计算机设备及存储介质,旨在提高区块链共识计算的效率。
本发明实施例是这样实现的,一种区块链共识计算方法,所述方法应用于区块链,所述方法包括:
获取预置时间段内有效交易的区块;
根据所述区块内的有效交易构建会话节点列表,所述会话节点列表中存储每个有效交易分别对应的交易节点;
若所述会话节点列表中所述交易节点的数量小于预置安全阈值,则根据所述交易节点确定邻居节点并将所述邻居节点加入所述会话节点列表,以使所述会话节点列表中的交易节点的数量大于等于所述预置安全阈值;
将所述区块内的有效交易发送给所述会话节点列表中的交易节点进行验证;
若确定大于等于第一预置数量的交易节点对所述区块内的有效交易验证成功,则提交所述区块的有效交易。
本发明实施例还提供了一种区块链共识计算装置,所述装置应用于区块链,所述装置包括:
获取模块,用于获取预置时间段内有效交易的区块;
构建模块,用于根据所述区块内的有效交易构建会话节点列表,所述会话节点列表中存储每个有效交易分别对应的交易节点;
确定模块,用于若所述会话节点列表中所述交易节点的数量小于预置安全阈值,则根据所述交易节点确定邻居节点并将所述邻居节点加入所述会话节点列表,以使所述会话节点列表中的交易节点的数量大于等于所述预置安全阈值;
验证模块,用于将所述区块内的有效交易发送给所述会话节点列表中的交易节点进行验证;
提交模块,用于若确定大于等于第一预置数量的交易节点对所述区块内的有效交易验证成功,则提交所述区块的有效交易。
本发明实施例还提供一种计算机设备,包括处理器、存储器、以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器运行所述计算机程序时,所述计算机设备执行上述的区块链共识计算方法。
本发明实施例还提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的区块链共识计算方法。
本发明提供一种区块链共识计算方法、装置、计算机设备及存储介质,首先获取预置时间段内有效交易的区块;然后根据区块内的有效交易构建会话节点列表,若会话节点列表中交易节点的数量小于预置安全阈值,则根据交易节点确定邻居节点并将邻居节点加入会话节点列表,以使会话节点列表中的交易节点的数量大于等于预置安全阈值;将区块内的有效交易发送给会话节点列表中的交易节点进行验证;若确定大于等于第一预置数量的交易节点对区块内的有效交易验证成功,则提交区块的有效交易。即本发明每个新的区块都由不同的节点来进行验证和背书,并在交易节点数量不足以验证区块中的有效交易时,将交易节点的邻居节点加入一并进行验证,从而通过本发明可实现交易随机交叉验证的效果,使得数据可以在区块链上更快地形成共识,提高了区块链共识计算的效率。
附图说明
图1是本发明实施例一当中的区块链共识计算方法的流程图;
图2是本发明实施例二当中的区块链共识计算方法的流程图;
图3是本发明实施例三当中的区块链共识计算方法的流程图;
图4为本发明实施例四当中的区块链共识计算装置的结构框图;
图5是本发明实施例五当中的计算机设备的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
目前公有链一般依靠工作量证明(PoW)或类似的算法来创建一个新的区块,其本质都是依靠解决一个复杂的数学问题(挖矿)来争夺记账权,既造成了资源的浪费,也导致交易效率低下。工业物联网由于其消息量庞大,因此需要的是一个不影响其安全性又足够高效的共识算法。在联盟链中,已有的共识算法也无法满足工业物联网的需求,如时间证明(PoET)算法,网络创建一个区块需要随机等待一段时间,第一个完成等待的节点获得记账权。然而随着节点规模的扩大,调节节点之间选举过程的成本将越来越大,因此选举的合法性需由每个成员节点来确认,所以当节点规模足够大时,其时间成本过于高昂。
为解决上述问题,本发明提出了一种区块链共识计算方法、装置、计算机设备及存储介质,首先获取预置时间段内有效交易的区块;然后根据区块内的有效交易构建会话节点列表,若会话节点列表中交易节点的数量小于预置安全阈值,则根据交易节点确定邻居节点并将邻居节点加入会话节点列表,以使会话节点列表中的交易节点的数量大于等于预置安全阈值;将区块内的有效交易发送给会话节点列表中的交易节点进行验证;若确定大于等于第一预置数量的交易节点对区块内的有效交易验证成功,则提交区块的有效交易。即本发明每个新的区块都由不同的节点来进行验证和背书,并在交易节点数量不足以验证区块中的有效交易时,将交易节点的邻居节点加入一并进行验证,从而通过本发明可实现交易随机交叉验证的效果,使得数据可以在区块链上更快地形成共识,提高了区块链共识计算的效率。
本发明主要解决物联网设备交易数据产生频率高、并发量大时,传统区块链无法快速处理、验证交易的问题。传统的区块链共识机制在处理此类数据时对交易逐笔记录且共识确认时间缓慢,无法适应数据量大、频率高、并发量高的业务场景。
需要说明的是,在本发明描述的区块链应用在物联网领域的情况下,交易(或事务)仍然使用三个阶段来完成:分别是交易的发起阶段、交易的验证阶段以及交易的提交阶段。在具体的描述这三个阶段的细节之前,对本发明中的一些术语做一个说明:
设备:指能够接收或者产生区块链交易的物联网设备,如某类传感器。
节点:指能够执行区块链共识算法并且读写账本的装置,上文所述的设备始终会连接到某个节点,节点则处理来自于该设备的交易信息。
管理员:对区块链网络进行初始化与维护(如节点准入许可等)的个人或组织。
在交易发起之前,物联网设备需要在区块链网络内进行注册,设备上的应用与CA系统进行交互,由管理员角色许可后,CA为该设备产生注册证书,以使得该设备可以向区块链网络进行注册。
实施例一
请参阅图1,所示为本发明第一实施例当中的区块链共识计算方法,可应用于区块链中,所述方法具体包括步骤S10-步骤S20。
步骤S10,获取预置时间段内有效交易的区块。
其中,预置时间Ts具体可以实际需求进行设定,比如Ts为1分钟、3分钟、4分钟等,本发明实施例不做具体限定。需要说明的是,本发明实施例在获取预置时间段内有效交易的区块之前,还需要经历的交易的发起阶段、交易的验证阶段以及交易的提交阶段。具体内容如下所示:
交易发起阶段
物联网设备上的应用收集需要上链的数据,并使用SDK将其进行数据标准化。该数据包含所采集的有效业务数据以物联网设备对该业务数据的签名信息。然后通过与对应的节点建立的专用通道提交交易数据。其中,对应的节点一种是物联网设备直接作为节点;一种是若干物联网设备组成内网后通过统一的中转设备联网(比如物联网设备本身配置过低,其算力和存储空间皆无法满足节点运行要求,此时需要借助在物联网内网的某个设备进行请求的中转)
交易验证阶段
节点首先会对收到的上链数据做签名核验,即接收所述来源节点方发送的交易数据,所述交易数据包含签名信息;对所述交易数据中的签名信息进行验证;若验证通过,则确定所述来源节点的交易为有效交易。此时可能会因签名无效或者设备权限不足(如该设备未被授权向网络提交信息等)而拒绝数据提交请求。通过验证的交易将会得到节点的背书,并被视为有效交易。
交易提交阶段
当OSN(Orderer Service Node)打包某个时间段内(记为Ts)的有效交易为一个区块并通过本发明确定后才进入提交阶段。
步骤S20,根据区块内的有效交易构建会话节点列表,所述会话节点列表中存储每个有效交易分别对应的交易节点。
其中,交易节点包括来源节点及目标节点,来源节点和目标节点都是指区块链网络中的节点,比如某个物联网设备触发了一笔交易行为(或数字资产流转行为),则该物联网设备(或其对应节点)即为来源节点。具体的,本实施例在接收到预置时间段内有效交易的区块之后,获取区块内有效交易的所有来源节点及目标节点,然后根据来源节点及目标节点构建会话节点列表。
需要说明的是,本实施例中的会话节点列表除了包含来源节点和目标节点,还包含节点的公共地址、所参与的交易数量以及所使用的参数信息等,本发明实施例不做具体限定。其中,公共地址指该节点在区块链网络的对外通信地址,一般为某个有效的公网IP或内网IP(如整个区块链网络采用overlay组网,则公共地址可能为内网IP);参数信息包含由用户按照其需要附加的个性化信息,可用于对所提交数据进行后续的分析和处理。
步骤S30,若会话节点列表中交易节点的数量小于预置安全阈值,则根据交易节点确定邻居节点并将邻居节点加入会话节点列表,以使会话节点列表中的交易节点的数量大于等于预置安全阈值。
其中,预置安全阈值可以根据需求进行设置,具体可以为100、200、300等,本发明实施例不做具体限定,初始安全阈值可在组网时根据实际情况进行设定,如全程经过公网交互的网络阈值可以调高,而使用overlay组网则可以使用默认的51%设定即可,阈值的取值范围为[51,100]。
例如,预置安全阈值为100,会话节点列表中的节点数量为40,则需要将交易节点的邻居节点加入到会话节点列表中,然后再次计算会话节点列表中交易节点的数量是否小于100,如果交易节点的数量还是小于100,则将再次获取加入会员节点列表中邻居节点的邻居节点,然后将再次确认的邻居节点加入到会话节点列表中,直至会话节点列表中的交易节点的数量大于等于100。
需要说明的是,会话节点列表中的来源节点和目标节点存在重复的情况,为了减少在后续步骤中确定邻居节点的效率,因此在本发明提供的一个实施例中,在根据所述交易节点确定邻居节点并将所述邻居节点加入所述会话节点列表之前,以使所述会话节点列表中的交易节点的数量大于等于所述预置安全阈值,包括:对所述来源节点及所述目标节点进行去重;根据去重后的所述来源节点及所述目标节点确定邻居节点并将所述邻居节点加入所述会话节点列表,以使所述会话节点列表中的交易节点的数量大于等于所述预置安全阈值。
在本发明提供的一个实施例中,步骤S30根据所述交易节点确定邻居节点并将所述邻居节点加入所述会话节点列表,以使所述会话节点列表中的交易节点的数量大于等于所述预置安全阈值,包括:
步骤S301,随机从所述会话节点列表中选取第二预置数量的交易节点。
其中,第二预置数量可以根据实际需求进行设定,如将第二预置数量设置为会话节点列表中节点数量的一半,或是会话节点列表中节点数量的三分之一等,本发明实施例不做具体限定。
步骤S302,向选取的交易节点的邻居节点发送加入会话节点列表请求,使得邻居节点加入会话节点列表,直至会话节点列表中的交易节点的数量大于等于预置安全阈值。
具体的,本发明中被选取的交易节点请求其邻居节点加入本会话节点列表,若某个邻居节点收到多个节点发起邀请加入列表的请求,则只响应最早收到的一个请求。检查会话节点列表中交易节点的数量,若交易节点的数量依旧低于预置安全阈值,则重复执行直到满足最低预置安全阈值需求。
步骤S40,将区块内的有效交易发送给会话节点列表中的交易节点进行验证。
步骤S50,若确定大于等于第一预置数量的交易节点对区块内的有效交易验证成功,则提交区块的有效交易。
本发明实施例提供一种区块链共识计算方法,在会话节点列表中的交易节点数量不足以对区块进行验证时,根据交易节点确定邻居节点并将邻居节点加入会话节点列表,以使会话节点列表中的交易节点的数量大于等于预置安全阈值,然后根据会话节点列表中的节点对区块进行验证。即本发明每个新的区块都由不同的节点来进行验证和背书,并在交易节点数量不足以验证区块中的有效交易时,将交易节点的邻居节点加入一并进行验证,从而通过本发明可实现交易随机交叉验证的效果,使得数据可以在区块链上更快地形成共识,提高了区块链共识计算的效率。
实施例二
请参阅图2,所示为本发明第二实施例当中的区块链共识计算方法,本实施例当中的区块链共识计算方法与第一实施例当中的区块链共识计算方法的不同之处在于:在将所述区块内的有效交易发送给所述会话节点列表中的交易节点进行验证之后,所述方法还包括:
步骤S50A,若确定小于第一预置数量的交易节点对区块内的有效交易验证成功,则阻塞下一区块的创建。
其中,步骤S50A是步骤S50的并列步骤,若确定小于第一预置数量的交易节点对区块内的有效交易验证成功,则阻塞下一区块的创建,并根据区块验证失败的原因,对区块进行操作。
步骤S60,若区块发生的早期失败,则将区块中的有效交易添加到下一区块中,并删除所述下一区块的阻塞状态。
在本发明实施例中,若区块发生的早期失败或未收集到足够的响应来确定是否已共识成功,则将有效交易添加到下一区块中,并删除所述下一区块的阻塞状态。
步骤S70,若区块发生的晚期失败,则再次对区块进行提交,并在提交成功之后删除下一区块的阻塞状态。
在本发明实施例中,晚期失败会比较低概率发生,一般指接收到了足够的响应,但是在更新世界状态时失败了,此时只需要重新提交块即可,并在提交成功后删除active_blocking状态以允许下一个区块的创建。
本发明实施例提供一种区块链共识计算方法,在确定小于第一预置数量的交易节点对区块内的有效交易验证成功,则阻塞下一区块的创建,然后根据区块发生的失败的原因对区块进行操作,即若区块发生的早期失败,则将区块中的有效交易添加到下一区块中,并删除所述下一区块的阻塞状态;若区块发生的晚期失败,则再次对区块进行提交,并在提交成功之后删除下一区块的阻塞状态。
实施例三
请参阅图3,所示为本发明第三实施例当中的区块链共识计算方法,本实施例当中的区块链共识计算方法与第一实施例当中的区块链共识计算方法的不同之处在于:将所述区块内的有效交易发送给所述会话节点列表中的所述交易节点进行验证步骤具体包括:
步骤401,为会话节点列表中每个交易节点生成一个唯一随机数。
针对会话节点列表内的每一个节点,确保其获得一个范围在[1,Ls]中的唯一随机数,Ls是会话节点列表的长度。
步骤402,将区块内的有效交易发送给交易节点进行安全性验证。
具体的,在将区块内的有效交易被提交给交易节点进行安全性验证时,同时提交的还有一个随机产生的数字(用来在可能存在的多次提交时标记本次提交),节点在响应验证结果时需要附加该随机数用于后续比对。在收集到足够多的响应时,会比对发送给节点的随机数和节点响应时给出的随机数是否一致,如果一致,视作节点对指定的内容完成了验证。如果不一致,则可能是发生了多次提交事件,该节点的响应需要被丢弃或忽略。
步骤403,检测是否在预置时间内收到对应唯一随机数的有效交易的背书。
在本发明实施例中,将每一个节点的交易信息发送至上一步随机选择的交易节点进行交易验证,出于隐私的考虑,负责验证的节点无法读取交易内容,该内容由发起者加密,验证节点仅对节点的签名、合约的有效性等必要信息进行验证,通过验证的交易将得到该节点的背书。
步骤404,若在预置时间内收到对应唯一随机数的有效交易的背书,则确定交易节点对区块内的有效交易验证成功。
本发明提供的实施例,为会话节点列表中每个交易节点生成一个唯一随机数,将区块内的有效交易发送给交易节点进行安全性验证,若在预置时间内收到对应唯一随机数的有效交易的背书,则确定交易节点对区块内的有效交易验证成功。当设备发起交易信息后,本地节点会对交易信息进行验证,由于外部攻击者无法提供合法的证书,因此该交易的提交将立刻被驳回。且为了确保整个网络内没有非法交易,采用了交叉随机验证的方式,因此攻击者并不得知验证该笔交易的节点究竟是网络内哪个节点,因此无法通过验证,从而通过本发明提高了数据安全性。
实施例四
本发明另一方面还提出一种区块链共识计算装置,请参阅图4,所示为本发明第四实施例提供的区块链共识计算装置,可应用于区块链中,所述区块链共识计算装置包括:
获取模块10,用于获取预置时间段内有效交易的区块;
构建模块20,用于根据所述区块内的有效交易构建会话节点列表,所述会话节点列表中存储每个有效交易分别对应的交易节点;
确定模块30,用于若所述会话节点列表中所述交易节点的数量小于预置安全阈值,则根据所述交易节点确定邻居节点并将所述邻居节点加入所述会话节点列表,以使所述会话节点列表中的交易节点的数量大于等于所述预置安全阈值;
验证模块40,用于将所述区块内的有效交易发送给所述会话节点列表中的交易节点进行验证;
提交模块50,用于若确定大于等于第一预置数量的交易节点对所述区块内的有效交易验证成功,则提交所述区块的有效交易。
进一步的,所述装置还包括:
接收模块60,用于接收所述来源节点方发送的交易数据,所述交易数据包含签名信息;
所述验证模块40,用于对所述交易数据中的签名信息进行验证;
所述确定模块30,还用于若验证通过,则确定所述来源节点的交易为有效交易。
进一步的,所述装置还包括:
去重模块70,用于对所述来源节点及所述目标节点进行去重;
所述确定模块30,具体用于根据去重后的所述来源节点及所述目标节点确定邻居节点并将所述邻居节点加入所述会话节点列表,以使所述会话节点列表中的交易节点的数量大于等于所述预置安全阈值。
具体的,所述确定模块30,包括:
选取单元31,用于随机从所述会话节点列表中选取第二预置数量的交易节点;
发送单元32,用于向选取的交易节点的邻居节点发送加入会话节点列表请求,使得所述邻居节点加入所述会话节点列表,直至所述会话节点列表中的交易节点的数量大于等于所述预置安全阈值。
具体的,所述验证模块40,包括:
生成单元41,用于为所述会话节点列表中每个所述交易节点生成一个唯一随机数;
验证单元42,用于将所述区块内的有效交易发送给所述交易节点进行安全性验证;
检测单元43,用于检测是否在预置时间内收到对应所述唯一随机数的有效交易的背书;
确定单元44,用于若在所述预置时间内收到对应所述唯一随机数的有效交易的背书,则确定所述交易节点对所述区块内的有效交易验证成功。
进一步的,所述装置还包括:
阻塞模块80,用于若确定小于所述第一预置数量的交易节点对所述区块内的有效交易验证成功,则阻塞下一区块的创建;
处理模块90,用于根据所述区块的提交失败的原因,对所述区块进行处理。
具体的,所述处理模块90,包括:
添加删除单元91,用于若所述区块发生的早期失败,则将所述区块中的有效交易添加到所述下一区块中,并删除所述下一区块的阻塞状态;
提交删除单元92,用于若所述区块发生的晚期失败,则再次对所述区块进行提交,并在提交成功之后删除所述下一区块的阻塞状态。
上述各模块、单元被执行时所实现的功能或操作步骤与上述方法实施例大体相同,在此不再赘述。
综上,本实施例当中的区块链共识计算装置,首先获取预置时间段内有效交易的区块;然后根据区块内的有效交易构建会话节点列表,若会话节点列表中交易节点的数量小于预置安全阈值,则根据交易节点确定邻居节点并将邻居节点加入会话节点列表,以使会话节点列表中的交易节点的数量大于等于预置安全阈值;将区块内的有效交易发送给会话节点列表中的交易节点进行验证;若确定大于等于第一预置数量的交易节点对区块内的有效交易验证成功,则提交区块的有效交易。即本发明每个新的区块都由不同的节点来进行验证和背书,并在交易节点数量不足以验证区块中的有效交易时,将交易节点的邻居节点加入一并进行验证,从而通过本发明可实现交易随机交叉验证的效果,使得数据可以在区块链上更快地形成共识,提高了区块链共识计算的效率。
实施例五
本发明实施例另一方面还提出一种计算机设备,请参阅图5,所示为本发明第五实施例当的计算机设备,包括处理器10、存储器20、以及存储在存储器上并可在处理器上运行的计算机程序30,所述处理器10运行所述计算机程序30时,所述计算机设备执行上述的区块链共识计算方法。
处理器10在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器20中存储的程序代码或处理数据。
其中,存储器20至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器20在一些实施例中可以是计算机设备的内部存储单元,例如该计算机设备的硬盘。存储器20在另一些实施例中也可以是计算机设备的外部存储设备,例如计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器20还可以既包括计算机设备的内部存储单元也包括外部存储设备。存储器20不仅可以用于存储安装于计算机设备的应用软件及各类数据,还可以用于暂时地存储已经输出或者将要输出的数据。
可选地,该计算机设备还可以包括用户接口、网络接口、通信总线等,用户接口可以包括显示器(Display)、输入单元比如遥控器、实体按键等,可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在计算机设备中处理的信息以及用于显示可视化的用户界面。网络接口可选的可以包括标准的有线接口、无线接口(如WI-FI接口),通常用于在该计算机设备与其他机器人技术之间建立通信连接。通信总线用于实现这些组件之间的连接通信。
需要指出的是,图5示出的结构并不构成对计算机设备的限定,在其它实施例当中,该计算机设备可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
综上,本实施例当中的计算机设备,每个新的区块都由不同的节点来进行验证和背书,并在交易节点数量不足以验证区块中的有效交易时,将交易节点的邻居节点加入一并进行验证,从而通过本发明可实现交易随机交叉验证的效果,使得数据可以在区块链上更快地形成共识,提高了区块链共识计算的效率。
本发明实施例还提供了一种存储介质,其上存储有上述计算机设备中所使用的计算机程序30,该程序在被处理器执行时实现上述的区块链共识计算方法。
其中,所述的存储介质可以为但不限于ROM/RAM、磁碟、光盘等。
本领域技术人员可以理解,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或它们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种区块链共识计算方法,所述方法应用于区块链,其特征在于,所述方法包括:
获取预置时间段内有效交易的区块;
根据所述区块内的有效交易构建会话节点列表,所述会话节点列表中存储每个有效交易分别对应的交易节点;
若所述会话节点列表中所述交易节点的数量小于预置安全阈值,则根据所述交易节点确定邻居节点并将所述邻居节点加入所述会话节点列表,以使所述会话节点列表中的交易节点的数量大于等于所述预置安全阈值;
将所述区块内的有效交易发送给所述会话节点列表中的交易节点进行验证;
若确定大于等于第一预置数量的交易节点对所述区块内的有效交易验证成功,则提交所述区块的有效交易。
2.根据权利要求1所述的区块链共识计算方法,其特征在于,所述交易节点包括来源节点及目标节点,所述获取预置时间段内有效交易的区块之前,所述方法还包括:
接收所述来源节点方发送的交易数据,所述交易数据包含签名信息;
对所述交易数据中的签名信息进行验证;
若验证通过,则确定所述来源节点的交易为有效交易。
3.根据权利要求2所述的区块链共识计算方法,其特征在于,根据所述交易节点确定邻居节点并将所述邻居节点加入所述会话节点列表,以使所述会话节点列表中的交易节点的数量大于等于所述预置安全阈值,所述方法还包括:
对所述来源节点及所述目标节点进行去重;
根据去重后的所述来源节点及所述目标节点确定邻居节点并将所述邻居节点加入所述会话节点列表,以使所述会话节点列表中的交易节点的数量大于等于所述预置安全阈值。
4.根据权利要求1或3所述的区块链共识计算方法,其特征在于,根据所述交易节点确定邻居节点并将所述邻居节点加入所述会话节点列表,以使所述会话节点列表中的交易节点的数量大于等于所述预置安全阈值,包括:
随机从所述会话节点列表中选取第二预置数量的交易节点;
向选取的交易节点的邻居节点发送加入会话节点列表请求,使得所述邻居节点加入所述会话节点列表,直至所述会话节点列表中的交易节点的数量大于等于所述预置安全阈值。
5.根据权利要求4所述的区块链共识计算方法,其特征在于,将所述区块内的有效交易发送给所述会话节点列表中的所述交易节点进行验证,包括:
为所述会话节点列表中每个所述交易节点生成一个唯一随机数;
将所述区块内的有效交易发送给所述交易节点进行安全性验证;
检测是否在预置时间内收到对应所述唯一随机数的有效交易的背书;
若在所述预置时间内收到对应所述唯一随机数的有效交易的背书,则确定所述交易节点对所述区块内的有效交易验证成功。
6.根据权利要求1所述的区块链共识计算方法,其特征在于,所述方法还包括:
若确定小于所述第一预置数量的交易节点对所述区块内的有效交易验证成功,则阻塞下一区块的创建;
根据所述区块的提交失败的原因,对所述区块进行处理。
7.根据权利要求6所述的区块链共识计算方法,其特征在于,所述根据所述区块的提交失败的原因,对所述区块进行处理,包括:
若所述区块发生的早期失败,则将所述区块中的有效交易添加到所述下一区块中,并删除所述下一区块的阻塞状态;
若所述区块发生的晚期失败,则再次对所述区块进行提交,并在提交成功之后删除所述下一区块的阻塞状态。
8.一种区块链共识计算装置,所述装置应用于区块链,其特征在于,所述装置包括:
获取模块,用于获取预置时间段内有效交易的区块;
构建模块,用于根据所述区块内的有效交易构建会话节点列表,所述会话节点列表中存储每个有效交易分别对应的交易节点;
确定模块,用于若所述会话节点列表中所述交易节点的数量小于预置安全阈值,则根据所述交易节点确定邻居节点并将所述邻居节点加入所述会话节点列表,以使所述会话节点列表中的交易节点的数量大于等于所述预置安全阈值;
验证模块,用于将所述区块内的有效交易发送给所述会话节点列表中的交易节点进行验证;
提交模块,用于若确定大于等于第一预置数量的交易节点对所述区块内的有效交易验证成功,则提交所述区块的有效交易。
9.一种计算机设备,其特征在于,包括处理器、存储器、以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器运行所述计算机程序时,所述计算机设备执行权利要求1-7任一项所述的区块链共识计算方法。
10.一种存储介质,其特征在于,其上存储有计算机程序,该计算机程序被处理器执行时实现权利要求1-7任一项所述的区块链共识计算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010788944.5A CN112102078B (zh) | 2020-08-07 | 2020-08-07 | 区块链共识计算方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010788944.5A CN112102078B (zh) | 2020-08-07 | 2020-08-07 | 区块链共识计算方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112102078A true CN112102078A (zh) | 2020-12-18 |
CN112102078B CN112102078B (zh) | 2024-05-21 |
Family
ID=73752670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010788944.5A Active CN112102078B (zh) | 2020-08-07 | 2020-08-07 | 区块链共识计算方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112102078B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114285745A (zh) * | 2021-12-22 | 2022-04-05 | 上海摩联信息技术有限公司 | 一种节点更新方法和装置 |
CN116545608A (zh) * | 2023-05-15 | 2023-08-04 | 合肥工业大学 | 基于熟人免疫策略的区块传播方法和系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180039667A1 (en) * | 2016-08-05 | 2018-02-08 | Chicago Mercantile Exchange Inc. | Systems and methods for blockchain rule synchronization |
CN108764870A (zh) * | 2018-05-29 | 2018-11-06 | 阿里巴巴集团控股有限公司 | 基于区块链的交易处理方法及装置、电子设备 |
WO2019021107A1 (en) * | 2017-07-24 | 2019-01-31 | nChain Holdings Limited | COMPUTER-IMPLEMENTED SYSTEM AND METHOD FOR MANAGING A LARGE MEMORY GROUP DISTRIBUTED IN A BLOCK CHAIN NETWORK |
US20190036712A1 (en) * | 2017-07-26 | 2019-01-31 | Alibaba Group Holding Limited | Digital certificate management method, apparatus, and system |
US20190147532A1 (en) * | 2017-11-13 | 2019-05-16 | Bank Of America Corporation | Crypto - machine learning enabled blockchain based profile pricer |
CN109767220A (zh) * | 2019-01-15 | 2019-05-17 | 中国联合网络通信集团有限公司 | 基于区块链的交易方法及基于区块链的交易系统 |
CN111062811A (zh) * | 2019-12-02 | 2020-04-24 | 远光软件股份有限公司 | 一种区块链共识方法、系统、存储介质 |
CN111406396A (zh) * | 2017-11-27 | 2020-07-10 | 区块链控股有限公司 | 用于诸如区块链网络等网络中的数据传播和通信的计算机实现的系统和方法 |
-
2020
- 2020-08-07 CN CN202010788944.5A patent/CN112102078B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180039667A1 (en) * | 2016-08-05 | 2018-02-08 | Chicago Mercantile Exchange Inc. | Systems and methods for blockchain rule synchronization |
WO2019021107A1 (en) * | 2017-07-24 | 2019-01-31 | nChain Holdings Limited | COMPUTER-IMPLEMENTED SYSTEM AND METHOD FOR MANAGING A LARGE MEMORY GROUP DISTRIBUTED IN A BLOCK CHAIN NETWORK |
US20190036712A1 (en) * | 2017-07-26 | 2019-01-31 | Alibaba Group Holding Limited | Digital certificate management method, apparatus, and system |
US20190147532A1 (en) * | 2017-11-13 | 2019-05-16 | Bank Of America Corporation | Crypto - machine learning enabled blockchain based profile pricer |
CN111406396A (zh) * | 2017-11-27 | 2020-07-10 | 区块链控股有限公司 | 用于诸如区块链网络等网络中的数据传播和通信的计算机实现的系统和方法 |
CN108764870A (zh) * | 2018-05-29 | 2018-11-06 | 阿里巴巴集团控股有限公司 | 基于区块链的交易处理方法及装置、电子设备 |
CN109767220A (zh) * | 2019-01-15 | 2019-05-17 | 中国联合网络通信集团有限公司 | 基于区块链的交易方法及基于区块链的交易系统 |
CN111062811A (zh) * | 2019-12-02 | 2020-04-24 | 远光软件股份有限公司 | 一种区块链共识方法、系统、存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114285745A (zh) * | 2021-12-22 | 2022-04-05 | 上海摩联信息技术有限公司 | 一种节点更新方法和装置 |
CN116545608A (zh) * | 2023-05-15 | 2023-08-04 | 合肥工业大学 | 基于熟人免疫策略的区块传播方法和系统 |
CN116545608B (zh) * | 2023-05-15 | 2024-06-04 | 合肥工业大学 | 基于熟人免疫策略的区块传播方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112102078B (zh) | 2024-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021073452A1 (zh) | 基于区块链网络的数据处理方法、装置、电子设备及存储介质 | |
US20230370283A1 (en) | Securing blockchain transaction based on undetermined data | |
CN111295660B (zh) | 用于将区块链连接到数字孪生的计算机实现的系统和方法 | |
CN110582775B (zh) | 利用utxo基础协议基于区块链管理文件的方法及利用其的文件管理服务器 | |
EP3639465B1 (en) | Improved hardware security module management | |
CN111163182B (zh) | 基于区块链的设备注册方法、装置、电子设备和存储介质 | |
EP3586493B1 (en) | Method for mining a block in a decentralized blockchain consensus network | |
US10878248B2 (en) | Media authentication using distributed ledger | |
KR102019211B1 (ko) | 비잔틴 장애를 극복 가능한 블록체인 생성 방법 | |
US20200252221A1 (en) | Optimizations for verification of interactions system and method | |
KR20170137388A (ko) | 블록체인 기술을 이용한 무결성 보장 방법 | |
Ahmad et al. | Secure and transparent audit logs with BlockAudit | |
Wang et al. | DAG blockchain-based lightweight authentication and authorization scheme for IoT devices | |
He et al. | Securing over-the-air IoT firmware updates using blockchain | |
CN110598434B (zh) | 基于区块链网络的房屋信息处理方法、装置、电子设备及存储介质 | |
Han et al. | A survey on blockchain-based integrity auditing for cloud data | |
CN110543488B (zh) | 一种验证节点更新方法、装置及设备 | |
CN110084600B (zh) | 决议事务请求的处理、验证方法、装置、设备及介质 | |
WO2022061599A1 (zh) | 一种基于区块链的分布式物联网指令管理方法和系统 | |
CN112102078B (zh) | 区块链共识计算方法、装置、计算机设备及存储介质 | |
WO2023040453A1 (zh) | 一种交易信息处理方法及装置 | |
Chenli et al. | ProvNet: Networked bi-directional blockchain for data sharing with verifiable provenance | |
CN111260475A (zh) | 一种数据处理方法、区块链节点设备及存储介质 | |
CN112069529B (zh) | 基于区块链的卷宗管理方法、装置、计算机以及存储介质 | |
CN112102079B (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 |