No description
Find a file
Jonathan Zernik 1459578859
Use redux for frontend state and actions (#1988)
* Got basic timeline working from todos redux template

* Improve CSS and UI for home page with redux

* Load timeline in homepage on load

* Clear squeaks from timeline on home page load

* Comment out old state and reducers

* Got basic squeak component working with redux

* Show loader when single squeak is loading

* Got ancestor squeaks mostly working

* Fix useeffect trigger on squeak navigate

* Added get replies in squeak redux component

* Show loader for ancestors and replies while loading

* Remove squeak, ancestors, and replies from old state

* Rename todos to timeline

* Remove extra newlines

* Remove filters feature

* Got like and unlike partially working

* Remove old comments

* Got like and unlike thunks working for squeak slice

* Refactor ancestor squeaks into separate slice

* Refactor reply squeaks into separate slice

* Fix function name for select replies status

* Remove remaining reply logic from squeak slice

* Remove unused code from squeak page component

* Get network in slice

* Got like and unlike working in timeline slice

* Got basic make squeak slice working

* Remove old makesqueak component

* Fix make squeak slice thunk

* Remove console log for make squeak status

* Successfully navigate to new squeak page after make squeak

* Remove useHistory and replace with withRouter

* Handle error response in client base query.

* Use slice for signing profiles in make squeak

* Remove old client function

* Rename base request

* Remove old server class

* Use slice for payment summary component

* Remove old commented client API methods

* Comment out old API request methods deprecated by slices

* Got basic sent payments slice working

* Remove console log lines

* Remove console log lines

* Remove old comment

* Got received payments slice working

* Comment unused old API client methods

* Add slice for search component

* Fix search string length check

* Remove unused state from search page component

* Remove search method from old client API

* Got basic signing profiles slice working

* Use slices in profiles page

* Combine signing profile slices into profiles folder

* Remove get profiles methods from old client API

* Move networkslice to network folder

* Organize slices in folders

* Use slice for create signing profile

* Use slice for import signing profile

* Use slice for create contact profile

* Use reducers for create profiles slices in store

* Remove create profile requests from old api

* Remove payment summary request from old api

* Remove get network request from old api

* Remove unused function

* Got basic profile slice working.

* Got delete profile thunk working

* Combine ancestor and reply slices into squeak slice

* Export timeline squeaks status from timeline slice

* Combine timeline thunks into squeak slice

* Rename id for timeline thunk

* Move timeline component into squeak feature folder

* Got loading icon working in search squeaks component

* Combine search slice into squeak slice.

* Combine makesqueak slice into squeak slice.

* Use helper function to replace squeak in squeak state array

* Got like and unlike working in ancestors and replies

* Rename squeak slice to squeaks slice

* Rename sent and received payments status slice fields

* Combine sent payments slice and received payments slice into payments slice

* Combine payment summary slice into payments slice

* Rename status field of signing profiles slice and contact profiles slice

* Combine signing profile slice and contact profiles slice into profiles slice

* Remove old contact profiles slice

* Combine create and import profile slices into profiles slice

* Combine profile slice into profiles slice

* Redirect to profile page on create profile action

* Check profile pubkey before updating following in profiles slice

* Update signing profiles and contact profiles on follow change in slice

* Add profile squeaks to squeaks slice

* Update profile squeaks in slice on follow change

* Update profile name using slice

* Create contact profile from unknown pubkey using slice

* Fetch new profile after creating contact profile from unknown pubjey

* Remove completed todos

* Add thunk to change profile image

* Remove old comments in profiles page

* Got export private key working with slice

* Remove unnecessary todo

* Remove more unused methods from old client API

* Remove old action comments

* Remove more unused methods from old client API

* Remove more unused methods from old client API

* Got clear profile image working with slice

* Remove more unused methods from old client API

* Got delete squeak working with slice

* Remove more unused methods from old client API

* Remove more unused methods from old client API

* Remove accidentally created file

* Remove unused entity adaptors

* Got fetch saved peer working with peers slice

* Delete unused peers file

* Delete unused search function

* Delete unused peer function

* Use peers slice for get connected peers

* Use selector to get connected peer data from slice

* Got connect peer working using slice

* Got disconnect peer working using slice

* Fetch saved peers using slice

* Remove old actions from peers pag

* Use slice to connect peer in peers page

* Use external address slice to fetch and select external address

* Use slice to save peer in peers page

* Use slice to save peer in peer page

* Update current peer in reducer for save peer

* Use slice to delete peer in peer page

* Use slice to set peer autoconnect enabled and disabled in peer page

* Delete old commented calls of actions in peer page

* Remove more unused methods from old client API

* Got buy offer working using slice

* Fetch offers from backend on open buy modal

* Remove todo comment for delete squeak

* Remove more unused methods from old client API

* Remove more unused methods from old client API

* Remove more unused methods from old client API

* Fetch sell price info using slice

* Use sell price slice for all sell price actions

* Got logout working using account slice

* Fixed logout thunk

* Remove unused functions from payments page component

* Remove old action from profiles page

* Remove more unused methods from old client API

* Got download squeak working using slice

* Remove more unused methods from old client API

* Got download pubkey squeaks working

* Fix toggle following in contact profiles list

* Remove old commented actions in squeak card component

* Remove old commented actions

* Remove use of storecontext from all components

* Remove all files in old store directory

* Update frontend build
2022-03-15 00:20:07 -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 redux for frontend state and actions (#1988) 2022-03-15 00:20:07 -07:00
itests Implement unlock private squeak (#1910) 2021-12-28 01:07:59 -08:00
proto Display private squeaks (#1914) 2021-12-28 18:40:09 -08:00
squeaknode Use redux for frontend state and actions (#1988) 2022-03-15 00:20:07 -07:00
tests Improve node init (#1940) 2022-02-13 03:23:11 -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 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 new squeaklib with 32 byte pub key (#1970) 2022-02-27 21:29:49 -08: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.