Skip to content

Onboarding testnet validators #604

@paulhauner

Description

@paulhauner

Here I propose a workflow for on-boarding validators to Goerli testnets (but it should also work for mainnet tetsnets).

Proposal

Components

There are two software components:

  1. the account_manager crate, executed via the monolithic lighthouse binary.
    • Generates cryptographic keys, initializes validator slashing databases and produces eth1 deposit data.
  2. a single-page web application, served from some sigp domain but also available locally
    • allows users to submit their validator deposit transactions via a browser (e.g., using metamask).

(1) already exists, however it requires additional features to suit this workflow. (2) does not exist yet.

Workflow

A user wishes to become a validator:

  1. The user downloads, builds and installs lighthouse from this repo.
  2. The user runs the following command $ lighthouse account_manager validator new
  3. The user starts the validator (and any other validators in the datadir) by running $ lighthouse validator_client
    • the logs of the validator client inform the user that their validator is not yet included in the beacon state (the validator is "unknown").
  4. The user goes to the "deposit website" and uploads their eth1_tx_data file and uses metamask to create a deposit transaction. It provides some feedback once the deposit is confirmed.
  5. The user watches the logs of the validator client (started earlier) to see the validator transition from unknown, to deposited and then to active.

The eth1_tx_data file

This file is simply the inputs to the deposit function on the deposit contract.

It contains a simple, bytes representation of (pubkey, withdrawal_credentials, signature, deposit_data_root).

The deposit website

This just needs to be a static, single-page webpage acting as a shim between metamask and the eth1_tx_data file.

It only really needs three features:

  • A button to upload the eth1_tx_data
  • A button to create a deposit transaction using the eth1_tx_data.
  • Some feedback about whether or not the transaction was mined and successful.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions