ghassmo 78522e1de8 ircd, tau: update README.md & change install instructions 4 жил өмнө
..
script 13394e0fef ircd: add meeting bot 4 жил өмнө
src d0b638226c ircd: error handling for cleaning received msg 4 жил өмнө
Cargo.toml 01724a544d Sync package versions in the repo. 4 жил өмнө
README.md 78522e1de8 ircd, tau: update README.md & change install instructions 4 жил өмнө
ircd_config.toml 193e9d16c3 replace old ircd code with ircd2 4 жил өмнө

README.md

p2p IRC

This is a local daemon which can be attached to with any IRC frontend. It uses the darkfi p2p engine to synchronize chats between hosts.

Install

% git clone https://github.com/darkrenaissance/darkfi 
% cd darkfi
% make BINS=ircd
% make install BINS=ircd PREFIX=/home/XX/.local

Usage (Local Deployment)

Seed Node

First you must run a seed node. The seed node is a static host which nodes can connect to when they first connect to the network. The seed_session simply connects to a seed node and runs protocol_seed, which requests a list of addresses from the seed node and disconnects straight after receiving them.

in config file:

    ## P2P accept address
    inbound="127.0.0.1:11001" 

Note that the above config doesn't specify an external address since the seed node shouldn't be advertised in the list of connectable nodes. The seed node does not participate as a normal node in the p2p network. It simply allows new nodes to discover other nodes in the network during the bootstrapping phase.

Inbound Node

This is a node accepting inbound connections on the network but which is not making any outbound connections.

The external address is important and must be correct.

in config file:

    ## P2P accept address
    inbound="127.0.0.1:11002" 

    ## P2P external address
    external_addr="127.0.0.1:11002"

    ## Seed nodes to connect to 
    seeds=["127.0.0.1:11001"]

Outbound Node

This is a node which has 8 outbound connection slots and no inbound connections. This means the node has 8 slots which will actively search for unique nodes to connect to in the p2p network.

in config file:

    ## Connection slots
    outbound_connections=5

    ## Seed nodes to connect to 
    seeds=["127.0.0.1:11001"]

Attaching the IRC Frontend

Assuming you have run the above 3 commands to create a small model testnet, and both inbound and outbound nodes above are connected, you can test them out using weechat.

To create separate weechat instances, use the --dir command:

weechat --dir /tmp/a/
weechat --dir /tmp/b/

Then in both clients, you must set the option to connect to temporary servers:

/set irc.look.temporary_servers on

Finally you can attach to the local IRCd instances:

/connect localhost/6667
/connect localhost/6668

And send messages to yourself.

Running a Fullnode

See the script script/run_node.sh for an example of how to deploy a full node which does seed session synchronization, and accepts both inbound and outbound connections.