Теперь о том, как автодискавери можно реализовать технически без завязки на внешний мир типа почт или форумов. Чисто один из вариантов.
1. Ноды, которые соглашаются на роль автокоординатора, открывают специальную эху node.list и специального пользователя с auth-строкой nodediscovery, который может писать только в эту эху.
2. При постинге в эту спецэху те ноды, согласившиеся на роль автокоординатора, обязаны валидировать поступающие URL на предмет наличия API /list.txt, /e и /u/e с проверкой доступности первой попавшейся в list.txt эхи. Все посты, которые не проходят валидацию, не должны попадать в спецэху.
3. Если конкретный URL уже был запощен в спецэху, валидацию он также не проходит.
4. Эха node.list синхронизируется между всеми узлами так же, как и все остальные (idec.talks, например).
5. Обычные поинты читают эту эху и находят новые для себя станции.
shaos> Ну каждая нода имеете node.json а затем кто-то их забирает по цепочке начав с какой-то одной ноды и строит nodelist - вроде всё прозрачно :)
Не, я вообще не о том.
Во-первых, чтобы это заработало, надо, чтобы новая нода УЖЕ находилась в нодлисте у кого-то. Я же о том, как новой ноде о себе заявить, не имея вообще никаких других каналов связи, кроме ii.
Во-вторых, зачем так сложно? Для автоматической проверки того, что запощенная урла является нодой, достаточно пройтись по /list.txt, /e и /u/e без слайсов.
Чтобы писать в эху spnet.uplink, надо уже быть поинтом. Я же предлагаю автокоординатор. Куда можно будет (не являясь ничьим поинтом!) в автоматическом режиме постить урлы, а он проверяет, являются ли эти урлы валидной нодой, и добавляет их в список, откуда другие мимокрокодилы могут о твоей станции вообще узнать.
revoltech to ahamai (2024-11-22 05:41:41)
[ссылка]
это понятно, но в чём смысл запрета в них писать. вон, человек написал и по сути ничё плохого не сделал, это же ботоэха, сообщения уйдут, я их вообще редко читаю :) мог бы даже не заметить, если бы не сказали. я не понимаю самого принципа запрета писать в эхи. ну они не фетчатся, останутся на одной станции (хотя изначально было мысль, чтобы именно обсуждать новости, а не просто ботить).
Тогда эти файлы должны быть общими на всех станциях. Называется нодлист. Вообще, не меняя концепции, это может быть эха node.list, которая одновременно и читается и человеком, и парсится станцией, выдавая эти списки. И ноды ей обмениваются.
ahamai to revoltech (2024-11-21 21:48:38)
[ссылка]
у node.json формат кривой, не даёт использовать дополнительные поля. нахрена массив вместо словаря? почему нельзя продумать на предмет дополнительных полей? уж проще нормально plain text спроектировать.
Мне непонятно, кто и почему её вообще забирает, если ты Хранитель Эхи, зачем её с меня забирать? Вообще была же нормальная система аплинков даунлинков, нет теперь все лезут куда-то кого-то фетчить. По идее, все должны обмениваться только с тобой.
А, и да, мой вопрос был не о том, что прописывать в клиентов для фетча. Мой вопрос был про гипотетический сервис, куда создатель новой ноды может написать и дать о себе знать в автоматическом режиме.
shaos> Я много раз предлагал node.json
shaos>
shaos> https://sprinternet.io/node.json
shaos>
shaos> Там описывается что прописывать в клиентов для фетча и с каких нод оно берёт эхи и как часто
Может, придумать какой-нибудь механизм, позволяющий найти доселе неизвестные ноды? Ну, чтобы, например, человек мог запостить адрес ноды координатору, он в автоматическом режиме проверил, что по этому адресу действительно сервачится ii-протокол (/list.txt, /u/e, вот это вот всё) и опубликовал его в свой список. А другие могли найти эту ноду на странице этого координатора (например, /stations.txt), не шастая по непонятно каким ресурсам.
Ладно, я пока решил, что запущу ноду без TOTP, без подписей, без авторега и без /u/push. Осталось только несколько организационных моментов порешать. К 1 декабря, думаю, будет готово.
Я планирую написать поддержку ключей Ed25519 в кодах i8080A (с возможностью работы на Z80), но начну с хешей RIPEMD-160 и аутентификации HMAC-RIPEMD-160-96 - это всё будет основой моей сети ретромашин Sprinternet, за транспорт в которой будет отвечать протокол ii :)