The moderators are dead! Long live the moderators!

Dscuss is a free software for public discussions. It builds an unstructured pure P2P topic-based publish-subscribe network. The current version is 0.1.

The idea of the project

The purpose of Dscuss is quite similar to the Internet forums, but there is one fundamental difference -- social equality of all members involved (i.e no owners, no moderators, etc). See Classification for details.

This leads to the following key features, which will be provided by Dscuss:

  • Decentralization. All the information will be stored on the users' machines.
  • Personal moderation. Every user will be able to manage her own copy of data and may share her management operations (edit message, remove message, ban user and so on) with others, who would like to accept them.

Besides that, Dscuss is designed to provide the following features:

  • Data authenticity
  • Data integrity
  • Data availability
  • SPAM resistance
  • Flood resistance

Dscuss is not intended to provide anonymity. However, this can probably be achieved using anonymizers like Tor

API

API description generated by godoc is available here.

Progress of development

The version 0.2 is under development. The following features are planned for this version:

  • Relay servers (improved connectivity).
  • SPAM resistance (improved security).
  • Message text formatting.

The current stable version is 0.1. It has the following new features:

  • Database synchronization with other peers.
  • Web interface.
  • Improved connectivity (bootstrapping via DHT).
  • Improved security (flood resistance).

Features implemented in the proof-of-concept version:

  • Command-line interface.
  • Basic security based on ECDSA.
  • Persistent storage for entities.
  • Basic networking (TCP only).
  • Registration (via proof-of-work).
  • Bootstrapping (via list of rendezvous nodes).
  • Peer handshaking.
  • Publishing a message.
  • Listing a category.
  • Subscription to categories (via editing a text file).
  • Threading (replying to messages).
  • Operations on messages and users.

Dependencies

Dscuss is written in Go and currently has the following dependencies:

Initially Dscuss was supposed to be built on top of the GNUnet framework, but later it was considered not suitable for the purposes of Dscuss.

How to get the source code

The source code is available under GPL3.

To fetch the latest source code from the main git repository, run the following command:

git clone git://vminko.org/dscuss

GitHub contains the backup Dscuss repository: github.com/vminko/dscuss.

If you want to get the version 0.1 (which is more or less stable):

git reset --hard v0.1

You can use the web interface to browse the source code online.

Similar projects

Osiris -- a freeware program for creating decentralized web portals.


How to setup your own Dscuss node

This step-by-step manual describes how to register a new Dscuss user and to login to the network using this user.

Protocol description

This article describes the Dscuss protocol.

Running autotests

Description of the Dscuss testbed and manual for launching autotests.

Classification of the systems for public discussion

The systems are classified according to the attributes, which are relevant for Dscuss.

Dscuss service architecture

This article describes the architecture of the Dscuss service, which implements the Dscuss protocol.

Moderation business logic

This article describes algorithms for applying operations.

Developing on Windows

This page contains various notes describing Windows-specific aspects of Dscuss development.

Proof-of-work

Details about proof-of-work implementation.

Bootstrapping via DHT

This article gives a brief description how to implement bootstrapping via DHT in Dscuss.

Adversary model

Description of the adversary types in Dscuss.

0