Files
status-linea-besu/ethereum/evmtool
Bhanu Pulluri 2db46e964c Enable Quorum/IBFT1 to Besu migration (#8262)
* Enable Quorum/IBFT1 to Besu migration

Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>

* Fix BftMining acceptance test

Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>

* Introduce delay after London fork update in BFT mining test to prevent timing issues

Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>

* Update besu/src/main/java/org/hyperledger/besu/controller/IbftLegacyBesuControllerBuilder.java

Co-authored-by: Matt Whitehead <matthew1001@hotmail.com>
Signed-off-by: Bhanu Pulluri <59369753+pullurib@users.noreply.github.com>

* Review changes

Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>

* update creating additional JSON RPC methods for all controllerbuidlers in consensus schedule

Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>

* Create ethprotocol manager and plugin factory for both consensus controllers in migration

Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>

* Refactor resource files

Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>

* fix verification metadata

Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>

* fix regression

Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>

* update changelog

Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>

* Fix controller selection at the transition block

Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>

* Review changes

Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>

* Revert BftExtraData changes

Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>

---------

Signed-off-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>
Signed-off-by: Bhanu Pulluri <59369753+pullurib@users.noreply.github.com>
Co-authored-by: Bhanu Pulluri <bhanu.pulluri@kaleido.io>
Co-authored-by: Matt Whitehead <matthew1001@hotmail.com>
Co-authored-by: Matt Whitehead <matthew.whitehead@kaleido.io>
Co-authored-by: Sally MacFarlane <macfarla.github@gmail.com>
2025-03-12 14:08:51 +00:00
..
2024-06-28 12:37:16 +00:00
2023-07-27 12:51:37 -07:00

EVM Tool

EVM Tool is a stand alone EVM executor and test execution tool. The principal purpose of the tool is for testing and validation of the EVM and enclosing data structures.

Using EVM Tool in execution-specification-tests

Building Execution Tests on macOS

Current as of 26 Jun 2024.

MacOS users will typically encounter two problems,one relating to the version of Python used and one relating to zsh.

Homebrew will only install the most recent version of Python as python3, and that is 3.11. The execution tests require 3.10. The solution is to use a 3.10 version of python to set up the virtual environment.

python3.10 -m venv ./venv/

Zsh requires braces to be escaped in the command line, so the step to install python packages needs to escape the brackets

pip install -e .\[docs,lint,test\]

An all-in-one script, using homebrew, would look like

brew install ethereum solidity
git clone https://github.com/ethereum/execution-spec-tests
cd execution-spec-tests
python3 -m venv ./venv/
source ./venv/bin/activate
pip install -e .\[docs,lint,test\]

Building EvmTool on macOS

First you need a Java 21+ JDK installed, if not already installed.

It is recommended you install SDKMAN to manage the jvm install.

sdk install java 21.0.3-tem 
sdk use java 21.0.3-tem

Once a JVM is installed you use the gradle target:

./gradlew installDist -x test

The resulting binary is build/install/besu/bin/evmtool

If the testing repository and besu are installed in the same parent directory, the command to run the execution tests is

fill -v tests --evm-bin ../besu/build/install/besu/bin/evmtool 

Assuming homebrew and SDKMan are both installed, the complete script is

sdk install java 21.0.3-tem 
sdk use java 21.0.3-tem
git clone https://github.com/hyperledger/besu
cd besu
./gradlew installDist -x test
cd ..

brew install ethereum solidity
solc-select install latest
solc-select use latest
git clone https://github.com/ethereum/execution-spec-tests
cd execution-spec-tests
python3 -m venv ./venv/
source ./venv/bin/activate
pip install -e .\[docs,lint,test\]

fill -v tests --evm-bin ../besu/build/install/besu/bin/evmtool