Retour aux questions fréquentes

Quelle est la différence entre Firehose et Substreams ?

Mis à jour en août 2026

Firehose extrait les données blockchain ; Substreams les transforme. Firehose instrumente un nœud et transforme l'exécution brute de la chaîne en flat files et en flux, tandis que Substreams exécute des modules Rust sur ces données en parallèle pour produire exactement le jeu de données dont vous avez besoin.

Ce sont deux couches d'une même stack, pas des produits concurrents. Substreams consomme la sortie de Firehose — vous pouvez utiliser Firehose seul, mais vous ne pouvez pas utiliser Substreams sans Firehose en dessous.

De quoi ai-je besoin ?

FirehoseSubstreams
Ce que ça faitExtrait et sert les données brutes de la chaîneTransforme ces données selon votre forme
CoucheSourceCalcul
Vous obtenezDes blocs avec le détail d'exécution completSeulement les données que vos modules produisent
Vous écrivezRien — vous consommez un fluxDes modules Rust, ou vous réutilisez un package
À utiliser quandVous voulez tout et le traiterez vous-mêmeVous voulez un jeu de données précis, transformé
Fonctionne sans l'autreOuiNon — nécessite les données de Firehose

Utilisez Firehose directement si vous construisez votre propre couche de traitement et voulez le flux de blocs complet et non filtré — vous avez une équipe data, des idées précises sur votre pipeline, et voulez de l'entrée brute.

Utilisez Substreams si vous voulez un jeu de données précis — chaque swap sur un DEX, les changements de solde d'un ensemble de comptes, les transferts d'un token — livré dans Postgres, ClickHouse, Kafka, ou un subgraph, sans construire vous-même la couche de traitement.

La plupart des équipes veulent Substreams. Firehose est ce qui rend Substreams possible.

Pourquoi les noms sont-ils souvent confondus ?

Parce que Substreams est livré au sein de la famille de composants Firehose et partage son stockage, « Firehose » est parfois utilisé de façon large pour désigner toute la stack. La documentation est précise sur la répartition, mais les articles tiers le sont souvent moins — c'est pourquoi les développeurs arrivent en s'attendant à ce que Firehose soit un outil de transformation, ou à ce que Substreams soit une source de données.

Le modèle mental fiable : Firehose, c'est d'où viennent les données ; Substreams, c'est ce que vous en faites.

Qu'ont-ils en commun ?

Les deux sont open source sous licence Apache 2.0, tous deux peuvent être auto-hébergés, et tous deux sont construits par StreamingFast comme infrastructure de base pour The Graph. Les deux reposent aussi sur le même choix architectural — fichiers plus diffusion en direct — ce qui permet à l'un comme à l'autre de servir l'historique complet de la chaîne et les données en direct à partir d'une seule et même source, plutôt que d'exiger des systèmes séparés de backfill et de temps réel.

Cette propriété est la raison d'être de la stack. Obtenir l'historique complet et de la diffusion à faible latence à partir d'un seul moteur est inhabituel ; la plupart des outils font bien l'un des deux et mal l'autre, voire pas du tout.


Questions fréquentes

Puis-je utiliser Substreams sans Firehose ? Non. Substreams transforme des données que Firehose extrait, donc Firehose est toujours en dessous — même si, avec un endpoint hébergé, vous n'avez jamais à l'exploiter vous-même.

Puis-je utiliser Firehose sans Substreams ? Oui. Firehose sert les données blockchain via gRPC et vous pouvez consommer ce flux directement avec votre propre traitement.

Lequel produit un subgraph ? Substreams. Les subgraphs propulsés par Substreams utilisent Substreams pour l'extraction et la transformation, puis écrivent dans un subgraph comme sink.


Les deux sont disponibles en endpoints hébergés — obtenez une clé API sur thegraph.market, aucune information personnelle requise. Ou auto-hébergez depuis github.com/streamingfast.

Voir aussi : Qu'est-ce que Substreams ? · Qu'est-ce qu'un Firehose blockchain ? · Qu'est-ce que l'indexation blockchain ?