Skip to content

Releases: eqlabs/pathfinder

v0.9.4

02 Nov 09:51
0594c3f
Compare
Choose a tag to compare

This release is focused on the JSON-RPC API, adding support for version v0.5, fixing several bugs, and adding the ability to concurrently process RPC batches.

Fixed

  • RPC errors do not always include the root cause. For example, some gateway error messages are not output when pathfinder forwards the request.
  • RPC trace object uses wrong property reverted_reason instead of revert_reason.
  • RPC execution steps limits have been updated to match the setup of the Starknet sequencer.
  • RPC query version bit is now correctly passed through to the blockifier.

Added

  • RPC v0.5.0 support
  • Added the ability to concurrently process RPC batches, see the rpc.batch-concurrency-limit CLI argument.

Changed

  • RPC methods now use an empty block for pending data if no viable pending data is present. Requests for pending data will no longer fail with BlockNotFound if there is no pending data available, but rather use an empty block on-top of the latest local block.

Full Changelog: v0.9.3...v0.9.4

v0.9.3

16 Oct 09:27
7179a11
Compare
Choose a tag to compare

This release fixes a rare out-of-memory crash when executing certain contract calls.

Fixed

  • RPC server does not accept charset=utf-8 in the Content-Type header
  • Out-of-memory crash caused by rare execution queries

v0.9.2

13 Oct 10:05
v0.9.2
cc028ab
Compare
Choose a tag to compare

This release fixes the content type of the responses pathfinder is returning over its JSON-RPC interface.

⚠️If you're upgrading from pathfinder < 0.9.0 make sure you check the release notes for Pathfinder 0.9.0 too.⚠️

Fixed

  • RPC server does not set content-type: application/json

v0.9.1

11 Oct 16:28
v0.9.1
eabb883
Compare
Choose a tag to compare

This release contains an important fix for a reorg performance regression introduced in Pathfinder 0.9.0.

⚠️If you're upgrading from pathfinder < 0.9.0 make sure you check the release notes for Pathfinder 0.9.0 too.⚠️

Fixed

  • A storage regression causing reorgs to be slow has been fixed.

v0.9.0

10 Oct 11:01
v0.9.0
0a76a27
Compare
Choose a tag to compare

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.

v0.8.2

28 Sep 12:09
c5746bf
Compare
Choose a tag to compare

This release contains the final trace methods, and some bug fixes.

Fixed

  • JSON-RPC requests containing a Cairo 0 class definition were requiring the debug_info property to be present in the input program. This was a regression caused by the execution engine change.
  • Performance for the starknet_getEvents JSON-RPC method has been improved for queries involving the pending block.

Added

  • RPC v0.4 methods:
    • starknet_traceTransaction
    • starknet_traceBlockTransactions
  • Class cache for execution queries which provides a modest increase in performance speed.

Changed

  • starknet_getEvents continuation token formatting. The new format is incompatible with the previous format used in pathfinder v0.8.1 and older.

v0.8.1

07 Sep 14:46
4180d5c
Compare
Choose a tag to compare

This release massively improves the performance of execution related calls. You can expect a 10-40x improvement. This affects the following RPC methods (for all RPC versions):

  • starknet_call
  • starknet_estimateFee
  • starknet_simulateTransactions

The performance improvement comes from swopping our execution engine from the python based cairo-lang, to the Rust Blockifier. This release contains no other changes so that in the event of an incompatibility or bug in the new engine you can switch back by downgrading to pathfinder v0.8.0 again.

The new rpc.execution-concurrency command-line argument provides a way to configure how many Cairo VMs can be executed concurrently. It defaults to the number of CPU cores available but you might need to fine-tune the value to suit your needs.

Fixed

  • JSON-RPC requests with unknown parameters are rejected (unknown params were previously ignored)

Changed

  • Execution is backed by a Rust-based VM improving performance. We no longer depend on Python code in pathfinder.

v0.8.0

30 Aug 12:49
ba8720c
Compare
Choose a tag to compare

This release contains some JSON-RPC fixes and changes the default JSON-RPC API version (served on the root path) to version 0.4.

A new --rpc.root-version command line argument (and the corresponding PATHFINDER_RPC_ROOT_VERSION environment variable) has been added to explicitly select the version of the JSON-RPC API served on the root path.

Changed

  • cairo-lang upgraded to 0.12.2
  • Cairo compiler upgraded to 2.1.1
  • default RPC API version changed from v0.3 to v0.4

Fixed

  • RPC v0.3 starknet_estimateFee example
  • RPC method names could be prefixed with API version
  • starknet_getNonce returns invalid values when queried by hash

Added

  • Added the rpc.root-version command-line option (and the corresponding PATHFINDER_RPC_ROOT_VERSION environment variable)
    to control the version of the JSON-RPC API pathfinder serves on the / path

v0.7.2

16 Aug 15:29
9598fd7
Compare
Choose a tag to compare

This release fixes some issues in our JSON-RPC implementation.

Fixed

  • RPC v0.4 starknet_getTransactionByHash uses the wrong error code for TXN_HASH_NOT_FOUND
  • Querying starknet_getClassAt and starknet_getClassHashAt by block hash incorrectly returns contract not found
  • On Starknet 0.12.2 pathfinder now provides consistent pending data
  • RPC v0.4 Declare v0 and Invoke v0 contain the nonce field

v0.7.1

10 Aug 10:47
14b19bc
Compare
Choose a tag to compare

This release updates the RPC support from v0.4.0-rc3 to v0.4.0.

Fixed

  • RPC v0.4 starknet_getTransactionReceipt incorrect execution and finality status names (lowercase instead of uppercase).
  • pathfinder_getTransactionStatus fails to parse v0.12.1 gateway replies

Changed

  • RPC v0.4.0 support (previously supported v0.4.0-rc3)