██████╗ ██╗ ██╗███████╗████████╗██████╗ ██████╗ ██╗ ████████╗
██╔══██╗██║ ██║██╔════╝╚══██╔══╝██╔══██╗██╔═══██╗██║ ╚══██╔══╝
██████╔╝██║ ██║███████╗ ██║ ██████╔╝██║ ██║██║ ██║
██╔══██╗██║ ██║╚════██║ ██║ ██╔══██╗██║ ██║██║ ██║
██║ ██║╚██████╔╝███████║ ██║ ██████╔╝╚██████╔╝███████╗██║
╚═╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝ ╚═════╝ ╚═════╝ ╚══════╝╚═╝
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 rbcliln.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 serverrustbolt 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