Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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: 2 additions & 2 deletions rs/consensus/dkg/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1625,7 +1625,7 @@ mod tests {
.with_chain_key_config(ChainKeyConfig {
key_configs: vec![KeyConfig {
key_id: MasterPublicKeyId::VetKd(key_id.clone()),
pre_signatures_to_create_in_advance: 0,
pre_signatures_to_create_in_advance: None,
max_queue_size: 20,
}],
signature_request_timeout_ns: None,
Expand Down Expand Up @@ -2117,7 +2117,7 @@ mod tests {
ChainKeyConfig {
key_configs: vec![KeyConfig {
key_id: MasterPublicKeyId::VetKd(test_vet_key()),
pre_signatures_to_create_in_advance: 0,
pre_signatures_to_create_in_advance: None,
max_queue_size: 20,
}],
signature_request_timeout_ns: None,
Expand Down
6 changes: 3 additions & 3 deletions rs/consensus/dkg/src/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -191,23 +191,23 @@ mod tests {
algorithm: SchnorrAlgorithm::Ed25519,
name: String::from("schnorr_key_to_ignore"),
}),
pre_signatures_to_create_in_advance: 50,
pre_signatures_to_create_in_advance: Some(50),
max_queue_size: 50,
},
KeyConfig {
key_id: MasterPublicKeyId::VetKd(VetKdKeyId {
curve: VetKdCurve::Bls12_381_G2,
name: String::from("first_vet_kd_key"),
}),
pre_signatures_to_create_in_advance: 0,
pre_signatures_to_create_in_advance: None,
max_queue_size: 50,
},
KeyConfig {
key_id: MasterPublicKeyId::VetKd(VetKdKeyId {
curve: VetKdCurve::Bls12_381_G2,
name: String::from("second_vet_kd_key"),
}),
pre_signatures_to_create_in_advance: 0,
pre_signatures_to_create_in_advance: None,
max_queue_size: 50,
},
],
Expand Down
8 changes: 4 additions & 4 deletions rs/consensus/idkg/src/payload_builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1010,7 +1010,7 @@ mod tests {
let chain_key_config = ChainKeyConfig {
key_configs: vec![KeyConfig {
key_id: key_id.clone().into(),
pre_signatures_to_create_in_advance: PRE_SIGNATURES_TO_CREATE_IN_ADVANCE,
pre_signatures_to_create_in_advance: Some(PRE_SIGNATURES_TO_CREATE_IN_ADVANCE),
max_queue_size: 1,
}],
..ChainKeyConfig::default()
Expand Down Expand Up @@ -2355,7 +2355,7 @@ mod tests {
let chain_key_config = ChainKeyConfig {
key_configs: vec![KeyConfig {
key_id: key_id.clone().into(),
pre_signatures_to_create_in_advance: 1,
pre_signatures_to_create_in_advance: Some(1),
max_queue_size: 1,
}],
signature_request_timeout_ns: Some(100000),
Expand Down Expand Up @@ -2458,7 +2458,7 @@ mod tests {
let chain_key_config = ChainKeyConfig {
key_configs: vec![KeyConfig {
key_id: key_id.clone().into(),
pre_signatures_to_create_in_advance: 1,
pre_signatures_to_create_in_advance: Some(1),
max_queue_size: 1,
}],
signature_request_timeout_ns: Some(100000),
Expand Down Expand Up @@ -2617,7 +2617,7 @@ mod tests {
let chain_key_config = ChainKeyConfig {
key_configs: vec![KeyConfig {
key_id: key_id.clone().into(),
pre_signatures_to_create_in_advance: 1,
pre_signatures_to_create_in_advance: Some(1),
max_queue_size: 1,
}],
signature_request_timeout_ns: Some(100000),
Expand Down
18 changes: 13 additions & 5 deletions rs/consensus/idkg/src/payload_builder/pre_signatures.rs
Original file line number Diff line number Diff line change
Expand Up @@ -356,7 +356,11 @@ fn make_new_pre_signatures_if_needed_helper(
.key_configs
.iter()
.find(|key_config| &key_config.key_id == key_id.inner())
.map(|key_config| key_config.pre_signatures_to_create_in_advance as usize)
.map(|key_config| {
key_config
.pre_signatures_to_create_in_advance
.unwrap_or_default() as usize
})
else {
return new_pre_signatures;
};
Expand Down Expand Up @@ -592,7 +596,11 @@ pub(super) fn make_new_pre_signatures_by_priority(
};
let max_stash_size = chain_key_config
.key_config(key_id.inner())
.map(|config| config.pre_signatures_to_create_in_advance)
.map(|config| {
config
.pre_signatures_to_create_in_advance
.unwrap_or_default()
})
.unwrap_or_default();
priority_queue.push(PrioritizedStash {
count: *total_pre_signatures.get(key_id).unwrap_or(&0),
Expand Down Expand Up @@ -1107,7 +1115,7 @@ pub(super) mod tests {
.into_iter()
.map(|(key_id, max)| KeyConfig {
key_id: key_id.inner().clone(),
pre_signatures_to_create_in_advance: max as u32,
pre_signatures_to_create_in_advance: Some(max as u32),
max_queue_size: 20,
})
.collect(),
Expand Down Expand Up @@ -1417,7 +1425,7 @@ pub(super) mod tests {
let chain_key_config = ChainKeyConfig {
key_configs: vec![KeyConfig {
key_id: key_id.clone().into(),
pre_signatures_to_create_in_advance,
pre_signatures_to_create_in_advance: Some(pre_signatures_to_create_in_advance),
max_queue_size: 1,
}],
..ChainKeyConfig::default()
Expand Down Expand Up @@ -1483,7 +1491,7 @@ pub(super) mod tests {
let chain_key_config = ChainKeyConfig {
key_configs: vec![KeyConfig {
key_id: key_id.clone().into(),
pre_signatures_to_create_in_advance,
pre_signatures_to_create_in_advance: Some(pre_signatures_to_create_in_advance),
max_queue_size: 1,
}],
..ChainKeyConfig::default()
Expand Down
15 changes: 10 additions & 5 deletions rs/consensus/idkg/src/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -434,7 +434,12 @@ pub fn get_idkg_chain_key_config_if_enabled(
// Skip keys that don't need to run IDKG protocol
.filter(|key_config| key_config.key_id.is_idkg_key())
// A key that has `presignatures_to_create_in_advance` set to 0 is not active
.filter(|key_config| key_config.pre_signatures_to_create_in_advance != 0)
.filter(|key_config| {
key_config
.pre_signatures_to_create_in_advance
.unwrap_or_default()
!= 0
})
.count();

if num_active_key_ids == 0 {
Expand Down Expand Up @@ -833,7 +838,7 @@ mod tests {
key_id: MasterPublicKeyId::Ecdsa(
EcdsaKeyId::from_str("Secp256k1:some_key").unwrap(),
),
pre_signatures_to_create_in_advance: 1,
pre_signatures_to_create_in_advance: Some(1),
max_queue_size: 3,
}],
..ChainKeyConfig::default()
Expand All @@ -857,14 +862,14 @@ mod tests {
key_id: MasterPublicKeyId::Ecdsa(
EcdsaKeyId::from_str("Secp256k1:some_key_1").unwrap(),
),
pre_signatures_to_create_in_advance: 1,
pre_signatures_to_create_in_advance: Some(1),
max_queue_size: 3,
};
let key_config_2 = KeyConfig {
key_id: MasterPublicKeyId::Schnorr(
SchnorrKeyId::from_str("Ed25519:some_key_2").unwrap(),
),
pre_signatures_to_create_in_advance: 1,
pre_signatures_to_create_in_advance: Some(1),
max_queue_size: 3,
};

Expand Down Expand Up @@ -898,7 +903,7 @@ mod tests {
key_id: MasterPublicKeyId::Ecdsa(
EcdsaKeyId::from_str("Secp256k1:some_key").unwrap(),
),
pre_signatures_to_create_in_advance: 0,
pre_signatures_to_create_in_advance: Some(0),
max_queue_size: 3,
}],
..ChainKeyConfig::default()
Expand Down
8 changes: 3 additions & 5 deletions rs/consensus/tests/framework/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -71,11 +71,9 @@ pub fn setup_subnet<R: Rng + CryptoRng>(
.iter()
.map(|key_id| KeyConfig {
key_id: key_id.clone(),
pre_signatures_to_create_in_advance: if key_id.requires_pre_signatures() {
4
} else {
0
},
pre_signatures_to_create_in_advance: key_id
.requires_pre_signatures()
.then_some(4),
max_queue_size: 40,
})
.collect(),
Expand Down
2 changes: 1 addition & 1 deletion rs/consensus/vetkd/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1060,7 +1060,7 @@ mod tests {
key_id: MasterPublicKeyId::VetKd(
VetKdKeyId::from_str("bls12_381_g2:unused_key").unwrap(),
),
pre_signatures_to_create_in_advance: 0,
pre_signatures_to_create_in_advance: None,
max_queue_size: 3,
}],
..ChainKeyConfig::default()
Expand Down
6 changes: 3 additions & 3 deletions rs/consensus/vetkd/src/test_utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -82,19 +82,19 @@ pub(super) fn as_past_payload(payload: &[u8]) -> PastPayload<'_> {
pub(super) fn make_chain_key_config() -> ChainKeyConfig {
let key_config = KeyConfig {
key_id: MasterPublicKeyId::Ecdsa(EcdsaKeyId::from_str("Secp256k1:some_key_1").unwrap()),
pre_signatures_to_create_in_advance: 1,
pre_signatures_to_create_in_advance: Some(1),
max_queue_size: 3,
};
let key_config_1 = KeyConfig {
key_id: MasterPublicKeyId::VetKd(VetKdKeyId::from_str("bls12_381_g2:some_key").unwrap()),
pre_signatures_to_create_in_advance: 0,
pre_signatures_to_create_in_advance: None,
max_queue_size: 3,
};
let key_config_2 = KeyConfig {
key_id: MasterPublicKeyId::VetKd(
VetKdKeyId::from_str("bls12_381_g2:some_other_key").unwrap(),
),
pre_signatures_to_create_in_advance: 0,
pre_signatures_to_create_in_advance: None,
max_queue_size: 3,
};

Expand Down
4 changes: 3 additions & 1 deletion rs/execution_environment/src/scheduler/test_utilities.rs
Original file line number Diff line number Diff line change
Expand Up @@ -868,7 +868,9 @@ impl SchedulerTestBuilder {
key_id.clone(),
ChainKeySettings {
max_queue_size: 20,
pre_signatures_to_create_in_advance: 5,
pre_signatures_to_create_in_advance: key_id
.requires_pre_signatures()
.then_some(5),
},
);
}
Expand Down
16 changes: 13 additions & 3 deletions rs/execution_environment/src/scheduler/threshold_signatures.rs
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,11 @@ pub(crate) fn update_signature_request_contexts(
let max_stash_size = registry_settings
.chain_key_settings
.get(&key_id)
.map(|setting| setting.pre_signatures_to_create_in_advance)
.map(|setting| {
setting
.pre_signatures_to_create_in_advance
.unwrap_or_default()
})
.unwrap_or_default() as usize;
let exceeding = stash.pre_signatures.len().saturating_sub(max_stash_size);
if exceeding > 0 {
Expand Down Expand Up @@ -127,7 +131,11 @@ pub(crate) fn update_signature_request_contexts(
let max_ongoing_signatures = registry_settings
.chain_key_settings
.get(&key_id)
.map(|setting| setting.pre_signatures_to_create_in_advance)
.map(|setting| {
setting
.pre_signatures_to_create_in_advance
.unwrap_or_default()
})
.unwrap_or_default() as usize;

match_delivered_pre_signatures_by_key_id(
Expand Down Expand Up @@ -633,7 +641,9 @@ mod tests {
.map(|key_id| {
let settings = ChainKeySettings {
max_queue_size: 20,
pre_signatures_to_create_in_advance: max_stash_size,
pre_signatures_to_create_in_advance: key_id
.requires_pre_signatures()
.then_some(max_stash_size),
};
(key_id.inner().clone(), settings)
})
Expand Down
2 changes: 1 addition & 1 deletion rs/interfaces/src/execution_environment.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1462,7 +1462,7 @@ pub struct RegistryExecutionSettings {
#[derive(Clone, Eq, PartialEq, Debug)]
pub struct ChainKeySettings {
pub max_queue_size: u32,
pub pre_signatures_to_create_in_advance: u32,
pub pre_signatures_to_create_in_advance: Option<u32>,
}

pub trait Scheduler: Send {
Expand Down
8 changes: 4 additions & 4 deletions rs/messaging/src/message_routing/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -734,15 +734,15 @@ fn try_read_registry_succeeds_with_fully_specified_registry_records() {
curve: EcdsaCurve::Secp256k1,
name: "ecdsa key 1".to_string(),
}),
pre_signatures_to_create_in_advance: 891,
pre_signatures_to_create_in_advance: Some(891),
max_queue_size: 891,
},
KeyConfig {
key_id: MasterPublicKeyId::Ecdsa(EcdsaKeyId {
curve: EcdsaCurve::Secp256k1,
name: "ecdsa key 2".to_string(),
}),
pre_signatures_to_create_in_advance: 891,
pre_signatures_to_create_in_advance: Some(891),
max_queue_size: 891,
},
],
Expand Down Expand Up @@ -1701,15 +1701,15 @@ fn process_batch_updates_subnet_metrics() {
name: "ecdsa key 1".to_string(),
}),
max_queue_size: 891,
pre_signatures_to_create_in_advance: 891,
pre_signatures_to_create_in_advance: Some(891),
},
KeyConfig {
key_id: MasterPublicKeyId::Ecdsa(EcdsaKeyId {
curve: EcdsaCurve::Secp256k1,
name: "ecdsa key 2".to_string(),
}),
max_queue_size: 891,
pre_signatures_to_create_in_advance: 891,
pre_signatures_to_create_in_advance: Some(891),
},
],
..Default::default()
Expand Down
22 changes: 15 additions & 7 deletions rs/recovery/src/admin_helper.rs
Original file line number Diff line number Diff line change
Expand Up @@ -182,9 +182,17 @@ impl AdminHelper {
.map(|key_config| KeyConfigRequest {
subnet_id,
key_id: key_config.key_id.to_string(),
pre_signatures_to_create_in_advance: key_config
.pre_signatures_to_create_in_advance
.to_string(),
pre_signatures_to_create_in_advance: if key_config
.key_id
.requires_pre_signatures()
{
key_config
.pre_signatures_to_create_in_advance
.unwrap_or_default()
.to_string()
} else {
"".to_string()
},
max_queue_size: key_config.max_queue_size.to_string(),
})
.collect::<Vec<_>>();
Expand Down Expand Up @@ -467,23 +475,23 @@ mod tests {
curve: EcdsaCurve::Secp256k1,
name: "test_key_1".to_string(),
}),
pre_signatures_to_create_in_advance: 77,
pre_signatures_to_create_in_advance: Some(77),
max_queue_size: 30,
},
KeyConfig {
key_id: MasterPublicKeyId::Schnorr(SchnorrKeyId {
algorithm: SchnorrAlgorithm::Bip340Secp256k1,
name: "test_key_2".to_string(),
}),
pre_signatures_to_create_in_advance: 12,
pre_signatures_to_create_in_advance: Some(12),
max_queue_size: 32,
},
KeyConfig {
key_id: MasterPublicKeyId::VetKd(VetKdKeyId {
curve: VetKdCurve::Bls12_381_G2,
name: "test_key_3".to_string(),
}),
pre_signatures_to_create_in_advance: 0,
pre_signatures_to_create_in_advance: None,
max_queue_size: 32,
},
],
Expand Down Expand Up @@ -523,7 +531,7 @@ mod tests {
--initial-chain-key-configs-to-request '[\
{\"subnet_id\":\"mklno-zzmhy-zutel-oujwg-dzcli-h6nfy-2serg-gnwru-vuwck-hcxit-wqe\",\"key_id\":\"ecdsa:Secp256k1:test_key_1\",\"pre_signatures_to_create_in_advance\":\"77\",\"max_queue_size\":\"30\"},\
{\"subnet_id\":\"mklno-zzmhy-zutel-oujwg-dzcli-h6nfy-2serg-gnwru-vuwck-hcxit-wqe\",\"key_id\":\"schnorr:Bip340Secp256k1:test_key_2\",\"pre_signatures_to_create_in_advance\":\"12\",\"max_queue_size\":\"32\"},\
{\"subnet_id\":\"mklno-zzmhy-zutel-oujwg-dzcli-h6nfy-2serg-gnwru-vuwck-hcxit-wqe\",\"key_id\":\"vetkd:Bls12_381_G2:test_key_3\",\"pre_signatures_to_create_in_advance\":\"0\",\"max_queue_size\":\"32\"}]' \
{\"subnet_id\":\"mklno-zzmhy-zutel-oujwg-dzcli-h6nfy-2serg-gnwru-vuwck-hcxit-wqe\",\"key_id\":\"vetkd:Bls12_381_G2:test_key_3\",\"max_queue_size\":\"32\"}]' \
--idkg-key-rotation-period-ms 321654 \
--signature-request-timeout-ns 123456 \
--max-parallel-pre-signature-transcripts-in-creation 123654 \
Expand Down
Loading
Loading