This repository is a minimal set of playbooks and inventories required to set up the merge devnets consisting of execution and consensus nodes.
- General folder structure: All testnet relevant configs are under the testnet names. Generic config variables are set under
<name>-testnet/inventory/group_vars/all.yaml
. Client specific variables are set under e.g<name>-testnet/inventory/group_vars/eth2client_xxxxxx.yaml
. The client specific variables also contains the commands used to start the docker image with. - All the config files,
genesis.ssz
and other variables needed for the testnet are placed under<name>-testnet/custom_config_data
.
- Clone this repository
- Ensure
docker
anddocker-compose
is installed:docker-compose --version
anddocker --version
- Change directories with
cd consensus-deployment-ansible/scripts/quick-run/<testnet-type>
- Create the required directories for persistent data with
mkdir -p execution_data beacon_data
- Find your IP address(public IP) and add it to the
<testnet-name>.vars
file file located inconsensus-deployment-ansible/scripts/quick-run/
, this is just to ensure easy peering
5.1curl ifconfig.me
or visit https://whatismyipaddress.com
5.2 Replace IP in config file with your own IP address: https://i.imgur.com/xnNqN6h.png - Run your chosen execution engine, e.g:
docker-compose --env-file <testnet-name>.vars -f docker-compose.geth.yml up -d
- Run your chosen consensus engine, e.g:
docker-compose --env-file <testnet-name>.vars -f docker-compose.lighthouse.yml up -d
- Check your logs to confirm that they are up and syncing, e.g
docker logs lighthouse_beacon -f --tail=20
- To stop the clients, run
docker-compose -f <insert file name you used earlier here> down
- Clone this repository
- Ensure
ansible
is installed - Make changes in the required variable, e.g: Change the
pithos-testnet/inventory/group_vars/eth1client_ethereumjs.yaml
with the new docker image or theeth1_start_args
for commands to run the container with - The
update_execution_beacon_and_validator.yml
will stop the execution, beacon and validator containers and restart them with the new configurations specified as variables. Please use thelimit=eth1/2_xxxx
flag to limit the playbook execution to just update the nodes you have access to (otherwise it won't change the config on the others, but will show a lot of errors). Run this playbook with:ansible-playbook -i pithos-testnet/inventory/inventory.ini playbooks/update_execution_beacon_and_validator.yml --limit=eth1client_ethereumjs
- If you just want to update an execution node without touching the other docker containers use the
tasks
, e.g to restart execution node with the new parameters use,
ansible-playbook -i pithos-testnet/inventory/inventory.ini playbooks/tasks/stop_execution_node.yml --limit=eth1client_ethereumjs
ansible-playbook -i pithos-testnet/inventory/inventory.ini playbooks/tasks/start_execution_node.yml --limit=eth1client_ethereumjs