Skip to main content

Off-Chain Builder Setup Instructions

Follow these instructions to become set up the Builder software.

Here is some information you should have handy:

  1. Run a consensus client of your choosing, with prepared payload set ahead by 12 seconds, to ensure the sse event for payload attributes is set up with your consensus client.

    For lighthouse (recommended) this can be done y including the following flags when starting the consensus client

    --always-prepare-payload

    --prepare-payload-lookahead 12000

  2. You will need to install the Builder software, but there are some prerequisites before you can run this custom geth client:

    a. Building geth requires downloading Go (version 1.20 or later), docker, and a C compiler (most operating systems come with a C compiler)

    b. Requires a cc compiler to allow for BLS signatures (e.g for Linux systems: sudo apt install build-essential should suffice)

    c. Set the following environment variables to allow C compilation in Go export CGO_ENABLED="1" export CGO_CFLAGS="-O -D__BLST_PORTABLE__"

    d. Pull the dockerized RPBS serveless image docker pull blockswap/rpbs-hosted-service

    and start the RPBS service by running

    docker compose up

    in the root of the source code

  3. Once these dependencies are installed, we can move forward and build the program from the source code, by either one of these methods

    Option 1: Building with Make

        i. Ensure youre in the root of the cloned repository. ii. To build geth run

    make geth

        Or to build the full suite of utilities run

    make all

    Option 2: Installing with go run to build the program

      i. Ensure youre in the root of the cloned repository

    ii. To build geth run

    go run build/ci.go install --static ./cmd/geth

      iii. To build geth run:

    go run build/ci.go install --static ./cmd/geth

      iii. Enter the bin directory within build from the root of the repository

    cd build/bin

      iv. Copy the geth binary to your system’s bin directory to be able to run geth from anywhere

    sudo cp * /usr/local/bin/

  4. Run geth with normal configuration and with the following builder flags enabled

Kindly refer to the guide on the readMe file. This also contains information on interacting with the builder software it is running.

Additional help on running geth and the builder software can be found by running

geth --help

Congratulations! You are now ready to to bid for block space and have your winning blocks proposed to Ethereum through the PoN Relay.