Skip to main content

Proposer Guide

In the Proof of Neutrality Relay, a proposer is a validator in Ethereum who is responsible for proposing blocks to the network. Validators connect to the PoN Relay to become proposers who outsource block building to block builders and collect MEV payouts every 7 days through the PBS-Smoothing Pool.

To become a proposer in the PoN Relay, validators must register with the PoN proposer registry smart contract which allows them to participate in the network’s consensus algorithm and receive MEV payouts. By connecting to the PoN Relay, validators can contribute to upkeep credible neutrality in Ethereum.

An example relay that the PoN team is running can be accessed at: https://0x89daf9bf6113ec91fdbee11778ab1e1bb64f4ccc2532bdc2bb808c93a8394/6ac36bce00cf2496ce2b19a20f0030cd2bd/@relayer.0xblockswap.com

First step: Connect wallet

Connect Wallet

Open the PoN dApp here.

Second step: Register Your Address as a Proposer

Register Proposer Address

The second step is to register your wallet address with the PoN Relay. If you are already running a validator, it’s essential to use the wallet that is associated with your validator to register as a proposer. This will connect your validator wallet with the PoN Relay.

If you are not already a validator, you can get started for just 4 ETH, get started here. Once you have set up your validator, you can proceed with registering your validator’s wallet address.

Third Step: Connect Your Validator (BLS) Key

Connect Validator Key

Make sure you are uploading the correct validator signing key with the associated wallet.

The keystore.json file and decryption password are used to verify that the registering BLS key belongs to the ECDSA address owner during the authentication process. This is done locally, not through a file upload and is just for verification that you are the owner.

Success

After successfully registering your address and connecting your validator key to the PoN Relay, you are all set to move on to the off-chain portion.

Off-Chain Proposer Setup Instructions

Follow these instructions to set up as a proposer with PoN Relay.

In mainnet, MEV-Boost can be replaced by MEV+, which is a credibly neutral software provided by the PoN Network.

  1. Install MEV Boost

    a. Must use v1.5.0 or 1.6.0 of Flashbots MEV-boost. Visit https://github.com/flashbots/mev-boost to install MEV Boost using one of the following methods:

    or

    • Golang: Install MEV Boost by running the command

    go install github.com/flashbots/mev-boost@latest

    or

    • Docker: Pull the latest MEV Boost image from Docker Hub using the commands

    docker pull flashbots/mev-boost:latest

    and

    docker run flashbots/mev-boost -help

    or

    cd ~
    wget https://github.com/flashbots/mev-boost/releases/download/v1.5.0/mev-boost_1.5.0_linux_amd64.tar.gz

    and

       tar xvf mev-boost_1.5.0_linux_amd64.tar.gz
    sudo cp mev-boost /usr/local/bin
    rm mev-boost LICENSE README.md mev-boost_1.5.0_linux_amd64.tar.gz
    sudo chown mevboost:mevboost /usr/local/bin/mev-boost
  2. Run MEV Boost

    a. After installing MEV-Boost, you need to create a systemd service file to store the service configuration, which tells systemd to run MEV-Boost as the Mev-Boost user. Run the following command to create a service file

    sudo nano /etc/systemd/system/mevboost.service

  3. Then open the file and paste this into it to run MEV-Boost on Mainnet

     [Unit]
    Description=mev-boost (Mainnet)
    Wants=network-online.target
    After=network-online.target

    [Service]
    Type=simple
    User=mevboost
    Group=mevboost
    Restart=always
    RestartSec=5
    ExecStart=mev-boost \
    -mainnet \
    -min-bid 0.05 \
    -relay-check \
    -relays https://example.com

    Install]
    WantedBy=multi-user.target

You must replace the “https://example.com” in this configuration with one of the existing relays and insert the minimum bid you want from the relay.

  1. Reload systemd

    a. If you add or remove relays, you will need to reload systemd. To reflect the changes you made, use the following command

    sudo systemctl daemon-reload

  2. Start the MEV-Boost service

    a. Use the following command

    sudo systemctl start mevboost

  3. Check the status

    a. If everything was done correctly, the output should say “active (running)” in green, check this by running

    sudo systemctl status mevboost

    If not, go back and repeat the steps to fix the problem. To quit the status check, press Q.

  4. Enable MEV-Boost to start on boot

    a. Run the following command

    sudo systemctl enable mevboost

  5. Add the appropriate flag to the ExecStart of your consensus (and validator client if required) services. Use the following flags for each client

Prysm consensus: --http-mev-relay=http://127.0.0.1:18550

Prysm validator: --enable-builder

Nimbus combined: --payload-builder=true --payload-builder-url=http://127.0.0.1:18550

Lodestar consensus: --builder --builder.urls http://127.0.0.1:18550

Lodestar validator: --builder

Teku combined: --validators-builder-registration-default-enabled=true --builder-endpoint=http://127.0.0.1:18550

Lighthouse consensus: --builder http://127.0.0.1:18550

Lighthouse validator: --builder-proposals

  1. Tell systemd you made changes.

    a. Use the following command to reload systemd:

    sudo systemctl daemon-reload

  2. Restart the service(s) you changed. a. Run the following command, replacing SERVICENAME with the name of the service:

    sudo systemctl restart SERVICENAME

Once you’ve followed these steps, you are ready to start proposing blocks to Ethereum through the PoN Relay! As a validator, you’ll receive constant MEV payouts every 7 days from the PBS-Smoothing Pool, which collects and distributes rewards sent to the payoutPool address.