Skip to content

Setting up t8n compatible Nethermind EVM inside Retesteth's docker container #22

Description

@debjit-bw

Building the Dockerfile in this PR fails due to several package conflicts (version, et.al). An alternate way is to download the old and built retesteth docker container they provide (without Nethermind), and then building Nethermind's EVM inside it.

1. Install Docker if you don't have it

sudo apt install -y wget docker docker.io 

2. Get and load the retesteth Docker image as a tar file

wget http://retesteth.ethdevops.io/dretesteth.tar
sudo docker image load --input dretesteth.tar

3. Download the retesteth script

wget https://raw.githubusercontent.com/ethereum/retesteth/master/dretesteth.sh
chmod +x dretesteth.sh

4. Get the container running indefinately

docker run --platform linux/amd64 -e BESU_PATH=/besu -e ETHEREUMJS_PATH=/ethereumjs -e PYSPECS_PATH=/execution-spec-tests -e PYT8N_PATH=/pyt8n -v ~/Drawer/gnosis/retest/tests:/tests --entrypoint sh -d retesteth -c "sleep infinity"

5. Get into the container and set it up

Attach a terminal to the container any way you please (either using docker exec -it or using VS Code's dev containers). Once inside, set up dotnet and Nethermind's env.

NETHERMIND_SRC="https://github.com/NethermindEth/nethermind.git"
NETHERMIND="feature/t8n"
git clone $NETHERMIND_SRC /nethermind
cd /nethermind && git fetch && git checkout $NETHERMIND
git submodule init
git submodule update

6. Build the Evm

dotnet build ./src/Nethermind/Nethermind.sln
dotnet build ./src/Nethermind/EthereumTests.sln
dotnet build ./tools/Evm/Evm.sln

You can run Nethermind's t8n tool with ./tools/Evm/bin/Debug/net8.0/Evm t8n.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions