Node for squeak protocol
Project description
squeaknode
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.
Installation
Requirements
- a Bitcoin node
- an LND node
- Python 3.6 or later
Optional
- a Tor SOCKS5 proxy (you can open Tor Browser and run it in the background)
Step 1. Create the configuration
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.
Step 2. Install squeaknode:
pip install squeaknode
Or install from source
python3 -m venv venv
source venv/bin/activate
pip install .
Step 3. Start squeaknode:
squeaknode --config config.ini
Go to http://localhost:12994/ and use the username/password in config.ini to log in.
Test
Unit tests:
Requirements
- tox
make test
Integration tests:
Requirements
- docker-compose
- jq
make itest
Release + Commit Verification
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.
Telegram
License
Distributed under the MIT License. See LICENSE file.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for squeaknode-0.3.5-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4846ee6238c024c16d964dff4e4f4abafd759a4a0965581badeef26d791f8e22 |
|
MD5 | 6658f171ed86582515420041acac438c |
|
BLAKE2b-256 | 78d763cd946e8ec23a2d64ba8574c3b6c6994a4c9296e57a2021a0ae91e344ad |