|
Мой вариант. 1. Станция которая хочет заявить о себе миру делает GET-запрос вида /d/url-to-node/url-encoded-name-of-node на любую известную станцию, второй параметр не обязателен. 2. Станция получившая запрос проверяет что такой url ей не известен 3. Станция проверяет что по адресу из запроса действительно ii-нода 4. Станция добавляет ноду в /nodes.txt 5. Станция добавляет сообщение в эху node.list
Другая станция забирает /nodes.txt после чего повторяет пункты 2-5.
Основой распространия списка становится /nodes.txt. Эха node.list является локальной для каждой станции и не подлежит распространению.
Далее каждая станция раз в сутки проходит по списку нод из /nodes.txt и проверяет доступность (пункт 3), если проверка проваливается 7 раз, т.е. нода не доспутна неделю, то нода из списка маскируется, сообщение в эхе node.list вносится в чёрный список, т.е. новички эту ноду не увидят. В дальнейшем можно наверное раз в месяц просто удалять все замаскированные ноды из списка вместе с сообщениями из node.list
Примерный форман /nodes.txt url:name -masked-url:name
|