发明内容
本申请的目的在于提供一种区块链跨链方法、***及一种电子设备,提高了跨链交易的安全性。
为实现上述目的,本申请提供了一种区块链跨链方法,应用于跨链交易的发送方中的投票节点,包括:
当检测到所述跨链交易后,确定所述跨链交易的接收方;
确定所述发送方中的转发节点;
利用所述发送方中的转发节点将所述跨链交易转发至所述接收方中的转发节点。
可选的,在所述利用所述发送方中的转发节点将所述跨链交易转发至所述接收方中的转发节点之后,还包括:
获取反馈信息,并基于所述反馈信息执行对应的操作;其中,所述反馈信息为表征所述接收方中转发节点状态的信息和/或所述跨链交易状态的信息。
可选的,所述获取反馈信息,包括:
接收所述接收方中的转发节点主动发送的所述反馈信息
或,利用所述发送方中的转发节点检测所述接收方中转发节点的状态和/或所述跨链交易的状态,得到所述反馈信息。
可选的,所述获取反馈信息,并基于所述反馈信息执行对应的操作,包括:
若所述反馈信息为所述接收方中转发节点对应的缓存池容量已满,则降低所述跨链交易的发送频率;和/或,
若所述反馈信息为所述跨链交易接收成功,则将所述跨链交易的交易记录保存至本地磁盘的数据库中;和/或,
若所述反馈信息为所述跨链交易未成功接收,则对未成功接收的跨链交易进行重新发送操作。
可选的,所述利用所述发送方中的转发节点将所述跨链交易转发至所述接收方中的转发节点之后,还包括:
将所述跨链交易保存至内存数据库中;
相应的,若所述反馈信息为所述跨链交易接收成功,还包括:
将所述跨链交易从所述内存数据库中删除。
可选的,所述利用所述发送方中的转发节点将所述跨链交易转发至所述接收方中的转发节点,包括:
确定所述跨链交易对应的标识序列号;所述标识序列号为连续递增的序列号;
利用所述发送方中的转发节点将携带所述序列号标识的跨链交易转发至所述接收方中的转发节点;
相应的,所述若所述反馈信息为所述跨链交易未成功接收,则对未成功接收的跨链交易进行重新发送操作,包括:
若接收到预设数量的反馈信息中包含的所述标识序列号相同,则确定当前标识序列号的下一序列号对应的跨链交易未成功接收;
利用所述发送方中的转发节点将未成功接收的跨链交易重新发送至所述接收方中的转发节点。
可选的,在所述确定所述跨链交易的接收方之后,还包括:
通过共识投票判断所述跨链交易是否合法;
若所述跨链交易合法,则启动所述确定所述发送方中的转发节点的步骤。
可选的,所述利用所述发送方中的转发节点将所述跨链交易转发至所述接收方中的转发节点,包括:
利用所述发送方中的转发节点判断是否与所述接收方的转发节点建立连接;
如果是,则直接利用预先建立的连接将所述跨链交易转发至所述接收方的转发节点;
如果否,则基于预设连接规则与所述接收方的转发节点建立连接,并在连接建立成功后将所述跨链交易转发至所述接收方的转发节点。
可选的,所述当检测到所述跨链交易后,还包括:
将所述跨链交易保存至本地磁盘的数据库中。
可选的,所述确定所述发送方中的转发节点,包括:
从所述投票节点中选取所述发送方中的转发节点。
可选的,所述确定所述发送方中的转发节点,包括:
从所述发送方中除所述投票节点之外的节点中选取所述发送方中的转发节点。
为实现上述目的,本申请提供了一种区块链跨链方法,应用于跨链交易的接收方中的转发节点,包括:
接收所述跨链交易的发送方中的转发节点发送的跨链交易。
可选的,所述接收所述跨链交易的发送方中的转发节点发送的跨链交易之后,还包括:
判断所述跨链交易是否重复;
如果否,则利用所述接收方的转发节点确定所述跨链交易的合法性;
若所述跨链交易合法,则将所述跨链交易保存至当前所述接收方的转发节点对应的交易缓存池中,并将所述跨链交易广播至所述接收方的投票节点。
为实现上述目的,本申请提供了区块链***,包括至少两个投票节点和至少一个转发节点,其中所述投票节点用于当检测到所述跨链交易后,确定所述跨链交易的接收方;所述转发节点用于将所述跨链交易转发至所述接收方中的转发节点。
为实现上述目的,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现前述公开的任一种应用于跨链交易发送方中的投票节点的区块链跨链方法的步骤。
为实现上述目的,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现前述公开的任一种应用于跨链交易接收方中的转发节点的区块链跨链方法的步骤。
通过以上方案可知,本申请提供的一种区块链跨链方法,应用于跨链交易的发送方中的投票节点,所述方法包括:当检测到所述跨链交易后,确定所述跨链交易的接收方;确定所述发送方中的转发节点;利用所述发送方中的转发节点将所述跨链交易转发至所述接收方中的转发节点。由上可知,本申请在本链的投票节点接收到跨链交易后,将从自身确定用于转发交易的转发节点,直接利用发送方的转发节点将跨链交易转发至接收方中的转发节点,避免了将跨链交易暴露给中心服务器导致的信息泄露,提高了跨链交易的安全性。
本申请还公开了一种区块链跨链***及电子设备,同样能实现上述技术效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在现有技术中,当区块链接收到一笔from地址属于本链,但是to地址不属于本链的交易时,会将此交易转换成跨链交易,通过链之间的中心服务器转发给对应的链上节点。这种交易方式下,需要利用中心服务器进行交易的转发,从而使跨链交易暴露于中心服务器,导致跨链交易安全性较低。
因此,本申请实施例公开了一种区块链跨链方法,提高了跨链交易的安全性。
图1为本申请实施例公开的一种区块链跨链方法的流程图,该方法应用于跨链交易的发送方中的投票节点,如图1所示,方法包括:
S11:当检测到所述跨链交易后,确定所述跨链交易的接收方;
本步骤中,当发送方中的投票节点检测到跨链交易之后,将基于跨链交易确定对应的交易接收方。其中,投票节点可以为区块链中用于对区块进行投票的节点。上述跨链交易具体为发送方和接收方位于不同区块链的交易。在检测到跨链交易之后,本实施例可以将跨链交易保存至本地磁盘的数据库中进行记录。
作为一种优选方式,本实施例在当所述发送方中的投票节点检测到所述跨链交易之后,还可以利用发送方中的投票节点通过共识投票来判断跨链交易是否合法,以根据判断结果确定是否继续执行该跨链交易。其中,判断跨链交易是否合法可以具体通过判断发送方的账户余额是否满足当前跨链交易,或通过验证跨链交易的签名是否合法来确定。具体地,发送方中的投票节点可基于DPOS(Delegated Proof of Stake,权益证明)共识机制来进行共识投票。
S12:确定所述发送方中的转发节点;
本步骤中,从发送方所属的区块链中确定出转发节点,其中,转发节点为用于转发和接收跨链交易的节点,同时能够将接收到的跨链交易广播至同链的投票节点。优选的,本实施例中发送方的转发节点可以为多个,能够同时接收转发跨链交易,以实现容灾的目的,避免利用单个转发节点进行跨链交易的接收或转发时由于转发节点故障导致交易失败的问题。
S13:利用所述发送方中的转发节点将所述跨链交易转发至所述接收方中的转发节点。
在确定发送方中的转发节点之后,利用该转发节点将跨链交易转发至跨链交易的接收方中的转发节点。
具体地,在跨链交易转发时,可以利用发送方中的转发节点判断是否与接收方的转发节点建立连接;如果发送方中的转发节点已经与接收方的转发节点建立了连接,则直接利用预先建立的连接将跨链交易转发至接收方的转发节点;如果发送方中的转发节点未与接收方的转发节点建立连接,则基于预设连接规则与接收方的转发节点建立连接,并在连接建立成功后将跨链交易转发至所述接收方的转发节点。其中,预设连接规则可以为优先连接同机房同区域的节点。发送方转发节点与接收方转发节点之间建立的连接可以为HTTP连接、TCP连接或P2P连接,本实施例对此不做具体限定。
在一种具体的实施方式中,本步骤利用发送方中的转发节点将跨链交易转发至接收方中的转发节点时,可以首先确定当前跨链交易对应的标识序列号,进而利用发送方中的转发节点将携带有序列号标识的跨链交易转发至接收方。上述标识序列号具体可以为连续递增的序列号,用于唯一的标识对应的跨链交易。
通过以上方案可知,本申请提供的一种区块链跨链方法,应用于跨链交易的发送方中的投票节点,所述方法包括:当检测到所述跨链交易后,确定所述跨链交易的接收方;确定所述发送方中的转发节点;利用所述发送方中的转发节点将所述跨链交易转发至所述接收方中的转发节点。由上可知,本申请在本链的投票节点接收到跨链交易后,将从自身确定用于转发交易的转发节点,直接利用发送方的转发节点将跨链交易转发至接收方中的转发节点,避免了将跨链交易暴露给中心服务器导致的信息泄露,提高了跨链交易的安全性。
本申请实施例公开了区块链跨链方法的一种具体实施方式,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图2所示,具体的:
S21:当检测到所述跨链交易后,确定所述跨链交易的接收方;
S22:确定所述发送方中的转发节点;
S23:利用所述发送方中的转发节点将所述跨链交易转发至所述接收方中的转发节点;
S24:获取反馈信息,并基于所述反馈信息执行对应的操作;其中,所述反馈信息为表征所述接收方中转发节点状态的信息和/或所述跨链交易状态的信息。
本实施例,在利用发送方中的转发节点将跨链交易转发至接收方中的转发节点之后,可以进一步获取表征接收方状态和/或跨链交易状态的反馈信息,并基于该反馈信息执行对应的操作。
具体地,上述获取反馈信息的过程可以为:获取接收方中的转发节点主动发送的反馈信息;或,利用发送方的转发节点检测接收方中转发节点的状态和/或跨链交易的状态,得到对应的反馈信息。也即,接收方中的转发节点在接收到跨链交易后,可以主动向发送方反馈信息,或发送方的转发节点可以对接收方中的转发节点和/或跨链交易进行定期或实时地检测,得到反馈信息。
需要说明的是,本实施例若获取得到的反馈信息为接收方中转发节点对应的缓存池容量已满,则发送方中的转发节点将降低跨链交易的发送频率;若获取得到的反馈信息为跨链交易接收成功,则将跨链交易的交易记录保存至本地磁盘的数据库中;若获取得到的反馈信息为跨链交易未能成功接收,则对未成功接收的跨链交易进行重新发送操作。
优选的,本实施例在利用发送方中的转发节点将跨链交易转发至接收方中的转发节点之后,还进一步将跨链交易保存至内存数据库中;进而在获取到反馈信息后,若该反馈信息为跨链交易已经成功接收,则将该跨链交易从内存数据库中删除;若该反馈信息为跨链交易未能成功接收,则可以直接从内存中获取跨链交易进行重新发送,无需从磁盘的数据库中查找,提升了重传效率。
需要说明的是,若在利用发送方中的转发节点将跨链交易转发至接收方中的转发节点时,为每个跨链交易确定了对应唯一的标识序列号,则在接收反馈信息时可以基于标识序列号判断跨链交易是否成功接收。具体地,若连续接收到三个及三个以上的反馈信息,其携带的标识序列号相同,则确定当前标识序列号的下一序列号对应的跨链交易未成功接收,进而利用发送方中的转发节点将未成功接收的跨链交易重新发送至接收方。例如,若发送方的转发节点向接收方发送了标识序列号分别为1、2、3和4的四个跨链交易之后,获取到接收方中的转发节点发送的表征标识序列号为1的跨链交易接收成功的反馈信息,以及获取到接收方中的转发节点发送的三次表征标识序列号为2的跨链交易接收成功的反馈信息,则表示标识序列号为3和4的跨链交易未能成功接收,需要重新对其进行发送。
本申请实施例公开了区块链跨链方法的另一种具体实施方式,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图3所示,具体的:
S31:当检测到所述跨链交易后,确定所述跨链交易的接收方;
S32:从所述投票节点中选取所述发送方中的转发节点;
本实施例中,确定发送方中的转发节点的过程可以具体为:从投票节点中选取发送方的转发节点。也即,投票节点和转发节点可以为同一区块链节点,能够同时实现对区块进行投票以及转发接收跨链交易的功能。
S33:利用所述发送方中的转发节点将所述跨链交易转发至所述接收方中的转发节点。
本申请实施例公开了区块链跨链方法的又一种具体实施方式,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图4所示,具体的:
S41:当检测到所述跨链交易后,确定所述跨链交易的接收方;
S42:从所述发送方中除所述投票节点之外的节点中选取所述发送方中的转发节点;
本实施例中,确定发送方中的转发节点的过程可以具体为:从发送方中除投票节点之外的节点中选取转发节点。也即,发送方中的转发节点和投票节点为彼此独立的节点,预先为每种节点设置了相应的角色,如图5所示,链a与链b利用转发节点进行连接,每条链中均包括多个专用于转发和接收跨链交易的转发节点,以及多个专用于进行投票的投票节点,从而发送方产生的跨链交易只会经由发送方中的转发节点进行发送,且只会将跨链交易转发至接收方的转发节点,能够更好地节约网络流量。
S43:利用所述发送方中的转发节点将所述跨链交易转发至所述接收方中的转发节点。
本申请实施例公开了另一种区块链跨链方法,该方法应用于跨链交易的接收方中的转发节点,提高了跨链交易的安全性。所述方法包括:
接收所述跨链交易的发送方中的转发节点发送的跨链交易。
可以理解的是,本实施例利用接收方中的转发节点接收跨链交易的发送方通过其中的转发节点发送的跨链交易。在接收到跨链交易后,本实施例可以利用接收方的转发节点判断跨链交易是否重复接收,具体可以基于跨链交易各自携带的标识序列号来确定交易是否重复。若交易未重复接收,则进一步利用接收方的转发节点确定跨链交易的合法性,若跨链交易合法,则将跨链交易保存至当前接收方的转发节点对应的交易缓存池中,并将跨链交易广播至接收方的投票节点。进一步地,投票节点在接收到跨链交易后,将跨链交易添加至对应的节点交易池中,并在检查交易合法性之后将跨链交易打包入块。
本申请实施例公开了一种区块链跨链***,具体地,该***可以包括至少两个投票节点和至少一个转发节点,其中,上述投票节点用于当检测到跨链交易后,确定该跨链交易的接收方;上述转发节点能够用于将该跨链交易转发至接收方中的转发节点。
本申请实施例中,上述投票节点可以为区块链中用于对区块进行投票的节点。在检测到跨链交易之后,可以将跨链交易保存至本地磁盘的数据库中进行记录。优选的,上述投票节点还可在检测到跨链交易之后,通过共识投票来判断跨链交易是否合法,以根据判断结果确定是否继续执行该跨链交易。上述转发节点为用于转发和接收跨链交易的节点,其数量可以为一个或多个,利用多个转发节点同时接收转发跨链交易,能够达到容灾的目的。在接收到跨链交易之后还可将该交易广播至同链的投票节点。
在一种可行的实施方式中,上述转发节点可以具体为从投票节点中确定的节点,也即,投票节点和转发节点可以为同一区块链节点,从而可以同时实现投票以及转发功能。
在另一种可行的实施方式中,上述转发节点可以具体为从投票节点之外的节点中选取确定的节点,也即,每种节点预先设置了角色,以根据设定的角色执行对应的功能。
本申请实施例还提供了一种电子设备1,参见图6所示,本申请实施例提供的一种电子设备包括:
存储器100,用于存储计算机程序;
处理器200,用于执行所述计算机程序时可以实现上述任一种实施例所提供的应用于跨链交易的发送方中的投票节点的区块链跨链方法的步骤。
具体的,存储器100包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机可读指令,该内存储器为非易失性存储介质中的操作***和计算机可读指令的运行提供环境。处理器200在一些实施例中可以是一中央处理器(CentralProcessing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,为电子设备提供计算和控制能力,执行所述存储器100中保存的计算机程序时,可以实现上述实施例公开的应用于跨链交易的发送方的区块链跨链方法的步骤。
本申请实施例还提供了一种电子设备2,参见图7所示,本申请实施例提供的一种电子设备包括:
存储器300,用于存储计算机程序;
处理器400,用于执行所述计算机程序时可以实现上述任一种实施例所提供的应用于跨链交易的接收方中的转发节点的区块链跨链方法的步骤。
具体的,存储器300包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机可读指令,该内存储器为非易失性存储介质中的操作***和计算机可读指令的运行提供环境。处理器400在一些实施例中可以是一中央处理器(CentralProcessing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,为电子设备提供计算和控制能力,执行所述存储器300中保存的计算机程序时,可以实现上述实施例公开的应用于跨链交易的接收方的区块链跨链方法的步骤。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的***而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。