Fantom-foundation / Aida

Aida is a block-processing testing infrastructure for EVM-compatible chains.
GNU Lesser General Public License v3.0
4 stars 12 forks source link

Integrate support for Tosca processor #1127

Closed HerbertJordan closed 1 month ago

HerbertJordan commented 2 months ago

Description

This PR adds support for switching between different transaction processor (aka EVM) implementations. The default option (named aida) is the implementation provided by Aida used so far to process transactions. Additional options may be gradually provided by a registry in Tosca.

The aim of this change is to enable the development of an alternative EVM implementation, independent of the opera or go-ethereum code base.

Note for Reviewers

The PR includes 3 inter-dependent changes:

The recommended way to review this PR is to follow this order of added features.

Type of change

Please delete options that are not relevant.

TODO:

HerbertJordan commented 1 month ago

I re-based this PR today to the latest version of develop and finally had some time to investigate the issue causing the CI tests to fail. The problem was caused by importing Tosca's reference geth implementation which replaced the geth interpreter implementation used by Aida through the go-ethereum-sonic dependency. This lead to the wrong implementation to be tested.

This problem is fixed now in Tosca (see #632) and this PR passes the CI tests. To be sure that there are no further issues, I have two evaluations over the entire block range running on a server.

HerbertJordan commented 1 month ago

I had two complete test runs for aida-vm with the geth and evmzero vm-impl for the full ~73M range and all verification steps passed.