Giter Club home page Giter Club logo

consensuslayerwithdrawalprotection's Introduction

Consensus Layer Withdrawal Protection

Submit a pull request with your Ethereum validator change withdrawal credential message to have the CLWP community broadcast it as early as possible for security.

Acknowledgements

Documentation

For full documentation on ethdo usage, please refer to Change Withdrawal Credentials. Below are the excerpt steps required to join the CLWP voluntary broadcast protection. For your own protection, please run the steps using your own node and execute on an airgapped machine for signing processes. However, for demonstration purposes, I have included an excerpt of the offline-preparation.json files in compressed format.

If your validator has not set an execution layer withdrawal address, your withdrawal credentials will start with "0x00". If they have been set, they will start with "0x01". You may easily check your validator status using beaconchain, such as here: https://goerli.beaconcha.in/validator/99a29d72501fc49a748d11367b0b2b80be2e5c93cc28a512e06fb40142666e206590ee637ba1bf1e8adfd0e9de3665d5#deposits

At the launch of the Capella/Shanghai hardfork, every validator with Withdrawal Credentials starting with 0x00 will be allowed to perform a one time operation to change withdrawal credentials from 0x00 to an execution layer address. You will need validator mnemonic seed phrase (or withdrawal private key) to sign this transaction.

Demo

Video Demo: https://bit.ly/clwp-demo

Presentation: https://bit.ly/clwp-presentation

Steps

2023-01-12 - Apologies, but CLWP submissions are temporarily halted until the Ethereum core devs finalize the fork version handling for signatures. ethereum/consensus-specs#3206

2023-01-21 - We are accepting CLWP submissions using ethdo version 1.27 or later. Fork version offline-preparation files have been updated for Capella

Mainnet

# Download and upack the latest ethdo release from https://github.com/wealdtech/ethdo/releases/
# In the same directory as ethdo, unpack the offline-preparation.json file (or you may generate your own using --prepare-offline and your own beacon node)
tar -zxf ../offline-preparation.json.mainnet.tar.gz
cp offline-preparation.json.mainnet offline-preparation.json
# Use ethdo to generate the change-operations.json file. Perform this step on an air gapped, clean and secure computer (Linux USB recommended) and triple check your withdrawal address.
./ethdo validator credentials set --offline --withdrawal-address 0xAnExecutionLayerAddress --mnemonic "your seed phrase"
# Clear your command line history
history -c 

Move the resulting change-operations.json file into the mainnet folder with individual files for each validatorIndex.json, verify the withdrawal address again, and submit a pull request to have it included in CLWP protection. If you need help or prefer not to link your GitHub account to your validator, reach out to an admin on the Support below and we can assist. If you have multiple validators, you will need to split the file to have a single submission manually using a text editor. Never modify the validator index, public key, or withdrawal address, or signature or it will invalidate the submission. If you have many validators, you may install "jq" on linux and split the change-operations.json file using it:

for ((i=0; i<`jq -ec '.|length' change-operations.json`;i++)); do validator=`jq -ec ".[$i].message.validator_index|tonumber" change-operations.json`; echo "`jq -ec [".[$i]"] change-operations.json`" > ${validator}.json;done

Volunteer to run the broadcast of change-operations-clwp-mainnet.json on your node to help protect the community.

Goerli

The steps above are tested to work with Goerli as well. Use the offline-preparation.json.goerli.tar.gz file, and place your change-operations.json file in the goerli directory as validatorIndex.json per each validator.

Support

For community support, create an issue or join our OffChain Discord channel #ethereum-consensus-layer-withdrawal-protection https://discord.gg/pwuPA6K4zg

consensuslayerwithdrawalprotection's People

Contributors

benjaminchodroff avatar rolf-fredrickson avatar tobesvibration avatar film54 avatar zven77 avatar adi-git1 avatar johnnydev543 avatar tex419 avatar codingsal avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.