Substreams
Warning
This release deprecates the "RPC Cache (for eth_calls)" feature of substreams: It has been turned off by default and will not be supported in future releases.
The RPC cache was a not-well-known feature that cached all eth_calls responses by default and loaded them on each request.
It is being deprecated because it has a negative impact on global performance.
If you want to cache your eth_call responses, you should do it in a specialized proxy instead of having substreams manage this.
Until the feature is completely removed, you can keep the previous behavior by setting the --substreams-rpc-cache-store-url flag to a non-empty value (its previous default value was {data-dir}/rpc-cache)
- 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
- Substreams RPC: add
--substreams-rpc-gas-limitflag to allow overriding default of 50M. Arbitrum chains behave better with a value of0to avoidintrinsic gas too low (supplied gas 50000000)errors
Reader node
-
The
reader-node-bootstrap-urlgained the ability to be bootstrapped from abashscript.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]
Thebash:///script support is currently experimental and might change in upcoming releases, the behavior changes will be
clearly documented here.