open-relay

command module
v0.0.0-...-7a2e46d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 18, 2023 License: MIT Imports: 2 Imported by: 0

README

Welcome To PoN Open Relay

The Proof of Neutrality Relay (PoN) Open relay is a permissionless and neutral header-only relay in optimistic mode with retrospective support for Flashbot builders in open relay mode where the transaction contents are thrown away at source and not used for block simulation, offering a hydbrid model to migrate to fully header-only mode when credible commitment proofs are used to slash misbehaving builders as per the relay rule.

Key characteristics of Open Relay

  • Use onchain builder account (pon-builder registry contract)
  • Use onchain proposer account ( pon - proposer registry contract)
  • Unified builder collateral for all open relay instances
  • PoN reporter (ZK gadget) slash any commitment deviation onchain

Relay Documentation Relay Documentation

Easy Install

Install latest release from pon-network

Install and run using-

$ go install github.com/pon-network/open-relay
$ open-relay --help

Setting Up The Relay and Building

Building From Binaries

Automated builds are available for stable releases and the unstable master branch. Binary archives are published at https://github.com/pon-network/open-relay.

Use the binaries along with the Relay Documentation to install and run relay from binaries

Building From Source

To run from source use the main branch of this repository and use the following command-

go migrate
go run . relay \
--relay-url <Relay_URL> \
--beacon-uris <Beacon_URIS> \
--redis-uri <Redis_URIS> \
--db <DB_URL> \
--secret-key <Relay_BLS> \
--network <Network> \
--max-db-connections <Max_DB_Connections> \
--max-idle-connections <Max_Idle_Connections> \
--max-idle-timeout <Max_Idle_Timeout> \
--db-driver <DB_Driver> \
--pon-pool <PON_POOL_URL> \
--pon-pool-API-Key <PON_POOL_API_KEY> \
--bulletinBoard-broker <Bulletin_Board_Broker> \
--bulletinBoard-port <Bulletin_Board_Port> \
--bulletinBoard-client <Bulletin_Board_Client> \
--bulletinBoard-password <Bulletin_Board_Password> \
--reporter-url <Reporter_URL> \
--bid-timeout <Bid_Timeout> \
--relay-read-timeout <Relay_Read_Timeout> \
--relay-read-header-timeout <Relay_Read_Header_Timeout>
--relay-write-timeout <Relay_Write_Timeout> \
--relay-idle-timeout <Relay_Idle_Timeout> \
--open-relay
Relay Services

If You Want To Run A Postgres Server And Redis Use The Provided Docker Compose File By Following The Docker Documentation If you use your own POSTGRES_DB_USER and POSTGRES_DB_PASSWORD, please update parameter when running relay based on that

Metabase

PON Relay comes with a metabase docker-compose file. It can be used by following the Docker Documentation. For Performance Its Better If You Run The Service In Different Machine Then The Relay

PoN Builder Parameters
Parameter Description Default Required
--relay-url Listen Address For The PoN Relay Service Locally "localhost:9000" No
--beacon-uris Beacon Node Endpoint "" Yes
--db Database URL "" Yes
--secret-key BLS Secret Key Of Relay "" Yes
--network Network (Testnet/ Mainnet) "Testnet" No
--max-db-connections Maximum Database Connections 100 No
--max-idle-connections Maximum Database Idle Connections 100 No
--max-idle-timeout Maximum Database Timeout (In 1s/ 5h format) 100s No
--db-driver Database Driver postgres No
--pon-pool Pon Pool Subgraph URL "" Yes
--bulletinBoard-broker Bulletin Board MQTT Broker URL "" Yes
--bulletinBoard-port Bulletin Board MQTT Port "" Yes
--bulletinBoard-client Bulletin Board Client "" Yes
--bulletinBoard-password Bulletin Board Password "" Yes
--bid-timeout Maximum Time Bid Is Kept With Relay (In 1s/ 5h format) "15s" No
--relay-read-timeout Relay Server Read Timeout (In 1s/ 5h format) "10s" No
--relay-read-header-timeout Relay Server Read Header Timeout (In 1s/ 5h format) "10s" No
--relay-write-timeout Relay Server Write Timeout (In 1s/ 5h format) "10s" No
--relay-idle-timeout Relay Idle Timeout (In 1s/ 5h format) "10s" No
--new-relic-application New Relic Application (New Relic Not Used If Application Not Provided) "" No
--new-relic-license New Relic License "" No
--new-relic-forwarding New Relic Forwarding false No
--open-relay Run Open Relay false Yes

DB Differences Between Open Relay and Proof Relay

Open Relay needs to maintain the validators in beacon chain and hence open relay takes more space to run for database than proof relay. The different database setup is handled by the relay migrations only based on whether the relayy is run with --openRelay.

Hardware Requirements

API Spec

API Spec

API Spec Is Generated Using Go-Swagger for Open API Implementation. You can follow the specification by visiting the API-Spec If you want to make changes to the swagger file, run the following commands-

make swagger
make serve-swagger

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Package database exposes the postgres database
Package database exposes the postgres database
Package classification awesome.
Package classification awesome.
Code generated by fastssz.
Code generated by fastssz.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL