比特币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_SEClib.common中。这些设置是在四核处理器和8gb内存上测试的。
  • 比特币和LND进程未终止: 有时进程没有正确终止,所以 在开始新测试之前,请确保手动进行。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JPanel自动调整大小   从Java更新MySQL数据库中的时间字段   在字符数组中读取字符串而不使用任何字符串函数,甚至java中的C++   java这段代码适合二叉树中的Euler教程吗?   如何在java中拆分字符串我的空行   爪哇舞厅舞者使用信号灯解决问题   java Android Studio MainActivity即使在新项目上也不存在   java Box2D:在矩形体的两端施加力,以实现2D无人机模拟。无法正确定位世界/本地点   python如何在Java中使用HTTP GET请求?   java如何使用ArrayList?   java为什么在缺少@Transactional时不抛出TransactionRequiredException?   java安卓活动可重用性   java Hibernate按属性获取记录不起作用   java如何在Android中使用SQLite多表触发带计数的连接查询?   java要读取的文本文件的正确文件路径   java使用JXL在Excel中切换网格线   java你能在没有外键的情况下用OneToOne关系链接两个实体吗?   java NotificationListenerService。cancelNotification引发NullPointerException   java我如何告诉Jersey客户端对其反序列化的每个类执行@JsonIgnoreProperties(ignoreUnknown=true)的等效操作?   循环特殊情况的java处理