|
|
@@ -1,10 +1,10 @@
|
|
|
# DarkIRC: Strong Anonymity P2P Chat
|
|
|
|
|
|
In DarkFi, we organize our communication using resilient and
|
|
|
-censorship-resistant infrastructure. For chatting, `ircd` is a
|
|
|
+censorship-resistant infrastructure. For chatting, `darkirc` is a
|
|
|
peer-to-peer implementation of an IRC server in which any user can
|
|
|
participate anonymously using any IRC frontend and by running the
|
|
|
-IRC daemon. `ircd` uses the DarkFi P2P engine to synchronize chats
|
|
|
+IRC daemon. `darkirc` uses the DarkFi P2P engine to synchronize chats
|
|
|
between hosts.
|
|
|
|
|
|
## Benefits
|
|
|
@@ -28,37 +28,50 @@ you have all the necessary dependencies.
|
|
|
|
|
|
```shell
|
|
|
% git clone https://github.com/darkrenaissance/darkfi
|
|
|
-% cd darkfi && git checkout v0.4.1
|
|
|
-% make BINS=ircd
|
|
|
-% sudo make install BINS=ircd
|
|
|
+% cd darkfi
|
|
|
+% make darkirc
|
|
|
+% # install system wide only if you can make sure there would be no
|
|
|
+% # multiple darkirc versions installed
|
|
|
+% sudo make install darkirc
|
|
|
```
|
|
|
|
|
|
## Usage (DarkFi Network)
|
|
|
|
|
|
-Upon installing `ircd` as described above, the preconfigured defaults
|
|
|
+Upon installing `darkirc` as described above, the preconfigured defaults
|
|
|
will allow you to connect to the network and start chatting with the
|
|
|
rest of the DarkFi community.
|
|
|
|
|
|
-First, try to start `ircd` from your command-line so it can spawn its
|
|
|
+First, try to start `darkirc` from your command-line so it can spawn its
|
|
|
configuration file in place. The preconfigured defaults will autojoin
|
|
|
-you to the `#dev` channel, where the community is most active and
|
|
|
-talks about DarkFi development.
|
|
|
+you to several default channels one of which is `#dev` where we have
|
|
|
+weekly meetings, and where the community is most active and talks
|
|
|
+about DarkFi development.
|
|
|
|
|
|
```shell
|
|
|
-% ircd
|
|
|
+% darkirc
|
|
|
```
|
|
|
|
|
|
-After running it for the first time, `ircd` will create a configuration
|
|
|
-file you can review and potentially edit. It might be useful if you
|
|
|
-want to add other channels you want to autojoin (like `#philosophy`
|
|
|
-and `#memes`), or if you want to set a shared secret for some channel
|
|
|
-in order for it to be encrypted between its participants.
|
|
|
+`darkirc` will create a configuration file `darkirc_config.toml` by
|
|
|
+default in `~/.config/darkfi/` you can review and potentially edit. It
|
|
|
+might be useful if you want to add other channels you want to autojoin
|
|
|
+(like `#philosophy` and `#memes`), or if you want to set a shared
|
|
|
+secret for some channel in order for it to be encrypted between its
|
|
|
+participants.
|
|
|
|
|
|
-When done, you can run `ircd` for the second time in order for it to
|
|
|
+When done, you can run `darkirc` for the second time in order for it to
|
|
|
connect to the network and start participating in the P2P protocol:
|
|
|
|
|
|
```shell
|
|
|
-% ircd
|
|
|
+% darkirc
|
|
|
+```
|
|
|
+
|
|
|
+Whenever you edit `darkirc_config.toml` file and if you have your
|
|
|
+`darkirc` daemon running you don't need to restart it to reload the
|
|
|
+config, you just need to send a SIGHUP signal to it for the changes to
|
|
|
+reflect, one of the easiest ways to do that is:
|
|
|
+
|
|
|
+```shell
|
|
|
+% kill -SIGHUP $(pidof darkirc)
|
|
|
```
|
|
|
|
|
|
## Clients
|
|
|
@@ -67,7 +80,7 @@ connect to the network and start participating in the P2P protocol:
|
|
|
|
|
|
In this section, we'll briefly cover how to use the [Weechat IRC
|
|
|
client](https://github.com/weechat/weechat) to connect and chat with
|
|
|
-`ircd`.
|
|
|
+`darkirc`.
|
|
|
|
|
|
Normally, you should be able to install weechat using your
|
|
|
distribution's package manager. If not, have a look at the weechat
|
|
|
@@ -75,9 +88,9 @@ distribution's package manager. If not, have a look at the weechat
|
|
|
on how to install it on your computer.
|
|
|
|
|
|
Once installed, we can configure a new server which will represent our
|
|
|
-`ircd` instance. First, start weechat, and in its window - run the
|
|
|
+`darkirc` instance. First, start weechat, and in its window - run the
|
|
|
following commands (there is an assumption that `irc_listen` in the
|
|
|
-`ircd` config file is set to `127.0.0.1:6667`):
|
|
|
+`darkirc` config file is set to `127.0.0.1:6667`):
|
|
|
|
|
|
```
|
|
|
/server add darkfi localhost/6667 -notls -autoconnect
|
|
|
@@ -85,17 +98,33 @@ following commands (there is an assumption that `irc_listen` in the
|
|
|
/quit
|
|
|
```
|
|
|
|
|
|
+<u><b>Note</b></u>: if you have other IRC servers added in your client
|
|
|
+then you probably know this but you can ommit `-autoconnect` part.
|
|
|
+
|
|
|
This will set up the server, save the settings, and exit weechat.
|
|
|
You are now ready to begin using the chat. Simply start weechat
|
|
|
and everything should work.
|
|
|
|
|
|
When you join, you will not see any users displayed. This is normal
|
|
|
-since there is no concept of nicknames or registration on this
|
|
|
+since there is no concept of nicknames or registration on this p2p
|
|
|
anonymous chat.
|
|
|
|
|
|
You can change your nickname using `/nick foo`, and navigate channels
|
|
|
using F5/F6 or ALT+X where X is the channel number displayed.
|
|
|
|
|
|
+## Network-level privacy
|
|
|
+
|
|
|
+Nodes have knowledge of their peers, including the IP addresses of
|
|
|
+connected hosts.
|
|
|
+
|
|
|
+DarkFi supports the use of pluggable transports, including Tor and Nym,
|
|
|
+to provide network-level privacy. As long as there are live seed nodes
|
|
|
+configured to support a Tor or Nym connection, users can connect to
|
|
|
+`darkirc` and benefit from the protections offered by these protocols.
|
|
|
+
|
|
|
+Other approaches include connecting via a cloud server or VPN. Research
|
|
|
+the risks involved in these methods before connecting.
|
|
|
+
|
|
|
## Usage (Local Deployment)
|
|
|
|
|
|
These steps below are only for developers who wish to make a testing
|
|
|
@@ -177,7 +206,7 @@ servers:
|
|
|
|
|
|
/set irc.look.temporary_servers on
|
|
|
|
|
|
-Finally you can attach to the local IRCd instances:
|
|
|
+Finally you can attach to the local darkirc instances:
|
|
|
|
|
|
/connect localhost/6667
|
|
|
/connect localhost/6668
|
|
|
@@ -192,16 +221,7 @@ inbound and outbound connections.
|
|
|
|
|
|
## Global Buffer
|
|
|
|
|
|
-Copy [this script](https://github.com/narodnik/weechat-global-buffer/blob/main/buffclone.py) to `~/.weechat/python/autoload/`,
|
|
|
-and you will create a single buffer which aggregates messages from all channels. It's useful to monitor activity
|
|
|
-from all channels without needing to flick through them.
|
|
|
-
|
|
|
-## Network-level privacy
|
|
|
-
|
|
|
-Nodes have knowledge of their peers, including the IP addresses of connected hosts.
|
|
|
-
|
|
|
-DarkFi supports the use of pluggable transports, including Tor and Nym, to provide network-level privacy. As long as there
|
|
|
-are live seed nodes configured to support a Tor or Nym connection, users can connect to `ircd` and benefit from the
|
|
|
-protections offered by these protocols.
|
|
|
-
|
|
|
-Other approaches include connecting via a cloud server or VPN. Research the risks involved in these methods before connecting.
|
|
|
+Copy [this script](https://github.com/narodnik/weechat-global-buffer/blob/main/buffclone.py)
|
|
|
+to `~/.weechat/python/autoload/`, and you will create a single buffer
|
|
|
+which aggregates messages from all channels. It's useful to monitor
|
|
|
+activity from all channels without needing to flick through them.
|