CN110047004B - 区块链记账节点选择方法和装置 - Google Patents
区块链记账节点选择方法和装置 Download PDFInfo
- Publication number
- CN110047004B CN110047004B CN201910328952.9A CN201910328952A CN110047004B CN 110047004 B CN110047004 B CN 110047004B CN 201910328952 A CN201910328952 A CN 201910328952A CN 110047004 B CN110047004 B CN 110047004B
- Authority
- CN
- China
- Prior art keywords
- node
- group
- block chain
- fitness
- groups
- 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
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- 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/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
-
- 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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Finance (AREA)
- Computer Security & Cryptography (AREA)
- Biophysics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- General Engineering & Computer Science (AREA)
- Bioinformatics & Computational Biology (AREA)
- General Business, Economics & Management (AREA)
- Evolutionary Biology (AREA)
- Strategic Management (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Genetics & Genomics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Physiology (AREA)
- Technology Law (AREA)
- Bioethics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种区块链记账节点选择方法和装置,该方法包括:确定区块链中每个节点各自对应的最长传输时间以及最大跳数;从区块链中选取多个节点组,每个节点组包括至少一个节点;基于遗传算法对当前存在的节点组进行扩展,扩展出多个节点组;针对扩展出的每个节点组,依据该节点组中各个节点对应的最长传输时间和最大跳数,计算该节点组的适应度,该适应度用于表征节点组中节点向区块链中传输信息的效率的高低程度;在满足设定条件的情况下,确定当前适应度最高的节点组;从适应度最高的节点组中选取记账节点。本申请的方案选取出的记账节点具有随机性,并有利于提高记账节点传输信息的传输效率。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种区块链记账节点选择方法和装置。
背景技术
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
区块链***中包括进行交易信息验证的验证节点以及对验证通过的交易信息进行记录并形成区块链中区块的记账节点。可见,为了实现将信息记录到区块链中,就必须在区块链中确定记账节点。为了保证区块链中记账节点的选取的公平以及公正性,在有些区块链中会要求随机选取区块链。然而,目前,在区块链中选取记账节点虽然能够满足随机性,但是却未考虑区块链中节点之间信息传输所存在的时延,从而可能会导致信息传输效率低的问题。
发明内容
有鉴于此,本申请提供了一种区块链记账节点选择方法,以更为合理的选取记账节点,以使得选取出的记账节点具有随机性,且,降低由于记账节点选取不合适而导致的信息传输所存在时延,有利于提高区块链中信息传输效率。
为实现上述目的,一方面,本申请提供了一种区块链记账节点选择方法,包括:
确定区块链中每个节点各自对应的最长传输时间以及最大跳数,其中,节点的最大传输时间为节点将信息广播给所述区块链中所有的节点所需的最长时间;节点的最大跳数为节点向区块链中不同节点传输消息所需的跳数中的最大值;
从区块链中选取多个节点组,每个节点组包括至少一个节点,其中,不同节点组中包括不同的节点,且,不同节点组中节点的数量相同;
基于遗传算法对当前存在的节点组进行扩展,扩展出多个节点组,所述多个节点组的数量不小于所述当前存在的节点组的数量;
针对扩展出的每个节点组,依据所述节点组中各个节点对应的最长传输时间和最大跳数,计算所述节点组的适应度,所述节点组的适应度用于表征节点组中节点向区块链中传输信息的效率的高低程度;
在满足设定条件的情况下,确定当前适应度最高的节点组;
从适应度最高的节点组中选取记账节点。
优选的,在所述从区块链中选取多个节点组的同时,还包括:设定循环次数为1;
所述设定条件包括:
循环次数达到设定次数;
或者,当前扩展出的多个节点组中,存在连续目标数量次循环中均属于适应度最高的节点组;
在所述计算所述节点组的适应度之后,还包括:
在不满足所述设定条件的情况下,返回执行所述基于遗传算法对当前存在的节点组进行扩展的操作,并将所述循环次数加1。
优选的,所述设定条件包括:
当前扩展出的多个节点中存在适应度超过设定阈值的至少一个节点组。
优选的,所述基于遗传算法对当前存在的节点组进行扩展,扩展出多个节点组,包括:
分别将当前存在的每个节点组映射为一个种群,其中,不同节点组对应不同的种群,所述种群中的个体为所述种群对应的节点组,且,种群中个体的染色体为种群对应的节点组中的节点;
基于遗传算法对当前存在的种群进行遗传、交叉和/或变异,得到对应多个节点组的多个种群。
优选的,所述基于遗传算法对当前存在的种群进行遗传、交叉和/或变异,包括:
基于遗传算法对当前存在的种群进行遗传;
在依据设定的交叉概率和变异概率,确定当前满足种***叉条件和/或种群变异条件时,基于遗传算法对当前存在的种群进行交叉和/或变异。
优选的,所述依据所述节点组中各个节点对应的最长传输时间和最大跳数,计算所述节点组的适应度,包括:
针对所述节点组中的每个节点,计算该节点对应的最大传输时间与第一系数的第一乘积,以及,该节点对应的最大跳数的第二乘积,并将所述第一乘积与第二乘积的和确定为所述节点的适应度;
将所述节点组中各个节点对应的适应度的总和确定为所述节点组的适应度。
又一方面,本申请还提供了一种区块链记账节点选择装置,包括:
特征确定单元,用于确定区块链中每个节点各自对应的最长传输时间以及最大跳数,其中,节点的最大传输时间为节点将信息广播给所述区块链中所有的节点所需的最长时间;节点的最大跳数为节点向区块链中不同节点传输消息所需的跳数中的最大值;
组初选单元,用于从区块链中选取多个节点组,每个节点组包括至少一个节点,其中,不同节点组中包括不同的节点,且,不同节点组中节点的数量相同;
组扩展单元,用于基于遗传算法对当前存在的节点组进行扩展,扩展出多个节点组,所述多个节点组的数量不小于所述当前存在的节点组的数量;
适应度确定单元,用于针对扩展出的每个节点组,依据所述节点组中各个节点对应的最长传输时间和最大跳数,计算所述节点组的适应度,所述适应度用于表征节点组中节点向区块链中传输信息的效率的高低程度;
组筛选单元,用于在满足设定条件的情况下,确定当前适应度最高的节点组;
节点选择单元,用于从适应度最高的节点组中选取记账节点。
优选的,还包括:循环设定单元,用于在所述组初选单元从区块链中选取多个节点组的同时,设定循环次数为1;
所述组筛选单元中的所述设定条件包括:
循环次数达到设定次数;
或者,当前扩展出的多个节点组中,存在连续目标数量次循环中均属于适应度最高的节点组;
所述区块链记账节点选择装置,还包括:
循环触发单元,用于在不满足所述设定条件的情况下,触发返回执行所述组扩展单元操作,并将所述循环次数加1。
优选的,所述组筛选单元中的所述设定条件包括:
当前扩展出的多个节点中存在适应度超过设定阈值的至少一个节点组。
优选的,所述组扩展单元,包括:
种群映射子单元,用于分别将当前存在的每个节点组映射为一个种群,其中,不同节点组对应不同的种群,所述种群中的个体为所述种群对应的节点组,且,种群中个体的染色体为种群对应的节点组中的节点;
组扩展子单元,用于基于遗传算法对当前存在的种群进行遗传、交叉和/或变异,得到对应多个节点组的多个种群。
可见,在本申请实施例中,从区块链中选取出多个节点组之后,会对节点组进行扩展,对于扩展出的每个节点组,会根据该节点组中各个节点各自广播信息所需的最大传输时间以及最大跳数,确定该节点组的适应度,这样,在满足设定条件的情况下,可以从适应度最高的节点组中选取结账节点。由此可见,由于基于选取出的节点组扩展节点组满足随机性,这样,保证了后续记账节点的随机性。而且,由于节点组的适应度与节点组中各个节点的最大传输时间和最大跳数有关,因此,节点组的适应度可以反映出节点组内各个节点的信息传输性能,在此基础上,从适应度最高的节点组中选取记账节点,有利于从区块链中选取出信息传输性能较高的记账节点,从而有利于提高记账节点向区块链中传输信息的传输效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1示出了本申请的方案所适用的区块链中的一种组成结构示意图;
图2示出了本申请的一种区块链记账节点选择方法的一种流程示意图;
图3示出了本申请中区块链网络中各个节点之间关系的简单示意图;
图4示出了本申请一种区块链记账节点选择方法的又一种流程示意图;
图5示出了本申请一种区块链记账节点选择装置的一种组成结构示意图。
具体实施方式
本申请的方案适用于从区块链中节点中选择出用于生成区块的记账节点。
如图1所示,其示出了一种区块链的组成结构示意图。
其中,区块链是基于对等(Peer-to-peer,p2P)网络构建出的,因此,区块链包括多个节点101。
其中,在该多个节点101中会包括至少一个记账节点102和多个验证节点103。
其中,记账节点为区块链中用于记录网络中的交易信息,并形成用于存储的区块。
而验证节点是用于多记账节点生成的区块进行验证,并通过共识机制将区块发布到区块链中。
下面结合流程图对本申请的方案进行介绍。
如图2,其示出了本申请一种区块链记账节点选择方法的一种流程示意图,本实施例的方案可以应用于计算机设备,该计算机设备可以是区块链中某个节点,也可以是与区块链存在通信连接的计算机设备等。
本实施例的方法可以包括:
S201,确定区块链中每个节点各自对应的最长传输时间以及最大跳数。
其中,节点的最大传输时间为节点将信息广播给该区块链中所有的节点所需的最长时间。也就是说,节点作为源节点向区块链中广播信息的情况下,该源节点广播的信息传输到最后接收到该信息的节点所经过的时间就是该源节点对应的最大传输时间。
如,假设区块链中包括节点1、节点2、节点3和节点4,而节点1广播信息之后,该区块链中最后一个接收到该节点1广播的信息的节点为节点3,则节点1从发出广播信息到该节点3接收到该广播信息的时长就是该节点1广播一个信息的最大传输时间。
其中,节点的最大跳数为节点向区块链中不同节点传输消息所需的跳数中的最大值。可以理解的是,此处所提到的所需的跳数的最大值是指按照最优传输方式所需的跳数中的最大值。
如,结合图3进行说明,图3所示的区块链中包括节点1、节点2、节点3、节点4和节点5。其中,节点1将信息传输给节点2只需要经过一跳,而节点1将信息传输给节点4则需要两跳:具体为从节点1到节点2,再从节点2到节点4。节点1将信息传输给节点3也需要一跳。
而节点1将信息传输给节点5则需要经过节点3到节点5,即需要两跳。其中,虽然信息也可以从节点1经节点2、节点4到节点5的方式传输,但是按照最优传输方式,在经节点3将节点1发出的信息传输给节点5之后,节点5接收到信息之后就不会再接收信息,因此,节点1到节点5的跳数为两跳。
相应的,节点1到最远的节点6所需的跳数为3跳,即,从节点1经节点3和节点5到达节点6。
由此可知,节点1将信息传输给整个区块链所需的跳数中最大跳数为6跳。
可以理解的是,确定区块链中各个节点所对应的最大跳数和最大传输时间的具体方式可以采用任意方式确定,本申请对此不加限制。
S202,从区块链中选取多个节点组。
其中,每个节点组包括至少一个节点,其中,不同节点组中包括不同的节点,且,不同节点组中节点的数量相同。如,每个节点具有唯一的节点标识,而不同节点组中包含的节点所具有的节点标识不同。
其中,该步骤S202可以看成是节点组的初始化过程,在该步骤中,可以根据需要随机选取多个节点组,只要保证每个节点组的数量相同,且同一个节点只能属于一个节点组即可。
可以理解的是,在实际应用中,可以预先设定随机选取的节点组的数量,如,可以设定选取K个节点组,K为大于等于一的自然数。其中,K的取值根据不同区块链的网络规模的大小也可以有所不同。相应的,还可以设定节点组中节点的数量,如,设定每个节点组中包括x,x为大于等于1的自然数。
可选的,在本申请实施例中,从区块链中选取出的节点组可以为验证节点组,相应的,节点组中每个节点可以认为是选取出的验证节点。
S203,基于遗传算法对当前存在的节点组进行扩展,扩展出多个节点组。
其中,多个节点组的数量不小于该当前存在的节点组的数量。
其中,对节点组进行扩展是指以该节点组为基准,扩展出包含该节点组中部分节点的其他节点组。
如,每个节点组可以扩展出至少一个节点组,每个节点组扩展出的至少一个节点组中至少包括该节点组,还可以包括不同于该节点组的其他节点组。相应的,由于当前存在的节点组的数量为多个,则多个节点组最终可以扩展出多个节点组。
可以理解的是,由于该步骤S203可能会被多次执行,因此,每次执行该步骤S203时,当前存在的节点组也会有所不同。如,在步骤S202选取出多个节点组之后,那么第一次执行该步骤S203,则当前存在的节点组为步骤S202中选取出的多个节点组。
其中,基于遗传算法对节点组进行扩展可以包括:对节点组进行遗传、交叉和变异的一种或者多种。其中,对节点组进行遗传为保留给节点组,对节点组进行较差是指将该节点组中的至少一个节点与其他节点组中的节点进行互换;对节点组的变异是指将该节点组中的节点替换为区块链中其他的节点。
在一种可能的实现方式中,可以分别将当前存在的每个节点组映射为一个种群,其中,不同节点组对应不同的种群,该种群中的个体为该种群对应的节点组,且,种群中个体的染色体为种群对应的节点组中的节点。相应的,可以基于遗传算法对当前存在的种群进行遗传、交叉和/或变异,得到对应多个节点组的多个种群。
可以理解的是,在本实施例中一个节点组对应一个种群可以有多种可能,此处是以节点组作为一个种群且节点组为种群的个体为例,在该种情况下,节点组中节点的个数就可以看成是种群中个体的染色体数。在实际应用中,也可以是将节点组中每个节点看成是该节点组对应的种群中的个体,每个个体的染色体可以看成是1。
其中,由于遗传算法涉及到遗传、交叉和变异,在实际引用中,还可以设置交叉概率和变异概率。相应的,基于遗传算法可以对当前存在的各个种群进行遗传。同时,在依据设定的交叉概率和变异概率,确定当前满足种***叉条件和/或种群变异条件时,基于遗传算法对当前存在的种群进行交叉和/或变异。
其中,对于每个节点组对应的种群,均可以进行种群遗传,以保留该节点组对应的种群。
而是否对种群进行交叉和变异,则需要判断当前是否满足种***叉条件和种群变异条件。其中,在满足种***叉条件的情况下,会基于遗传算法对当前存在的种群进行交叉;在满足种群变异条件的情况下,会基于遗传算法对当前存在的种群进行变异。
其中,基于交叉概率判断当前是否满足种***叉条件的方式可以有多种,作为一种可选方式,本申请可以生成一随机数,如果该随机数大于该交叉概率,则确定当前满足种***叉条件。
相应的,基于变异概率判断当前是否满足种群变异条件的方式也可以有多种。作为一种选取方式,可以获取生成的随机数,如果该随机数大于该遗传概率,则确定当前满足种群变异条件。
S204,针对扩展出的每个节点组,依据该节点组中各个节点对应的最长传输时间和最大跳数,计算该节点组的适应度。
其中,节点组的适应度用于表征节点组中节点向区块链中传输信息的效率的高低程度。该节点组的适应度为结合节点组中各个节点的最大传输时间和最大跳数确定出的,能够反映节点组中所有节点的传输性能的评价指标。
具体的,节点组中所有节点的最大传输时间越小,该节点组的适应度越高,而该节点组中各个节点的最大跳数越小,则该节点组的适应度越高。
可以理解的是,计算该节点组的适应度的方式可以有多种,如,可以设置最大传输时间对应的第一权重,以及最大跳数进行第二权重,然后计算节点组中所有节点的最大传输时间和最大跳数的加权和。又如,还可以按照遗传算法中适应度函数,计算该节点组对应的种群的适应度。
在一种可能的情况中,节点组的适应度可以通过如下方式得到:
针对该节点组中的每个节点,计算该节点对应的最大传输时间与第一系数的第一乘积,以及,该节点对应的最大跳数的第二乘积,并将该第一乘积与第二乘积的和确定为节点的适应度;
将该节点组中各个节点对应的适应度的总和确定为该节点组的适应度。
其中,该第一系数和第二系数可以根据需要设定。
如,该节点组kj的适应度f(kj)可以通过如下公式一计算得到:
S205,在满足设定条件的情况下,确定当前适应度最高的节点组。
其中,该设定条件可以根据需要设定。
如,在需要通过对如上步骤S203和S204多次循环的情况下,可以记录循环次数,并在循环次数到达设定次数的情况下,确定满足设定条件。
在一种可能的情况中,可以在步骤S202选取出多个节点组的同时,设定循环次数为1。相应的,在该步骤S205可以判断循环次数是否达到设定次数,如果是,则确定当前适应度最高的节点组;如果循环次数未达到设定次数,则可以返回执行步骤S203,并将循环次数加1,以便重新进行循环并计数。
在又一种可能的情况中,在步骤S202选取出多个节点组的同时,设定循环次数为1的情况下,该设定条件还可以为当前扩展出的多个节点组中,存在连续目标数量次循环中均属于适应度最高的节点组。具体的,可以检测当前扩展出的多个节点组各自的适应度是否为连续目标数量次循环中适应度最高的适应度,如果是,则确定满足设定条件,从而确定出该适应度最高的适应度。相应的,如果不存在连续目标数量次循环中适应度均为最高的节点组,则可以返回步骤S203,并将循环次数加1,以继续重复循环并计数。
其中,在以上第二种情况中,该设定条件还可以是,连续目标数量次循环中均属于适应度最高的节点组,且该节点组的适应度保持不变,具体可以根据需要设定。
可以理解的是,在实际应用中,可以根据需要将设定条件设置为以上两种情况中的任意一种。
又如,考虑到节点组的适应度较高时,该节点组的信息传输性能较高,节点组中各个节点的信息传输性能也相对较高,该设定条件还可以为:当前扩展出的多个节点中存在适应度超过设定阈值的至少一个节点组。该种情况适用于步骤S202和S203多次循环的情况,也适用于单独对步骤S202进行多次执行,或者仅仅执行一次步骤S202的情况。
S206,从适应度最高的节点组中选取记账节点。
可以理解的是,由于适应度最高的节点组中各个节点的信息传输性能都相对较高,因此,从该节点组选取记账节点有利于保证记账节点的信息传输性能,进而减少信息传输时延。
其中,从适应度最高的节点组中选取记账节点的方式可以有多种,如,可以选取该节点组中适应度最高的节点作为记账节点,其中,节点的适应度可以参见前面的介绍。可选的,考虑到节点组中各个节点的信息传输效率都普遍较高,为了降低数据计算的消耗,可以从适应度最高的节点组中随机选取一个节点作为记账节点。
可以理解的是,在节点组为验证节点组的情况下,此处可以为从适应度最高的验证节点组中选取一个节点作为记账节点,而该适应度最高的验证节点组中各个节点可以作为区块链中的验证节点。
可见,由于基于选取出的节点组扩展节点组满足随机性,这样,保证了后续记账节点的随机性。而且,由于节点组的适应度与节点组中各个节点的最大传输时间和最大跳数有关,因此,节点组的适应度可以反映出节点组内各个节点的信息传输性能,在此基础上,从适应度最高的节点组中选取记账节点,有利于从区块链中选取出信息传输性能较高的记账节点,从而有利于提高记账节点向区块链中传输信息的传输效率。
为了便于理解本申请的方案,下面以选取出的节点组中的节点为作为验证节点的节点为例说明,同时,以选择记账节点的整个流程为结合遗传算法的迭代流程为例进行说明。
如,参见图4,其示出了本申请一种区块链记账节点选择方法的又一种流程示意图,本实施例的方法可以包括:
S401,确定区块链中每个节点各自对应的最长传输时间以及最大跳数。
其中,节点对应的最长传输时间和最大跳数可以参见前面的相关介绍,在此不再赘述。
S402,从区块链中随机选取第一数量个验证节点组,并设定循环次数为1,每个验证节点组包括第二数量个作为验证节点的节点。
如,验证节点组1包括作为验证节点的节点1、节点2和节点3;而验证节点组2包括作为验证节点的节点4、节点5和节点6。
其中,该第一数量和第二数量可以分别根据需要设定,对于包含不同节点数量的不同区块链而言,第一数量和第二数量均可以有所不同。
在本实施例中,由于该步骤S402执行时,尚未基于遗传算法进行相应的迭代循环,所以此处将循环次数设定为1。
S403,将每个验证节点组映射为一个种群,得到第一数量个种群。
其中,不同验证节点组对应不同的种群,种群中的个体为种群对应的验证节点组,且,种群中个体的染色体为种群对应的验证节点组中的验证节点。
S404,针对每个种群,基于遗传算法对种群进行遗传。
对于每个验证节点组所对应的种群均需要进行遗传,所谓遗传就是保留该验证节点组对应的种群。
S405,生成一随机数。
该随机数的目的是为了判断当前是否满足种***叉条件以及种群变异条件。其中,不同次循环过程中,随机生成的该随机数会有所不同。
S406,如果该随机数大于设定的交叉概率p1,基于遗传算法对当前存在的种群进行交叉。
S407,如果该随机数大于设定的变异概率p2,依据区块链中的节点,并基于遗传算法对当前存在的种群进行变异。
其中,该交叉概率和变异概率可以根据需要设定,如果本次循环中生成的随机数大于该交叉概率和变异概率,则分别进行种群的交叉和变异;如果随机数不大于该变异概率,则不会对种群进行变异。相应的,如果随机数不大于交叉概率,也不会对种群进行交叉。
其中,基于遗传算法对种群进行交叉和变异的过程可以与现有的遗传算法中的交叉和变异过程相似,对于不加限制。
可以理解的是,步骤S404、S406、S407的顺序并不限于图4所示,在实际应用中,也可以在执行步骤S406和S407的同时执行该步骤S404;或者是,先执行步骤S406和S407,再执行步骤S406。
S408,针对每个验证节点组对应的种群,基于遗传算法的适应度函数,计算该验证节点组对应的种群的适应度。
其中,该适应度函数可以参见前面的公式一,当然也可以是其他可能的适应度函数。
S409,检测当前是否存在连续目标数量次循环中均属于适应度最高的种群,如果是,则执行步骤S411;如果否,则执行步骤S410。
其中,目标数量次可以根据需要设定。
S410,检测当前的循环次数达到设定次数,如果是,则执行步骤S411;如果否,则将循环次数加1,并返回执行步骤S404。
其中,如果不存在适应度最高且连续多次适应度未变化的种群(即验证节点组),则需要返回步骤S404进行循环,由于即将进入下一次基于遗传算法的循环,循环次数需要加1。
S411,从多个节点组中选取出适应度最高的验证节点组,并从适应度最高的验证节点组中随机选取记账节点。
其中,适应度最高的验证节点组就是适应度最高的种群。
可选的,此处随机选择记账节点时,可以选择适应度最高且在线的验证节点为记账节点,在线可以是指当前保持处于区块链中的登录状态等。
可以理解的是,通过随机选择在线的节点作为一次区块产生的记账节点之后,下一次区块生成的记账节点则可以采用本申请的方案重新随机选取。
为了便于理解本申请实施例的好处,下面结合仿真结果进行说明。
如下表1中,第一行为不同区块链中节点的总数目。
表1中第二行是针对包含不同节点总数的区块链,采用“一维随机方法”确定出的记账节点在传输信息所需的平均最大跳数,其中,“一维随机方法”为仅仅是目前常规的仅仅随机选取记账节点的方式。
第三行是针对包含不同节点总数的区块链,采用本申请结合遗传算法的方式选取出记账节点后,该记账节点传输信息所需的平均最大跳数。
表1
对比两种方法下的平均最大跳数可知,采用本申请区块链记账节点选择方法,在不同节点总数条件下的所选择出的记账节点传输信息到整个区块链网络所需的平均最大跳数要小于采用传统一维随机数方法确定出的记账节点所对应的平均最大跳数。
同时,节点跳数越大,传输出错的概率越大的基本思想(如果每跳传输的出错概率为P,则n跳的传输出错概率为1-(1-P)n)可知,基于本申请的方案确定出的记账节点在区块链网络传输性能上也优于传输的一维随机数方法。
另外,表2中第二行示出了针对不同节点总数的区块链,传统的“一维随机方法”确定的记账节点传输信息的平均最大时延,而表2中第三行示出针对不同区块链,采用本申请的方案选取出的记账节点传输信息的平均最大时延。
表2
节点总数 | 50 | 100 | 200 | 300 | 400 | 500 | 600 |
一维随机方法 | 17.0 | 17.5 | 22.7 | 23.5 | 24.6 | 24.95 | 26.0 |
遗传算法 | 14.307 | 15.0 | 19.2 | 20.37 | 21.1 | 22.1 | 22.74 |
结合表2中第二行和第三行,可以对比出两种方法下的平均最大时延数,由此可知,采用本申请的方案在不同节点总数条件下的所选择出的记账节点,其传输信息到整个区块链网络所需的平均最大时延要小于一维随机数方法选取出的记账节点对应的平均最大时延。而传输时延对于区块链网络(P2P网络)来说是一个非常重要的指标,并且,如果网络总节点数非常巨大,则网络传输时延也是影响共识算法效率的一个重要因素。因此,基于本申请的方案选取出的记账节点在P2P网络传输时延性能上优于传统一维随机数方法确定出的记账节点的传输性能。
对应本申请的一种区块链记账节点选择方法,本申请还提供了一种区块链记账节点选择装置。
如,参见图5,其示出了本申请一种区块链记账节点选择装置的一种组成结构示意图,本实施例的装置可以包括:
特征确定单元501,用于确定区块链中每个节点各自对应的最长传输时间以及最大跳数,其中,节点的最大传输时间为节点将信息广播给所述区块链中所有的节点所需的最长时间;节点的最大跳数为节点向区块链中不同节点传输消息所需的跳数中的最大值;
组初选单元502,用于从区块链中选取多个节点组,每个节点组包括至少一个节点,其中,不同节点组中包括不同的节点,且,不同节点组中节点的数量相同;
组扩展单元503,用于基于遗传算法对当前存在的节点组进行扩展,扩展出多个节点组,所述多个节点组的数量不小于所述当前存在的节点组的数量;
适应度确定单元504,用于针对扩展出的每个节点组,依据所述节点组中各个节点对应的最长传输时间和最大跳数,计算所述节点组的适应度,所述适应度用于表征节点组中节点向区块链中传输信息的效率的高低程度;
组筛选单元505,用于在满足设定条件的情况下,确定当前适应度最高的节点组;
节点选择单元506,用于从适应度最高的节点组中选取记账节点。
在一种可能的实现方式中,该装置还包括:循环设定单元,用于在所述组初选单元从区块链中选取多个节点组的同时,设定循环次数为1;
相应的,组筛选单元中的所述设定条件包括:
循环次数达到设定次数;
或者,当前扩展出的多个节点组中,存在连续目标数量次循环中均属于适应度最高的节点组;
另外,该区块链记账节点选择装置,还包括:
循环触发单元,用于在不满足所述设定条件的情况下,触发返回执行所述组扩展单元操作,并将所述循环次数加1。
在又一种可能的实现方式中,所述组筛选单元中的所述设定条件包括:
当前扩展出的多个节点中存在适应度超过设定阈值的至少一个节点组。
在一种可能的实现方式中,所述组扩展单元,包括:
种群映射子单元,用于分别将当前存在的每个节点组映射为一个种群,其中,不同节点组对应不同的种群,所述种群中的个体为所述种群对应的节点组,且,种群中个体的染色体为种群对应的节点组中的节点;
组扩展子单元,用于基于遗传算法对当前存在的种群进行遗传、交叉和/或变异,得到对应多个节点组的多个种群。
可选的,所述组扩展子单元,包括:
遗传子单元,用于基于遗传算法对当前存在的种群进行遗传;
交叉变异子单元,用于在依据设定的交叉概率和变异概率,确定当前满足种***叉条件和/或种群变异条件时,基于遗传算法对当前存在的种群进行交叉和/或变异。
在一种可能的实现方式中,所述适应度确定单元,包括:
适应度计算子单元,用于针对所述节点组中的每个节点,计算该节点对应的最大传输时间与第一系数的第一乘积,以及,该节点对应的最大跳数的第二乘积,并将所述第一乘积与第二乘积的和确定为所述节点的适应度;
适应度求和子单元,用于将所述节点组中各个节点对应的适应度的总和确定为该节点组的适应度。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种区块链记账节点选择方法,其特征在于,包括:
确定区块链中每个节点各自对应的最长传输时间以及最大跳数,其中,节点的最大传输时间为节点将信息广播给所述区块链中所有的节点所需的最长时间;节点的最大跳数为节点向区块链中不同节点传输消息所需的跳数中的最大值;
从区块链中选取多个节点组,每个节点组包括至少一个节点,其中,不同节点组中包括不同的节点,且,不同节点组中节点的数量相同;
基于遗传算法对当前存在的节点组进行扩展,扩展出多个节点组,所述多个节点组的数量不小于所述当前存在的节点组的数量;
针对扩展出的每个节点组,依据所述节点组中各个节点对应的最长传输时间和最大跳数,计算所述节点组的适应度,所述节点组的适应度用于表征节点组中节点向区块链中传输信息的效率的高低程度;
在满足设定条件的情况下,确定当前适应度最高的节点组;
从适应度最高的节点组中选取记账节点。
2.根据权利要求1所述的区块链记账节点选择方法,其特征在于,在所述从区块链中选取多个节点组的同时,还包括:设定循环次数为1;
所述设定条件包括:
循环次数达到设定次数;
或者,当前扩展出的多个节点组中,存在连续目标数量次循环中均属于适应度最高的节点组;
在所述计算所述节点组的适应度之后,还包括:
在不满足所述设定条件的情况下,返回执行所述基于遗传算法对当前存在的节点组进行扩展的操作,并将所述循环次数加1。
3.根据权利要求1所述的区块链记账节点选择方法,其特征在于,所述设定条件包括:
当前扩展出的多个节点中存在适应度超过设定阈值的至少一个节点组。
4.根据权利要求1所述的区块链记账节点选择方法,其特征在于,所述基于遗传算法对当前存在的节点组进行扩展,扩展出多个节点组,包括:
分别将当前存在的每个节点组映射为一个种群,其中,不同节点组对应不同的种群,所述种群中的个体为所述种群对应的节点组,且,种群中个体的染色体为种群对应的节点组中的节点;
基于遗传算法对当前存在的种群进行遗传、交叉和/或变异,得到对应多个节点组的多个种群。
5.根据权利要求4所述的区块链记账节点选择方法,其特征在于,所述基于遗传算法对当前存在的种群进行遗传、交叉和/或变异,包括:
基于遗传算法对当前存在的种群进行遗传;
在依据设定的交叉概率和变异概率,确定当前满足种***叉条件和/或种群变异条件时,基于遗传算法对当前存在的种群进行交叉和/或变异。
6.根据权利要求1所述的区块链记账节点选择方法,其特征在于,所述依据所述节点组中各个节点对应的最长传输时间和最大跳数,计算所述节点组的适应度,包括:
针对所述节点组中的每个节点,计算该节点对应的最大传输时间与第一系数的第一乘积,以及,该节点对应的最大跳数与第二系数的第二乘积,并将所述第一乘积与第二乘积的和确定为所述节点的适应度;
将所述节点组中各个节点对应的适应度的总和确定为所述节点组的适应度。
7.一种区块链记账节点选择装置,其特征在于,包括:
特征确定单元,用于确定区块链中每个节点各自对应的最长传输时间以及最大跳数,其中,节点的最大传输时间为节点将信息广播给所述区块链中所有的节点所需的最长时间;节点的最大跳数为节点向区块链中不同节点传输消息所需的跳数中的最大值;
组初选单元,用于从区块链中选取多个节点组,每个节点组包括至少一个节点,其中,不同节点组中包括不同的节点,且,不同节点组中节点的数量相同;
组扩展单元,用于基于遗传算法对当前存在的节点组进行扩展,扩展出多个节点组,所述多个节点组的数量不小于所述当前存在的节点组的数量;
适应度确定单元,用于针对扩展出的每个节点组,依据所述节点组中各个节点对应的最长传输时间和最大跳数,计算所述节点组的适应度,所述适应度用于表征节点组中节点向区块链中传输信息的效率的高低程度;
组筛选单元,用于在满足设定条件的情况下,确定当前适应度最高的节点组;
节点选择单元,用于从适应度最高的节点组中选取记账节点。
8.根据权利要求7所述的区块链记账节点选择装置,其特征在于,还包括:循环设定单元,用于在所述组初选单元从区块链中选取多个节点组的同时,设定循环次数为1;
所述组筛选单元中的所述设定条件包括:
循环次数达到设定次数;
或者,当前扩展出的多个节点组中,存在连续目标数量次循环中均属于适应度最高的节点组;
所述区块链记账节点选择装置,还包括:
循环触发单元,用于在不满足所述设定条件的情况下,触发返回执行所述组扩展单元操作,并将所述循环次数加1。
9.根据权利要求7所述的区块链记账节点选择装置,其特征在于,所述组筛选单元中的所述设定条件包括:
当前扩展出的多个节点中存在适应度超过设定阈值的至少一个节点组。
10.根据权利要求7所述的区块链记账节点选择装置,其特征在于,所述组扩展单元,包括:
种群映射子单元,用于分别将当前存在的每个节点组映射为一个种群,其中,不同节点组对应不同的种群,所述种群中的个体为所述种群对应的节点组,且,种群中个体的染色体为种群对应的节点组中的节点;
组扩展子单元,用于基于遗传算法对当前存在的种群进行遗传、交叉和/或变异,得到对应多个节点组的多个种群。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910328952.9A CN110047004B (zh) | 2019-04-23 | 2019-04-23 | 区块链记账节点选择方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910328952.9A CN110047004B (zh) | 2019-04-23 | 2019-04-23 | 区块链记账节点选择方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110047004A CN110047004A (zh) | 2019-07-23 |
CN110047004B true CN110047004B (zh) | 2023-04-18 |
Family
ID=67278758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910328952.9A Active CN110047004B (zh) | 2019-04-23 | 2019-04-23 | 区块链记账节点选择方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110047004B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110458291A (zh) * | 2019-08-09 | 2019-11-15 | 成都理工大学 | 一种基于遗传算法的最佳共识节点选择方法 |
CN112671732B (zh) * | 2020-12-15 | 2022-11-22 | 中国联合网络通信集团有限公司 | 一种共识方法、装置及*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107580022A (zh) * | 2017-08-02 | 2018-01-12 | 国家计算机网络与信息安全管理中心 | 一种数据共享***和方法 |
CN109107166A (zh) * | 2018-08-24 | 2019-01-01 | 腾讯科技(深圳)有限公司 | 虚拟宠物的繁育方法、装置、设备及存储介质 |
CN109508295A (zh) * | 2018-11-14 | 2019-03-22 | 联动优势科技有限公司 | 区块链共识算法测试方法、装置、计算装置和存储介质 |
CN109543075A (zh) * | 2018-11-14 | 2019-03-29 | 全链通有限公司 | 区块生成方法和*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190392928A1 (en) * | 2017-03-01 | 2019-12-26 | Seqster Pdm, Inc. | Personal data marketplace for genetic, fitness, and medical information including health trust management |
-
2019
- 2019-04-23 CN CN201910328952.9A patent/CN110047004B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107580022A (zh) * | 2017-08-02 | 2018-01-12 | 国家计算机网络与信息安全管理中心 | 一种数据共享***和方法 |
CN109107166A (zh) * | 2018-08-24 | 2019-01-01 | 腾讯科技(深圳)有限公司 | 虚拟宠物的繁育方法、装置、设备及存储介质 |
CN109508295A (zh) * | 2018-11-14 | 2019-03-22 | 联动优势科技有限公司 | 区块链共识算法测试方法、装置、计算装置和存储介质 |
CN109543075A (zh) * | 2018-11-14 | 2019-03-29 | 全链通有限公司 | 区块生成方法和*** |
Also Published As
Publication number | Publication date |
---|---|
CN110047004A (zh) | 2019-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Asheralieva et al. | Reputation-based coalition formation for secure self-organized and scalable sharding in IoT blockchains with mobile-edge computing | |
CN110047004B (zh) | 区块链记账节点选择方法和装置 | |
Chen et al. | Multicent: A multifunctional incentive scheme adaptive to diverse performance objectives for DTN routing | |
CN106302104B (zh) | 一种用户关系识别方法及装置 | |
CN107404541B (zh) | 一种对等网络传输邻居节点选择的方法及*** | |
CN104994021B (zh) | 确定最优路径的方法及装置 | |
Das et al. | Selfish node detection and low cost data transmission in MANET using game theory | |
Reina et al. | A multi-objective optimization of data dissemination in delay tolerant networks | |
CN111130790A (zh) | 基于区块链节点网络的共识出块方法 | |
CN111431802B (zh) | 区块链节点通信优化***及方法 | |
CN111093201B (zh) | 一种无线传感器网络及其分簇方法 | |
CN109413202B (zh) | 区块链交易信息的排序***及方法 | |
Tang et al. | Modeling gossip-based content dissemination and search in distributed networking | |
KR101560523B1 (ko) | 에너지 효율성을 고려한 무선센서 네트워크 운영방법 | |
Wu et al. | An ant colony optimization algorithm for multi-objective clustering in mobile ad hoc networks | |
Bettstetter et al. | An inhomogeneous spatial node distribution and its stochastic properties | |
CN114330715A (zh) | 一种智能弹药协同进化任务分配方法 | |
CN111669267A (zh) | 区块链的共识机制配置及背书策略配置方法 | |
Kim et al. | An Energy-Efficient and Scalable Routing Protocol for Distributed Wireless Sensor Networks. | |
CN106022936B (zh) | 适用论文合作网络的基于社团结构的影响最大化算法 | |
CN113438255B (zh) | 一种多层级物联网运营方法、***和可读存储介质 | |
CN101636719A (zh) | 需求驱动排定优先顺序的数据结构 | |
Choi et al. | Energy-optimal distributed algorithms for minimum spanning trees | |
Dao et al. | A multifactorial evolutionary algorithm for minimum energy cost data aggregation tree in wireless sensor networks | |
CN115526634B (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 |