docker | ||
scribe | ||
tests | ||
.gitignore | ||
diagram.png | ||
LICENSE | ||
README.md | ||
setup.py |
Scribe
scribe
maintains a rocksdb database containing the LBRY blockchain and provides an interface for python based services that utilize the blockchain data in an ongoing manner. Scribe includes two implementations of this interface:
scribe-hub
- an electrum server for thin-wallet clients (such as lbry-sdk), provides an api for clients to resolve and search claims published to the LBRY blockchain.scribe-elastic-sync
- a utility to maintain an elasticsearch database of metadata for claims in the LBRY blockchain
Other features and overview of scribe:
- Uses Python 3.7-3.9 (3.10 probably works but hasn't yet been tested)
- Protobuf schema for encoding and decoding metadata stored on the blockchain (scribe.schema).
- Blockchain processor that maintains an up to date rocksdb database (scribe.blockchain.service)
- Rocksdb based database containing the blockchain data (scribe.db)
- Interface for python services to implement in order for them maintain a read only view of the blockchain data (scribe.service)
- Electrum based server for thin-wallet clients like lbry-sdk (scribe.hub.service)
- Elasticsearch sync utility to index all the claim metadata in the blockchain into an easily searchable form (scribe.elasticsearch.service)
Installation
Our releases page contains pre-built binaries of the latest release, pre-releases, and past releases for macOS and Debian-based Linux. Prebuilt docker images are also available.
Usage
Scribe needs either the lbrycrd or lbcd blockchain daemon to be running.
As of block 1124663 (3/10/22) the size of the rocksdb database is 87GB and the size of the elasticsearch volume is 49GB.
To start scribe, run the following (providing your own args)
scribe --db_dir /your/db/path --daemon_url rpcuser:rpcpass@localhost:9245
Running from source
- clone the scribe scribe
git clone https://github.com/lbryio/scribe.git
cd scribe
- make a virtual env
python3.9 -m venv scribe-venv
- from the virtual env, install scribe
source scribe-venv/bin/activate
pip install -e .
Contributing
Contributions to this project are welcome, encouraged, and compensated. For more details, please check this link.
License
This project is MIT licensed. For the full license, see LICENSE.
Security
We take security seriously. Please contact security@lbry.com regarding any security issues. Our PGP key is here if you need it.
Contact
The primary contact for this project is @jackrobison.