No description
Find a file
Jack Robison 32b8afe154
more efficient mempool tx refresh
-hopefully safer from the rare RocksIOError without a bare iterate()
2022-03-23 12:10:09 -04:00
docker BlockchainService base class for readers and the writer 2022-03-21 22:57:38 -04:00
scribe more efficient mempool tx refresh 2022-03-23 12:10:09 -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 17:55:52 -04:00
setup.py update certifi 2022-03-17 17:55:47 -04:00

Scribe

scribe (scribe.blockchain.service) - 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 (scribe.hub.service) - 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 (scribe.elasticsearch.service) - 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).
  • Rocksdb based database containing the blockchain data (scribe.db)

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 .

For a detailed explaination of the trending algorithm used for claim search, see this paper

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.