Skip to content

Commit 8f35c93

Browse files
authored
Merge pull request #813 from openmina/feat/improve-ci-hostnames
Improve CI hostnames
2 parents 9ebb909 + 4ed4475 commit 8f35c93

File tree

8 files changed

+50
-55
lines changed

8 files changed

+50
-55
lines changed

.github/workflows/ci.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,7 @@ jobs:
296296
# TODO: remove when replayer supports identify
297297
KEEP_CONNECTION_WITH_UNKNOWN_STREAM: true
298298
OPENMINA_SCENARIO_SEEDS: ${{ needs.k8s-peers.outputs.peers }}
299+
REPLAYER_MULTIADDR: "/dns4/1.k8.openmina.com/tcp/31968/p2p/12D3KooWPayQEdprqY2m3biReUUybA5LoULpJE7YWu6wetEKKELv"
299300
BPF_ALIAS: /coda/0.0.1/29936104443aaf264a7f0192ac64b1c7173198c1ed404c1bcff5e562e05eb7f6-0.0.0.0
300301
strategy:
301302
matrix:

node/testing/src/hosts.rs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/// This should be the only place where environment variables are converted to addresses.
2+
///
3+
use std::{env, str::FromStr};
4+
5+
use node::p2p::connection::outgoing::P2pConnectionOutgoingInitOpts;
6+
7+
use crate::scenario::ListenerNode;
8+
9+
pub fn replayer() -> P2pConnectionOutgoingInitOpts {
10+
// "/dns4/1.k8.openmina.com/tcp/31968/p2p/12D3KooWPayQEdprqY2m3biReUUybA5LoULpJE7YWu6wetEKKELv",
11+
12+
let multiaddr = env::var("REPLAYER_MULTIADDR")
13+
.expect("must set variable `REPLAYER_MULTIADDR`")
14+
.parse::<libp2p::Multiaddr>()
15+
.expect("`REPLAYER_MULTIADDR` must be a valid multiaddress");
16+
(&multiaddr).try_into().expect("must be valid init opts")
17+
}
18+
19+
pub fn devnet() -> Vec<ListenerNode> {
20+
let seeds = std::env::var("OPENMINA_SCENARIO_SEEDS")
21+
.unwrap_or_else(|_| node::p2p::DEVNET_SEEDS.join(" "));
22+
seeds
23+
.split_whitespace()
24+
.map(P2pConnectionOutgoingInitOpts::from_str)
25+
.filter_map(Result::ok)
26+
.map(Into::into)
27+
.collect()
28+
}

node/testing/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ pub mod scenarios;
1212
pub mod service;
1313
pub mod simulator;
1414

15+
pub mod hosts;
1516
pub mod network_debugger;
1617

1718
mod server;

node/testing/src/scenarios/p2p/pubsub.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
use std::time::Duration;
22

33
use crate::{
4+
hosts,
45
node::RustNodeTestingConfig,
5-
scenario::ListenerNode,
66
scenarios::{ClusterRunner, Driver},
77
};
88

@@ -16,7 +16,7 @@ impl P2pReceiveBlock {
1616
// make sure it will not ask initial peers
1717
.ask_initial_peers_interval(Duration::from_secs(3600))
1818
.max_peers(1)
19-
.initial_peers(vec![ListenerNode::Custom("/dns4/seed-2.devnet.gcp.o1test.net/tcp/10003/p2p/12D3KooWLjs54xHzVmMmGYb7W5RVibqbwD1co7M2ZMfPgPm7iAag".parse().unwrap())]);
19+
.initial_peers(vec![hosts::devnet()[0].clone()]);
2020
let retransmitter_openmina_node = runner.add_rust_node(config);
2121
let retransmitter_peer_id = runner
2222
.node(retransmitter_openmina_node)

node/testing/src/scenarios/record_replay/bootstrap.rs

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
use std::time::Duration;
22

3-
use node::{p2p::connection::outgoing::P2pConnectionOutgoingInitOpts, ActionKind};
3+
use node::ActionKind;
44
use openmina_node_native::replay_state_with_input_actions;
55

66
use crate::{
7+
hosts,
78
node::{Recorder, RustNodeTestingConfig, TestPeerId},
89
scenarios::{ClusterRunner, RunCfg, RunCfgAdvanceTime},
910
};
@@ -15,17 +16,7 @@ pub struct RecordReplayBootstrap;
1516

1617
impl RecordReplayBootstrap {
1718
pub async fn run(self, mut runner: ClusterRunner<'_>) {
18-
let seeds_var = std::env::var("OPENMINA_SCENARIO_SEEDS");
19-
let seeds = seeds_var.as_ref().map_or_else(
20-
|_| node::p2p::DEVNET_SEEDS.to_vec(),
21-
|val| val.split_whitespace().collect(),
22-
);
23-
24-
let initial_peers = seeds
25-
.iter()
26-
.map(|s| s.parse::<P2pConnectionOutgoingInitOpts>().unwrap())
27-
.map(Into::into)
28-
.collect::<Vec<_>>();
19+
let initial_peers = hosts::devnet();
2920

3021
let node_id = runner.add_rust_node(RustNodeTestingConfig {
3122
initial_time: redux::Timestamp::global_now(),

node/testing/src/scenarios/solo_node/basic_connectivity_accept_incoming.rs

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ use node::p2p::{connection::outgoing::P2pConnectionOutgoingInitOpts, PeerId};
77
use rand::Rng;
88

99
use crate::{
10+
hosts,
1011
node::{DaemonJson, OcamlNodeTestingConfig, RustNodeTestingConfig},
1112
scenario::{ListenerNode, ScenarioStep},
1213
scenarios::ClusterRunner,
@@ -28,21 +29,10 @@ impl SoloNodeBasicConnectivityAcceptIncoming {
2829
const STEPS: usize = 6_000;
2930
const STEP_DELAY: Duration = Duration::from_millis(200);
3031

31-
let seeds_var = std::env::var("OPENMINA_SCENARIO_SEEDS");
32-
let seeds = seeds_var.as_ref().map_or_else(
33-
|_| node::p2p::DEVNET_SEEDS.to_vec(),
34-
|val| val.split_whitespace().collect(),
35-
);
36-
37-
let initial_peers = seeds
38-
.iter()
39-
.map(|s| s.parse::<Multiaddr>().unwrap())
40-
.map(|maddr| P2pConnectionOutgoingInitOpts::try_from(&maddr).unwrap())
41-
.map(ListenerNode::from)
42-
.collect::<Vec<_>>();
32+
let initial_peers = hosts::devnet();
4333
eprintln!("set max peers per node: {MAX_PEERS_PER_NODE}");
44-
for seed in seeds {
45-
eprintln!("add initial peer: {seed}");
34+
for seed in &initial_peers {
35+
eprintln!("add initial peer: {seed:?}");
4636
}
4737
let config = RustNodeTestingConfig::devnet_default()
4838
.ask_initial_peers_interval(Duration::from_secs(3600))

node/testing/src/scenarios/solo_node/basic_connectivity_initial_joining.rs

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ use libp2p::Multiaddr;
77
use node::p2p::connection::outgoing::P2pConnectionOutgoingInitOpts;
88

99
use crate::{
10+
hosts,
1011
node::RustNodeTestingConfig,
1112
scenario::{ListenerNode, ScenarioStep},
1213
scenarios::ClusterRunner,
@@ -28,21 +29,10 @@ impl SoloNodeBasicConnectivityInitialJoining {
2829
const STEPS: usize = 3_000;
2930
const STEP_DELAY: Duration = Duration::from_millis(200);
3031

31-
let seeds_var = std::env::var("OPENMINA_SCENARIO_SEEDS");
32-
let seeds = seeds_var.as_ref().map_or_else(
33-
|_| node::p2p::DEVNET_SEEDS.to_vec(),
34-
|val| val.split_whitespace().collect(),
35-
);
36-
37-
let initial_peers = seeds
38-
.iter()
39-
.map(|s| s.parse::<Multiaddr>().unwrap())
40-
.map(|maddr| P2pConnectionOutgoingInitOpts::try_from(&maddr).unwrap())
41-
.map(ListenerNode::from)
42-
.collect::<Vec<_>>();
32+
let initial_peers = hosts::devnet();
4333
eprintln!("set max peers per node: {MAX_PEERS_PER_NODE}");
44-
for seed in seeds {
45-
eprintln!("add initial peer: {seed}");
34+
for seed in &initial_peers {
35+
eprintln!("add initial peer: {seed:?}");
4636
}
4737
let config = RustNodeTestingConfig::devnet_default()
4838
.ask_initial_peers_interval(Duration::from_secs(3600))

node/testing/src/scenarios/solo_node/bootstrap.rs

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
use std::time::Duration;
22

3-
use node::{
4-
p2p::connection::outgoing::P2pConnectionOutgoingInitOpts,
5-
transition_frontier::sync::TransitionFrontierSyncState,
6-
};
3+
use node::transition_frontier::sync::TransitionFrontierSyncState;
74
use tokio::time::Instant;
85

96
use crate::{
7+
hosts,
108
node::RustNodeTestingConfig,
119
scenario::{ListenerNode, ScenarioStep},
1210
scenarios::ClusterRunner,
@@ -27,16 +25,12 @@ impl SoloNodeBootstrap {
2725

2826
const TIMEOUT: Duration = Duration::from_secs(60 * 40);
2927

30-
const REPLAYER_1: & str =
31-
"/dns4/1.k8.openmina.com/tcp/31968/p2p/12D3KooWPayQEdprqY2m3biReUUybA5LoULpJE7YWu6wetEKKELv";
32-
let replayer = (&REPLAYER_1.parse::<libp2p::Multiaddr>().unwrap())
33-
.try_into()
34-
.unwrap();
28+
let replayer = hosts::replayer();
3529

36-
let node_id =
37-
runner.add_rust_node(RustNodeTestingConfig::devnet_default().initial_peers(vec![
38-
ListenerNode::Custom(P2pConnectionOutgoingInitOpts::LibP2P(replayer)),
39-
]));
30+
let node_id = runner.add_rust_node(
31+
RustNodeTestingConfig::devnet_default()
32+
.initial_peers(vec![ListenerNode::Custom(replayer)]),
33+
);
4034
eprintln!("launch Openmina node with default configuration, id: {node_id}");
4135

4236
let mut timeout = TIMEOUT;

0 commit comments

Comments
 (0)