3.9 KiB
Scribe
Scribe is a python library for building services that use the processed data from the LBRY blockchain in an ongoing manner. Scribe contains a set of three core executable services that are used together:
scribe
(scribe.blockchain.service) - maintains a rocksdb database containing the LBRY blockchain.scribe-hub
(scribe.hub.service) - an electrum server for thin-wallet clients (such as lbry-sdk), provides an api for clients to use thin simple-payment-verification (spv) wallets and to resolve and search claims published to the LBRY blockchain.scribe-elastic-sync
(scribe.elasticsearch.service) - a utility to maintain an elasticsearch database of metadata for claims in the LBRY blockchain
Features and overview of scribe as a python library:
- Uses Python 3.7-3.9 (3.10 probably works but hasn't yet been tested)
- An interface developers may implement in order to build their own applications able to receive up-to-date blockchain data in an ongoing manner (scribe.service.BlockchainReaderService)
- Protobuf schema for encoding and decoding metadata stored on the blockchain (scribe.schema)
- Rocksdb 6.25.3 based database containing the blockchain data (scribe.db)
- A community driven performant trending algorithm for searching claims (code)
Installation
Scribe may be run from source, a binary, or a docker image. 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.
Prebuilt docker image
docker pull lbry/scribe:latest-release
Build your own docker image
git clone https://github.com/lbryio/scribe.git
cd scribe
docker build -f ./docker/Dockerfile.scribe -t lbry/scribe:development .
Install from source
Scribe has been tested with python 3.7-3.9. Higher versions probably work but have not yet been tested.
- 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 .
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.
docker-compose
From source
To start scribe, run the following (providing your own args)
scribe --db_dir /your/db/path --daemon_url rpcuser:rpcpass@localhost:9245
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.