From afb44ef9f268b7fa3c02652ec44cca96dd95ef1c Mon Sep 17 00:00:00 2001 From: Eridian <86061486+EridianAlpha@users.noreply.github.com> Date: Mon, 13 Mar 2023 22:19:29 +0000 Subject: [PATCH 1/3] Fix: Key splitting command --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 33a1fea..74e0292 100644 --- a/README.md +++ b/README.md @@ -122,7 +122,7 @@ mkdir split_keys # E.g., keystore-0.json keystore-0.txt # Split these keystores into "n" (--nodes) key shares with "t" (--threshold) as threshold for a distributed validator -docker run --rm -v $(pwd):/opt/charon obolnetwork/charon:v0.14.0 create cluster --split-existing-keys --split-keys-dir=/opt/charon/split_keys --threshold 4 --nodes 6 +docker run --rm -v $(pwd):/opt/charon obolnetwork/charon:v0.14.0 create cluster --name="mycluster" --withdrawal-addresses="0x000000000000000000000000000000000000dead" --fee-recipient-addresses="0x000000000000000000000000000000000000dead" --split-existing-keys --split-keys-dir=/opt/charon/split_keys --threshold 4 --nodes 6 # The above command will create 6 validator key shares along with cluster-lock.json and deposit-data.json in ./.charon/cluster : From 6deab497ee198f803c186c7233f85aa2bed5b6c3 Mon Sep 17 00:00:00 2001 From: Eridian <86061486+EridianAlpha@users.noreply.github.com> Date: Tue, 14 Mar 2023 10:41:35 +0000 Subject: [PATCH 2/3] Change dead addresses to variables --- README.md | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 74e0292..9fe1684 100644 --- a/README.md +++ b/README.md @@ -45,8 +45,11 @@ Ensure you have [docker](https://docs.docker.com/engine/install/) and [git](http 1. Create the artifacts needed to run a testnet distributed validator cluster ```sh + # Enter required validator addresses + WITHDRAWAL_ADDR= + # Create a testnet distributed validator cluster - docker run --rm -v "$(pwd):/opt/charon" ghcr.io/obolnetwork/charon:v0.14.0 create cluster --withdrawal-address="0x000000000000000000000000000000000000dead" --nodes 6 --threshold 5 + docker run --rm -v "$(pwd):/opt/charon" ghcr.io/obolnetwork/charon:v0.14.0 create cluster --withdrawal-addresses="${WITHDRAWAL_ADDR}" --nodes 6 --threshold 5 ``` 1. Start the cluster @@ -90,7 +93,10 @@ in the future. Read more about our client support [here](https://github.com/Obol Create some testnet private keys for a six node distributed validator cluster with the command: ```sh -docker run --rm -v "$(pwd):/opt/charon" ghcr.io/obolnetwork/charon:v0.14.0 create cluster --withdrawal-address="0x000000000000000000000000000000000000dead" --nodes 6 --threshold 5 +# Enter required validator addresses +WITHDRAWAL_ADDR= + +docker run --rm -v "$(pwd):/opt/charon" ghcr.io/obolnetwork/charon:v0.14.0 create cluster --withdrawal-addresses="${WITHDRAWAL_ADDR}" --nodes 6 --threshold 5 ``` This command will create a subdirectory `.charon/cluster`. In it are six folders, one for each charon node created. Each folder contains partial private keys that together make up distributed validators defined in the `cluster-lock.json` file. @@ -121,8 +127,12 @@ mkdir split_keys # Alongside them, with a matching filename but ending with `.txt` should be the password to the keystore. # E.g., keystore-0.json keystore-0.txt +# Enter required validator addresses +WITHDRAWAL_ADDR= +FEE_RECIPIENT_ADDR= + # Split these keystores into "n" (--nodes) key shares with "t" (--threshold) as threshold for a distributed validator -docker run --rm -v $(pwd):/opt/charon obolnetwork/charon:v0.14.0 create cluster --name="mycluster" --withdrawal-addresses="0x000000000000000000000000000000000000dead" --fee-recipient-addresses="0x000000000000000000000000000000000000dead" --split-existing-keys --split-keys-dir=/opt/charon/split_keys --threshold 4 --nodes 6 +docker run --rm -v $(pwd):/opt/charon obolnetwork/charon:v0.14.0 create cluster --name="mycluster" --withdrawal-addresses="${WITHDRAWAL_ADDR}" --fee-recipient-addresses="${FEE_RECIPIENT_ADDR}" --split-existing-keys --split-keys-dir=/opt/charon/split_keys --threshold 4 --nodes 6 # The above command will create 6 validator key shares along with cluster-lock.json and deposit-data.json in ./.charon/cluster : From f353dbd84877278cae4f4892060b8503a24bc77c Mon Sep 17 00:00:00 2001 From: Eridian <86061486+EridianAlpha@users.noreply.github.com> Date: Tue, 14 Mar 2023 16:26:48 +0000 Subject: [PATCH 3/3] Add additional variables --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9fe1684..9129ffa 100644 --- a/README.md +++ b/README.md @@ -47,9 +47,10 @@ Ensure you have [docker](https://docs.docker.com/engine/install/) and [git](http ```sh # Enter required validator addresses WITHDRAWAL_ADDR= + FEE_RECIPIENT_ADDR= # Create a testnet distributed validator cluster - docker run --rm -v "$(pwd):/opt/charon" ghcr.io/obolnetwork/charon:v0.14.0 create cluster --withdrawal-addresses="${WITHDRAWAL_ADDR}" --nodes 6 --threshold 5 + docker run --rm -v "$(pwd):/opt/charon" ghcr.io/obolnetwork/charon:v0.14.0 create cluster --name="mycluster" --withdrawal-addresses="${WITHDRAWAL_ADDR}" --fee-recipient-addresses="${FEE_RECIPIENT_ADDR}" --nodes 6 --threshold 5 ``` 1. Start the cluster @@ -95,8 +96,9 @@ Create some testnet private keys for a six node distributed validator cluster wi ```sh # Enter required validator addresses WITHDRAWAL_ADDR= +FEE_RECIPIENT_ADDR= -docker run --rm -v "$(pwd):/opt/charon" ghcr.io/obolnetwork/charon:v0.14.0 create cluster --withdrawal-addresses="${WITHDRAWAL_ADDR}" --nodes 6 --threshold 5 +docker run --rm -v "$(pwd):/opt/charon" ghcr.io/obolnetwork/charon:v0.14.0 create cluster --name="mycluster" --withdrawal-addresses="${WITHDRAWAL_ADDR}" --fee-recipient-addresses="${FEE_RECIPIENT_ADDR}" --nodes 6 --threshold 5 ``` This command will create a subdirectory `.charon/cluster`. In it are six folders, one for each charon node created. Each folder contains partial private keys that together make up distributed validators defined in the `cluster-lock.json` file.