Local deployment without Docker

Firehose Starknet local deployment without Docker

Note: As an example, this page uses the pathfinder full node on the starknet-mainnet network. See the Networks and nodes page for details.

If you use a different node, command arguments will also need to be changed accordingly. Please refer to the node's own documentation for details.

Overview

This guide walks you through installing firehose-starknet and the instrumented pathfinder node from source, and demonstrates running the Firehose stack without using Docker.

Prerequisites

You need these to get started:

  • Go 1.21 or higher

  • A reasonably recent version of Rust

Note: You need to have Rust installed even if you choose to use juno, a Starknet full node implemented in Go, as it uses Rust code under the hood.

Installation

Instrumented pathfinder

To install the instrumented pathfinder (v0.10.2) from source, simply run this cargo command:

PATHFINDER_FORCE_VERSION="v0.10.2" cargo install --locked --git https://github.com/starknet-graph/pathfinder --tag v0.10.2 pathfinder

Verify that the pathfinder command is now available:

firehose-starknet

To install firehose-starknet (v0.2.1) from source, first clone the repository anywhere you like:

Then change directory into the repository:

Make sure you're checked out to the desired version (v0.2.1):

And run the installation command:

The firehose-starknet application is available as the firestark command. Verify that it's been installed successfully:

Running the Firehose stack

First of all, a new data directory should be created for persisting Firehose and node data. This can be any folder you want, here we create a firestark-data folder in the current working directory:

Then, make 4 sub-directories inside it to store data from different components:

Now run the following firestark command, where YOUR_ETHEREUM_URL must be replaced with your own URL for Ethereum Mainnet RPC, to bring up the whole stack:

Once the process is up and running, the Firehose stack will start producing blocks. You can verify that it's working by running this grpcurl command:

The grpcurl command subscribes to the block stream, and you should be able to see new blocks being printed to the console as they become available.

Last updated