CN110288479B - 一种区块链数据的共识方法及相关设备 - Google Patents

一种区块链数据的共识方法及相关设备 Download PDF

Info

Publication number
CN110288479B
CN110288479B CN201910577916.6A CN201910577916A CN110288479B CN 110288479 B CN110288479 B CN 110288479B CN 201910577916 A CN201910577916 A CN 201910577916A CN 110288479 B CN110288479 B CN 110288479B
Authority
CN
China
Prior art keywords
block
voted
consensus
node
voting
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
Application number
CN201910577916.6A
Other languages
English (en)
Other versions
CN110288479A (zh
Inventor
陆路
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Xunlei Network Technology Co Ltd
Original Assignee
Shenzhen Onething Technology Co Ltd
Shenzhen Xunlei Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Onething Technology Co Ltd, Shenzhen Xunlei Network Technology Co Ltd filed Critical Shenzhen Onething Technology Co Ltd
Priority to CN201910577916.6A priority Critical patent/CN110288479B/zh
Publication of CN110288479A publication Critical patent/CN110288479A/zh
Application granted granted Critical
Publication of CN110288479B publication Critical patent/CN110288479B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请实施例公开了一种区块链数据的共识方法及其相关设备,用于降低区块链共识的通信复杂度。本申请实施例方法包括:提议节点获取待投票区块;将所述待投票区块发送至所述投票节点;接收所述投票节点发送的签名信息,所述签名信息用于指示所述投票节点对所述待投票区块校验成功;判断预定时间内接收到的所述签名信息的数量是否达到预设值;若是,则根据所述签名信息生成确认信息,所述确认信息用于指示所述待投票区块为达成共识的区块;将所述确认信息发送至所述投票节点,以使得所述投票节点将所述待投票区块确定为达成共识的区块。其中,在区块链中提议节点和投票节点通过签名信息和确认信息来实现对待投票区块的共识,有效降低区块链共识的通信复杂度。

Description

一种区块链数据的共识方法及相关设备
技术领域
本申请涉及区块链技术领域,尤其涉及一种区块链数据的共识方法及相关设备。
背景技术
共识机制,是通过特殊节点的投票,在很短的时间内完成对交易的验证和确认,对于一笔交易,如果利益不相干的若干个节点能够达成共识,就可以认为全网对此也能够达成共识。
目前有很多拜占庭容错共识算法如实用拜占庭容错算法(PBFT,PracticalByzantine Fault Tolerance),该算法是Miguel Castro和Barbara Liskov在1999年提出来的,解决了原始拜占庭容错算法效率不高的问题,算法的时间复杂度是O(n^2),使得在实际系统应用中可以解决拜占庭容错问题。
但传统的PBFT共识机制的通信复杂度较高,无法支持大量节点参与共识,当节点数量达到百个以上级别的时候,PBFT共识算法的性能急剧下降,传统的PBFT算法无法支持大规模的节点参与共识。
发明内容
本申请实施例提供了一种区块链数据的共识方法及其相关设备,用于降低区块链共识的通信复杂度。
本申请实施例第一方面提供了一种区块链数据的共识方法,应用于提议节点,所述提议节点为区块链中的节点,所述区块链还包括至少二个投票节点,所述方法包括:
获取待投票区块;
将所述待投票区块发送至所述投票节点;
接收所述投票节点发送的签名信息,所述签名信息用于指示所述投票节点对所述待投票区块校验成功;
当确定在第一预定时间内接收到的所述签名信息的数量达到预设值时,则根据所述签名信息生成确认信息,所述确认信息用于指示所述待投票区块为达成共识的区块;
将所述确认信息发送至所述投票节点,以使得所述投票节点将所述待投票区块确定为达成共识的区块。
可选的,所述待投票区块包括所述待投票区块的区块高度,在所述将所述待投票区块发送至所述投票节点之前,所述方法还包括:
获取所述区块链中区块的区块高度与所述区块链中区块唯一对应的提议节点之间的映射关系,所述映射关系预先通过预设算法确定;
根据所述映射关系校验所述待投票区块的区块高度是否与所述提议节点对应;
当校验通过时,则执行所述将所述待投票区块发送至所述投票节点。
可选的,在所述将所述待投票区块发送至所述投票节点之前,所述方法还包括:
在自身数据库中查找最高已共识区块,所述最高已共识区块为存在对应确认信息的区块中区块高度最高的区块;
判断所述待投票区块是否为所述最高已共识区块的子孙区块;
若是,则执行所述将所述待投票区块发送至所述投票节点。
可选的,所述方法还包括:
当确定在所述第一预定时间内接收到的所述签名信息的数量未达到预设值时,则在所述待投票区块所在数据链中将所述待投票区块设置为空块。
可选的,在所述根据所述签名信息生成确认信息之后,所述方法还包括:
判断是否在前一个区块对应的共识时间内接收到所述前一个区块的确认信息,所述待投票区块为所述前一个区块的子区块;
若是,在将所述待投票区块和所述前一个区块所在数据链确认为达成共识的区块链;
若否,则延迟确认所述待投票区块和所述前一个区块所在数据链。
可选的,所述将所述待投票区块和所述前一个区块所在数据链确认为达成共识的区块链包括:在所述待投票区块和所述前一个区块所在数据链中,将所述前一个区块及之前的所有区块都入链。
本申请实施例第二方面提供了一种区块链数据的共识方法,应用于投票节点,所述投票节点为区块链中的节点,所述区块链还包括提议节点,所述方法包括:
接收所述提议节点发送的待投票区块;
对所述待投票区块进行校验;
若校验成功,则对所述待投票区块进行签名,得到签名信息;
将所述签名信息发送至所述提议节点;
当确定在第二预定时间内接收到所述提议节点发送的确认信息,则将所待投票区块确定为达成共识的区块,所述确认信息用于指示所述待投票区块为达成共识的区块,所述确认信息是所述提议节点在预定时间内接收到的所述签名信息的数量达到预设值后生成的。
可选的,所述待投票区块包括目标区块高度,所述对所述待投票区块进行校验包括:
获取所述区块链中区块的区块高度与所述区块链中区块唯一对应的提议节点之间的映射关系,所述映射关系预先通过预设算法确定;
根据所述映射关系校验所述待投票区块的区块高度是否与所述提议节点对应;
若校验通过,则确定对所述待投票区块校验成功;
若校验不通过,则确定对所述待投票区块校验失败。
可选的,所述待投票区块包括目标区块高度,所述对所述待投票区块进行校验包括:
获取历史投票信息,所述历史投票信息包括所述投票节点已投票的区块;
确定出所述已投票的区块对应的第一区块高度;
判断所述目标区块高度是否大于所述第一区块高度;
若是,则确定对所述待投票区块校验成功;
若否,则确定对所述待投票区块校验失败。
可选的,所述待投票区块包括交易信息,所述对所述待投票区块进行校验包括:
判断所述交易信息是否符合预设条件;
若是,则确定对所述待投票区块校验成功;
若否,则确定对所述待投票区块校验失败。
可选的,所述待投票区块包括目标区块高度,所述对所述待投票区块进行校验包括:
获取共识区块的最高高度变量以及时间参数;
根据所述最高高度变量和所述时间参数确定出最高可投票区块高度;
判断所述目标区块高度是否大于所述最高可投票区块高度;
若是,则确定对所述待投票区块校验成功;
若否,则确定对所述待投票区块校验失败。
可选的,在将所待投票区块确定为达成共识的区块之后,所述方法还包括:
使用所述目标区块高度更新所述最高高度变量。
可选的,所述方法还包括:
当确定在第二预定时间内没有接收到所述提议节点发送的确认信息,则在所述待投票区块所在数据链中将所述待投票区块设置为空块。
可选的,在将所待投票区块确定为达成共识的区块之后,所述方法还包括:
判断在前一个区块对应的共识时间内是否接收到所述待投票区块的前一个区块的确认信息,所述待投票区块为所述前一个区块的子区块;
若是,在将所述待投票区块所在数据链确认为达成共识的区块链;
若否,则延迟确认所述待投票区块和所述前一个区块所在数据链。
可选的,所述将所述待投票区块和所述前一个区块所在数据链确认为达成共识的区块链包括:在所述待投票区块和所述前一个区块所在数据链中,将所述前一个区块及之前的所有区块都入链。
本申请实施例第三方面提供了一种区块链数据的共识装置,所述装置包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的区块链数据的共识程序,所述区块链数据的共识程序被所述处理器执行时实现如前述方法实施例任一项所述的方法。
可选地,所述装置为区块链网络的节点。
本申请实施例第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有区块链数据的共识程序,所述区块链数据的共识程序可被一个或者多个处理器执行,以实现如前述方法实施例中任一项所述的区块链数据的共识方法。
从以上技术方案可以看出,本申请实施例具有以下优点:提议节点获取待投票区块;将所述待投票区块发送至所述投票节点;接收所述投票节点发送的签名信息,所述签名信息用于指示所述投票节点对所述待投票区块校验成功;判断预定时间内接收到的所述签名信息的数量是否达到预设值;若是,则根据所述签名信息生成确认信息,所述确认信息用于指示所述待投票区块为达成共识的区块;将所述确认信息发送至所述投票节点。其中,在区块链中提议节点和投票节点通过签名信息和确认信息来实现对待投票区块的共识,有效降低区块链共识的通信复杂度,使得更多节点可以参与到共识流程中,越多的节点参与使得系统的安全性越高。
附图说明
图1为本申请实施例中一种区块链数据的共识方法实施例的一个示意图;
图2为本申请实施例中一种区块链数据的共识方法实施例的另一个示意图;
图3为本申请实施例中一种区块链数据的共识方法实施例的另一个示意图;
图4为本申请实施例中一种区块链数据的共识方法实施例的另一个示意图;
图5为本申请实施例中一种区块链数据的共识方法实施例的另一个示意图;
图6为本申请实施例中一种区块链数据的共识装置实施例的一个示意图。
具体实施方式
本申请实施例提供了一种区块链数据的共识方法及其相关设备,用于降低区块链共识的通信复杂度。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
共识机制,是通过特殊节点的投票,在很短的时间内完成对交易的验证和确认,对于一笔交易,如果利益不相干的若干个节点能够达成共识,就可以认为全网对此也能够达成共识。目前有很多拜占庭容错共识算法如实用拜占庭容错算法(PBFT,PracticalByzantine Fault Tolerance),该算法是Miguel Castro和Barbara Liskov在1999年提出来的,解决了原始拜占庭容错算法效率不高的问题,算法的时间复杂度是O(n^2),使得在实际系统应用中可以解决拜占庭容错问题。但传统的PBFT共识机制的通信复杂度较高,无法支持大量节点参与共识,当节点数量达到百个以上级别的时候,PBFT共识算法的性能急剧下降,传统的PBFT算法无法支持大规模的节点参与共识。为此,本申请实施例提供了一种区块链数据的共识方法及其相关设备,用于降低区块链共识的通信复杂度。
为了便于理解,下面对本申请实施例中的具体流程进行描述,请参阅图1,本申请实施例中一种区块链数据的共识方法的一个实施例包括:
101、提议节点获取待投票区块;
本实施例中,提议节点获取待投票区块。
具体地,可以将区块链系统中的众多节点分为提议节点和投票节点,即在区块链中参与共识的角色分为两类:提议节点与投票节点,提议节点负责收集交易、打包区块和验证投票信息。投票节点负责验证区块和给有效的区块进行投票。此外,投票节点的数量一般为多个,在区块链系统正常运行的时候,每一轮出块有且仅有一个提议节点执行出块的步骤,可使用常用的选择算法唯一确定某一区块(可以用区块高度信息对区块进行区别)的提议者,如使用简单的轮询,提议者轮流出块。
本步骤中,提议节点获取待投票节点的方式有多种,例如,可以是该提议节点自身提出新交易,使用该新交易信息生成待投票区块,也可以是该提议节点在预设时间段内接收其他节点发送的交易信息进行组合得到待投票区块,还可以是其他形式获取得到该待投票区块,此处不做限定。
此外,示例性的,一个完整的区块可以包括:Block<blockhash, parenthash,height,txs,commit>,其中,
blockhash:指的是区块的hash,是parenthash,txshash,commit这些信息的hash;
parenthash:前一个区块的hash;
height:区块高度;
txshash:交易列表的hash;
txs: 区块包括的交易列表;
commit:对区块的确认信息;
步骤101中获取得到的待投票区块不包括commit部分。
102、提议节点将待投票区块发送至投票节点;
本实施例中,提议节点将步骤101获取得到的待投票区块发送至投票节点。
具体的,提议节点可以在区块链系统中将该待投票区块进行上传广播的形式,从而使得投票节点通过与区块链系统联网之后获取得到该待投票区块。
103、投票节点对待投票区块进行验证;
本实施例中,投票节点对步骤102中接收到的待投票区块进行验证。
具体的,由步骤101可以得知,具体在待投票区块中可以包括多种信息,例如区块高度信息、区块交易信息,除此之外,还可以包括例如时间戳或者是区块中的其他信息,本步骤中,该投票节点按照预设的规则对待投票区块中包含信息的一种或多种进行验证,得到验证结果,当验证成功的时候,投票节点则执行步骤104中的对待投票区块进行签名的步骤。
104、投票节点对待投票区块进行签名;
本实施例中,当投票节点在步骤103中确定对待投票区块验证成功之后,则对该待投票区块进行签名,得到签名信息,该签名信息用于指示该投票节点对所述待投票区块校验成功。
具体的,可以在该待投票区块中添加该投票节点的签名信息,例如可以使用该投票节点的私钥对该待投票节点进行签名,以使得其他节点可以使用该投票节点的公钥对该签名进行认证。
105、投票节点将签名信息发送至提议节点;
本实施例中,投票节点将签名信息发送至提议节点,具体在此处,投票节点可以将签名信息附加在待投票区块中发送至提议节点。
其中,区块链系统中一般包括多个投票节点,则投票节点在步骤102收到提议节点发送的待投票区块之后在预设时长内做出响应,即在预设时间段内将签名信息发送至提议节点。
106、提议节点判断第一预定时间内接收到的签名信息的数量是否达到预设值;
本实施例中,提议节点判断在第一预设时间内接收到的签名信息的数量是否达到预设值,若是,则执行步骤107,若否,则执行步骤110。
具体的,在区块链系统中的共识机制是有时间控制的,一旦超过第一预设时间就认为没有达成共识,第一预设时间可以是根据不同的方案具体设置,此处不做限定。此外,此处提议节点也可以作为投票节点进行参与投票,也可以不参与投票。具体判断过程可以借鉴PBFT算法的认证模式,即该区块链系统中一共包括3F+1个节点,F为大于0的自然数,以该提议节点不参与投票为例,此时本步骤中的预设值为2F+1(当提议节点参与投票时,预设值可以是2F),即该提议节点在预设时间段内若接收到2F+1个节点确定对该待投票区块的签名信息时,即确定签名信息的数量达到预设值,则执行步骤107,若否,则执行步骤110。
107、若是,则提议节点生成确认信息;
本实施例中,当提议节点在步骤106中确定在第一预定时间内签名信息的数量达到预设值时,则该提议节点根据根据所述签名信息生成确认信息,该确认信息用于指示该提议节点认可待投票区块为达成共识的区块,示例性的,可以将该确认信息写入待投票区块中的commit部分。
具体在方案的执行过程中,可以直接将该签名信息进行简单的叠加得到该确认信息,也可以是使用聚合签名算法将该签名信息进行聚合得到确认信息,还可以是其他的形式的确认信息,此处不做限定。
108、提议节点将确认信息发送至投票节点;
本实施例中,提议节点将步骤107生成的确认信息发送至投票节点。
109、投票节点将待投票区块确定达成共识;
本实施例中,当投票节点确定在第二预定时间内接收到所述提议节点发送的确认信息时,则将所待投票区块确定为达成共识的区块,所述确认信息用于指示所述待投票区块为达成共识的区块,所述确认信息是所述提议节点在预定时间内接收到的所述签名信息的数量达到预设值后生成的。具体该第二预设时间可以设置为与第一预设时间相同,也可以根据方案的实施进行调整,在区块链系统中的共识机制是有时间控制的,一旦超过第二预设时间就认为没有达成共识,第二预设时间可以是根据不同的方案具体设置,此处不做限定。
其中,当投票节点将待投票区块确定达成共识之后,可以执行将该待投票区块直接加入本地区块链中,也可以是将该待投票区块放入本地交易池中排队等待执行,还可以是执行其他操作,具体此处不做限定。
此外,在本步骤中,当投票节点确定在第二预定时间内没有接收到所述提议节点发送的确认信息时,则可以在所述待投票区块所在数据链中将所述待投票区块设置为空块,则待投票区块可能被丢弃,或者延迟将该待投票区块入链,若在预设时间内确认接收到该待投票区块后一个区块的确认信息时,再将其入链。
110、若否,则执行其他操作。
本实施例中,当提议节点在步骤106中确定在第一预定时间内签名信息的数量未达到预设值,则确定该待投票区块未获得区块链系统的认可,则该提议节点不执行根据签名信息生成确认信息的步骤,可直接将该待投票区块进行丢弃,或者是重新提交等待下一轮询过程,还可以是其他的操作,具体此处不做限定。
作为一个优选方案,当提议节点在步骤106中确定在第一预定时间内签名信息的数量未达到预设值,可以在所述待投票区块所在数据链中将所述待投票区块设置为空块,则待投票区块可能被丢弃,或者延迟将该待投票区块入链,若在预设时间内确认接收到该待投票区块后一个区块的确认信息时,再将其入链。
本实施例中,提议节点获取待投票区块;将所述待投票区块发送至所述投票节点;接收所述投票节点发送的签名信息,所述签名信息用于指示所述投票节点对所述待投票区块校验成功;判断预定时间内接收到的所述签名信息的数量是否达到预设值;若是,则根据所述签名信息生成确认信息,所述确认信息用于指示所述待投票区块为达成共识的区块;将所述确认信息发送至所述投票节点。其中,在区块链中提议节点和投票节点通过签名信息和确认信息来实现对待投票区块的共识,有效降低区块链共识的通信复杂度,使得更多节点可以参与到共识流程中,越多的节点参与使得系统的安全性越高。
基于图1所述实施例,具体在步骤101提议节点获取待投票区块的过程之后可以预先设置触发条件,即只有在满足该触发条件的时候,才会执行步骤102中将待投票区块发送至投票节点的步骤。下面将分别通过图2-1和图2-2进行介绍:
请参阅图2-1,本申请实施例中一种区块链数据的共识方法的另一个实施例中,基于图1所述实施例,具体在步骤102之前,该方法还可以包括:
201、获取所述区块链中区块的区块高度与所述区块链中区块唯一对应的提议节点之间的映射关系;
本实施例中,获取所述区块链中区块的区块高度与所述区块链中区块唯一对应的提议节点之间的映射关系,所述映射关系预先通过预设算法确定。
具体的,步骤101中获取得到的待投票区块中可以包括该区块的目标区块高度。而在区块链系统中,每个区块高度的提议者是唯一的。提议者的选择预设算法能唯一确定某一区块高度的提议者,如使用简单的轮询,从而可以实现提议者轮流出块,即各个节点(包括提议节点和投票节点)都会各自根据区块链的预设算法计算得到映射关系,该映射关系用于指示不同区块高度与不同提议节点的唯一对应关系,在本步骤中,该提议节点根据预设算法计算获取到该映射关系。
202、根据所述映射关系校验所述待投票区块的区块高度是否与所述提议节点对应;
本实施例中,该提议节点根据步骤201获取得到的映射关系对该目标区块高度进行校验,当校验通过时,执行步骤203,当校验不通过时,则执行步骤204。
本实施例中,提议节点具体是对步骤101获取得到的该待投票信息进行校验,用以校验该待投票区块是否为合法区块。
203、当校验通过时,则执行所述将所述待投票区块发送至所述投票节点。
本实施例中,当步骤202对目标区块高度校验通过时,触发执行步骤102将所述待投票区块发送至所述投票节点。
204、当校验不通过时,则执行所述将所述待投票区块发送至所述投票节点。
本实施例中,当步骤202对目标区块高度校验不通过时,则执行其他操作,例如执行不触发执行步骤102将所述待投票区块发送至所述投票节点,也可以是执行多次校验或者等待指令等其他操作,具体此处不做限定。
请参阅图2-2,本申请实施例中一种区块链数据的共识方法的另一个实施例中,基于图1所述实施例,具体在步骤102之前,该方法还可以包括:
205、在自身数据库中查找最高已共识区块;
本实施例中,在自身数据库中查找最高已共识区块,所述最高已共识区块为存在对应确认信息的区块中区块高度最高的区块。
具体的,该提议节点在自身数据库中查找确定出已共识区块,其中,已共识区块为存在对应确认信息的区块,即该已共识区块为区块链系统中的合法区块。在已共识区块中确定出其中区块高度最高的区块。
206、判断所述待投票区块是否为所述最高已共识区块的子孙区块;
本实施例中,判断在步骤101获取得到的待投票区块是否是提议节点步骤205查找到的已共识区块对应的子孙区块,若是,则执行步骤207,若否,则执行步骤208。
具体的,根据区块链的实现特性,区块链上新生成的区块必须是此前已共识区块的子孙区块,本步骤中,判断两者是否存在对应关系指的是判断步骤101获取得到的待投票区块是否是步骤205查找得到的已共识区块的子孙区块,若是,则可以进一步确定该待投票区块为合法区块。
207、若是,则触发将所述待投票区块发送至所述投票节点。
本实施例中,若步骤206中确定待投票区块是所述最高已共识区块的子孙区块,则触发执行步骤102将所述待投票区块发送至所述投票节点.
208、若否,则执行其他操作。
本实施例中,若步骤206中确定待投票区块不是所述最高已共识区块的子孙区块,例如执行不触发执行步骤102将所述待投票区块发送至所述投票节点,也可以是执行多次校验或者等待指令等其他操作,具体此处不做限定。
本实施例中,具体在方案的执行过程中,图2-1与图2-2的执行逻辑可以是二选一也可以并行执行,此处不做限定。
本申请实施例中,基于前述实施例,如果在步骤103根据所述签名信息生成确认信息之后,提议节点发现存储的区块链存在分叉,则可以使用延迟入链的方案进一步对方案进行优化。下面请参阅图2-3,在区块链系统的确认过程中,具体在步骤103根据所述签名信息生成确认信息之后,该方法还包括:
209、判断是否在前一个区块对应的共识时间内接收到所述前一个区块的确认信息,所述待投票区块为所述前一个区块的子区块;
本实施例中,该提议节点判断是否在前一个区块对应的共识时间内接收到所述前一个区块的确认信息,若是,则执行步骤213,若否,则执行步骤214,其中,待投票区块为所述前一个区块的子区块,即待投票区块与前一个区块为相邻两个区块。
210、若是,在将所述待投票区块和所述前一个区块所在数据链确认为达成共识的区块链;
本实施例中,当提议节点在步骤210中确定在前一个区块对应的共识时间内接收到所述前一个区块的确认信息时,即连续两个区块(前一个区块和待投票区块)都在对应的共识时间内收到确认信息时,则在将所述待投票区块和所述前一个区块所在数据链确认为达成共识的区块链。
可选的,上述将所述待投票区块和所述前一个区块所在数据链确认为达成共识的区块链包括:在待投票区块和前一个区块所在数据链中,将前一个区块及之前的所有区块都入链。而待投票区块暂时不入链,要等待其子区块也能在对应的共识时间内被确认时再入链。
211、若否,则延迟确认所述待投票区块和所述前一个区块所在数据链。
本实施例中,当提议节点在步骤212中确定在前一个区块对应的共识时间内未接收到所述前一个区块的确认信息时,则延迟确认所述待投票区块和所述前一个区块所在数据链。
具体地,以图5为例,在未出现分叉时,当收到对于11区块的确认信息时,由于存在对于11区块的确认信息和对于10区块的确认信息,则11区块以及11区块之前的区块都会被确认;在出现分叉之后,当收到对于15区块的确认信息后,由于此前已经收到对于14区块的确认信息,则14区块以及之前的所有区块被确认,即下面那条链被确认,上面的链被抛弃。
上述方案为延迟入链的方案,即达成共识的区块不会立刻入链,而是要等连续两个块都确认了才会将前一个块入链(延迟一个块才入链)。其中,出现分叉的原因是节点在收到对于10区块的确认信息之后,没有及时收到对于11区块的确认信息,且在预设时长内收到了对于12区块的确认信息,因此先将11区块置空,由图5可以看出,区块链在区块11开始出现分叉,且在区块11至区块14各个分支中均未出现收到连续两个区块的确认信息,因此,区块11至区块14尚未能确认哪一个分支是合法的。在此之后,在下面的分支链中收到连续区块(14区块与15区块)的确认信息,此时,可以将14区块以及之前的所有区块被确认,即下面那条链被确认,上面的链被抛弃。
在其中,区块链系统可以将其它分支已确认的区块(11区块和13区块)包括的交易列表再打包进后续的达成共识的区块中,这样也不会导致交易记录的丢失。
本申请实施例中,基于图1所述实施例,具体在步骤103投票节点对待投票区块进行校验的过程中,可以通过多种方式对该待投票区块进行校验,下面将通过图3-1、图3-2、图3-3、图3-4分别进行介绍:
请参阅图3-1,本申请实施例中一种区块链数据的共识方法的另一个实施例中,基于图1所述实施例,具体在步骤103对所述待投票区块进行校验具体可以包括:
301、获取所述区块链中区块的区块高度与所述区块链中区块唯一对应的提议节点之间的映射关系;
302、根据所述映射关系校验所述待投票区块的区块高度是否与所述提议节点对应;
本实施例中,投票节点执行的步骤301和步骤302与图2-1提议节点执行的步骤201和步骤202类似,此处不再赘述。
303、若校验通过,则确定对所述待投票区块校验成功;
本实施例中,当投票节点在步骤302中确定通过对该目标区块高度校验时,则确定对待投票区块校验成功,可以触发执行步骤104对该待投票区块进行投票的过程。
304、若校验不通过,则确定对所述待投票区块校验失败。
本实施例中,当投票节点在步骤302中确定不通过对该目标区块高度校验是,则确定对该待投票区块校验失败,可以触发不执行步骤104对该待投票区块进行投票的过程,也可以是执行多次校验或者等待指令等其他操作,具体此处不做限定。
请参阅图3-2,本申请实施例中一种区块链数据的共识方法的另一个实施例中,基于图1所述实施例,具体在步骤103对所述待投票区块进行校验具体可以包括:
305、获取历史投票信息;
本实施例中,获取历史投票信息,所述历史投票信息包括所述投票节点已投票的区块。
具体的,在步骤102接收提议节点发送的待投票区块包括目标区块高度,本步骤中,历史投票信息指的是该投票节点在当前时间点之前已执行投票(签名)的区块。
306、确定出所述已投票的区块对应的第一区块高度;
本实施例中,确定出步骤305获取得到的已投票区块对应的第一区块高度。
307、判断所述目标区块高度是否大于所述第一区块高度;
本实施例中,判断该目标区块高度是否大于步骤306获取到的第一区块高度,若是,则执行步骤308,若否,则执行步骤309。
具体的,在区块链系统中,投票者在一个区块高度内,只会进行一次投票,不可进行2次或以上的投票,此外,投票者必须按照高度顺序进行投票,即如果给高度h的区块投票,那么之后只能给高度大于h的区块投票,因此,若要对新的区块进行投票,则新的区块的区块高度必须为最高的。
308、若是,则确定对所述待投票区块校验成功;
309、若否,则确定对所述待投票区块校验失败。
本实施例中,步骤308和步骤309与前序步骤303和步骤304类似,此处不再赘述。
请参阅图3-3,本申请实施例中一种区块链数据的共识方法的另一个实施例中,基于图1所述实施例,具体在步骤103对所述待投票区块进行校验具体可以包括:
310、判断所述交易信息是否符合预设条件;
本实施例中,具体在步骤102接收提议节点发送的待投票区块包括交易信息,本步骤对该交易信息进行判断,判断其是否符合预设条件,若是,则执行步骤311,若否,则执行步骤312。
具体的,投票节点会校验待投票区块中交易的签名,交易是否重复,账户余额等信息中的一个或多个,如校验失败则执行步骤312。
311、若是,则确定对所述待投票区块校验成功;
312、若否,则确定对所述待投票区块校验失败。
本实施例中,步骤311和步骤312与前序步骤303和步骤304类似,此处不再赘述。
请参阅图3-4,本申请实施例中一种区块链数据的共识方法的另一个实施例中,基于图1所述实施例,具体在步骤103对所述待投票区块进行校验具体可以包括:
313、获取共识区块的最高高度变量以及时间参数;
本实施例中,具体在步骤102接收提议节点发送的待投票区块包括待投票区块的目标区块高度,本步骤中获取共识区块的最高高度变量以及时间参数。
作为一个优选的实施方式,该时间参数用于控制区块链系统的出块速度,示例性的,该时间参数可以包括本地当前时间戳、最高已共识区块高度对应的接收时间以及一个全局参数。
314、根据所述最高高度变量和所述时间参数确定出最高可投票区块高度;
本实施例中,根据步骤313中获取得到的最高高度变量和时间参数确定出最高可投票区块高度VoteWindow,示例性地,可以用以下公式来计算VoteWindow:
VoteWindow=maxh+(now-maxh_recieve_time)/interval
VoteWindow : 可以投票的窗口,即可投的最高高度。
now:本地当前时间戳。
maxh_recieve_time:最高有效区块的接收时间。
interval:全局参数,控制出块时间。
315、判断所述目标区块高度是否大于所述最高可投票区块高度;
本实施例中,判断目标区块高度是否大于该最高可投票区块高度,若是,则执行步骤316,若否,则执行步骤317。
316、若是,则确定对所述待投票区块校验成功;
317、若否,则确定对所述待投票区块校验失败。
本实施例中,步骤316和步骤317与前序步骤303和步骤304类似,此处不再赘述。
基于图3-4所述实施例,在步骤109中投票节点将所待投票区块确定为达成共识的区块之后,该方法还包括:使用所述目标区块高度更新所述最高高度变量。具体来说,初始时最高高度变量maxHeight=0,maxHeight更新的逻辑,当收到一个区块的确认信息时,即投票节点收到了区块Block<blockhash, parenthash,height,txs,commit>,如果待投票区块高度height大于maxHeight时,更新maxHeight为height。
本实施例中,具体在方案的执行过程中,图3-1、图3-2、图3-3、图3-4的执行逻辑可以是执行其中的一个或者多个,此处不做限定。
本申请实施例中,基于前述实施例,如果在步骤109投票节点将待投票区块确定达成共识之后,投票节点发现存储的区块链存在分叉,则可以使用延迟入链的方案进一步对方案进行优化。下面请参阅图4,在区块链系统的确认过程中,具体在步骤109投票节点将待投票区块确定达成共识之后,该方法还包括:
401、判断是否在前一个区块对应的共识时间内接收到所述前一个区块的确认信息,所述待投票区块为所述前一个区块的子区块;
402、若是,在将所述待投票区块和所述前一个区块所在数据链确认为达成共识的区块链;
本实施例中,当提议节点在步骤402中确定在前一个区块对应的共识时间内接收到所述前一个区块的确认信息时,即连续两个区块(前一个区块和待投票区块)都在对应的共识时间内收到确认信息时,则在将所述待投票区块和所述前一个区块所在数据链确认为达成共识的区块链。
可选的,上述将所述待投票区块和所述前一个区块所在数据链确认为达成共识的区块链包括:在待投票区块和前一个区块所在数据链中,将前一个区块及之前的所有区块都入链。而待投票区块暂时不入链,要等待其子区块也能在对应的共识时间内被确认时再入链。
403、若否,则延迟确认所述待投票区块和所述前一个区块所在数据链。
本实施例中,当提议节点在步骤212中确定在前一个区块对应的共识时间内未接收到所述前一个区块的确认信息时,则延迟确认所述待投票区块和所述前一个区块所在数据链。
本实施例中,投票节点在步骤401至步骤403的执行过程与前述提议节点在步骤209至步骤211所执行的过程类似,此处不再赘述。
在本实施例中,区块链的数据共识装置1可以是PC(Personal Computer,个人电脑),也可以是智能手机、平板电脑、掌上电脑、便携计算机、网络存储设备终端设备。
该装置1可以是组成CDN网络或者区块链网络的节点。
该区块链的数据共识装置1可以包括存储器11、处理器12和总线13。
其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是区块链的数据共识装置1的内部存储单元,例如该区块链的数据共识装置1的硬盘。存储器11在另一些实施例中也可以是区块链的数据共识装置1的外部存储设备,例如区块链的数据共识装置1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器11还可以既包括区块链的数据共识装置1的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于区块链的数据共识装置1的应用软件及各类数据,例如区块链的数据共识程序01的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行区块链的数据共识程序01等。
该总线13可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,区块链的数据共识装置还可以包括网络接口14,网络接口14可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该装置1与其他电子设备之间建立通信连接。
可选地,该装置1还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在区块链的数据共识装置1中处理的信息以及用于显示可视化的用户界面。
图6仅示出了具有组件11-14以及区块链的数据共识程序01的区块链的数据共识装置1,本领域技术人员可以理解的是,图6示出的结构并不构成对区块链的数据共识装置1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
可以理解的是,在本申请的各种实施例中,上述各步骤的序号的大小并不意味着执行顺序的先后,各步骤的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (13)

1.一种区块链数据的共识方法,其特征在于,应用于提议节点,所述提议节点为区块链中的节点,所述区块链还包括至少二个投票节点,所述方法包括:
获取待投票区块;
将所述待投票区块发送至所述投票节点;
接收所述投票节点发送的签名信息,所述签名信息用于指示所述投票节点对所述待投票区块校验成功;
当确定在第一预定时间内接收到的所述签名信息的数量达到预设值时,则根据所述签名信息生成确认信息,所述确认信息用于指示所述待投票区块为达成共识的区块;
将所述确认信息发送至所述投票节点,以使得所述投票节点将所述待投票区块确定为达成共识的区块;
在所述根据所述签名信息生成确认信息之后,所述方法还包括:判断是否在前一个区块对应的共识时间内接收到所述前一个区块的确认信息,所述待投票区块为所述前一个区块的子区块;若是,则将所述待投票区块和所述前一个区块所在数据链确认为达成共识的区块链;若否,则延迟确认所述待投票区块和所述前一个区块所在数据链;
所述将所述待投票区块和所述前一个区块所在数据链确认为达成共识的区块链包括:在所述待投票区块和所述前一个区块所在数据链中,将所述前一个区块及之前的所有区块都入链。
2.根据权利要求1所述的方法,其特征在于,所述待投票区块包括所述待投票区块的区块高度,在所述将所述待投票区块发送至所述投票节点之前,所述方法还包括:
获取所述区块链中区块的区块高度与所述区块链中区块唯一对应的提议节点之间的映射关系,所述映射关系预先通过预设算法确定;
根据所述映射关系校验所述待投票区块的区块高度是否与所述提议节点对应;
当校验通过时,则执行所述将所述待投票区块发送至所述投票节点。
3.根据权利要求1所述的方法,其特征在于,在所述将所述待投票区块发送至所述投票节点之前,所述方法还包括:
在自身数据库中查找最高已共识区块,所述最高已共识区块为存在对应确认信息的区块中区块高度最高的区块;
判断所述待投票区块是否为所述最高已共识区块的子孙区块;
若是,则执行所述将所述待投票区块发送至所述投票节点。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
当确定在所述第一预定时间内接收到的所述签名信息的数量未达到预设值时,则在所述待投票区块所在数据链中将所述待投票区块设置为空块。
5.一种区块链数据的共识方法,其特征在于,应用于投票节点,所述投票节点为区块链中的节点,所述区块链还包括提议节点,所述方法包括:
接收所述提议节点发送的待投票区块;
对所述待投票区块进行校验;
若校验成功,则对所述待投票区块进行签名,得到签名信息;
将所述签名信息发送至所述提议节点;
当确定在第二预定时间内接收到所述提议节点发送的确认信息,则将所待投票区块确定为达成共识的区块,所述确认信息用于指示所述待投票区块为达成共识的区块,所述确认信息是所述提议节点在预定时间内接收到的所述签名信息的数量达到预设值后生成的;
在将所待投票区块确定为达成共识的区块之后,所述方法还包括:判断在前一个区块对应的共识时间内是否接收到所述待投票区块的前一个区块的确认信息,所述待投票区块为所述前一个区块的子区块;若是,则将所述待投票区块和所述前一个区块所在数据链确认为达成共识的区块链;若否,则延迟确认所述待投票区块和所述前一个区块所在数据链;
所述将所述待投票区块和所述前一个区块所在数据链确认为达成共识的区块链包括:在所述待投票区块和所述前一个区块所在数据链中,将所述前一个区块及之前的所有区块都入链。
6.根据权利要求5所述的方法,其特征在于,所述待投票区块包括目标区块高度,所述对所述待投票区块进行校验包括:
获取所述区块链中区块的区块高度与所述区块链中区块唯一对应的提议节点之间的映射关系,所述映射关系预先通过预设算法确定;
根据所述映射关系校验所述待投票区块的区块高度是否与所述提议节点对应;
若校验通过,则确定对所述待投票区块校验成功;
若校验不通过,则确定对所述待投票区块校验失败。
7.根据权利要求5所述的方法,其特征在于,所述待投票区块包括目标区块高度,所述对所述待投票区块进行校验包括:
获取历史投票信息,所述历史投票信息包括所述投票节点已投票的区块;
确定出所述已投票的区块对应的第一区块高度;
判断所述目标区块高度是否大于所述第一区块高度;
若是,则确定对所述待投票区块校验成功;
若否,则确定对所述待投票区块校验失败。
8.根据权利要求5所述的方法,其特征在于,所述待投票区块包括交易信息,所述对所述待投票区块进行校验包括:
判断所述交易信息是否符合预设条件;
若是,则确定对所述待投票区块校验成功;
若否,则确定对所述待投票区块校验失败。
9.根据权利要求5所述的方法,其特征在于,所述待投票区块包括目标区块高度,所述对所述待投票区块进行校验包括:
获取共识区块的最高高度变量以及时间参数;
根据所述最高高度变量和所述时间参数确定出最高可投票区块高度;
判断所述目标区块高度是否大于所述最高可投票区块高度;
若是,则确定对所述待投票区块校验成功;
若否,则确定对所述待投票区块校验失败。
10.根据权利要求9所述的方法,其特征在于,在将所待投票区块确定为达成共识的区块之后,所述方法还包括:
使用所述目标区块高度更新所述最高高度变量。
11.根据权利要求5至10任一项所述的方法,其特征在于,所述方法还包括:
当确定在第二预定时间内没有接收到所述提议节点发送的确认信息,则在所述待投票区块所在数据链中将所述待投票区块设置为空块。
12.一种区块链数据的共识装置,其特征在于,所述装置包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的区块链数据的共识程序,所述区块链数据的共识程序被所述处理器执行时实现如权利要求1-11任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有区块链数据的共识程序,所述区块链数据的共识程序可被一个或者多个处理器执行,以实现如权利要求1至11中任一项所述的区块链数据的共识方法。
CN201910577916.6A 2019-06-28 2019-06-28 一种区块链数据的共识方法及相关设备 Active CN110288479B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910577916.6A CN110288479B (zh) 2019-06-28 2019-06-28 一种区块链数据的共识方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910577916.6A CN110288479B (zh) 2019-06-28 2019-06-28 一种区块链数据的共识方法及相关设备

Publications (2)

Publication Number Publication Date
CN110288479A CN110288479A (zh) 2019-09-27
CN110288479B true CN110288479B (zh) 2023-07-14

Family

ID=68020113

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910577916.6A Active CN110288479B (zh) 2019-06-28 2019-06-28 一种区块链数据的共识方法及相关设备

Country Status (1)

Country Link
CN (1) CN110288479B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110995439A (zh) * 2019-11-20 2020-04-10 上海链颉科技有限公司 区块链共识方法、电子装置及存储介质
CN111010284B (zh) * 2019-12-20 2022-12-13 深圳市迅雷网络技术有限公司 一种待共识区块的处理方法、相关装置及区块链系统
CN113114463B (zh) * 2020-01-13 2023-04-07 中国移动通信有限公司研究院 一种证书注册方法、验证方法及设备
CN111416708B (zh) * 2020-03-16 2023-01-31 麦希科技(北京)有限公司 一种区块链拜占庭容错共识方法及系统
CN111414373B (zh) * 2020-03-18 2023-09-19 深圳市迅雷网络技术有限公司 一种共识方法和共识系统
CN111431696B (zh) * 2020-03-26 2023-10-17 深圳市欧欣泰科技有限公司 一种基于身份的区块链封印机制
CN111654395B (zh) * 2020-06-01 2021-10-26 腾讯科技(深圳)有限公司 投票信息处理方法、装置、设备以及存储介质
CN111669277B (zh) * 2020-06-04 2023-04-18 新晨科技股份有限公司 一种区块链上基于vrf和实用拜占庭算法的共识方法
CN111786818B (zh) * 2020-06-16 2023-04-18 杭州溪塔科技有限公司 一种区块链共识节点状态监控方法和装置
CN111667371B (zh) * 2020-06-30 2021-08-06 腾讯科技(深圳)有限公司 基于区块链的资源聚合方法、系统、设备及存储介质
CN112838953A (zh) * 2021-01-11 2021-05-25 绵阳沸尔特科技有限公司 一种区块链打包节点共识推举方法
CN113783935B (zh) * 2021-08-12 2022-04-01 清华大学 一种拜占庭容错方法及装置
CN113794566B (zh) * 2021-08-25 2022-06-03 清华大学 一种可再投票的二元共识方法、装置、及存储介质
CN114070617B (zh) * 2021-11-16 2022-11-08 上海柯林布瑞信息技术有限公司 基于区块链的医疗数据共享方法和装置
CN115396504B (zh) * 2022-08-23 2024-01-16 浪潮工业互联网股份有限公司 一种区块链投票数据缓存方法、设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9875510B1 (en) * 2015-02-03 2018-01-23 Lance Kasper Consensus system for tracking peer-to-peer digital records
CN108269090A (zh) * 2018-01-19 2018-07-10 中国科学院软件研究所 基于无协商随机抽签的用于区块链系统的共识方法和装置
CN109784930A (zh) * 2019-02-18 2019-05-21 深圳市网心科技有限公司 一种区块链交易数据的处理方法、装置、电子设备及介质
CN109873868A (zh) * 2019-03-01 2019-06-11 深圳市网心科技有限公司 一种计算能力共享方法、系统及相关设备
CN109872156A (zh) * 2019-03-11 2019-06-11 赛迪(青岛)区块链研究院有限公司 一种联盟链共识系统及方法
CN109889519A (zh) * 2019-02-18 2019-06-14 深圳市优学链科技有限公司 一种避免区块链共识中无代价攻击的算法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017109140A1 (en) * 2015-12-22 2017-06-29 Bigchaindb Gmbh Decentralized, tamper-resistant, asset-oriented database system and method of recording a transaction
CN106445711B (zh) * 2016-08-28 2019-04-30 杭州云象网络技术有限公司 一种应用于区块链的拜占庭容错共识方法
US10360191B2 (en) * 2016-10-07 2019-07-23 International Business Machines Corporation Establishing overlay trust consensus for blockchain trust validation system
CN108182635A (zh) * 2017-12-18 2018-06-19 深圳前海微众银行股份有限公司 区块链共识方法、系统和计算机可读存储介质
CN109150598B (zh) * 2018-08-10 2021-09-03 上交所技术有限责任公司 一种基于块片的bft共识算法带宽使用率改进方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9875510B1 (en) * 2015-02-03 2018-01-23 Lance Kasper Consensus system for tracking peer-to-peer digital records
CN108269090A (zh) * 2018-01-19 2018-07-10 中国科学院软件研究所 基于无协商随机抽签的用于区块链系统的共识方法和装置
CN109784930A (zh) * 2019-02-18 2019-05-21 深圳市网心科技有限公司 一种区块链交易数据的处理方法、装置、电子设备及介质
CN109889519A (zh) * 2019-02-18 2019-06-14 深圳市优学链科技有限公司 一种避免区块链共识中无代价攻击的算法
CN109873868A (zh) * 2019-03-01 2019-06-11 深圳市网心科技有限公司 一种计算能力共享方法、系统及相关设备
CN109872156A (zh) * 2019-03-11 2019-06-11 赛迪(青岛)区块链研究院有限公司 一种联盟链共识系统及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
区块链共识算法的比较研究;宋焘谊;赵运磊;;计算机应用与软件(08);全文 *
基于实用拜占庭容错算法的区块链电子计票方案;李靖;景旭;杨会君;;计算机应用(04);全文 *

Also Published As

Publication number Publication date
CN110288479A (zh) 2019-09-27

Similar Documents

Publication Publication Date Title
CN110288479B (zh) 一种区块链数据的共识方法及相关设备
CN110300172B (zh) 一种区块链数据的共识方法及相关设备
CN110383279B (zh) 用于检测重放攻击的系统和方法
CN110431577B (zh) 用于检测重放攻击的系统和方法
CN112446785B (zh) 跨链交易方法、系统、装置、设备和存储介质
CN112689848B (zh) 一种区块链数据的共识方法及相关设备
CN111414373B (zh) 一种共识方法和共识系统
CN111163182B (zh) 基于区块链的设备注册方法、装置、电子设备和存储介质
KR101962686B1 (ko) 전자 투표 시스템 및 방법
US20190386834A1 (en) Blockchain management apparatus, blockchain management method, and program
CN110730225A (zh) 基于区块链的物联网的数据处理方法、物联网及存储介质
JP2020512708A (ja) 分散システム、メッセージ処理方法、ノード、クライアント及び記憶媒体
WO2021031473A1 (zh) 基于多资产模型的区块链资产处理方法及相关设备
CN111209343B (zh) 节点数据同步方法、装置、设备以及存储介质
CN110400217B (zh) 智能合约的规则变更处理方法及装置
CN110543488A (zh) 一种验证节点更新方法、装置及设备
US11362836B2 (en) Consensus protocol for permissioned ledgers
CN110535970A (zh) 司法链的证据存证和处理方法、装置、设备和介质
CN111723159A (zh) 一种基于区块链的数据验证方法和装置
CN114090682A (zh) 一种多通道联盟链上链方法、装置、设备及存储介质
JP2022539283A (ja) ブロックチェーンとは異なる形式のストレージに格納されるブロックチェーンデータを検証する方法およびシステム
JP2024506093A (ja) クロスチェーントランザクション処理方法と装置、電子機器及びコンピュータプログラム
CN111680104A (zh) 数据同步方法、装置、计算机设备及可读存储介质
CN113255011A (zh) 区块链状态映射方法、系统、计算机设备及存储介质
CN115664684B (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
TA01 Transfer of patent application right

Effective date of registration: 20210914

Address after: 518000 21 / f-23 / F, block B, building 12, Shenzhen Bay science and technology ecological park, No. 18, South Keji Road, high tech community, Yuehai street, Nanshan District, Shenzhen City, Guangdong Province

Applicant after: Xunlei Networking Technologies, Ltd.

Applicant after: SHENZHEN ONETHING TECHNOLOGIES Co.,Ltd.

Address before: 518052 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.)

Applicant before: SHENZHEN ONETHING TECHNOLOGIES Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20240619

Address after: 518000, 2101 to 2107, Xunlei Building, No. 3709 Baishi Road, Gaoxin District, Yuehai Street, Nanshan District, Shenzhen, Guangdong Province

Patentee after: Xunlei Networking Technologies, Ltd.

Country or region after: China

Address before: 518000 21 / f-23 / F, block B, building 12, Shenzhen Bay science and technology ecological park, No. 18, South Keji Road, high tech community, Yuehai street, Nanshan District, Shenzhen City, Guangdong Province

Patentee before: Xunlei Networking Technologies, Ltd.

Country or region before: China

Patentee before: SHENZHEN ONETHING TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right