nedoPC.org

Community of electronics hobbyists established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 18 May 2022 00:32



Reply to topic  [ 6 posts ] 
Компьютерная сеть IDEC и возможные пути её расширения 
Author Message
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20194
Location: Silicon Valley
Reply with quote
https://ii-net.tk/idec-doc/?p=main

Quote:
Что может предложить наша сеть и технология:

  • Чтение интересных RSS-лент и спокойное общение в одном приложении
  • Отсутствие лайков, фоточек, видосиков, свистелок и прочего непотребства: только текст
  • Грамотное, дружелюбное и неравнодушное население
  • Поддержка всех современных ОС
  • Простая интеграция своих скриптов, расширений, ботов и так далее
  • Полноценная работа в Offline
  • Распределённость и отказоустойчивость (сообщения разлетаются по всем серверам; последний сервер жив - сеть жива)
  • Минимальное потребление ресурсов на клиенте и техническая простота

Взгляд со стороны:

Есть несколько серверов (грубо говоря, сайтов), за каждым из которых закреплены свои пользователи (поинты). Поинты пишут сообщения каждый на свой сервер. Через каждые 10-20 минут сервера скачивают друг у друга новые сообщения. В итоге на всю сеть одна общая база данных. Для установления цепочек синхронизации владельцы серверов сначала договариваются.


IDEC создан на основе ii

Quote:
ii - протокол обмена сообщениями, который появился в 2014 году благодаря одному энтузиасту по имени Рома. В рамках ii развивалось сообщество под названием "Клуб хороших людей", которое по некоторым причинам (в том числе уход автора из проекта) прекратило своё существование.

Основные темы, где были представлены релизы ii и "Клуб":


Протокол IDEC (ii-like Data Exchange Convention) форкнулся от ii и является его идейным продолжателем. Сообщество, работающее на основе ii-like Data Exchange Convention - то же самое, что и у ii. У нас одна БД сообщений и те же основные люди.


Описание ii от автора (взято из вебархива https://web.archive.org/web/20140909193610/http://ii.51t.ru/):
Quote:
ii: говорил, говорит и будет говорить

ii - это система для онлайн и оффлайн обмена сообщениями, вобравшая в себя лучшие идеи из форумов, твиттера, FIDO и git. Она имеет примитивное внутреннее устройство, которое позволяет вести дискуссии даже из консоли и всегда иметь на локальной машине копии сообщений.

Реализация сервера написана на python 2, bottle.py (проверена работа в openbsd,linux,haiku). Любой ii-сервер может обмениваться трафиком со всеми подобными серверами или с конечными пользователями (через клиенты).

Короткий faq

- Это фидо?
И да, и нет. Это сверхпростое фидо без нетмейла и аутбаунда, если кому-то это о чём-то говорит.

- Это децентрализованная сеть?
И да, и нет. Скорее, да.

- Это кому-то интересно?
Это кому-то практично.

- И что тут делать?
Общаться и собирать вместе тематические сообщества вместо ужасных соцсетей и сервисов. :)


В настоящее время существует как минимум 7 узлов сети IDEC (последний в списке это архив старых ii-сообщений):

http://idec.spline-online.ml
https://club.hugeping.ru
https://dynamic.lessmore.pw
http://gears.headake.win/idec/ui2/
https://idec.textgamesinfo.ru
https://ii-net.tk/ii/ii-web.php
https://alicorn.tk/ii-old/

Узлы имеют как обшие эхоконфренции, так и свои собственные. Я в ближайшее время планирую поднять свой сервер IDEC со своими собственными эхоконференциями :)

P.S. Недавно появился чат в телеге: https://t.me/idec_chat
Там можно позадавать вопросы текущим мантейнерам стандарта :dj:

P.P.S. Актуальная статистика сети в графическом виде: https://grafana.lessmore.pw/d/vPKzlQKWk/idec?orgId=1

P.P.P.S. Сделал свой форк серверной части: https://gitlab.com/shaos/iii-php и поставил его на свой сервер http://idec.shaos.net/

_________________
:eugeek: https://twitter.com/Shaos1973


15 Dec 2021 00:51
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20194
Location: Silicon Valley
Reply with quote
Интересный способ идентификации сообщений выбран в ii (перекочевавший затем в IDEC и использующийся в двух самых старых серверах реализующих этот протокол - ii-php написанном на PHP и iing написанном на Python) - сервер формирует текст сообщения для сохранения добавляя к нему заголовки, а именно:

  1. tags - теги (используются только для `repto` и для идентификатора `ii/ok`)
  2. echoarea - основная эхоконференция, в которую помещается сообщение
  3. date - число секунд от эпохи unix, в utc
  4. msgfrom - отправитель
  5. addr - адрес отправителя (практического смысла не имеет, служит для того, чтобы узнавать, с какой станции пришло сообщение)
  6. msgto - пользователь, которому предназначено сообщение (либо All)
  7. subj - тема сообщения
  8. пустая строка
  9. и далее - текст сообщения

Пример из документации:
Code:
ii/ok/repto/IZXhLBKJx0rhx0lXYu3L
im.16
1455789357
Vasya
Lunar, 2
Pupkin
Re: Мое первое сообщение в эху

текст сообщения

(в данном случае наличие ключевого слова repto в тегах означает, что это сообщение является ответом на сообщение с указанным ID - здесь IZXhLBKJx0rhx0lXYu3L)

Далее по всему этому считается хэш SHA256 (32 байта), бинарное представление которого переводится в base64 (что даёт 43 символа), от которого берутся первые 20 символов (46.9% от всей строки), но т.к. base64 наряду с буквами A...Z a...z и цифрами 0...9 ещё имеет 2 дополнительных небуквоциферных символа + и / для пущей читабельности они заменяются на символы A и z (именно так - большая A и маленькая z) - уникальность хэша от этого немного портится (покрытие уменьшается в 1.88 раз с 64^20 до 62^20, что даёт 7e35 вариаций), но хэш становится "безопасным" для передачи как угодно.

При передаче сообщения между сервером и клиентом также используется base64 (но только всего сообщения) - в виде base64url, в котором + заменяется на - а / заменяется на _

P.S. А вот относительно новый сервер ii-go, написанный на Go, заменяет небуквоциферные символы на A и Z (большую) - собственно так и было написано в документации (как пример). И плюс к этому разрешает редактировать сообщение после того как ему уже присвоен ID и оно сохранено на сервере (и даже уже передано на другие сервера) - при этом содержимое сообщения меняется, но его хэш остаётся прежним, что несколько противоречит всей концепции.

P.P.S. Если бы не последнее исключение (и ряд старых сообщений, в которых хэш считался как-то иначе), то имя сообщения можно было бы использовать как уникальный адрес объекта в сети IDEC - на всём этом можно было бы городить распределённое хранилище файлов и т.д.

_________________
:eugeek: https://twitter.com/Shaos1973


16 Dec 2021 00:27
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20194
Location: Silicon Valley
Reply with quote
Поднял собственную ноду IDE:

http://shaos.net:8085


Attachments:
Screenshot from 2021-12-19 05-28-53.png
Screenshot from 2021-12-19 05-28-53.png [ 91.78 KiB | Viewed 923 times ]

_________________
:eugeek: https://twitter.com/Shaos1973
19 Dec 2021 07:35
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20194
Location: Silicon Valley
Reply with quote
Сделал форвардинг с http://idec.shaos.net

_________________
:eugeek: https://twitter.com/Shaos1973


20 Dec 2021 01:03
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20194
Location: Silicon Valley
Reply with quote
Наткнулся на статистику сети в графическом виде:

https://grafana.lessmore.pw/d/vPKzlQKWk/idec?orgId=1

Вот оттуда график активности за всё время её существования:


Attachments:
idec8years.jpg
idec8years.jpg [ 19.16 KiB | Viewed 858 times ]

_________________
:eugeek: https://twitter.com/Shaos1973
22 Dec 2021 05:46
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20194
Location: Silicon Valley
Reply with quote
Форкнул версию сервера ii-php себе: https://gitlab.com/shaos/iii-php

_________________
:eugeek: https://twitter.com/Shaos1973


22 Feb 2022 22:15
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 6 posts ] 

Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  

Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.