idec.talks ii/idec talks

IDEC identity

== IDEC Identity

Я придумал несколько вариантов, как мы можем шарить юзеров. Думаю, что можно пообсуждать.
Общая тема этого - использование gpg для подтверждения и шифрования.

В чем приимущества gpg:
- есть везде
- прост, как полено
- сеть доверия
- можно передавать секреты без всяких ssl

Все будет рассматриваться на примере 3-х нод, операторы которых подняли некий абстрактный(реализации нет)
сервер авторизации, добавили и подписали ключи друг-друга.
Так же, мне кажется, что эта штука может служить генератором points.txt.

== Вариант № раз

Identity service предоставляет API, например, по ~POST /x/i/points~. Запрос поинтов с ноды должен быть в виде
plain text сообщения подписанного ключом запрашивающего и зашифрованного публичным ключом целевой ноды.

Структура сообщения мне предсталяется как-то так:

====
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

idec/ok
sync
-----BEGIN PGP SIGNATURE-----
SIGNATURE
-----END PGP SIGNATURE-----
====



Нода, получившая этот запрос, расшифровывает полученный запрос, проверяет валидность подписи и степень доверия
к ключу запрашивающего, после чего парсит запрос и отдает список поинтов в формате points.txt(подписынный и зашифрованный конечно же).

== Плюсы

1. Реализуется с минимумом усилий
2. Очень все просто

== Минусы

1. Все поинты со всех нод хранятся на каждой из нод
2. Если подламывают одну из нод, то утекают все поинты сети

== Вариант № два

Identity сервис предоставляет API для валидации и проталкивания(push) поинтов.

== Валидация

На ноду приходит запрос требующий authstring, но соответсвующего поинта на ноде не существует.
Итак, с этим authstring делаются запросы на ноды-соседи. Сообщение запроса примерно такое(шифрованное):

====
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

idec/ok
validate
authstring
-----BEGIN PGP SIGNATURE-----
SIGNATURE
-----END PGP SIGNATURE-----
====



Если поинт существует, то возвращается(подписано и шифровано) true, никнейм и адрес поинта. Нода открывает
сессию(например, на 12 часов) для этого поинта и хранит данные авторизации в памяти без записи в points.txt. Можно добавлять что-то в адрес, чтобы было видно, что это не родной поинт этой станции.

== Проталкивание

Отправляем строку поинта на станции-соседи. Принимающая сторона записывает поинта в points.txt. Все.

== Плюсы

- Безопасно, при подломе станции все поинты не утекут

== Минусы

- Чуть сложнее, чем вариант номер раз.


Мне видится предпочтительным второй вариант. PoC постараюсь выложить в ближайшее время.
Обсудим?

Вопросы по /u/push

Возникло два сабжа.

1. Бандл в сабжевой теме принимается в формате msgid:base64?
2. Лучше делать отдельную авторизацию для принятия сообщений или разрешить доступ на пуш тупо всем пользователям?

idec нода

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

Куда они могли пропасть? Где что глянуть, чтобы всё норм было. Есть какие идеи?

Таверна недоступна

По независящим от меня причинам сегодня сабж как минимум до 13:00 MSK. Приношу свои извинения.

Нодлист

Собираюсь актуализировать сабж и схему сети. Просьба выслать свои актуальные сегменты. Текущий нодлист можно взять на фреках таверны. Файл nodelist.json.

... перевел авалон на https

И сегодня упало такое электрописьмо в почту... ребята из EFF, Let'sEncrypt и разрабы Certbot, я с вами.

======
>Dear Supporter of Digital Freedom,

>I want to thank you for using the Electronic Frontier Foundation’s Certbot to enable HTTPS on your webserver. Each cert brings us closer to our goal of encrypting the entire Internet and defending user privacy and free expression. I also want to thank you for signing up to learn more about EFF and the fight for your rights!

>If you did not subscribe, or did so by accident, please click here to unsubscribe.

>Certbot is part of a growing number of EFF technology projects designed to protect your online freedom. EFF helped develop Let’s Encrypt, the free SSL certificate authority expanding the availability of encryption and taking the web by storm. We created HTTPS Everywhere to help ensure that users connect to websites securely. We also maintain Privacy Badger, a free browser tool that helps hundreds of thousands of Internet users block third-party scripts and cookies that track users across the web. EFF works on the side of ordinary users and advanced developers alike because together, we can build a safer, more privacy-friendly web.

>This is just a taste of what thousands of EFF members have accomplished over the last 26 years. Here is what you will see on the EFF mailing list:

>EFFector: our bimonthly newsletter about technology, law, and your rights.

>Action Alerts: high-priority alerts when a breaking issue needs your attention.

>Special invitations to events in your area and opportunities to support EFF.

>You can also follow EFF's work on Facebook, Twitter, and Google+!

>If you like Certbot, please consider donating to EFF or becoming a member to support projects like these and help widen the path to a better digital future. Thanks!

>Fighting for your online rights,

>Aaron Jue
>EFF Development Director

======

наработки Ромы

Оказывается они на гитхабе. Что то я не досмотрел, думал какие то внутренние репозитории.

github.com/gk11-ru/

Попробую поизучать на досуге regcenter. Потом elp. Правда досуга маловато. :)

ii-net.tk

Переезжаю на новый сервер.

С сегодняшней ночи до завтрашнего дня нода будет недоступна

no subj

У меня одного в последнее время вываливается куча вот таких сообщений? ibb.co/mKcU8b

Про IDEC

// Я попробую транслировать в сеть некоторые посты из своего бложика, если кто не против

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

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

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

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

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

== Общение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


И еще

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

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

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

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

Пустые сообщения

$сабж от меня. Извините :)

idec-mobile

Выявлен баг с крайней сборкой клиента при копировании фрагмента текста сообщения.

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

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

Тех-работы на *.difrex.ru

Сабж. Буду переносить многое.

Могут быть недоступны до завтра:
* ii.difrex.ru
* umbrella.difrex.ru

По-поводу umbrella - скорее всего она умрет и будет редирект на dynamic

Треды на dynamic.lessmore.pw

А так же возможность перейти к просмотру сообщения на которое отвечали

Видосик cloud2.difrex.ru/index.php/s/QhIP3LPmPzzAs6k

Клиенты

Если кто ещё помнит сишный клиент, я его недавно проверял на свежем clang, он компилируется и работает.

Правда, варнинги выдаёт из-за кое-какого говнокода, но на работоспособность это не влияет.
-----------
Только что слил в git все накопившиеся изменения, связанные с IDEC Mobile (сортировка в фэхах, некоторые баги, отправленные на емейл), потому что когда-нибудь это надо было сделать.

Файлоэхи и поле description

Во время разборок с багами IDEC Mobile возникла проблема с парсингом файл-строк с пустыми описаниями. Казалось бы, баг несерьёзный, и клиент я всё-таки поправил. Сейчас клиент игнорирует такие файлы, считая их за испорченные

Но в стандарте этот момент толком уточнён не был. Делать ли поле description обязательным для файлов в файлэхах или нет? Позволять ли поинтам загружать так файлы?

Моя позиция, что поле лучше сделать обязательным. Потому что по имени файла можно _только примерно_ понять, что внутри. Хоть какое-то описание, но быть должно => коты в мешке не нужны.

Высказывайтесь за то, какое поведение загонять в стандарт.

Узнаёте?

Вот, почитайте. Вы точно уже видели нечто подобное

maple.libertree.org/docs/show/en_GB/philosophy

IDEC Mobile и ii-ссылки

Только что решил обновить сборку с важным обновлением для поддержки ii-ссылок

1. Исправлено падение при открытии ii-ссылок, если клиент не запущен
2. [NEW] ii-ссылки теперь открываются через KDEConnect

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

Теперь это можно устроить одной командой:

$ kdeconnect-cli -d xyzxyzxyzxyz --share "ii://QI58zrmtLUsZAWceUnGA"

Ну или

$ kdeconnect-cli -d xyzxyzxyzxyz --share "ii://ru.humor.14"

xyzxyzxyzxyzxyz - это уникальный айдишник устройства (т.е. мобилы или любого другого), который у вас никогда не меняется. Его можно посмотреть через kdeconnect-cli -l или на самом телефоне.

Команду можно забиндить скриптом в тот же Цезий и быстренько "переключаться" на андроид, например, сочетанием клавиш.

P.S. Трюк для msgid сработает, только если нужное сообщение на андроиде уже зафетчено.

iing и таверна

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

В таверне уже есть эти изменения. Я окончательно убрал эхи в виде лент за полной ненадобностью и неудобством и добавил возможность отправлять поинтам файлы в фэхи прямо через веб.

Обновления dynamic

* Главное обновление -- это рабочий поиск с подсветкой:
GIF: images.lessmore.pw/media/images/search_2zeye8U.gif

В поиск не выводится сообщение целиком. Чтобы увидеть сообщение нужно воспользоваться ссылкой

* Ссылки на сообщения
GIF: images.lessmore.pw/media/images/links.gif

Теперь можно дать ссылку на сообщение. Сообщение на которое перешли по ссылке будет в самом верху, а дальше будет идти
общая лента сети.

* Выбор эх
GIF: images.lessmore.pw/media/images/list.gif

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

* Исходники подчищены и открыты
Скачать: gitea.difrex.ru/lapus/dynamic

В ближайшем будущем:
1. Переход к сообщению, на которое отвечали
2. Древовидные комментарии
3. Восстановление работы API IDEC для клиента
4. Рабочие ссылки ii://

idec-mobile

Виктор, у меня есть фичареквест. Добавить в сабж шедулер, дабы почта забиралась автоматом по расписанию. Естественно опциональный.

Я всё смотрю на HotdogEd и оказалось, что это работает лучше крона в термуксе =)

личное

для личной связи со мной:
e-mail: me@51.ru
phone: +7 4232 907 908, sms +79025057908
vk: vk.com/romeroyakovlev

Совет нодов

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

В начале времён все события и действия обсуждались сообща, координировались между нодами и реализовывались совместными усилиями. Сейчас что-то все разбежались по углам, и непонятно, кто чем занимается и зачем. Предлагаю восстановить статус-кво, и выношу следующие предложения:

1. Участвовать в совместном обсуждении планов развития сети, и вообще того, каким (и где) каждый нод он видит её будущее, чего хочет. Обсудить также вопросы распространения самой технологии (продвижение нашего софта) на другие, независимые от нас сети, чтобы было, где в старости взять стакан трафика.

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

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

Что касаемо меня, я делаю проекты для новичков: Во-первых, простой блог, во-вторых, чуть более сложный форум. Идея в том, что протокол будут пропихивать в существующие форумы, за 4 года не оправдался, значит Магомеду следует размять ноги, и выпускать решения, которые, прежде всего являются простым и удобным решением для общения.

Помощь мне нужна, во-первых, в CSS, в которых я вообще ничего не понимаю, ибо привык к тому HTML, который изучил где-то в 1997-1998 годах по небольшой статье в не совсем технической книге :) Начиная с банального задания шрифтов. Во-вторых, в портировании на php, потому что я плохо помню php, а вариант блога-форума *закинул на хостинг, и порядок* тоже поможет в конкурентной борьбе за девочек, пишущих про котиков (для меня это моя основная целевая аудитория).

4. Что мы можем сделать интересного для людей? И как представить интересно то, что уже есть? А также другие вопросы информационной политики сети:

Подача в СМИ и на новостных сайтах. Комментарии к этим СМИ. Переговоры с дружественными проектами и привлечение их на свою сторону. Объяснение всем вышеперечисленным, почему мы такие клёвые.
Когда я привлекал внимание к своим интернет-проектам в начале двухтысячных, я писал статьи для широко известного в узких кругах журнала Internet Zone, что давало мне бэклинк и возможность распространять свои идеи. Сотрудничал с одним интернет-провайдером, с которым мы делали совместный проект, что тоже позволяло мне пользоваться его известностью. Это всё привлекает живых людей.

Написать статью с обзорами средств децентрализации, их сравнение, упомянуть там и нас, и распространить по онлайн-изданиям и другим площадкам, где её возможно будет опубликовать. Вплоть до реальных СМИ.

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

5. Вопросы AB и XAB и дружественная атмосфера.

Предлагаю объявить эхи территорией исключительно дружеского общения, а Нодов - носителями высокой морали перед лицом пойнтов, чтобы те равнялись на нас. А не это. Всем нодам обменяться личными контактами, и всё, что хоть как-то может смахивать на недружественное общение, писать лично, а не в эхи. Проявления недружественной атмосферы помечать значками AB/XAB.


Прошу всех нодов ответить, в вольной неструктуированной форме (например, в виде своих размышлений).

У нашего проекта есть огромный потенциал, который так и не был реализован за эти почти 4 года.
MAKE II GREAT AGAIN.

Фетчинг gk11

Я только что делал реиндекс и заметил, что гк11 не фетчится, т.к. не до конца совместим c ii/IDEC.

Мой фетчер не фетчит с такой ошибкой:

====
INFO[0000] Working for node: http://gk11.ru/            
ERRO[0000] http://gk11.ru/x/features Node does not support echoes list
====



Что логично, потому что там 404(на /x/features).

Рома, можно тебя попросить добавить path /x/features по GET запросу на который отдается plain text?

====
curl http://gk11.ru/x/features
list.txt
====



Все-таки ты поддерживаешь list.txt :)

Актуализация

Актуальные нодлист и схема сети доступны на публичных фреках таверны. Пока что там нет узла elp, так как Рома так и не поделился информацией об узле.

нодлист инфо

> 1. Имя ноды (которое попадает в поле адреса);
зависит от сервера регистрации. как минимум, есть три адреса. через u.gk11.ru идёт elp

> 2. URL для работы клиента;
gk11.ru или blog.51t.ru

> 3. URL веб-интерфейса, если таковой имеется;
аналогично

> 4. Своё имя в том виде, какое ты бы хотел видеть в нодлисте;
никаким

> 5. Свои контакты (email, web, phone). Хотя бы один из тех, с помощью которого можно связаться с тобой приватно;
me@51t.ru

> 6. Список твоих аплинков (имя узла из нодлиста и период забора сообщений).
club.syscall.ru для std.club, gk11.ru, openbsd.talk, idec.spline-online.tk для ii.14 и game.rogue.14. с кого беру idec.talks - не помню, вроде бы с club. поллинг - 5 минут

Аплинки

Я хочу на своей ноде сделать что то вроде list.txt но с описанием того что я фетчу.
Я могу сделать и json в формате.
Есть ли смысл это стандартизовать?
Если нет - я бы сделал просто что то вроде:

урл фетча:список эх
урл фетча:список эх
урл фетча:список эх

Перид опроса имхо не особо важная информация. И вообще - она может быть даже не периодической. ;)

Ссылки на Динамике

Теперь можно давать ссылки на конкретное сообщение.
Например, так dynamic.lessmore.pw/?SPQjuhsX8xLNQ3pnhG7L

Сообщение с соответствующим хэшем окажется наверху.

New epoch started!

Subj!