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 structure that:
- contains 280 utf-8 characters of text
- optionally contains the hash of another squeak as a reply
- contains the height and block hash of the latest bitcoin block
- contains the public key of the author, and is signed by the author
- is encrypted until a lightning payment unlocks the text
- has a unique hash that is derived from its contents
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)
Update the config.ini file and fill in the relevant sections to connect to your Bitcoin node and LND node:
[node]
network=mainnet
[lnd]
host=localhost
tls_cert_path=~/.lnd/tls.cert
macaroon_path=~/.lnd/data/chain/bitcoin/mainnet/admin.macaroon
[bitcoin]
rpc_host=localhost
rpc_port=8332
rpc_user=devuser
rpc_pass=devpass
zeromq_hashblock_port=28334
[tor]
proxy_ip=localhost
proxy_port=9150
[webadmin]
enabled=true
username=devuser
password=devpass
Add any other configs that you need.
pip install squeaknode
Or install from source
virtualenv venv
source venv/bin/activate
pip install -r requirements.txt
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
Distributed under the MIT License. See LICENSE file.