The format is based on Keep a Changelog, and this project adheres to Semantic Versioning. See MAINTAINERS.md for instructions to keep up to date.
- Automatically setting the flag
--firehose-deep-mind-genesis
onmindreader
nodes if theirmindreader-node-bootstrap-data-url
config value is sets to agenesis.json
file. - Added firehose client command
sfeth tools firehose-client <firehose:endpoint> <start> [stop]
with filter/index options like--call-filters=0xAddr1+0xAddr2:,0xAddr3:0xMethod1+0xmethod2
--common-first-streamable-block
to allow partial block production- Added
tools merge <src-url> <dst-url> <start-block> <end-block> [--delete] [--force]
as an interactive tool to perform ad-hoc merging (can be used to process large chunks of one-block-files in parallel)
- Default verbosity is to show all loggers as
INFO
level (previously only loggers whose app's name wassfeth
were atINFO
by default). The net effect with previous version is that now-v
will activateDEBUG
logs by default (instead of-vv
). - All logs now output on STDERR instead of stdout like previously
- Merger now exits with an error code if it detects a hole in one-block-file (30 blocks is enough to trigger this behavior) (instead of waiting forever)
- Node-manager now exits with an error code if it should be merging but detects a hole between the previous one-block-files and the first block that it receives (you must manually delete the blocks lying around)
- Note to other Firehose implementors: we changed all command line flags to fit the required/optional format referred to here: https://en.wikipedia.org/wiki/Usage_message
- Removed merger 'state file' (and
merger-state-file
flag) -- merger now finds where it should merge based oncommon-first-streamable-block
and existing merged files... - Removed
merger-next-exclusive-highest-block-limit
, it will now ONLY base its decision based oncommon-first-streamable-block
, up to the last found merged block
-
Requires Firehose instrumented binary with instrumentation version 2.0 (tagged
fh2
) -
Produced / consumed block Protobuf payload version bumped 1 -> 2
- Fixed Gas Price on dynamic transactions (post-London-fork on ethereum mainnet)
- Added "Total Ordering" concept, 'Ordinal' field on all events within a block (trx begin/end, call, log, balance change, etc.)
- Added TotalDifficulty field to ethereum blocks
-
Changed default values for two top-level flags
sfeth --log-to-file
defaulted totrue
and is nowfalse
. Be explicit if you want to log to a file.sfeth --config-file
defaulted to./sf.yaml
and failed if not present, and now defaults to""
(doesn't fail is nothing is specified)
-
Deprecated the "Call" and "log" indexes, now replaced by "combined" index
- Generate new indices like this:
sfeth tools generate-combined-index --combined-indexes-size=1000 <src-blocks-url> <dest-index-url> <irreversible-index-url> <start-block> [stop-block]
- Delete previous indices named
xxxxxxxxxx.yyy.calladdrsig.idx
andxxxxxxxxxx.yyy.logaddrsig.idx
- Generate new indices like this:
- Removed
firehose-blocks-store-urls
flag (feature for using multiple stores now deprecated -> causes confusion and issues with block-caching), usecommon-blocks-sture-url
instead.
- Fixed problem using S3 provider where the S3 API returns empty filename (we ignore at the consuming time when we receive an empty filename result).
- Fixed an issue where the merger could panic on a new deployment
- Fixed an issue where the
merger
would get stuck when too many (more than 2000) one-block-files were lying around, with block numbers below the current bundle high boundary.
- Renamed common
atm
4 flags toblocks-cache
:--common-blocks-cache-{enabled|dir|max-recent-entry-bytes|max-entry-by-age-bytes}
- Fixed
tools check merged-blocks
block hole detection behavior on missing ranges (bumpedsf-tools
) - Fixed a deadlock issue related to s3 storage error handling (bumped
dstore
)
- Added
tools download-from-firehose
command to fetch blocks and save them as merged-blocks files locally. - Added
cloud-gcp://
auth module (bumpeddauth
)
- substreams-alpha client
- gke-pvc-snapshot backup module
- Fixed a potential 'panic' in
merger
on a new chain
- Fixed an issue where the
merger
would get stuck when too many (more than 2000) one-block-files were lying around, with block numbers below the current bundle high boundary.
- Renamed common
atm
4 flags toblocks-cache
:--common-blocks-cache-{enabled|dir|max-recent-entry-bytes|max-entry-by-age-bytes}
- Fixed
tools check merged-blocks
block hole detection behavior on missing ranges (bumpedsf-tools
)
- Added
tools download-from-firehose
command to fetch blocks and save them as merged-blocks files locally. - Added
cloud-gcp://
auth module (bumpeddauth
)
- The default text
encoder
use to encode log entries now emits the level when coloring is disabled. - Default value for flag
--mindreader-node-enforce-peers
is now""
, this has been changed because the default value was useful only in development when running a localnode-manager
as either the miner or a peering node.
- Added block data file caching (called
ATM
), this is to reduce the memory usage of component keeping block objects in memory. - Added transforms: LogFilter, MultiLogFilter, CallToFilter, MultiCallToFilter to only return transaction traces that match logs or called addresses.
- Added support for irreversibility indexes in firehose to prevent replaying reorgs when streaming old blocks.
- Added support for log and call indexes to skip old blocks that do not match any transform filter.
- Updated all Firehose stack direct dependencies.
- Updated confusing flag behavior for
--common-system-shutdown-signal-delay
and its interaction withgRPC
connection draining infirehose
component sometimes preventing it from shutting down. - Reporting an error is if flag
merge-threshold-block-age
is way too low (< 30s).
- Removed some old components that are not required by Firehose stack directly, the repository is as lean as it ca now.
- Fixed Firehose gRPC listening address over plain text.
- Fixed automatic merging of files within the
mindreader
is much more robust then before.