Releases: NethermindEth/juno
v0.8.0
This final release of v0.8.0 is fully compatible with upcoming Starknet 0.13.0 and implements the JSON RPC for v0.6.0, ensuring a smooth and efficient experience.
Key Updates
- Support for Starknet 0.13.0: Fully integrated new features and updates compatible with Starknet 0.13.0.
- JSON RPC spec v0.6 Implementation: RPC v0.6 is now available at endpoints
/v0_6
and the default/
, replacing the previous default of v0.5. - Removal of RPC /v0_4: Streamlining our service by supporting only the two most recent RPC versions. RPC
/v0_4
is no longer supported. - Enhanced Database Cache Configuration: The
db-cache-size
flag allows for custom configuration of the pebble db cache size, optimizing performance and resource management.
Full Changelog: v0.7.6-patch1...v0.8.0
v0.8.0-rc2
This version addresses multiple bug fixes in our Starknet JSON-RPC 0.6.0-rc4 implementation.
Key Updates
- Increase Gateway timeout by @omerfirmak in #1504
- Remove juno_getTransactionStatus from Juno RPC spec by @omerfirmak in #1505
- Fix potential nil panic in LegacyTraceTransaction by @omerfirmak in #1506
- Return all execution resources in rpc v0.5 by @joshklop in #1507
- Discard fee unit in legacy estimate message fee by @joshklop in #1509
Full Changelog: v0.8.0-rc1...v0.8.0-rc2
v0.8.0-rc1
This release introduces significant updates with support for upcoming Starknet 0.13.0 and implements the JSON RPC for v0.6.0-rc4.
Key Updates
- Support for Starknet 0.13.0: Seamlessly integrated new features and updates compatible with Starknet 0.13.0.
- JSON RPC spec v0.6 Implementation: Newly added RPC version. v0.6 is now available at endpoints
/v0_6
and the default/
, replacing the previous default of v0.5. - Removal of RPC /v0_4: To maintain a streamlined and efficient service, we support only the two most recent RPC versions. With the introduction of RPC v0.6, we are removing support for the older RPC
/v0_4
. - Enhanced Database Cache Configuration: Added the capability to configure the pebble db cache size. The new
db-cache-size
flag determines the amount of memory allocated for caching data. This enhancement boosts performance and scalability, allowing for more efficient resource management.
Full Changelog: v0.7.6-patch1...v0.8.0-rc1
v0.7.6-patch1
Fixes
- Blockifier and Cairo-VM Incompatibility: Resolved a known incompatibility issue between the blockifier and cairo-vm versions greater than 0.8.2.
Details
- Problem: Incompatibility between blockifier and cairo-vm versions greater than 0.8.2, causing excessive memory usage and resulting in Juno process termination.
- Resolution: Downgraded cairo-vm to version 0.8.2. This approach follows the solution implemented by eqlabs/pathfinder (See PR #1437).
- Outcome: Resolved the memory management issue and restored stability to the node.
Full Changelog: v0.7.6...v0.7.6-patch1
v0.7.6
Hotfix for class cache behavior.
Fixed
- Class Cache Issue: Ensure the class cache does not serve classes from the future. This update fixes traces for declare transactions whose class has already been cached (#1454 by @omerfirmak).
Full Changelog: Juno v0.7.5...v0.7.6
v0.7.5
This release brings a major boost in RPC performance, doubling the handling capacity, and includes important bug fixes to enhance overall node stability.
Added
- Increased VM and VM Queue Limits: Upped the default value for max VMs and VM queue, significantly boosting the node's ability to handle concurrent requests. (#1444 by @omerfirmak)
- Sepolia Network Support: Added support for the Sepolia network. (#1443 by @joshklop)
- L1 Height Metric: Added a new metric for L1 blockchain height, providing deeper insights into node state. (#1441 by @joshklop)
Changed
- Standalone Read-Only Contract Functions: Enhanced performance of
starknet_call
. (#1432 by @omerfirmak)
Fixed
- Missing
contract_address
in Write API Responses: Resolved an issue where thecontract_address
was missing instarknet_addDeployAccountTransaction
, ensuring complete and accurate transaction data. (#1440 by @omerfirmak) - ErrKeyNotFound Consistency Across State Implementations: Aligned all State implementations to return ErrKeyNotFound for missing contracts, streamlining error handling. (#1439 by @omerfirmak)
- Corrected Block Hash State Updates: Updated state handling with previous block hashes for more accurate block tracing. (#1438 by @omerfirmak)
- Query Bit Misuse as SKIP_VALIDATE: Fixed an issue where the query bit was accidentally used as SKIP_VALIDATE, ensuring proper transaction validation. (#1436 by @omerfirmak)
Full Changelog: v0.7.4...v0.7.5
v0.7.4
This release focuses on infrastructure scalability through enhanced gRPC integration, allowing for more efficient node deployment strategies.
Added
- RemoteDB over gRPC: Implement the ability for Juno nodes to connect to a primary node's database over gRPC, serving RPC requests without the need for syncing themselves. This feature is enabled through new flag:
--remote-db
, streamlining scalability and reducing overhead. (@omerfirmak in #1353)
Changed
- Error Logging: Reduced noise in logs by preventing the recording of errors not attributable to Juno's own operations. This ensures a clearer logging experience and easier troubleshooting. (@joshklop in #1406)
Usage
To deploy a syncing node that exposes its database over gRPC:
docker run -d \
--name juno_grpc \
--network juno-net \
-p 6064:6064 \
-v /root/snapshots/juno_mainnet:/var/lib/juno \
nethermind/juno:v0.7.4 \
--db-path /var/lib/juno \
--grpc-host 0.0.0.0 \
--grpc-port 6064 \
--grpc
To deploy a node that uses the primary node’s synced database over gRPC:
docker run -d \
--name juno_from_grpc \
--network juno-net \
-p 6065:6065 \
nethermind/juno:v0.7.4 \
--http \
--http-port 6065 \
--http-host 0.0.0.0 \
--remote-db juno_grpc:6064
Full Changelog: v0.7.3...v0.7.4
v0.7.3
🎉 Exciting updates have landed in the latest Juno release! Now with support for upcoming Starknet v0.12.3, we've also supercharged 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:
Added
- Support for Starknet v0.12.3
- A global class cache to the VM which enhances overall RPC throughput. (PR by @omerfirmak in 1401
- A new flag,
max-vms
, to control the maximum number of VM instances for concurrent RPC calls, optimizing resource usage (PR by @omerfirmak in #1378).
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).
Fixed
- Resolved an issue with event emission on sync step failure for more reliable synchronization (PR by @aminsato in #1387).
- Refactored websocket error conditions for improved stability and error handling (PR by @joshklop in #1400).
Docker Image
You can pull the Docker image for this release with the following command:
docker pull nethermind/juno:v0.7.3
Full Changelog: v0.7.2...v0.7.3.
v0.7.2
🚀 This release brings significant performance improvements, reducing sync time by approximately 28% (measured on an 8-core machine). We've also added support for tracing legacy blocks (block.Version <=0.12.0
), introduced additional metrics, and have ongoing exciting developments in P2P.
Added
- P2P (Work in Progress): Ongoing efforts for
Get events
,GetBlockHeaders
, andGetTransactions
. PRs by @kirugan and @IronGauntlets #1317, #1321, #1113.
Changed
- Logging: Capturing request URL on failure. PR by @omerfirmak in #1361.
- Metrics: Now collecting DB latency. PR by @omerfirmak in #1386.
- Parallelized tasks in
Trie.updateValueIfDirty
. PR by @omerfirmak in #1363. - Fallback logic for fetching traces when
block.Version <=0.12.0
. PR by @omerfirmak in #1336.
Docker Image
You can pull the Docker image for this release with:
docker pull nethermind/juno:v0.7.2
Full Changelog: (v0.7.1...v0.7.2)
v0.7.1
This is a minor release following v0.7.0, focused on performance improvements and extending transaction support.
Added
- Cache Generated Traces: A new caching layer for traces, improving performance. @omerfirmak
- Rejected Transactions Support: Added support for handling rejected transactions. @omerfirmak
Docker Image
You can pull the Docker image for this release with:
docker pull nethermind/juno:v0.7.1
Full Changelog: (v0.7.0...v0.7.1)