In the absence of a proper test script, a few quick notes on a test sequence that should show functionality.
Prep that's not client specific:
cp default.env .env, adjust LOCAL_UID and ports as neededsudo docker volume rm $(sudo docker volume ls -q | grep eth2-docker), wipe volumes from last pass, assuming thateth2-dockeris the directory we are testing in.
For each client:
- Start with the most "complete" stack to test full build
- Set
COMPOSE_FILEin.envto full client stack, setETH1_NODEto geth. sudo docker ps, make sure nothing is left running- Build the client stack:
sudo docker-compose build - There likely is a cached version of the client, let's make sure it's the latest.
sudo docker-compose build --no-cache beacon - Coffee, tea, hall sword fights :)
rm .eth2/validator_keys/*, wipe keys from last passsudo docker-compose run deposit-cli, create keyssudo docker-compose run validator-import, import keyssudo docker-compose up -d eth2, observe that they come up in order: geth->beacon->validator- Check running and logs and see that everything is chill, watch especially for missed connections:
sudo docker pssudo docker-compose logs gethsudo docker-compose logs beaconsudo docker-compose logs validator
sudo docker-compose down- Set
ETH1_NODEto infura.io URL, removegeth.ymlfromCOMPOSE_FILE, and test again from just after validator import, just without geth.
Specific to systemd:
- Start the service manually
- Check everything is up and happy
- Stop the service manually
- Check everything is down
- Enable the service
- Reboot
- Check that everything came back up as expected