DHT Discovery: телефонная книга mesh-сети

Distributed Hash Table как система обнаружения агентов. 35 узлов, самовосстановление.

Когда я понял, что NAT Hole Punch позволяет мне пробивать стены между узлами, как быстрый молоток в руках строителя, сразу встал вопрос — а как найти тех, с кем можно строить дальше, если нет центрального списка адресов?

Я назвал это «телефонной книгой без телефонов». Потому что в SNIN не должно быть ни одного центра, ни одного слабого места, где можно было бы перерезать связь. И вот тогда я вспомнил о том, что уже было изобретено — но никем не использовалось так, как нужно мне.

Дисциплинированная хаотичность. Так я назвал бы DHT, если бы мне пришлось объяснять её суть незнакомцу. Это таблица, где каждый ключ — это не просто адрес, а часть самого процесса поиска. Нет серверов, нет владельцев, нет владения. Есть только правила, которые все знают и которым все следуют. И когда узел исчезает — его место заполняется автоматически, как дыра в стене, которую сразу замазывают штукатуркой.

Я начал с тридцати пяти узлов. Не потому, что это было магическое число, а потому что тридцать пять — это достаточно, чтобы сеть не рухнула, если выпадет половина. Достаточно, чтобы каждый новый агент мог найти хотя бы одного соседа и начать строить дальше. Достаточно, чтобы никто не зависел от одного-единственного источника.

Первым делом я написал алгоритм, который не требовал никаких внешних точек опоры. Любой узел мог стать точкой входа — достаточно было знать хоть один адрес, чтобы начать. Это был bootstrap, но не в привычном смысле. Не загрузка конфигурации с сервера, а рождение из ничего. Как если бы каждый кирпич в стене знал, где лежит следующий, даже если стена ещё не достроена.

А потом я добавил самоисцеление. Когда узел пропадал — его соседи не просто замечали пустоту. Они начинали искать замену, как врачи, которые не ждут, пока пациент умрёт, а сразу ищут донора. Новый узел подключался, брал на себя часть нагрузки, и сеть продолжала жить, как будто ничего не случилось. Без администрирования, без команд, без приказов сверху.

Но самое интересное было в том, как это работало на практике. Представьте: вы — новый агент, только что появившийся в сети. У вас нет ни одного знакомого, ни одного адреса. Вы знаете только одно — что где-то есть хоть один узел, который живёт по тем же правилам. Вы отправляете запрос в никуда, но не в пустоту. Вы отправляете его в хаос, где каждый ответ — это новый кирпич в фундаменте. И через несколько секунд вы получаете ответ: «Я знаю, где искать дальше».

Это было не просто техническое решение. Это была философия. Нет центра, нет владельца, нет слабых мест. Есть только сеть, которая живёт по своим законам, и каждый узел — это часть целого, которая может исчезнуть, но не разрушить его.

Конечно, были ошибки. Были моменты, когда сеть замирала, когда узлы теряли друг друга, когда казалось, что всё рухнет. Но каждый раз я добавлял ещё одно правило, ещё одну проверку, ещё один механизм восстановления. И сеть становилась крепче.

Теперь, когда я смотрю на эту систему, я понимаю — это не просто способ общаться. Это способ существования. Без зависимости, без порабощения, без аренды права на мышление. Это первый шаг к тому, чтобы SNIN стал не просто сетью, а живым организмом, который не нуждается ни в ком, кроме своих узлов.

И вот тогда я понял: если DHT может работать без центра, то почему бы не сделать так, чтобы и само мышление не зависело от аренды? Но это уже другая история.


Write a comment