区块链的可扩展性是实现海量交易的关键，目前比特币网络能达到每秒最多7笔的处理能力，Qtum网络目前可以实现比特币10陪的处理能力，但对于海量交易来说是不够的（例如电子商务应用场景，近年阿里巴巴双十一购物节，支付宝网络峰值交易超过每秒100000交易（TPS）；Visa在2013假期期间，实现每秒47000交易（TPS））。为了解决这种海量交易带来的处理和存储问题，Joseph Poon提出了闪电网络（Lightning Network）解决方案，闪电网络是一个去中心化的系统，无需信任对方以及第三方即可实现实时、海量的交易网络。其基本思想是交易双方在链上通过交易脚本创建支付通道，之后双方实时、海量的支付交易在链下完成，通过链接多个通道可以实现网络内任意两点之间的资金交易，完成价值转移，而无需信任第三方进行资金托管和结算，这些转移可以在不受信任的双方之间通过合约沿着传送路径进行。

c-lightning是一个在比特币区块链上对闪电网络的一个参考实现，目前可以支持闪电网络的支付通道创建、接收付款等功能。Qtum在c-lightning的基础上做了相应修改形成qtum-lightning，使得在Qtum下也可以实现诸如通道创建、实时交易、小额交易等功能。下面在通过在Qtum主干网络(mainnet)对这几个闪电网络功能进行测试。

1. 测试环境

两台Ubuntu 16.04的电脑，安装有qtum core和qtum-lightning。qtum-core用于连接Qtum主干网络，qtum-lightning使节点实现闪电网络功能。

2. 闪电网络测试

本次测试，通过A节点和B节点之间建立支付通道，实现即时、小额的支付功能，主要流程包括：资金准备，连接建立，通道建立、支付交易。测试实现了往通道存入0.1QTUM的资金，并从B节点往A节点支付了0.00000001金额的QTUM。

2.1 获取两个节点的信息 首先获取节点的相关信息，用于后续操作：





2.2创建支付通道



闪电网络的通道是实现链下交易的开始，通道建立以后，就可以在链下实现交易了，无需再广播到链上。创建过程是先在往节点管理的钱包地址存入用于建立通道的资金，并加入到资金池，之后可以使用资金池金额的一部分创建闪电网络通道。





2.3 在闪电网络通道进行支付 闪电网络通道里的支付过程是由接收侧发起的，首先接收方A节点生成一个接收自己的单据，然后发送方B节点就可以按照支付的资金大小获得一个从B到A的支付路由，最后根据该路由信息就可以把自己发送到A节点了。





2.3 在闪电网络通道进行支付 闪电网络通道里的支付过程是由接收侧发起的，首先接收方A节点生成一个接收自己的单据，然后发送方B节点就可以按照支付的资金大小获得一个从B到A的支付路由，最后根据该路由信息就可以把自己发送到A节点了。





3 查看支付后的结果

在闪电网络通道进行的支付，可以实现即时结算，在节点B往A执行sendpay之后，通道的资金的新的分配结果实时产生，可以通过查看A、B节点的信息查看通道资金的分配情况。

B节点在发送前存入了0.1QTUM发送0.00000001QTUM后，还剩余0.09999999QTUM，同时看到的通道总金额不变，即没有花费手续费。

通过以上的测试可以看到，基于Qtum的闪电网络的基本可以实现在链下进行实时的交易和结算，只涉及到两方的交易可以不用支付手续费，使得诸如小额支付等成为可能。理论上可以在通过在Qtum链下建立大量的闪电网络通道，把交易放在链下，可以实现实时、海量的交易。