-
Notifications
You must be signed in to change notification settings - Fork 210
Testing
All of these steps are for Ubuntu 22.04 in the goerli test network.
If you want to contribute with guides and testing, please open an issue.
Make sure that you are only using test ether, test accounts and test passwords. Do not reuse anything from your real accounts. When in doubt, please ask.
We will add instructions for more consensus clients as they complete the Builder API implementation.
Let's start...
Make a workspace directory:
mkdir -p ~/workspace/
cd ~/workspace/
sudo apt install git
Get the testnet configuration:
git clone https://github.com/eth-clients/merge-testnets
Generate a secret:
openssl rand -hex 32 | tr -d "\n" > ~/workspace/secret
Get the key generator:
cd ~/workspace
wget https://github.com/ethereum/staking-deposit-cli/releases/download/v2.3.0/staking_deposit-cli-76ed782-linux-amd64.tar.gz
tar xvf staking_deposit-cli-76ed782-linux-amd64.tar.gz
Install metamask.
-
Get goerli test ether. See Where to get test ether?
-
Connect your metamast to the goerli network.
-
Create your validator keys:
cd ~/workspace/staking_deposit-cli-76ed782-linux-amd64
./deposit new-mnemonic --num_validators 1 --chain goerli
mv validator_keys validator_keys-goerli
- Go to the goerli launchpad and follow the instructions to become a validator: https://goerli.launchpad.ethereum.org/en/
Last verified: 2022-09-07
Install development tools:
sudo apt install make gcc
Get the source code and compile:
cd ~/workspace
git clone https://github.com/flashbots/mev-boost
cd mev-boost
make build
Run:
./mev-boost -goerli -relay-check -relays https://0xafa4c6985aa049fb79dd37010438cfebeb0f2bd42b115b89dd678dab0670c1de38da0c4e9138c9290a398ecd9a0b3110@builder-relay-goerli.flashbots.net
mev-boost
is independent of the execution client. You can run anyone.
Last verified: 2022-09-07
Install dotnet:
sudo apt install dotnet6
Install development libraries:
sudo apt install libsnappy-dev libc6-dev libc6
sudo ln -s /usr/lib/x86_64-linux-gnu/libdl.so.2 /usr/lib/x86_64-linux-gnu/libdl.so
Get the source code and compile:
cd ~/workspace/
git clone --recursive https://github.com/NethermindEth/nethermind
cd nethermind/src/Nethermind
dotnet build Nethermind.sln -c Release
Make sure that you have opened the TCP and UDP port 30303.
Run in goerli:
cd ~/workspace/nethermind/src/Nethermind/Nethermind.Runner
dotnet run -c Release -- --config goerli --HealthChecks.Enabled true --JsonRpc.Enabled true --JsonRpc.JwtSecretFile=/home/$USER/workspace/secret
We will add instructions for more consensus clients as they complete the Builder API implementation. Look at the consensus clients implementation status.
Last verified: 2022-09-07
Status: https://github.com/flashbots/mev-boost/issues/156
Known issues:
Install java:
sudo apt install default-jre
Get the source code and compile:
cd ~/workspace
git clone https://github.com/ConsenSys/teku
cd teku
./gradlew installDist
Prepare the validator keys. These are the keys created when you registered your validator. Teku requires you to put the password to the validator keys in a .txt
file with the same name as the keystore. And then, to pass the paths as parameters as shown below, replacing <path-to-keystore.json>:<path-to-password.txt>
with your paths.
More details: https://docs.teku.consensys.net/en/latest/Reference/CLI/CLI-Syntax/#validator-keys
Also note to replace with the address of your test account for validators-proposer-default-fee-recipient in order to earn test rewards.
Run the validator and beacon nodes:
./build/install/teku/bin/teku \
--data-path "datadir-teku-goerli" \
--network goerli \
--ee-endpoint=http://localhost:8551 \
--ee-jwt-secret-file "/home/$USER/workspace/secret" \
--log-destination console \
--validator-keys=<path-to-keystore.json>:<path-to-password.txt> \
--validators-proposer-default-fee-recipient=<fee-recepient-eth-address> \
--validators-builder-registration-default-enabled=true \
--builder-endpoint="http://127.0.0.1:18550"
--initial-state=https://goerli.checkpoint-sync.ethdevops.io/eth/v2/debug/beacon/states/finalized
Last verified: 2022-09-07
Status: https://github.com/flashbots/mev-boost/issues/158
Get the
cd ~/workspace
git clone https://github.com/eth-clients/eth2-networks
Install libraries and development tools:
sudo apt install cmake libssl-dev libgmp-dev libtinfo5 libprotoc-dev g++
export PATH=$PATH:~/go/bin
go install github.com/bazelbuild/bazelisk
Get the source code and compile:
cd ~/workspace
git clone -b develop https://github.com/prysmaticlabs/prysm.git
cd prysm
bazelisk build //cmd/beacon-chain:beacon-chain --config=release
bazelisk build //cmd/validator:validator --config=release
(note to replace with the address of your test account, to earn test rewards)
Run a beacon node:
bazelisk run //beacon-chain --config=release -- \
--prater \
--genesis-state=/home/$USER/workspace/eth2-networks/shared/prater/genesis.ssz \
--datadir=datadir-prysm-kiln \
--execution-endpoint=http://localhost:8551 \
--jwt-secret=/home/$USER/workspace/secret \
--suggested-fee-recipient=<fee-recepient-eth-address> \
--http-mev-relay=http://127.0.0.1:18550
Register the validator keys:
bazelisk run //validator:validator -- \
accounts import --keys-dir=/home/$USER/workspace/staking_deposit-cli-76ed782-linux-amd64/validator_keys-goerli/
To do: run a validator. See https://github.com/prysmaticlabs/prysm/issues/11001
(note to replace with the address of your test account, to earn test rewards)
Run a beacon node:
go run ./cmd/beacon-chain/... \
--ropsten \
--genesis-state=/home/$USER/workspace/merge-testnets/ropsten-beacon-chain/genesis.ssz \
--datadir=datadir-prysm-ropsten \
--http-web3provider=http://localhost:8551 \
--jwt-secret=/home/$USER/workspace/secret \
--suggested-fee-recipient=<fee-recepient-eth-address> \
--http-mev-relay=http://127.0.0.1:18550
Import the validator keys:
go run ./cmd/validator/... accounts import --keys-dir=/home/$USER/workspace/staking_deposit-cli-9ab0b05-linux-amd64/validator_keys-ropsten --ropsten
Run a validator node:
go run ./cmd/validator/... \
--ropsten \
--enable-validator-registration \
--suggested-fee-recipient=<fee-recepient-eth-address>
(in progress)
Last verified: 2022-09-07
Install libraries and development tools:
sudo apt install -y git gcc g++ make cmake pkg-config llvm-dev libclang-dev clang curl
Install rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
Get the source code and compile:
cd ~/workspace
git clone -b builder-api https://github.com/sigp/lighthouse.git
cd lighthouse
make
(In progress)
Install nodejs:
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt install nodejs
sudo corepack enable
Get the source code and compile:
cd ~/workspace
git clone https://github.com/chainsafe/lodestar
cd lodestar
yarn install --ignore-optional
yarn run build
Run the beacon node:
./lodestar beacon --network --builder --builder.urls http://127.0.0.1:18550 --jwt-secret=/home/$USER/workspace/secret
Run the validator node:
./lodestar validator --network goerli --suggestedFeeRecipient <fee-recepient-eth-address> --builder --importKeystoresPath <path-to-keystore.json> --importKeystoresPassword <path-to-password.txt>
(In progress)
Install development tools:
sudo apt install build-essential
Get the source code and compile:
cd ~/workspace
git clone https://github.com/status-im/nimbus-eth2 --branch unstable
cd nimbus-eth2
make -j4 nimbus_beacon_node
For prysm and mev-boost.
Install go:
cd ~/workspace/
wget https://go.dev/dl/go1.18.3.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.18.3.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin