NethermindEth Juno Versions Save

Starknet client implementation.

v0.11.0-rc0

3 months ago

This release provides compatibility with Starknet 0.13.1, including the latest blockifier version and ensuring RPCv0.6 stability.

:warning: This release does not yet support RPCv0.7 :warning:

Changed

  • Updated Starknet core components: Updated Cairo compiler and Blockifier versions.
  • Adjusted Starknet Feeder Gateway interface: Adjusting Juno's Starknet Feeder Gateway interface to adapt to new request/response formats.

Fixed

  • P2P Sync Panic: Fix panic at Sepolia block number 34980.

v0.10.0

3 months ago

We're pleased to announce the release of Juno v0.10.0. This update introduces experimental support for peer-to-peer (P2P) syncing on the Sepolia test network. The P2P feature is a significant step towards a decentralized network, allowing nodes to directly sync with each other.

Added:

  • Experimental P2P Syncing: Initial implementation for P2P syncing, currently available on the Sepolia test network. This feature allows Juno nodes to connect and sync directly with each other, aiming to reduce reliance on centralized infrastructure.
  • Configurable Gateway Timeout: Users can now adjust gateway timeouts, offering better control over network interactions.
  • CORS Support Toggle: Introduced the ability to enable or disable CORS support, enhancing security and cross-origin resource sharing capabilities.

To join our experimental Sepolia network, use the following command:

docker run -d \
  --name juno_p2p \
  -p 6060:6060 \
  -p 7777:7777 \
  -v $HOME/juno_p2p:/var/lib/juno \
  nethermind/juno:v0.10.0 \
  --db-path "/var/lib/juno" \
  --network "sepolia" \
  --log-level "debug" \
  --http \
  --http-host "0.0.0.0" \
  --http-port "6060" \
  --p2p \
  --p2p-addr /ip4/0.0.0.0/tcp/7777 \
  --p2p-peers=/ip4/34.138.100.215/tcp/7777/p2p/12D3KooWR8ikUDiinyE5wgdYiqsdLfJRsBDYKGii6L3oyoipVEaV

More information: Juno's experimental peer-to-peer launch (Medium)

v0.9.4

3 months ago

This release focuses on significant performance improvements and enhanced monitoring capabilities to provide better insights and efficiency.

Added

  • jemalloc Memory Management: Dramatic reduction in CPU usage, nearly 2x improvement under the same RPC load.
  • New Metrics: Introduced metrics for Pebble Cache, VM Running Jobs, and VM Queue Length for enhanced system monitoring.

Changed

  • Dependencies Updated: updated blockifier to 0.4.1-rc.0 along with version bumps for Cairo language and Rust dependencies.
  • VM busy error message: changed error message for resource busy to VM throughput limit reached

Full Changelog: https://github.com/NethermindEth/juno/compare/v0.9.3...v0.9.4

v0.9.3

4 months ago

This release marks a significant step towards enhancing Juno's adaptability and generic capabilities. Additionally, it addresses a crucial issue related to the delayed receipt of declare transactions in pending blocks.

Added

  • Custom Network Configuration Flags: Introduced new flags to Juno (cn-name, cn-feeder-url, cn-gateway-url, cn-l1-chain-id, cn-l2-chain-id, cn-core-contract-address) that enable running Juno on custom networks. This enhancement allows for the configuration of custom feeder endpoints and contract addresses, offering greater flexibility in network setup and operations. (@rianhughes in #1639)
  • Custom Network Unverifiable Range: Added the cn-unverifiable-range flag to specify a range of blocks in custom networks where hash verifications and transactions are skipped, enhancing flexibility. (@rianhughes in #1659)
  • Configurable Max Steps for starknet_call: Allow users to configure the maximum number of steps to be executed for starknet_call(rpc-call-max-steps flag), enhancing control over contract interactions. (@omerfirmak in #1680)

Changed

  • Pebble Upgrade to 1.0.0: Upgraded the underlying Pebble DB to version 1.0.0 for improved stability. (@joshklop in #1635)

Fixed

  • Query Class Definitions on Pending State: Resolved an issue where Juno was unable to retrieve class definitions from pending blocks from the feeder. This fix enhances the efficiency of accessing declare transaction receipts shortly after their addition, streamlining the transaction handling process. (@omerfirmak in #1677)

Full Changelog: https://github.com/NethermindEth/juno/compare/v0.9.2...v0.9.3

v0.9.2

5 months ago

:warning: Warning :warning:

DB Migration: Upgrading to this version requires a database migration, which is expected to take approximately 20-40 minutes. You can skip it by using the pre-migrated database snapshot from our docs.

Added

  • GatewayMetrics: Added new metrics for the gateway client, enhancing monitoring and performance analysis.

Changed

  • Optimized Traces: Used pre-compiled classes for optimized trace performance, significantly reducing the need for on-the-fly compilation.
  • Placeholder Nonce for L1 Handlers: Introduced a placeholder nonce (0x0) for serving L1 handlers over RPC, addressing spec requirements for nonces.
  • Increased gRPC Message Size Limit: The gRPC message size limit has been significantly raised to accommodate very large classes (over 10MB), ensuring that size constraints won't be a limiting factor in the future.
  • VM Errors as RPC Errors: Internal VM errors are now treated as internal RPC errors, streamlining error categorization and handling.
  • Fallback for 0.12.3 Blocks: Implemented a fallback to the feeder gateway for traces of 0.12.3 blocks, improving compatibility and trace handling.

Fixed

  • Write Transaction Timeout Fix: Resolved an issue where write transactions were being cut off after 5 seconds, ensuring better transaction handling.
  • Fix in LegacySimulateTransactions: Corrected an issue where LegacySimulateTransactions was not returning the correct error for reverted transactions, improving error accuracy.

Full Changelog: https://github.com/NethermindEth/juno/compare/v0.9.1...v0.9.2

v0.9.1

5 months ago

:warning: Warning: Version v0.9.x+ is only compatible with Starknet v0.13.0 and above. :warning:

Added

  • API Key Support for Feeder/Gateway: Added support for configuring an API key to bypass feeder/gateway throttling. Use the --gw-api-key flag when running Juno to specify the API key. (@omerfirmak in #1579)

  • Flag --db-max-handles: We've introduced a new flag, enabling users to adjust the MaxOpenFiles setting in Pebble. This improvement is aimed at enhancing Juno's ability to manage a higher volume of RPC requests efficiently. (@omerfirmak in #1587)

Changed

  • Error Metrics: Revised error metrics to only count internal errors as failed requests. This change addresses the issue where request relatd errors were inaccurately classified as failures in metrics, leading to misleading data. Now, only errors that signify server-level issues contribute to the failure rate. (@omerfirmak in #1566)

  • Request Logging: Altered the RPC request logging approach to only log failed requests. Previously, logging all RPC requests resulted in excessive data, making it challenging to pinpoint issues. This update streamlines the process, focusing on capturing only those requests that fail, thereby facilitating easier troubleshooting. (@omerfirmak in #1572)

Fixed

  • Class Cache Issue: Addressed an issue where the class cache was serving non-declared classes in certain edge cases. (@omerfirmak in #1571)

Full Changelog: https://github.com/NethermindEth/juno/compare/v0.9.0...v0.9.1

v0.8.3

5 months ago

:warning: Warning: Version 0.8.x is compatible only up to Starknet v0.12.3. :warning:

Added

  • API Key Support for Feeder/Gateway: Added support for configuring an API key to bypass feeder/gateway throttling. Use the --gw-api-key flag when running Juno to specify the API key. (@omerfirmak in #1579)

  • Flag --db-max-handles: We've introduced a new flag, enabling users to adjust the MaxOpenFiles setting in Pebble. This improvement is aimed at enhancing Juno's ability to manage a higher volume of RPC requests efficiently. (@omerfirmak in #1587)

Changed

  • Error Metrics: Revised error metrics to only count internal errors as failed requests. This change addresses the issue where request relatd errors were inaccurately classified as failures in metrics, leading to misleading data. Now, only errors that signify server-level issues contribute to the failure rate. (@omerfirmak in #1566)

  • Request Logging: Altered the RPC request logging approach to only log failed requests. Previously, logging all RPC requests resulted in excessive data, making it challenging to pinpoint issues. This update streamlines the process, focusing on capturing only those requests that fail, thereby facilitating easier troubleshooting. (@omerfirmak in #1572)

Fixed

  • Class Cache Issue: Addressed an issue where the class cache was serving non-declared classes in certain edge cases. (@omerfirmak in #1571)

Full Changelog: https://github.com/NethermindEth/juno/compare/v0.8.2...v0.8.3

v0.8.2

6 months ago

In this release, Juno introduces updates focusing on metrics enhancement.

Added

  • Feeder Metrics: Introduced new metrics for tracking response statistics from the feeder. This update provides valuable insights into the feeder's performance and interaction dynamics. (@joshklop in #1543)

Full Changelog: https://github.com/NethermindEth/juno/compare/v0.8.1...v0.8.2

v0.9.0

6 months ago

In this release, Juno introduces updates focusing on compatibility adjustments.

:warning: Warning: This release is compatible with Starknet v0.13.0+ only. Do not upgrade your nodes to this version until Starknet is updated to v0.13.0. :warning:

Changed

  • Blockifier Update and Fee Alignment: Updated blockifier and aligned fees with Starknet 0.13.0, ensuring Juno remains in sync with the latest network standards. (@omerfirmak in #1544)

Full Changelog: https://github.com/NethermindEth/juno/compare/v0.8.2...v0.9.0

v0.8.1

6 months ago

This release focuses solely on fixes for the RPC spec, aiming to improve the accuracy of RPC interactions.

Fixed

  • Simulate Transaction Error Handling for RPC v0_5: Addressed an issue where the starknet_simulateTransactions method did not return the correct error upon transaction reversion. (@omerfirmak in #1535)
  • EstimateFee Error Fix for RPC v0_5: Resolved an issue where starknet_estimateFee returned TxnExecutionErr instead of contract error. (@omerfirmak in [#1539]
  • Starknet Spec Version Update for RPC v0_6: Corrected the supported specification version to 0.6.0 in starknet_specVersion. (@wojciechos in #1536)

Full Changelog: https://github.com/NethermindEth/juno/compare/v0.8.0...v0.8.1