No description
Find a file
2022-03-22 12:59:08 -04:00
docker BlockchainService base class for readers and the writer 2022-03-21 22:57:38 -04:00
scribe block scribe-hub and scribe-elastic-sync startup on scribe initially catching up 2022-03-22 12:17:47 -04:00
tests initial 2022-03-08 12:41:51 -05:00
.gitignore initial 2022-03-08 12:41:51 -05:00
diagram.png initial 2022-03-08 12:41:51 -05:00
LICENSE Create LICENSE 2022-03-22 12:28:42 -04:00
README.md Update README.md 2022-03-22 12:59:08 -04:00
setup.py update certifi 2022-03-17 17:55:47 -04:00

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

  1. clone the scribe scribe
git clone https://github.com/lbryio/scribe.git
cd scribe
  1. make a virtual env
python3.9 -m venv scribe-venv
  1. 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.