All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Bumped substreams to v1.7.3
- Enable gzip compression on substreams data on the wire
- Handling of undo signal implementing
handleBlockUndoSignal
, enabling live sinking (Make sure to set --undo-buffer-size flag at 0 to use the new implemented undo algorithm) - Bump
github.com/bufbuild/connect-go
toconnectrpc.com/connect
- Bump to substreams-sink v0.4.0 which fixed a bug related to error retrying and improved logging of
stream stats
line.
Important
This client only support progress messages sent from a to a server with substreams version >=v1.1.12
- Bumped substreams-sink to
v0.3.1
and substreams tov1.1.12
to support the new progress message format. Progression now relates to stages instead of modules. You can get stage information using thesubstreams info
command starting at versionv1.1.12
.
substreams_sink_progress_message
removed in favor ofsubstreams_sink_progress_message_total_processed_blocks
substreams_sink_progress_message_last_end_block
removed in favor ofsubstreams_sink_progress_message_last_block
(per stage)
- added
substreams_sink_progress_message_last_contiguous_block
(per stage) - added
substreams_sink_progress_message_running_jobs
(per stage)
- Added
query-rows-limit
flag to inject and serve commands.
-
Fixed
substreams-sink-kv serve
not working correctly due to invalid flags. -
Fixed
substreams-sink-kv inject --listen-addr="..."
not listing if sinker finishes the requested block range.
- Fixed wrong writing of cursor leading to invalid cursor being written.
- Deprecation The flag
substreams-sink-kv inject --listen-addr=...
must now be used likesubstreams-sink-kv inject --server-listen-addr=...
- Added back missing flag
--server-api-prefix
to define API prefix when server mode is active.
-
Made argument
<manifest>
optional again, in which case.
is assumed. -
Added ability to provide
<manifest>
argument as a directory, enabling the possibility to dosubstreams-sink-kv inject <endpoint> <dsn> .
We change the arguments accepted by substreams-sink-kv inject
where now the first argument must be the endpoint to consume from. This was previously the provided through the flag -e, --endpoint
. This has been done to aligned with other sinks supported by StreamingFast team.
Before:
# Implicit default endpoint
substreams-sink-kv inject <dsn> substreams.spkg
# Explicit endpoint
substreams-sink-kv inject -e mainnet.eth.streamingfast.io:443 <dsn> substreams.spkg
After:
substreams-sink-kv inject mainnet.eth.streamingfast.io:443 <dsn> substreams.spkg
- Breaking Flag
-e, --endpoint
has been replaced by a mandatory positional argument instead, see highlights for upgrade procedure.
This release drops support for Substreams RPC protocol sf.substreams.v1
and switch to Substreams RPC protocol sf.substreams.rpc.v2
. As a end user, right now the transition is seamless. All StreamingFast endpoints have been updated to to support the legacy Substreams RPC protocol sf.substreams.v1
as well as the newer Substreams RPC protocol sf.substreams.rpc.v2
.
Support for legacy Substreams RPC protocol sf.substreams.v1
is expected to end by June 6 2023. What this means is that you will need to update to at least this release if you are running substreams-sink-kv
in production. Otherwise, after this date, your current binary will stop working and will return errors that sf.substreams.v1.Blocks
is not supported on the endpoint.
From a database and operator standpoint, this binary is fully backward compatible with your current schema. Updating to this binary will continue to sink just like if you used a prior release.
The errors coming from KV store are not retried anymore and will stop the binary immediately.
-
Added
--infinite-retry
to never exit on error and retry indefinitely instead. -
Added
--development-mode
to run in development mode.Warning You should use that flag for testing purposes, development mode drastically reduce performance you get from the server.
-
Added
--final-blocks-only
to only deal with final (irreversible) blocks. -
Added
--undo-buffer-size
(defaults to 12) that deals with re-org handling, this will delayed your live block by this amount. -
Added
--live-block-time-delta
(defaults to 300s) that determine if a block is considered "live" or "historical". The iftime.Now() - block's timestamp
is lower or equal to--live-block-time-delta
then the block is considered live.
- Added WASM Query Support
GenericService
example./examples/generic-service
WASMQueryService
example./examples/wasm-query-service
- Panic handling in wasm query engine
- Removed support for GRPC
stream
, only support request response - Remove
substream-sink-kv run
CLI and addedsubstream-sink-kv inject
&substream-sink-kv serve
- Move
rust
crate to its own repohttps://github.com/streamingfast/substreams-sink-rs
- Prevent hanging on connection error.
- Fixed wrong accepted module's output type
sf.substreams.kv.v1.KVOperations
, correct value issf.substreams.sink.kv.v1.KVOperations
.
- Initial release