subject: Автодискавери
21.11.2024 17:03
revoltech (spnet, 4)
Может, придумать какой-нибудь механизм, позволяющий найти доселе неизвестные ноды? Ну, чтобы, например, человек мог запостить адрес ноды координатору, он в автоматическом режиме проверил, что по этому адресу действительно сервачится ii-протокол (/list.txt, /u/e, вот это вот всё) и опубликовал его в свой список. А другие могли найти эту ноду на странице этого координатора (например, /stations.txt), не шастая по непонятно каким ресурсам.
--------------------------------------------------------------------------------
subject: Re: Автодискавери
21.11.2024 19:45
shaos (spnet, 2) => bw2TdnUHtVWoawcVi0GS
Я много раз предлагал node.json
https://sprinternet.io/node.json
Там описывается что прописывать в клиентов для фетча и с каких нод оно берёт эхи и как часто
--------------------------------------------------------------------------------
subject: Re: Автодискавери
21.11.2024 20:14
revoltech (spnet, 4) => gTY146hkCPOI4JXCm6GF
shaos> Я много раз предлагал node.json
shaos>
shaos> https://sprinternet.io/node.json
shaos>
shaos> Там описывается что прописывать в клиентов для фетча и с каких нод оно берёт эхи и как часто
Вот только JSON must die.
--------------------------------------------------------------------------------
subject: Re: Автодискавери
21.11.2024 20:33
revoltech (spnet, 4) => gTY146hkCPOI4JXCm6GF
А, и да, мой вопрос был не о том, что прописывать в клиентов для фетча. Мой вопрос был про гипотетический сервис, куда создатель новой ноды может написать и дать о себе знать в автоматическом режиме.
--------------------------------------------------------------------------------
subject: Re: Автодискавери
21.11.2024 21:31
shaos (spnet, 2) => znkAAT4AiAz11yTYJVMa
Другого способа представлять разношерстные данные (которые не укладываются в одну таблицу) в текстовом виде нет - скажи спасибо, что не XML :)
--------------------------------------------------------------------------------
subject: Re: Автодискавери
21.11.2024 21:34
shaos (spnet, 2) => zMHZUznxew6iKnqG1HBG
Ну вот он даёт имя сервера, а автомат вытягивает node.json оттуда с именем ноды, роутингом и т.д. и встраивает ноду в общую топологию сети :)
--------------------------------------------------------------------------------
subject: Re: Автодискавери
22.11.2024 00:43
ahamai (blackcat, 2) => 7oo5LKXysKgPjni3etX3
у node.json формат кривой, не даёт использовать дополнительные поля. нахрена массив вместо словаря? почему нельзя продумать на предмет дополнительных полей? уж проще нормально plain text спроектировать.
--------------------------------------------------------------------------------
subject: Re: Автодискавери
22.11.2024 00:46
ahamai (blackcat, 2) => zMHZUznxew6iKnqG1HBG
В эху spnet.uplink? Заодно и познакомимся
--------------------------------------------------------------------------------
subject: Re: Автодискавери
22.11.2024 00:48
ahamai (blackcat, 2) => bw2TdnUHtVWoawcVi0GS/topicid/bw2TdnUHtVWoawcVi0GS
Тогда эти файлы должны быть общими на всех станциях. Называется нодлист. Вообще, не меняя концепции, это может быть эха node.list, которая одновременно и читается и человеком, и парсится станцией, выдавая эти списки. И ноды ей обмениваются.
--------------------------------------------------------------------------------
subject: Re: Автодискавери
22.11.2024 02:36
shaos (spnet, 2) => 24AQjSxjELdJOrwYliVq
Ну каждая нода имеете node.json а затем кто-то их забирает по цепочке начав с какой-то одной ноды и строит nodelist - вроде всё прозрачно :)
--------------------------------------------------------------------------------
subject: Re: Автодискавери
22.11.2024 08:41
revoltech (spnet, 4) => 24UA8lk5gxl8rrYOiCQ1
ahamai> В эху spnet.uplink? Заодно и познакомимся
Чтобы писать в эху spnet.uplink, надо уже быть поинтом. Я же предлагаю автокоординатор. Куда можно будет (не являясь ничьим поинтом!) в автоматическом режиме постить урлы, а он проверяет, являются ли эти урлы валидной нодой, и добавляет их в список, откуда другие мимокрокодилы могут о твоей станции вообще узнать.
--------------------------------------------------------------------------------
subject: Re: Автодискавери
22.11.2024 08:55
revoltech (spnet, 4) => E1JYNGL1KNTWYs8bR8Ou
shaos> Ну каждая нода имеете node.json а затем кто-то их забирает по цепочке начав с какой-то одной ноды и строит nodelist - вроде всё прозрачно :)
Не, я вообще не о том.
Во-первых, чтобы это заработало, надо, чтобы новая нода УЖЕ находилась в нодлисте у кого-то. Я же о том, как новой ноде о себе заявить, не имея вообще никаких других каналов связи, кроме ii.
Во-вторых, зачем так сложно? Для автоматической проверки того, что запощенная урла является нодой, достаточно пройтись по /list.txt, /e и /u/e без слайсов.
--------------------------------------------------------------------------------
subject: Re: Автодискавери
22.11.2024 08:55
shaos (spnet, 2) => 8lECawTx5I66iif7ZOty
Например мой "автокоординатор" это spnet.stats - я именно там заметил траффик от foxears.su ещё до того, как автор той ноды мне е-мейл написал ;)
--------------------------------------------------------------------------------
subject: Re: Автодискавери
22.11.2024 08:57
shaos (spnet, 2) => Zznlapp5MxuugD2nk83U
> зачем так сложно? Для автоматической проверки того, что запощенная урла является нодой, достаточно пройтись по /list.txt, /e и /u/e без слайсов.
И как ты оттуда узнаешь имя ноды и кого она фетчит?
--------------------------------------------------------------------------------
subject: Re: Автодискавери
22.11.2024 09:04
revoltech (spnet, 4)
Теперь о том, как автодискавери можно реализовать технически без завязки на внешний мир типа почт или форумов. Чисто один из вариантов.
1. Ноды, которые соглашаются на роль автокоординатора, открывают специальную эху node.list и специального пользователя с auth-строкой nodediscovery, который может писать только в эту эху.
2. При постинге в эту спецэху те ноды, согласившиеся на роль автокоординатора, обязаны валидировать поступающие URL на предмет наличия API /list.txt, /e и /u/e с проверкой доступности первой попавшейся в list.txt эхи. Все посты, которые не проходят валидацию, не должны попадать в спецэху.
3. Если конкретный URL уже был запощен в спецэху, валидацию он также не проходит.
4. Эха node.list синхронизируется между всеми узлами так же, как и все остальные (idec.talks, например).
5. Обычные поинты читают эту эху и находят новые для себя станции.
--------------------------------------------------------------------------------
subject: Re: Автодискавери
22.11.2024 09:08
revoltech (spnet, 4) => a19q1EotS77vnpfg333F
shaos> И как ты оттуда узнаешь имя ноды
А зачем? Имя ноды — вообще понятие эфемерное. Оно появляется только тогда, когда через ноду кто-то пишет. Для дискавери важна только урла.
shaos> и кого она фетчит?
Это интересует сисопов, а не юзеров, ищущих, кого бы ещё почитать.
--------------------------------------------------------------------------------
subject: Re: Автодискавери
22.11.2024 09:39
doesnm (tgi,8) => wgw8NsA3jzJchaa8zdF2
revoltech> Теперь о том, как автодискавери можно реализовать технически без завязки на внешний мир типа почт или форумов. Чисто один из вариантов.
Это все хорошо, но что будет если через автодискавери попадет вредоносная нода которая будет подделывать сообщения? Что-то подобное в yarn уже было: https://lyse.isobeef.org/tmp/burglary.png (первое сообщение подделано)
+++ Никто не знает, как правильно. Так зачем же выдумывать правила?
--------------------------------------------------------------------------------
subject: Re: Автодискавери
22.11.2024 09:23
revoltech (spnet, 4) => uDnaf5N4nUnD0Q00g8WW
shaos> Например мой "автокоординатор" это spnet.stats - я именно там заметил траффик от foxears.su ещё до того, как автор той ноды мне е-мейл написал ;)
Мы опять о разных вещах говорим. Поставь себя на место человека, который не может/не хочет регистрироваться ни через веб, ни через другие внешние каналы. Что ему делать? Создавать свою ноду. Как ему дать знать о её существовании другим участникам сети, не упираясь в поиск внешних контактов и языковой барьер, допустим? Статистика трафика — не аргумент, нода может вообще в .onion находиться, по трафику её не найдёшь.
Без фичи автокоординатора сеть не самодостаточна, вот что я хочу донести.
--------------------------------------------------------------------------------
subject: Re: Автодискавери
22.11.2024 09:25
shaos (spnet, 2) => wgw8NsA3jzJchaa8zdF2
1. Это надо создавать узлы с разными правами пользователей - пока таких в природе не существует
P.S. А как это Re: Автодискавери, но без repto?
--------------------------------------------------------------------------------
subject: Re: Автодискавери
22.11.2024 09:30
revoltech (spnet, 4) => bDK1uaIXF6BefL4A9yla
shaos> 1. Это надо создавать узлы с разными правами пользователей - пока таких в природе не существует
Блэт, серьёзно? Я один до поля acl в таблице auth додумался?..
2. Я вручную поле на All поменял.
--------------------------------------------------------------------------------
subject: Re: Автодискавери
22.11.2024 09:47
shaos (spnet, 2) => lxe557vp98vloYCx4JJS
> Я один до поля acl в таблице auth додумался?..
Это чего такое? Надо же чтобы в разных эхах разные права были - я какое-то время назад размышлял тут на эту тему - это надо группы городить и по группам разные доступы организовывать...
--------------------------------------------------------------------------------
subject: Re: Автодискавери
22.11.2024 09:52
revoltech (spnet, 4) => HstlIRUvDXxKH3Tlah2v
shaos> Это чего такое? Надо же чтобы в разных эхах разные права были
Это как раз оно самое. Если пустая строка — ноль прав, если * — можно постить во все эхи, если список эх через запятую — разрешённые эхи для постинга. Всё.
--------------------------------------------------------------------------------
subject: Re: Автодискавери
22.11.2024 09:54
revoltech (spnet, 4) => gy2igXbLl8mrcNdIvCJN
doesnm> Это все хорошо, но что будет если через автодискавери попадет вредоносная нода которая будет подделывать сообщения?
Ничего не будет. Это не для сисопов, а для юзеров. Разумеется, на основании автодискавери не должно автоматически приниматься решение о фетче с новой ноды. Это способ заявить о себе без внешних каналов, не более того.
--------------------------------------------------------------------------------
subject: Re: Автодискавери
22.11.2024 09:55
shaos (spnet, 2) => iyPJqur6ara27kYPMxGD
Ну допустим появилась ещё одна эха, куда можно писать "низшей касте" - ты будешь перебирать все записи пользователей и добавлять эту эху в каждую запись, где не звёздочка?
--------------------------------------------------------------------------------
subject: Re: Автодискавери
22.11.2024 09:59
revoltech (spnet, 4) => vl9tqIRpLLFp540UnmQ9
shaos> Ну допустим появилась ещё одна эха, куда можно писать "низшей касте" - ты будешь перебирать все записи пользователей и добавлять эту эху в каждую запись, где не звёздочка?
Да, а что в этом сложного? Один UPDATE-запрос с CONCAT.
--------------------------------------------------------------------------------
subject: Re: Автодискавери
22.11.2024 10:14
shaos (spnet, 2) => aIKlWOzeNdlflXdPAXmQ
Вручную? ;)
--------------------------------------------------------------------------------
subject: Re: Автодискавери
22.11.2024 10:45
revoltech (spnet, 4) => YBKDzNUqvEeG4B8eNpIB
shaos> Вручную? ;)
Какая разница, скриптом или вручную? Запрос-то всё равно один, независимо от количества таких пользователей.
--------------------------------------------------------------------------------
subject: Re: Автодискавери
23.11.2024 09:20
foxears (spnet, 5) => wgw8NsA3jzJchaa8zdF2
Мой вариант.
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
--------------------------------------------------------------------------------
subject: Re: Автодискавери
23.11.2024 09:33
ahamai (blackcat, 2) => cobdA9fxXEwmR7mich2a
урла должно быть два - пойнтовый и веб-интерфейс (если есть)
--------------------------------------------------------------------------------
subject: Re: Автодискавери
23.11.2024 09:51
shaos (spnet, 2) => 24UIbaOT2H0QnKgZDxkC
> урла должно быть два - пойнтовый и веб-интерфейс (если есть)
сейчас вроде бы у всех эти 2 урла одинаковые (даже у меня)
--------------------------------------------------------------------------------
subject: Re: Автодискавери
23.11.2024 10:36
foxears (spnet, 5) => wgw8NsA3jzJchaa8zdF2
У тебя же как-раз разные iii-web.php и iii-point.php
Из-за этого не сразу понял как с тебя сообщения забирать.
--------------------------------------------------------------------------------
subject: Re: Автодискавери
23.11.2024 10:47
shaos (spnet, 2) => j0MuKejAGWt2TzJT0ZQq
Теперь и то, и другое у меня https://sprinternet.io/iii/
Если ввести в браузере без параметров, то оно само перескочит на iii-web.php
А если добить урл параметрами (типа /u/e/ и т.д.), то оно через Rewrite модуль апача перевызовет внутри iii-point.php?q=/хвост (но снаружи оно так и останется /iii/u/e/...)
--------------------------------------------------------------------------------
subject: Re: Автодискавери
23.11.2024 10:59
shaos (spnet, 2) => qSbp1q9iBJhMQv9zK4OS
Надо чтоли какие-то StickyNotes справа от списка эх разместить с инструкциями как к ноде подключаться и что это вообще такое...
--------------------------------------------------------------------------------
subject: Re: Автодискавери
23.11.2024 18:36
foxears (spnet, 5) => wgw8NsA3jzJchaa8zdF2
Сделал на скорую руку первый этап автодискавери.
Запрос вида /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 пока не реализован, как и создание сообщений в эхе, и автоудаление отвалившихся.
--------------------------------------------------------------------------------
subject: Re: Автодискавери
23.11.2024 18:39
foxears (spnet, 5) => wgw8NsA3jzJchaa8zdF2
curl https://idec.foxears.su/nodes.txt
https://club.hugeping.ru
https://tgistation.ru tgistation
--------------------------------------------------------------------------------
subject: Re: Автодискавери
23.11.2024 22:58
shaos (spnet, 2) => JbnuxbaayXqAfuehmUcC
У меня имя просто spnet :)
--------------------------------------------------------------------------------
subject: Re: Автодискавери
23.11.2024 23:15
foxears (spnet, 5) => wgw8NsA3jzJchaa8zdF2
Не вопрос, поправил.
--------------------------------------------------------------------------------
subject: Re: Автодискавери
23.11.2024 23:40
shaos (spnet, 2) => LA78HAwKUaiJBmkXAYQ8
tgistation.ru это tgi
hugeping.tk это ping
(судя по заголовкам в генерируемых ими сообщениях)
--------------------------------------------------------------------------------
subject: Re: Автодискавери
28.11.2024 23:05
foxears (spnet, 5) => wgw8NsA3jzJchaa8zdF2
Новости с полей - https://github.com/ptah-alexs/nl-tool
--------------------------------------------------------------------------------
subject: Re: Автодискавери
29.11.2024 10:43
doesnm (tgi,8) => gRiIKQpyAAZr2zkc6upK
foxears> Новости с полей - https://github.com/ptah-alexs/nl-tool
Ник знакомый... Такой же ник был на лоре?
+++ Никто не знает, как правильно. Так зачем же выдумывать правила?
--------------------------------------------------------------------------------
subject: Re: Автодискавери
29.11.2024 16:07
doesnm (tgi,8) => gRiIKQpyAAZr2zkc6upK
foxears> Новости с полей - https://github.com/ptah-alexs/nl-tool
Если предусмотришь список которые ты забираешь с этих нод, то может быть аналог node.json выйдет
Я бы не отказался от карты сети
+++ Никто не знает, как правильно. Так зачем же выдумывать правила?
--------------------------------------------------------------------------------
subject: Re: Автодискавери
29.11.2024 17:57
foxears (spnet, 5) => wgw8NsA3jzJchaa8zdF2
У меня в 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
--------------------------------------------------------------------------------
subject: Re: Автодискавери
29.11.2024 18:17
doesnm (tgi,8) => dfAJ77j5T03JzJQQjYAO
foxears> У меня в https://idec.foxears.su/nodes.txt есть все известные на данный момент станции (кроме новичка кторый писал в idec.talks сегодня). К сожалению, никто кроме меня не поддерживает этот список и обмениваться не с кем, соответственно.
foxears> 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
Перечитал свое сообщение
Я имел ввиду список эх
+++ Никто не знает, как правильно. Так зачем же выдумывать правила?
--------------------------------------------------------------------------------
subject: Re: Автодискавери
29.11.2024 18:00
foxears (spnet, 5) => wgw8NsA3jzJchaa8zdF2
А понял о чём ты, но тогда нужно что бы кто-то еще эти nodes.txt поддерживал:)
--------------------------------------------------------------------------------
subject: Re: Автодискавери
29.11.2024 18:37
liathit (blackcat, 9) => dfAJ77j5T03JzJQQjYAO
> 2liathit, можешь свой сервер добавить в мой список станций самостоятелно сделав запрос вида...
--------------------------------------------------------------------------------
subject: Re: Автодискавери
29.11.2024 18:38
liathit (blackcat, 9) => 24Yb5eabJHSg7b7r0zb7
Принял! Попробую добавить)
--------------------------------------------------------------------------------
subject: Re: Автодискавери
02.12.2024 19:39
liathit (blackcat, 9) => AIrriePdEkKjROszlOwR
> можешь свой сервер добавить в мой список станций самостоятелно сделав запрос вида curl -v https://idec.foxears.su/d/{тут http или https}/{адрес сервера без http[s]://, обработанное urlencode}/{самоназвание сервера обработанное urlencode}, например https://idec.foxears.su/d/https/sprinternet.io%2Fiii%2F/spnet
У меня чего-то не вышло добавить ноду.
--------------------------------------------------------------------------------
subject: Re: Автодискавери
02.12.2024 20:31
foxears (spnet, 5) => wgw8NsA3jzJchaa8zdF2
Что конкретно вводил? Я как мог протестил локально, но что-то не учёл возможно. Добавил себе отладочные сообщения на эндпойнт /d/
--------------------------------------------------------------------------------
subject: Re: Автодискавери
02.12.2024 21:55
liathit (blackcat, 9) => f7scwn92b8uqyesUjp8c
> Что конкретно вводил?
====
curl -v https://idec.foxears.su/d/http/netsco.alwaysdata.net%2F/netsco
====
Url может не верно пишу
--------------------------------------------------------------------------------
subject: Re: Автодискавери
02.12.2024 23:16
foxears (spnet, 5) => wgw8NsA3jzJchaa8zdF2
Твоя нода не проходит проверку на ii-шность, потому что в hamradio.73 у тебя нет сообщений :). Слегка исправил проверку на такой случай, можешь пробовать снова, url верный используешь.
--------------------------------------------------------------------------------
subject: Re: Автодискавери
03.12.2024 06:00
shaos (spnet, 2) => ldLOi5ygytybO617xBB3
Я бы тоже не прошёл - у меня половина эх пустые :)
--------------------------------------------------------------------------------
subject: Re: Автодискавери
03.12.2024 17:55
revoltech (yesterlink,1) => ldLOi5ygytybO617xBB3
foxears> Твоя нода не проходит проверку на ii-шность, потому что в hamradio.73 у тебя нет сообщений :). Слегка исправил проверку на такой случай, можешь пробовать снова, url верный используешь.
А откуда вообще можно сфетчить hamradio.73?
--------------------------------------------------------------------------------
subject: Re: Автодискавери
03.12.2024 20:55
foxears (spnet, 5) => wgw8NsA3jzJchaa8zdF2
У меня такого архива нет.
--------------------------------------------------------------------------------
subject: Re: Автодискавери
03.12.2024 20:58
liathit (blackcat, 9) => R3sfBs0VAwLiIEsw3UFR
>А откуда вообще можно сфетчить hamradio.73?
Это я создал hamradio.73 на станции netsco.alwaysdata.net
--------------------------------------------------------------------------------