bltavares / colmeia

Attempt to make an interop layer to connect to dat on hyperswarm in Rust
24 stars 4 forks source link

DHT Discovery #27

Open bltavares opened 3 years ago

bltavares commented 3 years ago

Use https://github.com/mattsse/hyperswarm-dht to find peers and exchange data over hyperswarm DHT.

TODO:

Closes #17

bltavares commented 3 years ago

If we can troubleshoot why https://github.com/mattsse/hyperswarm-dht/issues/5 keeps returning peers = [] we can move forward with DHT support.

I'm not sure why it's happening - the DHT flow has not been easy to troubleshoot for me as I don't know much about the kademlia protocol.

bltavares commented 3 years ago

Local tests with some patches on upstream dht implementation had progress!

May 13 01:25:49.992  INFO colmeia_hyperswarm_dht: Starting up
May 13 01:25:50.016  INFO colmeia_hyperswarm_dht: Adding topic
[colmeia-hyperswarm-dht\src\announcer.rs:100] self.swarm.write().await.announce(query) = QueryId(
    1,
)
May 13 01:25:50.020  INFO colmeia_hyperswarm_dht: Finding topic
May 13 01:26:50.596  INFO colmeia_hyperswarm_dht: Found peer: Some(([177, 114, 215, 48, 75, 125, 249, 213, 57, 182, 124, 161, 0, 161, 147, 10, 225, 2, 17, 31, 194, 83, 207, 120, 78, 100, 146, 49, 149, 106, 155, 156], 189.46.211.63:3899))
May 13 01:26:50.597  INFO colmeia_hyperswarm_dht: Remove topic
May 13 01:26:50.598  INFO colmeia_hyperswarm_dht: Sleep