Skip to content

Commit 56c0f28

Browse files
authored
Merge pull request #783 from openmina/p2p/dns
Resolve hostname
2 parents 1c10258 + 803f778 commit 56c0f28

29 files changed

+348
-168
lines changed

core/src/network.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -172,12 +172,12 @@ pub mod devnet {
172172

173173
pub fn default_peers() -> Vec<&'static str> {
174174
vec![
175-
// "/dns4/seed-1.devnet.gcp.o1test.net/tcp/10003/p2p/12D3KooWAdgYL6hv18M3iDBdaK1dRygPivSfAfBNDzie6YqydVbs",
176-
// "/dns4/seed-2.devnet.gcp.o1test.net/tcp/10003/p2p/12D3KooWLjs54xHzVmMmGYb7W5RVibqbwD1co7M2ZMfPgPm7iAag",
177-
// "/dns4/seed-3.devnet.gcp.o1test.net/tcp/10003/p2p/12D3KooWEiGVAFC7curXWXiGZyMWnZK9h8BKr88U8D5PKV3dXciv",
178-
"/ip4/34.45.167.81/tcp/10003/p2p/12D3KooWAdgYL6hv18M3iDBdaK1dRygPivSfAfBNDzie6YqydVbs",
179-
"/ip4/34.28.194.121/tcp/10003/p2p/12D3KooWLjs54xHzVmMmGYb7W5RVibqbwD1co7M2ZMfPgPm7iAag",
180-
"/ip4/34.44.189.148/tcp/10003/p2p/12D3KooWEiGVAFC7curXWXiGZyMWnZK9h8BKr88U8D5PKV3dXciv",
175+
"/dns4/seed-1.devnet.gcp.o1test.net/tcp/10003/p2p/12D3KooWAdgYL6hv18M3iDBdaK1dRygPivSfAfBNDzie6YqydVbs",
176+
"/dns4/seed-2.devnet.gcp.o1test.net/tcp/10003/p2p/12D3KooWLjs54xHzVmMmGYb7W5RVibqbwD1co7M2ZMfPgPm7iAag",
177+
"/dns4/seed-3.devnet.gcp.o1test.net/tcp/10003/p2p/12D3KooWEiGVAFC7curXWXiGZyMWnZK9h8BKr88U8D5PKV3dXciv",
178+
// "/ip4/34.45.167.81/tcp/10003/p2p/12D3KooWAdgYL6hv18M3iDBdaK1dRygPivSfAfBNDzie6YqydVbs",
179+
// "/ip4/34.28.194.121/tcp/10003/p2p/12D3KooWLjs54xHzVmMmGYb7W5RVibqbwD1co7M2ZMfPgPm7iAag",
180+
// "/ip4/34.44.189.148/tcp/10003/p2p/12D3KooWEiGVAFC7curXWXiGZyMWnZK9h8BKr88U8D5PKV3dXciv",
181181
]
182182
}
183183
}

node/native/src/node/builder.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,17 @@ impl NodeBuilder {
271271
self.initial_peers
272272
};
273273

274+
let initial_peers = initial_peers
275+
.into_iter()
276+
.filter_map(|opts| match opts {
277+
P2pConnectionOutgoingInitOpts::LibP2P(mut opts) => {
278+
opts.host = opts.host.resolve()?;
279+
Some(P2pConnectionOutgoingInitOpts::LibP2P(opts))
280+
}
281+
x => Some(x),
282+
})
283+
.collect();
284+
274285
let srs = self.verifier_srs.unwrap_or_else(get_srs);
275286
let block_verifier_index = self
276287
.block_verifier_index

node/src/action_kind.rs

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ use crate::p2p::network::identify::stream::P2pNetworkIdentifyStreamAction;
5151
use crate::p2p::network::identify::stream_effectful::P2pNetworkIdentifyStreamEffectfulAction;
5252
use crate::p2p::network::identify::P2pNetworkIdentifyAction;
5353
use crate::p2p::network::kad::bootstrap::P2pNetworkKadBootstrapAction;
54+
use crate::p2p::network::kad::kad_effectful::P2pNetworkKadEffectfulAction;
5455
use crate::p2p::network::kad::request::P2pNetworkKadRequestAction;
5556
use crate::p2p::network::kad::stream::P2pNetworkKademliaStreamAction;
5657
use crate::p2p::network::kad::{P2pNetworkKadAction, P2pNetworkKademliaAction};
@@ -313,9 +314,13 @@ pub enum ActionKind {
313314
P2pNetworkIdentifyStreamPrune,
314315
P2pNetworkIdentifyStreamRemoteClose,
315316
P2pNetworkIdentifyStreamEffectfulSendIdentify,
317+
P2pNetworkKadBootstrapAppendRequest,
316318
P2pNetworkKadBootstrapCreateRequests,
319+
P2pNetworkKadBootstrapFinalizeRequests,
317320
P2pNetworkKadBootstrapRequestDone,
318321
P2pNetworkKadBootstrapRequestError,
322+
P2pNetworkKadEffectfulDiscovered,
323+
P2pNetworkKadEffectfulMakeRequest,
319324
P2pNetworkKadRequestError,
320325
P2pNetworkKadRequestMuxReady,
321326
P2pNetworkKadRequestNew,
@@ -611,7 +616,7 @@ pub enum ActionKind {
611616
}
612617

613618
impl ActionKind {
614-
pub const COUNT: u16 = 504;
619+
pub const COUNT: u16 = 508;
615620
}
616621

617622
impl std::fmt::Display for ActionKind {
@@ -1075,6 +1080,7 @@ impl ActionKindGet for P2pNetworkAction {
10751080
Self::Yamux(a) => a.kind(),
10761081
Self::Identify(a) => a.kind(),
10771082
Self::Kad(a) => a.kind(),
1083+
Self::KadEffectful(a) => a.kind(),
10781084
Self::Pubsub(a) => a.kind(),
10791085
Self::PubsubEffectful(a) => a.kind(),
10801086
Self::Rpc(a) => a.kind(),
@@ -1718,6 +1724,15 @@ impl ActionKindGet for P2pNetworkKadAction {
17181724
}
17191725
}
17201726

1727+
impl ActionKindGet for P2pNetworkKadEffectfulAction {
1728+
fn kind(&self) -> ActionKind {
1729+
match self {
1730+
Self::Discovered { .. } => ActionKind::P2pNetworkKadEffectfulDiscovered,
1731+
Self::MakeRequest { .. } => ActionKind::P2pNetworkKadEffectfulMakeRequest,
1732+
}
1733+
}
1734+
}
1735+
17211736
impl ActionKindGet for P2pNetworkPubsubAction {
17221737
fn kind(&self) -> ActionKind {
17231738
match self {
@@ -1812,6 +1827,8 @@ impl ActionKindGet for P2pNetworkKadBootstrapAction {
18121827
fn kind(&self) -> ActionKind {
18131828
match self {
18141829
Self::CreateRequests => ActionKind::P2pNetworkKadBootstrapCreateRequests,
1830+
Self::AppendRequest { .. } => ActionKind::P2pNetworkKadBootstrapAppendRequest,
1831+
Self::FinalizeRequests => ActionKind::P2pNetworkKadBootstrapFinalizeRequests,
18151832
Self::RequestDone { .. } => ActionKind::P2pNetworkKadBootstrapRequestDone,
18161833
Self::RequestError { .. } => ActionKind::P2pNetworkKadBootstrapRequestError,
18171834
}

node/src/logger/logger_effects.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ pub fn logger_effects<S: Service>(store: &Store<S>, action: ActionWithMetaRef<'_
116116
P2pNetworkAction::Yamux(action) => action.action_event(&context),
117117
P2pNetworkAction::Rpc(action) => action.action_event(&context),
118118
P2pNetworkAction::Kad(action) => action.action_event(&context),
119+
P2pNetworkAction::KadEffectful(action) => action.action_event(&context),
119120
P2pNetworkAction::Pubsub(action) => action.action_event(&context),
120121
P2pNetworkAction::PubsubEffectful(action) => action.action_event(&context),
121122
P2pNetworkAction::Identify(action) => action.action_event(&context),

node/src/p2p/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ impl_into_global_action!(network::P2pNetworkSchedulerAction);
9595
impl_into_global_action!(network::kad::P2pNetworkKademliaAction);
9696
impl_into_global_action!(network::pubsub::P2pNetworkPubsubAction);
9797
impl_into_global_action!(network::pubsub::P2pNetworkPubsubEffectfulAction);
98+
impl_into_global_action!(network::kad_effectful::P2pNetworkKadEffectfulAction);
9899

99100
impl_into_global_action!(channels::P2pChannelsMessageReceivedAction);
100101
impl_into_global_action!(channels::best_tip::P2pChannelsBestTipAction);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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("/ip4/34.135.63.47/tcp/10001/p2p/12D3KooWLjs54xHzVmMmGYb7W5RVibqbwD1co7M2ZMfPgPm7iAag".parse().unwrap())]);
19+
.initial_peers(vec![ListenerNode::Custom("/dns4/seed-2.devnet.gcp.o1test.net/tcp/10003/p2p/12D3KooWLjs54xHzVmMmGYb7W5RVibqbwD1co7M2ZMfPgPm7iAag".parse().unwrap())]);
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/solo_node/bootstrap.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ impl SoloNodeBootstrap {
2828
const TIMEOUT: Duration = Duration::from_secs(60 * 40);
2929

3030
const REPLAYER_1: & str =
31-
"/ip4/135.181.217.23/tcp/31968/p2p/12D3KooWPayQEdprqY2m3biReUUybA5LoULpJE7YWu6wetEKKELv";
31+
"/dns4/1.k8.openmina.com/tcp/31968/p2p/12D3KooWPayQEdprqY2m3biReUUybA5LoULpJE7YWu6wetEKKELv";
3232
let replayer = (&REPLAYER_1.parse::<libp2p::Multiaddr>().unwrap())
3333
.try_into()
3434
.unwrap();

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@ impl SoloNodeSyncRootSnarkedLedger {
3737
eprintln!("launch Openmina node with default configuration, id: {node_id}");
3838

3939
const REPLAYER_1: &str =
40-
"/ip4/65.109.110.75/tcp/18302/p2p/12D3KooWD8jSyPFXNdAcMBHyHjRBcK1AW9t3xvnpfCFSRKMweVKi";
40+
"/dns4/web-node-1/tcp/18302/p2p/12D3KooWD8jSyPFXNdAcMBHyHjRBcK1AW9t3xvnpfCFSRKMweVKi";
4141
const REPLAYER_2: &str =
42-
"/ip4/65.109.110.75/tcp/18303/p2p/12D3KooWBxbfeaxGHxdxP3U5jRKpNK5wQmbjKywGJEqTCNpVPxqk";
42+
"/dns4/web-node-1/tcp/18303/p2p/12D3KooWBxbfeaxGHxdxP3U5jRKpNK5wQmbjKywGJEqTCNpVPxqk";
4343

4444
// Initiate connection to 2 replayers.
4545
runner

p2p/src/connection/outgoing/mod.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -382,7 +382,11 @@ impl TryFrom<&multiaddr::Multiaddr> for P2pConnectionOutgoingInitLibp2pOpts {
382382
host: match iter.next() {
383383
Some(Protocol::Ip4(v)) => Host::Ipv4(v),
384384
Some(Protocol::Dns(v) | Protocol::Dns4(v) | Protocol::Dns6(v)) => {
385-
Host::Domain(v.into_owned())
385+
Host::Domain(v.to_string()).resolve().ok_or(
386+
P2pConnectionOutgoingInitOptsParseError::Other(format!(
387+
"cannot resolve host {v}"
388+
)),
389+
)?
386390
}
387391
Some(_) => {
388392
return Err(P2pConnectionOutgoingInitOptsParseError::Other(

p2p/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,5 +144,6 @@ pub trait P2pActionTrait<State>:
144144
+ From<P2pChannelsSnarkJobCommitmentEffectfulAction>
145145
+ From<P2pChannelsRpcEffectfulAction>
146146
+ From<P2pChannelsSnarkEffectfulAction>
147+
+ From<P2pNetworkKadEffectfulAction>
147148
{
148149
}

0 commit comments

Comments
 (0)