Juno release notes
Juno is a golang Starknet node implementation by Nethermind with the aim of decentralizing Starknet.
See the official Juno GitHub repository for more details.
v0.7.3
Support for upcoming Starknet v0.12.3, improved RPC performance with a new global class cache, allowing for higher request throughput and optimized resource usage. We’ve updated blockifier, which includes an important wallet integration fix. On top of that, expect new metrics and ongoing enhancements to the P2P layer, among other improvements. Hereβs whatβs new:
Changed
-
The blockifier library has been updated, now supporting the query bit in the version field for transactions.
PR by @joshklop in #1401. -
Subscription handling has been moved to the synchronizer for improved efficiency.
PR by @joshklop in #1373. -
Ongoing enhancements to the P2P layer, including the implementation of a Receipt Handler and Adapter and a new
GetBlockBodies
feature.
PRs by @IronGauntlets in #1352 and by @kirugan in #1359. -
Prometheus metrics have been expanded to include version information, latency on
Transaction.Commit()
, and read metrics on blockchain operations.
PRs by @omerfirmak in #1394, #1396, and #1395. -
Kubernetes pods now have a correctly set
GOMAXPROCS
setting, aligning performance with CPU resources.
PR by @omerfirmak in #1397. -
Fallback to feeder traces for blocks ⇐ 0.12.2.
PR by @omerfirmak in #1405.
Docker Image
You can pull the Docker image for this release with the following command:
docker pull nethermind/juno:v0.7.3
v0.7.0
The primary goal of this release is to introduce support for Starknet JSON-RPC v0.5.0. Juno now supports multiple versions via /v0_5
and /v0_4
endpoints. The default version at the root /
endpoint has been updated from 0.4.0 to 0.5.0.
π Added
-
Starknet v0.5.0 Compatibility:
-
Implemented
starknet_specVersion
@omerfirmak -
Renamed
juno_getTransactionStatus
tostarknet_getTransactionStatus
. @omerfirmak -
Removed
pendingTransactions
endpoint for cleanup. @omerfirmak -
Added new fields like execution resources and message hash to RPC receipt. @omerfirmak
-
Building and calculating state diffs. @omerfirmak
-
Make
starknet_traceBlockTransactions
get a block id @kirugan -
Add txn type to traces
-
Add message_hash field for L1_HANDLER_TXN_RECEIPT
-
Add
starknet_getTransactionStatus
and removestarknet_pendingTransactions
-
-
Support multiple RPC versions: v0.4.0 and v0.5.0 @omerfirmak
-
Performance Metrics: Moved metric counting out of various components for cleaner code. @omerfirmak
-
Websocket Enhancements: Full-duplex comms and fixes related to over-reading websocket requests. @joshklop
π Changed
-
RPC Optimization: Reduced allocations in RPC requests for better performance. @joshklop
-
Refactored Error Handling: Improved global error usage and better error handling in various components. @omerfirmak
π Fixed
-
Websocket Reading: Fixed over-reading issues in Websocket requests.@joshklop
-
Error Handling: Resolved potential nil pointer dereferences and panic issues. @omerfirmak
v0.6.0
π Added
-
New Trace RPC Methods:
-
starknet_traceTransaction
-
starknet_traceBlockTransactions
-
starknet_simulateTransactions
-
-
Juno RPC Schema: A dedicated schema to streamline RPC interactions for Juno’s method.
-
Juno Console Enhancement: Pretty printing of Juno console logs for an enriched user experience.
-
Comprehensive Documentation: Official documentation now hosted on GitHub Pages.
π Fixed
-
RPC Schema Consistency: Revised to ensure our RPC schema is consistent with the Starknet specification.
βοΈ Command-line Switches Update
Command-line switches have been restructured to provide clearer access control:
docker run -d
--name juno
-p $httpPort:$httpPort
-p $metricsPort:$metricsPort
-v /root/juno:/var/lib/juno
nethermind/juno:v0.6.0
--db-path /var/lib/juno
--http
--http-port $httpPort
--metrics
--metrics-port $metricsPort
--eth-node <YOUR-ETH-NODE>
(Note: Ensure to adjust the variables like $httpPort
, $metricsPort
and others as per your configuration.)
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
--metrics
and--metrics-port
to enable this feature
Added
-
Log the incoming RPC requests in Pull Request #907
Changed
-
Update types for 0.12.1 in Pull Request #895
-
Parallelize per-contract storage updates in Pull Request #900
Fixed
-
Add missing From field to rpc.MsgToL1 in Pull Request #908
v0.4.0
This release has breaking changes and database is not compatible with the previous version. |
Added
-
New RPC Methods:
-
starknet_call
-
starknet_estimateFee
-
starknet_addDeclareTransaction
-
starknet_addDeployAccountTransaction
-
starknet_addInvokeTransaction
-
juno_getTransactionStatus
-
juno_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.
v0.3.1
Fixed
-
Resolved issue with
NumAsHex(0)
being omitted in RPC. -
Fixed a Goerli sync issue by relaxing decoder max array elements limit.
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_syncing
-
starknet_getNonce
-
starknet_getStorageAt
-
starknet_getClassHashAt
-
starknet_getClass
-
starknet_getClassAt
-
starknet_getEvents
-
For new RPC endpoints to fully work with data before the new version, the node needs to be resynced. |
v0.2.2
This patch release fixes handling of block versioning and ensures compatibility with non-sem-ver compliant Starknet.
v0.2.1
This minor release introduces an important optimization that enhances sync performance.
-
Update gnark-crypto version:
-
Implement precomputed point multiplication results for Pedersen hash operations.
-
Full Changelog: v0.2.0…v0.2.1
v0.2.0
This release adds support for Staknet v0.11.0
.
This release has breaking changes and database is not compatible with the previous version. |
Added
-
Starknet
v0.11.0
support:-
Add Poseidon hash for new state commitment.
-
Add
DeclareTransaction
version 2. -
Add and Store Cairo 1/Sierra class definition and hash calculations.
-
-
pprof
option is added for profiling and monitoring. -
Verify Class Hashes.
Changed
-
Starknet
v0.11.0
support:-
Update
InvokeTransaction
version 1’scontract address
tosender address
. -
Update current JSON RPC endpoints to [
v.0.3.0-rc1
](https://github.com/starkware-libs/starknet-specs/tree/v0.3.0-rc1).
-
-
Rename the
verbosity
option tolog-level
andlog-level
acceptsstring
instead ofuint8
. Seehelp
for details. -
network
option acceptsstring
instead ofuint8
. Seehelp
for details. -
Database table is updated to account for Starknet
v0.11.0
changes.
Fixed
-
Graceful shutdown: ensure all services have returned before exiting.
Full Changelog: v0.1.0…v0.2.0
v0.1.0
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_keccak
hash implementation over starknet field. -
Feeder gateway synchronization of Blocks, Transactions, Receipts, State Updates and Classes.
-
Block and Transaction hash verification.
-
JSON-RPC Endpoints:
-
starknet_chainId
-
starknet_blockNumber
-
starknet_blockHashAndNumber
-
starknet_getBlockWithTxHashes
-
starknet_getBlockWithTxs
-
starknet_getTransactionByHash
-
starknet_getTransactionReceipt
-
starknet_getBlockTransactionCount
-
starknet_getTransactionByBlockIdAndIndex
-
starknet_getStateUpdate
-