Hi all, to try out a multinode setup with interop config:
bazel run //tools/genesis-state-gen --define=ssz=mainnet -- \
--num-validators=64 \
--output-ssz=/tmp/genesis.ssz \
--mainnet-config
First node:
bazel run //beacon-chain --define ssz=mainnet -- \
--http-web3provider \
--web3provider \
--no-custom-config \
--bootstrap-node= \
--custom-genesis-delay=12 \
--datadir /tmp/chaindata \
--force-clear-db \
--interop-genesis-state /tmp/genesis.ssz \
--interop-eth1data-votes \
--min-sync-peers=0 \
--enable-discv5 \
--enable-dynamic-committee-subnets
then navigate to http://localhost:8080/p2p and copy the node's ENR and add it to your env vars:
export NODE_ENR=enr:-LK4QNNTee6XKFrTDjE1ZpXK0-1_E5h4a0t-Bn0IWhd9RAawNqYlGu2sI0kquI4-dmC7_9IOhYFso_zvX8JqAeRjCMMBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpCbXd4fAAAAAP__________gmlkgnY0gmlwhMCoANWJc2VjcDI1NmsxoQLlfMfDNg-bFfIlF1Goq6QEwsOg4pBRS-1GwEvEnlSUeoN0Y3CCMsiDdWRwgi7g,/ip4/192.168.0.213/tcp/13000/p2p/16Uiu2HAmAsVhW9uvZ6vVDyc4DxfaBgELrReZY5BuFof9jedm5NBb
Then start the second node with
bazel run //beacon-chain --define ssz=mainnet -- \
--http-web3provider \
--web3provider \
--no-custom-config \
--bootstrap-node= \
--custom-genesis-delay=12 \
--datadir /tmp/chaindata2 \
--force-clear-db \
--interop-genesis-state /tmp/genesis.ssz \
--interop-eth1data-votes \
--min-sync-peers=0 \
--enable-discv5 \
--enable-dynamic-committee-subnets \
--bootstrap-node=${NODE_ENR} \
--p2p-udp-port=14232 \
--p2p-tcp-port=14231 \
--monitoring-port 8081 \
--rpc-port 4001
Now start your first validator client:
bazel run //validator --define=ssz=mainnet -- \
--no-custom-config \
--keymanager=interop \
--keymanageropts='{"keys":32,"offset":0}' \
--disable-protect-attester \
--disable-protect-proposer \
--datadir /tmp/val1
Then your second validator client:
bazel run //validator --define=ssz=mainnet -- \
--no-custom-config \
--keymanager=interop \
--keymanageropts='{"keys":32,"offset":32}' \
--disable-protect-attester \
--disable-protect-proposer \
--beacon-rpc-provider localhost:4001 \
--datadir /tmp/val2