protolambda / eth2-val-tools

Some experimental tools to manage validators - use at your own risk
MIT License
63 stars 21 forks source link

what exactly is meant by withdrawals-mnemonic #20

Closed SyedMuhamadYasir closed 3 months ago

SyedMuhamadYasir commented 3 months ago

I really don't understand why this tool requires a different mnemonic for withdrawals?

when we use staking-cli, we just input one single mnemonic and that is enough to generate everything:

  1. validator keystores
  2. deposit data ( which also contains withdrawal credentials)

so why exactly does this tool as for withdrawal mnemonic? should this be the SAME as the validators-mnemonic?

please explain or at least redirect me to the relevant documentation where i can read more about this

protolambda commented 3 months ago

They are different keys, so we provide the option to use entirely different key material. The staking-cli uses the same, for simplicity. Here, for testing, separation allows for the regular validator-signing mnemonic to be shared with an external team (rather than 100s of thousands of keystore files, in large test deployments) that runs the test validators, while still keeping access-control over withdrawals. Also note that there used to be a "test" withdrawal credential type before the beaconchain mainnet launch, that wouldn't be backed by any private key, it wasn't always as consistent.

SyedMuhamadYasir commented 3 months ago

They are different keys, so we provide the option to use entirely different key material. The staking-cli uses the same, for simplicity. Here, for testing, separation allows for the regular validator-signing mnemonic to be shared with an external team (rather than 100s of thousands of keystore files, in large test deployments) that runs the test validators, while still keeping access-control over withdrawals. Also note that there used to be a "test" withdrawal credential type before the beaconchain mainnet launch, that wouldn't be backed by any private key, it wasn't always as consistent.

well, see the problem is - i cannot activate withdrawals through ethdo, since i think i might have done something wrong by choosing different mnemonics for validators and withdrawal

if you can help me in activating withdrawals ( changing from bls to execution address), i will be grateful

protolambda commented 3 months ago

Your withdrawal credentials need to be for the correct chain digest. And if BLS withdrawal creds are valid, you can sign execution-to-bls messages to them, and submit them via API to the beacon node. Beacon nodes have tooling for this. I recommend to use that, or that of ethdo, instead. This is just a repository meant for testing (note the big disclaimer in the README.md).

SyedMuhamadYasir commented 3 months ago

Your withdrawal credentials need to be for the correct chain digest. And if BLS withdrawal creds are valid, you can sign execution-to-bls messages to them, and submit them via API to the beacon node. Beacon nodes have tooling for this. I recommend to use that, or that of ethdo, instead. This is just a repository meant for testing (note the big disclaimer in the README.md).

oh don't worry, we are using this on a private testnet

i am just trying to figure out how to active the withdrawals and i used your tools to generate validators and submit the deposit for my validators

which is why i asked here, because this withdrawal mnemonic is something i did not find anywhere else

if BLS withdrawal creds are valid, you can sign execution-to-bls messages to them, and submit them via API to the beacon node.

this is the part i am trying to figure out 😬