diff --git a/books/kristof/SUMMARY.md b/books/kristof/SUMMARY.md index 5f29861..ebc5138 100644 --- a/books/kristof/SUMMARY.md +++ b/books/kristof/SUMMARY.md @@ -4,16 +4,14 @@ - [Projects Personal](kristof/projects_personal.md) - [Funding Round](kristof/funding.md) - [Projects Tech](kristof/projects_tech.md) + - [OurWorld Venture Creator](kristof/owh.md) - [Digital FreeZone](partners_utilization/freezone.md) - [Tanzania](partners_utilization/tanzania.md) - [TF9](kristof/tf9.md) - [ThreeFold](kristof/threefold.md) - - [OurWorld Holding](kristof/owh.md) - [Personal Writings](kristof/writings.md) - [Interesting info](kristof/info.md) -- [Project Launches](kristof/launches.md) - - [Project Mycelium Launch](kristof/projectmycelium_launch.md) - - [Project INCA Launch](kristof/projectinca_launch.md) - [Values](values/planet_people_first.md) - [Passion](kristof/passion.md) +- [CoCreation](kristof/cocreation.md) - [Research](kristof/research.md) diff --git a/books/manual/SUMMARY.md b/books/manual/SUMMARY.md index 599393e..c74de50 100644 --- a/books/manual/SUMMARY.md +++ b/books/manual/SUMMARY.md @@ -10,29 +10,35 @@ - [Pricing Calculator](dashboard/deploy/pricing_calculator.md) - [Node Finder](dashboard/deploy/node_finder.md) - [Virtual Machines](dashboard/solutions/vm_intro.md) - - [Micro and Full VM Differences ](dashboard/solutions/vm_differences.md) - [Full Virtual Machine](dashboard/solutions/fullvm.md) - [Micro Virtual Machine](dashboard/solutions/microvm.md) - [Nixos MicroVM](dashboard/solutions/nixos_micro.md) - - [Add a Domain](dashboard/solutions/add_domain.md) + - [Micro and Full VM Differences ](dashboard/solutions/vm_differences.md) + - [Add a Domain to a VM](dashboard/solutions/add_domain.md) - [Orchestrators](dashboard/deploy/orchestrators.md) - [Kubernetes](dashboard/solutions/k8s.md) - - [Caprover](dashboard/solutions/caprover.md) - - [Caprover Admin](dashboard/solutions/caprover_admin.md) - - [Caprover Worker](dashboard/solutions/caprover_worker.md) + - [CapRover](dashboard/solutions/caprover.md) + - [CapRover Admin](dashboard/solutions/caprover_admin.md) + - [CapRover Worker](dashboard/solutions/caprover_worker.md) - [Applications](dashboard/deploy/applications.md) - [Algorand](dashboard/solutions/algorand.md) - [CasperLabs](dashboard/solutions/casper.md) - [Discourse](dashboard/solutions/discourse.md) + - [Domains](dashboard/solutions/domains.md) - [Funkwhale](dashboard/solutions/funkwhale.md) + - [Gitea](dashboard/solutions/gitea.md) + - [Jenkins](dashboard/solutions/jenkins.md) + - [Jitsi](dashboard/solutions/jitsi.md) - [Mattermost](dashboard/solutions/mattermost.md) - [Nextcloud](dashboard/solutions/nextcloud.md) - [Node Pilot](dashboard/solutions/nodepilot.md) + - [Nostr](dashboard/solutions/nostr.md) - [Peertube](dashboard/solutions/peertube.md) - [Presearch](dashboard/solutions/presearch.md) - [Static Website](dashboard/solutions/static_website.md) - [Subsquid](dashboard/solutions/subsquid.md) - [Taiga](dashboard/solutions/taiga.md) + - [TFRobot](dashboard/solutions/tfrobot.md) - [Umbrel](dashboard/solutions/umbrel.md) - [WordPress](dashboard/solutions/wordpress.md) - [Your Contracts](dashboard/deploy/your_contracts.md) @@ -60,6 +66,7 @@ - [Installation](developers/javascript/grid3_javascript_installation.md) - [Loading Client](developers/javascript/grid3_javascript_loadclient.md) - [Deploy a VM](developers/javascript/grid3_javascript_vm.md) + - [Deploy a VM with Mycelium Network](developers/javascript/grid3_javascript_vm_with_mycelium_network.md) - [Capacity Planning](developers/javascript/grid3_javascript_capacity_planning.md) - [Deploy Multiple VMs](developers/javascript/grid3_javascript_vms.md) - [Deploy CapRover](developers/javascript/grid3_javascript_caprover.md) @@ -155,6 +162,7 @@ - [TFGrid Stacks](developers/grid_deployment/tfgrid_stacks.md) - [Full VM Grid Deployment](developers/grid_deployment/grid_deployment_full_vm.md) - [Grid Snapshots](developers/grid_deployment/snapshots.md) + - [Z-OS Boot Generator](developers/grid_deployment/zos_boot_generator/zos_boot_generator.md) - [Deploy the Dashboard](developers/grid_deployment/deploy_dashboard.md) - [Application Case Study: Nextcloud](developers/grid_deployment/app_case_study_nextcloud.md) - [Farmers](farmers/farmers.md) @@ -165,15 +173,16 @@ - [4. Wipe All the Disks](farmers/3node_building/4_wipe_all_disks.md) - [5. Set the BIOS/UEFI](farmers/3node_building/5_set_bios_uefi.md) - [6. Boot the 3Node](farmers/3node_building/6_boot_3node.md) + - [Farming Requirements](farmers/farming_requirements.md) - [Farming Optimization](farmers/farming_optimization/farming_optimization.md) - [GPU Farming](farmers/3node_building/gpu_farming.md) + - [HDD-Only Nodes](farmers/farming_optimization/hdd_only_nodes.md) - [Set Additional Fees](farmers/farming_optimization/set_additional_fees.md) - [Minting Receipts](farmers/3node_building/minting_receipts.md) - [Minting Periods](farmers/farming_optimization/minting_periods.md) - [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) @@ -184,27 +193,43 @@ - [Minting and the Farmerbot](farmers/farmerbot/farmerbot_minting.md) - [Node Status Bot](farmers/node_status_bot/node_status_bot.md) - [Farming Troubleshooting](farmers/farming_troubleshooting.md) + - [Build, Post Build & Memory](farmers/farming_troubleshooting_tips.md) - [System Administrators](system_administrators/system_administrators.md) - [Getting Started](system_administrators/getstarted/tfgrid3_getstarted.md) - [SSH Remote Connection](system_administrators/getstarted/ssh_guide/ssh_guide.md) - [SSH with OpenSSH](system_administrators/getstarted/ssh_guide/ssh_openssh.md) - - [SSH with PuTTY](system_administrators/getstarted/ssh_guide/ssh_putty.md) - - [SSH with WSL](system_administrators/getstarted/ssh_guide/ssh_wsl.md) - - [WireGuard Access](system_administrators/getstarted/ssh_guide/ssh_wireguard.md) - - [Remote Desktop and GUI](system_administrators/getstarted/remote-desktop_gui/remote-desktop_gui.md) - - [Cockpit: a Web-based Interface for Servers](system_administrators/getstarted/remote-desktop_gui/cockpit_guide/cockpit_guide.md) - - [XRDP: an Open-Source Remote Desktop Protocol](system_administrators/getstarted/remote-desktop_gui/xrdp_guide/xrdp_guide.md) - - [Apache Guacamole: a Clientless Remote Desktop Gateway](system_administrators/getstarted/remote-desktop_gui/guacamole_guide/guacamole_guide.md) - - [Planetary Network](system_administrators/getstarted/planetarynetwork.md) + - [Advanced Methods](system_administrators/getstarted/ssh_guide/advanced_methods/advanced_methods.md) + - [SSH with PuTTY](system_administrators/getstarted/ssh_guide/ssh_putty.md) + - [SSH with WSL](system_administrators/getstarted/ssh_guide/ssh_wsl.md) + - [WireGuard](system_administrators/getstarted/ssh_guide/advanced_methods/ssh_wireguard.md) + - [Planetary Network](system_administrators/getstarted/ssh_guide/advanced_methods/planetarynetwork.md) + - [TFGrid Deployments](system_administrators/getstarted/tfgrid_deployments.md) - [TFGrid Services](system_administrators/getstarted/tfgrid_services/tf_grid_services_readme.md) + - [Mycelium](system_administrators/mycelium/mycelium_toc.md) + - [Overview](system_administrators/mycelium/overview.md) + - [Installation](system_administrators/mycelium/installation.md) + - [Additional Information](system_administrators/mycelium/information.md) + - [Message](system_administrators/mycelium/message.md) + - [Packet](system_administrators/mycelium/packet.md) + - [Data Packet](system_administrators/mycelium/data_packet.md) + - [API YAML](system_administrators/mycelium/api_yaml.md) + - [Pulumi](system_administrators/pulumi/pulumi_readme.md) + - [Introduction to Pulumi](system_administrators/pulumi/pulumi_intro.md) + - [Installing Pulumi](system_administrators/pulumi/pulumi_install.md) + - [Deployment Examples](system_administrators/pulumi/pulumi_examples.md) + - [Deployment Details](system_administrators/pulumi/pulumi_deployment_details.md) + - [Complete Guides](system_administrators/pulumi/pulumi_complete_guides/pulumi_complete_guides_toc.md) + - [Pulumi and YAML](system_administrators/pulumi/pulumi_complete_guides/pulumi_yaml.md) + - [Pulumi and Python](system_administrators/pulumi/pulumi_complete_guides/pulumi_python.md) + - [Pulumi and Go](system_administrators/pulumi/pulumi_complete_guides/pulumi_go.md) - [GPU](system_administrators/gpu/gpu_toc.md) - [GPU Support](system_administrators/gpu/gpu.md) - [Terraform](system_administrators/terraform/terraform_toc.md) - - [Overview](system_administrators/terraform/terraform_readme.md) + - [Introduction to Terraform](system_administrators/terraform/terraform_readme.md) - [Installing Terraform](system_administrators/terraform/terraform_install.md) - [Terraform Basics](system_administrators/terraform/terraform_basics.md) - [Full VM Deployment](system_administrators/terraform/terraform_full_vm.md) - - [GPU Support](system_administrators/terraform/terraform_gpu_support.md) + - [Terrafprm Basics](system_administrators/terraform/terraform_basics.md) - [Resources](system_administrators/terraform/resources/terraform_resources_readme.md) - [Using Scheduler](system_administrators/terraform/resources/terraform_scheduler.md) - [Virtual Machine](system_administrators/terraform/resources/terraform_vm.md) @@ -218,6 +243,7 @@ - [CapRover](system_administrators/terraform/resources/terraform_caprover.md) - [Advanced](system_administrators/terraform/advanced/terraform_advanced_readme.md) - [Terraform Provider](system_administrators/terraform/advanced/terraform_provider.md) + - [GPU Support](system_administrators/terraform/terraform_gpu_support.md) - [Terraform Provisioners](system_administrators/terraform/advanced/terraform_provisioners.md) - [Mounts](system_administrators/terraform/advanced/terraform_mounts.md) - [Capacity Planning](system_administrators/terraform/advanced/terraform_capacity_planning.md) @@ -231,23 +257,13 @@ - [Nextcloud Single Deployment](system_administrators/terraform/advanced/terraform_nextcloud_single.md) - [Nextcloud Redundant Deployment](system_administrators/terraform/advanced/terraform_nextcloud_redundant.md) - [Nextcloud 2-Node VPN Deployment](system_administrators/terraform/advanced/terraform_nextcloud_vpn.md) - - [Pulumi](system_administrators/pulumi/pulumi_readme.md) - - [Introduction to Pulumi](system_administrators/pulumi/pulumi_intro.md) - - [Installing Pulumi](system_administrators/pulumi/pulumi_install.md) - - [Deployment Examples](system_administrators/pulumi/pulumi_examples.md) - - [Deployment Details](system_administrators/pulumi/pulumi_deployment_details.md) - - [Mycelium](system_administrators/mycelium/mycelium_toc.md) - - [Overview](system_administrators/mycelium/overview.md) - - [Installation](system_administrators/mycelium/installation.md) - - [Additional Information](system_administrators/mycelium/information.md) - - [Message](system_administrators/mycelium/message.md) - - [Packet](system_administrators/mycelium/packet.md) - - [Data Packet](system_administrators/mycelium/data_packet.md) - - [API YAML](system_administrators/mycelium/api_yaml.md) - [Computer and IT Basics](system_administrators/computer_it_basics/computer_it_basics.md) - [CLI and Scripts Basics](system_administrators/computer_it_basics/cli_scripts_basics.md) - [Docker Basics](system_administrators/computer_it_basics/docker_basics.md) - [Git and GitHub Basics](system_administrators/computer_it_basics/git_github_basics.md) + - [Gitea](system_administrators/computer_it_basics/gitea/gitea_toc.md) + - [Gitea Basics](system_administrators/computer_it_basics/gitea/gitea_basics.md) + - [Gitea API](system_administrators/computer_it_basics/gitea/gitea_api.md) - [Firewall Basics](system_administrators/computer_it_basics/firewall_basics/firewall_basics.md) - [UFW Basics](system_administrators/computer_it_basics/firewall_basics/ufw_basics.md) - [Firewalld Basics](system_administrators/computer_it_basics/firewall_basics/firewalld_basics.md) @@ -265,12 +281,20 @@ - [IPFS on a Micro VM](system_administrators/advanced/ipfs/ipfs_microvm.md) - [MinIO Operator with Helm3](system_administrators/advanced/minio_helm3.md) - [Hummingbot](system_administrators/advanced/hummingbot.md) - - [AI & ML Workloads](system_administrators/advanced/ai_ml_workloads.md) + - [AI & ML Workloads](system_administrators/advanced/ai_ml_workloads/ai_ml_workloads_toc.md) + - [CPU and Llama](system_administrators/advanced/ai_ml_workloads/cpu_and_llama.md) + - [GPU and Pytorch](system_administrators/advanced/ai_ml_workloads/gpu_and_pytorch.md) + - [GPU and Fooocus](system_administrators/advanced/ai_ml_workloads/gpu_and_fooocus.md) - [Ecommerce](system_administrators/advanced/ecommerce/ecommerce.md) - [WooCommerce](system_administrators/advanced/ecommerce/woocommerce.md) - [nopCommerce](system_administrators/advanced/ecommerce/nopcommerce.md) - [HTTPS with Caddy](system_administrators/advanced/https_caddy.md) - [Node Status Bot](system_administrators/advanced/node_status_bot.md) + - [Minetest](system_administrators/advanced/minetest.md) + - [Remote Desktop and GUI](system_administrators/getstarted/remote-desktop_gui/remote-desktop_gui.md) + - [Cockpit: a Web-based Interface for Servers](system_administrators/getstarted/remote-desktop_gui/cockpit_guide/cockpit_guide.md) + - [XRDP: an Open-Source Remote Desktop Protocol](system_administrators/getstarted/remote-desktop_gui/xrdp_guide/xrdp_guide.md) + - [Apache Guacamole: a Clientless Remote Desktop Gateway](system_administrators/getstarted/remote-desktop_gui/guacamole_guide/guacamole_guide.md) - [ThreeFold Token](threefold_token/threefold_token.md) - [TFT Bridges](threefold_token/tft_bridges/tft_bridges.md) - [TFChain-Stellar Bridge](threefold_token/tft_bridges/tfchain_stellar_bridge.md) @@ -295,12 +319,6 @@ - [FAQ](faq/faq.md) - [Knowledge Base](manual/knowledge_base.md) - [About](about/about.md) - - [ThreeFold History](about/threefold_history.md) - - [Token History](about/token_history.md) - - [Genesis Pool](about/genesis_pool.md) - - [Genesis Pool Dubai](about/genesis_pool_dubai.md) - - [Genesis Pool Ghent](about/genesis_pool_ghent.md) - - [Genesis Pool Details](about/genesis_block_pool_details.md) - [ThreeFold Tech](about/threefold_tech.md) - [Organisation Structure](about/orgstructure.md) - [Governance](about/governance.md) @@ -325,7 +343,6 @@ - [TFGrid v3.0.0 Alpha-4](about/roadmap/releasenotes/tfgrid_release_3_0_a4.md) - [TFGrid v3.0.0 Alpha-2](about/roadmap/releasenotes/tfgrid_release_3_0_a2.md) - [TFGrid v3.0.0](about/roadmap/releasenotes/tfgrid_release_3_0.md) - - [ThreeFold Token](about/token_overview/token_overview.md) - [Technology](tech/technology_toc.md) - [Introduction](tech/technology.md) - [The Internet Today](tech/internet_today.md) diff --git a/books/projectinca/SUMMARY.md b/books/projectinca/SUMMARY.md index 977d2f0..36678f8 100644 --- a/books/projectinca/SUMMARY.md +++ b/books/projectinca/SUMMARY.md @@ -68,6 +68,8 @@ - [**Requirements**](projectinca/requirements.md) - [Funding](projectinca/funding.md) - [P2P Promotion](projectinca/peer2peer_promotion.md) + - [Status](projectinca/status.md) + - [Questions](projectinca/questions.md) - [Collaboration](projectinca/collab.md) - [Principles](projectinca/collaboration.md) - [Messaging](tfgrid3/messaging.md) diff --git a/collections/about/genesis_block_pool_details.md b/collections/about/genesis_block_pool_details.md deleted file mode 100644 index 7c96cbb..0000000 --- a/collections/about/genesis_block_pool_details.md +++ /dev/null @@ -1,69 +0,0 @@ -

Genesis Pool Details

- -

Table of Contents

- -- [Genesis Pool](#genesis-pool) -- [Genesis Block](#genesis-block) - - [Genesis Block Value](#genesis-block-value) - - [Calculation](#calculation) -- [Genesis Pool Details](#genesis-pool-details) - -*** - -## Genesis Pool - -Genesis pool is the initial capacity with which the network started, was available when the project officially launched (blockchain launch March 2018). - -- +-300 computer (all owned by ThreeFold_Dubai) - - Belgium: 117+30 (hosted by BetterToken) - - Dubai: 148 (hosted by TF FZC itself) -- total estimate resource/compute units - - CRU: 4800, - - HRU: 8100000 - - MRU: 18600 - - SRU: 106000 - -## Genesis Block - -Genesis block is the first block registered in the blockchain. This consists of a number of TFT, in our case 695M TFT. - -> Maximum amount of tokens in the ThreeFold Blockchain at launch = 100 Billion (in other words genesis pool < 1% at start of max nr TFT) - -### Genesis Block Value - -It's hard to define the value of the genesis block when it was calculated, there was no established TFT price. - -- If TFT price = USD 0.01: +-7M USD (this token price has not been established but could be 2016-17) -- Summer 2023 the price is back on USD 0.01, which we believe is too low for the value created, lets hope for a better future. - -### Calculation - -To come up with a reasonable number and show the community that there was hardware available for the genesis block, we made an excel calculation. - -- Servers as part of genesis pool calculation - - +-300 computer (all owned by ThreeFold_Dubai) - - Belgium: 117+30 (hosted by BetterToken) - - Dubai: 148 (hosted by TF FZC itself) - - Hardware as used in many years before token launch (March 2018) - - At least 100+ servers over quite some years -- Total estimate resource/compute units - - CRU: 4,800 - - HRU: 8,100,000 - - MRU: 18,600 - - SRU: 106,000 -- Cloud Units - - Results in 3,927 CU and 8,225 SU -- The farming rules used were farming/minting rules v1 but with no difficulty level and TFT price 0.01 -- Duration - - We took +- 1.5 years in our calculation - - Averaged out, it's for sure not exact science - - But we can say that the amount of capacity listed has been available long enough for our engineers during the pre-launch period. Probably not with those exact listed servers but in general. -- Result: **695M TFT** - -_The purpose of this exercise is to demonstrate there is a reasoning behind the 695M TFT and computers which have been available. It's not intended as exact proof nor defense. We believe the value given was in line with the situation at that time._ - -## Genesis Pool Details - -- Block 0: [Block 0 on Explorer](https://explorer2.threefoldtoken.com/hash.html?hash=a2ee0aa706c9de46ec57dbba1af8d352fbcc3cc5e9626fc56337fd5e9ca44c8d) -- Genesis Block Code: [Code of Block 0](https://github.com/threefoldfoundation/tfchain/blob/master/pkg/config/config.go#L103) - diff --git a/collections/about/genesis_pool.md b/collections/about/genesis_pool.md deleted file mode 100644 index 1923ad5..0000000 --- a/collections/about/genesis_pool.md +++ /dev/null @@ -1,70 +0,0 @@ -

Genesis Pool

- -

Table of Contents

- -- [Introduction](#introduction) -- [Genesis Pool Token Usage](#genesis-pool-token-usage) -- [Remarks](#remarks) - -*** - -## Introduction - -At the end of March 2018, ThreeFold launched the public blockchain. - -ThreeFold developed their own blockchain software called Rivine, which was probably the first proof of blockstake blockchain in the world. We did not like the way how the other blockchains at that time were doing proof of work, which is basically burning a lot of energy to prove the validity of their blockchain. - -Rivine is a fork from the blockchain work done by the team of SIA and since then a lot of work has been done on it to fulfill our own requirements. The Rivine blockchain will no longer be used after May 2020. - -ThreeFold is the result of more than 20 years of work in the Internet space, over a number of companies. - -The technology used at start in March 2018 has been developed mainly out of three companies: ThreeFold_Dubai, BetterToken(bettertoken) and GreenIT Globe. Later in 2018, TF Tech was spun off from our incubator. - -TF Tech is a company born out of our Incubator called [Incubaid](http://www.incubaid.com/) in Belgium. - -TF Tech has a purpose to further develop the software and commercialize the capabilities on a global basis, mainly by working together with tech partners. - -The public version of our blockchain was started March 2018. The servers used during development and mining tokens already started years before. - -Many hundreds of servers have been used to develop the technology which now makes up our ThreeFold_Grid. - -+-300 servers are the foundation of our TF Grid. - -Most of the servers are in Dubai and in Ghent (Belgium). - -- To see the [genesis pool in Ghent, see here](genesis_pool_ghent.md) -- To see the [genesis pool in Dubai, see here](genesis_pool_dubai.md) - -All genesis pools were owned by the foundation. Many of those servers are at this point no longer active. The operations were done by ThreeFold_Dubai and BetterToken as Farming Cooperative. - -> For information about genesis pool/block, see [here](genesis_block_pool_details.md). - -## Genesis Pool Token Usage - -- A lot of the genesis pool tokens went to the original shareholders of a company who created a lot of the technology which was the basis at that time for ThreeFold. - - Most of these tokens are locked up and are not tradeable. - - This was a deal made mid 2018 and provided the ThreeFold Dubai with technology and a global engineering team. -- The other part went to ThreeFold Dubai, to allow the Foundation to promote & further grow the project. - -> [See Token Overview](token_overview.md) for more details. - -The tokens were used from out of ThreeFold_Dubai to create value for the ThreeFold Grid. - -- Initial funding: sell TFT as future IT capacity - - IT capacity delivered amongst others from the computers deployed by genesis pools (+300 servers) -- grants to community, bounties for coders, evangelists, ... - - max bounty given to contributors/founders = 2.5m TFT - - funding for projects like coding, marketing, ... - - There is a token grant program, but not really active yet. -- Fund the day-to-day operation of threefold_dubai -- Fund some development projects for our open source technology -- Public exchange fees -- Operational costs of keeping the genesis pool operational (engineers, data center, bandwidth, ...) -- Reward for the ThreeFold larger community and contributors - -## Remarks - -- ThreeFold_Dubai is run as a [not-for-profit organization](legal@@definitions_legal) -- All (future) profits generated, tokens=IT capacity sold are used to promote and grow the ThreeFold Project. - - None of the potential profits generated go to the shareholders of the company. - - Investments and loans given will of course be paid back to the relevant investors. \ No newline at end of file diff --git a/collections/about/genesis_pool_dubai.md b/collections/about/genesis_pool_dubai.md deleted file mode 100644 index 93ff1b9..0000000 --- a/collections/about/genesis_pool_dubai.md +++ /dev/null @@ -1,7 +0,0 @@ -## The Genesis Pool Dubai - -![](img/genesispool_1.jpg) -![](img/genesispool_2.jpg) - - -Read more about ThreeFold Dubai [here](threefold_dubai.md). \ No newline at end of file diff --git a/collections/about/genesis_pool_ghent.md b/collections/about/genesis_pool_ghent.md deleted file mode 100644 index 2aa17b0..0000000 --- a/collections/about/genesis_pool_ghent.md +++ /dev/null @@ -1,11 +0,0 @@ - -## The Genesis Pool (Ghent) - - -![](img/lochristi_1_.jpg) -![](img/lochristi_2_.jpg) -![](img/lochristi_3.jpg) -![](img/lochristi_4.jpg) -![](img/lochristi_5_.jpg) -![](img/lochristi_6_.jpg) -![](img/lochristi_7.jpg) diff --git a/collections/about/threefold_history.md b/collections/about/threefold_history.md deleted file mode 100644 index d8fd5df..0000000 --- a/collections/about/threefold_history.md +++ /dev/null @@ -1,59 +0,0 @@ -

ThreeFold History

- -

Table of Contents

- -- [Introduction](#introduction) -- [History](#history) -- [ThreeFold Project Funding Total](#threefold-project-funding-total) -- [Status](#status) -- [Genesis Pool](#genesis-pool) -- [History of Tokens](#history-of-tokens) - -*** - -## Introduction - -The project, now in its sixth year and is gratefulf or the support of its community and commercial entity [ThreeFold Tech](https://github.com/threefoldtech). - -ThreeFold is fundamentally a decentralized initiative. Within this framework, ThreeFold Dubai plays a pivotal role in championing and advancing the ThreeFold Grid and the broader movement. - -Our founders have largely retained their tokens, with only minimal sales, if any. Their intent is clear: they plan to hold onto their tokens until the grid achieves global recognition and the token value surpasses 0.2 USD. - -## History - -In the earlier days of ThreeFold, there were multiple teams collaborating, but the two core teams were located in Dubai and Belgium. - -A group of early supporters bought IT capacity (through buying TFT) from our Genesis pool and our early farmers. These buyers could use their TFT to buy IT capacity from [ThreeFold Dubai](threefold_dubai.md) or [BetterToken](bettertoken.md) BV until April 2020, or from the TF Grid directly in a fully decentralized way starting May 2020. - -The ThreeFold Grid is the result of many farmers using the open source technology of ThreeFold Tech. - -Originally, the technology used was created by three companies: GreenIT Globe, ThreeFold Dubai & ThreeFold Tech. The last two still actively participate in the creation of tech components or content as used by all ThreeFold Farmers today. - -## ThreeFold Project Funding Total - -How much funding was used to make the ThreeFold project possible? - -> +- 50M USD - -- +20M USD for all farming (thank you farmers) -- 15M USD in ThreeFold Tech as convertible loan (by 50+ investors) -- 5M USD in early IT capacity purchases (as TFT) -- +10M USD funding from Incubaid/Kristof (estimate) - - ThreeFold Tech was established Oct 2018, from out of Incubaid - - Related to people related to [Incubaid](https://www.incubaid.com) - - Over quite some years, multiple companies/projects - -## Status - -We have worked with multiple regions over the years to look for appropriate structures, we realize we need more funding as such we have launched a venture creator in mauritius who will hopefully invest 7.5m EUR in TFTech as well as in TF Dubai. - -See our [overview of our companies](threefold_companies.md) - - -## Genesis Pool - -To kickstart the ThreeFold Grid back in 2017 the foundation committed large amounts of capacity to the grid. This was called the [Genesis Pool](genesis_pool.md) and the tokens sold as mentioned could be used to use capacity from this pool and more. - -## History of Tokens - -For more info about history of tokens, see [token history](token_history.md). \ No newline at end of file diff --git a/collections/about/token_history.md b/collections/about/token_history.md deleted file mode 100644 index 8796dd9..0000000 --- a/collections/about/token_history.md +++ /dev/null @@ -1,96 +0,0 @@ -

Token History

- -

Table of Contents

- -- [Introduction](#introduction) -- [Quick History Overview](#quick-history-overview) -- [Organic Growth](#organic-growth) -- [Farming Model Improvements](#farming-model-improvements) - - [TFT Versions](#tft-versions) -- [Migration](#migration) - - [Migration from TFTv1 Rivine to TFTv1 Stellar (2020)](#migration-from-tftv1-rivine-to-tftv1-stellar-2020) - - [Migration from TFTv1 Stellar (Staking Pool=TFTA) to TFTv2 Stellar (Trading or Production Pool=TFT)](#migration-from-tftv1-stellar-staking-pooltfta-to-tftv2-stellar-trading-or-production-pooltft) - - [Technical Information](#technical-information) - -*** - -## Introduction - -We present the ThreeFold token history and the path from TFT v1 towards TFT v2. - -## Quick History Overview - -- More than 10 years ago, this project started from out of our incubator (see [Incubaid](https://www.incubaid.com)) -- More than 6 years ago TF Foundation started deploying capacity for development purposes - - This became our ([our genesis pool](genesis_pool.md)), which is the beginning of farming - - In 2017-18, value of the genesis pools were about 7m USD in TFT (tokens did not exist yet) - - Genesis pools are owned by ThreeFold Dubai (ThreeFold_Dubai). -- March 2018 our first-generation blockchain for the ThreeFold_Token saw daylight - - The TFT v1 was launched on a blockchain called Rivine (PTO) - - The genesis pool resulted in the first batch initial TFT - - The blockchain nodes were hosted by +30 different parties completely unrelated to each other -- In Q2 2019, ThreeFold_Dubai launched our generation 1 of our TF Grid -- April 2020 ThreeFold_Dubai launched the TFGrid v2.0 which is now public and usable by the world - - ThreeFold has a new website and a new wiki - - The farmers & TFT holders have at their own will upgraded their wallets, zero-nodes, ... -- May 2020: ThreeFold_Dubai launched our 2nd version of our token called TFT but this time on Stellar - - The original TFTv1 kept all same properties and benefits and is now called TFTA also on Stellar (is technology choice), anyone can move from TFTv1 to TFTv2 - - TF Foundation Dubai has provisioned the TFTv1 & TFTv2 on Stellar blockchain, but has no influence or access to any of the wallets or for that matter the 3Nodes (the nodes providing IT capacity) - - See below for more info, this was the result of 12 months of work with our community and of-course consensus to do this. - -## Organic Growth - -We didn't artificially pump the value of the tokens. - -We did not issue (print) tokens and go out onto an exchange to offer these tokens to the market. This is referred to as a public ICO. Some ICOs were not very clean in how they created hype and convinced people to invest. Because of our decision not to do a public ICO, we have not been able to raise much money, but we feel that this was more aligned with our values. - -We have sold some TFT over the counter but please note every buyer could at any point in time use these TFTs to buy IT capacity, this makes these TFT purposeful, even from the very start. - -## Farming Model Improvements - -In Q2 2020 we were launching TF Grid 2.0 with updated minting rules. As part of these farming rules the max number of tokens became 4 billion, which changes the optics of the original size of the genesis token pool. - -In Q3 2021 we launched TF Grid 3.0 which has again brought improvement to the farming model. Its up to the farmers to choose if they want to change to the new farming model or not. - -### TFT Versions - -| | version 1 Rivine | version 1 Stellar | version 2 Stellar | -| ------------------------------- | --------------------------- | ----------------- | --------------------------- | -| blockchain tech | Rivine, proof of blockstake | Public, Stellar | Public, Stellar | -| on public blockchain | march 2018 | 2020 May | 2020 May | -| farmed since | +-2017 | 2020 May | tbd | -| freely transferable (\*) | YES | YES | YES | -| complete blockchain feature set | YES | YES | YES | -| decentralized exchange | YES (atomic swap) | YES (Stellar) | YES (Stellar) | -| public exchange | BTC Alpha till Dec 2019 | Stellar | Stellar, BTC Alpha & Liquid (until August 2022) | -| freely tradable on exchange | YES | YES | YES | -| Name on Blockchain | TFT | TFTA | TFT | -| Purpose | v1 token | Staking Pool | Trading Pool | - -## Migration - -### Migration from TFTv1 Rivine to TFTv1 Stellar (2020) - -- TF Tech decided to no longer support development of Rivine, at this time there are better technologies available as blockchain -- The Foundation investigated many blockchain platforms & recommended to use Stellar -- Jimber (company which maintains the wallet, which is open source code), has made the changes in the wallet to be able to support this new blockchain -- The conversation had to be a mandatory one, because otherwise there would be the potential of double-spending problems over both simultaneously-active blockchains -- What happened here can be compared to a website deciding to change the database backend (change from e.g. MS Sql to Oracle). The users of the website should not have to be aware of this migration -- Every user had to do the transaction themselves, no developer or anyone else had control over this migration step. This was an automatic step -- Everyone can use the validation scripts available to check the correct conversion between two blockchain technologies. The validation scripts prove that every transaction in the conversion happened well - -### Migration from TFTv1 Stellar (Staking Pool=TFTA) to TFTv2 Stellar (Trading or Production Pool=TFT) - -- See [TFTA to TFT](legal@@tfta_to_tft) - -### Technical Information - -[TFTA TrustLine](https://stellar.expert/explorer/public/asset/TFTA-GBUT4GP5GJ6B3XW5PXENHQA7TXJI5GOPW3NF4W3ZIW6OOO4ISY6WNLN2) - -Accounts that got initial balances migrated them from the previous blockchain, [rivine](https://explorer2.threefoldtoken.com/). - -To validate this, each migration transaction contain hash of the rivine lock transaction in their memo in hex format. - -[Rivine block explorer](https://explorer2.threefoldtoken.com/) can be used for validation purposes. - -> Important note: The ThreeFold Token (TFT) is not an investment instrument. TFTs represent IT capacity on the ThreeFold Grid, farmers create TFT, developers use TFT. \ No newline at end of file diff --git a/collections/about/token_overview/special_wallets/img/polkadot_wallet_example.png b/collections/about/token_overview/special_wallets/img/polkadot_wallet_example.png deleted file mode 100644 index f8b65cc..0000000 Binary files a/collections/about/token_overview/special_wallets/img/polkadot_wallet_example.png and /dev/null differ diff --git a/collections/about/token_overview/special_wallets/img/wallet_solution_provider_main.png b/collections/about/token_overview/special_wallets/img/wallet_solution_provider_main.png deleted file mode 100644 index bb301f0..0000000 Binary files a/collections/about/token_overview/special_wallets/img/wallet_solution_provider_main.png and /dev/null differ diff --git a/collections/about/token_overview/special_wallets/img/wallet_solution_provider_test.png b/collections/about/token_overview/special_wallets/img/wallet_solution_provider_test.png deleted file mode 100644 index 5ef4669..0000000 Binary files a/collections/about/token_overview/special_wallets/img/wallet_solution_provider_test.png and /dev/null differ diff --git a/collections/about/token_overview/special_wallets/img/wallet_staking_pool.png b/collections/about/token_overview/special_wallets/img/wallet_staking_pool.png deleted file mode 100644 index 5d08a46..0000000 Binary files a/collections/about/token_overview/special_wallets/img/wallet_staking_pool.png and /dev/null differ diff --git a/collections/about/token_overview/special_wallets/img/wallet_tf_foundation_main.png b/collections/about/token_overview/special_wallets/img/wallet_tf_foundation_main.png deleted file mode 100644 index 5893319..0000000 Binary files a/collections/about/token_overview/special_wallets/img/wallet_tf_foundation_main.png and /dev/null differ diff --git a/collections/about/token_overview/special_wallets/img/wallet_tf_foundation_test.png b/collections/about/token_overview/special_wallets/img/wallet_tf_foundation_test.png deleted file mode 100644 index 83812ee..0000000 Binary files a/collections/about/token_overview/special_wallets/img/wallet_tf_foundation_test.png and /dev/null differ diff --git a/collections/about/token_overview/special_wallets/stats_special_wallets.md b/collections/about/token_overview/special_wallets/stats_special_wallets.md deleted file mode 100644 index f2b2e97..0000000 --- a/collections/about/token_overview/special_wallets/stats_special_wallets.md +++ /dev/null @@ -1,105 +0,0 @@ -

ThreeFold Special Wallets

- -

Table of Contents

- -- [Introduction](#introduction) -- [Exchange and OTC Wallets](#exchange-and-otc-wallets) -- [ThreeFold Contribution Wallets](#threefold-contribution-wallets) -- [Wisdom Council Wallets](#wisdom-council-wallets) -- [Important Note](#important-note) -- [Remarks](#remarks) -- [Proof-of-Utilization Wallets](#proof-of-utilization-wallets) - -*** - -## Introduction - -We present special wallets that hold a given amount of TFT. - -## Exchange and OTC Wallets - -| **Description** | **TFT Balance** | **Address** | -| ------------------ | ----------- | -------------------------------------------------------------------------------- | -| Liquid Exchange #1 | !!wiki.include page:'manual:ga7opn4a3jnhlphpewm4pjdoyydynzom7es6yl3o7nc3pry3v3ux6anm.md' | [GA7OPN4A3JNHLPHPEWM4PJDOYYDYNZOM7ES6YL3O7NC3PRY3V3UX6ANM](https://stellar.expert/explorer/public/account/GA7OPN4A3JNHLPHPEWM4PJDOYYDYNZOM7ES6YL3O7NC3PRY3V3UX6ANM) | -| Liquid Exchange #2 | !!wiki.include page:'manual:gdskfynmzwtb3v5an26ceaq27643q3kb4x6my4uto2liidfnd4spqzyu.md' | [GDSKFYNMZWTB3V5AN26CEAQ27643Q3KB4X6MY4UTO2LIIDFND4SPQZYU](https://stellar.expert/explorer/public/account/GDSKFYNMZWTB3V5AN26CEAQ27643Q3KB4X6MY4UTO2LIIDFND4SPQZYU) | -| gettft.com | !!wiki.include page:'manual:gbqhn7rl4lsrpr2tt74id2ujpz2axchqy2wkgctdljm3nxvj7gqhucod.md' | [GBQHN7RL4LSRPR2TT74ID2UJPZ2AXCHQY2WKGCTDLJM3NXVJ7GQHUCOD](https://stellar.expert/explorer/public/account/GBQHN7RL4LSRPR2TT74ID2UJPZ2AXCHQY2WKGCTDLJM3NXVJ7GQHUCOD) | -| BTC-Alpha Exchange | !!wiki.include page:'manual:gbtpaxxp6534upc4mlngfgjwcd6dnsrvippozwxaqawi4fktlojy2a2s.md' | [GBTPAXXP6534UPC4MLNGFGJWCD6DNSRVIPPOZWXAQAWI4FKTLOJY2A2S](https://stellar.expert/explorer/public/account/GBTPAXXP6534UPC4MLNGFGJWCD6DNSRVIPPOZWXAQAWI4FKTLOJY2A2S) | - -## ThreeFold Contribution Wallets - -| **Description** | **TFT Balance** | **Address** | -| ------------------------------- | ----------- | -------------------------------------------------------------------------------- | -| TF DAY2DAY operations | !!wiki.include page:'manual:gb2c5hczywngvm6jgxdwqbjtmuy4s2hpptcah63hfaqvl2alxdw7ssj7.md' | [GB2C5HCZYWNGVM6JGXDWQBJTMUY4S2HPPTCAH63HFAQVL2ALXDW7SSJ7](https://stellar.expert/explorer/public/account/GB2C5HCZYWNGVM6JGXDWQBJTMUY4S2HPPTCAH63HFAQVL2ALXDW7SSJ7) | -| TF Promotion Wallet | !!wiki.include page:'manual:gdlvib44lvonm5k67lupsfzmsx7g2rlyvbm5mmhuj4naqju7ch4hbjbo.md' | [GDLVIB44LVONM5K67LUPSFZMSX7G2RLYVBM5MMHUJ4NAQJU7CH4HBJBO](https://stellar.expert/explorer/public/account/GDLVIB44LVONM5K67LUPSFZMSX7G2RLYVBM5MMHUJ4NAQJU7CH4HBJBO) | -| TF Grants Wallet | !!wiki.include page:'manual:gdkxtuynw4bjkdm2l7b5xuyfuisv52kuu4g7vpnlf4zsikburm622ypz.md' | [GDKXTUYNW4BJKDM2L7B5XUYFUISV52KUU4G7VPNLF4ZSIKBURM622YPZ](https://stellar.expert/explorer/public/account/GDKXTUYNW4BJKDM2L7B5XUYFUISV52KUU4G7VPNLF4ZSIKBURM622YPZ) | -| ThreeFold Carbon Credit Funding | !!wiki.include page:'manual:gdijy6k2bbrirx423zfuykkfdn66xp2kmsbzfqse2psndz6edvqtrlsu.md' | [GDIJY6K2BBRIRX423ZFUYKKFDN66XP2KMSBZFQSE2PSNDZ6EDVQTRLSU](https://stellar.expert/explorer/public/account/GDIJY6K2BBRIRX423ZFUYKKFDN66XP2KMSBZFQSE2PSNDZ6EDVQTRLSU) | -| TF Team Wallet | !!wiki.include page:'manual:gcwhwdrxypxqaoymqkb66szplm6uankgmsl4sp7lsoia6ottoyq6hbih.md' | [GCWHWDRXYPXQAOYMQKB66SZPLM6UANKGMSL4SP7LSOIA6OTTOYQ6HBIH](https://stellar.expert/explorer/public/account/GCWHWDRXYPXQAOYMQKB66SZPLM6UANKGMSL4SP7LSOIA6OTTOYQ6HBIH) | - -## Wisdom Council Wallets - -| **Description** | **TFT Balance** | **Address** | -| --------------------------------------- | ----------- | -------------------------------------------------------------------------------- | -| Liquidity/Ecosystem Contribution Wisdom | !!wiki.include page:'manual:gbv734i2sv4yddpvjmyxu3iz2aiu5geajrad4e4bqg7ca2n63nxspmd6.md' | [GBV734I2SV4YDDPVJMYXU3IZ2AIU5GEAJRAD4E4BQG7CA2N63NXSPMD6](https://stellar.expert/explorer/public/account/GBV734I2SV4YDDPVJMYXU3IZ2AIU5GEAJRAD4E4BQG7CA2N63NXSPMD6) | -| TF Promotion Wisdom | !!wiki.include page:'manual:gai4c2bgoa3yhvqzzw7ow4fhoggywtubevnhb6mw4zafg7zaa7d5ipc3.md' | [GAI4C2BGOA3YHVQZZW7OW4FHOGGYWTUBEVNHB6MW4ZAFG7ZAA7D5IPC3](https://stellar.expert/explorer/public/account/GAI4C2BGOA3YHVQZZW7OW4FHOGGYWTUBEVNHB6MW4ZAFG7ZAA7D5IPC3) | -| TF Grants Wisdom | !!wiki.include page:'manual:gcej7dmulftt25uh4faagoz6ker4wxayqgjusiitqd527dgtksxkbqgr.md' | [GCEJ7DMULFTT25UH4FAAGOZ6KER4WXAYQGJUSIITQD527DGTKSXKBQGR](https://stellar.expert/explorer/public/account/GCEJ7DMULFTT25UH4FAAGOZ6KER4WXAYQGJUSIITQD527DGTKSXKBQGR) | -| TF Team Wisdom | !!wiki.include page:'manual:gaqxblfg4bzgivy6dbjvwe5eap3unhmia2pycuvly2juspvwpuf36bw4.md' | [GAQXBLFG4BZGIVY6DBJVWE5EAP3UNHMIA2PYCUVLY2JUSPVWPUF36BW4](https://stellar.expert/explorer/public/account/GAQXBLFG4BZGIVY6DBJVWE5EAP3UNHMIA2PYCUVLY2JUSPVWPUF36BW4) | -| Wisdom Council Locked | !!wiki.include page:'manual:gaugosylcx7jztqyf2k7rimhfwksa3wsi2oq4irkxmdmve6abjijmfqr.md' | [GAUGOSYLCX7JZTQYF2K7RIMHFWKSA3WSI2OQ4IRKXMDMVE6ABJIJMFQR](https://stellar.expert/explorer/public/account/GAUGOSYLCX7JZTQYF2K7RIMHFWKSA3WSI2OQ4IRKXMDMVE6ABJIJMFQR) | - -## Important Note - -ThreeFold DMCC (Dubai) is in the process of acquiring a substantial number of tokens. While these tokens possess liquidity from a technical standpoint, they are not currently accessible or traded on the open market. This reserve of tokens has been allocated for our upcoming commercial rollout, and their governance will be managed through consensus based system with input from the community. - -## Remarks - -- All wisdom council wallets are protected by multisignature of the members of the wisdom council -- All foundation wallets are protected by members of the foundation (4 on 6 need to sign) -- Signatures can be checked by going to detail of account and then to the stellar link -- The foundation will never spend tokens if the markets cannot support it and all proceeds are 100% used for the benefit of the ThreeFold project. - -## Proof-of-Utilization Wallets - -There are some wallets associated with [proof-of-utilization](proof_of_utilization.md). These wallets are on TFChain. - -The addresses are the following: - -- Mainnet ThreeFold Foundation: 5DCaGQfz2PH35EMJTHFMjc6Tk5SkqhjekVvrycY5M5xiYzis -- Mainnet Default Solution Provider: 5Dd6adUJH8wvqb9SPC96JdZ85nK1671MeMSxkPZ6Q7rE4byc -- Testnet ThreeFold Foundation: 5H6XYX17yJyjazoLVZqxxEPwMdGn99wginjmFBKtjvk8iJ3e -- Testnet Default Solution Provider: 5Esq6iLLBGGJFsCEXpoFhxHhqcaGqTvDasdwy8jPFDH1jYaM -- Staking Pool: 5CNposRewardAccount11111111111111111111111111FSU - -To check the balance of any of those wallets, follow those steps: - -- Go to the Polkadot API ([Mainnet](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftfchain.grid.tf#/chainstate), [Testnet](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftfchain.test.grid.tf#/chainstate)) -- Under `selected state query`, select `system` -- On the right drop down menu, select `account(AccountId32): FrameSystemAccountInfo` -- Under `Option`, write the wallet address of one of the three accounts displayed above -- Click on the `plus` button on the far right of the `selected state query` line. - -As a general example, here's what it looks like: - -![Wallet example](./img/polkadot_wallet_example.png) - -Here are the outputs for three wallets shown above: - -- Mainnet ThreeFold Foundation - -![Mainnet TF Foundation Wallet](./img/wallet_tf_foundation_main.png) - -- Mainnet Default Solution Provider - -![Mainnet Solution Provider Wallet](./img/wallet_solution_provider_main.png) - -- Testnet ThreeFold Foundation - -![Testnet TF Foundation Wallet](./img/wallet_tf_foundation_test.png) - -- Testnet Default Solution Provider - -![Testnet Solution Provider Wallet](./img/wallet_solution_provider_test.png) - -- Staking Pool - -![Staking Pool Wallet](./img/wallet_staking_pool.png) - -> Note: To get the proper TFT amount, you need to account fo the fact that TFT uses 7 decimal places. For this reason, to get the proper quantity in TFT, move the decimal place by dividing by 1e7 (i.e. 1x10⁷). \ No newline at end of file diff --git a/collections/about/token_overview/special_wallets/wallet_data/ga7opn4a3jnhlphpewm4pjdoyydynzom7es6yl3o7nc3pry3v3ux6anm.md b/collections/about/token_overview/special_wallets/wallet_data/ga7opn4a3jnhlphpewm4pjdoyydynzom7es6yl3o7nc3pry3v3ux6anm.md deleted file mode 100644 index a34c7a2..0000000 --- a/collections/about/token_overview/special_wallets/wallet_data/ga7opn4a3jnhlphpewm4pjdoyydynzom7es6yl3o7nc3pry3v3ux6anm.md +++ /dev/null @@ -1 +0,0 @@ -3340735.94 \ No newline at end of file diff --git a/collections/about/token_overview/special_wallets/wallet_data/gai4c2bgoa3yhvqzzw7ow4fhoggywtubevnhb6mw4zafg7zaa7d5ipc3.md b/collections/about/token_overview/special_wallets/wallet_data/gai4c2bgoa3yhvqzzw7ow4fhoggywtubevnhb6mw4zafg7zaa7d5ipc3.md deleted file mode 100644 index cd1f5fd..0000000 --- a/collections/about/token_overview/special_wallets/wallet_data/gai4c2bgoa3yhvqzzw7ow4fhoggywtubevnhb6mw4zafg7zaa7d5ipc3.md +++ /dev/null @@ -1 +0,0 @@ -258.80 \ No newline at end of file diff --git a/collections/about/token_overview/special_wallets/wallet_data/gaqxblfg4bzgivy6dbjvwe5eap3unhmia2pycuvly2juspvwpuf36bw4.md b/collections/about/token_overview/special_wallets/wallet_data/gaqxblfg4bzgivy6dbjvwe5eap3unhmia2pycuvly2juspvwpuf36bw4.md deleted file mode 100644 index bab954e..0000000 --- a/collections/about/token_overview/special_wallets/wallet_data/gaqxblfg4bzgivy6dbjvwe5eap3unhmia2pycuvly2juspvwpuf36bw4.md +++ /dev/null @@ -1 +0,0 @@ -5000000.00 \ No newline at end of file diff --git a/collections/about/token_overview/special_wallets/wallet_data/gaugosylcx7jztqyf2k7rimhfwksa3wsi2oq4irkxmdmve6abjijmfqr.md b/collections/about/token_overview/special_wallets/wallet_data/gaugosylcx7jztqyf2k7rimhfwksa3wsi2oq4irkxmdmve6abjijmfqr.md deleted file mode 100644 index 5fd95eb..0000000 --- a/collections/about/token_overview/special_wallets/wallet_data/gaugosylcx7jztqyf2k7rimhfwksa3wsi2oq4irkxmdmve6abjijmfqr.md +++ /dev/null @@ -1 +0,0 @@ -10468506.00 \ No newline at end of file diff --git a/collections/about/token_overview/special_wallets/wallet_data/gb2c5hczywngvm6jgxdwqbjtmuy4s2hpptcah63hfaqvl2alxdw7ssj7.md b/collections/about/token_overview/special_wallets/wallet_data/gb2c5hczywngvm6jgxdwqbjtmuy4s2hpptcah63hfaqvl2alxdw7ssj7.md deleted file mode 100644 index 6641a70..0000000 --- a/collections/about/token_overview/special_wallets/wallet_data/gb2c5hczywngvm6jgxdwqbjtmuy4s2hpptcah63hfaqvl2alxdw7ssj7.md +++ /dev/null @@ -1 +0,0 @@ -12447988.00 \ No newline at end of file diff --git a/collections/about/token_overview/special_wallets/wallet_data/gbqhn7rl4lsrpr2tt74id2ujpz2axchqy2wkgctdljm3nxvj7gqhucod.md b/collections/about/token_overview/special_wallets/wallet_data/gbqhn7rl4lsrpr2tt74id2ujpz2axchqy2wkgctdljm3nxvj7gqhucod.md deleted file mode 100644 index 8cd46f1..0000000 --- a/collections/about/token_overview/special_wallets/wallet_data/gbqhn7rl4lsrpr2tt74id2ujpz2axchqy2wkgctdljm3nxvj7gqhucod.md +++ /dev/null @@ -1 +0,0 @@ -2908686.63 \ No newline at end of file diff --git a/collections/about/token_overview/special_wallets/wallet_data/gbtpaxxp6534upc4mlngfgjwcd6dnsrvippozwxaqawi4fktlojy2a2s.md b/collections/about/token_overview/special_wallets/wallet_data/gbtpaxxp6534upc4mlngfgjwcd6dnsrvippozwxaqawi4fktlojy2a2s.md deleted file mode 100644 index d49104a..0000000 --- a/collections/about/token_overview/special_wallets/wallet_data/gbtpaxxp6534upc4mlngfgjwcd6dnsrvippozwxaqawi4fktlojy2a2s.md +++ /dev/null @@ -1 +0,0 @@ -1832242.73 \ No newline at end of file diff --git a/collections/about/token_overview/special_wallets/wallet_data/gbv734i2sv4yddpvjmyxu3iz2aiu5geajrad4e4bqg7ca2n63nxspmd6.md b/collections/about/token_overview/special_wallets/wallet_data/gbv734i2sv4yddpvjmyxu3iz2aiu5geajrad4e4bqg7ca2n63nxspmd6.md deleted file mode 100644 index df521e3..0000000 --- a/collections/about/token_overview/special_wallets/wallet_data/gbv734i2sv4yddpvjmyxu3iz2aiu5geajrad4e4bqg7ca2n63nxspmd6.md +++ /dev/null @@ -1 +0,0 @@ -16999920.00 \ No newline at end of file diff --git a/collections/about/token_overview/special_wallets/wallet_data/gcej7dmulftt25uh4faagoz6ker4wxayqgjusiitqd527dgtksxkbqgr.md b/collections/about/token_overview/special_wallets/wallet_data/gcej7dmulftt25uh4faagoz6ker4wxayqgjusiitqd527dgtksxkbqgr.md deleted file mode 100644 index 1b01949..0000000 --- a/collections/about/token_overview/special_wallets/wallet_data/gcej7dmulftt25uh4faagoz6ker4wxayqgjusiitqd527dgtksxkbqgr.md +++ /dev/null @@ -1 +0,0 @@ -10000000.00 \ No newline at end of file diff --git a/collections/about/token_overview/special_wallets/wallet_data/gcwhwdrxypxqaoymqkb66szplm6uankgmsl4sp7lsoia6ottoyq6hbih.md b/collections/about/token_overview/special_wallets/wallet_data/gcwhwdrxypxqaoymqkb66szplm6uankgmsl4sp7lsoia6ottoyq6hbih.md deleted file mode 100644 index 182e928..0000000 --- a/collections/about/token_overview/special_wallets/wallet_data/gcwhwdrxypxqaoymqkb66szplm6uankgmsl4sp7lsoia6ottoyq6hbih.md +++ /dev/null @@ -1 +0,0 @@ -328241.81 \ No newline at end of file diff --git a/collections/about/token_overview/special_wallets/wallet_data/gdijy6k2bbrirx423zfuykkfdn66xp2kmsbzfqse2psndz6edvqtrlsu.md b/collections/about/token_overview/special_wallets/wallet_data/gdijy6k2bbrirx423zfuykkfdn66xp2kmsbzfqse2psndz6edvqtrlsu.md deleted file mode 100644 index 76e10f5..0000000 --- a/collections/about/token_overview/special_wallets/wallet_data/gdijy6k2bbrirx423zfuykkfdn66xp2kmsbzfqse2psndz6edvqtrlsu.md +++ /dev/null @@ -1 +0,0 @@ -10110962.98 \ No newline at end of file diff --git a/collections/about/token_overview/special_wallets/wallet_data/gdkxtuynw4bjkdm2l7b5xuyfuisv52kuu4g7vpnlf4zsikburm622ypz.md b/collections/about/token_overview/special_wallets/wallet_data/gdkxtuynw4bjkdm2l7b5xuyfuisv52kuu4g7vpnlf4zsikburm622ypz.md deleted file mode 100644 index c280877..0000000 --- a/collections/about/token_overview/special_wallets/wallet_data/gdkxtuynw4bjkdm2l7b5xuyfuisv52kuu4g7vpnlf4zsikburm622ypz.md +++ /dev/null @@ -1 +0,0 @@ -12996500.00 \ No newline at end of file diff --git a/collections/about/token_overview/special_wallets/wallet_data/gdlvib44lvonm5k67lupsfzmsx7g2rlyvbm5mmhuj4naqju7ch4hbjbo.md b/collections/about/token_overview/special_wallets/wallet_data/gdlvib44lvonm5k67lupsfzmsx7g2rlyvbm5mmhuj4naqju7ch4hbjbo.md deleted file mode 100644 index 4fb9d52..0000000 --- a/collections/about/token_overview/special_wallets/wallet_data/gdlvib44lvonm5k67lupsfzmsx7g2rlyvbm5mmhuj4naqju7ch4hbjbo.md +++ /dev/null @@ -1 +0,0 @@ -14784445.77 \ No newline at end of file diff --git a/collections/about/token_overview/special_wallets/wallet_data/gdskfynmzwtb3v5an26ceaq27643q3kb4x6my4uto2liidfnd4spqzyu.md b/collections/about/token_overview/special_wallets/wallet_data/gdskfynmzwtb3v5an26ceaq27643q3kb4x6my4uto2liidfnd4spqzyu.md deleted file mode 100644 index 1d65b3e..0000000 --- a/collections/about/token_overview/special_wallets/wallet_data/gdskfynmzwtb3v5an26ceaq27643q3kb4x6my4uto2liidfnd4spqzyu.md +++ /dev/null @@ -1 +0,0 @@ -0.00 \ No newline at end of file diff --git a/collections/about/token_overview/token_overview.md b/collections/about/token_overview/token_overview.md deleted file mode 100644 index e6233c0..0000000 --- a/collections/about/token_overview/token_overview.md +++ /dev/null @@ -1,89 +0,0 @@ -

ThreeFold Token Overview

- -

Table of Contents

- -- [Introduction to TFT](#introduction-to-tft) -- [Proof-of-Capacity](#proof-of-capacity) -- [Proof-of-Utilization](#proof-of-utilization) - - [Proof-of-Utility Distribution Flow](#proof-of-utility-distribution-flow) -- [TFT Distribution](#tft-distribution) -- [TFT Marketcap and Market Price](#tft-marketcap-and-market-price) -- [Complemetary Information](#complemetary-information) -- [Disclaimer](#disclaimer) - -*** - -## Introduction to TFT - -ThreeFold tokens, or TFTs, are exclusively generated when new capacity is added to the TF Grid. There are no centralized issuers. Tokens have not been created out of thin air. - -While the ThreeFold Grid can expand, a maximum of 1 billion TFTs can ever be in circulation. This limit ensures stability of value and incentivization for all stakeholders. - -TFT lives on the Stellar Blockchain. TFT holders benefit from a big ecosystem of proven wallets and mediums of exchange. - -By employing Stellar technology, TFT transactions and smart contracts are powered by one of the most energy-efficient blockchains available. Furthermore, TFT is the medium of exchange on the greenest internet network in the world. The market for farming, cultivating and trading TFT is open to all. - -Anyone with internet connection, power supply and necessary hardware can become a Farmer or trade ThreeFold tokens (TFT). - -By farming, buying, holding, and utilizing ThreeFold Tokens, you are actively supporting the expansion of the ThreeFold Grid and its use cases — creating a more sustainable, fair, and equally accessible Internet. - -## Proof-of-Capacity - -ThreeFold uses proof-of-capacity to mint tokens. Since the genenis pool, all tokens that are being minted are the result of farming. Minting will stop during 2024, to keep the total amount of TFT at 1 billion, instead of the previously planned 4 billion. Read more about this [here](https://forum.threefold.io/t/end-feb-2024-update-from-the-team/4233). - -> For more details, see [Proof of Capacity](proof_of_capacity.md) - -## Proof-of-Utilization - -TFT is used on the TFGrid to purchase network, compute and storage resources through the proof-of-utilization protocol. - -### Proof-of-Utility Distribution Flow - -![](img/token_distribution.png) - -> For more details, see [Proof-of-Utilization](proof_of_utilization.md) - -## TFT Distribution - -The supply distribution of TFT is as follows: - -| Supply Distribution | Qty (Millions) | -| ------------------- | -------------- | -| Total supply | 942 | -| TF Foundation Supply | 162 | -| Circulating supply | 780 | -| Maximum supply | 1000 | - -The total supply of TFT is distributed as follows: - -| Total Supply Distribution | Qty (Millions) | -| ------------------------------------------- | -------------- | -| TF Foundation: Ecosystem Grants | 22 | -| TF Foundation: Promotion & Marketing Effort | 100 | -| TF Foundation: Ecosystem Contribution & Liquidity Exchanges | 40 | -| Genesis Pool & Farming Rewards | 780 | - -## TFT Marketcap and Market Price - -The TFT market price and marketcap are as follows: - -| **Description** | **Value** | -| ------------------------- | ------------- | -| TFT Market Price | 0.028 USD | -| TFT Market Cap | 21,840,000 USD | - -The market cap is equal to the product of the TFT market price and the circulating supply. - -> Market Cap = (TFT Market Price) X (TFT Circulating Supply) - -The values here are subject to change. Check the current market conditions. - -## Complemetary Information - -- [ThreeFold History](threefold_history.md) -- [Token History](token_history.md) - -## Disclaimer - -> Important Note: The ThreeFold Token (TFT) is not an investment instrument. -TFTs represent IT capacity on the ThreeFold Grid, farmers create TFT, developers use TFT. \ No newline at end of file diff --git a/collections/cloud/cloud_toc.md b/collections/cloud/cloud_toc.md index 48ae56a..6a1ef5c 100644 --- a/collections/cloud/cloud_toc.md +++ b/collections/cloud/cloud_toc.md @@ -8,9 +8,5 @@ To deploy on the ThreeFold Grid, refer to the [System Administrators](system_adm - [Cloud Units](cloudunits.md) - [Pricing](pricing_toc.md) - - [Pricing Overview](pricing.md) - - [Staking Discounts](staking_discount_levels.md) - - [Cloud Pricing Compare](cloud_pricing_compare.md) - - [Grid Billing](grid_billing.md) - [Resource Units](resource_units_calc_cloudunits.md) - [Resource Units Advanced](resourceunits_advanced.md) \ No newline at end of file diff --git a/collections/cloud/resource_units_calc_cloudunits.md b/collections/cloud/resource_units_calc_cloudunits.md index dda7c63..4d5a740 100644 --- a/collections/cloud/resource_units_calc_cloudunits.md +++ b/collections/cloud/resource_units_calc_cloudunits.md @@ -23,7 +23,7 @@ Resource units are used to measure and convert capacity on the hardware level in | ------------ | ------------------------------------ | ---- | | Core Unit | 1 Logical Core (Hyperthreaded Core) | CRU | | Mem Unit | 1 GB mem | MRU | -| HD Unit | 1 GB | HRU | +| HDD Unit | 1 GB | HRU | | SSD Unit | 1 GB | SRU | | Network Unit | 1 GB of bandwidth transmitted in/out | NRU | diff --git a/collections/collaboration/collaboration_tools/circle_tool.md b/collections/collaboration/collaboration_tools/circle_tool.md index dace7c2..96cfd98 100644 --- a/collections/collaboration/collaboration_tools/circle_tool.md +++ b/collections/collaboration/collaboration_tools/circle_tool.md @@ -19,7 +19,7 @@ ## Introduction -The [__ThreeFold Circle Tool__](https://circles.threefold.me ) is our own self-hosted (desktop only) project management tool based on [Taiga](https://www.taiga.io/), an open-source project management tool for cross-functional agile. It offers a lot of different project management kits and features such as the scrum board, kanban board, issues management, and many more. +The [__ThreeFold Circle Tool__](https://circles.threefold.me ) is our own self-hosted (desktop only) project management tool based on [Taiga](https://taiga.io/), an open-source project management tool for cross-functional agile. It offers a lot of different project management kits and features such as the scrum board, kanban board, issues management, and many more. Our teams at ThreeFold use the Circle Tool to self-manage our tasks, thus it is deemed necessary for the new onboarded team members to learn how to use the tool. Unfortunately we only provide the desktop version of the tool at this moment since we normally manage our projects on the computer. diff --git a/collections/dashboard/dashboard.md b/collections/dashboard/dashboard.md index fca40ee..5143d2b 100644 --- a/collections/dashboard/dashboard.md +++ b/collections/dashboard/dashboard.md @@ -15,10 +15,10 @@ The backend for the weblets is introduced with the [Javascript Client](developer

Table of Contents

- [Wallet Connector](wallet_connector.md) -- [TFGrid](tfgrid.md) -- [Deploy](deploy.md) -- [Farms](farms.md) -- [TFChain](tfchain.md) +- [TFGrid](tfgrid/tfgrid.md) +- [Deploy](deploy/deploy.md) +- [Farms](farms/farms.md) +- [TFChain](tfchain/tfchain.md) ## Advantages @@ -42,11 +42,12 @@ You can access the ThreeFold Dashboard on different TF Chain networks. - Deploys one thing at a time. - Might take sometime to deploy a solution like Peertube, so you should wait a little bit until it's fully running. -## Dashboard Backups +## List of Mainnet Backend Stacks -If the main Dashboard URLs are not working for any reason, the following URLs can be used. Those Dashboard URLs are fully independent of the main Dashboard URLs shown above. +We provide independent mainnet backend stacks. Here is the current list: -- [https://dashboard.02.dev.grid.tf](https://dashboard.02.dev.grid.tf) for Dev net -- [https://dashboard.02.qa.grid.tf](https://dashboard.02.qa.grid.tf) for QA net -- [https://dashboard.02.test.grid.tf](https://dashboard.02.test.grid.tf) for Test net -- [https://dashboard.02.grid.tf](https://dashboard.02.grid.tf) for Main net \ No newline at end of file +- [https://dashboard.grid.tf](https://dashboard.grid.tf) +- [https://dashboard.be.grid.tf](https://dashboard.be.grid.tf) +- [https://dashboard.fin.grid.tf](https://dashboard.fin.grid.tf) +- [https://dashboard.sg.grid.tf](https://dashboard.sg.grid.tf) +- [https://dashboard.us.grid.tf](https://dashboard.us.grid.tf) \ No newline at end of file diff --git a/collections/dashboard/deploy/applications.md b/collections/dashboard/deploy/applications.md index c11778a..d9e57ca 100644 --- a/collections/dashboard/deploy/applications.md +++ b/collections/dashboard/deploy/applications.md @@ -11,14 +11,20 @@ Easily deploy your favourite applications on the ThreeFold grid with a click of - [Algorand](algorand.md) - [CasperLabs](casper.md) - [Discourse](discourse.md) +- [Domains](domains.md) - [Funkwhale](funkwhale.md) +- [Gitea](gitea.md) +- [Jenkins](jenkins.md) +- [Jitsi](jitsi.md) - [Mattermost](mattermost.md) - [Nextcloud](nextcloud.md) - [Node Pilot](nodepilot.md) +- [Nostr](nostr.md) - [Peertube](peertube.md) - [Presearch](presearch.md) - [Static Website](static_website.md) - [Subsquid](subsquid.md) - [Taiga](taiga.md) +- [TFRobot](tfrobot.md) - [Umbrel](umbrel.md) - [WordPress](wordpress.md) \ No newline at end of file diff --git a/collections/dashboard/deploy/images.md b/collections/dashboard/deploy/images.md index 2c27966..564e1e3 100644 --- a/collections/dashboard/deploy/images.md +++ b/collections/dashboard/deploy/images.md @@ -2,4 +2,6 @@ Find or Publish your Flist from [Zero-OS Hub](https://hub.grid.tf/) -![](../img/0_hub.png) \ No newline at end of file +![](../img/0_hub.png) + +Learn more about the Zero-OS Hub [here](developers@@zos_hub). \ No newline at end of file diff --git a/collections/dashboard/deploy/node_finder.md b/collections/dashboard/deploy/node_finder.md index 3d8b662..3d4d29a 100644 --- a/collections/dashboard/deploy/node_finder.md +++ b/collections/dashboard/deploy/node_finder.md @@ -45,11 +45,14 @@ If your deployment has some minimum requirements, you can easily filter relevant ## Node Details -You can see all of the node details when you click on its row. +You can see all of the node details when you click on its row: ![](../img/dashboard_node_finder_node_view.png) -Note that the network speed test displayed in the Node Finder is updated every 6 hours. +> Note: The network speed test displayed in the Node Finder is updated every 6 hours. +To access the public Grafana page displaying additional information, click on `Check Node Health`: + +![](../img/node_finder_grafana.png) ## Gateway Nodes diff --git a/collections/dashboard/farms/your_farms.md b/collections/dashboard/farms/your_farms.md index d1e1ae2..f9072ed 100644 --- a/collections/dashboard/farms/your_farms.md +++ b/collections/dashboard/farms/your_farms.md @@ -2,24 +2,24 @@ This comprehensive guide aims to provide users with detailed instructions and insights into efficiently managing their _Farms_. Farms encompass servers and storage devices contributing computational and storage capabilities to the grid, empowering users to oversee, maintain, and optimize their resources effectively. -- [Getting started](#getting-started) -- [Create a new Farm](#create-a-new-farm) +- [Getting Started](#getting-started) +- [Create a New Farm](#create-a-new-farm) - [Manage Your Farms](#manage-your-farms) - - [Add a public IP to your Farm](#add-a-public-ip-to-your-farm) - - [Add a Stellar address for payout](#add-a-stellar-address-for-payout) - - [Generate your node bootstrap image](#generate-your-node-bootstrap-image) - - [Additional information](#additional-information) + - [Add a Public IP to Your Farm](#add-a-public-ip-to-your-farm) + - [Add a Stellar Address for Payout](#add-a-stellar-address-for-payout) + - [Generate Your Node Bootstrap Image](#generate-your-node-bootstrap-image) + - [Additional Information](#additional-information) - [Manage Your Nodes](#manage-your-nodes) - - [Node information](#node-information) + - [Node Information](#node-information) - [Extra Fees](#extra-fees) - [Public Configuration](#public-configuration) - [The Difference Between IPs Assigned to Nodes Versus a Farm](#the-difference-between-ips-assigned-to-nodes-versus-a-farm) -## Getting started +## Getting Started After logging in to the TF Dashboard, on the sidebar click on **Dashboard** then _Your Farms_ . -## Create a new Farm +## Create a New Farm If you want to start farming, you need a farmID, the ID of the farm that is owning the hardware node(s) you connect to the TFGrid. @@ -47,7 +47,7 @@ You can browse your Farms in _Farms_ table; Farms table contains all your own fa ![](../img/dashboard_farms_farms_table.png) -### Add a public IP to your Farm +### Add a Public IP to Your Farm If you have public IPv4 addresses available that can be used for usage on the TFGrid, you can add them in your farm. Click `ADD IP`, specify the addresses, the gateway and click `CREATE`. @@ -69,7 +69,7 @@ Deleting IPv4 addresses is also possible here. The `Deployed Contract ID` gives ![ ](../img/dashboard_farms_ip_details.png) -### Add a Stellar address for payout +### Add a Stellar Address for Payout In a first phase, farming of tokens still results in payout on the Stellar network. So to get the farming reward, a Stellar address needs to be provided. @@ -79,7 +79,7 @@ In a first phase, farming of tokens still results in payout on the Stellar netwo You can read about different ways to store TFT [here](threefold_token@@storing_tft). Make sure to use a Stellar wallet for your farming rewards. -### Generate your node bootstrap image +### Generate Your Node Bootstrap Image Once you know your farmID, you can set up your node on TFGrid3. Click on `Bootstrap Node Image`. @@ -87,7 +87,7 @@ Once you know your farmID, you can set up your node on TFGrid3. Click on `Bootst Read more Zero-OS bootstrap image [here](farmers@@2_bootstrap_image). -### Additional information +### Additional Information After booting a node, the info will become available in `Your Nodes` table, including the status info along with the minting and fixup receipts. @@ -103,7 +103,7 @@ You can also download a single node's receipts using the `Download Receipts` but as in farms table _Nodes_ table contains all your own nodes and its your entry point to manage your farm as in the following sections. -### Node information +### Node Information Expand your node information by clicking on the expand button in the target node row. diff --git a/collections/dashboard/img/applications_landing.png b/collections/dashboard/img/applications_landing.png index e4117a5..17d3c04 100644 Binary files a/collections/dashboard/img/applications_landing.png and b/collections/dashboard/img/applications_landing.png differ diff --git a/collections/dashboard/img/node_finder_grafana.png b/collections/dashboard/img/node_finder_grafana.png new file mode 100644 index 0000000..550fa34 Binary files /dev/null and b/collections/dashboard/img/node_finder_grafana.png differ diff --git a/collections/dashboard/solutions/add_domain.md b/collections/dashboard/solutions/add_domain.md index 6883c97..3a005b2 100644 --- a/collections/dashboard/solutions/add_domain.md +++ b/collections/dashboard/solutions/add_domain.md @@ -13,7 +13,7 @@ ## Introduction -We cover the overall process to add a domain to a virtual machine running on the ThreeFold Grid. +We cover the overall process to add a domain to a virtual machine running on the ThreeFold Grid. This process works for both micro and full virtual machines. ## Preparation diff --git a/collections/dashboard/solutions/caprover.md b/collections/dashboard/solutions/caprover.md index aad0900..00a06ca 100644 --- a/collections/dashboard/solutions/caprover.md +++ b/collections/dashboard/solutions/caprover.md @@ -5,7 +5,7 @@ - [Introduction](#introduction) - [Requirements](#requirements) - [Configs Tab](#configs-tab) -- [Admin and Workers Tabs](#admin-and-workers-tabs) +- [Leader and Workers Tabs](#leader-and-workers-tabs) - [The Domain Name](#the-domain-name) - [Domain Name Example](#domain-name-example) - [How to Know the IP Address](#how-to-know-the-ip-address) @@ -31,10 +31,10 @@ Caprover is a very cool management app for containers based on Docker Swarm. It has following benefits : -- easy to deploy apps (in seconds) -- easy to create new apps -- super good monitoring -- can be extended over the TFGrid +- Easy to deploy apps (in seconds) +- Easy to create new apps +- Super good monitoring +- Can be extended over the TFGrid ## Requirements @@ -46,23 +46,51 @@ It has following benefits : ![ ](./img/solutions_caprover.png) -- Enter domain for you Caprover instance, Be very careful about the domain name: it needs to be a wildcard domain name you can configure in your chosen domain name system. +- Enter domain for you Caprover instance. + - Be very careful about the domain name: it needs to be a wildcard domain name you can configure in your chosen domain name system. - Enter password for you Caprover instance. If you have more than one SSH keys set, you can click on `Manage SSH keys` to select which one to use for this deployment. -## Admin and Workers Tabs +## Leader and Workers Tabs + +Each deployment will have one leader and there can be many workers. By default, CapRover is deployed on nodes with IPv4. ![ ](./img/solutions_caprover_leader.png) ![ ](./img/solutions_caprover_workers.png) + +Use the Leader and Workers tabs to add nodes to your deployment. + +- Enter a name for the deployment or keep the default name +- Select a capacity package: + - **Small**: {cpu: 1, memory: 2, diskSize: 25 } + - **Medium**: {cpu: 2, memory: 4, diskSize: 50 } + - **Large**: {cpu: 4, memory: 16, diskSize: 100 } + - Or choose a **Custom** plan +- Choose the network + - `Mycelium` flag gives the virtual machine a Mycelium address +- `Dedicated` flag to retrieve only dedicated nodes +- `Certified` flag to retrieve only certified nodes +- Choose the node + - Automated + - Choose the location of the node + - `Region` + - `Country` + - `Farm Name` + - Click on `Load Nodes` + - Click on the node you want to deploy on + - Manual selection + - Select a specific node ID +- Click `Deploy` + Note: Worker nodes only accept SSH keys of RSA format. Deployment will take couple of minutes. ## The Domain Name -As per the [CapRover documentation](https://caprover.com/docs/get-started.html), you need to point a wildcard DNS entry to the VM IP address of your CapRover instance. You have to do this after having deployed the CapRover instance, otherwise you won't have access to the VM IP address. +As per the [CapRover documentation](https://caprover.com/docs/get-started.html), you need to point a wildcard DNS entry to the VM IP address of your CapRover Leader instance. You have to do this after having deployed the CapRover instance, otherwise you won't have access to the VM IP address. Let’s say your domain is **example.com** and your subdomain is **subdomain**. You can set **\*.subdomain.example.com** as an A record in your DNS settings to point to the VM IP address of the server hosting the CapRover instance, where **\*** acts as the wildcard. To do this, go to the DNS settings of your domain name registrar, and set a wild card A record entry. @@ -97,54 +125,14 @@ Go back to your CapRover weblet and go to the deployment list. Click on `Show De ![ ](./img/solution_caprover_list.png) - The public IPv4 address is visible in here + +![](./img/solutions_caprover_ipaddress.png) + - Now you can configure the domain name (see above, don't forget to point the wildcard domain to the public IP address) -Click on details if you want to see more details +Go to the `JSON` tab to see the Json ouput: -```json - -{ - "version": 0, - "name": "caprover_leader_cr_156e44f0", - "created": 1637843368, - "status": "ok", - "message": "", - "flist": "https://hub.grid.tf/samehabouelsaad.3bot/tf-caprover-main-a4f186da8d.flist", - "publicIP": { - "ip": "185.206.122.136/24", - "gateway": "185.206.122.1" - }, - "planetary": false, - "yggIP": "", - "interfaces": [ - { - "network": "caprover_network_cr_156e44f0", - "ip": "10.200.4.2" - } - ], - "capacity": { - "cpu": 4, - "memory": 8192 - }, - "mounts": [ - { - "name": "data0", - "mountPoint": "/var/lib/docker", - "size": 107374182400, - "state": "ok", - "message": "" - } - ], - "env": { - "SWM_NODE_MODE": "leader", - "CAPROVER_ROOT_DOMAIN": "apps.openly.life", - "PUBLIC_KEY": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/9RNGKRjHvViunSOXhBF7EumrWvmqAAVJSrfGdLaVasgaYK6tkTRDzpZNplh3Tk1aowneXnZffygzIIZ82FWQYBo04IBWwFDOsCawjVbuAfcd9ZslYEYB3QnxV6ogQ4rvXnJ7IHgm3E3SZvt2l45WIyFn6ZKuFifK1aXhZkxHIPf31q68R2idJ764EsfqXfaf3q8H3u4G0NjfWmdPm9nwf/RJDZO+KYFLQ9wXeqRn6u/mRx+u7UD+Uo0xgjRQk1m8V+KuLAmqAosFdlAq0pBO8lEBpSebYdvRWxpM0QSdNrYQcMLVRX7IehizyTt+5sYYbp6f11WWcxLx0QDsUZ/J" - }, - "entrypoint": "/sbin/zinit init", - "metadata": "", - "description": "caprover leader machine/node" -} -``` +![](./img/solutions_caprover_json.png) ## How to Access the Admin Interface diff --git a/collections/dashboard/solutions/casper.md b/collections/dashboard/solutions/casper.md index 5131ee9..b2eb58e 100644 --- a/collections/dashboard/solutions/casper.md +++ b/collections/dashboard/solutions/casper.md @@ -30,8 +30,8 @@ __Process__ : - Or choose a **Custom** plan - Choose the network - `Public IPv4` flag gives the virtual machine a Public IPv4 - -- `Dedicated` flag to retrieve only dedeicated nodes + - `Mycelium` flag gives the virtual machine a Mycelium address +- `Dedicated` flag to retrieve only dedicated nodes - `Certified` flag to retrieve only certified nodes - Choose the location of the node - `Region` @@ -46,8 +46,8 @@ If you have more than one SSH keys set, you can click on `Manage SSH keys` to se After that is done you can see a list of all of your deployed instances -![ ](./img/casper4.png) +![](./img/casper4.png) Click on ***Visit*** to go to the homepage of your Casperlabs instance! The node takes a long time in order for the RPC service to be ready so be patient! -![ ](./img/casper5.png) \ No newline at end of file +![](./img/casper5.png) \ No newline at end of file diff --git a/collections/dashboard/solutions/discourse.md b/collections/dashboard/solutions/discourse.md index 3ffa093..8257717 100644 --- a/collections/dashboard/solutions/discourse.md +++ b/collections/dashboard/solutions/discourse.md @@ -27,8 +27,10 @@ - **Medium**: {cpu: 2, memory: 4, diskSize: 50 } - **Large**: {cpu: 4, memory: 16, diskSize: 100 } - Or choose a **Custom** plan - -- `Dedicated` flag to retrieve only dedeicated nodes +- Choose the network + - `Public IPv4` flag gives the virtual machine a Public IPv4 + - `Mycelium` flag gives the virtual machine a Mycelium address +- `Dedicated` flag to retrieve only dedicated nodes - `Certified` flag to retrieve only certified nodes - Choose the location of the node - `Region` diff --git a/collections/dashboard/solutions/domains.md b/collections/dashboard/solutions/domains.md new file mode 100644 index 0000000..181268f --- /dev/null +++ b/collections/dashboard/solutions/domains.md @@ -0,0 +1,36 @@ +

Domains

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Prerequisites](#prerequisites) +- [Deployment](#deployment) + +--- + +## Introduction + +The Domains solution allows users to securely expose servers hosted on local machines or VMs to the public internet. Users are required to specify the machine's IP, which can be a Mycelium IP, an Yggdrasil IP, or a public IP (IPv4 or IPv6). + +## Prerequisites + +- Make sure you have a [wallet](wallet_connector.md) +- From the sidebar click on **Applications** +- Click on **Domains** + +## Deployment + +![ ](./img/domains.png) + +- Enter a subdomain to be added to your domain +- The `Custom Domain` flag allows the user to use a custom domain +- Choose a gateway node to deploy your static website +- Enter the port used to access the machine +- Enter the machine's IP + - It can be a Mycelium IP, an Yggdrasil IP, or a public IP (IPv4 or IPv6) + +Once this is done, you can see a list of all of your deployed instances: + +![ ](./img/domains_list.png) + +Click on the button **Visit** under **Actions** to go to your exposed website! diff --git a/collections/dashboard/solutions/fullvm.md b/collections/dashboard/solutions/fullvm.md index 8f4dfe9..b3b352f 100644 --- a/collections/dashboard/solutions/fullvm.md +++ b/collections/dashboard/solutions/fullvm.md @@ -40,7 +40,7 @@ Deploy a new full virtual machine on the Threefold Grid - `Public IPv4` flag gives the virtual machine a Public IPv4 - `Public IPv6` flag gives the virtual machine a Public IPv6 - `Planetary Network` to connect the Virtual Machine to Planetary network - - `Myceluim` to enable mycelium on the virtual machine + - `Mycelium` to enable Mycelium on the virtual machine - `Wireguard Access` to add a wireguard access to the Virtual Machine - `GPU` flag to add GPU to the Virtual machine - To deploy a Full VM with GPU, you first need to [rent a dedicated node](node_finder.md#dedicated-nodes) diff --git a/collections/dashboard/solutions/funkwhale.md b/collections/dashboard/solutions/funkwhale.md index b91da59..0756b44 100644 --- a/collections/dashboard/solutions/funkwhale.md +++ b/collections/dashboard/solutions/funkwhale.md @@ -37,8 +37,8 @@ __Process__ : - Or choose a **Custom** plan - Choose the network - `Public IPv4` flag gives the virtual machine a Public IPv4 - -- `Dedicated` flag to retrieve only dedeicated nodes + - `Mycelium` flag gives the virtual machine a Mycelium address +- `Dedicated` flag to retrieve only dedicated nodes - `Certified` flag to retrieve only certified nodes - Choose the location of the node - `Region` diff --git a/collections/dashboard/solutions/gitea.md b/collections/dashboard/solutions/gitea.md new file mode 100644 index 0000000..3e5a166 --- /dev/null +++ b/collections/dashboard/solutions/gitea.md @@ -0,0 +1,81 @@ +

Gitea

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Prerequisites](#prerequisites) +- [Deployment](#deployment) +- [Setting Up Gitea](#setting-up-gitea) + +*** + +## Introduction + +[Gitea](https://about.gitea.com/) is a forge software package for hosting software development version control using Git as well as other collaborative features like bug tracking, code review, continuous integration, kanban boards, tickets, and wikis. + +## Prerequisites + +- Make sure you have a [wallet](wallet_connector.md) +- From the sidebar click on **Applications** +- Click on **Gitea** + +## Deployment + +![](./img/gitea_config.png) + +![](./img/gitea_mail_server.png) + +- Enter a name for your deployment or keep the default name +- Select a capacity package: + - **Small**: {cpu: 1, memory: 2, diskSize: 25 } + - **Medium**: {cpu: 2, memory: 4, diskSize: 50 } + - **Large**: {cpu: 4, memory: 16, diskSize: 100 } + - Or choose a **Custom** plan +- Choose the network + - `Public IPv4` flag gives the virtual machine a Public IPv4 + - `Public IPv6` flag gives the virtual machine a Public IPv6 + - `Planetary Network` flag gives the virtual machine an Yggdrasil address + - `Mycelium` flag gives the virtual machine a Mycelium address + +- `Dedicated` flag to retrieve only dedicated nodes +- `Certified` flag to retrieve only certified nodes +- Choose the node + - Automated + - Choose the location of the node + - `Region` + - `Country` + - `Farm Name` + - Click on `Load Nodes` + - Click on the node you want to deploy on + - Manual selection + - Select a specific node ID +- Choose a domain + - Use a custom domain by enabling `Custom Domain` + - Choose a gateway domain for your instance +- Set the `Mail Server` + - In the tab `Mail Server` you can adjust the parameters or leave the default parameters + - The `Admin Email` by default is the email you used when logging into the Dashboard + - The `Admin Password` is generated automatically but you can modify it + - By default the SMTP server used for the `Hostname` is `smtp.gmail.com` with its associated port `587` + - Enable TLS by clicking on the `TLS` button +- Click `Deploy` + +After deployment, you can see a list of all your deployed instances. + +To access the Gitea instance, click on the `Actions` button called `Visit`. + +![](./img/gitea_instances.png) + +## Setting Up Gitea + +Once you've accessed the Gitea instance, you can adjust the `Initial Configuration` if needed. + +![](./img/gitea_initial_configuration.png) + +Once you're ready, click on `Install Gitea`. + +![](./img/gitea_install.png) + +Once the configuration is completed, you can register to the Gitea instance and start using it. + +![](./img/gitea_register.png) \ No newline at end of file diff --git a/collections/dashboard/solutions/img/domains.png b/collections/dashboard/solutions/img/domains.png new file mode 100644 index 0000000..8c98c88 Binary files /dev/null and b/collections/dashboard/solutions/img/domains.png differ diff --git a/collections/dashboard/solutions/img/domains_list.png b/collections/dashboard/solutions/img/domains_list.png new file mode 100644 index 0000000..b07609a Binary files /dev/null and b/collections/dashboard/solutions/img/domains_list.png differ diff --git a/collections/dashboard/solutions/img/gitea_config.png b/collections/dashboard/solutions/img/gitea_config.png new file mode 100644 index 0000000..ccf263d Binary files /dev/null and b/collections/dashboard/solutions/img/gitea_config.png differ diff --git a/collections/dashboard/solutions/img/gitea_initial_configuration.png b/collections/dashboard/solutions/img/gitea_initial_configuration.png new file mode 100644 index 0000000..9849fa2 Binary files /dev/null and b/collections/dashboard/solutions/img/gitea_initial_configuration.png differ diff --git a/collections/dashboard/solutions/img/gitea_install.png b/collections/dashboard/solutions/img/gitea_install.png new file mode 100644 index 0000000..d129e25 Binary files /dev/null and b/collections/dashboard/solutions/img/gitea_install.png differ diff --git a/collections/dashboard/solutions/img/gitea_instances.png b/collections/dashboard/solutions/img/gitea_instances.png new file mode 100644 index 0000000..1b91d6a Binary files /dev/null and b/collections/dashboard/solutions/img/gitea_instances.png differ diff --git a/collections/dashboard/solutions/img/gitea_mail_server.png b/collections/dashboard/solutions/img/gitea_mail_server.png new file mode 100644 index 0000000..53485c9 Binary files /dev/null and b/collections/dashboard/solutions/img/gitea_mail_server.png differ diff --git a/collections/dashboard/solutions/img/gitea_register.png b/collections/dashboard/solutions/img/gitea_register.png new file mode 100644 index 0000000..1f314b9 Binary files /dev/null and b/collections/dashboard/solutions/img/gitea_register.png differ diff --git a/collections/dashboard/solutions/img/jenkins2.png b/collections/dashboard/solutions/img/jenkins2.png new file mode 100644 index 0000000..ed85057 Binary files /dev/null and b/collections/dashboard/solutions/img/jenkins2.png differ diff --git a/collections/dashboard/solutions/img/jenkins3.png b/collections/dashboard/solutions/img/jenkins3.png new file mode 100644 index 0000000..7492fe9 Binary files /dev/null and b/collections/dashboard/solutions/img/jenkins3.png differ diff --git a/collections/dashboard/solutions/img/nostr_config.png b/collections/dashboard/solutions/img/nostr_config.png new file mode 100644 index 0000000..eab231d Binary files /dev/null and b/collections/dashboard/solutions/img/nostr_config.png differ diff --git a/collections/dashboard/solutions/img/nostr_instances.png b/collections/dashboard/solutions/img/nostr_instances.png new file mode 100644 index 0000000..e6227ed Binary files /dev/null and b/collections/dashboard/solutions/img/nostr_instances.png differ diff --git a/collections/dashboard/solutions/img/solutions_jenkins1.png b/collections/dashboard/solutions/img/solutions_jenkins1.png new file mode 100644 index 0000000..4ca7cf8 Binary files /dev/null and b/collections/dashboard/solutions/img/solutions_jenkins1.png differ diff --git a/collections/dashboard/solutions/img/solutions_jitsi.png b/collections/dashboard/solutions/img/solutions_jitsi.png new file mode 100644 index 0000000..e76e12a Binary files /dev/null and b/collections/dashboard/solutions/img/solutions_jitsi.png differ diff --git a/collections/dashboard/solutions/img/solutions_jitsi_homepage.png b/collections/dashboard/solutions/img/solutions_jitsi_homepage.png new file mode 100644 index 0000000..4166780 Binary files /dev/null and b/collections/dashboard/solutions/img/solutions_jitsi_homepage.png differ diff --git a/collections/dashboard/solutions/img/solutions_jitsi_instances.png b/collections/dashboard/solutions/img/solutions_jitsi_instances.png new file mode 100644 index 0000000..c98a840 Binary files /dev/null and b/collections/dashboard/solutions/img/solutions_jitsi_instances.png differ diff --git a/collections/dashboard/solutions/img/solutions_tfrobot.png b/collections/dashboard/solutions/img/solutions_tfrobot.png new file mode 100644 index 0000000..ab0110b Binary files /dev/null and b/collections/dashboard/solutions/img/solutions_tfrobot.png differ diff --git a/collections/dashboard/solutions/img/tfrobot1.png b/collections/dashboard/solutions/img/tfrobot1.png new file mode 100644 index 0000000..f3c800f Binary files /dev/null and b/collections/dashboard/solutions/img/tfrobot1.png differ diff --git a/collections/dashboard/solutions/jenkins.md b/collections/dashboard/solutions/jenkins.md new file mode 100644 index 0000000..bc76954 --- /dev/null +++ b/collections/dashboard/solutions/jenkins.md @@ -0,0 +1,65 @@ +

Jenkins

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Prerequisites](#prerequisites) +- [Deployment](#deployment) +- [Troubleshooting](#troubleshooting) + +*** + +## Introduction + +[Jenkins](https://www.jenkins.io/) is a popular open-source automation server that enables developers to build, test, and deploy their applications continuously. + +## Prerequisites + +- Make sure you have a [wallet](wallet_connector.md) +- From the sidebar click on **Applications** +- Click on **Jenkins** + +## Deployment + +__Process__ : + +![ ](./img/solutions_jenkins1.png) + +- Enter an Application Name. It's used in generating a unique subdomain on one of the gateways on the network alongside your twin ID. Ex. ***fw100myfunk*.gent02.dev.grid.tf** + +- Enter administrator information including **Username**, and **Password**. This admin user will have full permission on the deployed instance. + +- Select a capacity package: + - **Small**: {cpu: 1, memory: 2, diskSize: 50 } + - **Medium**: {cpu: 2, memory: 4, diskSize: 100 } + - **Large**: {cpu: 4, memory: 16, diskSize: 250 } + - Or choose a **Custom** plan +- Choose the network + - `Public IPv4` flag gives the virtual machine a Public IPv4 + - `Public IPv6` flag gives the virtual machine a Public IPv6 + - `Planetary Network` to connect the Virtual Machine to Planetary network + - `Mycelium` flag gives the virtual machine a Mycelium address +- `Dedicated` flag to retrieve only dedicated nodes +- `Certified` flag to retrieve only certified nodes +- Choose the location of the node + - `Region` + - `Country` + - `Farm Name` + +- Choose the node to deploy on +> Or you can select a specific node with manual selection. +- `Custom Domain` flag lets the user to use a custom domain +- Choose a gateway node to deploy your Jenkins instance on. + + +After that is done you can see a list of all of your deployed instances + +![ ](./img/jenkins2.png) + +Click on ***Visit*** to go to the homepage of your Jenkins instance! + +![ ](./img/jenkins3.png) + +## Troubleshooting + +If you get a `Bad Gateway` while connecting to the website, you might simply need to wait for the deployment to complete. \ No newline at end of file diff --git a/collections/dashboard/solutions/jitsi.md b/collections/dashboard/solutions/jitsi.md new file mode 100644 index 0000000..46b9e9b --- /dev/null +++ b/collections/dashboard/solutions/jitsi.md @@ -0,0 +1,63 @@ +

Jitsi

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Prerequisites](#prerequisites) +- [Deployment](#deployment) +- [Troubleshooting](#troubleshooting) + +--- + +## Introduction + +Jitsi Meet is a set of Open Source projects which empower users to use and deploy video conferencing platforms with state-of-the-art video quality and features. For more details, check [Jitsi documentation](https://jitsi.github.io/handbook/docs/intro/). + +## Prerequisites + +- Make sure you have a [wallet](wallet_connector.md) +- From the sidebar click on **Applications** +- Click on **Jitsi** + +## Deployment + +**Process** : + +![ ](./img/solutions_jitsi.png) + +- Enter an Application Name. It's used in generating a unique subdomain on one of the gateways on the network alongside your twin ID. Ex. **_fw100myfunk_.gent02.dev.grid.tf** + +- Select a capacity package: + - **Small**: {cpu: 1, memory: 2, diskSize: 50 } + - **Medium**: {cpu: 2, memory: 4, diskSize: 100 } + - **Large**: {cpu: 4, memory: 16, diskSize: 250 } + - Or choose a **Custom** plan +- Choose the network + - `Public IPv4` flag gives the virtual machine a Public IPv4 + - `Public IPv6` flag gives the virtual machine a Public IPv6 + - `Planetary Network` flag gives the virtual machine an Yggdrasil address + - `Mycelium` flag gives the virtual machine a Mycelium address +- `Dedicated` flag to retrieve only dedicated nodes +- `Certified` flag to retrieve only certified nodes +- Choose the location of the node + + - `Region` + - `Country` + - `Farm Name` + +- Choose the node to deploy on + > Or you can select a specific node with manual selection. +- `Custom Domain` flag lets the user to use a custom domain +- Choose a gateway node to deploy your Jitsi instance on. + +After that is done you can see a list of all of your deployed instances + +![ ](./img/solutions_jitsi_instances.png) + +Click on **_Visit_** to go to the homepage of your Jitsi instance! + +![ ](./img/solutions_jitsi_homepage.png) + +## Troubleshooting + +If you get a `Bad Gateway` while connecting to the website, you might simply need to wait for the deployment to complete. diff --git a/collections/dashboard/solutions/k8s.md b/collections/dashboard/solutions/k8s.md index 44a96c3..e892117 100644 --- a/collections/dashboard/solutions/k8s.md +++ b/collections/dashboard/solutions/k8s.md @@ -41,7 +41,7 @@ On the TF grid, Kubernetes clusters can be deployed out of the box. We have impl ## Kubeconfig Once the cluster is ready, you can SSH into the cluster using `ssh root@IP` -> IP can be the public IP or the planetary network IP +> IP can be the public IP, Mycelium or the Planetary Network IP Onced connected via SSH, you can execute commands on the cluster like `kubectl get nodes`, and to get the kubeconfig, you can find it in `/root/.kube/config` diff --git a/collections/dashboard/solutions/mattermost.md b/collections/dashboard/solutions/mattermost.md index cbd7f99..d738f2f 100644 --- a/collections/dashboard/solutions/mattermost.md +++ b/collections/dashboard/solutions/mattermost.md @@ -29,7 +29,10 @@ - **Medium**: {cpu: 2, memory: 4, diskSize: 50 } - **Large**: {cpu: 4, memory: 16, diskSize: 100 } - Or choose a **Custom** plan -- `Dedicated` flag to retrieve only dedeicated nodes +- Choose the network + - `Public IPv4` flag gives the virtual machine a Public IPv4 + - `Mycelium` flag gives the virtual machine a Mycelium address +- `Dedicated` flag to retrieve only dedicated nodes - `Certified` flag to retrieve only certified nodes - Choose the location of the node - `Region` diff --git a/collections/dashboard/solutions/nextcloud.md b/collections/dashboard/solutions/nextcloud.md index d09b077..da22681 100644 --- a/collections/dashboard/solutions/nextcloud.md +++ b/collections/dashboard/solutions/nextcloud.md @@ -16,13 +16,16 @@ - [TURN](#turn) - [Use Talk](#use-talk) - [Backups and Updates](#backups-and-updates) - - [Create a Backup](#create-a-backup) - - [Automatic Backups and Updates](#automatic-backups-and-updates) + - [BorgBackup](#borgbackup) + - [Create a BorgBackup](#create-a-borgbackup) + - [Automatic Borg Backups and Updates](#automatic-borg-backups-and-updates) + - [Secondary VM Backup](#secondary-vm-backup) + - [SSH Connection](#ssh-connection) + - [Secondary VM Backup Script](#secondary-vm-backup-script) - [Troubleshooting](#troubleshooting) - [Retrieve the Nextcloud AIO Password](#retrieve-the-nextcloud-aio-password) - [Access the Nextcloud Interface Page](#access-the-nextcloud-interface-page) - [Check the DNS Propagation](#check-the-dns-propagation) -- [Questions and Feedback](#questions-and-feedback) *** @@ -62,12 +65,15 @@ If you're not sure and just want the easiest, most affordable option, skip the p * **Standard**: {cpu: 2, memory: 8gb, diskSize: 500gb } * **Recommended**: {cpu: 4, memory: 16gb, diskSize: 1000gb } * Or choose a **Custom** plan -* If want to reserve a public IPv4 address, click on Network then select **Public IPv4** -* If you want a [dedicated node](node_finder.md#dedicated-nodes) and/or a certified node, select the corresponding option -* Choose the location of the node - * `Country` - * `Farm Name` -* Select a node +- Choose the network + - `Public IPv4` flag gives the virtual machine a Public IPv4 + - `Mycelium` flag gives the virtual machine a Mycelium address +- `Dedicated` flag to retrieve only dedicated nodes +- `Certified` flag to retrieve only certified nodes +- Choose the location of the node + - `Region` + - `Country` + - `Farm Name` * If you want to use a custom domain, click on **Custom domain** under **Domain Name** and write your domain name * Example: `nextcloudwebsite.com` * The **Select gateway** box will be visible whenever a gateway is required. If so, click it and choose a gateway @@ -156,7 +162,11 @@ Note that the host of the video meeting might need to turn the VPN off before cr # Backups and Updates -## Create a Backup +In this section, we cover how to make a BorgBackup on the Nextcloud VM and we also cover how to make a backup of the Nextcloud BorgBackup to a secondary VM for additional redundancy. + +## BorgBackup + +### Create a BorgBackup In the section **Backup and restore**, you can set a [BorgBackup](https://www.borgbackup.org/) of your Nextcloud instance. @@ -166,7 +176,7 @@ In the section **Backup and restore**, you can set a [BorgBackup](https://www.bo * This will stop all containers, run the backup container and create the backup. * Once the backup is complete, you can click on **Start containers** to restart the Nextcloud instance. -## Automatic Backups and Updates +### Automatic Borg Backups and Updates After the first manual backup of your Nextcloud instance is complete, you can set automatic backups and updates. @@ -174,7 +184,88 @@ After the first manual backup of your Nextcloud instance is complete, you can se * In the section **Daily backup and automatic updates**, choose a time for your daily backup and click **Submit backup time**. * To set automatic updates, make sure that the option **Automatically update all containers, the mastercontainer and on** is selected. +## Secondary VM Backup +To allow for another layer of redundancy, you can set a secondary VM on the grid and make a daily backup from the BorgBackup of your Nextcloud instance to the secondary VM. The following shows how to do this. It is based on the [File Transfer section](system_administrators@@file_transfer) of the manual. + +For the following, we take into account that the BorgBackup is located at `/mnt/backup` on the VM running Nextcloud. + +You will need to deploy a full VM on the TFGrid and SSH into this secondary VM. + +### SSH Connection + +We want to set an SSH connection between the Nextcloud VM and the secondary VM. + +* Create SSH key pair on the secondary VM +``` +ssh-keygen +``` +* Install openssh-client on the secondary VM +``` +apt install openssh-client +``` +* Install openssh-server on the Nextcloud VM +``` +apt install openssh-server +``` +* Copy the public key of the secondary VM +``` +cat ~/.ssh/id_rsa.pub +``` +* Create the SSH directory on the Nextcloud VM +``` +mkdir ~/.ssh +``` +* Add the secondary VM public key in the file **authorized_keys** on the Nextcloud VM +``` +nano ~/.ssh/authorized_keys +``` +* Check the openssh-server status +``` +service ssh status +``` +* As a test, you can check if you can SSH into the Nextcloud VM from the secondary VM +``` +ssh root@ +``` + +Once the SSH connection is set up, we need to prepare a backup script. This is covered in the next subsection. + +### Secondary VM Backup Script + +We now cover how to set up a backup script on the secondary VM. + +On the secondary VM, do the following: + +* Set a directory for your Nextcloud backup +``` +mkdir -p /root/nextcloud_backup +``` +* Create the script file +``` +nano /root/rsync_nextcloud_backup.sh +``` +* Write the following script. Here the log is saved in the same directory. +``` +#!/bin/bash + +sudo rsync -avz --progress --delete --log-file=/root/nextcloud_backup/rsync_nextcloud_storage.log /root/nextcloud_backup/ root@:/mnt/backup +``` +* Give permission to execute the script +``` +sudo chmod +x /root/rsync_nextcloud_backup.sh +``` +* Set a cron job to run the script periodically +* Open the cron file +``` +sudo crontab -e +``` +* At the bottom of the cron file, add the following to run the script everyday. For this example, we set the time at 18:00PM +``` +0 18 * * * /root/rsync_nextcloud_backup.sh +``` + +Once this is set up, this secondary VM will make a daily backup of the Nextcloud BorgBackup. It is a good idea to set this secondary backup to run the script a few hours after the daily BorgBackup. # Troubleshooting @@ -200,8 +291,3 @@ To access the Nextcloud interface page, follow those stepse You can check if the DNS records are propagated globally with DNS propagation check services such as [DNS Checker](https://dnschecker.org/). You can use this tool to verify that your domain is properly pointing to the IPv4 address of the VM you deployed on. - - -# Questions and Feedback - -If you have any questions, you can ask the ThreeFold community for help on the [ThreeFold Forum](http://forum.threefold.io/) or on the [ThreeFold Grid Tester Community](https://t.me/threefoldtesting) on Telegram. \ No newline at end of file diff --git a/collections/dashboard/solutions/nodepilot.md b/collections/dashboard/solutions/nodepilot.md index aa8da14..f5580e8 100644 --- a/collections/dashboard/solutions/nodepilot.md +++ b/collections/dashboard/solutions/nodepilot.md @@ -24,9 +24,12 @@ This is a simple instance of upstream [Node Pilot](https://nodepilot.tech). - Fill in the instance name: it's used to reference the node-pilot in the future. -- Minimum CPU allowed is 8 cores and minimum memory allowed is 8192. +- Minimum specs: + - 1 vcore + - 256 MB of memory + - 15 GB of storage -- `Dedicated` flag to retrieve only dedeicated nodes +- `Dedicated` flag to retrieve only dedicated nodes - `Certified` flag to retrieve only certified nodes - Choose the location of the node @@ -37,7 +40,7 @@ This is a simple instance of upstream [Node Pilot](https://nodepilot.tech). > Or you can select a specific node with manual selection. -- When using the [flist](https://hub.grid.tf/tf-official-vms/node-pilot-zdbfs.flist) you get a node pilot instance ready out-of-box. You need to get a public ipv4 to get it to works. +- When using the [flist](https://hub.grid.tf/tf-official-vms/node-pilot-zdbfs.flist) you get a node pilot instance ready out-of-box. You need to get a public IPv4 to get it to works. After that is done you can see a list of all of your deployed instances diff --git a/collections/dashboard/solutions/nostr.md b/collections/dashboard/solutions/nostr.md new file mode 100644 index 0000000..2b61497 --- /dev/null +++ b/collections/dashboard/solutions/nostr.md @@ -0,0 +1,59 @@ +

Nostr

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Prerequisites](#prerequisites) +- [Deployment](#deployment) + +*** + +## Introduction + +[Nostr](https://nostr.com/) is a decentralized network protocol for a distributed social networking system. The name is an acronym for "Notes and Other Stuff Transmitted by Relays". It was designed with goals of censorship-resistance in mind. + +## Prerequisites + +- Make sure you have a [wallet](wallet_connector.md) +- From the sidebar click on **Applications** +- Click on **Nostr** + +## Deployment + +![](./img/nostr_config.png) + +- Enter a name for your deployment or keep the default name +- Select a capacity package: + - **Small**: {cpu: 1, memory: 2, diskSize: 25 } + - **Medium**: {cpu: 2, memory: 4, diskSize: 50 } + - **Large**: {cpu: 4, memory: 16, diskSize: 100 } + - Or choose a **Custom** plan +- Choose the network + - `Public IPv4` flag gives the virtual machine a Public IPv4 + - `Public IPv6` flag gives the virtual machine a Public IPv6 + - `Planetary Network` flag gives the virtual machine an Yggdrasil address + - `Mycelium` flag gives the virtual machine a Mycelium address + +- `Dedicated` flag to retrieve only dedicated nodes +- `Certified` flag to retrieve only certified nodes +- Choose the node + - Automated + - Choose the location of the node + - `Region` + - `Country` + - `Farm Name` + + - Click on `Load Nodes` + - Click on the node you want to deploy on + - Manual selection + - Select a specific node ID +- Choose a domain + - Use a custom domain by enabling `Custom Domain` + - Choose a gateway domain for your instance +- Click `Deploy` + +After deployment, you can see a list of all your deployed instances. + +To access the Nostr instance, click on the `Actions` button called `Visit`. + +![](./img/nostr_instances.png) \ No newline at end of file diff --git a/collections/dashboard/solutions/peertube.md b/collections/dashboard/solutions/peertube.md index f9fc947..4f2bf77 100644 --- a/collections/dashboard/solutions/peertube.md +++ b/collections/dashboard/solutions/peertube.md @@ -30,13 +30,10 @@ - **Medium**: { cpu: 2, memory: 4, diskSize: 100 } - **Large**: { cpu: 4, memory: 16, diskSize: 250 } - Or choose a **Custom** plan - - - `Public IPv4` flag gives the virtual machine a Public IPv4 - - `Public IPv6` flag gives the virtual machine a Public IPv6 - - `Planetary Network` to connect the Virtual Machine to Planetary network - - `Wiregaurd Access` to add a wiregaurd acces to the Virtual Machine -- `Dedicated` flag to retrieve only dedeicated nodes -- `Certified` flag to retrieve only certified nodes +- Choose the network + - `Mycelium` flag gives the virtual machine a Mycelium address + - `Dedicated` flag to retrieve only dedicated nodes + - `Certified` flag to retrieve only certified nodes - Choose the location of the node - `Region` - `Country` diff --git a/collections/dashboard/solutions/presearch.md b/collections/dashboard/solutions/presearch.md index a1f2d65..4895cf8 100644 --- a/collections/dashboard/solutions/presearch.md +++ b/collections/dashboard/solutions/presearch.md @@ -33,8 +33,9 @@ - Choose the network - `Public IPv4` flag gives the virtual machine a Public IPv4 - `Planetary Network` to connect the Virtual Machine to Planetary network + - `Mycelium` flag gives the virtual machine a Mycelium address -- `Dedicated` flag to retrieve only dedeicated nodes +- `Dedicated` flag to retrieve only dedicated nodes - `Certified` flag to retrieve only certified nodes - Choose the location of the node - `Region` diff --git a/collections/dashboard/solutions/static_website.md b/collections/dashboard/solutions/static_website.md index 4f57b07..4fb25d2 100644 --- a/collections/dashboard/solutions/static_website.md +++ b/collections/dashboard/solutions/static_website.md @@ -34,7 +34,9 @@ Static Website is an application where a user provides a GitHub repository URL f - **Medium**: {cpu: 2, memory: 4, diskSize: 100 } - **Large**: {cpu: 4, memory: 16, diskSize: 250 } - Or choose a **Custom** plan - +- Choose the network + - `Public IPv4` flag gives the virtual machine a Public IPv4 + - `Mycelium` flag gives the virtual machine a Mycelium address - `Dedicated` flag to retrieve only dedicated nodes - `Certified` flag to retrieve only certified nodes - Choose the location of the node diff --git a/collections/dashboard/solutions/subsquid.md b/collections/dashboard/solutions/subsquid.md index 5cd19f6..fd72ce5 100644 --- a/collections/dashboard/solutions/subsquid.md +++ b/collections/dashboard/solutions/subsquid.md @@ -32,8 +32,9 @@ - **Medium**: {cpu: 2, memory: 4, diskSize: 100 } - **Large**: {cpu: 4, memory: 16, diskSize: 250 } - Or choose a **Custom** plan - -- `Dedicated` flag to retrieve only dedeicated nodes +- Choose the network + - `Mycelium` flag gives the virtual machine a Mycelium address +- `Dedicated` flag to retrieve only dedicated nodes - `Certified` flag to retrieve only certified nodes - Choose the location of the node - `Region` diff --git a/collections/dashboard/solutions/taiga.md b/collections/dashboard/solutions/taiga.md index 949a469..bbd9a16 100644 --- a/collections/dashboard/solutions/taiga.md +++ b/collections/dashboard/solutions/taiga.md @@ -11,7 +11,7 @@ ## Introduction -[Taiga](https://www.taiga.io/) is the project management tool for multi-functional agile teams. It has a rich feature set and at the same time it is very simple to start with through its intuitive user interface. +[Taiga](https://taiga.io/) is the project management tool for multi-functional agile teams. It has a rich feature set and at the same time it is very simple to start with through its intuitive user interface. ## Prerequisites @@ -31,14 +31,16 @@ - **Medium**: {cpu: 4, memory: 8, diskSize: 150 } - **Large**: {cpu: 4, memory: 16, diskSize: 250 } - Or choose a **Custom** plan - -- `Dedicated` flag to retrieve only dedeicated nodes +- Choose the network + - `Public IPv4` flag gives the virtual machine a Public IPv4 + - `Mycelium` flag gives the virtual machine a Mycelium address +- `Dedicated` flag to retrieve only dedicated nodes - `Certified` flag to retrieve only certified nodes - Choose the location of the node - `Region` - `Country` - `Farm Name` -- Choose the node to deploy the Tiaga instance on +- Choose the node to deploy the Taiga instance on > Or you can select a specific node with manual selection. - `Custom Domain` flag lets the user to use a custom domain - Choose a gateway node to deploy your Funkwhale instance on. diff --git a/collections/dashboard/solutions/tfrobot.md b/collections/dashboard/solutions/tfrobot.md new file mode 100644 index 0000000..627cba2 --- /dev/null +++ b/collections/dashboard/solutions/tfrobot.md @@ -0,0 +1,61 @@ +

TFRobot

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Features](#features) +- [Prerequisites](#prerequisites) +- [Deployment](#deployment) +- [Deployed Instances Table](#deployed-instances-table) + +*** + +## Introduction + +[TFRobot](https://github.com/threefoldtech/tfgrid-sdk-go/blob/development/tfrobot/README.md) is tool designed to automate mass deployment of groups of VMs on the ThreeFold Grid, with support of multiple retries for failed deployments. + +## Features + +- **Mass Deployment:** Deploy groups of VMs on the grid simultaneously. +- **Mass Cancellation:** Cancel simultaneously all VMs on the grid defined in the configuration file. +- **Load Deployments:** Load simultaneously groups of VMs deployed with TFRobot. +- **Customizable Configurations:** Define node groups, VMs groups and other configurations through YAML or JSON files. + +## Prerequisites + +- Make sure you have a [wallet](wallet_connector.md) +- From the sidebar click on **Applications** +- Click on **TFRobot** + +## Deployment + +![ ](./img/solutions_tfrobot.png) + +- Enter an Application Name. + +- Select a capacity package: + - **Small**: {cpu: 1, memory: 2, diskSize: 25 } + - **Medium**: {cpu: 2, memory: 4, diskSize: 50 } + - **Large**: {cpu: 4, memory: 16, diskSize: 100 } + - Or choose a **Custom** plan +- Choose the network + - `Public IPv4` flag gives the virtual machine a Public IPv4 + - `Public IPv6` flag gives the virtual machine a Public IPv6 + - `Planetary Network` flag gives the virtual machine an Yggdrasil address + - `Mycelium` flag gives the virtual machine a Mycelium address + - `Wireguard Access` to add a WireGuard acces to the Virtual Machine +- `Dedicated` flag to retrieve only dedicated nodes +- `Certified` flag to retrieve only certified nodes +- Choose the location of the node + - `Region` + - `Country` + - `Farm Name` +- Click on `Load Nodes` +- Select the node you want to deploy on +- Click `Deploy` + +## Deployed Instances Table + +At all time, you can see a list of all of your deployed instances: + +![ ](./img/tfrobot1.png) \ No newline at end of file diff --git a/collections/dashboard/solutions/umbrel.md b/collections/dashboard/solutions/umbrel.md index 39edaed..8d44b5c 100644 --- a/collections/dashboard/solutions/umbrel.md +++ b/collections/dashboard/solutions/umbrel.md @@ -31,8 +31,12 @@ - **Medium**: { cpu: 2, memory: 4 , diskSize: 50 } - **Large**: { cpu: 4, memory: 16 , diskSize: 100 } - Or choose a **Custom** plan - -- `Dedicated` flag to retrieve only dedeicated nodes +- Choose the network + - `Public IPv4` flag gives the virtual machine a Public IPv4 + - `Planetary Network` to connect the Virtual Machine to Planetary network + - `Mycelium` to enable Mycelium on the virtual machine + - `Wireguard Access` to add a wireguard acces to the Virtual Machine +- `Dedicated` flag to retrieve only dedicated nodes - `Certified` flag to retrieve only certified nodes - Choose the location of the node - `Region` diff --git a/collections/dashboard/solutions/vm_intro.md b/collections/dashboard/solutions/vm_intro.md index b3544d3..23c4552 100644 --- a/collections/dashboard/solutions/vm_intro.md +++ b/collections/dashboard/solutions/vm_intro.md @@ -4,8 +4,8 @@ On the TFGrid, you can deploy both micro and full virtual machines.

Table of Contents

+- [Full Virtual Machine](fullVm.md) +- [Micro Virtual Machine](vm.md) +- [Nixos Micro VM](nixos_micro.md) - [Micro and Full VM Differences ](vm_differences.md) -- [Full Virtual Machine](fullvm.md) -- [Micro Virtual Machine](microvm.md) -- [Nixos MicroVM](nixos_micro.md) -- [Add a Domain](add_domain.md) \ No newline at end of file +- [Add a Domain to a VM](add_domain.md) \ No newline at end of file diff --git a/collections/dashboard/solutions/wordpress.md b/collections/dashboard/solutions/wordpress.md index b5d7a9e..7144942 100644 --- a/collections/dashboard/solutions/wordpress.md +++ b/collections/dashboard/solutions/wordpress.md @@ -88,8 +88,8 @@ In this section, we cover the steps to deploy a WordPress instance on the Playgr - Or choose a **Custom** plan - Choose the network - - **Public IPv4** flag gives the virtual machine a Public IPv4 - + - `Public IPv4` flag gives the virtual machine a Public IPv4 + - `Mycelium` to enable Mycelium on the virtual machine - **Dedicated** flag to retrieve only dedicated nodes - **Certified** flag to retrieve only certified nodes - Choose the location of the node diff --git a/collections/developers/developers.md b/collections/developers/developers.md index fbf3cce..07025a9 100644 --- a/collections/developers/developers.md +++ b/collections/developers/developers.md @@ -7,86 +7,11 @@ For complementary information on the technology developed by ThreeFold, refer to

Table of Contents

- [Javascript Client](grid3_javascript_readme.md) - - [Installation](grid3_javascript_installation.md) - - [Loading Client](grid3_javascript_loadclient.md) - - [Deploy a VM](grid3_javascript_vm.md) - - [Capacity Planning](grid3_javascript_capacity_planning.md) - - [Deploy Multiple VMs](grid3_javascript_vms.md) - - [Deploy CapRover](grid3_javascript_caprover.md) - - [Gateways](grid3_javascript_vm_gateways.md) - - [Deploy a Kubernetes Cluster](grid3_javascript_kubernetes.md) - - [Deploy a ZDB](grid3_javascript_zdb.md) - - [Deploy ZDBs for QSFS](grid3_javascript_qsfs_zdbs.md) - - [QSFS](grid3_javascript_qsfs.md) - - [Key Value Store](grid3_javascript_kvstore.md) - - [VM with Wireguard and Gateway](grid3_wireguard_gateway.md) - - [GPU Support](grid3_javascript_gpu_support.md) - [Go Client](grid3_go_readme.md) - - [Installation](grid3_go_installation.md) - - [Loading Client](grid3_go_load_client.md) - - [Deploy a VM](grid3_go_vm.md) - - [Deploy Multiple VMs](grid3_go_vms.md) - - [Deploy Gateways](grid3_go_gateways.md) - - [Deploy Kubernetes](grid3_go_kubernetes.md) - - [Deploy a QSFS](grid3_go_qsfs.md) - - [GPU Support](grid3_go_gpu.md) - [TFCMD](tfcmd.md) - - [Getting Started](tfcmd_basics.md) - - [Deploy a VM](tfcmd_vm.md) - - [Deploy Kubernetes](tfcmd_kubernetes.md) - - [Deploy ZDB](tfcmd_zdbs.md) - - [Gateway FQDN](tfcmd_gateway_fqdn.md) - - [Gateway Name](tfcmd_gateway_name.md) - - [Contracts](tfcmd_contracts.md) - [TFROBOT](tfrobot.md) - - [Installation](tfrobot_installation.md) - - [Configuration File](tfrobot_config.md) - - [Deployment](tfrobot_deploy.md) - - [Commands and Flags](tfrobot_commands_flags.md) - - [Supported Configurations](tfrobot_configurations.md) -- [ThreeFold Chain](tfchain.md) - - [Introduction](introduction.md) - - [Farming Policies](farming_policies.md) - - [External Service Contract](tfchain_external_service_contract.md) - - [Solution Provider](tfchain_solution_provider.md) +- [ThreeFold Chain](dev_tfchain.md) - [Grid Proxy](proxy_readme.md) - - [Introducing Grid Proxy](proxy.md) - - [Setup](setup.md) - - [DB Testing](db_testing.md) - - [Commands](commands.md) - - [Contributions](contributions.md) - - [Explorer](explorer.md) - - [Database](database.md) - - [Production](production.md) - - [Release](release.md) - [Flist](flist.md) - - [ThreeFold Hub Intro](zos_hub.md) - - [Generate an API Token](api_token.md) - - [Convert Docker Image Into Flist](convert_docker_image.md) - - [Supported Flists](grid3_supported_flists.md) - - [Flist Case Studies](flist_case_studies.md) - - [Case Study: Debian 12](flist_debian_case_study.md) - - [Case Study: Nextcloud AIO](flist_nextcloud_case_study.md) - [Internals](internals.md) - - [Reliable Message Bus (RMB)](rmb_toc.md) - - [Introduction to RMB](rmb_intro.md) - - [RMB Specs](rmb_specs.md) - - [RMB Peer](peer.md) - - [RMB Relay](relay.md) - - [ZOS](index.md) - - [Manual](manual.md) - - [Workload Types](workload_types.md) - - [Internal Modules](zos_internals.md) - - [Capacity](capacity.md) - - [Performance Monitor Package](performance.md) - - [Public IPs Validation Task](publicips.md) - - [CPUBenchmark](cpubench.md) - - [IPerf](iperf.md) - - [Health Check](healthcheck.md) - - [API](api.md) -- [Grid Deployment](grid_deployment.md) - - [TFGrid Stacks](tfgrid_stacks.md) - - [Full VM Grid Deployment](grid_deployment_full_vm.md) - - [Grid Snapshots](snapshots.md) - - [Deploy the Dashboard](deploy_dashboard.md) - - [Application Case Study: Nextcloud](app_case_study_nextcloud.md) \ No newline at end of file +- [Grid Deployment](grid_deployment.md) \ No newline at end of file diff --git a/collections/developers/grid_deployment/zos_boot_generator/img/zos_boot_generator_main.png b/collections/developers/grid_deployment/zos_boot_generator/img/zos_boot_generator_main.png new file mode 100644 index 0000000..f0df921 Binary files /dev/null and b/collections/developers/grid_deployment/zos_boot_generator/img/zos_boot_generator_main.png differ diff --git a/collections/developers/grid_deployment/zos_boot_generator/zos_boot_generator.md b/collections/developers/grid_deployment/zos_boot_generator/zos_boot_generator.md new file mode 100644 index 0000000..51390ed --- /dev/null +++ b/collections/developers/grid_deployment/zos_boot_generator/zos_boot_generator.md @@ -0,0 +1,200 @@ + +

Zero-OS Boot Generator

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Set the Environment](#set-the-environment) + - [With Docker Ubuntu 22.04](#with-docker-ubuntu-2204) + - [With Ubuntu 22.04 Micro VM on TFGrid](#with-ubuntu-2204-micro-vm-on-tfgrid) +- [Prepare the Machine](#prepare-the-machine) +- [Set a DNS A Record](#set-a-dns-a-record) +- [Set a Firewall](#set-a-firewall) +- [Set HTTPS with Caddy](#set-https-with-caddy) + - [Manually](#manually) + - [With Zinit](#with-zinit) +- [Run the Development Server](#run-the-development-server) +- [Visit the Boot Generator](#visit-the-boot-generator) + +--- + +## Introduction + +We cover how to deploy the development server of the Zero-OS Boot Generator Assistant. + +Visit the [0-bootstrap repo](https://github.com/threefoldtech/0-bootstrap) for more information. + +## Set the Environment + +There are many ways to set your environment. Here we show with Docker and a micro VM. + +Using Docker should only be used as a test before deploying on a micro VM with IPv4 and IPv6. + +### With Docker Ubuntu 22.04 + +- Deploy Ubuntu 22.04 (Jammy) with Docker + +``` +sudo docker pull ubuntu:jammy +sudo docker run -it ubuntu:jammy /bin/bash +``` + +### With Ubuntu 22.04 Micro VM on TFGrid + +- Deploy an Ubuntu 22.04 micro VM on the [Dashboard](https://dashboard.grid.tf/) + - Set IPv4 and IPv6 as `Network` +- SSH into the VM + - It is recommended to use VSCodium Explorer to facilitate the file management and editing + +## Prepare the Machine + +Set the machine to deploy the server + +- Set the machine in i386 +``` +dpkg --add-architecture i386 +``` +- Update the packages +``` +apt update +``` +- Install python3-flask +``` +echo "2" | apt install -y python3-flask +``` +- Install the prerequisites +``` +apt install -y mtools syslinux isolinux libc6-dev-i386 libc6-dbg:i386 git wget genisoimage liblzma-dev build-essential sqlite3 nano +``` + +## Set a DNS A Record + +Set a DNS A Record pointing to the server hosting the micro VM. + +* Go to your domain name registrar + * In the section **Advanced DNS**, add a **DNS A Record** to your domain and link it to the IP address of the VM you deployed on: + * Type: A Record + * Host: @ + * Value: + * TTL: Automatic + * It might take up to 30 minutes to set the DNS properly. + * To check if the A record has been registered, you can use a common DNS checker: + * ``` + https://dnschecker.org/#A/example.com + ``` + +## Set a Firewall + +We set a firewall. + +- Install ufw +``` +apt install -y ufw +``` +- Set the ports +``` +ufw allow 80 +ufw allow 443 +ufw allow 22 +``` +- Enable and see the status +``` +ufw enable +ufw status +``` + +## Set HTTPS with Caddy + +We set HTTPS with Caddy. First, we test manually, then we set a zinit service. + +### Manually + +- Install Caddy +``` +apt install -y debian-keyring debian-archive-keyring apt-transport-https curl +curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg +curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' > /etc/apt/sources.list.d/caddy-stable.list +apt update +apt install caddy +``` + +- Start Caddy +``` +caddy reverse-proxy -r --from example.com --to :5555 +``` + +You can also set Caddy to run with zinit, as shown below. + +### With Zinit + +We manage Caddy with zinit. + +- Open the file for editing +```bash +nano /etc/zinit/caddy.yaml +``` +- Insert the following line with your own domain and save the file +``` +exec: caddy reverse-proxy -r --from example.com --to :80 +``` +- Add the new Caddy file to zinit +```bash +zinit monitor caddy +``` + +Zinit will start up Caddy immediately, restart it if it ever crashes, and start it up automatically after any reboots. Assuming you tested the Caddy invocation above and used the same form here, that should be all there is to it. + +Here are some other Zinit commands that could be helpful to troubleshoot issues: + +- See status of all services (same as "zinit list") +``` +zinit +``` +- Get logs for a service +``` +zinit log caddy +``` +- Restart a service (to test configuration changes, for example) +``` +zinit stop caddy +zinit start caddy +``` + +Now that we set the domain and HTTPS, let's deploy the development server with Python. + +## Run the Development Server + +We show how to deploy the Boot Generator with Python. + + +- Clone the repository +``` +git clone https://github.com/threefoldtech/0-bootstrap +cd 0-bootstrap +``` +- Copy the sample file to config.py and add the proper info (e.g. set domain) +``` +cp config.py.sample config.py +``` +- In config.py, set the proper info, e.g. replace `http://default.tld` with your own domain, e.g. `https://example.com` +``` +sed -i 's/http:\/\/default\.tld/https:\/\/example\.com/g' config.py +``` +- Create the database +``` +cat db/schema.sql | sqlite3 db/bootstrap.sqlite3 +``` +- Run the template script +``` +bash setup/template.sh +``` +- Run the development server with Python +``` +python3 bootstrap.py +``` + +## Visit the Boot Generator + +You can now access the boot generator on `https://example.com`. + +![](./img/zos_boot_generator_main.png) diff --git a/collections/developers/javascript/grid3_javascript_readme.md b/collections/developers/javascript/grid3_javascript_readme.md index dc98621..5c2579c 100644 --- a/collections/developers/javascript/grid3_javascript_readme.md +++ b/collections/developers/javascript/grid3_javascript_readme.md @@ -11,6 +11,7 @@ Please make sure to check the [basics](system_administrators@@tfgrid3_getstarted - [Installation](grid3_javascript_installation.md) - [Loading Client](grid3_javascript_loadclient.md) - [Deploy a VM](grid3_javascript_vm.md) +- [Deploy a VM with Mycelium Network](grid3_javascript_vm_with_mycelium_network.md) - [Capacity Planning](grid3_javascript_capacity_planning.md) - [Deploy Multiple VMs](grid3_javascript_vms.md) - [Deploy CapRover](grid3_javascript_caprover.md) diff --git a/collections/developers/javascript/grid3_javascript_vm_with_mycelium_network.md b/collections/developers/javascript/grid3_javascript_vm_with_mycelium_network.md new file mode 100644 index 0000000..08e7090 --- /dev/null +++ b/collections/developers/javascript/grid3_javascript_vm_with_mycelium_network.md @@ -0,0 +1,202 @@ +

Deploying a VM with Mycelium Network

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Example](#example) +- [Detailed Explanation](#detailed-explanation) + - [What is the Mycelium Network](#what-is-the-mycelium-network) + - [How to Deploy a Machine with the Mycelium Network](#how-to-deploy-a-machine-with-the-mycelium-network) +- [Summary](#summary) + - [Mycelium Flag Behavior](#mycelium-flag-behavior) + - [Mycelium Machine Seed](#mycelium-machine-seed) + - [Mycelium Network Seed](#mycelium-network-seed) + +*** + +## Introduction + +We present information on how to deploy a VM with `Mycelium network` by the Javascript client with concrete examples. + +Consult the [official Mycelium repo](https://github.com/threefoldtech/mycelium) to learn more. + +## Example + +Here is a simple example on how to use Mycelium with the Javascript client: + +```ts +import { generateRandomHexSeed, GridClient, MachinesDeleteModel, MachinesModel } from "../src"; +import { config, getClient } from "./client_loader"; +import { log } from "./utils"; + +async function deploy(client: GridClient, vms: MachinesModel) { + const res = await client.machines.deploy(vms); + log("================= Deploying VM ================="); + log(res); + log("================= Deploying VM ================="); +} + +async function getDeployment(client: GridClient, name: string) { + const res = await client.machines.getObj(name); + log("================= Getting deployment information ================="); + log(res); + log("================= Getting deployment information ================="); +} + +async function cancel(client: GridClient, options: MachinesDeleteModel) { + const res = await client.machines.delete(options); + log("================= Canceling the deployment ================="); + log(res); + log("================= Canceling the deployment ================="); +} + +async function main() { + const name = "newMY"; + const grid3 = await getClient(`vm/${name}`); + + const vms: MachinesModel = { + name, + network: { + name: "hellotest", + ip_range: "10.249.0.0/16", + myceliumSeeds: [ + { + nodeId: 168, + /** + * ### Mycelium Network Seed: + * - The `seed` is an optional field used to provide a specific seed for the Mycelium network. + * - If not provided, the `GridClient` will generate a seed automatically when the `mycelium` flag is enabled. + * - **Use Case:** If you need the new machine to have the same IP address as a previously deleted machine, you can reuse the old seed by setting the `myceliumSeed` field. + */ + seed: generateRandomHexSeed(32), + }, + ], + }, + machines: [ + { + name: "testvmMY", + node_id: 168, + disks: [ + { + name: "wedDisk", + size: 8, + mountpoint: "/testdisk", + }, + ], + public_ip: false, + public_ip6: false, + planetary: true, + /** + * ### Mycelium Flag Behavior: + * - When the `mycelium` flag is enabled, there’s no need to manually provide the `myceliumSeed` flag. + * - The `GridClient` will automatically generate the necessary seed for you. + * - **However**, if you have **an existing seed** from a previously deleted machine and wish to deploy a new machine that retains the same IP address, + * - **you can simply pass in the old seed during deployment instead of calling the `generateRandomHexSeed()` function**. + */ + mycelium: true, + /** + * ### Mycelium Seed: + * - The `myceliumSeed` is an optional field used to provide a specific seed for the Mycelium network. + * - If not provided, the `GridClient` will generate a seed automatically when the `mycelium` flag is enabled. + * - **Use Case:** If you need the new machine to have the same IP address as a previously deleted machine, you can reuse the old seed by setting the `myceliumSeed` field. + */ + myceliumSeed: generateRandomHexSeed(3), // (HexSeed of length 6) + cpu: 1, + memory: 1024 * 2, + rootfs_size: 0, + flist: "https://hub.grid.tf/tf-official-apps/base:latest.flist", + entrypoint: "/sbin/zinit init", + env: { + SSH_KEY: config.ssh_key, + }, + }, + ], + metadata: "", + description: "test deploying single VM with mycelium via ts grid3 client", + }; + + //Deploy VMs + await deploy(grid3, vms); + + //Get the deployment + await getDeployment(grid3, name); + + //Uncomment the line below to cancel the deployment + // await cancel(grid3, { name }); + + await grid3.disconnect(); +} + +main(); + +``` + +## Detailed Explanation + +### What is the Mycelium Network + +Mycelium is an IPv6 overlay network written in Rust. Each node that joins the overlay network will receive an overlay network IP in the 400::/7 range. + +### How to Deploy a Machine with the Mycelium Network + +You just need to enable `mycelium`: set it to true as we did in the example above. + +```ts +const machines = [ + { + // Other attrs + mycelium: true, + } +] +``` + +## Summary + +### Mycelium Flag Behavior + +```ts +const machines = [ + { + // Other attrs + mycelium: true, + } +] +``` + +- When the `mycelium` flag is enabled, there’s no need to manually provide the `myceliumSeed` flag. +- The `GridClient` will automatically generate the necessary seed for you. +- **However**, if you have **an existing seed** from a previously deleted machine and wish to deploy a new machine that retains the same IP address, +- **you can simply pass in the old seed during deployment instead of calling the `generateRandomHexSeed()` function**. + +### Mycelium Machine Seed + +```ts +const machines = [ + { + // Other attrs + myceliumSeed: generateRandomHexSeed(3), + } +] +``` + +- The `myceliumSeed` is an optional field used to provide a specific seed for the Mycelium network. +- If not provided, the `GridClient` will generate a seed automatically when the `mycelium` flag is enabled. +- **Use Case:** If you need the new machine to have the same IP address as a previously deleted machine, you can reuse the old seed by setting the `myceliumSeed` field. + +### Mycelium Network Seed + +```ts +const network = { + // Other attrs + myceliumSeeds: [ + { + nodeId: 1, + seed: generateRandomHexSeed(32), + } + ], +} +``` + +- The `seed` is an optional field used to provide a specific seed for the Mycelium network. +- If not provided, the `GridClient` will generate a seed automatically when the `mycelium` flag is enabled. +- **Use Case:** If you need the new machine to have the same IP address as a previously deleted machine, you can reuse the old seed by setting the `myceliumSeed` field. diff --git a/collections/faq/faq.md b/collections/faq/faq.md index 7de6887..2984c92 100644 --- a/collections/faq/faq.md +++ b/collections/faq/faq.md @@ -99,7 +99,6 @@ - [I set up a 3Node in the middle of the month, does it affect uptime requirements and rewards?](#i-set-up-a-3node-in-the-middle-of-the-month-does-it-affect-uptime-requirements-and-rewards) - [What is the difference between a certified and a non-certified 3Node?](#what-is-the-difference-between-a-certified-and-a-non-certified-3node) - [What are the different certifications available for 3Node servers and farms? What are the Gold and Silver certifications?](#what-are-the-different-certifications-available-for-3node-servers-and-farms-what-are-the-gold-and-silver-certifications) - - [What is the difference between V2 and V3 minting?](#what-is-the-difference-between-v2-and-v3-minting) - [What is the TFT minting address on Stellar Chain?](#what-is-the-tft-minting-address-on-stellar-chain) - [Can Titans and DIY 3Nodes share the same farm?](#can-titans-and-diy-3nodes-share-the-same-farm) - [Do I need one farm for each 3Node?](#do-i-need-one-farm-for-each-3node) @@ -116,7 +115,6 @@ - [Farming Rewards and Related Notions](#farming-rewards-and-related-notions) - [What are the rewards of farming? Can I get more rewards when my 3Node is being utilized?](#what-are-the-rewards-of-farming-can-i-get-more-rewards-when-my-3node-is-being-utilized) - [How can I know the potential farming rewards for Grid Utilization?](#how-can-i-know-the-potential-farming-rewards-for-grid-utilization) - - [What is the easiest way to farm ThreeFold tokens (TFT)?](#what-is-the-easiest-way-to-farm-threefold-tokens-tft) - [When do I receive my rewards?](#when-do-i-receive-my-rewards) - [Do farming rewards take into account the type of RAM, SSD, HDD and CPU of the 3Node server?](#do-farming-rewards-take-into-account-the-type-of-ram-ssd-hdd-and-cpu-of-the-3node-server) - [Can I send my farming rewards directly to a crypto exchange?](#can-i-send-my-farming-rewards-directly-to-a-crypto-exchange) @@ -162,7 +160,6 @@ - [Farming Optimization](#farming-optimization) - [What is the difference between a ThreeFold 3Node and a ThreeFold farm? What is the difference between the farm ID and the node ID?](#what-is-the-difference-between-a-threefold-3node-and-a-threefold-farm-what-is-the-difference-between-the-farm-id-and-the-node-id) - [How can I know how many GB of SSD and RAM do I need?](#how-can-i-know-how-many-gb-of-ssd-and-ram-do-i-need) - - [What is the optimal ratio of virtual cores - vcores or threads - SSD storage and RAM memory? What is the best optimization scenario for a 3Node, in terms of TFT farming rewards?](#what-is-the-optimal-ratio-of-virtual-cores---vcores-or-threads---ssd-storage-and-ram-memory-what-is-the-best-optimization-scenario-for-a-3node-in-terms-of-tft-farming-rewards) - [What does TBW mean? What is a good TBW level for a SSD disk?](#what-does-tbw-mean-what-is-a-good-tbw-level-for-a-ssd-disk) - [Are SATA and SAS drives interchangeable?](#are-sata-and-sas-drives-interchangeable) - [What is the speed difference between SAS and SATA disks?](#what-is-the-speed-difference-between-sas-and-sata-disks) @@ -1130,13 +1127,6 @@ DIY certified 3Nodes are a future possibility. Farms can also be certified. The certifications are: [gold certified farming](https://forum.threefold.io/t/gep-gold-certified-farming-specs-closed/2925) and [silver certified farming](https://forum.threefold.io/t/silver-booster-request-for-comments/3416). Note that gold and silver certifications are still being discussed. Join the discussion on the [ThreeFold Forum](http://forum.threefold.io/). - - -### What is the difference between V2 and V3 minting? - -V2 is being sunset. New miners should directly onboard to V3. -On the tokenomics side, V2 rewards decrease as the difficulty level increases. For the V3 rewards, the rewards are constant for 5 years. In short, V3 is more profitable in the long run. For more information, read [this post](https://forum.threefold.io/t/comparison-v2-vs-v3-minting/2122). - ### What is the TFT minting address on Stellar Chain? @@ -1241,13 +1231,6 @@ By connecting a 3Node to the Grid, you get Farming Rewards. If you set a public Go on the [ThreeFold simulator](https://simulator.grid.tf/), enter your 3Node resources, check the Public IP address. This will enable farming rewards from the parameter NU Required Per CU. Check the difference in the farming rewards per month. Note that you will need a Public IP address. - -### What is the easiest way to farm ThreeFold tokens (TFT)? - -Buy a [certified 3Node](https://marketplace.3node.global/index.php). This is more or less *plug n play*! You can also build a [DIY 3Node](#what-are-the-general-requirements-for-a-diy-3node-server). It's fun and there are many resources to help you along the way. - - - ### When do I receive my rewards? They are distributed once a month, around the 8th*. Distributions are not daily, or after a certain threshold. Note that upcoming minting rules may have a 24 month lockup or until 30% utilization for 3 months on your 3Node. @@ -1268,7 +1251,7 @@ This is not possible. When you send tokens to a crypto exchange, you need to inc ### Do I need collateral to farm ThreeFold tokens? -Many decentralized data projects require collateral, but not ThreeFold. There is an ongoing discussion on collateral. Join the discussion [here](https://forum.threefold.io/t/should-tft-collateral-be-required-for-3nodes/3724). +Many decentralized data projects require collateral, but not ThreeFold. ### Can I add external drives to the 3Nodes to increase rewards and resources available to the ThreeFold Grid? @@ -1575,19 +1558,6 @@ You need 50 GB of SSD per compute units (CU) and a minimum of 500 GB SSD and 2 G A 3Node has, in general, 2 compute units (CU) per thread. Thus, for peak optimisation, you need 100 GB SSD and 8GB RAM per thread. -### What is the optimal ratio of virtual cores - vcores or threads - SSD storage and RAM memory? What is the best optimization scenario for a 3Node, in terms of TFT farming rewards? - -In short, for peak optimization, aim for 100 GB SSD of storage and 8GB RAM of memory per virtual core (vcore or thread). - -For example, a 32 threads (32 vcores) 3Nodes would need 3.2 TB SSD and 256GB RAM to be optimal, reward-wise. -That is: 32 * 100 = 3200 GB SSD = 3.2TB SSD, and 32 * 8 = 256 GB RAM total. - -Adding more GB of RAM would not increase your TFT rewards. You would need more vcores if you want to expand. - -NB: This is purely based on reward considerations. Some users might need different ratios for different specific uses of the Grid. - - - ### What does TBW mean? What is a good TBW level for a SSD disk? TBW means Terabytes Written. TBW directly measures how much you can write cumulatively into the drive over its lifetime. For your 3Node, it can be a good idea to prioritize a minimum ratio of 500 TBW per 1TB for SSD. diff --git a/collections/farmers/3node_building/2_bootstrap_image.md b/collections/farmers/3node_building/2_bootstrap_image.md index eed1aa2..e4d8c13 100644 --- a/collections/farmers/3node_building/2_bootstrap_image.md +++ b/collections/farmers/3node_building/2_bootstrap_image.md @@ -24,6 +24,8 @@ We will now learn how to create a Zero-OS bootstrap image in order to boot a DIY 3Node. +If you are building an HDD-only node, read [this section](hdd_only_nodes.md) too. + ## Download the Zero-OS Bootstrap Image Let's download the Zero-OS bootstrap image. diff --git a/collections/farmers/3node_building/3_set_hardware.md b/collections/farmers/3node_building/3_set_hardware.md index 7e19e5a..0c20a29 100644 --- a/collections/farmers/3node_building/3_set_hardware.md +++ b/collections/farmers/3node_building/3_set_hardware.md @@ -31,6 +31,8 @@ The essential information are available in the section [3Node Requirements Summa You need a theoretical minimum of 500 GB of SSD and 2 GB of RAM on a mini pc, desktop or server. In short, for peak optimization, aim for 100 GB of SSD and 8GB of RAM per thread. (Thread is equivalent to virtual core or logical core.) +If you are building an HDD-only node, read [this section](hdd_only_nodes.md) too. + Also, TFDAO might implement a farming parameter based on [passmark](https://www.cpubenchmark.net/cpu_list.php). From the ongoing discussion on the Forum, you should aim at a CPU mark of 1000 and above per core. > 3Node optimal farming hardware ratio -> 100 GB of SSD + 8 GB of RAM per Virtual Core @@ -58,6 +60,7 @@ Any computer with the following specifications can be used as a DIY 3Node. *A passmark of 1000 per core is recommend and will be a minimum requirement in the future. This is not yet an official requirement. A 3Node with less than 1000 passmark per core of CPU would not be penalized if it is registered before the DAO settles the [Passmark Question](https://forum.threefold.io/t/cpu-benchmarking-for-reward-calculations/2479). +> Note: It is also possible to build an HDD-only node. Read more about this [here](hdd_only_nodes.md). ## Bandwidth Requirements diff --git a/collections/farmers/3node_building/6_boot_3node.md b/collections/farmers/3node_building/6_boot_3node.md index 0b5a6be..549d5ff 100644 --- a/collections/farmers/3node_building/6_boot_3node.md +++ b/collections/farmers/3node_building/6_boot_3node.md @@ -5,6 +5,7 @@ - [Introduction](#introduction) - [1. Booting the 3Node with Zero-OS](#1-booting-the-3node-with-zero-os) - [2. Check the 3Node Status Online](#2-check-the-3node-status-online) + - [Check Node Health](#check-node-health) - [3. Receive the Farming Rewards](#3-receive-the-farming-rewards) - [Advanced Booting Methods (Optional)](#advanced-booting-methods-optional) - [PXE Booting with OPNsense](#pxe-booting-with-opnsense) @@ -42,6 +43,9 @@ You can use the ThreeFold [Node Finder](node_finder.md) to verify that your 3Nod * [ThreeFold Dev Net Dashboard](https://dashboard.dev.grid.tf/) * [ThreeFold QA Net Dashboard](https://dashboard.qa.grid.tf/) +### Check Node Health + +It is also possible to check the node health via the Node Finder. Read [this section](dashboard@@node_finder) for more information. ## 3. Receive the Farming Rewards diff --git a/collections/farmers/farmerbot/farmerbot_information.md b/collections/farmers/farmerbot/farmerbot_information.md index ac4b80b..5bcbe15 100644 --- a/collections/farmers/farmerbot/farmerbot_information.md +++ b/collections/farmers/farmerbot/farmerbot_information.md @@ -74,13 +74,19 @@ included_nodes: [optional, if no nodes are added then the farmerbot will include - "" excluded_nodes: - "" +priority_nodes: + - "" never_shutdown_nodes: - "" power: periodic_wake_up_start: "" - wake_up_threshold: "" periodic_wake_up_limit: "" overprovision_cpu: "" + wake_up_threshold: + cru: "" + mru: "" + sru: "" + hru: "" ``` ## Supported Commands and Flags diff --git a/collections/farmers/farmerbot/farmerbot_quick.md b/collections/farmers/farmerbot/farmerbot_quick.md index 26d2048..31bb8f8 100644 --- a/collections/farmers/farmerbot/farmerbot_quick.md +++ b/collections/farmers/farmerbot/farmerbot_quick.md @@ -155,8 +155,6 @@ It is highly recommended to set a Ubuntu systemd service to keep the Farmerbot r [Service] Restart=always RestartSec=5 - StandardOutput=append:/root/farmerbotfiles/farmerbot.log - StandardError=append:/root/farmerbotfiles/farmerbot.log ExecStart=/usr/local/bin/farmerbot run -e /root/farmerbotfiles/.env -c /root/farmerbotfiles/config.yml -d [Install] @@ -175,26 +173,28 @@ It is highly recommended to set a Ubuntu systemd service to keep the Farmerbot r ### Check the Farmerbot Logs -Once you've set a Farmerbot systemd service [as show above](#set-a-systemd-service), the Farmerbot will start writing logs to the file `farmerbot.log` in the directory `farmerbotfiles`. +You can get more details on the operation of the Farmerbot by inspecting the log file. -Thus, you can get more details on the operation of the Farmerbot by inspecting the log file. This can also be used to see the **Farmerbot Report Table** as this table is printed in the Farmerbot log. - -* See all logs so far - ``` - cat ~/farmerbotfiles/farmerbot.log - ``` -* See the last ten lines and new logs as they are generated - ``` - tail -f ~/farmerbotfiles/farmerbot.log - ``` -* See all logs and new lines as they are generated - ``` - tail -f -n +1 ~/farmerbotfiles/farmerbot.log - ``` -* See the last report table - ``` - tac ~/farmerbotfiles/farmerbot.log | grep -B5000 -m1 "Nodes report" | tac - ``` +* View the log file +``` +journalctl -u +``` +* View the log file with reverse output +``` +journalctl -ru +``` +* View X lines from the log file +``` +journalctl -u -n X +``` +* View the log file since a given date +``` +journalctl -u --since +``` +* Create a log file with journalctl with the last 1000 lines +``` +journalctl -u farmerbot -n 1000 > farmerbot.log +``` ### Stop the Farmerbot diff --git a/collections/farmers/farmers.md b/collections/farmers/farmers.md index 5f7202b..79f3db9 100644 --- a/collections/farmers/farmers.md +++ b/collections/farmers/farmers.md @@ -9,29 +9,10 @@ To buy a certified node from an official ThreeFold vendor, check the [ThreeFold

Table of Contents

- [Build a 3Node](3node_building.md) - - [1. Create a Farm](1_create_farm.md) - - [2. Create a Zero-OS Bootstrap Image](2_bootstrap_image.md) - - [3. Set the Hardware](3_set_hardware.md) - - [4. Wipe All the Disks](4_wipe_all_disks.md) - - [5. Set the BIOS/UEFI](5_set_bios_uefi.md) - - [6. Boot the 3Node](6_boot_3node.md) +- [Farming Requirements](farming_requirements.md) - [Farming Optimization](farming_optimization.md) - - [GPU Farming](gpu_farming.md) - - [Set Additional Fees](set_additional_fees.md) - - [Minting Receipts](minting_receipts.md) - - [Minting Periods](minting_periods.md) - - [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) - - [Network Setup](network_setup.md) - [Farmerbot](farmerbot_intro.md) - - [Quick Guide](farmerbot_quick.md) - - [Additional Information](farmerbot_information.md) - - [Minting and the Farmerbot](farmerbot_minting.md) - [Node Status Bot](node_status_bot.md) - [Farming Troubleshooting](farming_troubleshooting.md) - [Farmers FAQ](faq@@faq) diff --git a/collections/farmers/farming_optimization/farming_optimization.md b/collections/farmers/farming_optimization/farming_optimization.md index ff5ea49..5fce764 100644 --- a/collections/farmers/farming_optimization/farming_optimization.md +++ b/collections/farmers/farming_optimization/farming_optimization.md @@ -6,9 +6,9 @@ The section [Build a 3Node](3node_building.md) covered the notions necessary to - [GPU Farming](gpu_farming.md) - [Set Additional Fees](set_additional_fees.md) +- [HDD-Only Nodes](hdd_only_nodes.ms) - [Minting Receipts](minting_receipts.md) - [Minting Periods](minting_periods.md) - [Room Parameters](farm_room_parameters.md) - [Farming Costs](farming_costs.md) -- [Calculate Your ROI](calculate_roi.md) -- [Farming Requirements](farming_requirements.md) \ No newline at end of file +- [Calculate Your ROI](calculate_roi.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 deleted file mode 100644 index 87bc509..0000000 --- a/collections/farmers/farming_optimization/farming_requirements.md +++ /dev/null @@ -1,28 +0,0 @@ -

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/farmers/farming_optimization/hdd_only_nodes.md b/collections/farmers/farming_optimization/hdd_only_nodes.md new file mode 100644 index 0000000..65a311e --- /dev/null +++ b/collections/farmers/farming_optimization/hdd_only_nodes.md @@ -0,0 +1,37 @@ +

HDD-Only Nodes

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Requirements](#requirements) +- [BIOS Parameters](#bios-parameters) +- [Bootstrap Image for HDD-Only Nodes](#bootstrap-image-for-hdd-only-nodes) + +--- + +## Introduction + +It is possible to create an HDD-only node. This means that this node doesn't have SSD disks, but only HDD disks. + +The steps are almost all the same, except for the creation of the Zero-OS Bootstrap image, which needs an extra kernel argument. + +The requirements and BIOS parameters differences are also covered. + +## Requirements + +An HDD-only node needs at least 100GB of HDD disk. + +## BIOS Parameters + +In the BIOS, make sure to set `AHCI` for SATA disks. + +## Bootstrap Image for HDD-Only Nodes + +To create an HDD-only node, the bootstrap image needs an extra kernel argument: + +- Navigate to the [Zero-OS Bootstrap site](https://bootstrap.grid.tf/). +- Select `Expert mode` from the menu at the top. +- Fill in all the needed inputs (Farm ID, network, kernel and format). + - You can keep the default kernel +- In the `Extra kernel arguments` input field, type `missing-ssd`. +- Generate and download the image. diff --git a/collections/farmers/farming_requirements.md b/collections/farmers/farming_requirements.md new file mode 100644 index 0000000..d31a398 --- /dev/null +++ b/collections/farmers/farming_requirements.md @@ -0,0 +1,30 @@ +

Farming Requirements

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Uptime Requirements](#uptime-requirements) + - [Farmerbot Considerations](#farmerbot-considerations) + +--- + +## 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 + +Each minting period is 720 hours. The minimum uptime is always calculated against the duration of a full minting period. + +> We can recommend that farmers bring any new nodes online shortly before the start of a new minting period, to avoid any extra energy use during a period where the node can't possibly be eligible for minting. Consult the 2024 minting periods [here](./farming_optimization/minting_periods.md#2024-minting-periods). + +### Farmerbot Considerations + +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 hours 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/farmers/farming_troubleshooting.md b/collections/farmers/farming_troubleshooting.md index 9b5fe2d..ac34c31 100644 --- a/collections/farmers/farming_troubleshooting.md +++ b/collections/farmers/farming_troubleshooting.md @@ -1,507 +1,23 @@

Farming Troubleshooting

-

Table of Contents

+When building a 3Node, we advise to follow carefully the 6 steps laid out in the [3Node building](3node_building/3node_building.md) section of the manual. Make sure that the disks are properly wiped, that you have the correct bootstrap image and that the BIOS/UEFI is set correctly. -- [Introduction](#introduction) -- [General Troubleshooting Process](#general-troubleshooting-process) -- [Build Troubleshooting](#build-troubleshooting) - - [Set the BIOS](#set-the-bios) - - [BIOS Troubleshooting](#bios-troubleshooting) - - [When running wipefs to wipe my disks on Linux, I get either of the following errors: "syntax error near unexpected token" or "Probing Initialized Failed". Is there a fix?](#when-running-wipefs-to-wipe-my-disks-on-linux-i-get-either-of-the-following-errors-syntax-error-near-unexpected-token-or-probing-initialized-failed-is-there-a-fix) - - [Disk Not Recognized by Zero-OS](#disk-not-recognized-by-zero-os) - - [Onboard Storage](#onboard-storage) - - [When I tried to boot my 3Node, at some point the screen went black, with or without a blinking hyphen or dash. What could cause this and what could I do to resolve the issue?](#when-i-tried-to-boot-my-3node-at-some-point-the-screen-went-black-with-or-without-a-blinking-hyphen-or-dash-what-could-cause-this-and-what-could-i-do-to-resolve-the-issue) - - [I get the error Certificate is not yet valid when booting my 3Node server, what can I do?](#i--get-the-error-certificate-is-not-yet-valid-when-booting-my-3node-server-what-can-i-do) - - [My SSD is sometimes detected as HDD by Zero-OS when there is a reboot. Is there a fix or a way to test the SSD disk?](#my-ssd-is-sometimes-detected-as-hdd-by-zero-os-when-there-is-a-reboot-is-there-a-fix-or-a-way-to-test-the-ssd-disk) - - [My 3Node uses only PCIe adapters and SSD NVME disks. Do I need the RAID controller on?](#my-3node-uses-only-pcie-adapters-and-ssd-nvme-disks-do-i-need-the-raid-controller-on) - - [My 3Node has 2 ethernet ports in the back, with one written AMT above, what does it mean? Can I use this port to connect my 3Node to the ThreeFold Grid?](#my-3node-has-2-ethernet-ports-in-the-back-with-one-written-amt-above-what-does-it-mean-can-i-use-this-port-to-connect-my-3node-to-the-threefold-grid) - - [When I boot my Dell server, I get the message: All of the disks from your previous configuration are gone... Press any key to continue or 'C' to load the configuration utility. What can I do?](#when-i-boot-my-dell-server-i-get-the-message-all-of-the-disks-from-your-previous-configuration-are-gone-press-any-key-to-continue-or-c-to-load-the-configuration-utility-what-can-i-do) - - [When booting a 3Node, how to fix the error: "no disks: registration failed"?](#when-booting-a-3node-how-to-fix-the-error-no-disks-registration-failed) - - [I have trouble connecting the 3Node to the Grid with a 10GB NIC card. What can I do?](#i-have-trouble-connecting-the-3node-to-the-grid-with-a-10gb-nic-card-what-can-i-do) - - [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) - - [When booting a 3Node, I get the message: failed to register node: failed to create node: failed to submit extrinsic: Invalid Transaction: registration failed. What could fix this?](#when-booting-a-3node-i-get-the-message-failed-to-register-node-failed-to-create-node-failed-to-submit-extrinsic-invalid-transaction-registration-failed-what-could-fix-this) - - [I did a format on my SSD disk, but Zero-OS still does not recognize them. What's wrong?](#i-did-a-format-on-my-ssd-disk-but-zero-os-still-does-not-recognize-them-whats-wrong) - - [My 3Node doesn't boot properly without a monitor plugged in. What can I do?](#my-3node-doesnt-boot-properly-without-a-monitor-plugged-in-what-can-i-do) - - [My 3Node won't boot without disabling the Secure Boot option, is it safe?](#my-3node-wont-boot-without-disabling-the-secure-boot-option-is-it-safe) - - [When booting the 3Node, I get the error Network interface detected but autoconfiguration failed. What can I do?](#when-booting-the-3node-i-get-the-error-network-interface-detected-but-autoconfiguration-failed-what-can-i-do) - - [When I try to boot my 3Node, the fans start spinning fast with a loud noise and the screen is black. What can I do to resolve this?](#when-i-try-to-boot-my-3node-the-fans-start-spinning-fast-with-a-loud-noise-and-the-screen-is-black-what-can-i-do-to-resolve-this) - - [When booting Zero-OS with IPV6 configurations, I get the errors (1) dial tcp: address IPV6-address too many columns in address and (2) no pools matches key: not routable. What can I do to fix this issue?](#when-booting-zero-os-with-ipv6-configurations-i-get-the-errors-1-dial-tcp-address-ipv6-address-too-many-columns-in-address-and-2-no-pools-matches-key-not-routable-what-can-i-do-to-fix-this-issue) - - [I try to boot a 3Node, but I get the message no route with default gateway found. What does it mean?](#i-try-to-boot-a-3node-but-i-get-the-message-no-route-with-default-gateway-found-what-does-it-mean) - - [When booting a 3Node, Zero-OS downloads fine, but then I get the message: error no route with default gateway found, and the message: info check if interface has a cable plugged in. What could fix this?](#when-booting-a-3node-zero-os-downloads-fine-but-then-i-get-the-message-error-no-route-with-default-gateway-found-and-the-message-info-check-if-interface-has-a-cable-plugged-in-what-could-fix-this) - - [How can I update Dell and HP servers to Intel E5-2600v2, E5-2400v2 and E5-4600v2, when applicable?](#how-can-i-update-dell-and-hp-servers-to-intel-e5-2600v2-e5-2400v2-and-e5-4600v2-when-applicable) - - [How can I update the firmware and driver of a Dell PowerEdge server?](#how-can-i-update-the-firmware-and-driver-of-a-dell-poweredge-server) - - [When I boot a 3Node in UEFI mode, it gets stuck at: Initializing Network Device, is there a way to fix this?](#when-i-boot-a-3node-in-uefi-mode-it-gets-stuck-at-initializing-network-device-is-there-a-way-to-fix-this) - - [When I boot my 3Node, it gets stuck during the Zero-OS download. It never reaches 100%. What can I do to fix this issue?](#when-i-boot-my-3node-it-gets-stuck-during-the-zero-os-download-it-never-reaches-100-what-can-i-do-to-fix-this-issue) - - [When booting a 3Node, I get the error=“context deadline exceeded” module=network error=failed to initialize rmb api failed to initialized admin mw: failed to get farm: farm not found: object not found. What can I do to fix this issue?](#when-booting-a-3node-i-get-the-errorcontext-deadline-exceeded-modulenetwork-errorfailed-to-initialize-rmb-api-failed-to-initialized-admin-mw-failed-to-get-farm-farm-not-found-object-not-found-what-can-i-do-to-fix-this-issue) -- [Memory Troubleshooting](#memory-troubleshooting) - - [Can I use different type of RAM for the same 3Node?](#can-i-use-different-type-of-ram-for-the-same-3node) - - [How can I know if the memory I am buying is correct for my specific hardware?](#how-can-i-know-if-the-memory-i-am-buying-is-correct-for-my-specific-hardware) - - [What do the terms RDIMM, LDIMM, UDIMM, LRDIMM, FBDIMM mean when it comes to RAM memory sticks?](#what-do-the-terms-rdimm-ldimm-udimm-lrdimm-fbdimm-mean-when-it-comes-to-ram-memory-sticks) - - [What is the difference between ECC and non-ECC memory?](#what-is-the-difference-between-ecc-and-non-ecc-memory) - - [How can I change the RAM memory sticks on my 3Nodes? How can I achieve dual channel configuration with sticks of RAM?](#how-can-i-change-the-ram-memory-sticks-on-my-3nodes-how-can-i-achieve-dual-channel-configuration-with-sticks-of-ram) - - [What does RAM mean?](#what-does-ram-mean) - - [What does DIMM mean when it comes to RAM sticks?](#what-does-dimm-mean-when-it-comes-to-ram-sticks) - - [I have 24 DIMMS ram slots on my server. Can I use them all?](#i-have-24-dimms-ram-slots-on-my-server-can-i-use-them-all) -- [Basic Post Build Troubleshooting](#basic-post-build-troubleshooting) - - [Reboot a 3Node](#reboot-a-3node) - - [Reboot a Router](#reboot-a-router) - - [Reboot a Modem with the Reset Button](#reboot-a-modem-with-the-reset-button) - - [My 3Nodes go offline after a modem reboot. Is there a way to prevent this?](#my-3nodes-go-offline-after-a-modem-reboot-is-there-a-way-to-prevent-this) - - [When I try to access iDRAC on a web browswer, even with protected mode off, I get the error The webpage cannot be found, what can I do?](#when-i-try-to-access-idrac-on-a-web-browswer-even-with-protected-mode-off-i-get-the-error-the-webpage-cannot-be-found-what-can-i-do) - - [When I boot my 3Node, it reaches the Welcome to Zero-OS window, but it doesn't boot properly and there's an error message: failed to load object : type substrate..., what can I do?](#when-i-boot-my-3node-it-reaches-the-welcome-to-zero-os-window-but-it-doesnt-boot-properly-and-theres-an-error-message-failed-to-load-object--type-substrate-what-can-i-do) - - [I want redundancy of power for my 3 nodes. I have two PSU on my Dell server. What can I do?](#i-want-redundancy-of-power-for-my-3-nodes-i-have-two-psu-on-my-dell-server-what-can-i-do) - - [I switch the ethernet cable to a different port when my 3Node was running. Internet connection is lost. What can I do?](#i-switch-the-ethernet-cable-to-a-different-port-when-my-3node-was-running-internet-connection-is-lost-what-can-i-do) -- [Advanced Post Build Troubleshooting](#advanced-post-build-troubleshooting) - - [Access the Error/Log Screen](#access-the-errorlog-screen) - - [Can I use a VGA to HDMI adaptor to connect a TV screen or monitor to the 3Node? I tried to boot a 3Node with a VGA to HDMI adaptor but the boot fails, what can I do?](#can-i-use-a-vga-to-hdmi-adaptor-to-connect-a-tv-screen-or-monitor-to-the-3node-i-tried-to-boot-a-3node-with-a-vga-to-hdmi-adaptor-but-the-boot-fails-what-can-i-do) - - [My 3Node is running on the Grid, but when I plugged in the monitor, it states: Disabling IR #16. Is there a problem?](#my-3node-is-running-on-the-grid-but-when-i-plugged-in-the-monitor-it-states-disabling-ir-16-is-there-a-problem) - - [Address Certain Errors](#address-certain-errors) -- [Get Further Assistance](#get-further-assistance) ---- +If you are still having issues, you may find solutions to your issues by reading the sections [Build Troubleshooting](farming_troubleshooting_tips.md#build-troubleshooting) and [Basic Post Build Troubleshooting](farming_troubleshooting_tips.md#basic-post-build-troubleshooting). -## Introduction +If your issues are related to memory, the section [Memory Troubleshooting](farming_troubleshooting_tips.md#memory-troubleshooting) should help. -We cover different ways and levels to troubleshoot farming issues. +If you still can't fix your issue, try to get more info by reading the Error/Log screen. Read the section [Advanced Post Build Troubleshooting](farming_troubleshooting_tips.md#advanced-post-build-troubleshooting) for more information. -## General Troubleshooting Process +Once you have more information via the Error/Log screen, you should first try to find fixes to the errors by reading the troubleshooting section. -When building a 3Node, we advise to follow carefully the 6 steps laid out in the [3Node building](3node_building.md) section of the manual. Make sure that the disks are properly wiped, that you have the correct bootstrap image and that the BIOS/UEFI is set correctly. +If you still can't find solutions to your issues, read the section [Get Further Assistance](farming_troubleshooting_tips.md#get-further-assistance) to ask for help. -If you are still having issues, you may find solutions to your issues by reading the sections [Build Troubleshooting](#build-troubleshooting) and [Basic Post Build Troubleshooting](#basic-post-build-troubleshooting). +Going through the [whole table of contents](farming_troubleshooting_tips.md#table-of-contents) can quicken your search. -If your issues are related to memory, the section [Memory Troubleshooting](#memory-troubleshooting) should help. +

Table of Contents

-If you still can't fix your issue, try to get more info by reading the Error/Log screen. Read the section [Advanced Post Build Troubleshooting](#advanced-post-build-troubleshooting) for more information. Once you have more information via the Error/Log screen, you should first try to find fixes to the errors by reading the troubleshooting section. - -If you still can't find solutions to your issues, read the section [Get Further Assistance](#get-further-assistance) to ask for help. - -## Build Troubleshooting - -In this section, we cover notions such as how to wipe disks, how to set the BIOS configurations and more. - -### Set the BIOS - -You need to set the BIOS properly for your 3Node to boot with Zero-OS. - -The basic information is available [here](5_set_bios_uefi.md#the-essential-features-of-biosuefi-for-a-3node). - -### BIOS Troubleshooting - -You might have to try UEFI first and if it doesn't work, try BIOS. Usually when this is the case (UEFI doesn't work with your current computer), the following message will be shown: - -> Initializing Network Devices... - -And then... nothing. This means that you are still in the BIOS of the hardware and boot is not even started yet. When this happens, try the BIOS mode of your computer. - -### When running wipefs to wipe my disks on Linux, I get either of the following errors: "syntax error near unexpected token" or "Probing Initialized Failed". Is there a fix? - -Many different reasons can cause this issue. When you get that error, sometimes it is because your are trying to wipe your boot USB by accident. If this is not the case, and you really are trying to wipe the correct disk, here are some fixes to try out, with the disk `sda` as an example: - -* Fix 1: - * Force the wiping of the disk: -``` -sudo wipefs -af /dev/sda -``` -* Fix 2: - * Unmount the disk then wipe it: -``` -sudo umount /dev/sda -sudo wipefs -a /dev/sda -``` - -### Disk Not Recognized by Zero-OS - -If you're having trouble getting your disks recognized by Zero-OS, some farmers have had success enabling AHCI mode for SATA in their BIOS. - -### Onboard Storage - -If you are using a server with onboard storage and are having issues, there are many ways to troubleshooting this. - -You can use the on board storage on a server without RAID. You can [re-flash](https://fohdeesha.com/docs/perc.html) the RAID card, turn on HBA/non-RAID mode, or install a different card. There is no need for RAID with ThreeFold farming. - -It's usually easy to set servers such as a HP Proliant with the HBA mode. For Dell servers, you can either cross-flash the RAID controller with an “IT-mode-Firmware” (see this [video](https://www.youtube.com/watch?v=h5nb09VksYw)) or get a DELL H310-controller (which has the non-RAID option). Otherwise, you can install a NVME SSD with a PCIe adaptor, and turn off the RAID controller. - - - - -### When I tried to boot my 3Node, at some point the screen went black, with or without a blinking hyphen or dash. What could cause this and what could I do to resolve the issue? - -There is a possibility that this happens because you are booting your 3Node on a HDD. A 3Node needs a minimum of 500GB of SSD to work properly. - -Also, make sure that you are using the correct boot option (Legacy BIOS or UEFI) in Settings and that it corresponds to the correct booting image on the ThreeFold Bootstrap page. - -This problem often arises when you plug your disks in the wrong controller. For example, try unplugging the disks from the SAS controller, and plug them in the SATA controller. Also, disable the SAS controller if needed. - -In a Legacy BIOS boot, make sure Legacy is enabled and disable *Data Execution Prevention* if possible. - -Also, it might have to do with your RAID controller configuration. Make sure this is properly set. For example, configuring all the HDD disks into one logical disk can fix this problem, or re-flashing the RAID card can also help. - - - -### I get the error Certificate is not yet valid when booting my 3Node server, what can I do? - -Make sure your firmware is up to date. If necessary, reinstall it. You might have to install and then re-install the firmware if your system is very old. - - - -### My SSD is sometimes detected as HDD by Zero-OS when there is a reboot. Is there a fix or a way to test the SSD disk? - -If your SSD disk shows as HDD, usually you can reboot the 3Node and Z-OS adjusts correctly. - -Anyone experiencing frequently this issue where Z-OS sometimes detects an SSD as HDD can try the following: - -* Boot up a live Ubuntu Desktop image -* Run the benchmark utility within the Disks app -* Check if the seektime of the disk is sufficient for Z-OS - * If the seektime is above 0.5ms, Z-OS will consider your SSD as HDD - -**Detailed Steps:** - -* Boot a Ubuntu Linux live USB -* Install **gnome-disks** if it isn't already installed: -``` -sudo apt install gnome-disks -``` -* Open the application launcher and search for **Disks** -* Select your disk -* Click on the tree dots menu -* Select **Benchmark Disk...** - * Use the default parameters - * **Transfer rate**: This is not relevant for our current test - * You can set to it to minimum (e.g. 2) - * **Sample size**: 10 MB is sufficient -* Check the average access time on the [ThreeFold repository](https://www.github.com/threefoldtech/seektime) - * Check seek time for HDD and SSD - * A SSD needs to be <=0.5ms -* If the result is above 0.5ms, this is why Z-OS doesn't recognize the disk properly - * You can then run diagnostics (e.g. smartmontools) - * If this is not fixable, you should change disk (e.g. take a more performing disk) - -Note: The green dots on the output represent seektime and that's what Z-OS is looking at. Specifically, it checks that the average seektime is below 0.5ms. If the seektime is above this, Z-OS will consider your SSD as HDD. - -### My 3Node uses only PCIe adapters and SSD NVME disks. Do I need the RAID controller on? - -The onboard RAID controller is not linked to your PCIe SSDs. In this case, you can switch the RAID controller off. - - -### My 3Node has 2 ethernet ports in the back, with one written AMT above, what does it mean? Can I use this port to connect my 3Node to the ThreeFold Grid? - -First, let's define the term AMT. It means: Active Management Technology. Without going into too much details, it is to remotely access servers via the network at the BIOS level. Thus, you should plug the ethernet cable in the port next to AMT, and not into the AMT port. You can explore AMT properties if you want remote access to your server. - - -### When I boot my Dell server, I get the message: All of the disks from your previous configuration are gone... Press any key to continue or 'C' to load the configuration utility. What can I do? - -Many changes to your server can lead to this message. - -Usually, the easiest solution is to reset the disk configuration in iDRAC's configuration utility. - -What can causes this message: - -1. During a new installation, the cables connecting to your external storage are not wired to the correct ports. -2. Your RAID adapter has failed. -3. Your SAS cables are not plugged properly or are malfunctioning. - -Note: Resetting the configuration will destroy all data on all virtual disks. Make sure you know what you are doing! In doubt, ask the TF community. - -### When booting a 3Node, how to fix the error: "no disks: registration failed"? - -There can be many different fixes for this error. Here are some troubleshooting tips to test separately: - -* In BIOS, enable AHCI -* Make sure to [wipe the disks](4_wipe_all_disks.md) of the 3Nodes -* If the 3Node has a RAID Controller: - * Disabled the RAID controller, OR; - * [Flash the RAID controller](https://fohdeesha.com/docs/perc.html) (i.e. crossflashing), OR; - * Change the controller to a Dell H310 controller (for Dell servers) -* Try the command **badblocks** (replace **sda** with your specific disk). Note that this command will delete all the data on the disk -``` -sudo badblocks -svw -b 512 -t 0x00 /dev/sda -``` - -### I have trouble connecting the 3Node to the Grid with a 10GB NIC card. What can I do? - -As of now, Zero-OS sometimes has trouble with 10GB NIC card. The easiest solution to this is to connect your 3Node with the 1GB NIC card. This should solve the issue. More fine tuning might be needed to get your 3Node to work with a 10GB NIC card. Future Zero-OS version might solve this issue. - -### What does it mean when I see, during the 3Node boot, the message: error = context deadline exceeded? - -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? - -There are many potential answers to this. Perhaps the Host is offline, the service isn't running. This is usually the reason with TF Grid. It means the Grid is not responsive. In this case, try to boot the 3Node later. If it persists ask TF Support. - -There can also be other reasons. You might have connected to the wrong port. Perhaps you have configured iptables to block connections on that port. Your DNS might be improperly configured. You might have an Incorrect Network or Host Configuration. Many troubleshoots are possible. Here's a [good place to start](https://www.maketecheasier.com/fix-no-route-to-host-error-linux/). - - - -### How can I fix the error: "Network configuration succeed but Zero-OS kernel could not be downloaded" when booting a 3Node? - -To fix the error "Network configuration succeed but Zero-OS kernel could not be downloaded", you can try to restart the router and reboot the 3Node. This usually fixes the issue. If this doesn't work, check if the router is still functional. The cause of this issue might be that your router is broken. - - - -### Using SAS disks, I get the error; "No ssd found, failed to register". What can I do to fix this? - -First make sure to wipe the disks and then boot your 3Node. If you've wiped the disks and it doesn't work, it's been reported that using the command "diskpart clean command" on Windows can fix this issue. - - -### When booting a 3Node, I get the message: failed to register node: failed to create node: failed to submit extrinsic: Invalid Transaction: registration failed. What could fix this? - -The most probable fix to this error is simply to properly [wipe your disks](4_wipe_all_disks.md). - - -### I did a format on my SSD disk, but Zero-OS still does not recognize them. What's wrong? - -Formatting is one thing, but to boot properly, Zero-OS needs to work on a completely wiped disk. Thus, make sure you [wipe your disks](4_wipe_all_disks.md). Formatting is not enough. - -### My 3Node doesn't boot properly without a monitor plugged in. What can I do? - -First, try to disable the "Halt On" mode in BIOS. If you do not have this option, try simply enabling Legacy Support (Dell BIOS for example). If this doesn't work, try to plug in a Dummy Plug/Headless Ghost/Display Emulator in your 3Node. This will simulate a plugged monitor. This should fix the problem. - - - - -### My 3Node won't boot without disabling the Secure Boot option, is it safe? - -In the case where you want to boot Zero-OS, disabling Secure Boot option is safe. With Secure Boot disabled, it can be easier or even necessary when it comes to booting Zero-OS. Secure Boot is used when you want to lock the BIOS/UEFI settings. - - - - -### When booting the 3Node, I get the error Network interface detected but autoconfiguration failed. What can I do? - -First make sure your network cable is plugged in and that your DHCP is working and responding. If you change the NIC port of the ethernet cable, make sure to reboot the 3Node so Zero-OS can change the NIC port attribution. - -Some farmers reported that this got fixed by simply powering off the 3Node(s), the router and modem for 2 minutes then powering it all back on. Resetting the modem and router (switch on the hardware) in the process can also help. - -If this doesn't work, try to upgrade the firmware of the NIC and the motherboard. If this still doesn't work, the NIC card might be broken. Try with another NIC card. - - -### When I try to boot my 3Node, the fans start spinning fast with a loud noise and the screen is black. What can I do to resolve this? - -There may be several causes to this issue. You can try to remove all the RAM sticks, to clean the dust and then to reseat the RAM sticks. If it still doesn't resolve the issue, you can check the RAM sticks one by one to see if one is malfunctioning. This often resolves the issue. Also, some cables might not be properly connected. - - - -### When booting Zero-OS with IPV6 configurations, I get the errors (1) dial tcp: address IPV6-address too many columns in address and (2) no pools matches key: not routable. What can I do to fix this issue? - -This usually means that the IPV6 attributed is not valid. It is also often caused when the DNS configuration does not resolve IPV6 correctly. - -To fix this issue, it is often necessary to adjust the IPV6 settings related to the router and the modem. Confirming with your Internet service provider (ISP) that the IPV6 settings are properly configured could also be necessary to fix the issue. - - - -### I try to boot a 3Node, but I get the message no route with default gateway found. What does it mean? - -First, let's see the main terms. Default gateway acts as an access point to other networks, in this case the TF Grid, when there is a back and forth exchange of data packets. - -While the last question implied a communication problem from the Grid, this error message usually means that the 3Node has communication problem. In short, it has difficulty reaching the TF Grid. There are many ways to troubleshoot this error. First, let's give the most direct solution. Make sure you have a direct connection with your Internet Service Provider (ISP): your 3Node should be connected to a router or a switch via an ethernet cable. Wifi doesn't work. Make sure your DHCP is set correctly. - -If the problem persists, check the default gateway of your 3Node and then make sure your router can reach it. - - -### When booting a 3Node, Zero-OS downloads fine, but then I get the message: error no route with default gateway found, and the message: info check if interface has a cable plugged in. What could fix this? - -Make sure you have network stack enabled in BIOS. If so, check you ethernet port and make sure that it's clean. Also make sure the ethernet rj45 connectors are clean on both ends. If that does not work, verify the state of your SATA cables. If all this doesn't work, download and re-install Zero-OS. - - - - -### How can I update Dell and HP servers to Intel E5-2600v2, E5-2400v2 and E5-4600v2, when applicable? - -There are many ressources online with steps on how to do this. You can check this [youtube video](https://www.youtube.com/watch?v=duzrULLtonM) on Dell and HP servers, as welll as this [documentation](https://ixnfo.com/en/hp-proliant-gen8-update-to-support-cpu-e5-2600v2-e5-2400v2-e5-4600v2.html) for HP Proliant Gen8. - - - -### How can I update the firmware and driver of a Dell PowerEdge server? - -Dell has excellen documentation for this. Read [this](https://www.dell.com/support/kbdoc/en-us/000128194/updating-firmware-and-drivers-on-dell-emc-poweredge-servers) for the detailed steps. - - - -### When I boot a 3Node in UEFI mode, it gets stuck at: Initializing Network Device, is there a way to fix this? - -In short, booting the 3Node in BIOS mode instead of UEFI mode usually fixes this issue. - -You can make bootable USB with the USB option of the [Zero-OS bootstrap image page](https://bootstrap.grid.tf/). Make sure to boot your server using BIOS and not UEFI. In the boot sequence, make the USB as your first choice to boot. - - - -### When I boot my 3Node, it gets stuck during the Zero-OS download. It never reaches 100%. What can I do to fix this issue? - -Here are some ways to troubleshoot your 3Node when it cannot download Zero-OS completely (to 100%): - -* Sometimes, just rebooting the 3Node and/or trying a little bit later can work. -* It can help to reboot the modem and the router. -* Make sure your BIOS/UEFI is up to date. Updating the BIOS/UEFI can help. -* It can also help to set the correct date and time. - - - -### When booting a 3Node, I get the error=“context deadline exceeded” module=network error=failed to initialize rmb api failed to initialized admin mw: failed to get farm: farm not found: object not found. What can I do to fix this issue? - -Usually, the simple fix to this issue is to make sure that your bootstrap image is on the same network as your farm. For example, if you created your farm on the Main net, you should use a Main net Zero-OS bootstrap image. - - -## Memory Troubleshooting - -### Can I use different type of RAM for the same 3Node? - -No. Always use the same type of RAM per 3Node. If you use RDIMM, go all RDIMM, etc. Check your hardware specifications to make sure you have the right type of memory. - - - -### How can I know if the memory I am buying is correct for my specific hardware? - -To be sure, look into the owner's manual of your specific computer. - -In general, you can go to [Memory.net](https://memory.net/) and look for your specific computer model. As general steps, select your computer's system in *By system*, then select the series and then select the specific model of the series. You will then see available memories to buy from memory.net. You can also simply read the documentation at the bottom. The memory type supported by your computer will be explained. Then you can buy the memory needed from any other computer store. - -For servers, you can check with Cloudninja's documentation [here](https://cloudninjas.com/pages/server-memory). Search for your specific hardware and look for the compatible memory. This reference is good for rack and tower servers. - - - -### What do the terms RDIMM, LDIMM, UDIMM, LRDIMM, FBDIMM mean when it comes to RAM memory sticks? - -Well first, the DIMM means dual inline memory module. - -* U stands for or unregistered (or unbuffered). - -* R stands for registered memory. - -* LR stands for load-reduced. - -* FB stands for fully-buffered. - - - -### What is the difference between ECC and non-ECC memory? - -ECC means error correction code memory. This type of memory can detect and correct data corruption. Non-ECC mostly cannot detect nor correct, but some can detect, but never correct data corruption. Check your hardware specifications to make sure you have the right type of memory (ECC or non-ECC). - - -### How can I change the RAM memory sticks on my 3Nodes? How can I achieve dual channel configuration with sticks of RAM? - -First, always use RAM sticks of the same size and type. It should be noted on your motherboard which slots to populate first. As a general guide, there is usually 2 slots A and B, with each 2 memory stick entries. You must then install the ram sticks on A1 and B1 in order to achieve dual channel, then A2 and B2 if you have more (visual order: A1 A2 B1 B2). - -> Example: You want to start with your largest sticks, evenly distributed between both processors and work your way down to your smallest. Let's take an example with 2 processors as well as 4x 16GB sticks and 4x 8GB sticks. The arrangement would be A1-16GB, B1-16GB, A2-16GB, B2-16GB, A3-8GB, B3-8GB, A4-8GB, B4-8GB. Avoid odd numbers as well. You optimally want pairs. So if you only have 5x 8GB sticks, only install 4 until you have an even 6. - - - -### What does RAM mean? - -RAM means random access memory. Those type of memory can be read and changed in any order. - - - - -### What does DIMM mean when it comes to RAM sticks? - -It means *dual in-line memory module*. This type of computer memory is natively 64 bits, enabling fast data transfer. - - - -### I have 24 DIMMS ram slots on my server. Can I use them all? - -Be careful when installing memory on a server. Always check your server's documentation to make sure your RAM sticks combination are correct. - -For example, on the Dell R720, you can have 24x16gb RAM ECC sticks, but it can only handle 16 Quad ranked DIMMs. In this case, you can fill up all slots with registered DIMMs if you have a maximum of 4 quad DIMMS ranked on each CPU. - -## Basic Post Build Troubleshooting - -In this section, we cover notions such as how to reboot node or a router, how to check the network signal path and more. - -### Reboot a 3Node - -To reboot your 3Node, simply turn if off manually then turn it back on. - -### Reboot a Router - -- Locate the power cord of your router and unplug it from the power outlet. -- Wait for at least 30 seconds to allow the router to completely shut down. -- Plug the power cord back into the power outlet. -- Wait for the router to boot up again. This may take around 2-5 minutes. -- Once the router is back up, check your internet connection to see if it’s working properly. - -### Reboot a Modem with the Reset Button - -- Find the reset button on the back or bottom of the modem. -- Press and hold the reset button for 30 seconds. -- Release the button when the power light turns another color (usually amber/orange). -- Wait for the modem to fully reboot and the lights to stabilize. - -### My 3Nodes go offline after a modem reboot. Is there a way to prevent this? - -Yes, there are many ways to prevent this. An easy solution is to set the DHCP server to reserve local IPs for the 3Nodes MAC addresses. - -This problem is also preventable if your router stays online during the modem reboot. - -Indeed, rebooting the 3Nodes is necessary when there are local IP changes, as 3Nodes are addressed a local IP addresses when they are booted. - -The DHCP will addresses any local IP address that is available when you are booting a 3Node. Reserving local IP addresses is a good TF farming practice. - - - -### When I try to access iDRAC on a web browswer, even with protected mode off, I get the error The webpage cannot be found, what can I do? - -Open iDRAC in the Internet Explorer emulator extension (IE Tab) in Chrome, then update iDRAC. It should work elsewhere then. Sometimes, it will be needed to add "ST1=code" at the end of the IE Tab url. - - - -### When I boot my 3Node, it reaches the Welcome to Zero-OS window, but it doesn't boot properly and there's an error message: failed to load object : type substrate..., what can I do? - -Usually simply rebooting the 3Node fixes this problem. - -### I want redundancy of power for my 3 nodes. I have two PSU on my Dell server. What can I do? - -Make sure you enable the Hot Spare feature. This feature is accessible in iDRAC Settings - Power Configuration. Other servers might have this function, with a different name and configuration. Check the server's manual for more details. - -### I switch the ethernet cable to a different port when my 3Node was running. Internet connection is lost. What can I do? - -When your 3Node boots, Zero-OS marks the NIC port. This means you cannot change NIC port when your 3Node is running. You can either put back the ethernet cable in the initial NIC port, or reboot the 3Node. At boot, Zero-OS will marks the new NIC port as the main entry. - - -## Advanced Post Build Troubleshooting - -In this section, we cover notions such as how to connect a screen and look for errors, how to address certain errors, etc. - -### Access the Error/Log Screen - -To access the error/log screen, connect a monitor to your 3Node and on the Zero-OS console, hit alt-F2 to open up the Error/Log Screen, and hit alt-F3 to go back to the main screen. - -### Can I use a VGA to HDMI adaptor to connect a TV screen or monitor to the 3Node? I tried to boot a 3Node with a VGA to HDMI adaptor but the boot fails, what can I do? - -This might work, but it has been reported by farmers that Zero-OS might have difficulties booting when this is done with a VGA/HDMI adaptor on a TV screen. This is most likely due to the TV screen not supporting the output once the system loaded into Zero-OS. The easy fix to this issue is to use a standard computer monitor with a VGA plug. - - -### My 3Node is running on the Grid, but when I plugged in the monitor, it states: Disabling IR #16. Is there a problem? - -In general, you can simply ignore this error statement. This error is linked to the Nvidia binary driver. It simply means that your 3Node lost connection with the graphic card (by unplugging and replugging the monitor for example). - -### Address Certain Errors - -Once you had access to the error/log screen and took notes of the errors, you can look for fixes in the manual. This troubleshooting section is a good place to look for solutions. - -If you could not find any fixes to your issues, go to the next section to ask for further assistance. - -## Get Further Assistance - -If you've read this whole section and tried different troubleshooting methods to no avail, do not lose hope! You can get further assistance and we will most surely resolve your issues. - -You can contact the [ThreeFold support team](https://threefoldfaq.crisp.help/en/) and raise a ticket to get further assistance. - -Also, you can ask questions on the [ThreeFold Forum](https://forum.threefold.io/) or on the [ThreeFold Farmer Telegram Channel](https://t.me/threefoldfarmers). +- [Build Troubleshooting](farming_troubleshooting_tips.md#build-troubleshooting) +- [Basic Post Build Troubleshooting](farming_troubleshooting_tips.md#basic-post-build-troubleshooting) +- [Advanced Post Build Troubleshooting](farming_troubleshooting_tips.md#advanced-post-build-troubleshooting) +- [Memory Troubleshooting](farming_troubleshooting_tips.md#memory-troubleshooting) +- [Get Further Assistance](farming_troubleshooting_tips.md#get-further-assistance) \ No newline at end of file diff --git a/collections/farmers/farming_troubleshooting_tips.md b/collections/farmers/farming_troubleshooting_tips.md new file mode 100644 index 0000000..1bb552d --- /dev/null +++ b/collections/farmers/farming_troubleshooting_tips.md @@ -0,0 +1,494 @@ +

Farming Troubleshooting Tips

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Build Troubleshooting](#build-troubleshooting) + - [Set the BIOS](#set-the-bios) + - [BIOS Troubleshooting](#bios-troubleshooting) + - [When running wipefs to wipe my disks on Linux, I get either of the following errors: "syntax error near unexpected token" or "Probing Initialized Failed". Is there a fix?](#when-running-wipefs-to-wipe-my-disks-on-linux-i-get-either-of-the-following-errors-syntax-error-near-unexpected-token-or-probing-initialized-failed-is-there-a-fix) + - [Disk Not Recognized by Zero-OS](#disk-not-recognized-by-zero-os) + - [Onboard Storage](#onboard-storage) + - [When I tried to boot my 3Node, at some point the screen went black, with or without a blinking hyphen or dash. What could cause this and what could I do to resolve the issue?](#when-i-tried-to-boot-my-3node-at-some-point-the-screen-went-black-with-or-without-a-blinking-hyphen-or-dash-what-could-cause-this-and-what-could-i-do-to-resolve-the-issue) + - [I get the error Certificate is not yet valid when booting my 3Node server, what can I do?](#i--get-the-error-certificate-is-not-yet-valid-when-booting-my-3node-server-what-can-i-do) + - [My SSD is sometimes detected as HDD by Zero-OS when there is a reboot. Is there a fix or a way to test the SSD disk?](#my-ssd-is-sometimes-detected-as-hdd-by-zero-os-when-there-is-a-reboot-is-there-a-fix-or-a-way-to-test-the-ssd-disk) + - [My 3Node uses only PCIe adapters and SSD NVME disks. Do I need the RAID controller on?](#my-3node-uses-only-pcie-adapters-and-ssd-nvme-disks-do-i-need-the-raid-controller-on) + - [My 3Node has 2 ethernet ports in the back, with one written AMT above, what does it mean? Can I use this port to connect my 3Node to the ThreeFold Grid?](#my-3node-has-2-ethernet-ports-in-the-back-with-one-written-amt-above-what-does-it-mean-can-i-use-this-port-to-connect-my-3node-to-the-threefold-grid) + - [When I boot my Dell server, I get the message: All of the disks from your previous configuration are gone... Press any key to continue or 'C' to load the configuration utility. What can I do?](#when-i-boot-my-dell-server-i-get-the-message-all-of-the-disks-from-your-previous-configuration-are-gone-press-any-key-to-continue-or-c-to-load-the-configuration-utility-what-can-i-do) + - [When booting a 3Node, how to fix the error: "no disks: registration failed"?](#when-booting-a-3node-how-to-fix-the-error-no-disks-registration-failed) + - [I have trouble connecting the 3Node to the Grid with a 10GB NIC card. What can I do?](#i-have-trouble-connecting-the-3node-to-the-grid-with-a-10gb-nic-card-what-can-i-do) + - [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) + - [When booting a 3Node, I get the message: failed to register node: failed to create node: failed to submit extrinsic: Invalid Transaction: registration failed. What could fix this?](#when-booting-a-3node-i-get-the-message-failed-to-register-node-failed-to-create-node-failed-to-submit-extrinsic-invalid-transaction-registration-failed-what-could-fix-this) + - [I did a format on my SSD disk, but Zero-OS still does not recognize them. What's wrong?](#i-did-a-format-on-my-ssd-disk-but-zero-os-still-does-not-recognize-them-whats-wrong) + - [My 3Node doesn't boot properly without a monitor plugged in. What can I do?](#my-3node-doesnt-boot-properly-without-a-monitor-plugged-in-what-can-i-do) + - [My 3Node won't boot without disabling the Secure Boot option, is it safe?](#my-3node-wont-boot-without-disabling-the-secure-boot-option-is-it-safe) + - [When booting the 3Node, I get the error Network interface detected but autoconfiguration failed. What can I do?](#when-booting-the-3node-i-get-the-error-network-interface-detected-but-autoconfiguration-failed-what-can-i-do) + - [When I try to boot my 3Node, the fans start spinning fast with a loud noise and the screen is black. What can I do to resolve this?](#when-i-try-to-boot-my-3node-the-fans-start-spinning-fast-with-a-loud-noise-and-the-screen-is-black-what-can-i-do-to-resolve-this) + - [When booting Zero-OS with IPV6 configurations, I get the errors (1) dial tcp: address IPV6-address too many columns in address and (2) no pools matches key: not routable. What can I do to fix this issue?](#when-booting-zero-os-with-ipv6-configurations-i-get-the-errors-1-dial-tcp-address-ipv6-address-too-many-columns-in-address-and-2-no-pools-matches-key-not-routable-what-can-i-do-to-fix-this-issue) + - [I try to boot a 3Node, but I get the message no route with default gateway found. What does it mean?](#i-try-to-boot-a-3node-but-i-get-the-message-no-route-with-default-gateway-found-what-does-it-mean) + - [When booting a 3Node, Zero-OS downloads fine, but then I get the message: error no route with default gateway found, and the message: info check if interface has a cable plugged in. What could fix this?](#when-booting-a-3node-zero-os-downloads-fine-but-then-i-get-the-message-error-no-route-with-default-gateway-found-and-the-message-info-check-if-interface-has-a-cable-plugged-in-what-could-fix-this) + - [How can I update Dell and HP servers to Intel E5-2600v2, E5-2400v2 and E5-4600v2, when applicable?](#how-can-i-update-dell-and-hp-servers-to-intel-e5-2600v2-e5-2400v2-and-e5-4600v2-when-applicable) + - [How can I update the firmware and driver of a Dell PowerEdge server?](#how-can-i-update-the-firmware-and-driver-of-a-dell-poweredge-server) + - [When I boot a 3Node in UEFI mode, it gets stuck at: Initializing Network Device, is there a way to fix this?](#when-i-boot-a-3node-in-uefi-mode-it-gets-stuck-at-initializing-network-device-is-there-a-way-to-fix-this) + - [When I boot my 3Node, it gets stuck during the Zero-OS download. It never reaches 100%. What can I do to fix this issue?](#when-i-boot-my-3node-it-gets-stuck-during-the-zero-os-download-it-never-reaches-100-what-can-i-do-to-fix-this-issue) + - [When booting a 3Node, I get the error=“context deadline exceeded” module=network error=failed to initialize rmb api failed to initialized admin mw: failed to get farm: farm not found: object not found. What can I do to fix this issue?](#when-booting-a-3node-i-get-the-errorcontext-deadline-exceeded-modulenetwork-errorfailed-to-initialize-rmb-api-failed-to-initialized-admin-mw-failed-to-get-farm-farm-not-found-object-not-found-what-can-i-do-to-fix-this-issue) +- [Basic Post Build Troubleshooting](#basic-post-build-troubleshooting) + - [Reboot a 3Node](#reboot-a-3node) + - [Reboot a Router](#reboot-a-router) + - [Reboot a Modem with the Reset Button](#reboot-a-modem-with-the-reset-button) + - [My 3Nodes go offline after a modem reboot. Is there a way to prevent this?](#my-3nodes-go-offline-after-a-modem-reboot-is-there-a-way-to-prevent-this) + - [When I try to access iDRAC on a web browswer, even with protected mode off, I get the error The webpage cannot be found, what can I do?](#when-i-try-to-access-idrac-on-a-web-browswer-even-with-protected-mode-off-i-get-the-error-the-webpage-cannot-be-found-what-can-i-do) + - [When I boot my 3Node, it reaches the Welcome to Zero-OS window, but it doesn't boot properly and there's an error message: failed to load object : type substrate..., what can I do?](#when-i-boot-my-3node-it-reaches-the-welcome-to-zero-os-window-but-it-doesnt-boot-properly-and-theres-an-error-message-failed-to-load-object--type-substrate-what-can-i-do) + - [I want redundancy of power for my 3 nodes. I have two PSU on my Dell server. What can I do?](#i-want-redundancy-of-power-for-my-3-nodes-i-have-two-psu-on-my-dell-server-what-can-i-do) + - [I switch the ethernet cable to a different port when my 3Node was running. Internet connection is lost. What can I do?](#i-switch-the-ethernet-cable-to-a-different-port-when-my-3node-was-running-internet-connection-is-lost-what-can-i-do) +- [Advanced Post Build Troubleshooting](#advanced-post-build-troubleshooting) + - [Access the Error/Log Screen](#access-the-errorlog-screen) + - [Can I use a VGA to HDMI adaptor to connect a TV screen or monitor to the 3Node? I tried to boot a 3Node with a VGA to HDMI adaptor but the boot fails, what can I do?](#can-i-use-a-vga-to-hdmi-adaptor-to-connect-a-tv-screen-or-monitor-to-the-3node-i-tried-to-boot-a-3node-with-a-vga-to-hdmi-adaptor-but-the-boot-fails-what-can-i-do) + - [My 3Node is running on the Grid, but when I plugged in the monitor, it states: Disabling IR #16. Is there a problem?](#my-3node-is-running-on-the-grid-but-when-i-plugged-in-the-monitor-it-states-disabling-ir-16-is-there-a-problem) + - [Address Certain Errors](#address-certain-errors) +- [Memory Troubleshooting](#memory-troubleshooting) + - [Can I use different type of RAM for the same 3Node?](#can-i-use-different-type-of-ram-for-the-same-3node) + - [How can I know if the memory I am buying is correct for my specific hardware?](#how-can-i-know-if-the-memory-i-am-buying-is-correct-for-my-specific-hardware) + - [What do the terms RDIMM, LDIMM, UDIMM, LRDIMM, FBDIMM mean when it comes to RAM memory sticks?](#what-do-the-terms-rdimm-ldimm-udimm-lrdimm-fbdimm-mean-when-it-comes-to-ram-memory-sticks) + - [What is the difference between ECC and non-ECC memory?](#what-is-the-difference-between-ecc-and-non-ecc-memory) + - [How can I change the RAM memory sticks on my 3Nodes? How can I achieve dual channel configuration with sticks of RAM?](#how-can-i-change-the-ram-memory-sticks-on-my-3nodes-how-can-i-achieve-dual-channel-configuration-with-sticks-of-ram) + - [What does RAM mean?](#what-does-ram-mean) + - [What does DIMM mean when it comes to RAM sticks?](#what-does-dimm-mean-when-it-comes-to-ram-sticks) + - [I have 24 DIMMS ram slots on my server. Can I use them all?](#i-have-24-dimms-ram-slots-on-my-server-can-i-use-them-all) +- [Get Further Assistance](#get-further-assistance) +--- + +## Introduction + +We cover different ways and levels to troubleshoot farming issues. + +## Build Troubleshooting + +In this section, we cover notions such as how to wipe disks, how to set the BIOS configurations and more. + +### Set the BIOS + +You need to set the BIOS properly for your 3Node to boot with Zero-OS. + +The basic information is available [here](5_set_bios_uefi.md#the-essential-features-of-biosuefi-for-a-3node). + +### BIOS Troubleshooting + +You might have to try UEFI first and if it doesn't work, try BIOS. Usually when this is the case (UEFI doesn't work with your current computer), the following message will be shown: + +> Initializing Network Devices... +And then... nothing. This means that you are still in the BIOS of the hardware and boot is not even started yet. When this happens, try the BIOS mode of your computer. + +### When running wipefs to wipe my disks on Linux, I get either of the following errors: "syntax error near unexpected token" or "Probing Initialized Failed". Is there a fix? + +Many different reasons can cause this issue. When you get that error, sometimes it is because your are trying to wipe your boot USB by accident. If this is not the case, and you really are trying to wipe the correct disk, here are some fixes to try out, with the disk `sda` as an example: + +* Fix 1: + * Force the wiping of the disk: + * ``` + sudo wipefs -af /dev/sda + ``` +* Fix 2: + * Unmount the disk then wipe it: + * ``` + sudo umount /dev/sda + ``` + * ``` + sudo wipefs -a /dev/sda + ``` + +### Disk Not Recognized by Zero-OS + +If you're having trouble getting your disks recognized by Zero-OS, some farmers have had success enabling AHCI mode for SATA in their BIOS. + +### Onboard Storage + +If you are using a server with onboard storage and are having issues, there are many ways to troubleshooting this. + +You can use the on board storage on a server without RAID. You can [re-flash](https://fohdeesha.com/docs/perc.html) the RAID card, turn on HBA/non-RAID mode, or install a different card. There is no need for RAID with ThreeFold farming. + +It's usually easy to set servers such as a HP Proliant with the HBA mode. For Dell servers, you can either cross-flash the RAID controller with an “IT-mode-Firmware” (see this [video](https://www.youtube.com/watch?v=h5nb09VksYw)) or get a DELL H310-controller (which has the non-RAID option). Otherwise, you can install a NVME SSD with a PCIe adaptor, and turn off the RAID controller. + + + + +### When I tried to boot my 3Node, at some point the screen went black, with or without a blinking hyphen or dash. What could cause this and what could I do to resolve the issue? + +There is a possibility that this happens because you are booting your 3Node on a HDD. A 3Node needs a minimum of 500GB of SSD to work properly. + +Also, make sure that you are using the correct boot option (Legacy BIOS or UEFI) in Settings and that it corresponds to the correct booting image on the ThreeFold Bootstrap page. + +This problem often arises when you plug your disks in the wrong controller. For example, try unplugging the disks from the SAS controller, and plug them in the SATA controller. Also, disable the SAS controller if needed. + +In a Legacy BIOS boot, make sure Legacy is enabled and disable *Data Execution Prevention* if possible. + +Also, it might have to do with your RAID controller configuration. Make sure this is properly set. For example, configuring all the HDD disks into one logical disk can fix this problem, or re-flashing the RAID card can also help. + + + +### I get the error Certificate is not yet valid when booting my 3Node server, what can I do? + +Make sure your firmware is up to date. If necessary, reinstall it. You might have to install and then re-install the firmware if your system is very old. + + + +### My SSD is sometimes detected as HDD by Zero-OS when there is a reboot. Is there a fix or a way to test the SSD disk? + +If your SSD disk shows as HDD, usually you can reboot the 3Node and Z-OS adjusts correctly. + +Anyone experiencing frequently this issue where Z-OS sometimes detects an SSD as HDD can try the following: + +* Boot up a live Ubuntu Desktop image +* Run the benchmark utility within the Disks app +* Check if the seektime of the disk is sufficient for Z-OS + * If the seektime is above 0.5ms, Z-OS will consider your SSD as HDD + +**Detailed Steps:** + +* Boot a Ubuntu Linux live USB +* Install **gnome-disks** if it isn't already installed: + * ``` + sudo apt install gnome-disks + ``` +* Open the application launcher and search for **Disks** +* Select your disk +* Click on the tree dots menu +* Select **Benchmark Disk...** + * Use the default parameters + * **Transfer rate**: This is not relevant for our current test + * You can set to it to minimum (e.g. 2) + * **Sample size**: 10 MB is sufficient +* Check the average access time on the [ThreeFold repository](https://www.github.com/threefoldtech/seektime) + * Check seek time for HDD and SSD + * A SSD needs to be <=0.5ms +* If the result is above 0.5ms, this is why Z-OS doesn't recognize the disk properly + * You can then run diagnostics (e.g. smartmontools) + * If this is not fixable, you should change disk (e.g. take a more performing disk) + +Note: The green dots on the output represent seektime and that's what Z-OS is looking at. Specifically, it checks that the average seektime is below 0.5ms. If the seektime is above this, Z-OS will consider your SSD as HDD. + +### My 3Node uses only PCIe adapters and SSD NVME disks. Do I need the RAID controller on? + +The onboard RAID controller is not linked to your PCIe SSDs. In this case, you can switch the RAID controller off. + + +### My 3Node has 2 ethernet ports in the back, with one written AMT above, what does it mean? Can I use this port to connect my 3Node to the ThreeFold Grid? + +First, let's define the term AMT. It means: Active Management Technology. Without going into too much details, it is to remotely access servers via the network at the BIOS level. Thus, you should plug the ethernet cable in the port next to AMT, and not into the AMT port. You can explore AMT properties if you want remote access to your server. + + +### When I boot my Dell server, I get the message: All of the disks from your previous configuration are gone... Press any key to continue or 'C' to load the configuration utility. What can I do? + +Many changes to your server can lead to this message. + +Usually, the easiest solution is to reset the disk configuration in iDRAC's configuration utility. + +What can causes this message: + +1. During a new installation, the cables connecting to your external storage are not wired to the correct ports. +2. Your RAID adapter has failed. +3. Your SAS cables are not plugged properly or are malfunctioning. + +Note: Resetting the configuration will destroy all data on all virtual disks. Make sure you know what you are doing! In doubt, ask the TF community. + +### When booting a 3Node, how to fix the error: "no disks: registration failed"? + +There can be many different fixes for this error. Here are some troubleshooting tips to test separately: + +* In BIOS, enable AHCI +* Make sure to [wipe the disks](4_wipe_all_disks.md) of the 3Nodes +* If the 3Node has a RAID Controller: + * Disabled the RAID controller, OR; + * [Flash the RAID controller](https://fohdeesha.com/docs/perc.html) (i.e. crossflashing), OR; + * Change the controller to a Dell H310 controller (for Dell servers) +* Try the command **badblocks** (replace **sda** with your specific disk). Note that this command will delete all the data on the disk + * ``` + sudo badblocks -svw -b 512 -t 0x00 /dev/sda + ``` + +### I have trouble connecting the 3Node to the Grid with a 10GB NIC card. What can I do? + +As of now, Zero-OS sometimes has trouble with 10GB NIC card. The easiest solution to this is to connect your 3Node with the 1GB NIC card. This should solve the issue. More fine tuning might be needed to get your 3Node to work with a 10GB NIC card. Future Zero-OS version might solve this issue. + +### What does it mean when I see, during the 3Node boot, the message: error = context deadline exceeded? + +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? + +There are many potential answers to this. Perhaps the Host is offline, the service isn't running. This is usually the reason with TF Grid. It means the Grid is not responsive. In this case, try to boot the 3Node later. If it persists ask TF Support. + +There can also be other reasons. You might have connected to the wrong port. Perhaps you have configured iptables to block connections on that port. Your DNS might be improperly configured. You might have an Incorrect Network or Host Configuration. Many troubleshoots are possible. Here's a [good place to start](https://www.maketecheasier.com/fix-no-route-to-host-error-linux/). + + + +### How can I fix the error: "Network configuration succeed but Zero-OS kernel could not be downloaded" when booting a 3Node? + +To fix the error "Network configuration succeed but Zero-OS kernel could not be downloaded", you can try to restart the router and reboot the 3Node. This usually fixes the issue. If this doesn't work, check if the router is still functional. The cause of this issue might be that your router is broken. + + + +### Using SAS disks, I get the error; "No ssd found, failed to register". What can I do to fix this? + +First make sure to wipe the disks and then boot your 3Node. If you've wiped the disks and it doesn't work, it's been reported that using the command "diskpart clean command" on Windows can fix this issue. + + +### When booting a 3Node, I get the message: failed to register node: failed to create node: failed to submit extrinsic: Invalid Transaction: registration failed. What could fix this? + +The most probable fix to this error is simply to properly [wipe your disks](4_wipe_all_disks.md). + + +### I did a format on my SSD disk, but Zero-OS still does not recognize them. What's wrong? + +Formatting is one thing, but to boot properly, Zero-OS needs to work on a completely wiped disk. Thus, make sure you [wipe your disks](4_wipe_all_disks.md). Formatting is not enough. + +### My 3Node doesn't boot properly without a monitor plugged in. What can I do? + +First, try to disable the "Halt On" mode in BIOS. If you do not have this option, try simply enabling Legacy Support (Dell BIOS for example). If this doesn't work, try to plug in a Dummy Plug/Headless Ghost/Display Emulator in your 3Node. This will simulate a plugged monitor. This should fix the problem. + + + + +### My 3Node won't boot without disabling the Secure Boot option, is it safe? + +In the case where you want to boot Zero-OS, disabling Secure Boot option is safe. With Secure Boot disabled, it can be easier or even necessary when it comes to booting Zero-OS. Secure Boot is used when you want to lock the BIOS/UEFI settings. + + + + +### When booting the 3Node, I get the error Network interface detected but autoconfiguration failed. What can I do? + +First make sure your network cable is plugged in and that your DHCP is working and responding. If you change the NIC port of the ethernet cable, make sure to reboot the 3Node so Zero-OS can change the NIC port attribution. + +Some farmers reported that this got fixed by simply powering off the 3Node(s), the router and modem for 2 minutes then powering it all back on. Resetting the modem and router (switch on the hardware) in the process can also help. + +If this doesn't work, try to upgrade the firmware of the NIC and the motherboard. If this still doesn't work, the NIC card might be broken. Try with another NIC card. + + +### When I try to boot my 3Node, the fans start spinning fast with a loud noise and the screen is black. What can I do to resolve this? + +There may be several causes to this issue. You can try to remove all the RAM sticks, to clean the dust and then to reseat the RAM sticks. If it still doesn't resolve the issue, you can check the RAM sticks one by one to see if one is malfunctioning. This often resolves the issue. Also, some cables might not be properly connected. + + + +### When booting Zero-OS with IPV6 configurations, I get the errors (1) dial tcp: address IPV6-address too many columns in address and (2) no pools matches key: not routable. What can I do to fix this issue? + +This usually means that the IPV6 attributed is not valid. It is also often caused when the DNS configuration does not resolve IPV6 correctly. + +To fix this issue, it is often necessary to adjust the IPV6 settings related to the router and the modem. Confirming with your Internet service provider (ISP) that the IPV6 settings are properly configured could also be necessary to fix the issue. + + + +### I try to boot a 3Node, but I get the message no route with default gateway found. What does it mean? + +First, let's see the main terms. Default gateway acts as an access point to other networks, in this case the TF Grid, when there is a back and forth exchange of data packets. + +While the last question implied a communication problem from the Grid, this error message usually means that the 3Node has communication problem. In short, it has difficulty reaching the TF Grid. There are many ways to troubleshoot this error. First, let's give the most direct solution. Make sure you have a direct connection with your Internet Service Provider (ISP): your 3Node should be connected to a router or a switch via an ethernet cable. Wifi doesn't work. Make sure your DHCP is set correctly. + +If the problem persists, check the default gateway of your 3Node and then make sure your router can reach it. + + +### When booting a 3Node, Zero-OS downloads fine, but then I get the message: error no route with default gateway found, and the message: info check if interface has a cable plugged in. What could fix this? + +Make sure you have network stack enabled in BIOS. If so, check you ethernet port and make sure that it's clean. Also make sure the ethernet rj45 connectors are clean on both ends. If that does not work, verify the state of your SATA cables. If all this doesn't work, download and re-install Zero-OS. + + + + +### How can I update Dell and HP servers to Intel E5-2600v2, E5-2400v2 and E5-4600v2, when applicable? + +There are many ressources online with steps on how to do this. You can check this [youtube video](https://www.youtube.com/watch?v=duzrULLtonM) on Dell and HP servers, as welll as this [documentation](https://ixnfo.com/en/hp-proliant-gen8-update-to-support-cpu-e5-2600v2-e5-2400v2-e5-4600v2.html) for HP Proliant Gen8. + + + +### How can I update the firmware and driver of a Dell PowerEdge server? + +Dell has excellen documentation for this. Read [this](https://www.dell.com/support/kbdoc/en-us/000128194/updating-firmware-and-drivers-on-dell-emc-poweredge-servers) for the detailed steps. + + + +### When I boot a 3Node in UEFI mode, it gets stuck at: Initializing Network Device, is there a way to fix this? + +In short, booting the 3Node in BIOS mode instead of UEFI mode usually fixes this issue. + +You can make bootable USB with the USB option of the [Zero-OS bootstrap image page](https://bootstrap.grid.tf/). Make sure to boot your server using BIOS and not UEFI. In the boot sequence, make the USB as your first choice to boot. + + + +### When I boot my 3Node, it gets stuck during the Zero-OS download. It never reaches 100%. What can I do to fix this issue? + +Here are some ways to troubleshoot your 3Node when it cannot download Zero-OS completely (to 100%): + +* Sometimes, just rebooting the 3Node and/or trying a little bit later can work. +* It can help to reboot the modem and the router. +* Make sure your BIOS/UEFI is up to date. Updating the BIOS/UEFI can help. +* It can also help to set the correct date and time. + + + +### When booting a 3Node, I get the error=“context deadline exceeded” module=network error=failed to initialize rmb api failed to initialized admin mw: failed to get farm: farm not found: object not found. What can I do to fix this issue? + +Usually, the simple fix to this issue is to make sure that your bootstrap image is on the same network as your farm. For example, if you created your farm on the Main net, you should use a Main net Zero-OS bootstrap image. + +## Basic Post Build Troubleshooting + +In this section, we cover notions such as how to reboot node or a router, how to check the network signal path and more. + +### Reboot a 3Node + +To reboot your 3Node, simply turn if off manually then turn it back on. + +### Reboot a Router + +- Locate the power cord of your router and unplug it from the power outlet. +- Wait for at least 30 seconds to allow the router to completely shut down. +- Plug the power cord back into the power outlet. +- Wait for the router to boot up again. This may take around 2-5 minutes. +- Once the router is back up, check your internet connection to see if it’s working properly. + +### Reboot a Modem with the Reset Button + +- Find the reset button on the back or bottom of the modem. +- Press and hold the reset button for 30 seconds. +- Release the button when the power light turns another color (usually amber/orange). +- Wait for the modem to fully reboot and the lights to stabilize. + +### My 3Nodes go offline after a modem reboot. Is there a way to prevent this? + +Yes, there are many ways to prevent this. An easy solution is to set the DHCP server to reserve local IPs for the 3Nodes MAC addresses. + +This problem is also preventable if your router stays online during the modem reboot. + +Indeed, rebooting the 3Nodes is necessary when there are local IP changes, as 3Nodes are addressed a local IP addresses when they are booted. + +The DHCP will addresses any local IP address that is available when you are booting a 3Node. Reserving local IP addresses is a good TF farming practice. + + + +### When I try to access iDRAC on a web browswer, even with protected mode off, I get the error The webpage cannot be found, what can I do? + +Open iDRAC in the Internet Explorer emulator extension (IE Tab) in Chrome, then update iDRAC. It should work elsewhere then. Sometimes, it will be needed to add "ST1=code" at the end of the IE Tab url. + + + +### When I boot my 3Node, it reaches the Welcome to Zero-OS window, but it doesn't boot properly and there's an error message: failed to load object : type substrate..., what can I do? + +Usually simply rebooting the 3Node fixes this problem. + +### I want redundancy of power for my 3 nodes. I have two PSU on my Dell server. What can I do? + +Make sure you enable the Hot Spare feature. This feature is accessible in iDRAC Settings - Power Configuration. Other servers might have this function, with a different name and configuration. Check the server's manual for more details. + +### I switch the ethernet cable to a different port when my 3Node was running. Internet connection is lost. What can I do? + +When your 3Node boots, Zero-OS marks the NIC port. This means you cannot change NIC port when your 3Node is running. You can either put back the ethernet cable in the initial NIC port, or reboot the 3Node. At boot, Zero-OS will marks the new NIC port as the main entry. + + +## Advanced Post Build Troubleshooting + +In this section, we cover notions such as how to connect a screen and look for errors, how to address certain errors, etc. + +### Access the Error/Log Screen + +To access the error/log screen, connect a monitor to your 3Node and on the Zero-OS console, hit alt-F2 to open up the Error/Log Screen, and hit alt-F3 to go back to the main screen. + +### Can I use a VGA to HDMI adaptor to connect a TV screen or monitor to the 3Node? I tried to boot a 3Node with a VGA to HDMI adaptor but the boot fails, what can I do? + +This might work, but it has been reported by farmers that Zero-OS might have difficulties booting when this is done with a VGA/HDMI adaptor on a TV screen. This is most likely due to the TV screen not supporting the output once the system loaded into Zero-OS. The easy fix to this issue is to use a standard computer monitor with a VGA plug. + + +### My 3Node is running on the Grid, but when I plugged in the monitor, it states: Disabling IR #16. Is there a problem? + +In general, you can simply ignore this error statement. This error is linked to the Nvidia binary driver. It simply means that your 3Node lost connection with the graphic card (by unplugging and replugging the monitor for example). + +### Address Certain Errors + +Once you had access to the error/log screen and took notes of the errors, you can look for fixes in the manual. This troubleshooting section is a good place to look for solutions. + +If you could not find any fixes to your issues, go to the next section to ask for further assistance. + +## Memory Troubleshooting + +### Can I use different type of RAM for the same 3Node? + +No. Always use the same type of RAM per 3Node. If you use RDIMM, go all RDIMM, etc. Check your hardware specifications to make sure you have the right type of memory. + + + +### How can I know if the memory I am buying is correct for my specific hardware? + +To be sure, look into the owner's manual of your specific computer. + +In general, you can go to [Memory.net](https://memory.net/) and look for your specific computer model. As general steps, select your computer's system in *By system*, then select the series and then select the specific model of the series. You will then see available memories to buy from memory.net. You can also simply read the documentation at the bottom. The memory type supported by your computer will be explained. Then you can buy the memory needed from any other computer store. + +For servers, you can check with Cloudninja's documentation [here](https://cloudninjas.com/pages/server-memory). Search for your specific hardware and look for the compatible memory. This reference is good for rack and tower servers. + + + +### What do the terms RDIMM, LDIMM, UDIMM, LRDIMM, FBDIMM mean when it comes to RAM memory sticks? + +Well first, the DIMM means dual inline memory module. + +* U stands for or unregistered (or unbuffered). + +* R stands for registered memory. + +* LR stands for load-reduced. + +* FB stands for fully-buffered. + + + +### What is the difference between ECC and non-ECC memory? + +ECC means error correction code memory. This type of memory can detect and correct data corruption. Non-ECC mostly cannot detect nor correct, but some can detect, but never correct data corruption. Check your hardware specifications to make sure you have the right type of memory (ECC or non-ECC). + + +### How can I change the RAM memory sticks on my 3Nodes? How can I achieve dual channel configuration with sticks of RAM? + +First, always use RAM sticks of the same size and type. It should be noted on your motherboard which slots to populate first. As a general guide, there is usually 2 slots A and B, with each 2 memory stick entries. You must then install the ram sticks on A1 and B1 in order to achieve dual channel, then A2 and B2 if you have more (visual order: A1 A2 B1 B2). + +> Example: You want to start with your largest sticks, evenly distributed between both processors and work your way down to your smallest. Let's take an example with 2 processors as well as 4x 16GB sticks and 4x 8GB sticks. The arrangement would be A1-16GB, B1-16GB, A2-16GB, B2-16GB, A3-8GB, B3-8GB, A4-8GB, B4-8GB. Avoid odd numbers as well. You optimally want pairs. So if you only have 5x 8GB sticks, only install 4 until you have an even 6. + + +### What does RAM mean? + +RAM means random access memory. Those type of memory can be read and changed in any order. + + + + +### What does DIMM mean when it comes to RAM sticks? + +It means *dual in-line memory module*. This type of computer memory is natively 64 bits, enabling fast data transfer. + + + +### I have 24 DIMMS ram slots on my server. Can I use them all? + +Be careful when installing memory on a server. Always check your server's documentation to make sure your RAM sticks combination are correct. + +For example, on the Dell R720, you can have 24x16gb RAM ECC sticks, but it can only handle 16 Quad ranked DIMMs. In this case, you can fill up all slots with registered DIMMs if you have a maximum of 4 quad DIMMS ranked on each CPU. + + +## Get Further Assistance + +If you've read this whole section and tried different troubleshooting methods to no avail, do not lose hope! You can get further assistance and we will most surely resolve your issues. + +You can contact the [ThreeFold support team](https://threefoldfaq.crisp.help/en/) and raise a ticket to get further assistance. + +Also, you can ask questions on the [ThreeFold Forum](https://forum.threefold.io/) or on the [ThreeFold Farmer Telegram Channel](https://t.me/threefoldfarmers). \ No newline at end of file diff --git a/collections/farming/proof_of_utilization.md b/collections/farming/proof_of_utilization.md index abadba4..7dd03b8 100644 --- a/collections/farming/proof_of_utilization.md +++ b/collections/farming/proof_of_utilization.md @@ -15,9 +15,9 @@ ## Introduction -ThreeFold Token ("TFT") is an Utility token and gets generated by ThreeFold Farmers, see [proof-of-capacity](proof_of_capacity.md) for more information. +ThreeFold Token ("TFT") is the token of the ThreeFold ecosystem. -Each ThreeFold Grid user can now use this capacity. The ThreeFold Chain ("TFChain") - ThreeFold Blockchain will track the utilization of this capacity. This process is called Proof-of-Utilization. Each hour the utilization is being tracked on the blockchain and charged to the capacity's user. +Each ThreeFold Grid user can use the capacity on the grid by using TFT. The ThreeFold Chain ("TFChain") - ThreeFold Blockchain will track the utilization of this capacity. This process is called Proof-of-Utilization. Each hour the utilization is being tracked on the blockchain and charged to the capacity's user. ## What is Proof-of-Utilization? diff --git a/collections/kristof/cocreation.md b/collections/kristof/cocreation.md new file mode 100644 index 0000000..e85a214 --- /dev/null +++ b/collections/kristof/cocreation.md @@ -0,0 +1,7 @@ + +![](https://threefold.info/cocreation/img/love.png) + +A topic I am passionate and have been thinking about for + 20 years (-: + + +see [https://threefold.info/cocreation](https://threefold.info/cocreation) \ No newline at end of file diff --git a/collections/kristof/funding.md b/collections/kristof/funding.md index a6a6dd0..df5ed06 100644 --- a/collections/kristof/funding.md +++ b/collections/kristof/funding.md @@ -14,6 +14,18 @@ We are aiming to raise **30 million USD**, and the fundraise has a novel structu - The conversion can be made into shares of the mother company or one of our high-profile startups such as **TF9**. It can even be converted to tokens if relevant. - The investor's risk is low due to the diverse portfolio of startups we own, including **ThreeFold**, the **Digital Freezone**, **TF9**, and more. -> [http://funding007.ourworld.tf](http://funding007.ourworld.tf/) -**Please give us feedback.** \ No newline at end of file + +**If interested to know more, ask us for more info: kristof@incubaid.com** + + + +
+ +
+ + diff --git a/collections/kristof/info.md b/collections/kristof/info.md index 5fb2c1b..0216af2 100644 --- a/collections/kristof/info.md +++ b/collections/kristof/info.md @@ -1,8 +1,4 @@ # Info - - [Tier-S datacenter as alternative on Tier-3](https://info.ourworld.tf/datacenter) - [Antidote for Cyber Pandemic](https://info.ourworld.tf/datacenter) -- [Our launch of our Internet Token](https://threefold.info/projectinca) - - our community project where we relaunch our tokens for the ThreeFold Grid - - **compute might be the currency of the future** \ No newline at end of file diff --git a/collections/kristof/owh.md b/collections/kristof/owh.md index 42ad9ba..01b9b9a 100644 --- a/collections/kristof/owh.md +++ b/collections/kristof/owh.md @@ -8,6 +8,17 @@ This venture creator has a novel approach how to use technology to do good. We believe high tech can do incredible things if used properly. + +
+ +
+ + + > [more info here](https://threefold.docsend.com/view/s/d84sh3nz94rqgjfj) We are fundraising In OurWorld as a SAFE investment instrument. diff --git a/collections/kristof/projects_tech.md b/collections/kristof/projects_tech.md index 47e59a6..9dd1ff5 100644 --- a/collections/kristof/projects_tech.md +++ b/collections/kristof/projects_tech.md @@ -1,6 +1,15 @@ +## Technology Projects +Started from our venture creator: -!!wiki.include page:owh -!!wiki.include page:threefold -!!wiki.include page:tf9 \ No newline at end of file + +
+ +
+ + diff --git a/collections/kristof/projects_tech_copy.md b/collections/kristof/projects_tech_copy.md deleted file mode 100644 index ed4559a..0000000 --- a/collections/kristof/projects_tech_copy.md +++ /dev/null @@ -1,58 +0,0 @@ - - -## OurWorld Venture Creator - -Kristof is the founder and CEO of OurWorld Holding in Mauritius. - -![alt text](ourworld1.png) - -This venture creator has a novel approach how to use technology to do good. - -We believe high tech can do incredible things if used properly. - -> [more information in slides](https://threefold.docsend.com/view/3akkxddb7vutwrsx/d/xxq44minwftv2rgg) - -We are fundraising In OurWorld as a SAFE investment instrument. - -We are very excited about our tech projects - -- a global decentralized cloud -- a digital freezone, which can be a real "afe haven" for millions of people -- an education system which has already proven its value - -We are working on some super cool additional projects - -We are very much focussed on Africa right now, [see this intro document](http://africa.ourworld.tf) - -[Kristofs Official Profile](https://threefold.docsend.com/view/kipdw3c7fvf2r35s) - -## ThreeFold Decentralized Cloud - -![](tf.png) - -Founded by Internet 1.0 Pioneers - -About a decade ago, a group of passionate Internet & cloud veterans came together to build a system which can grow to a scalable, safe, compatible, and co-owned IT infrastructure. - -Today the TFGrid is on +50 countries and will launch soon on Solana, **[see this site for more condidential info](https://friends.threefold.info/solana/)**. - -> [see ThreeFold Website](https://threefold.io/) - -Threefold is 100% owned by our venture creator: OurWorld - -## TF9 our Belgium Tech company - -![alt text](tf9.png) - -Kristof is the founder and CEO of TF9 In Belgium. - -TF9 owns the IP (Intellectual Preperty) as has been used to create the ThreeFold Cloud. - -TF9 works with governments and large organizations to deliver 2 main usecases - -1. antidote to the Cyber Pandemic -2. [Tier S datacenter](https://info.ourworld.tf/datacenter) as a better way how deploy lots of AI, Internet & Cloud capacity fast. - -> [See TF9 Website: https://tf9.io](https://tf9.io/) - -TF9 is 100% owned by our venture creator: OurWorld \ No newline at end of file diff --git a/collections/kristof/tf9.md b/collections/kristof/tf9.md index 9910009..a915b88 100644 --- a/collections/kristof/tf9.md +++ b/collections/kristof/tf9.md @@ -5,11 +5,11 @@ Kristof is the founder and CEO of TF9 In Belgium. -TF9 owns the IP (Intellectual Preperty) as has been used to create the ThreeFold Cloud. +TF9 owns the IP (Intellectual Preperty) as has been used to create the ThreeFold Opensource Project. TF9 works with governments and large organizations to deliver 2 main usecases -1. antidote to the Cyber Pandemic +1. [Antidote to the Cyber Pandemic](https://info.ourworld.tf/cyberpandemic) 2. [Tier S datacenter](https://info.ourworld.tf/datacenter) as a better way how deploy lots of AI, Internet & Cloud capacity fast. > [See TF9 Website: https://tf9.io](https://tf9.io/) diff --git a/collections/kristof/threefold.md b/collections/kristof/threefold.md index e7f6900..424e22d 100644 --- a/collections/kristof/threefold.md +++ b/collections/kristof/threefold.md @@ -7,7 +7,6 @@ Founded by Internet 1.0 Pioneers About a decade ago, a group of passionate Internet & cloud veterans came together to build a system which can grow to a scalable, safe, compatible, and co-owned IT infrastructure. -Today the TFGrid is on +50 countries and will launch soon on Solana, **[see this site for more condidential info](https://friends.threefold.info/projectinca/)**. > [see ThreeFold Website](https://threefold.io/) diff --git a/collections/legal/definitions_legal.md b/collections/legal/definitions_legal.md index 57458a4..2a53396 100644 --- a/collections/legal/definitions_legal.md +++ b/collections/legal/definitions_legal.md @@ -9,30 +9,25 @@ Threefold is a peer-to-peer network of network, storage an compute capacity for All the ideas and content created for this concept are opensource and stored in github A group of volunteers and the ThreeFold Foundation maintain these repositories. -See the [ThreeFold Foundation](https://github.com/threefoldfoundation) on GitHub. +> See [https://github.com/threefoldfoundation](https://github.com/threefoldfoundation) ## ThreeFold Foundation (TFF) -The ThreeFold Foundation (ThreeFold DMCC in DUbai) is a participant in the bigger ThreeFold movement, the purpose of the movement is to bring the world a truly peer-to-peer internet. +The ThreeFold Foundation (ThreeFold_Dubai) is a participant in the bigger ThreeFold movement, the purpose of the movement is to bring the world a truly peer-to-peer internet. We acknowledge and support the many people and organizations around the world who bring crucial support to the growth and adoption of the ThreeFold_Grid. -See [ThreeFold Dubai](companies@@threefold_dubai) +See [ThreeFold Dubai](about@@threefold_dubai) > Work is ongoing to make the Foundation a global distributed concept with probably more than 1 legal entity. ## ThreeFold Tech (TFTech, TFTECH) -TFTech is a software tech company and is a major contributor to the software as used on the TFGrid. - -TFTech does not farm and ThreeFold Tokens and has no impact or does not give any direction to anything happening on the ThreeFold Grid or in relation to TFTokens. - -TFTech is the company who creates a lot of the opensource software as is used in the TFGrid. TFTech is also a contributor to the TF Foundation in the form of content or promotion, there is no legal connection in place. - -TFTech business model is to sell licenses and certify TFGrid farmers if that is what they require. - TF TECH NV, a Belgian limited liability company, having its registered office at Antwerpse Steenweg 19, B-9080 Lochristi, Belgium, registered with the Belgian Crossroads Bank of Enterprises under company number 0712.845.674 (RLP Gent, district Gent) +TF Tech is a software tech company and is a major contributor to the software as used on the TFGrid. + +See [TFTech](about@@threefold_tech) ## Non For Profit @@ -44,8 +39,9 @@ In the case of TFF following remarks might be useful - TFF has been funded by its original founders by means of loans or investment in kind or tokens, this money can be returned to the founders whenever cashflow allows (which is not the case yet). - TFF directors/shareholders do everything they can to only operate out of the best interests of the ThreeFold Project. - A project is under way to officialize the structure with strict governance e.g. a company called ThreeFold VZW has been created in Belgium with official governance around non for profit structure. This company is not used yet. Other alternatives are being researched at this moment (Aug 2020). +- ThreeFold_Dubai has farmed tokens which can be used as gifts towards contributors or employees. -## ThreeFold Grid (TFG) +## ThreeFold_Grid (TFG) The ThreeFold_Grid is a new, global neutral and sustainable network of IT infrastructure. On this Grid, IT capacity is indexed registered on the TFChain for easy discovery by purchasers. @@ -66,36 +62,44 @@ This Internet capacity is produced and allocated locally - similar to the way el - content delivery - test workloads for developers -## ThreeFold Token (TFT) +## ThreeFold_Token (TFT) -The ThreeFold Token is a digital Token which allows anyone to buy and sell IT Capacity on the TF Grid. This token only gets issued by the TFChain if a TF Pool gets connected to the TF Grid. +The ThreeFold_Token is a digital Token which allows anyone to buy and sell IT Capacity on the TF Grid. This token only gets issued by the TFChain if a TF Pool gets connected to the TF Grid. The TFChain can issue a maximum of 4 billion tokens (gen 2). -## TF Chain +## TFChain Group of blockchain related technologies as used by ThreeFold to accomplish the following: - store & trade your TFTs: uses Stellar Public Blockchain platform -- buy/sell capacity on the ThreeFold Grid -- register capacity of the ThreeFold Grid -- provision IT workloads on the ThreeFold Grid +- buy/sell capacity on the TFG: TFExplorer +- register capacity of the TFG: TFExplorer +- provision IT workloads on the TFG: TFExplorer - ... +> See the following [github repos](https://github.com/threefoldtech) and [https://github.com/threefoldfoundation/tft-stellar](https://github.com/threefoldfoundation/tft-stellar) + ## Zero-OS (ZOS) or Capacity Layer The Zero-OS is the software which makes it possible to convert any pool of hardware to become a pool of resource for the ThreeFold_Grid. -See [Zero-OS](https://github.com/threefoldtech/zos), our efficient stateless operating system based on the Linux kernel. +> See [Zero-OS](https://github.com/threefoldtech/zos) = Ultra Efficient Stateless Operating System + +## Zero-People or Autonomous Layer + +- [Jumpscale](https://github.com/threefoldtech/js-ng) = Automation Framework (self healing, ...) ## User - is the person/organization/company who buys capacity from the TF Grid - capacity can only be bought by means of TFTs -## TF Decentralized exchange (TF Exchange) +## TF Distributed exchange (TFExchange) -Since March 2020 based on Stellar integrated Decentralized exchange. +Since March 2020 based on Stellar integrated Decentralized exchange and before Atomic Swaps. +Mechanism for people to exchange TFT to other digital currencies in a decentralized way. +Atomic Swaps were difficult to use, this got resolved by switching to Stellar blockchain. # ThreeFold Farming @@ -103,12 +107,19 @@ Since March 2020 based on Stellar integrated Decentralized exchange. - is a compute/storage server which provides IT Capacity as source for the Cloud Units - a TFNode is part of a Farming Pool -- TFNodes are owned by TF Farmers. +- 3Nodes are owned by TF Farmers. - The TFNode runs the TF Operating System and TFChain (TFC). ## Cloud Units Units of IT capacity as sold from the TF Grid to Users. +More info see [here](cloud@@cloudunits) + +## ThreeFold Farming Pool (FP) + +A Pool of storage & compute hardware which allows to provision IT Capacity. + +Each Farming Pool consists out of 3Nodes which run the TF Operating System and TF Blockchain Software (TFChain) which allows anyone in the world to use this IT capacity to host their IT workloads (storage apps, archive capacity, web applications, artificial intelligence, iOT, docker containers, etc). ## ThreeFold Farmer @@ -127,11 +138,35 @@ Most TF Farmers use a ThreeFold Cooperative to become active because it hugely s The ThreeFold Farmer is the only party who owns the TF Farming Pool. -!!wiki.include page:'companies:threefold_farmingpool.md' +## ThreeFold Cooperative + +Any organization who helps a TF Farmer to become active on the TF Grid. + +A Cooperative can supply any or all of following services. + +- Selling required hardware kit for the Farming Pool (compute, storage, networking) to the TF Farmer (and logistics around it). +- Installing & testing the TF Operating System on the chosen hardware. +- Burn in testing of the chosen hardware: make sure the hardware is reliable and works following expectations. +- Configuration & Installation of the ThreeFold Farming Pool. +- Registration & Initialization of the ThreeFold Farming Pool. +- Delivering & Executing of hardware Warranty as specified on contract. +- Creation and Delivery of the ThreeFold Mobile App for the TF Farmer (allow people worldwide to order capacity using TFTs for the Farming Pool. +- Software support for the Farming Pool +- Training of the TF Farmer about TF Concepts + - how to use the TF Wallet + - how to safely store the TFT's + - how to go from TFT's to fiat currency like USD/EUR (and visa versa) + - how to register pricing info on the TF Grid + - how to integrate a fiat currency payment gateway into existing ecommerce website for the sales of TFT's or TF IT Capacity (e.g. integration with Stripe or other payment mechanism) + - how to consult/register information on the TFChain +- Hosting Services + - all services related to connectivity to the internet (routing, denial of service, firewalling, ...) + - rackspace & other datacenter services + - monitoring of the infrastructure (hardware and software). ## Do It Yourself Capacity -Unmanaged IT Capacity can exist everywhere; in people’s home, in mobile telephone masts, in utility cabinets, next to railways or motorways, anywhere where internet lines meet electrical outlets, any IT Hosting or Datacenter Facility. This capacity is deployed to the TF Grid and has no people involved to manage its operations (apart from the physical and network aspects). Farmers have no access to the TFNodes purchased. They can only use the capacity produced in the exact same way as any other user, i.e. through the TFChain, in a secure private and neutral way, equally applicable to all. +Unmanaged IT Capacity can exist everywhere; in people’s home, in mobile telephone masts, in utility cabinets, next to railways or motorways, anywhere where internet lines meet electrical outlets, any IT Hosting or Datacenter Facility. This capacity is deployed to the TF Grid and has no people involved to manage its operations (apart from the physical and network aspects). Farmers have no access to the 3Nodes purchased. They can only use the capacity produced in the exact same way as any other user, i.e. through the TFChain, in a secure private and neutral way, equally applicable to all. Unmanaged capacity provides the following 3 basic services @@ -150,7 +185,7 @@ Capacity which received certification as organized by ThreeFold Tech. Managed capacity is capacity that sits in a datacenter or other controlled environment where people operate and maintain supervision of the capacity connected to the TF Grid and published in the TF Directory. SLA (Service Level Agreements) are provided on this capacity like uptime, guaranteed bandwidth, response times, ... -TF Farmers have access to the TFNodes. +TF Farmers have access to the 3Nodes. Features Only Available In A Managed Capacity Farming Pool @@ -176,6 +211,16 @@ The Product has been defined on the contract who refers to this document. Is the person or company or organization who buys The Product from The Company +## ThreeFold Tech (TFTech) + +Software Technology company in Belgium. + +Has no direct relationship with the TFGrid or TFTokens. TFTech does not farm and ThreeFold_Tokens and has no impact or does not give any direction to anything happening on the ThreeFold_Grid or in relation to TFTokens. + +TFTech is the company who creates a lot of the opensource software as is used in the TFGrid. TFTech is also a contributor to the TF Foundation in the form of content or promotion, there is no legal connection in place. + +TFTech business model is to sell licenses and certify TFGrid farmers if that is what they require. + # Miscellaneous ## TF Wallet @@ -186,66 +231,67 @@ TF Wallet is part of the ThreeFold Connect app on mobile. # Sales Related Definitions -### "Acceptance" +### “Acceptance” means that any Deliverable has successfully completed the Acceptance process set forth in Section 4. Such Acceptance may be either explicit or implicit, i.e. in the absence of an explicit Rejection. -### "Acceptance Period" +### “Acceptance Period” means fifteen (15) days as from the Delivery Date, unless otherwise agreed to in the Sales Order or as provided under statutory law. -### "Customer" +### “Customer” means you or the customer entity identified in the Sales Order, as the case may be. -### "Deliverables" +### “Deliverables” means the Hardware, Software, Services (if any), or any deliverable specified in a Sales Order. -### "Delivery" +### “Delivery” means the act of making the Deliverables available for reception by the Customer in accordance with Section 4.1. -### "Delivery Date" +### “Delivery Date” means the ultimate date on which the Delivery may take place, as determined in the Sales Order. -### "Documentation" +### “Documentation” means all manuals, instructions and other documents (whether in hard copy, soft copy or web-based form) relating to, or necessary for, the use, operation or maintenance of the Deliverables, together with all enhancements, corrections, modifications and amendments to such documents that are furnished to Customer under this Agreement. -### "Effective Date" +### “Effective Date” means the date when the Agreement starts to operate, corresponding to the issuance date of the Sales Order. -### "Hardware" +### “Hardware” means any hardware to be provided by Company as specified in a Sales Order or Specific Agreement. -### "Party" +### “Party” means any party to this Agreement; -### "Rejection" +### “Rejection” means the explicit rejection of Deliverables by Customer, provided that the following cumulative conditions have all been completed: the Rejection has been notified by Customer to Company within the Acceptance Period (i.e. at the latest on the last day of the Acceptance Period); Customer has returned to Company all rejected Deliverables immediately after the Rejection notice; Any rejection that does not meet both aforementioned cumulative conditions shall not qualify as a Rejection and shall be deemed an implicit Acceptance. -### "Sales Order" +### “Sales Order” means any Sales Order generated electronically by Company to allow the Customer to order, including the details specified by Customer in the checkout of the Company website, or any document that the Parties mutually agree upon as the vehicle for procuring Hardware, Software and/or Services pursuant to this Agreement. -### "Services" +### “Services” means any services to be provided by Company to Customer as stipulated in the Sales Order. -### "Software" +### “Software” means the open source software connecting the Hardware to the ThreeFold network, all in machine readable, object code form, together with all enhancements, modifications, corrections and amendments thereto. -### "Specifications" +### “Specifications” means the technical requirements for, and performance standards of, the Deliverables as set forth in the Sales Order or Documentation provided to Customer. +{{#include ./terms_conditions/sub/the_single_source_truth.md}} \ No newline at end of file diff --git a/collections/projectinca/.heroscript_caller b/collections/projectinca/.heroscript_caller new file mode 100644 index 0000000..d1ae947 --- /dev/null +++ b/collections/projectinca/.heroscript_caller @@ -0,0 +1,2 @@ + +https://git.ourworld.tf/tfgrid/info_tfgrid/src/branch/development/heroscript/projectinca diff --git a/collections/projectinca/currency_of_future.png b/collections/projectinca/currency_of_future.png index 1b13cc0..75368d9 100644 Binary files a/collections/projectinca/currency_of_future.png and b/collections/projectinca/currency_of_future.png differ diff --git a/collections/projectinca/decentralization.md/decentralization.md b/collections/projectinca/decentralization.md/decentralization.md deleted file mode 100644 index aa3203f..0000000 --- a/collections/projectinca/decentralization.md/decentralization.md +++ /dev/null @@ -1,42 +0,0 @@ - -

Decentralization

- -![](img/decentralization.png) - -Decentralization, in our view, isn't solely about employing blockchain technology everywhere. Instead, we envision it as the culmination of a global community collaborating transparently, sharing everything they do, and actively seeking feedback. Our goal is to ensure that the platform we deploy operates in the most distributed and decentralized manner possible. - -## V3.x - -| Description | Good Enough (1) | Remark | -| ---------------------------------------------------------- | --------------- | ----------------------------------------------------------------------------------------------------- | -| TFNodes owned and invested by Independent Farmers | Yes | less than 5% owned by ThreeFold Cloud/Dubai | -| open documentation & feedback | Yes | all opensource on github, anyone can contribute and give feedback.| -| transparancy and input on any change to do with tokenomics | Yes | see the discussions on forum (3) and GEP's process | -| transparancy about tokens, history | Yes | see github | -| TFChain deployment | No | too few run the validator stack, we need more validators | -| Code Development | No | +90% done by TFTech , we need more participants | -| Funding For Tech Creation & TFGrid Promotion | No | +- all done by TFTech and TF Dubai , we need more participants to make this community owned | -| input on testing cycle & collaboration | Yes | We have a testnet on which everyone can contribute | -| quality and transparancy of code | Yes | all is on github (4), everyone can review, comment | -| input on process & roadmap for code development | Yes | all is on github (4), everyone can review, comment | -| tracking of available compute, storage, network capacity | Yes | all is tracked on blockchain TFChain (farming) | -| tracking of used compute, storage, network capacity | Yes | all is tracked on blockchain TFChain (utilization) | -| minting of tokens (farming) | Yes | code uses the information on blockchain and creates minting report | -| verification of minting of tokens (farming) | Yes | minting reports checked by guardians (5) and hash kept on blockchain when doing the minting | -| the actual minting | Yes | multisignature of guardians is needed to valudate the transactions, each minting links back to report | -| its possible for super smart hackers to fake capacity | No | probably yes on non certified nodes, but not easy (6) | -| are all components redundant and distributed enough | No | we need more TFGrid Validators | - - -- (1) This is our subjective evaluation and should not be construed as a guarantee or commitment. We welcome any differing opinions or feedback. -- (2) [Github TF Dubai](https://github.com/threefoldfoundation) -- (3) [The forum](https://forum.threefold.io/) -- (4) [Github TF9](https://github.com/threefoldtech), list of components see [here](https://github.com/threefoldtech/home/blob/master/wiki/components/components_overview.md) -- (5) there are multiple Guardians to guide this process -- (6) they would have to re-engineer how ZOS works and tells TFChain, but human chain = guardians can still see, we are planning to make this 100x more difficult in V4.0. If a hacker succeeds they would basically receive tokens which are not really earned. This is probably not possible on certified node, because of silicon route of trust with protected bios. - - -## V4.x - -Our next generation Grid has lots of improvements in relation to decentralization, see the specific document for 4.x - diff --git a/collections/projectinca/decentralization/decentralization.md b/collections/projectinca/decentralization/decentralization.md new file mode 100644 index 0000000..0bf6eff --- /dev/null +++ b/collections/projectinca/decentralization/decentralization.md @@ -0,0 +1,44 @@ + +

Decentralization

+ +![](img/decentralization.png) + +Decentralization, in our view, isn't solely about employing blockchain technology everywhere. Instead, we envision it as the culmination of a global community collaborating transparently, sharing everything they do, and actively seeking feedback. Our goal is to ensure that the platform we deploy operates in the most distributed and decentralized manner possible. + +## TFGrid V3.x + +The following is our own subjective evaluation for the TFGrid V3 and should not be construed as a guarantee or commitment. We welcome any differing opinions or feedback. + +| Description | Good Enough | Remark | +| ---------------------------------------------------------- | --------------- | ----------------------------------------------------------------------------------------------------- | +| TFNodes owned and invested by Independent Farmers | Yes | Less than 5% owned by ThreeFold Cloud/Dubai | +| Open documentation & feedback | Yes | All open-source on GitHub, anyone can contribute and give feedback.| +| Transparancy and input on any change to do with tokenomics | Yes | See the discussions on the ThreeFold Forum (2) and the GEP process | +| Transparancy about tokens, history | Yes | See GitHub organizations (1) (3) | +| TFChain deployment | No | Too few run the validator stack, we need more validators | +| Code Development | No | +90% done by TFTech: we need more participants | +| Funding For Tech Creation & TFGrid Promotion | No | More or less all done by TFTech and TF Dubai: we need more participants to make this community owned | +| Input on testing cycle & collaboration | Yes | We have a testnet on which everyone can contribute | +| Quality and transparancy of code | Yes | All is on GitHub (3): everyone can review and comment | +| Input on process & roadmap for code development | Yes | All is on GitHub (3): everyone can review and comment | +| Tracking of available compute, storage, network capacity | Yes | All is tracked on the blockchain TFChain (farming) | +| Tracking of used compute, storage, network capacity | Yes | All is tracked on the blockchain TFChain (utilization) | +| Minting of tokens (farming) | Yes | Code uses the information on blockchain and creates minting report | +| Verification of minting of tokens (farming) | Yes | Minting reports checked by Guardians (4) and hash kept on blockchain when doing the minting | +| The actual minting | Yes | Multisignature of Guardians is needed to valudate the transactions, each minting links back to report | +| It's possible for super smart hackers to fake capacity | No | Probably yes on non-certified nodes, but it's not easy (5) | +| All components redundant and distributed enough | No | We need more TFGrid Validators | + + +### Notes + +- (1) [Github TF Dubai](https://github.com/threefoldfoundation) +- (2) [ThreeFold Forum](https://forum.threefold.io/) +- (3) [Github TF9](https://github.com/threefoldtech). For the list of components, see [here](https://github.com/threefoldtech/home/blob/master/wiki/components/components_overview.md) +- (4) There are multiple Guardians to guide this process +- (5) They would have to re-engineer how ZOS works and tells TFChain, but human chain (i.e. Guardians) can still see. We are planning to make this 100x more difficult in V4.0. If a hacker succeeds, they would basically receive tokens which are not really earned. This is probably not possible on certified node, because of silicon route of trust with protected BIOS. + + +## TFGrid V4.x + +Our next generation Grid has lots of improvements in relation to decentralization. [See the specific document for TFGrid V4.x](decentralization4.md). \ No newline at end of file diff --git a/collections/projectinca/decentralization.md/decentralization3.md b/collections/projectinca/decentralization/decentralization3.md similarity index 100% rename from collections/projectinca/decentralization.md/decentralization3.md rename to collections/projectinca/decentralization/decentralization3.md diff --git a/collections/projectinca/decentralization.md/decentralization4.md b/collections/projectinca/decentralization/decentralization4.md similarity index 100% rename from collections/projectinca/decentralization.md/decentralization4.md rename to collections/projectinca/decentralization/decentralization4.md diff --git a/collections/projectinca/decentralization.md/tfvalidatorcluster.md b/collections/projectinca/decentralization/tfvalidatorcluster.md similarity index 100% rename from collections/projectinca/decentralization.md/tfvalidatorcluster.md rename to collections/projectinca/decentralization/tfvalidatorcluster.md diff --git a/collections/projectinca/intro.md b/collections/projectinca/intro.md index eba5c50..ff72089 100644 --- a/collections/projectinca/intro.md +++ b/collections/projectinca/intro.md @@ -1,8 +1,41 @@ !!wiki.include page:'intro0.md' +## Ebook Main Content + +This ebook covers the following content: + +* **Tokenomics** + + In this section, we explain the liquidity strategy as well as the distribution of the token INCA. + + Detailed information on how tokens are distributed and used within the ThreeFold ecosystem. +* **Decentralization** + + In this section, we explore ThreeFold's vision and implementation of a truly decentralized ecosystem. + + Learn about our approach to decentralization and how it benefits the community. +* **Blockchain** + + This section covers the flexibility and capabilities of our blockchain, including its ability to run complex smart contracts. + + Discover how our blockchain can interact with multiple blockchains at once, ensuring seamless transactions and strong consensus mechanisms. +* **Technology** + + The Technology book offers a complete and coherent vision of the tech we've built over the years. + + Our project encompasses different ventures and innovations that culminate into the wholesome ThreeFold Grid and its resilient ecosystem. +* **Project Info** + + This section offers an overview of the ThreeFold Project since its incubation. + + Get acquainted with our journey, milestones, and achievements. +* **Marketplace** + + This sections provide information on the Marketplace. ThreeFold is proud to develop a marketplace to enable commercial projects on its 4th generation of the ThreeFold Grid. + + Discover the opportunities and benefits of using our marketplace for your business needs. +* **Farming** + + Any person or company can offer capacity to the grid and earn rewards by doing so. + + Learn about how you can contribute to the ThreeFold ecosystem and receive rewards in return. +* **Grants** + + This section covers how our token distribution enables grants to the community to ensure sound development and active community work. + + Find out how we support community-led initiatives and foster innovation within the ThreeFold ecosystem. +* **Grid Utilization** + + The grid is now in its 4th phase and it has built over the years strong relationships and use cases. + + Explore our growth trajectory, achievements, and future plans for the ThreeFold Grid. +* **Internal Wiki** + + Our project is completely open-source and you can consult our Internal Wiki to collaborate and learn more. + + Access our community-driven resources and contribute your expertise to help shape the ThreeFold ecosystem. + ## Learn More -Read this ebook to learn more about the project and how you can participate to this phase. - - +Read this ebook to learn more about the project and how you can participate to this phase. \ No newline at end of file diff --git a/collections/projectinca/intro0.md b/collections/projectinca/intro0.md index 5889e90..8f05336 100644 --- a/collections/projectinca/intro0.md +++ b/collections/projectinca/intro0.md @@ -1,7 +1,16 @@ -# Compute is currency of future +# Compute is the Currency of the Future ![alt text](currency_of_future.png) +## A New Phase for ThreeFold -> TODO: explain how our marketcap and liquidity is too low in relation to the potential \ No newline at end of file +For years, ThreeFold has been quietly and steadily developing its revolutionary technology on mainnet, with a solid foundation of mature infrastructure that is now ready to take the next leap forward. As we embark on an exciting new phase in our journey, it's essential to understand why this technological milestone presents a tremendous opportunity for growth and expansion. + +ThreeFold has spent years perfecting its innovative technology, laying the groundwork for a decentralized internet that is accessible to all. However, despite these significant advancements, our market capitalization and liquidity have remained relatively low compared to the immense potential of our platform. + +We are now entering a new phase of the ThreeFold Grid with the Grid 4.0 and Project INCA. As we transition into this next phase, we're enabling commercial entities to seamlessly build on the grid. This phase has the aim to unlock unprecedented growth opportunities for ThreeFold stakeholders. + +Our ambitious vision for Grid 4.0 represents a harmonious convergence of cutting-edge technologies: a quantum-safe network and storage infrastructure that ensures the integrity of sensitive data; a decentralized platform that empowers anyone to become their own cloud service provider, breaking free from centralized monopolies; and a robust base layer for web 2, 3, and DePIN (Decentralized Internet of People) that fosters seamless interaction between diverse networks. By integrating these components, ThreeFold's Grid 4.0 creates a secure, inclusive, and highly scalable internet ecosystem that truly reflects the needs of a global community. + +As you delve deeper into this ebook, you'll gain a profound understanding of ThreeFold's vision, technology, and the vast potential waiting to be unlocked. We invite you to join us on this exciting journey as we push beyond the boundaries of what's possible with Grid 4.0 and Project INCA. \ No newline at end of file diff --git a/collections/projectinca/liquidity/liquidity.md b/collections/projectinca/liquidity/liquidity.md index cac240b..117b4c7 100644 --- a/collections/projectinca/liquidity/liquidity.md +++ b/collections/projectinca/liquidity/liquidity.md @@ -5,11 +5,11 @@ ## Liquidity Pool -We expect our Liquidity Pool to be a very efficient mechanism to reward people to provide liquidity to our ecosystem. Read more in our [Liquidity Pool Document](liquidity_pool.md) +We expect our Liquidity Pool to be a very efficient mechanism to reward people to provide liquidity to our ecosystem as explained [here](liquidity_pool.md). ## Solana -The ThreeFold v4 token called INCA will probably be released on Solana blockchain and this might provide us access to large liquidity pools. +The ThreeFold v4 token called INCA will probably be released on the Solana blockchain and this should provide us access to large liquidity pools. ## Exchanges @@ -21,12 +21,12 @@ ThreeFold is planning to work with professional marketmakers. ## MultiChain -ThreeFold would love to have bridges between our main chosen chain and many other chains, making it super easy for our community to use our tokens on multiple chains. INCA represents compute, storage and network capacity, we believe this type of currency is a currency of the future. +ThreeFold would love to have bridges between our main chosen chain and many other chains, making it super easy for our community to use our tokens on multiple chains. INCA represents compute, storage and network capacity. We believe this type of currency is a currency of the future. ## DEXes ThreeFold will partner with many DEX'es and make our token available where possible. -We are on the Stellar DEX today, unfortunatelly there is low liquidity. +We are currently on the Stellar DEX, but unfortunatelly there is low liquidity. ## THORChain diff --git a/collections/projectinca/liquidity/liquidity_pool.md b/collections/projectinca/liquidity/liquidity_pool.md index 18d0374..805c627 100644 --- a/collections/projectinca/liquidity/liquidity_pool.md +++ b/collections/projectinca/liquidity/liquidity_pool.md @@ -3,69 +3,68 @@ # ThreeFold Liquidity Pool -The Threefold Liquidity Pool Concept represents a significant advancement over traditional liquidity pools, particularly those known as Automatic Market Makers (AMMs). This system is designed to offer a more sophisticated and transparent approach to our token liquidity management, with several unique features: +The Threefold Liquidity Pool concept represents a significant advancement over traditional liquidity pools, particularly those known as Automatic Market Makers (AMMs). This system is designed to offer a more sophisticated and transparent approach to our token liquidity management, with several unique features: -Advanced Digital Accounting System: +**Advanced Digital Accounting System** - Unlike typical AMMs, the ThreeFold Liquidity Pool incorporates a full digital accounting system secured by blockchain technology. - This ensures that all transactions are accurately recorded and transparently reflected in the accounts of all participants. -GOLD-Centric Pairs: +**GOLD-Centric Pairs** -- Our liquidity pool pair GOLD with either a INCA or a FIAT currency (e.g., CHF, EUR). +- Our liquidity pool pair GOLD with either INCA or a FIAT currency (e.g., CHF, EUR). - This approach ensures that GOLD remains a central and stable element in all transactions, providing a reliable store of value and reducing volatility. -Transparent Pool Rules: +**Transparent Pool Rules** - The rules governing each pool are fully transparent and accessible to all participants. - These include the distribution percentages between GOLD and INCA, the spread, and other key parameters. - This transparency helps maintain trust and fairness within the ecosystem. -Private, Registered Participants: +**Private, Registered Participants** - Each participant in a pool is registered with a private record that details their holdings (e.g., Mr. X has 100 gram of Gold and 10,000 TFT). - This system ensures that transactions are securely tracked and that each participant's share of the pool is accurately accounted for. -Reflective Transaction Mechanism: +**Reflective Transaction Mechanism** - For every transaction within the pool, participants’ accounts are adjusted accordingly. -- For example, if 1m of TFT is sold for gold and Mr. X holds 5% of the TFT pool, his account is updated to reflect a 5% reduction in TFT and a corresponding increase in his gold holdings, adjusted by the transaction spread (the margin). +- For example, if 1M of TFT is sold for gold and Mr. X holds 5% of the TFT pool, his account is updated to reflect a 5% reduction in TFT and a corresponding increase in his gold holdings, adjusted by the transaction spread (the margin). -Optional Lockup Rules: +**Optional Lockup Rules** - Pools can optionally include lockup periods during which participants cannot withdraw their assets. - These periods can be linked to value acceleration mechanisms, incentivizing long-term participation and protecting against market manipulation, such as front-running. -Customizable Price Limits: +**Customizable Price Limits** - Participants can set minimum selling prices or maximum buying prices for their assets TFT or INCA. - These settings can remain private unless the pool's rules require public aggregation. - If no specific price is set, default values established by pool administrators are applied. -Aggregate Transaction Statistics: +**Aggregate Transaction Statistics** - The system provides aggregated daily statistics on transactions, offering participants insights without compromising privacy. - This information includes the default buy/sell prices, helping guide market activity while ensuring that individual transactions remain confidential. -Fair and Transparent Participation: +**Fair and Transparent Participation** - The system is designed to be fair and transparent, adjusting each participant's position in the pool relative to their entry time and participation level. - This dynamic adjustment over time ensures that the system remains equitable and reflective of each participant’s contribution. -Liquidity Optimization: +**Liquidity Optimization** - While the system rewards liquidity providers and maximizes liquidity availability, it does not guarantee it. - In cases where liquidity is insufficient, participants cannot execute trades until liquidity returns. - However, they can still place requests in the pool, ensuring that their needs are met over time as liquidity improves. -Participation in Liquidity Pool Defines the Discount on the TFGrid +**Participation in Liquidity Pool Defines the Discount on the TFGrid** - The pricing engine for the marketplace will use the position of the user in the Liquidity Pool to define discount level, this means the more someone is vested in the ecosystem the more the discount will be. - ### Link To Digital Asset Exchange in OurWorld Digital FreeZone The mother company of ThreeFold is a holding company called OurWorld. -OurWorld also owns a Digital Freezone in which a lot of digital assets will be traded, the above described Liquidity Pool concept comes from there and ThreeFold (INCA) is one of the tokens traded on the OurWorld Digital Exchange. +OurWorld also owns a Digital Freezone in which a lot of digital assets will be traded. The Liquidity Pool concept described above comes from there and ThreeFold (INCA) is one of the tokens traded on the OurWorld Digital Exchange. diff --git a/collections/projectinca/questions/questions.md b/collections/projectinca/questions/questions.md new file mode 100644 index 0000000..124d733 --- /dev/null +++ b/collections/projectinca/questions/questions.md @@ -0,0 +1,33 @@ + +# questions + +## rebrand or not + +- has huge implications on tokenomics, go2market... + + +## the core story + +current story [see also our slides aug](https://docs.google.com/presentation/d/1-7roBeBearpZqeJIkG07IVcgpcKLdj15Vh16N9K7WNo/edit#slide=id.g2efb75dd4b2_0_14) + +- More than ½ of the world doesn’t have its own Internet, we bring it everywhere thanks to cloud + + +### sub positioning + +- super tech = most advanced decentralized cloud for everyone by everyone +- future of the internet, put mycelium more to front line + + +### what didn't work so well + +- layer 0 for depin (had no good traction here) + +### what could also be possible maybe more if we rebrand + +- ACI = augmented collective intelligence as alternative to AGI (early but great response) +- toolbox for network states + +## which blockchain to launch on + +- solana still nr 1 but there are some contenders which are also willing to invest \ No newline at end of file diff --git a/collections/projectinca/questions/status.md b/collections/projectinca/questions/status.md new file mode 100644 index 0000000..fefa409 --- /dev/null +++ b/collections/projectinca/questions/status.md @@ -0,0 +1,41 @@ + +## status + +> status, factfinding over summer + +### results + +- good success rate +- some serious potential partnerships +- the serious investors not interesting in hype & pump/dump + +### what works best + +- the tech, we survived some good DD's, some went very deep, everyone who looks deeper agrees there us no-one close +- the traction we have with telco, governments, some big partners, ... +- structure of tech company vs opensource depin, very good +- link to freezone is important for some +- the experience online is good enough, manuals good enough + +### what are we still working on, but almost done + +- new version of website: https://dev.threefold.io/ +- super simple verison of manual we are learning from https://docs.aethir.com/ +- tokenomics getting very close, cannot sign off on it yet, also want to have lead investor +- easier manual for quantum safe storage + +### what is done + +- roadmap +- multi blockchain, governance, decentralization, ... +- liquidity pool (innovative) +- generator tokens = INCAG - also good for vesting +- will do token offering for deploying nodes (INCAG) + +### what works against us + +- history of token, the low price and long duration of low price is not good +- we don't communicate well + + + diff --git a/collections/projectinca/stories/stories.md b/collections/projectinca/stories/stories.md index 1340f8b..98cce74 100644 --- a/collections/projectinca/stories/stories.md +++ b/collections/projectinca/stories/stories.md @@ -5,3 +5,4 @@ > TODO: we need to udpate our issues and track our work + diff --git a/collections/projectinca/tokenomics/tokens.md b/collections/projectinca/tokenomics/tokens.md index c17c67e..22364ef 100644 --- a/collections/projectinca/tokenomics/tokens.md +++ b/collections/projectinca/tokenomics/tokens.md @@ -1,6 +1,10 @@ # Tokenomics +The ThreeFold Tokenomics framework for Grid 4.0 and Project INCA has been designed to promote a thriving ecosystem of cloud users, farmers, and validators. It presents a robust liquidity strategy that ensures seamless transfers and secure transactions within our cloud marketplace. Furthermore, by allocating 40 million tokens for farming grants, we're empowering individuals and organizations to contribute to the grid's growth and development. + +Our proof-of-utilization rewards system distributes 80% of rewards to farmers who contribute their resources to the grid, ensuring that they're fairly compensated for their participation. Additionally, 10% of rewards are allocated to the ThreeFold Cooperative and 10% to validator commercial partners, promoting a collaborative and mutually beneficial ecosystem. 100% of the proof-of-capacity rewards go to the farmers hosting nodes on the grid. + ```mermaid flowchart TD A[Cloud User] -->|CHF/EUR/...| B(CLOUD MARKET PLACE
Discount based on position
in TF Liquidity Pool.) @@ -19,6 +23,11 @@ flowchart TD ## Distribution +The ThreeFold token distribution plan for Grid 4.0 and Project INCA is carefully crafted to ensure a major allocation to the community, with 70% of tokens committed to community-centric initiatives. This includes 55% for supply and farming, 7.5% for community expansion rewards and promotion, and 7.5% for community grants. Additionally, smaller allocations will be made to liquidity providers (3.8%), ThreeFold Dubai Holdings (2.5%), investors (11.3%), and the team and contributors (12.5%). + +By prioritizing community growth, we're creating a collaborative environment where everyone can benefit from their contributions and participate in the project's success. This balanced distribution ensures that a significant amount of tokens is dedicated to the community, creating opportunities for growth and development within our ecosystem. + + ```echarts option = { title: { @@ -76,18 +85,21 @@ There can never be more than 4 Billion Tokens. ## Release Schedule -![](img/token_release_stacked.png) +The ThreeFold token release schedule is designed to balance the needs of different stakeholders, ensuring that everyone has access to their allocated tokens in a predictable and reliable manner. -- Investors release over 2 years, in equal tranches. -- Farmer rewards are released over 3 years. -- Ecosystem rewards over 4 years +Investors will receive their tokens over two years, with equal tranches released at regular intervals. Farmer rewards will be released over three years, incentivizing contributors to continue building and growing the grid. Ecosystem rewards will follow a similar schedule, with token releases spanning four years to promote collaboration and participation within the community. + +By releasing tokens in this predictable manner, we're creating an environment where everyone can contribute and benefit from their participation in Grid 4.0 and Project INCA. + +![](img/token_release_stacked.png) This leads to following maximum unlocking table ![](img/token_release.png) The vesting accelerates if the token price gets above 0.5 USD, for each 0.1 USD above additional 10% unlocks into the INCA Liquidity pool. -Thanks to the liquidity pool the price remains stable even if people decide to chose the option to unvest faster. + +Thanks to the liquidity pool, the price remains stable even if people decide to chose the option to unvest faster. ## TFT to INCA @@ -96,11 +108,12 @@ TFT holders can go to INCA based on following rules - There is 1-1 relationship between TFT and INCA - TFT can only go to INCA not back. - There is vesting implemented over 2 years -- X TFT becomes an INCAG with following properties -- X INCA, to be minted over 2 years, equal parts per month -- acelleration unlock rules are: - - 10% when INCA token hits 0.5 USD longer than 1 month avg out - - 10% when INCA token hits 0.6 USD longer than 1 month avg out - - goes on, 10% per 0.1 USD higher price +- TFT becomes INCAG token where the INCAG token has the following properties: + - INCAG gives a given amount of INCA to be minted over 2 years + - The distribution is of equal parts per month + - The acceleration unlock rules are: + - 10% when INCA token hits 0.5 USD longer than 1 month avg out + - 10% when INCA token hits 0.6 USD longer than 1 month avg out + - This logic goes on 10% for each additional 0.1 USD increase until it reaches 100% -More details see [INCA Generator, is like an NFT generating INCA over time](incag.md) token +For more, plese refer to [this section](incag.md) where we explain that the INCA Generator token is like an NFT generating INCA over time. \ No newline at end of file diff --git a/collections/system_administrators/advanced/advanced.md b/collections/system_administrators/advanced/advanced.md index 79aff8b..3223b61 100644 --- a/collections/system_administrators/advanced/advanced.md +++ b/collections/system_administrators/advanced/advanced.md @@ -10,9 +10,12 @@ In this section, we delve into sophisticated topics and powerful functionalities - [Listing Free Public IPs](list_public_ips.md) - [Cloud Console](cloud_console.md) - [Redis](grid3_redis.md) -- [IPFS](ipfs_toc.md) - - [IPFS on a Full VM](ipfs_fullvm.md) - - [IPFS on a Micro VM](ipfs_microvm.md) +- [IPFS](ipfs/ipfs_toc.md) - [MinIO Operator with Helm3](minio_helm3.md) -- [AI & ML Workloads](ai_ml_workloads.md) -- [Hummingbot](hummingbot.md) \ No newline at end of file +- [Hummingbot](hummingbot.md) +- [AI & ML Workloads](ai_ml_workloads/ai_ml_workloads_toc.md) +- [Ecommerce](ecommerce/ecommerce.md) +- [HTTPS with Caddy](https_caddy.md) +- [Node Status Bot](node_status_bot.md) +- [Minetest](minetest.md) +- [Remote Desktop and GUI](remote-desktop_gui.md) \ No newline at end of file diff --git a/collections/system_administrators/advanced/ai_ml_workloads/ai_ml_workloads_toc.md b/collections/system_administrators/advanced/ai_ml_workloads/ai_ml_workloads_toc.md new file mode 100644 index 0000000..63420ea --- /dev/null +++ b/collections/system_administrators/advanced/ai_ml_workloads/ai_ml_workloads_toc.md @@ -0,0 +1,7 @@ +# AI & ML Workloads + +

Table of Contents

+ +- [CPU and Llama](cpu_and_llama.md) +- [GPU and Pytorch](gpu_and_pytorch.md) +- [GPU and Fooocus](gpu_and_fooocus.md) \ No newline at end of file diff --git a/collections/system_administrators/advanced/ai_ml_workloads/cpu_and_llama.md b/collections/system_administrators/advanced/ai_ml_workloads/cpu_and_llama.md new file mode 100644 index 0000000..18e5cc3 --- /dev/null +++ b/collections/system_administrators/advanced/ai_ml_workloads/cpu_and_llama.md @@ -0,0 +1,105 @@ +

AI & ML Workloads: CPU and Llama

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Prerequisites](#prerequisites) +- [Deploy a Full VM](#deploy-a-full-vm) +- [Preparing the VM](#preparing-the-vm) +- [Setting OpenWebUI](#setting-openwebui) +- [Pull a Model](#pull-a-model) +- [Using Llama](#using-llama) +- [References](#references) + +--- + +## Introduction + +We present a simple guide on how to deploy large language models on the grid using CPU. For this guide, we will be deploying Llama on a full VM using OpenWebUI bundled with Ollama support. + +Llama is a large language model trained by Meta AI. It is an open-source model, meaning that it is free to use and customize for various applications. This LLM is designed to be a more conversational AI allowing users to engage in natural-sounding conversations. Llama is trained on a massive dataset of text from the internet and can generate responses to a wide range of topics and questions. + +Ollama is an open-source project that allows users to run large language models (LLMs) on their local machine. + +OpenWebUI is one of many front ends for Ollama, providing a convenient and user friendly way to load weights and chat with the bot. + +## Prerequisites + +- [A TFChain account](dashboard@@wallet_connector) +- TFT in your TFChain account + - [Buy TFT](threefold_token@@buy_sell_tft) + - [Send TFT to TFChain](threefold_token@@tfchain_stellar_bridge) + +## Deploy a Full VM + +We start by deploying a full VM on the ThreeFold Dashboard. The more cores we set to the machine, the faster the model will be. + +* On the [Threefold Dashboard](https://dashboard.grid.tf/#/), go to the [full virtual machine deployment page](https://dashboard.grid.tf/#/deploy/virtual-machines/full-virtual-machine/) +* Deploy a full VM (Ubuntu 22.04) with only `Wireguard` as the network + * Vcores: 8 vcores + * MB of RAM: 4096 GB + * GB of storage: 100 GB +* After deployment, [set the Wireguard configurations](ssh_wireguard.md) +* Connect to the VM via SSH + * ``` + ssh root@VM_Wireguard_Address + ``` + +## Preparing the VM + +We prepare the full VM to run Llama. + +* Install Docker + * ``` + wget -O docker.sh get.docker.com + bash docker.sh + ``` + +## Setting OpenWebUI + +We now install OpenWebUI with bundled Ollama support. Note that you might need to use another port than `3000` if this port is already in use on your local machine. + +* For CPU only + ``` + docker run -d -p 3000:8080 -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama + ``` +* Once the container is fully loaded and running, go to your browser to access OpenWebUI using the Wireguard address: + * ``` + 10.20.4.2:3000 + ``` + +You should now see the OpenWebUI page. You can register by entering your email and setting a password. This information will stay on the machine running OpenWebUI. + +

+ +

+ +## Pull a Model + +Once you've access OpenWebUI, you need to download a LLM model before using it. + +- Click on the bottom left button displaying your username +- Click on `Settings`, then `Admin Settings` and `Models` +- Under `Pull a model from Ollama.com`, enter the LLM model you want to use + - In our case we will use `llama3` +- Click on the button on the right to pull the image + +![](./img/openwebui_model.png) + +## Using Llama + +Let's now use Llama! + +- Click on `New Chat` on the top left corner +- Click on `Select a model` and select the model you downloaded + - You can click on `Set as default` for convenience + +![](./img/openwebui_set_model.png) + +- You can now `Send a Message` to Llama and interact with it! + +That's it. You now have a running LLM instance on the grid. + +## References + +For any advanced configurations, you may refer to the [OpenWebUI documentation](https://github.com/open-webui/open-webui). \ No newline at end of file diff --git a/collections/system_administrators/advanced/ai_ml_workloads/gpu_and_fooocus.md b/collections/system_administrators/advanced/ai_ml_workloads/gpu_and_fooocus.md new file mode 100644 index 0000000..7ef3266 --- /dev/null +++ b/collections/system_administrators/advanced/ai_ml_workloads/gpu_and_fooocus.md @@ -0,0 +1,109 @@ +

AI & ML Workloads: GPU and Fooocus

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Prerequisites](#prerequisites) +- [Prepare the System](#prepare-the-system) +- [Install the GPU Driver](#install-the-gpu-driver) +- [Install the Prerequisites and Launch Fooocus](#install-the-prerequisites-and-launch-fooocus) +- [Use Fooocus](#use-fooocus) + +--- + +## Introduction + +We show how to use a ThreeFold GPU node on the grid to deploy AI workloads for graphics and image generation. We will be using [Fooocus](https://github.com/lllyasviel/Fooocus) and a full virtual machine with a GPU card. + +## Prerequisites + +- [A TFChain account](dashboard@@wallet_connector) +- TFT in your TFChain account + - [Buy TFT](threefold_token@@buy_sell_tft) + - [Send TFT to TFChain](threefold_token@@tfchain_stellar_bridge) +- Reserve a [dedicated GPU node](dashboard@@node_finder) on the ThreeFold Grid +- Deploy a full VM running Ubuntu 22.04 +- [SSH](ssh_guide.md) into the node with [Wireguard](ssh_wireguard.md) + +## Prepare the System + +- Update the system + ``` + dpkg --add-architecture i386 + apt-get update + apt-get dist-upgrade + reboot + ``` +- Check the GPU info + ``` + lspci | grep VGA + lshw -c video + ``` + +## Install the GPU Driver + +- Download the latest Nvidia driver + - Check which driver is recommended + ``` + apt install ubuntu-drivers-common + ubuntu-drivers devices + ``` + - Install the recommended driver (e.g. with 535) + ``` + apt install nvidia-driver-535 + ``` +- Check the GPU status + ``` + nvidia-smi + ``` + +Now that the GPU node is set, let's install and launch Fooocus. + +## Install the Prerequisites and Launch Fooocus + +We install the prerequisites, including Miniconda, clone the repository, download the models and launch Fooocus. + +- Install the prerequisites + ``` + apt update + apt install python3-pip python3-dev + pip3 install --upgrade pip + wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh + bash Miniconda3-latest-Linux-x86_64.sh + ``` +- Reload the shell to enable Conda +- Clone the Fooocus directory and install the Python requirements with Miniconda + ``` + git clone https://github.com/lllyasviel/Fooocus.git + cd Fooocus + conda env create -f environment.yaml + conda activate fooocus + pip install -r requirements_versions.txt + ``` +- Download the models with conda and deploy Fooocus + ``` + conda activate fooocus + python entry_with_update.py + ``` +- Create an SSH tunnel to the VM + ``` + ssh -4 -L 7865:127.0.0.1:7865 root@10.20.4.2 + ``` + +## Use Fooocus + +You can then access Fooocus: + +``` +127.0.0.1:7865 +``` + +Here are some image generated with Fooocus: + +![](./img/fooocus_dog_ocean.png) + +![](./img/fooocus_ship.png) + +![](./img/fooocus_jungle.png) + +![](./img/fooocus_stadium.png) \ No newline at end of file diff --git a/collections/system_administrators/advanced/ai_ml_workloads.md b/collections/system_administrators/advanced/ai_ml_workloads/gpu_and_pytorch.md similarity index 98% rename from collections/system_administrators/advanced/ai_ml_workloads.md rename to collections/system_administrators/advanced/ai_ml_workloads/gpu_and_pytorch.md index 5bd227c..d1cda2d 100644 --- a/collections/system_administrators/advanced/ai_ml_workloads.md +++ b/collections/system_administrators/advanced/ai_ml_workloads/gpu_and_pytorch.md @@ -1,4 +1,4 @@ -

AI & ML Workloads

+

AI & ML Workloads: GPU and Pytorch

Table of Contents

diff --git a/collections/system_administrators/advanced/ai_ml_workloads/img/fooocus_dog_ocean.png b/collections/system_administrators/advanced/ai_ml_workloads/img/fooocus_dog_ocean.png new file mode 100644 index 0000000..7276cc2 Binary files /dev/null and b/collections/system_administrators/advanced/ai_ml_workloads/img/fooocus_dog_ocean.png differ diff --git a/collections/system_administrators/advanced/ai_ml_workloads/img/fooocus_jungle.png b/collections/system_administrators/advanced/ai_ml_workloads/img/fooocus_jungle.png new file mode 100644 index 0000000..2a30e1d Binary files /dev/null and b/collections/system_administrators/advanced/ai_ml_workloads/img/fooocus_jungle.png differ diff --git a/collections/system_administrators/advanced/ai_ml_workloads/img/fooocus_ship.png b/collections/system_administrators/advanced/ai_ml_workloads/img/fooocus_ship.png new file mode 100644 index 0000000..0bc31c5 Binary files /dev/null and b/collections/system_administrators/advanced/ai_ml_workloads/img/fooocus_ship.png differ diff --git a/collections/system_administrators/advanced/ai_ml_workloads/img/fooocus_stadium.png b/collections/system_administrators/advanced/ai_ml_workloads/img/fooocus_stadium.png new file mode 100644 index 0000000..3b2b009 Binary files /dev/null and b/collections/system_administrators/advanced/ai_ml_workloads/img/fooocus_stadium.png differ diff --git a/collections/system_administrators/advanced/ai_ml_workloads/img/openwebui_model.png b/collections/system_administrators/advanced/ai_ml_workloads/img/openwebui_model.png new file mode 100644 index 0000000..9c35e51 Binary files /dev/null and b/collections/system_administrators/advanced/ai_ml_workloads/img/openwebui_model.png differ diff --git a/collections/system_administrators/advanced/ai_ml_workloads/img/openwebui_page.png b/collections/system_administrators/advanced/ai_ml_workloads/img/openwebui_page.png new file mode 100644 index 0000000..76d3542 Binary files /dev/null and b/collections/system_administrators/advanced/ai_ml_workloads/img/openwebui_page.png differ diff --git a/collections/system_administrators/advanced/ai_ml_workloads/img/openwebui_set_model.png b/collections/system_administrators/advanced/ai_ml_workloads/img/openwebui_set_model.png new file mode 100644 index 0000000..1c018d3 Binary files /dev/null and b/collections/system_administrators/advanced/ai_ml_workloads/img/openwebui_set_model.png differ diff --git a/collections/system_administrators/advanced/img/minetest_1.png b/collections/system_administrators/advanced/img/minetest_1.png new file mode 100644 index 0000000..dde21f8 Binary files /dev/null and b/collections/system_administrators/advanced/img/minetest_1.png differ diff --git a/collections/system_administrators/advanced/img/minetest_2.png b/collections/system_administrators/advanced/img/minetest_2.png new file mode 100644 index 0000000..69270d7 Binary files /dev/null and b/collections/system_administrators/advanced/img/minetest_2.png differ diff --git a/collections/system_administrators/advanced/img/minetest_3.png b/collections/system_administrators/advanced/img/minetest_3.png new file mode 100644 index 0000000..66b7e60 Binary files /dev/null and b/collections/system_administrators/advanced/img/minetest_3.png differ diff --git a/collections/system_administrators/advanced/img/minetest_4.png b/collections/system_administrators/advanced/img/minetest_4.png new file mode 100644 index 0000000..e8cb28e Binary files /dev/null and b/collections/system_administrators/advanced/img/minetest_4.png differ diff --git a/collections/system_administrators/advanced/minetest.md b/collections/system_administrators/advanced/minetest.md new file mode 100644 index 0000000..cbcdda2 --- /dev/null +++ b/collections/system_administrators/advanced/minetest.md @@ -0,0 +1,142 @@ +

Minetest on the TFGrid

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Prerequisites](#prerequisites) +- [Deploy a Full VM](#deploy-a-full-vm) +- [DNS Settings](#dns-settings) + - [DNS Verification](#dns-verification) +- [Run a Minetest Server on the TFGrid](#run-a-minetest-server-on-the-tfgrid) +- [Run Minetest Locally](#run-minetest-locally) +- [Access the Server from Minetest](#access-the-server-from-minetest) +- [Public Server Notes](#public-server-notes) +- [References](#references) + +--- + +## Introduction + +We show how to deploy a Minetest server on the TFGrid, install Minetest on a local machine and access the Minetest server from the local machine. + +![](./img/minetest_1.png) + +## Prerequisites + +- [A TFChain account](dashboard@@wallet_connector) +- TFT in your TFChain account + - [Buy TFT](threefold_token@@buy_sell_tft) + - [Send TFT to TFChain](threefold_token@@tft_bridges) + +## Deploy a Full VM + +We start by deploying a full VM on the ThreeFold Dashboard. + +* On the [Threefold Dashboard](https://dashboard.grid.tf/#/), go to the [full virtual machine deployment page](https://dashboard.grid.tf/#/deploy/virtual-machines/full-virtual-machine/) +* Deploy a full VM (Ubuntu 22.04) with an IPv4 address and at least the minimum specs for a full VM + * Network + * Set IPv4 Address (required) + * Set Wireguard (optional) + * Minimum vcores: 1vcore + * Minimum MB of RAM: 512MB + * Minimum storage: 15GB +* After deployment, note the VM IPv4 address +* SSH into the VM + ``` + ssh root@vm_ipv4_address + ``` + + +## DNS Settings + +You need to set an A record for the IPv4 address. + +The following table explicitly shows how to set the A record for your domain. Note that we set `minetest` as a subdomain. + +| Type | Host | Value | +| ---- | ---- | -------------- | +| A | minetest | | + + +You will then be able to access your server on Minetest with the URL `minetest.example.com:30033`. More on the port below. + +### DNS Verification + +You can use tools such as [DNSChecker](https://dnschecker.org/) or [dig](https://linux.die.net/man/1/dig) on a terminal to check if the DNS propagadation is complete. + + +- Check that the subdomain resolves to the IPv4 address of the full VM + ``` + minetest.example.com + ``` + +## Run a Minetest Server on the TFGrid + + +- Install the Minetest server +``` +apt update +apt install minetest-server -y +``` +- Set the Minetest server +``` +nano /etc/minetest/minetest.conf +``` +- Update the following lines +``` +server_name = Server Name + +server_address = http://minetest.example.com + +server_announce = true + +port = 30033 +``` +- Run the Minetest server +``` +minetestserver --worldname world +``` + +## Run Minetest Locally + +- Update the local machine +``` +apt update +``` +- Install Minetest +``` +apt install flatpak -y +apt install gnome-software-plugin-flatpak -y +flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo +``` +- Reboot the machine +- Install Minetest +``` +flatpak install flathub net.minetest.Minetest +``` +- Run Minetest +``` +flatpak run net.minetest.Minetest +``` + +## Access the Server from Minetest + +- On Minetest, go to the server you previously set + +![](./img/minetest_2.png) + +- You can then access the Minetest world! + +![](./img/minetest_3.png) + +## Public Server Notes + +Once you set the Minetest server publicly, you can see it displayed on https://servers.minetest.net/. + +- Example of publicly available server + +![](./img/minetest_4.png) + +## References + +For further information on Minetest, read the [Minetest documentation](https://wiki.minetest.net/Main_Page). \ No newline at end of file diff --git a/collections/system_administrators/computer_it_basics/computer_it_basics.md b/collections/system_administrators/computer_it_basics/computer_it_basics.md index d6ae44c..cdb3522 100644 --- a/collections/system_administrators/computer_it_basics/computer_it_basics.md +++ b/collections/system_administrators/computer_it_basics/computer_it_basics.md @@ -9,8 +9,7 @@ In this section, tailored specifically for system administrators, we'll delve in - [CLI and Scripts Basics](cli_scripts_basics.md) - [Docker Basics](docker_basics.md) - [Git and GitHub Basics](git_github_basics.md) +- [Gitea](gitea_toc.md) - [Firewall Basics](firewall_basics.md) - - [UFW Basics](ufw_basics.md) - - [Firewalld Basics](firewalld_basics.md) - [File Transfer](file_transfer.md) - [Screenshots](screenshots.md) \ No newline at end of file diff --git a/collections/system_administrators/computer_it_basics/gitea/gitea_api.md b/collections/system_administrators/computer_it_basics/gitea/gitea_api.md new file mode 100644 index 0000000..61b929d --- /dev/null +++ b/collections/system_administrators/computer_it_basics/gitea/gitea_api.md @@ -0,0 +1,98 @@ +

Gitea API

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Swagger](#swagger) +- [CLI](#cli) +- [Swagger and CLI](#swagger-and-cli) +- [API Authorization](#api-authorization) +- [References](#references) + +--- + +## Introduction + +We show how to use the Gitea API with both Swagger and CLI. + +## Swagger + +The Gitea API is available with the slugs `/api/swagger#` after your Gitea domain URL. + +- For ThreeFold, we use the following Gitea API: +``` +https://git.ourworld.tf/api/swagger#/ +``` + +You can access different levels of the Gitea instance: + +![](./img/api_overview.png) + +You can use the Swagger for different queries. Parameters are expained for each example so it is a fairly intuitive use. + +For example, to get the raw content of a file, you can use the following: + +- Go to the section `Get a file from a repository`. + +- In this example, we query the tfgrid organization and its repository `info_tfgrid` for the branch `main`. We write the path of the file. + +![](./img/api_example_file.png) + +Once you tried a query on the API, you can take the curl command example to query the same information from the CLI. We check this in the next section. + +## CLI + +To use the API with a command line interface, you can use curl. + +For example, we take the raw content of a file: + +``` +curl -X 'GET' \ + 'https://git.ourworld.tf/api/v1/repos/tfgrid/info_tfgrid/raw/heroscript%2Fduniayetu%2Fbook_collections.md?ref=main' \ + -H 'accept: application/json' +``` + +We can save this in a file by adding `> filename.txt` after the line above: + +``` +curl -X 'GET' \ + 'https://git.ourworld.tf/api/v1/repos/tfgrid/info_tfgrid/raw/heroscript%2Fduniayetu%2Fbook_collections.md?ref=main' \ + -H 'accept: application/json' > filename.txt +``` + +## Swagger and CLI + +A combination of the Swagger and the CLI can be very effective. + +First, find the proper `curl` command by using the Gitea Swagger, then use the CLI to pass the `curl` commands. + +## API Authorization + +If you want to query information that is access-protected, such as a private repository, you first need to create a Gitea access token and then log into the Gitea API with the token. + +Once this is done, every Swagger request you ask will be accompanied with the access token. + +- Create an access token directly on Gitea + - Go to the `Applications` section of the `User Settings` [on Gitea](https://git.ourworld.tf/user/settings/applications) + - Under `Manage Access Tokens`, choose a `Token Name` + - Select either ̀`Public only` or `All (public, private and limited)`. For private access, choose the latter + - You must select at least one permission to create a token. Click on `Select permissions` and choose the permissions for your token + - Click on `Generate token` + - Copy the generate token and keep it somewhere safe + +![](./img/gitea_token.png) + +- Log in the Gitea API with your access token + - On the top of the Gitea API page, click on `Authorize` + +

+ +

+ + - In `AuthorizationHeaderToken (apiKey)` write `token` followed by a space and then paste your token, e.g.: + - `token 1234567890` +- Once you're logged in with your token, you can make queries with the API + +## References + +You can learn more by reading the [Gitea API documentation](https://docs.gitea.com/development/api-usage). \ No newline at end of file diff --git a/collections/system_administrators/computer_it_basics/gitea/gitea_basics.md b/collections/system_administrators/computer_it_basics/gitea/gitea_basics.md new file mode 100644 index 0000000..30e9294 --- /dev/null +++ b/collections/system_administrators/computer_it_basics/gitea/gitea_basics.md @@ -0,0 +1,194 @@ +

Gitea Basics

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Prerequisites](#prerequisites) +- [Register](#register) +- [Sign In](#sign-in) +- [Set an SSH Key Pair](#set-an-ssh-key-pair) +- [Start the SSH Agent](#start-the-ssh-agent) +- [Clone a Repository](#clone-a-repository) +- [Create and Push a New Branch](#create-and-push-a-new-branch) + - [On the Browser and Git](#on-the-browser-and-git) + - [Only With Git](#only-with-git) +- [Create a Pull Request](#create-a-pull-request) + - [Create a Draft Pull Request](#create-a-draft-pull-request) +- [Useful Commands](#useful-commands) +- [Gitea References](#gitea-references) + +--- + +## Introduction + +We present a basic guide for Gitea, a forge software package for hosting software development version control using Git as well as other collaborative features like bug tracking, code review, continuous integration, kanban boards, tickets, and wikis. + +ThreeFold hosts its own git server on [Gitea OurWorld](https://git.ourworld.tf). We will be using OurWorld's Gitea instance for this guide. + +## Prerequisites + +You should have git installed on your computer to work easily with Gitea. It is not necessary to use Gitea but recommended to work with files. + +- Install [git](../git_github_basics.md#install-git) + - Optional, to update repositories from your local computer +- Install [VSCodium](../git_github_basics.md#vs-codium) + - Optional, to edit your files +- Install [OpenSSH](../../getstarted/ssh_guide/ssh_openssh.md) + - Optional, to use SSH + +## Register + +- Go to the main gitea URL, e.g. [https://git.ourworld.tf](https://git.ourworld.tf) +- On the top right click on `Register` +- Set your credentials + - Enter a `Username` + - Enter your `Email Address` + - Enter and confirm a `Password` +- Click on `Register Account` + +![](./img/gitea_register.png) + +## Sign In + +- Go to the main Gitea URL, e.g. [https://git.ourworld.tf](https://git.ourworld.tf) +- On the top right click on `Sign In` +- Set your credentials + - Enter your `Username` or your `Email Address` + - Enter your `Password` +- Click on `Sign In` + +![](./img/gitea_sign_in.png) + +## Set an SSH Key Pair + +- Generate an SSH key pair. You can leave default option `~/.ssh/id_rsa.pub` +``` +ssh-keygen +``` +- Note the public key +``` +cat ~/.ssh/id_rsa.pub +``` +- [Add the SSH public key on git.ourworld.tf](https://git.ourworld.tf/user/settings/keys) + - Click on `Add Key` on the top right + - Paste the public key in `Content` + - The `Key Name` will be added automatically + - Click on `Add key` under `Content` + +![](./img/gitea_ssh_key.png) + +- Optional: on git.ourworld.tf, verify the key. Make sure to put the proper token. +``` +echo -n 'token' | ssh-keygen -Y sign -n gitea -f ~/.ssh/id_rsa +``` + +## Start the SSH Agent + +- Start the ssh agent +``` +eval $(ssh-agent) +``` +- Add private key to the agent +``` +ssh-add ~/.ssh/id_rsa.pub +``` + +## Clone a Repository + +- Clone a repository and change directory +``` +git clone +cd +``` + +## Create and Push a New Branch + +### On the Browser and Git + +- On the repo of the Gitea instance, click on the ̀`Branch` icon (e.g. `development`) +- Write a branch name with the `development_branch_name` convention +- Click `Create branch` + +![](./img/gitea_new_branch.png) + +``` +git checkout development +git fetch +git pull +``` +- Make changes in the files +- When changes are done, make a new branch, add the new files, commit and push to the remote server +``` +git add . +git commit -m "Commit message for new branch" +git push +``` + +### Only With Git + +- Start by working on the latest development release +``` +git checkout development +git fetch +git pull +``` +- Make changes in the files +- When changes are done, make a new branch, add the new files, commit and push to the remote server +``` +git checkout -b development_new_branch +git add . +git commit -m "Commit message for new branch" +git push --set-upstream origin development_new_branch +``` + +## Create a Pull Request + +- Go to the repo of the Gitea instance +- Click on `Pull Request` then `New Pull Request` + +![](./img/gitea_new_pr.png) + +- Choose the branch you want to merge into development for `pull from` then click `New Pull Request` + - At ThreeFold, we protect the master/main and development branches and always make Pull Request from `development_branch_name` to `development` + +![](./img/gitea_pr_create.png) + +- On the next page, choose a `Title` and a `Description`, then click `Create Pull Request` + - Usually, we write at least any related issue and a brief description of the work done + +![](./img/gitea_pr_title_description.png) + +- At any time you can close your own Pull Request + +![](./img/gitea_close_pr.png) + +### Create a Draft Pull Request + +To create a draft pull request, you simply need to add `WIP:` before the title of your pull request. This will set the pull request in Draft mode. + +- Example of a draft pull request: +``` +WIP: New Pull Request in Draft Mode +``` + +## Useful Commands + +- See current branch +``` +git branch +``` +- See all branches locally +``` +git branch -r +``` +- See the git status +``` +git status +``` + +## Gitea References + +There are great Gitea references available online. + +- [Gitea Docs](https://docs.gitea.com/) +- [Gitea Cheat Sheet](https://docs.gitea.com/administration/config-cheat-sheet) \ No newline at end of file diff --git a/collections/system_administrators/computer_it_basics/gitea/gitea_toc.md b/collections/system_administrators/computer_it_basics/gitea/gitea_toc.md new file mode 100644 index 0000000..6741c9a --- /dev/null +++ b/collections/system_administrators/computer_it_basics/gitea/gitea_toc.md @@ -0,0 +1,6 @@ +# Gitea + +## Table of Contents + +- [Gitea Basics](./gitea_basics.md) +- [Gitea API](./gitea_api.md) \ No newline at end of file diff --git a/collections/system_administrators/computer_it_basics/gitea/img/api_example_file.png b/collections/system_administrators/computer_it_basics/gitea/img/api_example_file.png new file mode 100644 index 0000000..8fb5667 Binary files /dev/null and b/collections/system_administrators/computer_it_basics/gitea/img/api_example_file.png differ diff --git a/collections/system_administrators/computer_it_basics/gitea/img/api_overview.png b/collections/system_administrators/computer_it_basics/gitea/img/api_overview.png new file mode 100644 index 0000000..16d6697 Binary files /dev/null and b/collections/system_administrators/computer_it_basics/gitea/img/api_overview.png differ diff --git a/collections/system_administrators/computer_it_basics/gitea/img/gitea_authorize_token.png b/collections/system_administrators/computer_it_basics/gitea/img/gitea_authorize_token.png new file mode 100644 index 0000000..117c2a8 Binary files /dev/null and b/collections/system_administrators/computer_it_basics/gitea/img/gitea_authorize_token.png differ diff --git a/collections/system_administrators/computer_it_basics/gitea/img/gitea_close_pr.png b/collections/system_administrators/computer_it_basics/gitea/img/gitea_close_pr.png new file mode 100644 index 0000000..8b21912 Binary files /dev/null and b/collections/system_administrators/computer_it_basics/gitea/img/gitea_close_pr.png differ diff --git a/collections/system_administrators/computer_it_basics/gitea/img/gitea_new_branch.png b/collections/system_administrators/computer_it_basics/gitea/img/gitea_new_branch.png new file mode 100644 index 0000000..b7bb0da Binary files /dev/null and b/collections/system_administrators/computer_it_basics/gitea/img/gitea_new_branch.png differ diff --git a/collections/system_administrators/computer_it_basics/gitea/img/gitea_new_pr.png b/collections/system_administrators/computer_it_basics/gitea/img/gitea_new_pr.png new file mode 100644 index 0000000..9727ca9 Binary files /dev/null and b/collections/system_administrators/computer_it_basics/gitea/img/gitea_new_pr.png differ diff --git a/collections/system_administrators/computer_it_basics/gitea/img/gitea_pr_create.png b/collections/system_administrators/computer_it_basics/gitea/img/gitea_pr_create.png new file mode 100644 index 0000000..2e7aa48 Binary files /dev/null and b/collections/system_administrators/computer_it_basics/gitea/img/gitea_pr_create.png differ diff --git a/collections/system_administrators/computer_it_basics/gitea/img/gitea_pr_title_description.png b/collections/system_administrators/computer_it_basics/gitea/img/gitea_pr_title_description.png new file mode 100644 index 0000000..6be79ca Binary files /dev/null and b/collections/system_administrators/computer_it_basics/gitea/img/gitea_pr_title_description.png differ diff --git a/collections/system_administrators/computer_it_basics/gitea/img/gitea_register.png b/collections/system_administrators/computer_it_basics/gitea/img/gitea_register.png new file mode 100644 index 0000000..351d6fb Binary files /dev/null and b/collections/system_administrators/computer_it_basics/gitea/img/gitea_register.png differ diff --git a/collections/system_administrators/computer_it_basics/gitea/img/gitea_sign_in.png b/collections/system_administrators/computer_it_basics/gitea/img/gitea_sign_in.png new file mode 100644 index 0000000..d0b8d4c Binary files /dev/null and b/collections/system_administrators/computer_it_basics/gitea/img/gitea_sign_in.png differ diff --git a/collections/system_administrators/computer_it_basics/gitea/img/gitea_ssh_key.png b/collections/system_administrators/computer_it_basics/gitea/img/gitea_ssh_key.png new file mode 100644 index 0000000..7702a25 Binary files /dev/null and b/collections/system_administrators/computer_it_basics/gitea/img/gitea_ssh_key.png differ diff --git a/collections/system_administrators/computer_it_basics/gitea/img/gitea_token.png b/collections/system_administrators/computer_it_basics/gitea/img/gitea_token.png new file mode 100644 index 0000000..2aa65ce Binary files /dev/null and b/collections/system_administrators/computer_it_basics/gitea/img/gitea_token.png differ diff --git a/collections/system_administrators/getstarted/TF_Token/tft_ethereum/tft_ethereum.md b/collections/system_administrators/getstarted/TF_Token/tft_ethereum/tft_ethereum.md index 67ecd6e..b8dc376 100644 --- a/collections/system_administrators/getstarted/TF_Token/tft_ethereum/tft_ethereum.md +++ b/collections/system_administrators/getstarted/TF_Token/tft_ethereum/tft_ethereum.md @@ -13,7 +13,7 @@ ## Introduction -The TFT Stellar-Ethereum bridge serves as a vital link between the Stellar and Ethereum blockchains, enabling the seamless transfer of TFT tokens between these two networks. This bridge enhances interoperability and expands the utility of TFT by allowing users to leverage the strengths of both platforms. With the bridge in place, TFT holders can convert their tokens from the Stellar network to the Ethereum network and vice versa, unlocking new possibilities for engagement with decentralized applications, smart contracts, and the vibrant Ethereum ecosystem. This bridge promotes liquidity, facilitates cross-chain transactions, and encourages collaboration between the Stellar and Ethereum communities. +The TFT Stellar-Ethereum bridge serves as a vital link between the Stellar and Ethereum blockchains, enabling the seamless transfer of TFT tokens between these two networks. This bridge enhances interoperability by allowing users to leverage the strengths of both platforms. With the bridge in place, TFT holders can convert their tokens from the Stellar network to the Ethereum network and vice versa, unlocking new possibilities for engagement with decentralized applications, smart contracts, and the vibrant Ethereum ecosystem. This bridge promotes liquidity, facilitates cross-chain transactions, and encourages collaboration between the Stellar and Ethereum communities. *** diff --git a/collections/system_administrators/getstarted/TF_Token/tft_lobstr/tft_lobstr.md b/collections/system_administrators/getstarted/TF_Token/tft_lobstr/tft_lobstr.md index ddca2d4..9c0d6c5 100644 --- a/collections/system_administrators/getstarted/TF_Token/tft_lobstr/tft_lobstr.md +++ b/collections/system_administrators/getstarted/TF_Token/tft_lobstr/tft_lobstr.md @@ -16,11 +16,7 @@ ## Introduction -The Threefold token (TFT) is the utility token of the Threefold Grid, a decentralized and open-source project offering network, compute and storage capacity. - -Threefold Tokens (TFT) are created (minted) by the ThreeFold Blockchain (TFChain) only when new Internet capacity is added to the ThreeFold Grid by farmers. For this reason, TFT is a pure utility token as minting is solely the result of farming on the Threefold Grid. - -* To **farm** TFT, read the [complete farming guide](https://forum.threefold.io/t/threefold-farming-guide-part-1/2989). +The Threefold token (TFT) is the token of the Threefold Grid, a decentralized and open-source project offering network, compute and storage capacity. * To **buy** TFT, follow this guide. diff --git a/collections/system_administrators/getstarted/ssh_guide/advanced_methods/advanced_methods.md b/collections/system_administrators/getstarted/ssh_guide/advanced_methods/advanced_methods.md new file mode 100644 index 0000000..88e5561 --- /dev/null +++ b/collections/system_administrators/getstarted/ssh_guide/advanced_methods/advanced_methods.md @@ -0,0 +1,8 @@ +# Advanced Methods + +

Table of Contents

+ +- [SSH with PuTTY](ssh_putty.md) +- [SSH with WSL](ssh_wsl.md) +- [WireGuard](ssh_wireguard.md) +- [Planetary Network](planetarynetwork.md) \ No newline at end of file diff --git a/collections/system_administrators/getstarted/ssh_guide/advanced_methods/planetarynetwork.md b/collections/system_administrators/getstarted/ssh_guide/advanced_methods/planetarynetwork.md new file mode 100644 index 0000000..35df85f --- /dev/null +++ b/collections/system_administrators/getstarted/ssh_guide/advanced_methods/planetarynetwork.md @@ -0,0 +1,224 @@ + +

Planetary Network

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Install](#install) +- [Run](#run) + - [Linux](#linux) + - [MacOS](#macos) +- [Test Connectivity](#test-connectivity) +- [Firewalls](#firewalls) + - [Linux](#linux-1) + - [MacOS](#macos-1) +- [Get Yggdrasil IP](#get-yggdrasil-ip) +- [Add Peers](#add-peers) +- [Peers](#peers) + - [Central Europe](#central-europe) + - [Ghent](#ghent) + - [Austria](#austria) +- [Planetary Network Clients](#planetary-network-clients) + +*** + +## Introduction + +In a first phase, to get started, you need to launch the planetary network by running [Yggdrasil](https://yggdrasil-network.github.io) from the command line. + +Yggdrasil is an implementation of a fully end-to-end encrypted IPv6 network. It is lightweight, self-arranging, supported on multiple platforms, and allows pretty much any IPv6-capable application to communicate securely with other nodes on the network. Yggdrasil does not require you to have IPv6 Internet connectivity - it also works over IPv4. + +## Install + +Yggdrasil is necessary for communication between your local machine and the nodes on the Grid that you deploy to. Binaries and packages are available for all major operating systems, or it can be built from source. Find installation instructions here. + +After installation, you'll need to add at least one publicly available peer to your Yggdrasil configuration file. By default on Unix based systems, you'll find the file at `/etc/yggdrasil.conf`. To find peers, check this site, which compiles and displays the peer information available on Github. + +Add peers to your configuration file like so: + +``` +Peers: ["PEER_URL:PORT", "PEER_URL:PORT", ...] +``` + +Please consult [yggdrasil installation page](https://yggdrasil-network.github.io/installation.html) for more information and clients + +## Run + +### Linux + +On Linux with `systemd`, Yggdrasil can be started and enabled as a service, or run manually from the command line: + +``` +sudo yggdrasil -useconffile /etc/yggdrasil.conf +``` + +Get your IPv6 address with following command : + +``` +yggdrasilctl getSelf +``` + +### MacOS + +The MacOS package will automatically install and start the `launchd` service. After adding peers to your config file, restart Yggdrasil by stopping the service (it will be restarted automatically): + +``` +sudo launchctl stop yggdrasil +``` + +Get your IPv6 address with following command : + +``` +sudo yggdrasilctl getSelf +``` + +## Test Connectivity + +To ensure that you have successfully connected to the Yggdrasil network, try loading the site in your browser: + +``` +http://[319:3cf0:dd1d:47b9:20c:29ff:fe2c:39be]/ +``` + +## Firewalls + +Creating deployments on the Grid also requires that nodes can reach your machine as well. This means that a local firewall preventing inbound connections will cause deployments to fail. + +### Linux + +On systems using `iptables`, check: +``` +sudo ip6tables -S INPUT +``` + +If the first line is `-P INPUT DROP`, then all inbound connections over IPv6 will be blocked. To open inbound connections, run: + +``` +sudo ip6tables -P INPUT ACCEPT +``` + +To make this persist after a reboot, run: + +``` +sudo ip6tables-save +``` + +If you'd rather close the firewall again after you're done, use: + +``` +sudo ip6tables -P INPUT DROP +``` + +### MacOS + +The MacOS system firewall is disabled by default. You can check your firewall settings according to instructions here. + +## Get Yggdrasil IP + +Once Yggdrasil is installed, you can find your Yggdrasil IP address using this command on both Linux and Mac: + +``` +yggdrasil -useconffile /etc/yggdrasil.conf -address +``` + +You'll need this address when registering your twin on TFChain later. + + +## Add Peers + + + - Add the needed [peers](https://publicpeers.neilalexander.dev/) in the config file generated under Peers. + + **example**: +``` + Peers: + [ + tls://54.37.137.221:11129 + ] +``` +- Restart yggdrasil by + + systemctl restart yggdrasil + +## Peers + +### Central Europe + +#### Ghent + +- tcp://gent01.grid.tf:9943 +- tcp://gent02.grid.tf:9943 +- tcp://gent03.grid.tf:9943 +- tcp://gent04.grid.tf:9943 +- tcp://gent01.test.grid.tf:9943 +- tcp://gent02.test.grid.tf:9943 +- tcp://gent01.dev.grid.tf:9943 +- tcp://gent02.dev.grid.tf:9943 + +### Austria + +- tcp://gw291.vienna1.greenedgecloud.com:9943 +- tcp://gw293.vienna1.greenedgecloud.com:9943 +- tcp://gw294.vienna1.greenedgecloud.com:9943 +- tcp://gw297.vienna1.greenedgecloud.com:9943 +- tcp://gw298.vienna1.greenedgecloud.com:9943 +- tcp://gw299.vienna2.greenedgecloud.com:9943 +- tcp://gw300.vienna2.greenedgecloud.com:9943 +- tcp://gw304.vienna2.greenedgecloud.com:9943 +- tcp://gw306.vienna2.greenedgecloud.com:9943 +- tcp://gw307.vienna2.greenedgecloud.com:9943 +- tcp://gw309.vienna2.greenedgecloud.com:9943 +- tcp://gw313.vienna2.greenedgecloud.com:9943 +- tcp://gw324.salzburg1.greenedgecloud.com:9943 +- tcp://gw326.salzburg1.greenedgecloud.com:9943 +- tcp://gw327.salzburg1.greenedgecloud.com:9943 +- tcp://gw328.salzburg1.greenedgecloud.com:9943 +- tcp://gw330.salzburg1.greenedgecloud.com:9943 +- tcp://gw331.salzburg1.greenedgecloud.com:9943 +- tcp://gw333.salzburg1.greenedgecloud.com:9943 +- tcp://gw422.vienna2.greenedgecloud.com:9943 +- tcp://gw423.vienna2.greenedgecloud.com:9943 +- tcp://gw424.vienna2.greenedgecloud.com:9943 +- tcp://gw425.vienna2.greenedgecloud.com:9943 + +## Planetary Network Clients + +``` + Peers: + [ + # Threefold Lochrist + tcp://gent01.grid.tf:9943 + tcp://gent02.grid.tf:9943 + tcp://gent03.grid.tf:9943 + tcp://gent04.grid.tf:9943 + tcp://gent01.test.grid.tf:9943 + tcp://gent02.test.grid.tf:9943 + tcp://gent01.dev.grid.tf:9943 + tcp://gent02.dev.grid.tf:9943 + # GreenEdge + tcp://gw291.vienna1.greenedgecloud.com:9943 + tcp://gw293.vienna1.greenedgecloud.com:9943 + tcp://gw294.vienna1.greenedgecloud.com:9943 + tcp://gw297.vienna1.greenedgecloud.com:9943 + tcp://gw298.vienna1.greenedgecloud.com:9943 + tcp://gw299.vienna2.greenedgecloud.com:9943 + tcp://gw300.vienna2.greenedgecloud.com:9943 + tcp://gw304.vienna2.greenedgecloud.com:9943 + tcp://gw306.vienna2.greenedgecloud.com:9943 + tcp://gw307.vienna2.greenedgecloud.com:9943 + tcp://gw309.vienna2.greenedgecloud.com:9943 + tcp://gw313.vienna2.greenedgecloud.com:9943 + tcp://gw324.salzburg1.greenedgecloud.com:9943 + tcp://gw326.salzburg1.greenedgecloud.com:9943 + tcp://gw327.salzburg1.greenedgecloud.com:9943 + tcp://gw328.salzburg1.greenedgecloud.com:9943 + tcp://gw330.salzburg1.greenedgecloud.com:9943 + tcp://gw331.salzburg1.greenedgecloud.com:9943 + tcp://gw333.salzburg1.greenedgecloud.com:9943 + tcp://gw422.vienna2.greenedgecloud.com:9943 + tcp://gw423.vienna2.greenedgecloud.com:9943 + tcp://gw424.vienna2.greenedgecloud.com:9943 + tcp://gw425.vienna2.greenedgecloud.com:9943 + ] +``` + diff --git a/collections/system_administrators/getstarted/ssh_guide/ssh_wireguard.md b/collections/system_administrators/getstarted/ssh_guide/advanced_methods/ssh_wireguard.md similarity index 84% rename from collections/system_administrators/getstarted/ssh_guide/ssh_wireguard.md rename to collections/system_administrators/getstarted/ssh_guide/advanced_methods/ssh_wireguard.md index a251f97..818fb51 100644 --- a/collections/system_administrators/getstarted/ssh_guide/ssh_wireguard.md +++ b/collections/system_administrators/getstarted/ssh_guide/advanced_methods/ssh_wireguard.md @@ -1,4 +1,4 @@ -

WireGuard Access

+

WireGuard

Table of Contents

@@ -11,7 +11,6 @@ - [Windows](#windows) - [Test the WireGuard Connection](#test-the-wireguard-connection) - [SSH into the Deployment with Wireguard](#ssh-into-the-deployment-with-wireguard) -- [Questions and Feedback](#questions-and-feedback) *** @@ -19,15 +18,14 @@ In this Threefold Guide, we show how to set up [WireGuard](https://www.wireguard.com/) to access a 3Node deployment with an SSH connection. -Note that WireGuard provides the connection to the 3Node deployment. It is up to you to decide which SSH client you want to use. This means that the steps to SSH into a 3Node deployment will be similar to the steps proposed in the guides for [Open-SSH](ssh_openssh.md), [PuTTy](ssh_putty.md) and [WSL](ssh_wsl.md). Please refer to [this documentation](ssh_guide.md) if you have any questions concerning SSH clients. The main difference will be that we connect to the 3Node deployment using a WireGuard connection instead of an IPv4 or a Planetary Network connection. - +Note that WireGuard provides the connection to the 3Node deployment. It is up to you to decide which SSH client you want to use. This means that the steps to SSH into a 3Node deployment will be similar to the steps proposed in the guides for [Open-SSH](ssh_openssh.md), [PuTTy](ssh_putty.md) and [WSL](ssh_wsl.md). The main difference will be that we connect to the 3Node deployment using a WireGuard connection instead of an IPv4 or a [Mycelium](mycelium_toc.md) connection. # Prerequisites Make sure to [read the introduction](tfgrid3_getstarted.md#get-started---your-first-deployment) before going further. -* SSH client of your choice +* SSH client of your choice: * [Open-SSH](ssh_openssh.md) * [PuTTy](ssh_putty.md) * [WSL](ssh_wsl.md) @@ -36,7 +34,7 @@ Make sure to [read the introduction](tfgrid3_getstarted.md#get-started---your-fi # Deploy a Weblet with WireGuard Access -For this guide on WireGuard access, we deploy a [Full VM](dashboard@fullvm). Note that the whole process is similar with other types of ThreeFold weblets on the Dashboard. +For this guide on WireGuard access, we deploy a [Full VM](dashboard@@fullVm). Note that the whole process is similar with other types of ThreeFold weblets on the Dashboard. * On the [Threefold Dashboard](https://dashboard.grid.tf/), go to: Deploy -> Virtual Machines -> Full Virtual Machine * Choose the parameters you want @@ -69,19 +67,19 @@ To set the WireGuard connection on Linux or MAC, create a WireGuard configuratio * Copy the content **WireGuard Config** from the Dashboard **Details** window * Paste the content to a file with the extension `.conf` (e.g. **wg.conf**) in the directory `/etc/wireguard` - ``` + * ``` sudo nano /etc/wireguard/wg.conf ``` * Start WireGuard with the command **wg-quick** and, as a parameter, pass the configuration file without the extension (e.g. *wg.conf -> wg*) - ``` + * ``` wg-quick up wg ``` * Note that you can also specify a config file by path, stored in any location - ``` + * ``` wg-quick up /etc/wireguard/wg.conf ``` * If you want to stop the WireGuard service, you can write the following in the terminal - ``` + * ``` wg-quick down wg ``` @@ -105,7 +103,7 @@ To set the WireGuard connection on Windows, add and activate a tunnel with the W As a test, you can [ping](cli_scripts_basics.md#test-the-network-connectivity-of-a-domain-or-an-ip-address-with-ping) the virtual IP address of the VM to make sure the WireGuard connection is properly established. Make sure to replace `VM_WireGuard_IP` with the proper WireGuard IP address: * Ping the deployment - ``` + * ``` ping VM_WireGuard_IP ``` @@ -116,14 +114,8 @@ As a test, you can [ping](cli_scripts_basics.md#test-the-network-connectivity-of To SSH into the deployment with Wireguard, use the **WireGuard IP** shown in the Dashboard **Details** window. * SSH into the deployment - ``` + * ``` ssh root@VM_WireGuard_IP ``` You now have access to the deployment over a WireGuard SSH connection. - - - -# Questions and Feedback - -If you have any questions, let us know by writing a post on the [Threefold Forum](http://forum.threefold.io/) or by reaching out to the [ThreeFold Grid Tester Community](https://t.me/threefoldtesting) on Telegram. \ No newline at end of file diff --git a/collections/system_administrators/getstarted/ssh_guide/ssh_guide.md b/collections/system_administrators/getstarted/ssh_guide/ssh_guide.md index 62b83a4..0b081ad 100644 --- a/collections/system_administrators/getstarted/ssh_guide/ssh_guide.md +++ b/collections/system_administrators/getstarted/ssh_guide/ssh_guide.md @@ -5,6 +5,4 @@ SSH is a secure protocol used as the primary means of connecting to Linux server

Table of Contents

- [SSH with OpenSSH](ssh_openssh.md) -- [SSH with PuTTY](ssh_putty.md) -- [SSH with WSL](ssh_wsl.md) -- [WireGuard Access](ssh_wireguard.md) \ No newline at end of file +- [Advanced Methods](advanced_methods.md) \ No newline at end of file diff --git a/collections/system_administrators/getstarted/ssh_guide/ssh_openssh.md b/collections/system_administrators/getstarted/ssh_guide/ssh_openssh.md index f782d79..85bc4fd 100644 --- a/collections/system_administrators/getstarted/ssh_guide/ssh_openssh.md +++ b/collections/system_administrators/getstarted/ssh_guide/ssh_openssh.md @@ -3,195 +3,104 @@

Table of Contents

- [Introduction](#introduction) -- [Main Steps and Prerequisites](#main-steps-and-prerequisites) -- [Step-by-Step Process with OpenSSH](#step-by-step-process-with-openssh) - - [Linux](#linux) - - [SSH into a 3Node with IPv4 on Linux](#ssh-into-a-3node-with-ipv4-on-linux) - - [SSH into a 3Node with the Planetary Network on Linux](#ssh-into-a-3node-with-the-planetary-network-on-linux) - - [MAC](#mac) - - [SSH into a 3Node with IPv4 on MAC](#ssh-into-a-3node-with-ipv4-on-mac) - - [SSH into a 3Node with the Planetary Network on MAC](#ssh-into-a-3node-with-the-planetary-network-on-mac) - - [Windows](#windows) - - [SSH into a 3Node with IPv4 on Windows](#ssh-into-a-3node-with-ipv4-on-windows) - - [SSH into a 3Node with the Planetary Network on Windows](#ssh-into-a-3node-with-the-planetary-network-on-windows) -- [Questions and Feedback](#questions-and-feedback) +- [Overview](#overview) +- [Linux](#linux) +- [MacOS](#macos) +- [Windows](#windows) *** -# Introduction +## Introduction -In this Threefold Guide, we show how easy it is to deploy a full virtual machine (VM) and SSH into a 3Node with [OpenSSH](https://www.openssh.com/) on Linux, MAC and Windows with both an IPv4 and a Planetary Network connection. To connect to the 3Node with WireGuard, read [this documentation](ssh_wireguard.md). +In this Threefold Guide, we show how easy it is to deploy a full virtual machine (VM) and SSH into a 3Node with [OpenSSH](https://www.openssh.com/) on Linux, MacOS and Windows with either an IPv4 or a Mycelium connection. To deploy different workloads, the SSH connection process should be very similar. -If you have any questions, feel free to write a post on the [Threefold Forum](http://forum.threefold.io/). +## Overview - -# Main Steps and Prerequisites - -Make sure to [read the introduction](../tfgrid3_getstarted.md#get-started---your-first-deployment) before going further. +Make sure to [read the introduction](tfgrid3_getstarted.md#get-started---your-first-deployment) before going further. The main steps for the whole process are the following: -* Create an SSH Key pair -* Deploy a 3Node - * Choose IPv4 or the Planetary Network +* Create an SSH key pair +* Deploy a VM on a 3Node * SSH into the 3Node - * For the Planetary Network, download the Planetary Network Connector - - - -# Step-by-Step Process with OpenSSH ## Linux -### SSH into a 3Node with IPv4 on Linux +Here are the steps to SSH into a 3Node with either IPv4 or Mycelium on Linux. -Here are the steps to SSH into a 3Node with IPv4 on Linux. +If you are using Mycelium, make sure to [read this section](mycelium_toc.md). * To create the SSH key pair, write in the terminal - ``` - ssh-keygen - ``` - * Save in default location - * Write a password (optional) +``` +ssh-keygen +``` +* Save in default location +* Write a password (optional) * To see the public key, write in the terminal - ``` - cat ~/.ssh/id_rsa.pub - ``` - * Select and copy the public key when needed +``` +cat ~/.ssh/id_rsa.pub +``` +* Select and copy the public key when needed * To deploy a full VM * On the [Threefold Dashboard](https://dashboard.grid.tf/), go to: Deploy -> Virtual Machines -> Full Virtual Machine * Choose the parameters you want * Minimum CPU: 1 vCore * Minimum Memory: 512 Mb * Minimum Disk Size: 15 Gb - * Select IPv4 in `Network` + * Select `IPv4` or `Mycelium` in `Network` * In `Node Selection`, click on `Load Nodes` * Click `Deploy` * To SSH into the VM once the 3Node is deployed - * Copy the IPv4 address + * Copy the IP address * Open the terminal, write the following with the deployment address and write **yes** to confirm - ``` - ssh root@IPv4_address - ``` +``` +ssh root@IP_address +``` -You now have an SSH connection on Linux with IPv4. +You now have an SSH connection on Linux. +## MacOS +Here are the steps to SSH into a 3Node with either IPv4 or Mycelium on MacOS. -### SSH into a 3Node with the Planetary Network on Linux - -Here are the steps to SSH into a 3Node with the Planetary Network on Linux. - -* Set a [Planetary Network connection](planetarynetwork.md) -* To create the SSH key pair, write in the terminal - ``` - ssh-keygen - ``` - * Save in default location - * Write a password (optional) -* To see the public key, write in the terminal - ``` - cat ~/.ssh/id_rsa.pub - ``` - * Select and copy the public key when needed -* To deploy a full VM - * On the [Threefold Dashboard](https://dashboard.grid.tf/), go to: Deploy -> Virtual Machines -> Full Virtual Machine - * Choose the parameters you want - * Minimum CPU: 1 vCore - * Minimum Memory: 512 Mb - * Minimum Disk Size: 15 Gb - * Select Planetary Network in `Network` - * In `Node Selection`, click on `Load Nodes` - * Click `Deploy` -* To SSH into the VM once the 3Node is deployed - * Copy the Planetary Network address - * Open the terminal, write the following with the deployment address and write **yes** to confirm - ``` - ssh root@planetary_network_address - ``` - -You now have an SSH connection on Linux with the Planetary Network. - - - -## MAC - -### SSH into a 3Node with IPv4 on MAC - -Here are the steps to SSH into a 3Node with IPv4 on MAC. +If you are using Mycelium, make sure to [read this section](mycelium_toc.md). * To create the SSH key pair, in the terminal write - ``` - ssh-keygen - ``` - * Save in default location - * Write a password (optional) +``` +ssh-keygen +``` +* Save in default location +* Write a password (optional) * To see the public key, write in the terminal - ``` - cat ~/.ssh/id_rsa.pub - ``` - * Select and copy the public key when needed +``` +cat ~/.ssh/id_rsa.pub +``` +* Select and copy the public key when needed * To deploy a full VM * On the [Threefold Dashboard](https://dashboard.grid.tf/), go to: Deploy -> Virtual Machines -> Full Virtual Machine * Choose the parameters you want * Minimum CPU: 1 vCore * Minimum Memory: 512 Mb * Minimum Disk Size: 15 Gb - * Select IPv4 in `Network` + * Select `IPv4` or `Mycelium` in `Network` * In `Node Selection`, click on `Load Nodes` * Click `Deploy` * To SSH into the VM once the 3Node is deployed - * Copy the IPv4 address + * Copy the IP address * Open the terminal, write the following with the deployment address and write **yes** to confirm - ``` - ssh root@IPv4_address - ``` - -You now have an SSH connection on MAC with IPv4. - - - -### SSH into a 3Node with the Planetary Network on MAC - -Here are the steps to SSH into a 3Node with the Planetary Network on MAC. - -* Set a [Planetary Network connection](planetarynetwork.md) -* To create the SSH key pair, write in the terminal - ``` - ssh-keygen - ``` - * Save in default location - * Write a password (optional) -* To see the public key, write in the terminal - ``` - cat ~/.ssh/id_rsa.pub - ``` - * Select and copy the public key when needed -* To deploy a full VM - * On the [Threefold Dashboard](https://dashboard.grid.tf/), go to: Deploy -> Virtual Machines -> Full Virtual Machine - * Choose the parameters you want - * Minimum CPU: 1 vCore - * Minimum Memory: 512 Mb - * Minimum Disk Size: 15 Gb - * Select Planetary Network in `Network` - * In `Node Selection`, click on `Load Nodes` - * Click `Deploy` -* To SSH into the VM once the 3Node is deployed - * Copy the Planetary Network address - * Open the terminal, write the following with the deployment address and write **yes** to confirm - ``` - ssh root@planetary_network_address - ``` - -You now have an SSH connection on MAC with the Planetary Network. - +``` +ssh root@IP_address +``` +You now have an SSH connection on MacOS. ## Windows -### SSH into a 3Node with IPv4 on Windows +Here are the steps to SSH into a 3Node with either IPv4 or Mycelium on Windows. + +If you are using Mycelium, make sure to [read this section](../../mycelium/mycelium_toc.md). * To download OpenSSH client and OpenSSH server * Open the `Settings` and select `Apps` @@ -203,79 +112,30 @@ You now have an SSH connection on MAC with the Planetary Network. * Search OpenSSH * Install OpenSSH Client and OpenSSH Server * To create the SSH key pair, open `PowerShell` and write - ``` - ssh-keygen - ``` - * Save in default location - * Write a password (optional) +``` +ssh-keygen +``` +* Save in default location +* Write a password (optional) * To see the public key, write in `PowerShell` - ``` - cat ~/.ssh/id_rsa.pub - ``` - * Select and copy the public key when needed +``` +cat ~/.ssh/id_rsa.pub +``` +* Select and copy the public key when needed * To deploy a full VM * On the [Threefold Dashboard](https://dashboard.grid.tf/), go to: Deploy -> Virtual Machines -> Full Virtual Machine * Choose the parameters you want * Minimum CPU: 1 vCore * Minimum Memory: 512 Mb * Minimum Disk Size: 15 Gb - * Select IPv4 in `Network` + * Select `IPv4` or `Mycelium` in `Network` * In `Node Selection`, click on `Load Nodes` * Click `Deploy` * To SSH into the VM once the 3Node is deployed - * Copy the IPv4 address + * Copy the IP address * Open `PowerShell`, write the following with the deployment address and write **yes** to confirm - ``` - ssh root@IPv4_address - ``` +``` +ssh root@IP_address +``` -You now have an SSH connection on Window with IPv4. - - - -### SSH into a 3Node with the Planetary Network on Windows - -* Set a [Planetary Network connection](planetarynetwork.md) -* To download OpenSSH client and OpenSSH server - * Open the `Settings` and select `Apps` - * Click `Apps & Features` - * Click `Optional Features` - * Verifiy if OpenSSH Client and OpenSSH Server are there - * If not - * Click `Add a feature` - * Search OpenSSH - * Install OpenSSH Client and OpenSSH Server -* To create the SSH key pair, open `PowerShell` and write - ``` - ssh-keygen - ``` - * Save in default location - * Write a password (optional) -* To see the public key, write in `PowerShell` - ``` - cat ~/.ssh/id_rsa.pub - ``` - * Select and copy the public key when needed -* To deploy a full VM - * On the [Threefold Dashboard](https://dashboard.grid.tf/), go to: Deploy -> Virtual Machines -> Full Virtual Machine - * Choose the parameters you want - * Minimum CPU: 1 vCore - * Minimum Memory: 512 Mb - * Minimum Disk Size: 15 Gb - * Select Planetary Network address in `Network` - * In `Node Selection`, click on `Load Nodes` - * Click `Deploy` -* To SSH into the VM once the 3Node is deployed - * Copy the Planetary Network address - * Open `PowerShell`, write the following with the deployment address and write **yes** to confirm - ``` - ssh root@planetary_network_address - ``` - -You now have an SSH connection on Window with the Planetary Network. - - - -# Questions and Feedback - -If you have any questions, let us know by writing a post on the [Threefold Forum](http://forum.threefold.io/). \ No newline at end of file +You now have an SSH connection on Window. \ No newline at end of file diff --git a/collections/system_administrators/getstarted/ssh_guide/ssh_putty.md b/collections/system_administrators/getstarted/ssh_guide/ssh_putty.md index 8e47559..39e46dc 100644 --- a/collections/system_administrators/getstarted/ssh_guide/ssh_putty.md +++ b/collections/system_administrators/getstarted/ssh_guide/ssh_putty.md @@ -5,7 +5,6 @@ - [Introduction](#introduction) - [Main Steps and Prerequisites](#main-steps-and-prerequisites) - [SSH with PuTTY on Windows](#ssh-with-putty-on-windows) -- [Questions and Feedback](#questions-and-feedback) *** @@ -13,23 +12,22 @@ In this Threefold Guide, we show how easy it is to deploy a full virtual machine (VM) and SSH into a 3Node on Windows with [PuTTY](https://www.putty.org/). -To deploy different workloads, the SSH connection process should be very similar. +To deploy different workloads, the SSH connection process should be very similar. -If you have any questions, feel free to write a post on the [Threefold Forum](http://forum.threefold.io/). +Make sure to read the [Mycelium section](mycelium_toc.md) if you use Mycelium for the network connection. ## Main Steps and Prerequisites -Make sure to [read the introduction](../tfgrid3_getstarted.md#get-started---your-first-deployment) before going further. +Make sure to [read the introduction](tfgrid3_getstarted.md#get-started---your-first-deployment) before going further. The main steps for the whole process are the following: * Create an SSH Key pair * Deploy a 3Node - * Choose IPv4 or the Planetary Network + * Choose IPv4 or Mycelium * SSH into the 3Node - * For the Planetary Network, set a [Planetary Network connection](planetarynetwork.md) ## SSH with PuTTY on Windows @@ -54,15 +52,15 @@ Here are the main steps to SSH into a full VM using PuTTY on a Windows machine. * Minimum CPU: 1 vCore * Minimum Memory: 512 Mb * Minimum Disk Size: 15 Gb - * Select IPv4 in `Network` + * Select IPv4 or Mycelium in `Network` * In `Node Selection`, click on `Load Nodes` * Click `Deploy` * To SSH into the VM once the 3Node is deployed - * Take note of the IPv4 address + * Take note of the IP address * Connect to the full VM with PuTTY * Open PuTTY * Go to the section `Session` - * Add the VM IPv4 address under `Host Name (or IP address)` + * Add the VM address under `Host Name (or IP address)` * Make sure `Connection type` is set to `SSH` * Go to the section `Connection` -> `SSH` -> `Auth` -> `Credentials` * Under `Private key file for authentication`, click on `Browse...` @@ -71,10 +69,4 @@ Here are the main steps to SSH into a full VM using PuTTY on a Windows machine. * In the PuTTY terminal window, enter `root` as the login parameter * Enter the passphrase for the private key if you set one -You now have an SSH connection on Windows using PuTTY. - - - -## Questions and Feedback - -If you have any questions, let us know by writing a post on the [Threefold Forum](http://forum.threefold.io/). \ No newline at end of file +You now have an SSH connection on Windows using PuTTY. \ No newline at end of file diff --git a/collections/system_administrators/getstarted/ssh_guide/ssh_wsl.md b/collections/system_administrators/getstarted/ssh_guide/ssh_wsl.md index 793f877..7a437ef 100644 --- a/collections/system_administrators/getstarted/ssh_guide/ssh_wsl.md +++ b/collections/system_administrators/getstarted/ssh_guide/ssh_wsl.md @@ -6,7 +6,6 @@ - [SSH Key Generation](#ssh-key-generation) - [Connect to Remote Host with SSH](#connect-to-remote-host-with-ssh) - [Enable Port 22 in Windows Firewall](#enable-port-22-in-windows-firewall) -- [Questions and Feedback](#questions-and-feedback) *** @@ -14,11 +13,11 @@ In this Threefold Guide, we show how easy it is to SSH into a 3node on Windows with [Windows Subsystem for Linux (WSL)](https://ubuntu.com/wsl). -If you have any questions, feel free to write a post on the [Threefold Forum](http://forum.threefold.io/). +Make sure to read the [Mycelium section](mycelium_toc.md) if you use Mycelium for the network connection. ## SSH Key Generation -Make sure SSH is installed by entering following command at the command prompt: +Make sure SSH is installed by entering the following command at the command prompt: ```sh sudo apt install openssh-client @@ -83,7 +82,3 @@ This is not recommend especially for portable device (Laptop, Tablets) that conn - under `Name` - Name: `SSH Server` - Description: `SSH Server` - -## Questions and Feedback - -If you have any questions, let us know by writing a post on the [Threefold Forum](http://forum.threefold.io/). \ No newline at end of file diff --git a/collections/system_administrators/getstarted/tfgrid3_getstarted.md b/collections/system_administrators/getstarted/tfgrid3_getstarted.md index d479cb3..c4f9d84 100644 --- a/collections/system_administrators/getstarted/tfgrid3_getstarted.md +++ b/collections/system_administrators/getstarted/tfgrid3_getstarted.md @@ -1,32 +1,26 @@ -# TFGrid Manual - Get Started +# Getting Started -## Get Started - Your First Deployment +## Your First Deployment -It's easy to get started on the TFGrid and deploy applications. +It's easy to get started on the TFGrid. + +For your first deployment on the grid, we will show you how to deploy a full virtual machine running on a ThreeFold node. - [Create a TFChain Account](dashboard@@wallet_connector) - [Get TFT](threefold_token@@buy_sell_tft) - [Bridge TFT to TChain](threefold_token@@tft_bridges) -- [Deploy an Application](dashboard@@deploy) -- [SSH Remote Connection](ssh_guide.md) - - [SSH with OpenSSH](ssh_openssh.md) - - [SSH with PuTTY](ssh_putty.md) - - [SSH with WSL](ssh_wsl.md) - - [SSH and WireGuard](ssh_wireguard.md) +- [Deploy and Connect to a VM](system_administrators@@ssh_openssh) -## Grid Platforms +Once you're acquainted with the basics, you can explore all types of ThreeFold deployments. -- [TF Dashboard](dashboard/dashboard@@) -- [TF Flist Hub](developers@@zos_hub) +## TFGrid Deployments -## TFGrid Services and Resources +From virtual machines to Kubernetes, to one-click apps to infrastructure-as-code workloads, the TFGrid provides syadmins control and flexibility. -- [TFGrid Services](tf_grid_services_readme.md) +- [ThreeFold Deployments](tfgrid_deployments.md) -## Advanced Deployment Techniques +## TFGrid Services -- [Advanced Topics](advanced.md) +Consult the list of TFGrid services to gain an overview of the ThreeFold ecosystem. -*** - -If you have any question, feel free to ask for help on the [Threefold Forum](https://forum.threefold.io/c/threefold-grid-utilization/support/). \ No newline at end of file +- [TFGrid Services](tf_grid_services_readme.md) \ No newline at end of file diff --git a/collections/system_administrators/getstarted/tfgrid_deployments.md b/collections/system_administrators/getstarted/tfgrid_deployments.md new file mode 100644 index 0000000..930f529 --- /dev/null +++ b/collections/system_administrators/getstarted/tfgrid_deployments.md @@ -0,0 +1,43 @@ +

TFGrid Deployments

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Dashboard UI](#dashboard-ui) +- [Infrastrure-As-Code](#infrastrure-as-code) +- [Command Line Interfaces](#command-line-interfaces) +- [GPU Workloads](#gpu-workloads) + +--- + +## Introduction + +There are many ways to interact with the ThreeFold Grid to deploy workloads. We present the main ones. + +## Dashboard UI + +We provide an easy-to-use user interface via the ThreeFold Dashboard and its many apps. + +- [ThreeFold Dashboard](dashboard@@dashboard) + +## Infrastrure-As-Code + +You can deploy infrastructure-as-code with Pulumi and Terraform/OpenTofu. + +- [Pulumi](pulumi_readme.md) +- [Terraform](terraform_toc.md) + +## Command Line Interfaces + +You can use our Go and Javascript/TypeScript command line interface tools to deploy workloads on the grid. + +- [Go Grid Client](developers@@grid3_go_readme) + - [TFCMD](developers@@tfcmd/tfcmd) + - [TFRobot](developers@@tfrobot/tfrobot) +- [TypeScript Grid Client](developers@@grid3_javascript_readme) + +## GPU Workloads + +There are many ways to deploy GPU workloads on the ThreeFold Grid. Check the GPU section for all the details. + +- [GPU Support](gpu_toc.md) \ No newline at end of file diff --git a/collections/system_administrators/getstarted/tfgrid_services/tf_grid_services_readme.md b/collections/system_administrators/getstarted/tfgrid_services/tf_grid_services_readme.md index 0e732c3..8009e97 100644 --- a/collections/system_administrators/getstarted/tfgrid_services/tf_grid_services_readme.md +++ b/collections/system_administrators/getstarted/tfgrid_services/tf_grid_services_readme.md @@ -7,13 +7,13 @@ - [QAnet](#qanet) - [Testnet](#testnet) - [Mainnet](#mainnet) - - [Supported Planetary Network Nodes](#supported-planetary-network-nodes) +- [General](#general) *** ## Introduction -On this article we have aggregated a list of all of the services running on Threefold Grid 3 infrastructure for your convenience +Here is a list of all of the services running on Threefold Grid 3 infrastructure. > Note: the usage of `dev` indicates a devnet service. > and usage of `test` indicates a testnet service. @@ -53,43 +53,7 @@ On this article we have aggregated a list of all of the services running on Thre - [TFGrid Proxy](https://gridproxy.grid.tf) - [Grid Dashboard](https://dashboard.grid.tf) -### Supported Planetary Network Nodes +## General -``` - Peers: - [ - # Threefold Lochrist - tcp://gent01.grid.tf:9943 - tcp://gent02.grid.tf:9943 - tcp://gent03.grid.tf:9943 - tcp://gent04.grid.tf:9943 - tcp://gent01.test.grid.tf:9943 - tcp://gent02.test.grid.tf:9943 - tcp://gent01.dev.grid.tf:9943 - tcp://gent02.dev.grid.tf:9943 - # GreenEdge - tcp://gw291.vienna1.greenedgecloud.com:9943 - tcp://gw293.vienna1.greenedgecloud.com:9943 - tcp://gw294.vienna1.greenedgecloud.com:9943 - tcp://gw297.vienna1.greenedgecloud.com:9943 - tcp://gw298.vienna1.greenedgecloud.com:9943 - tcp://gw299.vienna2.greenedgecloud.com:9943 - tcp://gw300.vienna2.greenedgecloud.com:9943 - tcp://gw304.vienna2.greenedgecloud.com:9943 - tcp://gw306.vienna2.greenedgecloud.com:9943 - tcp://gw307.vienna2.greenedgecloud.com:9943 - tcp://gw309.vienna2.greenedgecloud.com:9943 - tcp://gw313.vienna2.greenedgecloud.com:9943 - tcp://gw324.salzburg1.greenedgecloud.com:9943 - tcp://gw326.salzburg1.greenedgecloud.com:9943 - tcp://gw327.salzburg1.greenedgecloud.com:9943 - tcp://gw328.salzburg1.greenedgecloud.com:9943 - tcp://gw330.salzburg1.greenedgecloud.com:9943 - tcp://gw331.salzburg1.greenedgecloud.com:9943 - tcp://gw333.salzburg1.greenedgecloud.com:9943 - tcp://gw422.vienna2.greenedgecloud.com:9943 - tcp://gw423.vienna2.greenedgecloud.com:9943 - tcp://gw424.vienna2.greenedgecloud.com:9943 - tcp://gw425.vienna2.greenedgecloud.com:9943 - ] -``` +- [TF Flist Hub](developers@@/zos_hub) +- [TF Boot Generator](dashboard@@node_installer) \ No newline at end of file diff --git a/collections/system_administrators/gpu/gpu_toc.md b/collections/system_administrators/gpu/gpu_toc.md index b0ccaca..6c99cdf 100644 --- a/collections/system_administrators/gpu/gpu_toc.md +++ b/collections/system_administrators/gpu/gpu_toc.md @@ -10,8 +10,6 @@ Feel free to explore the different possibilities! - [Node Finder and GPU](dashboard@@node_finder) - [Javascript Client and GPU](developers@@grid3_javascript_gpu_support) - [GPU and Go](developers@@grid3_go_gpu) - - [GPU Support](developers@@grid3_go_gpu_support) - - [Deploy a VM with GPU](developers@@grid3_go_vm_with_gpu) - [TFCMD and GPU](developers@@tfcmd_vm) - [Terraform and GPU](terraform_gpu_support.md) - [Full VM and GPU](dashboard@@fullvm) diff --git a/collections/system_administrators/pulumi/pulumi_complete_guides/pulumi_complete_guides_toc.md b/collections/system_administrators/pulumi/pulumi_complete_guides/pulumi_complete_guides_toc.md new file mode 100644 index 0000000..5a999a3 --- /dev/null +++ b/collections/system_administrators/pulumi/pulumi_complete_guides/pulumi_complete_guides_toc.md @@ -0,0 +1,9 @@ +

Complete Guides

+ +This section covers complete guides to deploy workloads on the ThreeFold Grid with Pulumi. + +

Table of Contents

+ +- [Pulumi and YAML](./pulumi_yaml.md) +- [Pulumi and Python](./pulumi_python.md) +- [Pulumi and Go](./pulumi_go.md) \ No newline at end of file diff --git a/collections/system_administrators/pulumi/pulumi_complete_guides/pulumi_go.md b/collections/system_administrators/pulumi/pulumi_complete_guides/pulumi_go.md new file mode 100644 index 0000000..b5b3a36 --- /dev/null +++ b/collections/system_administrators/pulumi/pulumi_complete_guides/pulumi_go.md @@ -0,0 +1,90 @@ +

Pulumi Complete Go Guide

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Prerequisites](#prerequisites) +- [Steps](#steps) +- [Alternative to Make Commands](#alternative-to-make-commands) + +--- + +## Introduction + +In this guide, we cover the complete steps to deploy a virtual machine on the grid with Pulumi via Go. + +To provide a uniform deployment method, we use Docker for this guide. It is optional but will greatly facilitate the deployment as the steps will be similar for Linux, MacOS and Windows. + +This guide is useful to get you started quickly with Pulumi on the TFGrid. + +Once you've successfully deployed a VM, you can try all the different Go examples within the [pulumi-threefold repository](https://github.com/threefoldtech/pulumi-threefold). The examples are available in the subdirectory `/examples/go/`. + +## Prerequisites + +- [A TFChain account](dashboard@@wallet_connector) +- TFT in your TFChain account + - [Buy TFT](threefold_token@@buy_sell_tft) + - [Send TFT to TFChain](threefold_token@@tfchain_stellar_bridge) +- [Get Docker](https://docs.docker.com/get-docker/) + +## Steps + +- Deploy a Docker Ubuntu container in interactive mode: +``` +sudo docker run -it --net=host ubuntu:jammy /bin/bash +``` + +- In Docker Ubuntu, deploy a VM with Pulumi. Make sure to add your `MNEMONIC` and `SSH_KEY` below before running the script. For this deployment we use `main` as the `NETWORK`. Change this if needed. + +``` +# Install the prerequisites +apt update && apt install -y curl git wget make + +# Install Pulumi +curl -fsSL https://get.pulumi.com | sh +export PATH=$PATH=:/root/.pulumi/bin + +# Clone the ThreeFold Pulumi repo +git clone https://github.com/threefoldtech/pulumi-threefold.git +cd pulumi-threefold/examples/go/virtual_machine + +# Prepare the Pulumi Go environment +# Install Go +wget https://go.dev/dl/go1.23.0.linux-amd64.tar.gz +rm -rf /usr/local/go && tar -C /usr/local -xzf go1.23.0.linux-amd64.tar.gz +export PATH=$PATH:/usr/local/go/bin + +# Export the variables +export NETWORK="main" +export SSH_KEY="" +export MNEMONIC="" + +# Start Pulumi +make run +``` + +- You can now SSH into the deployment from your local machine terminal +``` +ssh root@VM_IP +``` +- To destroy the deployment, run the following line within the Docker Ubuntu terminal. +``` +make destroy +``` + +## Alternative to Make Commands + +You can use direct Pulumi commands instead of the Make commands above. + +- You can replace `make run` with: +``` +pulumi login --local +pulumi up +``` +- You can replace `make destroy` with: +``` +pulumi down +pulumi stack rm +``` + +That being said, the Make commands run additional features. Feel free to explore the possibilities and consult the files within the repo for more information. \ No newline at end of file diff --git a/collections/system_administrators/pulumi/pulumi_complete_guides/pulumi_python.md b/collections/system_administrators/pulumi/pulumi_complete_guides/pulumi_python.md new file mode 100644 index 0000000..c995e3d --- /dev/null +++ b/collections/system_administrators/pulumi/pulumi_complete_guides/pulumi_python.md @@ -0,0 +1,89 @@ +

Pulumi Complete Python Guide

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Prerequisites](#prerequisites) +- [Steps](#steps) +- [Alternative to Make Commands](#alternative-to-make-commands) + +--- + +## Introduction + +In this guide, we cover the complete steps to deploy a virtual machine on the grid with Pulumi via Python. + +To provide a uniform deployment method, we use Docker for this guide. It is optional but will greatly facilitate the deployment as the steps will be similar for Linux, MacOS and Windows. + +This guide is useful to get you started quickly with Pulumi on the TFGrid. + +Once you've successfully deployed a VM, you can try all the different Python examples within the [pulumi-threefold repository](https://github.com/threefoldtech/pulumi-threefold). The examples are available in the subdirectory `/examples/python/`. + +## Prerequisites + +- [A TFChain account](dashboard@@wallet_connector) +- TFT in your TFChain account + - [Buy TFT](threefold_token@@buy_sell_tft) + - [Send TFT to TFChain](threefold_token@@tfchain_stellar_bridge) +- [Get Docker](https://docs.docker.com/get-docker/) + +## Steps + +- Deploy a Docker Ubuntu container in interactive mode: +``` +sudo docker run -it --net=host ubuntu:jammy /bin/bash +``` + +- In Docker Ubuntu, deploy a VM with Pulumi. Make sure to add your `MNEMONIC` and `SSH_KEY` below before running the script. For this deployment we use `main` as the `NETWORK`. Change this if needed. +``` +# Install the prerequisites +apt update && apt install -y curl git python3 python-is-python3 python3-venv python3-pip + +# Install Pulumi +curl -fsSL https://get.pulumi.com | sh +export PATH=$PATH=:/root/.pulumi/bin + +# Clone the ThreeFold Pulumi repo +git clone https://github.com/threefoldtech/pulumi-threefold.git +cd pulumi-threefold + +# Prepare the Pulumi Python environment +cd examples/python +python -m venv venv +source venv/bin/activate +cd virtual_machine +pip install -r requirements.txt + +# Export the variables +export NETWORK="main" +export SSH_KEY="" +export MNEMONIC="" + +# Start Pulumi +make run +``` +- You can now SSH into the deployment from your local machine terminal +``` +ssh root@VM_IP +``` +- To destroy the deployment, run the following line within the Docker Ubuntu terminal. +``` +make destroy +``` + +## Alternative to Make Commands + +You can use direct Pulumi commands instead of the Make commands above. + +- You can replace `make run` with: +``` +pulumi login --local +pulumi up +``` +- You can replace `make destroy` with: +``` +pulumi down +pulumi stack rm +``` + +That being said, the Make commands run additional features. Feel free to explore the possibilities and consult the files within the repo for more information. \ No newline at end of file diff --git a/collections/system_administrators/pulumi/pulumi_complete_guides/pulumi_yaml.md b/collections/system_administrators/pulumi/pulumi_complete_guides/pulumi_yaml.md new file mode 100644 index 0000000..3ba7033 --- /dev/null +++ b/collections/system_administrators/pulumi/pulumi_complete_guides/pulumi_yaml.md @@ -0,0 +1,77 @@ +

Pulumi Complete YAML Guide

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Prerequisites](#prerequisites) +- [Steps](#steps) +- [Alternative to Make Commands](#alternative-to-make-commands) + +--- + +## Introduction + +In this guide, we cover the complete steps to deploy a virtual machine on the grid with Pulumi via a YAML file. + +To provide a uniform deployment method, we use Docker for this guide. It is optional but will greatly facilitate the deployment as the steps will be similar for Linux, MacOS and Windows. + +This guide is useful to get you started quickly with Pulumi on the TFGrid. + +Once you've successfully deployed a VM, you can try all the different YAML examples within the [pulumi-threefold repository](https://github.com/threefoldtech/pulumi-threefold). The examples are available in the subdirectory `/examples/yaml/`. + +## Prerequisites + +- [A TFChain account](dashboard@@wallet_connector) +- TFT in your TFChain account + - [Buy TFT](threefold_token@@buy_sell_tft) + - [Send TFT to TFChain](threefold_token@@tfchain_stellar_bridge) +- [Get Docker](https://docs.docker.com/get-docker/) + +## Steps + +- Deploy a Docker Ubuntu container in interactive mode: +``` +sudo docker run -it --net=host ubuntu:jammy /bin/bash +``` +- In Docker Ubuntu, deploy a VM with Pulumi. Make sure to add your `MNEMONIC` and `SSH_KEY` below before running the script. For this deployment we use `main` as the `NETWORK`. Change this if needed. +``` +# Install the prerequisites +apt update && apt install -y curl git make +curl -fsSL https://get.pulumi.com | sh +export PATH=$PATH=:/root/.pulumi/bin +git clone https://github.com/threefoldtech/pulumi-threefold.git +cd pulumi-threefold/examples/yaml/virtual_machine + +# Export the variables +export NETWORK="main" +export SSH_KEY="" +export MNEMONIC="" + +# Start Pulumi +make run +``` +- You can now SSH into the deployment from your local machine terminal +``` +ssh root@VM_IP +``` +- To destroy the deployment, run the following line within the Docker Ubuntu terminal. +``` +make destroy +``` + +## Alternative to Make Commands + +You can use direct Pulumi commands instead of the Make commands above. + +- You can replace `make run` with: +``` +pulumi login --local +pulumi up +``` +- You can replace `make destroy` with: +``` +pulumi down +pulumi stack rm +``` + +That being said, the Make commands provide additional commands. Feel free to explore the possibilities and consult the files within the repo for more information. \ No newline at end of file diff --git a/collections/system_administrators/pulumi/pulumi_deployment_details.md b/collections/system_administrators/pulumi/pulumi_deployment_details.md index 9052a0a..5946ca7 100644 --- a/collections/system_administrators/pulumi/pulumi_deployment_details.md +++ b/collections/system_administrators/pulumi/pulumi_deployment_details.md @@ -98,7 +98,7 @@ We address here how to create a [network](https://github.com/threefoldtech/pulum You can find the original file [here](https://github.com/threefoldtech/pulumi-provider-grid/blob/development/examples/yaml/network/Pulumi.yaml). ```yml -name: pulumi-provider-grid +name: pulumi-threefold runtime: yaml plugins: @@ -113,7 +113,7 @@ resources: mnemonic: scheduler: - type: grid:internal:Scheduler + type: threefold:provider:Scheduler options: provider: ${provider} properties: @@ -139,13 +139,14 @@ outputs: We will now go through this file section by section to properly understand what is happening. +Here we set the name for the project. It can be anything. We also set the runtime. It can be some code in YAML, Python, Go, etc. + ```yml name: pulumi-provider-grid runtime: yaml ``` -- name is for the project name (can be anything) -- runtime: the runtime we are using can be code in yaml, python, go, etc. +We then start by initializing the resources. The provider which we loaded in the plugins section is also a resource that has properties (the main one now is just the mnemonic of TFChain). ```yml plugins: @@ -160,13 +161,15 @@ Here, we define the plugins we are using within our project and their locations. ```yml resources: provider: - type: pulumi:providers:grid + type: pulumi:providers:threefold + options: + pluginDownloadURL: github://api.github.com/threefoldtech/pulumi-threefold # optional properties: mnemonic: ``` -We then start by initializing the resources. The provider which we loaded in the plugins section is also a resource that has properties (the main one now is just the mnemonic of TCHhain). +Then, we create a scheduler `threefold:provider:Scheduler`, that does the planning for us. Instead of being too specific about node IDs, we just give it some generic information. For example, "I want to work against these data centers (farms)". As long as the necessary criteria are provided, the scheduler can be more specific in the planning and select the appropriate resources available on the TFGrid. ```yaml scheduler: @@ -177,7 +180,7 @@ We then start by initializing the resources. The provider which we loaded in the farm_ids: [1] ``` -Then, we create a scheduler `grid:internal:Scheduler`, that does the planning for us. Instead of being too specific about node IDs, we just give it some generic information. For example, "I want to work against these data centers (farms)". As long as the necessary criteria are provided, the scheduler can be more specific in the planning and select the appropriate resources available on the TFGrid. +Now, that we created the scheduler, we can go ahead and create the network resource `grid:internal:Network`. Please note that the network depends on the scheduler's existence. If we remove it, the scheduler and the network will be created in parallel, that's why we have the `dependsOn` section. We then proceed to specify the network resource properties, e.g. the name, the description, which nodes to deploy our network on, the IP range of the network. In our case, we only choose one node. ```yaml network: @@ -194,8 +197,6 @@ Then, we create a scheduler `grid:internal:Scheduler`, that does the planning fo ip_range: 10.1.0.0/16 ``` -Now, that we created the scheduler, we can go ahead and create the network resource `grid:internal:Network`. Please note that the network depends on the scheduler's existence. If we remove it, the scheduler and the network will be created in parallel, that's why we have the `dependsOn` section. We then proceed to specify the network resource properties, e.g. the name, the description, which nodes to deploy our network on, the IP range of the network. In our case, we only choose one node. - To access information related to our deployment, we set the section **outputs**. This will display results that we can use, or reuse, while we develop our infrastructure further. ```yaml @@ -211,7 +212,7 @@ Now, we will check an [example](https://github.com/threefoldtech/pulumi-provider Just like we've seen above, we will have two files `Makefile` and `Pulumi.yaml` where we describe the infrastructure. ```yml -name: pulumi-provider-grid +name: pulumi-threefold runtime: yaml plugins: @@ -221,12 +222,14 @@ plugins: resources: provider: - type: pulumi:providers:grid + type: pulumi:providers:threefold + options: + pluginDownloadURL: github://api.github.com/threefoldtech/pulumi-threefold # optional properties: mnemonic: scheduler: - type: grid:internal:Scheduler + type: threefold:provider:Scheduler options: provider: ${provider} properties: @@ -280,11 +283,11 @@ outputs: planetary_ip: ${deployment.vms_computed[0].planetary_ip} ``` -We have a scheduler, and a network just like before. But now, we also have a deployment `grid:internal:Deployment` object that can have one or more disks and virtual machines. +We have a scheduler, and a network just like before. But now, we also have a deployment `threefold:provider:Deployment` object that can have one or more disks and virtual machines. ```yaml deployment: - type: grid:internal:Deployment + type: threefold:provider:Deployment options: provider: ${provider} dependsOn: @@ -301,11 +304,13 @@ deployment: cpu: 2 memory: 256 planetary: true + mycelium: true + # mycelium_ip_seed: b60f2b7ec39c # hex encoded 6 bytes [example] mounts: - disk_name: data mount_point: /app env_vars: - SSH_KEY: + SSH_KEY: disks: - name: data @@ -325,7 +330,7 @@ We now see how to deploy a [Kubernetes cluster using Pulumi](https://github.com/ ```yaml content was removed for brevity kubernetes: - type: grid:internal:Kubernetes + type: threefold:provider:Kubernetes options: provider: ${provider} dependsOn: @@ -383,7 +388,7 @@ We present here the file for a simple domain prefix. ```yml content was removed for brevity scheduler: - type: grid:internal:Scheduler + type: threefold:provider:Scheduler options: provider: ${provider} properties: @@ -393,7 +398,7 @@ We present here the file for a simple domain prefix. free_ips: 1 gatewayName: - type: grid:internal:GatewayName + type: threefold:provider:GatewayName options: provider: ${provider} dependsOn: @@ -404,10 +409,6 @@ We present here the file for a simple domain prefix. backends: - "http://69.164.223.208" -outputs: - node_deployment_id: ${gatewayName.node_deployment_id} - fqdn: ${gatewayName.fqdn} - ``` In this example, we create a gateway name resource `grid:internal:GatewayName` for the name `pulumi.gent01.dev.grid.tf`. @@ -425,7 +426,7 @@ Here's an [example](https://github.com/threefoldtech/pulumi-provider-grid/blob/d ```yml code removed for brevity gatewayFQDN: - type: grid:internal:GatewayFQDN + type: threefold:provider:GatewayFQDN options: provider: ${provider} dependsOn: @@ -444,6 +445,4 @@ Here, we informed the gateway that any request coming for the domain `mydomain.c ## Conclusion -We covered in this guide some basic details concerning the use of the ThreeFold Pulumi plugin. - -If you have any questions, you can ask the ThreeFold community for help on the [ThreeFold Forum](http://forum.threefold.io/) or on the [ThreeFold Grid Tester Community](https://t.me/threefoldtesting) on Telegram. \ No newline at end of file +We covered in this guide some basic details concerning the use of the ThreeFold Pulumi plugin. \ No newline at end of file diff --git a/collections/system_administrators/pulumi/pulumi_examples.md b/collections/system_administrators/pulumi/pulumi_examples.md index 9910d49..75278ed 100644 --- a/collections/system_administrators/pulumi/pulumi_examples.md +++ b/collections/system_administrators/pulumi/pulumi_examples.md @@ -3,11 +3,11 @@

Table of Contents

- [Introduction](#introduction) +- [Check All the Examples](#check-all-the-examples) - [Prerequisites](#prerequisites) - [Set the Environment Variables](#set-the-environment-variables) - [Test the Plugin](#test-the-plugin) - [Destroy the Deployment](#destroy-the-deployment) -- [Questions and Feedback](#questions-and-feedback) *** @@ -19,6 +19,12 @@ We present here the basic steps to test the examples within the [ThreeFold Pulum Please note that the Pulumi plugin for ThreeFold Grid is not yet officially published. We look forward to your feedback on this project. +## Check All the Examples + +In the manual, we cover some basic examples of Pulumi deployments on the grid. + +You can access all the Pulumi deployment examples on the ThreeFold Pulumi repository [here](https://github.com/threefoldtech/pulumi-threefold/tree/development/examples). + ## Prerequisites There are a few things to set up before exploring Pulumi. Since we will be using the examples in the ThreeFold Pulumi repository, we must clone the repository before going further. @@ -83,7 +89,3 @@ You can destroy your Pulumi deployment at any time with the following make comma ``` make destroy ``` - -## Questions and Feedback - -If you have any questions, you can ask the ThreeFold community for help on the [ThreeFold Forum](http://forum.threefold.io/) or on the [ThreeFold Grid Tester Community](https://t.me/threefoldtesting) on Telegram. \ No newline at end of file diff --git a/collections/system_administrators/pulumi/pulumi_intro.md b/collections/system_administrators/pulumi/pulumi_intro.md index 4595724..fd9aad9 100644 --- a/collections/system_administrators/pulumi/pulumi_intro.md +++ b/collections/system_administrators/pulumi/pulumi_intro.md @@ -8,13 +8,13 @@ With Pulumi, you can express your infrastructure requirements using the language - [Benefits of Using Pulumi](#benefits-of-using-pulumi) - [Declarative vs. Imperative Programming](#declarative-vs-imperative-programming) - [Declaration Programming Example](#declaration-programming-example) - - [Benefits of declarative programming in IaC](#benefits-of-declarative-programming-in-iac) + - [Benefits of Declarative Programming in IaC](#benefits-of-declarative-programming-in-iac) - [Concepts](#concepts) - [Pulumi Project](#pulumi-project) - [Project File](#project-file) - [Stacks](#stacks) - [Resources](#resources) -- [Questions and Feedback](#questions-and-feedback) +- [Pulumi Registry](#pulumi-registry) *** @@ -22,7 +22,7 @@ With Pulumi, you can express your infrastructure requirements using the language [ThreeFold Grid](https://threefold.io) is a decentralized cloud infrastructure platform that provides developers with a secure and scalable way to deploy and manage their applications. It is based on a peer-to-peer network of nodes that are distributed around the world. -[Pulumi](https://www.pulumi.com/) is a cloud-native infrastructure as code (IaC) platform that allows developers to manage their infrastructure using code. It supports a wide range of cloud providers, including ThreeFold Grid. +[Pulumi](https://www.pulumi.com/) is a cloud-native infrastructure as code (IaC) platform that allows developers to manage their infrastructure using code. It supports a wide range of cloud providers, including ThreeFold Grid. Consult the official [Pulumi documentation](https://www.pulumi.com/docs/) for more information. The [Pulumi plugin for ThreeFold Grid](https://github.com/threefoldtech/pulumi-provider-grid) provides developers with a way to deploy and manage their ThreeFold Grid resources using Pulumi. This means that developers can benefit from all of the features and benefits that Pulumi offers, such as cross-cloud support, type safety, preview and diff, and parallel execution -still in the works-. @@ -55,7 +55,7 @@ Say I want an infrastructure of two virtual machines with X disks. The following As you can see, the declarative code is much simpler and easier to read. It also makes it easier to make changes to your infrastructure, as you only need to change the desired state, and the IaC tool will figure out how to achieve it. -### Benefits of declarative programming in IaC +### Benefits of Declarative Programming in IaC There are several benefits to using declarative programming in IaC: @@ -125,6 +125,6 @@ resources: options: ...options ``` -## Questions and Feedback +## Pulumi Registry -If you have any questions, you can ask the ThreeFold community for help on the [ThreeFold Forum](http://forum.threefold.io/) or on the [ThreeFold Grid Tester Community](https://t.me/threefoldtesting) on Telegram. \ No newline at end of file +You can visit the Pulumi registry to access the ThreeFold package [here](https://www.pulumi.com/registry/packages/threefold/). \ No newline at end of file diff --git a/collections/system_administrators/pulumi/pulumi_readme.md b/collections/system_administrators/pulumi/pulumi_readme.md index 31b4cf0..f4704fd 100644 --- a/collections/system_administrators/pulumi/pulumi_readme.md +++ b/collections/system_administrators/pulumi/pulumi_readme.md @@ -9,4 +9,5 @@ In this section, we will explore the dynamic world of infrastructure as code (Ia - [Introduction to Pulumi](pulumi_intro.md) - [Installing Pulumi](pulumi_install.md) - [Deployment Examples](pulumi_examples.md) -- [Deployment Details](pulumi_deployment_details.md) \ No newline at end of file +- [Deployment Details](pulumi_deployment_details.md) +- [Complete Guides](pulumi_complete_guides_toc.md) \ No newline at end of file diff --git a/collections/system_administrators/system_administrators.md b/collections/system_administrators/system_administrators.md index 63fbb46..379b6ec 100644 --- a/collections/system_administrators/system_administrators.md +++ b/collections/system_administrators/system_administrators.md @@ -7,89 +7,11 @@ For complementary information on ThreeFold grid and its cloud component, refer t

Table of Contents

- [Getting Started](tfgrid3_getstarted.md) - - [SSH Remote Connection](ssh_guide.md) - - [SSH with OpenSSH](ssh_openssh.md) - - [SSH with PuTTY](ssh_putty.md) - - [SSH with WSL](ssh_wsl.md) - - [WireGuard Access](ssh_wireguard.md) - - [Remote Desktop and GUI](remote_desktop_gui.md) - - [Cockpit: a Web-based Interface for Servers](cockpit_guide.md) - - [XRDP: an Open-Source Remote Desktop Protocol](xrdp_guide.md) - - [Apache Guacamole: a Clientless Remote Desktop Gateway](guacamole_guide.md) - [Planetary Network](planetarynetwork.md) - [TFGrid Services](tf_grid_services_readme.md) - [GPU](gpu_toc.md) - - [GPU Support](gpu.md) - [Terraform](terraform_toc.md) - - [Overview](terraform_readme.md) - - [Installing Terraform](terraform_install.md) - - [Terraform Basics](terraform_basics.md) - - [Full VM Deployment](terraform_full_vm.md) - - [GPU Support](terraform_gpu_support.md) - - [Resources](terraform_resources_readme.md) - - [Using Scheduler](terraform_scheduler.md) - - [Virtual Machine](terraform_vm.md) - - [Web Gateway](terraform_vm_gateway.md) - - [Kubernetes Cluster](terraform_k8s.md) - - [ZDB](terraform_zdb.md) - - [Zlogs](terraform_zlogs.md) - - [Quantum Safe Filesystem](terraform_qsfs.md) - - [QSFS on Micro VM](terraform_qsfs_on_microvm.md) - - [QSFS on Full VM](terraform_qsfs_on_full_vm.md) - - [CapRover](terraform_caprover.md) - - [Advanced](terraform_advanced_readme.md) - - [Terraform Provider](terraform_provider.md) - - [Terraform Provisioners](terraform_provisioners.md) - - [Mounts](terraform_mounts.md) - - [Capacity Planning](terraform_capacity_planning.md) - - [Updates](terraform_updates.md) - - [SSH Connection with Wireguard](terraform_wireguard_ssh.md) - - [Set a Wireguard VPN](terraform_wireguard_vpn.md) - - [Synced MariaDB Databases](terraform_mariadb_synced_databases.md) - - [Nomad](terraform_nomad.md) - - [Nextcloud Deployments](terraform_nextcloud_toc.md) - - [Nextcloud All-in-One Deployment](terraform_nextcloud_aio.md) - - [Nextcloud Single Deployment](terraform_nextcloud_single.md) - - [Nextcloud Redundant Deployment](terraform_nextcloud_redundant.md) - - [Nextcloud 2-Node VPN Deployment](terraform_nextcloud_vpn.md) - [Pulumi](pulumi_readme.md) - - [Introduction to Pulumi](pulumi_intro.md) - - [Installing Pulumi](pulumi_install.md) - - [Deployment Examples](pulumi_examples.md) - - [Deployment Details](pulumi_deployment_details.md) - [Mycelium](mycelium_toc.md) - - [Overview](overview.md) - - [Installation](installation.md) - - [Additional Information](information.md) - - [Message](message.md) - - [Packet](packet.md) - - [Data Packet](data_packet.md) - - [API YAML](api_yaml.md) - [Computer and IT Basics](computer_it_basics.md) - - [CLI and Scripts Basics](cli_scripts_basics.md) - - [Docker Basics](docker_basics.md) - - [Git and GitHub Basics](git_github_basics.md) - - [Firewall Basics](firewall_basics.md) - - [UFW Basics](ufw_basics.md) - - [Firewalld Basics](firewalld_basics.md) - - [File Transfer](file_transfer.md) - - [Screenshots](screenshots.md) -- [Advanced](advanced.md) - - [Token Transfer Keygenerator](token_transfer_keygenerator.md) - - [Cancel Contracts](cancel_contracts.md) - - [Contract Bills Reports](contract_bill_report.md) - - [Listing Free Public IPs](list_public_ips.md) - - [Cloud Console](cloud_console.md) - - [Redis](grid3_redis.md) - - [IPFS](ipfs_toc.md) - - [IPFS on a Full VM](ipfs_fullvm.md) - - [IPFS on a Micro VM](ipfs_microvm.md) - - [MinIO Operator with Helm3](minio_helm3.md) - - [Hummingbot](hummingbot.md) - - [AI & ML Workloads](ai_ml_workloads.md) - - [Ecommerce](ecommerce.md) - - [WooCommerce](woocommerce.md) - - [nopCommerce](nopcommerce.md) - - [Hummingbot](hummingbot.md) - - [HTTPS with Caddy](https_caddy.md) - - [Node Status Bot](node_status_bot.md) +- [Advanced](advanced.md) \ No newline at end of file diff --git a/collections/system_administrators/terraform/resources/terraform_resources_readme.md b/collections/system_administrators/terraform/resources/terraform_resources_readme.md index ed8e50a..ad2c79e 100644 --- a/collections/system_administrators/terraform/resources/terraform_resources_readme.md +++ b/collections/system_administrators/terraform/resources/terraform_resources_readme.md @@ -9,6 +9,4 @@ - [ZDB](./terraform_zdb.html) - [Zlogs](./terraform_zlogs.md) - [Quantum Safe Filesystem](terraform_qsfs.md) - - [QSFS on Micro VM](terraform_qsfs_on_microvm.md) - - [QSFS on Full VM](terraform_qsfs_on_full_vm.md) - [CapRover](./terraform_caprover.html) diff --git a/collections/system_administrators/terraform/terraform_full_vm.md b/collections/system_administrators/terraform/terraform_full_vm.md index 11d88bc..901c17c 100644 --- a/collections/system_administrators/terraform/terraform_full_vm.md +++ b/collections/system_administrators/terraform/terraform_full_vm.md @@ -1,4 +1,4 @@ -

Terraform Complete Full VM Deployment

+

Terraform Full VM Deployment

Table of Contents

@@ -22,7 +22,7 @@ This short ThreeFold Guide will teach you how to deploy a Full VM on the TFGrid The steps are very simple. You first need to create the Terraform files, the variables file and the deployment file, and then deploy the full VM. After the deployment is done, you can SSH into the full VM. -The main goal of this guide is to show you all the necessary steps to deploy a Full VM on the TGrid using Terraform. Once you get acquainted with this first basic deployment, you should be able to explore on your own the possibilities that the TFGrid and Terraform combined provide. +The main goal of this guide is to show you all the necessary steps to deploy a Full VM on the TFGrid using Terraform. Once you get acquainted with this first basic deployment, you should be able to explore on your own the possibilities that the TFGrid and Terraform combined provide. @@ -71,10 +71,11 @@ We show here how to find a suitable 3Node using the ThreeFold Explorer. - For proper understanding, we give further information on some relevant columns: - `ID` refers to the node ID - `Free Public IPs` refers to available IPv4 public IP addresses - - `HRU` refers to HDD storage - - `SRU` refers to SSD storage - - `MRU` refers to RAM (memory) - - `CRU` refers to virtual cores (vcores) + - Resource unit codes (consult [this page](cloud@@esource_units_calc_cloudunits) for more information) + - `HRU` is the code for the HDD unit (storage capacity in GB) + - `SRU` is the code for the SSD unit (storage capacity in GB) + - `MRU` is the code for the the memory unit (memory capacity in GB) + - `CRU` is the code for the core unit (virtual cores capacity) - To quicken the process of finding a proper 3Node, you can narrow down the search by adding filters: - At the top left of the screen, in the `Filters` box, select the parameter(s) you want. - For each parameter, a new field will appear where you can enter a minimum number requirement for the 3Nodes. @@ -227,11 +228,9 @@ cpu = "1" memory = "512" ``` -Make sure to add your own seed phrase and SSH public key. You will also need to specify the node ID of the server used. Simply replace the three dots by the content. - -We set here the minimum specs for a full VM, but you can adjust these parameters. - +Make sure to add your own mnemonics and SSH public key. You will also need to specify the node ID of the server used. Simply replace the three dots by the content. +We set here the minimum specs for a full VM, but you can adjust these parameters. Here `size` is the SSD storage capacity in GB, `cpu` is the number of virtual core and `memory` is the memory capacity in MB. ## Deploy the Full VM with Terraform @@ -275,6 +274,4 @@ Make sure that you are in the Terraform directory you created for this deploymen ## Conclusion -You now have the basic knowledge and know-how to deploy on the TFGrid using Terraform. - -As always, if you have any questions, you can ask the ThreeFold community for help on the [ThreeFold Forum](http://forum.threefold.io/) or on the [ThreeFold Grid Tester Community](https://t.me/threefoldtesting) on Telegram. +You now have the basic knowledge and know-how to deploy on the TFGrid using Terraform. \ No newline at end of file diff --git a/collections/system_administrators/terraform/terraform_install.md b/collections/system_administrators/terraform/terraform_install.md index f125b7d..062e361 100644 --- a/collections/system_administrators/terraform/terraform_install.md +++ b/collections/system_administrators/terraform/terraform_install.md @@ -4,11 +4,10 @@ - [Introduction](#introduction) - [Install Terraform](#install-terraform) - - [Install Terraform on Linux](#install-terraform-on-linux) - - [Install Terraform on MAC](#install-terraform-on-mac) - - [Install Terraform on Windows](#install-terraform-on-windows) + - [Linux](#linux) + - [MacOS](#macos) + - [Windows](#windows) - [ThreeFold Terraform Plugin](#threefold-terraform-plugin) -- [Questions and Feedback](#questions-and-feedback) *** @@ -22,32 +21,28 @@ You can get Terraform from the Terraform website [download page](https://www.ter We cover here the basic steps for Linux, MAC and Windows for convenience. Refer to the official Terraform documentation if needed. -### Install Terraform on Linux +### Linux To install Terraform on Linux, we follow the official [Terraform documentation](https://developer.hashicorp.com/terraform/downloads). -* [Install Terraform on Linux](../computer_it_basics/cli_scripts_basics.md#install-terraform) +* [Install Terraform on Linux](cli_scripts_basics.md#install-terraform) -### Install Terraform on MAC +### MacOS To install Terraform on MAC, install Brew and then install Terraform. -* [Install Brew](../computer_it_basics/cli_scripts_basics.md#install-brew) -* [Install Terraform with Brew](../computer_it_basics/cli_scripts_basics.md#install-terraform-with-brew) +* [Install Brew](cli_scripts_basics.md#install-brew) +* [Install Terraform with Brew](cli_scripts_basics.md#install-terraform-with-brew) -### Install Terraform on Windows +### Windows To install Terraform on Windows, a quick way is to first install Chocolatey and then install Terraform. -* [Install Chocolatey](../computer_it_basics/cli_scripts_basics.md#install-chocolatey) -* [Install Terraform with Chocolatey](../computer_it_basics/cli_scripts_basics.md#install-terraform-with-chocolatey) +* [Install Chocolatey](cli_scripts_basics.md#install-chocolatey) +* [Install Terraform with Chocolatey](cli_scripts_basics.md#install-terraform-with-chocolatey) ## ThreeFold Terraform Plugin The ThreeFold [Terraform plugin](https://github.com/threefoldtech/terraform-provider-grid) is supported on Linux, MAC and Windows. -There's no need to specifically install the ThreeFold Terraform plugin. Terraform will automatically load it from an online directory according to instruction within the deployment file. - -## Questions and Feedback - -If you have any questions, let us know by writing a post on the [Threefold Forum](http://forum.threefold.io/) or by reaching out to the [ThreeFold Grid Tester Community](https://t.me/threefoldtesting) on Telegram. \ No newline at end of file +There's no need to specifically install the ThreeFold Terraform plugin. Terraform will automatically load it from an online directory according to instruction within the deployment file. \ No newline at end of file diff --git a/collections/system_administrators/terraform/terraform_readme.md b/collections/system_administrators/terraform/terraform_readme.md index 17b9463..1582daf 100644 --- a/collections/system_administrators/terraform/terraform_readme.md +++ b/collections/system_administrators/terraform/terraform_readme.md @@ -1,45 +1,50 @@ -

Terraform

- -Welcome to the *Terraform* section of the ThreeFold Manual! - -In this section, we'll embark on a journey to explore the powerful capabilities of Terraform within the ThreeFold Grid ecosystem. Terraform, a cutting-edge infrastructure as code (IaC) tool, empowers you to define and provision your infrastructure efficiently and consistently. +

Introduction to Terraform

Table of Contents

- [What is Terraform?](#what-is-terraform) -- [Terraform on ThreeFold Grid: Unleashing Power and Simplicity](#terraform-on-threefold-grid-unleashing-power-and-simplicity) - [Get Started](#get-started) +- [Deployment Examples](#deployment-examples) - [Features](#features) - [What is Not Supported](#what-is-not-supported) +- [OpenTofu: Alternative to Terraform](#opentofu-alternative-to-terraform) *** ## What is Terraform? -Terraform is an open-source tool that enables you to describe and deploy infrastructure using a declarative configuration language. With Terraform, you can define your infrastructure components, such as virtual machines, networks, and storage, in a human-readable configuration file. This file, often referred to as the Terraform script, becomes a blueprint for your entire infrastructure. +[Terraform](https://www.terraform.io/) is an open-source tool that enables you to describe and deploy infrastructure using a declarative configuration language. With Terraform, you can define your infrastructure components, such as virtual machines, networks, and storage, in a human-readable configuration file. This file, often referred to as the Terraform script, becomes a blueprint for your entire infrastructure. The beauty of Terraform lies in its ability to automate the provisioning and management of infrastructure across various cloud providers, ensuring that your deployments are reproducible and scalable. It promotes collaboration, version control, and the ability to treat your infrastructure as code, providing a unified and seamless approach to managing complex environments. -## Terraform on ThreeFold Grid: Unleashing Power and Simplicity - -Within the ThreeFold Grid ecosystem, Terraform plays a pivotal role in streamlining the deployment and orchestration of decentralized, peer-to-peer infrastructure. Leveraging the unique capabilities of the ThreeFold Grid, you can use Terraform to define and deploy your workloads, tapping into the TFGrid decentralized architecture for unparalleled scalability, reliability, and sustainability. - -This manual will guide you through the process of setting up, configuring, and managing your infrastructure on the ThreeFold Grid using Terraform. Whether you're a seasoned developer, a DevOps professional, or someone exploring the world of decentralized computing for the first time, this guide is designed to provide clear and concise instructions to help you get started. +This section of the manual will guide you through the process of setting up, configuring, and managing your infrastructure on the ThreeFold Grid using Terraform. Whether you're a seasoned developer, a DevOps professional, or someone exploring the world of decentralized computing for the first time, this guide is designed to provide clear and concise instructions to help you get started. ## Get Started -![ ](../terraform/img//terraform_works.png) +To get started, [install Terraform](./terraform_install.md) and [deploy a full VM](./terraform_full_vm.md) on the grid with Terraform. -Threefold loves Open Source! In v3.0 we are integrating one of the most popular 'Infrastructure as Code' (IaC) tools of the cloud industry, [Terraform](https://terraform.io). Utilizing the Threefold grid v3 using Terraform gives a consistent workflow and a familiar experience for everyone coming from different background. Terraform describes the state desired of how the deployment should look like instead of imperatively describing the low level details and the mechanics of how things should be glued together. +Once you're acquainted with the basics, you can explore different [Terraform deployment examples](https://github.com/threefoldtech/terraform-provider-grid/tree/development/examples). + +## Deployment Examples + +Consult the ThreeFold `terraform-provider-grid` repo for different [Terraform deployment examples](https://github.com/threefoldtech/terraform-provider-grid/tree/development/examples). + +You can also read the [Resources](terraform_resources_readme.md) section for more details on different Terraform deployments. ## Features -- All basic primitives from ThreeFold grid can be deployed, which is a lot. -- Terraform can destroy a deployment +- All basic primitives from ThreeFold grid can be deployed +- Terraform can destroy deployments - Terraform shows all the outputs ## What is Not Supported -- we don't support updates/upgrades, if you want a change you need to destroy a deployment & re-create your deployment this in case you want to change the current running instances properties or change the node, but adding a vm to an existing deployment this shouldn't affect other running vm and same if we need to decommission a vm from a deployment this also shouldn't affect the others +- We do not support updates nor upgrades. + - If you want a change, you need to destroy a deployment & re-create your deployment in case you want to change the current running instances properties or change the node. +- Adding a VM to an existing deployment or decommissioning a vm from a deployment shouldn't affect other running VMs. + +## OpenTofu: Alternative to Terraform + +[OpenTofu](https://opentofu.org/) is a fully open-source Terraform fork that is backward compatible with all prior versions of Terraform up to version 1.6. This alternative can be used instead of Terraform for the following sections. You might need to make changes depending on the version you are working with. Check the [OpenTofu Docs](https://opentofu.org/docs/) for more information. \ No newline at end of file diff --git a/collections/system_administrators/terraform/terraform_toc.md b/collections/system_administrators/terraform/terraform_toc.md index 16c7724..5d91cd9 100644 --- a/collections/system_administrators/terraform/terraform_toc.md +++ b/collections/system_administrators/terraform/terraform_toc.md @@ -2,37 +2,12 @@

Table of Contents

-- [Overview](terraform_readme.md) +- [Introduction to Terraform](terraform_readme.md) - [Installing Terraform](terraform_install.md) - [Terraform Basics](terraform_basics.md) - [Full VM Deployment](terraform_full_vm.md) - [GPU Support](terraform_gpu_support.md) - [Resources](terraform_resources_readme.md) - - [Using Scheduler](terraform_scheduler.md) - - [Virtual Machine](terraform_vm.md) - - [Web Gateway](terraform_vm_gateway.md) - - [Kubernetes Cluster](terraform_k8s.md) - - [ZDB](terraform_zdb.md) - - [Zlogs](terraform_zlogs.md) - - [Quantum Safe Filesystem](terraform_qsfs.md) - - [QSFS on Micro VM](terraform_qsfs_on_microvm.md) - - [QSFS on Full VM](terraform_qsfs_on_full_vm.md) - - [CapRover](terraform_caprover.md) - [QSFS on Micro VM](terraform_qsfs_on_microvm.md) - [QSFS on Full VM](terraform_qsfs_on_full_vm.md) - - [CapRover](terraform_caprover.md) -- [Advanced](terraform_advanced_readme.md) - - [Terraform Provider](terraform_provider.md) - - [Terraform Provisioners](terraform_provisioners.md) - - [Mounts](terraform_mounts.md) - - [Capacity Planning](terraform_capacity_planning.md) - - [Updates](terraform_updates.md) - - [SSH Connection with Wireguard](terraform_wireguard_ssh.md) - - [Set a Wireguard VPN](terraform_wireguard_vpn.md) - - [Synced MariaDB Databases](terraform_mariadb_synced_databases.md) - - [Nomad](terraform_nomad.md) - - [Nextcloud Deployments](terraform_nextcloud_toc.md) - - [Nextcloud All-in-One Deployment](terraform_nextcloud_aio.md) - - [Nextcloud Single Deployment](terraform_nextcloud_single.md) - - [Nextcloud Redundant Deployment](terraform_nextcloud_redundant.md) - - [Nextcloud 2-Node VPN Deployment](terraform_nextcloud_vpn.md) \ No newline at end of file +- [Advanced](terraform_advanced_readme.md) \ No newline at end of file diff --git a/collections/threefold_token/threefold_token.md b/collections/threefold_token/threefold_token.md index fe252b9..cd59007 100644 --- a/collections/threefold_token/threefold_token.md +++ b/collections/threefold_token/threefold_token.md @@ -17,11 +17,7 @@ ## Introduction to TFT -The ThreeFold Token (TFT) is a decentralized digital currency used to buy autonomous and decentralized Internet services (compute, storage, and application) on the ThreeFold Grid. - -ThreeFold Tokens are generated through a process called “Farming”. Farming happens when active internet capacity is added to the ThreeFold Grid. Independent farmers earn ThreeFold Tokens (TFT) by providing neutral and decentralized internet capacity, thus expending the usable TF Grid. Therefore no central entity controls the internet. - -> [Get an overview of the ThreeFold token](about:token_overview.md) +We present an overview of the ThreeFold token (TFT). ## Chains with TFT diff --git a/heroscript/kristof/develop.sh b/heroscript/kristof/develop.sh new file mode 100755 index 0000000..31b9b11 --- /dev/null +++ b/heroscript/kristof/develop.sh @@ -0,0 +1,12 @@ +#!/bin/bash +set -ex + +#~/code/github/freeflowuniverse/crystallib/cli/hero/compile_debug.sh + +hero mdbook -u https://git.ourworld.tf/tfgrid/info_tfgrid/src/branch/development/heroscript/kristof -o + + +#result will be in /root/hero/var/mdbuild/tfgrid4simulator +#~/hero/www/info/tfgrid4simulator/ + +#https://threefold.info/tfgrid4simulator/ \ No newline at end of file diff --git a/heroscript/kristof/sync_production.sh b/heroscript/kristof/sync_production.sh new file mode 100755 index 0000000..0057344 --- /dev/null +++ b/heroscript/kristof/sync_production.sh @@ -0,0 +1,3 @@ +#!/bin/bash +hero mdbook -u https://git.ourworld.tf/tfgrid/info_tfgrid/src/branch/main/heroscript/kristof +rsync -rv ~/hero/www/info/kristof/ root@info.ourworld.tf:/root/hero/www/info/kristof/ diff --git a/heroscript/projectinca/book_collections.md b/heroscript/projectinca/book_collections.md index ec4ab0a..e36e986 100644 --- a/heroscript/projectinca/book_collections.md +++ b/heroscript/projectinca/book_collections.md @@ -2,7 +2,7 @@ ```js -!!book.generate name:'projectinca' title:'Project Inca Launch' +!!book.generate name:'projectinca' title:'Project INCA Launch' url:'https://git.ourworld.tf/tfgrid/info_tfgrid/src/branch/main/books/projectinca'