Skip to main content

Start DKG Node

We recommend running the tool with docker compose. It is the simplest option and only requires Docker. A Docker image is published with every release.

SSV Stack

If you chose to set up your SSV Node with the SSV Stack repository, you can start the DKG node in three steps:

  1. Edit configuration file ./dkg-data/operator.yaml

    • operatorID - the ID of your operator
    • ethEndpointURL - HTTP Address of your Execution node endpoint
  2. Run the command docker compose --profile dkg up -d

    • Make sure you're running from ssv-stack directory
  3. Go to Final Steps

Manual Configuration

All of the necessary configuration information can be provided via command line parameters, but a YAML config file is often the most convenient way, thus it's what this documentation page will be discussing.

A simple approach is to keep all required files in one folder, for example ssv-dkg-data, together with operator.yaml.

The final result should look like so:

ssv@localhost:~/# tree ssv-dkg-data
ssv-dkg-data
├── encrypted_private_key.json
├── operator.yaml
└── password

1 directories, 3 files

An example operator.yaml file is shown below. Update the highlighted values before you use it:

privKey: ./data/encrypted_private_key.json
privKeyPassword: ./data/password
operatorID: YOUR_OPERATOR_ID
port: 3030
logLevel: info
logFormat: json
logLevelFormat: capitalColor
logFilePath: ./data/debug.log
outputPath: ./data/output
ethEndpointURL: http://ethnodeURL:8545 #HTTP Address of Execution Node, needed for Multisig validator owner addresses
# serverTLSCertPath: ./data/ssl/tls.crt #Only enable if manually generated TLS certificate
# serverTLSKeyPath: ./data/ssl/tls.key #Only enable if manually generated TLS key
info

In the config above, ./data/ refers to the container's shared volume created by Docker through -v or volumes. You do not need to create the data directory yourself.

Start SSV-DKG Node

To start and manage the DKG tool, we recommend docker compose.

This section assumes that all the necessary files (encrypted_private_key.json, operator.yaml, password) are under the same folder. Edit the highlighted value with the actual path:

services:
ssv-dkg:
image: ssvlabs/ssv-dkg:latest
pull_policy: always
restart: "unless-stopped"
container_name: ssv-dkg
volumes:
- ./folder_with_config_file:/ssv-dkg/data
ports:
- 3030:3030/tcp
command:
["start-operator", "--configPath", "./data/operator.yaml"]
networks:
- [local-docker]

You can, of course, change the configuration above to one that suits you better, just be mindful about changing the path references in the docker command and in the operator.yaml file as well. The two need to be consistent with each other.

To launch the container, run:

docker compose up
  • This keeps the terminal attached so you can review logs during startup.
  • If everything looks good, use docker compose up -d.

What's next?

Once you finish this page, go to Final Steps.