Update a DV
It is highly recommended to upgrade your DV stack from time to time. This ensures that your node is secure, performant, up-to-date and you don't miss important hard forks.
To do this, follow these steps:
Navigate to the node directory
- charon-distributed-validator-node
- charon-distributed-validator-cluster
cd charon-distributed-validator-node
cd charon-distributed-validator-cluster
Pull latest changes to the repo
git pull
Create (or recreate) your DV stack
docker compose up -d --build
If you run more than one node in a DV Cluster, please take caution upgrading them simultaneously. Particularly if you are updating or changing the validator client used or recreating disks. It is recommended to update nodes on a sequential basis to minimse liveness and safety risks.
Conflicts
You may get a git conflict
error similar to this:
error: Your local changes to the following files would be overwritten by merge:
prometheus/prometheus.yml
Please commit your changes or stash them before you merge.
This is probably because you have made some changes to some of the files, for example to the prometheus/prometheus.yml
file.
To resolve this error, you can either:
-
Stash and reapply changes if you want to keep your custom changes:
git stash # Stash your local changes
git pull # Pull the latest changes
git stash apply # Reapply your changes from the stash
docker-compose up -d --build # Recreate your DV stackAfter reapplying your changes, manually resolve any conflicts that may arise between your changes and the pulled changes using a text editor or Git's conflict resolution tools.
-
Override changes and recreate configuration if you don't need to preserve your local changes and want to discard them entirely:
git reset --hard # Discard all local changes and override with the pulled changes
git pull # Pull the latest changes
docker-compose up -d --build # Recreate your DV stackAfter overriding the changes, you will need to recreate your DV stack using the updated files. By following one of these approaches, you should be able to handle Git conflicts when pulling the latest changes to your repository, either preserving your changes or overriding them as per your requirements.