Skip to content

Commit 9b4908e

Browse files
committed
Use env for GENESIS_SIGNED_FILE in swarm
Signed-off-by: Dmitry Murzin <[email protected]>
1 parent bb9229b commit 9b4908e

File tree

4 files changed

+28
-12
lines changed

4 files changed

+28
-12
lines changed

configs/swarm/docker-compose.local.yml

+3-2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ services:
1313
P2P_ADDRESS: 0.0.0.0:1337
1414
API_ADDRESS: 0.0.0.0:8080
1515
GENESIS_PUBLIC_KEY: ed01204164BF554923ECE1FD412D241036D863A6AE430476C898248B8237D77534CFC4
16+
GENESIS_SIGNED_FILE: /tmp/genesis.signed.scale
1617
SUMERAGI_TRUSTED_PEERS: '[{"address":"irohad1:1338","public_key":"ed012083C85E315776FD2DDC187ECB23E608F800B313A1D614B108078EC048D5013D2D"},{"address":"irohad2:1339","public_key":"ed0120A37B7B758C952FE9429E9E35D1D71E2D8BB9364EDD077B5027ABAAC798D3230E"},{"address":"irohad3:1340","public_key":"ed0120B23E14F659B91736AAB980B6ADDCE4B1DB8A138AB0267E049C082A744471714E"}]'
1718
ports:
1819
- 1337:1337
@@ -22,8 +23,8 @@ services:
2223
init: true
2324
command: |-
2425
/bin/sh -c "
25-
kagami genesis sign /config/genesis.json --public-key $$GENESIS_PUBLIC_KEY --private-key 80264082B3BDE54AEBECA4146257DA0DE8D59D8E46D5FE34887DCD8072866792FCB3AD4164BF554923ECE1FD412D241036D863A6AE430476C898248B8237D77534CFC4 --out-file /tmp/genesis.signed.scale &&
26-
GENESIS_SIGNED_FILE=/tmp/genesis.signed.scale irohad --submit-genesis
26+
kagami genesis sign /config/genesis.json --public-key $$GENESIS_PUBLIC_KEY --private-key 80264082B3BDE54AEBECA4146257DA0DE8D59D8E46D5FE34887DCD8072866792FCB3AD4164BF554923ECE1FD412D241036D863A6AE430476C898248B8237D77534CFC4 --out-file $$GENESIS_SIGNED_FILE &&
27+
irohad --submit-genesis
2728
"
2829
healthcheck:
2930
test: test $(curl -s http://127.0.0.1:8080/status/blocks) -gt 0

configs/swarm/docker-compose.single.yml

+3-2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ services:
1313
P2P_ADDRESS: 0.0.0.0:1337
1414
API_ADDRESS: 0.0.0.0:8080
1515
GENESIS_PUBLIC_KEY: ed01204164BF554923ECE1FD412D241036D863A6AE430476C898248B8237D77534CFC4
16+
GENESIS_SIGNED_FILE: /tmp/genesis.signed.scale
1617
ports:
1718
- 1337:1337
1819
- 8080:8080
@@ -21,8 +22,8 @@ services:
2122
init: true
2223
command: |-
2324
/bin/sh -c "
24-
kagami genesis sign /config/genesis.json --public-key $$GENESIS_PUBLIC_KEY --private-key 80264082B3BDE54AEBECA4146257DA0DE8D59D8E46D5FE34887DCD8072866792FCB3AD4164BF554923ECE1FD412D241036D863A6AE430476C898248B8237D77534CFC4 --out-file /tmp/genesis.signed.scale &&
25-
GENESIS_SIGNED_FILE=/tmp/genesis.signed.scale irohad --submit-genesis
25+
kagami genesis sign /config/genesis.json --public-key $$GENESIS_PUBLIC_KEY --private-key 80264082B3BDE54AEBECA4146257DA0DE8D59D8E46D5FE34887DCD8072866792FCB3AD4164BF554923ECE1FD412D241036D863A6AE430476C898248B8237D77534CFC4 --out-file $$GENESIS_SIGNED_FILE &&
26+
irohad --submit-genesis
2627
"
2728
healthcheck:
2829
test: test $(curl -s http://127.0.0.1:8080/status/blocks) -gt 0

configs/swarm/docker-compose.yml

+3-2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ services:
1313
P2P_ADDRESS: 0.0.0.0:1337
1414
API_ADDRESS: 0.0.0.0:8080
1515
GENESIS_PUBLIC_KEY: ed01204164BF554923ECE1FD412D241036D863A6AE430476C898248B8237D77534CFC4
16+
GENESIS_SIGNED_FILE: /tmp/genesis.signed.scale
1617
SUMERAGI_TRUSTED_PEERS: '[{"address":"irohad1:1338","public_key":"ed012083C85E315776FD2DDC187ECB23E608F800B313A1D614B108078EC048D5013D2D"},{"address":"irohad2:1339","public_key":"ed0120A37B7B758C952FE9429E9E35D1D71E2D8BB9364EDD077B5027ABAAC798D3230E"},{"address":"irohad3:1340","public_key":"ed0120B23E14F659B91736AAB980B6ADDCE4B1DB8A138AB0267E049C082A744471714E"}]'
1718
ports:
1819
- 1337:1337
@@ -22,8 +23,8 @@ services:
2223
init: true
2324
command: |-
2425
/bin/sh -c "
25-
kagami genesis sign /config/genesis.json --public-key $$GENESIS_PUBLIC_KEY --private-key 80264082B3BDE54AEBECA4146257DA0DE8D59D8E46D5FE34887DCD8072866792FCB3AD4164BF554923ECE1FD412D241036D863A6AE430476C898248B8237D77534CFC4 --out-file /tmp/genesis.signed.scale &&
26-
GENESIS_SIGNED_FILE=/tmp/genesis.signed.scale irohad --submit-genesis
26+
kagami genesis sign /config/genesis.json --public-key $$GENESIS_PUBLIC_KEY --private-key 80264082B3BDE54AEBECA4146257DA0DE8D59D8E46D5FE34887DCD8072866792FCB3AD4164BF554923ECE1FD412D241036D863A6AE430476C898248B8237D77534CFC4 --out-file $$GENESIS_SIGNED_FILE &&
27+
irohad --submit-genesis
2728
"
2829
healthcheck:
2930
test: test $(curl -s http://127.0.0.1:8080/status/blocks) -gt 0

tools/swarm/src/compose.rs

+19-6
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,10 @@ use crate::{cli::SourceParsed, util::AbsolutePath};
1919
/// Config directory inside of the docker image
2020
const DIR_CONFIG_IN_DOCKER: &str = "/config";
2121
const GENESIS_KEYPAIR_SEED: &[u8; 7] = b"genesis";
22+
const GENESIS_SIGNED_FILE: &str = "/tmp/genesis.signed.scale";
2223
const COMMAND_SIGN_AND_SUBMIT_GENESIS: &str = r#"/bin/sh -c "
23-
kagami genesis sign /config/genesis.json --public-key $$GENESIS_PUBLIC_KEY --private-key $$GENESIS_PRIVATE_KEY --out-file /tmp/genesis.signed.scale &&
24-
GENESIS_SIGNED_FILE=/tmp/genesis.signed.scale irohad --submit-genesis
24+
kagami genesis sign /config/genesis.json --public-key $$GENESIS_PUBLIC_KEY --private-key $$GENESIS_PRIVATE_KEY --out-file $$GENESIS_SIGNED_FILE &&
25+
irohad --submit-genesis
2526
""#;
2627
const DOCKER_COMPOSE_VERSION: &str = "3.8";
2728
const PLATFORM_ARCHITECTURE: &str = "linux/amd64";
@@ -161,6 +162,9 @@ impl DockerComposeServiceBuilder {
161162
PairColon(peer.port_api, peer.port_api),
162163
];
163164

165+
let genesis_signed_file = genesis_private_key
166+
.as_ref()
167+
.map(|_| GENESIS_SIGNED_FILE.to_owned());
164168
let command = genesis_private_key.map_or(ServiceCommand::None, |genesis_private_key| {
165169
ServiceCommand::SignAndSubmitGenesis {
166170
genesis_private_key,
@@ -171,6 +175,7 @@ impl DockerComposeServiceBuilder {
171175
chain_id,
172176
trusted_peers,
173177
genesis_public_key,
178+
genesis_signed_file,
174179
key_pair: peer.key_pair.clone(),
175180
p2p_addr: socket_addr!(0.0.0.0:peer.port_p2p),
176181
api_addr: socket_addr!(0.0.0.0:peer.port_api),
@@ -311,6 +316,7 @@ struct FullPeerEnv {
311316
p2p_address: SocketAddr,
312317
api_address: SocketAddr,
313318
genesis_public_key: PublicKey,
319+
genesis_signed_file: Option<String>,
314320
#[serde_as(as = "Option<serde_with::json::JsonString>")]
315321
sumeragi_trusted_peers: Option<BTreeSet<PeerId>>,
316322
}
@@ -319,6 +325,7 @@ struct CompactPeerEnv {
319325
chain_id: ChainId,
320326
key_pair: KeyPair,
321327
genesis_public_key: PublicKey,
328+
genesis_signed_file: Option<String>,
322329
p2p_addr: SocketAddr,
323330
api_addr: SocketAddr,
324331
trusted_peers: BTreeSet<PeerId>,
@@ -331,6 +338,7 @@ impl From<CompactPeerEnv> for FullPeerEnv {
331338
public_key: value.key_pair.public_key().clone(),
332339
private_key: ExposedPrivateKey(value.key_pair.private_key().clone()),
333340
genesis_public_key: value.genesis_public_key,
341+
genesis_signed_file: value.genesis_signed_file,
334342
p2p_address: value.p2p_addr,
335343
api_address: value.api_addr,
336344
sumeragi_trusted_peers: if value.trusted_peers.is_empty() {
@@ -582,6 +590,7 @@ mod tests {
582590
chain_id: ChainId::from("00000000-0000-0000-0000-000000000000"),
583591
key_pair: keypair.clone(),
584592
genesis_public_key: keypair.public_key().clone(),
593+
genesis_signed_file: Some("/tmp/genesis.signed.scale".to_owned()),
585594
p2p_addr: socket_addr!(127.0.0.1:1337),
586595
api_addr: socket_addr!(127.0.0.1:1338),
587596
trusted_peers: {
@@ -630,6 +639,7 @@ mod tests {
630639
chain_id,
631640
key_pair: key_pair.clone(),
632641
genesis_public_key: key_pair.public_key().clone(),
642+
genesis_signed_file: Some("/tmp/genesis.signed.scale".to_owned()),
633643
p2p_addr: SocketAddr::from_str("iroha1:1339").unwrap(),
634644
api_addr: SocketAddr::from_str("iroha1:1338").unwrap(),
635645
trusted_peers: BTreeSet::new(),
@@ -671,6 +681,7 @@ mod tests {
671681
P2P_ADDRESS: iroha1:1339
672682
API_ADDRESS: iroha1:1338
673683
GENESIS_PUBLIC_KEY: ed012039E5BF092186FACC358770792A493CA98A83740643A3D41389483CF334F748C8
684+
GENESIS_SIGNED_FILE: /tmp/genesis.signed.scale
674685
ports:
675686
- 1337:1337
676687
- 8080:8080
@@ -680,8 +691,8 @@ mod tests {
680691
init: true
681692
command: |-
682693
/bin/sh -c "
683-
kagami genesis sign /config/genesis.json --public-key $$GENESIS_PUBLIC_KEY --private-key 802640DB9D90D20F969177BD5882F9FE211D14D1399D5440D04E3468783D169BBC4A8E39E5BF092186FACC358770792A493CA98A83740643A3D41389483CF334F748C8 --out-file /tmp/genesis.signed.scale &&
684-
GENESIS_SIGNED_FILE=/tmp/genesis.signed.scale irohad --submit-genesis
694+
kagami genesis sign /config/genesis.json --public-key $$GENESIS_PUBLIC_KEY --private-key 802640DB9D90D20F969177BD5882F9FE211D14D1399D5440D04E3468783D169BBC4A8E39E5BF092186FACC358770792A493CA98A83740643A3D41389483CF334F748C8 --out-file $$GENESIS_SIGNED_FILE &&
695+
irohad --submit-genesis
685696
"
686697
"#]];
687698
expected.assert_eq(&actual);
@@ -697,6 +708,7 @@ mod tests {
697708
chain_id,
698709
key_pair: key_pair.clone(),
699710
genesis_public_key: key_pair.public_key().clone(),
711+
genesis_signed_file: None,
700712
p2p_addr: SocketAddr::from_str("iroha0:1337").unwrap(),
701713
api_addr: SocketAddr::from_str("iroha0:1337").unwrap(),
702714
trusted_peers: BTreeSet::new(),
@@ -753,6 +765,7 @@ mod tests {
753765
P2P_ADDRESS: 0.0.0.0:1337
754766
API_ADDRESS: 0.0.0.0:8080
755767
GENESIS_PUBLIC_KEY: ed01203420F48A9EEB12513B8EB7DAF71979CE80A1013F5F341C10DCDA4F6AA19F97A9
768+
GENESIS_SIGNED_FILE: /tmp/genesis.signed.scale
756769
SUMERAGI_TRUSTED_PEERS: '[{"address":"irohad2:1339","public_key":"ed0120222832FD8DF02882F07C13554DBA5BAE10C07A97E4AE7C2114DC05E95C3E6E32"},{"address":"irohad1:1338","public_key":"ed0120ACD30C7213EF11C4EC1006C6039E4089FC39C9BD211F688B866BCA59C8073883"},{"address":"irohad3:1340","public_key":"ed0120FB35DF84B28FAF8BB5A24D6910EFD7D7B22101EB99BFC74C4213CB1E7215F91B"}]'
757770
ports:
758771
- 1337:1337
@@ -762,8 +775,8 @@ mod tests {
762775
init: true
763776
command: |-
764777
/bin/sh -c "
765-
kagami genesis sign /config/genesis.json --public-key $$GENESIS_PUBLIC_KEY --private-key 8026405A6D5F06A90D29AD906E2F6EA8B41B4EF187849D0D397081A4A15FFCBE71E7C73420F48A9EEB12513B8EB7DAF71979CE80A1013F5F341C10DCDA4F6AA19F97A9 --out-file /tmp/genesis.signed.scale &&
766-
GENESIS_SIGNED_FILE=/tmp/genesis.signed.scale irohad --submit-genesis
778+
kagami genesis sign /config/genesis.json --public-key $$GENESIS_PUBLIC_KEY --private-key 8026405A6D5F06A90D29AD906E2F6EA8B41B4EF187849D0D397081A4A15FFCBE71E7C73420F48A9EEB12513B8EB7DAF71979CE80A1013F5F341C10DCDA4F6AA19F97A9 --out-file $$GENESIS_SIGNED_FILE &&
779+
irohad --submit-genesis
767780
"
768781
healthcheck:
769782
test: test $(curl -s http://127.0.0.1:8080/status/blocks) -gt 0

0 commit comments

Comments
 (0)