Стартовая страница

# revoltech to All @ Re: Автодискавери @ idec.talks 22/11/24 06:04

Теперь о том, как автодискавери можно реализовать технически без завязки на внешний мир типа почт или форумов. Чисто один из вариантов.

1. Ноды, которые соглашаются на роль автокоординатора, открывают специальную эху node.list и специального пользователя с auth-строкой nodediscovery, который может писать только в эту эху.
2. При постинге в эту спецэху те ноды, согласившиеся на роль автокоординатора, обязаны валидировать поступающие URL на предмет наличия API /list.txt, /e и /u/e с проверкой доступности первой попавшейся в list.txt эхи. Все посты, которые не проходят валидацию, не должны попадать в спецэху.
3. Если конкретный URL уже был запощен в спецэху, валидацию он также не проходит.
4. Эха node.list синхронизируется между всеми узлами так же, как и все остальные (idec.talks, например).
5. Обычные поинты читают эту эху и находят новые для себя станции.



# shaos to revoltech @ Re: Автодискавери @ idec.talks 22/11/24 06:25

1. Это надо создавать узлы с разными правами пользователей - пока таких в природе не существует

P.S. А как это Re: Автодискавери, но без repto?



# doesnm to revoltech @ Re: Автодискавери @ idec.talks 22/11/24 06:39

revoltech> Теперь о том, как автодискавери можно реализовать технически без завязки на внешний мир типа почт или форумов. Чисто один из вариантов.

Это все хорошо, но что будет если через автодискавери попадет вредоносная нода которая будет подделывать сообщения? Что-то подобное в yarn уже было: https://lyse.isobeef.org/tmp/burglary.png (первое сообщение подделано)

+++ Никто не знает, как правильно. Так зачем же выдумывать правила?



# foxears to All @ Re: Автодискавери @ idec.talks 23/11/24 06:20


Мой вариант.
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




# foxears to All @ Re: Автодискавери @ idec.talks 23/11/24 07:36

У тебя же как-раз разные iii-web.php и iii-point.php
Из-за этого не сразу понял как с тебя сообщения забирать.



# foxears to All @ Re: Автодискавери @ idec.talks 23/11/24 15:36

Сделал на скорую руку первый этап автодискавери.
Запрос вида /d/$SHEME/url или /d/$SHEME/url/node%20name, где $SHEME = http или https, добавляет строку в nodes.txt после проверки что url это ii-сервер (проверяется наличие list.txt, /u/e/ и /u/m/). Ответ может быть 200 - строка добавлена, 304 - станция уже в списке, 404 - сервер не ii. nodes.txt содержит url и опционально имя, разделённые табом. Парсинг чужих nodes.txt пока не реализован, как и создание сообщений в эхе, и автоудаление отвалившихся.









# foxears to doesnm @ Re: Автодискавери @ idec.talks 29/11/24 14:57

У меня в https://idec.foxears.su/nodes.txt есть все известные на данный момент станции (кроме новичка кторый писал в idec.talks сегодня). К сожалению, никто кроме меня не поддерживает этот список и обмениваться не с кем, соответственно.

2liathit, можешь свой сервер добавить в мой список станций самостоятелно сделав запрос вида curl -v https://idec.foxears.su/d/{тут http или https}/{адрес сервера без http[s]://, обработанное urlencode}/{самоназвание сервера обработанное urlencode}, например https://idec.foxears.su/d/https/sprinternet.io%2Fiii%2F/spnet



# foxears to doesnm @ Re: Автодискавери @ idec.talks 29/11/24 15:00

А понял о чём ты, но тогда нужно что бы кто-то еще эти nodes.txt поддерживал:)



# foxears to liathit @ Re: Автодискавери @ idec.talks 02/12/24 17:31

Что конкретно вводил? Я как мог протестил локально, но что-то не учёл возможно. Добавил себе отладочные сообщения на эндпойнт /d/



# foxears to liathit @ Re: Автодискавери @ idec.talks 02/12/24 20:16

Твоя нода не проходит проверку на ii-шность, потому что в hamradio.73 у тебя нет сообщений :). Слегка исправил проверку на такой случай, можешь пробовать снова, url верный используешь.