v0.16.5-rc.1
Pre-release
Pre-release
We've revamped completely the way we fetch the latest data from the Feeder Gateway, reducing P50 latency from 1 second to a few mili-seconds. The following table compares the latency from an old Juno version versus this new release when tracking a new submitted transaction:
| Dimension | Juno old | Juno new |
|---|---|---|
| Tx-inclusion latency — p50 | 1230ms | −87ms* |
| Tx-inclusion latency — p90 | 2850ms | 349ms |
| Tx-inclusion latency — p99 | 4722ms | 439ms |
| Tx-inclusion latency — max | 5669ms | 1211ms |
*negative latency means the observer received the latest data faster from Juno than from the Feeder Gateway
Additionally, this update is packed with security and performance improvements, making the day to day execution of a Juno node safer and cheaper resource wise.
Added
- New way of fetching the pre-confirmed heads reducing latency from the 1 to 4 second range to below 100 mili-second on average #3723 #3730
- New RPC HTTP concurrency limit added (#3753), accessed through flags
--rpc-max-concurrent-requestsand--rpc-max-request-queue. Current default limits are big enough to avoid a breaking change but will be lowered down in Juno's next major version. - Every Sequencer responses is now validated. This will protect the Juno node when the Sequencer sends malformed data. #3749
Changed
- Optimized latest-block state reads by avoiding full block header decoding. Getting a latest block
nonce,class hashorstoragetake 50% less time. #3782 - Optimized key flattening, an instruction used for most DB accesses, to be twice as fast, reduce heap allocations by 1/3 and use half the memory. #3783
- Optimized trie access to be lazy. Instead of building the Contract and Class tries every time there is a need to read from the state, they are built on demand, improving the latency for RPC requests that don't need these tries. #3780 #3789
- Optimized Blake2s hash (used when re-computing CASM hash version) making it twice fast and using 1/3 less memory usage and heap allocations.
- Sequencer flags are now correctly marked as experimental. #3802
- Retry getting Chain ID on node startup instead of failing. #3771 #3776
Removed
- Candidate transactions are no longer part of the public API. #3732
- Removed pending endpoint querying. #3806
New Contributors
- @Ehsan-saradar made their first contribution in #3769
Full Changelog: v0.16.4...v0.16.5-rc.1