Скрыть
Dscuss - одноранговая сеть для публичного общения
Распространённые системы публичного общения (такие как Internet-форумы и социальные сети) не обеспечивают идентичных прав для всех собеседников. Владелец ресурса и модераторы всегда обладают расширенными правами. Злоупотребление этими правами может в итоге привести к расколу и вырождению сообщества. Для решения этой проблемы создана одноранговая сеть Dscuss.
Введение
Dscuss — это сеть для публичного общения, ключевыми свойствами которой являются равноправие всех участников сообщества и децентрализованный способ модерации сообщений. Каждому пользователю предоставляется возможность модерировать сообщения других пользователей. И каждый пользователь свободен выбирать себе модераторов, которых пожелает. Для пояснения предпосылок к созданию новой сети и её ключевых свойств введена классификация средств публичного общения.
Принципы функционирования
Протокол Dscuss построен на объектах трёх типов: пользователи, сообщения и операции. Пользователи выполняют роль учётных записей и идентифицируются публичным ключом. Сообщения представляют информацию, опубликованную от имени пользователя в определённой рубрике. Пользователи подписываются на заинтересовавшие их рубрики и получают сообщения только из этих рубрик. Операции представляют определённое действие, выполненное от имени пользователя над объектами (например, блокировка пользователя или удаление сообщения). Объекты всех типов идентифицируются в общем адресном пространстве. Все объекты, попадающие под интересы пользователя, хранятся на локальной машине самого пользователя. Безопасность С точки зрения безопасности, Dscuss спроектирована для обеспечения следующих свойств данных: доступность, целостность и подлинность. Предусмотрена защита от SPAM и flood-атак. Модель нарушителя, принятая в Dscuss формализована.
Стоит отметить, что Dscuss не предназначен для обеспечения анонимности пользователей. Но пользователи могут добиться анонимности в сети с использованием сторонних средств (таких как Tor).
Протокол взаимодействия
Два узла сети связываются одним мультиплексируемым TCP-соединением, которое используется для передачи всех данных между узлами. Взаимодействие узлов происходит синхронно – отправитель пакета ждет ответа перед отправкой другого пакета. Пакеты передаются в текстовом виде (в формате JSON). Алгоритм взаимодействия узлов в сети описан в Protocol description.
Реализация
На данный момент существует единственная реализация протокола, исходный код которой доступен под лицензией GPLv3. Реализация выполнена на языке Go в виде набора пакетов. Архитектура решения описана в Dscuss service architecture. Реализация протокола имеет три сторонних зависимости: драйвер SQLite, реализация scrypt и Kademila DHT.
Текущая стабильная версия реализации – proof-of-concept. В ней реализованы самые базовые функции: регистрация пользователей, соединение узлов, подписки на рубрики, публикация сообщений в рубриках и выполнение операций удаления сообщений и блокировки пользователей. Для отладки и автоматического тестирования разработан клиент с интерфейсом командной строки. Он также позволяет на практике ознакомиться с концепцией сети. Версия 0.1 находится в разработке. В ней уже реализована синхронизация данных между узлами, улучшена связанность сети через поиск узлов в DHT и разработан клиент сети Dscuss с Web-интерфейсом.
Слайды с презентации Dscuss на конференции разработчиков свободного ПО: OSSDevConf2019_presentation.pdf.
>>>
Подробнее