Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/squeaknode/squeaknode
Peer-to-peer status feed 📜 with posts unlocked by Lightning ⚡
https://github.com/squeaknode/squeaknode
bitcoin lightning p2p self-hosted social-media
Last synced: 2 months ago
JSON representation
Peer-to-peer status feed 📜 with posts unlocked by Lightning ⚡
- Host: GitHub
- URL: https://github.com/squeaknode/squeaknode
- Owner: squeaknode
- License: mit
- Created: 2020-02-23T03:34:18.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-03-14T23:54:41.000Z (almost 2 years ago)
- Last Synced: 2024-10-09T10:31:04.843Z (3 months ago)
- Topics: bitcoin, lightning, p2p, self-hosted, social-media
- Language: Python
- Homepage: https://squeaknode.org
- Size: 164 MB
- Stars: 35
- Watchers: 2
- Forks: 9
- Open Issues: 81
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# squeaknode
[![GitHub release](https://img.shields.io/github/release/squeaknode/squeaknode.svg)](https://github.com/squeaknode/squeaknode/releases)
[![GitHub CI workflow](https://github.com/squeaknode/squeaknode/actions/workflows/ci.yml/badge.svg)](https://github.com/squeaknode/squeaknode/actions/workflows/ci.yml)
[![codecov](https://codecov.io/gh/squeaknode/squeaknode/branch/master/graph/badge.svg?token=VV8WW3VR3Y)](https://codecov.io/gh/squeaknode/squeaknode)
[![Join the chat at https://gitter.im/squeaknode/squeaknode](https://badges.gitter.im/squeaknode/squeaknode.svg)](https://gitter.im/squeaknode/squeaknode?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)A peer-to-peer status feed with posts unlocked by Lightning.
![Screen capture](docs/images/screen-capture.gif)
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 hashThe protocol is defined [here](https://github.com/yzernik/squeak/blob/master/docs/PROTOCOL.md).
## 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](https://github.com/ElementsProject/lightning) as the Lightning Network node backend instead of [LND](https://github.com/lightningnetwork/lnd), replace the `lightning` section with the following:
```
[lightning]
backend=clightning
clightning_rpc_file=~/.lightning/lightning-rpc
```Add any other [configs](docs/configuration.md) 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` ([email protected]). The key can be found [in this repo](https://github.com/squeaknode/squeaknode/blob/master/PGP.txt) and [on the Squeaknode website](https://squeaknode.org/pgp.txt).
## Telegram
[Join our Telegram group!](https://t.me/squeaknode)
## License
Distributed under the MIT License. See [LICENSE file](LICENSE).