github NethermindEth/juno v0.16.7

2 hours ago

⚠️ This release is the minimum version required to support Starknet 0.14.4. If you are on an earlier version, please update.

It also makes storage proofs, event queries, and transaction traces cheaper to serve. The RPC concurrency limit now applies to WebSocket requests as well.

If you tuned --rpc-batch-concurrency, note that it is now a single limit shared across all RPC versions rather than one per version.

Added

  • --rpc-max-concurrent-requests now counts websocket requests as well as HTTP, so the limit is a real ceiling on concurrent RPC execution. WebSocket requests are never queued: over the limit they are rejected immediately with a ServerBusy error, while HTTP requests still wait in the --rpc-max-request-queue queue. #4014

Changed

  • --rpc-batch-concurrency is now one global limit shared across RPC v8, v9 and v10 (previously one limit per version). #4013
  • Optimized batch responses by joining already-encoded results instead of re-encoding them, and block IDs are now decoded in a single pass. #3998 #4009
  • Optimized storage proof generation by proving all requested keys in a single trie traversal instead of one walk per key. #4015
  • Optimized event queries by skipping bloom filter loads when no address or key filter is given, and by decoding only the bloom rows a filtered query needs. #3994 #4022 #4008
  • Transaction traces are cached once and shared between RPC v9 and v10, so tracing the same block through both versions no longer re-executes it. #4065 #4066 #4067
  • The VM and the database block cache are served from two shared jemalloc arenas, so memory freed by one request is reused by the next instead of being returned to the OS and page-faulted back in. This applies to calls, estimates, simulations, and traces. #4053
  • The VM class cache is keyed on declaration height, so cached classes are reused across trace and call flows. #4029
  • Optimized pre-confirmed subscriptions by deduplicating identical subscriptions before adapting the block for each client. #4036
  • The Rust VM and Cairo compiler are built as one static library with fat LTO. #4052
  • Blockifier bumped to 0.20.0-rc.1. #4098
  • Docs site reworked around an operator-focused theme, with a new sidebar, better contrast, and an llms.txt. #4010 #4011 #4026 #4027 #4034 #4035 #4037

Fixed

  • Re-execution of Starknet v0.14.4 blocks no longer fails on transactions that contain PROOF1. #4098
  • Nodes started with --remote-db no longer try to run migrations against the read-only remote store, remote range scans now honour the requested prefix and upper bound, and each read releases its gRPC transaction instead of leaking it. #4030
  • Storage proof state is pinned to the validated block height, fixing a race that could return a proof for the wrong block. #4064
  • Sync no longer stalls when a pre-confirmed block leaves the gateway window mid-backfill; the poller skips that tick and recovers on the next one. #4017
  • Errorf log calls were emitted at info level, and their arguments were not formatted. #4062

New Contributors

Full Changelog: v0.16.6...v0.16.7

Don't miss a new juno release

NewReleases is sending notifications on new releases.