Skip to main content

Node for squeak protocol

Project description

squeaknode

GitHub release GitHub CI workflow codecov Join the chat at https://gitter.im/squeaknode/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 structure that:

  • contains 280 utf-8 characters of text
  • contains the hash of another squeak as a reply, if the squeak is 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
  • contains the public key of the recipient, if the text is end-to-end encrypted
  • is encrypted until a lightning payment obtains the secret decryption key
  • has a unique hash that is derived from its contents

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

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.

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

Join our Telegram group!

License

Distributed under the MIT License. See LICENSE file.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

squeaknode-0.2.4.tar.gz (1.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

squeaknode-0.2.4-py2.py3-none-any.whl (1.4 MB view details)

Uploaded Python 2Python 3

File details

Details for the file squeaknode-0.2.4.tar.gz.

File metadata

  • Download URL: squeaknode-0.2.4.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for squeaknode-0.2.4.tar.gz
Algorithm Hash digest
SHA256 0e3aa280cbe47c1581497193657b83086d515add859da6ac5bd16a6195aec6bb
MD5 02afb9ba0edcd6fc0ff71e6aa522ad8f
BLAKE2b-256 e37851476042ff3e89e5dc5eae20d797b690f143e32f4c30fd4c36eeb1d75324

See more details on using hashes here.

File details

Details for the file squeaknode-0.2.4-py2.py3-none-any.whl.

File metadata

  • Download URL: squeaknode-0.2.4-py2.py3-none-any.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for squeaknode-0.2.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 e775a84d3bbec0c0269c2f409ef7dfa5920923b76e795e412a153300ec71fd50
MD5 0247b377e877ee80d7efd54fbd6a7a66
BLAKE2b-256 41e56fd7ee50ed1aae56ab2af98a8be348dbbf9d0a4fcdc8d2117861eb4bdd8e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page