Releases: NethermindEth/juno
v0.5.0
This release adds support for the upcoming Starknet v0.12.1 upgrade and includes compatibility with v0.4.0 of the RPC specification.
Added
- Support for Starknet v0.12.1
- Compatibility with v0.4.0 of the RPC specification
- New RPC method:
starknet_estimateMessageFee - Health Check Endpoint: A GET request to the / endpoint will now return a 200 status code for a healthy Juno node
- Added Prometheus metrics support: Use
--metricsand--metrics-portto enable this feature
Changed
- Adjusted worker number for sync process, improving performance
- Updated blockifier for starknet v0.12.1
Fixed
- Resolved issues causing context cancelled errors in write RPC methods
- Mapped gateway errors to write API RPC errors, improving error handling
Docker Image
You can pull the Docker image for this release with:
docker pull nethermind/juno:v0.5.0
Full Changelog: v0.4.1...v0.5.0
v0.5.0-rc0
This release adds support for the upcoming Starknet v0.12.1 upgrade and includes compatibility with v0.4.0-rc3 of the RPC specification.
Added
- Support for Starknet v0.12.1,
- Compatibility with v0.4.0-rc3 of the RPC specification,
- New RPC method:
starknet_estimateMessageFee. - Health Check Endpoint: A GET request to the / endpoint will now return a 200 status code for a healthy Juno node.
Changed
- Adjusted worker number for sync process, improving performance.
Fixed
- Resolved issues causing context cancelled errors in write RPC methods.
- Mapped gateway errors to write API RPC errors, improving error handling.
Full Changelog: v0.4.1...v0.5.0-rc0
v0.4.1
With this release, we have significantly improved our processing speed. The time it takes to sync 90000 blocks on our VM has been reduced from 41 hours to about 24 hours. This marks an impressive 1.7x increase in our syncing efficiency.
Added
- Log the incoming RPC requests in #907
Changed
Fixed
- Add missing From field to rpc.MsgToL1 in #908
Full Changelog: v0.4.0...v0.4.1
v0.4.0
We're excited to announce the release of Juno v0.4.0, marking a significant step in the evolution of our Starknet client implementation. This release signifies the completion of Phase 2 of our development roadmap. Here are some of the major enhancements we've implemented in this version.
WARNING: This release has breaking changes and database is not compatible with the previous version.
Added
- New RPC Methods:
starknet_callstarknet_estimateFeestarknet_addDeclareTransactionstarknet_addDeployAccountTransactionstarknet_addInvokeTransactionjuno_getTransactionStatusjuno_version
- L1 Verifier: Verification of state from Layer 1 has been implemented.
- Block Reorg Detection and Handling: A feature to detect and handle block reorganizations has been implemented.
- gRPC Service: To accommodate users requiring direct access to the database, a gRPC service has been exposed.
- Database Migration: The system has been improved to handle database changes more gracefully. It's no longer necessary to sync from the start when some database changes occur.
- Starknet v0.12.0 support: includes integration with the Rust VM.
Changed
- Performance Enhancements: Several adjustments and improvements have been made to increase the performance. These changes have resulted in ~30% reduction in sync time.
Full Changelog: v0.3.1...v0.4.0
v0.3.1
Added
- Fetch and store compiled classes for each Sierra class (#777).
Changed
- Updated the behavior of synced nodes, which will now return false to
starknet_syncing(#776).
Fixed
- Resolved issue with
NumAsHex(0)being omitted in RPC. - Fixed a Goerli sync issue by relaxing decoder max array elements limit (#779).
Full Changelog: v0.3.0...v0.3.1
v0.3.0
Added
- Starknet v0.11.2 support
- History for contracts, nonce, and class hash.
- Implemented StateSnapshot.
- New RPC endpoints:
starknet_syncingstarknet_getNoncestarknet_getStorageAtstarknet_getClassHashAtstarknet_getClassstarknet_getClassAtstarknet_getEvents
Note: For new RPC endpoints to fully work with data before the new version, the node needs to be resynced
Changed
- Optimized TransactionStorage encoding and refactored memStorage.
- Refactored RPC implementation for better organization and maintainability.
- Parallelized and refactored sync tests for faster execution, improved readability, and maintainability.
Fixed
- Updated handling of non-existent keys to return a zero value
Full Changelog: v0.2.2...v0.3.0
Juno v0.2.2
This patch release fixes handling of block versioning and ensures compatibility with non-sem-ver compliant Starknet.
Fixed
- Ignore or add digits to block version string as necessary
Full Changelog: v0.2.1...v0.2.2
Juno v0.2.1
This minor release introduces an important optimization that enhances sync performance.
Changed
- Update gnark-crypto version:
- Implement precomputed point multiplication results for Pedersen hash operations.
Full Changelog: v0.2.0...v0.2.1
Juno v0.2.0
This release adds support for Staknet v0.11.0.
WARNING: This release has breaking changes and database is not compatible with the previous version.
Added
- Starknet
v0.11.0support:- Add Poseidon hash for new state commitment.
- Add
DeclareTransactionversion 2. - Add and Store Cairo 1/Sierra class definition and hash calculations.
pprofoption is added for profiling and monitoring.- Verify Class Hashes.
Changed
- Starknet
v0.11.0support:- Update
InvokeTransactionversion 1'scontract addresstosender address. - Update current JSON RPC endpoints to
v.0.3.0-rc1.
- Update
- Rename the
verbosityoption tolog-levelandlog-levelacceptsstringinstead ofuint8. Seehelpfor details. networkoption acceptsstringinstead ofuint8. Seehelpfor details.- Database table is updated to account for Starknet
v0.11.0changes.
Removed
- Remove
metricsandeth-nodeoptions since it is not used.
Fixed
- Graceful Shutdown: ensures all services have returned before exiting.
Full Changelog: v0.1.0...v0.2.0
Juno v0.1.0
Juno is a Starknet full node client implementation in Go.
This is Juno's first release (compatible with Starknet v0.10.3) with the following features:
- Starknet state construction and storage using a path-based Merkle Patricia trie.
- Pedersen and
starknet_keccakhash implementation over starknet field. - Feeder gateway synchronisation of Blocks, Transactions, Receipts, State Updates and Classes.
- Block and Transaction hash verification.
- JSON-RPC Endpoints:
starknet_chainIdstarknet_blockNumberstarknet_blockHashAndNumberstarknet_getBlockWithTxHashesstarknet_getBlockWithTxsstarknet_getTransactionByHashstarknet_getTransactionReceiptstarknet_getBlockTransactionCountstarknet_getTransactionByBlockIdAndIndexstarknet_getStateUpdate