Releases: eqlabs/pathfinder
v0.7.0
This release adds support for the upcoming starknet v0.12.1 upgrade. In addition, it also adds support for v0.4.0 of the RPC specification.
Added
- RPC v0.4 support on
/rpc/v0.4/
- control log color output via
--color auto | always | never
- if Sierra to CASM compilation fails we now fall back to fetching CASM from the gateway
- Negate bot spam on response metrics by returning
Ok(200)
on/
RPC queries. Web crawlers and bots often poke this endpoint which previously skewed response failure metrics when these were rejected.
Fixed
- system contract updates are not correctly stored
starknet_simulateTransaction
fails for transactions sending L2->L1 messages- deprecated error code 21
INVALID_MESSAGE_SELECTOR
is used in RPC v0.3
Changed
cairo-lang
upgraded to 12.2.1a0- Cairo compiler upgraded from 2.0.2 to 2.1.0-rc1
Removed
- support for RPC v0.2
v0.6.7
This release contains a variety of bug fixes.
Of particular impact is a bug introduced in v0.6.4 which caused pathfinder not to download cairo 0 class definitions for classes that are declared but never deployed. The impact of this is that execution methods such as starknet_call
and starknet_estimateFee
will fail if the execution involves one of these classes. Unfortunately this cannot be fixed retroactively and only a resync will ensure these classes are downloaded correctly. As a much faster alternative, we host database snapshots which we encourage you to use:
link | sha256 of uncompressed file |
---|---|
mainnet | 0e18eca6b2d4d7dc41a8f8ff1354f9319ec8e8d4bedfe2bad5e4dcc405b18448 |
testnet | 67aa14586d09f668edadc95fa129faf389419d140819084c087a66dde98e55bb |
testnet 2 | 1fd1b274e3eeeda98306f42619587baad60528bbc9b8f0c92671287b9b50a5b9 |
Fixed
- some cairo 0 classes are not downloaded which can cause execution methods to fail
- this bug was introduced in v0.6.4 and requires a resync to fix
- gateway error messages are not passed through for
add_xxx_transaction
methods - fee estimation is under-estimating most declare transactions by factor 2
pathfinder_getTransactionStatus
still returnsPENDING
instead ofACCEPTED_ON_L2
Added
cairo-lang
upgraded to 0.12.0
v0.6.6
This release upgrades the Sierra compiler to pull in a fix for a stack-overflow. This has already affected nodes on testnet, and it is recommended to update quickly.
Fixed
- stack overflow while compiling Sierra to CASM
v0.6.5
This minor release improves the consistency of the pending data.
The feeder gateway can provide inconsistent pending data as it doesn't currently implement sticky connections. This meant pathfinder might receive new pending data which was actually older than the data it currently held. This would often exhibit as a transaction cycling between L2 accepted
and Not Found
.
This release fixes this by ignoring such stale data.
Fixed
- pending data from the gateway is inconsistent
- this could exhibit as RPC data changing status between
pending | L2 accepted | not found
, especially noticeable for transactions.
- this could exhibit as RPC data changing status between
Changed
- substantially increase the character limit of execution errors
- previously, the RPC would return a highly truncated error message from the execution vm
v0.6.4
This release fixes pending data not being available for starknet v0.12.
Fixed
- Pending data is not polled for starknet v0.12 due to an HTTP error code change from the gateway.
- Transaction receipts missing
from_address
inMSG_TO_L1
.
v0.6.3
Fixes a race condition which would cause sierra class processing to fail.
Fixed
- Sierra class hash not in declared classes sync bug
Changed
- use all libfunc list instead of experimental for sierra compilation
v0.6.2
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 nodehighest_block
: the height of the block chainblock_time
: timestamp difference between the current block and its parentblock_latency
: delay between current block being published and sync'd locallyblock_download
: time taken to download current block's data excluding classesblock_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
- this occurred on testnet2 on block
- sync can fail if db connection pool are exhausted by rpc queries
- uses
finalized
(reorg-safe) L1 state instead oflatest
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
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
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
Fixed
starknet_simulateTransaction
requirestransactions
instead oftransaction
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