Leap 5.0.0-rc3 builds upon the first Leap 5.0 release candidate with important updates to the BLS host functions, as well as bug fixes, and improvements to performance, efficiency, and stability of the Leap software. It also includes a mitigation for a security issue.
| 📝 | This release includes consensus changes from prior 5.0 releases. Node Operators running prior 5.0 release candidates must upgrade. |
|---|
See the Upgrade Guide for details on required/recommended configuration changes, deprecations and new nodeos options.
Expand the release notes below for an in depth look at the Leap v5.0.0-rc3 release including a summary of important changes, and a complete change log.
A security vulnerability has been mitigated, preventing errors in Node Operators that depend on snapshots or This release includes a change to base64 encoding that is incompatible with versions of leap prior to 3.2.5.
For more details, see PR 1888.
Changed host functions and added benchmarking for BLS. (PRs #1882, #1884, #1904, #1938)
Added, removed, and changed host functions to require affine and non-Montgomery form and enable additional BLS mathematical operations to be feasibly implemented in WASM such as compressed signature conversion.
Add benchmarking of BLS host functions into A sample result looks like
Renamed 5.0.0-rc3 builds upon changes we made in rc2 to optimize block start time but replaces the existing config parameter expressed in miliseconds instead of a percentage.
Specifically, we have replaced the See PR 1800 for complete details on the change. BP Documentation has been updated.
Before this change, these wasm config settings were included in the response regardless of the protocol features in use. However, it has been recognized that these settings are only valid and relevant when the With this update, a change has been made to the behavior of the This modification ensures that clients requesting consensus parameters receive only the information that is applicable to the current protocol configuration, making the responses more accurate and relevant.
For complete details on this change see PR 1770.
Added stable identifiers for P2P connections and ensured valid unique_conn_node_id. (PRs #1750, #1879).
Improved identification in Ensured the presence of a valid and unique connection ID for Prometheus metrics, as detailed in PR #1879. This update addresses Issue #1871, which highlighted the inefficiency of stats displayed without connection IDs, and now temporarily assigns an ID until an established connection is confirmed.
Deferred Transactions were previously deprecated and have been removed. No new deferred transactions may be created. Existing deferred transactions, will be blocked from executing.
As of Leap v5.0.0
Full Changelog: v5.0.0-rc2...v5.0.0-rc3
Leap v5.0.0-rc3 Release Notes
Security
Mitigation of Potential Denial of Service for Snapshots & SHiP
state_history_plugin and snapshot functionality in certain edge case conditions (PR 1964).
state_history_plugin with chain-state-history enabled should upgrade. Users running state_history_plugin with only trace-history are not affected.
Compatibility
basee64 encoding compatibility
Enhancements
BLS Updates
BLS Host Function Updates
Changes to BLS host functions
bls_g1_mul
bls_g2_mul
bls_g1_exp
bls_g2_exp
bls_g1_weighted_sum
bls_g2_weighted_sum
bls_fp_mul
bls_fp_exp
BLS Benchmarking
Leap Benchmark suites. Use benchmark/benchmark -f bls to benchmark.
function runs average minimum maximum
bls:
bls_g1_add 5,000 76,699 ns 75,622 ns 123,329 ns
bls_g2_add 5,000 82,521 ns 81,196 ns 131,229 ns
bls_pairing 1 pair 5,000 1,638,763 ns 1,557,463 ns 3,569,653 ns
bls_pairing 3 pairs 5,000 2,321,344 ns 2,232,847 ns 3,740,820 ns
bls_g1_weighted_sum 1 point 5,000 260,683 ns 258,196 ns 328,138 ns
bls_g1_weighted_sum 3 points 5,000 670,546 ns 661,700 ns 2,038,831 ns
bls_g1_weighted_sum 5 points 5,000 817,884 ns 808,866 ns 2,200,022 ns
bls_g2_weighted_sum 1 point 5,000 818,862 ns 794,358 ns 2,368,434 ns
bls_g2_weighted_sum 3 points 5,000 2,338,746 ns 2,285,345 ns 4,072,288 ns
bls_g2_weighted_sum 5 points 5,000 2,924,081 ns 2,845,713 ns 22,833,113 ns
bls_g1_map 5,000 379,593 ns 372,223 ns 566,554 ns
bls_g2_map 5,000 531,899 ns 522,480 ns 722,943 ns
bls_fp_mod 5,000 794 ns 703 ns 9,219 ns
bls_fp_mul 5,000 692 ns 621 ns 7,913 ns
bls_fp_exp 5,000 32,397 ns 31,702 ns 43,478 ns
Updated Protocol Feature
BLS_PRIMITIVES to BLS_PRIMITIVES2 to make explicit that there is a breaking change in the interface and behavior of the BLS host functions enabled by the BLS_PRIMITIVES2 protocol feature compared to the BLS_PRIMITIVES protocol feature that was added in v5.0.0-rc2.
Replace
cpu-effort-percent with produce-block-offset-mscpu-effort-percent configuration parameter with produce-block-offset-ms, which now specifies the amount of time to leave at the end of the 12-block production round for the last block to reach the next block producer. This value can be configured to be larger than 500 milliseconds if necessary.
Only return wasm config settings if configurable wasm limits enabled
CONFIGURABLE_WASM_LIMITS2 protocol feature is active.
/v1/chain/get_consensus_parameters endpoint. The wasm config settings, which include various parameters related to WebAssembly execution, will now only be returned if the protocol feature CONFIGURABLE_WASM_LIMITS2 is enabled.
Prometheus Enhancements
Stable Identifiers
prometheus_plugin by using node_id as a stable identifier for P2P connections, addressing the issue of changing identifiers with each disconnect and reconnect. This enhancement, implemented in PR #1750, resolves the challenge outlined in Issue #1683 of tracking consistent metrics in nodeos_p2p_connections.
Ensure Valid Connection ID
Performance & Efficiency Improvements
Stability Improvements
Bug Fixes
Operational Improvements
Deprecations & Removals
Deferred Transactions Removed
Get Block Header State Deprecated
v1/chain/get_block_header_state is deprecated. It will be removed in Leap v6.0.0.
Documentation Updates
Change Log
Pull Requests
--eos-vm-oc-enable option in tests when OC is available, and tweak/fix location of its usage by @spoonincode in #1792
cpu-effort-percent with produce-block-offset-ms by @heifner in #1800
experimental-binaries package on release by @spoonincode in #1797
snapshot_scheduler_test by @spoonincode in #1821
mapped mode when loading a snapshot in mapped_private mode. by @greg7mdp in #1825
wait-for-exact-target not wait-for-exact-target-workflow by @spoonincode in #1867