diff --git a/books/manual/SUMMARY.md b/books/manual/SUMMARY.md index 8dc11f4..84ebb03 100644 --- a/books/manual/SUMMARY.md +++ b/books/manual/SUMMARY.md @@ -20,7 +20,6 @@ - [Caprover](dashboard/solutions/caprover.md) - [Caprover Admin](dashboard/solutions/caprover_admin.md) - [Caprover Worker](dashboard/solutions/caprover_worker.md) - - [Dedicated Machines](dashboard/deploy/dedicated_machines.md) - [Applications](dashboard/deploy/applications.md) - [Algorand](dashboard/solutions/algorand.md) - [CasperLabs](dashboard/solutions/casper.md) @@ -167,6 +166,7 @@ - [Room Parameters](farmers/farming_optimization/farm_room_parameters.md) - [Farming Costs](farmers/farming_optimization/farming_costs.md) - [Calculate Your ROI](farmers/farming_optimization/calculate_roi.md) + - [Farming Requirements](farmers/farming_optimization/farming_requirements.md) - [Advanced Networking](farmers/advanced_networking/advanced_networking_toc.md) - [Networking Overview](farmers/advanced_networking/networking_overview.md) - [Network Considerations](farmers/advanced_networking/network_considerations.md) diff --git a/collections/dashboard/deploy/deploy.md b/collections/dashboard/deploy/deploy.md index 2a66a64..e8a4375 100644 --- a/collections/dashboard/deploy/deploy.md +++ b/collections/dashboard/deploy/deploy.md @@ -5,12 +5,11 @@ Here you will find everything related to deployments on the ThreeFold grid. This - Checking the cost of a deployment using [Pricing Calculator](pricing_calculator.md) - Finding a node to deploy on using the [Node Finder](node_finder.md) - Deploying your desired workload from [Virtual Machines](vm_intro.md), [Orchestrators](orchestrators.md), or [Applications](applications.md) -- Renting your own node on the ThreeFold grid from [Dedicated Machines](dedicated_machines.md) - Consulting [Your Contracts](your_contracts.md) on the TFGrid - Finding or publishing Flists from [Images](images.md) - Updating or generating your SSH key from [SSH Keys](ssh_keys.md) - ![](.img/sidebar_2.png) + ![](.img/dashboard_deploy.png) *** @@ -20,7 +19,6 @@ Here you will find everything related to deployments on the ThreeFold grid. This - [Node Finder](node_finder.md) - [Virtual Machines](vm_intro.md) - [Orchestrators](orchestrators.md) -- [Dedicated Machines](dedicated_machines.md) - [Applications](applications.md) - [Your Contracts](your_contracts.md) - [Images](images.md) diff --git a/collections/dashboard/deploy/node_finder.md b/collections/dashboard/deploy/node_finder.md index dd93347..3d8b662 100644 --- a/collections/dashboard/deploy/node_finder.md +++ b/collections/dashboard/deploy/node_finder.md @@ -2,39 +2,121 @@

Table of Contents

-- [Nodes](#nodes) -- [GPU Support](#gpu-support) +- [Overview](#overview) +- [Filters](#filters) +- [Node Details](#node-details) +- [Gateway Nodes](#gateway-nodes) +- [Dedicated Nodes](#dedicated-nodes) + - [Reservation](#reservation) + - [Billing \& Pricing](#billing--pricing) + - [Discounts](#discounts) +- [GPU Nodes](#gpu-nodes) + - [GPU Support](#gpu-support) + - [GPU Support Links](#gpu-support-links) *** -## Nodes +## Overview -The Node Finder page provides a more detailed view for the nodes available on the ThreeFold grid With detailed information and statistics about any of the available nodes. +The Node Finder page provides a more detailed view for the nodes available on the ThreeFold grid with detailed information and statistics about nodes. -![](../img/nodes.png) +![](../img/dashboard_node_finder.png) -You can get a node with the desired specifications using the filters available in the nodes page. +## Filters -![](../img/nodes_filters.png) +You can use the filters to narrow your search and find a node with the desired specifications. -You can see all of the node details by clicking on a node record. +![](../img/dashboard_node_finder_filters_1.png) -![](../img/nodes_details.png) +![](../img/dashboard_node_finder_filters_2.png) -## GPU Support +You can use the toggle buttons to filter your search. -![GPU support](../img/gpu_filter.png) +- Dedicated nodes +- Gateways nodes +- GPU nodes +- Rentable nodes -- A new filter for GPU supported node is now available on the Nodes page. -- GPU count -- Filtering capabilities based on the model / device +You can choose a location for your node, with filters such as region and country. This can be highly useful for edge cloud projects. -On the details pages is shown the card information and its status (`reserved` or `available`) also the ID that’s needed to be used during deployments is easily accessible and has a copy to clipboard button. +Filtering nodes by their status (up, down, standby) can also improve your search. -![GPU details](../img/gpu_details.png) +If your deployment has some minimum requirements, you can easily filter relevant nodes with the different resource filters. -Here’s an example of how it looks in case of reserved +## Node Details -![GPU details](../img/gpu_details_reserved.png) +You can see all of the node details when you click on its row. -The TF Dashboard is where to reserve the nodes the farmer should be able to set the extra fees on the form and the user also should be able to reserve and get the details of the node (cost including the extrafees, GPU informations). +![](../img/dashboard_node_finder_node_view.png) + +Note that the network speed test displayed in the Node Finder is updated every 6 hours. + +## Gateway Nodes + +To see only gateway nodes, enable **Gateways** in the filters. + +![](../img/dashboard_node_finder_gateways.png) + +Note that the network speed test displayed in the Node Finder is updated every 6 hours. + +## Dedicated Nodes + +Dedicated machines are 3Nodes that can be reserved and rented entirely by one user. The user can thus reserve an entire node and use it exclusively to deploy solutions. This feature is ideal for users who want to host heavy deployments with the benefits of high reliability and cost effectiveness. + +To see only dedicated nodes, enable **Dedicated Nodes** in the filters. + +![](../img/dashboard_node_finder_dedicated.png) + +### Reservation + +When you have decided which node to reserve, you can easily rent it from the Node Finder page. + +To reserve a node, simply click on `Reserve` on the node row. + +![](../img/dashboard_node_finder_dedicated_reserve.png) + +To unreserve a node, simply click on `Unreserve` on the node row. + +![](../img/dashboard_node_finder_dedicated_unreserve.png) + +Note that once you've rented a dedicated node that has a GPU, you can deploy GPU workloads. + +### Billing & Pricing + +- Once a node is rented, there is a fixed charge billed to the tenant regardless of deployed workloads. +- Any subsequent NodeContract deployed on a node where a rentContract is active (and the same user is creating the nodeContracts) can be excluded from billing (apart from public ip and network usage). +- Billing rates are calculated hourly on the TFGrid. + - While some of the documentation mentions a monthly price, the chain expresses pricing per hour. The monthly price shown within the manual is offered as a convenience to users, as it provides a simple way to estimate costs. + +### Discounts + +- Received Discounts for renting a node on TFGrid internet capacity + - 50% for dedicated node (TF Pricing policies) + - A second level discount up to 60% for balance level see [Discount Levels](cloud@@staking_discount_levels) +- Discounts are calculated every time the grid bills by checking the available TFT balance on the user wallet and seeing if it is sufficient to receive a discount. As a result, if the user balance drops below the treshold of a given discount, the deployment price increases. + +## GPU Nodes + +To see only nodes with GPU, enable **GPU Node** in the filters. + +![](../img/dashboard_node_finder_gpu.png) + +This will filter nodes and only show nodes with GPU. You can see several information such as the model of the GPU and a GPU score. + +![](../img/dashboard_node_finder_gpu2.png) + +You can click on a given GPU node and see the GPU details. + +![](../img/dashboard_node_finder_gpu3.png) + +The ID that’s needed to be used during deployments is easily accessible and has a button to copy to the clipboard. + +### GPU Support + +To use a GPU on the TFGrid, users need to rent a dedicated node. Once they have rented a dedicated node equipped with a GPU, users can deploy workloads on their dedicated GPU node. + + + +### GPU Support Links + +The ThreeFold Manual covers many ways to use a GPU node on the TFGrid. Read [this section](system_administrators@@gpu_toc) to learn more. \ No newline at end of file diff --git a/collections/dashboard/img/dashboard_deploy.png b/collections/dashboard/img/dashboard_deploy.png new file mode 100644 index 0000000..7aa56ef Binary files /dev/null and b/collections/dashboard/img/dashboard_deploy.png differ diff --git a/collections/dashboard/img/dashboard_node_finder.png b/collections/dashboard/img/dashboard_node_finder.png new file mode 100644 index 0000000..bafd53f Binary files /dev/null and b/collections/dashboard/img/dashboard_node_finder.png differ diff --git a/collections/dashboard/img/dashboard_node_finder_dedicated.png b/collections/dashboard/img/dashboard_node_finder_dedicated.png new file mode 100644 index 0000000..d1e817a Binary files /dev/null and b/collections/dashboard/img/dashboard_node_finder_dedicated.png differ diff --git a/collections/dashboard/img/dashboard_node_finder_filters.png b/collections/dashboard/img/dashboard_node_finder_filters.png new file mode 100644 index 0000000..2c6735b Binary files /dev/null and b/collections/dashboard/img/dashboard_node_finder_filters.png differ diff --git a/collections/dashboard/img/dashboard_node_finder_gpu.png b/collections/dashboard/img/dashboard_node_finder_gpu.png new file mode 100644 index 0000000..1a9ff2d Binary files /dev/null and b/collections/dashboard/img/dashboard_node_finder_gpu.png differ diff --git a/collections/dashboard/img/dashboard_node_finder_gpu2.png b/collections/dashboard/img/dashboard_node_finder_gpu2.png new file mode 100644 index 0000000..8158dfc Binary files /dev/null and b/collections/dashboard/img/dashboard_node_finder_gpu2.png differ diff --git a/collections/dashboard/img/dashboard_node_finder_gpu3.png b/collections/dashboard/img/dashboard_node_finder_gpu3.png new file mode 100644 index 0000000..70a5931 Binary files /dev/null and b/collections/dashboard/img/dashboard_node_finder_gpu3.png differ diff --git a/collections/dashboard/img/dashboard_node_finder_node_view.png b/collections/dashboard/img/dashboard_node_finder_node_view.png new file mode 100644 index 0000000..215074d Binary files /dev/null and b/collections/dashboard/img/dashboard_node_finder_node_view.png differ diff --git a/collections/developers/grid_deployment/snapshots.md b/collections/developers/grid_deployment/snapshots.md index e1ea730..0887508 100644 --- a/collections/developers/grid_deployment/snapshots.md +++ b/collections/developers/grid_deployment/snapshots.md @@ -4,6 +4,10 @@ - [Introduction](#introduction) - [Services](#services) - [ThreeFold Public Snapshots](#threefold-public-snapshots) +- [Requirements](#requirements) + - [Files for Each Net](#files-for-each-net) + - [Deploy All 3 Network Instances](#deploy-all-3-network-instances) +- [Deploy a Snapshot Backend](#deploy-a-snapshot-backend) - [Deploy the Services with Scripts](#deploy-the-services-with-scripts) - [Create the Snapshots](#create-the-snapshots) - [Start All the Services](#start-all-the-services) @@ -51,6 +55,65 @@ ThreeFold hosts all available snapshots at: [https://bknd.snapshot.grid.tf/](htt rsync -Lv --progress --partial rsync://bknd.snapshot.grid.tf:34873/gridsnapshotsdev/processor-devnet-latest.tar.gz . ``` +## Requirements + +To run your own snapshot backend, you need the following: + +- Configuration + - A working docker environment + - 'node key' for the TFchain public RPC node, generated with `subkey generate-node-key` + + Hardware + - min of 8 modern CPU cores + - min of 32GB RAM + - min of 1TB SSD storage (high preference for NVMe based storage), preferably more (as the chain keeps growing in size) + - min of 2TB HDD storage (to store and share the snapshots) + +Dev, QA and Testnet can do with a Sata SSD setup. Mainnet requires NVMe based SSDs due to the data size. + +**Note**: If a deployment does not have enough disk input/output operations per second (iops) available, you might see the processor container restarting regulary and grid_proxy errors regarding processor database timeouts. + +### Files for Each Net + +Each folder contains the required deployment files for its net. Make sure to work in the folder that has the name of the network you want to create snapshots for. + +What does each file do: +- `.env` - contains environment files maintaned by Threefold Tech +- `.gitignore` - has a list of files to ignore once the repo has been cloned. This has the purpose to not have uncommited changes to files when working in this repo +- `.secrets.env-examples` - is where you have to add all your unique environment variables +- `create_snapshot.sh` - script to create a snapshot (used by cron) +- `docker-compose.yml` - has all the required docker-compose configuration to deploy a working Grid stack +- `open_logs_tmux.sh` - opens all the docker logs in tmux sessions +- `typesBundle.json` - contains data for the Graphql indexer and is not to be touched +- `startall.sh` - starts all the (already deployed) containers +- `stopall.sh` - stops all the (already deployed) containers + +### Deploy All 3 Network Instances + +To deploy the 3 network instances, mainnet, testnet and mainnet, you need to follow the same process for each network on a separate machine or at least on a different VM. + +This means that you can either deploy each network instance on 3 different machines, or you can also deploy 3 different VMs on the same machine, e.g. a dedicated node. Then, each VM will run a different network instance. In this case, you will certainly need a machine with NVME storage disk and modern hardware. + +## Deploy a Snapshot Backend + +Here's how to deploy a snapshot backend of a given network. + +- Go to the corresponding network folder (e.g. `mainnet`). + ``` + cd mainnet + cp .secrets.env-example .secrets.env + ``` +- Open `.secrets.env` and add your generated subkey node-key. +- Check that all environment variables are correct. + ``` + docker compose --env-file .secrets.env --env-file .env config + ``` +- Deploy the snapshot backend. Depending on the disk iops available, it can take up until a week to sync from block 0. + + ``` + docker compose --env-file .secrets.env --env-file .env up -d + ``` + ## Deploy the Services with Scripts You can deploy the 3 individual services using known methods such as [Docker](system_administrators@@docker_basics). To facilitate the process, scripts are provided that run the necessary docker commands. @@ -87,7 +150,7 @@ crontab -e ``` - Here is an example of a cron job where we execute the script every day at 1 AM and send the logs to `/var/log/snapshots/snapshots-cron.log`. ```sh -0 1 * * * sh /opt/snapshots/create-snapshot.sh > /var/log/snapshots/snapshots-cron.log 2>&1 +0 1 * * * sh /root/code/grid_deployment/grid-snapshots/mainnet/create_snapshot.sh > /var/log/snapshots/snapshots-cron.log 2>&1 ``` ### Start All the Services diff --git a/collections/faq/faq.md b/collections/faq/faq.md index fa2f32d..8051352 100644 --- a/collections/faq/faq.md +++ b/collections/faq/faq.md @@ -219,6 +219,7 @@ - [Troubleshooting and Error Messages](#troubleshooting-and-error-messages) - [Is it possible to access the Error Screen or Log Screen?](#is-it-possible-to-access-the-error-screen-or-log-screen) - [What does it mean when I see, during the 3Node boot, the message: error = context deadline exceeded?](#what-does-it-mean-when-i-see-during-the-3node-boot-the-message-error--context-deadline-exceeded) + - [How can I fix the error messages: "context deadline exceeded" accompanied with "node is behind acceptable delay with timestamp"?](#how-can-i-fix-the-error-messages-context-deadline-exceeded-accompanied-with-node-is-behind-acceptable-delay-with-timestamp) - [I try to boot a 3Node, but I get the error: "No Route to Host on Linux". What does it mean?](#i-try-to-boot-a-3node-but-i-get-the-error-no-route-to-host-on-linux-what-does-it-mean) - [How can I fix the error: "Network configuration succeed but Zero-OS kernel could not be downloaded" when booting a 3Node?](#how-can-i-fix-the-error-network-configuration-succeed-but-zero-os-kernel-could-not-be-downloaded-when-booting-a-3node) - [Using SAS disks, I get the error; "No ssd found, failed to register". What can I do to fix this?](#using-sas-disks-i-get-the-error-no-ssd-found-failed-to-register-what-can-i-do-to-fix-this) @@ -2042,6 +2043,15 @@ Yes! On the Zero-OS console, hit alt-F2 to open up the Error/Log Screen, and hit In general, this message means that the ThreeFold Grid asked something to your 3Node, and your 3Node could not respond fast enough. It is usually necessary to read the following error message to understand the situation more specifically. +### How can I fix the error messages: "context deadline exceeded" accompanied with "node is behind acceptable delay with timestamp"? + +This often indicates that the real-time clock of the system is not synced with current time. There have been different fixes reported to this issue. + +You can boot the node using a Ubuntu live image to sync the hardware time. After that, you can reboot the node and it should boot normally. + +You can fix this manually in the BIOS. Go to the BIOS settings and adjust the **Time** and **Date** settings. + +You can also try to adjust the clock by NTP over the network, if it applies to your case. ### I try to boot a 3Node, but I get the error: "No Route to Host on Linux". What does it mean? diff --git a/collections/farmers/farmerbot/farmerbot_information.md b/collections/farmers/farmerbot/farmerbot_information.md index c68a488..6551a2d 100644 --- a/collections/farmers/farmerbot/farmerbot_information.md +++ b/collections/farmers/farmerbot/farmerbot_information.md @@ -437,7 +437,7 @@ There are only a few steps needed to update the Farmerbot to a new release. ## Can't Find the Logs -If you can't find the logs of the Farmerbot, make sure that you ran the bot before! Once the Farmerbot runs, it should print logs in a file called `farmerbot.log` in the directory where it is running. +If you can't find the logs of the Farmerbot, make sure that you ran the bot before! Once the Farmerbot runs, it prints logs in a file called `farmerbot.log` in the directory where it is running. You can try a search for any files under the home directory with the `.log` extension in case it's been moved: @@ -445,6 +445,8 @@ You can try a search for any files under the home directory with the `.log` exte find ~/ -name '*.log' ``` +If you've deleted the log file while the bot is running, the bot won't recreated it. In this case, you will need to restart the bot, e.g. `systemctl restart farmerbot`. The bot will then automatically create a log file. + # Questions and Feedback If you have questions concerning the Farmerbot, feel free to ask for help on the [ThreeFold Forum](https://forum.threefold.io/) or on the [ThreeFold Farmer chat](https://t.me/threefoldfarmers). \ No newline at end of file diff --git a/collections/farmers/farmerbot/farmerbot_quick.md b/collections/farmers/farmerbot/farmerbot_quick.md index 8ec6945..26d2048 100644 --- a/collections/farmers/farmerbot/farmerbot_quick.md +++ b/collections/farmers/farmerbot/farmerbot_quick.md @@ -231,7 +231,7 @@ power: periodic_wake_up_start: 01:00PM ``` -Note that if the user wants to include all the nodes within a farm, they can simply omit the `included_nodes` section. In this case, all nodes of the farm will be included in the Farmerbot, as shown in the example below: +Note that if the user wants to include all the nodes within a farm, they can simply omit the `included_nodes` section. In this case, all nodes of the farm will be included in the Farmerbot, as shown in the example below. If you are proceeding like this, make sure that you don't have any unused node IDs on your farm, as the Farmerbot would try to wake up nodes that aren't running anymore on the grid. ``` farm_id: 1 diff --git a/collections/farmers/farmers.md b/collections/farmers/farmers.md index 3571faa..3be4ada 100644 --- a/collections/farmers/farmers.md +++ b/collections/farmers/farmers.md @@ -23,6 +23,7 @@ To buy a certified node from an official ThreeFold vendor, check the [ThreeFold - [Room Parameters](farm_room_parameters.md) - [Farming Costs](farming_costs.md) - [Calculate Your ROI](calculate_roi.md) + - [Farming Requirements](farming_requirements.md) - [Advanced Networking](advanced_networking_toc.md) - [Networking Overview](networking_overview.md) - [Network Considerations](network_considerations.md) diff --git a/collections/farmers/farming_optimization/farming_optimization.md b/collections/farmers/farming_optimization/farming_optimization.md index 1097c24..ff5ea49 100644 --- a/collections/farmers/farming_optimization/farming_optimization.md +++ b/collections/farmers/farming_optimization/farming_optimization.md @@ -10,4 +10,5 @@ The section [Build a 3Node](3node_building.md) covered the notions necessary to - [Minting Periods](minting_periods.md) - [Room Parameters](farm_room_parameters.md) - [Farming Costs](farming_costs.md) -- [Calculate Your ROI](calculate_roi.md) \ No newline at end of file +- [Calculate Your ROI](calculate_roi.md) +- [Farming Requirements](farming_requirements.md) \ No newline at end of file diff --git a/collections/farmers/farming_optimization/farming_requirements.md b/collections/farmers/farming_optimization/farming_requirements.md new file mode 100644 index 0000000..87bc509 --- /dev/null +++ b/collections/farmers/farming_optimization/farming_requirements.md @@ -0,0 +1,28 @@ +

Farming Requirements

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Uptime Requirements](#uptime-requirements) + - [Farmerbot Consideration](#farmerbot-consideration) + +--- + +## Introduction + +This section contains information on the farming requirements. + +## Uptime Requirements + +To be eligible for proof-of-capacity farming rewards, farmers need to ensure that their nodes have a minimum uptime per minting period. + +- 95% uptime requirements for DIY nodes + - This means that nodes have 36 hours of allowed downtime per month +- 98% uptime requirements for certified nodes + - This means that nodes have 14.4 hours of allowed downtime per month + +A minting period is 720 hours. + +### Farmerbot Consideration + +When minting considers a node running the Farmerbot, it counts standby time as uptime, as long as the node is healthy. If the node fails to wake within 24 hours, those 24 are deducted. This means that if the node misses two different wakeup within 24 hours, it will not have sufficient uptime for this minting period. This accounts for both certified and DIY cases. \ No newline at end of file diff --git a/collections/system_administrators/getstarted/planetarynetwork.md b/collections/system_administrators/getstarted/planetarynetwork.md index 89ccf84..cd28491 100644 --- a/collections/system_administrators/getstarted/planetarynetwork.md +++ b/collections/system_administrators/getstarted/planetarynetwork.md @@ -14,7 +14,6 @@ - [MacOS](#macos-1) - [Get Yggdrasil IP](#get-yggdrasil-ip) - [Add Peers](#add-peers) -- [Clients](#clients) - [Peers](#peers) - [Central europe](#central-europe) - [Ghent](#ghent) @@ -141,10 +140,6 @@ You'll need this address when registering your twin on TFChain later. systemctl restart yggdrasil -## Clients - -- [planetary network connector](https://github.com/threefoldtech/planetary_network) - ## Peers ### Central europe diff --git a/collections/system_administrators/getstarted/ssh_guide/ssh_openssh.md b/collections/system_administrators/getstarted/ssh_guide/ssh_openssh.md index 82170db..f782d79 100644 --- a/collections/system_administrators/getstarted/ssh_guide/ssh_openssh.md +++ b/collections/system_administrators/getstarted/ssh_guide/ssh_openssh.md @@ -84,13 +84,7 @@ You now have an SSH connection on Linux with IPv4. Here are the steps to SSH into a 3Node with the Planetary Network on Linux. -* To download and connect to the Threefold Planetary Network Connector - * Download the [.deb file](https://github.com/threefoldtech/planetary_network/releases/tag/v0.3-rc1-Linux) - * Right-click and select `Open with other application` - * Select `Software Install` - * Search the `Threefold Planetary Connector` and open it - * Disconnect your VPN if you have one - * In the connector, click `Connect` +* Set a [Planetary Network connection](planetarynetwork.md) * To create the SSH key pair, write in the terminal ``` ssh-keygen @@ -163,12 +157,7 @@ You now have an SSH connection on MAC with IPv4. Here are the steps to SSH into a 3Node with the Planetary Network on MAC. -* To download and connect to the Threefold Planetary Network Connector - * Download the [.dmg file](https://github.com/threefoldtech/planetary_network/releases/tag/v0.3-rc1-MacOS) - * Run the dmg installer - * Search the Threefold Planetary Connector in `Applications` and open it - * Disconnect your VPN if you have one - * In the connector, click `Connect` +* Set a [Planetary Network connection](planetarynetwork.md) * To create the SSH key pair, write in the terminal ``` ssh-keygen @@ -246,12 +235,7 @@ You now have an SSH connection on Window with IPv4. ### SSH into a 3Node with the Planetary Network on Windows -* To download and connect to the Threefold Planetary Network Connector - * Download the [.msi file](https://github.com/threefoldtech/planetary_network/releases/tag/v0.3-rc1-Windows10) - * Search the `Threefold Planetary Connector` - * Right-click and select `Install` - * Disconnect your VPN if you have one - * Open the TF connector and click `Connect` +* Set a [Planetary Network connection](planetarynetwork.md) * To download OpenSSH client and OpenSSH server * Open the `Settings` and select `Apps` * Click `Apps & Features` diff --git a/collections/system_administrators/getstarted/ssh_guide/ssh_putty.md b/collections/system_administrators/getstarted/ssh_guide/ssh_putty.md index 020945a..8e47559 100644 --- a/collections/system_administrators/getstarted/ssh_guide/ssh_putty.md +++ b/collections/system_administrators/getstarted/ssh_guide/ssh_putty.md @@ -29,8 +29,7 @@ The main steps for the whole process are the following: * Deploy a 3Node * Choose IPv4 or the Planetary Network * SSH into the 3Node - * For the Planetary Network, download the Planetary Network Connector - + * For the Planetary Network, set a [Planetary Network connection](planetarynetwork.md) ## SSH with PuTTY on Windows diff --git a/collections/system_administrators/mycelium/information.md b/collections/system_administrators/mycelium/information.md index 06471f7..87695ad 100644 --- a/collections/system_administrators/mycelium/information.md +++ b/collections/system_administrators/mycelium/information.md @@ -14,7 +14,11 @@ - [API](#api) - [Message System](#message-system) - [Inspecting Node Keys](#inspecting-node-keys) -- [Permanently Enable Mycelium](#permanently-enable-mycelium) +- [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) *** @@ -153,30 +157,38 @@ Public key: a47c1d6f2a15b2c670d3a88fbe0aeb301ced12f7bcb4c8e3aa877b20f8559c02 Address: 27f:b2c5:a944:4dad:9cb1:da4:8bf7:7e65 ``` -## Permanently Enable Mycelium -It is possible to permenently enable Mycelium on your client. +## Troubleshooting -For Linux, we use systemd to manage the mycelium daemon in `/storage/`. Here's an example: +### 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: ``` -[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=/storage/mycelium --tun-name mycelium -k %S/mycelium/key.bin --peers tcp://[2a01:4f8:221:1e0b::2]:9651 tcp://[2a01:4f8:212:fa6::2]:9651 tcp://[2a02:1802:5e:0:8478:51ff:fee2:3331]:9651 tcp://[2a02:1802:5e:0:8c9e:7dff:fec9:f0d2]:9651 tcp://[2a01:4f9:6a:1dc5::2]:9651 tcp://[2a01:4f9:5a:1042::2]:9651 -Restart=always -RestartSec=5 -TimeoutStopSec=5 -[Install] -WantedBy=multi-user.target -``` \ No newline at end of file +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). \ No newline at end of file diff --git a/collections/system_administrators/mycelium/installation.md b/collections/system_administrators/mycelium/installation.md index 7f403c2..789cf20 100644 --- a/collections/system_administrators/mycelium/installation.md +++ b/collections/system_administrators/mycelium/installation.md @@ -4,19 +4,28 @@

Table of Contents

- [Introduction](#introduction) -- [Full VM Example](#full-vm-example) +- [Considerations](#considerations) +- [Set Mycelium](#set-mycelium) +- [Start Mycelium](#start-mycelium) +- [Use Mycelium](#use-mycelium) +- [Mycelium Service (optional)](#mycelium-service-optional) *** ## Introduction -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. +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. Currently, Linux, macOS and Windows are supported. On Windows, you must have `wintun.dll` in the same directory you are executing the binary from. -## Full VM Example +## 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 -- Deploy a Full VM with Planetary network and SSH into the VM - Update the system ``` apt update @@ -33,16 +42,75 @@ Currently, Linux, macOS and Windows are supported. On Windows, you must have `wi ``` 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: ...) +- Check the Mycelium connection information (address and public key) ``` 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 - ``` \ No newline at end of file + ``` +- 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. \ No newline at end of file