# 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 пока не реализован, как и создание сообщений в эхе, и автоудаление отвалившихся.
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 справа от списка эх разместить с инструкциями как к ноде подключаться и что это вообще такое...
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/...)
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
Из-за этого не сразу понял как с тебя сообщения забирать.
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 урла одинаковые (даже у меня)
shaos (spnet, 2) → ahamai – 06:51:08 2024-11-23
> урла должно быть два - пойнтовый и веб-интерфейс (если есть)
сейчас вроде бы у всех эти 2 урла одинаковые (даже у меня)
# Re: Автодискавери
ahamai (blackcat, 2) → foxears – 06:33:28 2024-11-23
урла должно быть два - пойнтовый и веб-интерфейс (если есть)
ahamai (blackcat, 2) → foxears – 06:33:28 2024-11-23
урла должно быть два - пойнтовый и веб-интерфейс (если есть)
# Re: запостил на лор
shaos (spnet, 2) → shaos – 06:34:14 2024-11-23
Я как-то не заметил, а оно ведь сюда аж добежало :)
ii://w21pZ4TPwJz36i5hR5bD
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
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
>> Читать далее
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.
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
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 ?
+++ Никто не знает, как правильно. Так зачем же выдумывать правила?
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 формат
+++ Никто не знает, как правильно. Так зачем же выдумывать правила?
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 сделать.
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 и прочее
+++ Никто не знает, как правильно. Так зачем же выдумывать правила?
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, то гораздо меньше. Надо тестить.
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, после успешного выкачивания перезаписали локальный индекс эхи.
Мы не перекачиваем сообщения, но мы перекачиваем индекс. Сколько он будет весить с без адаптивного фетча?
+++ Никто не знает, как правильно. Так зачем же выдумывать правила?
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, после успешного выкачивания перезаписали локальный индекс эхи.
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к+ сообщениями. Насколько долго будет получать индекс и сообщения?
+++ Никто не знает, как правильно. Так зачем же выдумывать правила?
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? Тогда всё, кроме постинга, ложилось бы на физическую файловую структуру и его можно было бы сервачить хоть статикой.
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> Вручную? ;)
Какая разница, скриптом или вручную? Запрос-то всё равно один, независимо от количества таких пользователей.
revoltech (spnet, 4) → shaos – 07:45:56 2024-11-22
shaos> Вручную? ;)
Какая разница, скриптом или вручную? Запрос-то всё равно один, независимо от количества таких пользователей.
# Re: Автодискавери
revoltech (spnet, 4) → shaos – 06:59:24 2024-11-22
shaos> Ну допустим появилась ещё одна эха, куда можно писать "низшей касте" - ты будешь перебирать все записи пользователей и добавлять эту эху в каждую запись, где не звёздочка?
Да, а что в этом сложного? Один UPDATE-запрос с CONCAT.
revoltech (spnet, 4) → shaos – 06:59:24 2024-11-22
shaos> Ну допустим появилась ещё одна эха, куда можно писать "низшей касте" - ты будешь перебирать все записи пользователей и добавлять эту эху в каждую запись, где не звёздочка?
Да, а что в этом сложного? Один UPDATE-запрос с CONCAT.
# Re: Автодискавери
shaos (spnet, 2) → revoltech – 06:55:14 2024-11-22
Ну допустим появилась ещё одна эха, куда можно писать "низшей касте" - ты будешь перебирать все записи пользователей и добавлять эту эху в каждую запись, где не звёздочка?
shaos (spnet, 2) → revoltech – 06:55:14 2024-11-22
Ну допустим появилась ещё одна эха, куда можно писать "низшей касте" - ты будешь перебирать все записи пользователей и добавлять эту эху в каждую запись, где не звёздочка?
# Re: Автодискавери
revoltech (spnet, 4) → doesnm – 06:54:56 2024-11-22
doesnm> Это все хорошо, но что будет если через автодискавери попадет вредоносная нода которая будет подделывать сообщения?
Ничего не будет. Это не для сисопов, а для юзеров. Разумеется, на основании автодискавери не должно автоматически приниматься решение о фетче с новой ноды. Это способ заявить о себе без внешних каналов, не более того.
revoltech (spnet, 4) → doesnm – 06:54:56 2024-11-22
doesnm> Это все хорошо, но что будет если через автодискавери попадет вредоносная нода которая будет подделывать сообщения?
Ничего не будет. Это не для сисопов, а для юзеров. Разумеется, на основании автодискавери не должно автоматически приниматься решение о фетче с новой ноды. Это способ заявить о себе без внешних каналов, не более того.