Skip to main content
Version: v0.6.1

DKG CLI reference

warning

The dkg-poc client is a prototype implementation for generating Distributed Validator Keys. Keys generated with this tool will not work with Charon, and they are not suitable for use. Creating keys for a Distributed Validator should use the charon create dkg command.

The following is a reference for dkg-poc at commit 6181fea. Find the latest release on our Github.

dkg-poc is implemented as a rust-based webserver for performing a distributed key generation ceremony. This deployment model ended up raising many user experience and security concerns, for example it is both hard and likely insecure to setup a TLS protected webserver at home if you are not a specialist in this area. Further, the PoC is based on an Aggregatable DKG library which is built on sharing a group element rather than a field element, which makes the threshold signing scheme more complex as a result. These factors resulted in a deprecation of this approach, with many valuable insights gained from this client. Currently a DV launchpad and charon based DKG flow serves as the intended DKG architecture for creating Distributed Validator Clusters.

$ dkg-poc --help 

dkg-poc 0.1.0
A Distributed Validator Key Generation client for the Obol Network.

USAGE:
dkg-poc <SUBCOMMAND>

FLAGS:
-h, --help Prints help information
-V, --version Prints version information

SUBCOMMANDS:
help Prints this message or the help of the given subcommand(s)
lead Lead a new DKG ceremony
participate Participate in a DKG ceremony

$ dkg-poc lead --help

dkg-poc-lead 0.1.0
Lead a new DKG ceremony

USAGE:
dkg-poc lead [OPTIONS] --num-participants <num-participants> --threshold <threshold>

FLAGS:
-h, --help Prints help information
-V, --version Prints version information

OPTIONS:
-a, --address <addr>
The address to bind this client to, to participate in the DKG ceremony (Default: 127.0.0.1:8081)

-e, --enr <enr>
Provide existing charon ENR for this participant instead of generating a new private key to import

-n, --num-participants <num-participants> The number of participants taking part in the DKG ceremony
-p, --password <password>
Password to join the ceremony (Default is to randomly generate a password)

-t, --threshold <threshold>
Sets the threshold at which point a group of shareholders can create valid signatures

$ dkg-poc participate --help

dkg-poc-participate 0.1.0
Participate in a DKG ceremony

USAGE:
dkg-poc participate [OPTIONS] --leader-address <leader-addr>

FLAGS:
-h, --help Prints help information
-V, --version Prints version information

OPTIONS:
-a, --address <addr> The address to bind this client to, to participate in the DKG ceremony
(Default: 127.0.0.1:8081)
-e, --enr <enr> Provide existing charon ENR for this participant instead of generating a new
private key to import
-l, --leader-address <leader-addr> The address of the webserver leading the DKG ceremony
-p, --password <password> Password to join the ceremony (Default is to randomly generate a password)