1. Prepare
Setup the go development environment: Getting Started.
2. Get the source code
Create directory for the source code:
mkdir -p ${GOPATH}/src/vminko.org
cd ${GOPATH}/src/vminko.org
Clone the git repository:
git clone git://vminko.org/dscuss
If you want to get the proof-of-concept version (which is more or less stable), then also execute the following command:
git reset --hard proof-of-concept
Get the dependencies:
go get github.com/abiosoft/ishell \
github.com/mattn/go-sqlite3 \
github.com/nictuku/dht \
golang.org/x/crypto/scrypt
3. Create executable files
cd ${GOPATH}/src/vminko.org/dscuss
Compile the CLI program:
go build -o dscuss-cli cmd/dscuss-cli/main.go
Compile the Web service:
go build -o dscuss-web cmd/dscuss-web/main.go
4. Register new user
Each Dscuss node must be associated with a user. So first of all you need to register a new user. In order to do this, start the CLI program. The web UI does not provide registration yet.
$ ./dscuss-cli
Starting Dscuss...
Welcome to Dscuss.
Register new user using reg
command. This will take few hours on the first
production release (each user must calculate proof-of-work), The development
version has much lower proof-of-work requirements and registering new user takes
just few seconds.
> reg
Nickname: adam
Enter some additional info: I'm the first Dscuss user. Send your PM to adam@paradise.
Enter list of topics you are interested in. Each topic is a set of comma separated tags. and end with 'DSC':
p2p,dscuss,devel
food,vegetarian,fruits
photography,landscape
DSC
Registering new user. Do not interrupt the process.
Otherwise you'll have to remove the user directory manually.
User registered successfully.
Edit /home/user/.dscuss/addresses.txt in your favorite editor if you want to customize peer addresses.
It's recommended for new users to subscribe to p2p,dscuss,devel
topic in order
to establish connection with the special development user (named bootstrap
).
5. Login to the network
> login adam
Check connections with other peers. In case you have subscribed to
p2p,dscuss,devel
, you should have at least one connection (with the bootstrap
peer).
> lspeers full
There is one connected peer:
PEER #0
Nickname: bootstrap
ID: qWvEotv4WBsFNFJa2LN/XMsPaGT7uNSVvNU+KEb0nnE=
LocalAddr: 192.168.43.78:57642
RemoteAddr: 176.56.48.8:8004
AssociatedAddrs: 176.56.48.8:8004,176.56.48.8:8004
Subscriptions: dscuss,devel
State: Idle
6. Using the CLI
Dscuss has full featured command-line interface. It's mostly meant for autotesting and debugging. If you prefer a user-friendly interface, try the Web UI.
To get familiar with all available commands run the help
command:
Commands:
addmdr <id>, make user <id> a moderator
ban <id> <reason>, ban user <id> because of <reason>
clear clear the screen
exit exit the program
help display help
login <nickname>, login as user <nickname>
logout logout from the network
lsboard [topic], list a particular topic or all threads on the board
lshist list history of users
lsmdr list the current user's moderators
lsop (user|msg) <id>, list operations on user or message <id>
lspeers list connected peers
lssubs list the current user's subscriptions
lsthread <id>, display a particular thread
mkreply <id>, publish a new reply to message <id>
mkthread start a new thread
reg register new user
rmmdr <id>, remove user <id> from the list of moderators
rmmsg <id> <reason>, remove message <id> because of <reason>
sub <topic>. subscribe to <topic>
unsub <topic>, unsubscribe from <topic>
ver display versions of Dscuss and the CLI
whoami display nickname of the current user
7. Using the Web UI
To start the web service, you must specify the peer's user and the password to protect access to the Web UI. For example:
./dscuss-web -user adam -password qwerty
After that you can view the web interface in the browser as a guest user or Login as the owner of the peer.