For the complete documentation index, see llms.txt. This page is also available as Markdown.

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.

We use dummy-blockchain 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 releases

  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

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.

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

Last updated

Was this helpful?