Skip to content

Releases: eqlabs/pathfinder

v0.11.0

27 Feb 13:25
d528175
Compare
Choose a tag to compare

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 and rpc.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

08 Feb 08:35
e430e47
Compare
Choose a tag to compare
v0.11.0-rc0 Pre-release
Pre-release

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 and rpc.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

05 Feb 14:01
Compare
Choose a tag to compare

⚠️ The previous release (v0.10.5) has been yanked.


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

02 Feb 15:50
Compare
Choose a tag to compare

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

04 Jan 09:05
43d4db7
Compare
Choose a tag to compare

⚠️ Incompatible with starknet v0.12.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

26 Dec 11:13
Compare
Choose a tag to compare

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 a X-Throttling-Bypass: API_KEY header will be set.

v0.10.3-rc1

22 Dec 16:47
e20e80f
Compare
Choose a tag to compare
v0.10.3-rc1 Pre-release
Pre-release

⚠️ Incompatible with starknet v0.12.3 ⚠️

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

14 Dec 09:41
e9cd961
Compare
Choose a tag to compare
v0.10.3-rc0 Pre-release
Pre-release

⚠️ Incompatible with starknet v0.12.3 ⚠️

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

13 Dec 09:42
ede3a83
Compare
Choose a tag to compare

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 the pathfinder_rpc module. Additional information can also be obtained from tower_http module. These can be enabled by appending pathfinder_rpc=trace,tower_http=trace to RUST_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 of ContractError for reverted transactions.
  • v0.6 starknet_getTransactionReceipt
    • EXECUTION_RESOURCES fields are hex-strings instead of integers
    • segment_arena_builtin resource is missing
    • v3 transaction price unit type is STRK instead of FRI
  • 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 (like balanceOf).

Changed

  • JSON-RPC v0.6 now serves 0.6.0 for starknet_specVersion.

v0.10.1

05 Dec 12:55
v0.10.1
7b61edf
Compare
Choose a tag to compare

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 and starknet_getTransactionByBlockIdAndIndex return v3 transactions mapped to v1.

Changed

  • JSON-RPC v0.6 support has been updated to v0.6.0-rc5 of the specification.