Releases: eqlabs/pathfinder
v0.10.0
⚠️ ⚠️ ⚠️ Breaking changes ⚠️ ⚠️ ⚠️
This release changes the JSON-RPC API version served on the /
path to 0.5.1 and removes support for some command-line arguments. Please make sure you read the rest of the release notes if you're upgrading.
A database schema upgrade is also done upon first starting pathfinder. Downgrading to an earlier version will require a backup of your database before the upgrade.
Added
- Support for RPC v0.6.0-rc4 via the
/rpc/v0_6
endpoint. Note that this does not include the/rpc/v0.6
endpoint as the underscore is now the standard across node implementations. - Configuration options to selectively enable/disable parts of the node. This can be useful to run tests or benchmarks with isolated components e.g. test RPC methods without the sync process updating the database.
rpc.enable
configuration option to enable/disable the RPC server. Defaults to enabled.sync.enable
configuration option to enable/disable the sync process. Defaults to enabled.
- Support for Sepolia testnet via
--network sepolia-testnet
- Support for Sepolia integration via
--network sepolia-integration
- Support for Starknet 0.13.0.
Changed
- Default RPC version is now v0.5 (was v0.4). This can be manually configured to any version.
- Goerli testnet network selection is now
--network goerli-testnet
, removed--network testnet
- Goerli integration network selection is now
--network goerli-integration
, removed--network integration
- Reworked
newHeads
subscription output to more accurately represent header data.
Removed
- Support for
testnet2
- Support for RPC v0.3
--poll-pending
configuration option. This is now always enabled and set to 2s.--python-subprocesses
configuration option. This is superseded by--rpc.execution-concurrency
.
v0.9.7
Fixed
get_block_hash
syscall returns0x0
for the latest available block (current - 10) when executingstarknet_trace*
methods
v0.9.6
Fixes a bug introduced in pathfinder v0.9.5 by the
- RPC errors now only include the root cause if white-listed as non-sensitive
change. Some errors were not white-listed which meant that important error data was not communicated back to the caller in certain cases. As an example, reverted transactions in RPC v0.4 only showed as Internal error
.
Fixed
- RPC v0.5 incorrectly has a status field in pending
starknet_getBlockWithXXX
responses. - Error details for many execution-related issues were not properly sent back to the JSON client
- Reverted transactions are logged as WARN instead of DEBUG.
v0.9.5
This release changes RPC v0.5.0 to v0.5.1.
Added
- Host JSON-RPC on
/rpc/v0_x
in addition to the existing/rpc/v0.x
endpoints. This applies to all supported JSON-RPC versions.
Changed
- RPC errors now only include the root cause if white-listed as non-sensitive
- RPC v0.5 updated from v0.5.0 to v0.5.1
Fixed
- JSON-RPC v0.5 transaction traces now have the required
type
property. - JSON-RPC v0.5 L1 Handler receipt is missing the
message_hash
property. - JSON-RPC v0.5 uses wrong field names in ExecutionResources
v0.9.4
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 ofrevert_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
This release fixes a rare out-of-memory crash when executing certain contract calls.
Fixed
- RPC server does not accept
charset=utf-8
in theContent-Type
header - Out-of-memory crash caused by rare execution queries
v0.9.2
This release fixes the content type of the responses pathfinder is returning over its JSON-RPC interface.
Fixed
- RPC server does not set
content-type: application/json
v0.9.1
This release contains an important fix for a reorg performance regression introduced in Pathfinder 0.9.0.
Fixed
- A storage regression causing reorgs to be slow has been fixed.
v0.9.0
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
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.