@@ -19,9 +19,10 @@ use crate::{cli::SourceParsed, util::AbsolutePath};
19
19
/// Config directory inside of the docker image
20
20
const DIR_CONFIG_IN_DOCKER : & str = "/config" ;
21
21
const GENESIS_KEYPAIR_SEED : & [ u8 ; 7 ] = b"genesis" ;
22
+ const GENESIS_SIGNED_FILE : & str = "/tmp/genesis.signed.scale" ;
22
23
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
25
26
""# ;
26
27
const DOCKER_COMPOSE_VERSION : & str = "3.8" ;
27
28
const PLATFORM_ARCHITECTURE : & str = "linux/amd64" ;
@@ -161,6 +162,9 @@ impl DockerComposeServiceBuilder {
161
162
PairColon ( peer. port_api, peer. port_api) ,
162
163
] ;
163
164
165
+ let genesis_signed_file = genesis_private_key
166
+ . as_ref ( )
167
+ . map ( |_| GENESIS_SIGNED_FILE . to_owned ( ) ) ;
164
168
let command = genesis_private_key. map_or ( ServiceCommand :: None , |genesis_private_key| {
165
169
ServiceCommand :: SignAndSubmitGenesis {
166
170
genesis_private_key,
@@ -171,6 +175,7 @@ impl DockerComposeServiceBuilder {
171
175
chain_id,
172
176
trusted_peers,
173
177
genesis_public_key,
178
+ genesis_signed_file,
174
179
key_pair : peer. key_pair . clone ( ) ,
175
180
p2p_addr : socket_addr ! ( 0.0 . 0.0 : peer. port_p2p) ,
176
181
api_addr : socket_addr ! ( 0.0 . 0.0 : peer. port_api) ,
@@ -311,6 +316,7 @@ struct FullPeerEnv {
311
316
p2p_address : SocketAddr ,
312
317
api_address : SocketAddr ,
313
318
genesis_public_key : PublicKey ,
319
+ genesis_signed_file : Option < String > ,
314
320
#[ serde_as( as = "Option<serde_with::json::JsonString>" ) ]
315
321
sumeragi_trusted_peers : Option < BTreeSet < PeerId > > ,
316
322
}
@@ -319,6 +325,7 @@ struct CompactPeerEnv {
319
325
chain_id : ChainId ,
320
326
key_pair : KeyPair ,
321
327
genesis_public_key : PublicKey ,
328
+ genesis_signed_file : Option < String > ,
322
329
p2p_addr : SocketAddr ,
323
330
api_addr : SocketAddr ,
324
331
trusted_peers : BTreeSet < PeerId > ,
@@ -331,6 +338,7 @@ impl From<CompactPeerEnv> for FullPeerEnv {
331
338
public_key : value. key_pair . public_key ( ) . clone ( ) ,
332
339
private_key : ExposedPrivateKey ( value. key_pair . private_key ( ) . clone ( ) ) ,
333
340
genesis_public_key : value. genesis_public_key ,
341
+ genesis_signed_file : value. genesis_signed_file ,
334
342
p2p_address : value. p2p_addr ,
335
343
api_address : value. api_addr ,
336
344
sumeragi_trusted_peers : if value. trusted_peers . is_empty ( ) {
@@ -582,6 +590,7 @@ mod tests {
582
590
chain_id : ChainId :: from ( "00000000-0000-0000-0000-000000000000" ) ,
583
591
key_pair : keypair. clone ( ) ,
584
592
genesis_public_key : keypair. public_key ( ) . clone ( ) ,
593
+ genesis_signed_file : Some ( "/tmp/genesis.signed.scale" . to_owned ( ) ) ,
585
594
p2p_addr : socket_addr ! ( 127.0 . 0.1 : 1337 ) ,
586
595
api_addr : socket_addr ! ( 127.0 . 0.1 : 1338 ) ,
587
596
trusted_peers : {
@@ -630,6 +639,7 @@ mod tests {
630
639
chain_id,
631
640
key_pair : key_pair. clone ( ) ,
632
641
genesis_public_key : key_pair. public_key ( ) . clone ( ) ,
642
+ genesis_signed_file : Some ( "/tmp/genesis.signed.scale" . to_owned ( ) ) ,
633
643
p2p_addr : SocketAddr :: from_str ( "iroha1:1339" ) . unwrap ( ) ,
634
644
api_addr : SocketAddr :: from_str ( "iroha1:1338" ) . unwrap ( ) ,
635
645
trusted_peers : BTreeSet :: new ( ) ,
@@ -671,6 +681,7 @@ mod tests {
671
681
P2P_ADDRESS: iroha1:1339
672
682
API_ADDRESS: iroha1:1338
673
683
GENESIS_PUBLIC_KEY: ed012039E5BF092186FACC358770792A493CA98A83740643A3D41389483CF334F748C8
684
+ GENESIS_SIGNED_FILE: /tmp/genesis.signed.scale
674
685
ports:
675
686
- 1337:1337
676
687
- 8080:8080
@@ -680,8 +691,8 @@ mod tests {
680
691
init: true
681
692
command: |-
682
693
/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
685
696
"
686
697
"# ] ] ;
687
698
expected. assert_eq ( & actual) ;
@@ -697,6 +708,7 @@ mod tests {
697
708
chain_id,
698
709
key_pair : key_pair. clone ( ) ,
699
710
genesis_public_key : key_pair. public_key ( ) . clone ( ) ,
711
+ genesis_signed_file : None ,
700
712
p2p_addr : SocketAddr :: from_str ( "iroha0:1337" ) . unwrap ( ) ,
701
713
api_addr : SocketAddr :: from_str ( "iroha0:1337" ) . unwrap ( ) ,
702
714
trusted_peers : BTreeSet :: new ( ) ,
@@ -753,6 +765,7 @@ mod tests {
753
765
P2P_ADDRESS: 0.0.0.0:1337
754
766
API_ADDRESS: 0.0.0.0:8080
755
767
GENESIS_PUBLIC_KEY: ed01203420F48A9EEB12513B8EB7DAF71979CE80A1013F5F341C10DCDA4F6AA19F97A9
768
+ GENESIS_SIGNED_FILE: /tmp/genesis.signed.scale
756
769
SUMERAGI_TRUSTED_PEERS: '[{"address":"irohad2:1339","public_key":"ed0120222832FD8DF02882F07C13554DBA5BAE10C07A97E4AE7C2114DC05E95C3E6E32"},{"address":"irohad1:1338","public_key":"ed0120ACD30C7213EF11C4EC1006C6039E4089FC39C9BD211F688B866BCA59C8073883"},{"address":"irohad3:1340","public_key":"ed0120FB35DF84B28FAF8BB5A24D6910EFD7D7B22101EB99BFC74C4213CB1E7215F91B"}]'
757
770
ports:
758
771
- 1337:1337
@@ -762,8 +775,8 @@ mod tests {
762
775
init: true
763
776
command: |-
764
777
/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
767
780
"
768
781
healthcheck:
769
782
test: test $(curl -s http://127.0.0.1:8080/status/blocks) -gt 0
0 commit comments