Kaynağa Gözat

add README.md

narodnik 4 yıl önce
ebeveyn
işleme
7c265f932f
1 değiştirilmiş dosya ile 65 ekleme ve 0 silme
  1. 65 0
      bin/ircd/README.md

+ 65 - 0
bin/ircd/README.md

@@ -0,0 +1,65 @@
+# 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.
+
+## 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.
+
+    cargo run -- -vv --accept 0.0.0.0:9999 --irc 127.0.0.1:6688
+
+Note that the above command 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.
+
+    cargo run -- --accept 0.0.0.0:11004 --external $LOCAL_IP:11004 --seeds $SEED_IP:9999 --irc 127.0.0.1:6667
+
+### 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.
+
+    cargo run -- --slots 5 --seeds $SEED_IP:9999 --irc 127.0.0.1:6668
+
+### 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 `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.