Releases: eqlabs/pathfinder
v0.12.0
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
v0.11.5
v0.11.4
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_estimateFeeandstarknet_simulateTransactionscan return fee estimates below the minimum fee expected by the sequencer for trivial transactions.
v0.11.3
This release fixes a race condition in starknet_estimateFee and starknet_simulateTransactions sometimes using CALLDATA L1 DA mode instead of BLOB.
Fixed
starknet_estimateFeeandstarknet_simulateTransactionsalways uses CALLDATA L1 DA mode if there is no pending block.starknet_getTransactionStatusreports gateway errors asTxnNotFound. These are now reported as internal errors.starknet_addXXXrequests 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
Important bugfix for starknet_getEvents. No other changes.
Fixed
starknet_getEventsdoes not return a continuation token if not all events from the last block fit into the result page.
v0.11.1
Contains a single, important bugfix. You should upgrade asap if you're using v0.11.0.
Fixes
starknet_estimateFeeandstarknet_simulateTransactioncalls fail whenSKIP_VALIDATEis not set.
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_getEventsimplementation 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-scanandrpc.get-events-max-bloom-filters-to-loadarguments 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_getEventsimplementation 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-scanandrpc.get-events-max-bloom-filters-to-loadarguments 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.