readme
This commit is contained in:
parent
ca2ca23892
commit
1307902eb6
1 changed files with 31 additions and 14 deletions
45
README.md
45
README.md
|
@ -1,33 +1,38 @@
|
||||||
## Scribe
|
## Scribe
|
||||||
|
|
||||||
`scribe` ([scribe.blockchain.service](https://github.com/lbryio/scribe/tree/master/scribe/blockchain/service.py)) - maintains a [rocksdb](https://github.com/lbryio/lbry-rocksdb) database containing the [LBRY blockchain](https://github.com/lbryio/lbrycrd) and provides an [interface](https://github.com/lbryio/scribe/tree/master/scribe/service.py) for python based services that utilize the blockchain data in an ongoing manner. Scribe includes two implementations of this interface:
|
Scribe is a python library for building services that use the processed data from the [LBRY blockchain](https://github.com/lbryio/lbrycrd) in an ongoing manner. Scribe contains a set of three core executable services that are used together:
|
||||||
* `scribe-hub` ([scribe.hub.service](https://github.com/lbryio/scribe/tree/master/scribe/hub/service.py)) - 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` ([scribe.blockchain.service](https://github.com/lbryio/scribe/tree/master/scribe/blockchain/service.py)) - maintains a [rocksdb](https://github.com/lbryio/lbry-rocksdb) database containing the LBRY blockchain.
|
||||||
|
* `scribe-hub` ([scribe.hub.service](https://github.com/lbryio/scribe/tree/master/scribe/hub/service.py)) - 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](https://github.com/lbryio/scribe/tree/master/scribe/elasticsearch/service.py)) - a utility to maintain an elasticsearch database of metadata for claims in the LBRY blockchain
|
* `scribe-elastic-sync` ([scribe.elasticsearch.service](https://github.com/lbryio/scribe/tree/master/scribe/elasticsearch/service.py)) - a utility to maintain an elasticsearch database of metadata for claims in the LBRY blockchain
|
||||||
|
|
||||||
Other features and overview of scribe:
|
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)
|
* 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](https://github.com/lbryio/scribe/tree/master/scribe/schema)).
|
* 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](https://github.com/lbryio/scribe/tree/master/scribe/service.py))
|
||||||
|
* Protobuf schema for encoding and decoding metadata stored on the blockchain ([scribe.schema](https://github.com/lbryio/scribe/tree/master/scribe/schema))
|
||||||
* [Rocksdb](https://github.com/lbryio/lbry-rocksdb/) based database containing the blockchain data ([scribe.db](https://github.com/lbryio/scribe/tree/master/scribe/db))
|
* [Rocksdb](https://github.com/lbryio/lbry-rocksdb/) based database containing the blockchain data ([scribe.db](https://github.com/lbryio/scribe/tree/master/scribe/db))
|
||||||
|
* [A community driven performant trending algorithm](https://raw.githubusercontent.com/lbryio/scribe/master/scribe/elasticsearch/trending%20algorithm.pdf) for searching claims ([code](https://github.com/lbryio/scribe/blob/master/scribe/elasticsearch/fast_ar_trending.py))
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
|
Scribe may be run from source, a binary, or a docker image.
|
||||||
Our [releases page](https://github.com/lbryio/scribe/releases) contains pre-built binaries of the latest release, pre-releases, and past releases for macOS and Debian-based Linux.
|
Our [releases page](https://github.com/lbryio/scribe/releases) contains pre-built binaries of the latest release, pre-releases, and past releases for macOS and Debian-based Linux.
|
||||||
Prebuilt [docker images](https://hub.docker.com/r/lbry/scribe/latest-release) are also available.
|
Prebuilt [docker images](https://hub.docker.com/r/lbry/scribe/latest-release) are also available.
|
||||||
|
|
||||||
## Usage
|
### Prebuilt docker image
|
||||||
|
|
||||||
Scribe needs either the [lbrycrd](https://github.com/lbryio/lbrycrd) or [lbcd](https://github.com/lbryio/lbrycrd) blockchain daemon to be running.
|
`docker pull lbry/scribe:latest-release`
|
||||||
|
|
||||||
As of block 1124663 (3/10/22) the size of the rocksdb database is 87GB and the size of the elasticsearch volume is 49GB.
|
### Build your own docker image
|
||||||
|
|
||||||
To start scribe, run the following (providing your own args)
|
|
||||||
|
|
||||||
```
|
```
|
||||||
scribe --db_dir /your/db/path --daemon_url rpcuser:rpcpass@localhost:9245
|
git clone https://github.com/lbryio/scribe.git
|
||||||
|
cd scribe
|
||||||
|
docker build -f ./docker/Dockerfile.scribe -t lbry/scribe:development .
|
||||||
```
|
```
|
||||||
|
|
||||||
## Running from source
|
### Install from source
|
||||||
|
|
||||||
|
Scribe has been tested with python 3.7-3.9. Higher versions probably work but have not yet been tested.
|
||||||
|
|
||||||
1. clone the scribe scribe
|
1. clone the scribe scribe
|
||||||
```
|
```
|
||||||
|
@ -44,9 +49,21 @@ source scribe-venv/bin/activate
|
||||||
pip install -e .
|
pip install -e .
|
||||||
```
|
```
|
||||||
|
|
||||||
## Trending
|
## Usage
|
||||||
|
|
||||||
For a detailed explaination of the [trending algorithm](https://github.com/lbryio/scribe/blob/master/scribe/elasticsearch/fast_ar_trending.py) used for claim search, see [this](https://raw.githubusercontent.com/lbryio/scribe/master/scribe/elasticsearch/trending%20algorithm.pdf) paper
|
Scribe needs either the [lbrycrd](https://github.com/lbryio/lbrycrd) or [lbcd](https://github.com/lbryio/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
|
## Contributing
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue