restructured manual

This commit is contained in:
2024-04-29 18:23:19 +00:00
parent 7bd1e7a0d8
commit 60b6c802ed
2351 changed files with 247 additions and 67649 deletions

View File

@@ -5,7 +5,7 @@
- [Introduction](#introduction)
- [Connect to Other Nodes](#connect-to-other-nodes)
- [Hosted Public Nodes](#hosted-public-nodes)
- [Possible Peers](#possible-peers)
- [Default Port](#default-port)
- [Check Network Information](#check-network-information)
- [Test the Network](#test-the-network)
@@ -14,11 +14,6 @@
- [API](#api)
- [Message System](#message-system)
- [Inspecting Node Keys](#inspecting-node-keys)
- [Troubleshooting](#troubleshooting)
- [Root Access](#root-access)
- [Enable IPv6 at the OS Level](#enable-ipv6-at-the-os-level)
- [VPN Can Block Mycelium](#vpn-can-block-mycelium)
- [Add Peers](#add-peers)
***
@@ -41,32 +36,18 @@ If you are using other tun inferface, e.g. utun3 (default), you can set a differ
mycelium --peers tcp://83.231.240.31:9651 quic://185.206.122.71:9651 --tun-name utun9
```
## Hosted Public Nodes
## Possible Peers
A couple of public nodes are provided, which can be freely connected to. This allows
anyone to join the global network. These are hosted in 3 geographic regions, on both
IPv4 and IPv6, and supporting both the Tcp and Quic protocols. The nodes are the
following:
Here are some possible peers.
| Node ID | Region | IPv4 | IPv6 | Tcp port | Quic port |
| --- | --- | --- | --- | --- | --- |
| 01 | DE | 188.40.132.242 | 2a01:4f8:221:1e0b::2 | 9651 | 9651 |
| 02 | DE | 136.243.47.186 | 2a01:4f8:212:fa6::2 | 9651 | 9651 |
| 03 | BE | 185.69.166.7 | 2a02:1802:5e:0:8478:51ff:fee2:3331 | 9651 | 9651 |
| 04 | BE | 185.69.166.8 | 2a02:1802:5e:0:8c9e:7dff:fec9:f0d2 | 9651 | 9651 |
| 05 | FI | 65.21.231.58 | 2a01:4f9:6a:1dc5::2 | 9651 | 9651 |
| 06 | FI | 65.109.18.113 | 2a01:4f9:5a:1042::2 | 9651 | 9651 |
These nodes are all interconnected, so 2 peers who each connect to a different node
(or set of disjoint nodes) will still be able to reach each other. For optimal performance,
it is recommended to connect to all of the above at once however. An example connection
string could be:
`--peers tcp://188.40.132.242:9651 "tcp://[2a01:4f8:212:fa6::2]:9651" quic://185.69.166.7:9651 "tcp://[2a02:1802:5e:0:8c9e:7dff:fec9:f0d2]:9651" tcp://65.21.231.58:9651 "quic://[2a01:4f9:5a:1042::2]:9651"`
It is up to the user to decide which peers he wants to use, over which protocol.
Note that quotation may or may not be required, depending on which shell is being
used.
```
tcp://146.185.93.83:9651
quic://83.231.240.31:9651
quic://185.206.122.71:9651
tcp://[2a04:f340:c0:71:28cc:b2ff:fe63:dd1c]:9651
tcp://[2001:728:1000:402:78d3:cdff:fe63:e07e]:9651
quic://[2a10:b600:1:0:ec4:7aff:fe30:8235]:9651
```
## Default Port
@@ -155,39 +136,4 @@ Where the output could be something like this:
```sh
Public key: a47c1d6f2a15b2c670d3a88fbe0aeb301ced12f7bcb4c8e3aa877b20f8559c02
Address: 27f:b2c5:a944:4dad:9cb1:da4:8bf7:7e65
```
## Troubleshooting
### Root Access
You might need to run Mycelium as root. Some error messages could be something like: `Error: NixError(EPERM)`.
### Enable IPv6 at the OS Level
You need to enable IPv6 at the OS level. Some error messages could be something like: `Permission denied (os error 13)`.
- Check if IPv66 is enabled
- If disabled, output is 1, if enabled, output is 0
```
sysctl net.ipv6.conf.all.disable_ipv6
```
- Enable IPv6
```
sudo sysctl net.ipv6.conf.all.disable_ipv6=0
```
Here's some commands to troubleshoot IPv6:
```
sudo ip6tables -S INPUT
sudo ip6tables -S OUTPUT
```
### VPN Can Block Mycelium
You might need to disconnect your VPN when using Mycelium.
### Add Peers
It can help to connect to other peers. Check the Mycelium repository for [peers](https://github.com/threefoldtech/mycelium?tab=readme-ov-file#hosted-public-nodes).
```

View File

@@ -4,28 +4,19 @@
<h2>Table of Contents</h2>
- [Introduction](#introduction)
- [Considerations](#considerations)
- [Set Mycelium](#set-mycelium)
- [Start Mycelium](#start-mycelium)
- [Use Mycelium](#use-mycelium)
- [Mycelium Service (optional)](#mycelium-service-optional)
- [Full VM Example](#full-vm-example)
***
## Introduction
In this section, we cover how to install Mycelium. This guide can be done on a local machine and also on a full VM running on the TFGrid.
In this section, we cover how to install Mycelium. For this guide, we will show the steps on a full VM running on the TFGrid.
Currently, Linux, macOS and Windows are supported. On Windows, you must have `wintun.dll` in the same directory you are executing the binary from.
## Considerations
You might need to run Mycelium as root, enable IPv6 at the OS level and disconnect your VPN.
Read the [Troubleshooting](./information.md#troubleshooting) section for more information.
## Set Mycelium
## Full VM Example
- Deploy a Full VM with Planetary network and SSH into the VM
- Update the system
```
apt update
@@ -42,75 +33,16 @@ Read the [Troubleshooting](./information.md#troubleshooting) section for more in
```
mv mycelium /usr/local/bin
```
## Start Mycelium
You can start Mycelium
- Start Mycelium
```
mycelium --peers tcp://83.231.240.31:9651 quic://185.206.122.71:9651 --tun-name utun2
```
- Open another terminal
- Check the Mycelium connection information (address and public key)
- Check the Mycelium connection information (address: ...)
```
mycelium inspect --json
```
## Use Mycelium
Once you've set Mycelium, you can use it to ping other addresses and also to connect into VMs running on the TFGrid.
- Ping the VM from another machine with IPv6
```
ping6 mycelium_address
```
- SSH into a VM running on the TFGrid
```
ssh root@vm_mycelium_address
```
## Mycelium Service (optional)
You can create a systemd service to make sure Mycelium is always enabled and running.
- Create a Mycelium service
```bash
nano /etc/systemd/system/mycelium.service
```
- Set the service and save the file
```
[Unit]
Description=End-2-end encrypted IPv6 overlay network
Wants=network.target
After=network.target
Documentation=https://github.com/threefoldtech/mycelium
[Service]
ProtectHome=true
ProtectSystem=true
SyslogIdentifier=mycelium
CapabilityBoundingSet=CAP_NET_ADMIN
StateDirectory=mycelium
StateDirectoryMode=0700
ExecStartPre=+-/sbin/modprobe tun
ExecStart=/usr/local/bin/mycelium --tun-name mycelium -k %S/mycelium/key.bin --peers tcp://146.185.93.83:9651 quic://83.231.240.31:9651 quic://185.206.122.71:9651 tcp://[2a04:f340:c0:71:28cc:b2ff:fe63:dd1c]:9651 tcp://[2001:728:1000:402:78d3:cdff:fe63:e07e]:9651 quic://[2a10:b600:1:0:ec4:7aff:fe30:8235]:9651
Restart=always
RestartSec=5
TimeoutStopSec=5
[Install]
WantedBy=multi-user.target
```
- Enable the service
```
systemctl daemon-reload
systemctl enable mycelium
systemctl start mycelium
```
- Verify that the Mycelium service is properly running
```
systemctl status mycelium
```
Systemd will start up the Mycelium, restart it if it ever crashes, and start it up automatically after any reboots.
```