No description
Find a file
Jonathan Zernik 68e69e55c8
Use http for peer connection (#2002)
* Got basic web server running for peer

* Got squeak route and lookup route working

* Got secret key route working

* Got offer endpoint working

* Remove old comment

* Move peer server code to server subdir

* Create client subdir for peer client

* Return empty list for lookup when pubkeys is empty

* Add peer client and network controller class

* Remove old network code

* Remove old block subscription worker

* Remove network handler class

* Remove more old classes

* Add back twitter forwarder worker

* Remove download methods from controller

* Add websocket endpoint

* Add websocket subscribe method

* Add websocket client library

* Fetch squeaks from peer (slowly) on UI timeline load

* Fetch squeaks from peer (slowly) on UI pubkey squeaks load

* Got download squeaks working with HTTP requests

* Fixed external address method in controller

* Remove download pubkey squeak button and action

* Remove unused connection displays from peer ana peers page

* Fix 404 not found for offer endpoint

* Better handling of null cases in peer client downloader

* Simplify peer downloader

* Create subclass for range download

* Got single squeak download working

* Fix itest for get external address
2022-03-17 14:38:46 -07:00
.github/workflows Fix name of github workflow for docker build (#1969) 2022-02-27 00:42:24 -08:00
docker Upgrade lnd in docker (#1852) 2021-12-14 06:26:16 -08:00
docs Show screenshot in readme (#1966) 2022-02-23 17:26:19 -08:00
frontend Use http for peer connection (#2002) 2022-03-17 14:38:46 -07:00
itests Use http for peer connection (#2002) 2022-03-17 14:38:46 -07:00
proto Display private squeaks (#1914) 2021-12-28 18:40:09 -08:00
squeaknode Use http for peer connection (#2002) 2022-03-17 14:38:46 -07:00
tests Use http for peer connection (#2002) 2022-03-17 14:38:46 -07: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 Simplify test run in github action (#1921) 2021-12-29 19:18:13 -08:00
.pre-commit-config.yaml Simplify test run in github action (#1921) 2021-12-29 19:18:13 -08: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 Use python venv (#1920) 2021-12-29 18:48:53 -08: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
PGP.txt Add PGP public key file. (#1935) 2022-01-05 13:13:51 -08:00
README.md Fix link to CI workflow in readme link (#1972) 2022-02-28 18:19:25 -08:00
requirements-dev.txt Simplify test run in github action (#1921) 2021-12-29 19:18:13 -08:00
requirements-itest.txt Use new squeaklib with 32 byte pub key (#1970) 2022-02-27 21:29:49 -08:00
requirements.txt Use http for peer connection (#2002) 2022-03-17 14:38:46 -07:00
setup.cfg Add long description to setup.cfg (#1828) 2021-11-27 22:23:02 -08:00
setup.py Use python venv (#1920) 2021-12-29 18:48:53 -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 Simplify test run in github action (#1921) 2021-12-29 19:18:13 -08:00

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.

Screenshot from 2021-11-11 04-17-41

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.