LINUX.ORG.RU

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

 , , , ,


5

5

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)

Скачать http://ii.blcat.ru/s/nastene-0.7.tar.gz

Цели проекта:

1. Создание малых сообществ. Это лучше форума. Во-первых, можно уже сразу иметь контент и присоединяться к каким-то обсуждениям, а не сидеть с пустым форумом. Во-вторых, на некоторых станциях были отображения в виде форума - на маленьком трафике это неудобно, всплывают по несколько тем с одним новым сообщением. (кстати, на том же лоре 95% сообщений я не вижу, хотя в каком-то топике может идти интересная мне дискуссия, но я об этом могу узнать только абсолютно случайно, обычно по чьей-то ссылке на какой-то комментарий, и я такой «ох, нифига себе тут народ общается, а я и не видел, ибо название топика мне неинтересно», возможно я когда-нибудь и сделаю гейт лора в эху). В формате эхи вовлечённость в разговоры выше, контента становится больше. Плюс, любой пойнт может создать любую эху, поэтому это ещё и твиттер. :) Вообще, если завести блог на этой платформе, то другие станции захотят его подцепить, и у проекта сразу же будет аудитория.

2. Любительское программирование. Писать собственные станции и клиенты - это довольно просто. Например, в gemini, сам протокол простой, нужно реализовывать рендеринг, переход по ссылкам и прочий интерактив. Тут простые и протокол и реализация, поэтому все пишут своих клиентов и свои ноды ;), были написаны ноды на python, php, go, tcl и на чём-то ещё. Для клиентов можно использовать уже готовые просмотрщики (хоть less) и готовые текстовые редакторы для написания сообщений. (клиенты писались и на dialog, и на tk, и на qt5, и на curses). Наверное, половина серверо и клиентописателей не были программистами. И вообще, в духе BBS, каждый сисоп собирает свою станцию, прикручивает туда какие-то свои фишки.

http://ii.blcat.ru/rpzzk4jE8lZsJ0WRdzrM - простейшая читалка на 4 строчки на shell

3. Когда все вокруг друг друга перебанят и у всех будет свой интернет, можно гонять трафик через транзитные узлы. :) Можно хоть раскидать десять простых php нод по 10 бесплатным хостингам и обмениваться через них (простая реализация php-ноды, которая есть в комплекте, занимает 27 строчек кода и совместима с любой версией php, начиная с 4й).

Вообще, подобную систему, в отличие от мессенджеров и даже обычных сайтов сложнее закрыть на чтение. Это как зеркала репозиториев, только зеркала сообщений.

Прочее:

Отображение эх в gemini: gemini://gem.blcat.ru

nastene retro 99 - только lite интерфейс, python 2.5-2.7
написанная в лучших традициях html 4.01 или даже 3.2
http://ii.blcat.ru/s/nastene-retro-99.tar.gz

alt-tab-let ★★
() автор топика
  1. Ты автор? Если да, добавлю соответствующий тег.
  2. В новости была сделана попытка оформить списки в маркдауне, но стилем оформления изначально был выбран лоркод. Это поправить нельзя, поэтому мне пришлось переделать списки на лоркод.
  3. Я исправил «рутинг» на «роутинг», «рутинг» сейчас больше с получением прав root ассоциируется, чем с маршрутизацией. Не против?
hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от alt-tab-let

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

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

фидо те же пойнты, те же борды.

тока принцип обмена другой. у фидо ближе но тоже другой.

тут вся конструкция в двух словах.

alt-tab-let ★★
() автор топика
— Алло, это техподдержка?
— Да, что вы хотели?
— Кто такой генерал Файлюра, и зачем он читает мой диск?
— Что? Кто это вообще, о чем речь?
— Ну, у меня на экране написано «General Failure reading drive a:»
doomer
()
Ответ на: комментарий от kto_tama

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

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

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

я тогда жил в мухосранске, и для меня это было окном в новый мир

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

я помню, что фидошный клиент был консольный

был и гуёвый. fips, по-моему, назывался. но с русским языком туда лучше было не ходить. в начале нулевых был уже fidolook express, надстройка для outlook express для win десктоп и win ce

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

alt-tab-let ★★
() автор топика

Почитал, скачал, запустил, зашел в вебинтерфейс - нихрена непонятно. Не взлетит.

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

Ну оно уже лет 10 где-то сбоку ходит. Для каких-то целей может понадобиться, для каких-то не понадобиться. Это нодовый комплект, а для начала надо пойнтом побыть, тока затем понять, зачем тебе нода. Собственно, в первых двух строках там всё объясняется.

Суть не в том, что скачал запустил начал всем постить, суть в простоте самой идеи.

ps. Помню, когда на лоре пошли новости про выпуск Линусом Git, комментарии были подобными :) Читайте в своё время в lor.gold, я это тоже обязательно выпущу.

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

Можно описание без фидошной терминологии. Для тех, кто не застал.

тут нет фидошной терминологии, в фидо был аутбаунд :) на тебя что-то висит, а ты забираешь. или не забираешь, если нод убил аутбаунд или что-то ещё.

а тут ты пишешь сообщение, а другие станции забирают их на свои станции. и эти сообщения расходятся по станциям.

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

Да даже те кто застал не могут понять что нагородил автор и как этим пользоваться.

ну, вроде я достиг максимальной примитивности, когда проще уже некуда. именно в разрезе использования и воспроизводимости. в вопросе «я скачал и не знаю чё делать» тут есть сложности, потому что это сервер, а не клиент, а сервер сам по себе ничего не делает. потому что протокол настолько упрощён.

alt-tab-let ★★
() автор топика

Nastene (она же ii) — это распределённая система сообщений

Насколько распределённая? Федерация? p2p с опорой на суперноды как skype до уничтожения? По описанию не выглядит одноранговой.

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

а тут ты пишешь сообщение, а другие станции забирают их на свои станции. и эти сообщения расходятся по станциям.

а в чем тогда смысл базовых узлов ?
оно нигде не хранится, только непосредственно у участников ?
и если ты подключаешься не с самого начала, то история - всЁ ?

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

Насколько распределённая? Федерация? p2p с опорой на суперноды как skype до уничтожения? По описанию не выглядит одноранговой.

всё проще. сисопы распределяют, кто чего откуда фетчит. ты распределяешь, что и куда ты пушишь.

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

и если ты подключаешься не с самого начала, то история - всЁ ?

ты забираешь с любого узла, у которого есть эта эха, всю эху. хоть с 2014 года.

оно нигде не хранится, только непосредственно у участников ?

да, но ты можешь взять 10 бесплатных php-хостингов и 10 раз сохранять там все сообщения сети.

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

сисопы распределяют

Кто это?

ты распределяешь, что и куда ты пушишь.

Не понял. То же самое, что список адресатов при написании электронного письма или тег в месседжере?

macrohard ★★
()
Последнее исправление: macrohard (всего исправлений: 1)

Попробую включить dumb mode.

Алёне нужно отправить сообщение Бранимиру, чтобы мог прочитать только он. Может ли она сделать это с помощью Nastene?

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

Кто это?

узлы сети. я хочу от тебя то, ты хочешь от меня это

Не понял. То же самое, что список адресатов при написании электронного письма или тег в месседжере?

пушинг практически нигде не используется, но если ты хочешь куда-то сохранять всю историю переписки, ты благодаря клиенту на php из 27 строк можешь создать 1-10-1000 транзитных узлов. тут вообще другая концепция, не кто-то пишет и всем оно будет, а только договорившиеся друг с другом узлы (или их пойнты) пишут сообщения и обмениваются ими. фидошная коллективная ответственность, узел отвечает за пойнта, источником всегда является станция.

кароч как фидо только протокол примитивный текстовый а не бинарный, и без аутбаунда :)

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

Алёне нужно отправить сообщение Бранимиру, чтобы мог прочитать только он. Может ли она сделать это с помощью Nastene?

это ЭХОконференции. там вообще нет сообщений кому-то, только сообщения в эху. вот как ЛОР, где нет личных сообщений. только формат не форума, а эхи (хотя формат форума реализовывали на станциях), и все сообщения живут на разных станциях (один умер, второй подхватил)

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

Отображение эх в gemini: gemini://gem.blcat.ru

Сделал бы протокольную отдачу через Gemini тоже. У меня вон на одном порту автодетект клиента, нода будет отдавать по HTTP либо Gopher/Nex в зависимости от того, по какому протоколу обратились. Gemini/Spartan слегка в концепцию не вписываются, но в целом ничто не мешает подобное и для них соорудить.

С другой стороны, вебморды на моей ноде не будет от слова совсем. Только голые эндпоинты.

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

Можно описание без фидошной терминологии. Для тех, кто не застал.

тут нет фидошной терминологии,

кароч как фидо

что-то не сходится.

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

что-то не сходится.

в исходном тексте фидошной терминологии нет :) но вообще это как фидо, всеповестно распространяемые эхоконференции, и станции, которые ими обмениваются по общему протоколу.

короче, зашёл ты на Lor в тему General, там общаются люди. Зашёл ты на Opennet в тему General, и там сообщения и с лора и с опеннета. Потому что они обмениваются сообщениями.

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

С Gemini пока повременю, думаю тему некса развивать. По факту в моей ноде для минимальной функциональности по стандарту, ссылка на который уже протухла, но который я продублировал на миропонятном языке в ii-doc.txt, осталось реализовать только грёбаный /u/push. Снова возникает вопрос, нужен ли он вообще, но раз уж начал…

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

Я u/push реализовал только в 0.7, спустя 10.5 лет, только для того, чтобы удобнее постить в lor.gold, для которого я свой клиент сделал

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

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

короче, зашёл ты на Lor в тему General, там общаются люди. Зашёл ты на Opennet в тему General, и там сообщения и с лора и с опеннета. Потому что они обмениваются сообщениями.

Напоминает Fediverse.

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

в вопросе «я скачал и не знаю чё делать» тут есть сложности

Поэтому и нужна инструкция, отвечающая на этот вопрос. Но по факту проект ущербен, потому что автор не думает не то что о юзабилити, а вообще не заботится о том, чтобы его понимали.

Что список эх делает в разделе About - сие есть великая загадка.

Что обозначает термин «улица» - тоже неясно, нигде в документации не нашел. Соответственно следующий текст представляет собой полную белиберду:

Улица: blackcat

ii-сервер: http://ii.blcat.ru/u/

Пользователь: xintrea (blackcat, 4)

И так весь интерфейс, сплошная загадка. Что делать с набором ПО ноды - тоже непонятно, автор не спешит об этом рассказать. Нахрена тогда это вообще нужно?

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

Что список эх делает в разделе About - сие есть великая загадка.

это простой способ перескочить на нужные эхи, это было добавлено вообще недавно

И так весь интерфейс, сплошная загадка. Что делать с набором ПО ноды - тоже непонятно, автор не спешит об этом рассказать. Нахрена тогда это вообще нужно?

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

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

C простотой пока туго.

простота протокола. клиент или сервер можно соорудить хоть на берёзовых бруньках, хоть на установочной 1.44mb дискете OpenBSD. это всё тоже расписано в целях

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