A peer-to-peer status feed with posts unlocked by Lightning.
Squeaknode allows you to create, view, buy, and sell squeaks.
A squeak is an immutable, signed structure that:
- contains up to 280 utf-8 characters of text, encrypted (can only be decrypted with access to the decryption key obtained by lightning payment)
- contains the height and block hash of the latest bitcoin block
- contains the public key of the author
- contains the public key of the recipient, if the text is end-to-end encrypted
- contains the hash of another squeak, if the squeak is a reply
- can be used to derive a unique hash
The protocol is defined here.
- a Bitcoin node
- an LND node
- Python 3.6 or later
- a Tor SOCKS5 proxy (you can open Tor Browser and run it in the background)
Create a config.ini file and fill in the relevant sections to connect to your Bitcoin node and LND node:
[node]
network=mainnet
[lightning]
backend=lnd
lnd_tls_cert_path=~/.lnd/tls.cert
lnd_macaroon_path=~/.lnd/data/chain/bitcoin/mainnet/admin.macaroon
[bitcoin]
rpc_host=localhost
rpc_port=8332
rpc_user=devuser
rpc_pass=devpass
[tor]
proxy_ip=localhost
proxy_port=9150
[webadmin]
enabled=true
username=devuser
password=devpass
If you want to use c-lightning as the Lightning Network node backend instead of LND, replace the lightning
section with the following:
[lightning]
backend=clightning
clightning_rpc_file=~/.lightning/lightning-rpc
Add any other configs that you need.
pip install squeaknode
Or install from source
python3 -m venv venv
source venv/bin/activate
pip install .
squeaknode --config config.ini
Go to http://localhost:12994/ and use the username/password in config.ini to log in.
- tox
make test
- docker-compose
- jq
make itest
All releases and all maintainer commits as of January 5, 2022 are signed by key D761F27D9B20BA52
(yzernik@gmail.com). The key can be found in this repo and on the Squeaknode website.
Distributed under the MIT License. See LICENSE file.