You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/docs/developing/custom-modules.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,10 +2,10 @@
2
2
sidebar_position: 1
3
3
---
4
4
# Custom Modules
5
-
Commit-Boost aims to provide an open platform for developers to create and distribute commitment protocols sidecars.
5
+
Commit-Boost aims to provide an open platform for developers to create and distribute commitment protocols sidecars.
6
6
7
7
There are three ways to leverage Commit-Boost modularity:
8
-
1. Commit Modules, which request signatures from the proposer, e.g. for preconfirmations ([example](https://github.com/Commit-Boost/commit-boost-client/tree/78bdc47bf89082f4d1ea302f9a3f86f609966b28/examples/da_commit))
9
-
2. PBS Modules, which tweak the default PBS Module with additional logic, e.g. verifying additional constraints in `get_header` ([example](https://github.com/Commit-Boost/commit-boost-client/tree/78bdc47bf89082f4d1ea302f9a3f86f609966b28/examples/status_api))
10
-
3. PBS Events, which trigger based on the different events of the PBS lifecycle and can be used e.g. for monitoring and reporting ([example](https://github.com/Commit-Boost/commit-boost-client/tree/78bdc47bf89082f4d1ea302f9a3f86f609966b28/examples/builder_log))
11
8
9
+
1. Commit Modules, which request signatures from the proposer, e.g. for preconfirmations ([example](https://github.com/Commit-Boost/commit-boost-client/tree/78bdc47bf89082f4d1ea302f9a3f86f609966b28/examples/da_commit)).
10
+
2. PBS Modules, which tweak the default PBS Module with additional logic, e.g. verifying additional constraints in `get_header` ([example](https://github.com/Commit-Boost/commit-boost-client/tree/78bdc47bf89082f4d1ea302f9a3f86f609966b28/examples/status_api)).
11
+
3. PBS Events, which trigger based on the different events of the PBS lifecycle and can be used e.g. for monitoring and reporting ([example](https://github.com/Commit-Boost/commit-boost-client/tree/78bdc47bf89082f4d1ea302f9a3f86f609966b28/examples/builder_log)).
Commit-Boost needs a configuration file detailing all the services that you want to run. Create a `cb-config.toml` and adjust it depending on which modules you plan to run.
7
+
Commit-Boost needs a configuration file detailing all the services that you want to run. Create a `cb-config.toml` and modify it depending on which modules you plan to run.
8
8
9
-
For a full explanation of all the fields, check out [here](https://github.com/Commit-Boost/commit-boost-client/blob/main/config.example.toml).
10
-
11
-
For some additional examples on config presets, check out [here](https://github.com/Commit-Boost/commit-boost-client/tree/main/configs).
9
+
- For a full explanation of all the fields, check out [here](https://github.com/Commit-Boost/commit-boost-client/blob/main/config.example.toml).
10
+
- For some additional examples on config presets, check out [here](https://github.com/Commit-Boost/commit-boost-client/tree/main/configs).
You can find a list of MEV-Boost Holesky relays [here](https://www.coincashew.com/coins/overview-eth/mev-boost/mev-relay-list#holesky-testnet-relays).
28
27
After the sidecar is started, it will expose a port (`18550` in this example), that you need to point your CL to. This may be different depending on which CL you're running, check out [here](https://docs.flashbots.net/flashbots-mev-boost/getting-started/system-requirements#consensus-client-configuration-guides) for a list of configuration guides.
29
28
30
-
Note that in this setup, the signer module will not be started.
29
+
:::note
30
+
In this setup, the signer module will not be started.
31
+
:::
31
32
32
33
## Signer module
33
34
@@ -131,6 +132,7 @@ We currently support Lighthouse, Prysm, Teku and Lodestar's keystores so it's ea
131
132
132
133
#### Config:
133
134
```toml
135
+
[signer]
134
136
[signer.local.loader]
135
137
format = "lodestar"
136
138
keys_path = "keys"
@@ -188,7 +190,7 @@ To persist proxy keys across restarts, you must enable the proxy store in the co
188
190
<details>
189
191
<summary>ERC2335</summary>
190
192
191
-
The keys are stored in a ERC-2335 style keystore, among with a password. This way, you can safely share the keys directory so without the password they are useless.
193
+
The keys are stored in a ERC-2335 style keystore, along with a password. This way, you can safely share the keys directory as without the password they are useless.
192
194
193
195
#### File structure
194
196
@@ -279,7 +281,7 @@ A few things to note:
279
281
To learn more about developing modules, check out [here](/category/developing).
280
282
281
283
## Vouch
282
-
[Vouch](https://github.com/attestantio/vouch) is a multi-node validator client built by [Attestant](https://www.attestant.io/). Vouch is particular in that it also integrates a MEV-Boost client to interact with relays. The Commit-Boost PBS module is compatible with the Vouch `blockrelay` since it implements the Builder-API, just like relays do. For example, depending on your setup and preference, you may want to fetch headers from a given relay using Commit-Boost vs using the built-in Vouch `blockrelay`.
284
+
[Vouch](https://github.com/attestantio/vouch) is a multi-node validator client built by [Attestant](https://www.attestant.io/). Vouch is particular in that it also integrates an MEV-Boost client to interact with relays. The Commit-Boost PBS module is compatible with the Vouch `blockrelay` since it implements the same Builder-API as relays. For example, depending on your setup and preference, you may want to fetch headers from a given relay using Commit-Boost vs using the built-in Vouch `blockrelay`.
283
285
284
286
### Configuration
285
287
Get familiar on how to set up Vouch [here](https://github.com/attestantio/vouch/blob/master/docs/getting_started.md).
@@ -302,7 +304,9 @@ In this setup, the BN Builder-API endpoint will be pointing to the PBS module (e
302
304
303
305
This will bypass the `blockrelay` entirely so make sure all relays are properly configured in the `[[relays]]` section.
304
306
305
-
**Note**: this approach could also work if you have a multi-beacon-node setup, where some BNs fetch directly via Commit-Boost while others go through the `blockrelay`.
307
+
:::note
308
+
This approach could also work if you have a multi-beacon-node setup, where some BNs fetch directly via Commit-Boost while others go through the `blockrelay`.
309
+
:::
306
310
307
311
### Notes
308
312
- It's up to you to decide which relays will be connected via Commit-Boost (`[[relays]]` section in the `toml` config) and which via Vouch (additional entries in the `relays` field). Remember that any rate-limit will be shared across the two sidecars, if running on the same machine.
Copy file name to clipboardExpand all lines: docs/docs/get_started/overview.md
+8-8Lines changed: 8 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,26 +8,26 @@ Commit-Boost is primarily based on [Docker](https://www.docker.com/) to enable m
8
8
9
9
Each component roughly maps to a container: from a single `.toml` config file, the node operator can specify which modules they want to run, and Commit-Boost takes care of spinning up the services and creating links between them.
10
10
Commit-Boost ships with two core modules:
11
-
-a PBS module which implements the [BuilderAPI](https://ethereum.github.io/builder-specs/) for [MEV Boost](https://docs.flashbots.net/flashbots-mev-boost/architecture-overview/specifications)
12
-
-a signer module, which implements the [Signer API](/api) and provides the interface for modules to request proposer commitments
11
+
-A PBS module which implements the [BuilderAPI](https://ethereum.github.io/builder-specs/) for [MEV Boost](https://docs.flashbots.net/flashbots-mev-boost/architecture-overview/specifications).
12
+
-A signer module, which implements the [Signer API](/api) and provides the interface for modules to request proposer commitments.
13
13
14
14
## Setup
15
15
16
16
The Commit-Boost CLI creates a dynamic `docker-compose` file, with services and ports already set up.
17
17
18
18
Whether you're using Docker or running the binaries natively, you can compile from source directly from the repo, or download binaries and fetch docker images from the official releases.
19
19
20
-
###Binaries and images
20
+
## Binaries and images
21
21
Find the latest releases at https://github.com/Commit-Boost/commit-boost-client/releases.
22
22
23
23
The modules are also published at [each release](https://github.com/orgs/Commit-Boost/packages?repo_name=commit-boost-client).
24
24
25
25
### From source
26
-
Requirements:
26
+
Requirements:
27
27
- Rust 1.80
28
28
29
29
:::note
30
-
run`rustup update` to update Rust and Cargo to the latest version
30
+
Run`rustup update` to update Rust and Cargo to the latest version
31
31
:::
32
32
33
33
```bash
@@ -42,7 +42,7 @@ git checkout stable
42
42
If you get an `openssl` related error try running: `apt-get update && apt-get install -y openssl ca-certificates libssl3 libssl-dev build-essential pkg-config`
43
43
:::
44
44
45
-
####Docker
45
+
### Docker
46
46
You will need to build the CLI to create the `docker-compose` file:
@@ -64,7 +64,7 @@ If you require `sudo` access to run Docker, you will need `sudo` to run some of
64
64
65
65
This will create two local images called `commitboost_pbs_default` and `commitboost_signer` for the Pbs and Signer module respectively. Make sure to use these images in the `docker_image` field in the `[pbs]` and `[signer]` sections of the `.toml` config file, respectively.
66
66
67
-
####Binaries
67
+
### Binaries
68
68
69
69
Alternatively, you can also build the modules from source and run them without Docker, in which case you can skip the CLI and only compile the modules:
Copy file name to clipboardExpand all lines: docs/docs/get_started/running/binary.md
+20-21Lines changed: 20 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ description: Run Commit-Boost modules natively
5
5
# Binary
6
6
7
7
:::warning
8
-
Running the modules natively means you opt out of the security guarantees made by Docker and it's up to you how to setup and ensure the modules run safely
8
+
Running the modules natively means you opt out of the security guarantees made by Docker and it's up to you how to setup and ensure the modules run safely.
9
9
:::
10
10
11
11
@@ -15,35 +15,34 @@ Get the binary of the module either by compiling from source or by downloading a
15
15
Modules need some environment variables to work correctly.
16
16
17
17
### Common
18
-
-`CB_CONFIG`: required, path to the `toml` config file
19
-
-`CHAIN_SPEC_ENV`: optional, path to a chain spec file. This will override the `[chain]` field in the `toml` config
20
-
-`CB_METRICS_PORT`: optional, port where to expose the `/metrics` endpoint for Prometheus
21
-
-`CB_LOGS_DIR`: optional, directory to store logs. This will override the directory in the `toml` config
18
+
-`CB_CONFIG`: required, path to the `.toml` config file.
19
+
-`CHAIN_SPEC_ENV`: optional, path to a chain spec file. This will override the `[chain]` field in the `.toml` config.
20
+
-`CB_METRICS_PORT`: optional, port where to expose the `/metrics` endpoint for Prometheus.
21
+
-`CB_LOGS_DIR`: optional, directory to store logs. This will override the directory in the `.toml` config.
22
22
23
23
### PBS Module
24
-
-`CB_BUILDER_URLS`: optional, comma-separated list of urls to `events` modules where to post builder events
25
-
-`CB_PBS_ENDPOINT`: optional, override the endpoint where the PBS module will open the port for the beacon node
26
-
-`CB_MUX_PATH_{ID}`: optional, override where to load mux validator keys for mux with id=\{ID\}
27
-
### Signer Module
28
-
-`CB_JWTS`: required, comma-separated list of `MODULE_ID=JWT` to process signature requests
29
-
-`CB_SIGNER_PORT`: required, port to open the signer server on
30
-
For loading keys we currently support:
31
-
- `CB_SIGNER_LOADER_FILE`: path to a `.json` with plaintext keys (for testing purposes only)
32
-
- `CB_SIGNER_LOADER_FORMAT`, `CB_SIGNER_LOADER_KEYS_DIR` and `CB_SIGNER_LOADER_SECRETS_DIR`: paths to the `keys` and `secrets` directories or files (ERC-2335 style keystores, see [Signer config](../configuration/#signer-module) for more info)
33
-
For storing proxy keys we currently support:
34
-
- `CB_PROXY_STORE_DIR`: directory where proxy keys and delegations will be saved in plaintext (for testing purposes only)
35
-
- `CB_PROXY_KEYS_DIR` and `CB_PROXY_SECRETS_DIR`: paths to the `keys` and `secrets` directories (ERC-2335 style keystores, see [Signer config](../configuration#proxy-keys-store) for more info)
24
+
-`CB_BUILDER_URLS`: optional, comma-separated list of urls to `events` modules where to post builder events.
25
+
-`CB_PBS_ENDPOINT`: optional, override the endpoint where the PBS module will open the port for the beacon node.
26
+
-`CB_MUX_PATH_{ID}`: optional, override where to load mux validator keys for mux with `id=\{ID\}`.
36
27
28
+
### Signer Module
29
+
-`CB_JWTS`: required, comma-separated list of `MODULE_ID=JWT` to process signature requests.
30
+
-`CB_SIGNER_PORT`: required, port to open the signer server on.
31
+
- For loading keys we currently support:
32
+
-`CB_SIGNER_LOADER_FILE`: path to a `.json` with plaintext keys (for testing purposes only).
33
+
-`CB_SIGNER_LOADER_FORMAT`, `CB_SIGNER_LOADER_KEYS_DIR` and `CB_SIGNER_LOADER_SECRETS_DIR`: paths to the `keys` and `secrets` directories or files (ERC-2335 style keystores, see [Signer config](../configuration/#signer-module) for more info).
34
+
- For storing proxy keys we currently support:
35
+
-`CB_PROXY_STORE_DIR`: directory where proxy keys and delegations will be saved in plaintext (for testing purposes only).
37
36
38
37
### Modules
39
-
-`CB_MODULE_ID`: required, unique id of the module
38
+
-`CB_MODULE_ID`: required, unique id of the module.
40
39
41
40
#### Commit modules
42
-
-`CB_SIGNER_URL`: required, url to the signer module server
43
-
-`CB_SIGNER_JWT`: required, jwt to use to for signature requests (needs to match what is in `CB_JWTS`)
41
+
-`CB_SIGNER_URL`: required, url to the signer module server.
42
+
-`CB_SIGNER_JWT`: required, jwt to use to for signature requests (needs to match what is in `CB_JWTS`).
44
43
45
44
#### Events modules
46
-
-`CB_BUILDER_PORT`: required, port to open to receive builder events from the PBS module
45
+
-`CB_BUILDER_PORT`: required, port to open to receive builder events from the PBS module.
47
46
48
47
Modules might also have additional envs required, which should be detailed by the maintainers.
Copy file name to clipboardExpand all lines: docs/docs/get_started/running/docker.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@ description: Run Commit-Boost with Docker
3
3
---
4
4
5
5
# Docker
6
-
The Commit-Boost CLI will generate a dynamic `docker-compose.yml` file using the provided `toml` config file. This is the recommended approach as Docker provides sandboxing of the containers from the rest of your system.
6
+
The Commit-Boost CLI will generate a dynamic `docker-compose.yml` file using the provided `.toml` config file. This is the recommended approach as Docker provides sandboxing of the containers from the rest of your system.
7
7
8
8
## Init
9
9
@@ -12,9 +12,9 @@ First run:
12
12
commit-boost-cli init --config cb-config.toml
13
13
```
14
14
This will create up to three files:
15
-
-`cb.docker-compose.yml`, which contains the full setup of the Commit-Boost services
16
-
-`.cb.env`, with local env variables, including JWTs for modules, only created if the signer module is enabled
17
-
-`target.json`, which enables dynamic discovery of services for metrics scraping via Prometheus, only created if metrics are enabled
15
+
-`cb.docker-compose.yml` which contains the full setup of the Commit-Boost services.
16
+
-`.cb.env` with local env variables, including JWTs for modules, only created if the signer module is enabled.
17
+
-`target.json` which enables dynamic discovery of services for metrics scraping via Prometheus, only created if metrics are enabled.
Copy file name to clipboardExpand all lines: docs/docs/intro.md
+17-2Lines changed: 17 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,6 +6,21 @@ slug: /
6
6
7
7
# Introduction
8
8
9
-

9
+
import CommitBoostLogo from '/img/logo.png';
10
+
import Overview from '/img/overview.png';
10
11
11
-
Due to the risks developing for Ethereum, core development, and its validators set, a group of teams / individuals are working on developing a public good called Commit-Boost. Commit-Boost is an open-source public good that is fully compatible with [MEV-Boost](https://github.com/flashbots/mev-boost), but acts as a light-weight validator platform to safely make commitments. Specifically, Commit-Boost is a new Ethereum validator sidecar focused on standardizing the last mile of communication between validators and third-party protocols. It's being developed in Rust from scratch, and has been designed with safety and modularity at its core, with the goal of not limiting the market downstream including stakeholders, flows, proposer commitments, enforcement mechanisms, etc.
Commit-Boost is a new Ethereum validator sidecar focused on standardizing the communication between validators and third-party protocols. This open-source public good is fully compatible with [MEV-Boost](https://github.com/flashbots/mev-boost) and acts as a light-weight platform to allow validators to safely make commitments.
18
+
19
+
Commit-Boost runs as a single sidecar composed of multiple modules:
Commit-Boost is being developed in Rust from scratch, and has been designed with safety and modularity at its core, with the goal of not limiting the market downstream including stakeholders, flows, proposer commitments, enforcement mechanisms, etc.
0 commit comments