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.
Metadata
Release files for squeaknode 0.3.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| squeaknode-0.3.5.tar.gz | 1.6 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| squeaknode-0.3.5-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 3.3 MB
Release files / squeaknode-0.3.5.tar.gz
| Download URL | squeaknode-0.3.5.tar.gz |
|---|---|
| Size | 1.6 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1e051dc4c7ddd767e116daee9ab4c7ec0e385a94b5c03a4ccadc63c58cd94594
|
|
BLAKE2b-256 checksum How to use checksums |
c8de6bdc18d1d5d7a3a94cd2f12debcb2eae6df0a1d001b8e9633fdb6be6b94c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.13
|
Release files / squeaknode-0.3.5-py2.py3-none-any.whl
| Download URL | squeaknode-0.3.5-py2.py3-none-any.whl |
|---|---|
| Size | 1.7 MB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
4846ee6238c024c16d964dff4e4f4abafd759a4a0965581badeef26d791f8e22
|
|
BLAKE2b-256 checksum How to use checksums |
78d763cd946e8ec23a2d64ba8574c3b6c6994a4c9296e57a2021a0ae91e344ad
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.13
|