Function X f(x)Core V3

An overview of upgrade v3.1.0.

Malcolm
Function X
4 min readFeb 16, 2023

--

Upgrade v3.1.0 on f(x)Core will be a software upgrade and it aims to enhance f(x)Core’s interoperability. Some of the highlights involve cross-chain interoperability with the Avalanche C-Chain, support for more cross-chain tokens, support for standard transfer transactions on the Inter-Blockchain Communication Protocol (IBC) and the use of “0x” addresses as the “From” address in cross-chain communications through the IBC.

When the upgrade height is achieved, all nodes will automatically stop the consensus and stop producing blocks. All nodes need to be upgraded; and when more than 2/3 of the power value of the validator nodes start and complete the consensus, block production will restart. In order to avoid a long halt in block production (which was experienced during the v2 upgrade), Cosmovisor will be used for the upgrade, which will reduce the entire upgrade process to 3–8 minutes, with close to zero human intervention.

For validators, we highly recommend configuring your nodes with Cosmovisor. The f(x)Core network will undergo multiple upgrades and by having Cosmovisor integrated, upgrades can be carried out automatically once the proposed upgrade height is reached. Users only need to download the binaries for the upgrade and Cosmovisor will take care of the rest — thereby improving the operating efficiency of nodes on the network.

The upgrade process will be an on-chain upgrade process, and thus the blockchain will be continued with all the accumulated history with continuous block height.

Software upgrade features:

  • Support Avalanche C-chain cross-chain interoperability
  • Support cross-chain tokens: AVAX, SAVAX, QI, BAVA and WBTC (ERC20)
  • Support IBC standard transfer transaction
  • Support the use of 0x address as the “From” address when cross-chain through IBC
  • Migrate the “gravity” module to the “eth” module (unify all cross-chain logic) on f(x)Core’s blockchain repository
  • The “fee” argument must be empty when calling the contract method: “Transfercrosschain” for IBC cross-chain
  • When the contract self-destructs, the contract code cannot be deleted
  • The EthereumTx transaction gas limit must be greater than 0
  • The EthereumTx transaction “From” address must be empty
  • Upgrade WFX contract to support cross-chain transfers of FX Token contract

Bug fixes:

  • Fix — bridge oracle address delegation invalid
  • Fix — the bug where the alias field of metadata is set to “null”
  • Fix — keys command parse address

Improvements:

  • Bump go-ethereum version to v1.10.19
  • Bump cosmos-sdk to v0.45.11
  • Bump tendermint to v0.34.23

Enhanced Interoperability

Within f(x)Core’s blockchain architecture lies the Gravity Bridge, which is a trustless, secure and decentralised bridge between the Ethereum and Cosmos ecosystems. Simply, the Gravity Bridge allows users to cross-chain their assets into other supported blockchain networks.

The Avalanche C-Chain (Contract Chain) is a layer one blockchain in the Avalanche ecosystem that is EVM-compatible and it supports smart contract creation and execution on the Ethereum Virtual Machine (EVM). For Avalanche users, the C-Chain would be their go-to for building and/or using dApps and DeFi. With cross-chain support for the Avalanche C-Chain, this means that f(x)Core users can now bridge their cryptocurrencies between the f(x)Core and Avalanche networks and use them in the myriad of dApps and DeFi tools on Avalanche.

Support for AVAX, sAVAX, QI, BAVA and wBTC (ERC20) cross-chain tokens will allow f(x)Core users to move these tokens between f(x)Core and other supported blockchain networks; and use them on protocols such as BENQI, and exchange platforms such as Baklava Space, both of which reside in the Avalanche network.

IBC enables independent blockchains to connect, interact and exchange data in a permissionless way, promoting high horizontal scalability with transaction finality. Blockchains, and by extension, dApps, that are IBC-enabled are thus interoperable with one another. With f(x)Core’s support for standard transfer transactions on the IBC, f(x)Core users can easily move their assets between chains that are also IBC-enabled, thus enriching interoperability with other heterogenous and app-specific blockchains.

Action Required:

After the upgrade proposal has passed, all nodes running f(x)Core can be rerun using Cosmovisor. A guide on how to do so can be found on our gitbook.

The upgrade height is planned for:

  • Mainnet: 8,756,000 (~9th Feb 2023 10:00:00 AM GMT +0800)
  • Testnet: 6,578,000(Jan-16–2023 09:49:32 AM GMT +0800)

Do note that after the upgrade, the code will be backwards incompatible with older versions of f(x)Core.

What’s Next?

In our January 2023 Hashout, we highlighted one of our goals to become the bridge between the Cosmos ecosystem and EVM blockchains. Upgrade v3.1.0 introduces f(x)Core V3 and brings us even closer to that goal through enhanced interoperability with support for the Avalanche C-Chain, more cross-chain tokens, and communications through the IBC.

Thank you for reading this month’s tech update and stay tuned for the next one on f(x)Core developments! :)

If you’d like to know more about Function X and stay up-to-date with us, check out one of the links below.

Website | Twitter | Forum | Telegram Announcements | Telegram Group | Discord | Github

--

--