Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Handle Provisioning Certification Keys (PCKs) #1051

Merged
merged 30 commits into from
Sep 25, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
eb39792
Add PCK to server info
ameba23 Sep 13, 2024
664c1fc
Add PCK to chainspec
ameba23 Sep 17, 2024
96453a3
Update chainspec genesis config to include PCKs for all TSSs
ameba23 Sep 17, 2024
d5fffa5
Add sp-runtime to wasm deps of entropy-shared
ameba23 Sep 17, 2024
1a7759c
Bump tdx-quote, check PCK signature when verifying quotes
ameba23 Sep 17, 2024
d74f85a
Update benchmarks
ameba23 Sep 17, 2024
e3ad7fb
When mocking, derive PCK from TSS account id
ameba23 Sep 17, 2024
f02c7c5
Get boundedvec from sp-core, not sp-runtime
ameba23 Sep 17, 2024
f70315c
Ignore BoundedVec type when compiling for wasm with std
ameba23 Sep 17, 2024
2f86ec8
Update propagation pallet mock
ameba23 Sep 17, 2024
5741385
Update attestation pallet mock
ameba23 Sep 17, 2024
5cd50e4
Add helpers for deriving mock pcks
ameba23 Sep 17, 2024
32e0249
Add actual PCK values to chainspec
ameba23 Sep 17, 2024
9b2384c
Rm unused import
ameba23 Sep 17, 2024
101c622
Update registry tests
ameba23 Sep 17, 2024
52c4236
Update metadata
ameba23 Sep 18, 2024
6c4e549
Comments
ameba23 Sep 18, 2024
030ac41
Fix client test
ameba23 Sep 18, 2024
2f7aa2d
Add random secret PCK to attestation pallet benchmark test
ameba23 Sep 18, 2024
e069b64
Fix attestation benchmark
ameba23 Sep 18, 2024
e8f317c
Fix attestation benchmark again
ameba23 Sep 18, 2024
0272c72
Update attestation pallet test
ameba23 Sep 18, 2024
5058327
Fix attestation pallet mock/bench
ameba23 Sep 18, 2024
1daae2c
Fix entropy-client test
ameba23 Sep 18, 2024
e6c5f08
Fix client test
ameba23 Sep 19, 2024
fed5e20
Fix client test
ameba23 Sep 19, 2024
84b4cfa
Merge master and update metadata
ameba23 Sep 19, 2024
09bc7f2
Changelog
ameba23 Sep 19, 2024
19a0b08
Merge master and update metadata
ameba23 Sep 20, 2024
47579ef
Rm unused dependency from staking pallet
ameba23 Sep 25, 2024
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
Prev Previous commit
Next Next commit
Update chainspec genesis config to include PCKs for all TSSs
  • Loading branch information
ameba23 committed Sep 17, 2024
commit 96453a3b2ca8bbd8cc0af000026794e58bc15f02
37 changes: 21 additions & 16 deletions node/cli/src/chain_spec/dev.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ use entropy_runtime::{
};
use entropy_runtime::{AccountId, Balance};
use entropy_shared::{
EncodedVerifyingKey, X25519PublicKey as TssX25519PublicKey, DEVICE_KEY_AUX_DATA_TYPE,
BoundedVecEncodedVerifyingKey, X25519PublicKey as TssX25519PublicKey, DEVICE_KEY_AUX_DATA_TYPE,
DEVICE_KEY_CONFIG_TYPE, DEVICE_KEY_HASH, DEVICE_KEY_PROXY,
INITIAL_MAX_INSTRUCTIONS_PER_PROGRAM, SIGNER_THRESHOLD, TOTAL_SIGNERS,
};
Expand All @@ -38,85 +38,85 @@ use sp_core::{sr25519, ByteArray};
use sp_runtime::{BoundedVec, Perbill};

pub fn devnet_three_node_initial_tss_servers(
) -> Vec<(sp_runtime::AccountId32, TssX25519PublicKey, String, EncodedVerifyingKey)> {
) -> Vec<(sp_runtime::AccountId32, TssX25519PublicKey, String, BoundedVecEncodedVerifyingKey)> {
let alice = (
crate::chain_spec::tss_account_id::ALICE.clone(),
crate::chain_spec::tss_x25519_public_key::ALICE,
"127.0.0.1:3001".to_string(),
provisioning_certification_key::ALICE,
provisioning_certification_key::ALICE.clone(),
);

let bob = (
crate::chain_spec::tss_account_id::BOB.clone(),
crate::chain_spec::tss_x25519_public_key::BOB,
"127.0.0.1:3002".to_string(),
provisioning_certification_key::BOB,
provisioning_certification_key::BOB.clone(),
);

let charlie = (
crate::chain_spec::tss_account_id::CHARLIE.clone(),
crate::chain_spec::tss_x25519_public_key::CHARLIE,
"127.0.0.1:3003".to_string(),
provisioning_certification_key::CHARLIE,
provisioning_certification_key::CHARLIE.clone(),
);

vec![alice, bob, charlie]
}

pub fn devnet_local_docker_three_node_initial_tss_servers(
) -> Vec<(sp_runtime::AccountId32, TssX25519PublicKey, String)> {
) -> Vec<(sp_runtime::AccountId32, TssX25519PublicKey, String, BoundedVecEncodedVerifyingKey)> {
let alice = (
crate::chain_spec::tss_account_id::ALICE.clone(),
crate::chain_spec::tss_x25519_public_key::ALICE,
"alice-tss-server:3001".to_string(),
provisioning_certification_key::ALICE,
provisioning_certification_key::ALICE.clone(),
);

let bob = (
crate::chain_spec::tss_account_id::BOB.clone(),
crate::chain_spec::tss_x25519_public_key::BOB,
"bob-tss-server:3002".to_string(),
provisioning_certification_key::BOB,
provisioning_certification_key::BOB.clone(),
);

let charlie = (
crate::chain_spec::tss_account_id::CHARLIE.clone(),
crate::chain_spec::tss_x25519_public_key::CHARLIE,
"charlie-tss-server:3003".to_string(),
provisioning_certification_key::CHARLIE,
provisioning_certification_key::CHARLIE.clone(),
);

vec![alice, bob, charlie]
}

pub fn devnet_local_docker_four_node_initial_tss_servers(
) -> Vec<(sp_runtime::AccountId32, TssX25519PublicKey, String)> {
) -> Vec<(sp_runtime::AccountId32, TssX25519PublicKey, String, BoundedVecEncodedVerifyingKey)> {
let alice = (
crate::chain_spec::tss_account_id::ALICE.clone(),
crate::chain_spec::tss_x25519_public_key::ALICE,
"alice-tss-server:3001".to_string(),
provisioning_certification_key::ALICE,
provisioning_certification_key::ALICE.clone(),
);

let bob = (
crate::chain_spec::tss_account_id::BOB.clone(),
crate::chain_spec::tss_x25519_public_key::BOB,
"bob-tss-server:3002".to_string(),
provisioning_certification_key::BOB,
provisioning_certification_key::BOB.clone(),
);

let dave = (
crate::chain_spec::tss_account_id::DAVE.clone(),
crate::chain_spec::tss_x25519_public_key::DAVE,
"dave-tss-server:3003".to_string(),
provisioning_certification_key::DAVE,
provisioning_certification_key::DAVE.clone(),
);

let eve = (
crate::chain_spec::tss_account_id::EVE.clone(),
crate::chain_spec::tss_x25519_public_key::EVE_TSS,
"eve-tss-server:3004".to_string(),
provisioning_certification_key::EVE,
provisioning_certification_key::EVE.clone(),
);

vec![alice, bob, dave, eve]
Expand Down Expand Up @@ -204,7 +204,12 @@ pub fn development_genesis_config(
)>,
initial_nominators: Vec<AccountId>,
root_key: AccountId,
initial_tss_servers: Vec<(sp_runtime::AccountId32, TssX25519PublicKey, String)>,
initial_tss_servers: Vec<(
sp_runtime::AccountId32,
TssX25519PublicKey,
String,
BoundedVecEncodedVerifyingKey,
)>,
) -> serde_json::Value {
// Note that any endowed_accounts added here will be included in the `elections` and
// `technical_committee` genesis configs. If you don't want that, don't push those accounts to
Expand Down Expand Up @@ -282,7 +287,7 @@ pub fn development_genesis_config(
.iter()
.zip(initial_tss_servers.iter())
.map(|(auth, tss)| {
(auth.0.clone(), (tss.0.clone(), tss.1, tss.2.as_bytes().to_vec(), tss.3))
(auth.0.clone(), (tss.0.clone(), tss.1, tss.2.as_bytes().to_vec(), tss.3.clone()))
})
.collect::<Vec<_>>(),
proactive_refresh_data: (vec![], vec![]),
Expand Down
8 changes: 4 additions & 4 deletions node/cli/src/chain_spec/integration_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ pub fn integration_tests_genesis_config(
crate::chain_spec::tss_account_id::ALICE.clone(),
crate::chain_spec::tss_x25519_public_key::ALICE,
"127.0.0.1:3001".as_bytes().to_vec(),
provisioning_certification_key::ALICE,
provisioning_certification_key::ALICE.clone(),
),
),
(
Expand All @@ -167,7 +167,7 @@ pub fn integration_tests_genesis_config(
crate::chain_spec::tss_account_id::BOB.clone(),
crate::chain_spec::tss_x25519_public_key::BOB,
"127.0.0.1:3002".as_bytes().to_vec(),
provisioning_certification_key::BOB,
provisioning_certification_key::BOB.clone(),
),
),
(
Expand All @@ -176,7 +176,7 @@ pub fn integration_tests_genesis_config(
crate::chain_spec::tss_account_id::CHARLIE.clone(),
crate::chain_spec::tss_x25519_public_key::CHARLIE,
"127.0.0.1:3003".as_bytes().to_vec(),
provisioning_certification_key::CHARLIE,
provisioning_certification_key::CHARLIE.clone(),
),
),
(
Expand All @@ -185,7 +185,7 @@ pub fn integration_tests_genesis_config(
crate::chain_spec::tss_account_id::DAVE.clone(),
crate::chain_spec::tss_x25519_public_key::DAVE,
"127.0.0.1:3004".as_bytes().to_vec(),
provisioning_certification_key::DAVE,
provisioning_certification_key::DAVE.clone(),
),
),
],
Expand Down
10 changes: 5 additions & 5 deletions node/cli/src/chain_spec/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -131,11 +131,11 @@ pub mod provisioning_certification_key {
use sp_runtime::BoundedVec;

lazy_static::lazy_static! {
pub const ALICE: BoundedVecEncodedVerifyingKey = BoundedVec::with_max_capacity();
pub const BOB: BoundedVecEncodedVerifyingKey = BoundedVec::with_max_capacity();
pub const CHARLIE: BoundedVecEncodedVerifyingKey = BoundedVec::with_max_capacity();
pub const DAVE: BoundedVecEncodedVerifyingKey = BoundedVec::with_max_capacity();
pub const EVE: BoundedVecEncodedVerifyingKey = BoundedVec::with_max_capacity();
pub static ref ALICE: BoundedVecEncodedVerifyingKey = BoundedVec::with_max_capacity();
pub static ref BOB: BoundedVecEncodedVerifyingKey = BoundedVec::with_max_capacity();
pub static ref CHARLIE: BoundedVecEncodedVerifyingKey = BoundedVec::with_max_capacity();
pub static ref DAVE: BoundedVecEncodedVerifyingKey = BoundedVec::with_max_capacity();
pub static ref EVE: BoundedVecEncodedVerifyingKey = BoundedVec::with_max_capacity();
}
}

Expand Down
29 changes: 20 additions & 9 deletions node/cli/src/chain_spec/testnet.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ use entropy_runtime::{
};
use entropy_runtime::{AccountId, Balance};
use entropy_shared::{
X25519PublicKey as TssX25519PublicKey, DEVICE_KEY_AUX_DATA_TYPE, DEVICE_KEY_CONFIG_TYPE,
DEVICE_KEY_HASH, DEVICE_KEY_PROXY, INITIAL_MAX_INSTRUCTIONS_PER_PROGRAM, SIGNER_THRESHOLD,
TOTAL_SIGNERS,
BoundedVecEncodedVerifyingKey, X25519PublicKey as TssX25519PublicKey, DEVICE_KEY_AUX_DATA_TYPE,
DEVICE_KEY_CONFIG_TYPE, DEVICE_KEY_HASH, DEVICE_KEY_PROXY,
INITIAL_MAX_INSTRUCTIONS_PER_PROGRAM, SIGNER_THRESHOLD, TOTAL_SIGNERS,
};
use grandpa_primitives::AuthorityId as GrandpaId;
use hex_literal::hex;
Expand Down Expand Up @@ -177,19 +177,20 @@ pub fn testnet_local_config() -> crate::chain_spec::ChainSpec {
.build()
}

pub fn testnet_local_initial_tss_servers() -> Vec<(TssAccountId, TssX25519PublicKey, TssEndpoint)> {
pub fn testnet_local_initial_tss_servers(
) -> Vec<(TssAccountId, TssX25519PublicKey, TssEndpoint, BoundedVecEncodedVerifyingKey)> {
let alice = (
crate::chain_spec::tss_account_id::ALICE.clone(),
crate::chain_spec::tss_x25519_public_key::ALICE,
"alice-tss-server:3001".to_string(),
provisioning_certification_key::ALICE,
provisioning_certification_key::ALICE.clone(),
);

let bob = (
crate::chain_spec::tss_account_id::BOB.clone(),
crate::chain_spec::tss_x25519_public_key::BOB,
"bob-tss-server:3002".to_string(),
provisioning_certification_key::BOB,
provisioning_certification_key::BOB.clone(),
);

vec![alice, bob]
Expand All @@ -209,7 +210,8 @@ pub fn testnet_local_initial_tss_servers() -> Vec<(TssAccountId, TssX25519Public
///
/// Note that if the KVDB of the TSS is deleted at any point during this process you will end up
/// with different `AccountID`s and `PublicKey`s.
pub fn testnet_initial_tss_servers() -> Vec<(TssAccountId, TssX25519PublicKey, TssEndpoint)> {
pub fn testnet_initial_tss_servers(
) -> Vec<(TssAccountId, TssX25519PublicKey, TssEndpoint, BoundedVecEncodedVerifyingKey)> {
use std::str::FromStr;

let node_1a = (
Expand All @@ -220,6 +222,7 @@ pub fn testnet_initial_tss_servers() -> Vec<(TssAccountId, TssX25519PublicKey, T
198, 84, 61, 178, 36, 191, 56, 41, 39, 173, 70, 9, 67,
],
"100.26.207.49:3001".to_string(),
provisioning_certification_key::ALICE.clone(),
);

let node_1b = (
Expand All @@ -230,6 +233,7 @@ pub fn testnet_initial_tss_servers() -> Vec<(TssAccountId, TssX25519PublicKey, T
10, 107, 31, 67, 10, 98, 215, 34, 26, 10, 188, 59, 71, 100,
],
"34.200.237.166:3001".to_string(),
provisioning_certification_key::BOB.clone(),
);

let node_1c = (
Expand All @@ -240,6 +244,7 @@ pub fn testnet_initial_tss_servers() -> Vec<(TssAccountId, TssX25519PublicKey, T
36, 157, 25, 170, 72, 247, 152, 130, 139, 244, 4, 67, 162, 0,
],
"184.72.189.154:3001".to_string(),
provisioning_certification_key::CHARLIE.clone(),
);

let node_2a = (
Expand All @@ -250,6 +255,7 @@ pub fn testnet_initial_tss_servers() -> Vec<(TssAccountId, TssX25519PublicKey, T
196, 3, 154, 37, 23, 133, 28, 168, 221, 37, 204, 186, 61,
],
"184.73.19.95:3001".to_string(),
provisioning_certification_key::DAVE.clone(),
);

vec![node_1a, node_1b, node_1c, node_2a]
Expand Down Expand Up @@ -295,7 +301,12 @@ pub fn testnet_genesis_config(
)>,
initial_nominators: Vec<AccountId>,
root_key: AccountId,
initial_tss_servers: Vec<(TssAccountId, TssX25519PublicKey, TssEndpoint)>,
initial_tss_servers: Vec<(
TssAccountId,
TssX25519PublicKey,
TssEndpoint,
BoundedVecEncodedVerifyingKey,
)>,
) -> serde_json::Value {
assert!(
initial_authorities.len() == initial_tss_servers.len(),
Expand Down Expand Up @@ -412,7 +423,7 @@ pub fn testnet_genesis_config(
.iter()
.zip(initial_tss_servers.iter())
.map(|(auth, tss)| {
(auth.0.clone(), (tss.0.clone(), tss.1, tss.2.as_bytes().to_vec(), tss.3))
(auth.0.clone(), (tss.0.clone(), tss.1, tss.2.as_bytes().to_vec(), tss.3.clone()))
})
.collect::<Vec<_>>(),
proactive_refresh_data: (vec![], vec![]),
Expand Down
Loading