DKG tool commands and configuration
The ssv-dkg
tool can be utilized as a docker image (preferrable), or as a compiled Go binary.
Additionally, in both cases, the tool accepts configuration input via a YAML file, or as command line flags.
The sections below detail which commands are available, how to provide configuration input for them, and how to run the tool as a docker image, or as a compiled binary.
Note: For more details on operatorsInfoPath
parameter, refer to the page dedicated to Operators data
Available options
The ssv-dkg
tool provides 3 main functionalities, detailed in the following pages:
Additional option, only for SSV node operators, treated in the related section:
In order to provide these features, the following options are available:
init
- initiates a DKG ceremony to generate new Key Shares and a new validator pubkeygenerate-reshare-msg
- generates a message with the content of aproofs.json
file from a past ceremony, that needs to be signed by theowner
used in that ceremony, in order for areshare
ceremony to take placereshare
- initiates a DKG ceremony to re-generate Key Shares involving a different operator setgenerate-resign-msg
- generates a message with the content of aproofs.json
file from a past ceremony, that needs to be signed by theowner
used in that ceremony, in order for aresign
ceremony to take placeresign
- initiates a DKG ceremony to re-generate the signature portion of existing Key Shares, providing the ability to generate Key Shares for the same validator public key, for a differentowner
, or adjusting thenonce
for the sameowner
Configuration input
As previously mentioned, the user can provide input to the tool either through a config file, or through a a series of command line flags.
All of the necessary configuration information can be provided in a YAML file (referenced as config.yaml
from now on).
With this setup, a typical configuration file would look like this:
If using Docker, in the config file above, /ssv-dkg/data/
represents the container's shared volume created by the docker
command itself with the -v
option.
A special note goes to the nonce
field, which represents how many validators the address identified in the owner
parameter has already registered to the ssv.network.
You can keep track of this counter yourself, or you can use the Subgraph made available by the SSV team to source it.
Additional flags for generate-resign-msg
option:
generate-resign-msg
option:In addition to all of the flags above, the generate-resign-msg
option requires one additional piece of information, which can be provided by two alternative configuration parameters:
Note: you need to provide one, or the other, not both options.
Additional flags for resign
option:
resign
option:In addition to all of the flags above, the resign
and option require an additional parameter:
Additional flags for generate-reshare-msg
option:
generate-reshare-msg
option:Similarly to generate-resign-msg
, this command option requires information about the proofs.json
file, which can be provided in two alternative ways. In addition to this, the generate-reshare-msg
option requires an additional configuration, related to the IDs of the operators that need to generate the new shares:
Additional flags for reshare
option:
reshare
option:In addition to all of the flags above, the reshare
option require an additional parameter:
The ssv-dkg
tool only allows to reference local paths, for security reasons. So it is not possible to reference files or folders located in /
or any other folder under root that it's not the current scope.
Caution for Windows Users
Due to Windows operating system's limitation on handling file paths exceeding 260 characters, please verify the length of output file paths to avoid potential issues, as this could render them inaccessible.
Choosing how to launch the tool
It is advised launching the tool as a Docker image as it is the most convenient way and only requires to have Docker installed. The team builds a Docker image with every release of the tool.
The docker image for the ssv-dkg
tool is tagged as ssvlabs/ssv-dkg
.
The tool will write its output to a local folder in the container, so for convenience, to be able to export the output, a volume referencing a folder of the host has to be mounted using the -v
parameter.
If a config file is used, the mounted volume (or volumes) will have to reference the file as well.
For instance, if the current folder has this structure:
Then the following command to run the reshare
option with a config file:
Will mount the current folder to the /ssv-dkg/data/
folder of the container, so the --configPath
is able to reference the config.yaml
file, located in the config
subfolder.
You can, of course, change the configuration to one that suits you better, just be mindful about changing the path references in the docker command and in the config.yaml
file as well.
Alternatively, the tool can be launched providing the appropriate values to each configuration item via command line flag. Here's an example of a command to launch the init
option:
Last updated
Was this helpful?