Headless chainstate relay server for Bitcoin Pocket Node.
Serves validated Bitcoin chainstate over Tor so Pocket Node phones can bootstrap a full node without trusting a third party. Speaks the same HTTP protocol as the phone-to-phone sharing feature.
- Runs a pruned
bitcoindand keeps chainstate current - Serves chainstate snapshots via the same HTTP API the app uses for phone-to-phone sharing
- Exposes the server as a Tor hidden service (
.onionaddress) - Pocket Node's existing
ShareClientconnects without modification
| Endpoint | Description |
|---|---|
GET / |
Landing page (browser-friendly) |
GET /info |
Node info: height, version, filters |
GET /manifest |
File list with sizes for download planning |
GET /file/{path} |
Individual file download |
GET /peer-limits |
Learned channel opening minimums |
- Linux (Debian 12 recommended)
- Python 3.10+
- Bitcoin Core (bitcoind)
- Tor
# Clone
git clone https://github.com/FreeOnlineUser/pocket-node-relay.git
cd pocket-node-relay
# Install
chmod +x install.sh
sudo ./install.sh
# Configure
cp config.example.yaml config.yaml
nano config.yaml # Set your bitcoind path
# Run
python3 relay.pyPhone (Arti client) --> .onion --> Tor --> localhost:8432 --> relay.py --> bitcoind data
The relay is the server-side equivalent of the phone's ShareServer.kt. Phones connect using their existing ShareClient over Tor, same as they would to another phone on LAN, but routed through onion services.
MIT