Releases: streamingfast/firehose-core
v1.2.5
-
Fixed
tools check merged-blocks
default range when-r <range>
is not provided to now be[0, +∞]
(was previously[HEAD, +∞]
). -
Fixed
tools check merged-blocks
to be able to run without a block range provided. -
Added API Key authentication to
client.NewFirehoseFetchClient
andclient.NewFirehoseClient
.Note
If you were usinggithub.com/streamingfast/firehose-core/firehose/client.NewFirehoseFetchClient
orgithub.com/streamingfast/firehose-core/firehose/client.NewFirehoseStreamClient
, this will be a minor breaking change, refer to upgrade notes for details if it affects you. -
Fixed
tools check merged-blocks
examples using block range (range should be specified as[<start>]?:[<end>]
). -
Added
--substreams-tier2-max-concurrent-requests
to limit the number of concurrent requests to the tier2 Substreams service.
v1.2.4
Substreams improvements
- Performance: prevent reprocessing jobs when there is only a mapper in production mode and everything is already cached
- Performance: prevent "UpdateStats" from running too often and stalling other operations when running with a high parallel jobs count
- Performance: fixed bug in scheduler ramp-up function sometimes waiting before raising the number of workers
- Added the output module's hash to the "incoming request" log
Reader node and Beacon blocks
-
The
reader-node-bootstrap-url
gained the ability to be bootstrapped from abash
script.If the bootstrap URL is of the form
bash:///<path/to/script>?<parameters>
, the bash script at
<path/to/script>
will be executed. The script is going to receive in environment variables the resolved
reader node variables in the form ofREADER_NODE_<VARIABLE_NAME>
. The fully resolved node arguments
(fromreader-node-arguments
) are passed as args to the bash script. The query parameters accepted are:arg=<value>
| Pass as extra argument to the script, prepended to the list of resolved node argumentsenv=<key>%!d(MISSING)<value>
| Pass as extra environment variable as<key>=<value>
with key being upper-cased (multiple(s) allowed)env_<key>=<value>
| Pass as extra environment variable as<key>=<value>
with key being upper-cased (multiple(s) allowed)cwd=<path>
| Change the working directory to<path>
before running the scriptinterpreter=<path>
| Use<path>
as the interpreter to run the scriptinterpreter_arg=<arg>
| Pass<interpreter_arg>
as arguments to the interpreter before the script path (multiple(s) allowed)
Note
The bash:///
script support is currently experimental and might change in upcoming releases, the behavior changes will be clearly documented here.
-
The
reader-node-bootstrap-url
gained the ability to be bootstrapped from a pre-made archive file ending withtar.zst
ortar.zstd
. -
The
reader-node-bootstrap-data-url
is now added automatically iffirecore.Chain#ReaderNodeBootstrapperFactory
isnon-nil
.If the bootstrap URL ends with
tar.zst
ortar.zstd
, the archive is read and extracted into the
reader-node-data-dir
location. The archive is expected to contain the full content of the 'reader-node-data-dir'
and is expanded as is. -
Added
Beacon
to known list of Block model.
v1.2.3
- Fix marshalling of blocks to JSON in tools like
firehose-client
andprint merged-blocks
v1.2.2
Auth and metering
- Add missing metering events for
sf.firehose.v2.Fetch/Block
responses. - Changed default polling interval in 'continuous authentication' from 10s to 60s, added 'interval' query param to URL.
Substreams
- Fixed bug in scheduler ramp-up function sometimes waiting before raising the number of workers
- Fixed load-balancing from tier1 to tier2 when using dns:/// (round-robin policy was not set correctly)
- Added
trace_id
in grpc authentication calls - Bumped connect-go library to new "connectrpc.com/connect" location
v1.2.1
Fixed
- Fixed
tools firehose-client
which was broken because of bad flag handling
Added
- Added
--api-key-env-var
flag to firehose-clients, which allows you to pass your API Key from an environment variable (HTTP headerx-api-key
) instead of a JWT (Authorization: bearer
), where supported.
v1.2.0
-
Poller is now fetching blocks in an optimized way, it will fetch several blocks at once and then process them.
-
Poller is now handling skipped blocks, it will fetch the next blocks until it find a none skipped block.
-
Poller now has default retry value of infinite.
-
Compare tool is now using dynamic protobuf unmarshaler, it will be able to compare any block type.
-
Print tool is now using dynamic protobuf unmarshaler, it will be able to print any block type.
-
Print tool is encoding bytes in base64 by default, it can be changed to hex or base58 by using parameter
bytes-encoding
. -
Added 'x-trace-id' header to auth requests when using --common-auth-plugin=grpc
-
Fixed Substreams scheduler sometimes taking a long time to spawn more than a single worker.
-
Added ACCEPT_SOLANA_LEGACY_BLOCK_FORMAT env var to allow special tweak operations
v1.1.3
- Removed useless chainLatestFinalizeBlock from blockPoller initialization
v1.1.2
v1.1.1
- Added
FORCE_FINALITY_AFTER_BLOCKS
environment variable to override block finality information at the reader/poller level. This allows an operator to pretend that finality is still progressing, N blocks behind HEAD, in the case where a beacon chain fails to do so and is intended as a workaround for deprecated chains like Goerli.
v1.1.0
-
Updated
substreams
anddgrpc
to latest versions to reduce logging. -
Tools printing Firehose
Block
model to JSON now have--proto-paths
take higher precedence over well-known types and even the chain itself, the order is--proto-paths
>chain
>well-known
(sowell-known
is lookup last). -
The
tools print one-block
now works correctly on blocks generated by omni-chainfirecore
binary. -
The various health endpoint now sets
Content-Type: application/json
header prior sending back their response to the client. -
The
firehose
,substreams-tier1
andsubstream-tier2
health endpoint now respects thecommon-system-shutdown-signal-delay
configuration value meaning that the health endpoint will returnfalse
now ifSIGINT
has been received but we are still in the shutdown unready period defined by the config value. If you use some sort of load balancer, you should make sure they are configured to use the health endpoint and you shouldcommon-system-shutdown-signal-delay
to something like15s
. -
The
firecore.ConsoleReader
gained the ability to print stats as it ingest blocks. -
The
firecore.ConsoleReader
has been made stricter by ensuring Firehose chain exchange protocol is respected. -
Changed
reader
logger back toreader-node
to fit with the app's name which isreader-node
. -
Fix
-c ""
not working properly when no arguments are present when invokingstart
command. -
Fix
tools compare-blocks
that would fail on new format. -
Fix
substreams
to correctly delete.partial
files when serving a request that is not on a boundary. -
Add Antelope types to the blockchain's known types.