Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
5d34729
feat: implement dkg/frostp2p
iamquang95 May 4, 2026
43da145
Merge remote-tracking branch 'origin/main' into iamquang95/frostp2p
iamquang95 May 4, 2026
c932981
fix: await bcast
iamquang95 May 5, 2026
8df2590
fix: using p2p_context to track connections
iamquang95 May 5, 2026
24cd07e
fix: handle cancel in frostp2p sender
iamquang95 May 5, 2026
4c28223
fix: only spawn handler for known peers
iamquang95 May 5, 2026
6fb6540
fix: add checks on peers
iamquang95 May 5, 2026
8677c7c
fix: address comments
iamquang95 May 5, 2026
b69f052
fix: ignore malformed inbound p2p
iamquang95 May 5, 2026
4811280
fix: inbound_tx capped at peer size
iamquang95 May 5, 2026
b4a2cb5
doc: add documentation for frostp2p
iamquang95 May 5, 2026
d798a8c
fix: better error types
iamquang95 May 5, 2026
bbf26c4
fix: filter out cancelled peer on Dial
iamquang95 May 5, 2026
4d04944
Merge remote-tracking branch 'origin/main' into iamquang95/frostp2p
iamquang95 May 5, 2026
dfc318b
fix: linter
iamquang95 May 5, 2026
2801210
feat: add setup p2p
varex83 May 5, 2026
0048a65
feat: dkg
varex83 May 5, 2026
6183c88
feat: add more logs and fix runner
varex83 May 5, 2026
71568f9
fix: proto bug
varex83 May 5, 2026
662f32d
feat: add matrix tests for dkg
varex83 May 5, 2026
5a59c22
fix: address review comments
varex83 May 6, 2026
1bc77c9
fix: warnings, remove some logs
varex83 May 6, 2026
c8705c8
Merge remote-tracking branch 'origin/main' into bohdan/dkg
varex83 May 7, 2026
59f3f8a
fix: linter
varex83 May 7, 2026
fc578ca
fix: remove 4 charon nodes from the CI
varex83 May 7, 2026
457d66c
fix: sync issue at the end of dkg example (#377)
iamquang95 May 7, 2026
92b6849
feat: add dkg-stress tool
varex83 May 8, 2026
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
13 changes: 8 additions & 5 deletions .github/workflows/dkg-runner.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,14 @@ jobs:
fail-fast: false
matrix:
include:
- name: 4 Charon nodes
id: 4-charon
pluto_nodes: 0
charon_nodes: 4

- name: 2 Charon + 2 Pluto nodes
id: 2-charon-2-pluto
pluto_nodes: 2
charon_nodes: 2
- name: 4 Pluto nodes
id: 4-pluto
pluto_nodes: 4
charon_nodes: 0
steps:
- name: Checkout
uses: actions/checkout@v6
Expand Down
1 change: 1 addition & 0 deletions Cargo.lock

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

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ members = [
"crates/peerinfo",
"crates/frost",
]
exclude = ["tools/dkg-stress"]
resolver = "3"

[workspace.package]
Expand Down
23 changes: 21 additions & 2 deletions crates/cli/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,31 @@ async fn run() -> std::result::Result<(), CliError> {
let matches = cmd.get_matches();
let cli = Cli::from_arg_matches(&matches)?;

// Top level cancellation token for graceful shutdown on Ctrl+C
// Top level cancellation token for graceful shutdown on Ctrl+C / SIGTERM.
let ct = CancellationToken::new();
tokio::spawn({
let ct = ct.clone();
async move {
let _ = tokio::signal::ctrl_c().await;
#[cfg(unix)]
{
use tokio::signal::unix::{SignalKind, signal};
let mut sigterm = match signal(SignalKind::terminate()) {
Ok(s) => s,
Err(_) => {
let _ = tokio::signal::ctrl_c().await;
ct.cancel();
return;
}
};
tokio::select! {
_ = tokio::signal::ctrl_c() => {}
_ = sigterm.recv() => {}
}
}
#[cfg(not(unix))]
{
let _ = tokio::signal::ctrl_c().await;
}
ct.cancel();
}
});
Expand Down
2 changes: 1 addition & 1 deletion crates/cluster/src/definition.rs
Original file line number Diff line number Diff line change
Expand Up @@ -767,7 +767,7 @@ impl Definition {

/// Returns true if the provided definition version supports partial
/// deposits.
fn support_partial_deposits(version: &str) -> bool {
pub fn support_partial_deposits(version: &str) -> bool {
!matches!(
version,
V1_0 | V1_1 | V1_2 | V1_3 | V1_4 | V1_5 | V1_6 | V1_7
Expand Down
1 change: 1 addition & 0 deletions crates/dkg/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ pluto-eth2api.workspace = true
pluto-eth1wrap.workspace = true
pluto-eth2util.workspace = true
pluto-parsigex.workspace = true
pluto-peerinfo.workspace = true
pluto-frost.workspace = true
async-trait.workspace = true
pluto-tracing.workspace = true
Expand Down
4 changes: 4 additions & 0 deletions crates/dkg/src/bcast/error.rs
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,10 @@ pub enum Error {
#[error("missing protobuf field: {0}")]
MissingField(&'static str),

/// A typed broadcast message failed protocol-specific validation.
#[error("invalid message: {0}")]
InvalidMessage(&'static str),

/// Protobuf encoding failed.
#[error("protobuf encode failed: {0}")]
Encode(#[from] prost::EncodeError),
Expand Down
2 changes: 1 addition & 1 deletion crates/dkg/src/disk.rs
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ pub async fn load_definition(
if conf.no_verify {
warn!(
error = %error,
"Ignoring failed cluster definition signatures verification due to --no-verify flag"
"Ignoring failed cluster definition signature verification due to --no-verify flag"
);
} else {
return Err(DiskError::ClusterDefinitionError(error));
Expand Down
Loading
Loading