No description
Find a file
Jonathan Zernik 5198467889
Use new squeak protocol with schnorr and pubkey as identifier (#1870)
* Got all tests in core dir passing

* Got all tests in db dir passing

* Got tests for admin dir passing

* Got all unit tests passing

* Added migration for squeak table and profile table using new pubkey

* Re-start db migrations with new data-v2.db file

* Fix column type for profile public key

* Got all itests passing

* Log the public key in hex in create contact profile handle fn

* Rename rpc methods to use pubkey instead of address

* Got frontend mostly working with new profile pubkey

* Update frontend to use pubkey instead of address

* Change size of squeak profile detail item

* Update create contact profile dialog to use pubkey

* Update twitter account item to use pubkey

* Include label for pubkey in profile detail item

* Decrease size of profile detail item

* Update frontend build

* Improve logging of requests in handler
2021-12-20 09:28:38 -08:00
.github/workflows Remove build step to echo image digest (#1867) 2021-12-16 06:05:41 -08:00
docker Upgrade lnd in docker (#1852) 2021-12-14 06:26:16 -08:00
docs Rephrase db migration instruction (#1843) 2021-12-11 09:13:43 -08:00
frontend Use new squeak protocol with schnorr and pubkey as identifier (#1870) 2021-12-20 09:28:38 -08:00
itests Use new squeak protocol with schnorr and pubkey as identifier (#1870) 2021-12-20 09:28:38 -08:00
proto Use new squeak protocol with schnorr and pubkey as identifier (#1870) 2021-12-20 09:28:38 -08:00
squeaknode Use new squeak protocol with schnorr and pubkey as identifier (#1870) 2021-12-20 09:28:38 -08:00
tests Use new squeak protocol with schnorr and pubkey as identifier (#1870) 2021-12-20 09:28:38 -08:00
.dockerignore Add get squeaks for address rpc method (#108) 2020-07-21 16:12:26 -07:00
.flake8 Add precommit hooks (#526) 2020-12-28 23:52:32 -08:00
.gitignore Use data classes instead of namedtuples (#508) 2020-12-26 01:00:58 -08:00
.pre-commit-config.yaml Add license headers (#1080) 2021-08-27 18:31:53 -07:00
CHANGELOG.md Update changelog 2021-11-04 22:01:47 -07:00
config-mainnet.ini Add mainnet config.ini file (#652) 2021-01-14 10:25:37 -08:00
config.ini Move tor configs to separate section (#1629) 2021-10-17 23:11:22 -07:00
createdb.sql Fix serialization of payment hash db (#579) 2021-01-08 00:48:16 -08:00
Dockerfile Remove libpq-dev as requirement for standard install (#1442) 2021-09-29 12:37:04 -07:00
LICENSE Update LICENSE (#71) 2020-07-15 16:00:13 -07:00
Makefile Clean up makefile (#570) 2021-01-06 23:47:50 -08:00
MANIFEST.in Fix package python sdist for pypi (#1796) 2021-11-11 02:59:51 -08:00
README.md Add telegram group (#1869) 2021-12-17 05:50:37 -08:00
requirements-dev.txt Upgrade squeaklib to 0.7.5 and fix broken mypy-protobuf (#1375) 2021-09-20 23:09:54 -07:00
requirements-itest.txt Use new squeak protocol with schnorr and pubkey as identifier (#1870) 2021-12-20 09:28:38 -08:00
requirements.txt Use new squeak protocol with schnorr and pubkey as identifier (#1870) 2021-12-20 09:28:38 -08:00
setup.cfg Add long description to setup.cfg (#1828) 2021-11-27 22:23:02 -08:00
setup.py Add long description to setup.cfg (#1828) 2021-11-27 22:23:02 -08:00
start-squeaknode.sh Remove sleep from start script (#1294) 2021-09-15 19:02:17 -07:00
torrc Use docker tor simple (#1847) 2021-12-13 11:36:25 -08:00
tox.ini Add unit test for network connection using connection manager (#1493) 2021-10-04 00:48:46 -07:00

squeaknode

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
  • 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.

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

virtualenv venv
source venv/bin/activate
pip install -r requirements.txt
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

Telegram

Join our Telegram group!

License

Distributed under the MIT License. See LICENSE file.