dappnode / DAppNodePackage-prysm-prater

[Prater testnet] Wrapper for the Prysm Eth2 client, beacon and validator binaries
GNU General Public License v3.0
6 stars 5 forks source link

Test Eth2 migration in network Prater #59

Closed pablomendezroyo closed 3 weeks ago

pablomendezroyo commented 2 years ago

Test instructions

Having at least 2 validators in the legacy Prysm-prater (previous version to v1.0.0) and web3signer-prater already installed, manually update Prysm-prater to the latest version.

During container start-up, there should be some logs saying "found validators, starting migration". This process will export your validator keystores, walletpassword, and slashing protection data to the web3signer via the remote keymanager API.

If there is any error during this migration, the volume will be empty, ensuring no keystores are loaded in the Prysm-prater.

Ensure this process was successfully and the keystores are loaded in the web3signer

Test report

With an editable unique comment report any errors and feedback you may find necessary.

If no errors leave a checkmark

Testers

@pablomendezroyo :heavy_check_mark: @3alpha @tropicar @mgarciate @Pol-Lanski ✅

Pol-Lanski commented 2 years ago

@Pol-Lanski

Pol-Lanski commented 2 years ago

Instructions to roll-back and test:

  1. If you have performed the migration before, save your keystores by exporting them (and make sure you remember the keystore password or that you have the mnemonic to regenerate them). Delete them from the web3signer.
  2. Rollback prysm prater to DNP version 0.1.7 (/ipfs/QmPMhG8cd8o3sXdY3Ub8VE9m5PQjpN3YfLvfwST97DC1YE)
  3. Upload the keystores to the Prysm UI.

    You are ready to perform the migration, just update to the latest Prysm Prater version as per the UI banner.

Pol-Lanski commented 2 years ago

Blocked by core version 0.2.50 https://github.com/dappnode/DNP_DAPPMANAGER/releases/tag/v0.2.50 In order to test with the latest web3signer version, the CORE needs to be updated.

mgarciate commented 2 years ago

Worked OK on my side after PR #68 was merged.

Steps I followed

  1. I compiled and installed commit 3411031caa439bbc3d6756e09a03fd65f3d8c79e manually setting v1.0.6 since I couldn't install Prysm 0.1.7 due to core restrictions
  2. I added 2 validators via Prysm UI
  3. I compiled and installed the package and the W3S was installed too
  4. Prysm + web3signer contine attesting
mgarciate commented 2 years ago

@pablomendezroyo @Pol-Lanski ⬆️

Pol-Lanski commented 2 years ago

1st test Didn't work. Keys never moved to the web3signer and disappeared. Thanks to @pablomendezroyo 's investigation, we've pinpointed the issue to the fact that Web3Signer was already installed but was pointing to Teku instead of prysm.

2nd test Reverted to original state but with web3signer pointing to Prysm. It did move the keys to the web3signer but did not validate. During install I put a checkpoint sync endpoint from Infura but it bugged the beacon chain and it couldn't sync. After removing the checkpoint sync endpoint and letting the chain sync naturally, the web3signer could validate again. If I put the checkpoint sync endpoint again, it stops validating and the validator spews this repeatedly:

time="2022-06-06 12:00:44" level=warning msg="block stream interrupted" error="rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp 172.33.0.11:4000: connect: connection refused": could not connect" prefix=validator
time="2022-06-06 12:00:48" level=error msg="Failed to retrieve blocks stream, could not connect" error="rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp 172.33.0.11:4000: connect: connection refused"" prefix=validator
time="2022-06-06 12:00:52" level=error msg="Could not check if validators are exited" error="rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp 172.33.0.11:4000: connect: connection refused"" prefix=validator
time="2022-06-06 12:00:56" level=error msg="rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp 172.33.0.11:4000: connect: connection refused"" prefix=validator
time="2022-06-06 12:00:56" level=error msg="Failed to update assignments" error="rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp 172.33.0.11:4000: connect: connection refused"" prefix=validator

Seems that the checkpoint sync in prysm breaks the beacon chain or the validator. Beacon logs shared via DM.

Probably migration OK, but checkpoint sync nope.

pablomendezroyo commented 2 years ago

worked on my side :heavy_check_mark:

The checkpoint sync worked at the first time without issues

Track the checkpoint sync issue at https://github.com/prysmaticlabs/prysm/issues/10832