Skip to content

Commit d420d65

Browse files
authored
Docs update (#203)
* chore: docs update logo size, intro page and syntax highlights * chore: docs content standardization and fixes * chore: docs update overview image
1 parent a755d43 commit d420d65

File tree

13 files changed

+89
-70
lines changed

13 files changed

+89
-70
lines changed

docs/docs/developing/custom-modules.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
sidebar_position: 1
33
---
44
# 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.
66

77
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))
118

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)).

docs/docs/get_started/configuration.md

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,10 @@ description: Configure Commit-Boost
44

55
# Configuration
66

7-
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.
88

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).
1211

1312
## Minimal PBS setup on Holesky
1413
```toml
@@ -27,7 +26,9 @@ prometheus_config = "./docker/prometheus.yml"
2726
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).
2827
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.
2928

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+
:::
3132

3233
## Signer module
3334

@@ -131,6 +132,7 @@ We currently support Lighthouse, Prysm, Teku and Lodestar's keystores so it's ea
131132

132133
#### Config:
133134
```toml
135+
[signer]
134136
[signer.local.loader]
135137
format = "lodestar"
136138
keys_path = "keys"
@@ -188,7 +190,7 @@ To persist proxy keys across restarts, you must enable the proxy store in the co
188190
<details>
189191
<summary>ERC2335</summary>
190192

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.
192194

193195
#### File structure
194196

@@ -279,7 +281,7 @@ A few things to note:
279281
To learn more about developing modules, check out [here](/category/developing).
280282

281283
## 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`.
283285

284286
### Configuration
285287
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
302304

303305
This will bypass the `blockrelay` entirely so make sure all relays are properly configured in the `[[relays]]` section.
304306

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+
:::
306310

307311
### Notes
308312
- 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.

docs/docs/get_started/overview.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,26 +8,26 @@ Commit-Boost is primarily based on [Docker](https://www.docker.com/) to enable m
88

99
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.
1010
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.
1313

1414
## Setup
1515

1616
The Commit-Boost CLI creates a dynamic `docker-compose` file, with services and ports already set up.
1717

1818
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.
1919

20-
### Binaries and images
20+
## Binaries and images
2121
Find the latest releases at https://github.com/Commit-Boost/commit-boost-client/releases.
2222

2323
The modules are also published at [each release](https://github.com/orgs/Commit-Boost/packages?repo_name=commit-boost-client).
2424

2525
### From source
26-
Requirements:
26+
Requirements:
2727
- Rust 1.80
2828

2929
:::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
3131
:::
3232

3333
```bash
@@ -42,7 +42,7 @@ git checkout stable
4242
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`
4343
:::
4444

45-
#### Docker
45+
### Docker
4646
You will need to build the CLI to create the `docker-compose` file:
4747

4848
```bash
@@ -53,7 +53,7 @@ cargo build --release --bin commit-boost-cli
5353
./target/release/commit-boost-cli --version
5454
```
5555

56-
and the modules as Docker images
56+
and the modules as Docker images:
5757
```bash
5858
bash scripts/build_local_images.sh
5959
```
@@ -64,7 +64,7 @@ If you require `sudo` access to run Docker, you will need `sudo` to run some of
6464

6565
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.
6666

67-
#### Binaries
67+
### Binaries
6868

6969
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:
7070

docs/docs/get_started/running/binary.md

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ description: Run Commit-Boost modules natively
55
# Binary
66

77
:::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.
99
:::
1010

1111

@@ -15,35 +15,34 @@ Get the binary of the module either by compiling from source or by downloading a
1515
Modules need some environment variables to work correctly.
1616

1717
### 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.
2222

2323
### 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\}`.
3627

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).
3736

3837
### Modules
39-
- `CB_MODULE_ID`: required, unique id of the module
38+
- `CB_MODULE_ID`: required, unique id of the module.
4039

4140
#### 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`).
4443

4544
#### 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.
4746

4847
Modules might also have additional envs required, which should be detailed by the maintainers.
4948

docs/docs/get_started/running/docker.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ description: Run Commit-Boost with Docker
33
---
44

55
# 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.
77

88
## Init
99

@@ -12,9 +12,9 @@ First run:
1212
commit-boost-cli init --config cb-config.toml
1313
```
1414
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.
1818

1919
## Start
2020

docs/docs/intro.md

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,21 @@ slug: /
66

77
# Introduction
88

9-
![Commit Boost Logo](/img/logo.jpg)
9+
import CommitBoostLogo from '/img/logo.png';
10+
import Overview from '/img/overview.png';
1011

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.
12+
<img src={CommitBoostLogo} alt="Commit Boost Logo" style={{width: 500, borderRadius: '20px'}} />
13+
14+
<br/>
15+
<br/>
16+
17+
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:
20+
21+
<img src={Overview} alt="Commit Boost Overview" style={{width: 600, borderRadius: '20px'}} />
22+
23+
<br/>
24+
<br/>
25+
26+
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

Comments
 (0)