ObolNetwork / charon

Charon (pronounced 'kharon') is a Proof of Stake Ethereum Distributed Validator Client
https://docs.obol.tech/
Other
195 stars 84 forks source link

v1.0.0+ split keys failure #3220

Open b0a7 opened 2 months ago

b0a7 commented 2 months ago

🐞 Bug Report

Description

split keys operation failed on v1.0.0 and v1.0.1 with the error $ docker run --rm -v $(pwd):/opt/charon obolnetwork/charon:${CHARON_VERSION} create cluster --name="${CLUSTER_NAME}" --network="${NETWORK}" --withdrawal-addresses="${WITHDRAWAL_ADDRESS}" --fee-recipient-addresses="${FEE_RECIPIENT_ADDRESS}" --split-existing-keys --split-keys-dir=/opt/charon/split_keys --threshold ${THRESHOLD} --nodes ${NODES} 16:24:49.213 ERRO cmd Fatal error: invalid deposit data signature: signature not verified tbls/herumi.go:297 .Verify tbls/tbls.go:122 .Verify eth2util/deposit/deposit.go:97 .MarshalDepositData eth2util/deposit/deposit.go:300 .WriteDepositDataFile eth2util/deposit/deposit.go:273 .WriteClusterDepositDataFiles cmd/createcluster.go:253 .runCreateCluster cmd/createcluster.go:94 .func1 cmd/cmd.go:91 .func1 main.go:19 .main

Has this worked before in a previous version?

Yes, the previous version in which this bug was not present was: CHARON_VERSION=v0.19.2

$ docker run --rm -v $(pwd):/opt/charon obolnetwork/charon:${CHARON_VERSION} create cluster --name="${CLUSTER_NAME}" --network="${NETWORK}" --withdrawal-addresses="${WITHDRAWAL_ADDRESS}" --fee-recipient-addresses="${FEE_RECIPIENT_ADDRESS}" --split-existing-keys --split-keys-dir=/opt/charon/split_keys --threshold ${THRESHOLD} --nodes ${NODES} Unable to find image 'obolnetwork/charon:v0.19.2' locally v0.19.2: Pulling from obolnetwork/charon 5d0aeceef7ee: Already exists 3cb52c1feafb: Pull complete 219f38bef2a1: Pull complete e344aae7ae63: Pull complete 7da51ba8602e: Pull complete e1697e312eb6: Pull complete 4f4fb700ef54: Pull complete 6200d4745da4: Pull complete Digest: sha256:3977f4e46926d40342dd5d3d37a76340060494410808c45594e6763a4972fbd6 Status: Downloaded newer image for obolnetwork/charon:v0.19.2

***** WARNING: Splitting keys ** Please make sure any existing validator has been shut down for at least 2 finalised epochs before starting the charon cluster, otherwise slashing could occur.


Created charon cluster: --split-existing-keys=true

/opt/charon/ ├─ node[0-2]/ Directory for each node │ ├─ charon-enr-private-key Charon networking private key for node authentication │ ├─ cluster-lock.json Cluster lock defines the cluster lock file which is signed by all nodes │ ├─ deposit-data.json Deposit data file is used to activate a Distributed Validator on DV Launchpad │ ├─ validator_keys Validator keystores and password │ │ ├─ keystore-.json Validator private share key for duty signing │ │ ├─ keystore-.txt Keystore password files for keystore-*.json

🔬 Minimal Reproduction

🔥 Error





🌍 Your Environment

Operating System:

  

  

What version of Charon are you running? (Which release)

  

  

Anything else relevant (validator index / public key)?

gsora commented 2 months ago

@pinebit have we seen this already?