[#]
Re: Полуневдимые эхи
Andrew Lobanov(tavern,1) — doesnm
2024-10-27 11:22:15
doesnm>>> Го дропнем base64
AL>> Предлагаю отказаться от HTTP, base64, списков и переделать всё на актбаунды.
doesnm> Поддерживаю
FTN у нас уже есть.
[#]
Re: Стандарт
shaos(spnet, 2) — revoltech
2024-10-27 11:24:27
опиши подробнее как по нексу планиуешь работать - я подниму сервачок :)
[#]
Re: Полуневдимые эхи
shaos(spnet, 2) — doesnm
2024-10-27 11:33:48
Да чо уж там - давайте распечатывать эхи на листах A4 и рассылать бумажной почтой...
[#]
Re: Стандарт
shaos(spnet, 2) — Andrew Lobanov
2024-10-27 11:40:02
дык у него ещё нету ноды - тока клиент :)
[#]
Re: Стандарт
revoltech(spnet, 4) — Andrew Lobanov
2024-10-27 12:02:29
AL> Твой клиент не работает с твоей нодой?
Моей ноды ещё не существует.
AL> Что повышает надёжность передачи на нестабильном канале.
Каким образом, если проверка целостности по msgid, как мы выяснили, идёт лесом, а проверка целостности самого списка в эхе сейчас вообще отсутствует?
Ну то есть давай смоделируем ситуацию — обрыв соединения при фетче эхи. Этот обрыв может произойти во время:
1) скачивания списка айдишников в эхе (GET /u/e),
2) скачивания бандла (GET /u/m).
В случае номер 1, если обрыв произошёл до последнего известного нам айдишника, мы не знаем, что там между ними (последним известным нам и тем, где произошёл обрыв), поэтому всё равно придётся запрашивать тот же список заново, независимо от размера.
В случае номер 2, который на слабом канале критичнее, мы сравниваем список полученных сообщений со списком запрошенных и при несоответствии оных просто перекачиваем с последнего полученного (т.к. его тело могло быть выкачано не полностью). Изначальный размер бандла при этом значения также не имеет.
И это ещё с допущением, что само соединение установлено успешно. А чем нестабильнее канал, тем дольше устанавливается соединение. И накладные расходы на кучу мелких запросов в этом случае ещё сильнее влияют.
[#]
Re: Стандарт
revoltech(spnet, 4) — shaos
2024-10-27 12:05:45
shaos> опиши подробнее как по нексу планиуешь работать - я подниму сервачок :)
Ну геты с порта 1900 точно так же, как в хттп (просто путь в сокет, \n и забираем ответ), а посты по порту 1915 — каноничная NPS-форма такова:
cat <<EOF | nc station.domain 1915
/u/point
[auth_string]
[base64_message]
.
EOF
[#]
Re: Полуневдимые эхи
shaos(spnet, 2) — shaos
2024-10-27 12:50:31
Всё сделал - проверяй :)
/list.txt остался как был
/list.txt?h=1 подставляет hsh/хэш вместо дескрипшинов и имеет "алиас" /listhsh.txt
ну и /x/h/echo.1/echo.2 по аналогии с /x/c/echo.1/echo.2 сдедал, например
> curl https://sprinternet.io/iii/x/h/retro.talks/idec.talks
retro.talks:mWbHlTgoAaE1IaEoubCR
idec.talks:4dBW6db3TdOmYzbdZAg5
тут без префикса hsh/
[#]
Re: Полуневдимые эхи
shaos(spnet, 2) — shaos
2024-10-27 12:52:01
> ну и /x/h/echo.1/echo.2 по аналогии с /x/c/echo.1/echo.2 сдедал, например
> ====
> > curl https://sprinternet.io/iii/x/h/retro.talks/idec.talks
> retro.talks:mWbHlTgoAaE1IaEoubCR
> idec.talks:4dBW6db3TdOmYzbdZAg5
> ====
После того как предыдущее сообщение добавилось стало так :)
retro.talks:mWbHlTgoAaE1IaEoubCR
idec.talks:KCAVqaCJCot0ByQVlWg5
[#]
Re: Стандарт
shaos(spnet, 2) — revoltech
2024-10-27 13:05:48
а почему бы и не добавлять также как в хттп?
/u/point/pauth/tmsg
\n и забираем ответ
или там ограничение на длину запроса?...
[#]
Re: Стандарт
revoltech(spnet, 4) — shaos
2024-10-27 13:12:25
shaos> а почему бы и не добавлять также как в хттп?
shaos>
shaos> /u/point/pauth/tmsg
shaos>
shaos> \n и забираем ответ
shaos>
shaos> или там ограничение на длину запроса?...
Нет, как раз в нексе в спецификации ([1]) ограничения на запрос нет, можно и так и по тому же порту. По NPS ([2]) идиоматичнее просто.
Но, в принципе, да, можно и портом 1900 по предложенному тобой варианту обойтись, наверное.
[1]:
https://nightfall.city/nex/info/specification.txt
[2]:
https://nightfall.city/nps/info/form.txt
[#]
Re: Неожиданное наблюдение
revoltech(spnet, 4) — tuple
2024-10-27 13:36:01
tuple> IDEC протокол нужен только для обсуждения IDEC-реализаций.
Sad but true. Хотя мне, наверное, было бы достаточно корректно работающего ii. Просто по ходу дела выяснилось, что это ближе к мифу или оксюморону.
[#]
Re: Неожиданное наблюдение
hugeping(ping,1) — revoltech
2024-10-27 15:17:00
revoltech> Sad but true. Хотя мне, наверное, было бы достаточно корректно работающего ii. Просто по ходу дела выяснилось, что это ближе к мифу или оксюморону.
Драматизировать тоже не стоит. Я помню, когда делал для микроконтроллера клиента gemini тоже сталкивался с "разночтением" стандарта. Точно сейчас не помню, но кажется это было связано с относительными ссылками или что-то вроде того. Но это не мешает gemini быть живым.
Да, x/c похоже мало кто соблюдает в буквальном смысле. Но в остальном, я не вижу особых отклонений от стандарта. Ваши желания того, чтобы msgid совпадал с хешем сообщений -- никогда не было требованием. Как правильно тут писал Рома, иногда мы даже заполняли недостающую часть "заполнялками" итд. Хеш - это просто естественный способ создать уникальный идентификатор.
Все реализации, которые живы на данный момент обмениваются друг с другом вполне себе нормально. Ну, хочется видеть idec другим -- никто не мешает разрабатывать свои варианты...
[#]
Re: Неожиданное наблюдение
tuple(ping,54) — hugeping
2024-10-27 15:46:42
hugeping> Ну, хочется видеть idec другим -- никто не мешает разрабатывать свои варианты...
Жаль при этом происходит дробление сообществ на всё более мелкие части...
[#]
Re: Неожиданное наблюдение
hugeping(ping,1) — tuple
2024-10-27 15:50:30
hugeping>> Ну, хочется видеть idec другим -- никто не мешает разрабатывать свои варианты...
tuple> Жаль при этом происходит дробление сообществ на всё более мелкие части...
Примерно как с gemini. Одному не понравился tls, второму -- отсутствие динамики... И понеслась. Тем не менее большая часть людей осталась на gemini. Я тоже на нём остался, и не жалею. Но тут как бы дело личное. С idec же "сообщество" -- слишком громко сказано. :) Но опять же, сомневаюсь что обмен по ii/idec кто-то из текущих нод будет выпиливать.
[#]
Re: Неожиданное наблюдение
revoltech(spnet, 4) — hugeping
2024-10-27 15:48:52
hugeping> Драматизировать тоже не стоит.
А кто владелец репы idec-net? Он здесь есть? Он способен привести документацию в адекватный и недвузначно трактуемый вид?
* Раз GET /list.txt всегда был в ii, надо его описать в базе, а не в расширениях.
* Раз айдишники в виде волшебного шопопало до сих пор проскакивают, надо указать, что алгоритм их генерации рекомендован. И указать правила замены на A-z, которые все ноды между собой понимали бы.
* Раз счётчики де-факто могут убывать, надо убрать ту приписку «Важно: параметр неубывающий».
Ну и так далее. В общем, привести теоретическую базу к тому, как оно всё на самом деле функционирует. Чтобы новые авторы клиентов (а тем более серверов) не путались в этих трёх соснах как минимум.
Я могу выложить свою (англоязычную) доку где-то здесь. Либо в english.talks, либо в какуюто новую эху. Там сейчас базовый ii без расширений по факту. Есть желание привлечь нексовских, гоферистов, джеминистов и прочих активистов смолнета к этой теме, но для начала неплохо было бы довести документацию до удобоваримого вида без разночтений.
[#]
Re: Неожиданное наблюдение
hugeping(ping,1) — revoltech
2024-10-27 16:06:02
revoltech> * Раз GET /list.txt всегда был в ii, надо его описать в базе, а не в расширениях.
В стандарте написано что это расширение. Значит - расширение. Было оно в ii или нет, не важно. Так как стандарт описывает idec. Сейчас ноды написаны так, что декларируют list.txt в расширениях. Для обмена list.txt не является обязательным. Так что не вижу причин переписывать стандарт.
revoltech> * Раз айдишники в виде волшебного шопопало до сих пор проскакивают, надо указать, что алгоритм их генерации рекомендован. И указать правила замены на A-z, которые все ноды между собой понимали бы.
Рекомендованный алгоритм описан в стандарте. Но проверять на его соответствие -- в стандарте такого нет. В стандарте указаны не A-z, а A-Z. Но, подумав, не могу сказать что это тоже требует изменения стандарта. Ну, алгоритм отличается немного от ii, и что?
revoltech> * Раз счётчики де-факто могут убывать, надо убрать ту приписку «Важно: параметр неубывающий».
С счётчиками я не знаю что делать. Возможно, надо признать что этот стандарт большинство не исполняет и всё.
revoltech> Ну и так далее.
А что ещё? Ну, переводы строк?
[#]
Re: Неожиданное наблюдение
tuple(ping,54) — revoltech
2024-10-27 16:19:56
revoltech> А кто владелец репы idec-net? Он здесь есть? Он способен привести документацию в адекватный и недвузначно трактуемый вид?
Да, я уже предлагал:
ii://Z9zSZaq0u1HH47ud8PEz . В ответах предложили поднять на Github Pages на Jekyll, который там есть.
[#]
Re: Стандарт
revoltech(spnet, 4) — hugeping
2024-10-27 16:25:13
hugeping> В стандарте написано что это расширение. Значит - расширение. Было оно в ii или нет, не важно.
В extensions.md: написано: «Здесь описаны расширения протокола, являющиеся основным отличием IDEC от ii.» — и там перечислен в том числе /list.txt. Это читается так, как будто IDEC от ii отличается в том числе /list.txt, т.е. в ii его не было.
hugeping> Рекомендованный алгоритм описан в стандарте. Но проверять на его соответствие -- в стандарте такого нет. В стандарте указаны не A-z, а A-Z. Но, подумав, не могу сказать что это тоже требует изменения стандарта. Ну, алгоритм отличается немного от ii, и что?
А то, что если IDEC декларирует обратную совместимость, то одно и то же сообщение не должно приводить к разным айдишникам в разных версиях стандарта. А по факту мы видим не то, что там написано.
hugeping> С счётчиками я не знаю что делать. Возможно, надо признать что этот стандарт большинство не исполняет и всё.
Как и многое другое оттуда же.
hugeping> А что ещё? Ну, переводы строк?
Про переводы строк как минимум нужно явно указать, что разделитель строки — строго LF, да. Пока вроде всё, но вычитать остальное не мешало бы.
[#]
Re: Неожиданное наблюдение
tuple(ping,54) — revoltech
2024-10-27 16:43:10
revoltech> А кто владелец репы idec-net? Он здесь есть? Он способен привести документацию в адекватный и недвузначно трактуемый вид?
В организации значатся двое: difrex (у него была станция, сейчас её нет, давно не видно), btimofeev пару недель назад с ним общались в сети. Зовём его, пусть делает новый репозиторий для Github Pages, туда можно напосылать PR'ов с исправлениями. Но сначала просто полностью скопировать
https://github.com/idec-net/new-docs , затем переделать его под Jekyll (чтобы github pages заработал), а только затем посылать всякие исправления и улучшения.
[#]
Re: Стандарт
hugeping(ping,1) — revoltech
2024-10-27 16:53:17
revoltech> В extensions.md: написано: «Здесь описаны расширения протокола, являющиеся основным отличием IDEC от ii.» — и там перечислен в том числе /list.txt. Это читается так, как будто IDEC от ii отличается в том числе /list.txt, т.е. в ii его не было.
В ii не было просто самого механизма расширений. В любом случае, смысл менять стандарт я не вижу. Иначе придётся требовать наличия list.txt как обязательного компонента.
revoltech> А то, что если IDEC декларирует обратную совместимость, то одно и то же сообщение не должно приводить к разным айдишникам в разных версиях стандарта.
id создаётся один раз в момент создания сообщения, для обмена нет необходимости его где-то пересчитывать. Главное, уникальность. Вероятность коллизии крайне мала, при условии что id считается какой-то хорошей хеш функцией. Хотя, думаю, можно в принципе и тупо рандом брать, думаю на наш век этого точно хватит.
revoltech> Как и многое другое оттуда же.
Что именно? x/c - да. msgid - нет, нет такого требования. Хеши и не должны совпадать. Но ты пишешь "многое другое". Где пруфы?
Мне кажется ты совсем не читаешь то, что я тебе пишу. Прекращаю это бессмысленное занятие. :)
revoltech> Про переводы строк как минимум нужно явно указать, что разделитель строки — строго LF, да. Пока вроде всё, но вычитать остальное не мешало бы.
На самом деле с переводами тоже не все просто. Я когда написал фильтр получил ещё несколько сообщений с \r где-то в теле. Я стал их резать при записи в БД. Кстати, ещё один источник того, что хеш может отличаться. В общем, idec и ii не требуют совпадений при пересчёте хеша. Пересчёт вообще не должен нигде проводиться.
[#]
Re: Стандарт
Andrew Lobanov(tavern,1) — shaos
2024-10-27 16:53:35
shaos> дык у него ещё нету ноды - тока клиент :)
Вот и повод написать ноду :)
[#]
Re: Стандарт
Andrew Lobanov(tavern,1) — revoltech
2024-10-27 16:53:36
AL>> Твой клиент не работает с твоей нодой?
revoltech> Моей ноды ещё не существует.
Повод написать :)
AL>> Что повышает надёжность передачи на нестабильном канале.
revoltech> Каким образом, если проверка целостности по msgid, как мы выяснили, идёт лесом, а проверка целостности самого списка в эхе сейчас вообще отсутствует?
revoltech> Ну то есть давай смоделируем ситуацию — обрыв соединения при фетче эхи. Этот обрыв может произойти во время:
revoltech> 1) скачивания списка айдишников в эхе (GET /u/e),
revoltech> 2) скачивания бандла (GET /u/m).
revoltech> В случае номер 1, если обрыв произошёл до последнего известного нам айдишника, мы не знаем, что там между ними (последним известным нам и тем, где произошёл обрыв), поэтому всё равно придётся запрашивать тот же список заново, независимо от размера.
revoltech> В случае номер 2, который на слабом канале критичнее, мы сравниваем список полученных сообщений со списком запрошенных и при несоответствии оных просто перекачиваем с последнего полученного (т.к. его тело могло быть выкачано не полностью). Изначальный размер бандла при этом значения также не имеет.
При этом, если вернулось не 200, то всё идёт лесом до следующего раза.
revoltech> И это ещё с допущением, что само соединение установлено успешно. А чем нестабильнее канал, тем дольше устанавливается соединение. И накладные расходы на кучу мелких запросов в этом случае ещё сильнее влияют.
На нестабильном канале выкачать мелкие бандлы более вероятное событие, чем выкачать всё одним бандлом. По крайней мере так показала практика.
[#]
Re: Неожиданное наблюдение
Andrew Lobanov(tavern,1) — tuple
2024-10-27 16:53:36
tuple> IDEC протокол нужен только для обсуждения IDEC-реализаций.
Можем обсуждать что угодно. Но все предпочитают обсуждать технологию :)
[#]
Re: Неожиданное наблюдение
Andrew Lobanov(tavern,1) — revoltech
2024-10-27 16:53:36
tuple>> IDEC протокол нужен только для обсуждения IDEC-реализаций.
revoltech> Sad but true. Хотя мне, наверное, было бы достаточно корректно работающего ii. Просто по ходу дела выяснилось, что это ближе к мифу или оксюморону.
IDEC на 100% совместим с ii-0.3. Пользуйся и радуйся жизни.
[#]
Re: Неожиданное наблюдение
Andrew Lobanov(tavern,1) — tuple
2024-10-27 16:53:37
hugeping>> Ну, хочется видеть idec другим -- никто не мешает разрабатывать свои варианты...
tuple> Жаль при этом происходит дробление сообществ на всё более мелкие части...
Потому что все хотят менять стандарт или обвешивать его расширениями вместо того, чтобы просто пользоваться :)
Девять лет жили с текущим стандартом и тут все занемогли с него.
[#]
Re: Неожиданное наблюдение
Andrew Lobanov(tavern,1) — revoltech
2024-10-27 16:53:37
hugeping>> Драматизировать тоже не стоит.
revoltech> А кто владелец репы idec-net? Он здесь есть? Он способен привести документацию в адекватный и недвузначно трактуемый вид?
revoltech> * Раз GET /list.txt всегда был в ii, надо его описать в базе, а не в расширениях.
Вообще не будет расширений. Будет один стандарт и всё. Расширения на совести людей, их реализующих останутся.
revoltech> * Раз айдишники в виде волшебного шопопало до сих пор проскакивают, надо указать, что алгоритм их генерации рекомендован. И указать правила замены на A-z, которые все ноды между собой понимали бы.
Алгоритм их генерации не рекомендован, а просто рабочий пример. Все ноды между собой понимают любые замены, так как хеш это просто строка с идентификатором и ничего больше.
revoltech> * Раз счётчики де-факто могут убывать, надо убрать ту приписку «Важно: параметр неубывающий».
Это не важно. В новом стандарте счётчиков не будет.
revoltech> Ну и так далее. В общем, привести теоретическую базу к тому, как оно всё на самом деле функционирует. Чтобы новые авторы клиентов (а тем более серверов) не путались в этих трёх соснах как минимум.
Ну новый стандарт будет компактный и простой.
revoltech> Я могу выложить свою (англоязычную) доку где-то здесь. Либо в english.talks, либо в какуюто новую эху. Там сейчас базовый ii без расширений по факту. Есть желание привлечь нексовских, гоферистов, джеминистов и прочих активистов смолнета к этой теме, но для начала неплохо было бы довести документацию до удобоваримого вида без разночтений.
Жди и всё будет. У меня сейчас не очень простой период в жизни в плане свободного времени.
[#]
Re: Стандарт
Andrew Lobanov(tavern,1) — revoltech
2024-10-27 16:53:37
revoltech> А то, что если IDEC декларирует обратную совместимость, то одно и то же сообщение не должно приводить к разным айдишникам в разных версиях стандарта. А по факту мы видим не то, что там написано.
А по факту это всё ни на что не влияет и работает без проблем.
hugeping>> С счётчиками я не знаю что делать. Возможно, надо признать что этот стандарт большинство не исполняет и всё.
revoltech> Как и многое другое оттуда же.
Вот ты дотошный без особого смысла :)
hugeping>> А что ещё? Ну, переводы строк?
revoltech> Про переводы строк как минимум нужно явно указать, что разделитель строки — строго LF, да. Пока вроде всё, но вычитать остальное не мешало бы.
Переводы строк могут быть какими угодно. Символ возврата каретки ни на что не влияет.
[#]
Re: Стандарт
revoltech(spnet, 4) — Andrew Lobanov
2024-10-27 17:23:33
AL> Повод написать :)
Напишу. С нексом и слайсами. :) Пока на стадии проектирования.
AL> При этом, если вернулось не 200, то всё идёт лесом до следующего раза.
Если вернулось не 200 (имеется в виду ведь хттпшный 200?), то мы в самом начале понимаем, что что-то не то, и размер бандла снова-таки значения не имеет.
AL> Переводы строк могут быть какими угодно. Символ возврата каретки ни на что не влияет.
У меня на клиенте не влияет, а у пинга (вроде) на ноде с ними были проблемы.
Но вообще если уж под старину подстраиваться (семибитные каналы и всё такое), то у всех подобных протоколов де-факто стандартом является CRLF.
AL> Ну новый стандарт будет компактный и простой.
Это хорошо. Ждём-с.
AL> Жди и всё будет. У меня сейчас не очень простой период в жизни в плане свободного времени.
Понимаю, сам вот только недавно из отпуска вышел.
[#]
Re: Неожиданное наблюдение
Andrew Lobanov(tavern,1) — tuple
2024-10-27 17:33:12
revoltech>> А кто владелец репы idec-net? Он здесь есть? Он способен привести документацию в адекватный и недвузначно трактуемый вид?
tuple> В организации значатся двое: difrex (у него была станция, сейчас её нет, давно не видно), btimofeev пару недель назад с ним общались в сети. Зовём его, пусть делает новый репозиторий для Github Pages, туда можно напосылать PR'ов с исправлениями. Но сначала просто полностью скопировать https://github.com/idec-net/new-docs , затем переделать его под Jekyll (чтобы github pages заработал), а только затем посылать всякие исправления и улучшения.
Этого пока ничего не надо делать. На днях рожу новый документ, от него и будем плясать.
[#]
Re: Стандарт
Andrew Lobanov(tavern,1) — hugeping
2024-10-27 17:33:12
revoltech>> В extensions.md: написано: «Здесь описаны расширения протокола, являющиеся основным отличием IDEC от ii.» — и там перечислен в том числе /list.txt. Это читается так, как будто IDEC от ii отличается в том числе /list.txt, т.е. в ii его не было.
hugeping> В ii не было просто самого механизма расширений. В любом случае, смысл менять стандарт я не вижу. Иначе придётся требовать наличия list.txt как обязательного компонента.
Придётся. Раз уж мы тут шатаем то, что есть, то пошатаем и это. Бойтесь :)
revoltech>> А то, что если IDEC декларирует обратную совместимость, то одно и то же сообщение не должно приводить к разным айдишникам в разных версиях стандарта.
hugeping> id создаётся один раз в момент создания сообщения, для обмена нет необходимости его где-то пересчитывать. Главное, уникальность. Вероятность коллизии крайне мала, при условии что id считается какой-то хорошей хеш функцией. Хотя, думаю, можно в принципе и тупо рандом брать, думаю на наш век этого точно хватит.
Сейчас всё нормально. Так и оставим по сути.
revoltech>> Как и многое другое оттуда же.
hugeping> Что именно? x/c - да. msgid - нет, нет такого требования. Хеши и не должны совпадать. Но ты пишешь "многое другое". Где пруфы?
Голословность как дух времени :)
hugeping> Мне кажется ты совсем не читаешь то, что я тебе пишу. Прекращаю это бессмысленное занятие. :)
revoltech>> Про переводы строк как минимум нужно явно указать, что разделитель строки — строго LF, да. Пока вроде всё, но вычитать остальное не мешало бы.
hugeping> На самом деле с переводами тоже не все просто. Я когда написал фильтр получил ещё несколько сообщений с \r где-то в теле. Я стал их резать при записи в БД. Кстати, ещё один источник того, что хеш может отличаться. В общем, idec и ii не требуют совпадений при пересчёте хеша. Пересчёт вообще не должен нигде проводиться.
Вообще, надо забыть что это хеш по своему происхождению и постараться вспомнить, что это msgid. Единственная его роль, единственное назначение.
[#]
Re: Стандарт
doesnm(ping,55) — Andrew Lobanov
2024-10-27 18:42:41
shaos>> дык у него ещё нету ноды - тока клиент :)
AL> Вот и повод написать ноду :)
Может и мне что нибудь написать. Хотя это скорее всего будет очередной проект в /projects который я подзаброшу из-за лени или какого-то затыка и когда-то давно вернусь