#  Re: Автодискавери
foxears (spnet, 5) → All  –  15:36:01 2024-11-23

Сделал на скорую руку первый этап автодискавери.
Запрос вида /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 пока не реализован, как и создание сообщений в эхе, и автоудаление отвалившихся.
#  Re: Автодискавери
shaos (spnet, 2) → shaos  –  07:59:48 2024-11-23

Надо чтоли какие-то StickyNotes справа от списка эх разместить с инструкциями как к ноде подключаться и что это вообще такое...
#  Re: Автодискавери
shaos (spnet, 2) → foxears  –  07:47:28 2024-11-23

Теперь и то, и другое у меня https://sprinternet.io/iii/
Если ввести в браузере без параметров, то оно само перескочит на iii-web.php
А если добить урл параметрами (типа /u/e/ и т.д.), то оно через Rewrite модуль апача перевызовет внутри iii-point.php?q=/хвост (но снаружи оно так и останется /iii/u/e/...)
#  Re: Автодискавери
foxears (spnet, 5) → All  –  07:36:28 2024-11-23

У тебя же как-раз разные iii-web.php и iii-point.php
Из-за этого не сразу понял как с тебя сообщения забирать.
#  Re: Автодискавери
shaos (spnet, 2) → ahamai  –  06:51:08 2024-11-23

> урла должно быть два - пойнтовый и веб-интерфейс (если есть)

сейчас вроде бы у всех эти 2 урла одинаковые (даже у меня)
#  Re: Автодискавери
ahamai (blackcat, 2) → foxears  –  06:33:28 2024-11-23

урла должно быть два - пойнтовый и веб-интерфейс (если есть)
#  Re: запостил на лор
shaos (spnet, 2) → shaos  –  06:34:14 2024-11-23

Я как-то не заметил, а оно ведь сюда аж добежало :)

ii://w21pZ4TPwJz36i5hR5bD
#  Re: В порядке эксперимента: barebones-ii
ahamai (blackcat, 2) → revoltech  –  06:14:23 2024-11-23

> Но при этом зачем-то ограничиваем количество айдишников в /u/m.

я уже объяснял. это принцип разумной достаточности

1. разница между 1 и 20 в 2014 была ощутима, а между 20 и 40 - нет

2. большой запрос ставил колом однопоточный сервер

я выбирал такой размер чанка, который не нагружал бы ни клиент, ни сервер. я даже не помню, сколько их там у меня сейчас, 20 или 40
#  Re: Автодискавери
foxears (spnet, 5) → All  –  06:20:14 2024-11-23


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

>> Читать далее
#  Re: В порядке эксперимента: barebones-ii
revoltech (spnet, 4) → ahamai  –  05:28:23 2024-11-23

ahamai> /z а затем и /u был введён потому что по одному слишком медленно было

Но при этом зачем-то ограничиваем количество айдишников в /u/m.
#  Re: В порядке эксперимента: barebones-ii
ahamai (blackcat, 2) → revoltech  –  22:56:50 2024-11-22

/z а затем и /u был введён потому что по одному слишком медленно было

А изначально и было только e и m
#  Re: В порядке эксперимента: barebones-ii
doesnm (tgi,8) → revoltech  –  15:13:28 2024-11-22

revoltech> В глаза не видел этих утилит, но да, я ж говорю, если оставить только /list.txt, /e и /m, то всё можно сервачить статикой. А динамической только логику постинга через /u/point сделать.

Либо если упороться, то кидать сообщения через rsync по ssh немного переделав https://github.com/idec-net/iissh
Кто сказал что мы обязаны постить только через /u/point ?

+++ Никто не знает, как правильно. Так зачем же выдумывать правила?
#  Re: В порядке эксперимента: barebones-ii
doesnm (tgi,8) → revoltech  –  14:03:16 2024-11-22

revoltech> В глаза не видел этих утилит, но да, я ж говорю, если оставить только /list.txt, /e и /m, то всё можно сервачить статикой. А динамической только логику постинга через /u/point сделать.

Я про эти утилиты: https://github.com/idec-net/ii-db-utils
Тут даже есть скрипт чтобы конвертировать почту в ii формат

+++ Никто не знает, как правильно. Так зачем же выдумывать правила?
#  Re: В порядке эксперимента: barebones-ii
revoltech (spnet, 4) → doesnm  –  13:57:46 2024-11-22

doesnm> Что еще прикольно: это идеально ложится на тип базы txt (так и задумано изначально?)
doesnm> Так что можно использовать утилиты из ii-db-utils и прочее

В глаза не видел этих утилит, но да, я ж говорю, если оставить только /list.txt, /e и /m, то всё можно сервачить статикой. А динамической только логику постинга через /u/point сделать.
#  Re: В порядке эксперимента: barebones-ii
doesnm (tgi,8) → revoltech  –  13:40:27 2024-11-22

doesnm>> Мы не перекачиваем сообщения, но мы перекачиваем индекс. Сколько он будет весить с без адаптивного фетча?
revoltech> 777к. Если по HTTP с gzip, то гораздо меньше. Надо тестить.

Что еще прикольно: это идеально ложится на тип базы txt (так и задумано изначально?)
Так что можно использовать утилиты из ii-db-utils и прочее

+++ Никто не знает, как правильно. Так зачем же выдумывать правила?
#  Re: В порядке эксперимента: barebones-ii
revoltech (spnet, 4) → doesnm  –  13:04:40 2024-11-22

doesnm> Мы не перекачиваем сообщения, но мы перекачиваем индекс. Сколько он будет весить с без адаптивного фетча?

777к. Если по HTTP с gzip, то гораздо меньше. Надо тестить.
#  Re: В порядке эксперимента: barebones-ii
doesnm (tgi,8) → revoltech  –  12:46:44 2024-11-22

revoltech> В первый раз будет долго (хотя зависит от канала у ноды и клиента), потом быстро. Мы же не перекачиваем вообще все сообщения каждый раз, а только те, которых не оказалось на клиенте.
revoltech> Условно, алгоритм таков: выкачали индекс из /e/echo.name, сравнили с локальным содержимым того же файла, недостающие айдишники в цикле скормили /m, после успешного выкачивания перезаписали локальный индекс эхи.

Мы не перекачиваем сообщения, но мы перекачиваем индекс. Сколько он будет весить с без адаптивного фетча?

+++ Никто не знает, как правильно. Так зачем же выдумывать правила?
#  Re: В порядке эксперимента: barebones-ii
revoltech (spnet, 4) → doesnm  –  11:56:43 2024-11-22

doesnm> Звучит прикольно, но очень неоптимизированно. Я тут хотел сделать конвертер который создаст эху с 37к+ сообщениями. Насколько долго будет получать индекс и сообщения?

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

Условно, алгоритм таков: выкачали индекс из /e/echo.name, сравнили с локальным содержимым того же файла, недостающие айдишники в цикле скормили /m, после успешного выкачивания перезаписали локальный индекс эхи.
#  Re: В порядке эксперимента: barebones-ii
doesnm (tgi,8) → revoltech  –  09:27:43 2024-11-22

revoltech> А что, если вообще оставить только /list.txt, (опционально) /blacklist.txt, /e, /m и /u/point? Тогда всё, кроме постинга, ложилось бы на физическую файловую структуру и его можно было бы сервачить хоть статикой.

Звучит прикольно, но очень неоптимизированно. Я тут хотел сделать конвертер который создаст эху с 37к+ сообщениями. Насколько долго будет получать индекс и сообщения?

+++ Никто не знает, как правильно. Так зачем же выдумывать правила?
#  В порядке эксперимента: barebones-ii
revoltech (spnet, 4) → All  –  09:03:49 2024-11-22

А что, если вообще оставить только /list.txt, (опционально) /blacklist.txt, /e, /m и /u/point? Тогда всё, кроме постинга, ложилось бы на физическую файловую структуру и его можно было бы сервачить хоть статикой.
#  Re: Автодискавери
revoltech (spnet, 4) → shaos  –  07:45:56 2024-11-22

shaos> Вручную? ;)

Какая разница, скриптом или вручную? Запрос-то всё равно один, независимо от количества таких пользователей.
#  Re: Автодискавери
shaos (spnet, 2) → revoltech  –  07:14:28 2024-11-22

Вручную? ;)
#  Re: Автодискавери
revoltech (spnet, 4) → shaos  –  06:59:24 2024-11-22

shaos> Ну допустим появилась ещё одна эха, куда можно писать "низшей касте" - ты будешь перебирать все записи пользователей и добавлять эту эху в каждую запись, где не звёздочка?

Да, а что в этом сложного? Один UPDATE-запрос с CONCAT.
#  Re: Автодискавери
shaos (spnet, 2) → revoltech  –  06:55:14 2024-11-22

Ну допустим появилась ещё одна эха, куда можно писать "низшей касте" - ты будешь перебирать все записи пользователей и добавлять эту эху в каждую запись, где не звёздочка?
#  Re: Автодискавери
revoltech (spnet, 4) → doesnm  –  06:54:56 2024-11-22

doesnm> Это все хорошо, но что будет если через автодискавери попадет вредоносная нода которая будет подделывать сообщения?

Ничего не будет. Это не для сисопов, а для юзеров. Разумеется, на основании автодискавери не должно автоматически приниматься решение о фетче с новой ноды. Это способ заявить о себе без внешних каналов, не более того.
Powered by iii-php v0.11