Barnard Release - rc/v1.10.0

Contents

This document explains the contents of the release codenamed Barnard. It is split in 2 sections:

  • the features list containing detailed insights of the feature along with the external impact and the relevant
    pull requests list
  • the smaller features and fixes area contains the one-pull request small features or fixes along with the
    external impact details

This documentation is relevant for the rc/barnard branch.

Features

1. Governance updates #6490

This pull request introduces several enhancements and refactors to the governance smart contract:

  • It adds stricter voting period validations, introduces a new mechanism for tracking and clearing ended proposals and user votes, and implements support for a new user vote tracking structure (V2) with backward compatibility for V1.
  • Additional improvements include enhanced gas management, configurable voting delay, and more precise handling of proposal closure and results computation.
  • Some redundant or outdated methods (like the old user vote history view) are removed, and formatting/percentage calculations are improved for accuracy and clarity.

It improves the governance smart contract by:

  • tightening voting rules, adding better tracking and cleanup for proposals and user votes
  • supporting a new vote tracking format (V2) while keeping V1 compatibility.
  • improves gas use, allows voting delays, and refines how proposals are closed and results calculated.
  • Outdated methods are removed, and formatting and percentage handling are more accurate.

Impact:

  • Configuration changes:
    • There are two new enable epoch definitions for this feature, called GovernanceDisableProposeEnableEpoch and GovernanceFixesEnableEpoch
  • No Node CLI arguments changes
  • No Node HTTP API endpoints changes

Relevant PRs:

  • #5857 - Accept multiple delegateVoting
  • #5877 - MaxVotingDelayPeriodInEpochs
  • #5872 - Add gasUsage for changeConfig
  • #5922 - Add clean method
  • #6496 - Add cancel method before voting start
  • #6868 - Float64 conversion issue fix

2. Accounts storage iterator #6547

This feature enables retrieval of tokens from a data trie in a sequential order, with the possibility of continuing from a checkpoint if the data trie has lots of leaves, thus iterating thorough all the leaves in multiple accesses.

Impact:

  • No configuration changes
  • No Node CLI arguments changes
  • New node API endpoint was added, /address/iterate-keys

Relevant PRs:

  • #6086 - Accounts storage iterator
  • #6696 - Integrate new account storage iterator

3. Change penalise gas #6264

This feature brings a configurable maximum higher factor, modifying it from 10 to 2, so the penalization would apply starting from lower gas values provided.

Impact:

  • economics.toml has a new entry for the FeeSettings called MaxGasHigherFactorAccepted that is now set to 2. Previously, this was a constant set to the value of 10.
  • No Node CLI arguments changes
  • No Node HTTP API endpoints changes

Smaller features or fixes

  • #6511 - Update compiler to go 1.23
  • #6932 - VM reserved functions activation flag integration [integrates mx-chain-vm-go #913]
  • #6793 - Automatic activation of nodes disabled
  • #6548 - New epoch start blockchain hooks
  • #6893 - Add get ESDT token type vm hook [integrates mx-chain-vm-go #909]
  • #6852 - Integrate transfer and execute with return error [integrates mx-chain-vm-go #907]
  • #6791 - VM integration for backtransfers improvements [integrates mx-chain-vm-go #899]
  • #6774 - vm integration for get all transfers value hook, get code hash hook and internal errors masking [integrates mx-chain-vm-go #895, #897, #898]
  • #6327 - Check only dbs that are older than the given epoch
  • #6518 - Optimize GitHub workflows
  • #6519 - Optimize GitHub workflows
  • #6612 - Heartbeats chain simulator
  • #6997 - Fix epoch start trigger missing prev header