Developers Forum for XinFin XDC Network


Posted on • Updated on

[Informative] Upgrading the XDC Network’s EVM to Support Solidity v0.8.23

The XDC Network team has announced plans to upgrade the Ethereum Virtual Machine (EVM) used by the XDC Network to support the latest version of the Solidity smart contract programming language, version 0.8.23. This upgrade is crucial to keep up with the latest developments in the Ethereum ecosystem and ensure compatibility with the newest features and security enhancements introduced in Solidity 0.8.23.

Image description

The XDC Network, which is built on the XDC Network Delegated Proof-of-Stake (XDPoS) consensus protocol, has its own EVM implementation that allows developers to write and deploy smart contracts using the Solidity language, just like on the Ethereum network. However, the current version of the XDC EVM only supports Solidity up to version 0.8.9, which means that developers cannot take advantage of the improvements and new features introduced in later versions of the language.

According to the GitHub discussion, the XDC team is working on upgrading the XDC EVM to support Solidity 0.8.23. Some of the key features and improvements in Solidity 0.8.23 include:

  • Support for custom errors and improved error handling
  • Improved code generation for smaller and more efficient bytecode
  • Better support for contract inheritance and virtual functions
  • Enhanced security features, such as stricter compiler checks and new language constructs for safer programming

As part of this upgrade, the XDC Network team plans to implement several Ethereum Improvement Proposals (EIPs) related to the Ethereum London upgrade. The BASEFEE opcode from EIP-3198, which is a component of the larger EIP-1559 upgrade, will be implemented. However, the full EIP-1559 implementation, which introduces adaptive fees based on network demand, is not a high priority for the XDC Network at the moment. Instead, the XDC Network team will implement the BASEFEE opcode and provide a JSON-RPC API for EIP-1559 based on a fixed gas price model.

Additionally, the XDC Network team plans to implement EIP-4399, which introduces the DIFFICULTY opcode to replace the DIFFICULTY opcode in the legacy EVM. This change is necessary to support the transition to proof-of-stake consensus mechanisms, as the DIFFICULTY opcode is only relevant for proof-of-work systems. The team will also implement EIP-3855, which introduces the PUSH0 opcode, a more efficient way to represent certain types of data in Ethereum bytecode.

By upgrading the XDC EVM to support Solidity 0.8.23 and implementing these EIPs, developers building on the XDC Network will be able to leverage the latest features and improvements in the Solidity language, as well as benefit from the performance and security enhancements introduced by these EIPs. This upgrade will also ensure that the XDC Network remains compatible with the latest developments in the Ethereum ecosystem, as many popular tools, libraries, and frameworks are also being updated to support the newer versions of Solidity and the Ethereum London upgrade.

The XDC Network’s Protocol team deserves appreciation for their continuous efforts to improve and enhance the XDC Network’s protocol. They have been actively listening to feedback from the community and developers who participated in the XDC Network’s hackathons. By incorporating these valuable insights, the XDC Network team is committed to delivering a robust and developer-friendly ecosystem for building decentralized applications.

While the XDC Network team has not yet announced a specific timeline for the Solidity 0.8.23 upgrade, they have indicated that it is a high priority and they are working diligently to ensure a smooth and secure transition. Developers building on the XDC Network are encouraged to follow the official channels and stay updated on the progress of this upgrade, as well as prepare their smart contracts and projects to be compatible with the new Solidity version once the upgrade is complete.

XDC Network Official Website:

XDC Forum: XDC.Dev

XDC Network Social Channels:

Discussion (0)