summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVitaly Minko <vitaly.minko@gmail.com>2019-10-03 18:44:20 +0300
committerVitaly Minko <vitaly.minko@gmail.com>2019-10-03 18:44:20 +0300
commit4aa1f703708f06737dca39f64515ff8e62a0536b (patch)
tree6381909019e1f76c70a2c768b015f03407571214
parenta9458d713eccb36503da07c1c003d50f2587c9bd (diff)
Added README.md.
-rw-r--r--README.md143
1 files changed, 143 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..a8cfa5e
--- /dev/null
+++ b/README.md
@@ -0,0 +1,143 @@
+Dscuss - a P2P network for public discussions
+=============================================
+
+_The moderators are dead! Long live the moderators!_
+
+
+Abstract
+--------
+
+Traditional systems for public discussion (like Internet forums) do not provide
+equal rights to all users. Owners of the resource and moderators always possess
+extended rights. Sometimes these rights can be abused, which eventually can
+split the community of the resource and lead to its degeneration. As a solution
+to this problem we present Dscuss. It’s a peer-to-peer network for public
+discussions, which provides equal rights to all members of the community.
+
+
+The idea of the project
+-----------------------
+
+The purpose of Dscuss is quite similar to the [Internet forums][forum_wiki], but
+there is one fundamental difference -- social equality of all members involved
+(i.e no owners, no moderators, etc). See [Classification][cls] 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][tor_home]
+
+[forum_wiki]: http://en.wikipedia.org/wiki/Internet_forum
+[tor_home]: https://www.torproject.org/
+[cls]: http://vminko.org/dscuss/classification
+
+
+Documentation
+-------------
+
+All the documentation is available here:
+[http://vminko.org/dscuss/](http://vminko.org/dscuss/).
+
+
+API
+---
+
+API description generated by godoc is available [here][godoc].
+
+[godoc]: http://vminko.org/storage/dscuss/godoc/
+
+
+Progress of development
+-----------------------
+
+The current stable version is proof-of-work. It has the following features:
+
+* 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.
+
+The version 0.1 is under development. The following features are already
+implemented:
+
+* Database synchronization with other peers.
+* Improved connectivity (bootstrapping via DHT).
+* Web interface.
+* Improved security (flood resistance).
+
+The following additional features are planned for version 0.1:
+
+* Improved security (SPAM resistance).
+
+
+Dependencies
+------------
+
+Dscuss is written in Go and currently has the following dependencies:
+
+* [github.com/abiosoft/ishell][ish_home] - Library for creating interactive cli applications.
+* [github.com/mattn/go-sqlite3][gosql] - [SQLite][sql_home] driver.
+* [golang.org/x/crypto/scrypt][scrpt] - Library implementing "Stronger Key
+ Derivation via Sequential Memory-Hard Functions".
+* [github.com/nictuku/dht][dht] - Kademlia/Bittorrent DHT library that
+ implements BEP 5.
+
+Initially Dscuss was supposed to be built on top of the [GNUnet][gn_home]
+framework, but later it was considered not suitable for the purposes of Dscuss.
+
+[ish_home]: https://github.com/abiosoft/ishell
+[sql_home]: http://www.sqlite.org/
+[gosql]: https://github.com/mattn/go-sqlite3
+[scrpt]: https://godoc.org/golang.org/x/crypto/scrypt
+[dht]: https://github.com/nictuku/dht
+[gn_home]: http://gnunet.org/
+
+
+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][github].
+
+
+If you want to get the proof-of-concept version (which is more or less stable):
+
+ git reset --hard proof-of-concept
+
+You can use the [web interface][cgit] to browse the source code online.
+
+[cgit]: http://dscuss.org/cgit/dscuss/
+[github]: https://github.com/vminko/dscuss
+
+
+Similar projects
+----------------
+
+[Osiris](http://www.osiris-sps.org/) -- a freeware program for creating
+decentralized web portals.