LINUX.ORG.RU

Nastene 0.7 — простая распределённая система сообщений

 , , , ,


4

4

Nastene (она же ii) — это распределённая система сообщений, максимально упрощённое фидо. Операция идёт с двумя объёктами. Объект сообщение это сообщение. Объект эха это именованный список сообщений. Станции по заданному заранее роутингу скачивают с других станций списки, потом забирают те сообщения, которых у них нет. Пойнты пишут сообщения на станции (в веб-интерфейсе или клиентом). Всё, это весь обмен и вся структура сети.

Nastene 0.7 и есть станция. Написана на Python 3 и работает на текстовых файлах.

О роутинге. С помощью list.txt и питоньей скриптоты можно легко обеспечить режим «все обмениваются всем со всеми», но как показывает практика, у разных станций разные списки эх. Так и было задумано. Обычно в сети есть какая-нибудь станция-архив, которая скачивает все сообщения со всех станций.

Есть lite-интерфейс (поддерживает, например win95/ie4+), создана эха retro.talks.

Изначальная цель проекта — ведение маленьких, но дружных сообществ (когда трафика мало, формат эх позволяет больше вовлекаться в обсуждения). Или распределённый мини-твиттер. Проекту более 10 лет, но до сих пор сохранилось много сообщений многолетней давности с сайтов, которых уже давным давно нет. Что написано в ii, не вырубишь топором. Благодаря этому из двух уже давно умерших сайтов и эх воссоздана эха retro.talks.

Изменения (фактически, это изменения с версией 2014 года):

  • Вместо Foundation (где куча css и js файлов) используется chota css (один css-файлик). Светлая и тёмная темы. Иконочный шрифт удалён. Для тех, кому и это слишком тяжело, есть lite-интерфейс.
  • Введение тэга topicid для отслеживания цепочек (даже если какая-то часть сообщений потерялась).

Это всё так же базовая реализация протокола, следующую версию можно выпустить ещё лет через 10.

P.S. Korovan-free product

>>> Подробности

★★

Проверено: hobbit ()
Последнее исправление: unfo (всего исправлений: 7)
Ответ на: комментарий от watchcat382

я видел программки для незаметного размещения текста в картинках с котиками.

Сколько можно поместить в EXIF-метаданные кстати?

Ещё есть rarjpeg.

macrohard ★★
()
Ответ на: комментарий от macrohard

Сколько можно поместить в EXIF-метаданные кстати?

Обратите внимание,что фотоаппараты нередко в основной jpeg файл запихивают еще и preview низкого разрешения размером в пару десятков килобайтов. Попробовать запихать вместо preview полноразмерную картинку я не пробовал. Или вовсе не картинку.

А в файлах mp3 попадаются встроенные фотографии обложек альбомов,которые приходится удалять чтобы побольше музыки влезало в память всяких портативных плейеров.

Так что как я уже сказал, мест куда можно запихать текстовую информацию - довольно много. Скрытность обратно пропорциональна количеству запихнутого.

А еще есть оверлейные сети (yggdrasil,cjdns) которые имеют настолько продвинутые средства автоконфигурации что позволяют поднять прямо IP-канал между двумя компами,находящимися за NAT сотового оператора. Причем у yggdrasil уже вроде бы есть даже клиент под андроид. Также для cjdns заявлена работа прямо поверх «голых» кадров ethernet. Я проверял - оно работает. Значит можно заставить работать поверх любого линка,имитирующего ethernet в смысле передачи кадров,пусть даже и медленной. Надо лишь написать модуль-драйвер в ядро,который со стороны софта будет выглядеть как драйвер сетевой карты. Возможно что и yggdrasil так сможет - я не пробовал.

Кстати,внутри сети yggdrasil вполне себе есть и люди и ресурсы. Только об этом мало знают и говорят,в отличие от tor. Для желающих попробовать и имеющих под рукой Дебиан - пакет лежит тут:

deb http://neilalexander.s3.dualstack.eu-west-.amazonaws.com/deb/ debian yggdrasil

В установке безобиден.

watchcat382
()
Последнее исправление: watchcat382 (всего исправлений: 2)

Так, я не понял одного. Как вот это должно поджечь пукан цукербергу? Чтобы болталка была успешной - она должна реально угрожать пейсбуку. Да, котятки, связь именно такая - сначала угроза, потом как следствие - распространение. Потому что опыта тягаться с цукербергом в привлечении и удержании ни у кого не хватит

DumLemming ★★☆
()
Ответ на: комментарий от DumLemming

С ним не нужно тягаться. Будет лучше если все они останутся, как есть. А рядом свободное и не привлекающее внимание общение для тех, кто «наелся».

Nelfo
()
Ответ на: комментарий от watchcat382

Не очень понимаю такое отвращение к бинарным форматам. Есть какие-то аргументы или это чисто личные предпочтения?

Принцип KISS и идеология пермакомпьютинга. Как отмечал даже автор топика, клиент или даже просто фетчер ii можно изготовить, не имея под рукой компилятора и вообще ничего, кроме busybox. Этот протокол будет работать везде, где работает голый TCP. На любой древнятине или мобиле с J2ME или хоть какими-нибудь приложениями. Я вон даже HTTP оверхедом считаю, поэтому в своей ноде и клиенте встроил поддержку фетчинга по Nex/Gopher (по факту в данном контексте запросы там одинаково выглядят).

Вообще разговор в какое-то не то русло пошёл. Стеганография, иггдрасили и прочие AX.25 — это вообще не про эту сеть.

Времена халявных толстых каналов - заканчиваются.

У вас — может быть. Я вне чебурнета. Но объём трафика в ii даже с учётом перегонки бандлов в base64 настолько незначителен, что и GPRS для обмена вполне хватает.

rebforce
()
Ответ на: комментарий от DumLemming

Как вот это должно поджечь пукан цукербергу?

А с чего бы оно вообще должно кому-то поджигать пукан-то?

Чтобы болталка была успешной - она должна реально угрожать пейсбуку.

Каковы критерии «успеха»? Ламерьё плейнтекст всё равно не признаёт, но нужно ли оно здесь?

rebforce
()
Последнее исправление: rebforce (всего исправлений: 1)
Ответ на: комментарий от DumLemming

Так, я не понял одного. Как вот это должно поджечь пукан цукербергу?

опыта тягаться с цукербергом

Откуда взялась пресуппозиция, что такая задача не то что ставится, а вообще кому-то из авторов в голову приходила? По тексту новости этого сказать нельзя, по комментам тоже, по тому, что я вижу в сети про эту ii — тоже. Это же просто очередное типа-фидо для уютненького чатинга между своими. На мой взгляд со странными решениями местами, но почему бы и не быть и такой штуке…

CrX ★★★★★
()
Ответ на: комментарий от rebforce

клиент или даже просто фетчер ii можно изготовить, не имея под рукой компилятора и вообще ничего, кроме busybox

А в реальной жизни эта возможность точно будет востребована?

Стеганография, иггдрасили и прочие AX.25 — это вообще не про эту сеть.

Это про отвязку верхнего уровня доставки сообщений от транспорта. Полную отвязку. Поэтому и были упомянуты другие виды транспорта с их особенностями.

Этот протокол будет работать везде, где работает голый TCP.

Вот только TCP умирает на линках где всего лишь процентов 10 пакетов теряются. От того регулярно появляются альтернативы,работающие прямо поверх пакетной(packet switching) сети. Смотрим например на Гугл с его QUIC(RFC9000).

Я вне чебурнета.

Усиление контроля над передачей данных по сетям связи - это общемировое явление. И кстати на первом месте в этом деле - мировой экономический лидер Китай. Попробуйте зайти на какой-нибудь «внутрикитайский» сайт,посмотрите на скорость.Другие развитые страны тоже постепенно подтягиваются. Поэтому разрабатывая средства обмена текстовыми сообщениями это явление надо учитывать. Вон в США принцип сетевой нейтральности был отменен еще в 2017 году. Ну вот провайдер и выделит большую часть канала какому-нибудь CNN или кто там у них является аналогом газеты «Правда»,остальное поделит между гуглами и фейсбуками которые ему заплатят,а для «нецелевого» использования оставит какие-то крохи,да еще и с большой потерей пакетов из-за плохо работающего шейпинга. В том же 17 году в Евросоюзе был принят закон о защите потребителей (Consumer Protection Cooperation),позволяющий блокировать сайты без судебного решения «в целях защиты потребителей». И уже блокируют (например про Каталонию,Косово).

объём трафика в ii даже с учётом перегонки бандлов в base64 настолько незначителен

Я не понимаю с технической точки зрения зачем специально увеличивать объем данных если можно уменьшать? Да, иногда это требуется вынужденно для совместимости с древними протоколами типа как пересылка юникода (который таки бинарный) через электронную почту которая гарантированно пропускает только base64 набор символов,а остальное как повезет. Да, в древние времена упаковка/распаковка была «дорогим» процессом,но те времена уже лет тридцать как прошли.

GPRS для обмена вполне хватает.

GPRS это еще вполне быстро. У меня тут года до 12 только оно и было так что хорошо знаком. А вот если сотовому оператору захочется закрутить шейпер на якобы 64К из-за того что на «безлимитном» 4G-тарифе лимит кончился - то обычно получается такое через что ничего толком не работает. И не из-за скорости,а из-за потерь пакетов и произвольно прыгающей величины задержки. А так-то да, ничуть не соврали - тариф безлимитный,вас не отключили. Но и качать ничего не дают.

watchcat382
()

Вопрос автору. Или очень плохо смотрели или не нашел. С какой периодичность и как вообще реализована периодичность синхронизации нод? Фоновое задание, которое фетчит ноды по списку раз в N-минут или каким образом?

Nelfo
()
Ответ на: комментарий от DumLemming

Как вот это должно поджечь пукан цукербергу?

А зачем? Мы - сами по себе,цукерберг - сам по себе. Вон в IRC люди сидят и никак с цукербергом не пересекаются. В Фидо кстати тоже.

Чтобы болталка была успешной

Сначала надо договориться о критериях оценки успешности. Например предлагаю такой критерий - успешная фильтрация пользователей по IQ и недопущение в сеть личностей у кого он на уровне плинтуса. Наличие входного барьера в виде необходимости осилить чтение документации и сделать как написано - это хорошо,а не плохо. Смотрим на LOR - здесь собрались пользователи Линукса,который этот порог входа имеет. И присутствующим нравится общаться друг с другом потому что у них сходный и достаточно высокий интеллектуальный уровень. И нет, именно программистом для соответствия вышеозначенному критерию быть абсолютно не обязательно. Умение читать и следовать инструкциям - достаточно универсально для самых разных областей деятельности.

Предполагаю что у Цукерберга другой критерий успешности - максимальное привлечение в свою сеть людей,обладающих деньгами в количестве,достаточном для окупаемости продаваемых через его платформу услуг и товаров. Интеллект потенциальных покупателей ему не важен,только размер кошелька,что логично для коммерческого проекта. Бизнес - это всегда про прибыль.

watchcat382
()
Последнее исправление: watchcat382 (всего исправлений: 1)
Ответ на: комментарий от rebforce

Ламерьё плейнтекст всё равно не признаёт

А не признает оно его потому что в школе небыло научено ни чужие тексты понимать ни свои мысле в виде текста формулировать. Письменная речь - это довольно высокоуровневый навык которому надо учиться. Это требует ментальных трудозатрат,которые для весьма многих людей куда более мучительны чем физические.

watchcat382
()
Ответ на: комментарий от CrX

Я мог бы заблеклистить но не буду. На других станциях это заблекличено

alt-tab-let ★★
() автор топика
Ответ на: комментарий от Nelfo

Фоновое задание, которое фетчит ноды по списку раз в N-минут

Да

alt-tab-let ★★
() автор топика
Ответ на: комментарий от watchcat382

Для экономии трафика на стене 0.7 есть следующие ступеньки, это не часть стандарта но для своего фетчера это можно использовать:

/list.txt?h=1 выдаёт вместо описаний хеши эх. можно хранить этот хэш, и если эха не изменилась, не запрашивать её

/u/e/эха/эха/эха?sf=хэш/хэш/хэш - если один из хэшей найден в любой из эх, то выдаётся список только из хэшей, которые за ним. то есть, берём последний хэш из каждой фетчимой эхи и запрашиаем

прописка в клиенте вместо server/u/ урла server/lim/200/u/ запрашивает только последние 200 сообщений вместо всех, в любом случае. при фетче раз в день 200 это разумное число, но можно по статистической эхе, которая пишет статистику раз в неделю, подобрать себе своё.

alt-tab-let ★★
() автор топика
Ответ на: комментарий от ptah_alexs

Потому что в новой версии стандарта нет расширений как таковых.

rebforce
()
Ответ на: комментарий от alt-tab-let

Надо бы и себе прикрутить. Или не надо. Пока думаю. Сейчас отдача по HTTP и голому TCP почти идентична. А так придётся Accept-Encoding находить и анализировать.

Ну и правильно сказал мели-оратор выше: гзипить то, что до этого расширяется в base64… так себе удовольствие.

rebforce
()
Последнее исправление: rebforce (всего исправлений: 3)
Ответ на: комментарий от watchcat382

Да, в древние времена упаковка/распаковка была «дорогим» процессом,но те времена уже лет тридцать как прошли.

Кому как. Мне важно, чтобы и железо 30-летней давности в строю оставалось, например.

rebforce
()
Ответ на: комментарий от rebforce
-rw-r--r-- 1 user user  16K ноя 23 16:23 sarge-fips.b64
-rw-r--r-- 1 user user 6,1K ноя 23 16:22 sarge-fips.b64.gz
-rw-r--r-- 1 user user  12K окт 13 05:53 sarge-fips.txt
-rw-r--r-- 1 user user 4,1K ноя 23 16:23 sarge-fips.txt.gz
alt-tab-let ★★
() автор топика
Ответ на: комментарий от alt-tab-let

Ну это довольно большие тексты. Но да, я у себя на ноде сделал сжатие. Причём мог его сделать на уровне Traefik, но решил автономно в самом tiid.

rebforce
()
Ответ на: комментарий от watchcat382

Каким образом бинарные форматы типа squish или jam в фидо что-то экономило? А бандлы для посылания - они тоже все были zip-ом пожато. Ну так и сейчас есть gzip сжатие в http.

alt-tab-let ★★
() автор топика
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.