Skip to content

Releases: eqlabs/pathfinder

v0.6.2

29 Jun 08:58
dd8aecd
Compare
Choose a tag to compare

This release includes support for starknet v0.12.0. Also included are new metrics, starknet_estimateMessageFee and several bug fixes.

Added

  • starknet_estimateMessageFee for JSON-RPC v0.3.1 to estimate message fee from L1 handler.
  • sync-related metrics
    • current_block: the currently sync'd block height of the node
    • highest_block: the height of the block chain
    • block_time: timestamp difference between the current block and its parent
    • block_latency: delay between current block being published and sync'd locally
    • block_download: time taken to download current block's data excluding classes
    • block_processing: time taken to process and store the current block
  • configuration for new block polling interval: --sync.poll-interval <seconds>
  • Starknet v0.12.0 support
    • sierra v2.0.0 support
    • cairo-lang upgraded to 0.12.0a0
    • pending transactions are now marked as L2 accepted

Fixed

  • reorgs fail if a class declaration is included in the reorg
    • this occurred on testnet2 on block 118690
  • sync can fail if db connection pool are exhausted by rpc queries
  • uses finalized (reorg-safe) L1 state instead of latest
  • starknet_getEvents times out for queries involving a large block range

Changed

  • dropped upgrade support for pathfinder v0.4 and earlier
  • separate db connection pools for rpc, sync and storage
  • increased the number of rpc db connections
  • starknet_getEvents returns an error if the query is too broad. This is to prevent the query from locking a database connection for too long even with the fix in place.

v0.6.1

18 Jun 09:05
Compare
Choose a tag to compare

This release fixes a class hash calculation bug. This bug is known to have caused mainnet to stop syncing at block 84 448.

Special thanks to @xJonathanLEI for figuring out the root cause and supplying a patch.

Fixes

  • wrong class hash on non-ascii artifcats

Bug explanation

The class hash calculation for cairo 0 classes relies on hashing the json class artifact. Unfortunately, json is not a strict specification which led to pathfinder and the sequencer interpretting non-ascii characters in different ways which resulted in different hashes.

More specifically, a class was declared which included non-ascii (but valid unicode) characters as part of an error message. pathfinder parsed and stored these as the unicode characters, whereas the sequencer appears to only accept ascii - and therefore escaped these characters before applying the hash function.

TL;DR: Including non-ascii characters in the program attributes led to different class hashes between the gateway and pathfinder due to the former escaping these characters.

v0.5.7

18 Jun 09:05
Compare
Choose a tag to compare

This patch release fixes a class hash calculation bug. This bug is known to have caused mainnet to stop syncing at block 84 448.

Special thanks to @xJonathanLEI for figuring out the root cause and supplying a patch.

Fixes

  • wrong class hash on non-ascii artifcats

Bug explanation

The class hash calculation for cairo 0 classes relies on hashing the json class artifact. Unfortunately, json is not a strict specification which led to pathfinder and the sequencer interpretting non-ascii characters in different ways which resulted in different hashes.

More specifically, a class was declared which included non-ascii (but valid unicode) characters as part of an error message. pathfinder parsed and stored these as the unicode characters, whereas the sequencer appears to only accept ascii - and therefore escaped these characters before applying the hash function.

TL;DR: Including non-ascii characters in the program attributes led to different class hashes between the gateway and pathfinder due to the former escaping these characters.

v0.6.0

14 Jun 16:08
b806964
Compare
Choose a tag to compare

⚠️ This is a breaking release as it changes the default RPC version from v0.2 to v0.3 ⚠️

Fixed

  • starknet_simulateTransaction requires transactions instead of transaction as input field.
  • gateway's error message is hidden when submitting a failed transaction
  • starknet_getEvents is very slow for certain filter combinations

Changed

  • default RPC API version changed from v0.2 to v0.3
  • disallow JSON-RPC notification-style requests

v0.5.6

25 May 15:46
40f6824
Compare
Choose a tag to compare

This release's focus is on starknet v0.11.2 support. This release also includes initial websocket subscription support and a rather large database migration.

Added

  • Starknet v0.11.2 support
    • Sierra compiler v1.1.0-rc0
    • cairo-lang upgraded to 0.11.2a0
  • Experimental websocket subscription support - thanks Shramee Srivastav and Matthieu Auger!

Websocket support

We now have support for new block header events via pathfinder_subscribe_newHeads (docs). Note that this is experimental -- the API is not yet fixed so please provide feedback.

More complex subscription events will be added in the future -- let us know which you want.

Websocket support is disabled by default, but can be configured with the rpc.websocket and rpc.websocket.capacity options.

Database migration

This release includes a rather lengthy database migration. This can take several minutes on a good machine -- progress is logged every few seconds so it should give a good indication of progress. If this is taking too long, we also host database snapshots which you can use to skip the migration instead.

Full Changelog: v0.5.5...v0.5.6

v0.5.5

18 May 14:56
Compare
Choose a tag to compare

This is a minor release fixing a few issues, notably two issues causing starknet_estimateFee JSON-RPC endpoint to return errors or invalid fee estimations.

Added

  • cairo-lang upgraded to 0.11.1.1

Fixed

  • RPC emits connection logs and warnings
  • Fee estimate mismatch between gateway and pathfinder
    • Gateway uses a new gas price sampling algorithm which was incompatible with pathfinders.
  • Fee estimate returns error when submitting Cairo 1.0.0-rc0 classes.
  • Historic L1 handler transactions are served as Invoke V0
    • Older databases contain L1 handler transactions from before L1 handler was a specific transaction type. These were
      stored as Invoke V0. These are now correctly identified as being L1 Handler transactions.

Full Changelog: v0.5.4...v0.5.5

v0.5.4

09 May 15:17
c802d9a
Compare
Choose a tag to compare

The primary focus of this release is to provide support for Starknet v0.11.1, and will continue to work for v0.11.0. Since this release is required for v0.11.1, you should update your node before the network is updated.

Added

  • Starknet v0.11.1 support
  • CORS support via the rpc.cors-domains configuration option
  • Transaction hashes are now verified as part of the sync process. Previously, these were not verified as the exact algorithm was underdocumented and the transaction format was still evolving.

Fixed

  • RPC server panic for unprefixed unregistered method names
  • Data can temporarily appear to go missing when transitioning from PENDING to ACCEPTED ON L2
    • This was commonly seen when rapidly monitoring a new transaction, which would go from PENDING to TXN_HASH_NOT_FOUND to ACCEPTED_ON_L2 as pathfinder moved the ephemeral pending data to latest data on disk.

Full Changelog: v0.5.3...v0.5.4

v0.5.3

12 Apr 10:13
7b56a1f
Compare
Choose a tag to compare

0.5.3

Fixes for minor issues and inconsistencies.

Added

  • max-rpc-connections command-line argument. This sets the maximum number incoming RPC connections the pathfinder node will accept. This defaults to 1024 if not specified.
  • cairo-lang upgraded to 0.11.0.2

Fixed

  • starknet_simulateTransaction data model inconsistency
  • poll-pending default value restored to false
  • incoming RPC connections limited to 100. This limit was accidentily introduced in v0.5.2 as part of a dependency upgrade, whereas before it was unlimited. The default is now 1024 and can be configured using --max-rpc-connections.
  • handling of invalid JSON-RPC requests

Full Changelog: v0.5.2...v0.5.3

v0.5.2

05 Apr 15:41
9ba71ea
Compare
Choose a tag to compare

0.5.2

This release fixes a few RPC bugs and adds support for bulk fee estimation and transaction simulation (traces) as part of v0.3 RPC specification.

In addition it also adds a pathfinder_getTransactionStatus endpoint which lets you track a transactions status -- including REJECTED and RECEIVED -- in the same fashion as the gateway.

Added

  • support starknet_estimateFee in the JSON-RPC v0.3 API
    • supports estimating multiple transactions
    • this includes declaring and immediately using a class (not currently possible via the gateway)
  • support starknet_simulateTransaction for JSON-RPC v0.3
    • supports simulating multiple transactions
    • this includes declaring and immediately using a class (not currently possible via the gateway)
  • support pathfinder_getTransactionStatus which is exposed on all RPC routes
    • this enables querying a transactions current status, including whether the gateway has received or rejected it

Fixed

  • RPC returns int for entrypoint offsets instead of hex
  • RPC rejects Fee values with more than 32 digits
  • RPC does not expose pathfinder_getProof on v0.3 route

Full Changelog: v0.5.1...v0.5.2

v0.5.1

23 Mar 10:35
3c3262b
Compare
Choose a tag to compare

This is a minor bugfix release, primarily to fix an issue with syncing on testnet2.

Fixed

  • pathfinder sometimes spams nethermind L1 nodes
  • pathfinder stops syncing testnet2 at block 95220 due to a Sierra class compilation issue