From e9cb4aa824f5675c18230ece4f384a463cc70439 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Sun, 16 Jan 2022 16:14:55 +0300 Subject: [PATCH] =?utf8?q?NNCP=20=D0=B2=20Yggdrasil=20=D1=81=D0=B5=D1=82?= =?utf8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit http://www.nncpgo.org/Yggdrasil.html https://yggdrasil-network.github.io/ https://github.com/neilalexander/yggmail NNCP теперь может выступать в качестве клиента сети Yggdrasil! Не используя никакого стороннего софта, не настраивая сторонних демонов. Идея, как и зачатки кода, полностью взяты из yggmail. nncp-daemon может работать в качестве listener ноды принимающей соединения от других участников, осуществляющей всю маршрутизацию и вообще работу. nncp-call* могут подключаться к любой Yggdrasil ноде и связываться с NNCP адресами. Из Yggdrasil используется только возможность отправки/приёма пакетов: никаких сетевых интерфейсов или вообще знаний об адресах иметь не нужно. Публичный ключ хоста, магическим образом становится IPv6 адресом для пакетов μTP транспортного протокола, достигая целевой ноды без вопросов туннелирования и прочего. Что приятно тем, что никакой возни с TUN интерфейсами не нужно вообще, где есть проблемы с не самыми свежими версиями ОС (883b33f7085a9dfd04fca75b056d0e0b4c3fdf73). Почему μTP? Я взял из yggmail-а. Видимо, проще на Go нет ничего другого для реализации транспортного протокола поверх пакетного сокета. Реализации TCP на pure Go я не видел. $ nncp-cfgnew -yggdrasl Public: c7274667c6... Private: a87d6f98d... $ cat >> $NNCPCFG <