anonymous@RULINUX.NET~# Last login: 2024-11-21 13:53:23
Регистрация Вход Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск
[#] [Добавить метку] [Редактировать]
Скрыть

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.

>>> Подробнее

anonymous(*) (2019-10-06 15:46:53)

Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0

Подтверждено: SystemV(*) (2019-10-07 01:07:21)

[Ответить на это сообщение]

Этот тред читают 1 пользователь:
Анонимных: 1
Зарегистрированных: 0




(c) 2010-2020 LOR-NG Developers Group
Powered by TimeMachine

Valid HTML 4.01 Transitional Правильный CSS!