Skip to content

Commit

Permalink
fixes and cleanups after rebase
Browse files Browse the repository at this point in the history
  • Loading branch information
Frando committed Mar 7, 2024
1 parent e8709fb commit f5fe772
Show file tree
Hide file tree
Showing 8 changed files with 24 additions and 53 deletions.
1 change: 0 additions & 1 deletion iroh-net/src/derp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ mod codec;
pub mod http;
mod map;
mod metrics;
pub(crate) mod pkarr_announce;
pub(crate) mod server;
pub(crate) mod types;

Expand Down
1 change: 0 additions & 1 deletion iroh-net/src/derp/http/client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -389,7 +389,6 @@ impl Client {
/// If there is already an active derp connection, returns the already
/// connected [`crate::derp::client::Client`].
pub async fn connect(&self) -> Result<(DerpClient, usize), ClientError> {

self.send_actor(ActorMessage::Connect).await
}

Expand Down
6 changes: 5 additions & 1 deletion iroh-net/src/derp/http/server.rs
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,11 @@ impl ServerBuilder {
pub async fn spawn(self) -> Result<Server> {
ensure!(self.secret_key.is_some() || self.derp_override.is_some(), "Must provide a `SecretKey` for the derp server OR pass in an override function for the 'derp' endpoint");
let (derp_handler, derp_server, mesh_clients) = if let Some(secret_key) = self.secret_key {
let server = crate::derp::server::Server::new(secret_key.clone(), self.mesh_key, self.pkarr_relay);
let server = crate::derp::server::Server::new(
secret_key.clone(),
self.mesh_key,
self.pkarr_relay,
);
let packet_fwd = server.packet_forwarder_handler();
let mesh_clients = if let Some(mesh_addrs) = self.mesh_derpers {
ensure!(
Expand Down
30 changes: 0 additions & 30 deletions iroh-net/src/derp/pkarr_announce.rs

This file was deleted.

2 changes: 1 addition & 1 deletion iroh-net/src/discovery/pkarr_relay_publish.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ use crate::{discovery::Discovery, dns::node_info::NodeInfo, key::SecretKey, Addr
pub const IROH_TEST_PKARR_RELAY: &str = "https://testdns.iroh.link/pkarr";

/// Default TTL for the _iroh_node TXT record in the pkarr signed packet
const DEFAULT_PKARR_TTL: u32 = 30;
pub const DEFAULT_PKARR_TTL: u32 = 30;

/// Publish node info to a pkarr relay.
#[derive(derive_more::Debug, Clone)]
Expand Down
7 changes: 5 additions & 2 deletions iroh-net/src/dns/node_info.rs
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,11 @@ impl From<NodeInfo> for AddrInfo {

impl NodeInfo {
/// Create a new [`NodeInfo`] from its parts.
pub fn new(node_id: NodeId, derp_url: Option<Url>) -> Self {
Self { node_id, derp_url }
pub fn new(node_id: NodeId, derp_url: Option<impl Into<Url>>) -> Self {
Self {
node_id,
derp_url: derp_url.map(Into::into),
}
}

/// Convert this node info into a DNS attribute string.
Expand Down
23 changes: 12 additions & 11 deletions iroh-net/src/magicsock/derp_actor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,9 @@ use tokio_util::sync::CancellationToken;
use tracing::{debug, info, info_span, trace, warn, Instrument};

use crate::{
derp::{
self, http::ClientError, pkarr_announce::create_signed_packet, DerpUrl, ReceivedMessage,
MAX_PACKET_SIZE,
},
derp::{self, http::ClientError, DerpUrl, ReceivedMessage, MAX_PACKET_SIZE},
discovery::pkarr_relay_publish::DEFAULT_PKARR_TTL,
dns::node_info::NodeInfo,
key::{PublicKey, PUBLIC_KEY_LENGTH},
};

Expand Down Expand Up @@ -429,18 +428,20 @@ impl DerpActor {
}

async fn pkarr_announce_to_derp(&self, my_derp: &DerpUrl) -> anyhow::Result<()> {
if let Some(opts) = &self.conn.pkarr_announce {
if let Some(_opts) = &self.conn.pkarr_announce {
let s = self
.active_derp
.iter()
.find_map(|(derp_url, (s, _))| (derp_url == my_derp).then_some(s))
.context("home derp not in list of active derps")?;
let addrs = opts.include_addrs.then(|| {
let local_endpoints = self.conn.endpoints.read();
let local_endpoints = local_endpoints.iter().map(|ep| ep.addr);
local_endpoints.collect()
});
let packet = create_signed_packet(&self.conn.secret_key, my_derp, addrs)?;
// TODO: support direct addrs?
// let addrs = opts.include_addrs.then(|| {
// let local_endpoints = self.conn.endpoints.read();
// let local_endpoints = local_endpoints.iter().map(|ep| ep.addr);
// local_endpoints.collect()
// });
let info = NodeInfo::new(self.conn.secret_key.public(), Some(my_derp.clone()));
let packet = info.to_pkarr_signed_packet(&self.conn.secret_key, DEFAULT_PKARR_TTL)?;
s.send(ActiveDerpMessage::PkarrPublish(packet)).await?;
}
Ok(())
Expand Down
7 changes: 1 addition & 6 deletions iroh/src/commands/start.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ use iroh::{
};
use iroh_net::{
derp::{DerpMap, DerpMode},
discovery::{dns::DnsDiscovery, pkarr_relay_publish, CombinedDiscovery},
discovery::{dns::DnsDiscovery, CombinedDiscovery},
key::SecretKey,
};
use quic_rpc::{transport::quinn::QuinnServerEndpoint, ServiceEndpoint};
Expand Down Expand Up @@ -223,11 +223,6 @@ pub(crate) async fn start_node(
let mut discovery = CombinedDiscovery::new();
let dns_discovery = DnsDiscovery::with_n0_testdns();
discovery.add(dns_discovery);
// // TODO: We don't want nodes to self-publish. Remove once publishing over derpers lands.
// let pkarr_publish = pkarr_relay_publish::Publisher::new(
// pkarr_relay_publish::Config::n0_testdns(secret_key.clone()),
// );
// discovery.add(pkarr_publish);

Node::builder(bao_store, doc_store)
.derp_mode(derp_mode)
Expand Down

0 comments on commit f5fe772

Please sign in to comment.