- Setup
rustlanguage env. - Build service using just.
- Get the release binary.
just buildRunning indexer service requires the following external dependencies:
- Docker
- Docker Compose
- PostgreSQL
- Bitcoin RPC - due to limitations of the rpc crate that we use, we can work only with
bitcoindRPC with user/password authorization and as address must be set IP address, not a domain.
- PostgreSQL application's main database
- Redis cache layer
To run the service locally, you need to have several services running in the background. For reference, this is what my local setup looks like:
## Start indexer and api-server separatedly
env RUST_LOG=info ./orbtc -c path/to/config.toml api-server
# in the another shell
env RUST_LOG=info ./orbtc -c path/to/config.toml indexer
- Compile
orbtcwith firehose support:
cargo build --release -p orbtc --features firehose
cp target/release/orbtc ./bin/
cp target/release/orbtc-api ./bin/
cp target/release/orbtc-indexer ./bin/-
Add
firehose_api_keyfield toconfig.toml. -
All other steps are same.
All required instructions and configurations examples can be found in Deployment Guide
- Install
perf - Install
hotspot- https://github.com/KDAB/hotspot/releases - Install
cargo-flamegraph- https://github.com/flamegraph-rs/flamegraph
How to
- https://rust-lang.github.io/packed_simd/perf-guide/prof/linux.html
- https://nnethercote.github.io/perf-book/profiling.html
This project is open source under the Apache 2.0 license.