Releases: eqlabs/pathfinder
v0.11.0
This release adds support for Starknet v0.13.1 and RPC v0.7.0-rc2.
The default RPC version has been changed to v0.6. A reminder that this is configurable.
⚠️ We will be removing support for RPC v0.4 and v0.5 soon. Please update to RPC v0.6 or v0.7.
This release includes a rework of how we store event data on disk, resulting in a 20% smaller database. Note that the database won't release this extra space, so you won't see an immediete saving after upgrading. Rather the database will reuse this extra space over time.
If you need the extra disk space you will need to resync or use one of our snapshots.
Changed
starknet_getEvents
implementation is now using a much simpler implementation that no longer relies on SQLite queries. In general this leads to more consistent query times and a roughly 20% smaller database.- The migration step involves computing Bloom filters for all blocks and dropping database tables no longer needed. This takes more than one hour for a mainnet database.
- The new
storage.event-bloom-filter-cache-size
,rpc.get-events-max-blocks-to-scan
andrpc.get-events-max-bloom-filters-to-load
arguments control some aspects of the algorithm. - The memory allocator used by pathfinder has been changed to jemalloc, leading to improved JSON-RPC performance.
- Improved poseidon hash performance.
- Default RPC version changed to v0.6.
Added
- Support for Starknet v0.13.1.
- Support for RPC v0.7.
- The request timeout for gateway and feeder-gateway queries is now configurable using
gateway.request-timeout
("PATHFINDER_GATEWAY_REQUEST_TIMEOUT"
).
Fixed
- Websocket control frames aren't handled.
v0.11.0-rc0
This pre-release reworks event storage, resulting in a ~25% smaller database. This rework is destructive and one cannot roll-back to a previous pathfinder version. We consider the event storage rework fairly robust and it should give consistent performance for starknet_getEvents
queries.
An additional breaking change is the removal of RPC v0.4 support; however at this stage no-one should be using this.
Changed
starknet_getEvents
implementation is now using a much simpler implementation that no longer relies on SQLite queries. In general this leads to more consistent query times and a roughly 20% smaller database.- The migration step involves computing Bloom filters for all blocks and dropping database tables no longer needed. This takes more than one hour for a mainnet database.
- The new
storage.event-bloom-filter-cache-size
,rpc.get-events-max-blocks-to-scan
andrpc.get-events-max-bloom-filters-to-load
arguments control some aspects of the algorithm.
Fixed
UNEXPECTED_ERROR
's data format now matches other node implementations
Removed
- Support for RPC v0.4
v0.10.6
This release focusses on sync performance improvements. The node should be more consistent about remaining in sync especially when the gateway is performing poorly or under duress.
v0.10.4
Fixes
starknet_getEvents
incorrectly evaluates empty sub-lists in key filters for pending events.- The RPC error
UNEXPECTED_ERROR
is an object not a string
v0.10.3
This release is intended for use with starknet v0.13.
This release builds on-top of pathfinder v0.10.3-rc1
so for a full a changelog from v0.10.2
you should also see the release notes from v0.10.3-rc0
and v0.10.3-rc1
.
Added
- RPC request parsing failures now include the error reason when its an invalid JSON-RPC request (invalid request params already include the error reason).
Can I roll this version back?
I upgraded by accident, can I undo? Yes, you can safely rollback to pathfinder v0.10.2.
v0.10.2-apikey
This release adds a new configuration option gateway-api-key
to v0.10.2.
The unusual release tag is caused by v0.10.3 still being a release candidate.
Added
gateway-api-key API_KEY
configuration option. If enabled, each time a request is sent to the Starknet gateway or the feeder gateway aX-Throttling-Bypass: API_KEY
header will be set.
v0.10.3-rc1
This pre-release adds a new configuration option gateway-api-key
to v0.10.3-rc0
.
Limitations of the previous pre-release still apply: only use this on networks running starknet v0.13 i.e. integration and testnet (!! not mainnet !!).
The docker image is only available as eqlabs/pathfinder:v0.10.3-rc1
(and not via latest
).
Can I roll this version back?
I upgraded by accident, can I undo? Yes, you can safely rollback to pathfinder v0.10.2.
v0.10.3-rc0
This is a pre-release intended to provide compatibility with pricing on starknet v0.13. In other words, only use this on networks running starknet v0.13 i.e. integration and testnet (!! not mainnet !!).
The docker image is only available as eqlabs/pathfinder:v0.10.3-rc0
(and not via latest
).
Can I roll this version back?
I upgraded by accident, can I undo? Yes, you can safely rollback to pathfinder v0.10.2.
v0.10.2
This release contains various RPC fixes (in particular for the new v0.6), performance improvements.
Added
- Added
x-request-id
header to RPC responses. If the request does not have the header set then an ID is generated. This can be used to identify a specific caller's request/response within the node's logs. Duplicate IDs are possible since they can be set by the caller, so we recommend making your's identifiable with a prefix or using a GUID. - Improved tracing for RPC requests. These are all logged on
trace
level under thepathfinder_rpc
module. Additional information can also be obtained fromtower_http
module. These can be enabled by appendingpathfinder_rpc=trace,tower_http=trace
toRUST_LOG
environment variable.- Request payload is now logged before execution begins.
- Logs now include
x-request-id
header value which can be used to correlate with client requests/responses. - Batch logs also include the index within a batch.
- RPC parsing errors now expose the failure reason as part of the errors
data
field.
Fixed
- v0.5
starknet_simulateTransactions
returns internal error instead ofContractError
for reverted transactions. - v0.6
starknet_getTransactionReceipt
EXECUTION_RESOURCES
fields are hex-strings instead of integerssegment_arena_builtin
resource is missing- v3 transaction price unit type is
STRK
instead ofFRI
- v0.6
starknet_estimateFee
,starknet_simulateTransactions
- v3 transaction hashes are computed incorrectly when using the "query" flag, causing validation errors
unit
field is missing from fee estimation results
- v0.6
starknet_addDeployAccountTransaction
- the gateway doest not properly return address information for v3 transactions, we now compute the address ourselves
starknet_getEvents
- query strategy selection for some events involving a filter on very common keys is slow
- Execution performance for calls involving the
pending
blocks is much better for trivial calls (likebalanceOf
).
Changed
- JSON-RPC v0.6 now serves
0.6.0
forstarknet_specVersion
.
v0.10.1
This release fixes a few bugs with our implementation of the Starknet JSON-RPC 0.6 specification and fixes some issues with how pathfinder returns execution errors.
Fixed
- Execution errors are opaque and don't always include the root cause.
- Pathfinder uses incorrect fee token gas price for
gas_consumed
calculation for v3 transactions. starknet_traceTransaction
sometimes returns an "Invalid order number for L2-to-L1 message" error.starknet_getTransactionByHash
andstarknet_getTransactionByBlockIdAndIndex
return v3 transactions mapped to v1.
Changed
- JSON-RPC v0.6 support has been updated to v0.6.0-rc5 of the specification.