Dscuss — одноранговая сеть для публичного общения (Виталий Минко, OSSDEVCONF-2019)
Материал из 0x1.tv
- Докладчик
- Виталий Минко
Распространённые системы публичного общения (такие как Internet-форумы и социальные сети) не обеспечивают идентичных прав для всех собеседников. Владелец ресурса и модераторы всегда обладают расширенными правами. Злоупотребление этими правами может в итоге привести к расколу и вырождению сообщества. Для решения этой проблемы создана одноранговая сеть «Dscuss».
Содержание
Видео
Презентация
Thesis
Введение
Dscuss — это сеть для публичного общения, ключевыми свойствами которой являются равноправие всех участников сообщества и децентрализованный способ модерации сообщений. Каждому пользователю предоставляется возможность модерировать сообщения других пользователей. И каждый пользователь свободен выбирать себе модераторов, которых пожелает.
Для пояснения предпосылок к созданию новой сети и её ключевых свойств введена классификация средств публичного общения[1].
Принципы функционирования
Протокол Dscuss построен на объектах трёх типов: пользователи, сообщения и операции. Пользователи выполняют роль учётных записей и идентифицируются публичным ключом. Сообщения представляют информацию, опубликованную от имени пользователя в определённой рубрике. Пользователи подписываются на заинтересовавшие их рубрики и получают сообщения только из этих рубрик. Операции представляют определённое действие, выполненное от имени пользователя над объектами (например, блокировка пользователя или удаление сообщения). Объекты всех типов идентифицируются в общем адресном пространстве. Все объекты, попадающие под интересы пользователя, хранятся на локальной машине самого пользователя.
Безопасность
С точки зрения безопасности, Dscuss спроектирована для обеспечения следующих свойств данных: доступность, целостность и подлинность. Предусмотрена защита от SPAM и flood-атак. Модель нарушителя, принятая в Dscuss формализована.
Стоит отметить, что Dscuss не предназначен для обеспечения анонимности пользователей. Но пользователи могут добиться анонимности в сети с использованием сторонних средств (таких как Tor).
Протокол взаимодействия
Два узла сети связываются одним мультиплексируемым TCP-соединением, которое используется для передачи всех данных между узлами. Взаимодействие узлов происходит синхронно — отправитель пакета ждет ответа перед отправкой другого пакета. Пакеты передаются в текстовом виде (в формате JSON). Алгоритм взаимодействия узлов в сети детально описан.
Реализация
На данный момент существует единственная реализация протокола, исходный код которой доступен под лицензией GPLv3. Реализация выполнена на языке Go в виде набора пакетов. Архитектура решения описана в [1]. Реализация протокола имеет три сторонних зависимости: драйвер SQLite, реализация scrypt и Kademila DHT.
Текущая стабильная версия реализации — proof-of-concept. В ней реализованы самые базовые функции: регистрация пользователей, соединение узлов, подписки на рубрики, публикация сообщений в рубриках и выполнение операций удаления сообщений и блокировки пользователей. Для отладки и автоматического тестирования разработан клиент с интерфейсом командной строки. Он также позволяет на практике ознакомиться с концепцией сети.
Версия 0.1 находится в разработке. В ней уже реализована синхронизация данных между узлами, улучшена связанность сети (через поиск узлов в DHT) и разработан клиент сети Dscuss с Web-интерфейсом.
Примечания и ссылки
- Dscuss — P2P network for public discussions, http://dscuss.org/
- Discuss on Facebook
- Discuss on VK
- ↑ Classification of the systems for public discussion, http://vminko.org/dscuss/classification
Plays:292 Comments:0