Skip to content
Snippets Groups Projects
Commit 4098fc23 authored by Éloïs's avatar Éloïs
Browse files

feat(genesis_conf): make session_keys optional and infer authority role

parent 55c915d2
No related branches found
No related tags found
1 merge request!41feat: add script create-live-network.sh
...@@ -76,9 +76,7 @@ struct Idty { ...@@ -76,9 +76,7 @@ struct Idty {
#[derive(Clone, Deserialize, Serialize)] #[derive(Clone, Deserialize, Serialize)]
struct SmithData { struct SmithData {
#[serde(default)] session_keys: Option<String>,
authority: bool,
session_keys: String,
#[serde(default)] #[serde(default)]
certs: Vec<String>, certs: Vec<String>,
} }
...@@ -252,11 +250,24 @@ where ...@@ -252,11 +250,24 @@ where
} }
// Initial authorities // Initial authorities
initial_authorities.insert(*idty_index, (identity.pubkey.clone(), smith_data.authority)); initial_authorities.insert(
*idty_index,
(identity.pubkey.clone(), smith_data.session_keys.is_some()),
);
// Session keys // Session keys
let session_keys_bytes = hex::decode(&smith_data.session_keys[2..]) let session_keys_bytes = if let Some(ref session_keys) = smith_data.session_keys {
.map_err(|_| format!("invalid session keys for idty {}", &idty_name))?; hex::decode(&session_keys[2..])
.map_err(|_| format!("invalid session keys for idty {}", &idty_name))?
} else {
// Create fake session keys (must be unique and deterministic)
let mut fake_session_keys_bytes = Vec::with_capacity(128);
for _ in 0..4 {
fake_session_keys_bytes.extend_from_slice(identity.pubkey.as_ref())
}
fake_session_keys_bytes
//vec![initial_authorities.len() as u8; std::mem::size_of::<SK>()]
};
session_keys_map.insert( session_keys_map.insert(
identity.pubkey.clone(), identity.pubkey.clone(),
SK::decode(&mut &session_keys_bytes[..]) SK::decode(&mut &session_keys_bytes[..])
......
...@@ -50,17 +50,14 @@ ...@@ -50,17 +50,14 @@
}, },
"smiths": { "smiths": {
"Elois1": { "Elois1": {
"authority": true,
"certs": ["Elois2", "Elois3"], "certs": ["Elois2", "Elois3"],
"session_keys": "0x90ea1e9059fd30860fc14370b62a3675a720763913e0aa41fa01b268c33afd3b64c9301d94f7a043ac6714c8a6301541e56e833c1b13170c19f9785fa469407864c9301d94f7a043ac6714c8a6301541e56e833c1b13170c19f9785fa469407864c9301d94f7a043ac6714c8a6301541e56e833c1b13170c19f9785fa4694078" "session_keys": "0x90ea1e9059fd30860fc14370b62a3675a720763913e0aa41fa01b268c33afd3b64c9301d94f7a043ac6714c8a6301541e56e833c1b13170c19f9785fa469407864c9301d94f7a043ac6714c8a6301541e56e833c1b13170c19f9785fa469407864c9301d94f7a043ac6714c8a6301541e56e833c1b13170c19f9785fa4694078"
}, },
"Elois2": { "Elois2": {
"certs": ["Elois1", "Elois3"], "certs": ["Elois1", "Elois3"]
"session_keys": "0x1a1c5027d35e315efde9b9296a0ff80920a9d448a7d0480080d9773e4035ec85a270415a3a2f5392df3185bc9f3d2d7a3cb158f55ebdf6ccc42da8ab26d96f7ca270415a3a2f5392df3185bc9f3d2d7a3cb158f55ebdf6ccc42da8ab26d96f7ca270415a3a2f5392df3185bc9f3d2d7a3cb158f55ebdf6ccc42da8ab26d96f7c"
}, },
"Elois3": { "Elois3": {
"certs": ["Elois1", "Elois2"], "certs": ["Elois1", "Elois2"]
"session_keys": "0xcde37cd0d59573465dacd587f0759c93a82e9f0a40ee8f547772446abe846b86f0badfddff9238d6f18ab5ef8fa5fdd3d5edd29a9f6b097416ffc87e2f774022f0badfddff9238d6f18ab5ef8fa5fdd3d5edd29a9f6b097416ffc87e2f774022f0badfddff9238d6f18ab5ef8fa5fdd3d5edd29a9f6b097416ffc87e2f774022"
} }
}, },
"sudo_key": "5H95G8bwuf4yyNNNa83hDhj7wpYaSRhZiGezZ9TDbyqNdAhY" "sudo_key": "5H95G8bwuf4yyNNNa83hDhj7wpYaSRhZiGezZ9TDbyqNdAhY"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment