Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/flashbots/boost-geth-builder
Example builder
https://github.com/flashbots/boost-geth-builder
Last synced: 3 months ago
JSON representation
Example builder
- Host: GitHub
- URL: https://github.com/flashbots/boost-geth-builder
- Owner: flashbots
- License: lgpl-3.0
- Archived: true
- Created: 2022-05-23T09:42:44.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2022-10-17T18:39:58.000Z (about 2 years ago)
- Last Synced: 2024-05-01T12:17:02.581Z (6 months ago)
- Language: Go
- Size: 165 MB
- Stars: 93
- Watchers: 8
- Forks: 26
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: COPYING
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-blockspace - boost-geth-builder
README
[geth readme](README.original.md)
# Builder API
Builder API implementing [builder spec](https://github.com/ethereum/builder-specs), 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](https://github.com/flashbots/prysm)
Test with [mev-boost](https://github.com/flashbots/mev-boost) and [mev-boost test cli](https://github.com/flashbots/mev-boost/tree/main/cmd/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 relayLocal 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](https://github.com/flashbots/prysm)
* 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
```