Skip to content

Commit

Permalink
Merge pull request #691 from chainbound/lore/fix/holesky-cb-config
Browse files Browse the repository at this point in the history
fix(holesky): cb config + bump images for release
  • Loading branch information
mempirate authored Jan 17, 2025
2 parents 615fe3d + 431770b commit 401b5c6
Show file tree
Hide file tree
Showing 12 changed files with 156 additions and 74 deletions.
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"

# 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

0 comments on commit 401b5c6

Please sign in to comment.