Dscuss is a free software for public discussions. It builds an unstructured pure P2P topic-based publish-subscribe network. Currently it's in early development.

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).

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


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 git repository, run the following command:

git clone git://vminko.org/dscuss

To compile the source code run make in the root of the downloaded directory.

How to compile

If you want to compile executable binary named dscuss (library with CLI), run:

    go build -o dscuss cmd/dscuss-cli/main.go

Or use this command if you just want to run Dscuss for one time:

    go run cmd/dscuss-cli/main.go

Progress of development

What is done so far:

  • Command-line interface.
  • The crypto subsystem.
  • Basics of the storage subsystem.
  • Registration (via proof-of-work).
  • The network subsystem.
  • Bootstrapping (via list of rendezvous nodes).
  • Handshaking.
  • Publishing a message.
  • Listing a category.
  • Subscription to categories (via editing a text file).
  • Threading (replying to messages).

What is planned for the proof-of-concept version:

  • Operations on messages and users.
  • Database synchronization with other peers.

Possible features for future versions:

  • Bootstrapping via DHT.
  • Bootstrapping via DNS.

Similar projects

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

Moderation business logic

This article describes algorithms for applying operations.


This article describes the Dscuss protocol.

Developing on Windows

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


Details about proof-of-work implementation.

Dscuss service architecture

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

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.

Database scheme

View notes about the database.