mirror of
https://github.com/yzernik/squeaknode.git
synced 2026-08-13 12:33:25 +02:00
126 lines
3.4 KiB
Markdown
126 lines
3.4 KiB
Markdown
# squeaknode
|
|
|
|
[](https://github.com/squeaknode/squeaknode/releases)
|
|
[](https://github.com/squeaknode/squeaknode/actions/workflows/ci.yml)
|
|
[](https://codecov.io/gh/squeaknode/squeaknode)
|
|
[](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.
|
|
|
|

|
|
|
|
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 hash
|
|
|
|
The 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` (yzernik@gmail.com). 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).
|