Releases: streamingfast/firehose-core
v1.5.5
- added well known type for starknet and cosmos
- Fixed a bug in substreams where chains with non-zero first-streamable-block would cause some substreams to hang. Solution changes the 'cached' hashes for those substreams.
v1.5.4
Substreams bumped to v1.9.0
Important Substreams BUG FIX
- Fix a bug introduced in v1.6.0 that could result in corrupted store "state" file if all
the "outputs" were already cached for a module in a given segment (rare occurence) - We recommend clearing your substreams cache after this upgrade and re-processing or
validating your data if you use stores.
Added
- Expose a new intrinsic to modules:
skip_empty_output
, which causes the module output to be skipped if it has zero bytes. (Watch out, a protobuf object with all its default values will have zero bytes) - Improve schedule order (faster time to first block) for substreams with multiple stages when starting mid-chain
v1.5.3
- fix "hub" not recovering on certain disconnections in relayer/firehose/substreams (scenarios requiring full restart)
v1.5.2
Substreams changes
- Added substreams back-filler to populate cache for live requests when the blocks become final
- Fixed: truncate very long details on error messages to prevent them from disappearing when behind a (misbehaving) load-balancer
v1.5.1
- Bootstrapping from live blocks improved for chains with very slow blocks or with very fast blocks (affects relayer, firehose and substreams tier1)
- Substreams fixed slow response close to HEAD in production-mode
v1.5.0
Highlights
- Substreams engine is now able run Rust code that depends on
solana_program
in Solana land to decode andalloy/ether-rs
in Ethereum land
How to use solana_program
or alloy
/ether-rs
Those libraries when used in a wasm32-unknown-unknown
context creates in a bunch of wasmbindgen imports in the resulting Substreams Rust code, imports that led to runtime errors because Substreams engine didn't know about those special imports until today.
The Substreams engine is now able to "shims" those wasmbindgen
imports enabling you to run code that depends libraries like solana_program
and alloy/ether-rs
which are known to pull those wasmbindgen
imports. This is going to work as long as you do not actually call those special imports. Normal usage of those libraries don't accidentally call those methods normally. If they are called, the WASM module will fail at runtime and stall the Substreams module from going forward.
To enable this feature, you need to explicitly opt-in by appending a +wasm-bindgen-shims
at the end of the binary's type in your Substreams manifest:
binaries:
default:
type: wasm/rust-v1
file: <some_file>
to become
binaries:
default:
type: wasm/rust-v1+wasm-bindgen-shims
file: <some_file>
Others
-
Substreams clients now enable gzip compression over the network (already supported by servers).
-
Substreams binary type can now be optionally composed of runtime extensions by appending a
+<extension>,[<extesions...>]
at the end of the binary type. Extensions arekey[=value]
that are runtime specifics.[!NOTE]
If you were a library author and parsing generic Substreams manifest(s), you will now need to handle that possibility in the binary type. If you were reading the field without any processing, you don't have to change nothing.
v1.4.2
- Fix parsing of flag 'common-index-block-sizes' from yaml config file
Substreams bumped to v1.6.2
- execout: preload only one file instead of two, log if undeleted caches found
- execout: add environment variable SUBSTREAMS_DISABLE_PRELOAD_EXEC_FILES to disable file preloading
v1.4.1
Substreams bumped to v1.6.1
- Revert sanity check to support the special case of a substreams with only 'params' as input. This allows a chain-agnostic event to be sent, along with the clock.
- Fix error handling when resolved start-block == stop-block and stop-block is defined as non-zero
v1.4.0
Substreams bumped to v1.6.0
Note Upgrading will require changing the tier1 and tier2 versions concurrently, as the internal protocol has changed.
- Index Modules and Block Filter now supported. See https://github.com/streamingfast/substreams-foundational-modules for an example implementation
- Various scheduling and performance improvements
- env variable
SUBSTREAMS_WORKERS_RAMPUP_TIME
changed from4s
to0
. Set it to4s
to keep previous behavior otelcol://
tracing protocol no longer supported
v1.3.9
Substreams
- Allow stores to write to stores with out-of-order ordinals (they will be reordered at the end of the module execution for each block)
- Fix issue in substreams-tier2 causing some files to be written to the wrong place sometimes under load, resulting in some hanging requests