This release contains major improvements to how we store Merkle trees in our database, a new JSON-RPC server implementation and some bugfixes.
⚠️⚠️⚠️ Breaking changes ⚠️⚠️⚠️
The database changes are not backwards compatible. Due to the amount of data migrating old databases is not possible this time, so upgrading to this release will require full re-sync or using one of our published database snapshots. As a consolation, the database sizes are roughly 30% smaller.
JSON-RPC subscription support (pathfinder_newHeads
) has been temporarily removed. We're working on re-adding support to our new JSON-RPC framework.
Fixed
- State tree updates are slow on disks with low disk IO or high latency (e.g. network attached storage).
- Pathfinder now exits with a non-zero exit status if any of the service tasks (sync/RPC/monitoring) terminates.
- Rare edge case where duplicate blocks caused the sync process to halt due to a
A PRIMARY KEY constraint failed
error. - Querying a descync'd feeder gateway causes sync process to end due to missing classes.
starknet_getStorageAt
no longer returns ContractNotFound when querying for non-existent keys for contracts deployed in the pending block.starknet_getNonce
no longer returns ContractNotFound when querying for nonce of contracts deployed in the pending block.
Changed
- Reworked state tree storage schema. This is not backwards compatible and requires a re-sync.
- Switched to a custom JSON-RPC framework to more easily support multiple specification versions. This may lead to some unexpected changes in behaviour.
Removed
- JSON-RPC subscription support (
pathfinder_newHeads
). This is temporary while we re-add support to our new JSON-RPC framework.