Giter Site home page Giter Site logo

amirh-a / optimizer-block-builder Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ncitron/optimizer-block-builder

0.0 1.0 0.0 168.99 MB

License: GNU Lesser General Public License v3.0

Shell 0.13% JavaScript 3.22% Ruby 0.01% Python 0.08% C 4.91% Java 0.22% Go 89.89% Assembly 0.69% Makefile 0.06% HTML 0.08% NSIS 0.17% M4 0.19% Dockerfile 0.01% Sage 0.22% Solidity 0.11%

optimizer-block-builder's Introduction

geth readme

Builder API

Builder API implementing builder spec, making geth into a standalone block builder.

Run on your favorite network.

Requires builder_payloadAttributes update to be sent for block building, run our Prysm fork

Test with mev-boost and mev-boost test cli.

Provides summary page at the listening address' root (http://localhost:28545 by default).

How it works

  • Builder polls relay for the proposer registrations for the next epoch

Builder has two hooks into geth:

  • On forkchoice update, changing the payload attributes feeRecipient to the one registered for next slot's validator
  • On new sealed block, consuming the block as the next slot's proposed payload and submits it to the relay

Local relay is enabled by --local_relay and overwrites remote relay data. This is only meant for the testnets!

To connect to a remote relay use --builder.remote_relay_endpoint.

Limitations

  • Blocks are only built on a specialized call builder_payloadAttributes, see our Prysm fork
  • Does not accept external blocks
  • Does not have payload cache, only the latest block is available

Usage

Configure geth for your network, it will become the block builder.

Builder API options:

$ geth --help
    --builder                      (default: false)
          Enable the builder
   
    --builder.beacon_endpoint value (default: "http://127.0.0.1:5052")
          Beacon endpoint to connect to for beacon chain data [$BUILDER_BEACON_ENDPOINT]
   
    --builder.bellatrix_fork_version value (default: "0x02000000")
          Bellatrix fork version. For goerli use 0x02001020
          [$BUILDER_BELLATRIX_FORK_VERSION]
   
    --builder.genesis_fork_version value (default: "0x00000000")
          Gensis fork version. For goerli use 0x00001020 [$BUILDER_GENESIS_FORK_VERSION]
   
    --builder.genesis_validators_root value (default: "0x0000000000000000000000000000000000000000000000000000000000000000")
          Genesis validators root of the network. For goerli use
          0x043db0d9a83813551ee2f33450d23797757d430911a9320530ad8a0eabc43efb
          [$BUILDER_GENESIS_VALIDATORS_ROOT]
   
    --builder.listen_addr value    (default: ":28545")
          Listening address for builder endpoint [$BUILDER_LISTEN_ADDR]
   
    --builder.local_relay          (default: false)
          Enable the local relay
   
    --builder.relay_secret_key value (default: "0x2fc12ae741f29701f8e30f5de6350766c020cb80768a0ff01e6838ffd2431e11")
          Builder local relay API key used for signing headers [$BUILDER_RELAY_SECRET_KEY]
   
    --builder.remote_relay_endpoint value
          Relay endpoint to connect to for validator registration data, if not provided
          will expose validator registration locally [$BUILDER_REMOTE_RELAY_ENDPOINT]
   
    --builder.secret_key value     (default: "0x2fc12ae741f29701f8e30f5de6350766c020cb80768a0ff01e6838ffd2431e11")
          Builder key used for signing blocks [$BUILDER_SECRET_KEY]
   
    --builder.validator_checks     (default: false)
          Enable the validator checks

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.