Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Preparing Vouch / Dirk for the Holesky Attestation Event #304

Open
Bez625 opened this issue Feb 28, 2025 · 0 comments
Open

Preparing Vouch / Dirk for the Holesky Attestation Event #304

Bez625 opened this issue Feb 28, 2025 · 0 comments

Comments

@Bez625
Copy link
Collaborator

Bez625 commented Feb 28, 2025

Preparing Vouch for the holesky attestation event:

  • release versions of Vouch do not allow operation against unsynced clients. There is a special docker image available at attestant/vouch:unsynced which will obtain duties from and carry out operations against beacon nodes regardless of their sync status. Using this should give you a better chance of attesting if the beacon nodes fall in and out of sync (as we have seen on holesky in the past few days). If anyone needs an amd64 version of this binary or instructions to build please see below*. I hope it goes without saying, but please do not use this binary outside of the holesky chain
  • existing strategies should continue to work without issue, however changing strategies from 'best' to 'first' are an option for users with multiple beacon nodes that may be struggling under load. If you want to do this, please do ensure you test out your altered configuration well ahead of time with a Vouch restart, so that it can be corrected if errors are introduced
  • we do not know the status of holesky MEV relays at this time, so you may want to change your execution configuration to only use locally-built blocks

Preparing Dirk for the holesky attestation event:

  • when you restart Dirk it needs to decrypt keys before they can be used. If you have a lot of keys (>1000) then you should ensure that you have batched up the relevant wallet ahead of time. Batching a wallet encrypts all keys within that wallet within a single binary blob, massively reducing the time to decrypt these keys. If you have not batched your wallet(s), you can do so with the ethdo command ethdo wallet batch. You can do this whilst Dirk is active, and Dirk will pick up the batch when it restarts. We recommend you use the same password for the batch as you do for the individual accounts in this situation, to avoid having to alter configuration files. Note that you should batch your wallet as the same user as the Dirk process runs as, to ensure that Dirk has access to the batch once it is complete. Alternatively you can chown -R the wallet directory to the correct user after batches have been made. If you do go through this process please restart Dirk to confirm that it is still operational after the batching
  • if you are using Dirk with threshold signing you can carry out the above process for each instance of Dirk, one at a time, to avoid any period of time where you miss out on proposing blocks
  • the location of the slashing database should be in storage under your Dirk process' home directory
  • to remove the slashing database, you need to shut down Dirk, remove the files under this directory, then restart Dirk
  • if you are using Dirk with threshold signing you can go through the above process on a single Dirk instance to confirm it within your environment. If a single Dirk instance has its slashing database removed it will sign attestation requests, however the other instances will continue to deny signing and so you will not produce slashable attestations. When it is time to start signing attestations you can go through the process on your remaining instances to start signing
  • Vouch does not need to be restarted during this process; it will reconnect to any Dirk instances that have been restarted automatically

NOTE: If you are using ESD alongside Dirk or Vouch you should disable it

*Vouch binary and build instructions - DO NOT USE OUTSIDE OF HOLESKY

To build from source:

  • clone https://github.com/attestantio/vouch
  • cd into the vouch directory
  • run go get -u github.com/attestantio/go-eth2-client@fb893f25a47a4b1cbca719e83c46aca94199ed60 to update go-eth2-client to a version that always returns true when queried if a beacon node is synced
  • run go build -tags osusergo,netgo -ldflags='-extldflags=-static -w -s' -trimpath to build vouch

To obtain a pre-built version:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant