Open Earlz opened 5 years ago
The version of the EVM for Byzantium has already been integrated into a staging branch of Qtum with minimal difficulty.
Should we consider the Byzantium EVM now that it had been released? One important feature introduced is revert reason
https://eips.ethereum.org/EIPS/eip-140
Without this, it is incredibly painful to debug failed assertions. OpenZeppelin now has support for revert reasons.
Abstract
This proposal will put Qtum's EVM on the same version as Ethereum's Constantinople version of the EVM
Motivation
Many new features have been added to the EVM from Ethereum. This includes features like dynamic return data sizes and static contract call support. As time goes on, more and more Dapp developers complain about missing features and being required to use non-standard Solidity compiler configurations.
Specification
The new EVM code and all of it's precompiled contracts and other features should be dropped into Qtum. This should not break any backward compatibility.
Rationale
Constantinople is not released yet, but it is best to wait until this later version is released. Forking for Qtum is not something we want to do more often than needed. The version of the EVM for Byzantium has already been integrated into a staging branch of Qtum with minimal difficulty. It is best to wait until Constantinople is released and to see if any bugs or problems happen with the EVM upgrades on that network.
Strategy
This should be implemented in a hard fork