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
File details
Details for the file squeaknode-0.3.1.tar.gz
.
File metadata
- Download URL: squeaknode-0.3.1.tar.gz
- Upload date:
- Size: 1.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.9.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e94b91fcabb32dfff427d3e4529c2cf0c843b2fdbb0d56d4af9b46d525be1286 |
|
MD5 | e287e27d9fa00881704d70791b507749 |
|
BLAKE2b-256 | 6cbdec2aa9b80305b71212f92568523eac7a69087c6adedbdd7e5928db74cf01 |
Provenance
File details
Details for the file squeaknode-0.3.1-py2.py3-none-any.whl
.
File metadata
- Download URL: squeaknode-0.3.1-py2.py3-none-any.whl
- Upload date:
- Size: 1.7 MB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.9.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0d7ebad752801d2fdf3d260849b8d64959c016c1c692fc531ade14f75c52615a |
|
MD5 | d535dd95ee1ab5b6aa73f14b33a1535e |
|
BLAKE2b-256 | 405898e55b79154b7c9dadfed34c71e132558f72e56df9449c674fc443f138b7 |