Skip to content

v0.1.0-pre-alpha

Pre-release
Pre-release
Compare
Choose a tag to compare
@DanGould DanGould released this 11 Aug 01:21
· 158 commits to master since this release
ddb283e

⚠️ WARNING: ULTRA-EXPERIMENTAL SOFTWARE

❗️ This project is pre-alpha quality and lacks basic checks. It is NOT fully BIP78-compliant ❗️

Any unexpecected node setup or message will likely cause permanent loss of funds.

For the love of god, do NOT use it on mainnet just yet!
If you don't want to wait long, help with reviews and PRs

Usage

  1. You need Rust version 1.48 or higher to compile this.
  2. You need LND v14.2 or higher
  3. cargo build [--features=test_paths]. The test_paths feature will serve the static/index.html ui contained in this folder rather than one in /usr/share/loptos/static in production.
  4. Setup reverse HTTP proxy with HTTPS forwarding to some port - e.g. 3000.
    You can do this in a few lines using selfhost in Cryptoanarchy Debian Repository. or on MacOS
  5. create a configuration file based on config_spec.toml. This is mine based on a polar lightning network simulator setup. CONFIGURATION_FILE=loptos.conf:
# loptos.conf

bind_port=3000
lnd_address="https://localhost:10004"
lnd_cert_path="/Users/dan/.polar/networks/1/volumes/lnd/dave/tls.cert"
lnd_macaroon_path="/Users/dan/.polar/networks/1/volumes/lnd/dave/data/chain/bitcoin/regtest/admin.macaroon"
  1. ./target/debug/loptos --conf CONFIGURATION_FILE_PATH DEST_NODE_URI AMOUNS_IN_SATS [DEST_NODE_URI AMOUNS_IN_SATS ...] [CHAIN_WALLET_AMOUNT_SATS]
  2. Copy BIP21 from command line output and paste it into one of the supported wallets. I use the payjoin crate client to make a payjoin right from regtest bitcoind.
  3. Confirm the transaction and move some sats over the new channel

Note: if CHAIN_WALLET_AMOUNT_SATS is present a single-sig output will be added to LND's internal wallet.
A minimum internal wallet balance of 10,000 reserve sats per channel up to 100,000 sats is required for anchor commitments. This can be automated in the future.

Thanks to Martin for the base on which this is built, Armin for trialing and tribulating, and Evan for feedback, questions, and edits