Skip to content

Commit

Permalink
Use env for GENESIS_SIGNED_FILE in swarm
Browse files Browse the repository at this point in the history
Signed-off-by: Dmitry Murzin <diralik@yandex.ru>
  • Loading branch information
dima74 committed Jun 4, 2024
1 parent 18d3dd3 commit aeb0f90
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 12 deletions.
5 changes: 3 additions & 2 deletions configs/swarm/docker-compose.local.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ services:
P2P_ADDRESS: 0.0.0.0:1337
API_ADDRESS: 0.0.0.0:8080
GENESIS_PUBLIC_KEY: ed01204164BF554923ECE1FD412D241036D863A6AE430476C898248B8237D77534CFC4
GENESIS_SIGNED_FILE: /tmp/genesis.signed.scale
SUMERAGI_TRUSTED_PEERS: '[{"address":"irohad1:1338","public_key":"ed012083C85E315776FD2DDC187ECB23E608F800B313A1D614B108078EC048D5013D2D"},{"address":"irohad2:1339","public_key":"ed0120A37B7B758C952FE9429E9E35D1D71E2D8BB9364EDD077B5027ABAAC798D3230E"},{"address":"irohad3:1340","public_key":"ed0120B23E14F659B91736AAB980B6ADDCE4B1DB8A138AB0267E049C082A744471714E"}]'
ports:
- 1337:1337
Expand All @@ -22,8 +23,8 @@ services:
init: true
command: |-
/bin/sh -c "
kagami genesis sign /config/genesis.json --public-key $$GENESIS_PUBLIC_KEY --private-key 80264082B3BDE54AEBECA4146257DA0DE8D59D8E46D5FE34887DCD8072866792FCB3AD4164BF554923ECE1FD412D241036D863A6AE430476C898248B8237D77534CFC4 --out-file /tmp/genesis.signed.scale &&
GENESIS_SIGNED_FILE=/tmp/genesis.signed.scale irohad --submit-genesis
kagami genesis sign /config/genesis.json --public-key $$GENESIS_PUBLIC_KEY --private-key 80264082B3BDE54AEBECA4146257DA0DE8D59D8E46D5FE34887DCD8072866792FCB3AD4164BF554923ECE1FD412D241036D863A6AE430476C898248B8237D77534CFC4 --out-file $$GENESIS_SIGNED_FILE &&
irohad --submit-genesis
"
healthcheck:
test: test $(curl -s http://127.0.0.1:8080/status/blocks) -gt 0
Expand Down
5 changes: 3 additions & 2 deletions configs/swarm/docker-compose.single.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ services:
P2P_ADDRESS: 0.0.0.0:1337
API_ADDRESS: 0.0.0.0:8080
GENESIS_PUBLIC_KEY: ed01204164BF554923ECE1FD412D241036D863A6AE430476C898248B8237D77534CFC4
GENESIS_SIGNED_FILE: /tmp/genesis.signed.scale
ports:
- 1337:1337
- 8080:8080
Expand All @@ -21,8 +22,8 @@ services:
init: true
command: |-
/bin/sh -c "
kagami genesis sign /config/genesis.json --public-key $$GENESIS_PUBLIC_KEY --private-key 80264082B3BDE54AEBECA4146257DA0DE8D59D8E46D5FE34887DCD8072866792FCB3AD4164BF554923ECE1FD412D241036D863A6AE430476C898248B8237D77534CFC4 --out-file /tmp/genesis.signed.scale &&
GENESIS_SIGNED_FILE=/tmp/genesis.signed.scale irohad --submit-genesis
kagami genesis sign /config/genesis.json --public-key $$GENESIS_PUBLIC_KEY --private-key 80264082B3BDE54AEBECA4146257DA0DE8D59D8E46D5FE34887DCD8072866792FCB3AD4164BF554923ECE1FD412D241036D863A6AE430476C898248B8237D77534CFC4 --out-file $$GENESIS_SIGNED_FILE &&
irohad --submit-genesis
"
healthcheck:
test: test $(curl -s http://127.0.0.1:8080/status/blocks) -gt 0
Expand Down
5 changes: 3 additions & 2 deletions configs/swarm/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ services:
P2P_ADDRESS: 0.0.0.0:1337
API_ADDRESS: 0.0.0.0:8080
GENESIS_PUBLIC_KEY: ed01204164BF554923ECE1FD412D241036D863A6AE430476C898248B8237D77534CFC4
GENESIS_SIGNED_FILE: /tmp/genesis.signed.scale
SUMERAGI_TRUSTED_PEERS: '[{"address":"irohad1:1338","public_key":"ed012083C85E315776FD2DDC187ECB23E608F800B313A1D614B108078EC048D5013D2D"},{"address":"irohad2:1339","public_key":"ed0120A37B7B758C952FE9429E9E35D1D71E2D8BB9364EDD077B5027ABAAC798D3230E"},{"address":"irohad3:1340","public_key":"ed0120B23E14F659B91736AAB980B6ADDCE4B1DB8A138AB0267E049C082A744471714E"}]'
ports:
- 1337:1337
Expand All @@ -22,8 +23,8 @@ services:
init: true
command: |-
/bin/sh -c "
kagami genesis sign /config/genesis.json --public-key $$GENESIS_PUBLIC_KEY --private-key 80264082B3BDE54AEBECA4146257DA0DE8D59D8E46D5FE34887DCD8072866792FCB3AD4164BF554923ECE1FD412D241036D863A6AE430476C898248B8237D77534CFC4 --out-file /tmp/genesis.signed.scale &&
GENESIS_SIGNED_FILE=/tmp/genesis.signed.scale irohad --submit-genesis
kagami genesis sign /config/genesis.json --public-key $$GENESIS_PUBLIC_KEY --private-key 80264082B3BDE54AEBECA4146257DA0DE8D59D8E46D5FE34887DCD8072866792FCB3AD4164BF554923ECE1FD412D241036D863A6AE430476C898248B8237D77534CFC4 --out-file $$GENESIS_SIGNED_FILE &&
irohad --submit-genesis
"
healthcheck:
test: test $(curl -s http://127.0.0.1:8080/status/blocks) -gt 0
Expand Down
Binary file modified configs/swarm/executor.wasm
Binary file not shown.
25 changes: 19 additions & 6 deletions tools/swarm/src/compose.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,10 @@ use crate::{cli::SourceParsed, util::AbsolutePath};
/// Config directory inside of the docker image
const DIR_CONFIG_IN_DOCKER: &str = "/config";
const GENESIS_KEYPAIR_SEED: &[u8; 7] = b"genesis";
const GENESIS_SIGNED_FILE: &str = "/tmp/genesis.signed.scale";
const COMMAND_SIGN_AND_SUBMIT_GENESIS: &str = r#"/bin/sh -c "
kagami genesis sign /config/genesis.json --public-key $$GENESIS_PUBLIC_KEY --private-key $$GENESIS_PRIVATE_KEY --out-file /tmp/genesis.signed.scale &&
GENESIS_SIGNED_FILE=/tmp/genesis.signed.scale irohad --submit-genesis
kagami genesis sign /config/genesis.json --public-key $$GENESIS_PUBLIC_KEY --private-key $$GENESIS_PRIVATE_KEY --out-file $$GENESIS_SIGNED_FILE &&
irohad --submit-genesis
""#;
const DOCKER_COMPOSE_VERSION: &str = "3.8";
const PLATFORM_ARCHITECTURE: &str = "linux/amd64";
Expand Down Expand Up @@ -161,6 +162,9 @@ impl DockerComposeServiceBuilder {
PairColon(peer.port_api, peer.port_api),
];

let genesis_signed_file = genesis_private_key
.as_ref()
.map(|_| GENESIS_SIGNED_FILE.to_owned());
let command = genesis_private_key.map_or(ServiceCommand::None, |genesis_private_key| {
ServiceCommand::SignAndSubmitGenesis {
genesis_private_key,
Expand All @@ -171,6 +175,7 @@ impl DockerComposeServiceBuilder {
chain_id,
trusted_peers,
genesis_public_key,
genesis_signed_file,
key_pair: peer.key_pair.clone(),
p2p_addr: socket_addr!(0.0.0.0:peer.port_p2p),
api_addr: socket_addr!(0.0.0.0:peer.port_api),
Expand Down Expand Up @@ -311,6 +316,7 @@ struct FullPeerEnv {
p2p_address: SocketAddr,
api_address: SocketAddr,
genesis_public_key: PublicKey,
genesis_signed_file: Option<String>,
#[serde_as(as = "Option<serde_with::json::JsonString>")]
sumeragi_trusted_peers: Option<BTreeSet<PeerId>>,
}
Expand All @@ -319,6 +325,7 @@ struct CompactPeerEnv {
chain_id: ChainId,
key_pair: KeyPair,
genesis_public_key: PublicKey,
genesis_signed_file: Option<String>,
p2p_addr: SocketAddr,
api_addr: SocketAddr,
trusted_peers: BTreeSet<PeerId>,
Expand All @@ -331,6 +338,7 @@ impl From<CompactPeerEnv> for FullPeerEnv {
public_key: value.key_pair.public_key().clone(),
private_key: ExposedPrivateKey(value.key_pair.private_key().clone()),
genesis_public_key: value.genesis_public_key,
genesis_signed_file: value.genesis_signed_file,
p2p_address: value.p2p_addr,
api_address: value.api_addr,
sumeragi_trusted_peers: if value.trusted_peers.is_empty() {
Expand Down Expand Up @@ -582,6 +590,7 @@ mod tests {
chain_id: ChainId::from("00000000-0000-0000-0000-000000000000"),
key_pair: keypair.clone(),
genesis_public_key: keypair.public_key().clone(),
genesis_signed_file: Some("/tmp/genesis.signed.scale".to_owned()),
p2p_addr: socket_addr!(127.0.0.1:1337),
api_addr: socket_addr!(127.0.0.1:1338),
trusted_peers: {
Expand Down Expand Up @@ -630,6 +639,7 @@ mod tests {
chain_id,
key_pair: key_pair.clone(),
genesis_public_key: key_pair.public_key().clone(),
genesis_signed_file: Some("/tmp/genesis.signed.scale".to_owned()),
p2p_addr: SocketAddr::from_str("iroha1:1339").unwrap(),
api_addr: SocketAddr::from_str("iroha1:1338").unwrap(),
trusted_peers: BTreeSet::new(),
Expand Down Expand Up @@ -671,6 +681,7 @@ mod tests {
P2P_ADDRESS: iroha1:1339
API_ADDRESS: iroha1:1338
GENESIS_PUBLIC_KEY: ed012039E5BF092186FACC358770792A493CA98A83740643A3D41389483CF334F748C8
GENESIS_SIGNED_FILE: /tmp/genesis.signed.scale
ports:
- 1337:1337
- 8080:8080
Expand All @@ -680,8 +691,8 @@ mod tests {
init: true
command: |-
/bin/sh -c "
kagami genesis sign /config/genesis.json --public-key $$GENESIS_PUBLIC_KEY --private-key 802640DB9D90D20F969177BD5882F9FE211D14D1399D5440D04E3468783D169BBC4A8E39E5BF092186FACC358770792A493CA98A83740643A3D41389483CF334F748C8 --out-file /tmp/genesis.signed.scale &&
GENESIS_SIGNED_FILE=/tmp/genesis.signed.scale irohad --submit-genesis
kagami genesis sign /config/genesis.json --public-key $$GENESIS_PUBLIC_KEY --private-key 802640DB9D90D20F969177BD5882F9FE211D14D1399D5440D04E3468783D169BBC4A8E39E5BF092186FACC358770792A493CA98A83740643A3D41389483CF334F748C8 --out-file $$GENESIS_SIGNED_FILE &&
irohad --submit-genesis
"
"#]];
expected.assert_eq(&actual);
Expand All @@ -697,6 +708,7 @@ mod tests {
chain_id,
key_pair: key_pair.clone(),
genesis_public_key: key_pair.public_key().clone(),
genesis_signed_file: None,
p2p_addr: SocketAddr::from_str("iroha0:1337").unwrap(),
api_addr: SocketAddr::from_str("iroha0:1337").unwrap(),
trusted_peers: BTreeSet::new(),
Expand Down Expand Up @@ -753,6 +765,7 @@ mod tests {
P2P_ADDRESS: 0.0.0.0:1337
API_ADDRESS: 0.0.0.0:8080
GENESIS_PUBLIC_KEY: ed01203420F48A9EEB12513B8EB7DAF71979CE80A1013F5F341C10DCDA4F6AA19F97A9
GENESIS_SIGNED_FILE: /tmp/genesis.signed.scale
SUMERAGI_TRUSTED_PEERS: '[{"address":"irohad2:1339","public_key":"ed0120222832FD8DF02882F07C13554DBA5BAE10C07A97E4AE7C2114DC05E95C3E6E32"},{"address":"irohad1:1338","public_key":"ed0120ACD30C7213EF11C4EC1006C6039E4089FC39C9BD211F688B866BCA59C8073883"},{"address":"irohad3:1340","public_key":"ed0120FB35DF84B28FAF8BB5A24D6910EFD7D7B22101EB99BFC74C4213CB1E7215F91B"}]'
ports:
- 1337:1337
Expand All @@ -762,8 +775,8 @@ mod tests {
init: true
command: |-
/bin/sh -c "
kagami genesis sign /config/genesis.json --public-key $$GENESIS_PUBLIC_KEY --private-key 8026405A6D5F06A90D29AD906E2F6EA8B41B4EF187849D0D397081A4A15FFCBE71E7C73420F48A9EEB12513B8EB7DAF71979CE80A1013F5F341C10DCDA4F6AA19F97A9 --out-file /tmp/genesis.signed.scale &&
GENESIS_SIGNED_FILE=/tmp/genesis.signed.scale irohad --submit-genesis
kagami genesis sign /config/genesis.json --public-key $$GENESIS_PUBLIC_KEY --private-key 8026405A6D5F06A90D29AD906E2F6EA8B41B4EF187849D0D397081A4A15FFCBE71E7C73420F48A9EEB12513B8EB7DAF71979CE80A1013F5F341C10DCDA4F6AA19F97A9 --out-file $$GENESIS_SIGNED_FILE &&
irohad --submit-genesis
"
healthcheck:
test: test $(curl -s http://127.0.0.1:8080/status/blocks) -gt 0
Expand Down

0 comments on commit aeb0f90

Please sign in to comment.