Updates

OneFinity Node upgrades

OneFinity will regularly perform node upgrades to incorporate new features, improvements, and bug fixes into its network. Unlike hard forks, these upgrades are backward compatible, ensuring no interruption in service. It's crucial for node operators to understand the upgrade process to maintain their nodes effectively and avoid any potential downtime.

When to Upgrade

Node operators should upgrade their nodes whenever a new binary is released for the OneFinity network, including the mainnet, testnet, or devnet. These upgrades are essential for keeping nodes up to date and secure.

How to Stay Informed

  • Validators Telegram Channel: Join the OneFinity Validators Telegram channel for real-time updates and community support.

  • Email Notifications: Subscribe to email notifications from the official GitHub repositories containing the chain configuration files.

  • OneFinity Explorer: Set up monitoring on https://explorer.onefinity.com/nodes for alerts on new updates. Use this tool to check the status of your validator software version, looking for the ⚠ symbol to identify outdated versions.

  • Configuration Repositories: Keep an eye on the of-chain-mainnet-config, of-chain-testnet-config, and of-chain-devnet-config repositories for the latest updates.

Summary

Staying informed and promptly upgrading your node is vital for the health of the OneFinity network and the efficiency of your node operation. By following the outlined steps and utilizing the available resources, node operators can ensure their nodes are always running the most current software version, contributing to a more stable and robust network.

Types of Upgrades

A. All Nodes Need to Upgrade: Essential for all nodes to maintain network compatibility; includes critical processing changes.

B. Optional Upgrades: Beneficial but not critical; includes features like new Rest API endpoints or improved syncing.

C. Only Validators Need to Upgrade: Pertains to changes affecting validators, such as rating adjustments or transaction selection enhancements. Optional for observers.

Activation epochs

To ensure smooth upgrades and consistent network views at all times, OneFinity employs an activation epoch mechanism. This approach allows nodes to support both the current and upcoming protocol versions until the change officially takes effect. Through this system, upgraded nodes stay compatible with those not yet upgraded, maintaining consensus in nearly all cases (99.9%). However, the complexity of codebase upgrades and third-party transactions can introduce unpredictable outcomes, making absolute certainty unattainable.

Deterministic time / height for upgrades

While new features or bug fixes in the OneFinity Mainnet become effective based on epochs, precise timing is unpredictable due to potential delays, such as rollbacks. An epoch spans 43,200 rounds, equating to 24h, with each round lasting 2sec. Unlike some protocols where updates are tied to a specific block height, OneFinity's updates activate at the start of an epoch. However, the exact block height for the start of an epoch, and consequently the update, remains uncertain due to potential rollbacks.

NOTE

2sec finalization time will be the first milestone but, as MultiversX, we expect to have a 1sec finalization time in 2025.

Activation epoch example

Introducing a new feature that allows smart contracts to receive PayableBySC metadata, enabling them to accept ONE tokens or other cryptocurrencies from other smart contracts. This feature becomes active in epoch 613.

Backwards Compatibility & Activation Timeline

  • Before Epoch 613: Transactions attempting to set PayableBySC are treated as invalid metadata.

  • Epoch 600 Release: A new node binary is released, incorporating the PayableBySC feature, scheduled for activation in epoch 613.

  • Post-Epoch 613: Upon reaching epoch 613, the feature activates. Transactions including PayableBySC metadata are processed as valid. All nodes must upgrade to stay in sync with the chain.

Implications for Node Operators

  • Nodes not upgraded by the activation epoch (613) will diverge from the main chain, as they will process transactions differently.

  • Upgrading to the new binary before epoch 613 ensures compatibility and supports new transactions involving PayableBySC.

Current Status

  • The OneFinity Mainnet is currently at epoch 590.

  • The new feature is in preparation, with the community and node operators advised to ready themselves for the upcoming upgrade.

This streamlined approach ensures the network stays robust while introducing innovative features to enhance smart contract functionality.

Epoch < 613Epoch >= 613

IsPayableBySC

invalid metadata

successful

Last updated