[0036] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0037] 需要说明的是,本发明实施例的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0038] 本发明实施例提供了一种区块链共识动态调整的方法,通过对交易数据的训练能够实现动态调整共识参数。以下将结合附图进行详细描述。
[0039] 请参阅图1,图1是本发明实施例提供的一种区块链共识动态调整的方法的流程示意图。如图1所示,该区块链共识动态调整的方法可以包括以下步骤:
[0040] 110、超级节点接收多个交易节点上传的交易参数,并对各交易参数进行维度化处理,以获得处理后的各交易参数。
[0041] 作为一种可选的实施方式,步骤110中超级节点接收多个交易节点上传的交易参数之后,对各交易参数进行维度化处理之前,图1所描述的方法还可以包括以下步骤:
[0042] 10)超级节点检测接收到的各交易参数的数量是否达到预设值,如果达到,则执行上述的对各交易参数进行维度化处理,以获得处理后的各交易参数的步骤。
[0043] 在该实施方式中,当超级节点接收到的交易参数的数量达到预设值,即交易参数的数量足够时,才对各交易参数进行训练。其好处在于,当交易参数的数量过少时,由于不同交易参数之间的差异性大,训练出的样本不足以体现数据分布的趋势,只有参与训练的数据越多,越能体现数据的总体分布趋势。当超级节点接收到的交易参数的数量未达到预设值时,超级节点可以继续等待接收新的交易参数,直至数量达到预设值。
[0044] 作为一种可选的实施方式,在执行步骤110之前,图1所描述的方法还可以包括以下步骤:
[0045] 11)交易节点获取交易参数,并将该交易参数传输至超级节点。
[0046] 其中,该交易参数可以包括但不限于交易数据、交易所花时间(即实时性)、去中心化比率(即去中心化程度)、交易安全等级(即交易安全性)、该交易节点的算力值、每秒处理的交易数(即吞吐量)、交易标签以及该交易节点的标识等参数。
[0047] 作为一种可选的实施方式,步骤11)中交易节点获取交易所花时间的方式具体可以包括以下步骤:
[0048] 12)交易节点向区块链提交交易数据,并记录下本次交易的提交时间T1;
[0049] 13)交易节点通过至少一个共振节点将该交易数据向外传输,直至传输至超级节点;
[0050] 14)超级节点对该交易数据进行打包处理,并记录下打包时间T2,并将打包后的数据包P和打包时间T2反馈给交易节点;
[0051] 15)交易节点根据提交时间T1和打包时间T2,确定本次交易所花时间。
[0052] 在该实施方式中,当用户想要进行交易时,用户在交易节点的客户端上编辑交易数据并通过客户端向区块链网络提交交易数据。交易节点中的AI(Artificial Intelligence,人工智能)协同组件收到新交易通知,开始计时,即记录本次交易的提交时间T1。交易数据通过多个共振节点不断地往外传输,最终到达超级节点,超级节点根据一定规则对该交易数据和其他交易节点传来的交易数据进行打包处理,得到数据包P,并记录下此次打包的打包时间T2,并经由共振节点将数据包P和打包时间T2反馈给交易节点。AI协同组件在收到数据包P后,查询该交易数据是否包含在数据包P中,如果包含在数据包P中,计算打包时间T2与提交时间T1的差值,该差值即为本次交易所花费的时间,并记录下本次交易所花时间。
[0053] 作为一种可选的实施方式,步骤11)中交易节点获取去中心化比率的方式具体可以包括以下步骤:
[0054] 16)交易节点向预设数量的共振节点发送查询指令,以使预设数量的共振节点根据该查询指令查询自身是否接收到数据包P,并分别将查询结果返回给交易节点;
[0055] 17)交易节点根据接收到的查询结果确定去中心化比率。
[0056] 在该实施方式中,交易节点接收到数据包P,一定时间后,AI协同组件向共振节点外发查询指令,该查询指令用于查询共振节点中是否也接收到数据包P。另外,共振节点又可以向其相邻的共振节点扩散该查询指令,使得越来越多的共振节点可以接收到该查询指令并查询自身中是否包含有数据包P。本实施方式中设置最多允许传输次数,即只向预设数量的共振节点传输该查询指令,这里的预设数量即可以理解为最多允许传输次数,其目的在于限制网络负载,避免网络负载过重。接收到查询指令的共振节点查询完毕后,将查询结果返给交易节点,交易节点统计结果分布情况,将包含有数据包P的共振节点的数量除以接收到查询指令的共振节点的数量(即预设数量),所得结果即可设置为去中心化比率。如果包含有数据包P的共振节点的数量越多,可以认为此次交易的稳定性越好。
[0057] 作为一种可选的实施方式,步骤11)中交易节点获取交易安全等级的方式具体可以包括以下步骤:
[0058] 18)交易节点向区块链提交交易数据之前,接收用户针对本次交易输入的交易安全等级参数;
[0059] 19)交易节点根据用户输入的该交易安全等级参数确定本次交易的交易安全等级。
[0060] 在该实施方式中,用户在交易节点的客户端中编辑本次交易信息时,会有交易安全等级参数的设置以及对应说明,主要表现为交易是否开放可查询等。用户输入交易安全等级参数后,交易节点即确定了本次交易的交易安全等级。
[0061] 作为一种可选的实施方式,步骤11)中交易节点获取每秒处理的交易数的方式具体可以包括以下步骤:
[0062] 20)交易节点获取前一个数据包的打包时间T3,并计算数据包P的打包时间T2与打包时间T3的时间差值;
[0063] 21)交易节点将数据包P中的交易总数与时间差值的商值,确定为每秒处理的交易数。
[0064] 在该实施方式中,AI协同组件可以获取前一个数据包的打包时间T3,该前一数据包为AI协同组件在接收数据包P之前接收到的一个数据包。AI协同组件计算数据包P的打包时间T2与前一个数据包的打包时间T3的时间差值,通过数据包P中的交易总数除以该时间差值,即可得到这段时间间隔内每秒处理的交易数(Transaction Per Second,TPS)。进一步地,可以以一定规则更新该TPS,例如tps1=0.8tps0+0.2tps,其中,tps即为前述计算所得的T2-T3这段时间内每秒处理的交易数,tps0为前一次更新得到的每秒处理的交易数,tps1即为T2-T3这段时间内更新后的每秒处理的交易数。由于不同交易的差异性和随机性比较大,对tps进行更新的目的在于尽可能求得一个均值,使结果更为平滑。
[0065] 此外,交易节点的算力值可以是交易节点中的AI协同组件通过运行算力统筹组件来获得,算力值主要体现为CPU频率、RAM(Random Access Memory,随机存取存储器)等的协同处理能力。每一笔交易都具有一个唯一的交易标签(如交易ID号),不同交易的交易标签不同。交易节点的标识可以理解为是设备的唯一ID,不同交易节点的标识不同。
[0066] 本发明实施例中,当交易节点进行一次交易时,会将本次交易的交易标签、交易数据、交易所花时间、去中心化比率、交易安全等级、交易节点的算力值、每秒处理的交易数以及交易节点的标识等参数传送到超级节点,供超级节点上的AI引擎学习使用,这里的AI引擎可以看作是超级节点上的人工智能训练平台。超级节点在一定时间内接收到足够多的交易节点传输的交易参数后,可以使用SOM(Self Organizing Maps,自组织映射神经网络)算法来训练数量。由于不同交易节点上传的交易参数差异性很大,且维度比较复杂,多维数据也无法很好的画出示意图,因此,有必要对各交易参数进行维度化处理,使得处理后的各交易参数处于同一单位(或维度)下,比如处理后的各交易参数均简化为二维。
[0067] 120、超级节点根据已知共识,对处理后的各交易参数进行分类,以使具有相同共识的交易参数聚集在一起,得到多个数据区块。
[0068] 本发明实施例中,超级节点可以根据已有的共识,将处理后的各交易参数进行分类处理,以使具有相同或相似特性的交易参数聚集在一起,从而形成几个不同的数据区块。如图2a所示,经过维度化处理的交易参数被简化为二维数据,可以在二维坐标系中体现,其中,横坐标X表示为去中心化程度(De-centrality),纵坐标Y表示为效率(Efficiency)。这里分类后的交易参数分成了三个数据区块,其中,一个点可以用于代表一个交易参数,一个数据区块可以用于代表一种共识。
[0069] 130、超级节点采用画圆方式将每一数据区块中预设比例的数据用圆圈起来,并确定每一圆圈的圆心和半径。
[0070] 本发明实施例中,超级节点针对每一个数据区块采用画圆的方式将该数据区块内预设比例的数据用圆包围起来,如图2b所示。其中,预设比例为用圆圈起来的数据占该数据区块中总数据的比值,如预设比例为95%,即将该数据区块中95%的数据包围起来,以尽可能地包含多的数据。在每一数据区块均用画圆的方式圈起来后,进而可以确定每一个圆的圆心和半径大小。这里可以将一个圆看作是一个共识圈,不同的圆对应不同的共识圈。
[0071] 140、当有新的交易参数增加使得至少一个圆圈的半径在缩小时,超级节点更新上述至少一个圆圈所对应的数据区块的共识参数。
[0072] 本发明实施例中,超级节点在训练数据的同时还会不断接收新的交易节点传输过来的交易参数加入训练行列。随着交易参数的增多,在预设比例的数据被包围的情况下,某一个或某几个圆的半径在缩小(即圆的面积在减小)时,意味着半径在缩小的圆包含的数据更加聚集,即共识圈在收敛,如图2c所示。这样去中心化程度或者效率参数可以进一步调整。当获得多数参与交易节点同意后,超级节点可以更新共识参数。
[0073] 由上可见,当用户提交交易时,交易节点会将本次交易有关的交易参数传输给区块链上的超级节点,超级节点可以同时接收多个交易节点上传的交易参数,并对各交易参数进行维度化处理,得到处理后的各交易参数,超级节点根据已知共识对处理后的各交易参数进行分类处理,以使相同或相似特性的交易参数聚集成一个区块,从而形成不同的数据区块;进一步地,针对每一个数据区块采用画圆的方式将数据区块中尽可能多的数据用圆包围起来,并确定每一圆圈的圆心和半径;如果随着交易参数的增多,某一个或某几个圆圈的半径在缩小时,则超级节点可以更新该圆圈所对应的数据区块的共识参数。本发明实施例中的技术方案,超级节点以当前共识数量来训练交易数据,随着训练数据的增加并产生聚集的情况下,能够动态调整共识参数。
[0074] 请参阅图3,图3是本发明实施例提供的一种区块链共识动态调整的方法的流程示意图。如图3所示,该区块链共识动态调整的方法可以包括以下步骤:
[0075] 310、超级节点接收多个交易节点上传的交易参数,并对各交易参数进行维度化处理,以获得处理后的各交易参数。
[0076] 320、超级节点根据已知共识,对处理后的各交易参数进行分类,以使具有相同共识的交易参数聚集在一起,得到多个数据区块。
[0077] 330、超级节点采用画圆方式将每一数据区块中预设比例的数据用圆圈起来,并确定每一圆圈的圆心和半径。
[0078] 本发明实施例中,步骤310~步骤330的具体实施过程可以参考前述实施例中的步骤110~步骤130的具体实施方式中的部分或全部过程,这里不再赘述。
[0079] 340、当有新的交易参数增加使得至少一个圆圈的半径在持续扩大时,超级节点新增一个圆将该新的交易参数中预设比例的数据圈起来。
[0080] 350、当新增一个圆后所有圆圈的半径缩小时,超级节点生成一个新的共识。
[0081] 本发明实施例中,超级节点在训练数据的同时还会不断接收新的交易节点传输过来的交易参数加入训练行列。随着交易参数的进一步多样化或复杂化,当原有的共识圈半径不断扩大(即面积在变大)时,可以认为数据在进一步离散化,如图4a所示。将图4a与图2b相比,增加了一些新的数据,且有共识圈的半径相比原先大了很多,数据也更加离散了。此时,可以尝试新增一个共识圆,将新增的数据尽可能圈起来,如图4b所示。增加一个共识圈后会发现原先面积变大的圆都相应变小(即半径缩小)了,或者可以说所有共识圆的总面积相比原先反而变小了,这样新的共识由此而产生。如果需要新构造一条链,在大多数参与的交易节点同意的情况下,新共识新链产生。
[0082] 进一步地,如果随着交易参数的继续增多,在预设比例的数据被包围的情况下,某一个或某几个圆的半径在缩小时,意味着半径在缩小的圆包含的数据更加聚集,即共识圈在收敛,如图4c所示。这样去中心化程度或者效率参数可以进一步调整,当获得多数参与交易节点同意后,超级节点可以更新共识参数。
[0083] 本发明实施例将交易数据模型化以及共识机制动态化,使用了AI引擎加入训练的方式,在新类型或新节点不断提交交易数据产生聚集的情况下,可以产生新共识,对目前的共识以及链网共识优化机制是一种极大的灵活处理,并且SOM具有共识衍化功能,动态生成共识也是区块链核心功能共识的最大创新。
[0084] 本发明实施例提供一种计算机可读存储介质,其存储计算机程序,其中,该计算机程序使得计算机能够执行图1或图3所描述的区块链共识动态调整的方法。
[0085] 需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本申请,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
[0086] 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。
[0087] 本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
[0088] 本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(ProgrammableRead-only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、一次可编程只读存储器(One-time Programmable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
[0089] 以上对本发明实施例公开的一种区块链共识动态调整的方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。