| .. | ||
| tests | ||
| .gitignore | ||
| art.py | ||
| pyproject.toml | ||
| README.md | ||
| sauron.py | ||
| uv.lock | ||
Sauron
A Bitcoin backend plugin relying on Esplora.
About
It allows C-lightning to run without needing a local bitcoind, and can be either
self-hosted (Esplora is Open Source, and self hosting it is basically a docker one-liner).
This is still a WIP, so is the API C-lightning side. So not to be used for real.
Run
You need to:
- have uv installed
- disable the default Bitcoin backend (
bcli) - register sauron
- provide the API endpoint you want to use
Here is a fully reptilian example running against blockstream.info:
lightningd --mainnet --disable-plugin bcli --plugin $PWD/sauron.py --sauron-api-endpoint https://blockstream.info/api/
Here is an example running against mutinynet.com:
lightningd --signet --disable-plugin bcli --plugin $PWD/sauron.py --sauron-api-endpoint https://mutinynet.com/api/
You can use also proxy your requests through Tor by
specifying a SOCKS proxy to use with the --sauron-tor-proxy startup option, in
the form address:port.
Hidden services are also supported :
lightningd --testnet --disable-plugin bcli --plugin $PWD/sauron.py --sauron-tor-proxy localhost:9050 --sauron-api-endpoint http://explorerzydxu5ecjrkwceayqybizmpjjznk5izmitf2modhcusuqlid.onion/testnet/api/
If you use systemd to start CLN, you must have uv in the PATH that systemd uses, which is likely different than the PATH from your shell. Most uv installation methods install uv into your user's home directory (~/.local/bin or ~/.cargo/bin), which systemd cannot access.
You can either:
Option 1: Install uv system-wide (recommended):
curl -LsSf https://astral.sh/uv/install.sh | sudo env UV_INSTALL_DIR="/usr/local/bin" sh
Option 2: Copy your existing user installation:
sudo cp "$(command -v uv)" /usr/local/bin/uv
Option 3: Configure your systemd service to use a custom PATH (see systemd documentation).
To verify uv is accessible to systemd:
sudo systemd-run --user --wait command -v uv
This should output /usr/local/bin/uv.