Utilities to define and bootstrap lightning networks for testing
Project description
lnet -- Simplified Lightning Network Setup
Have you ever tried setting up a small Lightning Network on regtest to
develop or demo against, and found it frustrating and confusing?
lnet
's goal is to make it easy to spin up any network topology for
testing or demoing, all you need to do is describe the network in the
graphviz dot
format.
Take the following example, which will spin up two nodes, called
client
and server
respectively, connect them and fund a
channel. It'll also create an invoice on the server to balance the
channel by sending over 500'000msat. You describe it, we make it
happen.
graph g {
client -- server [capacity="10000000:500000"];
}
A more complicated setup could be a star topology and some multi-hop paths:
graph g {
client1 -- server [capacity="10000000"];
client2 -- server [capacity="10000000"];
client3 -- server [capacity="10000000"];
client4 -- server [capacity="10000000"];
client5 -- server [capacity="10000000"];
"client5-1" -- client5 [capacity="10000000"];
"client5-2" -- client5 [capacity="10000000"];
"client5-3" -- client5 [capacity="10000000"];
}
Installation
lnet
is just a simple pip install
away:
pip3 install lnet
This will install the lnet-cli
and lnet-daemon
command line
utilities. lnet-daemon
starts, monitors and provides access to
bitcoind
and any number of c-lightning
nodes, while lnet-cli
is
used to interact with the daemon and the nodes.
Usage
All operations are performed through lnet-cli
, which will start
lnet-daemon
if required. lnet-cli
has the following commands:
start [dotfile]
parses thedotfile
, extracting nodes and channels, and tries to recreate the desired topology. It'll open channels and confirm them to make the usable, however it currently requires that the network topology is not partitioned. See below for attributes that are defined.stop
stops the currently running topologyshutdown
stops the running topology and shuts down thelnet-daemon
node [nodename] [rpc_method] [params...]
executesrpc_method
on the node with namenodename
and the specifiedparams
. This is mainly used as a shorthand to give access without having to configure your shell.alias
configures your shell with a number of aliases to make it easy to interact with the daemons without going throughlnet-cli
. You can use it witheval $(lnet-cli alias)
.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file lnet-0.0.5.tar.gz
.
File metadata
- Download URL: lnet-0.0.5.tar.gz
- Upload date:
- Size: 14.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 53c1d2b2e88f5873e08f7a4dba5f0ac6b5c3198691648c0cee03163fce58c2ab |
|
MD5 | 9d6db788130b990d4c69b4732977df55 |
|
BLAKE2b-256 | 986771c280263542e5f8fb26a59e8f033b2aa76350763a4f20bce12a35ba056a |