From 9a41ffcf85bc761f58467b4b85039ba5c8ec7d10 Mon Sep 17 00:00:00 2001 From: Hamza Khalid Date: Fri, 16 Jan 2026 02:05:45 +0500 Subject: [PATCH 1/5] chore: increase committee finalization buffer --- crates/aggregator/src/committee_finalizer.rs | 2 +- crates/entrypoint/src/net/keypair/generate.rs | 6 ++++++ crates/net/src/net_interface.rs | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/crates/aggregator/src/committee_finalizer.rs b/crates/aggregator/src/committee_finalizer.rs index 069e8a3886..7a9f0e4704 100644 --- a/crates/aggregator/src/committee_finalizer.rs +++ b/crates/aggregator/src/committee_finalizer.rs @@ -62,7 +62,7 @@ impl Handler for CommitteeFinalizer { let e3_id = msg.e3_id.clone(); let submission_deadline = msg.submission_deadline; - const FINALIZATION_BUFFER_SECONDS: u64 = 1; + const FINALIZATION_BUFFER_SECONDS: u64 = 5; let e3_id_for_log = e3_id.clone(); let fut = async move { diff --git a/crates/entrypoint/src/net/keypair/generate.rs b/crates/entrypoint/src/net/keypair/generate.rs index 6b6a1650c9..f7df7e62f0 100644 --- a/crates/entrypoint/src/net/keypair/generate.rs +++ b/crates/entrypoint/src/net/keypair/generate.rs @@ -9,6 +9,7 @@ use e3_config::AppConfig; use e3_crypto::Cipher; use e3_net::NetRepositoryFactory; use libp2p::{identity::Keypair, PeerId}; +use tracing::warn; use zeroize::Zeroize; use crate::helpers::datastore::get_repositories; @@ -29,6 +30,11 @@ pub async fn execute(config: &AppConfig) -> Result { pub async fn autonetkey(config: &AppConfig) -> Result<()> { let repositories = get_repositories(config)?; if !repositories.libp2p_keypair().has().await { + warn!("Auto-generating network keypair because 'autonetkey: true' is set and no keypair exists."); + warn!("This will create a NEW peer identity. If your data directory is not persistent"); + warn!("(e.g., running in Docker without volumes), a new identity will be generated on each restart,"); + warn!("which will cause network connectivity issues with other peers."); + warn!("For production use, run 'enclave net keypair (generate)/(set --net-keypair )' once and ensure data persistence."); execute(config).await?; } Ok(()) diff --git a/crates/net/src/net_interface.rs b/crates/net/src/net_interface.rs index 67ada100f0..0542845827 100644 --- a/crates/net/src/net_interface.rs +++ b/crates/net/src/net_interface.rs @@ -247,7 +247,7 @@ async fn process_swarm_event( let error_str = format!("{}", error); if error_str.contains("Unexpected peer ID") { if let Some(expected_peer) = &peer_id { - info!("Removing stale peer {expected_peer} due to peer ID mismatch"); + debug!("Removing stale peer {expected_peer} due to peer ID mismatch"); swarm.behaviour_mut().kademlia.remove_peer(expected_peer); } } From 309bcf8f6c80c5451128024ea00bdb4082ad6108 Mon Sep 17 00:00:00 2001 From: Hamza Khalid Date: Fri, 16 Jan 2026 02:17:35 +0500 Subject: [PATCH 2/5] fix: check N instead of M when finalizing committee --- .../contracts/registry/CiphernodeRegistryOwnable.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/enclave-contracts/contracts/registry/CiphernodeRegistryOwnable.sol b/packages/enclave-contracts/contracts/registry/CiphernodeRegistryOwnable.sol index 33e995df4e..70dc6dc408 100644 --- a/packages/enclave-contracts/contracts/registry/CiphernodeRegistryOwnable.sol +++ b/packages/enclave-contracts/contracts/registry/CiphernodeRegistryOwnable.sol @@ -344,7 +344,7 @@ contract CiphernodeRegistryOwnable is ICiphernodeRegistry, OwnableUpgradeable { SubmissionWindowNotClosed() ); // TODO: Handle what happens if the threshold is not met. - require(c.topNodes.length >= c.threshold[0], ThresholdNotMet()); + require(c.topNodes.length >= c.threshold[1], ThresholdNotMet()); c.finalized = true; c.committee = c.topNodes; From f69bb157aeea9714a88179e8fca4d0397c391cbf Mon Sep 17 00:00:00 2001 From: Hamza Khalid Date: Fri, 16 Jan 2026 02:22:28 +0500 Subject: [PATCH 3/5] chore: upgrade contract --- packages/enclave-contracts/deployed_contracts.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/enclave-contracts/deployed_contracts.json b/packages/enclave-contracts/deployed_contracts.json index 1aab33cc13..bb782c5a49 100644 --- a/packages/enclave-contracts/deployed_contracts.json +++ b/packages/enclave-contracts/deployed_contracts.json @@ -1,7 +1,7 @@ { "sepolia": { "PoseidonT3": { - "blockNumber": 10043244, + "blockNumber": 10051709, "address": "0x3333333C0A88F9BE4fd23ed0536F9B6c427e3B93" }, "MockUSDC": { @@ -68,7 +68,7 @@ "initialOwner": "0x8837e47c4Bb520ADE83AAB761C3B60679443af1B", "proxyAddress": "0xae897dC011aBF249130257162E83dcf913e578cb", "proxyAdminAddress": "0xe74c560c9Fd4b37d9848fbbeDCdaC58f56c60a83", - "implementationAddress": "0x06dC26a63319De03C7146bF8b6e3370d7c253C71" + "implementationAddress": "0x077a3a9ef64CdA16BD6BeeD7674E60B76EeC14a3" }, "blockNumber": 10043251, "address": "0xae897dC011aBF249130257162E83dcf913e578cb" From 7eef1682749609aa9ccd08a436d09c198dbd4b73 Mon Sep 17 00:00:00 2001 From: Hamza Khalid Date: Sat, 17 Jan 2026 17:37:41 +0500 Subject: [PATCH 4/5] chore: remove separate tracing events --- crates/entrypoint/src/net/keypair/generate.rs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/crates/entrypoint/src/net/keypair/generate.rs b/crates/entrypoint/src/net/keypair/generate.rs index f7df7e62f0..512cfbcb3f 100644 --- a/crates/entrypoint/src/net/keypair/generate.rs +++ b/crates/entrypoint/src/net/keypair/generate.rs @@ -30,11 +30,13 @@ pub async fn execute(config: &AppConfig) -> Result { pub async fn autonetkey(config: &AppConfig) -> Result<()> { let repositories = get_repositories(config)?; if !repositories.libp2p_keypair().has().await { - warn!("Auto-generating network keypair because 'autonetkey: true' is set and no keypair exists."); - warn!("This will create a NEW peer identity. If your data directory is not persistent"); - warn!("(e.g., running in Docker without volumes), a new identity will be generated on each restart,"); - warn!("which will cause network connectivity issues with other peers."); - warn!("For production use, run 'enclave net keypair (generate)/(set --net-keypair )' once and ensure data persistence."); + warn!( + "Auto-generating network keypair because 'autonetkey: true' is set and no keypair exists. \ + This will create a NEW peer identity. If your data directory is not persistent \ + (e.g., running in Docker without volumes), a new identity will be generated on each restart, \ + which will cause network connectivity issues with other peers. \ + For production use, run 'enclave net keypair (generate)/(set --net-keypair )' once and ensure data persistence." + ); execute(config).await?; } Ok(()) From ca6e925958747ce5cc4d226a7db4ab2721e8d808 Mon Sep 17 00:00:00 2001 From: Hamza Khalid Date: Sat, 17 Jan 2026 19:53:20 +0500 Subject: [PATCH 5/5] fix: revert finalization buffer time --- crates/aggregator/src/committee_finalizer.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/aggregator/src/committee_finalizer.rs b/crates/aggregator/src/committee_finalizer.rs index 7a9f0e4704..069e8a3886 100644 --- a/crates/aggregator/src/committee_finalizer.rs +++ b/crates/aggregator/src/committee_finalizer.rs @@ -62,7 +62,7 @@ impl Handler for CommitteeFinalizer { let e3_id = msg.e3_id.clone(); let submission_deadline = msg.submission_deadline; - const FINALIZATION_BUFFER_SECONDS: u64 = 5; + const FINALIZATION_BUFFER_SECONDS: u64 = 1; let e3_id_for_log = e3_id.clone(); let fut = async move {