比特币RegTest闪电网络集成测试。
lnregtest的Python项目详细描述
在regtest网络中
为(python)集成测试实现正常运行的lightning networks 在比特币regtest网络上运行闪电节点 港口。
模拟闪电网络可以有不同的形状
在network_definitions
文件夹中。
图的示例(star_ring
)包含7个节点和12个通道
这里(有关初始通道平衡的详细信息,请查看
network_definitions/star_ring.py
):
Star-like component:
A -> B
A -> C
A -> D
A -> E
A -> F
A -> G
Ring-like component:
B -> C
C -> D
D -> E
E -> F
F -> G
G -> B
功能
- 没有外部python依赖项
- 节点数为10的任意闪电网络图(取决于 您的资源)
- LND支持
- 闪电图状态比较
- 从已创建的网络重新启动
- 将随机标识符(公钥、通道id)抽象为可读的 标识符
- 库和命令行执行
计划功能
- 任意Lightning后台程序二进制检测(lnd、clightning,…)
- 时间相关事务序列
创建自己的网络拓扑
任意形状的网络可以定义为
network_definitions
文件夹。有关一般结构,请参见示例。
要求如下:
- 节点A是主节点
- 节点由后面的字符a、b、c……唯一命名。
- 通道由递增整数1、2、3等唯一编号。
- 端口必须唯一设置
- 本地余额必须大于远程余额
测试其他(python)项目
测试示例可以在test
文件夹中找到,以及有关如何
LNRegtest用于闪电网络集成测试,可在
TEST。
此软件包也用于 lndmanage。
设置
为了有一个完整的即时图视图,我们需要编译lnd
以一种特殊的方式在config.go
中设置defaultTrickleDelay = 1
。
比特币、比特币cli、lnd和lncli的二进制文件预计可以在
$PATH
。
您可以在两种不同的模式下使用该工具:
git存储库模式:
$ git clone https://github.com/bitromortac/lnregtest
$ cd lnregtest
运行网络:
$ python3 lnregtest.py -h
包模式:
$ virtualenv -p python3 venvs/lnregtest
$ source venvs/lnregtest/bin/activate
$ pip install lnregtest
运行网络:
$ lnregtest -h
测试lnregest是否工作
运行所有测试,运行
python3 -m unittest discover test
从根文件夹。
故障排除
all SubConns are in TransientFailure
: 通常情况下,LND没有足够的时间启动。 闪电网络的模拟是内存和CPU密集型的。每个LN 节点需要一些时间才能启动和运行并消耗资源。 目前,每个lnd节点的启动被延迟以分配cpu负载。 如果遇到启动问题,请增加LOAD_BALANCING_LND_STARTUP_TIME_SEC
在lib.common
中。这些设置是在四核处理器和8gb内存上测试的。- 比特币和LND进程未终止: 有时进程没有正确终止,所以 在开始新测试之前,请确保手动进行。