https://github.com/perguth/hyper-yggdrasil
Allow Yggdrasil Network nodes to connect via HyperDHT by @holepunchto.
https://github.com/perguth/hyper-yggdrasil
networking p2p yggdrasil-network
Last synced: 2 months ago
JSON representation
Allow Yggdrasil Network nodes to connect via HyperDHT by @holepunchto.
- Host: GitHub
- URL: https://github.com/perguth/hyper-yggdrasil
- Owner: perguth
- License: apache-2.0
- Created: 2024-05-07T17:38:42.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-05-08T22:59:24.000Z (about 1 year ago)
- Last Synced: 2025-02-04T18:48:55.482Z (4 months ago)
- Topics: networking, p2p, yggdrasil-network
- Language: JavaScript
- Homepage:
- Size: 34.8 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Hyper-Yggdrasil
> Allow two [Yggdrasil](https://yggdrasil-network.github.io/) nodes to connect via [hyperdht](https://github.com/holepunchto/hyperdht).
- Yggdrasil is a research project trying to find a [scalable and egalitarian network routing scheme](https://yggdrasil-network.github.io/about.html).
- Hyper-Yggdrasil tries to add [hole punching](https://en.wikipedia.org/wiki/Hole_punching_(networking)) to the mix by connecting nodes via [Hyperswarm DHT](https://github.com/holepunchto/hyperdht).This proof of concept works the following way:
```
01 | Yggdrasil instance no. 1
02 | 🡲 tcp://localhost-1
03 | 🡲 NodeJS: `net` ⇿ `hyperdht`
04 | 🡲 INTERNET
05 | 🡰 NodeJS: `hyperdht` ⇿ `net`
06 | 🡰 tcp://localhost-2
07 | 🡰 Yggdrasil instance no. 2
```## Screencast

It shows:
1. Two NodeJS scripts are connected via HyperDHT. They also open a local TCP ports.
2. Yggdrasil is started connected to the local HyperDHT server/client via TCP.
3. IPv6 pings are sent via Yggdrasil.
4. Encrypted traffic is observed, pings succeed.## Related
- Yggdrasil Network main page: https://yggdrasil-network.github.io/
- Yggdrasil Matrix channel: https://matrix.to/#/#yggdrasil:matrix.org
- A ChromeOS/Linux setup convenience script: https://github.com/perguth/yggdrasil-chromeos
- A public node to play around with: https://ygg.thingylabs.io/
- The two main clients:
- Yggstack (netstack client): https://github.com/yggdrasil-network/yggstack
- Yggdrasil (server daemon): https://github.com/yggdrasil-network/yggdrasil-go
- Yggdrasil-JS (wip): https://github.com/Saiv46/yggdrasil-js
- Public peer list: https://github.com/yggdrasil-network/public-peers***
👋 Idea kicked off at [Hackergarten Stuttgart](https://www.meetup.com/de-DE/hackergarten-stuttgart/) ([#Hackergarten](https://github.com/topics/hackergarten)).