StreamingFast Firehose naming conventions
Each Firehose setup has unique naming conventions depending on versioning and the blockchain being targeted.
Note: This page serves as a resource to provide a unified experience for developers working between the Firehose versions.
Each Firehose setup uses two forms of naming. The naming is taken from the target blockchain's protocol name. The two forms establish a long and a short form of the protocol name.
The short form will be the shortest abbreviation of the chain name possible. For Ethereum, the long form would be
ethereumand the short form would be
Important: These naming forms will be referenced throughout the Firehose naming conventions documentation.
For line-based Firehose instrumentations, each line of output should start with the word
FIREfollowed by a simple word defining what data to expect on each line.
Code used for instrumentation within the native node should be bundled together using
firehoseas the name of the module/crate/package is preferable.
Important: The top-level flag
--firehose-enabledcan be used for quickly dumping massive quantities of data to standard output from Firehose.
acmewith the chain you are instrumenting for the following items.
In a sample scenario instrumenting the Tezos blockchain acme would be replaced by the two forms of Tezos; something similar to
If the target blockchain were Tezos the name would be
The binary name will be the first half of the Firehose product name "fire" combined with the short form of the target blockchain. If the target blockchain were Tezos, the name of the binary would be something similar to
The top-level Block protobuf definition convention for a new chain is
\For Tezos it would be
Proto Directory -
The proto directory contains properly namespaced protobuf definitions for the target chain. For example
proto/sf/acme/type/v1/type.protoas the first, and often only, file. For Tezos it would be
Types Directory -
The types directory contains rendered protobuf types and some helpers. For example:
/types/pb/sf/acme/type/v1;pbacme, using the short form package name prefixed with
pb. For Tezos it would be something similar to:
/types/go.mod: to be able to import
github.com/streamingfast/firehose-acme/typesand pull only a limited number of dependencies.
Codec Directory -
codecdirectory contains all of the coding and decoding methods used to manipulate the stream of data coming from the Firehose-enabled Blockchain Node. Note, t_his library is concerned only with the data wrangling, and not the management of nodes._