prysmaticlabs / prysm

Go implementation of Ethereum proof of stake
https://www.offchainlabs.com
GNU General Public License v3.0
3.47k stars 1.01k forks source link

Could not perform voluntary exit with non fully synced beacon node #11451

Open etalot opened 2 years ago

etalot commented 2 years ago

🐞 Bug Report

Description

I'm trying to exit from validation, and getting error: FATAL accounts: Could not perform voluntary exit error=could not perform exit: beacon node is syncing.

🔬 Minimal Reproduction

./prysm.sh validator accounts voluntary-exit --wallet-dir=$HOME/validators

🔥 Error


FATAL accounts: Could not perform voluntary exit error=could not perform exit: beacon node is syncing.

🌍 Your Environment

Ubuntu 18.04.1 LTS

  

  

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

  
Prysm/v3.1.1/653ea3b030c3bb99aa3f3d95a8de9f4d6e147930. Built at: 2022-09-09 17:21:54+00:00
  
prestonvanloon commented 2 years ago

Please wait for your beacon node to finish syncing to complete the voluntary exit.

etalot commented 2 years ago

Please wait for your beacon node to finish syncing to complete the voluntary exit.

I tried restart beacon and validator daemon. There was some synchronization. Now it's finished, only errors about problem with connection to Infura/ETH1 node.

My server doesn't have ETH1 node running(because I have only 512GB SSD). I used Infura. So, now everyone who used Infura can not exit validation?

prestonvanloon commented 2 years ago

I think we can implement a form of offline signing for voluntary exits where you could submit to Infura via beacon API. It would not be easy to use because you would still need to know the correct fork information for creating the signature.

However, we do not support this at the moment and I do not have an ETA on when that could be supported. It is unlikely that it is any time soon.

rauljordan commented 2 years ago

This should now be fixed, right @james-prysm ?

james-prysm commented 2 years ago

No this still requires a synced beacon node to perform this. We also don't support http on commmand either which will need to be in future prs

james-prysm commented 2 years ago

I'll be updating docs around this soon

rauljordan commented 1 year ago

Hi @james-prysm just following up on this one

nisdas commented 1 year ago

I think we can allow the user to provide a flag for the domain to sign with and skip requiring the beacon node. Also after deneb the fork version for exits is frozen, so: https://github.com/ethereum/consensus-specs/pull/3288

bharath-123 commented 1 year ago

hey @nisdas would love to take this one. I believe this is a deneb change where we can remove the necessity of the beacon node, since the fork version is frozen to capella. We just the validator client to broadcast the voluntary exit message.

bharath-123 commented 1 year ago

also on closer look, the voluntary exit signatures produced by the voluntary-exit command for deneb will be invalid in the current state as it picks up the fork version based on the current epoch.

bharath-123 commented 1 year ago

I believe we might need the beacon chain rpc to fetch the latest beacon state for the GenesisValidatorRoot to compute the signing domain but dont think it has to be synced since its genesis info

prestonvanloon commented 7 months ago

@bharath-123 this is still a good issue, potentially. Deneb is released and https://github.com/ethereum/consensus-specs/pull/3288 was included.

Are you interested in working on this?