██████╗ ██╗ ██╗███████╗████████╗██████╗ ██████╗ ██╗ ████████╗
██╔══██╗██║ ██║██╔════╝╚══██╔══╝██╔══██╗██╔═══██╗██║ ╚══██╔══╝
██████╔╝██║ ██║███████╗ ██║ ██████╔╝██║ ██║██║ ██║
██╔══██╗██║ ██║╚════██║ ██║ ██╔══██╗██║ ██║██║ ██║
██║ ██║╚██████╔╝███████║ ██║ ██████╔╝╚██████╔╝███████╗██║
╚═╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ ╚═════╝ ╚═════╝ ╚══════╝╚═╝
Experiemental Implementation of Lightining based on
Currently the project is still unstable, please DO NOT use this in production !
The rustbolt is an experimental implementation of a Lightning Network node in rust
. rustbolt
depends on bitcoind
, and uses the rust-bitcoin set of Bitcoin libraries. In the current state rustbolt
is capable of:
- Creating channels.
- Closing channels.
- List channel status.
- Routing within the network, passively forwarding incoming payments.
- Creating / Paying invoices.
rustbolt
works on Linux & MacOS, it requires a running bitcoind
.
rustbot
is written in Rust. You will need rustc version nightly. The recommended way to install Rust is from the official download page. Or using rustup, the official rust
toolchain installer.
After getting rust
, use the following command to upgrade to nightly
.
rustup toolchain install nightly && \
rustup target add wasm32-unknown-unknown --toolchain nightly && \
rustup default nightly && \
cd
into either server
or cli
to build executable binary for the Server or Cli. Or, otherwize into ln-manager
for the library.
cd server && cargo build # gets binary file for rustbolt
cd cli && cargo build # gets binary file for rbcli
ln.conf.toml
[lightning]
lndata = "ln/data_1" # local path for storing lightning data
port = 9735 # port of lightning node
[bitcoind]
rpc_url = "<usr>:<pwd>@<interface>:<port>" # url of bitcoind to connect to.
node.conf.toml
[server]
address = "0.0.0.0:8123" # interface for udp server
rustbolt ln.conf.toml node.conf.toml # server starts
# Returns public key of the node
rbcli info -n
# Connects to another peer on the lightning network
rbcli peer -c <node_id>@<interface>:<port>
# list all peers
rbcli peer -l
# Creates a payment channel with another peer on the network
rbcli channel -c <node_id>@<interface>:<port> 2000000 100500000
# Creates an Invoice
rbcli invoice -c 1001000
# Pays an Invoice
rbcli invoice -p <bolt11>
Pull requests are welcomed, and feel free to raise issues.
sudo docker-compose -f test/integration/docker-compose.yml down &&
sudo docker-compose -f test/integration/docker-compose.yml up --exit-code-from lightning