Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(holesky): cb config + bump images for release #691

Merged
merged 16 commits into from
Jan 17, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ mev_params:
# Bolt-specific images:
# Adding the `bolt_boost_image` will start the devnet with Bolt-Boost
# instead of MEV-Boost
bolt_boost_image: ghcr.io/chainbound/bolt-boost:0.1.0
bolt_boost_image: ghcr.io/chainbound/bolt-boost:v0.4.0-alpha
# ... the rest of the `mev_params`
```

Expand Down
2 changes: 1 addition & 1 deletion bolt-boost/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 2 additions & 7 deletions bolt-boost/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "bolt-boost"
version = "0.3.0-alpha"
version = "0.4.0-alpha"
edition = "2021"

[profile.release]
Expand Down Expand Up @@ -34,12 +34,7 @@ ethereum_ssz = "0.8.2"
ethereum_ssz_derive = "0.8.1"

# alloy
alloy = { version = "0.8.3", features = [
"signer-local",
"provider-trace-api",
"rpc-types-beacon",
"rpc-types-engine",
] }
alloy = { version = "0.8.3", features = ["signer-local", "provider-trace-api", "rpc-types-beacon", "rpc-types-engine"] }
alloy-rlp = "0.3.10"

# commit-boost
Expand Down
35 changes: 25 additions & 10 deletions bolt-sidecar/.env.example
Original file line number Diff line number Diff line change
@@ -1,57 +1,71 @@
# Ethereum Node Connections + PBS URLs
# --- Ethereum Node Connections + PBS URLs ---

# Port to listen on for incoming JSON-RPC requests of the Commitments API. This
# port should be open on your firewall in order to receive external requests!
# If you are using the BOLT_SIDECAR_FIREWALL_RPCS option, this variable MUST remain empty.
BOLT_SIDECAR_PORT=

# Comma-separated list of allowed RPC addresses to subscribe via websocket to receive
# incoming commitments requests.
# This is incompatible with the `BOLT_SIDECAR_RPC_URL` option.
# This is incompatible with the `BOLT_SIDECAR_PORT` option.
BOLT_SIDECAR_FIREWALL_RPCS="wss://rpc-holesky.bolt.chainbound.io/api/v1/firewall_stream"

# Secret ECDSA key to sign commitment messages with. The public key associated
# to it must be then used when registering the operator in bolt
# contracts
BOLT_SIDECAR_OPERATOR_PRIVATE_KEY=

# Execution client API URL
BOLT_SIDECAR_EXECUTION_API_URL="http://localhost:8545"

# URL for the beacon client
BOLT_SIDECAR_BEACON_API_URL="http://localhost:5052"

# Execution client Engine API URL. This is needed for fallback block building
# and must be a synced Geth node
BOLT_SIDECAR_ENGINE_API_URL="http://localhost:8551"

# The port from which the Bolt sidecar will receive Builder-API requests from the Beacon client
BOLT_SIDECAR_CONSTRAINTS_PROXY_PORT=18550

# URL to forward the constraints produced by the Bolt sidecar to a server
# supporting the Constraints API, such as an MEV-Boost fork
BOLT_SIDECAR_CONSTRAINTS_API_URL="http://localhost:18551"

# The JWT secret token to authenticate calls to the engine API. It can be
# either be a hex-encoded string or a file path to a file containing the
# hex-encoded secret.
BOLT_SIDECAR_ENGINE_JWT_HEX=

# The fee recipient address for fallback blocks
BOLT_SIDECAR_FEE_RECIPIENT=

# Secret BLS key to sign fallback payloads with
BOLT_SIDECAR_BUILDER_PRIVATE_KEY=

# Commitments limits
# --- Commitments limits ---

# Max committed gas per slot
BOLT_SIDECAR_MAX_COMMITTED_GAS_PER_SLOT=10_000_000
BOLT_SIDECAR_MAX_COMMITTED_GAS=10_000_000

# Min profit per gas to accept a commitment
BOLT_SIDECAR_MIN_PROFIT=2000000000 # 2 Gwei = 2 * 10^9 wei

# Chain configuration
# --- Chain configuration ---

# Chain on which the sidecar is running
BOLT_SIDECAR_CHAIN="holesky"
# The slot time duration in seconds. If provided, it overrides the default for
# the selected [chain]
BOLT_SIDECAR_SLOT_TIME=12

# The deadline in the slot at which the sidecar will stop accepting new
# commitments for the next block (parsed as milliseconds)
BOLT_SIDECAR_COMMITMENT_DEADLINE=8000

# Toggle to enable unsafe lookahead for the sidecar. If `true`, commitments requests will be
# validated against a two-epoch lookahead window.
BOLT_SIDECAR_ENABLE_UNSAFE_LOOKAHEAD=false

# Signing options.
# --- Signing options ---

BOLT_SIDECAR_CONSTRAINT_PRIVATE_KEY=
BOLT_SIDECAR_CB_SIGNER_URL=
BOLT_SIDECAR_CB_JWT_HEX=
Expand All @@ -60,6 +74,7 @@ BOLT_SIDECAR_KEYSTORE_SECRETS_PATH=
BOLT_SIDECAR_KEYSTORE_PATH=
BOLT_SIDECAR_DELEGATIONS_PATH=

# Telemetry and Metrics
# --- Telemetry and Metrics options ---

BOLT_SIDECAR_METRICS_PORT=9091
BOLT_SIDECAR_DISABLE_METRICS=false
2 changes: 1 addition & 1 deletion bolt-sidecar/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion bolt-sidecar/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "bolt-sidecar"
version = "0.4.0-alpha.rc1"
version = "0.4.0-alpha"
edition = "2021"
default-run = "bolt-sidecar"

Expand Down
34 changes: 20 additions & 14 deletions testnets/holesky/commit-boost/bolt-sidecar.env.example
Original file line number Diff line number Diff line change
@@ -1,6 +1,17 @@
# Port to listen on for incoming JSON-RPC requests of the Commitments API.
# (This is where users will send preconfirmation requests to)
BOLT_SIDECAR_PORT=8017
# If you are using the BOLT_SIDECAR_FIREWALL_RPCS option, this variable MUST remain empty.
BOLT_SIDECAR_PORT=

# Comma-separated list of allowed RPC addresses to subscribe via websocket to receive
# incoming commitments requests.
# This is incompatible with the `BOLT_SIDECAR_PORT` option.
BOLT_SIDECAR_FIREWALL_RPCS="wss://rpc-holesky.bolt.chainbound.io/api/v1/firewall_stream"

# Secret ECDSA key to sign commitment messages with. The ETH address derived from the public key
# associated to it must be then used when registering the operator in the bolt contracts.
# SET THIS 👇
BOLT_SIDECAR_OPERATOR_PRIVATE_KEY=

# Execution client API URL
# CHANGE THIS ACCORDING TO YOUR NODE SETUP 👇
Expand All @@ -15,12 +26,6 @@ BOLT_SIDECAR_BEACON_API_URL="http://127.0.0.1:5052"
# CHANGE THIS ACCORDING TO YOUR NODE SETUP 👇
BOLT_SIDECAR_ENGINE_API_URL="http://127.0.0.1:8551"

# Execution client Engine Secret.
# This is the secret token token to authenticate calls to the engine API. It can be
# either be a hex-encoded string or a file path to a file containing the secret.
# SET THIS ACCORDING TO YOUR NODE SETUP 👇
BOLT_SIDECAR_ENGINE_JWT_HEX=

# The port from which the Bolt sidecar will receive Builder-API requests from the Beacon client.
# E.g. on Lighthouse this is set by the `--builder http://localhost:18550` flag.
# YOU DON'T HAVE TO CHANGE THIS
Expand All @@ -31,15 +36,16 @@ BOLT_SIDECAR_CONSTRAINTS_PROXY_PORT=18550
# YOU DON'T HAVE TO CHANGE THIS
BOLT_SIDECAR_CONSTRAINTS_API_URL="http://cb_pbs:18551"

# Execution client Engine Secret.
# This is the secret token token to authenticate calls to the engine API. It can be
# either be a hex-encoded string or a file path to a file containing the secret.
# SET THIS ACCORDING TO YOUR NODE SETUP 👇
BOLT_SIDECAR_ENGINE_JWT_HEX=

# The fee recipient address for fallback blocks (this is the address that will receive the fees).
# SET THIS ACCORDING TO YOUR VALIDATOR SETUP 👇
BOLT_SIDECAR_FEE_RECIPIENT=

# Secret ECDSA key to sign commitment messages with. The ETH address derived from the public key
# associated to it must be then used when registering the operator in the `BoltManager` contract.
# SET THIS 👇
BOLT_SIDECAR_COMMITMENT_PRIVATE_KEY=

# Secret BLS key to sign fallback payloads with. This should be a BLS secret of 32 bytes.
# You can generate one with the `bolt generate bls` command.
# YOU DON'T HAVE TO CHANGE THIS
Expand All @@ -52,7 +58,7 @@ BOLT_SIDECAR_BUILDER_PRIVATE_KEY=0c824d40ad3545b4973d1d491d7e8f318536b3aad11609e
# Commitments limits
# Max committed gas per slot
# YOU CAN CHANGE THIS TO YOUR LIKING 👇
BOLT_SIDECAR_MAX_COMMITTED_GAS_PER_SLOT=10000000
BOLT_SIDECAR_MAX_COMMITTED_GAS=10000000

# Min profit per gas to accept a commitment
# YOU CAN CHANGE THIS TO YOUR LIKING 👇
Expand Down Expand Up @@ -105,5 +111,5 @@ BOLT_SIDECAR_DELEGATIONS_PATH="/etc/delegations.json"

# Telemetry and Metrics
# Changing this requires also changing the `target.json` file
BOLT_SIDECAR_METRICS_PORT=9091
BOLT_SIDECAR_METRICS_PORT=10000
BOLT_SIDECAR_DISABLE_METRICS=false
30 changes: 21 additions & 9 deletions testnets/holesky/commit-boost/cb-bolt-config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,13 @@ chain = "Holesky"
# Configuration for the PBS module
[pbs]
# Docker image to use for the PBS module.
docker_image = "ghcr.io/chainbound/bolt-boost:v0.3.0-alpha"
docker_image = "ghcr.io/chainbound/bolt-boost:v0.4.0-alpha"
# Whether to enable the PBS module to request signatures from the Signer module (not used in the default PBS image)
# OPTIONAL, DEFAULT: false
with_signer = false
# Host to receive BuilderAPI calls from beacon node
# OPTIONAL, DEFAULT: 0.0.0.0
host = "0.0.0.0"
# Bolt: Port to receive BuilderAPI calls from the bolt-sidecar.
port = 18551
# Whether to forward `status` calls to relays or skip and return 200
Expand All @@ -32,14 +35,11 @@ skip_sigverify = false
# Minimum bid in ETH that will be accepted from `get_header`
# OPTIONAL, DEFAULT: 0.0
min_bid_eth = 0.0
# List of URLs of relay monitors to send registrations to
# OPTIONAL
relay_monitors = []
# How late in milliseconds in the slot is "late". This impacts the `get_header` requests, by shortening timeouts for `get_header` calls to
# relays and make sure a header is returned within this deadline. If the request from the CL comes later in the slot, then fetching headers is skipped
# to force local building and miniminzing the risk of missed slots. See also the timing games section below
# OPTIONAL, DEFAULT: 2000
late_in_slot_time_ms = 1000
late_in_slot_time_ms = 2000

# The PBS module needs one or more [[relays]] as defined below.
[[relays]]
Expand All @@ -62,6 +62,16 @@ url = "https://0x821f2a65afb70e7f2e820a925a9b4c80a159620582c1766b1b09729fec178b1
# OPTIONAL
# headers = { X-MyCustomHeader = "MyCustomValue" }

# NOTE: the signer module is currently not used.
[signer.local]
# Docker image to use for the Signer module.
# OPTIONAL, DEFAULT: ghcr.io/commit-boost/signer:latest
docker_image = "ghcr.io/commit-boost/signer:latest"
thedevbirb marked this conversation as resolved.
Show resolved Hide resolved

# NOTE: this is unused.
[signer.local.loader]
key_path = "./keys.json"

# Commit-Boost can optionally run "modules" which extend the capabilities of the sidecar.
# Currently, two types of modules are supported:
# - "commit": modules which request commitment signatures from the validator keys
Expand All @@ -74,14 +84,16 @@ id = "BOLT_SIDECAR"
# Type of the module. Supported values: commit, events
type = "commit"
# Docker image of the module
docker_image = "ghcr.io/chainbound/bolt-sidecar:v0.3.0-alpha"

[modules.env]
# The bolt sidecar uses its own env file so we don't need to add stuff here.
docker_image = "ghcr.io/chainbound/bolt-sidecar:v0.4.0-alpha"
# Environment file for the module
env_file = "./bolt-sidecar.env"

# Configuration for how metrics should be collected and scraped
# OPTIONAL, skip metrics collection if missing
[metrics]
# Host for prometheus, grafana, and cadvisor
# OPTIONAL, DEFAULT: 127.0.0.1
host = "0.0.0.0"
# Path to a `prometheus.yml` file to use in Prometheus. If using a custom config file, be sure to add a
# file discovery section as follows:
# ```yml
Expand Down
Loading
Loading