idec.talks: Сеть IDEC


1 2 3
Reply to: RnhhLrjEWTL5vj69fYpk
From: Difrex(mobile) (tavern,23) 03.01.18 10:42 UTC
To: Difrex(mobile)
Subject: Re: Тех-работы на *.difrex.ru
ii.difrex.ru работает. Обновляется ДНС, еще может выдавать 502, если ваш днс не подсосал изменения.

From: app4soft (syscall,33) 09.01.18 03:05 UTC
To: All
Subject: idec-mobile
Выявлен баг с крайней сборкой клиента при копировании фрагмента текста сообщения.

Если выделить кусочек текста а потом ткнуть в произвольном месте на экране то клиент вылетает в список сообщений.

Могу если надо логи приложить.

Reply to: lVN80G7ZSU1xMfzVEBSN
From: vit01 (mira, 1) 09.01.18 05:08 UTC
To: app4soft
Subject: Re: idec-mobile
app4soft> Выявлен баг с крайней сборкой клиента при копировании фрагмента текста сообщения.

app4soft> Если выделить кусочек текста а потом ткнуть в произвольном месте на экране то клиент вылетает в список сообщений.

Логи обязательно и версию андроида. И ещё вопрос, всегда проявляется или только иногда.

// У меня не воспроизводится

Reply to: a9LH0fauXpbBY0ss2sv9
From: app4soft (syscall,33) 10.01.18 01:52 UTC
To: vit01
Subject: Re: idec-mobile
vit01> Логи обязательно и версию андроида. И ещё вопрос, всегда проявляется или только иногда.

Завел issue (там и лог и версия Android)

https://github.com/vit1-irk/idec-mobile/issues/27

Краш воспроизводится на моем аппарате. Других аппаратов у меня нет.

Reply to: e26IwIwZ2i83ju93Cmjh
From: Difrex(mobile) (tavern,23) 11.01.18 08:28 UTC
To: vit01
Subject: Re: idec-mobile


From: Difrex(mobile) (tavern,23) 11.01.18 08:28 UTC
To: All
Subject: ...


From: Difrex(mobile) (tavern,23) 11.01.18 13:26 UTC
To: All
Subject: Пустые сообщения
$сабж от меня. Извините :)

From: Difrex(mobile) (tavern,23) 12.01.18 08:54 UTC
To: All
Subject: Про IDEC
// Я попробую транслировать в сеть некоторые посты из своего бложика, если кто не против

IDEC - это протокол обмена сообщениями совместимый на базовом уровне с ii. Расшифровывается, как ii-like Data Exchange Convention.
Главная фишка его - это простота и возможность работать поверх чего угодно, например, ssh.
Но практически все реализации сейчас работают поверх http.

Цитата из документации( https://ii-net.tk/idec-doc/)

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

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

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

== Общение



В стандарте предусмотрена очень полезная фича, как /list.txt(это может быть на самом деле файл или путь в строке адреса в браузере).
На запрос list.txt сервер возвращает нам список эх(публичных) с описанием и количеством сообщений в них.
Так при первом попадании на сервер, клиент сможет сразу знать какие эхи он хочет читать.

Стандарт и все реализации серверов поддерживают создание эхи пользователем. Для этого нужно всего лишь написать в нее. Такая эха не
будет отображаться в list.txt и получить из нее сообщения можно, только зная название. Шифрования в стандарте нет, но это и не нужно,
ибо приносит только усложнение. Для приватного общения можно использовать скрытую эху и GPG.

Личных сообщений нет, но обсуждение стандарта идет. Можно начать с чтения [этого]( https://dynamic.lessmore.pw/?j=FGOqT29oVwwBElTJNMj x) треда.

Каждое сообщение в сети уникально, т.е. ему присвается ID сгенерированный на основе суммы sha256 от контента. Это не спасает от спама,
но позволяет избежать коллизий в сети.

== Устройство сети



На протоколе IDEC чаще всего реализуют децентрализованную клиент-сервер сеть.
P2P не предусмотрено, но никто не мешает написать свое расширение, которое реализует P2P обмен.

Итак, рассмотрим топологию сети от простого к сложному.

Самая простейшая сеть выглядит так:

https://difrex.lessmore.pw/images/idec/idec1.png

У нас есть два клиента, которые обмениваются сообщениями через сервер. Оба клиента получают сообщения из одной и той же эхи.
Все централизовано и при смерти сервера клиенты больше не смогут общаться с друг дугом. Давайте добавим еще один сервер!

https://difrex.lessmore.pw/images/idec/idec2.png

Владельцы серверов договорились между собой обмениваться сообщениями эхи pipe.2032, теперь при выходе из строя одного из серверов
сообщения будут доступны на другом сервере.

Добавим еще сегмент сети

https://difrex.lessmore.pw/images/idec/idec3.png

У нас добавился еще один сегмент сети в котором происходит общение в эхах pipe.2032 и linux.14.
Так наш первый сегмент начинает обмениваться сообщениями со вторым. Добавим еще один сегмент.

https://difrex.lessmore.pw/images/idec/idec4.png


И еще

https://difrex.lessmore.pw/images/idec/idec5.png

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

IDEC позволяет строить любые топологии. Клиент может выступать так же и сервером и забирать сообщения сразу со всех серверов.
А простота протокола позволяет писать клиентов очень быстро.

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

Reply to: e26IwIwZ2i83ju93Cmjh
From: vit01 (mira, 1) 15.01.18 14:48 UTC
To: vit01
Subject: Re: idec-mobile
Багфиксы для app4soft (с косячной TextView) и для проблемы с восстановлением активити у Бориса закинуты в git. Сборки лежат как обычно

1 2 3