掌桥专利:专业的专利平台
掌桥专利
首页

平行链仲裁共识方法、计算机设备和存储介质

文献发布时间:2023-06-19 11:22:42


平行链仲裁共识方法、计算机设备和存储介质

技术领域

本申请涉及区块链技术领域,具体涉及一种平行链仲裁共识方法、计算机设备和存储介质。

背景技术

在现有技术中,每个参与共识的共识节点均需要生成并向主链发送共识交易,当平行链节点数较多时,将产生大量的共识交易,将造成手续费开销增多的问题。

针对上述问题,在申请人所提出的平行链机制(具体可参考申请人所申请的专利文本,申请号为202010631494.9)中,通过生成聚合共识交易的方式,降低主链区块消耗的存储空间,并减少发送共识交易的手续费。

但上述机制将导致平行链节点花费大量时间在互相通信以生成聚合共识交易上,反而降低了平行链共识的速度。

发明内容

鉴于现有技术中的上述缺陷或不足,期望提供一种既减少手续费,又保证平行链的共识速度的平行链仲裁共识方法、计算机设备和存储介质。

第一方面,本发明提供一种适用于共识节点的平行链仲裁共识方法,上述方法包括:

响应于获得第一高度的第一平行链区块的第一共识交易发送权,生成第一随机数;

生成包括第一随机数的第一哈希值的第一平行链区块的第一共识交易;

将第一共识交易发送至主链,以供当前平行链的各共识节点:

执行第一共识交易以获得第一执行结果,并判断与本地所生成的第一高度的第二执行结果是否相同:

是,则记录第一哈希值;

否,则生成第一高度的第一仲裁交易并发送至主链以供存证;

执行第一高度的各仲裁交易,在各仲裁交易通过共识时,将当前节点确定为非法节点;

判断本地是否已保存有第一高度的执行结果:

是,则回滚第一高度的执行结果,并根据第一高度减一的第三平行链区块对应的第一主链区块的第一区块数据、发送正确的第三平行链区块的第三共识交易的共识节点所广播的第二随机数、当前平行链的除去非法节点的各共识节点的节点ID重新确定将要发送第一共识交易的第二共识节点;

否,则根据第一区块数据、第二随机数、当前平行链的除去非法节点的各共识节点的节点ID重新确定第二共识节点;

在第一共识交易未被仲裁成功时,根据第一平行链区块对应的第二主链区块的第二区块数据、第一随机数、当前平行链的除去非法节点的各共识节点的节点ID确定将要发送第一高度加一的第二平行链区块的第二共识交易的第一共识节点;以及,

向各共识节点广播第一随机数,以供各共识节点根据第二区块数据、第一随机数、各节点ID确定第一共识节点。

第二方面,本发明还提供一种设备,包括一个或多个处理器和存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本发明各实施例提供的平行链仲裁共识方法。

第四方面,本发明还提供一种存储有计算机程序的存储介质,该计算机程序使计算机执行根据本发明各实施例提供的平行链仲裁共识方法。

本发明诸多实施例提供的平行链仲裁共识方法、计算机设备和存储介质通过响应于获得第一高度的第一平行链区块的第一共识交易发送权,生成第一随机数;生成包括第一随机数的第一哈希值的第一平行链区块的第一共识交易;将第一共识交易发送至主链;在第一共识交易未被仲裁成功时,根据第一平行链区块对应的第二主链区块的第二区块数据、第一随机数、当前平行链的除去非法节点的各共识节点的节点ID确定将要发送第一高度加一的第二平行链区块的第二共识交易的第一共识节点;以及,向各共识节点广播第一随机数,以供各共识节点根据第二区块数据、第一随机数、各节点ID确定第一共识节点的方法,既减少手续费,又保证平行链的共识速度。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1为本发明一实施例提供的一种平行链仲裁共识方法的流程图。

图2为本发明一实施例提供的一种计算机设备的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

图1为本发明一实施例提供的一种平行链仲裁共识方法的流程图。如图1所示,在本实施例中,本发明提供一种适用于共识节点的平行链仲裁共识方法,上述方法包括:

S11:响应于获得第一高度的第一平行链区块的第一共识交易发送权,生成第一随机数;

S13:生成包括第一随机数的第一哈希值的第一平行链区块的第一共识交易;

S15:将第一共识交易发送至主链,以供当前平行链的各共识节点:

执行第一共识交易以获得第一执行结果,并判断与本地所生成的第一高度的第二执行结果是否相同:

是,则记录第一哈希值;

否,则生成第一高度的第一仲裁交易并发送至主链以供存证;

执行第一高度的各仲裁交易,在各仲裁交易通过共识时,将当前节点确定为非法节点;

判断本地是否已将保存有第一高度的执行结果:

是,则回滚第一高度的执行结果,并根据第一高度减一的第三平行链区块对应的第一主链区块的第一区块数据、发送正确的第三平行链区块的第三共识交易的共识节点所广播的第二随机数、当前平行链的除去非法节点的各共识节点的节点ID重新确定将要发送第一共识交易的第二共识节点;

否,则根据第一区块数据、第二随机数、当前平行链的除去非法节点的各共识节点的节点ID重新确定第二共识节点;

S17:在第一共识交易未被仲裁成功时,根据第一平行链区块对应的第二主链区块的第二区块数据、第一随机数、当前平行链的除去非法节点的各共识节点的节点ID确定将要发送第一高度加一的第二平行链区块的第二共识交易的第一共识节点;以及,

S19:向各共识节点广播第一随机数,以供各共识节点根据第二区块数据、第一随机数、各节点ID确定第一共识节点。

具体地,以“根据第一高度减一的第三平行链区块对应的第一主链区块的第一区块数据、发送正确的第三平行链区块的第三共识交易的共识节点所广播的第二随机数、当前平行链的除去非法节点的各共识节点的节点ID重新确定将要发送第一共识交易的第二共识节点”,以及,“根据第一区块数据、第二随机数、当前平行链的除去非法节点的各共识节点的节点ID重新确定第二共识节点”包括:“根据第一区块数据、第二随机数生成第一数据;分别根据第一数据和当前平行链的除去非法节点的各共识节点的节点ID计算第一异或值;将第一异或值最小的共识节点重新确定为第二共识节点”,“根据第一平行链区块对应的第二主链区块的第二区块数据、第一随机数、当前平行链的除去非法节点的各共识节点的节点ID确定将要发送第一高度加一的第二平行链区块的第二共识交易的第一共识节点”,以及,“根据点根据第二区块数据、第一随机数、各节点ID确定第一共识节”包括:“根据第二区块数据、第一随机数生成第二数据;分别根据第二数据和当前平行链的除去非法节点的各共识节点的节点ID计算第二异或值;将第二异或值最小的共识节点确定为第一共识节点”,第一区块数据为区块哈希为例;假设区块链系统中有主链和平行链parachain1,parachain上有n1~n7,其中n1~n7均为共识节点;n1~n7中此时没有非法节点;

n1响应于获得第一高度的第一平行链区块block(10_p1)的共识交易发送权,执行步骤S11,生成随机数R_n1;

n1执行步骤S13,生成包括hash(R_n1)的block(10_p1)_n1的共识交易tx1;

n1执行步骤S15,将tx1发送至主链;

主链节点生成打包有tx1的主链区块假设为block(100_main);

n1~n7从主链获取并执行tx1以获得执行结果result_n1;

n2执行本地生成的block(10_p1)_n2以获得result_n2;

n3执行本地生成的block(10_p1)_n3以获得result_n3;

n4执行本地生成的block(10_p1)_n4以获得result_n4;

n5执行本地生成的block(10_p1)_n5以获得result_n5;

n6执行本地生成的block(10_p1)_n6以获得result_n6;

n7执行本地生成的block(10_p1)_n7以获得result_n7;

由于此时n1~n7中此时没有非法节点,result_n2~result_n7与result_n1相同,则n2~n7记录hash(R_n1);

在tx1未被仲裁成功时,n1执行步骤S17,根据block(100_main)的区块哈希blockhash(100_main)、R_n1生成Hs,Hs=(blockhash(100_main)、R_n1);根据Hs、n1~n7的节点ID分别计算异或值,将异或值最小的共识节点(假设为n2)确定将要发送block(11_p1)的共识交易的共识节点;

n1执行步骤S19,向n2~n7广播R_n1;

n2~n7根据blockhash(100_main)、R_n1生成Hs,根据Hs、n1~n7的节点ID分别计算异或值,将异或值最小的共识节点(假设为n2)确定将要发送block(11_p1)的共识交易的共识节点。

假设此时n2为非法节点;

n2响应于获得block(11_p1)的共识交易发送权,执行步骤S11,生成随机数R_n2;

n2执行步骤S13,生成包括hash(R_n2)的block(11_p1)_n2的共识交易tx2;

n2执行步骤S15,将tx2发送至主链;

主链节点生成打包有tx2的主链区块假设为block(110_main);

n1~n7通过从主链获取并执行tx2以获得执行结果result_n2';

n1执行本地生成的block(11_p1)_n1以获得result_n1';

n3执行本地生成的block(11_p1)_n3以获得result_n3';

n4执行本地生成的block(11_p1)_n4以获得result_n4';

n5执行本地生成的block(11_p1)_n5以获得result_n5';

n6执行本地生成的block(11_p1)_n6以获得result_n6';

n7执行本地生成的block(11_p1)_n7以获得result_n7';

由于此时n2为非法节点,则result_n1'、result_n3'~result_n7'均与result_n2'不同,n1、n3~n7分别生成block(11_p1)的仲裁交易并发送至主链;

主链存证n1、n3~n7分别生成block(11_p1)的仲裁交易;

n1~n7从主链获取并执行由n1、n3~n7分别生成的block(11_p1)的仲裁交易,在通过共识时,则将n2确定为非法节点;

n1、n3~n7的本地由于未保存有block(11_p1)的执行结果,则根据blockhash(100_main)、R_n1生成Hs,根据Hs、n1、n3~n7的节点ID分别计算异或值,将异或值最小的共识节点(假设为n3)确定将要发送block(11_p1)的共识交易的共识节点。

在更多实施例中,第一区块数据还可以根据实际需求配置为其它参数,例如配置为状态哈希,可实现相同的技术效果。

在更多实施例中,“根据第一高度减一的第三平行链区块对应的第一主链区块的第一区块数据、发送正确的第三平行链区块的第三共识交易的共识节点所广播的第二随机数、当前平行链的除去非法节点的各共识节点的节点ID重新确定将要发送第一共识交易的第二共识节点”,以及,“根据第一区块数据、第二随机数、当前平行链的除去非法节点的各共识节点的节点ID重新确定第二共识节点”还可以根据实际需求进行配置,例如配置为,根据第一区块数据、第二随机数生成第一数据;分别根据第一数据和当前平行链的除去非法节点的各共识节点的节点ID计算第一异或值;将第一异或值最大的共识节点重新确定为第二共识节点。相应的,“根据第一平行链区块对应的第二主链区块的第二区块数据、第一随机数、当前平行链的除去非法节点的各共识节点的节点ID确定将要发送第一高度加一的第二平行链区块的第二共识交易的第一共识节点”,以及,“根据点根据第二区块数据、第一随机数、各节点ID确定第一共识节”应当配置为,根据第二区块数据、第一随机数生成第二数据;分别根据第二数据和当前平行链的除去非法节点的各共识节点的节点ID计算第二异或值;将第二异或值最大的共识节点确定为第一共识节点,可实现相同的技术效果。

本领域技术人员应当理解,连续两个区块的共识交易发送权不应由同一共识节点获得,以防止共识节点为获取收益而生成随机数。

本领域技术人员应当理解,假设n4的result_n4'与result_n2'一致,则n4不会生成仲裁交易,而是将result_n4'或result_n2'作为block(11_p1)的正确的执行结果进行保存;且n4执行由n1、n3~n7分别生成的block(11_p1)的仲裁交易,且共识交易通过共识时,n4应该先回滚所保存的block(11_p1)的执行结果,再确定将要发送block(11_p1)的共识交易的共识节点。

本领域技术人员应当理解,上述block(10_p1)表示parachain1的高度为10的平行链区块,由于平行链节点各自生成平行链区块,则block(10_p1)_n1表示n1本地生成的parachain1的高度为10的平行链区块,block(10_p1)_n2表示n2本地生成的parachain1的高度为10的平行链区块,依次类推。

本领域技术人员应当理解,如果越来越多的共识节点被列为非法节点,最终将导致平行链无法正常运行,应当配置相应的从非法节点恢复为正常节点的机制,例如,n1在缴纳一定的恢复费后,n2~n7可以将n1确定为正常共识节点。

本领域技术人员应当理解,平行链上除去共识节点还可以配置有非共识节点,例如为n8~n10,非共识节点与共识节点一样,也会生成平行链区块,但不会生成平行链区块的共识交易;同样,非共识节点也不会生成仲裁交易。

本领域技术人员应当理解,在本实施例中,共识交易和仲裁交易是存证在主链上的;在更多实施例中,共识交易和仲裁交易可以根据实际需求配置为主链节点也需要执行的交易类型,则共识交易和仲裁交易同时会被主链节点执行。

由于平行链共识节点大多为可信任节点,且不容易出错,需要执行上述方法的可能性很小;因此总体来看,上述实施例使得一个平行链区块所要发送的共识交易的数量减少,手续费降低,且同时保证了平行链的共识速度。

优选地,根据第二区块数据、第一随机数、各节点ID确定第一共识节点包括:

对第一随机数进行哈希运算以获得第二哈希值;

在第二哈希值与第一哈希值相同时,根据第二区块数据、第一随机数、各节点ID确定第一共识节点。

优选地,根据第一高度减一的第三平行链区块对应的第一主链区块的第一区块数据、发送正确的第三平行链区块的第三共识交易的共识节点所广播的第二随机数、当前平行链的除去非法节点的各共识节点的节点ID重新确定将要发送第一共识交易的第二共识节点,以及,根据第一区块数据、第二随机数、当前平行链的除去非法节点的各共识节点的节点ID重新确定第二共识节点包括:

根据第一区块数据、第二随机数生成第一数据;

分别根据第一数据和当前平行链的除去非法节点的各共识节点的节点ID计算第一异或值;

将第一异或值最小的共识节点重新确定为第二共识节点;

根据第一平行链区块对应的第二主链区块的第二区块数据、第一随机数、当前平行链的除去非法节点的各共识节点的节点ID确定将要发送第一高度加一的第二平行链区块的第二共识交易的第一共识节点,以及,根据点根据第二区块数据、第一随机数、各节点ID确定第一共识节包括:

根据第二区块数据、第一随机数生成第二数据;

分别根据第二数据和当前平行链的除去非法节点的各共识节点的节点ID计算第二异或值;

将第二异或值最小的共识节点确定为第一共识节点。

上述实施例的平行链仲裁共识原理可参考图1所示的方法,此处不再赘述。

优选地,主链上记录有各平行链节点的节点ID,根据第一高度减一的第三平行链区块对应的第一主链区块的第一区块数据、发送正确的第三平行链区块的第三共识交易的共识节点所广播的第二随机数、当前平行链的除去非法节点的各共识节点的节点ID重新确定将要发送第一共识交易的第二共识节点,以及,根据第一区块数据、第二随机数、当前平行链的除去非法节点的各共识节点的节点ID重新确定第二共识节点包括:

从主链获取当前平行链的各共识节点的节点ID;

根据第一区块数据、第二随机数、当前平行链的除去非法节点的各共识节点的节点ID重新确定第二共识节点。

根据第一平行链区块对应的第二主链区块的第二区块数据、第一随机数、当前平行链的除去非法节点的各共识节点的节点ID确定将要发送第一高度加一的第二平行链区块的第二共识交易的第一共识节点,以及,根据点根据第二区块数据、第一随机数、各节点ID确定第一共识节包括:

从主链获取当前平行链的各共识节点的节点ID;

根据点根据第二区块数据、第一随机数、各节点ID确定第一共识节。

在更多实施例中,共识节点还可以通过其它方式获取当前平行链的各共识节点的节点ID;例如通过第一云平台获取当前平行链的各共识节点的节点ID,可实现相同的技术效果。

生成包括第一随机数的第一哈希值的第一平行链区块的第一共识交易前,还包括:

接收第一数量个第三共识节点分别生成并向主链广播的第三随机数;其中,第一数量个第三共识节点根据预配置的随机节点确定规则、第一高度所确定;

生成包括第一随机数的第一哈希值的第一平行链区块的第一共识交易包括:

生成包括第一哈希值、各第三随机数的第三哈希值的第一平行链区块的第一共识交易;

根据第一高度减一的第三平行链区块对应的第一主链区块的第一区块数据、发送正确的第三平行链区块的第三共识交易的共识节点所广播的第二随机数、当前平行链的除去非法节点的各共识节点的节点ID重新确定将要发送第一共识交易的第二共识节点,以及,根据第一区块数据、第二随机数、当前平行链的除去非法节点的各共识节点的节点ID重新确定第二共识节点包括:

根据第一区块数据、第二数量个第四随机数、当前平行链的除去非法节点的各共识节点的节点ID重新确定第二共识节点;其中,第二数量个第四随机数由第二数量个第四共识节点分别生成,第二数量个第四共识节点根据随机节点确定规则、第一高度减一所确定,第二随机数包括于第一数量个第四随机数,第二数量等于第一数量加一;

根据第一平行链区块对应的第二主链区块的第二区块数据、第一随机数、当前平行链的除去非法节点的各共识节点的节点ID确定将要发送第一高度加一的第二平行链区块的第二共识交易的第一共识节点、以及,根据第二区块数据、第一随机数、各节点ID确定第一共识节点包括:

根据第二区块数据、第一随机数、各第三随机数、当前平行链的除去非法节点的各共识节点的节点ID确定将要发送第一高度加一的第二平行链区块的第二共识交易的第一共识节点。

上述实施例与图1所示的实施例的不同之处在于,在图1所示的实施例中,发送下一个区块高度的共识交易的共识节点是根据发送当前区块高度的共识交易的共识节点所生成的一个随机数所生成。而在本实施例中,发送下一个区块高度的共识交易的共识节点是根据包括发送当前区块高度的共识交易的共识节点、以及若干个共识节点生成的随机数所确定。相较于图1的实施例所示的方法,本实施例的方法的随机性更强,发送下一个区块高度的共识交易的共识节点的确定更为随机。

进一步优选地,根根据第一区块数据、第二数量个第四随机数、当前平行链的除去非法节点的各共识节点的节点ID重新确定第二共识节点包括:

根据第一区块数据、第二数量个第四随机数生成第三数据;

分别根据第三数据和当前平行链的除去非法节点的各共识节点的节点ID计算第三异或值;

将第三异或值最小的共识节点重新确定为第二共识节点;

根据第三异或值由小到大的顺序选取第二数量个共识节点为用于生成和广播第四随机数的共识节点;

根据第二区块数据、第一随机数、各第三随机数、当前平行链的除去非法节点的各共识节点的节点ID确定将要发送第一高度加一的第二平行链区块的第二共识交易的第一共识节点包括:

根据第二区块数据、第一随机数、各第三随机数生成第四数据;

分别根据第四数据和当前平行链的除去非法节点的各共识节点的节点ID计算第四异或值;

将第四异或值最小的共识节点重新确定为第一共识节点;

从第四异或值次小开始,根据第四异或值由小到大的顺序选取第一数量个共识节点为用于生成和广播第三随机数的共识节点。

进一步优选地,主链上记录有各平行链节点的节点ID,根据第一区块数据、第二数量个第四随机数、当前平行链的除去非法节点的各共识节点的节点ID重新确定第二共识节点包括:

从主链获取当前平行链的各共识节点的节点ID;

根据第一区块数据、第二数量个第四随机数、当前平行链的除去非法节点的各共识节点的节点ID重新确定第二共识节点;

根据第二区块数据、第一随机数、各第三随机数、当前平行链的除去非法节点的各共识节点的节点ID确定将要发送第一高度加一的第二平行链区块的第二共识交易的第一共识节点包括:

从主链获取当前平行链的各共识节点的节点ID;

根据第二区块数据、第一随机数、各第三随机数、当前平行链的除去非法节点的各共识节点的节点ID确定将要发送第一高度加一的第二平行链区块的第二共识交易的第一共识节点。

图2为本发明一实施例提供的一种计算机设备的结构示意图。

如图2所示,作为另一方面,本申请还提供了一种计算机设备,包括一个或多个中央处理单元(CPU)201,其可以根据存储在只读存储器(ROM)202中的程序或者从存储部分208加载到随机访问存储器(RAM)203中的程序而执行各种适当的动作和处理。在RAM203中,还存储有计算机设备操作所需的各种程序和数据。CPU201、ROM202以及RAM203通过总线204彼此相连。输入/输出(I/O)接口205也连接至总线204。

以下部件连接至I/O接口205:包括键盘、鼠标等的输入部分206;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分207;包括硬盘等的存储部分208;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分209。通信部分209经由诸如因特网的网络执行通信处理。驱动器210也根据需要连接至I/O接口205。可拆卸介质211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器210上,以便于从其上读出的计算机程序根据需要被安装入存储部分208。

特别地,根据本公开的实施例,上述任一实施例描述的方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行上述任一方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分209从网络上被下载和安装,和/或从可拆卸介质211被安装。

作为又一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例的装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入计算机设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,该程序被一个或者一个以上的处理器用来执行描述于本申请提供的方法。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以通过执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以通过专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,各所述单元可以是设置在计算机或移动智能设备中的软件程序,也可以是单独配置的硬件装置。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离本申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

相关技术
  • 平行链仲裁共识方法、计算机设备和存储介质
  • 平行链共识方法、平行链区块回滚方法、设备和存储介质
技术分类

06120112901226