Qu'est-ce qu'un Firehose blockchain ?
Mis à jour en août 2026
Firehose est une couche d'extraction de données blockchain construite par StreamingFast. Elle instrumente un nœud blockchain pour capturer tout ce qui se passe pendant l'exécution des blocs, l'écrit dans des fichiers plats, et le sert sous forme de flux — de sorte que le même système fournit l'historique complet de la chaîne et les données en direct à la tête de chaîne.
Le nom est aussi utilisé de façon générique pour désigner « un flux à haut débit de données blockchain », mais Firehose renvoie spécifiquement à cette famille de composants open source, qui constitue une brique centrale de l'infrastructure de données de The Graph.
Quel problème résout-il ?
Extraire des données d'un nœud blockchain passe normalement par le JSON-RPC. Cela fonctionne pour des consultations ponctuelles et s'effondre en tant que pipeline de données : c'est lent sous charge, la forme des réponses varie d'un client à l'autre, et lire de larges plages d'historique implique un nombre énorme d'allers-retours séquentiels.
Firehose inverse cette logique. Plutôt que d'interroger un nœud à répétition, un nœud instrumenté émet tout au fur et à mesure de son exécution, une seule fois. Cette sortie est stockée sous forme de fichiers plats que n'importe quel nombre de consommateurs peut lire en parallèle — sans re-requêtage, sans limite de débit sur vos propres données, sans nœud sous pression.
Que capture Firehose que le RPC ne capture pas ?
C'est la partie la plus souvent manquée. Firehose enregistre le détail d'exécution de chaque bloc, pas seulement ses résultats publiés :
| RPC classique / indexation basée sur les logs | Firehose | |
|---|---|---|
| Événements et logs | Oui | Oui |
| Reçus de transaction | Oui | Oui |
| Transactions internes / arbres d'appels | Généralement non | Oui |
| Changements d'état | Non | Oui |
| Changements de solde | Non | Oui |
Si vous avez déjà eu besoin de transactions internes et découvert que votre indexeur ne pouvait tout simplement pas les voir, c'est la raison. Un contrat qui déplace de la valeur sans émettre d'événement est invisible pour une indexation basée sur les logs et pleinement visible pour Firehose.
Comment gère-t-il les réorganisations de chaîne ?
Chaque bloc envoyé par Firehose porte un curseur identifiant sa position exacte dans la chaîne, y compris le contexte de fork. Si un consommateur se déconnecte, il se reconnecte avec son dernier curseur et reprend précisément là où il s'était arrêté. Si la chaîne se réorganise, le curseur permet au flux de décrire ce qui a été annulé plutôt que de le sauter silencieusement.
C'est pourquoi les consommateurs de Firehose peuvent offrir des garanties de fiabilité que les pipelines basés sur le polling ne peuvent pas offrir.
Quels sont les composants ?
Un nœud instrumenté produit les données. Un Reader les capture, un Merger consolide les blocs en fichiers, un Relayer distribue les blocs en direct, et un serveur gRPC sert les flux aux consommateurs. Exécuter plusieurs Readers leur permet de se concurrencer pour livrer chaque bloc en premier, ce qui réduit la latence et supprime un point unique de défaillance.
Substreams est le moteur de transformation qui s'exécute au-dessus de ces données.
Questions fréquentes
Firehose est-il la même chose que Substreams ? Non. Firehose extrait et sert des données blockchain brutes ; Substreams les transforme. Firehose est la source, Substreams est la couche de calcul. Voir la comparaison complète.
Dois-je exécuter mon propre nœud pour utiliser Firehose ? Non. Vous pouvez auto-héberger la pile complète, ou consommer des endpoints Firehose et Substreams hébergés via thegraph.market sans exploiter la moindre infrastructure.
Firehose est-il open source ? Oui, sous licence Apache 2.0. Le code source est sur github.com/streamingfast/firehose-core.
Vous voulez les données sans exploiter la pile ? Obtenez une clé API sur thegraph.market — aucune information personnelle requise.
Voir aussi : Qu'est-ce que Substreams ? · Quelle est la différence entre Firehose et Substreams ? · Ai-je besoin d'un nœud d'archive pour obtenir des données historiques ?