Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
bad5b08
Update to v0.9.1 (#398)
jclapis Nov 4, 2025
3e4a7da
Changed get_accept_type() to allow multiple types
jclapis Nov 4, 2025
29398f6
Update to v0.9.2 (#400)
jclapis Nov 5, 2025
7ab1f7e
get_header()'s impl now works with multiple types
jclapis Nov 6, 2025
bfbcfe4
Added retry-different-accept-types thing to get_header
jclapis Nov 7, 2025
adfec62
Refactored and added some unit tests
jclapis Nov 10, 2025
b22eed8
Added explicit lowercase matching to EncodingType
jclapis Nov 10, 2025
0155533
Added the Fulu fork slot for Mainnet
jclapis Nov 10, 2025
a975048
Merge branch 'update-fulu-slot' into ssz-update-v2
jclapis Nov 10, 2025
3ad487b
Added the Fulu fork slot for Mainnet (#402)
jclapis Nov 10, 2025
d64adbb
Merge branch 'main' into ssz-update-v2
jclapis Nov 10, 2025
8ebfbd0
Cleaned up some error handling
jclapis Nov 10, 2025
2499bd5
Made some strings static
jclapis Nov 10, 2025
41d879e
PbsClientError can noe be created from BodyDeserializeError
jclapis Nov 10, 2025
42b8060
Fix clippy
jclapis Nov 11, 2025
a9680f7
Removed consensus-version-header from submit_block response
jclapis Nov 11, 2025
d7bde7f
Added multi-type support to submit_block
jclapis Nov 11, 2025
ad3f019
Updated the mock relay with multi-type support on submit_block
jclapis Nov 11, 2025
7dba8d1
Support lido modules (#392)
PedroCM96 Nov 11, 2025
aaa0967
Updated the submit_block unit tests
jclapis Nov 11, 2025
83ca8f8
Added more multitype tests to submit_block, not done yet though
jclapis Nov 12, 2025
d36ef3b
Switched relay response handling to switch to JSON on any 4xx
jclapis Nov 17, 2025
1c24fb1
clarify timing games config (#411)
ltitanb Nov 26, 2025
e089e7d
Allow builds from other branches (#414)
jclapis Dec 1, 2025
ee25871
Add --version support (#408)
jclapis Dec 8, 2025
58b63db
Merge branch 'main' into ssz-update-v2
jclapis Dec 9, 2025
d2b8226
Optimized get_header
jclapis Dec 10, 2025
fcd7425
Some refactoring of send_get_header_impl to process the payload
jclapis Dec 10, 2025
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
4 changes: 0 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ jobs:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: "stable"
fetch-depth: 0
submodules: true

Expand Down Expand Up @@ -108,7 +107,6 @@ jobs:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: "stable"
fetch-depth: 0
submodules: true

Expand Down Expand Up @@ -168,7 +166,6 @@ jobs:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: "stable"
fetch-depth: 0
submodules: true

Expand Down Expand Up @@ -221,7 +218,6 @@ jobs:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: "stable"
fetch-depth: 0
submodules: true

Expand Down
22 changes: 12 additions & 10 deletions Cargo.lock

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

4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ resolver = "2"
[workspace.package]
edition = "2024"
rust-version = "1.89"
version = "0.9.0"
version = "0.9.2"

[workspace.dependencies]
aes = "0.8"
Expand Down Expand Up @@ -33,7 +33,7 @@ cb-metrics = { path = "crates/metrics" }
cb-pbs = { path = "crates/pbs" }
cb-signer = { path = "crates/signer" }
cipher = "0.4"
clap = { version = "4.5.4", features = ["derive", "env"] }
clap = { version = "4.5.48", features = ["derive", "env"] }
color-eyre = "0.6.3"
ctr = "0.9.2"
derive_more = { version = "2.0.1", features = ["deref", "display", "from", "into"] }
Expand Down
12 changes: 12 additions & 0 deletions bin/cli.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,20 @@
use clap::Parser;

/// Version string with a leading 'v'
const VERSION: &str = concat!("v", env!("CARGO_PKG_VERSION"));

/// Subcommands and global arguments for the module
#[derive(Parser, Debug)]
#[command(name = "Commit-Boost CLI", version = VERSION, about, long_about = None)]
struct Cli {}

/// Main entry point of the Commit-Boost CLI
#[tokio::main]
async fn main() -> eyre::Result<()> {
// Parse the CLI arguments (currently only used for version info, more can be
// added later)
let _cli = Cli::parse();

color_eyre::install()?;
// set default backtrace unless provided

Expand Down
12 changes: 12 additions & 0 deletions bin/pbs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,20 @@ use clap::Parser;
use eyre::Result;
use tracing::{error, info};

/// Version string with a leading 'v'
const VERSION: &str = concat!("v", env!("CARGO_PKG_VERSION"));

/// Subcommands and global arguments for the module
#[derive(Parser, Debug)]
#[command(name = "Commit-Boost PBS Service", version = VERSION, about, long_about = None)]
struct Cli {}

#[tokio::main]
async fn main() -> Result<()> {
// Parse the CLI arguments (currently only used for version info, more can be
// added later)
let _cli = Cli::parse();

color_eyre::install()?;

let _guard = initialize_tracing_log(PBS_MODULE_NAME, LogsSettings::from_env_config()?);
Expand Down
12 changes: 12 additions & 0 deletions bin/signer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,20 @@ use clap::Parser;
use eyre::Result;
use tracing::{error, info};

/// Version string with a leading 'v'
const VERSION: &str = concat!("v", env!("CARGO_PKG_VERSION"));

/// Subcommands and global arguments for the module
#[derive(Parser, Debug)]
#[command(name = "Commit-Boost Signer Service", version = VERSION, about, long_about = None)]
struct Cli {}

#[tokio::main]
async fn main() -> Result<()> {
// Parse the CLI arguments (currently only used for version info, more can be
// added later)
let _cli = Cli::parse();

color_eyre::install()?;

let _guard = initialize_tracing_log(SIGNER_MODULE_NAME, LogsSettings::from_env_config()?);
Expand Down
4 changes: 3 additions & 1 deletion config.example.toml
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,8 @@ headers = { X-MyCustomHeader = "MyCustomValue" }
# OPTIONAL
get_params = { param1 = "value1", param2 = "value2" }
# Whether to enable timing games, as tuned by `target_first_request_ms` and `frequency_get_header_ms`.
# NOTE: if neither `target_first_request_ms` nor `frequency_get_header_ms` is set, this flag has no effect.
#
# These values should be carefully chosen for each relay, as each relay has different latency and timing games setups.
# They should only be used by advanced users, and if mis-configured can result in unforeseen effects, e.g. fetching a lower header value,
# or getting a temporary IP ban.
Expand Down Expand Up @@ -150,7 +152,7 @@ validator_pubkeys = [
# OPTIONAL
loader = "./tests/data/mux_keys.example.json"
# loader = { url = "http://localhost:8000/keys" }
# loader = { registry = "lido", node_operator_id = 8, enable_refreshing = false }
# loader = { registry = "lido", node_operator_id = 8, lido_module_id = 1, enable_refreshing = false }
# loader = { registry = "ssv", node_operator_id = 8, enable_refreshing = false }
late_in_slot_time_ms = 1500
timeout_get_header_ms = 900
Expand Down
1 change: 1 addition & 0 deletions crates/common/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ eyre.workspace = true
futures.workspace = true
headers-accept.workspace = true
jsonwebtoken.workspace = true
lazy_static.workspace = true
lh_eth2.workspace = true
lh_eth2_keystore.workspace = true
lh_types.workspace = true
Expand Down
37 changes: 37 additions & 0 deletions crates/common/src/abi/LidoCSModuleNORegistry.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
[
{
"constant": true,
"inputs": [
{ "name": "nodeOperatorId", "type": "uint256" }
],
"name": "getNodeOperatorSummary",
"outputs": [
{ "name": "targetLimitMode", "type": "uint256" },
{ "name": "targetValidatorsCount", "type": "uint256" },
{ "name": "stuckValidatorsCount", "type": "uint256" },
{ "name": "refundedValidatorsCount", "type": "uint256" },
{ "name": "stuckPenaltyEndTimestamp", "type": "uint256" },
{ "name": "totalExitedValidators", "type": "uint256" },
{ "name": "totalDepositedValidators", "type": "uint256" },
{ "name": "depositableValidatorsCount", "type": "uint256" }
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{ "name": "nodeOperatorId", "type": "uint256" },
{ "name": "startIndex", "type": "uint256" },
{ "name": "keysCount", "type": "uint256" }
],
"name": "getSigningKeys",
"outputs": [
{ "name": "", "type": "bytes" }
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
]
Loading
Loading