#  Re: Полуневдимые эхи
shaos (spnet, 2) → revoltech  –  04:48:12 2024-10-27

Если хочешь ознакомиться с процессом проектирования и реализации ii в более широком смысле, то можно прочитать следующие статьи на лоре (и комментарии к ним):

- https://www.linux.org.ru/forum/general/10247460
- https://www.linux.org.ru/forum/talks/10258332
- https://www.linux.org.ru/forum/talks/10267735
- https://www.linux.org.ru/news/opensource/10319264
- https://www.linux.org.ru/news/opensource/10534550
- https://www.linux.org.ru/forum/general/10532800

На самом деле изначально всё очень неплохо получилось, а далее каждый обрабатывает напильником под себя ;)

P.S. Возможность пользоваться разными транспортами это большой плюс - даже если речь идёт о текстовых терминалах или дискетах - кто знает на каком железе нам придётся работать в постапокалиптическом мире...
#  Re: xc: lor
revoltech (spnet, 4) → ahamai  –  04:41:51 2024-10-27

ahamai> а вообще, у нас сейчас фанаты технологии, но нет фанатов распределённости и локального хранения.

Есть. Поэтому все подвижки в сторону «выкачивать не всё и не отовсюду» предлагаю отметать, как вредоносные.

В идеале — дайте мне возможность скачать все эхи одним файлом, а дальше уж разберусь локально, что с этим делать.
#  Re: Полуневдимые эхи
revoltech (spnet, 4) → shaos  –  04:32:04 2024-10-27

shaos> Многие узлы допускают редактирование сообщений без изменения хеша

Что есть маразм by design. Хэш — он на то и хэш, чтобы отражать изменения в содержимом, иначе на... зачем он нужен?

shaos> base64 нужен т.к. позволяет ii транспорту работать в том числе и по последовательным 7-битным каналам - через COM порт там или прямо в тексте е-мейлов без mime кодирования (которое также в текст по сути)

Интересно девки пляшут. То у нас без HTTP(S) никуда, то семибитные каналы через ком. Надо бы уж определиться.

В почте это сделано просто ради кучи легаси-софта из 1980-х, а первая версия ii появилась в 2014 году, когда весь нормальный мир давно перешёл на UTF-8. Для реальных семибитных каналов есть вполне себе другие решения, которые любой восьмибитный трафик через себя туннелируют. Но для 99% населения, умеющего и желающего общаться только по TCP/IP, это реальный оверхед.

И да, ранее описанный подход мог бы применяться и к POST /u/point:

POST /u/point
Content-Type: text/plain; charset=utf-8


>> Читать далее
#  Re: Полуневдимые эхи
shaos (spnet, 2) → ahamai  –  03:55:20 2024-10-27

вот поэтому и нужны железобетонные хеши в качестве msgid - если хеш не сошёлся, то мессага битая или подменянная - т.е. одновременно проверяем и целостоность данных, и подлинность, причём не добавляя никаких лишних сущностей!
#  Re: Полуневдимые эхи
shaos (spnet, 2) → ahamai  –  03:52:20 2024-10-27

в старой "болталке с девочками" hc.51 почти все хеши вида 7lwguohJulissiiuliss и mPJSJAI3ulissiiuliss а в других местах видимо просто отредактированные сообщения без изменения msgid...
#  Re: Полуневдимые эхи
shaos (spnet, 2) → shaos  –  03:48:53 2024-10-27

О - нашёл!!!

https://www.linux.org.ru/forum/talks/10258332?cid=10258568

> return base64.urlsafe_b64encode( hashlib.sha256(s).digest() ).replace('-',").replace('_',")[:20]
> мощно я задвинул? внушает? :)
> feofil (06.03.14 09:41:46 PST) автор топика

Мне интересно в какой момент в реплейсах появились 'A' и 'z'? ;)

Если верить гиту, то 1 апреля 2014 года (в момент создания репы):

a45cdfa3 (user 2014-04-01 19:19:03 +1100 16) def hsh(s):
a45cdfa3 (user 2014-04-01 19:19:03 +1100 17) return base64.urlsafe_b64encode( hashlib.sha256(s).digest() ).replace('-','A').replace('_','z')[:20]


>> Читать далее
#  Re: Полуневдимые эхи
ahamai (blackcat, 2) → shaos  –  21:46:37 2024-10-26

вообще, в отношениях станция-станция не важно, как они обмениваются - можно хоть в общий git сливать, а индекс эхи перегенирировать по timestamp, это всё равно будет "обмен в духе ii", разве что вклинивающиеся старые сообщения не так ii-шно, но в принципе так можно.
#  Re: xc: lor
ahamai (blackcat, 2) → shaos  –  21:41:03 2024-10-26

> лор уже не торт...

ну, сейчас в разы адекватнее, чем какой-нибудь 2008, где большинство комментов в новостях и тем в толксах содержали полную ахинею, я тогда на опеннет убежал. и сейчас я "голдифицирую" тему 2000-го года, за несколько дней только до второй страницы дошёл.

а вообще, у нас сейчас фанаты технологии, но нет фанатов распределённости и локального хранения. и это в мире. где все друг друга блокируют, на чём свет стоит.

а что тогда лучше сделать в распределённом и локальнохранимом виде? опеннет, конечно, тоже интересен. а вообще, как-то в эпоху парсинга парсились либо rss, либо новости разных сайтов, но не комментарии. на лоре в принципе не так много комментов, поэтому ii-фикации он поддаётся.

сейчас теневое "что-то" смысла имеет мало, потому что мало пользователей. нужна, наверное, новая инфраструктура и интересный контент, хотя бы r/o. по второму я продолжу голдификацию, как минимум :)
#  Re: Полуневдимые эхи
ahamai (blackcat, 2) → shaos  –  21:35:58 2024-10-26

как отличить "конец передачи" от "оборвалось", чтобы не запарсить что не то. хотя, конечно, сейчас просто упадёт декодер с base64 из-за неккоректного ююка, но теоретически может и нет. я не знаю, я просто размышляю.
#  Re: Полуневдимые эхи
ahamai (blackcat, 2) → revoltech  –  21:34:41 2024-10-26

> вот 3547 сообщений имеют айдишники, которые вообще описанному в доках хэшу не соответствуют. Вопрос: был/имеется ещё какой-то алгоритм хэширования или что за фигня там происходит? А потом коллизиям удивляются.

во всяких босфорах и улиссах длина хэша была где 8, где 12 символов, поэтому для гейтования в ii до 20 добавлялось что-то типа "bosforbosfor" (а в гейтованых месагах вроде где-то полный хэш был, не помню уже, как это всё между сетями летало, но летало успешно.
#  Re: Полуневдимые эхи
shaos (spnet, 2) → revoltech  –  19:59:24 2024-10-26

Я для себя хочу попробовать новый вызов /u/n с ascii85+ вместо base64 - будет покомпактнее чуток
#  Re: Полуневдимые эхи
shaos (spnet, 2) → ahamai  –  19:58:07 2024-10-26

ну оборвалось и оборвалось - в следующий раз дозаберётся, не?
#  Re: xc: lor
shaos (spnet, 2) → ahamai  –  19:57:19 2024-10-26

лор уже не торт...
#  Re: Полуневдимые эхи
shaos (spnet, 2) → doesnm  –  19:57:05 2024-10-26

не - base64 нужен т.к. позволяет ii транспорту работать в том числе и по последовательным 7-битным каналам - через COM порт там или прямо в тексте е-мейлов без mime кодирования (которое также в текст по сути)...
#  Re: Полуневдимые эхи
shaos (spnet, 2) → revoltech  –  19:53:43 2024-10-26

Я три недели назад уже всё посчитал ii://TfXUY2nZ1vmjAsQhgfsK

Многие узлы допускают редактирование сообщений без изменения хеша и возможно какие-то изначально неправильно хеш реализовывали (т.к. в спеке небыло эталонных сообщений для сверки как это обычно принято) и потом некоторые ботоэхи с какого-то момента стали сломанные: ii://6kCluOlO0AG8aOvgvRPr

Основные stakeholders (текущий мейнтейнер стандарта с одной стороны и первоначальный создатель с другой) в один голос говорят, что сам алгоритм не важен - главное чтобы msgid был уникальным, поэтому я и отпочковал от ii/IDEC свой strengthened вариант iii т.к. мне для будущих экспериментов важно, чтобы хэш сходился всегда :)

ii://iii.nizya

А вообще было бы сильно прикольнее, если бы история хеширования в ii пошла по другому пути ;)

ii://vTYmGKHeCyvLZ3BV2NoP

Потому что как оказалось сам Создатель упоминал такой способ в комментах на лоре на этапе создания технологии ;)

[линк с пруфом пока не могут отыскать]
#  Re: Полуневдимые эхи
revoltech (spnet, 4) → ahamai  –  17:16:33 2024-10-26

ahamai> ну тогда это оверхед в коде. когда я делал, сравнить мне было не с чем, просто сделал на ровном месте, но по http оно работает ровно так, как было сделано в первой версии (хотя я много что забыл, но всё равно как-то работает). поэтому мой вариант естественно не оптимален и не идеален, и если кто-то сделает гораздо красивее, я с радостью перейду на этот формат.

Ну вот, кстати, я начал просто отслеживать хэши сообщений вместе с айдишниками, и после перефетча (со всего, кроме spline-online) из 17614 сообщений 14067 оказались с корректными айдишниками (сравнивал по функции LOWER() в базе, так что нюансы с A-z не важны), а вот 3547 сообщений имеют айдишники, которые вообще описанному в доках хэшу не соответствуют. Вопрос: был/имеется ещё какой-то алгоритм хэширования или что за фигня там происходит? А потом коллизиям удивляются.

Статистика сообщений с левыми ID по эхам (не считая spline):

sqlite> SELECT DISTINCT `echoname`, COUNT(`id`) FROM `msg` WHERE LOWER(`msgid`) != LOWER(`content_id`) GROUP BY `echoname`;
blcat.local|1
develop.16|17
game.rogue.14|39
idec.talks|322
idec.test|13
ii.stat|7
linux.14|341
lit.14|4

>> Читать далее
#  Re: Полуневдимые эхи
ahamai (blackcat, 2) → revoltech  –  15:46:24 2024-10-26

> Для сообщений: посчитать хэш, преобразовать в айдишник по алгоритму и сравнить с тем айдишником, который в начале строки в бандле.
> Для эх: сравнить количество айдишников с тем, которое мы запрашиваем, и удостовериться в том, что все скачанные айдишники имеют 20 символов.

ну тогда это оверхед в коде. когда я делал, сравнить мне было не с чем, просто сделал на ровном месте, но по http оно работает ровно так, как было сделано в первой версии (хотя я много что забыл, но всё равно как-то работает). поэтому мой вариант естественно не оптимален и не идеален, и если кто-то сделает гораздо красивее, я с радостью перейду на этот формат.
#  Re: Полуневдимые эхи
ahamai (blackcat, 2) → revoltech  –  15:27:15 2024-10-26

> Кто-нибудь скажет, какие проблемы решает base64 именно при постинге, каких не решает тот же самый x-www-form-urlencoded, в который сообщение по итогу всё равно заворачивается?

я сам давно об этом думал, и в следующих реализациях этого не было, был единый постинг хоть через веб-интерфейс, хоть через пойнта. но изначально можно было запостить сразу несколько сообщений, для чего это и было, а потом я решил, что не можно. в общем, это исторически сложилось. тем более, изначально в станции был только GET, поэтому сообщения больше 6 кб запостить было нельзя :)
#  Re: Полуневдимые эхи
revoltech (spnet, 4) → ahamai  –  15:30:41 2024-10-26

ahamai> остаётся вопрос в том, как узнать, докачалось ли всё или оборвалось.

Для сообщений: посчитать хэш, преобразовать в айдишник по алгоритму и сравнить с тем айдишником, который в начале строки в бандле.

Для эх: сравнить количество айдишников с тем, которое мы запрашиваем, и удостовериться в том, что все скачанные айдишники имеют 20 символов.
#  Re: Полуневдимые эхи
revoltech (spnet, 4) → doesnm  –  15:19:39 2024-10-26

doesnm> Го дропнем base64

Для /u/m не получится без глубинного перелопачивания самого формата бандла, а вот для /u/point, в принципе, легко.

Кто-нибудь скажет, какие проблемы решает base64 именно при постинге, каких не решает тот же самый x-www-form-urlencoded, в который сообщение по итогу всё равно заворачивается?
#  Re: Полуневдимые эхи
ahamai (blackcat, 2) → revoltech  –  14:46:55 2024-10-26

> Пример запроса по Nex: echo /u/e/idec.talks | nc station.domain 1900

остаётся вопрос в том, как узнать, докачалось ли всё или оборвалось. всё равно нужен con-len или какие-то флаги. кстати я изначально хотел добавить, чтобы любой бандл начинался и заканчивался конкретным тегом, чтобы проверять валидность бандла. но банально забыл. но вроде с http ничё так получилось, от этого не страдаем. а новой технологии придётся показывать себя на практике - ждём реализации :)
#  xc: lor
ahamai (blackcat, 2) → All  –  14:36:53 2024-10-26

Думаю о создании станции lor2ii, которая будет медленно и печально собирать сообщения с текущих тем лора.

Без веб интерфейса, либо с веб интерфейсом только для пойнтов.

При этом пойнты могут комментировать эти сообщения и они будут доступны другим пойнтам. Получится этакий OverLor.

Сообщения с лора тэгировать чем-то типо lorlink/урл-на-сообщение.

Вернуть http-клиента и ориентировать на всё это.

Кому-нибудь такое интересно?
#  Re: Полуневдимые эхи
doesnm (ping,55) → revoltech  –  14:35:40 2024-10-26

shaos>> Меньше это Gopher или Nex овер телнет :)
revoltech> Да не обязательно овер телнет, но да, суть в том, чтобы не относящихся непосредственно к ii метаданных меньше гонять. Здесь и так сообщения в base64 оборачиваются, что уже 4/3 от полезной нагрузки...

Го дропнем base64

+++ Никто не знает, как правильно. Так зачем же выдумывать правила?
#  Re: Полуневдимые эхи
revoltech (spnet, 4) → shaos  –  11:56:20 2024-10-26

shaos> Меньше это Gopher или Nex овер телнет :)

Да не обязательно овер телнет, но да, суть в том, чтобы не относящихся непосредственно к ii метаданных меньше гонять. Здесь и так сообщения в base64 оборачиваются, что уже 4/3 от полезной нагрузки...
#  Re: Полуневдимые эхи
shaos (spnet, 2) → tuple  –  11:46:51 2024-10-26

Меньше это Gopher или Nex овер телнет :)
Powered by iii-php v0.11