Connecting two computers over the Internet is difficult. Software needs to negotiate NATs, firewalls, and limited IPv4 addresses. To overcome this issue, the Beaker browser team is releasing a new Kademlia DHT-based toolset for connecting peers called 'Hyperswarm'.
Currently the team uses a tracker to get users connected. However, to move towards a more decentralized model, the team has been working on Hyperswarm to improve the reliability of the Dat project connections.
Hyperswarm is a stack of networking modules that finds peers and creates reliable connections. Users join the swarm for a "topic". They periodically query other peers who are part of the topic. To establish a connection between peers, Hyperswarm creates a socket between them using either UTP or TCP. It uses a Kademlia DHT to track peers and arrange connections. The DHT itself includes mechanisms to establish a direct connection between two peers in which one or both are behind firewalls or behind routers that use network address translation (NAT).
DHTs have a number of denial-of-service vectors. There are some known mitigations for the same, but they have tradeoffs. The team is thinking through these tradeoffs and will iterate on this over time.
Hyperswarm does not hide users’ IPs. Devices join topics by listing their IP so that other devices can establish connections. The Dat protocol, however, takes steps to hide the topics’ contents. When downloading a dat, the protocol hashes the dat’s key to create the swarm topic. Only those who know the dat’s key can access the dat’s data or create new connections to people in the topic. The members of the topics are public.
The team will be updating the tracker server to make the deployment backward compatible. This will make it possible for old Dat clients to connect using the tracker, while new clients can connect using the DHT.
Hyperswarm is MIT licensed open-source and can be found at the following repositories: Network, discovery, dht
To know more about this preview release, head over to pfrazee.hasbase.io.
Linkerd 2.0 is now generally available with a new service sidecar design
Red Hat Enterprise Linux 7.6 Beta released with focus on security, cloud, and automation
Android Studio 3.2 releases with Android App Bundle, Energy Profiler, and more!