Releases: eqlabs/pathfinder
v0.14.4
This is a hotfix release addressing an issue that prevents Pathfinder from syncing Sepolia testnet past block 218483.
❗ ❗ Please upgrade to this release if you're running Pathfinder with the Sepolia testnet. ❗ ❗
Fixed
- Pathfinder stops syncing Sepolia testnet at block 218484 because of a block hash mismatch.
v0.14.3
This is a hotfix release addressing an issue that could cause potential Merkle tree corruption during L2 reorgs.
❗ ❗ Please upgrade to this release if you're running Pathfinder in pruned mode. ❗ ❗
Fixed
- Pathfinder sometimes corrupts its Merkle trie storage during reorgs, leading to later failures with errors like “Node X at height Y is missing” or “Stored node’s hash is missing.
v0.14.2
This is a hotfix release fixing some JSON-RPC API issues and a configuration issue.
Huge thanks to @lambda-0x for reporting and fixing the starknet_getEvents
inconsistencies.
Fixed
- Pathfinder sometimes returns an INVALID_CONTINUATION_TOKEN error when requesting events from the pending block and providing a continuation token.
starknet_getEvents
incorrectly returns pending events iffrom_block
is greater than latest_block_number + 1.starknet_getEvents
incorrectly does not return pending events iffrom_block
ispending
andto_block
is missing.
Added
--sync.l1-poll-interval
CLI option has been added to set the poll interval for L1 state. Defaults to 30s.- Support for Starknet 0.13.2.1.
v0.14.1
This is a hotfix release fixing some JSON-RPC API issues and a configuration issue.
Fixed
- Pathfinder does not properly limit the number of concurrent executors when using the
--rpc.execution-concurrency
CLI option. - Pathfinder returns non-conforming
STRUCT_ABI_ENTRY
objects in response tostarknet_getClass
requests. - Pathfinder returns
starknet_getStateUpdate
responses that are non-conformant with the specification if there are replaced classes in the response.
v0.14.0
This release of Pathfinder adds support for Starknet 0.13.2.
Added
- Support for Starknet v0.13.2.
- Pathfinder now creates a new directory if the database path specified does not exist.
- Pathfinder now has a CLI option (
--rpc.custom-versioned-constants-json-path
) to allow loading a custom versioned constants JSON file. When specified the contents of the file is then used instead of the latest constants built into the blockifier crate during execution of Cairo code.
Fixed
- Pathfinder exits with an error when detecting a one-block reorg if
--storage.state-tries
is set to0
. - Pathfinder returns an internal error for
starknet_getTransactionReceipt
requests wheresteps
would be zero in COMPUTATION_RESOURCES.
v0.13.2
This is a hotfix release fixing some JSON-RPC API issues.
Fixed
starknet_getTransactionReceipt
responses are missing thepayload
property inMSG_TO_L1
objects on the JSON-RPC 0.7 interface.starknet_traceTransaction
andstarknet_traceBlockTransactions
returns L2 to L1 messages from inner calls duplicated.
v0.13.1
This release fixes serialization problems with response objects of starknet_getTransactionReceipt
calls.
Fixed
starknet_getTransactionReceipt
responses are not compliant with the JSON-RPC specification:- L1 handler receipts throw an internal error
execution_status
andrevert_reason
properties are missing
v0.13.0
This release adds new features to our Websocket API:
- The
pathfinder_subscribe
method can now be used to subscribe to new events and transaction status updates. For more information on the new subscription types please check our OpenRPC API specifications. - Starknet JSON-RPC API methods are now accessible via Websocket connections. To support multiple versions of the JSON-RPC API we've added new, versioned Websocket API endpoints.
We've also implemented further improvements to how we store transaction data in our storage implementation, leading to requiring approximately 80 GiB less disk space for an up-to-date mainnet database.
Running this release will perform a few database migration steps upon first startup, which may take a significant amount of time (up to multiple hours for a mainnet database, depending on the hardware you're running on). Reverting to pathfinder 0.12.0 will require a backup of the database before the migration has been completed.
Fixed
starknet_getBlockWithTxHashes
andstarknet_getBlockWithTxs
returns the pending block with astatus
property that's not in the JSON-RPC specification. This has been fixed for the JSON-RPC 0.7 API endpoint.starknet_traceBlockTransactions
andstarknet_traceTransaction
now falls back to fetching the trace from the feeder gateway for all blocks before Starknet 0.13.1.1.
Added
/ready/synced
endpoint to check if the JSON RPC API is ready and also check if the node is synced. Useful for Docker nodes which only want to be available after syncing.- Websocket endpoints now serve all JSON-RPC methods, not just
pathfinder_subscribe
andpathfinder_unsubscribe
. Version-specific endpoints have been added for the 0.6 and 0.7 JSON-RPC API and the Pathfinder extension API. - Websocket endpoint for subscribing to events and transaction status changes.
Changed
- Improved compactness of transaction and nonce data, resulting in noticeable storage savings.
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