CN108965329B - 区块链系统的共识机制实现方法、介质、装置及系统 - Google Patents
区块链系统的共识机制实现方法、介质、装置及系统 Download PDFInfo
- Publication number
- CN108965329B CN108965329B CN201810967408.4A CN201810967408A CN108965329B CN 108965329 B CN108965329 B CN 108965329B CN 201810967408 A CN201810967408 A CN 201810967408A CN 108965329 B CN108965329 B CN 108965329B
- Authority
- CN
- China
- Prior art keywords
- node
- weight value
- address
- weight
- block
- 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
-
- 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
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Finance (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Accounting & Taxation (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Computer Security & Cryptography (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)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
发明提出了一种区块链系统的共识机制实现方法,该方法包括:创建系统节点权重表;对区块链系统中上一区块的生产节点所发布的广播区块同步包进行解析;根据系统节点权重表对每个节点的ip地址进行问询,将掉线节点的节点权重值减1和将在线节点的节点权重值加1,并更新系统节点权重表,以及对系统节点权重表中每个节点ip地址项所对应的节点权重值进行处理以获得总权重值L和权重概率轴;根据数值1到L产生一个随机数r,并通过判断随机数r所处的节点权重值区间以确认下一区块的生产节点。由此,本发明通过获取权重概率轴,使在线时间越长的节点成为区块生产者的概率越高,从而大大降低了常掉线的节点成为区块生产节点的可能性。
Description
技术领域
本发明涉及信息处理技术领域,特别涉及一种区块链系统的共识机制实现方法、介质、装置及系统。
背景技术
区块链本质上是一种由交易驱动的确定性状态机,共识是商定确定性交易顺序和过滤无效交易的过程,DPOS引人注目的安全性来自于其选择区块生产者和验证节点质量的算法。现有DPOS共识机制下的区块链系统对于区块生产节点的选取是通过投票实现的,然而由于投票者无法时刻观察各节点的生产区块情况,从而导致没有及时投票,而默认按照前一次投票结果进行投票,或者出现给常常掉线的节点进行投票的情况。
发明内容
本发明旨在至少在一定程度上解决上述技术中的技术问题之一。为此,本发明的一个目的在于提出一种区块链系统的共识机制实现方法,通过获取权重概率轴,使在线时间越长的节点成为区块生产者的概率越高,从而大大降低了常掉线的节点成为区块生产节点的可能性,保证区块链系统高效运转。
本发明的第二个目的在于提出一种计算机可读存储介质。
本发明的第三个目的在于提出一种区块链系统的共识机制实现装置。
本发明的第四个目的在于提出一种区块链系统。
为达到上述目的,本发明第一方面实施例提出了区块链系统的共识机制实现方法,包括以下步骤:在区块链系统初始化时,创建系统节点权重表,其中,所述系统节点权重表包括节点ip地址项和对应的节点权重值;对所述区块链系统中上一区块的生产节点所发布的广播区块同步包进行解析以获知当前生产节点;在当前生产节点生产区块时,根据所述系统节点权重表对每个节点的ip地址进行问询以获取所述区块链系统中的掉线节点和在线节点;将所述掉线节点的节点权重值减1和将所述在线节点的节点权重值加1,并更新所述系统节点权重表,以及对所述系统节点权重表中每个节点ip地址项所对应的节点权重值进行处理以获得总权重值L和权重概率轴,其中,所述权重概率轴包括每个节点ip地址项所对应的节点权重值区间;根据数值1到L产生一个随机数r,并通过判断所述随机数r所处的节点权重值区间以确认下一区块的生产节点。
根据本发明实施例的区块链系统的共识机制实现方法,首先在区块链系统初始化时,创建系统节点权重表,其中,系统节点权重表包括节点ip地址项和对应的节点权重值;并对区块链系统中上一区块的生产节点所发布的广播区块同步包进行解析以获知当前生产节点;接着,在当前生产节点生产区块时,根据系统节点权重表对每个节点的ip地址进行问询以获取区块链系统中的掉线节点和在线节点;然后,将掉线节点的节点权重值减1和将在线节点的节点权重值加1,并更新系统节点权重表,以及对系统节点权重表中每个节点ip地址项所对应的节点权重值进行处理以获得总权重值L和权重概率轴,其中,权重概率轴包括每个节点ip地址项所对应的节点权重值区间;最后,根据数值1到L产生一个随机数r,并通过判断随机数r所处的节点权重值区间以确认下一区块的生产节点。由此,本发明通过获取权重概率轴,使在线时间越长的节点成为区块生产者的概率越高,从而大大降低了常掉线的节点成为区块生产节点的可能性,保证区块链系统高效运转。
另外,根据本发明上述实施例提出的区块链系统的共识机制实现方法还可以具有如下附加的技术特征:
可选地,当所述区块链系统中任意一个节点接收到新节点的连入请求时,该节点对所述新节点的ip地址进行广播,以便所述区块链系统中的当前生产节点接收到广播后将所述新节点的ip地址在所述系统节点权重表内检索以判断所述系统节点权重表中是否存在所述新节点的ip地址项,其中,如果存在,则保持所述新节点的ip地址项对应的节点权重值不变;如果未存在,则在所述系统节点权重表中创建所述新节点的ip地址项,并对所述新节点的ip地址项对应的节点权重值进行初始赋值。
可选地,对每个节点的ip地址进行问询时,向每个节点发送问询信息,并在预设时间后判断是否接收到应答信息,其中,如果接收到当前节点的应答信息,则判断当前节点在线;如果未接收到当前节点的应答信息,则判断当前节点掉线。
可选地,对所述系统节点权重表中每个节点ip地址项所对应的节点权重值进行处理,包括:对每个节点ip地址项所对应的节点权重值进行累加以获得所述总权重值L;按照节点顺序将每个节点ip地址项所对应的节点权重值从零开始依次拼接并叠加,以形成由每个节点ip地址项所对应的节点权重值区间顺序串接的权重概率轴。
为达到上述目的,本发明第二方面实施例提出了一种计算机可读存储介质,其上存储有区块链系统的共识机制实现程序,该区块链系统的共识机制实现程序被处理器执行时实现如上述的区块链系统的共识机制实现方法。
根据本发明实施例的计算机可读存储介质,通过存储区块链系统的共识机制实现程序,这样区块链系统的共识机制实现程序被处理器执行时实现如上述的区块链系统的共识机制实现方法,由此,通过获取权重概率轴,使在线时间越长的节点成为区块生产者的概率越高,从而大大降低了常掉线的节点成为区块生产节点的可能性,保证区块链系统高效运转。
为达到上述目的,本发明第三方面实施例提出了一种区块链系统的共识机制实现装置,包括创建模块,用于在区块链系统初始化时创建系统节点权重表,其中,所述系统节点权重表包括节点ip地址项和对应的节点权重值;解析模块,用于对所述区块链系统中上一区块的生产节点所发布的广播区块同步包进行解析以获知当前生产节点;问询模块,用于在当前生产节点生产区块时根据所述系统节点权重表对每个节点的ip地址进行问询以获取所述区块链系统中的掉线节点和在线节点;赋值模块,用于将所述掉线节点的节点权重值减1和将所述在线节点的节点权重值加1,并更新所述系统节点权重表,以及对所述系统节点权重表中每个节点ip地址项所对应的节点权重值进行处理以获得总权重值L和权重概率轴,其中,所述权重概率轴包括每个节点ip地址项所对应的节点权重值区间;共识模块,用于根据数值1到L产生一个随机数r,并通过判断所述随机数r所处的节点权重值区间以确认下一区块的生产节点。
根据本发明实施例的区块链系统的共识机制实现装置,在区块链系统初始化时,通过创建模块创建系统节点权重表,其中,系统节点权重表包括节点ip地址项和对应的节点权重值;通过解析模块对区块链系统中上一区块的生产节点所发布的广播区块同步包进行解析以获知当前生产节点;在当前生产节点生产区块时,通过问询模块根据系统节点权重表对每个节点的ip地址进行问询以获取区块链系统中的掉线节点和在线节点;通过赋值模块将掉线节点的节点权重值减1和将在线节点的节点权重值加1,并更新系统节点权重表,以及对系统节点权重表中每个节点ip地址项所对应的节点权重值进行处理以获得总权重值L和权重概率轴,其中,权重概率轴包括每个节点ip地址项所对应的节点权重值区间;通过共识模块根据数值1到L产生一个随机数r,并通过判断随机数r所处的节点权重值区间以确认下一区块的生产节点。由此,本发明通过获取权重概率轴,使在线时间越长的节点成为区块生产者的概率越高,从而大大降低了常掉线的节点成为区块生产节点的可能性,保证区块链系统高效运转。
另外,根据本发明上述实施例提出的区块链系统的共识机制实现装置还可以具有如下附加的技术特征:
可选地,所述赋值模块还用于,当所述区块链系统中任意一个节点接收到新节点的连入请求时,该节点对所述新节点的ip地址进行广播,以便所述区块链系统中的当前生产节点接收到广播后将所述新节点的ip地址在所述系统节点权重表内检索以判断所述系统节点权重表中是否存在所述新节点的ip地址项,其中,如果存在,则保持所述新节点的ip地址项对应的节点权重值不变;如果未存在,则在所述系统节点权重表中创建所述新节点的ip地址项,并对所述新节点的ip地址项对应的节点权重值进行初始赋值。
可选地,所述问询模块进一步用于,对每个节点的ip地址进行问询时,向每个节点发送问询信息,并在预设时间后判断是否接收到应答信息,其中,如果接收到当前节点的应答信息,则判断当前节点在线;如果未接收到当前节点的应答信息,则判断当前节点掉线。
可选地,所述赋值模块对所述系统节点权重表中每个节点ip地址项所对应的节点权重值进行处理时,进一步用于,对每个节点ip地址项所对应的节点权重值进行累加以获得所述总权重值L;按照节点顺序将每个节点ip地址项所对应的节点权重值从零开始依次拼接并叠加,以形成由每个节点ip地址项所对应的节点权重值区间顺序串接的权重概率轴。
为达到上述目的,本发明第四方面实施例提出了一种区块链系统,其包括如上述的区块链系统的共识机制实现装置。
根据本发明实施例的区块链系统,通过上述的区块链系统的共识机制实现装置,使在线时间越长的节点成为区块生产者的概率越高,从而大大降低了常掉线的节点成为区块生产节点的可能性。
附图说明
图1为根据本发明实施例的区块链系统的共识机制实现方法的流程示意图;
图2为根据本发明另一实施例的区块链系统的共识机制实现方法的流程示意图;
图3为根据本发明实施例的区块链系统的共识机制实现装置的方框示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
现有DPOS共识机制下的区块链系统对于区块生产节点的选取是通过投票实现的,然而由于投票者无法时刻观察各节点的生产区块情况,从而导致没有及时投票,而默认按照前一次投票结果进行投票,或者出现给常常掉线的节点进行投票的情况。本发明实施例提供的区块链系统的共识机制实现方法,首先在区块链系统初始化时,创建系统节点权重表,其中,系统节点权重表包括节点ip地址项和对应的节点权重值;并对区块链系统中上一区块的生产节点所发布的广播区块同步包进行解析以获知当前生产节点;接着,在当前生产节点生产区块时,根据系统节点权重表对每个节点的ip地址进行问询以获取区块链系统中的掉线节点和在线节点;然后,将掉线节点的节点权重值减1和将在线节点的节点权重值加1,并更新系统节点权重表,以及对系统节点权重表中每个节点ip地址项所对应的节点权重值进行处理以获得总权重值L和权重概率轴,其中,权重概率轴包括每个节点ip地址项所对应的节点权重值区间;最后,根据数值1到L产生一个随机数r,并通过判断随机数r所处的节点权重值区间以确认下一区块的生产节点。由此,本发明通过获取权重概率轴,使在线时间越长的节点成为区块生产者的概率越高,从而大大降低了常掉线的节点成为区块生产节点的可能性,保证区块链系统高效运转。
为了更好的理解上述技术方案,下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
图1为本发明实施例提出的区块链系统的共识机制实现方法的流程示意图。如图1所示,该区块链系统的共识机制实现方法包括以下步骤:
步骤101,在区块链系统初始化时,创建系统节点权重表,其中,系统节点权重表包括节点ip地址项和对应的节点权重值。
也就是说,在区块链系统初始化时,创建包括节点ip地址项和对应的节点权重值的系统节点权重表,如下表1所示。
表1 系统节点权重表
节点ip | 节点权重值 |
ip1 | a |
ip2 | b |
…… | …… |
作为一个实施例,上述节点权重值的初始赋值设为10,本发明在此不做具体限制。
需要说明的是,当区块链系统中任意一个节点接收到新节点的连入请求时,该节点对新节点的ip地址进行广播,以便区块链系统中的当前生产节点接收到广播后将新节点的ip地址在系统节点权重表内检索以判断系统节点权重表中是否存在新节点的ip地址项,其中,如果存在,则保持新节点的ip地址项对应的节点权重值不变;如果未存在,则在系统节点权重表中创建新节点的ip地址项,并对新节点的ip地址项对应的节点权重值进行初始赋值。
步骤102,对区块链系统中上一区块的生产节点所发布的广播区块同步包进行解析以获知当前生产节点。
步骤103,在当前生产节点生产区块时,根据系统节点权重表对每个节点的ip地址进行问询以获取区块链系统中的掉线节点和在线节点。
作为一个实施例,根据系统节点权重表对每个节点的ip地址进行问询时,向每个节点发送问询信息,并在预设时间后判断是否接收到应答信息,其中,如果接收到当前节点的应答信息,则判断当前节点在线;如果未接收到当前节点的应答信息,则判断当前节点掉线。
需要说明的是,上述预设时间为发送问询信息后等待应答信息的时间,可设为30秒,本发明在此不做具体限制。
步骤104,将掉线节点的节点权重值减1和将在线节点的节点权重值加1,并更新系统节点权重表,以及对系统节点权重表中每个节点ip地址项所对应的节点权重值进行处理以获得总权重值L和权重概率轴,其中,权重概率轴包括每个节点ip地址项所对应的节点权重值区间。
也就是说,如果在预设时间内未接收到当前节点的应答信息,则将掉线节点的节点权重值减1,如果接收到当前节点的应答信息,则将在线节点的节点权重值加1,并更新系统节点权重表。
需要说明的是,对上述系统节点权重表中每个节点ip地址项所对应的节点权重值进行处理,包括:对每个节点ip地址项所对应的节点权重值进行累加以获得总权重值L;按照节点顺序将每个节点ip地址项所对应的节点权重值从零开始依次拼接并叠加,以形成由每个节点ip地址项所对应的节点权重值区间顺序串接的权重概率轴;其中总权重值为全局变量,表示系统节点权重表的总长度。
作为一个实施例,如上述表1所示,假设节点ip1的节点权重值a=3;节点ip2的节点权重值b=7,节点ip3的节点权重值c=5;则该总权重值L=a+b+c=15;该ip1的节点权重值区间为0-3,ip2的节点权重值区间为3-10,ip3的节点权重值区间为10-15。
步骤105,根据数值1到L产生一个随机数r,并通过判断随机数r所处的节点权重值区间以确认下一区块的生产节点。
作为一个实施例,假设产生的随机数r=8,则该随机数r处于ip2的节点权重值区间,所以确认该ip2所对应的节点为下一区块的生产节点。
根据本发明实施例的区块链系统的共识机制实现方法,首先在区块链系统初始化时,创建系统节点权重表,其中,系统节点权重表包括节点ip地址项和对应的节点权重值;并对区块链系统中上一区块的生产节点所发布的广播区块同步包进行解析以获知当前生产节点;接着,在当前生产节点生产区块时,根据系统节点权重表对每个节点的ip地址进行问询以获取区块链系统中的掉线节点和在线节点;然后,将掉线节点的节点权重值减1和将在线节点的节点权重值加1,并更新系统节点权重表,以及对系统节点权重表中每个节点ip地址项所对应的节点权重值进行处理以获得总权重值L和权重概率轴,其中,权重概率轴包括每个节点ip地址项所对应的节点权重值区间;最后,根据数值1到L产生一个随机数r,并通过判断随机数r所处的节点权重值区间以确认下一区块的生产节点。由此,本发明通过获取权重概率轴,使在线时间越长的节点成为区块生产者的概率越高,从而大大降低了常掉线的节点成为区块生产节点的可能性,保证区块链系统高效运转。
为了进一步理解上述技术方案,下面将通过图2对上述技术方案进行详细的说明。
图2为一个具体实施例的区块链系统的共识机制实现方法的流程示意图。
如图2所示,该区块链系统的共识机制实现方法包括以下步骤:
步骤201,在区块链系统初始化时,创建系统节点权重表,其中,系统节点权重表包括节点ip地址项和对应的节点权重值。
作为一个实施例,上述节点权重值的初始赋值设为10,本发明在此不做具体限制。
需要说明的是,当区块链系统中任意一个节点接收到新节点的连入请求时,该节点对新节点的ip地址进行广播,以便区块链系统中的生产节点接收到广播后将新节点的ip地址在系统节点权重表内检索以判断系统节点权重表中是否存在新节点的ip地址项,其中,如果存在,则保持新节点的ip地址项对应的节点权重值不变;如果未存在,则在系统节点权重表中创建新节点的ip地址项,并对新节点的ip地址项对应的节点权重值进行初始赋值。
步骤202,对区块链系统中上一区块的生产节点所发布的广播区块同步包进行解析以获知当前生产节点。
步骤203,当区块链系统中的当前生产节点生产区块时,根据系统节点权重表向每个节点发送问询信息。
步骤204,预设时间后判断是否接收到应答信息。如果是,则执行步骤206;如果否,则执行步骤205。
步骤205,判断当前节点掉线,则将掉线节点的节点权重值减1,并更新系统节点权重表。
步骤206,判断当前节点在线,则将在线节点的节点权重值加1,并更新系统节点权重表。
步骤207,对每个节点ip地址项所对应的节点权重值进行累加以获得总权重值L。
步骤208,按照节点顺序将每个节点ip地址项所对应的节点权重值从零开始依次拼接并叠加,以形成由每个节点ip地址项所对应的节点权重值区间顺序串接的权重概率轴。
也就是说,该节点的节点权重值越大,其节点权重值区间就越大,被选为下一个区块生产节点的概率就越大。
步骤209,根据数值1到L产生一个随机数r,并通过判断随机数r所处的节点权重值区间以确认下一区块的生产节点。
根据本发明实施例的区块链系统的共识机制实现方法,首先在区块链系统初始化时,创建系统节点权重表,其中,系统节点权重表包括节点ip地址项和对应的节点权重值;并对区块链系统中上一区块的生产节点所发布的广播区块同步包进行解析以获知当前生产节点;接着,在当前生产节点生产区块时,根据系统节点权重表对每个节点的ip地址进行问询以获取区块链系统中的掉线节点和在线节点;然后,将掉线节点的节点权重值减1和将在线节点的节点权重值加1,并更新系统节点权重表,以及对系统节点权重表中每个节点ip地址项所对应的节点权重值进行处理以获得总权重值L和权重概率轴,其中,权重概率轴包括每个节点ip地址项所对应的节点权重值区间;最后,根据数值1到L产生一个随机数r,并通过判断随机数r所处的节点权重值区间以确认下一区块的生产节点。由此,本发明通过获取权重概率轴,使在线时间越长的节点成为区块生产者的概率越高,从而大大降低了常掉线的节点成为区块生产节点的可能性,保证区块链系统高效运转。
为了实现上述实施例,本发明实施例提出了一种计算机可读存储介质,其上存储有区块链系统的共识机制实现程序,该区块链系统的共识机制实现程序被处理器执行时实现如上述的区块链系统的共识机制实现方法。
根据本发明实施例的计算机可读存储介质,通过存储区块链系统的共识机制实现程序,这样区块链系统的共识机制实现程序被处理器执行时实现如上述的区块链系统的共识机制实现方法,由此,通过获取权重概率轴,使在线时间越长的节点成为区块生产者的概率越高,从而大大降低了常掉线的节点成为区块生产节点的可能性。
图3为根据本发明实施例提供的区块链系统的共识机制实现装置的方框结构示意图。如图3所示,该装置包括:创建模块301、解析模块302、问询模块302、赋值模块303、共识模块304。
创建模块301,用于在区块链系统初始化时创建系统节点权重表,其中,系统节点权重表包括节点ip地址项和对应的节点权重值。
解析模块302,用于对区块链系统中上一区块的生产节点所发布的广播区块同步包进行解析以获知当前生产节点。
问询模块302,用于在当前生产节点生产区块时根据系统节点权重表对每个节点的ip地址进行问询以获取区块链系统中的掉线节点和在线节点。
赋值模块303,用于将掉线节点的节点权重值减1和将在线节点的节点权重值加1,并更新系统节点权重表,以及对系统节点权重表中每个节点ip地址项所对应的节点权重值进行处理以获得总权重值L和权重概率轴,其中,权重概率轴包括每个节点ip地址项所对应的节点权重值区间。
共识模块304,用于根据数值1到L产生一个随机数r,并通过判断随机数r所处的节点权重值区间以确认下一区块的生产节点。
作为一个实施例,上述赋值模块还用于,当区块链系统中任意一个节点接收到新节点的连入请求时,该节点对新节点的ip地址进行广播,以便区块链系统中的当前生产节点接收到广播后将新节点的ip地址在系统节点权重表内检索以判断系统节点权重表中是否存在新节点的ip地址项,其中,如果存在,则保持新节点的ip地址项对应的节点权重值不变;如果未存在,则在系统节点权重表中创建新节点的ip地址项,并对新节点的ip地址项对应的节点权重值进行初始赋值。
作为一个实施例,上述问询模块进一步用于,对每个节点的ip地址进行问询时,向每个节点发送问询信息,并在预设时间后判断是否接收到应答信息,其中,如果接收到当前节点的应答信息,则判断当前节点在线;如果未接收到当前节点的应答信息,则判断当前节点掉线。
作为一个实施例,上述赋值模块对系统节点权重表中每个节点ip地址项所对应的节点权重值进行处理时,进一步用于,对每个节点ip地址项所对应的节点权重值进行累加以获得总权重值L;按照节点顺序将每个节点ip地址项所对应的节点权重值从零开始依次拼接并叠加,以形成由每个节点ip地址项所对应的节点权重值区间顺序串接的权重概率轴。
需要说明的是,前述对于区块链系统的共识机制实现方法的实施例的解释说明同样适用于本实施例的区块链系统的共识机制实现装置,此处不再赘述。
根据本发明实施例的区块链系统的共识机制实现装置,在区块链系统初始化时,通过创建模块创建系统节点权重表,其中,系统节点权重表包括节点ip地址项和对应的节点权重值;通过解析模块对区块链系统中上一区块的生产节点所发布的广播区块同步包进行解析以获知当前生产节点;在当前生产节点生产区块时,通过问询模块根据系统节点权重表对每个节点的ip地址进行问询以获取区块链系统中的掉线节点和在线节点;通过赋值模块将掉线节点的节点权重值减1和将在线节点的节点权重值加1,并更新系统节点权重表,以及对系统节点权重表中每个节点ip地址项所对应的节点权重值进行处理以获得总权重值L和权重概率轴,其中,权重概率轴包括每个节点ip地址项所对应的节点权重值区间;通过共识模块根据数值1到L产生一个随机数r,并通过判断随机数r所处的节点权重值区间以确认下一区块的生产节点。由此,本发明通过获取权重概率轴,使在线时间越长的节点成为区块生产者的概率越高,从而大大降低了常掉线的节点成为区块生产节点的可能性。
为实现上述实施例,本发明实施例提出了一种区块链系统,包括存储器、处理器及存储在存储器上并可在处理器上运行的区块链系统的共识机制实现程序,处理器执行区块链系统的共识机制实现程序时实现如上述的区块链系统的共识机制实现方法。
根据本发明实施例的区块链系统,通过存储器存储区块链系统的共识机制实现程序,这样区块链系统的共识机制实现的程序被处理器执行时实现如上述的区块链系统的共识机制实现方法,由此,本发明通过获取权重概率轴,使在线时间越长的节点成为区块生产者的概率越高,从而大大降低了常掉线的节点成为区块生产节点的可能性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征 “上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、 “示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不应理解为必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种区块链系统的共识机制实现方法,其特征在于,包括以下步骤:
在区块链系统初始化时,创建系统节点权重表,其中,所述系统节点权重表包括节点ip地址项和对应的节点权重值;
对所述区块链系统中上一区块的生产节点所发布的广播区块同步包进行解析以获知当前生产节点;
在当前生产节点生产区块时,根据所述系统节点权重表对每个节点的ip地址进行问询以获取所述区块链系统中的掉线节点和在线节点;
将所述掉线节点的节点权重值减1和将所述在线节点的节点权重值加1,并更新所述系统节点权重表,以及对所述系统节点权重表中每个节点ip地址项所对应的节点权重值进行处理以获得总权重值L和权重概率轴,其中,所述权重概率轴按照节点顺序将每个节点ip地址项所对应的节点权重值从零开始依次拼接并叠加,以形成由每个节点ip地址项所对应的节点权重值区间顺序串接的权重概率轴,所述权重概率轴包括每个节点ip地址项所对应的节点权重值区间;
根据数值1到L产生一个随机数r,并通过判断所述随机数r所处的节点权重值区间以确认下一区块的生产节点。
2.如权利要求1所述的区块链系统的共识机制实现方法,其特征在于,当所述区块链系统中任意一个节点接收到新节点的连入请求时,该节点对所述新节点的ip地址进行广播,以便所述区块链系统中的当前生产节点接收到广播后将所述新节点的ip地址在所述系统节点权重表内检索以判断所述系统节点权重表中是否存在所述新节点的ip地址项,其中,
如果存在,则保持所述新节点的ip地址项对应的节点权重值不变;
如果不存在,则在所述系统节点权重表中创建所述新节点的ip地址项,并对所述新节点的ip地址项对应的节点权重值进行初始赋值。
3.如权利要求1或2所述的区块链系统的共识机制实现方法,其特征在于,对每个节点的ip地址进行问询时,向每个节点发送问询信息,并在预设时间后判断是否接收到应答信息,其中,
如果接收到当前节点的应答信息,则判断当前节点在线;
如果未接收到当前节点的应答信息,则判断当前节点掉线。
4.如权利要求1或2所述的区块链系统的共识机制实现方法,其特征在于,对所述系统节点权重表中每个节点ip地址项所对应的节点权重值进行处理,包括:
对每个节点ip地址项所对应的节点权重值进行累加以获得所述总权重值L。
5.一种计算机可读存储介质,其特征在于,其上存储有区块链系统的共识机制实现程序,该区块链系统的共识机制实现程序被处理器执行时实现如权利要求1-4中任一项所述的区块链系统的共识机制实现方法。
6.一种区块链系统的共识机制实现装置,其特征在于,包括:
创建模块,用于在区块链系统初始化时创建系统节点权重表,其中,所述系统节点权重表包括节点ip地址项和对应的节点权重值;
解析模块,用于对所述区块链系统中上一区块的生产节点所发布的广播区块同步包进行解析以获知当前生产节点;
问询模块,用于在当前生产节点生产区块时根据所述系统节点权重表对每个节点的ip地址进行问询以获取所述区块链系统中的掉线节点和在线节点;
赋值模块,用于将所述掉线节点的节点权重值减1和将所述在线节点的节点权重值加1,并更新所述系统节点权重表,以及对所述系统节点权重表中每个节点ip地址项所对应的节点权重值进行处理以获得总权重值L和权重概率轴,其中,所述权重概率轴按照节点顺序将每个节点ip地址项所对应的节点权重值从零开始依次拼接并叠加,以形成由每个节点ip地址项所对应的节点权重值区间顺序串接的权重概率轴,所述权重概率轴包括每个节点ip地址项所对应的节点权重值区间;
共识模块,用于根据数值1到L产生一个随机数r,并通过判断所述随机数r所处的节点权重值区间以确认下一区块的生产节点。
7.如权利要求6所述的区块链系统的共识机制实现装置,其特征在于,所述赋值模块还用于,当所述区块链系统中任意一个节点接收到新节点的连入请求时,该节点对所述新节点的ip地址进行广播,以便所述区块链系统中的当前生产节点接收到广播后将所述新节点的ip地址在所述系统节点权重表内检索以判断所述系统节点权重表中是否存在所述新节点的ip地址项,其中,
如果存在,则保持所述新节点的ip地址项对应的节点权重值不变;
如果不存在,则在所述系统节点权重表中创建所述新节点的ip地址项,并对所述新节点的ip地址项对应的节点权重值进行初始赋值。
8.如权利要求6或7所述的区块链系统的共识机制实现装置,其特征在于,所述问询模块进一步用于,对每个节点的ip地址进行问询时,向每个节点发送问询信息,并在预设时间后判断是否接收到应答信息,其中,
如果接收到当前节点的应答信息,则判断当前节点在线;
如果未接收到当前节点的应答信息,则判断当前节点掉线。
9.如权利要求6或7所述的区块链系统的共识机制实现装置,其特征在于,所述赋值模块对所述系统节点权重表中每个节点ip地址项所对应的节点权重值进行处理时,进一步用于,
对每个节点ip地址项所对应的节点权重值进行累加以获得所述总权重值L。
10.一种区块链系统,其特征在于,包括如权利要求6-9中任一项所述的区块链系统的共识机制实现装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810967408.4A CN108965329B (zh) | 2018-08-23 | 2018-08-23 | 区块链系统的共识机制实现方法、介质、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810967408.4A CN108965329B (zh) | 2018-08-23 | 2018-08-23 | 区块链系统的共识机制实现方法、介质、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108965329A CN108965329A (zh) | 2018-12-07 |
CN108965329B true CN108965329B (zh) | 2021-03-23 |
Family
ID=64473208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810967408.4A Active CN108965329B (zh) | 2018-08-23 | 2018-08-23 | 区块链系统的共识机制实现方法、介质、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108965329B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109684798A (zh) * | 2019-01-04 | 2019-04-26 | 深圳银链科技有限公司 | 一种基于公有区块链的共识算法、设备及存储介质 |
CN112187765B (zh) * | 2020-09-23 | 2023-04-07 | 深圳前海微众银行股份有限公司 | 一种区块链中选择目标节点的方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107636662A (zh) * | 2015-02-13 | 2018-01-26 | 优替控股有限公司 | 网络内容认证 |
CN106453286B (zh) * | 2016-09-27 | 2020-03-17 | 北京天德科技有限公司 | 一种基于区块链的信誉方法和系统 |
CN107347009B (zh) * | 2017-08-30 | 2018-08-14 | 北京知金链网络技术有限公司 | 区块链一维随机数共识推举方法 |
CN108133420B (zh) * | 2018-01-10 | 2020-09-11 | 杭州复杂美科技有限公司 | 一种区块链的委托共识方法 |
-
2018
- 2018-08-23 CN CN201810967408.4A patent/CN108965329B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108965329A (zh) | 2018-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109347901B (zh) | 区块链系统的共识机制实现方法、介质、装置及系统 | |
CN109242500B (zh) | 区块链交易有效性验证方法、装置及存储介质 | |
CN110737664B (zh) | 一种区块链节点同步的方法及装置 | |
US7428220B1 (en) | Method and apparatus for data aggregation in a distributed system | |
CN110401662B (zh) | 一种工控设备指纹识别方法、存储介质 | |
CN109379396B (zh) | 区块链系统中防止出现硬分叉现象的方法、介质、装置和区块链系统 | |
CN108965329B (zh) | 区块链系统的共识机制实现方法、介质、装置及系统 | |
CN110727644B (zh) | 一种区块链数据裁剪的方法、系统及存储介质 | |
CN111083179B (zh) | 物联网云平台、基于物联网云平台的设备交互方法及装置 | |
KR101411321B1 (ko) | 액티브 노드와 유사한 특성을 가지는 이웃 노드의 관리방법, 장치 및 그 방법을 구현하기 위한 프로그램이 기록된기록매체 | |
CN108769118B (zh) | 一种分布式系统中主节点的选取方法及装置 | |
CN110059077A (zh) | 一种数据核对方法、装置、设备和存储介质 | |
CN117348804A (zh) | 面向数联网监管系统的分层存储方法、系统及存储介质 | |
CN110333984B (zh) | 接口异常检测方法、装置、服务器及系统 | |
CN106202084A (zh) | 数据存储方法和数据存储装置 | |
CN111161064A (zh) | 一种区块链交易记录的处理方法及装置 | |
CN116915791A (zh) | 区块链交易冲突检测的方法、排序节点及背书节点 | |
CN105718550B (zh) | 一种媒体信息发布方法及系统 | |
CN112258184B (zh) | 冻结区块链网络的方法、装置、电子设备及可读存储介质 | |
CN109302307B (zh) | 网络主机、基于网络主机快速部署区块链节点的方法 | |
CN116012485A (zh) | 一种时序路径处理方法及装置、存储介质 | |
CN112597119A (zh) | 一种处理日志的生成方法、装置及存储介质 | |
CN107577604B (zh) | 测试数据的生成方法、装置和计算机可读存储介质 | |
CN111147568A (zh) | 身份数据的同步方法及装置 | |
CN116401266B (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 | ||
CP03 | Change of name, title or address |
Address after: 361000 B1F-065, Zone A, Huaxun Building, Software Park, Xiamen Torch Hi-tech Zone, Huli District, Xiamen City, Fujian Province Patentee after: Ke'an (Xiamen) Technology Co.,Ltd. Address before: B1f-065, zone a, Huaxun building, software park, torch hi tech Zone, Xiamen City, Fujian Province, 361000 Patentee before: TAILIAN (XIAMEN) TECHNOLOGY Co.,Ltd. |
|
CP03 | Change of name, title or address |