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
Open the PoN dApp here.
Second step: Register Your Address as a Proposer
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
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.
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.
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:
- Binaries: Download the binaries from https://github.com/flashbots/mev-boost/releases.
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.gzand
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-boostRun 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
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.
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
Start the MEV-Boost service
a. Use the following command
sudo systemctl start mevboost
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.
Enable MEV-Boost to start on boot
a. Run the following command
sudo systemctl enable mevboost
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
Tell systemd you made changes.
a. Use the following command to reload systemd:
sudo systemctl daemon-reload
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.