Как получить информацию обо всех узлах сети

:!: Внимание!
Начиная с версии 0.5 RC1 Yggdrasil больше не использует DHT. Информация в этой статье не актуальна для последних версий Yggdrasil.

Yggdrasil использует распределенную хеш-таблицу (DHT), в которой содержится вся необходимая информация для работы автоматической маршрутизации.

Обращаясь к этой хеш-таблице можно получить нужную нам информацию и далее, обращаясь к узлам с использованием Admin API, можно получить дополнительную информацию об узле.

На основе этого реализованы DHT-crawler'ы, собирающие информацию обо всех узлах. Реализация на Python. Наглядный пример: официальная карта сети.

Реализация crawler'a на go: https://github.com/Arceliar/yggdrasil-map/blob/master/scripts/crawler.go (или тут).

Собранная информация

В сети есть ресурсы, которые предоставляют с определенными интервалами собираемые crawler'ами данные.

Один из таки ресурсов: http://[316:c51a:62a3:8b9::2]/ (данные в формате json: http://[316:c51a:62a3:8b9::2]/result.json).

Эти данные можно любым удобным (или необходимым) способом трансформировать, анализировать и т.п.

Так, для примера, ниже приведена команда, с помощью которой можно вывести отсортированную по ключам (и адресам) табличку узлов, получаемую из этого файла.

jq -r --sort-keys '.[]|with_entries(.value = .value.address)' result.json | jq -r 'to_entries[] | "\(.key), \(.value)"' | more

(если jq еще нет в системе, её нужно установить: sudo apt install jq)

Обсуждение

Олег, 2023/06/04 14:53
Какой физический смысл имеет Coordinates который мы видим по getSelf ?
На карте дерева (https://yggdrasil-map.cwinfo.net) видим узлы вида Coords: [2 142 35 338 7 2 1 1] и Coords: [2 41] ... и даже Coords: [2]. Причём у "коротких" Coords совсем не "высокие" IP.
Везде в списке первой стоит 2-ка?

newbie, 2023/06/04 15:33
Физического смысла никакого.
Положение в дереве зависит от ключа.
d4708, 2023/09/17 09:31
Об архитектуре построения координат, почитать можно здесь:
https://github.com/matrix-org/pinecone/wiki/2.-Spanning-Tree#coordinates

Только авторизованные участники могут оставлять комментарии.
yggdrasil/crawler.txt · Последнее изменение: 2023/10/21 23:23 — newbie
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki