githubEdit

Deployment Guide

This deployment guide provides chain-agnostic instructions for deploying Firehose. The concepts, commands, and deployment patterns shown here can be applied to any blockchain that has Firehose support.

circle-info

We use dummy-blockchainarrow-up-right as our example throughout this guide. This is a simple test blockchain that demonstrates all Firehose concepts without the complexity of a real blockchain.

Prerequisites

Before starting, you'll need:

  1. Firecore binary: Download from firehose-core releasesarrow-up-right

  2. Dummy blockchain binary: Install the example blockchain client

Installing Dummy Blockchain

# Install the dummy blockchain binary
go install github.com/streamingfast/dummy-blockchain@latest

# Verify installation
dummy-blockchain --help

The dummy blockchain can be run standalone with:

dummy-blockchain start --store-dir=<data-dir> --block-rate=180

Deployment Options

Choose your deployment approach based on your needs:

Recommended for: Development, testing, small-scale production

  • All components run on one machine

  • Shared local storage between components

  • Simpler setup and management

  • Lower resource requirements

Recommended for: Production, high-availability, scalability

  • Components run as separate processes/services

  • Shared object storage (cloud storage)

  • Horizontal scalability

  • Production-ready architecture

Architecture Overview

Both deployment patterns use the same core Firehose architecture:

  1. Reader: Manages the blockchain node and extracts block data

  2. Merger: Combines one-block files into merged block files

  3. Relayer: Streams live blocks to consumers

  4. Firehose: Serves historical and live block data via gRPC

  5. Substreams Tier 1: Handles consumer requests and coordinates parallel processing

  6. Substreams Tier 2: Executes WASM modules for parallel historical data transformation

circle-info

About Substreams: Substreams is a high-performance parallel data transformation engine that runs alongside Firehose. It enables users to define custom data pipelines in Rust/WASM that execute directly within your infrastructure. Running Substreams adds significant value for users while reusing the same block storage as Firehose. See Substreams Component for details.

circle-info

For detailed information about each component, see the Architecture Components documentation.

Last updated

Was this helpful?