Updating your Diva client

Update automatically

Note: This is only available for those with the latest versions of the docker compose for diva-alpha-net.

Run the installation script by executing:

cd ~/diva-alpha-net
./run.sh

Inside the diva-alpha-net folder, and select option 2. Update Diva:

Update manually

1. Stop the current Diva client

Navigate to the Diva directory containing the docker-compose.yml file and bring the service down.

cd diva-alpha-net
docker compose down

2. Backup the current Diva directory

Move all contents in the original Diva directory into a new directory diva-alpha-net-bak.

mv ~/diva-alpha-net ~/diva-alpha-net-bak

3. Download the new version

Clone the latest version of the diva-alpha-net git repository into the original parent folder on your system.

git clone https://github.com/shamirlabs/diva-alpha-net ~/diva-alpha-net

4. Create a new .env file

cp ~/diva-alpha-net/.env.example ~/diva-alpha-net/.env 

5. Edit the new .env file

Open up the old .env file,

sudo nano ~/diva-alpha-net-bak/.env

and retrieve the following environment variables...

  1. EXECUTION_CLIENT_URL

  2. CONSENSUS_CLIENT_URL

  3. DIVA_API_KEY

  4. DIVA_VAULT_PASSWORD

  5. TESTNET_USERNAME

and enter them into the corresponding variables in your new .env file.

sudo nano ~/diva-alpha-net/.env

6. Migrate the data

Copy the .diva folder from the ~/diva-alpha-net-bak folder to the new folder ~/diva-alpha-net:

cp -r ~/diva-alpha-net-bak/.diva ~/diva-alpha-net/.diva

7. Preparing the docker compose file

Open up the docker-compose.yml file.

cd diva-alpha-net
sudo nano docker-compose.yml

Amend the ports: section of the grafana service to "3001:3000". This is so that the Grafana service running on docker does not clash with your native Grafana service.

# Metrics
  grafana:
    image: grafana/grafana:10.2.5
    user: root
    container_name: grafana
    profiles:
      - metrics
    hostname: grafana
    restart: unless-stopped
    ports:
      - "3001:3000"
    volumes:
      - ${DIVA_DATA_FOLDER:-.}/grafana/config:/etc/grafana/provisioning
      - ${DIVA_DATA_FOLDER:-.}/grafana/data:/var/lib/grafana
      - ${DIVA_DATA_FOLDER:-.}/grafana/config/grafana.ini:/etc/grafana/grafana.ini

You will then be able to run both Grafana services without conflicts. Access each of the dashboards via:

  1. Native Grafana: <IP_address:3000>

  2. Docker Grafana: <IP_address:3001>

8. Prepare the Lodestar docker compose file

Skip this Step 8 for the Default (All-in-one) method.

Open up the docker-compose-lodestar-vc.yml file.

sudo nano ~/diva-alpha-net/docker-compose-lodestar-vc.yml

Append the following contents in this file.

# Monitoring configuration
  prometheus:
    extends:
      file: docker-compose.yml
      service: prometheus

  node-exporter:
    extends:
      file: docker-compose.yml
      service: node-exporter

  grafana:
    extends:
      file: docker-compose.yml
      service: grafana

9. Remove previous containers

Note: You must stop and delete all Diva containers before starting the services again.

So first, make sure all Diva containers are stopped and removed identify their container IDs.

cd ~/diva-alpha-net
docker compose down
docker ps -a

Expected output: You should see an empty list.

If you still see a list of Diva related containers like below,

then you can remove all Diva containers listed using one of the following methods:

  • One by one using theCONTAINER ID if you have other non-Diva docker containers running

docker stop <CONTAINER ID>
docker rm <CONTAINER ID>
  • All at once if you only have Diva containers running

docker rm -f $(docker ps -a -q)

9. Run the new Diva containers

cd ~/diva-alpha-net
# Choose one of the following to run according to the setup method you are on 
docker compose -f up -d #For Default method
docker compose -f docker-compose-lodestar-vc.yml up -d #For Experimental method

Monitor the logs to make sure there are no errors.

docker logs diva -f

Expected output: There are 3 things to look out for - "connected to execution client", "consensus client available", and "running diva client".

Last updated