Near Firehose Indexer is an application that leverages Near Indexer's micro-framework to output protobuf files
Before you proceed, make sure you have the following software installed:
- rustup or Rust version that is mentioned in
rust-toolchain
file in the root of nearcore project.
To run the NEAR Firehose Indexer connected to a network we need to have configs and keys prepopulated. The configs and keys must be placed in a home directory, which has the following structure:
homedir ├── config.json required - node configuration file ├── genesis.json required - node genesis configuration file ├── node_key.json required - node node-key file ├── data │ └── ... optional - you could extra your snapshot here to start the process quicker
To generate configs for localnet do the following:
$ git clone [email protected]:nearprotocol/nearcore.git
$ cd nearcore/tools/indexer/example
$ cargo run --release -- --home-dir ~/.near/localnet init
To generate configs for testnet / betanet do the following
$ cargo run --release -- --home-dir ~/.near/testnet init --chain-id testnet --download
The above code will download the official genesis config and generate necessary configs. You can replace testnet
in the command above to different network ID betanet
.
To run the NEAR Indexer connected to testnet or betanet we need to have configs and keys prepopulated, you can get them with the NEAR Indexer Example like above with a little change. Follow the instructions below to run non-validating node (leaving account ID empty).
$ cargo run --release -- --home-dir ~/.near/testnet init --chain-id testnet --download
$ git clone [email protected]:nearprotocol/nearcore.git
$ cd nearcore/tools/indexer/example
$ cargo run --release -- --home-dir ~/.near/localnet init
$ cargo run --release -- --home-dir ~/.near/localnet init
near-firehose-indexer --home-dir ./near-home-mainnet run
The protobuf definitions in this project requires you to have
- https://github.com/streamingfast/proto
- https://github.com/streamingfast/proto-near
Cloned as sibling of this project. So that ultimately, all three projects are part of parent folder all at the same depth.
To re-generate the Rust bindings of the definitions, use:
cargo run -p firehose-pb