Skip to content

Releases: eqlabs/pathfinder

v0.12.0

23 Apr 12:24
d6333df

Choose a tag to compare

This release dramatically reduces the storage requirements of pathfinder.

This has been achieved by adding support for pruning state trie data, and improving the compactness of transaction and state diff data in storage.

Storage improvements

The following numbers are for a mainnet database at block 635 054

v0.11.6 v0.12.0 (archive) v0.12.0 (pruned)
770 GB 615 GB 170 GB

State trie pruning

Pathfinder has always stored the state trie data for every block ever. This has lead to enormous storage bloat, where the state trie data comprises roughly 80% of total storage in previous pathfinder versions. This can be reduced to just 5% by enabling state pruning.

With this release you can now configure it to store only the latest k blocks, dramatically cutting the storage usage. As an example, storing only the latest block gives a reduction of 75% of total storage used compared to the previous pathfinder version.

Note that pruning and archive are incompatible. You will need to resync if you wish to run a pruned node - however we will provide snapshots for both variants, at least for mainnet.

The state trie is required to verify the state diffs and to provide storage proofs. You can read more about how and when to configure pruning here.


Added

  • Support for pruning state trie data

Changed

  • Improved compactness of transaction and state diff data in storage

Removed

  • Goerli support

v0.11.6

10 Apr 10:50
v0.11.6
abd17ec

Choose a tag to compare

This release fixes an execution engine bug. When checking if max_fee of the transaction is greater or equal to the actual fee the comparison has been incorrect in some cases.

Changed

  • blockifier has been upgraded to version 0.6.0-rc.2.

v0.11.5

02 Apr 08:29
v0.11.5
128fa02

Choose a tag to compare

This release fixes an execution engine bug.

The fix causes some differences in transaction traces produced for Starknet 0.13.1 transactions involving events from nested contract calls.

Changed

  • blockifier has been upgraded to version 0.6.0-rc.1.

v0.11.4

28 Mar 10:20

Choose a tag to compare

This release adds support for the class declaration cost changes introduced in Starknet v0.13.1.1.

If you do not upgrade, you should expect incorrect fee estimations and traces once Starknet v0.13.1.1 releases. Other RPC queries and sync will still work as expected.

Added

  • Support for fee changes in Starknet v0.13.1.1.

Fixed

  • starknet_estimateFee and starknet_simulateTransactions can return fee estimates below the minimum fee expected by the sequencer for trivial transactions.

v0.11.3

14 Mar 07:58
e82f5a2

Choose a tag to compare

This release fixes a race condition in starknet_estimateFee and starknet_simulateTransactions sometimes using CALLDATA L1 DA mode instead of BLOB.

Fixed

  • starknet_estimateFee and starknet_simulateTransactions always uses CALLDATA L1 DA mode if there is no pending block.
  • starknet_getTransactionStatus reports gateway errors as TxnNotFound. These are now reported as internal errors.
  • starknet_addXXX requests to the gateway use the configured gateway timeout, often causing these to timeout while waiting for
    a gateway response. These instead now use a much longer timeout.

v0.11.2

07 Mar 11:28
8add479

Choose a tag to compare

Important bugfix for starknet_getEvents. No other changes.

Fixed

  • starknet_getEvents does not return a continuation token if not all events from the last block fit into the result page.

v0.11.1

01 Mar 11:56
9c77bab

Choose a tag to compare

Contains a single, important bugfix. You should upgrade asap if you're using v0.11.0.

Fixes

  • starknet_estimateFee and starknet_simulateTransaction calls fail when SKIP_VALIDATE is not set.

v0.11.0

27 Feb 13:25
d528175

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

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

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.