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 {
#[derive(Clone, Deserialize, Serialize)]
struct SmithData {
#[serde(default)]
authority: bool,
session_keys: String,
session_keys: Option<String>,
#[serde(default)]
certs: Vec<String>,
}
......@@ -252,11 +250,24 @@ where
}
// 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
let session_keys_bytes = hex::decode(&smith_data.session_keys[2..])
.map_err(|_| format!("invalid session keys for idty {}", &idty_name))?;
let session_keys_bytes = if let Some(ref session_keys) = smith_data.session_keys {
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(
identity.pubkey.clone(),
SK::decode(&mut &session_keys_bytes[..])
......
......@@ -50,17 +50,14 @@
},
"smiths": {
"Elois1": {
"authority": true,
"certs": ["Elois2", "Elois3"],
"session_keys": "0x90ea1e9059fd30860fc14370b62a3675a720763913e0aa41fa01b268c33afd3b64c9301d94f7a043ac6714c8a6301541e56e833c1b13170c19f9785fa469407864c9301d94f7a043ac6714c8a6301541e56e833c1b13170c19f9785fa469407864c9301d94f7a043ac6714c8a6301541e56e833c1b13170c19f9785fa4694078"
},
"Elois2": {
"certs": ["Elois1", "Elois3"],
"session_keys": "0x1a1c5027d35e315efde9b9296a0ff80920a9d448a7d0480080d9773e4035ec85a270415a3a2f5392df3185bc9f3d2d7a3cb158f55ebdf6ccc42da8ab26d96f7ca270415a3a2f5392df3185bc9f3d2d7a3cb158f55ebdf6ccc42da8ab26d96f7ca270415a3a2f5392df3185bc9f3d2d7a3cb158f55ebdf6ccc42da8ab26d96f7c"
"certs": ["Elois1", "Elois3"]
},
"Elois3": {
"certs": ["Elois1", "Elois2"],
"session_keys": "0xcde37cd0d59573465dacd587f0759c93a82e9f0a40ee8f547772446abe846b86f0badfddff9238d6f18ab5ef8fa5fdd3d5edd29a9f6b097416ffc87e2f774022f0badfddff9238d6f18ab5ef8fa5fdd3d5edd29a9f6b097416ffc87e2f774022f0badfddff9238d6f18ab5ef8fa5fdd3d5edd29a9f6b097416ffc87e2f774022"
"certs": ["Elois1", "Elois2"]
}
},
"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