Skip to content

Releases: NethermindEth/juno

v0.7.0

13 Oct 09:23
Compare
Choose a tag to compare

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 to starknet_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 remove starknet_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

Deployment and CI/CD

Docker Image

You can pull the Docker image for this release with:

docker pull nethermind/juno:v0.7.0

Full Changelog: (v0.6.6...v0.7.0)

v0.6.6

11 Oct 14:24
Compare
Choose a tag to compare

🌟 Added

  • Added curl, grep, and awk tools to the Docker image

πŸ›  Fixed

  • Resolved "405 method not allowed" error when calling RPC in the browser by enabling CORS and correctly handling OPTIONS requests. Fixes issue #1329 opened by @cwkang1998 and fixed by @omerfirmak

Full Changelog: v0.6.5...v0.6.6

v0.6.5

09 Oct 10:07
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.6.4...v0.6.5

v0.6.4

04 Oct 09:33
Compare
Choose a tag to compare

πŸ”§ Stability Enhancements:

  • Fix panic when feeder returns mismatched number of txns and receipts #1282

πŸ”— Full Changelog: v0.6.3...v0.6.4

v0.6.3

20 Sep 13:24
0bfac9d
Compare
Choose a tag to compare

πŸ”§ Stability Enhancements:

  • Immediately acknowledge panicing services #1248
  • Defer state closer #1251
  • Discard database txn if user callback panics #1250
  • Enabled feeder client logs and timeout #1252
  • Move latest block fetch out of store callback #1253

πŸ”— Full Changelog: v0.6.2...v0.6.3

v0.6.2

18 Sep 10:32
d548f1a
Compare
Choose a tag to compare

πŸ”„ Changed

  • Configurable Host Address:

    • Introduced the ability to customize host addresses with new parameters:
      • --http-host
      • --metrics-host
      • --ws-host
      • --pprof-host
      • --grpc-host
    • By default, these are set to localhost. To make them public, set the address to 0.0.0.0.
  • Pending Block Storage:

    • Adjusted the storage of the pending block to store an empty version instead of deleting its key. This change aims to decrease "block not found" errors during transaction simulations against the pending block.
  • Library Update:

    • Bumped to the latest version of gnark-crypto.

πŸ›  Fixed

  • Transaction Version Handling:
    • Resolved the handling of the query bit when determining the transaction version for hashing, ensuring precise transaction version identification.

Full Changelog: v0.6.1...v0.6.2

v0.6.1

13 Sep 06:13
cb7f30c
Compare
Choose a tag to compare

🌟 Added

  • Monitoring Metrics:

    • latency metrics to the RPC server.
    • failed RPC requests.
    • additional sync metrics added by @Exca-DK
  • Versioned Documentation: Added versioned docs to ensure clarity across different versions.

πŸ”„ Changed

  • Updated Pebble: Adopted the crl-release-23.1 branch of Pebble, resulting in optimized database operations.

  • Go Version: Upgraded the codebase to Go v1.21.

  • Rust Enhancements: Made multiple refinements in the Rust code, including reducing the number of allocations for trace serialization and removing unnecessary casts.

πŸ›  Fixed

  • Clear Query Bit: Addressed an issue with the clear query bit in deploy account transactions.

  • Enhanced Transaction Handling: Implemented the return of ErrTxnHashNotFound in juno_getTransactionStatus by @aminsato

  • Field Naming Consistency: Corrected the starknet_simulateTransactions wrongly named field, ensuring consistency with the specification by @tomek0123456789.

Full Changelog: v0.6.0...v0.6.1

v0.6.0

22 Aug 14:04
02c0b26
Compare
Choose a tag to compare

πŸš€ We're thrilled to announce the release of Juno v0.6.0. As we continue to forge ahead on our journey, this release encapsulates further improvements, new features, and optimized support to enhance the Starknet client experience.

🌟 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.)

πŸ” Migration Notes

  • Database Migration: This version introduces database changes due to our work focus on peer-to-peer (p2p) communication. These changes may result in extended migration times. For faster sync, we recommend users to utilize snapshots.

πŸ“¦ Docker Image

For those utilizing Docker:

docker pull nethermind/juno:v0.6.0

Full Changelog: v0.5.1...v0.6.0


v0.5.1

17 Aug 09:51
Compare
Choose a tag to compare

This release adds support for the Starknet v0.12.2.

Added

  • Support for Starknet v0.12.2

Docker Image

You can pull the Docker image for this release with:

docker pull nethermind/juno:v0.5.1

Full Changelog: v0.5.0...v0.5.1

v0.5.0

07 Aug 16:33
Compare
Choose a tag to compare

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

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