Lightning Stream

Download

Lightning Stream 0.2.0

One app for buying, selling and renting hashrate, on the node box you already run. Released for Umbrel, StartOS and Linux, as a public test release.

Early, unaudited software. Use small amounts. Lightning Stream runs on XBT mainnet and pays from your own node. It has been tested on mainnet between our own nodes with small amounts, and has had design and code reviews, not an independent audit.

LIMITS.md lists every stated limit and what nobody has reviewed.

Before you install

What you need.

1 · NODE

A synced XBT node

Bitcoin Knots with BLAKE2b proof of work (Knots-BLAKE2b), fully synced. A first sync from nothing takes days, and Lightning Fork waits until the node is past block 961,640, the first BLAKE2b block.

2 · LIGHTNING

Lightning Fork beside it

Paul Lamb's Lightning Fork, the XBT version of lnd. A seller needs an lnd-family node with room to receive; a Core Lightning node can buy and route, but cannot sell held tickets today.

3 · CHANNEL

A small channel

A funded channel on XBT Lightning, with a route to the shop you buy from. Get a channel says how.

Install

Pick your box.

The same app and the same images on all three, pinned by digest, so a box gets exactly the image that was checked.

UMBREL

Umbrel

  1. App Store → ⋯ → Community App Stores. Add Paul's store and install Knots-BLAKE2b and Lightning Fork. When Lightning Fork asks which Bitcoin node to use, pick Knots-BLAKE2b, not Umbrel's standard Bitcoin Node.
  2. Add the Lightning Stream store, then install Lightning Stream. It connects to your Lightning node by itself and makes its own narrow keys: nothing to paste.

Paul's store

https://github.com/paulscode/umbrel-store

The Lightning Stream store

https://github.com/AwokenLazarus/lightning-stream-umbrel-store

The store carries 0.2.0. An update keeps your keys, rules and settings.

STARTOS 0.4

StartOS

  1. Marketplace → the registry menu at the top → Add. Add Paul's registry and install Knots-BLAKE2b and Lightning Fork (0.21.4-beta.21.1:2 or later).
  2. Add the Lightning Stream registry the same way, switch to it, and install Lightning Stream.
  3. In Lightning Fork, approve the task Grant app access for Lightning Stream. The app gets its own narrow key: it can pay and read, nothing more, and you can revoke it there at any time.

Paul's registry

https://start9.paulscode.com/

The Lightning Stream registry

https://registry.lazarus-xbt.xyz

The registry lists 0.2.0. A registry is added in StartOS; opening it in a browser shows nothing. The package files (x86_64 and aarch64, with SHA-256 sums) are also on the startos-v0.2.0 release.

LINUX · x86_64, arm64, armv7

Linux

  1. Docker 24 or newer with its Compose plugin (2.20 or newer), beside your own Knots-BLAKE2b (with an RPC user and password for the app) and Lightning Fork (unlocked, REST on).
  2. Clone the source and run the installer. It asks where your nodes are, writes its settings, pulls the pinned images, makes the app's own narrow Lightning keys, and starts the app.
  3. Open http://127.0.0.1:8482/. The password follows LS_UI_PASSWORD= in ~/lightning-stream/.env.
git clone https://github.com/AwokenLazarus/Lightning-Stream.git
cd Lightning-Stream
packaging/linux/install.sh

The script is short and readable: read it first if you like. Update with git pull and the installer again.

Get a channel

Your node pays. Give it a route.

The app pays through your own node, so your node needs a funded channel with a route to the shop. Without one, the first buy fails with “no route”.

  • Size. 20,000 to 50,000 sat is plenty for trying things out: a ticket is about 900 sat. lnd refuses channels under 20,000 sat by default.
  • Who to. Any well-connected XBT Lightning node works: payments to any shop find their way from there, because every invoice carries hints for the last hop. Some nodes take only larger channels and refuse a small one before anything is paid, so a refusal costs nothing.
  • One option: Lightning Stream Genesis. It is the demo shop's own node, so a channel to it lets you try buying straight away. It is reachable over Tor, so your node needs Tor (Lightning Fork on Umbrel has it on). Connect with lncli connect and this address:
  • Wait until the channel is active before your first buy: a few confirmations, then a few minutes for the network to learn about it.
035d867908cdcdbccda8763bf81a99574dc042e2a6d00e44e9845836b7123d0b7d@ywcqvtf3jcntadpjky46z7hwz3jx5jz43qa6m4qtqtczp5ab5wljxaad.onion:9735

The Linux guide's Before you buy has what to try if a payment finds no route. The network map shows the public channel graph.

Your node opens one channel to a well-connected node; payments reach any shop from there. Your node well-connected node SHOPS 20,000–50,000 sat
One channel is enough to start. XBT's Lightning network is young and small, so a route may not exist; a direct channel to the shop always works.

Then

Four steps in the app.

  1. Make your approval key and keep its backup file. The backup file is not your passphrase: keep both.
  2. Sign the safe starter rules (Settings → Spending rules). They allow 2,000 sat a payment, 10,000 a day and 30,000 a week, cap what any one shop is paid, and ask you above 1,000.
  3. Confirm Pay with real money (Settings → Your node), and press Start paying.
  4. Allow a seller (Services → Sellers). The app offers the demo shop, Lightning Stream Genesis, in one click; sign to allow it.

Source and releases

Open source, on GitHub.

Licensed under MIT or Apache-2.0, at your option. The images are published on GitHub's container registry and pinned by digest in each package.

Build it yourself

On Ubuntu 24.04, with git, build-essential and Rust stable from rustup.rs. CI builds, tests and runs clippy on Rust 1.98.0 on every push; the minimum is 1.90.

git clone https://github.com/AwokenLazarus/Lightning-Stream.git && cd Lightning-Stream
ulimit -n 4096    # the tests open many loopback connections at once
cargo test -j2 --workspace --locked
cargo build --release -p xbt-signer -p xbt-wallet-mcp -p xbt-wallet-ui

Updating and removing

Umbrel

Update from the store; your keys, rules and settings stay. Before an uninstall, the app's Your node page lists the keys to revoke on your node.

StartOS

StartOS shows an update badge on the service. To remove it, uninstall, then revoke Lightning Stream's access in Lightning Fork, and delete the shop's keys there if you made them.

Linux

git pull and install.sh again keeps your answers, keys and rules. uninstall.sh removes the containers and images, then, after you type yes, the data folder.