一种基于区块链通道的交易路径的选择方法和装置与流程

文档序号:29734938发布日期:2022-04-21 15:36阅读:135来源:国知局
一种基于区块链通道的交易路径的选择方法和装置与流程

1.本公开涉及计算机技术领域,尤其涉及一种基于区块链通道的交易路径的选择方法、装置、服务器及存储介质。


背景技术:

2.随着区块链技术的发展,出现了无需许可的区块链技术,如比特币(bitcoin)、以太坊(ethereum)。无需许可的区块链技术允许任何参与者随时加入或离开区块链,以相互不信任的对等网络取代受信任的第三方。然而,比特币以及基于区块链的所有加密货币的安全性是以有限的可扩展性为代价。目前的区块链可扩展性有限,如比特币目前每秒只能处理几笔交易,平均需要10分钟来确认一笔新的交易。
3.相关技术中,通道技术是提高区块链可扩展性的一个主要方法,通过使用点对点通道,将交易从链上转移到链下进行处理。交易双方通过向区块链添加单笔交易来创建通道,且通道的创建需要交易各方存入一定金额作为抵押品(通道余额)。交易双方完成交易传输后,将最终的余额写入区块链中,并关闭通道。利用通道技术,交易双方可以进行大量的交易传输并最终在区块链上结算净收益,增加了交易吞吐量和降低了时延,从而有效提高了区块链的可扩展性。为了实现任意两个交易方(区块链节点)之间的交易,多个通道和节点通过链接构成通道网络,交易可以通过通道网络中的通道进行多路由跳转。
4.然而,相关通道技术中,在进行交易路径的选择时,主要从最短路径和最小手续费用的角度。由于每笔交易的用户需求之间存在差异,相关技术中交易传输的成功率低、服务满意度不高。


技术实现要素:

5.本公开提供一种基于区块链通道的交易路径的选择方法、装置、服务器及存储介质,以至少解决相关技术中交易传输的成功率低、服务满意度不高的问题。本公开的技术方案如下:
6.根据本公开实施例的第一方面,提供一种基于区块链通道的交易路径的选择方法,包括:
7.获取通往目标区块链节点的多条交易路径,其中,所述交易路径包括多个区块链节点,两区块链节点之间设置有通道;
8.获取所述多条交易路径中每条交易路径上的通道的数量、相邻两区块链节点之间的通道余额、通道状态;
9.根据所述通道的数量、所述通道余额、所述通道状态,确定通往目标区块链节点的交易路径。
10.在一种可能的实现方式中,所述根据所述通道的数量、所述通道余额、所述通道状态,确定通往目标区块链节点的交易路径,包括:
11.获取交易的交易值以及通道的通道余额与所述交易值之间的差值;
12.确定所述通道的余额可用度为所述差值与所述通道余额的比值;
13.根据所述通道的余额可用度、所述区块链节点的数量、所述通道状态,确定通往目标区块链节点的交易路径。
14.在一种可能的实现方式中,所述根据所述通道的余额可用度、所述区块链节点的数量、所述通道状态,确定通往目标区块链节点的交易路径,包括:
15.确定所述每条交易路径的余额可用度为所述每条交易路径上所有通道的余额可用度之和;
16.根据所述每条交易路径的余额可用度、所述通道的数量、所述通道状态,确定通往目标区块链节点的交易路径。
17.在一种可能的实现方式中,所述根据所述通道的数量、所述通道余额、所述通道状态,确定通往目标区块链节点的交易路径,包括:
18.获取所述每条交易路径上每个通道的开启时刻、关闭时刻,以及交易的发生时刻;
19.获取所述关闭时刻与所述开启时刻的第一差值以及所述发生时刻与所述开启时刻的第二差值;
20.确定所述每个通道的时间可用度为所述第一差值与所述第二差值的比值;
21.根据所述每个通道的时间可用度,所述通道的数量、所述通道余额,确定通往目标区块链节点的交易路径。
22.在一种可能的实现方式中,所述根据所述每个通道的时间可用度,所述通道的数量、所述通道余额,确定通往目标区块链节点的交易路径,包括:
23.确定所述每条交易路径的时间可用度为所述每条交易路径上所有通道的时间可用度之和;
24.根据所述每条交易路径的时间可用度、所述通道的数量、所述通道余额,确定通往目标区块链节点的交易路径。
25.在一种可能的实现方式中,所述根据所述通道的数量、所述通道余额、所述通道状态,确定通往目标区块链节点的交易路径,包括:
26.根据所述通道的数量、所述通道余额、所述通道状态,建立多目标优化模型;
27.在预设的约束条件下,获取所述多目标优化模型的最优解;
28.根据所述最优解确定通往目标区块链节点的最优路径,将所述最优路径作为交易路径。
29.根据本公开实施例的第二方面,提供一种基于区块链通道的交易路径的选择装置,包括:
30.第一获取模块,用于获取通往目标区块链节点的多条交易路径,其中,所述交易路径包括多个区块链节点,两区块链节点之间设置有通道;
31.第二获取模块,用于获取所述多条交易路径中每条交易路径上的通道的数量、相邻两区块链节点之间的通道余额、通道状态;
32.确定模块,用于根据所述通道的数量、所述通道余额、所述通道状态,确定通往目标区块链节点的交易路径。
33.在一种可能的实现方式中,所述确定模块包括:
34.第一获取子模块,用于获取交易的交易值以及通道的通道余额与所述交易值之间
的差值;
35.第一确定子模块,用于确定所述通道的余额可用度为所述差值与所述通道余额的比值;
36.第二确定子模块,用于根据所述通道的余额可用度、所述区块链节点的数量、所述通道状态,确定通往目标区块链节点的交易路径。
37.在一种可能的实现方式中,所述第二确定子模块包括:
38.第一确定单元,用于确定所述每条交易路径的余额可用度为所述每条交易路径上所有通道的余额可用度之和;
39.第二确定单元,用于根据所述每条交易路径的余额可用度、所述通道的数量、所述通道状态,确定通往目标区块链节点的交易路径。
40.在一种可能的实现方式中,所述确定模块包括:
41.第二获取子模块,用于获取所述每条交易路径上每个通道的开启时刻、关闭时刻,以及交易的发生时刻;
42.第三获取子模块,用于获取所述关闭时刻与所述开启时刻的第一差值以及所述发生时刻与所述开启时刻的第二差值;
43.第三确定子模块,用于确定所述每个通道的时间可用度为所述第一差值与所述第二差值的比值;
44.第四确定子模块,用于根据所述每个通道的时间可用度,所述通道的数量、所述通道余额,确定通往目标区块链节点的交易路径。
45.在一种可能的实现方式中,所述第四确定子模块包括:
46.第三确定单元,用于确定所述每条交易路径的时间可用度为所述每条交易路径上所有通道的时间可用度之和;
47.第四确定单元,用于根据所述每条交易路径的时间可用度、所述通道的数量、所述通道余额,确定通往目标区块链节点的交易路径。
48.在一种可能的实现方式中,所述确定模块包括:
49.建立子模块,用于根据所述通道的数量、所述通道余额、所述通道状态,建立多目标优化模型;
50.第四获取子模块,用于在预设的约束条件下,获取所述多目标优化模型的最优解;
51.选择子模块,用于根据所述最优解确定通往目标区块链节点的最优路径,将所述最优路径作为交易路径。
52.根据本公开实施例的第三方面,提供一种服务器,包括:
53.处理器;
54.用于存储所述处理器可执行指令的存储器;
55.其中,所述处理器被配置为执行所述指令,以实现如本公开实施例任一项所述的交易路径的选择方法。
56.根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由服务器的处理器执行时,使得所述服务器能够执行如本公开实施例任一项所述的交易路径的选择方法。
57.根据本公开实施例的第五方面,提供一种计算机程序产品,所述计算机程序产品
中包括指令,其特征在于,所述指令被服务器的处理器执行时,使得所述服务器能够执行如本公开实施例任一项所述的交易路径的选择方法。
58.本公开的实施例提供的技术方案至少带来以下有益效果:本公开实施例,将两区块链节点之间的交易由两者的直接通道扩展到整个通道网络,利用通道网络上所有可以利用的区块链节点。并综合考虑通道余额、通道状态以及交易的个性化需求,最大程度的减少因交易路径上通道余额不足和通道状态关闭所导致的传输失败的情况的发生,提高了交易传输的成功率和传输效率,并且满足了用户对传输速率的交易个性化的需求。
59.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
60.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
61.图1是根据一示例性实施例示出的一种基于区块链通道的交易路径的选择方法的流程图。
62.图2是根据一示例性实施例示出的一种具有通道余额约束的区块链通道示意图。
63.图3是根据一示例性实施例示出的一种具有通道状态约束的区块链通道示意图。
64.图4是根据一示例性实施例示出的一种具有交易个性化需求的区块链通道示意图。
65.图5是根据一示例性实施例示出的一种基于区块链通道的交易路径的选择装置的示意框图。
66.图6是根据一示例性实施例示出的一种服务器的框图。
具体实施方式
67.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
68.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
69.还需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
70.为了方便本领域技术人员理解本公开实施例提供的技术方案,下面先对技术方案实现的技术环境进行说明。
71.相关通道技术中,spilman首次提出了基于比特币系统的通道支付协议,实现了交易的即时确认。其特点是在通道的支付过程中,交易接收方的资金始终是增长的,接收方只
向链上公布通道内的最新状态。该通道支付协议只支持单向支付,即用户单向接收来自不同发送方的支付,不支持反向支付。因此,该通道的选择针对的是单向交易,无法兼容双向交易。双工微支付通道:该通道解决了上述单向支付问题,为基于比特币的数字支付实现了高扩展性。由于使用了比特币交易的时间锁功能,使得交易在双工微支付通道上的传输是安全的。然而,由于受时间锁的限制,即使完成交易传输也必须等达到时间锁的阈值,通道余额才可以重新被使用,带来较长的交易传输时间。该通道的通道选择缺乏对通道属性值的考虑。lightning网络:该通道是最早的通过支付通道形成支付网络,以提高区块链交易吞吐量。lightning网络一方面实现了双人双向的支付通道,另一方面可以通过双向支付通道来完成任意两个节点的转账。在该通道网络中,节点采取最短链路算法选择交易传输链路,因此,对于成功率有需求的交易,最短链路算法不一定能遍历出满足该笔交易需求的链路,可能会导致交易失败,甚至可能会导致服务性能满意度较低。
72.raiden网络:raiden实现在以太坊上执行任意复杂的智能合约,只支持单向交易传输,此外,某些智能合约可能会阻止raiden中交易方的某些令牌,在这种情况下,一味地按照原有方法选择通道进行交易,可能会导致这些交易无法顺利完成。因此,该通道网络的通道选择问题尚未得到解决,使得raiden网络的可用性较差。sprites通道:miller等人提出该通道,对lightning网络方案效率方面进行改进,以最大程度减小链下支付在最坏情况下的抵押品成本(通道余额)和时间成本(通道交易传输时间)。这种最坏情况通常是由于没有合理考虑通道状态对交易传输的影响、选择了不合适的通道进行交易传输或者通道处于关闭状态所导致的。revive通道:由于通道余额不断被消耗而导致的余额不足,会带来交易传输失败的问题。针对该问题,khalil等人[14]基于liquidity网络,提出revive通道。该通道实现了可持久化机制,从而维持网络中的中间传输用户之间的通道余额的平衡。该通道之间的余额转移是基于一个线性程序来求解,以保持通道余额的平衡。但在最坏情况下,该通道性能在问题规模上是指数级的,因此性能和可扩展性方面仍面临许多挑战。
[0073]
perun通道:相对于现有解决方案的主要优势在于,该通道允许创建虚拟通道,不需要每次支付都与中间传输节点进行交互。依赖于perun的通道虚拟化理念,dziembowski等人对该理念进行拓展,引入任意长度的全虚拟状态通道,进一步降低了通道中交易传输的延迟和成本。然而以上虚拟通道方法并没有考虑通道属性结构对交易传输的影响。counterfactual通道:对通用状态通道进行了描述,且这种通道框架将功能和状态封装在实例化的合约中,允许用户在现有通道中无需接触区块链即可部署新功能。程序执行前会定义用户集合,只有该集合中的用户可以应用该通道中的去中心化程序(decentralized application,简称dapp),而不在该集合中的用户是无法执行这些dapp,即:在区块链通道中的用户不能和不在该区块链通道中的另一用户进行通道交易传输。对于不断变化的区块链通道,这使得某些应用或用户无法使用通道进行交易传输。counterfactual通道:对通用状态通道进行了描述,且这种通道框架将功能和状态封装在实例化的合约中,允许用户在现有通道中无需接触区块链即可部署新功能。程序执行前会定义用户集合,只有该集合中的用户可以应用该通道中的去中心化程序(decentralized application,简称dapp),而不在该集合中的用户是无法执行这些dapp,即:在区块链通道中的用户不能和不在该区块链通道中的另一用户进行通道交易传输。对于不断变化的区块链通道,这使得某些应用或用户无法使用通道进行交易传输。zhang等人改进了zerocash可扩展性差和效率低的问题以
支持多重签名功能,并基于改进后的zerocash,构建了一个名为z-channel的小额支付系统。z-channel显著提高了可扩展性,减少了zerocash支付的确认时间。然而,使用z-channel的用户必须存储数百兆字节的公共引用字符串,并且需要可信的第三方来生成公共引用字符串。这不仅对存储空间的要求较高,还要求存在可信第三方。
[0074]
关于通道技术,大多集中在单一的通道,将其扩展到通道网络仍然是一个较大的挑战。例如:通道网络路由算法如silentwhispers算法[24]和speedymurmurs算法[25]。silentwhispers路由算法利用以landmark为中心的路由,通过选择landmark来发现多条链路。为了进行快速私下结算支付,它执行多方计算来确定沿着每条链路发送的通道余额量。其中,landmark路由一种近似的路由算法,仅计算发送者和接收者之间所有可能链路的子集,该子集中链路所对应的节点被称为landmark。speedymurmurs作为区块链通道中最先进的路由算法,该算法对voute[26]进行扩展,通过随机选择landmark,在路由受限的p2p网络中进行交易传输。两种路由算法中使用的生成树结构具有一些树结构固有的弊端,如它只能反映网络的局部和某一时隙的连接状态,不能更好地适应网络的复杂变化等。因此,二者的传输成功率较低。
[0075]
基于类似于上文所述的实际技术需求,本公开实施例提供了一种基于区块链通道的交易路径的选择方法、装置、服务器及存储介质。
[0076]
下面结合附图1对本公开所述的交易路径的选择方法进行详细的说明。图1是本公开提供的交易路径的选择方法的一种实施例的方法流程图。虽然本公开提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑性上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本公开实施例提供的执行顺序。
[0077]
具体的,本公开提供的交易路径的选择方法一种实施例如图1所示,所述方法可以应用于区块链节点服务器,包括:
[0078]
步骤s101,获取通往目标区块链节点的多条交易路径,其中,所述交易路径包括多个区块链节点,两区块链节点之间设置有通道。
[0079]
本公开实施例中,所述交易包括一方向另一方(目标区块链节点)支付数字货币,例如比特币或以太币等。可以从区块链存储的路由表中获取通往目标区块链节点的多个区块链节点,从多个区块链节点中进行节点组合,两区块链节点之间形成通道,区块链节点和通道形成了交易路径。将所有可能的交易路径作为所述多条交易路径。
[0080]
本公开实施例中,所述通道包括支付通道和状态通道。所述支付通道包括允许双方建立直接的点对点支付交易。双方可以私下维护和更新各自的分类账,将最终交易结果写入区块链,其他中间交易无需写入区块链。所述状态通道可以包括支持任一复杂的智能合约,且允许参与方安全修改区块链状态中称为状态存款的锁定部分。
[0081]
步骤s103,获取所述多条交易路径中每条交易路径上的通道的数量、相邻两区块链节点之间的通道余额、通道状态。
[0082]
本公开实施例中,所述通道余额可以包括通道双方各自存入的金额。所述通道状态可以包括开启状态和关闭状态,当通道处于关闭状态时,表明通道双方没有直接的通道传输交易。通道关闭状态的原因可能是上一笔交易在该通道中还没有被传输完成等,因此,通道一方需要寻找其他通道来完成所述交易。所述通道的数量可以包括交易双方通过交易
路径进行交易,该交易路径上通道的总数量。
[0083]
步骤s105,根据所述通道的数量、所述通道余额、所述通道状态,确定通往目标区块链节点的交易路径。
[0084]
本公开实施例中,图2是根据一示例性实施例示出的一种具有通道余额约束的区块链通道概况图,参考图2所示,区块链通道使得交易发起方能够通过中间区块链节点进行交易传输,例如有一笔交易,要求节点a传输5btc(比特币)给节点c,节点a可以通过节点d发送该笔交易给节点c,但是无法通过节点b传输传输该笔交易。原因主要在于节点b和节点c之间的通道余额为3btc,小于交易传输要求5btc,没有足够的通道余额供传输交易,若选择该通道,则会导致交易传输失败。随着传输交易数量的增加,由于交易传输使得通道余额被不断消耗而递减,可能使得该通道在传输一笔交易时,可能出现通道余额不足。
[0085]
本公开实施例中,图3是根据一示例性实施例示出的一种具有通道状态约束的区块链通道示意图,参考图3所示,例如有一笔交易,要求节点a传输5btc给节点b,节点a和节点b的直接通道处于关闭状态,因此,节点a需要通过寻找其他通道来完成该笔交易。图2中,可以通过中间节点d来完成,可见通道状态会影响交易的传输。
[0086]
本公开实施例中,图4是根据一示例性实施例示出的一种具有交易个性化需求的区块链通道示意图。例如有一笔交易要求节点a传输1btc给节点c。现有两条交易路径:第一条交易路径包括3个通道,即节点a通过节点b、节点e、给节点c;第二条交易路径包括2个通道,即节点a通过节点d传输这笔交易。两条路径经过的通道个数不同,可能会导致交易传输时间不同,使用通道个数越多,传输所需要的的时间可能越多。对于用户要求传输时间较短的传输,若选择较长的交易路径将会导致较长的传输时间。
[0087]
本公开实施例,所述根据所述通道的数量、所述通道余额、所述通道状态,确定通往目标区块链节点的交易路径,在一个示例中可以通过设置通道的数量、通道余额和通道状态的权重,建立路径选择模型为上述三个参数的加权和,通过求取路径选择模型的最优解,确定对应的交易路径为最终选择的路径。在另一个示例中,还可以根据通道的数量、通道余额和通道状态,建立多目标优化模型,例如最小化交易路径上三者目标函数。通过求取多目标优化模型的最优解,确定对应的交易路径为最终选择的路径。
[0088]
本公开实施例,将两区块链节点之间的交易由两者的直接通道扩展到整个通道网络,利用通道网络上所有可以利用的区块链节点。并综合考虑通道余额、通道状态以及交易的个性化需求,最大程度的减少因交易路径上通道余额不足和通道状态关闭所导致的传输失败的情况的发生,提高了交易传输的成功率和传输效率,并且满足了用户对传输速率的交易个性化的需求。
[0089]
在一种可能的实现方式中,所述根据所述通道的数量、所述通道余额、所述通道状态,确定通往目标区块链节点的交易路径,包括:
[0090]
获取交易的交易值以及通道的通道余额与所述交易值之间的差值;
[0091]
确定所述通道的余额可用度为所述差值与所述通道余额的比值;
[0092]
根据所述通道的余额可用度、所述区块链节点的数量、所述通道余额,确定通往目标区块链节点的交易路径。
[0093]
本公开实施例中,所述交易的交易值可以包括所述交易的交易量、交易金额等。在一个示例中,可以记区块链通道组成的网络拓扑图为g,g=《v,e》,其中:v和e分别表示区块
链节点集和通道集,n=|v|,m=|e|,v中的元素表示区块链通道中的节点,e中的元素表示节点之间的链接关系(即通道)。在区块链通道网络中,所述通道的余额可用度可以表示为ρ
ij
,如式(1)所示:
[0094][0095]
其中,i,j∈v,c
ij
为节点i和j之间的通道的余额,q为某一笔交易要求转发的交易值。本公开实施例,根据所述通道的余额可用度、所述区块链节点的数量、所述通道状态,确定通往目标区块链节点的交易路径,可以以通道的余额可用度、所述区块链节点的数量、所述通道状态作为参数,按照上述实施例中公开的方法,建立通道的余额可用度、所述区块链节点的数量、所述通道状态的路径选择模型或多目标选择模型,通过求解,确定通往目标区块链节点的交易路径。
[0096]
本公开实施例,引入通道的余额可用度,能够针对不同的交易值,表征通道余额的可用状态,为后期模型的建立提供了参数支撑,能够优化模型,从而得出最优的交易路径。
[0097]
在一种可能的实现方式中,所述根据所述通道的余额可用度、所述区块链节点的数量、所述通道状态,确定通往目标区块链节点的交易路径,包括:
[0098]
确定所述每条交易路径的余额可用度为所述每条交易路径上所有通道的余额可用度之和;
[0099]
根据所述每条交易路径的余额可用度、所述通道的数量、所述通道状态,确定通往目标区块链节点的交易路径。
[0100]
本公开实施例中,所述交易路径的余额可用度可以记作f1(a,b),如式(2)所示:
[0101][0102]
式(2)中,a∈v且b∈v,节点i和j为节点a和b的交易路径上所经过的节点。
[0103]
本公开实施例,引入交易路径的余额可用度,能够针对不同的交易值,表征整个交易路径上通道余额的可用状态,为后期模型的建立提供了参数支撑,能够优化模型,从而得出最优的交易路径。
[0104]
在一种可能的实现方式中,所述根据所述通道的数量、所述通道余额、所述通道状态,确定通往目标区块链节点的交易路径,包括:
[0105]
获取所述每条交易路径上每个通道的开启时刻、关闭时刻,以及交易的发生时刻;
[0106]
获取所述关闭时刻与所述开启时刻的第一差值以及所述发生时刻与所述开启时刻的第二差值;
[0107]
确定所述每个通道的时间可用度为所述第一差值与所述第二差值的比值;
[0108]
根据所述每个通道的时间可用度,所述通道的数量、所述通道余额,确定通往目标区块链节点的交易路径。
[0109]
本公开实施例中,所述通道状态可以包括开启状态和关闭状态。在开启状态下,通道可以用来传输交易。在关闭状态下,通道不能传输交易。通道关闭状态可以包括下述三种情况:通道的余额耗尽且不可用;交易双方都统一最终的余额,并希望返回区块链认领各自的余额;存在欺骗行为,诚实的一方需要及时宣布真实的余额状态。通道可以单方关闭也可
以双边关闭,如果双方决定关闭通道,通道将立即关闭,如果发生欺骗行为或一方不响应,另一方可以单方面关闭通道。
[0110]
本公开实施例中,通道的开启时刻、关闭时刻可以从区块链上的路由表中查询。在一个示例中,通道时间可用度记作:
[0111][0112]
其中,tc是节点i和j之间通道的关闭时刻,to是节点i和j之间通道的开启时刻,t是交易开始的时间。
[0113]
本公开实施例,引入通道时间可用度,表征了交易的持续时间占交易的空闲时间的比值,从而表征了该通道在时间上的可用程度,为后期模型的建立提供了参数支撑,能够优化模型,从而得出最优的交易路径。
[0114]
在一种可能的实现方式中,所述根据所述每个通道的时间可用度,所述通道的数量、所述通道余额,确定通往目标区块链节点的交易路径,包括:
[0115]
确定所述每条交易路径的时间可用度为所述每条交易路径上所有通道的时间可用度之和;
[0116]
根据所述每条交易路径的时间可用度、所述通道的数量、所述通道余额,确定通往目标区块链节点的交易路径。
[0117]
本公开实施例中,交易路径的时间可用度可以记作f2(a,b),如式(4)所示,
[0118][0119]
式(4)中,a∈v且b∈v,节点i和j为节点a和b的交易路径上所经过的节点。
[0120]
本公开实施例,引入交易路径的时间可用度,表示交易的持续时间占交易的空闲时间的比值,能够表征整个交易路径上所有通道在时间上的可用程度,为后期模型的建立提供了参数支撑,能够优化模型,从而得出最优的交易路径。
[0121]
在一种可能的实现方式中,所述根据所述通道的数量、所述通道余额、所述通道状态,确定通往目标区块链节点的交易路径,包括:
[0122]
根据所述通道的数量、所述通道余额、所述通道状态,建立多目标优化模型;
[0123]
在预设的约束条件下,获取所述多目标优化模型的最优解;
[0124]
根据所述最优解确定通往目标区块链节点的最优路径,将所述最优路径作为交易路径。
[0125]
本公开实施例中,在一个示例中,交易路径上的通道的数量可以记作h3,如式(5)所示:
[0126]
h3(a,b)=|l[a][b]|
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0127]
式(5)中,数组l是通道网络的通道集合。在一个示例中,获取交易的交易值以及通道的通道余额与所述交易值之间的差值;确定所述通道的余额可用度为所述差值与所述通道余额的比值;确定所述每条交易路径的余额可用度为所述每条交易路径上所有通道的余额可用度之和。在另一个示例中,获取所述每条交易路径上每个通道的开启时刻、关闭时刻,以及交易的发生时刻;获取所述关闭时刻与所述开启时刻的第一差值以及所述发生时刻与所述开启时刻的第二差值;确定所述每个通道的时间可用度为所述第一差值与所述第
二差值的比值;确定所述每条交易路径的时间可用度为所述每条交易路径上所有通道的时间可用度之和。所述根据所述通道的数量、所述通道余额、所述通道状态,建立多目标优化模型,包括:根据所述通道的数量,所述交易路径的时间可用度的倒数,所述交易路径上余额可用度的倒数,建立多目标优化模型,如下式(6):
[0128]
min h(i,j)=min{h1(i,j),h2(i,j),h3(i,j)}
t
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0129]
s.t.g(i,j)=q-c
ij
[0130]
g(i,j)≤0
[0131]
其中,h(i,j)为目标函数,h1(i,j)=1/f1(i,j),h2(i,j)=1/f2(i,j),记(i,j)={(i1,j1),(i2,j2),

(in,jn)}
t
为一组确定的向量,其中n为通道个数。g(i,j)为约束条件,c
ij
为节点i和j之间的通道的余额,q为某一笔交易要求转发的交易值。
[0132]
本公开实施例中,在一个示例中,可以为上述多个目标函数:所述通道的数量,所述交易路径的时间可用度的倒数,所述交易路径上余额可用度的倒数,分配权重,通过加权和将多目标优化模型转换为单目标函数,并求取所述单目标函数的最优解。在另一个示例中,可以根据目标函数的相对重要性,采用字典序优化(lexicographic optimization)方法,求取所述多目标优化模型的最优解。在另一个示例中,还可以根据epsilon-约束法、nsga-ii、moea/d算法计算所述多目标优化模型的最优解。
[0133]
本公开实施例,利用区块链通道技术,交易方通过访问和选择通道来进行交易传输。本公开实施例考虑到一部分交易方要求交易传输时间最短,一部分交易方成功率最高而不注重交易的传输时间,为了提高交易的成功率以及满足交易方的个性化需求,本公开实施例基于非合作博弈理论和通道的数量、交易路径的时间可用度、交易路径上余额可用度,将通用的选择问题建模为多目标优化模型,并对该多目标优化模型进行求解,满足交易个性化的需求,提高了交易的成功率以及服务性能的满意度。
[0134]
应该理解的是,虽然流程中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0135]
可以理解的是,本说明书中上述方法的各个实施例之间相同/相似的部分可互相参见,每个实施例重点说明的是与其他实施例的不同之处,相关之处参见其他方法实施例的说明即可。
[0136]
图5是根据一示例性实施例示出的一种基于区块链通道的交易路径的选择装置的示意框图。参照图5,该装置包括:
[0137]
第一获取模块501,用于获取通往目标区块链节点的多条交易路径,其中,所述交易路径包括多个区块链节点,两区块链节点之间设置有通道;
[0138]
第二获取模块502,用于获取所述多条交易路径中每条交易路径上的通道的数量、相邻两区块链节点之间的通道余额、通道状态;
[0139]
确定模块503,用于根据所述通道的数量、所述通道余额、所述通道状态,确定通往目标区块链节点的交易路径。
[0140]
在一种可能的实现方式中,所述确定模块包括:
[0141]
第一获取子模块,用于获取交易的交易值以及通道的通道余额与所述交易值之间的差值;
[0142]
第一确定子模块,用于确定所述通道的余额可用度为所述差值与所述通道余额的比值;
[0143]
第二确定子模块,用于根据所述通道的余额可用度、所述区块链节点的数量、所述通道状态,确定通往目标区块链节点的交易路径。
[0144]
在一种可能的实现方式中,所述第二确定子模块包括:
[0145]
第一确定单元,用于确定所述每条交易路径的余额可用度为所述每条交易路径上所有通道的余额可用度之和;
[0146]
第二确定单元,用于根据所述每条交易路径的余额可用度、所述通道的数量、所述通道状态,确定通往目标区块链节点的交易路径。
[0147]
在一种可能的实现方式中,所述确定模块包括:
[0148]
第二获取子模块,用于获取所述每条交易路径上每个通道的开启时刻、关闭时刻,以及交易的发生时刻;
[0149]
第三获取子模块,用于获取所述关闭时刻与所述开启时刻的第一差值以及所述发生时刻与所述开启时刻的第二差值;
[0150]
第三确定子模块,用于确定所述每个通道的时间可用度为所述第一差值与所述第二差值的比值;
[0151]
第四确定子模块,用于根据所述每个通道的时间可用度,所述通道的数量、所述通道余额,确定通往目标区块链节点的交易路径。
[0152]
在一种可能的实现方式中,所述第四确定子模块包括:
[0153]
第三确定单元,用于确定所述每条交易路径的时间可用度为所述每条交易路径上所有通道的时间可用度之和;
[0154]
第四确定单元,用于根据所述每条交易路径的时间可用度、所述通道的数量、所述通道余额,确定通往目标区块链节点的交易路径。
[0155]
在一种可能的实现方式中,所述确定模块包括:
[0156]
建立子模块,用于根据所述通道的数量、所述通道余额、所述通道状态,建立多目标优化模型;
[0157]
第四获取子模块,用于在预设的约束条件下,获取所述多目标优化模型的最优解;
[0158]
选择子模块,用于根据所述最优解确定通往目标区块链节点的最优路径,将所述最优路径作为交易路径。
[0159]
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0160]
图6是根据一示例性实施例示出的一种用于交易路径的选择的服务器600的框图。例如,服务器600可以为服务器。参照图6,服务器600包括处理组件620,其进一步包括一个或多个处理器,以及由存储器622所代表的存储器资源,用于存储可由处理组件620的执行的指令,例如应用程序。存储器622中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件620被配置为执行指令,以执行上述方法。
[0161]
服务器600还可以包括:电源组件624被配置为执行服务器600的电源管理,有线或无线网络接口626被配置为将服务器600连接到网络,和输入输出(i/o)接口628。服务器600可以操作基于存储在存储器622的操作系统,例如windows server,mac os x,unix,linux,freebsd或类似。
[0162]
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器622,上述指令可由服务器600的处理器执行以完成上述方法。存储介质可以是计算机可读存储介质,例如,所述计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
[0163]
在示例性实施例中,还提供一种计算机程序产品,所述计算机程序产品中包括指令,上述指令可由服务器600的处理器执行以完成上述方法。
[0164]
需要说明的,上述的装置、服务器、计算机可读存储介质、计算机程序产品等根据方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
[0165]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
[0166]
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1