diff --git a/books/duniayetu_dar/SUMMARY.md b/books/duniayetu_dar/SUMMARY.md index 9d44af8..a8d0c09 100644 --- a/books/duniayetu_dar/SUMMARY.md +++ b/books/duniayetu_dar/SUMMARY.md @@ -1,47 +1,39 @@ - -- [Why](why/why.md) - - [Cloud Too Centralized](why/current_cloud_too_centralized.md) - - [Countries don't have their Internet](why/countries_no_internet.md) - - [Human Right](why/internet_human_right.md) - - [Social Warming](why/social_warming.md) -- [Farming](farming/farming.md) - - [TFNodes](farming/tfnodes.md) +- [Dunia Yetu](dy_intro/dunia_yetu/dunia_yetu.md) + - [About Us](dy_intro/dunia_yetu/about_us.md) + - [Our Core Values](dy_intro/dunia_yetu/our_core_values.md) + - [What We Offer](dy_intro/what_we_offer/what_we_offer.md) + - [A New Internet](dy_intro/what_we_offer/new_internet.md) + - [Coding Academy](dy_intro/what_we_offer/coding_academy.md) + - [Innovation Hubs](dy_intro/what_we_offer/innovation_hubs.md) + - [How You Can Participate](dy_intro/how_you_can_participate/participate.md) + - [Host a Node](dy_intro/how_you_can_participate/host_a_node.md) + - [Build on Top of Tanzania's Decentralised Internet](dy_intro/how_you_can_participate/build.md) + - [Join Our Coding Academy](dy_intro/how_you_can_participate/coding_participate.md) + - [Join Our Community](dy_intro/how_you_can_participate/community_participate.md) - [Vision](values/values.md) - [Planet and People First](values/planet_people_first.md) - - [Proof of Authenticity](values/poa.md) + - [Proof of Authenticity](p2p/poa.md) +- [Why](why/why.md) + - [Cloud Too Centralized](why/current_cloud_too_centralized.md) + - [Countries Don't Have Their Own Internet](why/countries_no_internet.md) + - [Human Right](why/internet_human_right.md) + - [Social Warming](why/social_warming.md) - [Problems](problems/problems.md) - - [painkillers and onions](problems/no_pain_killer.md) - - [Clouds are C omplicated](problems/cd_issues_cloud_not_enough.md) - - [Content Delivery is Expensive](problems/cd_issues_cost.md) + - [Painkillers and Onions](problems/no_pain_killer.md) + - [Clouds Are Complicated](problems/cd_issues_cloud_not_enough.md) + - [Content Delivery is Expensive](problems/cd_issues_cost.md) - [Solutions](solutions/solutions.md) - - [Decentralized Cloud](solutions/cloud/cloud.md) - [Content Providers](solutions/content_providers/content_providers.md) + - [FreeFlow Self](web4/freeflowself/freeflowself.md) + - [Actor Based Development](web4/actor_based/actor_based_approach.md) + - [Vlang](web4/vlang/vlang.md) - - [Web4](WEB4/web4.md) +- [Farming](farming_v4/farming.md) + - [TFNodes](farming_v4/tf_nodes.md) + - [TFRouters](farming_v4/tf_routers.md) - [FreeFlow Movement](freeflow/freeflow_movement.md) - [Community Principles](freeflow/community_principles/community_principles.md) - [Social Media Protocols](social_media_protocols/protocols.md) - [Nostr Protocol](social_media_protocols/nostr.md) - [Activity Pub](social_media_protocols/activitypub.md) - - [Activity Pub 2](social_media_protocols/activitypub2.md) -- [Technology](web4/web4.md) - - [FreeFlow Self](web4/freeflowself/freeflowself.md) - - [Actor Based Development](web4/actor_based/actor_based_approach.md) - - [Vlang](web4/vlang/vlang.md) -- [Dunia Yetu](dy_intro/dunia_yetu/dunia_yetu.md) - - [About Us](dy_intro/dunia_yetu/about_us.md) - - [Our Core Values](dy_intro/dunia_yetu/our_core_values.md) - - [What We Offer](dy_intro/what_we_offer/what_we_offer.md) - - [A New Internet](dy_intro/what_we_offer/new_internet.md) - - [Coding Academy](dy_intro/what_we_offer/coding_academy.md) - - [Innovation Hubs](dy_intro/what_we_offer/innovation_hubs.md) - - [How you can Participate](dy_intro/how_you_can_participate/participate.md) - - [Host a Node](dy_intro/how_you_can_participate/host_a_node.md) - - [Build on top of Tanzania's decentralised Internet](dy_intro/how_you_can_participate/build.md) - - [Join Our Coding Academy](dy_intro/how_you_can_participate/coding_participate.md) - - [Join Our Community](dy_intro/how_you_can_participate/community_participate.md) -- [SASHA sidebar](sasha/ilovezanzibar.md) - - - diff --git a/books/legal/SUMMARY.md b/books/legal/SUMMARY.md index 6317e3e..9cee463 100644 --- a/books/legal/SUMMARY.md +++ b/books/legal/SUMMARY.md @@ -2,7 +2,7 @@ - [Definitions](legal/definitions_legal.md) - [Disclaimer](legal/disclaimer.md) - [Terms and Conditions Websites](legal/terms_conditions_websites.md) -- [Terms and Conditions Users](legal/terms_conditions_tfgrid3.md) +- [Terms and Conditions Users](legal/terms_conditions_griduser.md) - [Terms and Conditions Farmers](legal/terms_conditions_farmer3.md) - [Terms and Conditions Sales](legal/terms_conditions_sales.md) - [Privacy Policy](legal/privacypolicy.md) \ No newline at end of file diff --git a/books/manual/SUMMARY.md b/books/manual/SUMMARY.md index 5554720..4377d7c 100644 --- a/books/manual/SUMMARY.md +++ b/books/manual/SUMMARY.md @@ -1,7 +1,7 @@ - [Introduction](manual/intro.md) - [Documentation](manual/documentation.md) - [Dashboard](dashboard/dashboard.md) - - [Wallet (Connector)](dashboard/wallet_connector.md) + - [Wallet Connector](dashboard/wallet_connector.md) - [TFGrid](dashboard/tfgrid/tfgrid.md) - [Grid Status](dashboard/tfgrid/grid_status.md) - [Node Statistics](dashboard/tfgrid/node_statistics.md) @@ -11,8 +11,8 @@ - [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/vm.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) - [Orchestrators](dashboard/deploy/orchestrators.md) @@ -20,7 +20,6 @@ - [Caprover](dashboard/solutions/caprover.md) - [Caprover Admin](dashboard/solutions/caprover_admin.md) - [Caprover Worker](dashboard/solutions/caprover_worker.md) - - [Dedicated Machines](dashboard/deploy/dedicated_machines.md) - [Applications](dashboard/deploy/applications.md) - [Algorand](dashboard/solutions/algorand.md) - [CasperLabs](dashboard/solutions/casper.md) @@ -32,6 +31,7 @@ - [ownCloud](dashboard/solutions/owncloud.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) - [Umbrel](dashboard/solutions/umbrel.md) @@ -120,24 +120,24 @@ - [RMB Specs](developers/internals/rmb/rmb_specs.md) - [RMB Peer](developers/internals/rmb/uml/peer.md) - [RMB Relay](developers/internals/rmb/uml/relay.md) - - [Zero-OS](developers/internals/zos/readme.md) + - [Zero-OS](developers/internals/zos/zos_readme.md) - [Manual](developers/internals/zos/manual/manual.md) - [Workload Types](developers/internals/zos/manual/workload_types.md) - [Internal Modules](developers/internals/zos/internals/internals.md) - - [Identity](developers/internals/zos/internals/identity/readme.md) + - [Identity](developers/internals/zos/internals/identity/identity_readme.md) - [Node ID Generation](developers/internals/zos/internals/identity/identity.md) - [Node Upgrade](developers/internals/zos/internals/identity/upgrade.md) - - [Node](developers/internals/zos/internals/node/readme.md) - - [Storage](developers/internals/zos/internals/storage/readme.md) - - [Network](developers/internals/zos/internals/network/readme.md) + - [Node](developers/internals/zos/internals/node/node_readme.md) + - [Storage](developers/internals/zos/internals/storage/storage_readme.md) + - [Network](developers/internals/zos/internals/network/network_readme.md) - [Introduction](developers/internals/zos/internals/network/introduction.md) - [Definitions](developers/internals/zos/internals/network/definitions.md) - [Mesh](developers/internals/zos/internals/network/mesh.md) - [Setup](developers/internals/zos/internals/network/setup_farm_network.md) - - [Flist](developers/internals/zos/internals/flist/readme.md) - - [Container](developers/internals/zos/internals/container/readme.md) - - [VM](developers/internals/zos/internals/vmd/readme.md) - - [Provision](developers/internals/zos/internals/provision/readme.md) + - [Flist](developers/internals/zos/internals/flist/flist_readme.md) + - [Container](developers/internals/zos/internals/container/container_readme.md) + - [VM](developers/internals/zos/internals/vmd/vmd_readme.md) + - [Provision](developers/internals/zos/internals/provision/provision_readme.md) - [Capacity](developers/internals/zos/internals/capacity.md) - [Performance Monitor Package](developers/internals/zos/performance/performance.md) - [Public IPs Validation Task](developers/internals/zos/performance/publicips.md) @@ -149,6 +149,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) + - [Deploy the Dashboard](developers/grid_deployment/deploy_dashboard.md) - [Farmers](farmers/farmers.md) - [Build a 3Node](farmers/3node_building/3node_building.md) - [1. Create a Farm](farmers/3node_building/1_create_farm.md) @@ -165,6 +166,7 @@ - [Room Parameters](farmers/farming_optimization/farm_room_parameters.md) - [Farming Costs](farmers/farming_optimization/farming_costs.md) - [Calculate Your ROI](farmers/farming_optimization/calculate_roi.md) + - [Farming Requirements](farmers/farming_optimization/farming_requirements.md) - [Advanced Networking](farmers/advanced_networking/advanced_networking_toc.md) - [Networking Overview](farmers/advanced_networking/networking_overview.md) - [Network Considerations](farmers/advanced_networking/network_considerations.md) @@ -200,6 +202,7 @@ - [Web Gateway](system_administrators/terraform/resources/terraform_vm_gateway.md) - [Kubernetes Cluster](system_administrators/terraform/resources/terraform_k8s.md) - [ZDB](system_administrators/terraform/resources/terraform_zdb.md) + - [Zlogs](system_administrators/terraform/resources/terraform_zlogs.md) - [Quantum Safe Filesystem](system_administrators/terraform/resources/terraform_qsfs.md) - [QSFS on Micro VM](system_administrators/terraform/resources/terraform_qsfs_on_microvm.md) - [QSFS on Full VM](system_administrators/terraform/resources/terraform_qsfs_on_full_vm.md) @@ -240,15 +243,20 @@ - [UFW Basics](system_administrators/computer_it_basics/firewall_basics/ufw_basics.md) - [Firewalld Basics](system_administrators/computer_it_basics/firewall_basics/firewalld_basics.md) - [File Transfer](system_administrators/computer_it_basics/file_transfer.md) + - [Screenshots](system_administrators/computer_it_basics/screenshots.md) - [Advanced](system_administrators/advanced/advanced.md) - [Token Transfer Keygenerator](system_administrators/advanced/token_transfer_keygenerator.md) - [Cancel Contracts](system_administrators/advanced/cancel_contracts.md) - [Contract Bills Reports](system_administrators/advanced/contract_bill_report.md) - [Listing Free Public IPs](system_administrators/advanced/list_public_ips.md) + - [Cloud Console](system_administrators/advanced/cloud_console.md) - [Redis](system_administrators/advanced/grid3_redis.md) - [IPFS](system_administrators/advanced/ipfs/ipfs_toc.md) - [IPFS on a Full VM](system_administrators/advanced/ipfs/ipfs_fullvm.md) - [IPFS on a Micro VM](system_administrators/advanced/ipfs/ipfs_microvm.md) + - [MinIO Operator with Helm3](system_administrators/advanced/minio_helm3.md) + - [AI & ML Workloads](system_administrators/advanced/ai_ml_workloads.md) + - [Hummingbot](system_administrators/advanced/hummingbot.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) @@ -304,39 +312,45 @@ - [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) - - [Special Wallets](about/token_overview/special_wallets/stats_special_wallets.md) - - [Technology](technology/technology_toc.md) - - [How It Works](technology/grid3_howitworks.md) - - [Grid Concepts](technology/concepts/concepts_readme.md) - - [TFGrid Primitives](technology/concepts/grid_primitives.md) - - [TFGrid Component List](technology/concepts/grid3_components.md) - - [Infrastructure as Code](technology/concepts/grid3_iac.md) - - [Proof of Utilization](technology/concepts/proof_of_utilization.md) - - [Contract Grace Period](technology/concepts/contract_grace_period.md) - - [What's New on TFGrid v3.x](technology/concepts/grid3_whatsnew.md) - - [TFChain](technology/concepts/tfchain.md) - - [TFGrid by Design](technology/concepts/tfgrid_by_design.md) - - [Primitives](technology/primitives/primitives_toc.md) - - [Compute](technology/primitives/compute/compute_toc.md) - - [ZKube](technology/primitives/compute/zkube.md) - - [ZMachine](technology/primitives/compute/zmachine.md) - - [CoreX](technology/primitives/compute/corex.md) - - [Storage](technology/primitives/storage/storage_toc.md) - - [ZOS Filesystem](technology/primitives/storage/zos_fs.md) - - [ZOS Mount](technology/primitives/storage/zmount.md) - - [Quantum Safe File System](technology/primitives/storage/qsfs.md) - - [Zero-DB](technology/primitives/storage/zdb.md) - - [Zero-Disk](technology/primitives/storage/zdisk.md) - - [Network](technology/primitives/network/network_toc.md) - - [ZNET](technology/primitives/network/znet.md) - - [ZNIC](technology/primitives/network/znic.md) - - [WebGateway](technology/primitives/network/webgw3.md) - - [Zero-OS Advantages](technology/zos/benefits/zos_advantages.md) - - [Quantum Safe Storage](technology/qsss/qsss_home.md) - - [Smart Contract IT](technology/smartcontract_it/smartcontract_toc.md) - - [Introduction](technology/smartcontract_it/smartcontract_tfgrid3.md) - - [Infrastructure As Code - IAC](technology/smartcontract_it/smartcontract_iac.md) - - [3Bot Integration](technology/smartcontract_it/smartcontract_3bot.md) + - [Technology](tech/technology_toc.md) + - [Introduction](tech/technology.md) + - [The Internet Today](tech/internet_today.md) + - [History of Computers](tech/history/c64.md) + - [Too Many Layers](tech/history/layers.md) + - [The Internet Re-invented](tech/how_does_it_work.md) + - [World Records](tech/world_records.md) + - [Key Innovations](tech/key_innovations_overview.md) + - [Mycelium Network](tech/mycelium_innovation.md) + - [Zero-OS](tech/zos_innovation.md) + - [Quantum Safe Storage](tech/zstor_innovation.md) + - [Quantum Safe Filesystem](tech/qsfs_innovation.md) + - [FList: Better OS Images](tech/flist_innovation.md) + - [FungiStor](tech/fungistor_innovation.md) + - [Network Wall](tech/network_wall_innovation.md) + - [Architecture](tech/architecture.md) + - [Energy Efficient](tech/energy_efficient.md) + - [Decentralized Cloud Core Capabilities](tech/features.md) + - [Storage](tech/qsss_home.md) + - [Quantum Safe Storage Algo](tech/qss_algorithm.md) + - [Zero Knowledge proof](tech/qss_zero_knowledge_proof.md) + - [NFT Storage](tech/nft_storage.md) + - [S3 Storage](tech/s3_interface) + - [File System](tech/qss_filesystem.md) + - [Network](tech/networking.md) + - [Mycelium](tech/mycelium.md) + - [Web Gateway](tech/webgw.md) + - [Partners](partners_utilization/partners.md) + - [Sikana](partners_utilization/sikana.md) + - [Vindo](partners_utilization/vindo.md) + - [Mkondo](partners_utilization/mkondo.md) + - [Vverse](partners_utilization/vverse.md) + - [Earth Wallet](partners_utilization/earth_wallet.md) + - [Elestio](partners_utilization/elestio.md) + - [OW Freezone](partners_utilization/freezone.md) + - [Helium](partners_utilization/helium.md) + - [Holochain](partners_utilization/holochain.md) + - [TZG](partners_utilization/tanzania.md) + - [Tier-S DC](partners_utilization/tier_s_datacenter.md) - [Farming](farming/farming_toc.md) - [Farming Rewards](farming/farming_reward.md) - [Proof-of-Capacity](farming/proof_of_capacity.md) @@ -367,13 +381,13 @@ - [How to Test](collaboration/testing/testing_readme.md) - [TestLodge](collaboration/testing/testlodge.md) - [Code of Conduct](collaboration/code_conduct.md) - - [Legal](manual_legal/terms_conditions_all3.md) - - [Disclaimer](manual_legal/disclaimer.md) - - [Definitions](manual_legal/definitions_legal.md) - - [Privacy Policy](manual_legal/privacypolicy.md) - - [Terms & Conditions](manual_legal/terms_conditions/terms_conditions_toc.md) - - [Terms & Conditions ThreeFold Related Websites](manual_legal/terms_conditions/terms_conditions_websites.md) - - [Terms & Conditions TFGrid Users TFGrid 3](manual_legal/terms_conditions/terms_conditions_griduser.md) - - [TFTA to TFT](manual_legal/terms_conditions/tfta_to_tft.md) - - [Terms & Conditions TFGrid Farmers TFGrid 3](manual_legal/terms_conditions/terms_conditions_farmer3.md) - - [Terms & Conditions Sales](manual_legal/terms_conditions/terms_conditions_sales.md) \ No newline at end of file + - [Legal](legal/legal_home.md) + - [Disclaimer](legal/disclaimer.md) + - [Definitions](legal/definitions_legal.md) + - [Terms & Conditions](legal/terms_conditions/terms_conditions_toc.md) + - [Terms and Conditions Websites](legal/terms_conditions_websites.md) + - [Terms and Conditions Users](legal/terms_conditions_griduser.md) + - [TFTA to TFT](legal/tfta_to_tft.md) + - [Terms and Conditions Farmers](legal/terms_conditions_farmer3.md) + - [Terms and Conditions Sales](legal/terms_conditions_sales.md) + - [Privacy Policy](legal/privacypolicy.md) \ No newline at end of file diff --git a/books/tech/SUMMARY.md b/books/tech/SUMMARY.md index f483fb3..7799bb6 100644 --- a/books/tech/SUMMARY.md +++ b/books/tech/SUMMARY.md @@ -19,7 +19,7 @@ - [Quantum Safe Storage Algo](tech/qss_algorithm.md) - [Zero Knowledge proof](tech/qss_zero_knowledge_proof.md) - [NFT Storage](tech/nft_storage.md) - - [S3 Storage](tech/s3_interface) + - [S3 Storage](tech/s3_interface) - [File System](tech/qss_filesystem.md) - [Network](tech/networking.md) - [Mycelium](tech/mycelium.md) @@ -33,6 +33,6 @@ - [Elestio](partners_utilization/elestio.md) - [OW Freezone](partners_utilization/freezone.md) - [Helium](partners_utilization/helium.md) - - [Holochain](partners_utilization/helium.md) + - [Holochain](partners_utilization/holochain.md) - [TZG](partners_utilization/tanzania.md) - [Tier-S DC](partners_utilization/tier_s_datacenter.md) \ No newline at end of file diff --git a/collections/about/about.md b/collections/about/about.md index ba76824..9e981f4 100644 --- a/collections/about/about.md +++ b/collections/about/about.md @@ -6,8 +6,8 @@ It's a good place to start if you want to have an overview of ThreeFold since it

Table of Contents

-- [ThreeFold History](./threefold_history.md) -- [ThreeFold Tech](./threefold_tech.md) -- [Organisation Structure](./orgstructure.md) -- [ThreeFold Roadmap](./roadmap/roadmap_readme.md) -- [ThreeFold Token](./token_overview/token_overview.md) \ No newline at end of file +- [ThreeFold History](threefold_history.md) +- [ThreeFold Tech](threefold_tech.md) +- [Organisation Structure](orgstructure.md) +- [ThreeFold Roadmap](roadmap_readme.md) +- [ThreeFold Token](token_overview.md) \ No newline at end of file diff --git a/collections/about/bettertoken.md b/collections/about/bettertoken.md index 81ff291..4e2fca5 100644 --- a/collections/about/bettertoken.md +++ b/collections/about/bettertoken.md @@ -15,7 +15,7 @@ European Farming Cooperative for the foundation: - Operates a data center in Lochristi (Belgium) offering hosting and connectivity for TF Farmers - Currently, 100+ nodes – many of them are owned by TF farmers -- [ThreeFold Tech](./threefold_tech.md) NV uses some of their equipment today for development +- [ThreeFold Tech](threefold_tech.md) NV uses some of their equipment today for development - Sale of small servers to TF Farmers, was done mainly via an online webshop ## Income diff --git a/collections/about/dao/tfdao.md b/collections/about/dao/tfdao.md index 79020b5..d50a01d 100644 --- a/collections/about/dao/tfdao.md +++ b/collections/about/dao/tfdao.md @@ -24,8 +24,8 @@ Amongst others the DAO needs to arrange | Utility Token model | | | -------------------------------------------- | ------------------------------------------ | -| [Proof Of Capacity](../../farming/proof_of_capacity.md) | Farming (creation) of TFT | -| [Proof Of Utilization](../../farming/proof_of_utilization.md) | Utilization (burning, distribution) of TFT | +| [Proof Of Capacity](proof_of_capacity.md) | Farming (creation) of TFT | +| [Proof Of Utilization](proof_of_utilization.md) | Utilization (burning, distribution) of TFT | As well as diff --git a/collections/about/genesis_pool.md b/collections/about/genesis_pool.md index ad6fdb2..1923ad5 100644 --- a/collections/about/genesis_pool.md +++ b/collections/about/genesis_pool.md @@ -32,12 +32,12 @@ Many hundreds of servers have been used to develop the technology which now make 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) +- 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). +> For information about genesis pool/block, see [here](genesis_block_pool_details.md). ## Genesis Pool Token Usage @@ -46,7 +46,7 @@ All genesis pools were owned by the foundation. Many of those servers are at thi - 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/token_overview.md) for more details. +> [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. @@ -64,7 +64,7 @@ The tokens were used from out of ThreeFold_Dubai to create value for the ThreeFo ## Remarks -- ThreeFold_Dubai is run as a [not-for-profit organization](../legal/definitions_legal.md) +- 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 index a25dc91..93ff1b9 100644 --- a/collections/about/genesis_pool_dubai.md +++ b/collections/about/genesis_pool_dubai.md @@ -4,4 +4,4 @@ ![](img/genesispool_2.jpg) -Read more about ThreeFold Dubai [here](./threefold_dubai.md). \ No newline at end of file +Read more about ThreeFold Dubai [here](threefold_dubai.md). \ No newline at end of file diff --git a/collections/about/governance.md b/collections/about/governance.md index 2381fa5..383d5aa 100644 --- a/collections/about/governance.md +++ b/collections/about/governance.md @@ -22,7 +22,7 @@ The project is grateful of the support of its community and the commercial entit 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. -For more information, read the [ThreeFold History](./threefold_history.md). +For more information, read the [ThreeFold History](threefold_history.md). ## Type of Token @@ -39,7 +39,7 @@ For more information, [read the legal opinions](https://drive.google.com/file/d/ ## Governance Process -To make sure that all our funds are used properly and that decisions are taken for the benefit of ThreeFold and its community as a whole, we make use of different tools and features, such as multi-signature wallets, the [ThreeFold DAO](./dao/tfdao.md) and the [ThreeFold Forum](https://forum.threefold.io/). +To make sure that all our funds are used properly and that decisions are taken for the benefit of ThreeFold and its community as a whole, we make use of different tools and features, such as multi-signature wallets, the [ThreeFold DAO](tfdao.md) and the [ThreeFold Forum](https://forum.threefold.io/). ## Organic Growth @@ -51,7 +51,7 @@ The Genesis pool was based on real hardware located in Dubai and Ghent. The tokens out of this pool are safe and well managed. We are acquiring a lot of them with ThreeFold Cloud (ThreeFold Dubai). -For more information on the Genesis pool, [read this section](./genesis_pool.md). +For more information on the Genesis pool, [read this section](genesis_pool.md). ## Decentralized and Open-Source diff --git a/collections/about/mazraa.md b/collections/about/mazraa.md index c280c8e..d9e6898 100644 --- a/collections/about/mazraa.md +++ b/collections/about/mazraa.md @@ -10,7 +10,7 @@ ## Introduction -Mazraa is a brand name of [ThreeFold Dubai](./threefold_dubai.md). You can read about ThreeFold Dubai for more details. +Mazraa is a brand name of [ThreeFold Dubai](threefold_dubai.md). You can read about ThreeFold Dubai for more details. ## History diff --git a/collections/about/orgstructure.md b/collections/about/orgstructure.md index 8f1ec9d..b9e7a67 100644 --- a/collections/about/orgstructure.md +++ b/collections/about/orgstructure.md @@ -2,13 +2,13 @@

Table of Contents

-- [Governance](./governance.md) -- [ThreeFold Companies](./threefold_companies.md) -- [ThreeFold Dubai](./threefold_dubai.md) -- [ThreeFold VZW](./threefold_vzw.md) -- [ThreeFold AG](./threefold_ag.md) -- [Mazraa](./mazraa.md) -- [BetterToken](./bettertoken.md) -- [DAO](./dao/dao.md) -- [ThreeFold DAO](./dao/tfdao.md) -- [TFChain](./tfchain.md) \ No newline at end of file +- [Governance](governance.md) +- [ThreeFold Companies](threefold_companies.md) +- [ThreeFold Dubai](threefold_dubai.md) +- [ThreeFold VZW](threefold_vzw.md) +- [ThreeFold AG](threefold_ag.md) +- [Mazraa](mazraa.md) +- [BetterToken](bettertoken.md) +- [DAO](dao.md) +- [ThreeFold DAO](tfdao.md) +- [TFChain](tfchain.md) \ No newline at end of file diff --git a/collections/about/roadmap/releasenotes/releasenotes_readme.md b/collections/about/roadmap/releasenotes/releasenotes_readme.md index 21e8011..d2a0e20 100644 --- a/collections/about/roadmap/releasenotes/releasenotes_readme.md +++ b/collections/about/roadmap/releasenotes/releasenotes_readme.md @@ -7,13 +7,13 @@ Whether you're a developer, a farmer, a user, or simply curious about the cutting-edge advancements happening in the world of distributed computing, these release notes will provide you with valuable insights and keep you up to date with our progress. So dive in, explore the details, and join us in shaping the future of the ThreeFold Grid! ## ThreeFold TFGrid v3.x Release Notes -- [TFGrid v3.10.0](./tfgrid_release_3_10_0.md) -- [TFGrid v3.9.0](./tfgrid_release_3_9_0.md) -- [TFGrid v3.8.0](./tfgrid_release_3_8_0.md) -- [TFGrid v3.7.0](./tfgrid_release_3_7_0.md) -- [TFGrid v3.6.1](./tfgrid_release_3_6_1.md) -- [TFGrid v3.6.0](./tfgrid_release_3_6_0.md) -- [TFGrid v3.0.0 Alpha-5](./tfgrid_release_3_0_a5.md) -- [TFGrid v3.0.0 Alpha-4](./tfgrid_release_3_0_a4.md) -- [TFGrid v3.0.0 Alpha-2](./tfgrid_release_3_0_a2.md) -- [TFGrid v3.0.0](./tfgrid_release_3_0.md) +- [TFGrid v3.10.0](tfgrid_release_3_10_0.md) +- [TFGrid v3.9.0](tfgrid_release_3_9_0.md) +- [TFGrid v3.8.0](tfgrid_release_3_8_0.md) +- [TFGrid v3.7.0](tfgrid_release_3_7_0.md) +- [TFGrid v3.6.1](tfgrid_release_3_6_1.md) +- [TFGrid v3.6.0](tfgrid_release_3_6_0.md) +- [TFGrid v3.0.0 Alpha-5](tfgrid_release_3_0_a5.md) +- [TFGrid v3.0.0 Alpha-4](tfgrid_release_3_0_a4.md) +- [TFGrid v3.0.0 Alpha-2](tfgrid_release_3_0_a2.md) +- [TFGrid v3.0.0](tfgrid_release_3_0.md) diff --git a/collections/about/roadmap/releasenotes/tfgrid_release_3_10_0.md b/collections/about/roadmap/releasenotes/tfgrid_release_3_10_0.md index 8cad3e3..08fbf1b 100644 --- a/collections/about/roadmap/releasenotes/tfgrid_release_3_10_0.md +++ b/collections/about/roadmap/releasenotes/tfgrid_release_3_10_0.md @@ -67,7 +67,7 @@ Below are some of the key highlights of the TFGrid v3.10.0 component upgrades an #### TF-Grid-CLI - Introduced a simple tool for creating virtual machines and Kubernetes clusters. Note that `TF-Grid-CLI` is now `TFCMD`. -- Get started [here](../../../../documentation/developers/tfcmd/tfcmd.md). +- Get started [here](tfcmd.md). #### Gridify diff --git a/collections/about/roadmap/releasenotes/tfgrid_release_3_8_0.md b/collections/about/roadmap/releasenotes/tfgrid_release_3_8_0.md index 9142adf..a1c51aa 100644 --- a/collections/about/roadmap/releasenotes/tfgrid_release_3_8_0.md +++ b/collections/about/roadmap/releasenotes/tfgrid_release_3_8_0.md @@ -18,7 +18,7 @@ This release note includes updates, improvements and fixes of numerous grid comp ## Upgrades and Improvements ### TFChain v2.2.0 -- Added [Third Party Billing Services](https://github.com/threefoldtech/tfchain/blob/12bc8842c7c321d22e36667a91dfc5d3c7d04ab8/substrate-node/pallets/pallet-smart-contract/service_consumer_contract_flow.md), allowing defining contracts between TFChain users for a service and the billing. +- Added [Third Party Billing Services](service_consumer_contract_flow.md), allowing defining contracts between TFChain users for a service and the billing. - Reworked billing flow, see [details here](https://github.com/threefoldtech/tfchain/issues/269). - Infrastructure wise, we have integrated [Firesquid](https://docs.subsquid.io/), which is showing promising improvements in regards of the storage and data syncing. - Added Bugfixes around data validations and improving migrations diff --git a/collections/about/roadmap/releasenotes/tfgrid_release_3_9_0.md b/collections/about/roadmap/releasenotes/tfgrid_release_3_9_0.md index 972cb78..14a3b67 100644 --- a/collections/about/roadmap/releasenotes/tfgrid_release_3_9_0.md +++ b/collections/about/roadmap/releasenotes/tfgrid_release_3_9_0.md @@ -35,7 +35,7 @@ Reliable Message Bus Relay (RMB-RS) is a secure communication panel that allows - End-to-end encryption support. - Support for third-party hosted Relays. Anyone can host a Relay and people can use it safely since there is no way messages can be inspected while using e2e. That's similar to home servers by matrix. -See [Specifications](https://github.com/threefoldtech/rmb-rs/blob/main/docs/readme.md) for more information. +See [Specifications](readme.md) for more information. > Below is the list of the __Public Relay Addresses__ hosted by Threefold: diff --git a/collections/about/roadmap/roadmap_readme.md b/collections/about/roadmap/roadmap_readme.md index acf698c..fc5cea9 100644 --- a/collections/about/roadmap/roadmap_readme.md +++ b/collections/about/roadmap/roadmap_readme.md @@ -2,10 +2,10 @@ Welcome to ThreeFold's product roadmap! We are thrilled to have you on board as we journey towards a decentralized and sustainable future. Our product roadmap outlines the innovative solutions and technologies we are developing to revolutionize the way we compute, store data, and connect. Here, you will find a comprehensive overview of our latest and upcoming releases, enhancements, and advancements across our ecosystem. -> Click [here](../../technology/concepts/grid3_components.md) to see the complete TFGrid Component List +> Click [here](grid3_components.md) to see the complete TFGrid Component List ## Table of Contents - [TFGrid v3.x Announcement (Aug 2021 - Forum)](https://forum.threefold.io/t/announcement-of-tfgrid-3-0/1132) -- [What's new on TFGrid v3.x](../../technology/concepts/grid3_whatsnew.md) -- [Release Notes](./releasenotes/releasenotes_readme.md) \ No newline at end of file +- [What's new on TFGrid v3.x](grid3_whatsnew.md) +- [Release Notes](releasenotes_readme.md) \ No newline at end of file diff --git a/collections/about/threefold_companies.md b/collections/about/threefold_companies.md index 280a3f0..f1e7821 100644 --- a/collections/about/threefold_companies.md +++ b/collections/about/threefold_companies.md @@ -15,18 +15,18 @@ The following companies are related parties to ThreeFold. Our terms and conditio | THREEFOLD RELATED COMPANIES | Description | | --------------------------------------------------------------- | ---------------------------------------------------------------------------------- | -| [ThreeFold Dubai or ThreeFold Cloud](./threefold_dubai.md) | Promotion of TFGrid + Delivery of ThreeFold Cloud | -| [Threefold_Tech](./threefold_tech.md) | Belgium-based tech company owns IP (Intellectual Property) of tech, is open source | -| [ThreeFold_VZW](./threefold_vzw.md) | Non for profit organization in BE, intented to be used for grants work. | -| [ThreeFold_AG](./threefold_ag.md) | ThreeFold in Zug, Switzerland | +| [ThreeFold Dubai or ThreeFold Cloud](threefold_dubai.md) | Promotion of TFGrid + Delivery of ThreeFold Cloud | +| [Threefold_Tech](threefold_tech.md) | Belgium-based tech company owns IP (Intellectual Property) of tech, is open source | +| [ThreeFold_VZW](threefold_vzw.md) | Non for profit organization in BE, intented to be used for grants work. | +| [ThreeFold_AG](threefold_ag.md) | ThreeFold in Zug, Switzerland | | TF Hub Limited | ThreeFold in BVI | | Codescalers | Egypt-based software development team, creates a lot of code for ThreeFold | | FARMING COOPERATIVES | | | ------------------------------------ | ------------------------------------------------ | -| [Mazraa](./mazraa.md) | A farmer in Middle East who is part of ThreeFold_Dubai | -| [BetterToken](./bettertoken.md) | BetterToken is the very first ThreeFold Farming Cooperative in Europe | +| [Mazraa](mazraa.md) | A farmer in Middle East who is part of ThreeFold_Dubai | +| [BetterToken](bettertoken.md) | BetterToken is the very first ThreeFold Farming Cooperative in Europe | | SOME LARGER FARMERS | | @@ -36,5 +36,5 @@ The following companies are related parties to ThreeFold. Our terms and conditio | Moresi | A neutral, technologically advanced data center in Switzerland | | there are many more | ... | -> Please note, ThreeFold Grid 3.x operates as a [DAO](./dao/dao.md) every party who wants to participate with the ThreeFold Grid uses the [TFChain](./tfchain.md) and our Forums. -> [Click here for more info about our DAO](./dao/tfdao.md) \ No newline at end of file +> Please note, ThreeFold Grid 3.x operates as a [DAO](dao.md) every party who wants to participate with the ThreeFold Grid uses the [TFChain](tfchain.md) and our Forums. +> [Click here for more info about our DAO](tfdao.md) \ No newline at end of file diff --git a/collections/about/threefold_dubai.md b/collections/about/threefold_dubai.md index 9c1836b..e2e1abc 100644 --- a/collections/about/threefold_dubai.md +++ b/collections/about/threefold_dubai.md @@ -18,7 +18,7 @@ ThreeFold Dubai is the original team of ThreeFold operated from Dubai and Belgiu ## Responsibilities - Promote ThreeFold Grid and the ThreeFold Token -- Work with [ThreeFold Tech](./threefold_tech.md) for the creation and maintenance of the technology. +- Work with [ThreeFold Tech](threefold_tech.md) for the creation and maintenance of the technology. - Legal: signing party with all T&C (terms and conditions) with all future farmers - Work with many people and companies around the world to grow the threefold ecosystem - Look for partners who are willing to grow the threefold ecosystem diff --git a/collections/about/threefold_history.md b/collections/about/threefold_history.md index df6c74c..d8fd5df 100644 --- a/collections/about/threefold_history.md +++ b/collections/about/threefold_history.md @@ -23,7 +23,7 @@ Our founders have largely retained their tokens, with only minimal sales, if any 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. +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. @@ -47,13 +47,13 @@ How much funding was used to make the ThreeFold project possible? 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) +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. +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 +For more info about history of tokens, see [token history](token_history.md). \ No newline at end of file diff --git a/collections/about/threefold_vzw.md b/collections/about/threefold_vzw.md index 584653f..efd5a29 100644 --- a/collections/about/threefold_vzw.md +++ b/collections/about/threefold_vzw.md @@ -21,7 +21,7 @@ A **VZW** has no shareholders, only members. ## Functions - owner of the wisdom_council -- eventuallly ThreeFold VZW will own some decentralized organizations as operating in the ThreeFold world e.g. [TF Dubai](./threefold_dubai.md) +- eventuallly ThreeFold VZW will own some decentralized organizations as operating in the ThreeFold world e.g. [TF Dubai](threefold_dubai.md) ## Some History diff --git a/collections/about/token_history.md b/collections/about/token_history.md index 7d9c7a2..8796dd9 100644 --- a/collections/about/token_history.md +++ b/collections/about/token_history.md @@ -22,7 +22,7 @@ We present the ThreeFold token history and the path from TFT v1 towards TFT v2. - 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 + - 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 @@ -81,7 +81,7 @@ In Q3 2021 we launched TF Grid 3.0 which has again brought improvement to the fa ### Migration from TFTv1 Stellar (Staking Pool=TFTA) to TFTv2 Stellar (Trading or Production Pool=TFT) -- See [TFTA to TFT](../legal/terms_conditions/tfta_to_tft.md) +- See [TFTA to TFT](legal@@tfta_to_tft) ### Technical Information 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 new file mode 100644 index 0000000..f8b65cc Binary files /dev/null and b/collections/about/token_overview/special_wallets/img/polkadot_wallet_example.png 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 new file mode 100644 index 0000000..bb301f0 Binary files /dev/null and b/collections/about/token_overview/special_wallets/img/wallet_solution_provider_main.png 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 new file mode 100644 index 0000000..5ef4669 Binary files /dev/null and b/collections/about/token_overview/special_wallets/img/wallet_solution_provider_test.png 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 new file mode 100644 index 0000000..5d08a46 Binary files /dev/null and b/collections/about/token_overview/special_wallets/img/wallet_staking_pool.png 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 new file mode 100644 index 0000000..5893319 Binary files /dev/null and b/collections/about/token_overview/special_wallets/img/wallet_tf_foundation_main.png 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 new file mode 100644 index 0000000..83812ee Binary files /dev/null and b/collections/about/token_overview/special_wallets/img/wallet_tf_foundation_test.png 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 index b561f4d..f2b2e97 100644 --- a/collections/about/token_overview/special_wallets/stats_special_wallets.md +++ b/collections/about/token_overview/special_wallets/stats_special_wallets.md @@ -8,6 +8,7 @@ - [Wisdom Council Wallets](#wisdom-council-wallets) - [Important Note](#important-note) - [Remarks](#remarks) +- [Proof-of-Utilization Wallets](#proof-of-utilization-wallets) *** @@ -54,3 +55,51 @@ ThreeFold DMCC (Dubai) is in the process of acquiring a substantial number of to - 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/token_overview.md b/collections/about/token_overview/token_overview.md index c78c608..e6233c0 100644 --- a/collections/about/token_overview/token_overview.md +++ b/collections/about/token_overview/token_overview.md @@ -31,7 +31,7 @@ By farming, buying, holding, and utilizing ThreeFold Tokens, you are actively su 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](../../farming/proof_of_capacity.md) +> For more details, see [Proof of Capacity](proof_of_capacity.md) ## Proof-of-Utilization @@ -41,7 +41,7 @@ TFT is used on the TFGrid to purchase network, compute and storage resources thr ![](img/token_distribution.png) -> For more details, see [Proof-of-Utilization](../../farming/proof_of_utilization.md) +> For more details, see [Proof-of-Utilization](proof_of_utilization.md) ## TFT Distribution @@ -69,8 +69,8 @@ The TFT market price and marketcap are as follows: | **Description** | **Value** | | ------------------------- | ------------- | -| TFT Market Price | !!wiki.include page:'manual:tft_value.md' USD | -| TFT Market Cap | !!wiki.include page:'manual:tft_marketcap.md' USD | +| 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. @@ -80,9 +80,8 @@ The values here are subject to change. Check the current market conditions. ## Complemetary Information -- [ThreeFold History](../../about/threefold_history.md) -- [Token History](../../about/token_history.md) -- [Special Wallets](./special_wallets/stats_special_wallets.md) +- [ThreeFold History](threefold_history.md) +- [Token History](token_history.md) ## Disclaimer diff --git a/collections/cloud/cloud_toc.md b/collections/cloud/cloud_toc.md index 4a50bd7..48ae56a 100644 --- a/collections/cloud/cloud_toc.md +++ b/collections/cloud/cloud_toc.md @@ -2,15 +2,15 @@ This section covers the essential information concerning Cloud utilization. -To deploy on the ThreeFold Grid, refer to the [System Administrators](../../documentation/system_administrators/system_administrators.md) section. +To deploy on the ThreeFold Grid, refer to the [System Administrators](system_administrators@@system_administrators) section.

Table of Contents

-- [Cloud Units](./cloudunits.md) -- [Pricing](./pricing/pricing_toc.md) - - [Pricing Overview](./pricing/pricing.md) - - [Staking Discounts](./pricing/staking_discount_levels.md) - - [Cloud Pricing Compare](./pricing/cloud_pricing_compare.md) - - [Grid Billing](./grid_billing/grid_billing.md) -- [Resource Units](./resource_units_calc_cloudunits.md) -- [Resource Units Advanced](./resourceunits_advanced.md) \ No newline at end of file +- [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/cloudunits.md b/collections/cloud/cloudunits.md index e9f34c4..7f216c8 100644 --- a/collections/cloud/cloudunits.md +++ b/collections/cloud/cloudunits.md @@ -19,7 +19,7 @@ Cloud units are a unified way to account for virtual hardware resources on the T - Storage Unit (SU): The amount of storage capacity in terms of Hard Disk Drives (HDDs) and Solid State Drives (SSDs) in Gigabytes (GB). - Network Unit (NU): The amount of data that travels in and out of storage units or compute units expressed in GB. -> Note: [Resource units](./resource_units_calc_cloudunits.md) are used to calculate SU & CU. Resource Units are used to measure compute and storage capacity produced by hardware. +> Note: [Resource units](resource_units_calc_cloudunits.md) are used to calculate SU & CU. Resource Units are used to measure compute and storage capacity produced by hardware. When a solution is deployed on the ThreeFold Grid, the system automatically gathers the required amount of CU, SU, or NU. It is important to note that users are not billed upon reservation but only when utilizing the actualy CU, SU and NU. TF Certified Farmers can define the price of CU, SU, and NU they make available on the ThreeFold Grid. @@ -42,7 +42,7 @@ Example of Compute unit: - Recommended price on TF Grid = 10 USD - Alternative cloud price = between 40 USD and 180 USD -See how we compare with the market compute prices [here](./pricing/pricing.md). +See how we compare with the market compute prices [here](pricing.md). ### Storage Capacity @@ -58,7 +58,7 @@ Example of Storage unit: - Recommended price on TF Grid for 1 SU = 10 USD - Alternative cloud price = between 20 USD and 200 USD -See how we compare with market storage prices [here](./pricing/pricing.md). +See how we compare with market storage prices [here](pricing.md). ### Network @@ -66,4 +66,4 @@ See how we compare with market storage prices [here](./pricing/pricing.md). | ------------------------------------------ | -------- | | GB transferred OUT or IN | 1 | -> We use SU-month and CU-month to show SU monthly costs. This can be compared to kilowatts (kW) to see electricity usage per month. Learn more about how this is calculated with [Resource units](./resource_units_calc_cloudunits.md), a way to measure the compute and storage capacity produced by hardware. \ No newline at end of file +> We use SU-month and CU-month to show SU monthly costs. This can be compared to kilowatts (kW) to see electricity usage per month. Learn more about how this is calculated with [Resource units](resource_units_calc_cloudunits.md), a way to measure the compute and storage capacity produced by hardware. \ No newline at end of file diff --git a/collections/cloud/grid_billing/grid_billing.md b/collections/cloud/grid_billing/grid_billing.md index 771d59d..7b7c10e 100644 --- a/collections/cloud/grid_billing/grid_billing.md +++ b/collections/cloud/grid_billing/grid_billing.md @@ -130,7 +130,7 @@ Contract cost/hour = CU cost/hour + SU cost/hour ### Applying the Discounts -Before assuming that the price above is the final price, check first if your twin is eligible for any of the available staking discount levels. To understand more about discount levels, please read [this section](../pricing/staking_discount_levels.md). +Before assuming that the price above is the final price, check first if your twin is eligible for any of the available staking discount levels. To understand more about discount levels, please read [this section](staking_discount_levels.md). For this example, we assume that this twin has 18 months worth of TFTs staked, so the user will be eligible for a Gold discount level (60% discount). @@ -247,7 +247,7 @@ Contract cost/hour = CU cost/hour + SU cost/hour ### Applying the Dedicated Node Discount -There's a default `50%` discount for renting a node, this discount is not related to the staking discount. For more information on dedicated node discounts, please [read this section](../../../documentation/dashboard/deploy/dedicated_machines.md). +There's a default `50%` discount for renting a node, this discount is not related to the staking discount. For more information on dedicated node discounts, please [read this section](dashboard@@node_finder). ``` Cost with 50% discount = 35.72532 * 0.5 @@ -256,7 +256,7 @@ Cost with 50% discount = 35.72532 * 0.5 ### Applying the Staking Discount -Before assuming that the price above is the final price, check first if your twin is eligible for any of the available staking discount levels. To understand more about discount levels, please read [this section](../pricing/staking_discount_levels.md). +Before assuming that the price above is the final price, check first if your twin is eligible for any of the available staking discount levels. To understand more about discount levels, please read [this section](staking_discount_levels.md). For this example, let's assume that this twin has 18 months worth of TFTs staked, so the user will be eligible for a Gold discount level (60% discount). @@ -291,7 +291,7 @@ uniqueName in TFT = 0.00025 * 100 ### Applying the Staking Discount -Before assuming that the price above is the final price, check first if your twin is eligible for any of the available staking discount levels. To understand more about discount levels, please read [this section](../pricing/staking_discount_levels.md). +Before assuming that the price above is the final price, check first if your twin is eligible for any of the available staking discount levels. To understand more about discount levels, please read [this section](staking_discount_levels.md). For this example, let's assume that this twin has 18 months worth of TFTs staked, so the user will be eligible for a Gold discount level (60% discount). @@ -326,7 +326,7 @@ Public IP in TFT = 0.004 * 100 ### Applying the Staking Discount -Before assuming that the price above is the final price, check first if your twin is eligible for any of the available staking discount levels. To understand more about discount levels, please read [this section](../pricing/staking_discount_levels.md). +Before assuming that the price above is the final price, check first if your twin is eligible for any of the available staking discount levels. To understand more about discount levels, please read [this section](staking_discount_levels.md). For this example, let's assume that this twin has 18 months worth of TFTs staked, so the user will be eligible for a Gold discount level (60% discount). @@ -378,7 +378,7 @@ NU price in TFT = 0.0015 * 100 ### Applying the Staking Discount -Before assuming that the price above is the final price, check first if your twin is eligible for any of the available staking discount levels. To understand more about discount levels, please read [this section](../pricing/staking_discount_levels.md). +Before assuming that the price above is the final price, check first if your twin is eligible for any of the available staking discount levels. To understand more about discount levels, please read [this section](staking_discount_levels.md). For this example, let's assume that this twin has 18 months worth of TFTs staked, so the user will be eligible for a Gold discount level (60% discount). diff --git a/collections/cloud/pricing/pricing.md b/collections/cloud/pricing/pricing.md index e09c1aa..d2eae09 100644 --- a/collections/cloud/pricing/pricing.md +++ b/collections/cloud/pricing/pricing.md @@ -16,36 +16,36 @@ - The current prices are for resources usage on mainnet (testnet get 50% discount) - A month is considered as 30 days (720 hours) +- We are considering a TFT market price of 0.028 | Cloud Units | Description | mUSD | mTFT | | ----------------- | ------------------------------------------------ | ------------------ | ------------------ | -| Compute Unit (CU) | typically 2 vcpu, 4 GB mem, 50 GB storage | !!wiki.include page:'manual:su_musd_hour.md' | !!wiki.include page:'manual:cu_mtft_hour.md' | -| Storage Unit (SU) | typically 1 TB of netto usable storage (*) | !!wiki.include page:'manual:cu_musd_hour.md' | !!wiki.include page:'manual:su_mtft_hour.md' | -| Network Unit (NU) | 1 GB transfer, bandwidth as used by TFGrid users | !!wiki.include page:'manual:nu_musd_hour.md' | !!wiki.include page:'manual:nu_mtft_hour.md' | +| Compute Unit (CU) | typically 2 vcpu, 4 GB mem, 50 GB storage | 30.56\/hour | 1091.43\/hour | +| Storage Unit (SU) | typically 1 TB of netto usable storage (*) | 19.44\/hour | 694.29\/hour | +| Network Unit (NU) | 1 GB transfer, bandwidth as used by TFGrid users | 50.00\/hour | 1785.71\/hour |
| Network Addressing | Description | mUSD | mTFT | | ------------------ | ------------------------------------------ | --------------------- | --------------------- | -| IPv4 Address | Public Ip Address as used by a TFGrid user | !!wiki.include page:'manual:ip_musd_hour.md' | !!wiki.include page:'manual:ip_mtft_hour.md' | -| Unique Name | Usable as name on webgateways | !!wiki.include page:'manual:name_musd_hour.md' | !!wiki.include page:'manual:name_mtft_hour.md' | -| Unique Domain Name | Usable as dns name on webgateways | !!wiki.include page:'manual:dname_musd_hour.md' | !!wiki.include page:'manual:dname_mtft_hour.md' | +| IPv4 Address | Public Ip Address as used by a TFGrid user | 6.94\/hour | 247.86\/hour | +| Unique Name | Usable as name on webgateways | 1.39\/hour | 49.64\/hour | +| Unique Domain Name | Usable as dns name on webgateways | 2.78\/hour | 99.29\/hour | - mUSD = 1/1000 of USD, mTFT = 1/1000 of TFT - TFT pricing pegged to USD (pricing changes in line with TFT/USD rate) -- The current TFT to USD price is !!wiki.include page:'manual:tft_value.md' USD - pricing is calculated per hour for the TFGrid 3.0 > Please check our [Cloud Pricing for utilization sheet](https://docs.google.com/spreadsheets/d/1E6MpGs15h1_flyT5AtyKp1TixH1ILuGo5tzHdmjeYdQ/edit#gid=2014089775) for more details. ## Pricing Expressed Per Month -| Cloud Units | description | USD NO DISCOUNT | USD 60% DISCOUNT | +| Cloud Units | Description | USD - No Discount | USD - 60% Discount | | ----------------- | ------------------------------------------------ | ------------------- | ---------------------------- | -| Compute Unit (CU) | typically 2 vcpu, 4 GB mem, 50 GB storage | 22.00/month | 8.80/month | -| Storage Unit (SU) | typically 1 TB of netto usable storage | 14.00/month | 5.60/month | -| Network Unit (NU) | 1 GB transfer, bandwidth as used by TFGrid users | 0.05/GB | 0.03/GB | -| IPv4 Address | Public Ip Address as used by a TFGrid user | 5.00/month | 3.00/month | +| Compute Unit (CU) | typically 2 vcpu, 4 GB mem, 50 GB storage | 22.00\/month | 8.80\/month | +| Storage Unit (SU) | typically 1 TB of netto usable storage | 14.00\/month | 5.60\/month | +| Network Unit (NU) | 1 GB transfer, bandwidth as used by TFGrid users | 0.05\/GB | 0.03\/GB | +| IPv4 Address | Public Ip Address as used by a TFGrid user | 5.00\/month | 3.00\/month | ## Operation Fees diff --git a/collections/cloud/pricing/pricing_toc.md b/collections/cloud/pricing/pricing_toc.md index 8e7a128..5a00fd6 100644 --- a/collections/cloud/pricing/pricing_toc.md +++ b/collections/cloud/pricing/pricing_toc.md @@ -2,7 +2,7 @@

Table of Contents

-- [Pricing Overview](./pricing.md) -- [Staking Discounts](./staking_discount_levels.md) -- [Cloud Pricing Compare](./cloud_pricing_compare.md) -- [Grid Billing](../grid_billing/grid_billing.md) \ No newline at end of file +- [Pricing Overview](pricing.md) +- [Staking Discounts](staking_discount_levels.md) +- [Cloud Pricing Compare](cloud_pricing_compare.md) +- [Grid Billing](grid_billing.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 87a2b99..dda7c63 100644 --- a/collections/cloud/resource_units_calc_cloudunits.md +++ b/collections/cloud/resource_units_calc_cloudunits.md @@ -14,7 +14,7 @@ ## Resource Units Overview -The threefold Zero-OS and TFChain software translates resource units (CRU, MRU, HRU, SRU) into cloud units (CU, SU) for farming reward purposes. +The ThreeFold Zero-OS and TFChain software translates resource units (CRU, MRU, HRU, SRU) into cloud units (CU, SU) for farming reward purposes. Resource units are used to measure and convert capacity on the hardware level into cloud units: CU & SU. @@ -29,7 +29,7 @@ Resource units are used to measure and convert capacity on the hardware level in These are raw capacities as measured by the ThreeFold software running on Zero-OS. -To learn how they convert into cloudunits see [here](./resourceunits_advanced.md) +To learn how they convert into cloudunits see [here](resourceunits_advanced.md) ### Compute diff --git a/collections/cloud/resourceunits.md b/collections/cloud/resourceunits.md index 7265f41..9c7b71c 100644 --- a/collections/cloud/resourceunits.md +++ b/collections/cloud/resourceunits.md @@ -13,4 +13,4 @@ Resource units are used to measure and convert capacity on the hardware level in These are raw capacities as measured by the ThreeFold software running on Zero-OS. -To learn how they convert into cloudunits see [here](./resourceunits_advanced.md) \ No newline at end of file +To learn how they convert into cloudunits see [here](resourceunits_advanced.md) \ No newline at end of file diff --git a/collections/collaboration/collaboration_toc.md b/collections/collaboration/collaboration_toc.md index 3a6bc41..38c110a 100644 --- a/collections/collaboration/collaboration_toc.md +++ b/collections/collaboration/collaboration_toc.md @@ -2,12 +2,12 @@ ThreeFold strongly believes in the power of open-source projects and community-driven collaboration. The following documentation is ideal for anyone who wants to know ways to collaborate to the ThreeFold ecosystem. -To become a farmer, a developer or a sysadmin on the ThreeFold, read the [documentation](../../documentation/documentation.md). +To become a farmer, a developer or a sysadmin on the ThreeFold, read the [documentation](manual@@documentation).

Table of Contents

Table of Contents -- [Circle Tool](./circle_tool.md) +- [Circle Tool](circle_tool.md) - This ThreeFold's project management tool, made by using Taiga, is an open-source project management platform designed to facilitate collaboration and to streamline workflows for teams. It provides a comprehensive set of features and tools to help teams plan, track, and manage their projects effectively. -- [Website Deployer](./website_tool.md) +- [Website Deployer](website_tool.md) - This ThreeFold's website builder tool, made by using Zola, is a static site generator (SSG) and content management system (CMS) that empowers developers and content creators to build and manage websites efficiently. It is an open-source framework written in the Rust programming language, known for its performance, security, and reliability. -- [Website Link Checker](./website_link_checker.md) +- [Website Link Checker](website_link_checker.md) - The ThreeFold website link checker is a wrapper around muffet to check for specific link errors on live websites written in Python. \ No newline at end of file diff --git a/collections/collaboration/collaboration_tools/website_link_checker.md b/collections/collaboration/collaboration_tools/website_link_checker.md index 788c5e0..162795c 100644 --- a/collections/collaboration/collaboration_tools/website_link_checker.md +++ b/collections/collaboration/collaboration_tools/website_link_checker.md @@ -39,15 +39,15 @@ flag. Otherwise exits with code 0. Note that errors set as --warnings will alway ### With Python * Clone the repository - * ``` + ``` git clone https://github.com/threefoldfoundation/website-link-checker ``` * Change directory - * ``` + ``` cd website-link-checker ``` * Run the program - * ``` + ``` python website-link-checker.py https://example.com -e 404 -w all ``` diff --git a/collections/collaboration/collaboration_tools/website_tool.md b/collections/collaboration/collaboration_tools/website_tool.md index c3b997f..c118299 100644 --- a/collections/collaboration/collaboration_tools/website_tool.md +++ b/collections/collaboration/collaboration_tools/website_tool.md @@ -292,7 +292,7 @@ When you are in the main directory of your Zola website, you can check the follo zola check ``` -Once your website is online, you can also use the [Website Link Checker](./website_link_checker.md). +Once your website is online, you can also use the [Website Link Checker](website_link_checker.md). ### Important Links diff --git a/collections/collaboration/contribute.md b/collections/collaboration/contribute.md index 698a477..8ef689c 100644 --- a/collections/collaboration/contribute.md +++ b/collections/collaboration/contribute.md @@ -44,7 +44,7 @@ We present here the main steps to add content to the Threefold Manual by forking * Make changes in the forked repository * To add a new section * Add a new Markdown file to the [src](https://github.com/threefoldtech/info_grid/blob/development/src) directory - * Add the path of the Markdown file to [SUMMARY](https://github.com/threefoldtech/info_grid/blob/development/src/SUMMARY.md). + * Add the path of the Markdown file to [SUMMARY](SUMMARY.md). * To modify an existing section: * Make the changes directly in the Markdown file * Ask for a pull request @@ -68,16 +68,16 @@ To do so, you simply need to clone the forked repository on your local computer The steps are the following: * In the terminal, write the following line to clone the forked `info_grid` repository: - * ``` + ``` git clone https://github.com/YOUR_GIT_ACCOUNT/info_grid ``` * make sure to write your own Github account in the URL * To deploy the mdbook locally, first go to the **info_grid** directory: - * ``` + ``` cd info_grid ``` * Then write the following line. It will open the manual automatically. - * ``` + ``` mdbook serve -o ``` * Note that, by default, the URL is the following, using port `3000`, `http://localhost:3000/` diff --git a/collections/collaboration/development_cycle.md b/collections/collaboration/development_cycle.md index c321367..02ae9b4 100644 --- a/collections/collaboration/development_cycle.md +++ b/collections/collaboration/development_cycle.md @@ -1,6 +1,6 @@ The development cycle is explained below: -![Untitled presentation (1)](https://user-images.githubusercontent.com/8425762/170034170-7247a737-9d99-481d-9289-88d361275043.png) +![dev_cycle](./img/dev_cycle.png) diff --git a/collections/collaboration/development_process.md b/collections/collaboration/development_process.md index ae6d64b..9bb3bda 100644 --- a/collections/collaboration/development_process.md +++ b/collections/collaboration/development_process.md @@ -101,8 +101,8 @@ Creating a repository involves establishing a foundation for collaborative devel #### Github Templates -- Use github templates to provide proper template for issues [bug_report](./bug_report.md) or [feature request](./feature_request.md) -- Use github templates to provide proper template for [pull requests](./PULL_REQUEST_TEMPLATE.md) +- Use github templates to provide proper template for issues [bug_report](bug_report.md) or [feature request](feature_request.md) +- Use github templates to provide proper template for [pull requests](pull_request_template.md) #### Expected Workflows diff --git a/collections/collaboration/img/dev_cycle.png b/collections/collaboration/img/dev_cycle.png new file mode 100644 index 0000000..ddf2766 Binary files /dev/null and b/collections/collaboration/img/dev_cycle.png differ diff --git a/collections/companies/bettertoken.md b/collections/companies/bettertoken.md new file mode 100644 index 0000000..81ff291 --- /dev/null +++ b/collections/companies/bettertoken.md @@ -0,0 +1,33 @@ +

BetterToken NV

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Income](#income) +- [Structure](#structure) +- [Expected Changes](#expected-changes) + +*** + +## Introduction + +European Farming Cooperative for the foundation: + +- Operates a data center in Lochristi (Belgium) offering hosting and connectivity for TF Farmers +- Currently, 100+ nodes – many of them are owned by TF farmers +- [ThreeFold Tech](./threefold_tech.md) NV uses some of their equipment today for development +- Sale of small servers to TF Farmers, was done mainly via an online webshop + +## Income + +- Hosting fees for the maintenance & running of the farmer pool + +## Structure + +- Started 30 November 2016 +- [limited liable company in belgium](http://www.ejustice.just.fgov.be/tsv_pdf/2016/11/30/16324281.pdf) +- Peter Van der Henst is the managing director + +## Expected Changes + +BetterToken continues to be farming cooperative for Europe. Right now there is not much happening in BetterToken. \ No newline at end of file diff --git a/collections/companies/threefold_ag.md b/collections/companies/threefold_ag.md new file mode 100644 index 0000000..2d1c69f --- /dev/null +++ b/collections/companies/threefold_ag.md @@ -0,0 +1,20 @@ +

ThreeFold Switzerland

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Some Plans](#some-plans) + +*** + +## Introduction + +ThreeFold Switzerland is officially called ThreeFold AG. + +While there are activities done at this time, we are preparing for future activities. + +## Some Plans + +- Promotion of ThreeFold, specifically in Zug Communities (CH). + +![](img/crypto_valley_zug_.jpg) \ No newline at end of file diff --git a/collections/companies/threefold_vzw.md b/collections/companies/threefold_vzw.md new file mode 100644 index 0000000..584653f --- /dev/null +++ b/collections/companies/threefold_vzw.md @@ -0,0 +1,48 @@ +

ThreeFold VZW

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Functions](#functions) +- [Some History](#some-history) +- [Belgium Official Doc](#belgium-official-doc) + +*** + +## Introduction + +ThreeFold VZW is a non for profit organization based in Belgium. + +A **VZW** has no shareholders, only members. + + + +## Functions + +- owner of the wisdom_council +- eventuallly ThreeFold VZW will own some decentralized organizations as operating in the ThreeFold world e.g. [TF Dubai](./threefold_dubai.md) + +## Some History + +We all started in Belgium from Korenlei 22, a super old building in the middle of the town. It dates back to 1731. + +![](img/korenlei_22.jpg) + +![](img/korenlei_old.jpg) + +Now the foundation has another address in Lochristi. + + + +## Belgium Official Doc + +![](img/threefold_vzw_official_doc.jpg) + + + +See also https://trendstop.knack.be/en/detail/747872572/threefold-foundation.aspx \ No newline at end of file diff --git a/collections/dashboard/dashboard.md b/collections/dashboard/dashboard.md index 991b189..fca40ee 100644 --- a/collections/dashboard/dashboard.md +++ b/collections/dashboard/dashboard.md @@ -10,15 +10,15 @@ The ThreeFold Dashboard is a dynamic environment designed for both seasoned deve In the context of the Dashboard, a weblet is a compiled JavaScript web component that can be effortlessly embedded within the HTML page of a web application. This modular approach allows for flexible and intuitive interactions, facilitating a user-friendly deployment process. -The backend for the weblets is introduced with the [Javascript Client](../developers/javascript/grid3_javascript_readme.md) which communicates to TFChain over RMB. +The backend for the weblets is introduced with the [Javascript Client](developers@@grid3_javascript_readme) which communicates to TFChain over RMB.

Table of Contents

-- [Wallet Connector](./wallet_connector.md) -- [TFGrid](./tfgrid/tfgrid.md) -- [Deploy](./deploy/deploy.md) -- [Farms](./farms/farms.md) -- [TFChain](./tfchain/tfchain.md) +- [Wallet Connector](wallet_connector.md) +- [TFGrid](tfgrid.md) +- [Deploy](deploy.md) +- [Farms](farms.md) +- [TFChain](tfchain.md) ## Advantages @@ -41,3 +41,12 @@ You can access the ThreeFold Dashboard on different TF Chain networks. - Regarding browser support, we're only supporting Google Chrome browser (and thus Brave browser) at the moment with more browsers to be supported soon. - 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 + +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. + +- [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 diff --git a/collections/dashboard/deploy/applications.md b/collections/dashboard/deploy/applications.md index ca16e19..17a7e2c 100644 --- a/collections/dashboard/deploy/applications.md +++ b/collections/dashboard/deploy/applications.md @@ -8,17 +8,18 @@ Easily deploy your favourite applications on the ThreeFold grid with a click of

Table of Contents

-- [Algorand](../solutions/algorand.md) -- [CasperLabs](../solutions/casper.md) -- [Discourse](../solutions/discourse.md) -- [Funkwhale](../solutions/funkwhale.md) -- [Mattermost](../solutions/mattermost.md) -- [Nextcloud](../solutions/nextcloud.md) -- [Node Pilot](../solutions/nodepilot.md) -- [ownCloud](../solutions/owncloud.md) -- [Peertube](../solutions/peertube.md) -- [Presearch](../solutions/presearch.md) -- [Subsquid](../solutions/subsquid.md) -- [Taiga](../solutions/taiga.md) -- [Umbrel](../solutions/umbrel.md) -- [WordPress](../solutions/wordpress.md) \ No newline at end of file +- [Algorand](algorand.md) +- [CasperLabs](casper.md) +- [Discourse](discourse.md) +- [Funkwhale](funkwhale.md) +- [Mattermost](mattermost.md) +- [Nextcloud](nextcloud.md) +- [Node Pilot](nodepilot.md) +- [ownCloud](owncloud.md) +- [Peertube](peertube.md) +- [Presearch](presearch.md) +- [Static Website](static_website.md) +- [Subsquid](subsquid.md) +- [Taiga](taiga.md) +- [Umbrel](umbrel.md) +- [WordPress](wordpress.md) \ No newline at end of file diff --git a/collections/dashboard/deploy/dedicated_machines.md b/collections/dashboard/deploy/dedicated_machines.md index 24f4dbb..12ba470 100644 --- a/collections/dashboard/deploy/dedicated_machines.md +++ b/collections/dashboard/deploy/dedicated_machines.md @@ -37,7 +37,7 @@ Dedicated machines are 3Nodes that can be reserved and rented entirely by one us - Received Discounts for renting a node on TFGrid internet capacity - 50% for dedicated node (TF Pricing policies) - - A second level discount up to 60% for balance level see [Discount Levels](../../../knowledge_base/cloud/pricing/staking_discount_levels.md) + - A second level discount up to 60% for balance level see [Discount Levels](cloud@@staking_discount_levels) - Discounts are calculated every time the grid bills by checking the available TFT balance on the user wallet and seeing if it is sufficient to receive a discount. As a result, if the user balance drops below the treshold of a given discount, the deployment price increases. ## Usage @@ -90,4 +90,4 @@ When you have decided which node to reserve, click on **Reserve** under the colu ## GPU Support Links -The ThreeFold Manual covers many ways to use a GPU node on the TFGrid. Read [this section](../../system_administrators/gpu/gpu_toc.md) to learn more. \ No newline at end of file +The ThreeFold Manual covers many ways to use a GPU node on the TFGrid. Read [this section](system_administrators@@gpu_toc) to learn more. \ No newline at end of file diff --git a/collections/dashboard/deploy/deploy.md b/collections/dashboard/deploy/deploy.md index a96decc..e8a4375 100644 --- a/collections/dashboard/deploy/deploy.md +++ b/collections/dashboard/deploy/deploy.md @@ -2,26 +2,24 @@ Here you will find everything related to deployments on the ThreeFold grid. This includes: -- Checking the cost of a deployment using [Pricing Calculator](./pricing_calculator.md) -- Finding a node to deploy on using the [Node Finder](./node_finder.md) -- Deploying your desired workload from [Virtual Machines](../solutions/vm_intro.md), [Orchestrators](./orchestrators.md), or [Applictions](./applications.md) -- Renting your own node on the ThreeFold grid from [Dedicated Machines](./dedicated_machines.md) -- Consulting [Your Contracts](./your_contracts.md) on the TFGrid -- Finding or publishing Flists from [Images](./images.md) -- Updating or generating your SSH key from [SSH Keys](./ssh_keys.md) +- Checking the cost of a deployment using [Pricing Calculator](pricing_calculator.md) +- Finding a node to deploy on using the [Node Finder](node_finder.md) +- Deploying your desired workload from [Virtual Machines](vm_intro.md), [Orchestrators](orchestrators.md), or [Applications](applications.md) +- Consulting [Your Contracts](your_contracts.md) on the TFGrid +- Finding or publishing Flists from [Images](images.md) +- Updating or generating your SSH key from [SSH Keys](ssh_keys.md) - ![](../img/sidebar_2.png) + ![](.img/dashboard_deploy.png) *** ## Table of Content -- [Pricing Calculator](./pricing_calculator.md) -- [Node Finder](./node_finder.md) -- [Virtual Machines](../solutions/vm_intro.md) -- [Orchestrators](./orchestrators.md) -- [Dedicated Machines](./dedicated_machines.md) -- [Applications](./applications.md) -- [Your Contracts](./your_contracts.md) -- [Images](./images.md) -- [SSH Keys](./ssh_keys.md) \ No newline at end of file +- [Pricing Calculator](pricing_calculator.md) +- [Node Finder](node_finder.md) +- [Virtual Machines](vm_intro.md) +- [Orchestrators](orchestrators.md) +- [Applications](applications.md) +- [Your Contracts](your_contracts.md) +- [Images](images.md) +- [SSH Keys](ssh_keys.md) \ No newline at end of file diff --git a/collections/dashboard/deploy/node_finder.md b/collections/dashboard/deploy/node_finder.md index dd93347..3d8b662 100644 --- a/collections/dashboard/deploy/node_finder.md +++ b/collections/dashboard/deploy/node_finder.md @@ -2,39 +2,121 @@

Table of Contents

-- [Nodes](#nodes) -- [GPU Support](#gpu-support) +- [Overview](#overview) +- [Filters](#filters) +- [Node Details](#node-details) +- [Gateway Nodes](#gateway-nodes) +- [Dedicated Nodes](#dedicated-nodes) + - [Reservation](#reservation) + - [Billing \& Pricing](#billing--pricing) + - [Discounts](#discounts) +- [GPU Nodes](#gpu-nodes) + - [GPU Support](#gpu-support) + - [GPU Support Links](#gpu-support-links) *** -## Nodes +## Overview -The Node Finder page provides a more detailed view for the nodes available on the ThreeFold grid With detailed information and statistics about any of the available nodes. +The Node Finder page provides a more detailed view for the nodes available on the ThreeFold grid with detailed information and statistics about nodes. -![](../img/nodes.png) +![](../img/dashboard_node_finder.png) -You can get a node with the desired specifications using the filters available in the nodes page. +## Filters -![](../img/nodes_filters.png) +You can use the filters to narrow your search and find a node with the desired specifications. -You can see all of the node details by clicking on a node record. +![](../img/dashboard_node_finder_filters_1.png) -![](../img/nodes_details.png) +![](../img/dashboard_node_finder_filters_2.png) -## GPU Support +You can use the toggle buttons to filter your search. -![GPU support](../img/gpu_filter.png) +- Dedicated nodes +- Gateways nodes +- GPU nodes +- Rentable nodes -- A new filter for GPU supported node is now available on the Nodes page. -- GPU count -- Filtering capabilities based on the model / device +You can choose a location for your node, with filters such as region and country. This can be highly useful for edge cloud projects. -On the details pages is shown the card information and its status (`reserved` or `available`) also the ID that’s needed to be used during deployments is easily accessible and has a copy to clipboard button. +Filtering nodes by their status (up, down, standby) can also improve your search. -![GPU details](../img/gpu_details.png) +If your deployment has some minimum requirements, you can easily filter relevant nodes with the different resource filters. -Here’s an example of how it looks in case of reserved +## Node Details -![GPU details](../img/gpu_details_reserved.png) +You can see all of the node details when you click on its row. -The TF Dashboard is where to reserve the nodes the farmer should be able to set the extra fees on the form and the user also should be able to reserve and get the details of the node (cost including the extrafees, GPU informations). +![](../img/dashboard_node_finder_node_view.png) + +Note that the network speed test displayed in the Node Finder is updated every 6 hours. + +## Gateway Nodes + +To see only gateway nodes, enable **Gateways** in the filters. + +![](../img/dashboard_node_finder_gateways.png) + +Note that the network speed test displayed in the Node Finder is updated every 6 hours. + +## Dedicated Nodes + +Dedicated machines are 3Nodes that can be reserved and rented entirely by one user. The user can thus reserve an entire node and use it exclusively to deploy solutions. This feature is ideal for users who want to host heavy deployments with the benefits of high reliability and cost effectiveness. + +To see only dedicated nodes, enable **Dedicated Nodes** in the filters. + +![](../img/dashboard_node_finder_dedicated.png) + +### Reservation + +When you have decided which node to reserve, you can easily rent it from the Node Finder page. + +To reserve a node, simply click on `Reserve` on the node row. + +![](../img/dashboard_node_finder_dedicated_reserve.png) + +To unreserve a node, simply click on `Unreserve` on the node row. + +![](../img/dashboard_node_finder_dedicated_unreserve.png) + +Note that once you've rented a dedicated node that has a GPU, you can deploy GPU workloads. + +### Billing & Pricing + +- Once a node is rented, there is a fixed charge billed to the tenant regardless of deployed workloads. +- Any subsequent NodeContract deployed on a node where a rentContract is active (and the same user is creating the nodeContracts) can be excluded from billing (apart from public ip and network usage). +- Billing rates are calculated hourly on the TFGrid. + - While some of the documentation mentions a monthly price, the chain expresses pricing per hour. The monthly price shown within the manual is offered as a convenience to users, as it provides a simple way to estimate costs. + +### Discounts + +- Received Discounts for renting a node on TFGrid internet capacity + - 50% for dedicated node (TF Pricing policies) + - A second level discount up to 60% for balance level see [Discount Levels](cloud@@staking_discount_levels) +- Discounts are calculated every time the grid bills by checking the available TFT balance on the user wallet and seeing if it is sufficient to receive a discount. As a result, if the user balance drops below the treshold of a given discount, the deployment price increases. + +## GPU Nodes + +To see only nodes with GPU, enable **GPU Node** in the filters. + +![](../img/dashboard_node_finder_gpu.png) + +This will filter nodes and only show nodes with GPU. You can see several information such as the model of the GPU and a GPU score. + +![](../img/dashboard_node_finder_gpu2.png) + +You can click on a given GPU node and see the GPU details. + +![](../img/dashboard_node_finder_gpu3.png) + +The ID that’s needed to be used during deployments is easily accessible and has a button to copy to the clipboard. + +### GPU Support + +To use a GPU on the TFGrid, users need to rent a dedicated node. Once they have rented a dedicated node equipped with a GPU, users can deploy workloads on their dedicated GPU node. + + + +### GPU Support Links + +The ThreeFold Manual covers many ways to use a GPU node on the TFGrid. Read [this section](system_administrators@@gpu_toc) to learn more. \ No newline at end of file diff --git a/collections/dashboard/deploy/orchestrators.md b/collections/dashboard/deploy/orchestrators.md index 47282a6..eb5c8c8 100644 --- a/collections/dashboard/deploy/orchestrators.md +++ b/collections/dashboard/deploy/orchestrators.md @@ -8,7 +8,7 @@ Deploy your favorite orchestrating services and enjoy the seamless coordination ## Table of Contnet -- [Kubernetes](../solutions/k8s.md) -- [Caprover](../solutions/caprover.md) - - [Caprover Admin](../solutions/caprover_admin.md) - - [Caprover Worker](../solutions/caprover_worker.md) \ No newline at end of file +- [Kubernetes](k8s.md) +- [Caprover](caprover.md) + - [Caprover Admin](caprover_admin.md) + - [Caprover Worker](caprover_worker.md) \ No newline at end of file diff --git a/collections/dashboard/deploy/vm.md b/collections/dashboard/deploy/vm.md index 5a22576..fdc0933 100644 --- a/collections/dashboard/deploy/vm.md +++ b/collections/dashboard/deploy/vm.md @@ -8,6 +8,6 @@ On the TFGrid, you can deploy both micro and full virtual machines.

Table of Contents

-- [Micro and Full VM Differences ](../solutions/vm_differences.md) -- [Full Virtual Machine](../solutions/fullVm.md) -- [Micro Virtual Machine](../solutions/vm.md) +- [Micro and Full VM Differences ](vm_differences.md) +- [Full Virtual Machine](fullvm.md) +- [Micro Virtual Machine](microvm.md) diff --git a/collections/dashboard/farms/farms.md b/collections/dashboard/farms/farms.md index 7faedd3..11dc72d 100644 --- a/collections/dashboard/farms/farms.md +++ b/collections/dashboard/farms/farms.md @@ -2,10 +2,10 @@ Here you will find everything farming related. this includes: -- Monitoring, creating, and updating your farms from the [Your Farms](./your_farms.md) section where you can also check your nodes and update multiple things like the public configuration and extra fees of the node. -- Exploring and finding farms that are available on the ThreeFold grid from the [Farm Finder](./farms_finder.md) section. -- Generating your own boot device for your system from the [Node Installer](./node_installer.md) section. -- Estimating and calculating potential earnings from farming on the ThreeFold Grid from the [Simulator](./simulator.md) section. +- Monitoring, creating, and updating your farms from the [Your Farms](your_farms.md) section where you can also check your nodes and update multiple things like the public configuration and extra fees of the node. +- Exploring and finding farms that are available on the ThreeFold grid from the [Farm Finder](farms_finder.md) section. +- Generating your own boot device for your system from the [Node Installer](node_installer.md) section. +- Estimating and calculating potential earnings from farming on the ThreeFold Grid from the [Simulator](simulator.md) section. ![](../img/sidebar_3.png) @@ -13,7 +13,7 @@ Here you will find everything farming related. this includes: ## Table of Content -- [Your Farms](./your_farms.md) -- [Farm Finder](./farms_finder.md) -- [Node Installer](./node_installer.md) -- [Simulator](./simulator.md) \ No newline at end of file +- [Your Farms](your_farms.md) +- [Farm Finder](farms_finder.md) +- [Node Installer](node_installer.md) +- [Simulator](simulator.md) \ No newline at end of file diff --git a/collections/dashboard/farms/your_farms.md b/collections/dashboard/farms/your_farms.md index 8afc756..d1e1ae2 100644 --- a/collections/dashboard/farms/your_farms.md +++ b/collections/dashboard/farms/your_farms.md @@ -77,7 +77,7 @@ In a first phase, farming of tokens still results in payout on the Stellar netwo ![ ](../img/dashboard_farms_stellar_address.png) -You can read about different ways to store TFT [here](../../threefold_token/storing_tft/storing_tft.md). Make sure to use a Stellar wallet for your farming rewards. +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 @@ -85,7 +85,7 @@ Once you know your farmID, you can set up your node on TFGrid3. Click on `Bootst ![dashboard_bootstrap_farm](../img/dashboard_bootstrap_farm.png) -Read more Zero-OS bootstrap image [here](../../farmers/3node_building/2_bootstrap_image.md). +Read more Zero-OS bootstrap image [here](farmers@@2_bootstrap_image). ### Additional information diff --git a/collections/dashboard/home.md b/collections/dashboard/home.md index d14fd9a..2f8bcad 100644 --- a/collections/dashboard/home.md +++ b/collections/dashboard/home.md @@ -10,15 +10,15 @@ The ThreeFold Dashboard is a dynamic environment designed for both seasoned deve In the context of the Dashboard, a weblet is a compiled JavaScript web component that can be effortlessly embedded within the HTML page of a web application. This modular approach allows for flexible and intuitive interactions, facilitating a user-friendly deployment process. -The backend for the weblets is introduced with the [Javascript Client](../javascript/grid3_javascript_readme.md) which communicates to TFChain over RMB. +The backend for the weblets is introduced with the [Javascript Client](developers@@grid3_javascript_readme) which communicates to TFChain over RMB.

Table of Contents

-- [Wallet Connector](./wallet_connector.md) -- [TFGrid](./tfgrid/tfgrid.md) -- [Deploy](./deploy/deploy.md) -- [Farms](./farms/farms.md) -- [TFChain](./tfchain/tfchain.md) +- [Wallet Connector](wallet_connector.md) +- [TFGrid](tfgrid.md) +- [Deploy](deploy.md) +- [Farms](farms.md) +- [TFChain](tfchain.md) ## Advantages diff --git a/collections/dashboard/img/dashboard_balances.png b/collections/dashboard/img/dashboard_balances.png new file mode 100644 index 0000000..6251033 Binary files /dev/null and b/collections/dashboard/img/dashboard_balances.png differ diff --git a/collections/dashboard/img/dashboard_deploy.png b/collections/dashboard/img/dashboard_deploy.png new file mode 100644 index 0000000..7aa56ef Binary files /dev/null and b/collections/dashboard/img/dashboard_deploy.png differ diff --git a/collections/dashboard/img/dashboard_node_finder.png b/collections/dashboard/img/dashboard_node_finder.png new file mode 100644 index 0000000..bafd53f Binary files /dev/null and b/collections/dashboard/img/dashboard_node_finder.png differ diff --git a/collections/dashboard/img/dashboard_node_finder_dedicated.png b/collections/dashboard/img/dashboard_node_finder_dedicated.png new file mode 100644 index 0000000..d1e817a Binary files /dev/null and b/collections/dashboard/img/dashboard_node_finder_dedicated.png differ diff --git a/collections/dashboard/img/dashboard_node_finder_dedicated_reserve.png b/collections/dashboard/img/dashboard_node_finder_dedicated_reserve.png new file mode 100644 index 0000000..61a7cdc Binary files /dev/null and b/collections/dashboard/img/dashboard_node_finder_dedicated_reserve.png differ diff --git a/collections/dashboard/img/dashboard_node_finder_dedicated_unreserve.png b/collections/dashboard/img/dashboard_node_finder_dedicated_unreserve.png new file mode 100644 index 0000000..4ce3c36 Binary files /dev/null and b/collections/dashboard/img/dashboard_node_finder_dedicated_unreserve.png differ diff --git a/collections/dashboard/img/dashboard_node_finder_filters.png b/collections/dashboard/img/dashboard_node_finder_filters.png new file mode 100644 index 0000000..2c6735b Binary files /dev/null and b/collections/dashboard/img/dashboard_node_finder_filters.png differ diff --git a/collections/dashboard/img/dashboard_node_finder_filters_1.png b/collections/dashboard/img/dashboard_node_finder_filters_1.png new file mode 100644 index 0000000..2f36cb3 Binary files /dev/null and b/collections/dashboard/img/dashboard_node_finder_filters_1.png differ diff --git a/collections/dashboard/img/dashboard_node_finder_filters_2.png b/collections/dashboard/img/dashboard_node_finder_filters_2.png new file mode 100644 index 0000000..6b99372 Binary files /dev/null and b/collections/dashboard/img/dashboard_node_finder_filters_2.png differ diff --git a/collections/dashboard/img/dashboard_node_finder_gateways.png b/collections/dashboard/img/dashboard_node_finder_gateways.png new file mode 100644 index 0000000..38a0fdc Binary files /dev/null and b/collections/dashboard/img/dashboard_node_finder_gateways.png differ diff --git a/collections/dashboard/img/dashboard_node_finder_gpu.png b/collections/dashboard/img/dashboard_node_finder_gpu.png new file mode 100644 index 0000000..1a9ff2d Binary files /dev/null and b/collections/dashboard/img/dashboard_node_finder_gpu.png differ diff --git a/collections/dashboard/img/dashboard_node_finder_gpu2.png b/collections/dashboard/img/dashboard_node_finder_gpu2.png new file mode 100644 index 0000000..8158dfc Binary files /dev/null and b/collections/dashboard/img/dashboard_node_finder_gpu2.png differ diff --git a/collections/dashboard/img/dashboard_node_finder_gpu3.png b/collections/dashboard/img/dashboard_node_finder_gpu3.png new file mode 100644 index 0000000..70a5931 Binary files /dev/null and b/collections/dashboard/img/dashboard_node_finder_gpu3.png differ diff --git a/collections/dashboard/img/dashboard_node_finder_node_view.png b/collections/dashboard/img/dashboard_node_finder_node_view.png new file mode 100644 index 0000000..215074d Binary files /dev/null and b/collections/dashboard/img/dashboard_node_finder_node_view.png differ diff --git a/collections/dashboard/img/dashboard_terms_conditions.png b/collections/dashboard/img/dashboard_terms_conditions.png new file mode 100644 index 0000000..991a720 Binary files /dev/null and b/collections/dashboard/img/dashboard_terms_conditions.png differ diff --git a/collections/dashboard/img/dashboard_walletconnector_info.png b/collections/dashboard/img/dashboard_walletconnector_info.png new file mode 100644 index 0000000..f74b033 Binary files /dev/null and b/collections/dashboard/img/dashboard_walletconnector_info.png differ diff --git a/collections/dashboard/img/dashboard_walletconnector_window.png b/collections/dashboard/img/dashboard_walletconnector_window.png new file mode 100644 index 0000000..f453aff Binary files /dev/null and b/collections/dashboard/img/dashboard_walletconnector_window.png differ diff --git a/collections/dashboard/solutions/algorand.md b/collections/dashboard/solutions/algorand.md index 21c25c7..5660fbd 100644 --- a/collections/dashboard/solutions/algorand.md +++ b/collections/dashboard/solutions/algorand.md @@ -19,7 +19,7 @@ ## Prerequisites -- Make sure you have a [wallet](../wallet_connector.md) +- Make sure you have a [wallet](wallet_connector.md) - From the sidebar click on **Applications** - Click on **Algorand** diff --git a/collections/dashboard/solutions/basic_environments_readme.md b/collections/dashboard/solutions/basic_environments_readme.md index d1bd532..a98cae4 100644 --- a/collections/dashboard/solutions/basic_environments_readme.md +++ b/collections/dashboard/solutions/basic_environments_readme.md @@ -2,10 +2,10 @@

Table of Contents

-- [Virtual Machines](./vm_intro.md) - - [Micro and Full VM Differences ](./vm_differences.md) - - [Full Virtual Machine](./fullVm.md) - - [Micro Virtual Machine](./vm.md) -- [Kubernetes](./k8s.md) -- [NixOS MicroVM](./nixos_micro.md) -- [Add a Domain](./add_domain.md) \ No newline at end of file +- [Virtual Machines](vm_intro.md) + - [Micro and Full VM Differences ](vm_differences.md) + - [Full Virtual Machine](fullvm.md) + - [Micro Virtual Machine](microvm.md) +- [Kubernetes](k8s.md) +- [NixOS MicroVM](nixos_micro.md) +- [Add a Domain](add_domain.md) \ No newline at end of file diff --git a/collections/dashboard/solutions/caprover.md b/collections/dashboard/solutions/caprover.md index 32034d7..99c295b 100644 --- a/collections/dashboard/solutions/caprover.md +++ b/collections/dashboard/solutions/caprover.md @@ -38,7 +38,7 @@ It has following benefits : ## Requirements -- Make sure you have a [wallet](../wallet_connector.md) +- Make sure you have a [wallet](wallet_connector.md) - From the sidebar click on **Orchestrators** - Click on **CapRover** @@ -161,5 +161,5 @@ Make sure that you've point a wildcard DNS entry to your CapRover IP address (e. ## How to Work with CapRover -* [CapRover Admin Tutorial](./caprover_admin.md) -* [CapRover Worker Tutorial](./caprover_worker.md) +* [CapRover Admin Tutorial](caprover_admin.md) +* [CapRover Worker Tutorial](caprover_worker.md) diff --git a/collections/dashboard/solutions/casper.md b/collections/dashboard/solutions/casper.md index 5071c09..9d10e8a 100644 --- a/collections/dashboard/solutions/casper.md +++ b/collections/dashboard/solutions/casper.md @@ -11,7 +11,7 @@ [Casper Network](https://casperlabs.io/) is a blockchain protocol built from the ground up to remain true to core Web3 principles and adapt to the needs of our evolving world. -- Make sure you have a [wallet](../wallet_connector.md) +- Make sure you have a [wallet](wallet_connector.md) - From the sidebar click on **Applications** - Click on **Casperlabs** diff --git a/collections/dashboard/solutions/discourse.md b/collections/dashboard/solutions/discourse.md index 9bdff3c..3ffa093 100644 --- a/collections/dashboard/solutions/discourse.md +++ b/collections/dashboard/solutions/discourse.md @@ -11,7 +11,7 @@ [Discourse](https://www.discourse.org/) is the 100% open source discussion platform built for the next decade of the Internet. Use it as a mailing list, discussion forum, long-form chat room, and more! -- Make sure you have a [wallet](../wallet_connector.md) +- Make sure you have a [wallet](wallet_connector.md) - From the sidebar click on **Applications** - Click on **Discourse** diff --git a/collections/dashboard/solutions/fullvm.md b/collections/dashboard/solutions/fullvm.md index 59b01e6..56261a6 100644 --- a/collections/dashboard/solutions/fullvm.md +++ b/collections/dashboard/solutions/fullvm.md @@ -21,7 +21,7 @@ We present the steps to deploy a full VM on the TFGrid. Deploy a new full virtual machine on the Threefold Grid -- Make sure you have a [wallet](../wallet_connector.md) +- Make sure you have a [wallet](wallet_connector.md) - From the sidebar click on **Applications** - Click on **Full Virtual Machine** @@ -43,7 +43,7 @@ Deploy a new full virtual machine on the Threefold Grid - `Myceluim` 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](../../dashboard/deploy/dedicated_machines.md) + - To deploy a Full VM with GPU, you first need to [rent a dedicated node](node_finder.md#dedicated-nodes) - `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/funkwhale.md b/collections/dashboard/solutions/funkwhale.md index 8940728..c095388 100644 --- a/collections/dashboard/solutions/funkwhale.md +++ b/collections/dashboard/solutions/funkwhale.md @@ -15,7 +15,7 @@ Funkwhale is a community-driven project that lets you listen and share music and ## Prerequisites -- Make sure you have a [wallet](../wallet_connector.md) +- Make sure you have a [wallet](wallet_connector.md) - From the sidebar click on **Applications** - Click on **Funkwhale** diff --git a/collections/dashboard/solutions/img/solutions_staticwebsite.png b/collections/dashboard/solutions/img/solutions_staticwebsite.png new file mode 100644 index 0000000..33c51d6 Binary files /dev/null and b/collections/dashboard/solutions/img/solutions_staticwebsite.png differ diff --git a/collections/dashboard/solutions/img/staticwebsite_list.png b/collections/dashboard/solutions/img/staticwebsite_list.png new file mode 100644 index 0000000..94fd8ab Binary files /dev/null and b/collections/dashboard/solutions/img/staticwebsite_list.png differ diff --git a/collections/dashboard/solutions/k8s.md b/collections/dashboard/solutions/k8s.md index 11197ec..44a96c3 100644 --- a/collections/dashboard/solutions/k8s.md +++ b/collections/dashboard/solutions/k8s.md @@ -19,7 +19,7 @@ On the TF grid, Kubernetes clusters can be deployed out of the box. We have impl ## Prerequisites -- Make sure you have a [wallet](../wallet_connector.md) +- Make sure you have a [wallet](wallet_connector.md) - From the sidebar click on **Applications** - Click on **Kubernetes** diff --git a/collections/dashboard/solutions/mattermost.md b/collections/dashboard/solutions/mattermost.md index 0e9528c..cbd7f99 100644 --- a/collections/dashboard/solutions/mattermost.md +++ b/collections/dashboard/solutions/mattermost.md @@ -14,7 +14,7 @@ ## Prerequisites -- Make sure you have a [wallet](../wallet_connector.md) +- Make sure you have a [wallet](wallet_connector.md) - From the sidebar click on **Applications** - Click on **Mattermost** diff --git a/collections/dashboard/solutions/vm.md b/collections/dashboard/solutions/microvm.md similarity index 96% rename from collections/dashboard/solutions/vm.md rename to collections/dashboard/solutions/microvm.md index 5e8db2f..0eec151 100644 --- a/collections/dashboard/solutions/vm.md +++ b/collections/dashboard/solutions/microvm.md @@ -16,7 +16,7 @@ We present the steps to deploy a micro VM on the TFGrid. Deploy a new virtual machine on the Threefold Grid -- Make sure you have a [wallet](../wallet_connector.md) +- Make sure you have a [wallet](wallet_connector.md) - From the sidebar click on **Solutions** - Click on **Micro Virtual Machine** diff --git a/collections/dashboard/solutions/nextcloud.md b/collections/dashboard/solutions/nextcloud.md index d25dd79..d09b077 100644 --- a/collections/dashboard/solutions/nextcloud.md +++ b/collections/dashboard/solutions/nextcloud.md @@ -36,7 +36,7 @@ Nextcloud provides functionality similar to Dropbox, Office 365 or Google Drive # Prerequisites -- Make sure you have a [wallet](../wallet_connector.md) +- Make sure you have a [wallet](wallet_connector.md) - From the sidebar click on **Applications** - Click on **Nextcloud** @@ -63,7 +63,7 @@ If you're not sure and just want the easiest, most affordable option, skip the p * **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](../deploy/dedicated_machines.md) and/or a certified node, select the corresponding option +* 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` diff --git a/collections/dashboard/solutions/nixos_micro.md b/collections/dashboard/solutions/nixos_micro.md index 41f8932..da4574c 100644 --- a/collections/dashboard/solutions/nixos_micro.md +++ b/collections/dashboard/solutions/nixos_micro.md @@ -26,7 +26,7 @@ For more information on Nix, you can read the [Nix Reference Manual](https://nix * [Devnet](https://dashboard.dev.grid.tf) * [QAnet](https://dashboard.qa.grid.tf) -* Make sure you have a [wallet](../wallet_connector.md) +* Make sure you have a [wallet](wallet_connector.md) * From the sidebar click on **Solutions** * Click on **Micro Virtual Machine** to start your NixOS MicroVM Deployment @@ -55,7 +55,7 @@ We now present the main steps to properly configure your NixOS MicroVM running o * Once your configured the parameters, you can deploy the MicroVM. -If you need more information on how to SSH into your deployment, read [this section](../../system_administrators/getstarted/tfgrid3_getstarted.md) of the TF Manual. +If you need more information on how to SSH into your deployment, read [this section](system_administrators@@tfgrid3_getstarted) of the TF Manual. diff --git a/collections/dashboard/solutions/nodepilot.md b/collections/dashboard/solutions/nodepilot.md index 1fc212a..aa8da14 100644 --- a/collections/dashboard/solutions/nodepilot.md +++ b/collections/dashboard/solutions/nodepilot.md @@ -14,7 +14,7 @@ This is a simple instance of upstream [Node Pilot](https://nodepilot.tech). ## Prerequisites -- Make sure you have a [wallet](../wallet_connector.md) +- Make sure you have a [wallet](wallet_connector.md) - From the sidebar click on **Applications** - Click on **Node Pilot** diff --git a/collections/dashboard/solutions/owncloud.md b/collections/dashboard/solutions/owncloud.md index 16726a0..1ef716d 100644 --- a/collections/dashboard/solutions/owncloud.md +++ b/collections/dashboard/solutions/owncloud.md @@ -19,7 +19,7 @@ ## Prerequisites -- Make sure you have a [wallet](../wallet_connector.md) +- Make sure you have a [wallet](wallet_connector.md) - From the sidebar click on **Solutions** - Click on **ownCloud** diff --git a/collections/dashboard/solutions/peertube.md b/collections/dashboard/solutions/peertube.md index 79a74ee..f9fc947 100644 --- a/collections/dashboard/solutions/peertube.md +++ b/collections/dashboard/solutions/peertube.md @@ -14,7 +14,7 @@ ## Prerequisites -- Make sure you have a [wallet](../wallet_connector.md) +- Make sure you have a [wallet](wallet_connector.md) - From the sidebar click on **Applications** - Click on **Peertube** diff --git a/collections/dashboard/solutions/presearch.md b/collections/dashboard/solutions/presearch.md index c0c3f55..a1f2d65 100644 --- a/collections/dashboard/solutions/presearch.md +++ b/collections/dashboard/solutions/presearch.md @@ -18,7 +18,7 @@ ## Prerequisites -- Make sure you have a [wallet](../wallet_connector.md) +- Make sure you have a [wallet](wallet_connector.md) - From the sidebar click on **Applications** - Click on **Presearch** diff --git a/collections/dashboard/solutions/solutions.md b/collections/dashboard/solutions/solutions.md index 60732e3..bc592b4 100644 --- a/collections/dashboard/solutions/solutions.md +++ b/collections/dashboard/solutions/solutions.md @@ -4,26 +4,26 @@ This section provides a non-code easy way to deploy a whole solution on the TFGr

Table of Contents

-- [Basic Environments](./basic_environments_readme.md) - - [Virtual Machines](./vm_intro.md) - - [Micro and Full VM Differences](./vm_differences.md) - - [Full Virtual Machine](./fullVm.md) - - [Micro Virtual Machine](./vm.md) - - [Kubernetes](./k8s.md) - - [NixOS MicroVM](./nixos_micro.md) -- [Ready Community Solutions](./ready_community_readme.md) - - [Caprover](./caprover.md) - - [Funkwhale](./funkwhale.md) - - [Peertube](./peertube.md) - - [Taiga](./taiga.md) - - [Owncloud](./owncloud.md) - - [Nextcloud](./nextcloud.md) - - [Discourse](./discourse.md) - - [Mattermost](./mattermost.md) - - [Presearch](./presearch.md) - - [CasperLabs](./casper.md) - - [Node Pilot](./nodepilot.md) - - [Subsquid](./subsquid.md) - - [Algorand](./algorand.md) - - [Wordpress](./wordpress.md) - - [Umbrel](./umbrel.md) +- [Basic Environments](basic_environments_readme.md) + - [Virtual Machines](vm_intro.md) + - [Micro and Full VM Differences](vm_differences.md) + - [Full Virtual Machine](fullvm.md) + - [Micro Virtual Machine](microvm.md) + - [Kubernetes](k8s.md) + - [NixOS MicroVM](nixos_micro.md) +- [Ready Community Solutions](ready_community_readme.md) + - [Caprover](caprover.md) + - [Funkwhale](funkwhale.md) + - [Peertube](peertube.md) + - [Taiga](taiga.md) + - [Owncloud](owncloud.md) + - [Nextcloud](nextcloud.md) + - [Discourse](discourse.md) + - [Mattermost](mattermost.md) + - [Presearch](presearch.md) + - [CasperLabs](casper.md) + - [Node Pilot](nodepilot.md) + - [Subsquid](subsquid.md) + - [Algorand](algorand.md) + - [Wordpress](wordpress.md) + - [Umbrel](umbrel.md) diff --git a/collections/dashboard/solutions/static_website.md b/collections/dashboard/solutions/static_website.md new file mode 100644 index 0000000..4f57b07 --- /dev/null +++ b/collections/dashboard/solutions/static_website.md @@ -0,0 +1,53 @@ +

Static Website

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Prerequisites](#prerequisites) +- [Deployment](#deployment) + +--- + +## Introduction + +Static Website is an application where a user provides a GitHub repository URL for the files to be automatically served online using Caddy. + +## Prerequisites + +- Make sure you have a [wallet](wallet_connector.md) +- From the sidebar click on **Applications** +- Click on **Static Website** + +## Deployment + +![ ](./img/solutions_staticwebsite.png) + +- Enter an instance name + +- Enter a GitHub repository URL that needs to be cloned + +- Enter the title for the cloned repository + +- 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 + +- `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 + - Note: You can select a specific node with manual selection +- `Custom Domain` flag allows the user to use a custom domain +- Choose a gateway node to deploy your static website + +Once this is done, you can see a list of all of your deployed instances: + +![ ](./img/staticwebsite_list.png) + +Click on the button **Visit** under **Actions** to go to your static website! diff --git a/collections/dashboard/solutions/subsquid.md b/collections/dashboard/solutions/subsquid.md index 063ff35..5a59b44 100644 --- a/collections/dashboard/solutions/subsquid.md +++ b/collections/dashboard/solutions/subsquid.md @@ -14,7 +14,7 @@ ## Prerequisites -- Make sure you have a [wallet](../wallet_connector.md) +- Make sure you have a [wallet](wallet_connector.md) - From the sidebar click on **Applications** - Click on **Subsquid** diff --git a/collections/dashboard/solutions/taiga.md b/collections/dashboard/solutions/taiga.md index 4291e12..17d7e3c 100644 --- a/collections/dashboard/solutions/taiga.md +++ b/collections/dashboard/solutions/taiga.md @@ -14,7 +14,7 @@ ## Prerequisites -- Make sure you have a [wallet](../wallet_connector.md) +- Make sure you have a [wallet](wallet_connector.md) - From the sidebar click on **Applications** - Click on **Taiga** diff --git a/collections/dashboard/solutions/umbrel.md b/collections/dashboard/solutions/umbrel.md index 21075ca..dd9bd5d 100644 --- a/collections/dashboard/solutions/umbrel.md +++ b/collections/dashboard/solutions/umbrel.md @@ -13,7 +13,7 @@ ## Prerequisites -- Make sure you have a [wallet](../wallet_connector.md) +- Make sure you have a [wallet](wallet_connector.md) - From the sidebar click on **Applications** - Click on **Umbrel** diff --git a/collections/dashboard/solutions/vm_intro.md b/collections/dashboard/solutions/vm_intro.md index d9cc0a7..b3544d3 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

-- [Micro and Full VM Differences ](./vm_differences.md) -- [Full Virtual Machine](./fullVm.md) -- [Micro Virtual Machine](./vm.md) -- [Nixos MicroVM](./nixos_micro.md) -- [Add a Domain](./add_domain.md) \ No newline at end of file +- [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 diff --git a/collections/dashboard/solutions/wordpress.md b/collections/dashboard/solutions/wordpress.md index 57f2938..c8c72d4 100644 --- a/collections/dashboard/solutions/wordpress.md +++ b/collections/dashboard/solutions/wordpress.md @@ -24,7 +24,7 @@ # Prerequisites -- Make sure you have a [wallet](../wallet_connector.md) +- Make sure you have a [wallet](wallet_connector.md) - From the sidebar click on **Solutions** - Click on **Wordpress** diff --git a/collections/dashboard/tfchain/tf_dao.md b/collections/dashboard/tfchain/tf_dao.md index 648280b..f582491 100644 --- a/collections/dashboard/tfchain/tf_dao.md +++ b/collections/dashboard/tfchain/tf_dao.md @@ -8,12 +8,13 @@ The TFChain DAO (i.e. Decentralized Autonomous Organization) feature integrates - [Prerequisites to Vote](#prerequisites-to-vote) - [How to Vote for a Proposal](#how-to-vote-for-a-proposal) - [The Goal of the Threefold DAO](#the-goal-of-the-threefold-dao) +- [Voting Weight](#voting-weight) *** ## An Introduction to the DAO concept -[A decentralized autonomous organization (DAO)](../../../knowledge_base/about/dao/dao.md) is an entity with no central leadership. Decisions get made from the bottom-up, governed by a community organized around a specific set of rules enforced on a blockchain. +[A decentralized autonomous organization (DAO)](about@@dao) is an entity with no central leadership. Decisions get made from the bottom-up, governed by a community organized around a specific set of rules enforced on a blockchain. DAOs are internet-native organizations collectively owned and managed by their members. They have built-in treasuries that are only accessible with the approval of their members. Decisions are made via proposals the group votes on during a specified period. @@ -23,10 +24,10 @@ DAOs are internet-native organizations collectively owned and managed by their m Voting for a DAO proposal is very simple. You first need to meet certain requirements to be able to vote. -- Have a [Threefold farm](../farms/farms.md) -- Have at least one active [3node server](../../farmers/3node_building/3node_building.md) on the farm +- Have a [Threefold farm](farms.md) +- Have at least one active [3node server](farmers@@3node_building) on the farm - If you created your farm with the Threefold Connect app - - [Import your farm on the Threefold Dashboard](../../threefold_token/storing_tft/tf_connect_app.md#move-farm-from-the-tf-connect-app-to-the-tf-portal-polkadotjs) + - [Import your farm on the Threefold Dashboard](threefold_token@@tf_connect_app.md#move-farm-from-the-tf-connect-app-to-the-tf-portal-polkadotjs) @@ -39,3 +40,17 @@ To vote, you need to log into your Threefold Dashboard account, go to **TF DAO** The goal of DAO voting system is to gather the thoughts and will of the Threefold community and build projects that are aligned with the ethos of the project. We encourage anyone to share their ideas. Who knows? Your sudden spark of genius might lead to an accepted proposal on the Threefold DAO! + +## Voting Weight + +The DAO votes are weighted as follows: + +- Get all linked farms to the account +- Get all nodes per farm +- Get compute and storage units per node (CU and SU) +- Compute the weight of a farm: + ``` + 2 * (sum of CU of all nodes) + (sum of SU of all nodes) + ``` + +Voting weights are tracked per farm to keep it easy and traceable. Thus, if an account has multiple farms, the vote will be registered per farm. \ No newline at end of file diff --git a/collections/dashboard/tfchain/tfchain.md b/collections/dashboard/tfchain/tfchain.md index bda6640..d94c90f 100644 --- a/collections/dashboard/tfchain/tfchain.md +++ b/collections/dashboard/tfchain/tfchain.md @@ -2,19 +2,19 @@ Here you will find everything related to the ThreeFold chain. this includes: -- Detailed account information from the [Your Profile](./your_profile.md) section. -- Information about what DAO is and how to vote on DAO proposals from the [TF DAO](./tf_dao.md) section. -- Transferring TFTs on different chains from the [TF Token Bridge](./tf_token_bridge.md) section. -- Transferring TFTs on the TFChain from the [TF Token Transfer](./tf_token_transfer.md) section. -- getting miniting reports from the [TF Minting Reports](./tf_minting_reports.md) section. +- Detailed account information from the [Your Profile](your_profile.md) section. +- Information about what DAO is and how to vote on DAO proposals from the [TF DAO](tf_dao.md) section. +- Transferring TFTs on different chains from the [TF Token Bridge](tf_token_bridge.md) section. +- Transferring TFTs on the TFChain from the [TF Token Transfer](tf_token_transfer.md) section. +- getting miniting reports from the [TF Minting Reports](tf_minting_reports.md) section. ![](../img/sidebar_4.png) *** ## Table of Content -- [Your Profile](./your_profile.md) -- [TF DAO](./tf_dao.md) -- [TF Token Bridge](./tf_token_bridge.md) -- [TF Token Transfer](./tf_token_transfer.md) -- [TF Minting Reports](./tf_minting_reports.md) \ No newline at end of file +- [Your Profile](your_profile.md) +- [TF DAO](tf_dao.md) +- [TF Token Bridge](tf_token_bridge.md) +- [TF Token Transfer](tf_token_transfer.md) +- [TF Minting Reports](tf_minting_reports.md) \ No newline at end of file diff --git a/collections/dashboard/tfchain/your_profile.md b/collections/dashboard/tfchain/your_profile.md index 091cffe..4299c03 100644 --- a/collections/dashboard/tfchain/your_profile.md +++ b/collections/dashboard/tfchain/your_profile.md @@ -10,4 +10,4 @@ The twin details consists of three main items. - `Address` Your public address on the ThreeFold chain. - `Relay` A relay is a component that facilitates the reliable and secure transfer of messages between different entities within the ThreeFold ecosystem. -To create a twin check the [Wallet Connector](../wallet_connector.md) Section. \ No newline at end of file +To create a twin check the [Wallet Connector](wallet_connector.md) Section. \ No newline at end of file diff --git a/collections/dashboard/tfgrid/tfgrid.md b/collections/dashboard/tfgrid/tfgrid.md index 2b06d9b..f9f2dde 100644 --- a/collections/dashboard/tfgrid/tfgrid.md +++ b/collections/dashboard/tfgrid/tfgrid.md @@ -2,9 +2,9 @@ Check and use all things related to the threefold grid. Including: -- The status of ThreeFold services from the [Grid Status](./grid_status.md) website. -- The statistics of all nodes that are available on the ThreeFold grid from [Node Statistics](./node_statistics.md). -- The health and status of Zero-OS nodes that are available on the ThreeFold grid from [Node Monitoring](./node_monitoring.md). +- The status of ThreeFold services from the [Grid Status](grid_status.md) website. +- The statistics of all nodes that are available on the ThreeFold grid from [Node Statistics](node_statistics.md). +- The health and status of Zero-OS nodes that are available on the ThreeFold grid from [Node Monitoring](node_monitoring.md). ![](../img/sidebar_1.png) @@ -12,6 +12,6 @@ Check and use all things related to the threefold grid. Including: ## Table of Content -- [Grid Status](./grid_status.md) -- [Node Statistics](./node_statistics.md) -- [Node Monitoring](./node_monitoring.md) \ No newline at end of file +- [Grid Status](grid_status.md) +- [Node Statistics](node_statistics.md) +- [Node Monitoring](node_monitoring.md) \ No newline at end of file diff --git a/collections/dashboard/toc.md b/collections/dashboard/toc.md index 5507842..f71eac7 100644 --- a/collections/dashboard/toc.md +++ b/collections/dashboard/toc.md @@ -1,8 +1,8 @@ ## Dashboard TOC -- [Home](./home.md) -- [Wallet Connector](./wallet_connector.md) -- [CapRover](./caprover.md) -- [Virtual Machine](./vm.md) -- [Funkwhale](./funkwhale.md) -- [Peertube](./peertube.md) +- [Home](home.md) +- [Wallet Connector](wallet_connector.md) +- [CapRover](caprover.md) +- [Virtual Machine](vm.md) +- [Funkwhale](funkwhale.md) +- [Peertube](peertube.md) diff --git a/collections/dashboard/vm_presearch.md b/collections/dashboard/vm_presearch.md index f438507..e04ea53 100644 --- a/collections/dashboard/vm_presearch.md +++ b/collections/dashboard/vm_presearch.md @@ -3,7 +3,7 @@ The fastest way to mount a Presearch node on TFGrid3 is inside a VM. Steps : -- Set up a VM, see [here](./vm.md). It is recommended to reserve a fix IP. You can also try out the planetary network (so reserve a VM without public IP), as long as the node you select is connected to the internet through an IPv4 address that isn't used yet for a Presearch node, you don't explicitly need to reserve a public IPv4 address. However, the planetary network is still in beta phase and might generate performance issues. +- Set up a VM, see [here](vm.md). It is recommended to reserve a fix IP. You can also try out the planetary network (so reserve a VM without public IP), as long as the node you select is connected to the internet through an IPv4 address that isn't used yet for a Presearch node, you don't explicitly need to reserve a public IPv4 address. However, the planetary network is still in beta phase and might generate performance issues. - 1 CPU is enough for a PRE node. As we still need to install Docker on the VM before deploying a PRE node, please choose 8192 memory size. - Once your VM is set up, SSH into our machine. diff --git a/collections/dashboard/wallet_connector.md b/collections/dashboard/wallet_connector.md index 842339a..a4ab1bc 100644 --- a/collections/dashboard/wallet_connector.md +++ b/collections/dashboard/wallet_connector.md @@ -4,13 +4,16 @@ - [Introduction](#introduction) - [Supported Networks](#supported-networks) -- [Process](#process) +- [Create a Wallet](#create-a-wallet) +- [Import a Wallet](#import-a-wallet) *** ## Introduction -To interact with TFChain, users need to set a wallet connector. +To interact with TFChain, users can connect their TFChain wallet to the wallet connector available on the ThreeFold Dashboard. + +You can create a new wallet or import an existing wallet. ## Supported Networks @@ -27,16 +30,36 @@ Currently, we're supporting four different networks: ![ ](./img/profile_manager1.png) -## Process +## Create a Wallet -Start entering the following information required to create your new profile. +To create a new wallet, open the ThreeFold Dashboard on the desired network, click on `Create Account`, enter the following information and click `Connect`. -![ ](./img/profile_manager2.png) +- `Mnemonics`: The secret words of your Polkadot account. Click on the **Create Account** button to generate yours. +- `Email`: Enter a valid email address. +- `Password`: Choose a password and confirm it. This will be used to access your account. -- `Mnemonics` are the secret words of your Polkadot account. Click on the **Create Account** button to generate yours. -- `Password` is used to access your account -- `Confirm Password` +![](./img/dashboard_walletconnector_window.png) -After you finish typing your credentials, click on **Connect**. Once your profile gets activated, you should find your **Twin ID** and **Address** generated under your **_Mnemonics_** for verification. Also, your **Account Balance** will be available at the top right corner under your profile name. +You will be asked to accept ThreeFold's Terms and Conditions: -![ ](./img/profile_manager3.png) +![](./img/dashboard_terms_conditions.png) + +Once you've set your credentials, clicked on **Connect** and accepted the terms and conditions, your profile will be activated. + +Upon activation, you will find your **Twin ID**, **Address** and wallet current **balance** generated under your **Mnemonics**. + +![](./img/dashboard_walletconnector_info.png) + +Your current and locked balances will also be available at the top right corner of the dashboard. Here's an example of the balances you can find for your wallet. Some TFT is locked during utilization as the TFGrid bills you for your workloads and traffic. + +![](./img/dashboard_balances.png) + +## Import a Wallet + +You can import an existing wallet by entering in `Mnemonics` the associated seed phrase or HEX secret of the existing wallet. + +- To import a wallet created with the TF Dashboard, use the seed phrase provided when you created the account. +- To import a wallet or a farm created on the TF Connect app, use the TFChain HEX secret. + - From the menu, open **Wallet** -> **Wallet name** -> **Info symbol (i)**, and then reveal and copy the **TFChain Secret**. + +When you import a new wallet, you can decide a new password and email address, i.e. you only need the mnemonics to import an existing wallet on the dashboard. \ No newline at end of file diff --git a/collections/developers/developers.md b/collections/developers/developers.md index 3877320..410d5ec 100644 --- a/collections/developers/developers.md +++ b/collections/developers/developers.md @@ -2,89 +2,90 @@ This section covers all practical tutorials on how to develop and build on the ThreeFold Grid. -For complementary information on the technology developed by ThreeFold, refer to the [Technology](../../knowledge_base/technology/technology_toc.md) section. +For complementary information on the technology developed by ThreeFold, refer to the [Technology](tech@@technology_toc) section.

Table of Contents

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

Table of Contents

-- [Zero-OS Hub](manual:zos_hub.md) +- [Zero-OS Hub](zos_hub.md) - [Generate an API Token](api_token.md) -- [Convert Docker Image Into Flist](./flist_hub/convert_docker_image.md) -- [Supported Flists](./grid3_supported_flists.md) -- [Flist Case Studies](./flist_case_studies/flist_case_studies.md) - - [Case Study: Debian 12](./flist_case_studies/flist_debian_case_study.md) - - [Case Study: Nextcloud AIO](./flist_case_studies/flist_nextcloud_case_study.md) \ No newline at end of file +- [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) \ No newline at end of file diff --git a/collections/developers/flist/flist_case_studies/flist_case_studies.md b/collections/developers/flist/flist_case_studies/flist_case_studies.md index b258836..db29990 100644 --- a/collections/developers/flist/flist_case_studies/flist_case_studies.md +++ b/collections/developers/flist/flist_case_studies/flist_case_studies.md @@ -2,5 +2,5 @@

Table of Contents

-- [Case Study: Debian 12](./flist_debian_case_study.md) -- [Case Study: Nextcloud AIO](./flist_nextcloud_case_study.md) \ No newline at end of file +- [Case Study: Debian 12](flist_debian_case_study.md) +- [Case Study: Nextcloud AIO](flist_nextcloud_case_study.md) \ No newline at end of file diff --git a/collections/developers/flist/flist_case_studies/flist_debian_case_study.md b/collections/developers/flist/flist_case_studies/flist_debian_case_study.md index 3777433..4a8c1a1 100644 --- a/collections/developers/flist/flist_case_studies/flist_debian_case_study.md +++ b/collections/developers/flist/flist_case_studies/flist_debian_case_study.md @@ -223,27 +223,27 @@ You now have access to the Docker Hub from your local computer. We will then pro * Make sure the Docker Daemon is running * Build the docker container * Template: - * ``` - docker build -t / . - ``` + ``` + docker build -t / . + ``` * Example: - * ``` - docker build -t username/debian12 . - ``` + ``` + docker build -t username/debian12 . + ``` * Push the docker container to the [Docker Hub](https://hub.docker.com/) * Template: - * ``` - docker push / - ``` + ``` + docker push / + ``` * Example: - * ``` - docker push username/debian12 - ``` + ``` + docker push username/debian12 + ``` * You should now see your docker image on the [Docker Hub](https://hub.docker.com/) when you go into the menu option `My Profile`. * Note that you can access this link quickly with the following template: - * ``` - https://hub.docker.com/u/ - ``` + ``` + https://hub.docker.com/u/ + ``` @@ -265,13 +265,13 @@ We will now convert the Docker image into a Zero-OS flist. This part is so easy * Under `Name`, you will see all your available flists. * Right-click on the flist you want and select `Copy Clean Link`. This URL will be used when deploying on the ThreeFold Playground. We show below the template and an example of what the flist URL looks like. * Template: - * ``` - https://hub.grid.tf/<3BOT_name.3bot>/--.flist - ``` + ``` + https://hub.grid.tf/<3BOT_name.3bot>/--.flist + ``` * Example: - * ``` - https://hub.grid.tf/idrnd.3bot/username-debian12-latest.flist - ``` + ``` + https://hub.grid.tf/idrnd.3bot/username-debian12-latest.flist + ``` @@ -283,16 +283,14 @@ We will now convert the Docker image into a Zero-OS flist. This part is so easy * Choose your parameters (name, VM specs, etc.). * Under `flist`, paste the Debian flist from the TF Hub you copied previously. * Make sure the entrypoint is as follows: - * ``` - /sbin/zinit init - ``` + ``` + /sbin/zinit init + ``` * Choose a 3Node to deploy on * Click `Deploy` That's it! You can now SSH into your Debian deployment and change the world one line of code at a time! -* - ## Conclusion In this case study, we've seen the overall process of creating a new flist to deploy a Debian workload on a Micro VM on the ThreeFold Playground. diff --git a/collections/developers/flist/flist_case_studies/flist_nextcloud_case_study.md b/collections/developers/flist/flist_case_studies/flist_nextcloud_case_study.md index 4193317..78b9897 100644 --- a/collections/developers/flist/flist_case_studies/flist_nextcloud_case_study.md +++ b/collections/developers/flist/flist_case_studies/flist_nextcloud_case_study.md @@ -39,7 +39,7 @@ # Introduction -In this case study, we explain how to create a new flist on the ThreeFold ecosystem. We will show the process of creating a Nextcloud All-in-One flist and we will deploy a micro VM on the ThreeFold Playground to access our Nextcloud instance. As a reference, the official Nextcloud flist is available [here](https://hub.grid.tf/tf-official-apps/threefoldtech-nextcloudaio-latest.flist.md). +In this case study, we explain how to create a new flist on the ThreeFold ecosystem. We will show the process of creating a Nextcloud All-in-One flist and we will deploy a micro VM on the ThreeFold Playground to access our Nextcloud instance. As a reference, the official Nextcloud flist is available [here](threefoldtech-nextcloudaio-latest.flist.md). To achieve all this, we will need to create a Docker Hub account, create a Dockerfile and its associated files, a docker image and a docker container, then convert the docker image to a Zero-OS flist. After all this, we will be deploying our Nextcloud instance on the ThreeFold Playground. @@ -49,7 +49,7 @@ As a general advice, before creating an flist for a ThreeFold deployment, you sh Before we go any further, let us recall what is an flist. In short, an flist is a technology for storing and efficiently sharing sets of files. While it has many great features, it's purpose in this case is simply to deliver the image contents to Zero-OS for execution as a micro VM. It thus acts as a bundle of files like a normal archive. -One convenient thing about the flist technology is that it is possible to convert any Docker image into an flist, thanks to the [ThreeFold Docker Hub Converter tool](https://hub.grid.tf/docker-convert). It is very easy to do and we will show you how to proceed in this case study. For a quick guide on converting Docker images into flists, read [this section](../flist_hub/convert_docker_image.md) of the ThreeFold Manual. +One convenient thing about the flist technology is that it is possible to convert any Docker image into an flist, thanks to the [ThreeFold Docker Hub Converter tool](https://hub.grid.tf/docker-convert). It is very easy to do and we will show you how to proceed in this case study. For a quick guide on converting Docker images into flists, read [this section](convert_docker_image.md) of the ThreeFold Manual. ## Case Study Objective @@ -70,7 +70,7 @@ One important thing to have in mind is that, when we create an flist, what we ar Once we've successfully created an flist, we thus have a very quick way to deploy a specific workload while always obtaining the same result. This is why it is highly recommended to test a given deployment on a full or micro VM before building an flist. -For example, in the case of building a Nextcloud All-in-One flist, the prerequisites would be to successfully deploy a Nextcloud AIO instance on a full VM by executing each step sequentially. This specific example is documented in the Terraform section [Nextcloud All-in-One Guide](../../../system_administrators/terraform/advanced/terraform_nextcloud_aio.md) of the System Administrators book. +For example, in the case of building a Nextcloud All-in-One flist, the prerequisites would be to successfully deploy a Nextcloud AIO instance on a full VM by executing each step sequentially. This specific example is documented in the Terraform section [Nextcloud All-in-One Guide](system_administrators@@terraform_nextcloud_aio) of the System Administrators book. In our case, the flist we will be using has some specific configurations depending on the way we deploy Nextcloud (e.g. using or not the gateway and a custom domain). The Terraform **main.tf** we will be sharing later on will thus take all this into account for a smooth deployment. @@ -242,9 +242,9 @@ Finally, we set an entrypoint in our Dockerfile. As per the [Docker documentatio The **README.md** file has the main goal of explaining clearly to the user the functioning of the Nextcloud directory and its associated flist. In this file, we can explain what our code is doing and offer steps to properly configure the whole deployment. -We also give the necessary steps to create the Docker image and convert it into an flist starting directly with the Nextcloud directory. This can be useful for users that want to create their own flist, instead of using the [official ThreeFold Nextcloud flist](https://hub.grid.tf/tf-official-apps/threefoldtech-nextcloudaio-latest.flist.md). +We also give the necessary steps to create the Docker image and convert it into an flist starting directly with the Nextcloud directory. This can be useful for users that want to create their own flist, instead of using the [official ThreeFold Nextcloud flist](threefoldtech-nextcloudaio-latest.flist.md). -To read the complete README.md file, go to [this link](https://github.com/threefoldtech/tf-images/blob/development/tfgrid3/nextcloud/README.md). +To read the complete README.md file, go to [this link](README.md). ## scripts Folder @@ -616,25 +616,25 @@ You now have access to the Docker Hub from your local computer. We will then pro * Make sure the Docker Daemon is running * Build the docker container (note that, while the tag is optional, it can help to track different versions) * Template: - * ``` + ``` docker build -t /: . ``` * Example: - * ``` + ``` docker build -t dockerhubuser/nextcloudaio . ``` * Push the docker container to the [Docker Hub](https://hub.docker.com/) * Template: - * ``` + ``` docker push / ``` * Example: - * ``` + ``` docker push dockerhubuser/nextcloudaio ``` * You should now see your docker image on the [Docker Hub](https://hub.docker.com/) when you go into the menu option `My Profile`. * Note that you can access this link quickly with the following template: - * ``` + ``` https://hub.docker.com/u/ ``` @@ -656,12 +656,12 @@ We will now convert the Docker image into a Zero-OS flist. * Under `Name`, you will see all your available flists. * Right-click on the flist you want and select `Copy Clean Link`. This URL will be used when deploying on the ThreeFold Playground. We show below the template and an example of what the flist URL looks like. * Template: - * ``` + ``` https://hub.grid.tf/<3BOT_name.3bot>/--.flist ``` * Example: - * ``` - https://hub.grid.tf/tf-official-apps/threefoldtech-nextcloudaio-latest.flist + ``` + threefoldtech-nextcloudaio-latest.flist ``` # Deploy Nextcloud AIO on the TFGrid with Terraform @@ -693,7 +693,7 @@ gateway_id = "50" vm1_id = "5453" deployment_name = "nextcloudgateway" -nextcloud_flist = "https://hub.grid.tf/tf-official-apps/threefoldtech-nextcloudaio-latest.flist" +nextcloud_flist = "threefoldtech-nextcloudaio-latest.flist" ``` Make sure to add your own seed phrase and SSH public key. Simply replace the three dots by the content. Note that you can deploy on a different node than node 5453 for the **vm1** node. If you want to deploy on another node than node 5453 for the **gateway** node, make sure that you choose a gateway node. To find a gateway node, go on the [ThreeFold Dashboard](https://dashboard.grid.tf/) Nodes section of the Explorer and select **Gateways (Only)**. @@ -833,19 +833,20 @@ output "fqdn" { We now deploy Nextcloud with Terraform. Make sure that you are in the correct folder containing the main and variables files. * Initialize Terraform: - * ``` - terraform init - ``` + ``` + terraform init + ``` * Apply Terraform to deploy Nextcloud: - * ``` - terraform apply - ``` + ``` + terraform apply + ``` Note that, at any moment, if you want to see the information on your Terraform deployment, write the following: - * ``` - terraform show - ``` + +``` +terraform show +``` ## Nextcloud Setup diff --git a/collections/developers/flist/flist_hub/zos_hub.md b/collections/developers/flist/flist_hub/zos_hub.md index 98d398c..6b14f5a 100644 --- a/collections/developers/flist/flist_hub/zos_hub.md +++ b/collections/developers/flist/flist_hub/zos_hub.md @@ -40,7 +40,7 @@ You don't need to take care about the base system yourself, just merge it with t The ZOS Hub allows you to convert Docker Hub images and Tar files into flists thanks to the Docker Hub Converter. -You can convert a docker image (eg: `busybox`, `ubuntu`, `fedora`, `couchdb`, ...) to an flist directly from the backend, this allows you to use your existing docker image in our infrastructure out-of-the-box. Go to the [Docker Hub Converter](https://hub.grid.tf/docker-convert) to use this feature. For more information on the process, read the section [Convert Docker Image to flist](./convert_docker_image.md) of the TF Manual. +You can convert a docker image (eg: `busybox`, `ubuntu`, `fedora`, `couchdb`, ...) to an flist directly from the backend, this allows you to use your existing docker image in our infrastructure out-of-the-box. Go to the [Docker Hub Converter](https://hub.grid.tf/docker-convert) to use this feature. For more information on the process, read the section [Convert Docker Image to flist](convert_docker_image.md) of the TF Manual. You can also easily convert a Tar file into an flist via the [Upload section](https://hub.grid.tf/upload) of the ZOS Hub. @@ -59,7 +59,7 @@ and gives you the full control of the chain. The only restriction is that the co on the flist needs to exists on the backend, otherwise your flist will be rejected. ## Authenticate via 3Bot -All the operations on the ZOS Hub needs to be done via a `3Bot` (default) authentication. Only downloading a flist can be done anonymously. To authenticate request via the API, you need to generate an API Token as shown in the section [ZOS Hub API Token](./api_token.md). +All the operations on the ZOS Hub needs to be done via a `3Bot` (default) authentication. Only downloading a flist can be done anonymously. To authenticate request via the API, you need to generate an API Token as shown in the section [ZOS Hub API Token](api_token.md). ## Get and Update Information Through the API The hub host a basic REST API which can gives you some informations about flists, renaming them, remove them, etc. @@ -118,25 +118,25 @@ See example below. The main template to request information from the API is the following: -```bash +``` curl -H "Authorization: bearer " https://hub.grid.tf/api/flist/me/ -X ``` For example, if we take the command `DELETE` of the previous section and we want to delete the flist `example-latest.flist` with the API Token `abc12`, we would write the following line: -```bash +``` curl -H "Authorization: bearer abc12" https://hub.grid.tf/api/flist/me/example-latest.flist -X DELETE ``` As another template example, if we wanted to rename the flist `current-name-latest.flist` to `new-name-latest.flist`, we would use the following template: -```bash +``` curl -H "Authorization: bearer " https://hub.grid.tf/api/flist/me//rename/ -X GET ``` To upload an flist to the ZOS Hub, you would use the following template: -```bash +``` curl -H "Authorization: bearer " -X POST -F file=@my-local-archive.tar.gz \ https://hub.grid.tf/api/flist/me/upload ``` \ No newline at end of file diff --git a/collections/developers/flist/grid3_supported_flists.md b/collections/developers/flist/grid3_supported_flists.md index 537d0b3..d41403c 100644 --- a/collections/developers/flist/grid3_supported_flists.md +++ b/collections/developers/flist/grid3_supported_flists.md @@ -16,10 +16,10 @@ We provide basic information on the currently supported Flists. |flist|entrypoint|env vars| |:--:|:--:|--| -|[Alpine](https://hub.grid.tf/tf-official-apps/threefoldtech-alpine-3.flist.md)|`/entrypoint.sh`|`SSH_KEY`| -|[Ubuntu](https://hub.grid.tf/tf-official-apps/threefoldtech-ubuntu-22.04.flist.md)|`/init.sh`|`SSH_KEY`| -|[CentOS](https://hub.grid.tf/tf-official-apps/threefoldtech-centos-8.flist.md)|`/entrypoint.sh`|`SSH_KEY`| -|[K3s](https://hub.grid.tf/tf-official-apps/threefoldtech-k3s-latest.flist.md)|`/sbin/zinit init`|- `SSH_KEY`
- `K3S_TOKEN`
- `K3S_DATA_DIR`
- `K3S_FLANNEL_IFACE`
- `K3S_NODE_NAME`
- `K3S_URL` `https://${masterIp}:6443`| +|[Alpine](threefoldtech-alpine-3.flist.md)|`/entrypoint.sh`|`SSH_KEY`| +|[Ubuntu](threefoldtech-ubuntu-22.04.flist.md)|`/init.sh`|`SSH_KEY`| +|[CentOS](threefoldtech-centos-8.flist.md)|`/entrypoint.sh`|`SSH_KEY`| +|[K3s](threefoldtech-k3s-latest.flist.md)|`/sbin/zinit init`|- `SSH_KEY`
- `K3S_TOKEN`
- `K3S_DATA_DIR`
- `K3S_FLANNEL_IFACE`
- `K3S_NODE_NAME`
- `K3S_URL` `https://${masterIp}:6443`| ## More Flists diff --git a/collections/developers/go/grid3_go_gateways.md b/collections/developers/go/grid3_go_gateways.md index 66f5f68..23ecf77 100644 --- a/collections/developers/go/grid3_go_gateways.md +++ b/collections/developers/go/grid3_go_gateways.md @@ -12,7 +12,7 @@ ## Introduction -After [deploying a VM](./grid3_go_vm.md) you can deploy Gateways to further expose your VM. +After [deploying a VM](grid3_go_vm.md) you can deploy Gateways to further expose your VM. ## Gateway Name diff --git a/collections/developers/go/grid3_go_installation.md b/collections/developers/go/grid3_go_installation.md index c07008c..6ca7085 100644 --- a/collections/developers/go/grid3_go_installation.md +++ b/collections/developers/go/grid3_go_installation.md @@ -22,19 +22,19 @@ Make sure that you have at least Go 1.19 installed on your machine. ## Steps * Create a new directory - * ```bash + ```bash mkdir tf_go_client ``` * Change directory - * ```bash + ```bash cd tf_go_client ``` * Creates a **go.mod** file to track the code's dependencies - * ```bash + ```bash go mod init main ``` * Install the Grid3 Go Client - * ```bash + ```bash go get github.com/threefoldtech/tfgrid-sdk-go/grid-client ``` diff --git a/collections/developers/go/grid3_go_readme.md b/collections/developers/go/grid3_go_readme.md index cf24ada..7c7b45e 100644 --- a/collections/developers/go/grid3_go_readme.md +++ b/collections/developers/go/grid3_go_readme.md @@ -2,16 +2,16 @@ Grid Go Client is a Go client created to interact and develop on Threefold Grid using Go language. -Please make sure to check the [basics](../../system_administrators/getstarted/tfgrid3_getstarted.md) before continuing. +Please make sure to check the [basics](system_administrators@@tfgrid3_getstarted) before continuing.

Table of Contents

-- [Installation](../go/grid3_go_installation.md) -- [Loading Client](../go/grid3_go_load_client.md) -- [Deploy a VM](../go/grid3_go_vm.md) -- [Deploy a VM with GPU](../go/grid3_go_vm_with_gpu.md) -- [Deploy Multiple VMs](../go/grid3_go_vms.md) -- [Deploy Gateways](../go/grid3_go_gateways.md) -- [Deploy Kubernetes](../go/grid3_go_kubernetes.md) -- [Deploy a QSFS](../go/grid3_go_qsfs.md) -- [GPU Support](../go/grid3_go_gpu_support.md) +- [Installation](grid3_go_installation.md) +- [Loading Client](grid3_go_load_client.md) +- [Deploy a VM](grid3_go_vm.md) +- [Deploy a VM with GPU](grid3_go_vm_with_gpu.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_support.md) diff --git a/collections/developers/grid_deployment/deploy_dashboard.md b/collections/developers/grid_deployment/deploy_dashboard.md new file mode 100644 index 0000000..337e5f0 --- /dev/null +++ b/collections/developers/grid_deployment/deploy_dashboard.md @@ -0,0 +1,140 @@ +

Deploy the Dashboard

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Prerequisites](#prerequisites) +- [Create an SSH Tunnel](#create-an-ssh-tunnel) +- [Editor SSH Remote Connection](#editor-ssh-remote-connection) +- [Set the VM](#set-the-vm) +- [Build the Dashboard](#build-the-dashboard) +- [Dashboard Public Access](#dashboard-public-access) +- [Set the Network](#set-the-network) +- [Questions and Feedback](#questions-and-feedback) + +*** + +## Introduction + +We show how to deploy the Dashboard (devnet) on a full VM. To do so, we set an SSH tunnel and use the VSCodium Remote Explorer function. We will then be able to use a source-code editor to explore the code and see changes on a local browser. + +We also show how to provide a public access to the Dashboard by setting a gateway domain to your full VM deployment. Note that this method is not production-ready and should only be used to test the Dashboard. + +## Prerequisites + +- TFChain account with TFT +- [Deploy full VM with WireGuard connection](system_administrators@@ssh_wireguard) +- [Make sure you can connect via SSH on the terminal](system_administrators@@ssh_openssh) + +In this guide, we use WireGuard, but you can use other connection methods, such as [Mycelium](system_administrators@@mycelium_toc). + +## Create an SSH Tunnel + +- Open a terminal and create an SSH tunnel + ``` + ssh -4 -L 5173:127.0.0.1:5173 root@10.20.4.2 + ``` + +Simply leave this window open and follow the next steps. + +If you use an IPv6 address, e.g. with Mycelium, set `-6` in the line above instead of `-4`. + +## Editor SSH Remote Connection + +You can connect via SSH through the source-code editor to a VM on the grid. In this example, WireGuard is set. + +- Add the SSH Remote extension to [VSCodium](https://vscodium.com/) +- Add a new SSH remote connection +- Set the following (adjust with your own username and host) + ``` + Host 10.20.4.2 + HostName 10.20.4.2 + User root + ``` +- Click on `Connect to host` + +## Set the VM + +We set the VM to be able to build the Dashboard. + +``` + +apt update && apt install build-essential python3 -y + +wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash + +export NVM_DIR="$HOME/.nvm" + +[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm + +[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion + +nvm install 18 + +npm install -g yarn + +``` + +## Build the Dashboard + +We now build the Dashboard. + +Clone the repository, then install, build and run the Dashboard. Note that here it is called `playground`: + +``` + +git clone https://github.com/threefoldtech/tfgrid-sdk-ts + +cd tfgrid-sdk-ts/ + +yarn install + +make build + +make run project=playground + +``` + +You can then access the dev net Dashboard on your local browser. + +To stop running the Dashboard, simply enter ̀`Ctrl-C` on the terminal window. + + +## Dashboard Public Access + +> Note: This method is not production-ready. Use only for testing purposes. + +Once you've tested the Dashboard with the SSH tunnel, you can explore how to access it from the public Internet. For this, we will create a gateway domain and bind the host to `0.0.0.0`. + +On the Full VM page, [add a domain](dashboard@@add_domain) to access your deployment from the public Internet. + +- Under `Actions`, click on `Manage Domains` +- Go to `Add New Domain` +- Choose a gateway domain under `Select domain` +- Set the port 5173 +- Click on `Add` + +To run the Dashboard from the added domain, use this instead of the previous `make run` line: + +``` +cd packages/playground +yarn dev --host 0.0.0.0 +``` + +You can then access the Dashboard from the domain you just created. + + +## Set the Network + +You can set the network by running the configuration script. Simply set the network as the **MODE** (e.g. **main**, **test**, **dev**): + +``` +cd packages/playground/public +MODE=main ../scripts/build-env.sh +``` + +Once you've set the configuration file, you can build and run the Dashboard. + +## Questions and Feedback + +If you have any questions or feedback, please let us know by either writing a post on the [ThreeFold Forum](https://forum.threefold.io/), or by chatting with us on the [TF Grid Tester Community](https://t.me/threefoldtesting) Telegram channel. \ No newline at end of file diff --git a/collections/developers/grid_deployment/grid_deployment.md b/collections/developers/grid_deployment/grid_deployment.md index 14fa506..ada1b79 100644 --- a/collections/developers/grid_deployment/grid_deployment.md +++ b/collections/developers/grid_deployment/grid_deployment.md @@ -4,6 +4,7 @@ The TFGrid whole source code is open-source and instances of the grid can be dep ## Table of Contents -- [TFGrid Stacks](./tfgrid_stacks.md) -- [Full VM Grid Deployment](./grid_deployment_full_vm.md) -- [Grid Snapshots](./snapshots.md) \ No newline at end of file +- [TFGrid Stacks](tfgrid_stacks.md) +- [Full VM Grid Deployment](grid_deployment_full_vm.md) +- [Grid Snapshots](snapshots.md) +- [Deploy the Dashboard](deploy_dashboard.md) \ No newline at end of file diff --git a/collections/developers/grid_deployment/grid_deployment_full_vm.md b/collections/developers/grid_deployment/grid_deployment_full_vm.md index aee260a..2c739a4 100644 --- a/collections/developers/grid_deployment/grid_deployment_full_vm.md +++ b/collections/developers/grid_deployment/grid_deployment_full_vm.md @@ -4,6 +4,7 @@ - [Introduction](#introduction) - [Prerequisites](#prerequisites) +- [Deploy All 3 Network Instances](#deploy-all-3-network-instances) - [DNS Settings](#dns-settings) - [DNS Verification](#dns-verification) - [Prepare the VM](#prepare-the-vm) @@ -17,9 +18,11 @@ ## Introduction -We present the steps to deploy a network instance of the TFGrid on a full VM. +We present the steps to deploy an instance of the TFGrid on a full VM. -For this guide, we will be deploying a mainnet instance. While the steps are similar for testnet and devnet, you will have to adjust your deployment depending on which network you use. +For this guide, we will be deploying a mainnet instance. While the steps are similar for testnet and devnet, you will have to adjust your deployment depending on which network you use. Details are provided when needed. + +We also provide information to deploy the 3 different network instances. ## Prerequisites @@ -33,17 +36,30 @@ For this guide, you will need to deploy a full VM on the ThreeFold Grid with at After deploying the full VM, take note of the IPv4 and IPv6 addresses to properly set the DNS records and then SSH into the VM. +It is recommended to deploy on a machine with modern hardware and NVME storage disk. + +## Deploy All 3 Network Instances + +To deploy the 3 network instances, mainnet, testnet and mainnet, you need to follow the same process for each network on a separate machine or at least on a different VM. + +This means that you can either deploy each network instance on 3 different machines, or you can also deploy 3 different VMs on the same machine, e.g. a dedicated node. Then, each VM will run a different network instance. In this case, you will certainly need a machine with NVME storage disk and modern hardware. + ## DNS Settings You need to set an A record for the IPv4 address and an AAAA record for the IPv6 address with a wildcard subdomain. -The following table explicitly shows how to set the A and AAAA records for your domain. +The following table explicitly shows how to set the A and AAAA records for your domain for all 3 networks. Note that both `testnet` and `devnet` have a subdomain. The last two lines are for mainnet since no subdomain is needed in this case. | Type | Host | Value | | ---- | ---- | -------------- | -| A | \* | | -| AAAA | \* | | +| A | \*.dev | | +| AAAA | \*.dev | | +| A | \*.test | | +| AAAA | \*.test | | +| A | \* | | +| AAAA | \* | | +As stated above, each network instance must be on its own VM or machine to work properly. Make sure to adjust the DNS records accordingly. ### DNS Verification @@ -51,12 +67,17 @@ You can use tools such as [DNSChecker](https://dnschecker.org/) or [dig](https:/ ## Prepare the VM +We show the steps to prepare the VM to run the network instance. + +If you are deploying on testnet or devnet, simply replace `mainnet` by the proper network in the following lines. + - Download the ThreeFold Tech `grid_deployment` repository ``` git clone https://github.com/threefoldtech/grid_deployment cd grid_deployment/docker-compose/mainnet ``` - Generate a TFChain node key with `subkey` + - Note: If you deploy the 3 network instances, you can use the same node key for all 3 networks. But it is recommended to use 3 different keys to facilitate management. ``` echo .subkey_mainnet >> .gitignore ../subkey generate-node-key > .nodekey_mainnet @@ -80,7 +101,7 @@ You can use tools such as [DNSChecker](https://dnschecker.org/) or [dig](https:/ - **GRID_PROXY_MNEMONIC**="word1 word2 ... word24" - Write the seed phrase of an account on mainnet with at least 10 TFT in the wallet and a registered twin ID\* -> \*Note: If you've created an account using the ThreeFold Dashboard on mainnet, the twin ID is automatically registered. +> \*Note: If you've created an account using the ThreeFold Dashboard on a given network, the twin ID is automatically registered for this network. ## Set the Firewall @@ -110,16 +131,18 @@ This will take some time since you are downloading the whole mainnet grid snapsh Once you've deployed the grid stack online, you can access the different grid services by usual the usual subdomains: ``` -dashboard.your.domain -metrics.your.domain -tfchain.your.domain -graphql.your.domain -relay.your.domain -gridproxy.your.domain -activation.your.domain -stats.your.domain +dashboard.example.com +metrics.example.com +tfchain.example.com +graphql.example.com +relay.example.com +gridproxy.example.com +activation.example.com +stats.example.com ``` +In the case of testnet and devnet, links will also have the given subdomain, such as `dashboard.test.example.com` for a `testnet` instance. + ## Manual Commands Once you've run the install script, you can deploy manually the grid stack with the following command: diff --git a/collections/developers/grid_deployment/snapshots.md b/collections/developers/grid_deployment/snapshots.md index 2b7a7d4..0887508 100644 --- a/collections/developers/grid_deployment/snapshots.md +++ b/collections/developers/grid_deployment/snapshots.md @@ -4,6 +4,10 @@ - [Introduction](#introduction) - [Services](#services) - [ThreeFold Public Snapshots](#threefold-public-snapshots) +- [Requirements](#requirements) + - [Files for Each Net](#files-for-each-net) + - [Deploy All 3 Network Instances](#deploy-all-3-network-instances) +- [Deploy a Snapshot Backend](#deploy-a-snapshot-backend) - [Deploy the Services with Scripts](#deploy-the-services-with-scripts) - [Create the Snapshots](#create-the-snapshots) - [Start All the Services](#start-all-the-services) @@ -18,7 +22,7 @@ To facilitate deploying grid backend services, we provide snapshots to significantly reduce sync time. This can be setup anywhere from scratch. Once all services are synced, one can use the scripts to create snapshots automatically. -To learn how to deploy your own grid stack, read [this section](./grid_deployment_full_vm.md). +To learn how to deploy your own grid stack, read [this section](grid_deployment_full_vm.md). ## Services @@ -51,9 +55,68 @@ ThreeFold hosts all available snapshots at: [https://bknd.snapshot.grid.tf/](htt rsync -Lv --progress --partial rsync://bknd.snapshot.grid.tf:34873/gridsnapshotsdev/processor-devnet-latest.tar.gz . ``` +## Requirements + +To run your own snapshot backend, you need the following: + +- Configuration + - A working docker environment + - 'node key' for the TFchain public RPC node, generated with `subkey generate-node-key` + + Hardware + - min of 8 modern CPU cores + - min of 32GB RAM + - min of 1TB SSD storage (high preference for NVMe based storage), preferably more (as the chain keeps growing in size) + - min of 2TB HDD storage (to store and share the snapshots) + +Dev, QA and Testnet can do with a Sata SSD setup. Mainnet requires NVMe based SSDs due to the data size. + +**Note**: If a deployment does not have enough disk input/output operations per second (iops) available, you might see the processor container restarting regulary and grid_proxy errors regarding processor database timeouts. + +### Files for Each Net + +Each folder contains the required deployment files for its net. Make sure to work in the folder that has the name of the network you want to create snapshots for. + +What does each file do: +- `.env` - contains environment files maintaned by Threefold Tech +- `.gitignore` - has a list of files to ignore once the repo has been cloned. This has the purpose to not have uncommited changes to files when working in this repo +- `.secrets.env-examples` - is where you have to add all your unique environment variables +- `create_snapshot.sh` - script to create a snapshot (used by cron) +- `docker-compose.yml` - has all the required docker-compose configuration to deploy a working Grid stack +- `open_logs_tmux.sh` - opens all the docker logs in tmux sessions +- `typesBundle.json` - contains data for the Graphql indexer and is not to be touched +- `startall.sh` - starts all the (already deployed) containers +- `stopall.sh` - stops all the (already deployed) containers + +### Deploy All 3 Network Instances + +To deploy the 3 network instances, mainnet, testnet and mainnet, you need to follow the same process for each network on a separate machine or at least on a different VM. + +This means that you can either deploy each network instance on 3 different machines, or you can also deploy 3 different VMs on the same machine, e.g. a dedicated node. Then, each VM will run a different network instance. In this case, you will certainly need a machine with NVME storage disk and modern hardware. + +## Deploy a Snapshot Backend + +Here's how to deploy a snapshot backend of a given network. + +- Go to the corresponding network folder (e.g. `mainnet`). + ``` + cd mainnet + cp .secrets.env-example .secrets.env + ``` +- Open `.secrets.env` and add your generated subkey node-key. +- Check that all environment variables are correct. + ``` + docker compose --env-file .secrets.env --env-file .env config + ``` +- Deploy the snapshot backend. Depending on the disk iops available, it can take up until a week to sync from block 0. + + ``` + docker compose --env-file .secrets.env --env-file .env up -d + ``` + ## Deploy the Services with Scripts -You can deploy the 3 individual services using known methods such as [Docker](../../system_administrators/computer_it_basics/docker_basics.md). To facilitate the process, scripts are provided that run the necessary docker commands. +You can deploy the 3 individual services using known methods such as [Docker](system_administrators@@docker_basics). To facilitate the process, scripts are provided that run the necessary docker commands. The first script creates the snapshots, while the second and third scripts serve to start and stop all services. @@ -64,83 +127,83 @@ You can use the start script to start all services and then set a cron job to ex You can set a cron job to execute a script running rsync to create the snapshots and generate logs at a given interval. - First download the script. - - Main net - ``` - wget https://github.com/threefoldtech/grid_deployment/blob/development/grid-snapshots/mainnet/create_snapshot.sh - ``` - - Test net - ``` - wget https://github.com/threefoldtech/grid_deployment/blob/development/grid-snapshots/testnet/create_snapshot.sh - ``` - - Dev net - ``` - wget https://github.com/threefoldtech/grid_deployment/blob/development/grid-snapshots/devnet/create_snapshot.sh - ``` +- Main net +``` +wget https://github.com/threefoldtech/grid_deployment/blob/development/grid-snapshots/mainnet/create_snapshot.sh +``` +- Test net +``` +wget https://github.com/threefoldtech/grid_deployment/blob/development/grid-snapshots/testnet/create_snapshot.sh +``` +- Dev net +``` +wget https://github.com/threefoldtech/grid_deployment/blob/development/grid-snapshots/devnet/create_snapshot.sh +``` - Set the permissions of the script - ``` - chmod +x create_snapshot.sh - ``` +``` +chmod +x create_snapshot.sh +``` - Make sure to a adjust the snapshot creation script for your specific deployment - Set a cron job - ``` - crontab -e - ``` +``` +crontab -e +``` - Here is an example of a cron job where we execute the script every day at 1 AM and send the logs to `/var/log/snapshots/snapshots-cron.log`. - ```sh - 0 1 * * * sh /opt/snapshots/create-snapshot.sh > /var/log/snapshots/snapshots-cron.log 2>&1 - ``` +```sh +0 1 * * * sh /root/code/grid_deployment/grid-snapshots/mainnet/create_snapshot.sh > /var/log/snapshots/snapshots-cron.log 2>&1 +``` ### Start All the Services You can start all services by running the provided scripts. - Download the script. - - Main net - ``` - wget https://github.com/threefoldtech/grid_deployment/blob/development/grid-snapshots/mainnet/startall.sh - ``` - - Test net - ``` - wget https://github.com/threefoldtech/grid_deployment/blob/development/grid-snapshots/testnet/startall.sh - ``` - - Dev net - ``` - wget https://github.com/threefoldtech/grid_deployment/blob/development/grid-snapshots/devnet/startall.sh - ``` +- Main net +``` +wget https://github.com/threefoldtech/grid_deployment/blob/development/grid-snapshots/mainnet/startall.sh +``` +- Test net +``` +wget https://github.com/threefoldtech/grid_deployment/blob/development/grid-snapshots/testnet/startall.sh +``` +- Dev net +``` +wget https://github.com/threefoldtech/grid_deployment/blob/development/grid-snapshots/devnet/startall.sh +``` - Set the permissions of the script - ``` - chmod +x startall.sh - ``` +``` +chmod +x startall.sh +``` - Run the script to start all services via docker engine. - ``` - ./startall.sh - ``` +``` +./startall.sh +``` ### Stop All the Services You can stop all services by running the provided scripts. - Download the script. - - Main net - ``` - wget https://github.com/threefoldtech/grid_deployment/blob/development/grid-snapshots/mainnet/stopall.sh - ``` - - Test net - ``` - wget https://github.com/threefoldtech/grid_deployment/blob/development/grid-snapshots/testnet/stopall.sh - ``` - - Dev net - ``` - wget https://github.com/threefoldtech/grid_deployment/blob/development/grid-snapshots/devnet/stopall.sh - ``` +- Main net +``` +wget https://github.com/threefoldtech/grid_deployment/blob/development/grid-snapshots/mainnet/stopall.sh +``` +- Test net +``` +wget https://github.com/threefoldtech/grid_deployment/blob/development/grid-snapshots/testnet/stopall.sh +``` +- Dev net +``` +wget https://github.com/threefoldtech/grid_deployment/blob/development/grid-snapshots/devnet/stopall.sh +``` - Set the permissions of the script - ``` - chmod +x stopall.sh - ``` +``` +chmod +x stopall.sh +``` - Run the script to stop all services via docker engine. - ``` - ./stopall.sh - ``` +``` +./stopall.sh +``` ## Expose the Snapshots with Rsync diff --git a/collections/developers/grid_deployment/snapshots_archive.md b/collections/developers/grid_deployment/snapshots_archive.md index eac3ff7..cab122a 100644 --- a/collections/developers/grid_deployment/snapshots_archive.md +++ b/collections/developers/grid_deployment/snapshots_archive.md @@ -23,8 +23,8 @@ To facilitate deploying grid backend services, we provide snapshots to significa There are a few prerequisites to properly run the ThreeFold services. -- [Docker engine](../computer_it_basics/docker_basics.md#install-docker-desktop-and-docker-engine) -- [Rsync](../computer_it_basics/file_transfer.md#rsync) +- [Docker engine](system_administrators@@docker_basics.md#install-docker-desktop-and-docker-engine) +- [Rsync](system_administrators@@file_transfer.md#rsync) ## Services @@ -61,7 +61,7 @@ Let's now see how to use those snapshots to run the services via scripts. ## Deploy the Services with Scripts -You can deploy the 3 individual services using known methods such as [Docker](https://manual.grid.tf/computer_it_basics/docker_basics.html). To facilitate the process, scripts are provided that run the necessary docker commands. +You can deploy the 3 individual services using known methods such as [Docker](docker_basics.md). To facilitate the process, scripts are provided that run the necessary docker commands. The first script creates the snapshots, while the second and third scripts serve to start and stop all services. @@ -202,5 +202,3 @@ systemctl start rsync systemctl enable rsync systemctl status rsync ``` - -If you're interested about hosting your own instance of the grid to strenghten the ThreeFold ecosystem, make sure to read the next section, [Guardians of the Grid](./tfgrid_guardians.md). \ No newline at end of file diff --git a/collections/developers/grid_deployment/tfgrid_stacks.md b/collections/developers/grid_deployment/tfgrid_stacks.md index 7845722..6f3b6e8 100644 --- a/collections/developers/grid_deployment/tfgrid_stacks.md +++ b/collections/developers/grid_deployment/tfgrid_stacks.md @@ -29,4 +29,4 @@ The overall ThreeFold ecosystem becomes more resilient to failures of individual To set your own instance of the TFGrid, you can download a snapshot of the grid and deploy the TFGrid services with Docker. We even provide scripts to quicken the whole process! -Read more about snapshots in the [next section](./grid_deployment_full_vm.md). \ No newline at end of file +Read more about snapshots in the [next section](grid_deployment_full_vm.md). \ No newline at end of file diff --git a/collections/developers/internals/internals.md b/collections/developers/internals/internals.md index af1c1f8..dd1d888 100644 --- a/collections/developers/internals/internals.md +++ b/collections/developers/internals/internals.md @@ -4,16 +4,16 @@ We present in this section of the developers book a partial list of system compo

Table of Contents

-- [Reliable Message Bus (RMB)](rmb/rmb_toc.md) - - [Introduction to RMB](rmb/rmb_intro.md) - - [RMB Specs](rmb/rmb_specs.md) - - [RMB Peer](rmb/uml/peer.md) - - [RMB Relay](rmb/uml/relay.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](zos/index.md) - - [Manual](./zos/manual/manual.md) - - [Workload Types](./zos/manual/workload_types.md) - - [Internal Modules](./zos/internals/internals.md) - - [Capacity](./zos/internals/capacity.md) - - [Performance Monitor Package](./zos/performance/performance.md) - - [API](./zos/manual/api.md) \ No newline at end of file +- [ZOS](zos_readme.md) + - [Manual](manual.md) + - [Workload Types](workload_types.md) + - [Internal Modules](internals.md) + - [Capacity](capacity.md) + - [Performance Monitor Package](performance.md) + - [API](api.md) \ No newline at end of file diff --git a/collections/developers/internals/rmb/rmb_intro.md b/collections/developers/internals/rmb/rmb_intro.md index bb08f99..6062195 100644 --- a/collections/developers/internals/rmb/rmb_intro.md +++ b/collections/developers/internals/rmb/rmb_intro.md @@ -14,7 +14,7 @@ - [Building](#building) - [Running tests](#running-tests) -*** +--- ## What is RMB @@ -27,7 +27,7 @@ Out of the box RMB provides the following: - Support for 3rd party hosted relays. Anyone can host a relay and people can use it safely since there is no way messages can be inspected while using e2e. That's similar to `home` servers by `matrix` ![layout](img/layout.png) -*** + ## Why RMB is developed by ThreefoldTech to create a global network of nodes that are available to host capacity. Each node will act like a single bot where you can ask to host your capacity. This enforced a unique set of requirements: @@ -45,17 +45,17 @@ Starting from this we came up with a more detailed requirements: - Then each message then can be signed by the `bot` keys, hence make it easy to verify the identity of the sender of a message. This is done both ways. - To support federation (using 3rd party relays) we needed to add e2e encryption to make sure messages that are surfing the public internet can't be sniffed - e2e encryption is done by deriving an encryption key from the same identity seed, and share the public key on `tfchain` hence it's available to everyone to use -*** + ## Specifications -For details about protocol itself please check the [specs](./rmb_specs.md). -*** +For details about protocol itself please check the [specs](rmb_specs.md). + ## How to Use RMB There are many ways to use `rmb` because it was built for `bots` and software to communicate. Hence, there is no mobile app for it for example, but instead a set of libraries where you can use to connect to the network, make chitchats with other bots then exit. Or you can keep the connection forever to answer other bots requests if you are providing a service. -*** + ## Libraries If there is a library in your preferred language, then you are in luck! Simply follow the library documentations to implement a service bot, or to make requests to other bots. @@ -64,14 +64,14 @@ If there is a library in your preferred language, then you are in luck! Simply f - Golang [rmb-sdk-go](https://github.com/threefoldtech/rmb-sdk-go) - Typescript [rmb-sdk-ts](https://github.com/threefoldtech/rmb-sdk-ts) -*** + ### No Known Libraries If there are no library in your preferred language, here's what you can do: - Implement a library in your preferred language - If it's too much to do all the signing, verification, e2e in your language then use `rmb-peer` -*** + ## What is rmb-peer think of `rmb-peer` as a gateway that stands between you and the `relay`. `rmb-peer` uses your mnemonics (your identity secret key) to assume your identity and it connects to the relay on your behalf, it maintains the connection forever and takes care of @@ -83,13 +83,13 @@ think of `rmb-peer` as a gateway that stands between you and the `relay`. `rmb-p Then it provide a simple (plain-text) api over `redis`. means to send messages (or handle requests) you just need to be able to push and pop messages from some redis queues. Messages are simple plain text json. -> More details can be found [here](./rmb_specs.md) +> More details can be found [here](rmb_specs.md) + -*** ## Download Please check the latest [releases](https://github.com/threefoldtech/rmb-rs/releases) normally you only need the `rmb-peer` binary, unless you want to host your own relay. -*** + ## Building ```bash @@ -97,7 +97,7 @@ git clone git@github.com:threefoldtech/rmb-rs.git cd rmb-rs cargo build --release --target=x86_64-unknown-linux-musl ``` -*** + ## Running tests While inside the repository diff --git a/collections/developers/internals/rmb/rmb_specs.md b/collections/developers/internals/rmb/rmb_specs.md index 2d28cbe..c6878ea 100644 --- a/collections/developers/internals/rmb/rmb_specs.md +++ b/collections/developers/internals/rmb/rmb_specs.md @@ -15,7 +15,7 @@ - [End2End Encryption](#end2end-encryption) - [Rate Limiting](#rate-limiting) -*** +--- # Introduction @@ -51,7 +51,7 @@ On the relay, the relay checks federation information set on the envelope and th When the relay receive a message that is destined to a `local` connected client, it queue it for delivery. The relay can maintain a queue of messages per twin to a limit. If the twin does not come back online to consume queued messages, the relay will start to drop messages for that specific twin client. Once a twin come online and connect to its peer, the peer will receive all queued messages. the messages are pushed over the web-socket as they are received. the client then can decide how to handle them (a message can be a request or a response). A message type can be inspected as defined by the schema. -*** + # Overview of the Operation of RMB Relay ![relay](img/relay.png) @@ -201,7 +201,6 @@ A response message is defined as follows this is what is sent as a response by a Your bot (server) need to make sure to set `destination` to the same value as the incoming request `source` -The > this response is what is pushed to `msgbus.system.reply` ```rust @@ -223,7 +222,7 @@ pub struct JsonOutgoingResponse { pub error: Option, } ``` -*** + # End2End Encryption Relay is totally opaque to the messages. Our implementation of the relay does not poke into messages except for the routing attributes (source, and destinations addresses, and federation information). But since the relay is designed to be hosted by other 3rd parties (hence federation) you should @@ -246,7 +245,7 @@ As you already understand e2e is completely up to the peers to implement, and ev - derive the same shared key - `shared = ecdh(B.sk, A.pk)` - `plain-data = aes-gcm.decrypt(shared-key, nonce, encrypted)` -*** + # Rate Limiting To avoid abuse of the server, and prevent DoS attacks on the relay, a rate limiter is used to limit the number of clients' requests.\ diff --git a/collections/developers/internals/rmb/rmb_toc.md b/collections/developers/internals/rmb/rmb_toc.md index 0801571..6e7b871 100644 --- a/collections/developers/internals/rmb/rmb_toc.md +++ b/collections/developers/internals/rmb/rmb_toc.md @@ -14,5 +14,5 @@ Out of the box RMB provides the following: - [Introduction to RMB](rmb_intro.md) - [RMB Specs](rmb_specs.md) -- [RMB Peer](uml/peer.md) -- [RMB Relay](uml/relay.md) \ No newline at end of file +- [RMB Peer](peer.md) +- [RMB Relay](relay.md) \ No newline at end of file diff --git a/collections/developers/internals/zos/development/packages.md b/collections/developers/internals/zos/development/packages.md index f7391f6..1e76a10 100644 --- a/collections/developers/internals/zos/development/packages.md +++ b/collections/developers/internals/zos/development/packages.md @@ -1,6 +1,6 @@ # Adding a new package -Binary packages are added via providing [a build script](../../bins/), then an automated workflow will build/publish an flist with this binary. +Binary packages are added via providing a build script, then an automated workflow will build/publish an flist with this binary. For example, to add `rmb` binary, we need to provide a bash script with a `build_rmb` function: @@ -43,7 +43,7 @@ build_rmb() { Note that, you can just download a statically build binary instead of building it. -The other step is to add it to workflow to be built automatically, in [bins workflow](../../.github/workflows/bins.yaml), add your binary's job: +The other step is to add it to workflow to be built automatically, in bins workflow, add your binary's job: ```yaml jobs: diff --git a/collections/developers/internals/zos/development/quickstart.md b/collections/developers/internals/zos/development/quickstart.md index 0563b61..10f461a 100644 --- a/collections/developers/internals/zos/development/quickstart.md +++ b/collections/developers/internals/zos/development/quickstart.md @@ -8,7 +8,7 @@ ## Starting a local zos node * Make sure `qemu` and `dnsmasq` are installed -* [Create a farm](../manual/manual.md#creating-a-farm) +* [Create a farm](dashboard@@your_farms) * [Download a zos image](https://bootstrap.grid.tf/kernel/zero-os-development-zos-v3-generic-7e587e499a.efi) * Make sure `zos0` bridge is allowed by qemu, you can add `allow zos0` in `/etc/qemu/bridge.conf` (create the file if it's not there) * Setup the network using this script [this script](./net.sh) @@ -26,13 +26,13 @@ You should see the qemu console and boot logs, wait for awhile and you can [brow To stop the machine you can do `Control + a` then `x`. -You can read more about setting up a qemu development environment and more network options [here](../../qemu/README.md). +You can read more about setting up a qemu development environment and more network options [here](qemu_readme.md). ## Accessing node After booting up, the node should start downloading external packages, this would take some time depending on your internet connection. -See [how to ssh into it.](../../qemu/README.md#to-ssh-into-the-machine) +See [how to ssh into it.](qemu_readme.md#to-ssh-into-the-machine) How to get the node IP? Given the network script `dhcp-range`, it usually would be one of `192.168.123.43`, `192.168.123.44` or `192.168.123.45`. diff --git a/collections/developers/internals/zos/development/readme.md b/collections/developers/internals/zos/development/readme.md index 63b7034..c12493d 100644 --- a/collections/developers/internals/zos/development/readme.md +++ b/collections/developers/internals/zos/development/readme.md @@ -1,6 +1,6 @@ Development =========== -* [Quick start](./quickstart.md) -* [Testing](./testing.md) -* [Binary packages](./packages.md) \ No newline at end of file +* [Quick start](quickstart.md) +* [Testing](testing.md) +* [Binary packages](packages.md) \ No newline at end of file diff --git a/collections/developers/internals/zos/development/testing.md b/collections/developers/internals/zos/development/testing.md index 8f023ec..d2a9a27 100644 --- a/collections/developers/internals/zos/development/testing.md +++ b/collections/developers/internals/zos/development/testing.md @@ -21,7 +21,7 @@ While deploying on your local node, logs with `zinit log` would be helpful to se ## Using a test app -If you need to test a specific module or functionality, you can create a simple test app inside e.g. [tools directory](../../tools/). +If you need to test a specific module or functionality, you can create a simple test app inside e.g. tools directory. Inside this simple test app, you can import any module or talk to another one using [zbus](../internals/internals.md#ipc). diff --git a/collections/developers/internals/zos/internals/container/readme.md b/collections/developers/internals/zos/internals/container/container_readme.md similarity index 100% rename from collections/developers/internals/zos/internals/container/readme.md rename to collections/developers/internals/zos/internals/container/container_readme.md diff --git a/collections/developers/internals/zos/internals/flist/readme.md b/collections/developers/internals/zos/internals/flist/flist_readme.md similarity index 98% rename from collections/developers/internals/zos/internals/flist/readme.md rename to collections/developers/internals/zos/internals/flist/flist_readme.md index 46f1076..9e7a863 100644 --- a/collections/developers/internals/zos/internals/flist/readme.md +++ b/collections/developers/internals/zos/internals/flist/flist_readme.md @@ -16,7 +16,7 @@ Flist module is available on zbus over the following channel: | module | object | version | |--------|--------|---------| -|flist |[flist](#public-interface)| 0.0.1 +|flist |[flist](#public-interface)| 0.0.1 | ## Home Directory flist keeps some data in the following locations: diff --git a/collections/developers/internals/zos/internals/identity/readme.md b/collections/developers/internals/zos/internals/identity/identity_readme.md similarity index 100% rename from collections/developers/internals/zos/internals/identity/readme.md rename to collections/developers/internals/zos/internals/identity/identity_readme.md diff --git a/collections/developers/internals/zos/internals/internals.md b/collections/developers/internals/zos/internals/internals.md index ac7dfe8..25c5fca 100644 --- a/collections/developers/internals/zos/internals/internals.md +++ b/collections/developers/internals/zos/internals/internals.md @@ -74,15 +74,15 @@ Modules of zos are completely internal. There is no way for an external user to Here is a list of the major ZOS modules. -- [Identity](identity/index.md) -- [Node](node/index.md) -- [Storage](storage/index.md) -- [Network](network/index.md) -- [Flist](flist/index.md) -- [Container](container/index.md) -- [VM](vmd/index.md) -- [Provision](provision/index.md) +- [Identity](identity_readme.md) +- [Node](node_readme.md) +- [Storage](storage_readme.md) +- [Network](network_readme.md) +- [Flist](flist_readme.md) +- [Container](container_readme.md) +- [VM](vmd_readme.md) +- [Provision](provision_readme.md) ## Capacity -In [this document](./capacity.md), you can find detail description of how ZOS does capacity planning. +In [this document](capacity.md), you can find detail description of how ZOS does capacity planning. diff --git a/collections/developers/internals/zos/internals/network/introduction.md b/collections/developers/internals/zos/internals/network/introduction.md index 76660fa..5221c99 100644 --- a/collections/developers/internals/zos/internals/network/introduction.md +++ b/collections/developers/internals/zos/internals/network/introduction.md @@ -27,7 +27,7 @@ Once initialized, with the network daemon running (a process that will handle al ## Networkd functionality -The network daemon is in itself responsible for a few tasks, and working together with the [provision daemon](../provision) it mainly sets up the local infrastructure to get the user network resources, together with the wireguard configurations for the user's mesh network. +The network daemon is in itself responsible for a few tasks, and working together with the [provision daemon](provision_readme.md) it mainly sets up the local infrastructure to get the user network resources, together with the wireguard configurations for the user's mesh network. The Wireguard mesh is an overlay network. That means that traffic of that network is encrypted and encapsulated in a new traffic frame that the gets transferred over the underlay network, here in essence the network that has been set up during boot of the node. diff --git a/collections/developers/internals/zos/internals/network/network_readme.md b/collections/developers/internals/zos/internals/network/network_readme.md new file mode 100644 index 0000000..bab6c1e --- /dev/null +++ b/collections/developers/internals/zos/internals/network/network_readme.md @@ -0,0 +1,8 @@ +

Zero-OS Networking

+ +

Table of Contents

+ +- [Introduction to networkd](introduction.md) +- [Vocabulary Definitions](definitions.md) +- [Wireguard Mesh Details](mesh.md) +- [Farm Network Setup](setup_farm_network.md) \ No newline at end of file diff --git a/collections/developers/internals/zos/internals/network/readme.md b/collections/developers/internals/zos/internals/network/readme.md deleted file mode 100644 index 3958cf6..0000000 --- a/collections/developers/internals/zos/internals/network/readme.md +++ /dev/null @@ -1,8 +0,0 @@ -

Zero-OS Networking

- -

Table of Contents

- -- [Introduction to networkd](./introduction.md) -- [Vocabulary Definitions](./definitions.md) -- [Wireguard Mesh Details](./mesh.md) -- [Farm Network Setup](./setup_farm_network.md) \ No newline at end of file diff --git a/collections/developers/internals/zos/internals/node/readme.md b/collections/developers/internals/zos/internals/node/node_readme.md similarity index 94% rename from collections/developers/internals/zos/internals/node/readme.md rename to collections/developers/internals/zos/internals/node/node_readme.md index 0679bd7..69ed009 100644 --- a/collections/developers/internals/zos/internals/node/readme.md +++ b/collections/developers/internals/zos/internals/node/node_readme.md @@ -20,9 +20,9 @@ Node module is available on [zbus](https://github.com/threefoldtech/zbus) over t | module | object | version | |--------|--------|---------| -|host |host| 0.0.1 -|system |system| 0.0.1 -|events |events| 0.0.1 +|host |host| 0.0.1 | +|system |system| 0.0.1 | +|events |events| 0.0.1 | ## Example diff --git a/collections/developers/internals/zos/internals/provision/readme.md b/collections/developers/internals/zos/internals/provision/provision_readme.md similarity index 100% rename from collections/developers/internals/zos/internals/provision/readme.md rename to collections/developers/internals/zos/internals/provision/provision_readme.md diff --git a/collections/developers/internals/zos/internals/storage/readme.md b/collections/developers/internals/zos/internals/storage/storage_readme.md similarity index 100% rename from collections/developers/internals/zos/internals/storage/readme.md rename to collections/developers/internals/zos/internals/storage/storage_readme.md diff --git a/collections/developers/internals/zos/internals/vmd/readme.md b/collections/developers/internals/zos/internals/vmd/vmd_readme.md similarity index 100% rename from collections/developers/internals/zos/internals/vmd/readme.md rename to collections/developers/internals/zos/internals/vmd/vmd_readme.md diff --git a/collections/developers/internals/zos/manual/manual.md b/collections/developers/internals/zos/manual/manual.md index fb926c9..89058d3 100644 --- a/collections/developers/internals/zos/manual/manual.md +++ b/collections/developers/internals/zos/manual/manual.md @@ -55,7 +55,7 @@ To be able to contact the node directly you need to run - `yggdrasil` - `rmb` (correctly configured) -Once you have those running you can now contact the node over `rmb`. For a reference implementation (function names and parameters) please refer to [RMB documentation](../../rmb/rmb_toc.md) +Once you have those running you can now contact the node over `rmb`. For a reference implementation (function names and parameters) please refer to [RMB documentation](rmb_toc.md) Here is a rough example of how low level creation of a deployment is done. @@ -180,7 +180,7 @@ type Workload struct { ### API Node is always connected to the RMB network with the node `twin`. Means the node is always reachable over RMB with the node `twin-id` as an address. -The [node client](https://github.com/threefoldtech/zos/blob/main/client/node.go) should have a complete list of all available functions. documentations of the API can be found [here](./api.md) +The [node client](https://github.com/threefoldtech/zos/blob/main/client/node.go) should have a complete list of all available functions. documentations of the API can be found [here](api.md) ## Raid Controller Configuration diff --git a/collections/developers/internals/zos/manual/workload_types.md b/collections/developers/internals/zos/manual/workload_types.md index a9e2d85..9d1f540 100644 --- a/collections/developers/internals/zos/manual/workload_types.md +++ b/collections/developers/internals/zos/manual/workload_types.md @@ -66,7 +66,7 @@ For more details on all parameters needed to run a `zmachine` please refer to [` #### Building your `flist` -Please refer to [this document](./manual.md) here about how to build an compatible `zmachine flist` +Please refer to [this document](manual.md) here about how to build an compatible `zmachine flist` ### `zlogs` type diff --git a/collections/developers/internals/zos/manual/zmachine/readme.md b/collections/developers/internals/zos/manual/zmachine/readme.md index e94a0e7..99e01e3 100644 --- a/collections/developers/internals/zos/manual/zmachine/readme.md +++ b/collections/developers/internals/zos/manual/zmachine/readme.md @@ -10,4 +10,4 @@ For more details on all parameters needed to run a `zmachine` please refer to [`zmachine` data](https://github.com/threefoldtech/zos/blob/main/pkg/gridtypes/zos/zmachine.go) # Building your `flist`. -Please refer to [this document](../manual.md) here about how to build an compatible `zmachine flist` +Please refer to [this document](manual.md) here about how to build an compatible `zmachine flist` diff --git a/collections/developers/internals/zos/performance/performance.md b/collections/developers/internals/zos/performance/performance.md index 7f3ea76..f9585f6 100644 --- a/collections/developers/internals/zos/performance/performance.md +++ b/collections/developers/internals/zos/performance/performance.md @@ -80,10 +80,10 @@ Notes: ## Registered Tests -- [Public IP Validation](./publicips.md) -- [CPUBenchmark](./cpubench.md) -- [IPerf](./iperf.md) -- [Health Check](./healthcheck.md) +- [Public IP Validation](publicips.md) +- [CPUBenchmark](cpubench.md) +- [IPerf](iperf.md) +- [Health Check](healthcheck.md) ## Test Suite diff --git a/collections/developers/internals/zos/release/readme.md b/collections/developers/internals/zos/release/readme.md index 6af1a51..09ddc7b 100644 --- a/collections/developers/internals/zos/release/readme.md +++ b/collections/developers/internals/zos/release/readme.md @@ -3,7 +3,7 @@ We use a simple pipeline release workflow. Building and file distribution are made using GitHub Actions. Usable files are available on the [Zero-OS Hub](https://hub.grid.tf/tf-zos). -This pipeline is made to match the 3 different type of running mode of 0-OS. For more information head to the [upgrade documentation](../identity/upgrade.md). +This pipeline is made to match the 3 different type of running mode of 0-OS. For more information head to the [upgrade documentation](upgrade.md). ## Development build diff --git a/collections/developers/internals/zos/zos_readme.md b/collections/developers/internals/zos/zos_readme.md index 33d16df..33dd01f 100644 --- a/collections/developers/internals/zos/zos_readme.md +++ b/collections/developers/internals/zos/zos_readme.md @@ -2,27 +2,27 @@

Table of Contents

-- [Manual](./manual/manual.md) -- [Workload Types](./manual/workload_types.md) -- [Internal Modules](./internals/internals.md) - - [Identity](./internals/identity/index.md) - - [Node ID Generation](./internals/identity/identity.md) - - [Node Upgrade](./internals/identity/upgrade.md) - - [Node](./internals/node/index.md) - - [Storage](./internals/storage/index.md) - - [Network](./internals/network/index.md) - - [Introduction](./internals/network/introduction.md) - - [Definitions](./internals/network/definitions.md) - - [Mesh](./internals/network/mesh.md) - - [Setup](./internals/network/setup_farm_network.md) - - [Flist](./internals/flist/index.md) - - [Container](./internals/container/index.md) - - [VM](./internals/vmd/index.md) - - [Provision](./internals/provision/index.md) -- [Capacity](./internals/capacity.md) -- [Performance Monitor Package](./performance/performance.md) - - [Public IPs Validation Task](./performance/publicips.md) - - [CPUBenchmark](./performance/cpubench.md) - - [IPerf](./performance/iperf.md) - - [Health Check](./performance/healthcheck.md) -- [API](./manual/api.md) +- [Manual](manual.md) +- [Workload Types](workload_types.md) +- [Internal Modules](internals.md) + - [Identity](identity_readme.md) + - [Node ID Generation](identity.md) + - [Node Upgrade](upgrade.md) + - [Node](node_readme.md) + - [Storage](storage_readme.md) + - [Network](network_readme.md) + - [Introduction](introduction.md) + - [Definitions](definitions.md) + - [Mesh](mesh.md) + - [Setup](setup_farm_network.md) + - [Flist](flist_readme.md) + - [Container](container_readme.md) + - [VM](vmd_readme.md) + - [Provision](provision_readme.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) diff --git a/collections/developers/javascript/grid3_javascript_capacity_planning.md b/collections/developers/javascript/grid3_javascript_capacity_planning.md index f1db3cc..024d8e0 100644 --- a/collections/developers/javascript/grid3_javascript_capacity_planning.md +++ b/collections/developers/javascript/grid3_javascript_capacity_planning.md @@ -9,7 +9,7 @@ ## Introduction -It's almost the same as in [deploying a single VM](../javascript/grid3_javascript_vm.md) the only difference is you can automate the choice of the node to deploy on using code. We now support `FilterOptions` to filter nodes based on specific criteria e.g the node resources (CRU, SRU, HRU, MRU) or being part of a specific farm or located in some country, or being a gateway or not +It's almost the same as in [deploying a single VM](grid3_javascript_vm.md) the only difference is you can automate the choice of the node to deploy on using code. We now support `FilterOptions` to filter nodes based on specific criteria e.g the node resources (CRU, SRU, HRU, MRU) or being part of a specific farm or located in some country, or being a gateway or not ## Example diff --git a/collections/developers/javascript/grid3_javascript_caprover.md b/collections/developers/javascript/grid3_javascript_caprover.md index 1b1e1e3..ccdaacb 100644 --- a/collections/developers/javascript/grid3_javascript_caprover.md +++ b/collections/developers/javascript/grid3_javascript_caprover.md @@ -17,7 +17,7 @@ In this section, we show how to deploy CapRover with the Javascript client. -This deployment is very similar to what we have in the section [Deploy a VM](./grid3_javascript_vm.md), but the environment variables are different. +This deployment is very similar to what we have in the section [Deploy a VM](grid3_javascript_vm.md), but the environment variables are different. ## Leader Node diff --git a/collections/developers/javascript/grid3_javascript_installation.md b/collections/developers/javascript/grid3_javascript_installation.md index 3040880..2bce32f 100644 --- a/collections/developers/javascript/grid3_javascript_installation.md +++ b/collections/developers/javascript/grid3_javascript_installation.md @@ -36,7 +36,7 @@ To use the Grid Client, you will need the following on the TFGrid: - A TFChain account - TFT in your wallet -If it is not the case, please visit the [Get started section](../../system_administrators/getstarted/tfgrid3_getstarted.md). +If it is not the case, please visit the [Get started section](system_administrators@@tfgrid3_getstarted). ## Installation @@ -55,18 +55,16 @@ yarn add @threefold/grid_client To use the Grid Client locally, clone the repository then install the Grid Client: - Clone the repository - - ```bash - git clone https://github.com/threefoldtech/tfgrid-sdk-ts - ``` -- Install the Grid Client - - With yarn - - ```bash - yarn install - ``` - - With npm - - ```bash - npm install - ``` +```bash + git clone https://github.com/threefoldtech/tfgrid-sdk-ts +``` +- Install the Grid Client with yarn or npm +```bash +yarn install +``` +```bash +npm install +``` > Note: In the directory **grid_client/scripts**, we provided a set of scripts to test the Grid Client. @@ -81,7 +79,7 @@ Make sure to set the client configuration properly before using the Grid Client. - **network**: The network environment (**dev**, **qa**, **test** or **main**). - **mnemonic**: The 12 words mnemonics for your account. - - Learn how to create one [here](../../dashboard/wallet_connector.md). + - Learn how to create one [here](dashboard@@wallet_connector). - **storeSecret**: This is any word that will be used for encrypting/decrypting the keys on ThreeFold key-value store. @@ -94,11 +92,11 @@ Make sure to set the client configuration properly before using the Grid Client. The easiest way to test the installation is to run the following command with either yarn or npm to generate the Grid Client documentation: * With yarn - * ``` + ``` yarn run serve-docs ``` * With npm - * ``` + ``` npm run serve-docs ``` @@ -109,15 +107,13 @@ The easiest way to test the installation is to run the following command with ei You can explore the Grid Client by testing the different scripts proposed in **grid_client/scripts**. - Update your customized deployments specs if needed -- Run using [ts-node](https://www.npmjs.com/ts-node) - - With yarn - - ```bash - yarn run ts-node --project tsconfig-node.json scripts/zdb.ts - ``` - - With npx - - ```bash - npx ts-node --project tsconfig-node.json scripts/zdb.ts - ``` +- Run using [ts-node](https://www.npmjs.com/ts-node) with yarn or npx + ```bash + yarn run ts-node --project tsconfig-node.json scripts/zdb.ts + ``` + ```bash + npx ts-node --project tsconfig-node.json scripts/zdb.ts + ``` ## Reference API diff --git a/collections/developers/javascript/grid3_javascript_kubernetes.md b/collections/developers/javascript/grid3_javascript_kubernetes.md index 645f3e2..e9eeab7 100644 --- a/collections/developers/javascript/grid3_javascript_kubernetes.md +++ b/collections/developers/javascript/grid3_javascript_kubernetes.md @@ -21,7 +21,7 @@ We show how to deploy a Kubernetes cluster on the TFGrid with the Javascript cli ## Prerequisites -- Make sure you have your [client](./grid3_javascript_loadclient.md) prepared +- Make sure you have your [client](grid3_javascript_loadclient.md) prepared ## Example code diff --git a/collections/developers/javascript/grid3_javascript_kvstore.md b/collections/developers/javascript/grid3_javascript_kvstore.md index 5075086..25b6208 100644 --- a/collections/developers/javascript/grid3_javascript_kvstore.md +++ b/collections/developers/javascript/grid3_javascript_kvstore.md @@ -18,7 +18,7 @@ As part of the tfchain, we support a keyvalue store module that can be used for ## Prerequisites -- Make sure you have your [client](./grid3_javascript_loadclient.md) prepared +- Make sure you have your [client](grid3_javascript_loadclient.md) prepared ## Example code diff --git a/collections/developers/javascript/grid3_javascript_loadclient.md b/collections/developers/javascript/grid3_javascript_loadclient.md index fc7c025..11956c3 100644 --- a/collections/developers/javascript/grid3_javascript_loadclient.md +++ b/collections/developers/javascript/grid3_javascript_loadclient.md @@ -60,9 +60,9 @@ using e2e. That's similar to home servers by matrix - BackendStorage : can be `auto` which willl automatically adapt if running in node environment to use `filesystem backend` or the browser enviornment to use `localstorage backend`. Also you can set it to `kvstore` to use the tfchain keyvalue store module. - keypairType: is defaulted to `sr25519`, most likely you will never need to change it. `ed25519` is supported too. -for more details, check [client options](https://github.com/threefoldtech/tfgrid-sdk-ts/blob/development/packages/grid_client/docs/client_configuration.md) +for more details, check [client options](client_configuration.md) -> Note: The choice of the node is completely up to the user at this point. They need to do the capacity planning. Check [Node Finder](../../dashboard/deploy/node_finder.md) to know which nodes fits your deployment criteria. +> Note: The choice of the node is completely up to the user at this point. They need to do the capacity planning. Check [Node Finder](dashboard@@node_finder) to know which nodes fits your deployment criteria. -Check the document for [capacity planning using code](../javascript/grid3_javascript_capacity_planning.md) if you want to automate it +Check the document for [capacity planning using code](grid3_javascript_capacity_planning.md) if you want to automate it > Note: this feature is still experimental diff --git a/collections/developers/javascript/grid3_javascript_qsfs.md b/collections/developers/javascript/grid3_javascript_qsfs.md index df6b02a..1ef0d68 100644 --- a/collections/developers/javascript/grid3_javascript_qsfs.md +++ b/collections/developers/javascript/grid3_javascript_qsfs.md @@ -15,7 +15,7 @@ ## Prerequisites -First, make sure that you have your [client](./grid3_javascript_loadclient.md) prepared. +First, make sure that you have your [client](grid3_javascript_loadclient.md) prepared. ## Code Example @@ -257,7 +257,7 @@ log(">>>>>>>>>>>>>>>vm has been created<<<<<<<<<<<<<<<"); log(vm_res); ``` -So this deployment is almost similiar to what we have in the [vm deployment section](./grid3_javascript_vm.md). We only have a new section `qsfs_disks` +So this deployment is almost similiar to what we have in the [vm deployment section](grid3_javascript_vm.md). We only have a new section `qsfs_disks` ```ts qsfs_disks: [{ diff --git a/collections/developers/javascript/grid3_javascript_qsfs_zdbs.md b/collections/developers/javascript/grid3_javascript_qsfs_zdbs.md index 9c3a3f2..e7a02a6 100644 --- a/collections/developers/javascript/grid3_javascript_qsfs_zdbs.md +++ b/collections/developers/javascript/grid3_javascript_qsfs_zdbs.md @@ -21,7 +21,7 @@ We show how to deploy ZDBs for QSFS on the TFGrid with the Javascript client. ## Prerequisites -- Make sure you have your [client](./grid3_javascript_loadclient.md) prepared +- Make sure you have your [client](grid3_javascript_loadclient.md) prepared ## Example code diff --git a/collections/developers/javascript/grid3_javascript_readme.md b/collections/developers/javascript/grid3_javascript_readme.md index 7072d19..dc98621 100644 --- a/collections/developers/javascript/grid3_javascript_readme.md +++ b/collections/developers/javascript/grid3_javascript_readme.md @@ -4,21 +4,21 @@ This section covers developing projects on top of Threefold Grid using Javascrip Javascript has a huge ecosystem, and first class citizen when it comes to blockchain technologies like substrate and that was one of the reasons for it to become one the very first supported languages on the grid. -Please make sure to check the [basics](../../system_administrators/getstarted/tfgrid3_getstarted.md) before continuing. +Please make sure to check the [basics](system_administrators@@tfgrid3_getstarted) before continuing.

Table of Contents

-- [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) \ No newline at end of file +- [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) \ No newline at end of file diff --git a/collections/developers/javascript/grid3_javascript_vm.md b/collections/developers/javascript/grid3_javascript_vm.md index 5c9069e..af09bea 100644 --- a/collections/developers/javascript/grid3_javascript_vm.md +++ b/collections/developers/javascript/grid3_javascript_vm.md @@ -145,7 +145,7 @@ We need to specify its - disks: disks model collection - memory - root filesystem size -- flist: the image it is going to start from. Check the [supported flists](../flist/grid3_supported_flists.md) +- flist: the image it is going to start from. Check the [supported flists](grid3_supported_flists.md) - entry point: entrypoint command / script to execute - env: has the environment variables needed e.g sshkeys used - public ip: if we want to have a public ip attached to the VM diff --git a/collections/developers/javascript/grid3_javascript_vm_gateways.md b/collections/developers/javascript/grid3_javascript_vm_gateways.md index 052d9f3..ef02a78 100644 --- a/collections/developers/javascript/grid3_javascript_vm_gateways.md +++ b/collections/developers/javascript/grid3_javascript_vm_gateways.md @@ -19,7 +19,7 @@ ## Introduction -After the [deployment of a VM](./grid3_javascript_vm.md), now it's time to expose it to the world +After the [deployment of a VM](grid3_javascript_vm.md), now it's time to expose it to the world ## Example code @@ -104,7 +104,7 @@ log(d); ## Deploying a VM and exposing it over a Gateway using a Full domain -After the [deployment of a VM](./grid3_javascript_vm.md), now it's time to expose it to the world +After the [deployment of a VM](grid3_javascript_vm.md), now it's time to expose it to the world ## Example code diff --git a/collections/developers/javascript/grid3_javascript_vms.md b/collections/developers/javascript/grid3_javascript_vms.md index b928007..81e9a22 100644 --- a/collections/developers/javascript/grid3_javascript_vms.md +++ b/collections/developers/javascript/grid3_javascript_vms.md @@ -105,4 +105,4 @@ async function main() { main(); ``` -It's similiar to the previous section of [deploying a single VM](../javascript/grid3_javascript_vm.md), but just adds more vm objects to vms collection. +It's similiar to the previous section of [deploying a single VM](grid3_javascript_vm.md), but just adds more vm objects to vms collection. diff --git a/collections/developers/javascript/grid3_javascript_zdb.md b/collections/developers/javascript/grid3_javascript_zdb.md index d773269..12466ef 100644 --- a/collections/developers/javascript/grid3_javascript_zdb.md +++ b/collections/developers/javascript/grid3_javascript_zdb.md @@ -21,7 +21,7 @@ We show how to deploy ZDB on the TFGrid with the Javascript client. ## Prerequisites -- Make sure you have your [client](./grid3_javascript_loadclient.md) prepared +- Make sure you have your [client](grid3_javascript_loadclient.md) prepared ## Example code diff --git a/collections/developers/javascript/grid3_wireguard_gateway.md b/collections/developers/javascript/grid3_wireguard_gateway.md index 2cb1b89..449b08d 100644 --- a/collections/developers/javascript/grid3_wireguard_gateway.md +++ b/collections/developers/javascript/grid3_wireguard_gateway.md @@ -26,7 +26,7 @@ We present here the relevant information when it comes to deploying a virtual ma ## Client Configurations -To configure the client, have a look at [this section](./grid3_javascript_loadclient.md). +To configure the client, have a look at [this section](grid3_javascript_loadclient.md). @@ -186,7 +186,7 @@ log(vmResult); - `CreateNetWorkModel` : we are creating a network and set the node id to be `gwNode`, the name `monNetwork` and inside the function we set `addAccess: true` to add __wireguard__ access. -- `createMachineModel` and `createMachinesModel` is similar to the previous section of [deploying a single VM](../javascript/grid3_javascript_vm.md), but we are passing the created `NetworkModel` to the machines model and the entry point here runs a simple python server. +- `createMachineModel` and `createMachinesModel` is similar to the previous section of [deploying a single VM](grid3_javascript_vm.md), but we are passing the created `NetworkModel` to the machines model and the entry point here runs a simple python server. ### Deploy the Gateway diff --git a/collections/developers/proxy/contributions.md b/collections/developers/proxy/contributions.md index 3960676..1b4a132 100644 --- a/collections/developers/proxy/contributions.md +++ b/collections/developers/proxy/contributions.md @@ -45,11 +45,11 @@ The main structure of the code base is as follows: Adding a new endpoint should be accompanied with a corresponding test. Ideally every change or bug fix should include a test to ensure the new behavior/fix is working as intended. -Since these are integration tests, you need to first make sure that your local db is already seeded with the ncessary data. See tools [doc](./db_testing.md) for more information about how to prepare your db. +Since these are integration tests, you need to first make sure that your local db is already seeded with the ncessary data. See tools [doc](db_testing.md) for more information about how to prepare your db. Testing tools offer two clients that are the basic of most tests: - `local`: this client connects to the local db - `proxy client`: this client connects to the running local instance -You need to start an instance of the server before running the tests. Check [here](./commands.md) for how to start. +You need to start an instance of the server before running the tests. Check [here](commands.md) for how to start. diff --git a/collections/developers/proxy/proxy.md b/collections/developers/proxy/proxy.md index 7dc936c..25d5c10 100644 --- a/collections/developers/proxy/proxy.md +++ b/collections/developers/proxy/proxy.md @@ -20,7 +20,7 @@ The TFGrid client Proxy acts as an interface to access information about the gri The proxy is used as the backend of several threefold projects like: -- [Dashboard](../../dashboard/dashboard.md) +- [Dashboard](dashboard@@dashboard) @@ -50,7 +50,7 @@ By default, the instance runs against devnet. to configure that you will need to 3. **Docker**: Containerize the running services such as Postgres and Redis. 4. **Mnemonics**: Secret seeds for adummy identity to use for the relay client. -For more about the prerequisites and how to set up and configure them. follow the [Setup guide](./setup.md) +For more about the prerequisites and how to set up and configure them. follow the [Setup guide](setup.md) @@ -60,37 +60,37 @@ To start the services for development or testing make sure first you have all th - Clone this repo - ```bash + ``` git clone https://github.com/threefoldtech/tfgrid-sdk-go.git cd tfgrid-sdk-go/grid-proxy ``` - The `Makefile` has all that you need to deal with Db, Explorer, Tests, and Docs. - ```bash + ``` make help # list all the available subcommands. ``` - For a quick test explorer server. - ```bash + ``` make all-start e= ``` Now you can access the server at `http://localhost:8080` - Run the tests - ```bash + ``` make test-all ``` - Generate docs. - ```bash + ``` make docs ``` -To run in development environment see [here](./db_testing.md) how to generate test db or load a db dump then use: +To run in development environment see [here](db_testing.md) how to generate test db or load a db dump then use: ```sh go run cmds/proxy_server/main.go --address :8080 --log-level debug -no-cert --postgres-host 127.0.0.1 --postgres-db tfgrid-graphql --postgres-password postgres --postgres-user postgres --mnemonics @@ -98,7 +98,7 @@ go run cmds/proxy_server/main.go --address :8080 --log-level debug -no-cert --po Then visit `http://localhost:8080/` -For more illustrations about the commands needed to work on the project, see the section [Commands](./commands.md). For more info about the project structure and contributions guidelines check the section [Contributions](./contributions.md). +For more illustrations about the commands needed to work on the project, see the section [Commands](commands.md). For more info about the project structure and contributions guidelines check the section [Contributions](contributions.md). @@ -108,7 +108,7 @@ For more illustrations about the commands needed to work on the project, see the - You can either build the project: - ```bash + ``` make build chmod +x cmd/proxy_server/server \ && mv cmd/proxy_server/server /usr/local/bin/gridproxy-server @@ -117,7 +117,7 @@ For more illustrations about the commands needed to work on the project, see the - Or download a release: Check the [releases](https://github.com/threefoldtech/tfgrid-sdk-go/releases) page and edit the next command with the chosen version. - ```bash + ``` wget https://github.com/threefoldtech/tfgrid-sdk-go/releases/download/v1.6.7-rc2/tfgridclient_proxy_1.6.7-rc2_linux_amd64.tar.gz \ && tar -xzf tfgridclient_proxy_1.6.7-rc2_linux_amd64.tar.gz \ && chmod +x server \ @@ -128,7 +128,7 @@ For more illustrations about the commands needed to work on the project, see the - Create the service file - ```bash + ``` cat << EOF > /etc/systemd/system/gridproxy-server.service [Unit] Description=grid proxy server diff --git a/collections/developers/proxy/proxy_readme.md b/collections/developers/proxy/proxy_readme.md index aaf4266..3e74412 100644 --- a/collections/developers/proxy/proxy_readme.md +++ b/collections/developers/proxy/proxy_readme.md @@ -14,12 +14,12 @@ To assist you on your journey, we have organized the content into distinct chapt

Table of Contents

-- [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) \ No newline at end of file +- [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) \ No newline at end of file diff --git a/collections/developers/proxy/setup.md b/collections/developers/proxy/setup.md index fa8d07f..6667013 100644 --- a/collections/developers/proxy/setup.md +++ b/collections/developers/proxy/setup.md @@ -20,7 +20,7 @@ To install Golang, you can follow the official [guide](https://go.dev/doc/instal ## Docker -Docker is useful for running the TFGridDb in container environment. Read this to [install Docker engine](../../system_administrators/computer_it_basics/docker_basics.md#install-docker-desktop-and-docker-engine). +Docker is useful for running the TFGridDb in container environment. Read this to [install Docker engine](system_administrators@@docker_basics). Note: it will be necessary to follow step #2 in the previous article to run docker without sudo. if you want to avoid that. edit the docker commands in the `Makefile` and add sudo. diff --git a/collections/developers/tfchain/dev_tfchain.md b/collections/developers/tfchain/dev_tfchain.md index a575535..04c05cc 100644 --- a/collections/developers/tfchain/dev_tfchain.md +++ b/collections/developers/tfchain/dev_tfchain.md @@ -68,7 +68,7 @@ Every contract is billed every 1 hour on the chain, the amount that is due is de - 50% goes to certified sales channel - 35% TFT gets burned -See [pricing](../../../knowledge_base/cloud/pricing/pricing.md) for more information on how the cost for a contract is calculated. +See [pricing](cloud@@pricing) for more information on how the cost for a contract is calculated. ## Contract locking @@ -80,7 +80,7 @@ When the owner of a contract runs out funds on his wallet to pay for his deploym ## DAO -See [DAO](../../dashboard/tfchain/tf_dao.md) for more information on the DAO on TF Chain. +See [DAO](dashboard@@tf_dao) for more information on the DAO on TF Chain. ## Farming Policies diff --git a/collections/developers/tfchain/introduction.md b/collections/developers/tfchain/introduction.md index a983b68..d3dc87a 100644 --- a/collections/developers/tfchain/introduction.md +++ b/collections/developers/tfchain/introduction.md @@ -45,7 +45,7 @@ It is the backbone of [ZOS](https://github.com/threefoldtech/zos) and other comp A twin is a unique identifier linked to a specific account on a given TFChain network. Actually there are 2 ways to create a twin: -- With the [Dashboard](../../dashboard/wallet_connector.md) +- With the [Dashboard](dashboard@@wallet_connector) - a twin is automatically generated while creating a TFChain account - With the TFConnect app - a twin is automatically generated while creating a farm (in this case the twin will be created on mainnet) diff --git a/collections/developers/tfchain/tfchain_external_service_contract.md b/collections/developers/tfchain/tfchain_external_service_contract.md index 992186a..92196ab 100644 --- a/collections/developers/tfchain/tfchain_external_service_contract.md +++ b/collections/developers/tfchain/tfchain_external_service_contract.md @@ -2,10 +2,19 @@

Table of Contents

- [Introduction](#introduction) -- [Step 1: Create the contract and get its unique ID](#step-1-create-contract--get-unique-id) +- [Step 1: Create contract / Get unique ID](#step-1-create-contract--get-unique-id) + - [Create service contract](#create-service-contract) + - [Last service contract ID](#last-service-contract-id) + - [Parse service contract](#parse-service-contract) + - [Wrong contract ID ?](#wrong-contract-id-) - [Step 2: Fill contract](#step-2-fill-contract) - [Step 3: Both parties approve contract](#step-3-both-parties-approve-contract) - [Step 4: Bill for the service](#step-4-bill-for-the-service) + - [Send bill to consumer](#send-bill-to-consumer) + - [Billing frequency](#billing-frequency) + - [Amount due calculation](#amount-due-calculation) + - [Protection against draining](#protection-against-draining) + - [Billing considerations](#billing-considerations) - [Step 5: Cancel the contract](#step-5-cancel-the-contract) *** @@ -19,12 +28,12 @@ The initial scenario is when two parties, a service provider and a consumer of t This is actually a more direct and generic feature if we compare to the initial rewarding model where a service provider (or solution provider) is receiving TFT from a rewards distribution process, linked to a node contract and based on a cloud capacity consumption, which follows specific billing rules. The initial requirements are: -- Both service and consumer need to have their respective twin created on TFChain (if not, see [here](tfchain.md#create-a-tfchain-twin) how to do it) +- Both service and consumer need to have their respective twin created on TFChain (if not, see [here](dev_tfchain.md#create-a-tfchain-twin) how to do it) - Consumer account needs to be funded (lack of funds will simply result in the contract cancelation while billed) In the following steps we detail the sequence of extrinsics that need to be called in TFChain Polkadot portal for setting up and executing such contract. -Make sure to use right [links](tfchain.md#deployed-instances) depending on the targeted network. +Make sure to use right [links](dev_tfchain.md#deployed-instances) depending on the targeted network. # Step 1: Create contract / Get unique ID @@ -55,7 +64,7 @@ Check if the contract fields are correct, especially the twin ID of both service ## Wrong contract ID ? -If twin IDs are wrong ([how to get my twin ID?](tfchain.md#get-your-twin-id)) on service contract fields it means the contract does not correspond to the last created contract. +If twin IDs are wrong ([how to get my twin ID?](dev_tfchain.md#get-your-twin-id)) on service contract fields it means the contract does not correspond to the last created contract. In this case parse the last contracts on stack by decreasing `serviceContractId` and try to identify the right one; or the contract was simply not created so you should repeat the creation process and evaluate the error log. diff --git a/collections/developers/tfcmd/tfcmd.md b/collections/developers/tfcmd/tfcmd.md index daa502a..5389038 100644 --- a/collections/developers/tfcmd/tfcmd.md +++ b/collections/developers/tfcmd/tfcmd.md @@ -2,14 +2,14 @@ TFCMD (`tfcmd`) is a command line interface to interact and develop on Threefold Grid using command line. -Consult the [ThreeFoldTech TFCMD repository](https://github.com/threefoldtech/tfgrid-sdk-go/tree/development/grid-cli) for the latest updates. Make sure to read the [basics](../../system_administrators/getstarted/tfgrid3_getstarted.md). +Consult the [ThreeFoldTech TFCMD repository](https://github.com/threefoldtech/tfgrid-sdk-go/tree/development/grid-cli) for the latest updates. Make sure to read the [basics](system_administrators@@tfgrid3_getstarted).

Table of Contents

-- [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) \ No newline at end of file +- [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) \ No newline at end of file diff --git a/collections/developers/tfcmd/tfcmd_basics.md b/collections/developers/tfcmd/tfcmd_basics.md index 8816eea..2edecb3 100644 --- a/collections/developers/tfcmd/tfcmd_basics.md +++ b/collections/developers/tfcmd/tfcmd_basics.md @@ -21,17 +21,17 @@ TFCMD is available as binaries. Make sure to download the latest release and to An easy way to use TFCMD is to download and extract the TFCMD binaries to your path. - Download latest release from [releases](https://github.com/threefoldtech/tfgrid-sdk-go/releases) - - ``` - wget - ``` + ``` + wget + ``` - Extract the binaries - - ``` - tar -xvf - ``` + ``` + tar -xvf + ``` - Move `tfcmd` to any `$PATH` directory: - ```bash - mv tfcmd /usr/local/bin - ``` + ``` + mv tfcmd /usr/local/bin + ``` ## Login diff --git a/collections/developers/tfrobot/tfrobot.md b/collections/developers/tfrobot/tfrobot.md index c8b2d5f..0f7aa92 100644 --- a/collections/developers/tfrobot/tfrobot.md +++ b/collections/developers/tfrobot/tfrobot.md @@ -2,12 +2,12 @@ TFROBOT (`tfrobot`) is a command line interface tool that offers simultaneous mass deployment of groups of VMs on the ThreeFold Grid, with support of multiple retries for failed deployments, and customizable configurations, where you can define node groups, VMs groups and other configurations through a YAML or a JSON file. -Consult the [ThreeFoldTech TFROBOT repository](https://github.com/threefoldtech/tfgrid-sdk-go/tree/development/tfrobot) for the latest updates and read the [basics](../../system_administrators/getstarted/tfgrid3_getstarted.md) to get up to speed if needed. +Consult the [ThreeFoldTech TFROBOT repository](https://github.com/threefoldtech/tfgrid-sdk-go/tree/development/tfrobot) for the latest updates and read the [basics](system_administrators@@tfgrid3_getstarted) to get up to speed if needed.

Table of Contents

-- [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) \ No newline at end of file +- [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) \ No newline at end of file diff --git a/collections/developers/tfrobot/tfrobot_deploy.md b/collections/developers/tfrobot/tfrobot_deploy.md index 7e16d12..eb7a19f 100644 --- a/collections/developers/tfrobot/tfrobot_deploy.md +++ b/collections/developers/tfrobot/tfrobot_deploy.md @@ -20,7 +20,7 @@ We present how to deploy workloads on the ThreeFold Grid using TFROBOT. ## Prerequisites -To deploy workloads on the TFGrid with TFROBOT, you first need to [install TFROBOT](./tfrobot_installation.md) on your machine and create a [configuration file](./tfrobot_config.md). +To deploy workloads on the TFGrid with TFROBOT, you first need to [install TFROBOT](tfrobot_installation.md) on your machine and create a [configuration file](tfrobot_config.md). ## Deploy Workloads @@ -56,4 +56,4 @@ The TFCMD tool works well with TFROBOT, as it can be used to query the TFGrid, f tfcmd get contracts ``` -For more information on TFCMD, [read the documentation](../tfcmd/tfcmd.md). \ No newline at end of file +For more information on TFCMD, [read the documentation](tfcmd.md). \ No newline at end of file diff --git a/collections/developers/tfrobot/tfrobot_installation.md b/collections/developers/tfrobot/tfrobot_installation.md index deec2b8..f020750 100644 --- a/collections/developers/tfrobot/tfrobot_installation.md +++ b/collections/developers/tfrobot/tfrobot_installation.md @@ -23,14 +23,14 @@ To install TFROBOT, simply download and extract the TFROBOT binaries to your pat cd tfgrid-sdk-go ``` - Download latest release from [releases](https://github.com/threefoldtech/tfgrid-sdk-go/releases) - - ``` + ``` wget https://github.com/threefoldtech/tfgrid-sdk-go/releases/download/v0.14.4/tfgrid-sdk-go_Linux_x86_64.tar.gz ``` - Extract the binaries - - ``` + ``` tar -xvf tfgrid-sdk-go_Linux_x86_64.tar.gz ``` - Move `tfrobot` to any `$PATH` directory: - ```bash + ``` mv tfrobot /usr/local/bin ``` \ No newline at end of file diff --git a/collections/dy_intro/dunia_yetu/about_us.md b/collections/dy_intro/dunia_yetu/about_us.md index 632afc8..49d5c34 100644 --- a/collections/dy_intro/dunia_yetu/about_us.md +++ b/collections/dy_intro/dunia_yetu/about_us.md @@ -1,12 +1,13 @@ ![Image](img/about.png#medium#mx-auto) ## About Us -### Who we are +### Who We Are Dunia Yetu, which means "Our World" in Swahili, is not just a name; it's a powerful symbol of collective empowerment and a vision of a digital future where Tanzanians are in control of their own destiny. It embodies unity, autonomy, and a commitment to digital sovereignty. As a people-powered movement, Dunia Yetu aims to redefine Tanzania's digital ecosystem, emphasising collective ownership and a self-reliant digital future shaped by the community. Envision a future where Tanzanians create and oversee their digital experiences, tailored to the nation’s unique needs. Through Dunia Yetu, this vision becomes reality. ### Our Mission + Our mission is to unite a community, enhancing Tanzanian autonomy and independence. Empowering citizens to collectively shape Tanzania's future starts with regaining control of the nation’s Internet infrastructure and establishing a self-reliant digital ecosystem. In the next two years, we aim to empower thousands of coders with an innovative network and toolkit. Beyond technology, our initiative signifies more—an independent digital ecosystem proudly owned and managed by East Africans. The Internet was meant to be a peer-to-peer infrastructure where we are at the centre of our data and digital lives. Inspired by the past, we’re building an Internet how “the” Internet was originally intended. diff --git a/collections/dy_intro/dunia_yetu/dunia_yetu.md b/collections/dy_intro/dunia_yetu/dunia_yetu.md index 757cd4d..46cc051 100644 --- a/collections/dy_intro/dunia_yetu/dunia_yetu.md +++ b/collections/dy_intro/dunia_yetu/dunia_yetu.md @@ -2,3 +2,20 @@ ![Image](img/dunia2.png#medium#mx-auto) +Together with a group of tech community leaders and innovators from Dar Es Salaam, we have kicked off a project called Dunia Yetu (Our World, in Swahili). + +The primary goal of Dunia Yetu is to deliver a set of tools and a platform which will allow many thousands of coders in East Africa to create their own digital sovereign Internet. + +# Vision + +If we consider life as surfing on waves, some waves bring us forward, some we can't avoid and have potential to throw us off, and some we can help create to drive change. One thing is for sure: going against waves isn't so productive. + +We must recognize the waves that could harm us but not become consumed by them. + +What we require is a sea of change, but it won't come in the form of one monumental wave undoing everything we've done. The sea of change we need consists of millions, perhaps billions, of small waves all contributing to more sustainable life. + +Let's unite and empower each other to generate these life-sustaining waves. + +# Learn More + +Learn more about the project and the ongoing steps by reading this book. \ No newline at end of file diff --git a/collections/dy_intro/how_you_can_participate/build.md b/collections/dy_intro/how_you_can_participate/build.md index 5d9f695..b5789e1 100644 --- a/collections/dy_intro/how_you_can_participate/build.md +++ b/collections/dy_intro/how_you_can_participate/build.md @@ -1,6 +1,6 @@ ![image](img/build2.png "image_tooltip") -## Build on top of Tanzania’s decentralised internet +## Build on Top of Tanzania’s Decentralised Internet **True digital sovereignty for open-source builders** diff --git a/collections/dy_intro/how_you_can_participate/host_a_node.md b/collections/dy_intro/how_you_can_participate/host_a_node.md index 6fc6ab3..2c055a5 100644 --- a/collections/dy_intro/how_you_can_participate/host_a_node.md +++ b/collections/dy_intro/how_you_can_participate/host_a_node.md @@ -1,4 +1,4 @@ -## Host a node +## Host a Node You can help make Tanzania’s own sovereign internet a reality by hosting a node. @@ -6,19 +6,19 @@ By connecting hardware at your home or office – or anywhere you’d like – y ![image](img/node.png "image_tooltip") -### How to build a node +### How to Build a Node **Step 1 -** Obtain the hardware for a node which can be purchased [here](https://marketplace.3node.global/index.php) -**Step 2 -** Follow this [instruction manual](https://manual.grid.tf/farmers/3node_building/3node_building.html) to set up your node +**Step 2 -** Follow the [instruction manual](https://manual.grid.tf/documentation/farmers/3node_building/3node_building.html) to set up your node -**Step 3 -** Earn TFT [(learn more)](https://manual.grid.tf/farmers/farming_optimization/farming_optimization.html) +**Step 3 -** Earn TFT ([Learn more](https://manual.grid.tf/documentation/farmers/farming_optimization/calculate_roi.html)) We have a team on the ground in Dar Es Salaam for all the necessary support that you might need with setting up your node. -### How to earn TFT +### How to Earn TFT -Farmers earn TFT according to the amount of Internet capacity their Nodes connect to the ThreeFold Grid. The Internet capacity is verified by the ThreeFold Blockchain on an ongoing basis using the “Proof-of-Capacity” algorithm. Learn more [here](https://manual.grid.tf/threefold_token/threefold_token.html). +Farmers earn TFT according to the amount of Internet capacity their Nodes connect to the ThreeFold Grid. The Internet capacity is verified by the ThreeFold Blockchain on an ongoing basis using the “Proof-of-Capacity” algorithm. Learn more [here](https://manual.grid.tf/documentation/threefold_token/threefold_token.html). ![image](img/tft.png "image_tooltip") diff --git a/collections/dy_intro/how_you_can_participate/participate.md b/collections/dy_intro/how_you_can_participate/participate.md index 50adabc..05e1750 100644 --- a/collections/dy_intro/how_you_can_participate/participate.md +++ b/collections/dy_intro/how_you_can_participate/participate.md @@ -1,4 +1,4 @@ -# How you can participate +# How You Can Participate ![Image](img/participate.png#medium#mx-auto) diff --git a/collections/faq/faq.md b/collections/faq/faq.md index dda0496..8051352 100644 --- a/collections/faq/faq.md +++ b/collections/faq/faq.md @@ -24,7 +24,7 @@ - [ThreeFold uses Quantum Safe Storage technology, what does it mean?](#threefold-uses-quantum-safe-storage-technology-what-does-it-mean) - [Quantum Safe File System (QSFS) allows for part of the storage to go down and it can self repair, however it’s still attached to a single VM and a single point of failure. Can a QSFS instance be reattached to another VM to recover it?](#quantum-safe-file-system-qsfs-allows-for-part-of-the-storage-to-go-down-and-it-can-self-repair-however-its-still-attached-to-a-single-vm-and-a-single-point-of-failure-can-a-qsfs-instance-be-reattached-to-another-vm-to-recover-it) - [Where does the ThreeFold Explorer take its data from?](#where-does-the-threefold-explorer-take-its-data-from) - - [How can I use the Gridproxy to query information on the TF Grid?](#how-can-i-use-the-gridproxy-to-query-information-on-the-tf-grid) + - [How can I use the Gridproxy public API to query information on the TFGrid?](#how-can-i-use-the-gridproxy-public-api-to-query-information-on-the-tfgrid) - [How can I see the stats of the ThreeFold Grid?](#how-can-i-see-the-stats-of-the-threefold-grid) - [What is the difference between a seed phrase (mnemonics) and an HEX secret?](#what-is-the-difference-between-a-seed-phrase-mnemonics-and-an-hex-secret) - [Buying and Transacting TFT](#buying-and-transacting-tft) @@ -219,6 +219,7 @@ - [Troubleshooting and Error Messages](#troubleshooting-and-error-messages) - [Is it possible to access the Error Screen or Log Screen?](#is-it-possible-to-access-the-error-screen-or-log-screen) - [What does it mean when I see, during the 3Node boot, the message: error = context deadline exceeded?](#what-does-it-mean-when-i-see-during-the-3node-boot-the-message-error--context-deadline-exceeded) + - [How can I fix the error messages: "context deadline exceeded" accompanied with "node is behind acceptable delay with timestamp"?](#how-can-i-fix-the-error-messages-context-deadline-exceeded-accompanied-with-node-is-behind-acceptable-delay-with-timestamp) - [I try to boot a 3Node, but I get the error: "No Route to Host on Linux". What does it mean?](#i-try-to-boot-a-3node-but-i-get-the-error-no-route-to-host-on-linux-what-does-it-mean) - [How can I fix the error: "Network configuration succeed but Zero-OS kernel could not be downloaded" when booting a 3Node?](#how-can-i-fix-the-error-network-configuration-succeed-but-zero-os-kernel-could-not-be-downloaded-when-booting-a-3node) - [Using SAS disks, I get the error; "No ssd found, failed to register". What can I do to fix this?](#using-sas-disks-i-get-the-error-no-ssd-found-failed-to-register-what-can-i-do-to-fix-this) @@ -314,7 +315,7 @@ Apply [here](https://marketplace.3node.global/index.php?dispatch=companies.apply There are 2 ways to create a twin: -You can create a twin via the [ThreeFold Dashboard](../dashboard/wallet_connector.md). +You can create a twin via the [ThreeFold Dashboard](dashboard@@wallet_connector). You can also create a twin via the ThreeFold Connect app. Indeed, a twin is automatically generated while creating a farm. Note that, in this case, the twin will be created on mainnet. @@ -409,9 +410,9 @@ See the next Q&A for more information on Swagger. -### How can I use the Gridproxy to query information on the TF Grid? +### How can I use the Gridproxy public API to query information on the TFGrid? -You can go to the Gridproxy Swagger index: [https://gridproxy.grid.tf/swagger/index.html](https://gridproxy.grid.tf/swagger/index.html). +You can go to the Gridproxy public API Swagger index: [https://gridproxy.grid.tf/swagger/index.html](https://gridproxy.grid.tf/swagger/index.html). There you can query information such as information on a 3node. @@ -743,18 +744,18 @@ To learn more about this process, [watch this great video](https://youtu.be/axvK If you've already done an SSH connection on your computer, the issue is most probably that the "host key has just been changed". To fix this, try one of those two solutions: * Linux and MAC: - * ``` + ``` sudo rm ~/.ssh/known_hosts ``` * Windows: - * ``` + ``` rm ~/.ssh/known_hosts ``` To be more specific, you can remove the probematic host: * Windows, Linux and MAC: - * ``` + ``` ssh-keygen -R ``` @@ -865,7 +866,7 @@ http://[319:3cf0:dd1d:47b9:20c:29ff:fe2c:39be]/ If you can reach this website, it means that you are properly connected. -For more information on how to connect to Yggrasil (and the Planetary Network), read [this guide](../system_administrators/getstarted/ssh_guide/ssh_guide.md). +For more information on how to connect to Yggrasil (and the Planetary Network), read [this guide](system_administrators@@ssh_guide). @@ -1463,7 +1464,7 @@ No, as long as the 3Node is connected to the Internet via an ethernet cable (wif A small DIY 3Node based on a compact office computer will draw under 20W. A full size server will draw around 100W idling. Note that a 3Node actively used on the Grid (proof-of-utilization) will draw more power, but also generate passive income on top of farming if you have a public IP address. -For more information, read thes section [Calculate the Total Electricity Cost of Your Farm](../farmers/farming_optimization/farming_costs.md#calculate-the-total-electricity-cost-of-your-farm) of the Farming Guide. +For more information, read thes section [Calculate the Total Electricity Cost of Your Farm](farmers@@farming_costs) of the Farming Guide. @@ -1621,7 +1622,7 @@ It depends on your 3Node's system. Newer computers and servers will accept UEFI. ### How do I set the BIOS or UEFI of my 3Node? -You can read this [documentation](../farmers/3node_building/5_set_bios_uefi.md) to learn more about BIOS and UEFI settings for a DIY 3Node. +You can read this [documentation](farmers@@5_set_bios_uefi) to learn more about BIOS and UEFI settings for a DIY 3Node. @@ -2042,6 +2043,15 @@ Yes! On the Zero-OS console, hit alt-F2 to open up the Error/Log Screen, and hit In general, this message means that the ThreeFold Grid asked something to your 3Node, and your 3Node could not respond fast enough. It is usually necessary to read the following error message to understand the situation more specifically. +### How can I fix the error messages: "context deadline exceeded" accompanied with "node is behind acceptable delay with timestamp"? + +This often indicates that the real-time clock of the system is not synced with current time. There have been different fixes reported to this issue. + +You can boot the node using a Ubuntu live image to sync the hardware time. After that, you can reboot the node and it should boot normally. + +You can fix this manually in the BIOS. Go to the BIOS settings and adjust the **Time** and **Date** settings. + +You can also try to adjust the clock by NTP over the network, if it applies to your case. ### I try to boot a 3Node, but I get the error: "No Route to Host on Linux". What does it mean? @@ -2068,13 +2078,13 @@ First make sure to wipe the disks and then boot your 3Node. If you've wiped the 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](../farmers/3node_building/4_wipe_all_disks.md) of the 3Nodes +* Make sure to [wipe the disks](farmers@@4_wipe_all_disks) 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 ``` @@ -2094,7 +2104,7 @@ Anyone experiencing frequently this issue where Z-OS sometimes detects an SSD as * 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** @@ -2161,15 +2171,13 @@ Many different reasons can cause this issue. When you get that error, sometimes * 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 umount /dev/sda sudo wipefs -a /dev/sda ``` diff --git a/collections/farmers/3node_building/1_create_farm.md b/collections/farmers/3node_building/1_create_farm.md index 460fc32..61ec8cc 100644 --- a/collections/farmers/3node_building/1_create_farm.md +++ b/collections/farmers/3node_building/1_create_farm.md @@ -44,7 +44,7 @@ Click on **Create Farm**, choose a farm name and then click **Create**. ## Create a ThreeFold Connect Wallet -Your farming rewards should be sent to a Stellar wallet with a TFT trustline enabled. The simplest way to proceed is to create a TF Connect app wallet as the TFT trustline is enabled by default on this wallet. For more information on TF Connect, read [this section](../../threefold_token/storing_tft/tf_connect_app.md). +Your farming rewards should be sent to a Stellar wallet with a TFT trustline enabled. The simplest way to proceed is to create a TF Connect app wallet as the TFT trustline is enabled by default on this wallet. For more information on TF Connect, read [this section](threefold_token@@tf_connect_app). Let's create a TFConnect Wallet and take note of the wallet address. First, download the app. @@ -85,4 +85,4 @@ Farming rewards will be sent to your farming wallet around the 8th of each month ## More Information -For more information, such as setting IP addresses, you can consult the [Dashboard Farms section](../../dashboard/farms/farms.md). \ No newline at end of file +For more information, such as setting IP addresses, you can consult the [Dashboard Farms section](dashboard@@farms). \ No newline at end of file diff --git a/collections/farmers/3node_building/2_bootstrap_image.md b/collections/farmers/3node_building/2_bootstrap_image.md index 9234242..eed1aa2 100644 --- a/collections/farmers/3node_building/2_bootstrap_image.md +++ b/collections/farmers/3node_building/2_bootstrap_image.md @@ -7,7 +7,7 @@ - [Burn the Zero-OS Bootstrap Image](#burn-the-zero-os-bootstrap-image) - [CD/DVD BIOS](#cddvd-bios) - [USB Key BIOS+UEFI](#usb-key-biosuefi) - - [BalenaEtcher (MAC, Linux, Windows)](#balenaetcher-mac-linux-windows) + - [BalenaEtcher - MAC, Linux, Windows](#balenaetcher---mac-linux-windows) - [CLI (Linux)](#cli-linux) - [Rufus (Windows)](#rufus-windows) - [Additional Information (Optional)](#additional-information-optional) @@ -70,7 +70,7 @@ For the BIOS **ISO** image, download the file and burn it on a DVD. There are many ways to burn the bootstrap image on a USB key. The easiest way that works for all operating systems is to use BalenaEtcher. We also provide other methods. -#### BalenaEtcher (MAC, Linux, Windows) +#### BalenaEtcher - MAC, Linux, Windows For **MAC**, **Linux** and **Windows**, you can use [BalenaEtcher](https://www.balena.io/etcher/) to load/flash the image on a USB stick. This program also formats the USB in the process. This will work for the option **EFI IMG** for UEFI boot, and with the option **USB** for BIOS boot. Simply follow the steps presented to you and make sure you select the bootstrap image file you downloaded previously. diff --git a/collections/farmers/3node_building/3_set_hardware.md b/collections/farmers/3node_building/3_set_hardware.md index 6f053dd..7e19e5a 100644 --- a/collections/farmers/3node_building/3_set_hardware.md +++ b/collections/farmers/3node_building/3_set_hardware.md @@ -39,7 +39,7 @@ Note that you can run Zero-OS on a Virtual Machine (VM), but you won't farm any Also, note that ThreeFold runs its own OS, which is Zero-OS. You thus need to start with completely wiped disks. You cannot farm TFT with Windows, Linux or MAC OS installed on your disks. If you need to use such OS temporarily, boot it in Try mode with a removable media (USB key). -Note: Once you have the necessary hardware, you need to [create a farm](./1_create_farm.md), [create a Zero-OS bootstrap image](./2_bootstrap_image.md), [wipe your disks](./4_wipe_all_disks.md) and [set the BIOS/UEFI](./5_set_bios_uefi.md) . Then you can [boot your 3Node](./6_boot_3node.md). If you are planning in building a farm in data center, [read this section](../advanced_networking/advanced_networking_toc.md). +Note: Once you have the necessary hardware, you need to [create a farm](1_create_farm.md), [create a Zero-OS bootstrap image](2_bootstrap_image.md), [wipe your disks](4_wipe_all_disks.md) and [set the BIOS/UEFI](5_set_bios_uefi.md) . Then you can [boot your 3Node](6_boot_3node.md). If you are planning in building a farm in data center, [read this section](advanced_networking_toc.md). diff --git a/collections/farmers/3node_building/3node_building.md b/collections/farmers/3node_building/3node_building.md index 8f26b69..bf94262 100644 --- a/collections/farmers/3node_building/3node_building.md +++ b/collections/farmers/3node_building/3node_building.md @@ -2,13 +2,13 @@ This section of the ThreeFold Farmers book presents the necessary and basic steps to build a DIY 3Node. -For advanced farming information, such as GPU farming and room parameters, refer to the section [Farming Optimization](../farming_optimization/farming_optimization.md). +For advanced farming information, such as GPU farming and room parameters, refer to the section [Farming Optimization](farming_optimization.md).

Table of Contents

-- [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) \ No newline at end of file +- [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) \ No newline at end of file diff --git a/collections/farmers/3node_building/4_wipe_all_disks.md b/collections/farmers/3node_building/4_wipe_all_disks.md index 4e252a5..bcc5005 100644 --- a/collections/farmers/3node_building/4_wipe_all_disks.md +++ b/collections/farmers/3node_building/4_wipe_all_disks.md @@ -101,6 +101,6 @@ If you're having issues wiping the disks, you might need to use **--force** or * 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. -If you are using a server with onboard storage, you might need to [re-flash the RAID card](../../faq/faq.md#is-there-a-way-to-bypass-raid-in-order-for-zero-os-to-have-bare-metals-on-the-system-no-raid-controller-in-between-storage-and-the-grid). +If you are using a server with onboard storage, you might need to re-flash the RAID card. [Read the FAQ](faq@@faq) for more information. diff --git a/collections/farmers/3node_building/5_set_bios_uefi.md b/collections/farmers/3node_building/5_set_bios_uefi.md index 4c6c3e9..fa45624 100644 --- a/collections/farmers/3node_building/5_set_bios_uefi.md +++ b/collections/farmers/3node_building/5_set_bios_uefi.md @@ -159,7 +159,7 @@ Choices 1 and 2 are for UEFI (newer models). Choices 4 and 5 are for BIOS (newer models). Choices 3 and 6 are mainly for network boot. -Refer to [this previous section](./2_bootstrap_image.md) for more information on creating a Zero-OS bootstrap image. +Refer to [this previous section](2_bootstrap_image.md) for more information on creating a Zero-OS bootstrap image. For information on how to boot Zero-OS with iPXE, read [this section](./6_boot_3node.md#advanced-booting-methods-optional). diff --git a/collections/farmers/3node_building/6_boot_3node.md b/collections/farmers/3node_building/6_boot_3node.md index 404e2e9..0b5a6be 100644 --- a/collections/farmers/3node_building/6_boot_3node.md +++ b/collections/farmers/3node_building/6_boot_3node.md @@ -23,19 +23,19 @@ One of the great features of Zero-OS is that it can be completely run within the ## 1. Booting the 3Node with Zero-OS -To boot Zero-OS, insert your Zero-OS bootstrap image USB key, power on your computer and choose the right booting sequence and parameters ([BIOS or UEFI](./5_set_bios_uefi.md)) in your BIOS/UEFI settings. Then, restart the 3Node. Zero-OS should boot automatically. +To boot Zero-OS, insert your Zero-OS bootstrap image USB key, power on your computer and choose the right booting sequence and parameters ([BIOS or UEFI](5_set_bios_uefi.md)) in your BIOS/UEFI settings. Then, restart the 3Node. Zero-OS should boot automatically. Note that you need an ethernet cable connected to your router or switch. You cannot farm on the ThreeFold Grid with Wifi. The first time you boot a 3Node, it will be written: “This node is not registered (farmer : NameOfFarm). This is normal. The Grid will create a node ID and you will be able to see it on screen. This can take a couple of minutes. -If time passes (an hour and more) and the node does not get registered, in many cases, [wiping the disks](./4_wipe_all_disks.md) all over again and trying another reboot usually resolves this issue. +If time passes (an hour and more) and the node does not get registered, in many cases, [wiping the disks](4_wipe_all_disks.md) all over again and trying another reboot usually resolves this issue. Once you have your node ID, you can also go on the ThreeFold Dashboard to see your 3Node and verify that your 3Node is online. ## 2. Check the 3Node Status Online -You can use the ThreeFold [Node Finder](../../dashboard/deploy/node_finder.md) to verify that your 3Node is online. +You can use the ThreeFold [Node Finder](node_finder.md) to verify that your 3Node is online. * [ThreeFold Main Net Dashboard](https://dashboard.grid.tf/) * [ThreeFold Test Net Dashboard](https://dashboard.test.grid.tf/) diff --git a/collections/farmers/3node_building/gpu_farming.md b/collections/farmers/3node_building/gpu_farming.md index b684163..cbb0de0 100644 --- a/collections/farmers/3node_building/gpu_farming.md +++ b/collections/farmers/3node_building/gpu_farming.md @@ -35,7 +35,7 @@ We cover the basic steps to install the GPU on your 3Node. * Install the GPU on the server * Note: You might need to move or remove some pieces of your server to make room for the GPU * (Optional) Boot the 3Node with a Linux distro (e.g. Ubuntu) and use the terminal to check if the GPU is recognized by the system - * ``` + ``` sudo lshw -C Display ``` * Output example with an AMD Radeon (on the line `product: ...`) @@ -48,13 +48,13 @@ If you are using the Farmerbot, it might be a good idea to first boot the GPU no ## Set a Price for the GPU Node -You can [set additional fees](../farming_optimization/set_additional_fees.md) for your GPU dedicated node on the [TF Dashboard](https://dashboard.grid.tf/). +You can [set additional fees](set_additional_fees.md) for your GPU dedicated node on the [TF Dashboard](https://dashboard.grid.tf/). When a user reserves your 3Node as a dedicated node, you will receive TFT payments once every 24 hours. These TFT payments will be sent to the TFChain account of your farm's twin. ## Check the GPU Node on the Node Finder -You can use the [Node Finder](../../dashboard/deploy/node_finder.md) on the [TF Dashboard](https://dashboard.grid.tf/) to verify that the node is displayed as having a GPU. +You can use the [Node Finder](dashboard@@node_finder) on the [TF Dashboard](https://dashboard.grid.tf/) to verify that the node is displayed as having a GPU. * On the Dashboard, go to the Node Finder * Under **Node ID**, write the node ID of the GPU node @@ -65,7 +65,7 @@ You can use the [Node Finder](../../dashboard/deploy/node_finder.md) on the [TF ## Reserving the GPU Node -Now, users can reserve the node in the **Dedicated Nodes** section of the Dashboard and then deploy workloads using the GPU. For more information, read [this documentation](../../dashboard/deploy/dedicated_machines.md). +Now, users can reserve the node using the **Node Finder** of the Dashboard and then deploy workloads using the GPU. For more information, read [this documentation](dashboard@@node_finder). ## Questions and Feedback diff --git a/collections/farmers/3node_building/img/dashboard_bootstrap_farm.png b/collections/farmers/3node_building/img/dashboard_bootstrap_farm.png new file mode 100644 index 0000000..82f8759 Binary files /dev/null and b/collections/farmers/3node_building/img/dashboard_bootstrap_farm.png differ diff --git a/collections/farmers/3node_building/minting_receipts.md b/collections/farmers/3node_building/minting_receipts.md index 2b84f1b..26f827e 100644 --- a/collections/farmers/3node_building/minting_receipts.md +++ b/collections/farmers/3node_building/minting_receipts.md @@ -5,12 +5,13 @@ - [Introduction](#introduction) - [Access the Reports](#access-the-reports) - [Available Information](#available-information) +- [TFT Farming Registration Price](#tft-farming-registration-price) *** ## Introduction -Once you have the receipt hash of your node minting, you can get the [minting report](../../dashboard/tfchain/tf_minting_reports.md) of your node. +Once you have the receipt hash of your node minting, you can get the [minting report](dashboard@@tf_minting_reports) of your node. ## Access the Reports @@ -22,11 +23,11 @@ Once you have the receipt hash of your node minting, you can get the [minting re The ThreeFold Alpha minting tool will present the following information for each minting receipt hash: -- Node Info +- Node Info: This contains the basic information in relation to your node. - Node ID - Farm Name and ID - Measured Uptime -- Node Resources +- Node Resources: These resources are related to the [cloud units](cloud@@cloudunits) and the [resource units](cloud@@resource_units_calc_cloudunits). - CU - SU - NU @@ -34,65 +35,11 @@ The ThreeFold Alpha minting tool will present the following information for each - MRU - SRU - HRU -- TFT Farmed -- Payout Address +- TFT Farmed: This is the quantity of TFT farmed during the minting period. +- Payout Address: The payout address is the Stellar address you set to receive your farming rewards. - \ No newline at end of file +The ThreeFold DAO can vote to change this number. For example, if the ThreeFold DAO decides to increase the TFT minting value to 0.10 USD, the farming difficulty would be increased by 25% (0.08 * 1.25 = 0.10). This updated TFT farming registration price would then affect all new nodes that are registered after the DAO vote is passed. \ No newline at end of file diff --git a/collections/farmers/advanced_networking/advanced_networking_toc.md b/collections/farmers/advanced_networking/advanced_networking_toc.md index f30a86f..4aecc82 100644 --- a/collections/farmers/advanced_networking/advanced_networking_toc.md +++ b/collections/farmers/advanced_networking/advanced_networking_toc.md @@ -6,8 +6,8 @@ In this section, we provide advanced networking tips for farms with public IPs a

Table of Contents

-- [Networking Overview](./networking_overview.md) -- [Network Considerations](./network_considerations.md) -- [Network Setup](./network_setup.md) +- [Networking Overview](networking_overview.md) +- [Network Considerations](network_considerations.md) +- [Network Setup](network_setup.md) > Note: This documentation does not constitute a complete set of knowledge on setting farms with public IP addresses in a data center. Please make sure to do your own research and communicate with your data center and your Internet service provider for any additional information. \ No newline at end of file diff --git a/collections/farmers/advanced_networking/network_setup.md b/collections/farmers/advanced_networking/network_setup.md index 1a0302d..2d8ffac 100644 --- a/collections/farmers/advanced_networking/network_setup.md +++ b/collections/farmers/advanced_networking/network_setup.md @@ -28,7 +28,7 @@ The nodes themselves can have connectivity in a few different ways: - Only have RFC1918 private addresses, connected to the Internet through NAT, NO IPv6 Mostly, these are single-NIC (Network card) machines that can host some workloads through the Overlay Network, but - cant't expose services directly. These are HIDDEN nodes, and are mostly booted with an USB stick from + can't expose services directly. These are HIDDEN nodes, and are mostly booted with an USB stick from bootstrap.grid.tf . - Dual-stacked: having RFC1918 private IPv4 and public IPv6 , where the IPv6 addresses are received from a home router, but firewalled for outgoing traffic only. These nodes are effectively also HIDDEN @@ -70,9 +70,9 @@ Use your (home) ISP router Ipv6 DHCP capabilities to provide (private) IPv6 addr ### 2.2 Data Center/Advanced Setup -In this situation there are many options on how to setup you node. This requires you as the expert to make a few decisions on how to connect what what the best setup is that you can support for the operaitonal time of your farm. The same basics principles apply: - - You have to have a block of (public) IPv6 routed to you router, or you have to have your router setup to provide Network Address Translation (NAT) - - You have to have a DHCP server in your network that manages and controls IPV6 ip adress leases. Depending on your specific setup you have this DHCP server manage a public IPv6y range which makes all nodes directly connected to the public internet or you have this DHCP server manage a private block og IPv6 addresses which makes all you nodes connect to the internet through NAT. +In this situation there are many options on how to setup your node. This requires you as the expert to make a few decisions on how to connect what what the best setup is that you can support for the operaitonal time of your farm. The same basics principles apply: + - You have to have a block of (public) IPv6 routed to your router, or you have to have your router setup to provide Network Address Translation (NAT) + - You have to have a DHCP server in your network that manages and controls IPV6 ip adress leases. Depending on your specific setup you have this DHCP server manage a public IPv6 range which makes all nodes directly connected to the public internet or you have this DHCP server manage a private block of IPv6 addresses which makes all your nodes connect to the internet through NAT. As a farmer you are in charge of selecting and creating the appropriate network setup for your farm. diff --git a/collections/farmers/advanced_networking/networking_overview.md b/collections/farmers/advanced_networking/networking_overview.md index c4bc322..8a9f68f 100644 --- a/collections/farmers/advanced_networking/networking_overview.md +++ b/collections/farmers/advanced_networking/networking_overview.md @@ -22,7 +22,7 @@ In this section, we provide advanced networking tips for farms with public IPs a For farmers who have public IPs, extra considerations are needed in setting up the network of the farm. We will go through the main considerations in this section. -First, we must acknowledge that by the open-source and design of ThreeFold farming, a farm can range from a simple [single 3Node](../3node_building/3node_building.md) setup, to a multi-rack farm hosted in a typical data center, and everything in-between, from the farmer experiencing with public IP blocks, to the entrepreneur who builds their own data center at home. +First, we must acknowledge that by the open-source and design of ThreeFold farming, a farm can range from a simple [single 3Node](3node_building.md) setup, to a multi-rack farm hosted in a typical data center, and everything in-between, from the farmer experiencing with public IP blocks, to the entrepreneur who builds their own data center at home. There are thus many types of farms and each will have varying configurations. The simplest way to set up a farm has been extensively discussed in the first steps of creating a farm. But what are the other more complex configurations possible? Let's go through some of those: diff --git a/collections/farmers/complete_diy_guides/3node_diy_desktop/3node_diy_desktop.md b/collections/farmers/complete_diy_guides/3node_diy_desktop/3node_diy_desktop.md index de74eb0..2662525 100644 --- a/collections/farmers/complete_diy_guides/3node_diy_desktop/3node_diy_desktop.md +++ b/collections/farmers/complete_diy_guides/3node_diy_desktop/3node_diy_desktop.md @@ -82,11 +82,11 @@ You can create a farm with either the ThreeFold Dashboard or the ThreeFold Conne ## Using Dashboard -The Dashboard section contains all the information required to [create a farm](../../../dashboard/farms/your_farms.md). +The Dashboard section contains all the information required to [create a farm](dashboard@@your_farms). ## Using TF Connect App -You can [create a ThreeFold farm](../../../threefold_token/storing_tft/tf_connect_app.md) with the ThreeFold Connect App. +You can [create a ThreeFold farm](threefold_token@@tf_connect_app) with the ThreeFold Connect App. # 2. Create a Zero-OS Bootstrap Image @@ -387,7 +387,7 @@ Once you have your node ID, you can also go on the ThreeFold Dashboard to see yo ## Check the Node Status -You can use the [Node Finder](../../../dashboard/deploy/node_finder.md) on the [TF Dashboard](https://dashboard.grid.tf/) to verify that the node is online. +You can use the [Node Finder](dashboard@@node_finder) on the [TF Dashboard](https://dashboard.grid.tf/) to verify that the node is online. Enter your node ID and click **Apply**. diff --git a/collections/farmers/complete_diy_guides/3node_diy_rack_server/3node_diy_rack_server.md b/collections/farmers/complete_diy_guides/3node_diy_rack_server/3node_diy_rack_server.md index 3686915..27cd910 100644 --- a/collections/farmers/complete_diy_guides/3node_diy_rack_server/3node_diy_rack_server.md +++ b/collections/farmers/complete_diy_guides/3node_diy_rack_server/3node_diy_rack_server.md @@ -272,15 +272,15 @@ You can create a farm with either the ThreeFold Dashboard or the ThreeFold Conne ### Using Dashboard -The Dashboard section contains all the information required to [create a farm](../../../dashboard/farms/your_farms.md). +The Dashboard section contains all the information required to [create a farm](dashboard@@your_farms). ### Using TF Connect App -You can [create a ThreeFold farm](../../../threefold_token/storing_tft/tf_connect_app.md) with the ThreeFold Connect App. +You can [create a ThreeFold farm](threefold_token@@tf_connect_app) with the ThreeFold Connect App. ## Wiping All the Disks -You might need to wipe your disks if they are not brand new. To wipe your disks, read the section [Wipe All the Disks](../../3node_building/4_wipe_all_disks.md) of the ThreeFold Farming Documentation. +You might need to wipe your disks if they are not brand new. To wipe your disks, read the section [Wipe All the Disks](4_wipe_all_disks.md) of the ThreeFold Farming Documentation. ## Downloading the Zero-OS Bootstrap Image @@ -319,7 +319,7 @@ When you start the server, press F2 to get into System Setup. Then, select System BIOS. In System BIOS settings, select Processor Settings. -Note: More details are available for BIOS Settings in this [documentation](../../3node_building/5_set_bios_uefi.md). +Note: More details are available for BIOS Settings in this [documentation](5_set_bios_uefi.md). ## Processor Settings diff --git a/collections/farmers/farmerbot/farmerbot_information.md b/collections/farmers/farmerbot/farmerbot_information.md index ef86e19..30ffc0d 100644 --- a/collections/farmers/farmerbot/farmerbot_information.md +++ b/collections/farmers/farmerbot/farmerbot_information.md @@ -36,6 +36,8 @@ - [Properly reboot the node if power target "Down" doesn't work](#properly-reboot-the-node-if-power-target-down-doesnt-work) - [Add a 3Node to a running Farmerbot](#add-a-3node-to-a-running-farmerbot) - [Update the Farmerbot with a new release](#update-the-farmerbot-with-a-new-release) +- [Troubleshooting](#troubleshooting) + - [Can't Find the Logs](#cant-find-the-logs) - [Questions and Feedback](#questions-and-feedback) *** @@ -85,10 +87,12 @@ power: We present the different commands for the Farmerbot. +Note that any argument containing spaces needs to be wrapped in quotes (e.g. mnemonic: "word1 word2 ... word12"). + - `start`: to start (power on) a node ```bash -farmerbot start --node -m -n dev -d +farmerbot start --node -m "" -n dev -d ``` Where: @@ -108,7 +112,7 @@ Global Flags: - `start all`: to start (power on) all nodes in a farm ```bash -farmerbot start all --farm -m -n dev -d +farmerbot start all --farm -m "" -n dev -d ``` Where: @@ -191,7 +195,7 @@ To download the Zero-OS bootstrap image, go to the usual bootstrap link [https:/ ![test_net|690x422](img/farmerbot_5.png) -Once you have your new bootstrap image for the new network, [wipe your disks](../3node_building/4_wipe_all_disks.md), insert the new bootstrap image and reboot the 3Node. +Once you have your new bootstrap image for the new network, [wipe your disks](4_wipe_all_disks.md), insert the new bootstrap image and reboot the 3Node. ## The differences between power "state" and power "target" @@ -282,7 +286,7 @@ Note that each node managed by the Farmerbot will randomly wakeup on average 10 ## Upgrade to the new Farmerbot -If you are still running the old version of the Farmerbot (written in V), you can easily upgrade to the new Farmerbot (written in Go). You simply need to properly stop the old Farmerbot and then follow the new [Farmerbot guide](./farmerbot_quick.md). +If you are still running the old version of the Farmerbot (written in V), you can easily upgrade to the new Farmerbot (written in Go). You simply need to properly stop the old Farmerbot and then follow the new [Farmerbot guide](farmerbot_quick.md). Here are the steps to properly stop the old Farmerbot. @@ -299,7 +303,7 @@ Here are the steps to properly stop the old Farmerbot. docker container rm -f -v NAME_OF_CONTAINER ``` -Once the old Farmerbot is properly stopped and deleted, follow the new [Farmerbot guide](./farmerbot_quick.md). +Once the old Farmerbot is properly stopped and deleted, follow the new [Farmerbot guide](farmerbot_quick.md). ## Set the Farmerbot without the mnemonics of a ThreeFold Dashboard account @@ -431,6 +435,20 @@ There are only a few steps needed to update the Farmerbot to a new release. rm tfgrid-sdk-go_Linux_x86_64.tar.gz ``` +# Troubleshooting + +## Can't Find the Logs + +If you can't find the logs of the Farmerbot, make sure that you ran the bot before! Once the Farmerbot runs, it prints logs in a file called `farmerbot.log` in the directory where it is running. + +You can try a search for any files under the home directory with the `.log` extension in case it's been moved: + +``` +find ~/ -name '*.log' +``` + +If you've deleted the log file while the bot is running, the bot won't recreated it. In this case, you will need to restart the bot, e.g. `systemctl restart farmerbot`. The bot will then automatically create a log file. + # Questions and Feedback If you have questions concerning the Farmerbot, feel free to ask for help on the [ThreeFold Forum](https://forum.threefold.io/) or on the [ThreeFold Farmer chat](https://t.me/threefoldfarmers). \ No newline at end of file diff --git a/collections/farmers/farmerbot/farmerbot_intro.md b/collections/farmers/farmerbot/farmerbot_intro.md index 96d19b3..b398313 100644 --- a/collections/farmers/farmerbot/farmerbot_intro.md +++ b/collections/farmers/farmerbot/farmerbot_intro.md @@ -8,8 +8,8 @@ For more information on the Farmerbot, you can visit the [Farmerbot repository](

Table of Contents

-- [Quick Guide](./farmerbot_quick.md) -- [Additional Information](./farmerbot_information.md) -- [Minting and the Farmerbot](./farmerbot_minting.md) +- [Quick Guide](farmerbot_quick.md) +- [Additional Information](farmerbot_information.md) +- [Minting and the Farmerbot](farmerbot_minting.md) > Note: The Farmerbot is an optional feature developed by ThreeFold. Please use at your own risk. While ThreeFold will do its best to fix any issues with the Farmerbot and minting, if minting is affected by the use of the Farmerbot, ThreeFold cannot be held responsible. \ No newline at end of file diff --git a/collections/farmers/farmerbot/farmerbot_quick.md b/collections/farmers/farmerbot/farmerbot_quick.md index 4177ef8..26d2048 100644 --- a/collections/farmers/farmerbot/farmerbot_quick.md +++ b/collections/farmers/farmerbot/farmerbot_quick.md @@ -142,7 +142,7 @@ Once you've verified that the Farmerbot runs properly, you can stop the Farmerbo It is highly recommended to set a Ubuntu systemd service to keep the Farmerbot running after exiting the VM. * Create the service file - * ``` + ``` nano /etc/systemd/system/farmerbot.service ``` * Set the Farmerbot systemd service @@ -231,7 +231,7 @@ power: periodic_wake_up_start: 01:00PM ``` -Note that if the user wants to include all the nodes within a farm, they can simply omit the `included_nodes` section. In this case, all nodes of the farm will be included in the Farmerbot, as shown in the example below: +Note that if the user wants to include all the nodes within a farm, they can simply omit the `included_nodes` section. In this case, all nodes of the farm will be included in the Farmerbot, as shown in the example below. If you are proceeding like this, make sure that you don't have any unused node IDs on your farm, as the Farmerbot would try to wake up nodes that aren't running anymore on the grid. ``` farm_id: 1 @@ -285,7 +285,7 @@ farmerbot2.service This guide is meant to get you started quickly with the Farmerbot. That being said, there is a lot more that can be done with the Farmerbot. -For more information on the Farmerbot, please refer to the [Additional Information section](./farmerbot_information.md). You can also consult the [official Farmerbot Go repository](https://github.com/threefoldtech/tfgrid-sdk-go/tree/development/farmerbot). +For more information on the Farmerbot, please refer to the [Additional Information section](farmerbot_information.md). You can also consult the [official Farmerbot Go repository](https://github.com/threefoldtech/tfgrid-sdk-go/tree/development/farmerbot). If you have any questions, you can ask the ThreeFold community for help on the [ThreeFold Forum](https://forum.threefold.io/) or on the [ThreeFold Farmers Chat](https://t.me/threefoldfarmers) on Telegram. diff --git a/collections/farmers/farmers.md b/collections/farmers/farmers.md index 9d5f2f8..3be4ada 100644 --- a/collections/farmers/farmers.md +++ b/collections/farmers/farmers.md @@ -2,35 +2,36 @@ This section covers all practical information on how to become a cloud service provider (farmer) on the ThreeFold Grid. -For complementary information on ThreeFold farming, refer to the [Farming](../../knowledge_base/farming/farming_toc.md) section. +For complementary information on ThreeFold farming, refer to the [Farming](farming@@farming_toc) section. To buy a certified node from an official ThreeFold vendor, check the [ThreeFold Marketplace](https://marketplace.3node.global/).

Table of Contents

-- [Build a 3Node](./3node_building/3node_building.md) - - [1. Create a Farm](./3node_building/1_create_farm.md) - - [2. Create a Zero-OS Bootstrap Image](./3node_building/2_bootstrap_image.md) - - [3. Set the Hardware](./3node_building/3_set_hardware.md) - - [4. Wipe All the Disks](./3node_building/4_wipe_all_disks.md) - - [5. Set the BIOS/UEFI](./3node_building/5_set_bios_uefi.md) - - [6. Boot the 3Node](./3node_building/6_boot_3node.md) -- [Farming Optimization](./farming_optimization/farming_optimization.md) - - [GPU Farming](./3node_building/gpu_farming.md) - - [Set Additional Fees](./farming_optimization/set_additional_fees.md) - - [Minting Receipts](./3node_building/minting_receipts.md) - - [Minting Periods](./farming_optimization/minting_periods.md) - - [Room Parameters](./farming_optimization/farm_room_parameters.md) - - [Farming Costs](./farming_optimization/farming_costs.md) - - [Calculate Your ROI](./farming_optimization/calculate_roi.md) -- [Advanced Networking](./advanced_networking/advanced_networking_toc.md) - - [Networking Overview](./advanced_networking/networking_overview.md) - - [Network Considerations](./advanced_networking/network_considerations.md) - - [Network Setup](./advanced_networking/network_setup.md) -- [Farmerbot](./farmerbot/farmerbot_intro.md) - - [Quick Guide](./farmerbot/farmerbot_quick.md) - - [Additional Information](./farmerbot/farmerbot_information.md) - - [Minting and the Farmerbot](./farmerbot/farmerbot_minting.md) -- [Farmers FAQ](../faq/faq.md#farmers-faq) +- [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 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) +- [Farmers FAQ](faq@@faq) > Note: Bugs in the code (e.g. ZOS or other components) can happen. If this is the case, there might be a loss of tokens during minting which won't be refunded by ThreeFold. If there are minting code errors, ThreeFold will try its best to fix the minting code and remint nodes that were affected by such errors. diff --git a/collections/farmers/farming_optimization/farming_costs.md b/collections/farmers/farming_optimization/farming_costs.md index f10e6a8..0bef500 100644 --- a/collections/farmers/farming_optimization/farming_costs.md +++ b/collections/farmers/farming_optimization/farming_costs.md @@ -178,7 +178,7 @@ Then within 9 months, this farm would have paid itself and from now on, it would We note that this takes into consideration that we are using the AC system 24/7. This would surely not be the case in real life. This means that the real ROI would be even better. It is a common practice to do estimates with stricter parameters. If you predict being profitable with strict parameters, you will surely be profitable in real life, even when "things" happen and not everything goes as planned. As always, this is not financial advice. -We recall that in the section [Calculate the ROI of a DIY 3Node](./calculate_roi.md), we found a simpler ROI of 6.25 months, say 7 months, that wasn't taking into consideration the additional costs of Internet and electricity. We now have a more realistic ROI of 9 months based on a fixed TFT price of 0.08$ USD. You will need to use to equations and check with your current TF farm and 3Nodes, as well as the current TFT market price. +We recall that in the section [Calculate the ROI of a DIY 3Node](calculate_roi.md), we found a simpler ROI of 6.25 months, say 7 months, that wasn't taking into consideration the additional costs of Internet and electricity. We now have a more realistic ROI of 9 months based on a fixed TFT price of 0.08$ USD. You will need to use to equations and check with your current TF farm and 3Nodes, as well as the current TFT market price. ### Check Revenue with the ThreeFold Simulator diff --git a/collections/farmers/farming_optimization/farming_optimization.md b/collections/farmers/farming_optimization/farming_optimization.md index 10f14b0..ff5ea49 100644 --- a/collections/farmers/farming_optimization/farming_optimization.md +++ b/collections/farmers/farming_optimization/farming_optimization.md @@ -1,13 +1,14 @@

Farming Optimization

-The section [Build a 3Node](../3node_building/3node_building.md) covered the notions necessary to build a DIY 3Node server. The following section will give you additional information with the goal of optimizing your farm while also being able to plan ahead the costs in terms of energy and capitals. We also cover how to set a GPU node and more. +The section [Build a 3Node](3node_building.md) covered the notions necessary to build a DIY 3Node server. The following section will give you additional information with the goal of optimizing your farm while also being able to plan ahead the costs in terms of energy and capitals. We also cover how to set a GPU node and more.

Table of Contents

-- [GPU Farming](../3node_building/gpu_farming.md) -- [Set Additional Fees](./set_additional_fees.md) -- [Minting Receipts](../3node_building/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) \ No newline at end of file +- [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) \ No newline at end of file diff --git a/collections/farmers/farming_optimization/farming_requirements.md b/collections/farmers/farming_optimization/farming_requirements.md new file mode 100644 index 0000000..87bc509 --- /dev/null +++ b/collections/farmers/farming_optimization/farming_requirements.md @@ -0,0 +1,28 @@ +

Farming Requirements

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Uptime Requirements](#uptime-requirements) + - [Farmerbot Consideration](#farmerbot-consideration) + +--- + +## Introduction + +This section contains information on the farming requirements. + +## Uptime Requirements + +To be eligible for proof-of-capacity farming rewards, farmers need to ensure that their nodes have a minimum uptime per minting period. + +- 95% uptime requirements for DIY nodes + - This means that nodes have 36 hours of allowed downtime per month +- 98% uptime requirements for certified nodes + - This means that nodes have 14.4 hours of allowed downtime per month + +A minting period is 720 hours. + +### Farmerbot Consideration + +When minting considers a node running the Farmerbot, it counts standby time as uptime, as long as the node is healthy. If the node fails to wake within 24 hours, those 24 are deducted. This means that if the node misses two different wakeup within 24 hours, it will not have sufficient uptime for this minting period. This accounts for both certified and DIY cases. \ No newline at end of file diff --git a/collections/farmers/farming_optimization/set_additional_fees.md b/collections/farmers/farming_optimization/set_additional_fees.md index e1b5437..d647571 100644 --- a/collections/farmers/farming_optimization/set_additional_fees.md +++ b/collections/farmers/farming_optimization/set_additional_fees.md @@ -11,12 +11,12 @@ ## Introduction -Farmers can set additional fees for their 3Nodes on the [TF Dashboard](https://dashboard.grid.tf/). By doing so, users will then be able to [reserve the 3Node and use it as a dedicated node](../../dashboard/deploy/dedicated_machines.md). +Farmers can set additional fees for their 3Nodes on the [TF Dashboard](https://dashboard.grid.tf/). By doing so, users will then be able to [reserve the 3Node and use it as a dedicated node](dashboard@@node_finder). This can be useful for farmers who provide additional values to their 3Nodes, e.g. a GPU card and/or high-quality hardware. ## Steps -Here are the steps to [set additional fees](../../dashboard/farms/your_farms.md#extra-fees) to a 3Node. +Here are the steps to [set additional fees](dashboard@@your_farms) to a 3Node. * On the Dashboard, go to **Farms** -> **Your Farms** * Under the section **Your Nodes**, locate the 3Node and click **Set Additional Fees** under **Actions** diff --git a/collections/farming/farming_intro.md b/collections/farming/farming_intro.md index 9ba490e..50da7fb 100644 --- a/collections/farming/farming_intro.md +++ b/collections/farming/farming_intro.md @@ -7,7 +7,7 @@ ThreeFold Farming ("Farming") is the process of connecting Internet capacity to ## What is Farming? -{{#include farming_circular.md}} +!!wiki.include page:'farming:farming_circular.md' ## Who can become a farmer on ThreeFold? diff --git a/collections/farming/farming_reward.md b/collections/farming/farming_reward.md index 8eba865..62f811a 100644 --- a/collections/farming/farming_reward.md +++ b/collections/farming/farming_reward.md @@ -59,5 +59,4 @@ The main advantage of PoC to farmers it makes it really easy to run a 3Node. It 5. TFChain will mint the required TFT and send them to account on TFChain of TFFarmer. 6. Everyone can use the [ThreeFold Node Finder](https://dashboard.grid.tf/#/deploy/node-finder/) to see where capacity is available. This info comes from the TFChain. - -{{#include farming_reward_disclaimer.md}} +!!wiki.include page:'farming:farming_reward_disclaimer.md' \ No newline at end of file diff --git a/collections/farming/farming_reward_calculation.md b/collections/farming/farming_reward_calculation.md index a56a9f1..a671094 100644 --- a/collections/farming/farming_reward_calculation.md +++ b/collections/farming/farming_reward_calculation.md @@ -9,7 +9,7 @@ Each 3Node has certain amount of compute, storage and network resources: For making this Internet Capacity available, Farmers are rewarded with TFT. -The amount of resources availabe in a 3Node are translated into compute units (CU), storage units (SU), Network units (NU) and IP addresses (IPAddr) to calculate farming rewards. See also [Cloud Units Calculation For Farming](../../cloudunits/resource_units_calc_cloudunits.md). +The amount of resources availabe in a 3Node are translated into compute units (CU), storage units (SU), Network units (NU) and IP addresses (IPAddr) to calculate farming rewards. See also [Cloud Units Calculation For Farming](cloud@@resource_units_calc_cloudunits). > **Unless explicitly specified otherwise, calculations of "gigabytes" use base > 1024. That is, 1 GB is equal to 1073741824 bytes.** @@ -50,4 +50,4 @@ The reward for above items are linked (pegged) to the USD See below for more info about USD price which will be used to calculate your farming reward as well as any other specifics in relation to farming calculations. -The above farming rewards apply for 3Nodes registered in TFChain for ThreeFold Grid v3. Anyone can calculate their potential rewards using the [Farming Reward Calculator](https://dashboard.grid.tf/calculator/simulator). The same CU, SU, NU and IPAddr principles apply to the sales of Internet capacity in the form [cloud units](../../cloudunits/cloudunits.md). +The above farming rewards apply for 3Nodes registered in TFChain for ThreeFold Grid v3. Anyone can calculate their potential rewards using the [Farming Reward Calculator](https://dashboard.grid.tf/calculator/simulator). The same CU, SU, NU and IPAddr principles apply to the sales of Internet capacity in the form [cloud units](cloud@@cloudunits). diff --git a/collections/farming/farming_reward_disclaimer.md b/collections/farming/farming_reward_disclaimer.md index 5485865..d8ca3ef 100644 --- a/collections/farming/farming_reward_disclaimer.md +++ b/collections/farming/farming_reward_disclaimer.md @@ -2,7 +2,7 @@ > Important note: The ThreeFold Token (TFT) is not an investment instrument. > TFTs are used to buy and sell IT capacity on the ThreeFold Grid. -> More info: see [Proof of Capacity DAO rules](./poc_dao_rules.md) +> More info: see [Proof of Capacity DAO rules](poc_dao_rules.md) diff --git a/collections/farming/farming_toc.md b/collections/farming/farming_toc.md index 547b71e..b53b9cd 100644 --- a/collections/farming/farming_toc.md +++ b/collections/farming/farming_toc.md @@ -2,11 +2,11 @@ This section covers the essential information concerning ThreeFold Farming. -To farm on the ThreeFold Grid, refer to the [Farmers](../../documentation/farmers/farmers.md) section. +To farm on the ThreeFold Grid, refer to the [Farmers](farmers@@farmers) section.

Table of Contents

-- [Farming Rewards](./farming_reward.md) -- [Proof-of-Capacity](./proof_of_capacity.md) -- [Proof-of-Utilization](./proof_of_utilization.md) -- [PoC DAO Rules](./poc_dao_rules.md) \ No newline at end of file +- [Farming Rewards](farming_reward.md) +- [Proof-of-Capacity](proof_of_capacity.md) +- [Proof-of-Utilization](proof_of_utilization.md) +- [PoC DAO Rules](poc_dao_rules.md) \ No newline at end of file diff --git a/collections/farming/poc_dao_rules.md b/collections/farming/poc_dao_rules.md index 0b0475c..42da3ff 100644 --- a/collections/farming/poc_dao_rules.md +++ b/collections/farming/poc_dao_rules.md @@ -29,7 +29,7 @@ - Make sure you have 50GB SSD capacity min available per logical core (physical core times number of threads it can run), if not your calculated CU will be lower. - Make sure your network connection is good enough, in future it will be measured and part of the Service Level Agreement. -{{#include tfgrid_min_sla.md}} +!!wiki.include page:'farming:tfgrid_min_sla.md' **Important Information around TFT USD Price Used at Registration** diff --git a/collections/farming/proof_of_capacity.md b/collections/farming/proof_of_capacity.md index ae0f9fe..bceaa3d 100644 --- a/collections/farming/proof_of_capacity.md +++ b/collections/farming/proof_of_capacity.md @@ -50,7 +50,7 @@ The main advantage of PoC to farmers it makes it really easy to run a 3Node. It ## PoC Rewards -100% of specified [farming rewards](./farming_reward.md) goes to the farmer. +100% of specified [farming rewards](farming_reward.md) goes to the farmer. ## Farming Reward Calculation @@ -63,7 +63,7 @@ Each 3Node has certain amount of compute, storage and network resources: For making this Internet Capacity available, Farmers are rewarded with TFT. -The amount of resources availabe in a 3Node are translated into compute units (CU), storage units (SU), Network units (NU) and IP addresses (IPAddr) to calculate farming rewards. See also [Cloud Units Calculation For Farming](../cloud/resource_units_calc_cloudunits.md). +The amount of resources availabe in a 3Node are translated into compute units (CU), storage units (SU), Network units (NU) and IP addresses (IPAddr) to calculate farming rewards. See also [Cloud Units Calculation For Farming](cloud@@resource_units_calc_cloudunits). > **Unless explicitly specified otherwise, calculations of "gigabytes" use base > 1024. That is, 1 GB is equal to 1073741824 bytes.** @@ -90,4 +90,4 @@ The below table expands on CU, SU, NU and IPAddr and their farming rewards: > **The rewards above are calculated according to the current TFT to USD price in TFChain of 0.08. TFDAO is responsible to change this price in accordance to the current market and liquidity.** -The above farming rewards apply for 3Nodes registered in TFChain for ThreeFold Grid v3. Anyone can calculate their potential rewards using the [Farming Reward Simulator](https://dashboard.grid.tf/#/farms/simulator/). The same CU, SU, NU and IPAddr principles apply to the sales of Internet capacity in the form of [cloud units](../cloud/cloudunits.md). +The above farming rewards apply for 3Nodes registered in TFChain for ThreeFold Grid v3. Anyone can calculate their potential rewards using the [Farming Reward Simulator](https://dashboard.grid.tf/#/farms/simulator/). The same CU, SU, NU and IPAddr principles apply to the sales of Internet capacity in the form of [cloud units](cloud@@cloudunits). diff --git a/collections/farming/proof_of_utilization.md b/collections/farming/proof_of_utilization.md index e92536e..abadba4 100644 --- a/collections/farming/proof_of_utilization.md +++ b/collections/farming/proof_of_utilization.md @@ -15,7 +15,7 @@ ## 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 an Utility token and gets generated by ThreeFold Farmers, see [proof-of-capacity](proof_of_capacity.md) for more information. 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. @@ -23,13 +23,13 @@ Each ThreeFold Grid user can now use this capacity. The ThreeFold Chain ("TFChai Proof-of-utilization is the underlying mechanisms that verifies the utilization of Internet capacity on the ThreeFold Grid. -Every hour, the utilization is recorded in TFChain and the user is charged for the Internet capacity used on the ThreeFold Grid. Discount calculated in line with the amount of TFT users have in their accounts on TFChain. Learn more about the discount [here](../cloud/pricing/staking_discount_levels.md). +Every hour, the utilization is recorded in TFChain and the user is charged for the Internet capacity used on the ThreeFold Grid. Discount calculated in line with the amount of TFT users have in their accounts on TFChain. Learn more about the discount [here](cloud@@staking_discount_levels). ## How does Proof-of-Utilization work? 1. A user reserves Internet capacity on a given set of 3Nodes. 2. Zero-OS records the reserved and used CU, SU, NU and IPAddresses in correlation with TFChain records. -3. The TFChain DAO will charge the costs to the user in line with [discount mechanism](../cloud/pricing/staking_discount_levels.md). +3. The TFChain DAO will charge the costs to the user in line with [discount mechanism](cloud@@staking_discount_levels). 4. TFT from the user account are burned/distributed in line to table below. | Percentage | Description | Remark | @@ -37,7 +37,7 @@ Every hour, the utilization is recorded in TFChain and the user is charged for t | 35% | TFT burning | A mechanism used to maintain scarcity in the TFT economy. | | 10% | ThreeFold Foundation | Funds allocated to promote and grow the ThreeFold Grid. | | 5% | Validator Staking Pool | Rewards farmers that run TFChain 3.0 validator nodes. | -| 50% | Solution providers & sales channel | managed by [ThreeFold DAO](../about/dao/dao.md). | +| 50% | Solution providers & sales channel | managed by [ThreeFold DAO](about@@dao). | > Note: While the solution provider program is still active, the plan is to discontinue the program in the near future. We will update the manual as we get more information. We currently do not accept new solution providers. @@ -47,7 +47,7 @@ Every hour, the utilization is recorded in TFChain and the user is charged for t - Each solution provider and sales channel gets registered in TFChain and as such the distribution can be defined and calculated at billing time. - For billing purposes, ThreeFold DAO will check if it is from a known sales channel or solution provider. If yes, then the billing smart contract code will know how to distribute the TFTs. If the channel of solution provider is not known, then the 50% will go to the ThreeFold Foundation. -- For Certified Farming, [ThreeFold Tech](../about/threefold_tech.md) can define the solution & sales channel parameters, these are channels as provided by ThreeFold Tech. +- For Certified Farming, [ThreeFold Tech](about@@threefold_tech) can define the solution & sales channel parameters, these are channels as provided by ThreeFold Tech. - Burning can be lowered to 25% if too many tokens would be burned, ThreeFold DAO consensus needs to be achieved. ### Other Ways TFT are Required diff --git a/collections/farming_v4/farming.md b/collections/farming_v4/farming.md index e7f32c3..d687589 100644 --- a/collections/farming_v4/farming.md +++ b/collections/farming_v4/farming.md @@ -42,7 +42,7 @@ Cell's get colors in line to need of service: ### How to Become a Farmer -- Buy a *TFNODE (Compute/Storage node) or *TFROUTER (Mycelium Network Node). +- Buy a [TFNode](./tf_nodes.md) or a [TFRouter](./tf_routers.md) (Mycelium Network Node). - Build your own TFNode - Our software makes it easy to get started. diff --git a/collections/farming_v4/tf_routers.md b/collections/farming_v4/tf_routers.md index 54f5be8..91bffab 100644 --- a/collections/farming_v4/tf_routers.md +++ b/collections/farming_v4/tf_routers.md @@ -13,7 +13,7 @@ It's an exciting node with a reasonable price point and enough CPU capacity to r More than 1 node can be installed in a larger office, hotel, home, etc., and they will automatically mesh together. -Each node runs our *ZNET Operating System, allowing for native integration into the TFGrid network. +Each node runs our ZeroNet Operating System, allowing for native integration into the TFGrid network. This operating system allows to create distributed networking on a planetary scale and allows our farmers to provide network capacity to the grid ecosystem. Zero-OS Nodes are seamlessly integrated with the Zero-Net nodes by design, requiring minimal configuration. They are part of our Autonomous Zero-OS Stack. diff --git a/collections/freeflow/community_principles/community_principles.md b/collections/freeflow/community_principles/community_principles.md index 9aa9a5c..d26e027 100644 --- a/collections/freeflow/community_principles/community_principles.md +++ b/collections/freeflow/community_principles/community_principles.md @@ -1,14 +1,9 @@ - - # FreeFlow Community Principles -> TODO: Page needs to be improved - ## Inclusion ![](img/principles_01.png) - “If not US, then who? If not NOW then when?” Anyone may be a part of FreeFlowCommunity. We welcome and respect the stranger. No pre-requisites exist for participation in our community. @@ -66,7 +61,7 @@ We value civil society. Community members who organize events should assume resp "We return to Responsible Community Building" -## Leave no Trace = Planet First +## Leave No Trace = Planet First ![](img/principles_08_.jpg) diff --git a/collections/legal/definitions_legal.md b/collections/legal/definitions_legal.md index 1a526cb..57458a4 100644 --- a/collections/legal/definitions_legal.md +++ b/collections/legal/definitions_legal.md @@ -9,7 +9,7 @@ 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 https://github.com/threefoldfoundation +See the [ThreeFold Foundation](https://github.com/threefoldfoundation) on GitHub. ## ThreeFold Foundation (TFF) @@ -17,7 +17,7 @@ The ThreeFold Foundation (ThreeFold DMCC in DUbai) is a participant in the bigge 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](companies@@threefold_dubai) > Work is ongoing to make the Foundation a global distributed concept with probably more than 1 legal entity. @@ -86,7 +86,7 @@ Group of blockchain related technologies as used by ThreeFold to accomplish the 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) = Efficient Stateless Operating System +See [Zero-OS](https://github.com/threefoldtech/zos), our efficient stateless operating system based on the Linux kernel. ## User diff --git a/collections/legal/intro/legal_home.md b/collections/legal/intro/legal_home.md index 60929b5..517a213 100644 --- a/collections/legal/intro/legal_home.md +++ b/collections/legal/intro/legal_home.md @@ -13,6 +13,6 @@ THESE TERMS AND CONDITIONS (THE "**AGREEMENTS**") CONSTITUTE A LEGAL AGREEMENT B - [Terms & Conditions TFGrid Users TFGrid 3](terms_conditions_griduser.md) - [Terms & Conditions TFGrid Farmers TFGrid 3](terms_conditions_farmer3.md) -Our single source of truth for our legal docs is on https://github.com/threefoldfoundation/info_legal +Our single source of truth for our legal docs is available [here](https://github.com/threefoldfoundation/info_legal). -> You can see the history of each file on github, useful to see the right version of the file in relation to the date when you signed a document or contract which linked into one of the above documents. \ No newline at end of file +> You can see the history of each file on GitHub. This is useful to see the right version of the file in relation to the date when you signed a document or contract which linked into one of the above documents. \ No newline at end of file diff --git a/collections/legal/privacypolicy.md b/collections/legal/privacypolicy.md index a5d206a..a1f780c 100644 --- a/collections/legal/privacypolicy.md +++ b/collections/legal/privacypolicy.md @@ -71,7 +71,6 @@ If you make a request, we have one month to respond to you. If you would like to * email: dataprivacy@threefold.io -* post address: !!wiki.include page:threefold_fzc_address ### What are cookies? diff --git a/collections/legal/terms_conditions_farmer_parts/part_2_farmer_services.md b/collections/legal/terms_conditions_farmer_parts/part_2_farmer_services.md index e4afbe9..eae5868 100644 --- a/collections/legal/terms_conditions_farmer_parts/part_2_farmer_services.md +++ b/collections/legal/terms_conditions_farmer_parts/part_2_farmer_services.md @@ -4,7 +4,7 @@ The Farmer may provide IT Capacity on the ThreeFold_Grid (the "**Farmer Services By entering into this Agreement you receive a non-exclusive, non-sublicensable, non-transferable right to provide the Farmer Services pursuant to this Agreement during the Term hereof solely for your internal business purposes subject to the limitations set forth herein. -The Software consists of open source code and is made available to you pursuant to the terms of the open-source license agreement(s) as located on https://github.com/threefoldtech and https://github.com/threefoldfoundation (the "**Open Source License(s)**"). Your use of the Software or any other Content (Information) is conditioned upon your compliance at all times with the terms of all applicable Open Source License(s). [Example license for Zero-OS can be found here](https://github.com/threefoldtech/zos/blob/master/LICENCE). +The Software consists of open source code and is made available to you pursuant to the terms of the open-source license agreement(s) as located on https://github.com/threefoldtech and https://github.com/threefoldfoundation (the "**Open Source License(s)**"). Your use of the Software or any other Content (Information) is conditioned upon your compliance at all times with the terms of all applicable Open Source License(s). [Example license for Zero-OS can be found here](https://github.com/threefoldtech/zos/blob/main/LICENSE). Including without limitation all provisions governing access to source code, modification, and/or reverse engineering. You are responsible for complying with any applicable documentation, meaning any information that describes the ThreeFold_Grid, provides instructions or recommendations related to the configuration and/or use of the ThreeFold_Grid, or otherwise informs Users of the intended use of the ThreeFold_Grid, including, but not limited to content provided directly to User or published at [https://library.threefold.me](https://library.threefold.me), [https://library.threefold.me](https://library.threefold.me), [https://forum.threefold.io](https://forum.threefold.io) or otherwise made available in conjunction with the ThreeFold_Grid, the ThreeFold_Token or the Software ("**Documentation**") and for satisfying all technical requirements of the Software, including any requirements set forth in the Documentation for ensuring that the Software performs properly. diff --git a/collections/legal/terms_conditions_farmer_parts/part_9_capacity_utilization3.md b/collections/legal/terms_conditions_farmer_parts/part_9_capacity_utilization3.md index 42b6756..9e2efda 100644 --- a/collections/legal/terms_conditions_farmer_parts/part_9_capacity_utilization3.md +++ b/collections/legal/terms_conditions_farmer_parts/part_9_capacity_utilization3.md @@ -8,11 +8,11 @@ ThreeFold_Tokens (TFTs) are used to buy IT Capacity as delivered by the TFNodes #### 9.2 Utilization Mechanism -IT capacity is expressed in network, compute & storage units. +IT capacity is expressed in [network, compute & storage units](tfgrid3:cloudunits). -- CU = [Compute Units](tfgrid3:cloudunits) -- SU = [Storage Units](tfgrid3:cloudunits) -- NU = [Network Units](tfgrid3:cloudunits) +- CU = Compute Units +- SU = Storage Units +- NU = Network Units TF Explorer is the inventory of all IT capacity available for consumption on the ThreeFold_Grid. See http://explorer.grid.tf/ @@ -23,7 +23,7 @@ TFT received for people using capacity is disributed as follows: | 35% | needs to be burned | results in more TFT burned compared to generated once grid more mature. | | 10% | to TF Foundation | used to promote the manage the project. | | 5% | to Staking Pool for TF Validators | used to reward the people who run the TFChain 3.0 blockchain validators. | -| 50% | for solution providers & sales channel | managed by [ThreeFold DAO](/tfgrid/farming/tfdao). | +| 50% | for solution providers & sales channel | managed by [ThreeFold DAO](tfgrid3:tfdao.md). | the single source of truth for Utilization specifications is on https://library.threefold.me/info/threefold#/tfgrid/farming/proof_of_utilization diff --git a/collections/legal/terms_conditions_toc.md b/collections/legal/terms_conditions_toc.md new file mode 100644 index 0000000..2ee43de --- /dev/null +++ b/collections/legal/terms_conditions_toc.md @@ -0,0 +1,9 @@ +# Terms & Conditions + +

Table of Contents

+ +- [Terms & Conditions ThreeFold Related Websites](terms_conditions_websites.md) +- [Terms & Conditions TFGrid Users TFGrid 3](terms_conditions_griduser.md) + - [TFTA to TFT](tfta_to_tft.md) +- [Terms & Conditions TFGrid Farmers TFGrid 3](terms_conditions_farmer3.md) +- [Terms & Conditions Sales](terms_conditions_sales.md) \ No newline at end of file diff --git a/collections/legal/terms_conditions_websites.md b/collections/legal/terms_conditions_websites.md index e2a81a3..c7a957d 100644 --- a/collections/legal/terms_conditions_websites.md +++ b/collections/legal/terms_conditions_websites.md @@ -1,7 +1,7 @@ +# TERMS OF USE - **TERMS OF USE** +**Last updated September 13, 2019** - **Last updated September 13, 2019** !!wiki.include page:part_0_agreement_terms !!wiki.include page:part_1_ip_rights !!wiki.include page:part_2_user_representations diff --git a/collections/legal/terms_conditions_websites/part_0_agreement_terms.md b/collections/legal/terms_conditions_websites/part_0_agreement_terms.md index 0711e09..ae4989d 100644 --- a/collections/legal/terms_conditions_websites/part_0_agreement_terms.md +++ b/collections/legal/terms_conditions_websites/part_0_agreement_terms.md @@ -1,8 +1,8 @@ -**AGREEMENT TO TERMS** +## AGREEMENT TO TERMS - These Terms of Use constitute a legally binding agreement made between you, whether personally or on behalf of an entity ("you") and ThreeFold, doing business as ThreeFold ("**ThreeFold**", "**we**", "**us**", or "**our**"), concerning your access to and use of the threefold related websites: +These Terms of Use constitute a legally binding agreement made between you, whether personally or on behalf of an entity ("you") and ThreeFold, doing business as ThreeFold ("**ThreeFold**", "**we**", "**us**", or "**our**"), concerning your access to and use of the threefold related websites: - !!wiki.include page:websites +!!wiki.include page:websites.md as well as any other media form, media channel, forum, mobile website or mobile application related, linked, or otherwise connected thereto (collectively, the "Site"). diff --git a/collections/legal/terms_conditions_websites/part_10_site_management.md b/collections/legal/terms_conditions_websites/part_10_site_management.md index 1b12bf6..c16cdc1 100644 --- a/collections/legal/terms_conditions_websites/part_10_site_management.md +++ b/collections/legal/terms_conditions_websites/part_10_site_management.md @@ -1,3 +1,4 @@ -**SITE MANAGEMENT** + +## SITE MANAGEMENT We reserve the right, but not the obligation, to: (1) monitor the Site for violations of these Terms of Use; (2) take appropriate legal action against anyone who, in our sole discretion, violates the law or these Terms of Use, including without limitation, reporting such user to law enforcement authorities; (3) in our sole discretion and without limitation, refuse, restrict access to, limit the availability of, or disable (to the extent technologically feasible) any of your Contributions or any portion thereof; (4) in our sole discretion and without limitation, notice, or liability, to remove from the Site or otherwise disable all files and content that are excessive in size or are in any way burdensome to our systems; and (5) otherwise manage the Site in a manner designed to protect our rights and property and to facilitate the proper functioning of the Site. \ No newline at end of file diff --git a/collections/legal/terms_conditions_websites/part_11_privacy_policy.md b/collections/legal/terms_conditions_websites/part_11_privacy_policy.md index 5db0439..92cb9e9 100644 --- a/collections/legal/terms_conditions_websites/part_11_privacy_policy.md +++ b/collections/legal/terms_conditions_websites/part_11_privacy_policy.md @@ -1,22 +1,23 @@ -**PRIVACY POLICY** + +## PRIVACY POLICY We care about data privacy and security. Please review our Privacy Policy: privacypolicy . By using the Site, you agree to be bound by our Privacy Policy, which is incorporated into these Terms of Use. Please be advised the Site is hosted in the United States. If you access the Site from the European Union, Asia, or any other region of the world with laws or other requirements governing personal data collection, use, or disclosure that differ from applicable laws in the United States, then through your continued use of the Site, you are transferring your data to the United States, and you expressly consent to have your data transferred to and processed in the United States. Further, we do not knowingly accept, request, or solicit information from children or knowingly market to children. Therefore, in accordance with the U.S. Children’s Online Privacy Protection Act, if we receive actual knowledge that anyone under the age of 13 has provided personal information to us without the requisite and verifiable parental consent, we will delete that information from the Site as quickly as is reasonably practical. -**TERM AND TERMINATION** +## TERM AND TERMINATION These Terms of Use shall remain in full force and effect while you use the Site. WITHOUT LIMITING ANY OTHER PROVISION OF THESE TERMS OF USE, WE RESERVE THE RIGHT TO, IN OUR SOLE DISCRETION AND WITHOUT NOTICE OR LIABILITY, DENY ACCESS TO AND USE OF THE SITE (INCLUDING BLOCKING CERTAIN IP ADDRESSES), TO ANY PERSON FOR ANY REASON OR FOR NO REASON, INCLUDING WITHOUT LIMITATION FOR BREACH OF ANY REPRESENTATION, WARRANTY, OR COVENANT CONTAINED IN THESE TERMS OF USE OR OF ANY APPLICABLE LAW OR REGULATION. WE MAY TERMINATE YOUR USE OR PARTICIPATION IN THE SITE OR DELETE YOUR ACCOUNT AND ANY CONTENT OR INFORMATION THAT YOU POSTED AT ANY TIME, WITHOUT WARNING, IN OUR SOLE DISCRETION. - If we terminate or suspend your account for any reason, you are prohibited from registering and creating a new account under your name, a fake or borrowed name, or the name of any third party, even if you may be acting on behalf of the third party. In addition to terminating or suspending your account, we reserve the right to take appropriate legal action, including without limitation pursuing civil, criminal, and injunctive redress. +If we terminate or suspend your account for any reason, you are prohibited from registering and creating a new account under your name, a fake or borrowed name, or the name of any third party, even if you may be acting on behalf of the third party. In addition to terminating or suspending your account, we reserve the right to take appropriate legal action, including without limitation pursuing civil, criminal, and injunctive redress. -**MODIFICATIONS AND INTERRUPTIONS** +## MODIFICATIONS AND INTERRUPTIONS - We reserve the right to change, modify, or remove the contents of the Site at any time or for any reason at our sole discretion without notice. However, we have no obligation to update any information on our Site. We also reserve the right to modify or discontinue all or part of the Site without notice at any time. We will not be liable to you or any third party for any modification, price change, suspension, or discontinuance of the Site. +We reserve the right to change, modify, or remove the contents of the Site at any time or for any reason at our sole discretion without notice. However, we have no obligation to update any information on our Site. We also reserve the right to modify or discontinue all or part of the Site without notice at any time. We will not be liable to you or any third party for any modification, price change, suspension, or discontinuance of the Site. We cannot guarantee the Site will be available at all times. We may experience hardware, software, or other problems or need to perform maintenance related to the Site, resulting in interruptions, delays, or errors. We reserve the right to change, revise, update, suspend, discontinue, or otherwise modify the Site at any time or for any reason without notice to you. You agree that we have no liability whatsoever for any loss, damage, or inconvenience caused by your inability to access or use the Site during any downtime or discontinuance of the Site. Nothing in these Terms of Use will be construed to obligate us to maintain and support the Site or to supply any corrections, updates, or releases in connection therewith. -**GOVERNING LAW** +## GOVERNING LAW These Terms of Use and your use of the Site are governed by and construed in accordance with the laws of Belgium, without regard to its conflict of law principles. \ No newline at end of file diff --git a/collections/legal/terms_conditions_websites/part_12_dispute_resolution.md b/collections/legal/terms_conditions_websites/part_12_dispute_resolution.md index 0d11d7d..fedf6ed 100644 --- a/collections/legal/terms_conditions_websites/part_12_dispute_resolution.md +++ b/collections/legal/terms_conditions_websites/part_12_dispute_resolution.md @@ -1,7 +1,8 @@ -**DISPUTE RESOLUTION** + +## DISPUTE RESOLUTION Any legal action of whatever nature brought by either you or us (collectively, the "Parties" and individually, a "Party") shall be commenced or prosecuted in courts located in Belgium, Ghent, and the Parties hereby consent to, and waive all defenses of lack of personal jurisdiction and forum non conveniens with respect to venue and jurisdiction in such state and federal courts. Application of the United Nations Convention on Contracts for the International Sale of Goods and the Uniform Computer Information Transaction Act (UCITA) are excluded from these Terms of Use. In no event shall any claim, action, or proceeding brought by either Party related in any way to the Site be commenced more than one (1) years after the cause of action arose. -**CORRECTIONS** +## CORRECTIONS There may be information on the Site that contains typographical errors, inaccuracies, or omissions, including descriptions, pricing, availability, and various other information. We reserve the right to correct any errors, inaccuracies, or omissions and to change or update the information on the Site at any time, without prior notice. \ No newline at end of file diff --git a/collections/legal/terms_conditions_websites/part_13_disclaimer.md b/collections/legal/terms_conditions_websites/part_13_disclaimer.md index 19472d0..dc76bba 100644 --- a/collections/legal/terms_conditions_websites/part_13_disclaimer.md +++ b/collections/legal/terms_conditions_websites/part_13_disclaimer.md @@ -1,3 +1,4 @@ -**DISCLAIMER** + +## DISCLAIMER THE SITE IS PROVIDED ON AN AS-IS AND AS-AVAILABLE BASIS. YOU AGREE THAT YOUR USE OF THE SITE AND OUR SERVICES WILL BE AT YOUR SOLE RISK. TO THE FULLEST EXTENT PERMITTED BY LAW, WE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, IN CONNECTION WITH THE SITE AND YOUR USE THEREOF, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. WE MAKE NO WARRANTIES OR REPRESENTATIONS ABOUT THE ACCURACY OR COMPLETENESS OF THE SITE’S CONTENT OR THE CONTENT OF ANY WEBSITES LINKED TO THE SITE AND WE WILL ASSUME NO LIABILITY OR RESPONSIBILITY FOR ANY (1) ERRORS, MISTAKES, OR INACCURACIES OF CONTENT AND MATERIALS, (2) PERSONAL INJURY OR PROPERTY DAMAGE, OF ANY NATURE WHATSOEVER, RESULTING FROM YOUR ACCESS TO AND USE OF THE SITE, (3) ANY UNAUTHORIZED ACCESS TO OR USE OF OUR SECURE SERVERS AND/OR ANY AND ALL PERSONAL INFORMATION AND/OR FINANCIAL INFORMATION STORED THEREIN, (4) ANY INTERRUPTION OR CESSATION OF TRANSMISSION TO OR FROM THE SITE, (5) ANY BUGS, VIRUSES, TROJAN HORSES, OR THE LIKE WHICH MAY BE TRANSMITTED TO OR THROUGH THE SITE BY ANY THIRD PARTY, AND/OR (6) ANY ERRORS OR OMISSIONS IN ANY CONTENT AND MATERIALS OR FOR ANY LOSS OR DAMAGE OF ANY KIND INCURRED AS A RESULT OF THE USE OF ANY CONTENT POSTED, TRANSMITTED, OR OTHERWISE MADE AVAILABLE VIA THE SITE. WE DO NOT WARRANT, ENDORSE, GUARANTEE, OR ASSUME RESPONSIBILITY FOR ANY PRODUCT OR SERVICE ADVERTISED OR OFFERED BY A THIRD PARTY THROUGH THE SITE, ANY HYPERLINKED WEBSITE, OR ANY WEBSITE OR MOBILE APPLICATION FEATURED IN ANY BANNER OR OTHER ADVERTISING, AND WE WILL NOT BE A PARTY TO OR IN ANY WAY BE RESPONSIBLE FOR MONITORING ANY TRANSACTION BETWEEN YOU AND ANY THIRD-PARTY PROVIDERS OF PRODUCTS OR SERVICES. AS WITH THE PURCHASE OF A PRODUCT OR SERVICE THROUGH ANY MEDIUM OR IN ANY ENVIRONMENT, YOU SHOULD USE YOUR BEST JUDGMENT AND EXERCISE CAUTION WHERE APPROPRIATE. \ No newline at end of file diff --git a/collections/legal/terms_conditions_websites/part_14_limitations_liability.md b/collections/legal/terms_conditions_websites/part_14_limitations_liability.md index 9adccbf..7e3519e 100644 --- a/collections/legal/terms_conditions_websites/part_14_limitations_liability.md +++ b/collections/legal/terms_conditions_websites/part_14_limitations_liability.md @@ -1,3 +1,4 @@ -**LIMITATIONS OF LIABILITY** - IN NO EVENT WILL WE OR OUR DIRECTORS, EMPLOYEES, OR AGENTS BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, EXEMPLARY, INCIDENTAL, SPECIAL, OR PUNITIVE DAMAGES, INCLUDING LOST PROFIT, LOST REVENUE, LOSS OF DATA, OR OTHER DAMAGES ARISING FROM YOUR USE OF THE SITE, EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. NOTWITHSTANDING ANYTHING TO THE CONTRARY CONTAINED HEREIN, OUR LIABILITY TO YOU FOR ANY CAUSE WHATSOEVER AND REGARDLESS OF THE FORM OF THE ACTION, WILL AT ALL TIMES BE LIMITED TO $1.00 USD. CERTAIN STATE LAWS DO NOT ALLOW LIMITATIONS ON IMPLIED WARRANTIES OR THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES. IF THESE LAWS APPLY TO YOU, SOME OR ALL OF THE ABOVE DISCLAIMERS OR LIMITATIONS MAY NOT APPLY TO YOU, AND YOU MAY HAVE ADDITIONAL RIGHTS. \ No newline at end of file +## LIMITATIONS OF LIABILITY + +IN NO EVENT WILL WE OR OUR DIRECTORS, EMPLOYEES, OR AGENTS BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, EXEMPLARY, INCIDENTAL, SPECIAL, OR PUNITIVE DAMAGES, INCLUDING LOST PROFIT, LOST REVENUE, LOSS OF DATA, OR OTHER DAMAGES ARISING FROM YOUR USE OF THE SITE, EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. NOTWITHSTANDING ANYTHING TO THE CONTRARY CONTAINED HEREIN, OUR LIABILITY TO YOU FOR ANY CAUSE WHATSOEVER AND REGARDLESS OF THE FORM OF THE ACTION, WILL AT ALL TIMES BE LIMITED TO $1.00 USD. CERTAIN STATE LAWS DO NOT ALLOW LIMITATIONS ON IMPLIED WARRANTIES OR THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES. IF THESE LAWS APPLY TO YOU, SOME OR ALL OF THE ABOVE DISCLAIMERS OR LIMITATIONS MAY NOT APPLY TO YOU, AND YOU MAY HAVE ADDITIONAL RIGHTS. \ No newline at end of file diff --git a/collections/legal/terms_conditions_websites/part_15_indemnification.md b/collections/legal/terms_conditions_websites/part_15_indemnification.md index 447c022..544d07f 100644 --- a/collections/legal/terms_conditions_websites/part_15_indemnification.md +++ b/collections/legal/terms_conditions_websites/part_15_indemnification.md @@ -1,3 +1,4 @@ -**INDEMNIFICATION** + +## INDEMNIFICATION You agree to defend, indemnify, and hold us harmless, including our subsidiaries, affiliates, and all of our respective officers, agents, partners, and employees, from and against any loss, damage, liability, claim, or demand, including reasonable attorneys’ fees and expenses, made by any third party due to or arising out of: (1) your Contributions; (2) use of the Site; (3) breach of these Terms of Use; (4) any breach of your representations and warranties set forth in these Terms of Use; (5) your violation of the rights of a third party, including but not limited to intellectual property rights; or (6) any overt harmful act toward any other user of the Site with whom you connected via the Site. Notwithstanding the foregoing, we reserve the right, at your expense, to assume the exclusive defense and control of any matter for which you are required to indemnify us, and you agree to cooperate, at your expense, with our defense of such claims. We will use reasonable efforts to notify you of any such claim, action, or proceeding which is subject to this indemnification upon becoming aware of it. \ No newline at end of file diff --git a/collections/legal/terms_conditions_websites/part_16_user_data.md b/collections/legal/terms_conditions_websites/part_16_user_data.md index 80ecde7..8862793 100644 --- a/collections/legal/terms_conditions_websites/part_16_user_data.md +++ b/collections/legal/terms_conditions_websites/part_16_user_data.md @@ -1,3 +1,4 @@ -**USER DATA** + +## USER DATA We will maintain certain data that you transmit to the Site for the purpose of managing the performance of the Site, as well as data relating to your use of the Site. Although we perform regular routine backups of data, you are solely responsible for all data that you transmit or that relates to any activity you have undertaken using the Site. You agree that we shall have no liability to you for any loss or corruption of any such data, and you hereby waive any right of action against us arising from any such loss or corruption of such data. diff --git a/collections/legal/terms_conditions_websites/part_17_electronic_comms_transactions_signatures.md b/collections/legal/terms_conditions_websites/part_17_electronic_comms_transactions_signatures.md index da54ef8..a6181b9 100644 --- a/collections/legal/terms_conditions_websites/part_17_electronic_comms_transactions_signatures.md +++ b/collections/legal/terms_conditions_websites/part_17_electronic_comms_transactions_signatures.md @@ -1,3 +1,4 @@ -**ELECTRONIC COMMUNICATIONS, TRANSACTIONS, AND SIGNATURES** + +## ELECTRONIC COMMUNICATIONS, TRANSACTIONS, AND SIGNATURES Visiting the Site, sending us emails, and completing online forms constitute electronic communications. You consent to receive electronic communications, and you agree that all agreements, notices, disclosures, and other communications we provide to you electronically, via email and on the Site, satisfy any legal requirement that such communication be in writing. YOU HEREBY AGREE TO THE USE OF ELECTRONIC SIGNATURES, CONTRACTS, ORDERS, AND OTHER RECORDS, AND TO ELECTRONIC DELIVERY OF NOTICES, POLICIES, AND RECORDS OF TRANSACTIONS INITIATED OR COMPLETED BY US OR VIA THE SITE. You hereby waive any rights or requirements under any statutes, regulations, rules, ordinances, or other laws in any jurisdiction which require an original signature or delivery or retention of non-electronic records, or to payments or the granting of credits by any means other than electronic means. \ No newline at end of file diff --git a/collections/legal/terms_conditions_websites/part_18_miscellaneous.md b/collections/legal/terms_conditions_websites/part_18_miscellaneous.md index 633bbe3..3a0c30d 100644 --- a/collections/legal/terms_conditions_websites/part_18_miscellaneous.md +++ b/collections/legal/terms_conditions_websites/part_18_miscellaneous.md @@ -1,3 +1,4 @@ -**MISCELLANEOUS** - These Terms of Use and any policies or operating rules posted by us on the Site or in respect to the Site constitute the entire agreement and understanding between you and us. Our failure to exercise or enforce any right or provision of these Terms of Use shall not operate as a waiver of such right or provision. These Terms of Use operate to the fullest extent permissible by law. We may assign any or all of our rights and obligations to others at any time. We shall not be responsible or liable for any loss, damage, delay, or failure to act caused by any cause beyond our reasonable control. If any provision or part of a provision of these Terms of Use is determined to be unlawful, void, or unenforceable, that provision or part of the provision is deemed severable from these Terms of Use and does not affect the validity and enforceability of any remaining provisions. There is no joint venture, partnership, employment or agency relationship created between you and us as a result of these Terms of Use or use of the Site. You agree that these Terms of Use will not be construed against us by virtue of having drafted them. You hereby waive any and all defenses you may have based on the electronic form of these Terms of Use and the lack of signing by the parties hereto to execute these Terms of Use. \ No newline at end of file +## MISCELLANEOUS + +These Terms of Use and any policies or operating rules posted by us on the Site or in respect to the Site constitute the entire agreement and understanding between you and us. Our failure to exercise or enforce any right or provision of these Terms of Use shall not operate as a waiver of such right or provision. These Terms of Use operate to the fullest extent permissible by law. We may assign any or all of our rights and obligations to others at any time. We shall not be responsible or liable for any loss, damage, delay, or failure to act caused by any cause beyond our reasonable control. If any provision or part of a provision of these Terms of Use is determined to be unlawful, void, or unenforceable, that provision or part of the provision is deemed severable from these Terms of Use and does not affect the validity and enforceability of any remaining provisions. There is no joint venture, partnership, employment or agency relationship created between you and us as a result of these Terms of Use or use of the Site. You agree that these Terms of Use will not be construed against us by virtue of having drafted them. You hereby waive any and all defenses you may have based on the electronic form of these Terms of Use and the lack of signing by the parties hereto to execute these Terms of Use. \ No newline at end of file diff --git a/collections/legal/terms_conditions_websites/part_19_contact_us.md b/collections/legal/terms_conditions_websites/part_19_contact_us.md index 82f7d36..002b6ca 100644 --- a/collections/legal/terms_conditions_websites/part_19_contact_us.md +++ b/collections/legal/terms_conditions_websites/part_19_contact_us.md @@ -1,8 +1,9 @@ -**CONTACT US** - In order to resolve a complaint regarding the Site or to receive further information regarding use of the Site, please contact us at: +## CONTACT US - **ThreeFold FCZ** +In order to resolve a complaint regarding the Site or to receive further information regarding use of the Site, please contact us at: + +### ThreeFold FCZ BA1120 DMCC BUSINESS CENTRE, LEVEL NO 1, JEWELLERY & GEMPLEX 3, DUBAI, UNITED EMIRATES ARAB diff --git a/collections/legal/terms_conditions_websites/part_1_ip_rights.md b/collections/legal/terms_conditions_websites/part_1_ip_rights.md index 7e1c522..4e7ac6f 100644 --- a/collections/legal/terms_conditions_websites/part_1_ip_rights.md +++ b/collections/legal/terms_conditions_websites/part_1_ip_rights.md @@ -1,5 +1,6 @@ -**INTELLECTUAL PROPERTY RIGHTS** - Unless otherwise indicated, the Site is our proprietary property and all source code, databases, functionality, software, website designs, audio, video, text, photographs, and graphics on the Site (collectively, the "Content") and the trademarks, service marks, and logos contained therein (the "Marks") are owned or controlled by us or licensed to us, and are protected by copyright and trademark laws and various other intellectual property rights and EU competition laws, foreign jurisdictions, and international conventions. The Content and the Marks are provided on the Site "AS IS" for your information and personal use only. Except as expressly provided in these Terms of Use, no part of the Site and no Content or Marks may be copied, reproduced, aggregated, republished, uploaded, posted, publicly displayed, encoded, translated, transmitted, distributed, sold, licensed, or otherwise exploited for any commercial purpose whatsoever, without our express prior written permission. +## INTELLECTUAL PROPERTY RIGHTS + +Unless otherwise indicated, the Site is our proprietary property and all source code, databases, functionality, software, website designs, audio, video, text, photographs, and graphics on the Site (collectively, the "Content") and the trademarks, service marks, and logos contained therein (the "Marks") are owned or controlled by us or licensed to us, and are protected by copyright and trademark laws and various other intellectual property rights and EU competition laws, foreign jurisdictions, and international conventions. The Content and the Marks are provided on the Site "AS IS" for your information and personal use only. Except as expressly provided in these Terms of Use, no part of the Site and no Content or Marks may be copied, reproduced, aggregated, republished, uploaded, posted, publicly displayed, encoded, translated, transmitted, distributed, sold, licensed, or otherwise exploited for any commercial purpose whatsoever, without our express prior written permission. Provided that you are eligible to use the Site, you are granted a limited license to access and use the Site and to download or print a copy of any portion of the Content to which you have properly gained access solely for your personal, non-commercial use. We reserve all rights not expressly granted to you in and to the Site, the Content and the Marks. \ No newline at end of file diff --git a/collections/legal/terms_conditions_websites/part_2_user_representations.md b/collections/legal/terms_conditions_websites/part_2_user_representations.md index 281bcc0..fd256ce 100644 --- a/collections/legal/terms_conditions_websites/part_2_user_representations.md +++ b/collections/legal/terms_conditions_websites/part_2_user_representations.md @@ -1,5 +1,6 @@ -**USER REPRESENTATIONS** - By using the Site, you represent and warrant that: (1) all registration information you submit will be true, accurate, current, and complete; (2) you will maintain the accuracy of such information and promptly update such registration information as necessary; (3) you have the legal capacity and you agree to comply with these Terms of Use; (4) you are not a minor in the jurisdiction in which you reside; (5) you will not access the Site through automated or non-human means, whether through a bot, script, or otherwise; (6) you will not use the Site for any illegal or unauthorized purpose; and (7) your use of the Site will not violate any applicable law or regulation. +## USER REPRESENTATIONS + +By using the Site, you represent and warrant that: (1) all registration information you submit will be true, accurate, current, and complete; (2) you will maintain the accuracy of such information and promptly update such registration information as necessary; (3) you have the legal capacity and you agree to comply with these Terms of Use; (4) you are not a minor in the jurisdiction in which you reside; (5) you will not access the Site through automated or non-human means, whether through a bot, script, or otherwise; (6) you will not use the Site for any illegal or unauthorized purpose; and (7) your use of the Site will not violate any applicable law or regulation. If you provide any information that is untrue, inaccurate, not current, or incomplete, we have the right to suspend or terminate your account and refuse any and all current or future use of the Site (or any portion thereof). \ No newline at end of file diff --git a/collections/legal/terms_conditions_websites/part_3_user_registration.md b/collections/legal/terms_conditions_websites/part_3_user_registration.md index 24f5115..a9fea55 100644 --- a/collections/legal/terms_conditions_websites/part_3_user_registration.md +++ b/collections/legal/terms_conditions_websites/part_3_user_registration.md @@ -1,3 +1,4 @@ -**USER REGISTRATION** -You may be required to register with the Site. You agree to keep your password confidential and will be responsible for all use of your account and password. We reserve the right to remove, reclaim, or change a username you select if we determine, in our sole discretion, that such username is inappropriate, obscene, or otherwise objectionable. +## USER REGISTRATION + +You may be required to register with the Site. You agree to keep your password confidential and will be responsible for all use of your account and password. We reserve the right to remove, reclaim, or change a username you select if we determine, in our sole discretion, that such username is inappropriate, obscene, or otherwise objectionable. \ No newline at end of file diff --git a/collections/legal/terms_conditions_websites/part_4_prohibited_activities.md b/collections/legal/terms_conditions_websites/part_4_prohibited_activities.md index 79eb1f9..d488310 100644 --- a/collections/legal/terms_conditions_websites/part_4_prohibited_activities.md +++ b/collections/legal/terms_conditions_websites/part_4_prohibited_activities.md @@ -1,8 +1,9 @@ -**PROHIBITED ACTIVITIES** + +## PROHIBITED ACTIVITIES You may not access or use the Site for any purpose other than that for which we make the Site available. The Site may not be used in connection with any commercial endeavors except those that are specifically endorsed or approved by us. - As a user of the Site, you agree not to: +As a user of the Site, you agree not to: 1. Systematically retrieve data or other content from the Site to create or compile, directly or indirectly, a collection, compilation, database, or directory without written permission from us. 2. Circumvent, disable, or otherwise interfere with security-related features of the Site, including features that prevent or restrict the use or copying of any Content or enforce limitations on the use of the Site and/or the Content contained therein. diff --git a/collections/legal/terms_conditions_websites/part_5_user_generated_contributions.md b/collections/legal/terms_conditions_websites/part_5_user_generated_contributions.md index 15b00c4..aca8557 100644 --- a/collections/legal/terms_conditions_websites/part_5_user_generated_contributions.md +++ b/collections/legal/terms_conditions_websites/part_5_user_generated_contributions.md @@ -1,8 +1,7 @@ -**USER GENERATED CONTRIBUTIONS** -The Site may invite you to chat, contribute to, or participate in blogs, message boards, online forums, and other functionality, and may provide you with the opportunity to create, submit, post, display, transmit, perform, publish, distribute, or broadcast content and materials to us or on the Site, including but not limited to text, writings, video, audio, photographs, graphics, comments, suggestions, or personal information or other material (collectively, "Contributions"). Contributions may be viewable by other users of the Site and through third-party websites. As such, any Contributions you transmit may be treated as non-confidential and non-proprietary. When you create or make available any Contributions, you thereby represent and warrant that: +## USER GENERATED CONTRIBUTIONS - +The Site may invite you to chat, contribute to, or participate in blogs, message boards, online forums, and other functionality, and may provide you with the opportunity to create, submit, post, display, transmit, perform, publish, distribute, or broadcast content and materials to us or on the Site, including but not limited to text, writings, video, audio, photographs, graphics, comments, suggestions, or personal information or other material (collectively, "Contributions"). Contributions may be viewable by other users of the Site and through third-party websites. As such, any Contributions you transmit may be treated as non-confidential and non-proprietary. When you create or make available any Contributions, you thereby represent and warrant that: 1. The creation, distribution, transmission, public display, or performance, and the accessing, downloading, or copying of your Contributions do not and will not infringe the proprietary rights, including but not limited to the copyright, patent, trademark, trade secret, or moral rights of any third party. 2. You are the creator and owner of or have the necessary licenses, rights, consents, releases, and permissions to use and to authorize us, the Site, and other users of the Site to use your Contributions in any manner contemplated by the Site and these Terms of Use. diff --git a/collections/legal/terms_conditions_websites/part_6_contribution_license.md b/collections/legal/terms_conditions_websites/part_6_contribution_license.md index 689ec3d..12b9c59 100644 --- a/collections/legal/terms_conditions_websites/part_6_contribution_license.md +++ b/collections/legal/terms_conditions_websites/part_6_contribution_license.md @@ -1,4 +1,5 @@ -**CONTRIBUTION LICENSE** + +## CONTRIBUTION LICENSE By posting your Contributions to any part of the Site or making Contributions accessible to the Site by linking your account from the Site to any of your social networking accounts, you automatically grant, and you represent and warrant that you have the right to grant, to us an unrestricted, unlimited, irrevocable, perpetual, non-exclusive, transferable, royalty-free, fully-paid, worldwide right, and license to host, use, copy, reproduce, disclose, sell, resell, publish, broadcast, retitle, archive, store, cache, publicly perform, publicly display, reformat, translate, transmit, excerpt (in whole or in part), and distribute such Contributions (including, without limitation, your image and voice) for any purpose, commercial, advertising, or otherwise, and to prepare derivative works of, or incorporate into other works, such Contributions, and grant and authorize sublicenses of the foregoing. The use and distribution may occur in any media formats and through any media channels. diff --git a/collections/legal/terms_conditions_websites/part_7_social_media.md b/collections/legal/terms_conditions_websites/part_7_social_media.md index ea7c25d..861494b 100644 --- a/collections/legal/terms_conditions_websites/part_7_social_media.md +++ b/collections/legal/terms_conditions_websites/part_7_social_media.md @@ -1,4 +1,5 @@ -**SOCIAL MEDIA** + +## SOCIAL MEDIA As part of the functionality of the Site, you may link your account with online accounts you have with third-party service providers (each such account, a "Third-Party Account") by either: (1) providing your Third-Party Account login information through the Site; or (2) allowing us to access your Third-Party Account, as is permitted under the applicable terms and conditions that govern your use of each Third-Party Account. You represent and warrant that you are entitled to disclose your Third-Party Account login information to us and/or grant us access to your Third-Party Account, without breach by you of any of the terms and conditions that govern your use of the applicable Third-Party Account, and without obligating us to pay any fees or making us subject to any usage limitations imposed by the third-party service provider of the Third-Party Account. By granting us access to any Third-Party Accounts, you understand that (1) we may access, make available, and store (if applicable) any content that you have provided to and stored in your Third-Party Account (the "Social Network Content") so that it is available on and through the Site via your account, including without limitation any friend lists and (2) we may submit to and receive from your Third-Party Account additional information to the extent you are notified when you link your account with the Third-Party Account. Depending on the Third-Party Accounts you choose and subject to the privacy settings that you have set in such Third-Party Accounts, personally identifiable information that you post to your Third-Party Accounts may be available on and through your account on the Site. Please note that if a Third-Party Account or associated service becomes unavailable or our access to such Third Party Account is terminated by the third-party service provider, then Social Network Content may no longer be available on and through the Site. You will have the ability to disable the connection between your account on the Site and your Third-Party Accounts at any time. PLEASE NOTE THAT YOUR RELATIONSHIP WITH THE THIRD- diff --git a/collections/legal/terms_conditions_websites/part_8_submission.md b/collections/legal/terms_conditions_websites/part_8_submission.md index d390911..f00bbc3 100644 --- a/collections/legal/terms_conditions_websites/part_8_submission.md +++ b/collections/legal/terms_conditions_websites/part_8_submission.md @@ -1,3 +1,4 @@ -**SUBMISSIONS** + +## SUBMISSIONS You acknowledge and agree that any questions, comments, suggestions, ideas, feedback, or other information regarding the Site ("Submissions") provided by you to us are non-confidential and shall become our sole property. We shall own exclusive rights, including all intellectual property rights, and shall be entitled to the unrestricted use and dissemination of these Submissions for any lawful purpose, commercial or otherwise, without acknowledgment or compensation to you. You hereby waive all moral rights to any such Submissions, and you hereby warrant that any such Submissions are original with you or that you have the right to submit such Submissions. You agree there shall be no recourse against us for any alleged or actual infringement or misappropriation of any proprietary right in your Submissions. \ No newline at end of file diff --git a/collections/legal/terms_conditions_websites/part_9_thirdparty_websites_content.md b/collections/legal/terms_conditions_websites/part_9_thirdparty_websites_content.md index 7f69b25..29b1251 100644 --- a/collections/legal/terms_conditions_websites/part_9_thirdparty_websites_content.md +++ b/collections/legal/terms_conditions_websites/part_9_thirdparty_websites_content.md @@ -1,3 +1,4 @@ -**THIRD-PARTY WEBSITES AND CONTENT** + +## THIRD-PARTY WEBSITES AND CONTENT The Site may contain (or you may be sent via the Site) links to other websites ("Third-Party Websites") as well as articles, photographs, text, graphics, pictures, designs, music, sound, video, information, applications, software, and other content or items belonging to or originating from third parties ("Third-Party Content"). Such Third-Party Websites and Third-Party Content are not investigated, monitored, or checked for accuracy, appropriateness, or completeness by us, and we are not responsible for any Third-Party Websites accessed through the Site or any Third-Party Content posted on, available through, or installed from the Site, including the content, accuracy, offensiveness, opinions, reliability, privacy practices, or other policies of or contained in the Third-Party Websites or the Third-Party Content. Inclusion of, linking to, or permitting the use or installation of any Third-Party Websites or any Third-Party Content does not imply approval or endorsement thereof by us. If you decide to leave the Site and access the Third-Party Websites or to use or install any Third-Party Content, you do so at your own risk, and you should be aware these Terms of Use no longer govern. You should review the applicable terms and policies, including privacy and data gathering practices, of any website to which you navigate from the Site or relating to any applications you use or install from the Site. Any purchases you make through Third-Party Websites will be through other websites and from other companies, and we take no responsibility whatsoever in relation to such purchases which are exclusively between you and the applicable third party. You agree and acknowledge that we do not endorse the products or services offered on Third-Party Websites and you shall hold us harmless from any harm caused by your purchase of such products or services. Additionally, you shall hold us harmless from any losses sustained by you or harm caused to you relating to or resulting in any way from any Third-Party Content or any contact with Third-Party Websites. \ No newline at end of file diff --git a/collections/legal/tf_grid_testnet_disclaimer.md b/collections/legal/tf_grid_testnet_disclaimer.md index 6541f1c..4bfd2c1 100644 --- a/collections/legal/tf_grid_testnet_disclaimer.md +++ b/collections/legal/tf_grid_testnet_disclaimer.md @@ -5,7 +5,7 @@ ThreeFold_Grid is currently running on a demo version, here referred to as **Demo**, **TF Grid Demo**, or **ThreeFold_Grid Demo**, as well as **3Bot Admin Panel**, **3Bot Sys-Admin**, **3Bot**, to demonstrate the capabilities of our new marketplace and deployable solutions. This version of ThreeFold_Grid is running on both Main Net and Testnet. As a demo version, there would be no guarantees whatsoever provided to users including but not limited to uptime, or data availability. -By using this early version of all products, including but not limited to **Demo**, **3Bot** on Main Net and Test Net, you (the User) agree to **Threefold's** [**Terms & Conditions**](https://github.com/threefoldfoundation/info_legal/blob/master/wiki/terms_conditions_all.md). +By using this early version of all products, including but not limited to **Demo**, **3Bot** on Main Net and Test Net, you (the User) agree to **Threefold's** [**Terms & Conditions**](terms_conditions_all.md). All content provided on all products, including but not limited to Demo, 3Bot on Main Net and Testnet are provided without any representations or warranties of any kind. No Party involved in, or having contributed to the development of Demo and Testnet accept any responsibility or liability to Users or any third parties in relation to materials or information accessed or downloaded via the Demo and Testnet, and their related websites or information sources. diff --git a/collections/legal/tfgrid/terms_conditions_tfgrid3.md b/collections/legal/tfgrid/terms_conditions_tfgrid3.md index 49e1d84..f274e0a 100644 --- a/collections/legal/tfgrid/terms_conditions_tfgrid3.md +++ b/collections/legal/tfgrid/terms_conditions_tfgrid3.md @@ -2,7 +2,7 @@ THESE TERMS AND CONDITIONS (THE "**AGREEMENTS**") CONSTITUTE A LEGAL AGREEMENT BETWEEN YOU ("TFGRID **USER**,""TFGRID **FARMER**," "**YOU**", OR "**YOURS**") AND [THREEFOLD COMPANIES](companies) or TFTECH ("**THREEFOLD**", "**COMPANY**," "**US**," "**WE**" OR "**OUR**"), GOVERNING THE TERMS OF YOUR PARTICIPATION AS A PARTNER, CUSTOMER, FARMER OR USER IN THE THREEFOLD GRID. YOU UNDERSTAND AND AGREE THAT BY ACCEPTING THE TERMS OF THIS AGREEMENT, EITHER BY CLICKING TO SIGNIFY ACCEPTANCE, OR BY TAKING ANY ONE OR MORE OF THE FOLLOWING ACTIONS DOWNLOADING, INSTALLING, RUNNING,/AND OR USING THE APPLICABLE SOFTWARE, YOU AGREE TO BE BOUND BY THE TERMS OF THIS AGREEMENT EFFECTIVE AS OF THE DATE THAT YOU TAKE THE EARLIEST OF ONE OF THE FOREGOING ACTIONS. YOU REPRESENT AND WARRANT THAT YOU ARE 18 YEARS OLD OR OLDER AND HAVE THE RIGHT AND AUTHORITY TO ENTER INTO AND COMPLY WITH THE TERMS OF THIS AGREEMENT. ->> BY USING THE [TFGRID](tfgrid3:threefold_grid) OR ANY OF THE THREEFOLD PROVIDED SOFTWARE OR SERVICES YOU ACCEPT FOLLOWING AGREEMENTS: +>> BY USING THE [TFGRID](threefold_grid) OR ANY OF THE THREEFOLD PROVIDED SOFTWARE OR SERVICES YOU ACCEPT FOLLOWING AGREEMENTS: - [X] [Terms & Conditions TFGrid Users TFGrid 3](terms_conditions_griduser) - [X] [Terms & Conditions TFGrid Farmers TFGrid 3](terms_conditions_farmer3) : relevant if you are a TFGrid Farmer diff --git a/collections/legal/tfta_to_tft.md b/collections/legal/tfta_to_tft.md new file mode 100644 index 0000000..33a89ce --- /dev/null +++ b/collections/legal/tfta_to_tft.md @@ -0,0 +1,9 @@ +## Convert TFTA to TFT + +TFTA is a voluntary staking pool for people to show that they have no intent to sell in near time. + +If you would like migrate TFTA to TFT, it's super easy, just send your TFTA to the following address: + +> GBUT4GP5GJ6B3XW5PXENHQA7TXJI5GOPW3NF4W3ZIW6OOO4ISY6WNLN2 + +and it will return as TFT. We suggest that you try with 1 TFT first! \ No newline at end of file diff --git a/collections/legal/threefold_grid.md b/collections/legal/threefold_grid.md new file mode 100644 index 0000000..0ebe6c4 --- /dev/null +++ b/collections/legal/threefold_grid.md @@ -0,0 +1,5 @@ +# ThreeFold_Grid + +ThreeFold_Grid is a global, neutral, and sustainable network of autonomous storage and compute Internet capacity created by ThreeFold Farmers, with more than 80,000,000 GB and 20,000 cores existing today. On this Grid, IT capacity is indexed / registered on the TFChain for easy discovery by purchasers. Any application which can run on Linux can run on the ThreeFold_Grid but with more privacy, security, closer to the end-user, and at a much lower cost. + +This Internet capacity is produced and allocated locally - similar to the way electricity and other utilities are purchased today. This allows any digital service or application provider to host their services and applications in proximity to the end user leading to significantly greater performance, a lower price point and better margins. This is both more cost effective and green. diff --git a/collections/manual/documentation.md b/collections/manual/documentation.md index 821f1ef..afa8394 100644 --- a/collections/manual/documentation.md +++ b/collections/manual/documentation.md @@ -2,13 +2,13 @@ The section contains all the practical information for farmers, developers and system administrators of the ThreeFold Grid. -For complementary information on ThreeFold, refer to the [ThreeFold Knowledge Base](./knowledge_base.md). +For complementary information on ThreeFold, refer to the [ThreeFold Knowledge Base](manual@@knowledge_base).

Table of Contents

-- [Dashboard](dashboard/dashboard.md) -- [Developers](developers/developers.md) -- [Farmers](farmers/farmers.md) -- [System Administrators](system_administrators/system_administrators.md) -- [ThreeFold Token](threefold_token/threefold_token.md) -- [FAQ](faq/faq.md) \ No newline at end of file +- [Dashboard](dashboard@@dashboard) +- [Developers](developers@@developers) +- [Farmers](farmers@@farmers) +- [System Administrators](system_administrators@@system_administrators) +- [ThreeFold Token](threefold_token@@threefold_token) +- [FAQ](faq@@faq) \ No newline at end of file diff --git a/collections/manual/intro.md b/collections/manual/intro.md index fd927d1..0124972 100644 --- a/collections/manual/intro.md +++ b/collections/manual/intro.md @@ -4,12 +4,12 @@ This manual is organized in two main sections: -- [ThreeFold Knowledge Base](manual/knowledge_base.md) -- [ThreeFold Documentation](manual/documentation.md) +- [ThreeFold Knowledge Base](manual@@knowledge_base) +- [ThreeFold Documentation](manual@@documentation) The *ThreeFold Knowledge Base* section contains all information needed to understand how the whole ThreeFold ecosystem works. -The *ThreeFold Documentation* section contains all the practical information of the ThreeFold Grid, from general information covering the multi-functional [Dashboard](dashboard:dashboard.md), [TFT](threefold_token:threefold_token.md) and our community-based [FAQ](faq:faq.md), to specific tutorials for [developers](developers:developers.md), [farmers](farmers:farmers.md) and [system administrators](system_administrators:system_administrators.md). +The *ThreeFold Documentation* section contains all the practical information of the ThreeFold Grid, from general information covering the multi-functional [Dashboard](dashboard@@dashboard), [TFT](threefold_token@@threefold_token) and our community-based [FAQ](faq@@faq), to specific tutorials for [developers](developers@@developers), [farmers](farmers@@farmers) and [system administrators](system_administrators@@system_administrators). > Explore the TFGrid status page for live updates on Threefold services! > @@ -20,8 +20,8 @@ The *ThreeFold Documentation* section contains all the practical information of The ThreeFold community is very active and its members will be more than happy to discuss and help you get started. * [ThreeFold Forum](https://forum.threefold.io/) -* [ThreeFold (General Telegram Channel)](https://t.me/threefold) -* [ThreeFold (Farmer Telegram Channel)](https://t.me/threefoldfarmers) +* [ThreeFold General Telegram Channel](https://t.me/threefold) +* [ThreeFold Farmer Telegram Channel](https://t.me/threefoldfarmers) * [TFGrid Tester Telegram Channel](https://t.me/threefoldtesting) ## Questions and Feedback diff --git a/collections/manual/knowledge_base.md b/collections/manual/knowledge_base.md index d31e18c..8af6c20 100644 --- a/collections/manual/knowledge_base.md +++ b/collections/manual/knowledge_base.md @@ -2,13 +2,13 @@ The section contains information about the ThreeFold ecosystem, its technology and its history. -For practical information for farmers, developers and system administrators, refer to the [ThreeFold Documentation](documentation.md). +For practical information for farmers, developers and system administrators, refer to the [ThreeFold Documentation](manual@@documentation).

Table of Contents

-- [About](about:about.md) -- [Technology](technology:technology_toc.md) -- [Farming](farming:farming_toc.md) -- [Cloud](cloud:cloud_toc.md) -- [Collaboration](collaboration:collaboration_toc.md) -- [Legal](legal:terms_conditions_all3.md) \ No newline at end of file +- [About](about@@about) +- [Technology](tech@@technology_toc) +- [Farming](farming@@farming_toc) +- [Cloud](cloud@@cloud_toc) +- [Collaboration](collaboration@@collaboration_toc) +- [Legal](legal@@legal_home) \ No newline at end of file diff --git a/collections/manual/knowledge_base/about/token_overview/special_wallets/wallet_data/gdijy6k2bbrirx423zfuykkfdn66xp2kmsbzfqse2psndz6edvqtrlsu.md b/collections/manual/knowledge_base/about/token_overview/special_wallets/wallet_data/gdijy6k2bbrirx423zfuykkfdn66xp2kmsbzfqse2psndz6edvqtrlsu.md index 76e10f5..5fb9b72 100644 --- a/collections/manual/knowledge_base/about/token_overview/special_wallets/wallet_data/gdijy6k2bbrirx423zfuykkfdn66xp2kmsbzfqse2psndz6edvqtrlsu.md +++ b/collections/manual/knowledge_base/about/token_overview/special_wallets/wallet_data/gdijy6k2bbrirx423zfuykkfdn66xp2kmsbzfqse2psndz6edvqtrlsu.md @@ -1 +1 @@ -10110962.98 \ No newline at end of file +10595751.89 \ No newline at end of file diff --git a/collections/manual/values/0.02 b/collections/manual/values/0.02 new file mode 100644 index 0000000..d0e6ec6 --- /dev/null +++ b/collections/manual/values/0.02 @@ -0,0 +1 @@ +0.000 \ No newline at end of file diff --git a/collections/manual/values/cu_mtft_hour.md b/collections/manual/values/cu_mtft_hour.md index a424ed6..2872a6f 100644 --- a/collections/manual/values/cu_mtft_hour.md +++ b/collections/manual/values/cu_mtft_hour.md @@ -1 +1 @@ -1608.42 \ No newline at end of file +1528.00 \ No newline at end of file diff --git a/collections/manual/values/dname_mtft_hour.md b/collections/manual/values/dname_mtft_hour.md index 9a79ccf..4f9e53a 100644 --- a/collections/manual/values/dname_mtft_hour.md +++ b/collections/manual/values/dname_mtft_hour.md @@ -1 +1 @@ -146.32 \ No newline at end of file +139.00 \ No newline at end of file diff --git a/collections/manual/values/ip_mtft_hour.md b/collections/manual/values/ip_mtft_hour.md index 6582fc3..325a076 100644 --- a/collections/manual/values/ip_mtft_hour.md +++ b/collections/manual/values/ip_mtft_hour.md @@ -1 +1 @@ -365.26 \ No newline at end of file +347.00 \ No newline at end of file diff --git a/collections/manual/values/name_mtft_hour.md b/collections/manual/values/name_mtft_hour.md index 34a2a43..bf1a7d6 100644 --- a/collections/manual/values/name_mtft_hour.md +++ b/collections/manual/values/name_mtft_hour.md @@ -1 +1 @@ -73.16 \ No newline at end of file +69.50 \ No newline at end of file diff --git a/collections/manual/values/nu_mtft_hour.md b/collections/manual/values/nu_mtft_hour.md index 1bb11cd..a1031b2 100644 --- a/collections/manual/values/nu_mtft_hour.md +++ b/collections/manual/values/nu_mtft_hour.md @@ -1 +1 @@ -2631.58 \ No newline at end of file +2500.00 \ No newline at end of file diff --git a/collections/manual/values/su_mtft_hour.md b/collections/manual/values/su_mtft_hour.md index 7141994..7c41110 100644 --- a/collections/manual/values/su_mtft_hour.md +++ b/collections/manual/values/su_mtft_hour.md @@ -1 +1 @@ -1023.16 \ No newline at end of file +972.00 \ No newline at end of file diff --git a/collections/manual/values/tft_marketcap.md b/collections/manual/values/tft_marketcap.md index 2dc47f5..c227083 100644 --- a/collections/manual/values/tft_marketcap.md +++ b/collections/manual/values/tft_marketcap.md @@ -1 +1 @@ -14,820,000 \ No newline at end of file +0 \ No newline at end of file diff --git a/collections/manual/values/tft_value.md b/collections/manual/values/tft_value.md index 213e592..d0e6ec6 100644 --- a/collections/manual/values/tft_value.md +++ b/collections/manual/values/tft_value.md @@ -1 +1 @@ -0.019 \ No newline at end of file +0.000 \ No newline at end of file diff --git a/collections/p2p/poa/poa.md b/collections/p2p/poa/poa.md index 41d6790..0303348 100644 --- a/collections/p2p/poa/poa.md +++ b/collections/p2p/poa/poa.md @@ -20,13 +20,13 @@ what is the ability for the Author to act in line to - People First - is the author capable to give without expectations to the benefit of the community (people). -There are 3 ways how a vote can be done +There are 3 ways how a vote can be done: -- **positive** +- **Positive** - means we agree and want to give our support -- **neutral** +- **Neutral** - means we are not sure, we don't wanna say yes or no -- **negative** +- **Negative** - means we don't agree diff --git a/collections/problems/painkiller/cd_issues_cloud_not_enough.md b/collections/problems/painkiller/cd_issues_cloud_not_enough.md index 2d2b4a8..2b0ce92 100644 --- a/collections/problems/painkiller/cd_issues_cloud_not_enough.md +++ b/collections/problems/painkiller/cd_issues_cloud_not_enough.md @@ -1,71 +1,80 @@ ![](img/cloudcomplex.png) -# Do current clouds resolve your problems? +# Do Current Clouds Resolve Your Problems? This page describe some of the issues you might encounter if your use clouds to fullfil your requirements for your solution. -## high CDN cost = Content Delivery +## High CDN Cost = Content Delivery - CDN's cost between 20 and 60 on major CDN's from Amazon, Google, ..., after negotiation and willingness to park lots of money and commit per month it mught be certain discount. - Other specialized CDN's can be around 10 per TB if services from e.g. Europe or US, smaller CDN's are much more expensive. -- Managing these CDN's is expensive and not easy job. +- Managing these CDN's is expensive and not an easy job. ->> this means to service 10m people it would cost about 1 to 2m USD per month just for CDN alone. +>> This means to service 10m people, it would cost about 1 to 2m USD per month just for CDN alone. -## High cost of operations +## High Cost of Operations -- cloud servers -- managing those servers, what if mistakes are made +There are high cost of operations attributed to this type of technology. -## Ability to be shut down on the public cloud +- Cloud servers + - Managing those servers + - What if mistakes are made -- its highly probable that within months there would be attempts to shut down the CDN's or often it happens more softly (give bad service and make your product look bad). +## Ability to Shut Down Servers -## apps typically not ready to scale +There is always the possibility to be shut down on the public cloud -- ... -- there are optimizations which can be done e.g. better indexing, better queries, more optimization strategies e.g. using redis -- more knowledge is required to optimize the app +It's highly probable that within months there would be attempts to shut down the CDN's or often it happens more softly (give bad service and make your product look bad). -## Ability to shutdown the mobile apps +## Can't Scale Apps -- google/apple might chose to shutdown apps -- not easy to know how fast this will go, it might just be overnight +Apps are typically not ready to scale. + +- There are optimizations which can be done e.g. better indexing, better queries, more optimization strategies e.g. using redis +- More knowledge is required to optimize the app + +## Ability to Shutdown the Mobile Apps + +- Google/Apple might chose to shutdown apps +- Not easy to know how fast this will go, it might just be overnight ## GDPR -- are very annoying constraints in e.g. Europe, need to be careful to comply +The GDPR constraints are to be taken into account. They are very annoying constraints in e.g. Europe, need to be careful to comply. -## Legal potential trouble +## Legal Potential Trouble -- its important to have good terms & conditions and think which legal entity will be the counterpart of the T&C -- there will be legal requirements like how to shutdown / recognize bad content +- It's important to have good *Terms & Conditions* (T&C) and think which legal entity will be the counterpart of the T&C +- There will be legal requirements, e.g. shutdown and/or recognize bad content -## Redundancy / Uptime +## Redundancy and Uptime -- is the site redundant, can data be lost? -- what happens if a datacenter goes down? -- or what happens if a DB server crashes? -- what happens if e.g. DB gets corrupted? -- how to make sure people always deserve the service they need -- if it kind of works now, will it work if 10x more people? -- is everything monitored? -- if an issue is detected are there people available 24h/day 7/7 to fix -- do the people who will fix have the right knowledge, where is that knowledge stored -- is the monitoring system itself monitored, very often monitoring by itself will stop working +There are a factor of parameters that need to be taken into account to provide a reliable service. + +- Is the site redundant, can data be lost? +- What happens if a datacenter goes down? + - Or what happens if a DB server crashes? +- What happens if e.g. DB gets corrupted? +- How to make sure people always deserve the service they need +- If it kind of works now, will it work if 10x more people? +- Is everything monitored? +- If an issue is detected are there people available 24h/day 7/7 to fix +- Do the people who will fix have the right knowledge, where is that knowledge stored +- Is the monitoring system itself monitored, very often monitoring by itself will stop working ## Performance -- how to see performance is not good enough for customers -- how to make sure we can easily fix it, can be region specific -- how to relocate services? +Performance affect user experience directly and must be dealt with care. -## protect against human error - -- mistakes are and will be made this might have huge impact on uptime and if not careful loose data -- truck factor: what happens if someone goes away? can org easily take over and continue -- level of automation & documentation? -- how is version control done +- How to see performance is not good enough for customers +- How to make sure we can easily fix it, can be region specific +- How to relocate services? +## Protect Against Human Error +The system in place must be able to protect against human error. This has to be considered. +- Mistakes are and will be made this might have huge impact on uptime and if not careful loose data +- Truck factor: what happens if someone goes away? Can org easily take over and continue +- Level of automation & documentation? +- How is version control done diff --git a/collections/problems/painkiller/cd_issues_cost.md b/collections/problems/painkiller/cd_issues_cost.md new file mode 100644 index 0000000..48001c2 --- /dev/null +++ b/collections/problems/painkiller/cd_issues_cost.md @@ -0,0 +1,51 @@ +![](img/cdn2.png) + +## High CDN Cost = Content Delivery + +- CDN's cost between 20 and 60 on major CDN's from Amazon, Google, ..., after negotiation and willingness to park lots of money and commit per month it might be certain discount. +- Other specialized CDN's can be around 10 per TB if services from e.g. Europe or US, smaller CDN's are much more expensive. +- Managing these CDN's is expensive and not easy job. + +> This means to service 10m people, it would cost about 1 to 2m USD per month just for CDN alone. + + +# CDN Pricing Amazon + +Remark no fees included for HTTPS requests, but should be ok for volume we are talking about, if app is made in right way. + +| Location | Price per TB (USD) | +| ----------- | ------------------ | +| US | 28 | +| Middle East | 56 | +| Africa | 56 | + +## CloudFront Price Amazon: Regional Data Transfer Out to Origin (per GB) + +| | United States, Mexico, and Canada | Europe, Israel, and Türkiye |  South Africa, Kenya, Nigeria,  and Middle East | South America | Japan | Australia and New Zealand | Hong Kong, Indonesia,  Philippines, Singapore, South Korea, Taiwan, Thailand, Malaysia, and Vietnam | India | +| ----------------- | --------------------------------- | --------------------------- | ----------------------------------------------- | ------------- | ------ | ------------------------- | --------------------------------------------------------------------------------------------------- | ------ | +| All Data Transfer | $0.020 | $0.020 | $0.060 | $0.125 | $0.060 | $0.080 | $0.060 | $0.160 | + +References: https://aws.amazon.com/cloudfront/pricing/ + +## Discounts + +- Discounts can be negotiated but required serious amounts of pre-financing + +# CDN Pricing Google + +Remark no fees included for HTTPS requests, but should be ok for volume we are talking about, if app is made in right way. + +| | **< 10 TiB** | **10 TiB-150 TiB** | **150 TiB-500 TiB** | **\> 500 TiB** | +| ------------------------------------------------------------------------------ | ----- | ------------ | ------------------ | ------------------- | +| Asia Pacific
(including Hong Kong) | $0.09 | $0.06 | $0.05 | On demand | +| China | $0.20 | $0.17 | $0.16 | On demand | +| Europe | $0.08 | $0.055 | $0.03 | On demand | +| North America
(including Hawaii) | $0.08 | $0.055 | $0.03 | On demand | +| Oceania | $0.11 | $0.09 | $0.08 | On demand | +| South America | $0.09 | $0.06 | $0.05 | On demand | +| All other destinations
(including Mexico, Central America, and Middle East) | $0.09 | $0.06 | $0.05 | On demand | + +References: https://cloud.google.com/cdn/pricing + + + diff --git a/collections/problems/painkiller/no_pain_killer.md b/collections/problems/painkiller/no_pain_killer.md index 94e6135..b0ae44e 100644 --- a/collections/problems/painkiller/no_pain_killer.md +++ b/collections/problems/painkiller/no_pain_killer.md @@ -1,12 +1,12 @@ ![](img/painkillers.png) -# Painkillers are not a solution. +# Painkillers Are Not a Solution -Currently, most develop their digital future by implementing many independent projects which all act as painkillers to their problems. While a painkiller might fix symptoms, it rarely solves the root issue. This happens for content providers, countries, enterprises. +Currently, most develop their digital future by implementing many independent projects which all act as painkillers to their problems. While a painkiller might fix symptoms, it rarely solves the root issue. This happens for content providers, countries, enterprises, etc. -We should stop treating the symptoms it becomes time to resolve the root cause. +We should stop treating the symptoms. It's time to resolve the root cause. -We believe you have the opportunity to leapfrog straight to a solution which is both easier to implement and solves most of its issues all at once. +We believe you have the opportunity to leapfrog straight to a solution which is both easier to implement and solves most of the issues all at once. This has huge benefits: @@ -16,7 +16,7 @@ This has huge benefits: * It is more prepared for the future * It's greener (such a system will use up to 100 times less energy) -## onion layers +## Onion Layers ![](img/onion_layers.png) @@ -38,5 +38,5 @@ Now, imagine when hundreds of such models are connectted to one another and exch The problem here is that individual systems are trying to redo things better, however they are using the same base infrastructure. They simply redefine that base towards a relevant issue. Ths cannot lead to optimal systems since solutions are managed around a single functiion. If multiiple people need to use that function it gets very complicated. -One way to go around this has been to use Enterprise Message Bus: Controlling how models talk to each other by pre-defining the messages exchanged. But this does not solve the problem at the root. +One way to go around this has been to use Enterprise Message Bus: controlling how models talk to each other by pre-defining the messages exchanged. But this does not solve the problem at the root. diff --git a/collections/social_media_protocols/nostr.md b/collections/social_media_protocols/nostr.md index cce8fbe..510eec8 100644 --- a/collections/social_media_protocols/nostr.md +++ b/collections/social_media_protocols/nostr.md @@ -32,11 +32,4 @@ Despite its innovative approach, it has several limitations: - **Resource Constraints** - Running a relay requires resources, and smaller entities or individuals may struggle to participate as relay operators due to these constraints. - **Interoperability and Standards** - - As Nostr is an evolving protocol, maintaining interoperability between different clients and adherence to standards is challenging, which could lead to fragmentation. - - \ No newline at end of file + - As Nostr is an evolving protocol, maintaining interoperability between different clients and adherence to standards is challenging, which could lead to fragmentation. \ No newline at end of file diff --git a/collections/social_media_protocols/protocols.md b/collections/social_media_protocols/protocols.md index cc677f7..57bd104 100644 --- a/collections/social_media_protocols/protocols.md +++ b/collections/social_media_protocols/protocols.md @@ -3,7 +3,7 @@ # Social Media App Protocols - [**Activitypub**](activitypub.md) -- [**nostr**](nostr.md) +- [**Nostr**](nostr.md) - **Diaspora** - An early decentralized social network. - Uses the "Diaspora federation protocol" for connecting different instances (pods). diff --git a/collections/solutions/content_providers/cdn_cost.md b/collections/solutions/content_providers/cdn_cost.md deleted file mode 100644 index e9729da..0000000 --- a/collections/solutions/content_providers/cdn_cost.md +++ /dev/null @@ -1,53 +0,0 @@ -![](img/cdn2.png) - -## high CDN cost = Content Delivery - -- CDN's cost between 20 and 60 on major CDN's from Amazon, Google, ..., after negotiation and willingness to park lots of money and commit per month it mught be certain discount. -- Other specialized CDN's can be around 10 per TB if services from e.g. Europe or US, smaller CDN's are much more expensive. -- Managing these CDN's is expensive and not easy job. - ->> this means to service 10m people it would cost about 1 to 2m USD per month just for CDN alone. - - -# CDN pricing Amazon - -Remark no fees included for HTTPS requests, but should be ok for volume we are talking about, if app is made in right way. - -## US - -![](img/amz_us.png) - -= 28 USD per TB in US - -## EUR - -![](img/amz_eur.png) - -## MIDDLE EAST - -![](img/amz_middleeast.png) - -= 56 USD per TB - -## AFRICA - -![](img/amz_sa.png) - -= 56 USD per TB - -## Discounts - -- discounts can be negotiated but required serious amounts of pre-financing - -# CDN pricing Google - -Remark no fees included for HTTPS requests, but should be ok for volume we are talking about, if app is made in right way. - -![](img/google_1.png) - -![](img/google2.png) - -https://cloud.google.com/cdn/pricing - - - diff --git a/collections/solutions/content_providers/content_providers.md b/collections/solutions/content_providers/content_providers.md index c1116b2..0fc54ad 100644 --- a/collections/solutions/content_providers/content_providers.md +++ b/collections/solutions/content_providers/content_providers.md @@ -6,11 +6,11 @@ Content providers have quite some issues in supporting their user base, our appr Below you can find how we can help you to resolve some of your possible issues. -## lower your CDN cost = Content Delivery +## Lower your CDN cost = Content Delivery - costs typically are +50 USD per TB, our solution goes below 10 USD. - cost goes to 10 USD at start, from v2.0 can be even lower. -- see [Costs of CDN's](cdn_cost.md) +- see [Costs of CDN's](problems:cd_issues_cost.md) ## Lower your cost of operations diff --git a/collections/solutions/solutions.md b/collections/solutions/solutions.md index e69de29..9fc8f39 100644 --- a/collections/solutions/solutions.md +++ b/collections/solutions/solutions.md @@ -0,0 +1,6 @@ +# Solutions + +- [Content Providers](solutions:content_providers.md) +- [FreeFlow Self](web4:freeflowself.md) +- [Actor Based Development](web4:actor_based_approach.md) +- [Vlang](web4:vlang.md) \ No newline at end of file diff --git a/collections/system_administrators/advanced/advanced.md b/collections/system_administrators/advanced/advanced.md index 92a95c3..79aff8b 100644 --- a/collections/system_administrators/advanced/advanced.md +++ b/collections/system_administrators/advanced/advanced.md @@ -4,11 +4,15 @@ In this section, we delve into sophisticated topics and powerful functionalities

Table of Contents

-- [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) -- [Redis](./grid3_redis.md) -- [IPFS](./ipfs/ipfs_toc.md) - - [IPFS on a Full VM](./ipfs/ipfs_fullvm.md) - - [IPFS on a Micro VM](./ipfs/ipfs_microvm.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) +- [AI & ML Workloads](ai_ml_workloads.md) +- [Hummingbot](hummingbot.md) \ 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.md new file mode 100644 index 0000000..5bd227c --- /dev/null +++ b/collections/system_administrators/advanced/ai_ml_workloads.md @@ -0,0 +1,125 @@ +

AI & ML Workloads

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Prerequisites](#prerequisites) +- [Prepare the System](#prepare-the-system) +- [Install the GPU Driver](#install-the-gpu-driver) +- [Set a Python Virtual Environment](#set-a-python-virtual-environment) +- [Install PyTorch and Test Cuda](#install-pytorch-and-test-cuda) +- [Set and Access Jupyter Notebook](#set-and-access-jupyter-notebook) +- [Run AI/ML Workloads](#run-aiml-workloads) + +*** + +## Introduction + +We present a basic method to deploy artificial intelligence (AI) and machine learning (ML) on the TFGrid. For this, we make use of dedicated nodes and GPU support. + +In the first part, we show the steps to install the Nvidia driver of a GPU card on a full VM Ubuntu 22.04 running on the TFGrid. + +In the second part, we show how to use PyTorch to run AI/ML tasks. + +## Prerequisites + +You need to reserve a [dedicated GPU node](dashboard@@node_finder) on the ThreeFold Grid. + +## 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 + ``` + - Reboot and reconnect to the VM +- Check the GPU status + ``` + nvidia-smi + ``` + +Now that the GPU node is set, let's work on setting PyTorch to run AI/ML workloads. + +## Set a Python Virtual Environment + +Before installing Python package with pip, you should create a virtual environment. + +- Install the prerequisites + ``` + apt update + apt install python3-pip python3-dev + pip3 install --upgrade pip + pip3 install virtualenv + ``` +- Create a virtual environment + ``` + mkdir ~/python_project + cd ~/python_project + virtualenv python_project_env + source python_project_env/bin/activate + ``` + +## Install PyTorch and Test Cuda + +Once you've created and activated a virtual environment for Pyhton, you can install different Python packages. + +- Install PyTorch and upgrade Numpy + ``` + pip3 install torch + pip3 install numpy --upgrade + ``` + +Before going further, you can check if Cuda is properly installed on your machine. + +- Check that Cuda is available on Python with PyTorch by using the following lines: + ``` + import torch + torch.cuda.is_available() + torch.cuda.device_count() # the output should be 1 + torch.cuda.current_device() # the output should be 0 + torch.cuda.device(0) + torch.cuda.get_device_name(0) + ``` + +## Set and Access Jupyter Notebook + +You can run Jupyter Notebook on the remote VM and access it on your local browser. + +- Install Jupyter Notebook + ``` + pip3 install notebook + ``` +- Run Jupyter Notebook in no-browser mode and take note of the URL and the token + ``` + jupyter notebook --no-browser --port=8080 --ip=0.0.0.0 + ``` +- On your local machine, copy and paste on a browser the given URL but make sure to change `127.0.0.1` with the WireGuard IP (here it is `10.20.4.2`) and to set the correct token. + ``` + http://10.20.4.2:8080/tree?token= + ``` + +## Run AI/ML Workloads + +After following the steps above, you should now be able to run Python codes that will make use of your GPU node to compute AI and ML workloads. + +Feel free to explore different ways to use this feature. For example, the [HuggingFace course](https://huggingface.co/learn/nlp-course/chapter1/1) on natural language processing is a good introduction to machine learning. \ No newline at end of file diff --git a/collections/system_administrators/advanced/cancel_contracts.md b/collections/system_administrators/advanced/cancel_contracts.md index 7b466a0..1cbf826 100644 --- a/collections/system_administrators/advanced/cancel_contracts.md +++ b/collections/system_administrators/advanced/cancel_contracts.md @@ -15,7 +15,7 @@ We present different methods to delete contracts on the TFGrid. ## Using the Dashboard -To cancel contracts with the Dashboard, consult the [Contracts List](../../dashboard/deploy/your_contracts.md) documentation. +To cancel contracts with the Dashboard, consult the [Contracts List](dashboard@@your_contracts) documentation. ## Using GraphQL and Polkadot UI @@ -31,7 +31,7 @@ query MyQuery { ``` -replace `TWIN_ID` with your twin id. The information should be available on the [Dashboard](../../dashboard/dashboard.md). +replace `TWIN_ID` with your twin id. The information should be available on the [Dashboard](dashboard@@dashboard). Then from [polkadot UI](https://polkadot.js.org/apps/), add the tfchain endpoint to development. @@ -45,4 +45,4 @@ Go to `Extrinsics`, choose the `smartContract` module and `cancelContract` extri In order to use the `grid3_client_ts` module, it is essential to first clone our official mono-repo containing the module and then navigate to it. If you are looking for a quick and efficient way to cancel contracts, we offer a code-based solution that can be found [here](https://github.com/threefoldtech/tfgrid-sdk-ts/blob/development/packages/grid_client/scripts/delete_all_contracts.ts). -To make the most of `grid_client`, we highly recommend following our [Grid-Client guide](https://github.com/threefoldtech/tfgrid-sdk-ts/blob/development/packages/grid_client/README.md) for a comprehensive overview of the many advanced capabilities offered by this powerful tool. With features like contract creation, modification, and retrieval, `grid_client` provides an intuitive and easy-to-use solution for managing your contracts effectively. +To make the most of `grid_client`, we highly recommend following our [Grid-Client guide](README.md) for a comprehensive overview of the many advanced capabilities offered by this powerful tool. With features like contract creation, modification, and retrieval, `grid_client` provides an intuitive and easy-to-use solution for managing your contracts effectively. diff --git a/collections/system_administrators/advanced/cloud_console.md b/collections/system_administrators/advanced/cloud_console.md new file mode 100644 index 0000000..ee8d15e --- /dev/null +++ b/collections/system_administrators/advanced/cloud_console.md @@ -0,0 +1,33 @@ +

Cloud Console

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Overview](#overview) +- [Connect to Cloud Console](#connect-to-cloud-console) + +--- + +## Introduction + +Cloud console is a tool to view machine logging and interact with the machine you have deployed. We show the basics of cloud-console and how to access it via a browser during deployment. + +## Overview + +Cloud console always runs on the machine's private network ip and port number equla to `20000 +last octect` of machine private IP. For example if the machine ip is `10.20.2.2/24`, this means that `cloud-console` is running on `10.20.2.1:20002`. + +For the cloud-console to run we need to start the cloud-hypervisor with option "--serial pty" instead of tty, this allows us to interact with the vm from another process, `cloud-console` in our case. + +## Connect to Cloud Console + +You can easily connect to cloud console on the TFGrid. + +- Deploy a VM on the TFGrid with the WireGuard network +- Set the WireGuard configuration file +- Start the WireGuard connection: + ``` + wg-quick up wireguard.conf + ``` +- Go to your browser with the network router IP `10.20.2.1:20002` to access cloud console. + +> Note: You might need to create a user/password in the VM first before connecting to cloud-console if the image used does not have a default user. \ No newline at end of file diff --git a/collections/system_administrators/advanced/grid3_stellar_tfchain_bridge.md b/collections/system_administrators/advanced/grid3_stellar_tfchain_bridge.md index f74cbdb..11e84da 100644 --- a/collections/system_administrators/advanced/grid3_stellar_tfchain_bridge.md +++ b/collections/system_administrators/advanced/grid3_stellar_tfchain_bridge.md @@ -13,13 +13,13 @@ This document will explain how you can transfer TFT from Tfchain to Stellar and back. -For more information on TFT bridges, read [this documentation](../threefold_token/tft_bridges/tft_bridges.md). +For more information on TFT bridges, read [this documentation](threefold_token@@tft_bridges). ## Prerequisites -- [Stellar wallet](../threefold_token/storing_tft/storing_tft.md) +- [Stellar wallet](threefold_token@@storing_tft) -- [Account on TFChain (use TF Dashboard to create one)](../dashboard/wallet_connector.md) +- [Account on TFChain (use TF Dashboard to create one)](dashboard@@wallet_connector) ![](./img/bridge.png) diff --git a/collections/system_administrators/advanced/hummingbot.md b/collections/system_administrators/advanced/hummingbot.md new file mode 100644 index 0000000..7acb2cd --- /dev/null +++ b/collections/system_administrators/advanced/hummingbot.md @@ -0,0 +1,80 @@ +

Hummingbot on a Full VM

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Prerequisites](#prerequisites) +- [Deploy a Full VM](#deploy-a-full-vm) +- [Preparing the VM](#preparing-the-vm) +- [Setting Hummingbot](#setting-hummingbot) +- [References](#references) + +--- + +## Introduction + +Hummingbot is an open source platform that helps you design, backtest, and deploy fleets of automated crypto trading bots. + +In this guide, we go through the basic steps to deploy a [Hummingbot](https://hummingbot.org/) instance on a full VM running on the TFGrid. + + +## Prerequisites + +- [A TFChain account](wallet_connector.md) +- TFT in your TFChain account + - [Buy TFT](buy_sell_tft.md) + - [Send TFT to TFChain](tfchain_stellar_bridge.md) + +## 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 Hummingbot + * IPv4 Address + * Minimum vcores: 1vcore + * Minimum MB of RAM: 4096GB + * Minimum storage: 15GB +* After deployment, note the VM IPv4 address +* Connect to the VM via SSH + * ``` + ssh root@VM_IPv4_address + ``` + +## Preparing the VM + +We prepare the full to run Hummingbot. + +* Update the VM + ``` + apt update + ``` +* [Install Docker](../computer_it_basics/docker_basics.html#install-docker-desktop-and-docker-engine) + +## Setting Hummingbot + +We clone the Hummingbot repo and start it via Docker. + +* Clone the Hummingbot repository + ``` + git clone https://github.com/hummingbot/hummingbot.git + cd hummingbot + ``` +* Start Hummingbot + ``` + docker compose up -d + ``` +* Attach to instance + ``` + docker attach hummingbot + ``` + +You should now see the Hummingbot page. + +![](./img/hummingbot.png) + +## References + +The information to install Hummingbot have been taken directly from their [documentation](https://hummingbot.org/installation/docker/). + +For any advanced configurations, you may refer to the Hummingbot documentation. \ No newline at end of file diff --git a/collections/system_administrators/advanced/img/hummingbot.png b/collections/system_administrators/advanced/img/hummingbot.png new file mode 100644 index 0000000..ab81cfa Binary files /dev/null and b/collections/system_administrators/advanced/img/hummingbot.png differ diff --git a/collections/system_administrators/advanced/img/minio_1.png b/collections/system_administrators/advanced/img/minio_1.png new file mode 100644 index 0000000..58d1627 Binary files /dev/null and b/collections/system_administrators/advanced/img/minio_1.png differ diff --git a/collections/system_administrators/advanced/img/minio_2.png b/collections/system_administrators/advanced/img/minio_2.png new file mode 100644 index 0000000..3db775d Binary files /dev/null and b/collections/system_administrators/advanced/img/minio_2.png differ diff --git a/collections/system_administrators/advanced/ipfs/ipfs_fullvm.md b/collections/system_administrators/advanced/ipfs/ipfs_fullvm.md index e61a173..f2312a4 100644 --- a/collections/system_administrators/advanced/ipfs/ipfs_fullvm.md +++ b/collections/system_administrators/advanced/ipfs/ipfs_fullvm.md @@ -30,7 +30,7 @@ We start by deploying a full VM on the ThreeFold Playground. * Minimum storage: 50GB * After deployment, note the VM IPv4 address * Connect to the VM via SSH - * ``` + ``` ssh root@VM_IPv4_address ``` @@ -39,39 +39,39 @@ We start by deploying a full VM on the ThreeFold Playground. We create a root-access user. Note that this step is optional. * Once connected, create a new user with root access (for this guide we use "newuser") - * ``` + ``` adduser newuser ``` * You should now see the new user directory - * ``` + ``` ls /home ``` * Give sudo capacity to the new user - * ``` + ``` usermod -aG sudo newuser ``` * Switch to the new user - * ``` + ``` su - newuser ``` * Create a directory to store the public key - * ``` + ``` mkdir ~/.ssh ``` * Give read, write and execute permissions for the directory to the new user - * ``` + ``` chmod 700 ~/.ssh ``` * Add the SSH public key in the file **authorized_keys** and save it - * ``` + ``` nano ~/.ssh/authorized_keys ``` * Exit the VM - * ``` + ``` exit ``` * Reconnect with the new user - * ``` + ``` ssh newuser@VM_IPv4_address ``` @@ -81,19 +81,19 @@ We set a firewall to monitor and control incoming and outgoing network traffic. For our security rules, we want to allow SSH, HTTP and HTTPS (443 and 8443). We thus add the following rules: * Allow SSH (port 22) - * ``` + ``` sudo ufw allow ssh ``` * Allow port 4001 - * ``` + ``` sudo ufw allow 4001 ``` * To enable the firewall, write the following: - * ``` + ``` sudo ufw enable ``` * To see the current security rules, write the following: - * ``` + ``` sudo ufw status verbose ``` You now have enabled the firewall with proper security rules for your IPFS deployment. @@ -109,23 +109,23 @@ If you want to run pubsub capabilities, you need to allow **port 8081**. For mor We install the [IPFS Kubo binary](https://docs.ipfs.tech/install/command-line/#install-official-binary-distributions). * Download the binary - * ``` + ``` wget https://dist.ipfs.tech/kubo/v0.24.0/kubo_v0.24.0_linux-amd64.tar.gz ``` * Unzip the file - * ``` + ``` tar -xvzf kubo_v0.24.0_linux-amd64.tar.gz ``` * Change directory - * ``` + ``` cd kubo ``` * Run the install script - * ``` + ``` sudo bash install.sh ``` * Verify that IPFS Kubo is properly installed - * ``` + ``` ipfs --version ``` @@ -134,23 +134,23 @@ We install the [IPFS Kubo binary](https://docs.ipfs.tech/install/command-line/#i We initialize IPFS and run the IPFS daemon. * Initialize IPFS - * ``` + ``` ipfs init --profile server ``` * Increase the storage capacity (optional) - * ``` + ``` ipfs config Datastore.StorageMax 30GB ``` * Run the IPFS daemon - * ``` + ``` ipfs daemon ``` * Set an Ubuntu systemd service to keep the IPFS daemon running after exiting the VM - * ``` + ``` sudo nano /etc/systemd/system/ipfs.service ``` * Enter the systemd info - * ``` + ``` [Unit] Description=IPFS Daemon [Service] @@ -163,27 +163,27 @@ We initialize IPFS and run the IPFS daemon. WantedBy=multi-user.target ``` * Enable the service - * ``` + ``` sudo systemctl daemon-reload sudo systemctl enable ipfs sudo systemctl start ipfs ``` * Verify that the IPFS daemon is properly running - * ``` + ``` sudo systemctl status ipfs ``` ## Final Verification We reboot and reconnect to the VM and verify that IPFS is properly running as a final verification. * Reboot the VM - * ``` + ``` sudo reboot ``` * Reconnect to the VM - * ``` + ``` ssh newuser@VM_IPv4_address ``` * Check that the IPFS daemon is running - * ``` + ``` ipfs swarm peers ``` ## Questions and Feedback diff --git a/collections/system_administrators/advanced/ipfs/ipfs_microvm.md b/collections/system_administrators/advanced/ipfs/ipfs_microvm.md index 2f58f16..3919dde 100644 --- a/collections/system_administrators/advanced/ipfs/ipfs_microvm.md +++ b/collections/system_administrators/advanced/ipfs/ipfs_microvm.md @@ -31,7 +31,7 @@ We start by deploying a micro VM on the ThreeFold Playground. * Minimum storage: 50GB * After deployment, note the VM IPv4 address * Connect to the VM via SSH - * ``` + ``` ssh root@VM_IPv4_address ``` @@ -40,11 +40,11 @@ We start by deploying a micro VM on the ThreeFold Playground. We install the prerequisites before installing and setting IPFS. * Update Ubuntu - * ``` + ``` apt update ``` * Install nano and ufw - * ``` + ``` apt install nano && apt install ufw -y ``` @@ -57,20 +57,20 @@ For our security rules, we want to allow SSH, HTTP and HTTPS (443 and 8443). We thus add the following rules: * Allow SSH (port 22) - * ``` + ``` ufw allow ssh ``` * Allow port 4001 - * ``` + ``` ufw allow 4001 ``` * To enable the firewall, write the following: - * ``` + ``` ufw enable ``` * To see the current security rules, write the following: - * ``` + ``` ufw status verbose ``` @@ -91,23 +91,23 @@ If you want to run pubsub capabilities, you need to allow **port 8081**. For mor We install the [IPFS Kubo binary](https://docs.ipfs.tech/install/command-line/#install-official-binary-distributions). * Download the binary - * ``` + ``` wget https://dist.ipfs.tech/kubo/v0.24.0/kubo_v0.24.0_linux-amd64.tar.gz ``` * Unzip the file - * ``` + ``` tar -xvzf kubo_v0.24.0_linux-amd64.tar.gz ``` * Change directory - * ``` + ``` cd kubo ``` * Run the install script - * ``` + ``` bash install.sh ``` * Verify that IPFS Kubo is properly installed - * ``` + ``` ipfs --version ``` @@ -116,15 +116,15 @@ We install the [IPFS Kubo binary](https://docs.ipfs.tech/install/command-line/#i We initialize IPFS and run the IPFS daemon. * Initialize IPFS - * ``` + ``` ipfs init --profile server ``` * Increase the storage capacity (optional) - * ``` + ``` ipfs config Datastore.StorageMax 30GB ``` * Run the IPFS daemon - * ``` + ``` ipfs daemon ``` @@ -133,19 +133,19 @@ We initialize IPFS and run the IPFS daemon. We set the IPFS daemon with zinit. This will make sure that the IPFS daemon starts at each VM reboot or if it stops functioning momentarily. * Create the yaml file - * ``` + ``` nano /etc/zinit/ipfs.yaml ``` * Set the execution command - * ``` + ``` exec: /usr/local/bin/ipfs daemon ``` * Run the IPFS daemon with the zinit monitor command - * ``` + ``` zinit monitor ipfs ``` * Verify that the IPFS daemon is running - * ``` + ``` ipfs swarm peers ``` @@ -154,11 +154,11 @@ We set the IPFS daemon with zinit. This will make sure that the IPFS daemon star We reboot and reconnect to the VM and verify that IPFS is properly running as a final verification. * Reboot the VM - * ``` + ``` reboot -f ``` * Reconnect to the VM and verify that the IPFS daemon is running - * ``` + ``` ipfs swarm peers ``` diff --git a/collections/system_administrators/advanced/ipfs/ipfs_toc.md b/collections/system_administrators/advanced/ipfs/ipfs_toc.md index 15d9c4a..95d1893 100644 --- a/collections/system_administrators/advanced/ipfs/ipfs_toc.md +++ b/collections/system_administrators/advanced/ipfs/ipfs_toc.md @@ -2,5 +2,5 @@

Table of Contents

-- [IPFS on a Full VM](./ipfs_fullvm.md) -- [IPFS on a Micro VM](./ipfs_microvm.md) \ No newline at end of file +- [IPFS on a Full VM](ipfs_fullvm.md) +- [IPFS on a Micro VM](ipfs_microvm.md) \ No newline at end of file diff --git a/collections/system_administrators/advanced/minio_helm3.md b/collections/system_administrators/advanced/minio_helm3.md new file mode 100644 index 0000000..27f5109 --- /dev/null +++ b/collections/system_administrators/advanced/minio_helm3.md @@ -0,0 +1,112 @@ +

MinIO Operator with Helm 3

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Prerequisites](#prerequisites) +- [Create an SSH Tunnel](#create-an-ssh-tunnel) +- [Set the VM](#set-the-vm) +- [Set MinIO](#set-minio) +- [Access the MinIO Operator](#access-the-minio-operator) +- [Questions and Feedback](#questions-and-feedback) + +*** + +## Introduction + +We show how to deploy a Kubernetes cluster and set a [MinIO](https://min.io/) Operator with [Helm 3](https://helm.sh/). + +MinIO is a high-performance, S3 compatible object store. It is built for +large scale AI/ML, data lake and database workloads. Helm is a package manager for Kubernetes that allows developers and operators to more easily package, configure, and deploy applications and services onto Kubernetes clusters. + +## Prerequisites + +- TFChain account with TFT +- [Deploy Kubernetes cluster with one master and one worker (IPv4)](dashboard/@@k8s) +- [Make sure you can connect via SSH on the terminal](system_administrators@@ssh_openssh) + +## Create an SSH Tunnel + +To access the MinIO Operator, we need to create an SSH tunnel with the port 9090. + +- Open a terminal and create an SSH tunnel + ``` + ssh -4 -L 9090:127.0.0.1:9090 root@ + ``` + +Simply leave this window open and follow the next steps. + +## Set the VM + +We set the Master VM to access the minIO Operator. + +- Install the prerequisites: + ``` + apt update + apt install git -y + apt install wget + apt install jq -y + ``` +- Install Helm + ``` + wget https://get.helm.sh/helm-v3.14.3-linux-amd64.tar.gz + tar -xvf helm-v3.14.3-linux-amd64.tar.gz + mv linux-amd64/helm /usr/local/bin/helm + ``` +- Install yq + ``` + wget https://github.com/mikefarah/yq/releases/download/v4.43.1/yq_linux_amd64.tar.gz + tar -xvf yq_linux_amd64.tar.gz + mv yq_linux_amd64 /usr/bin/yq + ``` + +## Set MinIO + +We can then set the MinIO Operator. For this step, we mainly follow the MinIO documentation [here](https://min.io/docs/minio/kubernetes/upstream/operations/install-deploy-manage/deploy-operator-helm.html). + +- Add the MinIO repo + ``` + helm repo add minio-operator https://operator.min.io + ``` +- Validate the MinIO repo content + ``` + helm search repo minio-operator + ``` +- Install the operator + ``` + helm install \ + --namespace minio-operator \ + --create-namespace \ + operator minio-operator/operator + ``` +- Verify the operator installation + ``` + kubectl get all -n minio-operator + ``` + +## Access the MinIO Operator + +You can then access the MinIO Operator on your local browser (port 9090) + +``` +localhost:9090 +``` + +To log in the MinIO Operator, you will need to enter the token. To see the token, run the following line: + +``` +kubectl get secret/console-sa-secret -n minio-operator -o json | jq -r ".data.token" | base64 -d +``` + +Enter the token on the login page: + +![minio_1](./img/minio_1.png) + +You then have access to the MinIO Operator: + +![minio_2](./img/minio_2.png) + + +## Questions and Feedback + +If you have any questions, feel free to ask for help on the [ThreeFold Forum](https://forum.threefold.io/). \ No newline at end of file diff --git a/collections/system_administrators/computer_it_basics/cli_scripts_basics.md b/collections/system_administrators/computer_it_basics/cli_scripts_basics.md index dec08b2..c6f591b 100644 --- a/collections/system_administrators/computer_it_basics/cli_scripts_basics.md +++ b/collections/system_administrators/computer_it_basics/cli_scripts_basics.md @@ -24,6 +24,7 @@ - [Become the superuser (su) on Linux](#become-the-superuser-su-on-linux) - [Exit a session](#exit-a-session) - [Know the current user](#know-the-current-user) + - [See the path of a package](#see-the-path-of-a-package) - [Set the path of a package](#set-the-path-of-a-package) - [See the current path](#see-the-current-path-1) - [Find the current shell](#find-the-current-shell) @@ -127,11 +128,11 @@ You can also set a number of counts with `-c` on Linux and MAC and `-n` on Windo Here are the steps to install [Go](https://go.dev/). * Install go - * ``` + ``` sudo apt install golang-go ``` * Verify that go is properly installed - * ``` + ``` go version ``` @@ -142,19 +143,19 @@ Here are the steps to install [Go](https://go.dev/). Follow those steps to install [Brew](https://brew.sh/) * Installation command from Brew: - * ``` + ``` /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" ``` * Add the path to the **.profile** directory. Replace by your username. - * ``` + ``` echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> /home//.profile ``` * Evaluation the following: - * ``` + ``` eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" ``` * Verify the installation - * ``` + ``` brew doctor ``` @@ -163,27 +164,27 @@ Follow those steps to install [Brew](https://brew.sh/) ### Brew basic commands * To update brew in general: - * ``` + ``` brew update ``` * To update a specific package: - * ``` + ``` brew update ``` * To install a package: - * ``` + ``` brew install ``` * To uninstall a package: - * ``` + ``` brew uninstall ``` * To search a package: - * ``` + ``` brew search ``` * [Uninstall Brew](https://github.com/homebrew/install#uninstall-homebrew) - * ``` + ``` /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)" ``` @@ -194,11 +195,11 @@ Follow those steps to install [Brew](https://brew.sh/) Installing Terraform with Brew is very simple by following the [Terraform documentation](https://developer.hashicorp.com/terraform/downloads). * Compile HashiCorp software on Homebrew's infrastructure - * ``` + ``` brew tap hashicorp/tap ``` * Install Terraform - * ``` + ``` brew install hashicorp/tap/terraform ``` @@ -207,27 +208,27 @@ Installing Terraform with Brew is very simple by following the [Terraform docume ### Yarn basic commands * Add a package - * ``` + ``` yarn add ``` * Initialize the development of a package - * ``` + ``` yarn init ``` * Install all the dependencies in the **package.json** file - * ``` + ``` yarn install ``` * Publish a package to a package manager - * ``` + ``` yarn publish ``` * Remove unused package from the current package - * ``` + ``` yarn remove ``` * Clean the cache - * ``` + ``` yarn cache clean ``` @@ -260,11 +261,11 @@ ls -ld .?* You can use **tree** to display the files and organization of a directory: * General command - * ``` + ``` tree ``` * View hidden files - * ``` + ``` tree -a ``` @@ -336,10 +337,10 @@ which On MAC and Linux, you can use **coreutils** and **realpath** from Brew: -* ``` + ``` brew install coreutils ``` -* ``` + ``` realpath file_name ``` @@ -350,11 +351,11 @@ On MAC and Linux, you can use **coreutils** and **realpath** from Brew: You can use either command: * Option 1 - * ``` + ``` sudo -i ``` * Option 2 - * ``` + ``` sudo -s ``` @@ -364,10 +365,10 @@ You can use either command: You can use either command depending on your shell: -* ``` + ``` exit ``` -* ``` + ``` logout ``` @@ -377,7 +378,7 @@ You can use either command depending on your shell: You can use the following command: -* ``` + ``` whoami ``` @@ -387,7 +388,7 @@ You can use the following command: To see the path of a package, you can use the following command: -* ``` + ``` whereis ``` @@ -414,11 +415,11 @@ pwd ### Find the current shell * Compact version - * ``` + ``` echo $SHELL ``` * Detailed version - * ``` + ``` ls -l /proc/$$/exe ``` @@ -427,35 +428,35 @@ pwd ### SSH into Remote Server * Create SSH key pair - * ``` + ``` ssh-keygen ``` * Install openssh-client on the local computer* - * ``` + ``` sudo apt install openssh-client ``` * Install openssh-server on the remote computer* - * ``` + ``` sudo apt install openssh-server ``` * Copy public key - * ``` + ``` cat ~/.ssh/id_rsa.pub ``` * Create the ssh directory on the remote computer - * ``` + ``` mkdir ~/.ssh ``` * Add public key in the file **authorized_keys** on the remote computer - * ``` + ``` nano ~/.ssh/authorized_keys ``` * Check openssh-server status - * ``` + ``` sudo service ssh status ``` * SSH into the remote machine - * ``` + ``` ssh @ ``` @@ -468,11 +469,11 @@ To enable remote login on a MAC, [read this section](#enable-remote-login-on-mac ### Replace a string by another string in a text file * Replace one string by another (e.g. **old_string**, **new_string**) - * ``` + ``` sed -i 's/old_string/new_string/g' / ``` * Use environment variables (double quotes) - * ``` + ``` sed -i "s/old_string/$env_variable/g" / ``` @@ -529,11 +530,11 @@ date You can use [Dig](https://man.archlinux.org/man/dig.1) to gather DNS information of a website * Template - * ``` + ``` dig ``` * Example - * ``` + ``` dig threefold.io ``` @@ -546,31 +547,31 @@ You can also use online tools such as [DNS Checker](https://dnschecker.org/). We present one of many ways to partition and mount a disk. * Create partition with [gparted](https://gparted.org/) - * ``` + ``` sudo gparted ``` * Find the disk you want to mount (e.g. **sdb**) - * ``` + ``` sudo fdisk -l ``` * Create a directory to mount the disk to - * ``` + ``` sudo mkdir /mnt/disk ``` * Open fstab - * ``` + ``` sudo nano /etc/fstab ``` * Append the following to the fstab with the proper disk path (e.g. **/dev/sdb**) and mount point (e.g. **/mnt/disk**) - * ``` + ``` /dev/sdb /mnt/disk ext4 defaults 0 0 ``` * Mount the disk - * ``` + ``` sudo mount /mnt/disk ``` * Add permissions (as needed) - * ``` + ``` sudo chmod -R 0777 /mnt/disk ``` @@ -583,36 +584,36 @@ We present one of many ways to partition and mount a disk. You can use [gocryptfs](https://github.com/rfjakob/gocryptfs) to encrypt files. * Install gocryptfs - * ``` + ``` apt install gocryptfs ``` * Create a vault directory (e.g. **vaultdir**) and a mount directory (e.g. **mountdir**) - * ``` + ``` mkdir vaultdir mountdir ``` * Initiate the vault - * ``` + ``` gocryptfs -init vaultdir ``` * Mount the mount directory with the vault - * ``` + ``` gocryptfs vaultdir mountdir ``` * You can now create files in the folder. For example: - * ``` + ``` touch mountdir/test.txt ``` * The new file **test.txt** is now encrypted in the vault - * ``` + ``` ls vaultdir ``` * To unmount the mountedvault folder: * Option 1 - * ``` + ``` fusermount -u mountdir ``` * Option 2 - * ``` + ``` rmdir mountdir ``` @@ -623,27 +624,27 @@ To encrypt files, you can use [Veracrypt](https://www.veracrypt.fr/en/Home.html) * Veracrypt GUI * Download the package - * ``` + ``` wget https://launchpad.net/veracrypt/trunk/1.25.9/+download/veracrypt-1.25.9-Ubuntu-22.04-amd64.deb ``` * Install the package - * ``` + ``` dpkg -i ./veracrypt-1.25.9-Ubuntu-22.04-amd64.deb ``` * Veracrypt console only * Download the package - * ``` + ``` wget https://launchpad.net/veracrypt/trunk/1.25.9/+download/veracrypt-console-1.25.9-Ubuntu-22.04-amd64.deb ``` * Install the package - * ``` + ``` dpkg -i ./veracrypt-console-1.25.9-Ubuntu-22.04-amd64.deb ``` You can visit [Veracrypt download page](https://www.veracrypt.fr/en/Downloads.html) to get the newest releases. * To run Veracrypt - * ``` + ``` veracrypt ``` * Veracrypt documentation is very complete. To begin using the application, visit the [Beginner's Tutorial](https://www.veracrypt.fr/en/Beginner%27s%20Tutorial.html). @@ -661,11 +662,11 @@ ifconfig ### See identity and info of IP address * See abuses related to an IP address: - * ``` + ``` https://www.abuseipdb.com/check/ ``` * See general information of an IP address: - * ``` + ``` https://www.whois.com/whois/ ``` @@ -674,124 +675,124 @@ ifconfig ### ip basic commands * Manage and display the state of all network - * ``` + ``` ip link ``` * Display IP Addresses and property information (abbreviation of address) - * ``` + ``` ip addr ``` * Display and alter the routing table - * ``` + ``` ip route ``` * Manage and display multicast IP addresses - * ``` + ``` ip maddr ``` * Show neighbour object - * ``` + ``` ip neigh ``` * Display a list of commands and arguments for each subcommand - * ``` + ``` ip help ``` * Add an address * Template - * ``` + ``` ip addr add ``` * Example: set IP address to device **enp0** - * ``` + ``` ip addr add 192.168.3.4/24 dev enp0 ``` * Delete an address * Template - * ``` + ``` ip addr del ``` * Example: set IP address to device **enp0** - * ``` + ``` ip addr del 192.168.3.4/24 dev enp0 ``` * Alter the status of an interface * Template - * ``` + ``` ip link set ``` * Example 1: Bring interface online (here device **em2**) - * ``` + ``` ip link set em2 up ``` * Example 2: Bring interface offline (here device **em2**) - * ``` + ``` ip link set em2 down ``` * Add a multicast address * Template - * ``` + ``` ip maddr add ``` * Example : set IP address to device **em2** - * ``` + ``` ip maddr add 33:32:00:00:00:01 dev em2 ``` * Delete a multicast address * Template - * ``` + ``` ip maddr del ``` * Example: set IP address to device **em2** - * ``` + ``` ip maddr del 33:32:00:00:00:01 dev em2 ``` * Add a routing table entry * Template - * ``` + ``` ip route add ``` * Example 1: Add a default route (for all addresses) via a local gateway - * ``` + ``` ip route add default via 192.168.1.1 dev em1 ``` * Example 2: Add a route to 192.168.3.0/24 via the gateway at 192.168.3.2 - * ``` + ``` ip route add 192.168.3.0/24 via 192.168.3.2 ``` * Example 3: Add a route to 192.168.1.0/24 that can be reached on device em1 - * ``` + ``` ip route add 192.168.1.0/24 dev em1 ``` * Delete a routing table entry * Template - * ``` + ``` ip route delete ``` * Example: Delete the route for 192.168.1.0/24 via the gateway at 192.168.1.1 - * ``` + ``` ip route delete 192.168.1.0/24 via 192.168.1.1 ``` * Replace, or add, a route * Template - * ``` + ``` ip route replace ``` * Example: Replace the defined route for 192.168.1.0/24 to use device em1 - * ``` + ``` ip route replace 192.168.1.0/24 dev em1 ``` * Display the route an address will take * Template - * ``` + ``` ip route get ``` * Example: Display the route taken for IP 192.168.18.25 - * ``` + ``` ip route replace 192.168.18.25/24 dev enp0 ``` @@ -804,23 +805,23 @@ References: https://www.commandlinux.com/man-page/man8/ip.8.html ### Display socket statistics * Show all sockets - * ``` + ``` ss -a ``` * Show detailed socket information - * ``` + ``` ss -e ``` * Show timer information - * ``` + ``` ss -o ``` * Do not resolve address - * ``` + ``` ss -n ``` * Show process using the socket - * ``` + ``` ss -p ``` @@ -833,19 +834,19 @@ References: https://www.commandlinux.com/man-page/man8/ss.8.html ### Query or control network driver and hardware settings * Display ring buffer for a device (e.g. **eth0**) - * ``` + ``` ethtool -g eth0 ``` * Display driver information for a device (e.g. **eth0**) - * ``` + ``` ethtool -i eth0 ``` * Identify eth0 by sight, e.g. by causing LEDs to blink on the network port - * ``` + ``` ethtool -p eth0 ``` * Display network and driver statistics for a device (e.g. **eth0**) - * ``` + ``` ethtool -S eth0 ``` @@ -866,21 +867,21 @@ cat /sys/class/net//carrier ### Add IP address to hardware port (ethernet) * Find ethernet port ID on both computers - * ``` + ``` ip a ``` * Add IP address (DHCO or static) * Computer 1 - * ``` + ``` ip addr add /24 dev ``` * Computer 2 - * ``` + ``` ip addr add /24 dev ``` * [Ping](#test-the-network-connectivity-of-a-domain-or-an-ip-address-with-ping) the address to confirm connection - * ``` + ``` ping ``` @@ -918,11 +919,11 @@ You can use the following template when you set an IP address manually: You can use the following template to add arguments when running a script: * Option 1 - * ``` + ``` ./example_script.sh arg1 arg2 ``` * Option 2 - * ``` + ``` sh example_script.sh "arg1" "arg2" ``` @@ -930,16 +931,16 @@ You can use the following template to add arguments when running a script: * Write a script * File: `example_script.sh` - * ```bash + ```bash #!/bin/sh echo $@ ``` * Give permissions - * ```bash + ```bash chmod +x ./example_script.sh ``` * Run the script with arguments - * ```bash + ```bash sh example_script.sh arg1 arg2 ``` @@ -947,7 +948,7 @@ You can use the following template to add arguments when running a script: ### Iterate over arguments * Write the script - * ```bash + ```bash # iterate_script.sh #!/bin/bash for i; do @@ -955,16 +956,16 @@ You can use the following template to add arguments when running a script: done ``` * Give permissions - * ``` + ``` chmod +x ./iterate_script.sh ``` * Run the script with arguments - * ``` + ``` sh iterate_script.sh arg1 arg2 ``` * The following script is equivalent - * ```bash + ```bash # iterate_script.sh #/bin/bash for i in $*; do @@ -977,7 +978,7 @@ You can use the following template to add arguments when running a script: ### Count lines in files given as arguments * Write the script - * ```bash + ```bash # count_lines.sh #!/bin/bash for i in $*; do @@ -986,11 +987,11 @@ You can use the following template to add arguments when running a script: done ``` * Give permissions - * ``` + ``` chmod +x ./count_lines.sh ``` * Run the script with arguments (files). Here we use the script itself as an example. - * ``` + ``` sh count_lines.sh count_lines.sh ``` @@ -999,14 +1000,14 @@ You can use the following template to add arguments when running a script: ### Find path of a file * Write the script - * ```bash + ```bash # find.sh #!/bin/bash find / -iname $1 2> /dev/null ``` * Run the script - * ``` + ``` sh find.sh ``` @@ -1015,13 +1016,13 @@ You can use the following template to add arguments when running a script: ### Print how many arguments are passed in a script * Write the script - * ```bash + ```bash # print_qty_args.sh #!/bin/bash echo This script was passed $# arguments ``` * Run the script - * ``` + ``` sh print_qty_args.sh ``` @@ -1050,7 +1051,7 @@ Note that the Terraform documentation also covers other methods to install Terra * Option 1: * Use the following command line: - * ``` + ``` systemsetup -setremotelogin on ``` * Option 2 @@ -1063,7 +1064,7 @@ Note that the Terraform documentation also covers other methods to install Terra * Open **Finder** \> **Go** \> **Go to Folder** * Paste this path - * ``` + ``` ~/Library/Caches ``` @@ -1087,15 +1088,15 @@ To install Chocolatey on Windows, we follow the [official Chocolatey website](ht * Run PowerShell as Administrator * Check if **Get-ExecutionPolicy** is restricted - * ``` + ``` Get-ExecutionPolicy ``` * If it is restricted, run the following command: - * ``` + ``` Set-ExecutionPolicy AllSigned ``` * Install Chocolatey - * ``` + ``` Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1')) ``` * Note: You might need to restart PowerShell to use Chocolatey @@ -1107,7 +1108,7 @@ To install Chocolatey on Windows, we follow the [official Chocolatey website](ht Once you've installed Chocolatey on Windows, installing Terraform is as simple as can be: * Install Terraform with Chocolatey - * ``` + ``` choco install terraform ``` 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 c1dfdfd..d6ae44c 100644 --- a/collections/system_administrators/computer_it_basics/computer_it_basics.md +++ b/collections/system_administrators/computer_it_basics/computer_it_basics.md @@ -6,10 +6,11 @@ In this section, tailored specifically for system administrators, we'll delve in

Table of Contents

-- [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/firewall_basics.md) - - [UFW Basics](./firewall_basics/ufw_basics.md) - - [Firewalld Basics](./firewall_basics/firewalld_basics.md) -- [File Transfer](./file_transfer.md) \ No newline at end of file +- [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) \ No newline at end of file diff --git a/collections/system_administrators/computer_it_basics/docker_basics.md b/collections/system_administrators/computer_it_basics/docker_basics.md index 5a7f297..105804a 100644 --- a/collections/system_administrators/computer_it_basics/docker_basics.md +++ b/collections/system_administrators/computer_it_basics/docker_basics.md @@ -70,16 +70,16 @@ sudo sh get-docker.sh To completely remove docker from your machine, you can follow these steps: * List the docker packages - * ``` + ``` dpkg -l | grep -i docker ``` * Purge and autoremove docker - * ``` + ``` apt-get purge -y docker-engine docker docker.io docker-ce docker-ce-cli docker-compose-plugin apt-get autoremove -y --purge docker-engine docker docker.io docker-ce docker-compose-plugin ``` * Remove the docker files and folders - * ``` + ``` rm -rf /var/lib/docker /etc/docker rm /etc/apparmor.d/docker groupdel docker @@ -93,11 +93,11 @@ You can also use the command **whereis docker** to see if any Docker folders and ### List containers * List only running containers - * ``` + ``` docker ps ``` * List all containers (running + stopped) - * ``` + ``` docker ps -a ``` @@ -108,15 +108,15 @@ You can also use the command **whereis docker** to see if any Docker folders and To pull an image from [Docker Hub](https://hub.docker.com/): * Pull an image - * ``` + ``` docker pull ``` * Pull an image with the tag - * ``` + ``` docker pull :tag ``` * Pull all tags of an image - * ``` + ``` docker pull -a ``` @@ -127,15 +127,15 @@ To pull an image from [Docker Hub](https://hub.docker.com/): To pull an image to [Docker Hub](https://hub.docker.com/): * Push an image - * ``` + ``` docker push ``` * Push an image with the tag - * ``` + ``` docker push :tag ``` * Push all tags of an image - * ``` + ``` docker pull -a ``` @@ -144,11 +144,11 @@ To pull an image to [Docker Hub](https://hub.docker.com/): ### Inspect and pull an image with GHCR * Inspect the docker image - * ``` + ``` docker inspect ghcr.io//: ``` * Pull the docker image - * ``` + ``` docker pull ghcr.io//: ``` @@ -164,7 +164,7 @@ docker run --rm quay.io/skopeo/stable list-tags docker://ghcr.io//:" ``` * Example - * ``` + ``` docker build -t newimage:latest ``` * Build a docker container without using the cache - * ``` + ``` docker build --no-cache ``` @@ -206,15 +206,15 @@ docker images To run a container based on an image, use the command **docker run**. * Run an image - * ``` + ``` docker run ``` * Run an image in the background (run and detach) - * ``` + ``` docker run -d ``` * Run an image with CLI input - * ``` + ``` docker run -it ``` @@ -229,7 +229,7 @@ You can also specify the shell, e.g. **docker run -it /bin/bash** To run a new command in an existing container, use **docker exec**. * Execute interactive shell on the container - * ``` + ``` docker exec -it sh ``` @@ -238,11 +238,11 @@ To run a new command in an existing container, use **docker exec**. ### Bash shell into container * Bash shell into a container - * ``` + ``` docker exec -i -t /bin/bash ``` * Bash shell into a container with root - * ``` + ``` docker exec -i -t -u root /bin/bash ``` @@ -300,22 +300,22 @@ docker cp : ### Delete all the containers, images and volumes * To delete all containers: - * ``` + ``` docker compose rm -f -s -v ``` * To delete all images: - * ``` + ``` docker rmi -f $(docker images -aq) ``` * To delete all volumes: - * ``` + ``` docker volume rm $(docker volume ls -qf dangling=true) ``` * To delete all containers, images and volumes: - * ``` + ``` docker compose rm -f -s -v && docker rmi -f $(docker images -aq) && docker volume rm $(docker volume ls -qf dangling=true) ``` @@ -324,7 +324,7 @@ docker cp : ### Kill all the Docker processes * To kill all processes: - * ``` + ``` killall Docker && open /Applications/Docker.app ``` @@ -353,11 +353,11 @@ docker ps -s ### Examine disks usage * Basic mode - * ``` + ``` docker system df ``` * Verbose mode - * ``` + ``` docker system df -v ``` diff --git a/collections/system_administrators/computer_it_basics/file_transfer.md b/collections/system_administrators/computer_it_basics/file_transfer.md index 41718dc..a6320d3 100644 --- a/collections/system_administrators/computer_it_basics/file_transfer.md +++ b/collections/system_administrators/computer_it_basics/file_transfer.md @@ -33,14 +33,14 @@ Deploying on the TFGrid with tools such as the Playground and Terraform is easy ### File transfer with IPv4 * From local to remote, write the following on the local terminal: - * ``` + ``` scp / @:/// ``` * From remote to local, you can write the following on the local terminal (more secure): - * ``` + ``` scp @:/// / * From remote to local, you can also write the following on the remote terminal: - * ``` + ``` scp / @:/// ### File transfer with IPv6 @@ -56,11 +56,11 @@ For IPv6, it is similar to IPv4 but you need to add `-6` after scp and add `\[` We show here how to transfer files between two computers. Note that at least one of the two computers must be local. This will transfer the content of the source directory into the destination directory. * From local to remote - * ``` + ``` rsync -avz --progress --delete /path/to/local/directory/ remote_user@:/path/to/remote/directory ``` * From remote to local - * ``` + ``` rsync -avz --progress --delete remote_user@:/path/to/remote/directory/ /path/to/local/directory ``` @@ -77,16 +77,16 @@ Here is short description of the parameters used: [rsync-sidekick](https://github.com/m-manu/rsync-sidekick) propagates changes from source directory to destination directory. You can run rsync-sidekick before running rsync. Make sure that [Go is installed](#install-go). * Install rsync-sidekick - * ``` + ``` sudo go install github.com/m-manu/rsync-sidekick@latest ``` * Reorganize the files and folders with rsync-sidekick - * ``` + ``` rsync-sidekick /path/to/local/directory/ username@IP_Address:/path/to/remote/directory ``` * Transfer and update files and folders with rsync - * ``` + ``` sudo rsync -avz --progress --delete --log-file=/path/to/local/directory/rsync_storage.log /path/to/local/directory/ username@IP_Address:/path/to/remote/directory ``` @@ -95,18 +95,18 @@ Here is short description of the parameters used: We show how to automate file transfers between two computers using rsync. * Create the script file - * ``` + ``` nano rsync_backup.sh ``` * Write the following script with the proper paths. Here the log is saved in the same directory. - * ``` + ``` # filename: rsync_backup.sh #!/bin/bash sudo rsync -avz --progress --delete --log-file=/path/to/local/directory/rsync_storage.log /path/to/local/directory/ username@IP_Address:/path/to/remote/directory ``` * Give permission - * ``` + ``` sudo chmod +x /path/to/script/rsync_backup.sh ``` * Set a cron job to run the script periodically @@ -115,11 +115,11 @@ We show how to automate file transfers between two computers using rsync. sudo cp path/to/script/rsync_backup.sh /root ``` * Open the cron file - * ``` + ``` sudo crontab -e ``` * Add the following to run the script everyday. For this example, we set the time at 18:00PM - * ``` + ``` 0 18 * * * /root/rsync_backup.sh ``` @@ -128,11 +128,11 @@ We show how to automate file transfers between two computers using rsync. Depending on your situation, the parameters **--checksum** or **--ignore-times** can be quite useful. Note that adding either parameter will slow the transfer. * With **--ignore time**, you ignore both the time and size of each file. This means that you transfer all files from source to destination. - * ``` + ``` rsync --ignore-time source_folder/ destination_folder ``` * With **--checksum**, you verify with a checksum that the files from source and destination are the same. This means that you transfer all files that have a different checksum compared source to destination. - * ``` + ``` rsync --checksum source_folder/ destination_folder ``` @@ -141,11 +141,11 @@ Depending on your situation, the parameters **--checksum** or **--ignore-times** rsync does not act the same whether you use or not a slash ("\/") at the end of the source path. * Copy content of **source_folder** into **destination_folder** to obtain the result: **destination_folder/source_folder_content** - * ``` + ``` rsync source_folder/ destination_folder ``` * Copy **source_folder** into **destination_folder** to obtain the result: **destination_folder/source_folder/source_folder_content** - * ``` + ``` rsync source_folder destination_folder ``` diff --git a/collections/system_administrators/computer_it_basics/firewall_basics/firewall_basics.md b/collections/system_administrators/computer_it_basics/firewall_basics/firewall_basics.md index 9b45f1b..a128a0c 100644 --- a/collections/system_administrators/computer_it_basics/firewall_basics/firewall_basics.md +++ b/collections/system_administrators/computer_it_basics/firewall_basics/firewall_basics.md @@ -4,5 +4,5 @@ In this section, we cover the basic information concerning Firewall uses on Linu

Table of Contents

-- [UFW Basics](./ufw_basics.md) -- [Firewalld Basics](./firewalld_basics.md) \ No newline at end of file +- [UFW Basics](ufw_basics.md) +- [Firewalld Basics](firewalld_basics.md) \ No newline at end of file diff --git a/collections/system_administrators/computer_it_basics/git_github_basics.md b/collections/system_administrators/computer_it_basics/git_github_basics.md index dca25e4..831d810 100644 --- a/collections/system_administrators/computer_it_basics/git_github_basics.md +++ b/collections/system_administrators/computer_it_basics/git_github_basics.md @@ -16,6 +16,12 @@ - [Go to another branch](#go-to-another-branch) - [Add your changes to a local branch](#add-your-changes-to-a-local-branch) - [Push changes of a local branch to the remote Github branch](#push-changes-of-a-local-branch-to-the-remote-github-branch) + - [Count the differences between two branches](#count-the-differences-between-two-branches) + - [See the default branch](#see-the-default-branch) + - [Force a push](#force-a-push) + - [Merge a branch to a different branch](#merge-a-branch-to-a-different-branch) + - [Clone completely one branch to another branch locally then push the changes to Github](#clone-completely-one-branch-to-another-branch-locally-then-push-the-changes-to-github) + - [The 3 levels of the command reset](#the-3-levels-of-the-command-reset) - [Reverse modifications to a file where changes haven't been staged yet](#reverse-modifications-to-a-file-where-changes-havent-been-staged-yet) - [Download binaries from Github](#download-binaries-from-github) - [Resolve conflicts between branches](#resolve-conflicts-between-branches) @@ -50,11 +56,11 @@ You can install git on MAC, Windows and Linux. You can consult Git's documentati ### Install on Linux * Fedora distribution - * ``` + ``` dnf install git-all ``` * Debian-based distribution - * ``` + ``` apt install git-all ``` * Click [here](https://git-scm.com/download/linux) for other Linux distributions @@ -62,7 +68,7 @@ You can install git on MAC, Windows and Linux. You can consult Git's documentati ### Install on MAC * With Homebrew - * ``` + ``` brew install git ``` @@ -125,11 +131,11 @@ git checkout ### Add your changes to a local branch * Add all changes - * ``` + ``` git add . ``` * Add changes of a specific file - * ``` + ``` git add / ``` @@ -139,13 +145,13 @@ git checkout To push changes to Github, you can use the following commands: -* ``` + ``` git add . ``` -* ``` + ``` git commit -m "write your changes here in comment" ``` -* ``` + ``` git push ``` @@ -178,15 +184,15 @@ git push --force ### Merge a branch to a different branch * Checkout the branch you want to copy content TO - * ``` + ``` git checkout branch_name ``` * Merge the branch you want content FROM - * ``` + ``` git merge origin/dev_mermaid ``` * Push the changes - * ``` + ``` git push -u origin/head ``` @@ -197,19 +203,19 @@ git push --force For this example, we copy **branchB** into **branchA**. * See available branches - * ``` + ``` git branch -r ``` * Go to **branchA** - * ``` + ``` git checkout branchA ``` * Copy **branchB** into **branchA** - * ``` + ``` git git reset --hard branchB ``` * Force the push - * ``` + ``` git push --force ``` @@ -217,17 +223,17 @@ For this example, we copy **branchB** into **branchA**. ### The 3 levels of the command reset -* ``` + ``` git reset --soft ``` * Bring the History to the Stage/Index * Discard last commit -* ``` + ``` git reset --mixed ``` * Bring the History to the Working Directory * Discard last commit and add -* ``` + ``` git reset --hard ``` * Bring the History to the Working Directory @@ -252,7 +258,7 @@ git checkout ### Download binaries from Github * Template: - * ``` + ``` wget -O https://raw.githubusercontent.com//// ``` @@ -263,29 +269,29 @@ git checkout We show how to resolve conflicts in a development branch (e.g. **branch_dev**) and then merging the development branch into the main branch (e.g. **branch_main**). * Clone the repo - * ``` + ``` git clone ``` * Pull changes and potential conflicts - * ``` + ``` git pull origin branch_main ``` * Checkout the development branch - * ``` + ``` git checkout branch_dev ``` * Resolve conflicts in a text editor * Save changes in the files * Add the changes - * ``` + ``` git add . ``` * Commit the changes - * ``` + ``` git commit -m "your message here" ``` * Push the changes - * ``` + ``` git push ``` @@ -294,11 +300,11 @@ We show how to resolve conflicts in a development branch (e.g. **branch_dev**) a ### Download all repositories of an organization * Log in to gh - * ``` + ``` gh auth login ``` * Clone all repositories. Replace with the organization in question. - * ``` + ``` gh repo list --limit 1000 | while read -r repo _; do gh repo clone "$repo" "$repo" done @@ -309,15 +315,15 @@ We show how to resolve conflicts in a development branch (e.g. **branch_dev**) a ### Revert a push commited with git * Find the commit ID - * ``` + ``` git log -p ``` * Revert the commit - * ``` + ``` git revert ``` * Push the changes - * ``` + ``` git push ``` @@ -334,11 +340,11 @@ git clone -b --single-branch //.git ### Revert to a backup branch * Checkout the branch you want to update (**branch**) - * ``` + ``` git checkout ``` * Do a reset of your current branch based on the backup branch - * ``` + ``` git reset --hard ``` @@ -363,19 +369,19 @@ Note that this will not work for untracked and new files. See below for untracke This method can be used to overwrite local files. This will work even if you have untracked and new files. * Save local changes on a stash - * ``` + ``` git stash --include-untracked ``` * Discard local changes - * ``` + ``` git reset --hard ``` * Discard untracked and new files - * ``` + ``` git clean -fd ``` * Pull the remote branch - * ``` + ``` git pull ``` @@ -388,27 +394,27 @@ Then, to delete the stash, you can use **git stash drop**. The stash command is used to record the current state of the working directory. * Stash a branch (equivalent to **git stash push**) - * ``` + ``` git stash ``` * List the changes in the stash - * ``` + ``` git stash list ``` * Inspect the changes in the stash - * ``` + ``` git stash show ``` * Remove a single stashed state from the stash list and apply it on top of the current working tree state - * ``` + ``` git stash pop ``` * Apply the stash on top of the current working tree state without removing the state from the stash list - * ``` + ``` git stash apply ``` * Drop a stash - * ``` + ``` git stash drop ``` @@ -431,15 +437,15 @@ To download VS-Code, visit their website and follow the given instructions. There are many ways to install VS-Codium. Visit the [official website](https://vscodium.com/#install) for more information. * Install on MAC - * ``` + ``` brew install --cask vscodium ``` * Install on Linux - * ``` + ``` snap install codium --classic ``` * Install on Windows - * ``` + ``` choco install vscodium ``` diff --git a/collections/system_administrators/computer_it_basics/screenshots.md b/collections/system_administrators/computer_it_basics/screenshots.md new file mode 100644 index 0000000..5d23b74 --- /dev/null +++ b/collections/system_administrators/computer_it_basics/screenshots.md @@ -0,0 +1,75 @@ +

Screenshots

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Linux](#linux) +- [MAC](#mac) +- [Windows](#windows) + +*** + +## Introduction + +In this section, we show how to easily take screenshots on Linux, MAC and Windows. + +## Linux + +- Copy to the clipboard a full screenshot +``` +PrintScreen +``` +- Copy to the clipboard a screenshot of an active window +``` +Alt + PrintScreen +``` +- Copy to the clipboard a screenshot of an active app +``` +Control + Alt + PrintScreen +``` +- Copy to the clipboard a screenshot of a selected area +``` +Shift + PrintScreen +``` + +## MAC + +- Save to the desktop a full screenshot +``` +Shift + Command (⌘) + 3 +``` +- Save to the desktop a screenshot of an active window +``` +Shift + Command (⌘) + 4 + Spacebar +``` +- Copy to the clipboard a screenshot of an active window +``` +Shift + Control + Command (⌘) + 3 +``` +- Save to the desktop a screenshot of a selected area +``` +Shift + Command (⌘) + 4 +``` +- Copy to the clipboard a screenshot of a selected area +``` +Shift + Control + Command (⌘) + 4 +``` + +## Windows + +- Copy to the clipboard a full screenshot +``` +PrintScreen +``` +- Save to the pictures directory a full screenshot +``` +Windows key + PrintScreen +``` +- Copy to the clipboard a screenshot of an active window +``` +Alt + PrintScreen +``` +- Copy to the clipboard a selected area of the screen +``` +Windows key + Shift + S +``` \ No newline at end of file diff --git a/collections/system_administrators/getstarted/planetarynetwork.md b/collections/system_administrators/getstarted/planetarynetwork.md index 89ccf84..cd28491 100644 --- a/collections/system_administrators/getstarted/planetarynetwork.md +++ b/collections/system_administrators/getstarted/planetarynetwork.md @@ -14,7 +14,6 @@ - [MacOS](#macos-1) - [Get Yggdrasil IP](#get-yggdrasil-ip) - [Add Peers](#add-peers) -- [Clients](#clients) - [Peers](#peers) - [Central europe](#central-europe) - [Ghent](#ghent) @@ -141,10 +140,6 @@ You'll need this address when registering your twin on TFChain later. systemctl restart yggdrasil -## Clients - -- [planetary network connector](https://github.com/threefoldtech/planetary_network) - ## Peers ### Central europe diff --git a/collections/system_administrators/getstarted/remote-desktop_gui/cockpit_guide/cockpit_guide.md b/collections/system_administrators/getstarted/remote-desktop_gui/cockpit_guide/cockpit_guide.md index 6a08a66..e9805d3 100644 --- a/collections/system_administrators/getstarted/remote-desktop_gui/cockpit_guide/cockpit_guide.md +++ b/collections/system_administrators/getstarted/remote-desktop_gui/cockpit_guide/cockpit_guide.md @@ -17,9 +17,9 @@ In this Threefold Guide, we show how easy it is to deploy a full VM and access Cockpit, a web-based interface to manage servers. For more information on Cockpit, visit this [link](https://cockpit-project.org/). -For more information on deploying a full VM and using SSH remote connection, read [this SSH guide](../../ssh_guide/ssh_guide.md). +For more information on deploying a full VM and using SSH remote connection, read [this SSH guide](ssh_guide.md). -If you are new to the Threefold ecosystem and you want to deploy workloads on the Threefold Grid, read the [Get Started section](../../tfgrid3_getstarted.md) of the Threefold Manual. +If you are new to the Threefold ecosystem and you want to deploy workloads on the Threefold Grid, read the [Get Started section](tfgrid3_getstarted.md) of the Threefold Manual. Note that the two sections [Change the Network System Daemon](#change-the-network-system-daemon) and [Set a Firewall](#set-a-firewall) are optional. That being said, they provide more features and security to the deployment. @@ -27,60 +27,57 @@ Note that the two sections [Change the Network System Daemon](#change-the-networ ## Deploy a Full VM and Create a Root-Access User -To start, you must [deploy and SSH into a full VM](../../ssh_guide/ssh_guide.md). +To start, you must [deploy and SSH into a full VM](ssh_guide.md). * Go to the [Threefold dashboard](https://dashboard.grid.tf/#/) * Deploy a full VM (e.g. Ubuntu 22.04) * With an IPv4 Address * After deployment, copy the IPv4 address * Connect into the VM via SSH - * ``` + ``` ssh root@VM_IPv4_address ``` * Create a new user with root access * Here we use `newuser` as an example - * ``` - adduser newuser - ``` +``` +adduser newuser +``` * To see the directory of the new user - * ``` - ls /home - ``` +``` +ls /home +``` * Give sudo capacity to the new user - * ``` - usermod -aG sudo newuser - ``` +``` +usermod -aG sudo newuser +``` * Make the new user accessible by SSH - * ``` - su - newuser - ``` - * ``` - mkdir ~/.ssh - ``` - * ``` - nano ~/.ssh/authorized_keys - ``` - * add the authorized public key in the file, then save and quit - * Exit the VM and reconnect with the new user - * ``` - exit - ``` - * ``` - ssh newuser@VM_IPv4_address - ``` +``` +su - newuser +mkdir ~/.ssh +nano ~/.ssh/authorized_keys +``` +* Add the authorized public key in the file, then save and quit +* Exit the VM +``` +exit +``` + * Reconnect with the new user +``` +ssh newuser@VM_IPv4_address +``` ## Set the VM and Install Cockpit * Update and upgrade the VM - * ``` - sudo apt update -y && sudo apt upgrade -y && sudo apt-get update -y - ``` +``` +sudo apt update -y && sudo apt upgrade -y && sudo apt-get update -y +``` * Install Cockpit - * ``` - . /etc/os-release && sudo apt install -t ${UBUNTU_CODENAME}-backports cockpit -y - ``` +``` +. /etc/os-release && sudo apt install -t ${UBUNTU_CODENAME}-backports cockpit -y +``` @@ -89,47 +86,47 @@ To start, you must [deploy and SSH into a full VM](../../ssh_guide/ssh_guide.md) We now change the system daemon that manages network configurations. We will be using [NetworkManager](https://networkmanager.dev/) instead of [networkd](https://wiki.archlinux.org/title/systemd-networkd). This will give us further possibilities on Cockpit. * Install NetworkManager. Note that it might already be installed. - * ``` + ``` sudo apt install network-manager -y ``` * Update the `.yaml` file * Go to netplan's directory - * ``` - cd /etc/netplan - ``` +``` +cd /etc/netplan +``` * Search for the proper `.yaml` file name - * ``` - ls -l - ``` +``` +ls -l +``` * Update the `.yaml` file - * ``` - sudo nano 50-cloud-init.yaml - ``` +``` +sudo nano 50-cloud-init.yaml +``` * Add the following lines under `network:` - * ``` - version: 2 - renderer: NetworkManager - ``` - * Note that these two lines should be aligned with `ethernets:` + ``` + version: 2 + renderer: NetworkManager + ``` +* Note that these two lines should be aligned with `ethernets:` * Remove `version: 2` at the bottom of the file * Save and exit the file * Disable networkd and enable NetworkManager - * ``` + ``` sudo systemctl disable systemd-networkd ``` - * ``` + ``` sudo systemctl enable NetworkManager ``` * Apply netplan to set NetworkManager - * ``` + ``` sudo netplan apply ``` * Reboot the system to load the new kernel and to properly set NetworkManager - * ``` + ``` sudo reboot ``` * Reconnect to the VM - * ``` + ``` ssh newuser@VM_IPv4_address ``` @@ -139,24 +136,24 @@ We now change the system daemon that manages network configurations. We will be We now set a firewall. We note that [ufw](https://wiki.ubuntu.com/UncomplicatedFirewall) is not compatible with Cockpit and for this reason, we will be using [firewalld](https://firewalld.org/). * Install firewalld - * ``` + ``` sudo apt install firewalld -y ``` * Add Cockpit to firewalld - * ``` + ``` sudo firewall-cmd --add-service=cockpit ``` - * ``` + ``` sudo firewall-cmd --add-service=cockpit --permanent ``` * See if Cockpit is available - * ``` + ``` sudo firewall-cmd --info-service=cockpit ``` * See the status of firewalld - * ``` + ``` sudo firewall-cmd --state ``` @@ -165,7 +162,7 @@ We now set a firewall. We note that [ufw](https://wiki.ubuntu.com/UncomplicatedF ## Access Cockpit * On your web browser, write the following URL with the proper VM IPv4 address - * ``` + ``` VM_IPv4_Address:9090 ``` * Enter the username and password of the root-access user diff --git a/collections/system_administrators/getstarted/remote-desktop_gui/guacamole_guide/guacamole_guide.md b/collections/system_administrators/getstarted/remote-desktop_gui/guacamole_guide/guacamole_guide.md index d41569e..9eb5fcb 100644 --- a/collections/system_administrators/getstarted/remote-desktop_gui/guacamole_guide/guacamole_guide.md +++ b/collections/system_administrators/getstarted/remote-desktop_gui/guacamole_guide/guacamole_guide.md @@ -21,9 +21,9 @@ The Apache Guacamole instance has a two-factor authorization to give further sec With Apache Guacamole, a user can access different deployments and command servers remotely, with desktop access. -This guide can be done on a Windows, MAC, or Linux computer. For more information on deploying a full VM and using SSH remote connection, read this [SSH guide](../../ssh_guide/ssh_guide.md). +This guide can be done on a Windows, MAC, or Linux computer. For more information on deploying a full VM and using SSH remote connection, read this [SSH guide](ssh_guide.md). -If you are new to the Threefold ecosystem and you want to deploy workloads on the Threefold Grid, read the [Get Started section](../../tfgrid3_getstarted.md) of the Threefold Manual. +If you are new to the Threefold ecosystem and you want to deploy workloads on the Threefold Grid, read the [Get Started section](tfgrid3_getstarted.md) of the Threefold Manual. @@ -37,30 +37,30 @@ If you are new to the Threefold ecosystem and you want to deploy workloads on th * Minimum storage: 15Gb * After deployment, note the VM IPv4 address * Connect to the VM via SSH - * ``` + ``` ssh root@VM_IPv4_address ``` * Once connected, create a new user with root access (for this guide we use "newuser") - * ``` + ``` adduser newuser ``` * You should now see the new user directory - * ``` + ``` ls /home ``` * Give sudo capacity to the new user - * ``` + ``` usermod -aG sudo newuser ``` * Make the new user accessible by SSH - * ``` + ``` su - newuser ``` - * ``` + ``` mkdir ~/.ssh ``` * Add authorized public key in the file and save it - * ``` + ``` nano ~/.ssh/authorized_keys ``` * Exit the VM and reconnect with the new user @@ -70,21 +70,21 @@ If you are new to the Threefold ecosystem and you want to deploy workloads on th ## SSH with Root-Access User, Install Prerequisites and Apache Guacamole * SSH into the VM - * ``` + ``` ssh newuser@VM_IPv4_address ``` * Update and upgrade Ubuntu - * ``` + ``` sudo apt update && sudo apt upgrade -y && sudo apt-get install software-properties-common -y ``` * Download and run Apache Guacamole - * ``` + ``` wget -O guac-install.sh https://git.io/fxZq5 ``` - * ``` + ``` chmod +x guac-install.sh ``` - * ``` + ``` sudo ./guac-install.sh ``` @@ -93,11 +93,11 @@ If you are new to the Threefold ecosystem and you want to deploy workloads on th ## Access Apache Guacamole and Create Admin-Access User * On your local computer, open a browser and write the following URL with the proper IPv4 address - * ``` + ``` https://VM_IPv4_address:8080/guacamole ``` * On Guacamole, enter the following for both the username and the password - * ``` + ``` guacadmin ``` * Download the [TOTP](https://totp.app/) app on your Android or iOS @@ -120,23 +120,23 @@ If you are new to the Threefold ecosystem and you want to deploy workloads on th ## Download the Desktop Environment and Run xrdp * Download a Ubuntu desktop environment on the VM - * ``` - sudo apt install tasksel -y && sudo apt install lightdm -y - ``` - * Choose lightdm +``` +sudo apt install tasksel -y && sudo apt install lightdm -y +``` +* Choose lightdm * Run tasksel and choose `ubuntu desktop` - * ``` - sudo tasksel - ``` + ``` + sudo tasksel + ``` * Download and run xrdp - * ``` + ``` wget https://c-nergy.be/downloads/xRDP/xrdp-installer-1.4.6.zip ``` - * ``` + ``` unzip xrdp-installer-1.4.6.zip ``` - * ``` + ``` bash xrdp-installer-1.4.6.sh ``` @@ -146,7 +146,7 @@ If you are new to the Threefold ecosystem and you want to deploy workloads on th * Create an RDP connection on Guacamole * Open Guacamole - * ``` + ``` http://VM_IPv4_address:8080/guacamole/ ``` * Go to Settings diff --git a/collections/system_administrators/getstarted/remote-desktop_gui/remote_desktop_gui.md b/collections/system_administrators/getstarted/remote-desktop_gui/remote_desktop_gui.md index d801b48..a06c016 100644 --- a/collections/system_administrators/getstarted/remote-desktop_gui/remote_desktop_gui.md +++ b/collections/system_administrators/getstarted/remote-desktop_gui/remote_desktop_gui.md @@ -6,6 +6,6 @@ If you have any questions, or if you would like to see a specific guide on remot

Table of Contents

-- [Cockpit: a Web-based Graphical Interface for Servers](./cockpit_guide/cockpit_guide.md) -- [XRDP: an Open-Source Remote Desktop Procol](./xrdp_guide/xrdp_guide.md) -- [Apache Guacamole: a Clientless Remote Desktop Gateway.](./guacamole_guide/guacamole_guide.md) +- [Cockpit: a Web-based Graphical Interface for Servers](cockpit_guide.md) +- [XRDP: an Open-Source Remote Desktop Procol](xrdp_guide.md) +- [Apache Guacamole: a Clientless Remote Desktop Gateway.](guacamole_guide.md) diff --git a/collections/system_administrators/getstarted/remote-desktop_gui/xrdp_guide/xrdp_guide.md b/collections/system_administrators/getstarted/remote-desktop_gui/xrdp_guide/xrdp_guide.md index e1648ab..444e96a 100644 --- a/collections/system_administrators/getstarted/remote-desktop_gui/xrdp_guide/xrdp_guide.md +++ b/collections/system_administrators/getstarted/remote-desktop_gui/xrdp_guide/xrdp_guide.md @@ -18,9 +18,9 @@ We access Ubuntu with a desktop environment to offer a graphical user interface This guide can be done on a Windows, MAC, or Linux computer. The only difference will be in the Remote Desktop app. The steps are very similar. -For more information on deploying a full VM and using SSH remote connection, read this [SSH guide](../../ssh_guide/ssh_guide.md). +For more information on deploying a full VM and using SSH remote connection, read this [SSH guide](ssh_guide.md). -If you are new to the Threefold ecosystem and you want to deploy workloads on the Threefold Grid, read the [Get Started section](../../tfgrid3_getstarted.md) of the Threefold Manual. +If you are new to the Threefold ecosystem and you want to deploy workloads on the Threefold Grid, read the [Get Started section](tfgrid3_getstarted.md) of the Threefold Manual. @@ -31,109 +31,109 @@ If you are new to the Threefold ecosystem and you want to deploy workloads on th * With an IPv4 Address * After deployment, copy the IPv4 address * To SSH into the VM, write in the terminal - * ``` + ``` ssh root@VM_IPv4_address ``` * Once connected, update, upgrade and install the desktop environment * Update - * ``` - sudo apt update -y && sudo apt upgrade -y - ``` +``` +sudo apt update -y && sudo apt upgrade -y +``` * Install a light-weight desktop environment (Xfce) - * ``` - sudo apt install xfce4 xfce4-goodies -y - ``` +``` +sudo apt install xfce4 xfce4-goodies -y +``` * Create a user with root access - * ``` - adduser newuser - ``` - * ``` - ls /home - ``` - * You should see the newuser directory +``` +adduser newuser +``` +``` +ls /home +``` + * You should see the newuser directory * Give sudo capacity to newuser - * ``` - usermod -aG sudo newuser - ``` + ``` + usermod -aG sudo newuser + ``` * Make newuser accessible by SSH - * ``` - su - newuser - ``` - * ``` - mkdir ~/.ssh - ``` - * ``` - nano ~/.ssh/authorized_keys - ``` - * add authorized public key in file and save + ``` + su - newuser + ``` + ``` + mkdir ~/.ssh + ``` + ``` + nano ~/.ssh/authorized_keys + ``` + * add authorized public key in file and save * Exit the VM and reconnect with new user - * ``` - exit - ``` +``` +exit +``` * Reconnect to the VM terminal and install XRDP - * ``` - ssh newuser@VM_IPv4_address - ``` +``` +ssh newuser@VM_IPv4_address +``` * Install XRDP - * ``` + ``` sudo apt install xrdp -y ``` * Check XRDP status - * ``` + ``` sudo systemctl status xrdp ``` * If not running, run manually: - * ``` - sudo systemctl start xrdp - ``` +``` +sudo systemctl start xrdp +``` * If needed, configure xrdp (optional) - * ``` + ``` sudo nano /etc/xrdp/xrdp.ini ``` * Create a session with root-access user Move to home directory * Go to home directory of root-access user - * ``` - cd ~ - ``` +``` +cd ~ +``` * Create session - * ``` + ``` echo "xfce4-session" | tee .xsession ``` * Restart the server - * ``` + ``` sudo systemctl restart xrdp ``` * Find your local computer IP address * On your local computer terminal, write - * ``` - curl ifconfig.me - ``` +``` +curl ifconfig.me +``` * On the VM terminal, allow client computer port to the firewall (ufw) - * ``` + ``` sudo ufw allow from your_local_ip/32 to any port 3389 ``` * Allow SSH connection to your firewall - * ``` + ``` sudo ufw allow ssh ``` * Verify status of the firewall - * ``` + ``` sudo ufw status ``` * If not active, do the following: - * ``` - sudo ufw disable - ``` - * ``` - sudo ufw enable - ``` +``` +sudo ufw disable +``` +``` +sudo ufw enable +``` * Then the ufw status should show changes - * ``` - sudo ufw status - ``` +``` +sudo ufw status +``` ## Client Side: Install Remote Desktop Connection for Windows, MAC or Linux @@ -149,7 +149,7 @@ Simply download the app, open it and write the IPv4 address of the VM. You then * [Remote Desktop Connection app](https://apps.microsoft.com/store/detail/microsoft-remote-desktop/9WZDNCRFJ3PS?hl=en-ca&gl=ca&rtc=1) * MAC * Download in app store - * [Microsoft Remote Desktop Connection app](https://apps.apple.com/ca/app/microsoft-remote-desktop/id1295203466?mt=12) +* [Microsoft Remote Desktop Connection app](https://apps.apple.com/ca/app/microsoft-remote-desktop/id1295203466?mt=12) * Linux * [Remmina RDP Client](https://remmina.org/) diff --git a/collections/system_administrators/getstarted/ssh_guide/ssh_guide.md b/collections/system_administrators/getstarted/ssh_guide/ssh_guide.md index 020e2ad..62b83a4 100644 --- a/collections/system_administrators/getstarted/ssh_guide/ssh_guide.md +++ b/collections/system_administrators/getstarted/ssh_guide/ssh_guide.md @@ -4,7 +4,7 @@ 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 +- [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 diff --git a/collections/system_administrators/getstarted/ssh_guide/ssh_openssh.md b/collections/system_administrators/getstarted/ssh_guide/ssh_openssh.md index 6598350..f782d79 100644 --- a/collections/system_administrators/getstarted/ssh_guide/ssh_openssh.md +++ b/collections/system_administrators/getstarted/ssh_guide/ssh_openssh.md @@ -20,7 +20,7 @@ # 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, 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). To deploy different workloads, the SSH connection process should be very similar. @@ -50,13 +50,13 @@ The main steps for the whole process are the following: Here are the steps to SSH into a 3Node with IPv4 on Linux. * 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 @@ -72,7 +72,7 @@ Here are the steps to SSH into a 3Node with IPv4 on Linux. * To SSH into the VM once the 3Node is deployed * Copy the IPv4 address * Open the terminal, write the following with the deployment address and write **yes** to confirm - * ``` + ``` ssh root@IPv4_address ``` @@ -84,21 +84,15 @@ You now have an SSH connection on Linux with IPv4. Here are the steps to SSH into a 3Node with the Planetary Network on Linux. -* To download and connect to the Threefold Planetary Network Connector - * Download the [.deb file](https://github.com/threefoldtech/planetary_network/releases/tag/v0.3-rc1-Linux) - * Right-click and select `Open with other application` - * Select `Software Install` - * Search the `Threefold Planetary Connector` and open it - * Disconnect your VPN if you have one - * In the connector, click `Connect` +* Set a [Planetary Network connection](planetarynetwork.md) * To create the SSH key pair, write in the terminal - * ``` + ``` ssh-keygen ``` * 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 @@ -114,7 +108,7 @@ Here are the steps to SSH into a 3Node with the Planetary Network on Linux. * 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 ``` @@ -129,13 +123,13 @@ You now have an SSH connection on Linux with the Planetary Network. Here are the steps to SSH into a 3Node with IPv4 on MAC. * To create the SSH key pair, in the terminal write - * ``` + ``` 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 @@ -151,7 +145,7 @@ Here are the steps to SSH into a 3Node with IPv4 on MAC. * To SSH into the VM once the 3Node is deployed * Copy the IPv4 address * Open the terminal, write the following with the deployment address and write **yes** to confirm - * ``` + ``` ssh root@IPv4_address ``` @@ -163,20 +157,15 @@ You now have an SSH connection on MAC with IPv4. Here are the steps to SSH into a 3Node with the Planetary Network on MAC. -* To download and connect to the Threefold Planetary Network Connector - * Download the [.dmg file](https://github.com/threefoldtech/planetary_network/releases/tag/v0.3-rc1-MacOS) - * Run the dmg installer - * Search the Threefold Planetary Connector in `Applications` and open it - * Disconnect your VPN if you have one - * In the connector, click `Connect` +* Set a [Planetary Network connection](planetarynetwork.md) * To create the SSH key pair, write in the terminal - * ``` + ``` ssh-keygen ``` * 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 @@ -192,7 +181,7 @@ Here are the steps to SSH into a 3Node with the Planetary Network on MAC. * 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 ``` @@ -214,13 +203,13 @@ 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) * To see the public key, write in `PowerShell` - * ``` + ``` cat ~/.ssh/id_rsa.pub ``` * Select and copy the public key when needed @@ -236,7 +225,7 @@ You now have an SSH connection on MAC with the Planetary Network. * To SSH into the VM once the 3Node is deployed * Copy the IPv4 address * Open `PowerShell`, write the following with the deployment address and write **yes** to confirm - * ``` + ``` ssh root@IPv4_address ``` @@ -246,12 +235,7 @@ You now have an SSH connection on Window with IPv4. ### SSH into a 3Node with the Planetary Network on Windows -* To download and connect to the Threefold Planetary Network Connector - * Download the [.msi file](https://github.com/threefoldtech/planetary_network/releases/tag/v0.3-rc1-Windows10) - * Search the `Threefold Planetary Connector` - * Right-click and select `Install` - * Disconnect your VPN if you have one - * Open the TF connector and click `Connect` +* Set a [Planetary Network connection](planetarynetwork.md) * To download OpenSSH client and OpenSSH server * Open the `Settings` and select `Apps` * Click `Apps & Features` @@ -262,13 +246,13 @@ You now have an SSH connection on Window with IPv4. * 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 @@ -284,7 +268,7 @@ You now have an SSH connection on Window with IPv4. * 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 ``` diff --git a/collections/system_administrators/getstarted/ssh_guide/ssh_putty.md b/collections/system_administrators/getstarted/ssh_guide/ssh_putty.md index 020945a..8e47559 100644 --- a/collections/system_administrators/getstarted/ssh_guide/ssh_putty.md +++ b/collections/system_administrators/getstarted/ssh_guide/ssh_putty.md @@ -29,8 +29,7 @@ The main steps for the whole process are the following: * Deploy a 3Node * Choose IPv4 or the Planetary Network * SSH into the 3Node - * For the Planetary Network, download the Planetary Network Connector - + * For the Planetary Network, set a [Planetary Network connection](planetarynetwork.md) ## SSH with PuTTY on Windows diff --git a/collections/system_administrators/getstarted/ssh_guide/ssh_wireguard.md b/collections/system_administrators/getstarted/ssh_guide/ssh_wireguard.md index 260fab0..a251f97 100644 --- a/collections/system_administrators/getstarted/ssh_guide/ssh_wireguard.md +++ b/collections/system_administrators/getstarted/ssh_guide/ssh_wireguard.md @@ -19,24 +19,24 @@ 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). 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. # 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. * SSH client of your choice - * [Open-SSH](./ssh_openssh.md) + * [Open-SSH](ssh_openssh.md) * [PuTTy](ssh_putty.md) - * [WSL](./ssh_wsl.md) + * [WSL](ssh_wsl.md) # Deploy a Weblet with WireGuard Access -For this guide on WireGuard access, we deploy a [Full VM](../../../dashboard/solutions/fullVm.md). 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 +69,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 ``` @@ -102,10 +102,10 @@ To set the WireGuard connection on Windows, add and activate a tunnel with the W # Test the WireGuard Connection -As a test, you can [ping](../../computer_it_basics/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: +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,7 +116,7 @@ As a test, you can [ping](../../computer_it_basics/cli_scripts_basics.md#test-th 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 ``` diff --git a/collections/system_administrators/getstarted/tfgrid3_getstarted.md b/collections/system_administrators/getstarted/tfgrid3_getstarted.md index dcfd756..d479cb3 100644 --- a/collections/system_administrators/getstarted/tfgrid3_getstarted.md +++ b/collections/system_administrators/getstarted/tfgrid3_getstarted.md @@ -4,28 +4,28 @@ It's easy to get started on the TFGrid and deploy applications. -- [Create a TFChain Account](../../dashboard/wallet_connector.md) -- [Get TFT](../../threefold_token/buy_sell_tft/buy_sell_tft.md) -- [Bridge TFT to TChain](../../threefold_token/tft_bridges/tft_bridges.md) -- [Deploy an Application](../../dashboard/deploy/deploy.md) -- [SSH Remote Connection](./ssh_guide/ssh_guide.md) - - [SSH with OpenSSH](./ssh_guide/ssh_openssh.md) - - [SSH with PuTTY](./ssh_guide/ssh_putty.md) - - [SSH with WSL](./ssh_guide/ssh_wsl.md) - - [SSH and WireGuard](./ssh_guide/ssh_wireguard.md) +- [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) ## Grid Platforms -- [TF Dashboard](../../dashboard/dashboard.md) -- [TF Flist Hub](../../developers/flist/flist_hub/zos_hub.md) +- [TF Dashboard](dashboard/dashboard@@) +- [TF Flist Hub](developers@@zos_hub) ## TFGrid Services and Resources -- [TFGrid Services](./tfgrid_services/tf_grid_services_readme.md) +- [TFGrid Services](tf_grid_services_readme.md) ## Advanced Deployment Techniques -- [Advanced Topics](../advanced/advanced.md) +- [Advanced Topics](advanced.md) *** diff --git a/collections/system_administrators/getstarted/tfgrid3_what_to_know.md b/collections/system_administrators/getstarted/tfgrid3_what_to_know.md index 300caa1..a72590b 100644 --- a/collections/system_administrators/getstarted/tfgrid3_what_to_know.md +++ b/collections/system_administrators/getstarted/tfgrid3_what_to_know.md @@ -1,13 +1,13 @@ # TFGrid 3.0 Whats There To Know -- [Storage Concepts](./tfgrid3_storage_concepts.md) -- [Network Concepts](./tfgrid3_network_concepts.md) +- [Storage Concepts](tfgrid3_storage_concepts.md) +- [Network Concepts](tfgrid3_network_concepts.md) ## Networking ### Private network (ZNET) -For a project that needs a private network, we need a network that can span across multiple nodes, this can be achieved by the network workload reservation [Network](/getstarted/tfgrid3_network_concepts.md) +For a project that needs a private network, we need a network that can span across multiple nodes, this can be achieved by the network workload reservation [Network](tfgrid3_network_concepts.md) ### Planetary network @@ -35,7 +35,7 @@ As a user, you have two options ## Compute -VM workload is the only workload that you will need to run a full blown VM or an [flist-based](/flist_hub/flist_hub.md) container +VM workload is the only workload that you will need to run a full blown VM or an [flist-based](flist_hub.md) container ### How can I create an flist? @@ -50,9 +50,9 @@ We leverage the VM primitive to allow provisioning kubernetes clusters across mu ## Exploring the capacity -You can easily check using [explorer-ui](dashboard/explorer/explorer_home.md) , also to plan your deployment you can use these [example queries](dashboard/explorer/explorer_graphql_examples.md) +You can easily check using [explorer-ui](dashboard@@explorer_home) , also to plan your deployment you can use these [example queries](dashboard@@explorer_graphql_examples) ## Getting started -Please check [Getting started](/getstarted/tfgrid3_getstarted.md) to get the necessary software / configurations +Please check [Getting started](tfgrid3_getstarted.md) to get the necessary software / configurations diff --git a/collections/system_administrators/gpu/gpu.md b/collections/system_administrators/gpu/gpu.md index 0d85112..d930a98 100644 --- a/collections/system_administrators/gpu/gpu.md +++ b/collections/system_administrators/gpu/gpu.md @@ -25,7 +25,7 @@ To use a GPU on the TFGrid, users need to rent a dedicated node. Once they have ## Filter and Reserve a GPU Node -You can filter and reserve a GPU node using the [Dedicated Nodes section](../../dashboard/deploy/dedicated_machines.md) of the **ThreeFold Dashboard**. +You can filter and reserve a GPU node using the [Dedicated Nodes section](dashboard@@node_finder) of the **ThreeFold Dashboard**. ### Filter Nodes @@ -52,7 +52,7 @@ When you have decided which node to reserve, click on **Reserve** under the colu ## Deploy a VM with GPU -Now that you've reserverd a dedicated GPU node, it's time to deploy a VM to make use of the GPU! There are many ways to proceed. You can use the [Dashboard](../../dashboard/solutions/fullVm.md), [Go](../../developers/go/grid3_go_gpu.md), [Terraform](../terraform/terraform_gpu_support.md), etc. +Now that you've reserverd a dedicated GPU node, it's time to deploy a VM to make use of the GPU! There are many ways to proceed. You can use the [Dashboard](fullvm.md), [Go](developers@@grid3_go_gpu), [Terraform](terraform_gpu_support.md), etc. For example, deploying a VM with GPU on the Dashboard is easy. Simply set the GPU option and make sure to select your dedicated node, as show here: ![image](./img/gpu_3.png) @@ -120,4 +120,4 @@ Here are some useful links to troubleshoot your GPU installation. ## GPU Support Links -You can consult the [GPU Table of Contents](./gpu_toc.md) to see all available GPU support links on the ThreeFold Manual. \ No newline at end of file +You can consult the [GPU Table of Contents](gpu_toc.md) to see all available GPU support links on the ThreeFold Manual. \ 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 073c79e..b0ccaca 100644 --- a/collections/system_administrators/gpu/gpu_toc.md +++ b/collections/system_administrators/gpu/gpu_toc.md @@ -6,14 +6,14 @@ Feel free to explore the different possibilities!

Table of Contents

-- [GPU Support](./gpu.md) -- [Node Finder and GPU](../../dashboard/deploy/node_finder.md#gpu-support) -- [Javascript Client and GPU](../../developers/javascript/grid3_javascript_gpu_support.md) -- [GPU and Go](../../developers/go/grid3_go_gpu.md) - - [GPU Support](../../developers/go/grid3_go_gpu_support.md) - - [Deploy a VM with GPU](../../developers/go/grid3_go_vm_with_gpu.md) -- [TFCMD and GPU](../../developers/tfcmd/tfcmd_vm.md#deploy-a-vm-with-gpu) -- [Terraform and GPU](../terraform/terraform_gpu_support.md) -- [Full VM and GPU](../../dashboard/solutions/fullVm.md) -- [Zero-OS API and GPU](../../developers/internals/zos/manual/api.md#gpus) -- [GPU Farming](../../farmers/3node_building/gpu_farming.md) \ No newline at end of file +- [GPU Support](gpu.md) +- [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) +- [Zero-OS API and GPU](developers@@api) +- [GPU Farming](farmers@@gpu_farming) \ No newline at end of file diff --git a/collections/system_administrators/mycelium/information.md b/collections/system_administrators/mycelium/information.md index d900e82..87695ad 100644 --- a/collections/system_administrators/mycelium/information.md +++ b/collections/system_administrators/mycelium/information.md @@ -5,7 +5,7 @@ - [Introduction](#introduction) - [Connect to Other Nodes](#connect-to-other-nodes) -- [Possible Peers](#possible-peers) +- [Hosted Public Nodes](#hosted-public-nodes) - [Default Port](#default-port) - [Check Network Information](#check-network-information) - [Test the Network](#test-the-network) @@ -14,6 +14,11 @@ - [API](#api) - [Message System](#message-system) - [Inspecting Node Keys](#inspecting-node-keys) +- [Troubleshooting](#troubleshooting) + - [Root Access](#root-access) + - [Enable IPv6 at the OS Level](#enable-ipv6-at-the-os-level) + - [VPN Can Block Mycelium](#vpn-can-block-mycelium) + - [Add Peers](#add-peers) *** @@ -36,18 +41,32 @@ If you are using other tun inferface, e.g. utun3 (default), you can set a differ mycelium --peers tcp://83.231.240.31:9651 quic://185.206.122.71:9651 --tun-name utun9 ``` -## Possible Peers +## Hosted Public Nodes -Here are some possible peers. +A couple of public nodes are provided, which can be freely connected to. This allows +anyone to join the global network. These are hosted in 3 geographic regions, on both +IPv4 and IPv6, and supporting both the Tcp and Quic protocols. The nodes are the +following: -``` -tcp://146.185.93.83:9651 -quic://83.231.240.31:9651 -quic://185.206.122.71:9651 -tcp://[2a04:f340:c0:71:28cc:b2ff:fe63:dd1c]:9651 -tcp://[2001:728:1000:402:78d3:cdff:fe63:e07e]:9651 -quic://[2a10:b600:1:0:ec4:7aff:fe30:8235]:9651 -``` +| Node ID | Region | IPv4 | IPv6 | Tcp port | Quic port | +| --- | --- | --- | --- | --- | --- | +| 01 | DE | 188.40.132.242 | 2a01:4f8:221:1e0b::2 | 9651 | 9651 | +| 02 | DE | 136.243.47.186 | 2a01:4f8:212:fa6::2 | 9651 | 9651 | +| 03 | BE | 185.69.166.7 | 2a02:1802:5e:0:8478:51ff:fee2:3331 | 9651 | 9651 | +| 04 | BE | 185.69.166.8 | 2a02:1802:5e:0:8c9e:7dff:fec9:f0d2 | 9651 | 9651 | +| 05 | FI | 65.21.231.58 | 2a01:4f9:6a:1dc5::2 | 9651 | 9651 | +| 06 | FI | 65.109.18.113 | 2a01:4f9:5a:1042::2 | 9651 | 9651 | + +These nodes are all interconnected, so 2 peers who each connect to a different node +(or set of disjoint nodes) will still be able to reach each other. For optimal performance, +it is recommended to connect to all of the above at once however. An example connection +string could be: + +`--peers tcp://188.40.132.242:9651 "tcp://[2a01:4f8:212:fa6::2]:9651" quic://185.69.166.7:9651 "tcp://[2a02:1802:5e:0:8c9e:7dff:fec9:f0d2]:9651" tcp://65.21.231.58:9651 "quic://[2a01:4f9:5a:1042::2]:9651"` + +It is up to the user to decide which peers he wants to use, over which protocol. +Note that quotation may or may not be required, depending on which shell is being +used. ## Default Port @@ -116,8 +135,8 @@ same data stream used by L3 packets. As such, intermediate nodes can't distingui and message data. The primary way to interact with the message system is through [the API](#API). The message API is -documented in [here](./api_yaml.md). For some more info about how to -use the message system, see [the Message section](./message.md). +documented in [here](api_yaml.md). For some more info about how to +use the message system, see [the Message section](message.md). ## Inspecting Node Keys @@ -136,4 +155,40 @@ Where the output could be something like this: ```sh Public key: a47c1d6f2a15b2c670d3a88fbe0aeb301ced12f7bcb4c8e3aa877b20f8559c02 Address: 27f:b2c5:a944:4dad:9cb1:da4:8bf7:7e65 -``` \ No newline at end of file +``` + + +## Troubleshooting + +### Root Access + +You might need to run Mycelium as root. Some error messages could be something like: `Error: NixError(EPERM)`. + +### Enable IPv6 at the OS Level + +You need to enable IPv6 at the OS level. Some error messages could be something like: `Permission denied (os error 13)`. + +- Check if IPv66 is enabled + - If disabled, output is 1, if enabled, output is 0 + ``` + sysctl net.ipv6.conf.all.disable_ipv6 + ``` +- Enable IPv6 + ``` + sudo sysctl net.ipv6.conf.all.disable_ipv6=0 + ``` + +Here's some commands to troubleshoot IPv6: + +``` +sudo ip6tables -S INPUT +sudo ip6tables -S OUTPUT +``` + +### VPN Can Block Mycelium + +You might need to disconnect your VPN when using Mycelium. + +### Add Peers + +It can help to connect to other peers. Check the Mycelium repository for [peers](https://github.com/threefoldtech/mycelium?tab=readme-ov-file#hosted-public-nodes). \ No newline at end of file diff --git a/collections/system_administrators/mycelium/installation.md b/collections/system_administrators/mycelium/installation.md index 7f403c2..789cf20 100644 --- a/collections/system_administrators/mycelium/installation.md +++ b/collections/system_administrators/mycelium/installation.md @@ -4,19 +4,28 @@

Table of Contents

- [Introduction](#introduction) -- [Full VM Example](#full-vm-example) +- [Considerations](#considerations) +- [Set Mycelium](#set-mycelium) +- [Start Mycelium](#start-mycelium) +- [Use Mycelium](#use-mycelium) +- [Mycelium Service (optional)](#mycelium-service-optional) *** ## Introduction -In this section, we cover how to install Mycelium. For this guide, we will show the steps on a full VM running on the TFGrid. +In this section, we cover how to install Mycelium. This guide can be done on a local machine and also on a full VM running on the TFGrid. Currently, Linux, macOS and Windows are supported. On Windows, you must have `wintun.dll` in the same directory you are executing the binary from. -## Full VM Example +## Considerations + +You might need to run Mycelium as root, enable IPv6 at the OS level and disconnect your VPN. + +Read the [Troubleshooting](information.md#troubleshooting) section for more information. + +## Set Mycelium -- Deploy a Full VM with Planetary network and SSH into the VM - Update the system ``` apt update @@ -33,16 +42,75 @@ Currently, Linux, macOS and Windows are supported. On Windows, you must have `wi ``` mv mycelium /usr/local/bin ``` + +## Start Mycelium + +You can start Mycelium + - Start Mycelium ``` mycelium --peers tcp://83.231.240.31:9651 quic://185.206.122.71:9651 --tun-name utun2 ``` - Open another terminal -- Check the Mycelium connection information (address: ...) +- Check the Mycelium connection information (address and public key) ``` mycelium inspect --json ``` + +## Use Mycelium + +Once you've set Mycelium, you can use it to ping other addresses and also to connect into VMs running on the TFGrid. + - Ping the VM from another machine with IPv6 ``` ping6 mycelium_address - ``` \ No newline at end of file + ``` +- SSH into a VM running on the TFGrid + ``` + ssh root@vm_mycelium_address + ``` + +## Mycelium Service (optional) + +You can create a systemd service to make sure Mycelium is always enabled and running. + +- Create a Mycelium service + ```bash + nano /etc/systemd/system/mycelium.service + ``` +- Set the service and save the file + ``` + [Unit] + Description=End-2-end encrypted IPv6 overlay network + Wants=network.target + After=network.target + Documentation=https://github.com/threefoldtech/mycelium + + [Service] + ProtectHome=true + ProtectSystem=true + SyslogIdentifier=mycelium + CapabilityBoundingSet=CAP_NET_ADMIN + StateDirectory=mycelium + StateDirectoryMode=0700 + ExecStartPre=+-/sbin/modprobe tun + ExecStart=/usr/local/bin/mycelium --tun-name mycelium -k %S/mycelium/key.bin --peers tcp://146.185.93.83:9651 quic://83.231.240.31:9651 quic://185.206.122.71:9651 tcp://[2a04:f340:c0:71:28cc:b2ff:fe63:dd1c]:9651 tcp://[2001:728:1000:402:78d3:cdff:fe63:e07e]:9651 quic://[2a10:b600:1:0:ec4:7aff:fe30:8235]:9651 + Restart=always + RestartSec=5 + TimeoutStopSec=5 + + [Install] + WantedBy=multi-user.target + ``` +- Enable the service + ``` + systemctl daemon-reload + systemctl enable mycelium + systemctl start mycelium + ``` +- Verify that the Mycelium service is properly running + ``` + systemctl status mycelium + ``` + +Systemd will start up the Mycelium, restart it if it ever crashes, and start it up automatically after any reboots. \ No newline at end of file diff --git a/collections/system_administrators/mycelium/message.md b/collections/system_administrators/mycelium/message.md index f132367..c7edbd3 100644 --- a/collections/system_administrators/mycelium/message.md +++ b/collections/system_administrators/mycelium/message.md @@ -13,7 +13,7 @@ The message subsystem can be used to send arbitrary length messages to receivers. A receiver is any other node in the network. It can be identified both by its public key, or an IP address in its announced range. The message subsystem can be interacted with both via the HTTP API, which is -[documented here](./api_yaml.md), or via the `mycelium` binary. By default, the messages do not interpret +[documented here](api_yaml.md), or via the `mycelium` binary. By default, the messages do not interpret the data in any way. When using the binary, the message is slightly modified to include an optional topic at the start of the message. Note that in the HTTP API, all messages are encoded in base64. This might make it difficult to consume these messages without additional tooling. diff --git a/collections/system_administrators/mycelium/mycelium_toc.md b/collections/system_administrators/mycelium/mycelium_toc.md index 817771d..c95199e 100644 --- a/collections/system_administrators/mycelium/mycelium_toc.md +++ b/collections/system_administrators/mycelium/mycelium_toc.md @@ -5,10 +5,10 @@ In this section, we present [Mycelium](https://github.com/threefoldtech/mycelium

Table of Contents

-- [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) \ No newline at end of file +- [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) \ 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 5dc808c..282fd49 100644 --- a/collections/system_administrators/pulumi/pulumi_deployment_details.md +++ b/collections/system_administrators/pulumi/pulumi_deployment_details.md @@ -29,7 +29,7 @@ Please note that the Pulumi plugin for ThreeFold Grid is not yet officially publ ## Installation -If this isn't already done, [install Pulumi](./pulumi_install.md) on your machine. +If this isn't already done, [install Pulumi](pulumi_install.md) on your machine. ## Essential Workflow diff --git a/collections/system_administrators/pulumi/pulumi_examples.md b/collections/system_administrators/pulumi/pulumi_examples.md index 73363c3..9910d49 100644 --- a/collections/system_administrators/pulumi/pulumi_examples.md +++ b/collections/system_administrators/pulumi/pulumi_examples.md @@ -23,13 +23,13 @@ Please note that the Pulumi plugin for ThreeFold Grid is not yet officially publ 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. -* [Install Pulumi](./pulumi_install.md) on your machine +* [Install Pulumi](pulumi_install.md) on your machine * Clone the **Pulumi-ThreeFold** repository - * ``` + ``` git clone https://github.com/threefoldtech/pulumi-threefold ``` * Change directory - * ``` + ``` cd ./pulumi-threefold ``` @@ -38,15 +38,15 @@ There are a few things to set up before exploring Pulumi. Since we will be using You can export the environment variables before deploying workloads. * Export the network (**dev**, **qa**, **test**, **main**). Note that we are using the **dev** network by default. - * ``` + ``` export NETWORK="Enter the network" ``` * Export your mnemonics. - * ``` + ``` export MNEMONIC="Enter the mnemonics" ``` * Export the SSH_KEY (public key). - * ``` + ``` export SSH_KEY="Enter the public Key" ``` @@ -65,11 +65,11 @@ The different examples that work simply by running **make run** are the followin We give an example with **virtual_machine**. * Go to the directory **virtual_machine** - * ``` + ``` cd examples/virtual_machine ``` * Deploy the Pulumi workload with **make** - * ``` + ``` make run ``` diff --git a/collections/system_administrators/pulumi/pulumi_install.md b/collections/system_administrators/pulumi/pulumi_install.md index 93262a8..531c591 100644 --- a/collections/system_administrators/pulumi/pulumi_install.md +++ b/collections/system_administrators/pulumi/pulumi_install.md @@ -17,15 +17,15 @@ To install Pulumi, simply follow the steps provided in the [Pulumi documentation ## Installation * Install on Linux - * ``` + ``` curl -fsSL https://get.pulumi.com | sh ``` * Install on MAC - * ``` + ``` brew install pulumi/tap/pulumi ``` * Install on Windows - * ``` + ``` choco install pulumi ``` diff --git a/collections/system_administrators/pulumi/pulumi_readme.md b/collections/system_administrators/pulumi/pulumi_readme.md index 0cc318c..31b4cf0 100644 --- a/collections/system_administrators/pulumi/pulumi_readme.md +++ b/collections/system_administrators/pulumi/pulumi_readme.md @@ -6,7 +6,7 @@ In this section, we will explore the dynamic world of infrastructure as code (Ia

Table of Contents

-- [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 +- [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 diff --git a/collections/system_administrators/system_administrators.md b/collections/system_administrators/system_administrators.md index fe09e6a..5925d74 100644 --- a/collections/system_administrators/system_administrators.md +++ b/collections/system_administrators/system_administrators.md @@ -2,82 +2,88 @@ This section covers all practical tutorials for system administrators working on the ThreeFold Grid. -For complementary information on ThreeFold grid and its cloud component, refer to the [Cloud](../../knowledge_base/cloud/cloud_toc.md) section. +For complementary information on ThreeFold grid and its cloud component, refer to the [Cloud](cloud@@cloud_toc) section.

Table of Contents

-- [Getting Started](./getstarted/tfgrid3_getstarted.md) - - [SSH Remote Connection](./getstarted/ssh_guide/ssh_guide.md) - - [SSH with OpenSSH](./getstarted/ssh_guide/ssh_openssh.md) - - [SSH with PuTTY](./getstarted/ssh_guide/ssh_putty.md) - - [SSH with WSL](./getstarted/ssh_guide/ssh_wsl.md) - - [WireGuard Access](./getstarted/ssh_guide/ssh_wireguard.md) - - [Remote Desktop and GUI](./getstarted/remote-desktop_gui/remote-desktop_gui.md) - - [Cockpit: a Web-based Interface for Servers](./getstarted/remote-desktop_gui/cockpit_guide/cockpit_guide.md) - - [XRDP: an Open-Source Remote Desktop Protocol](./getstarted/remote-desktop_gui/xrdp_guide/xrdp_guide.md) - - [Apache Guacamole: a Clientless Remote Desktop Gateway](./getstarted/remote-desktop_gui/guacamole_guide/guacamole_guide.md) -- [Planetary Network](./getstarted/planetarynetwork.md) -- [TFGrid Services](./getstarted/tfgrid_services/tf_grid_services_readme.md) -- [GPU](./gpu/gpu_toc.md) - - [GPU Support](./gpu/gpu.md) -- [Terraform](./terraform/terraform_toc.md) - - [Overview](./terraform/terraform_readme.md) - - [Installing Terraform](./terraform/terraform_install.md) - - [Terraform Basics](./terraform/terraform_basics.md) - - [Full VM Deployment](./terraform/terraform_full_vm.md) - - [GPU Support](./terraform/terraform_gpu_support.md) - - [Resources](./terraform/resources/terraform_resources_readme.md) - - [Using Scheduler](./terraform/resources/terraform_scheduler.md) - - [Virtual Machine](./terraform/resources/terraform_vm.md) - - [Web Gateway](./terraform/resources/terraform_vm_gateway.md) - - [Kubernetes Cluster](./terraform/resources/terraform_k8s.md) - - [ZDB](./terraform/resources/terraform_zdb.md) - - [Quantum Safe Filesystem](./terraform/resources/terraform_qsfs.md) - - [QSFS on Micro VM](./terraform/resources/terraform_qsfs_on_microvm.md) - - [QSFS on Full VM](./terraform/resources/terraform_qsfs_on_full_vm.md) - - [CapRover](./terraform/resources/terraform_caprover.md) - - [Advanced](./terraform/advanced/terraform_advanced_readme.md) - - [Terraform Provider](./terraform/advanced/terraform_provider.md) - - [Terraform Provisioners](./terraform/advanced/terraform_provisioners.md) - - [Mounts](./terraform/advanced/terraform_mounts.md) - - [Capacity Planning](./terraform/advanced/terraform_capacity_planning.md) - - [Updates](./terraform/advanced/terraform_updates.md) - - [SSH Connection with Wireguard](./terraform/advanced/terraform_wireguard_ssh.md) - - [Set a Wireguard VPN](./terraform/advanced/terraform_wireguard_vpn.md) - - [Synced MariaDB Databases](./terraform/advanced/terraform_mariadb_synced_databases.md) - - [Nomad](./terraform/advanced/terraform_nomad.md) - - [Nextcloud Deployments](./terraform/advanced/terraform_nextcloud_toc.md) - - [Nextcloud All-in-One Deployment](./terraform/advanced/terraform_nextcloud_aio.md) - - [Nextcloud Single Deployment](./terraform/advanced/terraform_nextcloud_single.md) - - [Nextcloud Redundant Deployment](./terraform/advanced/terraform_nextcloud_redundant.md) - - [Nextcloud 2-Node VPN Deployment](./terraform/advanced/terraform_nextcloud_vpn.md) -- [Pulumi](./pulumi/pulumi_readme.md) - - [Introduction to Pulumi](./pulumi/pulumi_intro.md) - - [Installing Pulumi](./pulumi/pulumi_install.md) - - [Deployment Examples](./pulumi/pulumi_examples.md) - - [Deployment Details](./pulumi/pulumi_deployment_details.md) -- [Mycelium](./mycelium/mycelium_toc.md) - - [Overview](./mycelium/overview.md) - - [Installation](./mycelium/installation.md) - - [Additional Information](./mycelium/information.md) - - [Message](./mycelium/message.md) - - [Packet](./mycelium/packet.md) - - [Data Packet](./mycelium/data_packet.md) - - [API YAML](./mycelium/api_yaml.md) -- [Computer and IT Basics](./computer_it_basics/computer_it_basics.md) - - [CLI and Scripts Basics](./computer_it_basics/cli_scripts_basics.md) - - [Docker Basics](./computer_it_basics/docker_basics.md) - - [Git and GitHub Basics](./computer_it_basics/git_github_basics.md) - - [Firewall Basics](./computer_it_basics/firewall_basics/firewall_basics.md) - - [UFW Basics](./computer_it_basics/firewall_basics/ufw_basics.md) - - [Firewalld Basics](./computer_it_basics/firewall_basics/firewalld_basics.md) - - [File Transfer](./computer_it_basics/file_transfer.md) -- [Advanced](./advanced/advanced.md) - - [Token Transfer Keygenerator](./advanced/token_transfer_keygenerator.md) - - [Cancel Contracts](./advanced/cancel_contracts.md) - - [Contract Bills Reports](./advanced/contract_bill_report.md) - - [Listing Free Public IPs](./advanced/list_public_ips.md) - - [Redis](./advanced/grid3_redis.md) - - [IPFS](./advanced/ipfs/ipfs_toc.md) - - [IPFS on a Full VM](./advanced/ipfs/ipfs_fullvm.md) - - [IPFS on a Micro VM](./advanced/ipfs/ipfs_microvm.md) \ No newline at end of file +- [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) + - [AI & ML Workloads](ai_ml_workloads.md) + - [Hummingbot](hummingbot.md) \ No newline at end of file diff --git a/collections/system_administrators/terraform/advanced/terraform_advanced_readme.md b/collections/system_administrators/terraform/advanced/terraform_advanced_readme.md index 67168e0..b3d5f25 100644 --- a/collections/system_administrators/terraform/advanced/terraform_advanced_readme.md +++ b/collections/system_administrators/terraform/advanced/terraform_advanced_readme.md @@ -7,12 +7,12 @@ - [Mounts](./terraform_mounts.html) - [Capacity Planning](./terraform_capacity_planning.html) - [Updates](./terraform_updates.html) -- [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 +- [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 diff --git a/collections/system_administrators/terraform/advanced/terraform_capacity_planning.md b/collections/system_administrators/terraform/advanced/terraform_capacity_planning.md index 63c96ad..61b1d65 100644 --- a/collections/system_administrators/terraform/advanced/terraform_capacity_planning.md +++ b/collections/system_administrators/terraform/advanced/terraform_capacity_planning.md @@ -117,7 +117,7 @@ resource "grid_scheduler" "sched" { Here we define a `list` of requests, each request has a name and filter options e.g `cru`, `sru`, `mru`, `hru`, having `public_config` or not, `public_ips_count` for this deployment, whether or not this node should be `dedicated`, whether or not this node should be `distinct` from other nodes in this plannder, `farm_id` to search in, nodes to exlude from search in `node_exclude`, and whether or not this node should be `certified`. -The full docs for the capacity planner `scheduler` are found [here](https://github.com/threefoldtech/terraform-provider-grid/blob/development/docs/resources/scheduler.md) +The full docs for the capacity planner `scheduler` are found [here](scheduler.md) And after that in our code we can reference the grid_scheduler object with the request name to be used instead of node_id. diff --git a/collections/system_administrators/terraform/advanced/terraform_mariadb_synced_databases.md b/collections/system_administrators/terraform/advanced/terraform_mariadb_synced_databases.md index 2fe3394..3a184ec 100644 --- a/collections/system_administrators/terraform/advanced/terraform_mariadb_synced_databases.md +++ b/collections/system_administrators/terraform/advanced/terraform_mariadb_synced_databases.md @@ -102,19 +102,19 @@ Modify the variable files to take into account your own seed phras and SSH keys. Open the terminal. * Go to the home folder - * ``` + ``` cd ~ ``` * Create the folder `terraform` and the subfolder `deployment-synced-db`: - * ``` + ``` mkdir -p terraform/deployment-synced-db ``` - * ``` + ``` cd terraform/deployment-synced-db ``` * Create the `main.tf` file: - * ``` + ``` nano main.tf ``` @@ -259,12 +259,12 @@ In this file, we name the first VM as `vm1` and the second VM as `vm2`. For ease In this guide, the virtual IP for `vm1` is 10.1.3.2 and the virtual IP for `vm2`is 10.1.4.2. This might be different during your own deployment. If so, change the codes in this guide accordingly. * Create the `credentials.auto.tfvars` file: - * ``` + ``` nano credentials.auto.tfvars ``` * Copy the `credentials.auto.tfvars` content and save the file. - * ``` + ``` mnemonics = "..." SSH_KEY = "..." @@ -285,19 +285,19 @@ Make sure to add your own seed phrase and SSH public key. You will also need to We now deploy the VPN with Terraform. Make sure that you are in the correct folder `terraform/deployment-synced-db` with the main and variables files. * Initialize Terraform: - * ``` + ``` terraform init ``` * Apply Terraform to deploy the VPN: - * ``` + ``` terraform apply ``` After deployments, take note of the 3Nodes' IPv4 address. You will need those addresses to SSH into the 3Nodes. Note that, at any moment, if you want to see the information on your Terraform deployments, write the following: - * ``` + ``` terraform show ``` @@ -305,8 +305,8 @@ Note that, at any moment, if you want to see the information on your Terraform d ### SSH into the 3Nodes -* To [SSH into the 3Nodes](../../getstarted/ssh_guide/ssh_guide.md), write the following while making sure to set the proper IP address for each VM: - * ``` +* To [SSH into the 3Nodes](ssh_guide.md), write the following while making sure to set the proper IP address for each VM: + ``` ssh root@3node_IPv4_Address ``` @@ -315,11 +315,11 @@ Note that, at any moment, if you want to see the information on your Terraform d ### Preparing the VMs for the Deployment * Update and upgrade the system - * ``` + ``` apt update && sudo apt upgrade -y && sudo apt-get install apache2 -y ``` * After download, you might need to reboot the system for changes to be fully taken into account - * ``` + ``` reboot ``` * Reconnect to the VMs @@ -333,19 +333,19 @@ We now want to ping the VMs using Wireguard. This will ensure the connection is First, we set Wireguard with the Terraform output. * On your local computer, take the Terraform's `wg_config` output and create a `wg.conf` file in the directory `/usr/local/etc/wireguard/wg.conf`. - * ``` + ``` nano /usr/local/etc/wireguard/wg.conf ``` * Paste the content provided by the Terraform deployment. You can use `terraform show` to see the Terraform output. The WireGuard output stands in between `EOT`. * Start the WireGuard on your local computer: - * ``` + ``` wg-quick up wg ``` * To stop the wireguard service: - * ``` + ``` wg-quick down wg ``` @@ -353,16 +353,16 @@ First, we set Wireguard with the Terraform output. This should set everything properly. * As a test, you can [ping](../../computer_it_basics/cli_scripts_basics.md#test-the-network-connectivity-of-a-domain-or-an-ip-address-with-ping) the virtual IP addresses of both VMs to make sure the Wireguard connection is correct: - * ``` + ``` ping 10.1.3.2 ``` - * ``` + ``` ping 10.1.4.2 ``` If you correctly receive the packets for the two VMs, you know that the VPN is properly set. -For more information on WireGuard, notably in relation to Windows, please read [this documentation](../../getstarted/ssh_guide/ssh_wireguard.md). +For more information on WireGuard, notably in relation to Windows, please read [this documentation](ssh_wireguard.md). @@ -371,11 +371,11 @@ For more information on WireGuard, notably in relation to Windows, please read [ ## Download MariaDB and Configure the Database * Download the MariaDB server and client on both the master VM and the worker VM - * ``` + ``` apt install mariadb-server mariadb-client -y ``` * Configure the MariaDB database - * ``` + ``` nano /etc/mysql/mariadb.conf.d/50-server.cnf ``` * Do the following changes @@ -392,12 +392,12 @@ For more information on WireGuard, notably in relation to Windows, please read [ ``` * Restart MariaDB - * ``` + ``` systemctl restart mysql ``` * Launch Mariadb - * ``` + ``` mysql ``` @@ -406,7 +406,7 @@ For more information on WireGuard, notably in relation to Windows, please read [ ## Create User with Replication Grant * Do the following on both the master and the worker - * ``` + ``` CREATE USER 'repuser'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'repuser'@'%' ; FLUSH PRIVILEGES; @@ -429,17 +429,17 @@ For more information on WireGuard, notably in relation to Windows, please read [ ### TF Template Worker Server Data * Write the following in the Worker VM - * ``` + ``` CHANGE MASTER TO MASTER_HOST='10.1.3.2', MASTER_USER='repuser', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=328; ``` - * ``` + ``` start slave; ``` - * ``` + ``` show slave status\G; ``` @@ -448,17 +448,17 @@ For more information on WireGuard, notably in relation to Windows, please read [ ### TF Template Master Server Data * Write the following in the Master VM - * ``` + ``` CHANGE MASTER TO MASTER_HOST='10.1.4.2', MASTER_USER='repuser', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=328; ``` - * ``` + ``` start slave; ``` - * ``` + ``` show slave status\G; ``` @@ -503,71 +503,71 @@ We now set the MariaDB database. You should choose your own username and passwor We will now install and set [GlusterFS](https://www.gluster.org/), a free and open-source software scalable network filesystem. * Install GlusterFS on both the master and worker VMs - * ``` + ``` add-apt-repository ppa:gluster/glusterfs-7 -y && apt install glusterfs-server -y ``` * Start the GlusterFS service on both VMs - * ``` + ``` systemctl start glusterd.service && systemctl enable glusterd.service ``` * Set the master to worker probe IP on the master VM: - * ``` + ``` gluster peer probe 10.1.4.2 ``` * See the peer status on the worker VM: - * ``` + ``` gluster peer status ``` * Set the master and worker IP address on the master VM: - * ``` + ``` gluster volume create vol1 replica 2 10.1.3.2:/gluster-storage 10.1.4.2:/gluster-storage force ``` * Start Gluster: - * ``` + ``` gluster volume start vol1 ``` * Check the status on the worker VM: - * ``` + ``` gluster volume status ``` * Mount the server with the master IP on the master VM: - * ``` + ``` mount -t glusterfs 10.1.3.2:/vol1 /var/www ``` * See if the mount is there on the master VM: - * ``` + ``` df -h ``` * Mount the Server with the worker IP on the worker VM: - * ``` + ``` mount -t glusterfs 10.1.4.2:/vol1 /var/www ``` * See if the mount is there on the worker VM: - * ``` + ``` df -h ``` We now update the mount with the filse fstab on both master and worker. * To prevent the mount from being aborted if the server reboot, write the following on both servers: - * ``` + ``` nano /etc/fstab ``` * Add the following line in the `fstab` file to set the master VM with the master virtual IP (here it is 10.1.3.2): - * ``` + ``` 10.1.3.2:/vol1 /var/www glusterfs defaults,_netdev 0 0 ``` * Add the following line in the `fstab` file to set the worker VM with the worker virtual IP (here it is 10.1.4.2): - * ``` + ``` 10.1.4.2:/vol1 /var/www glusterfs defaults,_netdev 0 0 ``` diff --git a/collections/system_administrators/terraform/advanced/terraform_nextcloud_aio.md b/collections/system_administrators/terraform/advanced/terraform_nextcloud_aio.md index 16f3390..290b988 100644 --- a/collections/system_administrators/terraform/advanced/terraform_nextcloud_aio.md +++ b/collections/system_administrators/terraform/advanced/terraform_nextcloud_aio.md @@ -20,7 +20,7 @@ We present a quick way to install Nextcloud All-in-One on the TFGrid. This guide ## Deploy a Full VM -* Deploy a Full VM with the [TF Dashboard](../../getstarted/ssh_guide/ssh_openssh.md) or [Terraform](../terraform_full_vm.md) +* Deploy a Full VM with the [TF Dashboard](ssh_openssh.md) or [Terraform](terraform_full_vm.md) * Minimum specs: * IPv4 Address * 2 vcores @@ -46,33 +46,33 @@ For our security rules, we want to allow SSH, HTTP and HTTPS (443 and 8443). We thus add the following rules: * Allow SSH (port 22) - * ``` + ``` ufw allow ssh ``` * Allow HTTP (port 80) - * ``` + ``` ufw allow http ``` * Allow https (port 443) - * ``` + ``` ufw allow https ``` * Allow port 8443 - * ``` + ``` ufw allow 8443 ``` * Allow port 3478 for Nextcloud Talk - * ``` + ``` ufw allow 3478 ``` * To enable the firewall, write the following: - * ``` + ``` ufw enable ``` * To see the current security rules, write the following: - * ``` + ``` ufw status verbose ``` @@ -90,7 +90,7 @@ You now have enabled the firewall with proper security rules for your Nextcloud * 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/ ``` @@ -101,11 +101,11 @@ You now have enabled the firewall with proper security rules for your Nextcloud For the rest of the guide, we follow the steps availabe on the Nextcloud website's tutorial [How to Install the Nextcloud All-in-One on Linux](https://nextcloud.com/blog/how-to-install-the-nextcloud-all-in-one-on-linux/). * Install Docker - * ``` + ``` curl -fsSL get.docker.com | sudo sh ``` * Install Nextcloud AIO - * ``` + ``` sudo docker run \ --sig-proxy=false \ --name nextcloud-aio-mastercontainer \ @@ -118,7 +118,7 @@ For the rest of the guide, we follow the steps availabe on the Nextcloud website nextcloud/all-in-one:latest ``` * Reach the AIO interface on your browser: - * ``` + ``` https://:8443 ``` * Example: `https://nextcloudwebsite.com:8443` diff --git a/collections/system_administrators/terraform/advanced/terraform_nextcloud_redundant.md b/collections/system_administrators/terraform/advanced/terraform_nextcloud_redundant.md index 940a270..cfec0b4 100644 --- a/collections/system_administrators/terraform/advanced/terraform_nextcloud_redundant.md +++ b/collections/system_administrators/terraform/advanced/terraform_nextcloud_redundant.md @@ -75,7 +75,7 @@ To get an overview of the whole process, we present the main steps: # Prerequisites -* [Install Terraform](../terraform_install.md) +* [Install Terraform](terraform_install.md) * [Install Wireguard](https://www.wireguard.com/install/) You need to download and install properly Terraform and Wireguard on your local computer. Simply follow the documentation depending on your operating system (Linux, MAC and Windows). @@ -126,19 +126,19 @@ Modify the variable files to take into account your own seed phrase and SSH keys Open the terminal. * Go to the home folder - * ``` + ``` cd ~ ``` * Create the folder `terraform` and the subfolder `deployment-nextcloud`: - * ``` + ``` mkdir -p terraform/deployment-nextcloud ``` - * ``` + ``` cd terraform/deployment-nextcloud ``` * Create the `main.tf` file: - * ``` + ``` nano main.tf ``` @@ -283,12 +283,12 @@ In this file, we name the first VM as `vm1` and the second VM as `vm2`. In the g In this guide, the virtual IP for `vm1` is 10.1.3.2 and the virtual IP for `vm2` is 10.1.4.2. This might be different during your own deployment. Change the codes in this guide accordingly. * Create the `credentials.auto.tfvars` file: - * ``` + ``` nano credentials.auto.tfvars ``` * Copy the `credentials.auto.tfvars` content and save the file. - * ``` + ``` mnemonics = "..." SSH_KEY = "..." @@ -307,12 +307,12 @@ Make sure to add your own seed phrase and SSH public key. You will also need to We now deploy the VPN with Terraform. Make sure that you are in the correct folder `terraform/deployment-nextcloud` with the main and variables files. * Initialize Terraform: - * ``` + ``` terraform init ``` * Apply Terraform to deploy the VPN: - * ``` + ``` terraform apply ``` @@ -320,19 +320,19 @@ After deployments, take note of the 3nodes' IPv4 address. You will need those ad ### SSH into the 3nodes -* To [SSH into the 3nodes](../../getstarted/ssh_guide/ssh_guide.md), write the following: - * ``` +* To [SSH into the 3nodes](ssh_guide.md), write the following: + ``` ssh root@VM_IPv4_Address ``` ### Preparing the VMs for the Deployment * Update and upgrade the system - * ``` + ``` apt update && apt upgrade -y && apt-get install apache2 -y ``` * After download, reboot the system - * ``` + ``` reboot ``` * Reconnect to the VMs @@ -343,24 +343,24 @@ After deployments, take note of the 3nodes' IPv4 address. You will need those ad We now want to ping the VMs using Wireguard. This will ensure the connection is properly established. -For more information on WireGuard, notably in relation to Windows, please read [this documentation](../../getstarted/ssh_guide/ssh_wireguard.md). +For more information on WireGuard, notably in relation to Windows, please read [this documentation](ssh_wireguard.md). First, we set Wireguard with the Terraform output. * On your local computer, take the Terraform's `wg_config` output and create a `wg.conf` file in the directory `/etc/wireguard/wg.conf`. - * ``` + ``` nano /etc/wireguard/wg.conf ``` * Paste the content provided by the Terraform deployment. You can use `terraform show` to see the Terraform output. The Wireguard output stands in between `EOT`. * Start Wireguard on your local computer: - * ``` + ``` wg-quick up wg ``` * To stop the wireguard service: - * ``` + ``` wg-quick down wg ``` @@ -368,10 +368,10 @@ If it doesn't work and you already did a wireguard connection with the same file This should set everything properly. * As a test, you can [ping](../../computer_it_basics/cli_scripts_basics.md#test-the-network-connectivity-of-a-domain-or-an-ip-address-with-ping) the virtual IP addresses of both VMs to make sure the Wireguard connection is correct: - * ``` + ``` ping 10.1.3.2 ``` - * ``` + ``` ping 10.1.4.2 ``` @@ -384,11 +384,11 @@ If you correctly receive the packets from the two VMs, you know that the VPN is ## Download MariaDB and Configure the Database * Download MariaDB's server and client on both VMs - * ``` + ``` apt install mariadb-server mariadb-client -y ``` * Configure the MariaDB database - * ``` + ``` nano /etc/mysql/mariadb.conf.d/50-server.cnf ``` * Do the following changes @@ -405,19 +405,19 @@ If you correctly receive the packets from the two VMs, you know that the VPN is ``` * Restart MariaDB - * ``` + ``` systemctl restart mysql ``` * Launch MariaDB - * ``` + ``` mysql ``` ## Create User with Replication Grant * Do the following on both VMs - * ``` + ``` CREATE USER 'repuser'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'repuser'@'%' ; FLUSH PRIVILEGES; @@ -436,33 +436,33 @@ If you correctly receive the packets from the two VMs, you know that the VPN is ### TF Template Worker Server Data * Write the following in the worker VM - * ``` + ``` CHANGE MASTER TO MASTER_HOST='10.1.3.2', MASTER_USER='repuser', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=328; ``` - * ``` + ``` start slave; ``` - * ``` + ``` show slave status\G; ``` ### TF Template Master Server Data * Write the following in the master VM - * ``` + ``` CHANGE MASTER TO MASTER_HOST='10.1.4.2', MASTER_USER='repuser', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=328; ``` - * ``` + ``` start slave; ``` - * ``` + ``` show slave status\G; ``` @@ -505,72 +505,72 @@ We now set the Nextcloud database. You should choose your own username and passw We will now install and set [GlusterFS](https://www.gluster.org/), a free and open source software scalable network filesystem. * Install GlusterFS on both the master and worker VMs - * ``` + ``` echo | add-apt-repository ppa:gluster/glusterfs-7 && apt install glusterfs-server -y ``` * Start the GlusterFS service on both VMs - * ``` + ``` systemctl start glusterd.service && systemctl enable glusterd.service ``` * Set the master to worker probe IP on the master VM: - * ``` + ``` gluster peer probe 10.1.4.2 ``` * See the peer status on the worker VM: - * ``` + ``` gluster peer status ``` * Set the master and worker IP address on the master VM: - * ``` + ``` gluster volume create vol1 replica 2 10.1.3.2:/gluster-storage 10.1.4.2:/gluster-storage force ``` * Start GlusterFS on the master VM: - * ``` + ``` gluster volume start vol1 ``` * Check the status on the worker VM: - * ``` + ``` gluster volume status ``` * Mount the server with the master IP on the master VM: - * ``` + ``` mount -t glusterfs 10.1.3.2:/vol1 /var/www ``` * See if the mount is there on the master VM: - * ``` + ``` df -h ``` * Mount the server with the worker IP on the worker VM: - * ``` + ``` mount -t glusterfs 10.1.4.2:/vol1 /var/www ``` * See if the mount is there on the worker VM: - * ``` + ``` df -h ``` We now update the mount with the filse fstab on both VMs. * To prevent the mount from being aborted if the server reboots, write the following on both servers: - * ``` + ``` nano /etc/fstab ``` * Add the following line in the `fstab` file to set the master VM with the master virtual IP (here it is 10.1.3.2): - * ``` + ``` 10.1.3.2:/vol1 /var/www glusterfs defaults,_netdev 0 0 ``` * Add the following line in the `fstab` file to set the worker VM with the worker virtual IP (here it is 10.1.4.2): - * ``` + ``` 10.1.4.2:/vol1 /var/www glusterfs defaults,_netdev 0 0 ``` @@ -579,14 +579,14 @@ We now update the mount with the filse fstab on both VMs. # Install PHP and Nextcloud * Install PHP and the PHP modules for Nextcloud on both the master and the worker: - * ``` + ``` apt install php -y && apt-get install php zip libapache2-mod-php php-gd php-json php-mysql php-curl php-mbstring php-intl php-imagick php-xml php-zip php-mysql php-bcmath php-gmp zip -y ``` We will now install Nextcloud. This is done only on the master VM. * On both the master and worker VMs, go to the folder `/var/www`: - * ``` + ``` cd /var/www ``` @@ -594,27 +594,27 @@ We will now install Nextcloud. This is done only on the master VM. * See the latest [Nextcloud releases](https://download.nextcloud.com/server/releases/). * We now download Nextcloud on the master VM. - * ``` + ``` wget https://download.nextcloud.com/server/releases/nextcloud-27.0.1.zip ``` You only need to download on the master VM, since you set a peer-to-peer connection, it will also be accessible on the worker VM. * Then, extract the `.zip` file. This will take a couple of minutes. We use 7z to track progress: - * ``` + ``` apt install p7zip-full -y ``` - * ``` + ``` 7z x nextcloud-27.0.1.zip -o/var/www/ ``` * After the download, see if the Nextcloud file is there on the worker VM: - * ``` + ``` ls ``` * Then, we grant permissions to the folder. Do this on both the master VM and the worker VM. - * ``` + ``` chown www-data:www-data /var/www/nextcloud/ -R ``` @@ -660,7 +660,7 @@ Note: When the master VM goes offline, after 5 minutes maximum DuckDNS will chan We now want to tell Apache where to store the Nextcloud data. To do this, we will create a file called `nextcloud.conf`. * On both the master and worker VMs, write the following: - * ``` + ``` nano /etc/apache2/sites-available/nextcloud.conf ``` @@ -694,12 +694,12 @@ The file should look like this, with your own subdomain instead of `subdomain`: ``` * On both the master VM and the worker VM, write the following to set the Nextcloud database with Apache and to enable the new virtual host file: - * ``` + ``` a2ensite nextcloud.conf && a2enmod rewrite headers env dir mime setenvif ssl ``` * Then, reload and restart Apache: - * ``` + ``` systemctl reload apache2 && systemctl restart apache2 ``` @@ -710,20 +710,20 @@ The file should look like this, with your own subdomain instead of `subdomain`: We now access Nextcloud over the public Internet. * Go to a web browser and write the subdomain name created with DuckDNS (adjust with your own subdomain): - * ``` + ``` subdomain.duckdns.org ``` Note: HTTPS isn't yet enabled. If you can't access the website, make sure to enable HTTP websites on your browser. * Choose a name and a password. For this guide, we use the following: - * ``` + ``` ncadmin password1234 ``` * Enter the Nextcloud Database information created with MariaDB and click install: - * ``` + ``` Database user: ncuser Database password: password1234 Database name: nextcloud @@ -749,27 +749,27 @@ To enable HTTPS, first install `letsencrypt` with `certbot`: Install certbot by following the steps here: [https://certbot.eff.org/](https://certbot.eff.org/) * See if you have the latest version of snap: - * ``` + ``` snap install core; snap refresh core ``` * Remove certbot-auto: - * ``` + ``` apt-get remove certbot ``` * Install certbot: - * ``` + ``` snap install --classic certbot ``` * Ensure that certbot can be run: - * ``` + ``` ln -s /snap/bin/certbot /usr/bin/certbot ``` * Then, install certbot-apache: - * ``` + ``` apt install python3-certbot-apache -y ``` @@ -825,7 +825,7 @@ output "ipv4_vm1" { ``` * To add the HTTPS protection, write the following line on the master VM with your own subdomain: - * ``` + ``` certbot --apache -d subdomain.duckdns.org -d www.subdomain.duckdns.org ``` @@ -837,7 +837,7 @@ Note: You then need to redo the same process with the worker VM. This time, make ## Verify HTTPS Automatic Renewal * Make a dry run of the certbot renewal to verify that it is correctly set up. - * ``` + ``` certbot renew --dry-run ``` @@ -859,25 +859,25 @@ We thus add the following rules: * Allow SSH (port 22) - * ``` + ``` ufw allow ssh ``` * Allow HTTP (port 80) - * ``` + ``` ufw allow http ``` * Allow https (port 443) - * ``` + ``` ufw allow https ``` * To enable the firewall, write the following: - * ``` + ``` ufw enable ``` * To see the current security rules, write the following: - * ``` + ``` ufw status verbose ``` diff --git a/collections/system_administrators/terraform/advanced/terraform_nextcloud_single.md b/collections/system_administrators/terraform/advanced/terraform_nextcloud_single.md index 5ad8116..48e206a 100644 --- a/collections/system_administrators/terraform/advanced/terraform_nextcloud_single.md +++ b/collections/system_administrators/terraform/advanced/terraform_nextcloud_single.md @@ -61,7 +61,7 @@ To get an overview of the whole process, we present the main steps: # Prerequisites -- [Install Terraform](../terraform_install.md) +- [Install Terraform](terraform_install.md) You need to download and install properly Terraform on your local computer. Simply follow the documentation depending on your operating system (Linux, MAC and Windows). @@ -112,19 +112,19 @@ Modify the variable files to take into account your own seed phrase and SSH keys Open the terminal and follow those steps. * Go to the home folder - * ``` + ``` cd ~ ``` * Create the folder `terraform` and the subfolder `deployment-single-nextcloud`: - * ``` + ``` mkdir -p terraform/deployment-single-nextcloud ``` - * ``` + ``` cd terraform/deployment-single-nextcloud ``` * Create the `main.tf` file: - * ``` + ``` nano main.tf ``` @@ -226,12 +226,12 @@ output "ipv4_vm1" { In this file, we name the full VM as `vm1`. * Create the `credentials.auto.tfvars` file: - * ``` + ``` nano credentials.auto.tfvars ``` * Copy the `credentials.auto.tfvars` content and save the file. - * ``` + ``` mnemonics = "..." SSH_KEY = "..." @@ -249,12 +249,12 @@ Make sure to add your own seed phrase and SSH public key. You will also need to We now deploy the full VM with Terraform. Make sure that you are in the correct folder `terraform/deployment-single-nextcloud` with the main and variables files. * Initialize Terraform: - * ``` + ``` terraform init ``` * Apply Terraform to deploy the full VM: - * ``` + ``` terraform apply ``` @@ -262,19 +262,19 @@ After deployments, take note of the 3Node's IPv4 address. You will need this add ## SSH into the 3Node -* To [SSH into the 3Node](../../getstarted/ssh_guide/ssh_guide.md), write the following: - * ``` +* To [SSH into the 3Node](ssh_guide.md), write the following: + ``` ssh root@VM_IPv4_Address ``` ## Prepare the Full VM * Update and upgrade the system - * ``` + ``` apt update && apt upgrade && apt-get install apache2 ``` * After download, reboot the system - * ``` + ``` reboot ``` * Reconnect to the VM @@ -286,11 +286,11 @@ After deployments, take note of the 3Node's IPv4 address. You will need this add ## Download MariaDB and Configure the Database * Download MariaDB's server and client - * ``` + ``` apt install mariadb-server mariadb-client ``` * Configure the MariaDB database - * ``` + ``` nano /etc/mysql/mariadb.conf.d/50-server.cnf ``` * Do the following changes @@ -307,12 +307,12 @@ After deployments, take note of the 3Node's IPv4 address. You will need this add ``` * Restart MariaDB - * ``` + ``` systemctl restart mysql ``` * Launch MariaDB - * ``` + ``` mysql ``` @@ -345,14 +345,14 @@ We now set the Nextcloud database. You should choose your own username and passw # Install PHP and Nextcloud * Install PHP and the PHP modules for Nextcloud on both the master and the worker: - * ``` + ``` apt install php && apt-get install php zip libapache2-mod-php php-gd php-json php-mysql php-curl php-mbstring php-intl php-imagick php-xml php-zip php-mysql php-bcmath php-gmp zip ``` We will now install Nextcloud. * On the full VM, go to the folder `/var/www`: - * ``` + ``` cd /var/www ``` @@ -360,19 +360,17 @@ We will now install Nextcloud. * See the latest [Nextcloud releases](https://download.nextcloud.com/server/releases/). * We now download Nextcloud on the full VM. - * ``` + ``` wget https://download.nextcloud.com/server/releases/nextcloud-27.0.1.zip ``` * Then, extract the `.zip` file. This will take a couple of minutes. We use 7z to track progress: - * ``` - apt install p7zip-full ``` - * ``` + apt install p7zip-full 7z x nextcloud-27.0.1.zip -o/var/www/ ``` * Then, we grant permissions to the folder. - * ``` + ``` chown www-data:www-data /var/www/nextcloud/ -R ``` @@ -398,7 +396,7 @@ Hint: make sure to save the DuckDNS folder in the home menu. Write `cd ~` before We now want to tell Apache where to store the Nextcloud data. To do this, we will create a file called `nextcloud.conf`. * On full VM, write the following: - * ``` + ``` nano /etc/apache2/sites-available/nextcloud.conf ``` @@ -432,12 +430,12 @@ The file should look like this, with your own subdomain instead of `subdomain`: ``` * On the full VM, write the following to set the Nextcloud database with Apache and to enable the new virtual host file: - * ``` + ``` a2ensite nextcloud.conf && a2enmod rewrite headers env dir mime setenvif ssl ``` * Then, reload and restart Apache: - * ``` + ``` systemctl reload apache2 && systemctl restart apache2 ``` @@ -448,20 +446,20 @@ The file should look like this, with your own subdomain instead of `subdomain`: We now access Nextcloud over the public Internet. * Go to a web browser and write the subdomain name created with DuckDNS (adjust with your own subdomain): - * ``` + ``` subdomain.duckdns.org ``` Note: HTTPS isn't yet enabled. If you can't access the website, make sure to enable HTTP websites on your browser. * Choose a name and a password. For this guide, we use the following: - * ``` + ``` ncadmin password1234 ``` * Enter the Nextcloud Database information created with MariaDB and click install: - * ``` + ``` Database user: ncuser Database password: password1234 Database name: nextcloud @@ -487,27 +485,27 @@ To enable HTTPS, first install `letsencrypt` with `certbot`: Install certbot by following the steps here: [https://certbot.eff.org/](https://certbot.eff.org/) * See if you have the latest version of snap: - * ``` + ``` snap install core; snap refresh core ``` * Remove certbot-auto: - * ``` + ``` apt-get remove certbot ``` * Install certbot: - * ``` + ``` snap install --classic certbot ``` * Ensure that certbot can be run: - * ``` + ``` ln -s /snap/bin/certbot /usr/bin/certbot ``` * Then, install certbot-apache: - * ``` + ``` apt install python3-certbot-apache ``` @@ -516,14 +514,14 @@ Install certbot by following the steps here: [https://certbot.eff.org/](https:// We now set the certbot with the DNS domain. * To add the HTTPS protection, write the following line on the full VM with your own subdomain: - * ``` + ``` certbot --apache -d subdomain.duckdns.org -d www.subdomain.duckdns.org ``` ## Verify HTTPS Automatic Renewal * Make a dry run of the certbot renewal to verify that it is correctly set up. - * ``` + ``` certbot renew --dry-run ``` @@ -545,25 +543,25 @@ We thus add the following rules: * Allow SSH (port 22) - * ``` + ``` ufw allow ssh ``` * Allow HTTP (port 80) - * ``` + ``` ufw allow http ``` * Allow https (port 443) - * ``` + ``` ufw allow https ``` * To enable the firewall, write the following: - * ``` + ``` ufw enable ``` * To see the current security rules, write the following: - * ``` + ``` ufw status verbose ``` diff --git a/collections/system_administrators/terraform/advanced/terraform_nextcloud_toc.md b/collections/system_administrators/terraform/advanced/terraform_nextcloud_toc.md index 4152838..195f04e 100644 --- a/collections/system_administrators/terraform/advanced/terraform_nextcloud_toc.md +++ b/collections/system_administrators/terraform/advanced/terraform_nextcloud_toc.md @@ -4,7 +4,7 @@ We present here different Nextcloud deployments. While this section is focused o

Table of Contents

-- [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 +- [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 diff --git a/collections/system_administrators/terraform/advanced/terraform_nextcloud_vpn.md b/collections/system_administrators/terraform/advanced/terraform_nextcloud_vpn.md index 4045078..3d6843a 100644 --- a/collections/system_administrators/terraform/advanced/terraform_nextcloud_vpn.md +++ b/collections/system_administrators/terraform/advanced/terraform_nextcloud_vpn.md @@ -246,26 +246,26 @@ output "fqdn" { We now deploy the 2-node VPN with Terraform. Make sure that you are in the correct folder containing the main and variables files. * Initialize Terraform: - * ``` + ``` terraform init ``` * Apply Terraform to deploy Nextcloud: - * ``` + ``` terraform apply ``` Note that, at any moment, if you want to see the information on your Terraform deployment, write the following: - * ``` + ``` terraform show ``` # Nextcloud Setup * Access Nextcloud Setup - * Once you've deployed Nextcloud, you can access the Nextcloud Setup page by pasting on a browser the URL displayed on the line `fqdn = "..."` of the `terraform show` output. For more information on this, [read this documentation](../../../dashboard/solutions/nextcloud.md#nextcloud-setup). + * Once you've deployed Nextcloud, you can access the Nextcloud Setup page by pasting on a browser the URL displayed on the line `fqdn = "..."` of the `terraform show` output. For more information on this, [read this documentation](dashboard@@nextcloud). * Create a backup and set a daily backup and update - * Make sure to create a backup with `/mnt/backup` as the mount point, and set a daily update and backup for your Nextcloud VM. For more information, [read this documentation](../../../dashboard/solutions/nextcloud.md#backups-and-updates). + * Make sure to create a backup with `/mnt/backup` as the mount point, and set a daily update and backup for your Nextcloud VM. For more information, [read this documentation](dashboard@@nextcloud). > Note: By default, the daily Borgbackup is set at 4:00 UTC. If you change this parameter, make sure to adjust the moment the [Rsync backup](#create-a-cron-job-for-the-rsync-daily-backup) is done. @@ -274,40 +274,42 @@ Note that, at any moment, if you want to see the information on your Terraform d We need to install a few things on the Nextcloud VM before going further. * Update the Nextcloud VM - * ``` + ``` apt update ``` * Install ping on the Nextcloud VM if you want to test the VPN connection (Optional) - * ``` + ``` apt install iputils-ping -y ``` * Install Rsync on the Nextcloud VM - * ``` + ``` apt install rsync ``` * Install nano on the Nextcloud VM - * ``` + ``` apt install nano ``` * Install Cron on the Nextcloud VM - * apt install cron + ``` + apt install cron + ``` # Prepare the VMs for the Rsync Daily Backup * Test the VPN (Optional) with [ping](../../computer_it_basics/cli_scripts_basics.md#test-the-network-connectivity-of-a-domain-or-an-ip-address-with-ping) - * ``` + ``` ping ``` * Generate an SSH key pair on the Backup VM - * ``` + ``` ssh-keygen ``` * Take note of the public key in the Backup VM - * ``` + ``` cat ~/.ssh/id_rsa.pub ``` * Add the public key of the Backup VM in the Nextcloud VM - * ``` + ``` nano ~/.ssh/authorized_keys ``` @@ -318,11 +320,11 @@ We need to install a few things on the Nextcloud VM before going further. We now set a daily cron job that will make a backup between the Nextcloud VM and the Backup VM using Rsync. * Open the crontab on the Backup VM - * ``` + ``` crontab -e ``` * Add the cron job at the end of the file - * ``` + ``` 0 8 * * * rsync -avz --no-perms -O --progress --delete --log-file=/root/rsync_storage.log root@10.1.3.2:/mnt/backup/ /mnt/backup/ ``` diff --git a/collections/system_administrators/terraform/advanced/terraform_nomad.md b/collections/system_administrators/terraform/advanced/terraform_nomad.md index debc309..a0ff206 100644 --- a/collections/system_administrators/terraform/advanced/terraform_nomad.md +++ b/collections/system_administrators/terraform/advanced/terraform_nomad.md @@ -42,7 +42,7 @@ Nomad's versatility extends beyond its user-friendliness. It seamlessly handles You need to download and install properly Terraform and Wireguard on your local computer. Simply follow the documentation depending on your operating system (Linux, MAC and Windows). -If you are new to Terraform, feel free to read this basic [Terraform Full VM guide](../terraform_full_vm.md) to get you started. +If you are new to Terraform, feel free to read this basic [Terraform Full VM guide](terraform_full_vm.md) to get you started. @@ -61,14 +61,14 @@ Also note that this deployment uses both the Planetary network and WireGuard. We start by creating the main file for our Nomad cluster. * Create a directory for your Terraform Nomad cluster - * ``` + ``` mkdir nomad ``` - * ``` + ``` cd nomad ``` * Create the `main.tf` file - * ``` + ``` nano main.tf ``` @@ -255,12 +255,12 @@ output "client2_planetary_ip" { We create a credentials file that will contain the environment variables. This file should be in the same directory as the main file. * Create the `credentials.auto.tfvars` file - * ``` + ``` nano credentials.auto.tfvars ``` * Copy the `credentials.auto.tfvars` content and save the file - * ``` + ``` mnemonics = "..." SSH_KEY = "..." @@ -280,12 +280,12 @@ Make sure to replace the three dots by your own information for `mnemonics` and We now deploy the Nomad Cluster with Terraform. Make sure that you are in the directory containing the `main.tf` file. * Initialize Terraform - * ``` + ``` terraform init ``` * Apply Terraform to deploy the Nomad cluster - * ``` + ``` terraform apply ``` @@ -299,8 +299,8 @@ Note that the IP addresses will be shown under `Outputs` after running the comma ### SSH with the Planetary Network -* To [SSH with the Planetary network](../../getstarted/ssh_guide/ssh_openssh.md), write the following with the proper IP address - * ``` +* To [SSH with the Planetary network](ssh_openssh.md), write the following with the proper IP address + ``` ssh root@planetary_ip ``` @@ -311,7 +311,7 @@ You now have an SSH connection access over the Planetary network to the client a To SSH with WireGuard, we first need to set the proper WireGuard configurations. * Create a file named `wg.conf` in the directory `/etc/wireguard` - * ``` + ``` nano /etc/wireguard/wg.conf ``` @@ -319,22 +319,22 @@ To SSH with WireGuard, we first need to set the proper WireGuard configurations. * Note that you can use `terraform show` to see the Terraform output. The WireGuard configurations (`wg_config`) stands in between the two `EOT` instances. * Start WireGuard on your local computer - * ``` + ``` wg-quick up wg ``` * As a test, you can [ping](../../computer_it_basics/cli_scripts_basics.md#test-the-network-connectivity-of-a-domain-or-an-ip-address-with-ping) the WireGuard IP of a node to make sure the connection is correct - * ``` + ``` ping wg_ip ``` We are now ready to SSH into the client and server nodes with WireGuard. * To SSH with WireGuard, write the following with the proper IP address: - * ``` + ``` ssh root@wg_ip ``` -You now have an SSH connection access over WireGuard to the client and server nodes of your Nomad cluster. For more information on connecting with WireGuard, read [this documentation](../../getstarted/ssh_guide/ssh_wireguard.md). +You now have an SSH connection access over WireGuard to the client and server nodes of your Nomad cluster. For more information on connecting with WireGuard, read [this documentation](ssh_wireguard.md). diff --git a/collections/system_administrators/terraform/advanced/terraform_provider.md b/collections/system_administrators/terraform/advanced/terraform_provider.md index eafe66c..03ac574 100644 --- a/collections/system_administrators/terraform/advanced/terraform_provider.md +++ b/collections/system_administrators/terraform/advanced/terraform_provider.md @@ -49,5 +49,5 @@ The *_URL variables can be used to override the dafault urls associated with the ## Remarks - Grid terraform provider is hosted on terraform registry [here](https://registry.terraform.io/providers/threefoldtech/grid/latest/docs?pollNotifications=true) -- All provider input variables and their description can be found [here](https://github.com/threefoldtech/terraform-provider-grid/blob/development/docs/index.md) +- All provider input variables and their description can be found [here](index.md) - Capitalized environment variables can be used instead of writing them in the provider (e.g. MNEMONICS) diff --git a/collections/system_administrators/terraform/advanced/terraform_wireguard_ssh.md b/collections/system_administrators/terraform/advanced/terraform_wireguard_ssh.md index 174bc3a..6c5e6c1 100644 --- a/collections/system_administrators/terraform/advanced/terraform_wireguard_ssh.md +++ b/collections/system_administrators/terraform/advanced/terraform_wireguard_ssh.md @@ -22,7 +22,7 @@ In this ThreeFold Guide, we show how simple it is to deploy a micro VM on the Th ## Prerequisites -* [Install Terraform](../terraform_install.md) +* [Install Terraform](terraform_install.md) * [Install Wireguard](https://www.wireguard.com/install/) You need to download and install properly Terraform and Wireguard on your local computer. Simply follow the linked documentation depending on your operating system (Linux, MAC and Windows). @@ -70,20 +70,19 @@ Modify the variable file to take into account your own seed phras and SSH keys. Now let's create the Terraform files. * Open the terminal and go to the home directory - * ``` + ``` cd ~ ``` * Create the folder `terraform` and the subfolder `deployment-wg-ssh`: - * ``` + ``` mkdir -p terraform/deployment-wg-ssh ``` - * ``` + ``` cd terraform/deployment-wg-ssh ``` - ``` * Create the `main.tf` file: - * ``` + ``` nano main.tf ``` @@ -173,12 +172,12 @@ output "node1_zmachine1_ip" { ``` * Create the `credentials.auto.tfvars` file: - * ``` + ``` nano credentials.auto.tfvars ``` * Copy the `credentials.auto.tfvars` content, set the node ID as well as your mnemonics and SSH public key, then save the file. - * ``` + ``` mnemonics = "..." SSH_KEY = "..." @@ -198,12 +197,12 @@ Make sure to add your own seed phrase and SSH public key. You will also need to We now deploy the micro VM with Terraform. Make sure that you are in the correct folder `terraform/deployment-wg-ssh` containing the main and variables files. * Initialize Terraform: - * ``` + ``` terraform init ``` * Apply Terraform to deploy the micro VM: - * ``` + ``` terraform apply ``` * Terraform will then present you the actions it will perform. Write `yes` to confirm the deployment. @@ -220,7 +219,7 @@ Note that, at any moment, if you want to see the information on your Terraform d To set the Wireguard connection, on your local computer, you will need to take the Terraform `wg_config` output and create a `wg.conf` file in the directory: `/usr/local/etc/wireguard/wg.conf`. Note that the Terraform output starts and ends with EOT. -For more information on WireGuard, notably in relation to Windows, please read [this documentation](../../getstarted/ssh_guide/ssh_wireguard.md). +For more information on WireGuard, notably in relation to Windows, please read [this documentation](ssh_wireguard.md). * Create a file named `wg.conf` in the directory: `/usr/local/etc/wireguard/wg.conf`. * ``` @@ -264,10 +263,11 @@ You now have access into the VM over Wireguard SSH connection. If you want to destroy the Terraform deployment, write the following in the terminal: -* ``` + ``` terraform destroy ``` - * Then write `yes` to confirm. + +Then write `yes` to confirm. Make sure that you are in the corresponding Terraform folder when writing this command. In this guide, the folder is `deployment-wg-ssh`. diff --git a/collections/system_administrators/terraform/advanced/terraform_wireguard_vpn.md b/collections/system_administrators/terraform/advanced/terraform_wireguard_vpn.md index d8d27ea..e9cbdaa 100644 --- a/collections/system_administrators/terraform/advanced/terraform_wireguard_vpn.md +++ b/collections/system_administrators/terraform/advanced/terraform_wireguard_vpn.md @@ -23,7 +23,7 @@ Note that this concept can be extended with more than two micro VMs. Once you un ## Prerequisites -* [Install Terraform](../terraform_install.md) +* [Install Terraform](terraform_install.md) * [Install Wireguard](https://www.wireguard.com/install/) You need to download and install properly Terraform and Wireguard on your local computer. Simply follow the linked documentation depending on your operating system (Linux, MAC and Windows). @@ -74,19 +74,19 @@ Now let's create the Terraform files. * Open the terminal and go to the home directory - * ``` + ``` cd ~ ``` * Create the folder `terraform` and the subfolder `deployment-wg-vpn`: - * ``` + ``` mkdir -p terraform && cd $_ ``` - * ``` + ``` mkdir deployment-wg-vpn && cd $_ ``` * Create the `main.tf` file: - * ``` + ``` nano main.tf ``` @@ -229,12 +229,12 @@ output "ipv4_vm2" { In this guide, the virtual IP for `vm1` is 10.1.3.2 and the virtual IP for `vm2` is 10.1.4.2. This might be different during your own deployment. Change the codes in this guide accordingly. * Create the `credentials.auto.tfvars` file: - * ``` + ``` nano credentials.auto.tfvars ``` * Copy the `credentials.auto.tfvars` content and save the file. - * ``` + ``` mnemonics = "..." SSH_KEY = "..." @@ -256,17 +256,17 @@ Set the parameters for your VMs as you wish. The two servers will have the same We now deploy the VPN with Terraform. Make sure that you are in the correct folder `terraform/deployment-wg-vpn` containing the main and variables files. * Initialize Terraform by writing the following in the terminal: - * ``` + ``` terraform init ``` * Apply the Terraform deployment: - * ``` + ``` terraform apply ``` * Terraform will then present you the actions it will perform. Write `yes` to confirm the deployment. Note that, at any moment, if you want to see the information on your Terraform deployments, write the following: - * ``` + ``` terraform show ``` @@ -276,22 +276,22 @@ Note that, at any moment, if you want to see the information on your Terraform d To set the Wireguard connection, on your local computer, you will need to take the terraform `wg_config` output and create a `wg.conf` file in the directory: `/usr/local/etc/wireguard/wg.conf`. Note that the Terraform output starts and ends with EOT. -For more information on WireGuard, notably in relation to Windows, please read [this documentation](../../getstarted/ssh_guide/ssh_wireguard.md). +For more information on WireGuard, notably in relation to Windows, please read [this documentation](ssh_wireguard.md). * Create a file named `wg.conf` in the directory: `/usr/local/etc/wireguard/wg.conf`. - * ``` + ``` nano /usr/local/etc/wireguard/wg.conf ``` * Paste the content between the two `EOT` displayed after you set `terraform apply`. * Start the wireguard: - * ``` + ``` wg-quick up wg ``` If you want to stop the Wireguard service, write the following on your terminal: -* ``` + ``` wg-quick down wg ``` @@ -299,7 +299,7 @@ If you want to stop the Wireguard service, write the following on your terminal: As a test, you can [ping](../../computer_it_basics/cli_scripts_basics.md#test-the-network-connectivity-of-a-domain-or-an-ip-address-with-ping) the virtual IP address of the VMs to make sure the Wireguard connection is correct. Make sure to replace `wg_vm_ip` with the proper IP address for each VM: -* ``` + ``` ping wg_vm_ip ``` @@ -329,10 +329,11 @@ You now have an SSH connection access to the VMs over Wireguard and IPv4. If you want to destroy the Terraform deployment, write the following in the terminal: -* ``` + ``` terraform destroy ``` - * Then write `yes` to confirm. + +Then write `yes` to confirm. Make sure that you are in the corresponding Terraform folder when writing this command. In this guide, the folder is `deployment-wg-vpn`. diff --git a/collections/system_administrators/terraform/resources/terraform_k8s.md b/collections/system_administrators/terraform/resources/terraform_k8s.md index 2b3f992..7f0f004 100644 --- a/collections/system_administrators/terraform/resources/terraform_k8s.md +++ b/collections/system_administrators/terraform/resources/terraform_k8s.md @@ -199,7 +199,7 @@ We will be mainly interested in the master node public ip `computed IP` and the ## More Info -A complete list of k8s resource parameters can be found [here](https://github.com/threefoldtech/terraform-provider-grid/blob/development/docs/resources/kubernetes.md). +A complete list of k8s resource parameters can be found [here](kubernetes.md). ## Demo Video diff --git a/collections/system_administrators/terraform/resources/terraform_qsfs.md b/collections/system_administrators/terraform/resources/terraform_qsfs.md index 3dcffc7..ff125ef 100644 --- a/collections/system_administrators/terraform/resources/terraform_qsfs.md +++ b/collections/system_administrators/terraform/resources/terraform_qsfs.md @@ -2,8 +2,8 @@

Table of Contents

-- [QSFS on Micro VM](./terraform_qsfs_on_microvm.md) -- [QSFS on Full VM](./terraform_qsfs_on_full_vm.md) +- [QSFS on Micro VM](terraform_qsfs_on_microvm.md) +- [QSFS on Full VM](terraform_qsfs_on_full_vm.md) *** diff --git a/collections/system_administrators/terraform/resources/terraform_qsfs_on_full_vm.md b/collections/system_administrators/terraform/resources/terraform_qsfs_on_full_vm.md index 8fe3628..d68973b 100644 --- a/collections/system_administrators/terraform/resources/terraform_qsfs_on_full_vm.md +++ b/collections/system_administrators/terraform/resources/terraform_qsfs_on_full_vm.md @@ -23,7 +23,7 @@ The main goal of this guide is to show you all the necessary steps to deploy a F ## Prerequisites -- [Install Terraform](../terraform_install.md) +- [Install Terraform](terraform_install.md) You need to download and install properly Terraform. Simply follow the documentation depending on your operating system (Linux, MAC and Windows). @@ -36,7 +36,7 @@ Deploying a FullVM is a bit different than deploying a MicroVM, let take a look - QSFS disk is based on `virtiofs`, and you can't use QSFS disk as the first mount in a FullVM, instead you need a regular disk. - Any extra disks/mounts will be available on the vm but unlike mounts on MicroVMs, extra disks won't be mounted automatically. you will need to mount it manually after the deployment. -Let modify the qsfs-on-microVM [example](./terraform_qsfs_on_microvm.md) to deploy a QSFS on FullVM this time: +Let modify the qsfs-on-microVM [example](terraform_qsfs_on_microvm.md) to deploy a QSFS on FullVM this time: - Inside the `grid_deployment` resource we will need to add a disk for the vm root fs. diff --git a/collections/system_administrators/terraform/resources/terraform_qsfs_on_microvm.md b/collections/system_administrators/terraform/resources/terraform_qsfs_on_microvm.md index 9b3a609..b655166 100644 --- a/collections/system_administrators/terraform/resources/terraform_qsfs_on_microvm.md +++ b/collections/system_administrators/terraform/resources/terraform_qsfs_on_microvm.md @@ -23,7 +23,7 @@ In this ThreeFold Guide, we will learn how to deploy a Quantum Safe File System In this guide, we will be using Terraform to deploy a QSFS workload on a micro VM that runs on the TFGrid. Make sure to have the latest Terraform version. -- [Install Terraform](../terraform_install.md) +- [Install Terraform](terraform_install.md) @@ -65,31 +65,31 @@ We present two different methods to create the Terraform files. In the first met Creating the Terraform files is very straightforward. We want to clone the repository `terraform-provider-grid` locally and run some simple commands to properly set and start the deployment. * Clone the repository `terraform-provider-grid` - * ``` + ``` git clone https://github.com/threefoldtech/terraform-provider-grid ``` * Go to the subdirectory containing the examples - * ``` + ``` cd terraform-provider-grid/examples/resources/qsfs ``` * Set your own mnemonics (replace `mnemonics words` with your own mnemonics) - * ``` + ``` export MNEMONICS="mnemonics words" ``` * Set the network (replace `network` by the desired network, e.g. `dev`, `qa`, `test` or `main`) - * ``` + ``` export NETWORK="network" ``` * Initialize the Terraform deployment - * ``` + ``` terraform init ``` * Apply the Terraform deployment - * ``` + ``` terraform apply ``` * At any moment, you can destroy the deployment with the following line - * ``` + ``` terraform destroy ``` @@ -100,21 +100,21 @@ When using this method, you might need to change some parameters within the `mai For this method, we use two files to deploy with Terraform. The first file contains the environment variables (**credentials.auto.tfvars**) and the second file contains the parameters to deploy our workloads (**main.tf**). To facilitate the deployment, only the environment variables file needs to be adjusted. The **main.tf** file contains the environment variables (e.g. `var.size` for the disk size) and thus you do not need to change this file, but only the file **credentials.auto.tfvars**. * Open the terminal and go to the home directory (optional) - * ``` + ``` cd ~ ``` * Create the folder `terraform` and the subfolder `deployment-qsfs-microvm`: - * ``` - mkdir -p terraform && cd $_ - ``` - * ``` - mkdir deployment-qsfs-microvm && cd $_ - ``` + ``` + mkdir -p terraform && cd $_ + ``` + ``` + mkdir deployment-qsfs-microvm && cd $_ + ``` * Create the `main.tf` file: - * ``` - nano main.tf - ``` + ``` + nano main.tf + ``` * Copy the `main.tf` content and save the file. @@ -274,12 +274,12 @@ output "ygg_ip" { Note that we named the VM as **vm1**. * Create the `credentials.auto.tfvars` file: - * ``` - nano credentials.auto.tfvars - ``` + ``` + nano credentials.auto.tfvars + ``` * Copy the `credentials.auto.tfvars` content and save the file. - * ```terraform + ```terraform # Network network = "main" @@ -311,17 +311,17 @@ For the section QSFS Parameters, you can decide on how many VMs your data will b We now deploy the QSFS deployment with Terraform. Make sure that you are in the correct folder `terraform/deployment-qsfs-microvm` containing the main and variables files. * Initialize Terraform by writing the following in the terminal: - * ``` + ``` terraform init ``` * Apply the Terraform deployment: - * ``` + ``` terraform apply ``` * Terraform will then present you the actions it will perform. Write `yes` to confirm the deployment. Note that, at any moment, if you want to see the information on your Terraform deployments, write the following: - * ``` + ``` terraform show ``` diff --git a/collections/system_administrators/terraform/resources/terraform_resources_readme.md b/collections/system_administrators/terraform/resources/terraform_resources_readme.md index 6f11322..ed8e50a 100644 --- a/collections/system_administrators/terraform/resources/terraform_resources_readme.md +++ b/collections/system_administrators/terraform/resources/terraform_resources_readme.md @@ -2,12 +2,13 @@

Table of Contents

-- [Using Scheduler](./terraform_scheduler.md) +- [Using Scheduler](terraform_scheduler.md) - [Virtual Machine](./terraform_vm.html) - [Web Gateway](./terraform_vm_gateway.html) - [Kubernetes Cluster](./terraform_k8s.html) - [ZDB](./terraform_zdb.html) -- [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) +- [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/resources/terraform_vm.md b/collections/system_administrators/terraform/resources/terraform_vm.md index b349c5e..03ab0db 100644 --- a/collections/system_administrators/terraform/resources/terraform_vm.md +++ b/collections/system_administrators/terraform/resources/terraform_vm.md @@ -163,7 +163,7 @@ It's bit long for sure but let's try to dissect it a bit ip_range = lookup(grid_network.net1.nodes_ip_range, 2, "") ``` -- `node = grid_scheduler.sched.nodes["node1"]` means this deployment will happen on node returned from the scheduler. Otherwise the user can specify the node as `node = 2` and in this case the choice of the node is completely up to the user at this point. They need to do the capacity planning. Check the [Node Finder](../../../dashboard/deploy/node_finder.md) to know which nodes fits your deployment criteria. +- `node = grid_scheduler.sched.nodes["node1"]` means this deployment will happen on node returned from the scheduler. Otherwise the user can specify the node as `node = 2` and in this case the choice of the node is completely up to the user at this point. They need to do the capacity planning. Check the [Node Finder](dashboard@@node_finder) to know which nodes fits your deployment criteria. - `network_name` which network to deploy our project on, and here we choose the `name` of network `net1` - `ip_range` here we [lookup](https://www.terraform.io/docs/language/functions/lookup.html) the iprange of node `2` and initially load it with `""` @@ -171,7 +171,7 @@ It's bit long for sure but let's try to dissect it a bit ## Which flists to use -see [list of flists](../../../developers/flist/grid3_supported_flists.md) +see [list of flists](grid3_supported_flists.md) ## Remark multiple VMs @@ -204,7 +204,7 @@ So to add a VM ``` - We give it a name within our deployment `vm1` -- `flist` is used to define the flist to run within the VM. Check the [list of flists](../../../developers/flist/grid3_supported_flists.md) +- `flist` is used to define the flist to run within the VM. Check the [list of flists](grid3_supported_flists.md) - `cpu` and `memory` are used to define the cpu and memory - `publicip` is usued to define if it requires a public IP or not - `entrypoint` is used define the entrypoint which in most of the cases in `/sbin/zinit init`, but in case of flists based on vms it can be specific to each flist diff --git a/collections/system_administrators/terraform/resources/terraform_vm_gateway.md b/collections/system_administrators/terraform/resources/terraform_vm_gateway.md index d7feb5d..d7dc709 100644 --- a/collections/system_administrators/terraform/resources/terraform_vm_gateway.md +++ b/collections/system_administrators/terraform/resources/terraform_vm_gateway.md @@ -15,7 +15,7 @@ In this section, we provide the basic information for a VM web gateway using Ter ## Expose with Prefix -A complete list of gateway name workload parameters can be found [here](https://github.com/threefoldtech/terraform-provider-grid/blob/development/docs/resources/name_proxy.md). +A complete list of gateway name workload parameters can be found [here](name_proxy.md). ``` terraform { @@ -93,7 +93,7 @@ Here ## Expose with Full Domain -A complete list of gateway fqdn workload parameters can be found [here](https://github.com/threefoldtech/terraform-provider-grid/blob/development/docs/resources/fqdn_proxy.md). +A complete list of gateway fqdn workload parameters can be found [here](fqdn_proxy.md). it is more like the above example the only difference is you need to create an `A record` on your name provider for `remote.omar.grid.tf` to gateway node `7` IPv4. diff --git a/collections/system_administrators/terraform/resources/terraform_zlogs.md b/collections/system_administrators/terraform/resources/terraform_zlogs.md index 1867ce4..7ed64e8 100644 --- a/collections/system_administrators/terraform/resources/terraform_zlogs.md +++ b/collections/system_administrators/terraform/resources/terraform_zlogs.md @@ -1,10 +1,21 @@ -# Zlogs +

Zlogs

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Using Zlogs](#using-zlogs) + - [Creating a server](#creating-a-server) + - [Streaming logs](#streaming-logs) + +--- + +## Introduction Zlogs is a utility that allows you to stream VM logs to a remote location. You can find the full description [here](https://github.com/threefoldtech/zos/tree/main/docs/manual/zlogs) ## Using Zlogs -In terraform, a vm has a zlogs field, this field should contain a list of target URLs to stream logs to. +In Terraform, a vm has a zlogs field, this field should contain a list of target URLs to stream logs to. Valid protocols are: `ws`, `wss`, and `redis`. @@ -104,5 +115,4 @@ asyncio.run(main()) ``` exec: sh -c "echo 'to be streamed'" log: stdout -``` - +``` \ No newline at end of file diff --git a/collections/system_administrators/terraform/terraform_basics.md b/collections/system_administrators/terraform/terraform_basics.md index 0d200d6..a302399 100644 --- a/collections/system_administrators/terraform/terraform_basics.md +++ b/collections/system_administrators/terraform/terraform_basics.md @@ -24,14 +24,14 @@ We cover some important aspects of Terraform deployments on the ThreeFold Grid. -For a complete guide on deploying a full VM on the TFGrid, read [this documentation](./terraform_full_vm.md). +For a complete guide on deploying a full VM on the TFGrid, read [this documentation](terraform_full_vm.md). ## Requirements Here are the requirements to use Terraform on the TFGrid: -- [Set your TFGrid account](../getstarted/tfgrid3_getstarted.md) -- [Install Terraform](../terraform/terraform_install.md) +- [Set your TFGrid account](tfgrid3_getstarted.md) +- [Install Terraform](terraform_install.md) ## Basic Commands @@ -48,10 +48,10 @@ Here are some very useful commands to use with Terraform: There are two options when it comes to finding a node to deploy on. You can use the scheduler or search for a node with the Nodes Explorer. -- Use the [scheduler](resources/terraform_scheduler.md) +- Use the [scheduler](terraform_scheduler.md) - Scheduler will help you find a node that matches your criteria - Use the Nodes Explorer - - You can check the [Node Finder](../../dashboard/deploy/node_finder.md) to know which nodes fits your deployment criteria. + - You can check the [Node Finder](dashboard@@node_finder) to know which nodes fits your deployment criteria. - Make sure you choose a node which has enough capacity and is available (up and running). ## Preparation @@ -59,15 +59,15 @@ There are two options when it comes to finding a node to deploy on. You can use We cover the basic preparations beforing explaining the main file. - Make a directory for your project - - ``` + ``` mkdir myfirstproject ``` - Change directory - - ``` + ``` cd myfirstproject ``` - Create a main file and insert content - - ``` + ``` nano main.tf ``` @@ -109,15 +109,15 @@ provider "grid" { When writing the main file, you can decide to leave a variable content empty. In this case you can export the variable content as environment variables. * Export your mnemonics - * ``` + ``` export MNEMONICS="..." ``` * Export the network - * ``` + ``` export NETWORK="..." ``` -For more info, consult the [Provider Manual](./advanced/terraform_provider.md). +For more info, consult the [Provider Manual](terraform_provider.md). ### Output Section @@ -160,7 +160,7 @@ terraform destroy ## Available Flists -You can consult the [list of Flists](../../developers/flist/flist.md) to learn more about the available Flist to use with a virtual machine. +You can consult the [list of Flists](developers@@flist) to learn more about the available Flist to use with a virtual machine. ## Full and Micro Virtual Machines @@ -184,4 +184,4 @@ This gives you the following benefits: ## Conclusion -This was a quick introduction to Terraform, for a complete guide, please read [this documentation](./terraform_full_vm.md). For advanced tutorials and deployments, read [this section](./advanced/terraform_advanced_readme.md). To learn more about the different resources to deploy with Terraform on the TFGrid, read [this section](./resources/terraform_resources_readme.md). \ No newline at end of file +This was a quick introduction to Terraform, for a complete guide, please read [this documentation](terraform_full_vm.md). For advanced tutorials and deployments, read [this section](terraform_advanced_readme.md). To learn more about the different resources to deploy with Terraform on the TFGrid, read [this section](terraform_resources_readme.md). \ No newline at end of file diff --git a/collections/system_administrators/terraform/terraform_full_vm.md b/collections/system_administrators/terraform/terraform_full_vm.md index 42ceee2..161858f 100644 --- a/collections/system_administrators/terraform/terraform_full_vm.md +++ b/collections/system_administrators/terraform/terraform_full_vm.md @@ -42,7 +42,7 @@ Once this is done, initialize and apply Terraform to deploy your workload, then ## Prerequisites -- [Install Terraform](./terraform_install.md) +- [Install Terraform](terraform_install.md) You need to download and install properly Terraform. Simply follow the documentation depending on your operating system (Linux, MAC and Windows). @@ -58,7 +58,7 @@ We present two options to find a suitable node: the scheduler and the TFGrid Exp ### Using the Grid Scheduler -Using the TFGrid scheduler can be very efficient depending on what you are trying to achieve. To learn more about the scheduler, please refer to this [Scheduler Guide](resources/terraform_scheduler.md). +Using the TFGrid scheduler can be very efficient depending on what you are trying to achieve. To learn more about the scheduler, please refer to this [Scheduler Guide](terraform_scheduler.md). @@ -94,20 +94,20 @@ Open the terminal. - Go to the home folder - - ``` + ``` cd ~ ``` - Create the folder `terraform` and the subfolder `deployment-full-vm`: - - ``` + ``` mkdir -p terraform/deployment-full-vm ``` - - ``` + ``` cd terraform/deployment-full-vm ``` - Create the `main.tf` file: - - ``` + ``` nano main.tf ``` @@ -210,7 +210,7 @@ In this file, we name the VM as `vm1`. - Create the `credentials.auto.tfvars` file: - - ``` + ``` nano credentials.auto.tfvars ``` @@ -239,12 +239,12 @@ We now deploy the full VM with Terraform. Make sure that you are in the correct - Initialize Terraform: - - ``` + ``` terraform init ``` - Apply Terraform to deploy the full VM: - - ``` + ``` terraform apply ``` @@ -254,8 +254,8 @@ After deployments, take note of the 3Node' IPv4 address. You will need this addr ## SSH into the 3Node -- To [SSH into the 3Node](../getstarted/ssh_guide/ssh_guide.md), write the following: - - ``` +- To [SSH into the 3Node](ssh_guide.md), write the following: + ``` ssh root@VM_IPv4_Address ``` diff --git a/collections/system_administrators/terraform/terraform_get_started.md b/collections/system_administrators/terraform/terraform_get_started.md index a4693da..98036cd 100644 --- a/collections/system_administrators/terraform/terraform_get_started.md +++ b/collections/system_administrators/terraform/terraform_get_started.md @@ -56,7 +56,7 @@ export NETWORK="....." ``` -For more info see [Provider Manual](./advanced/terraform_provider.md) +For more info see [Provider Manual](terraform_provider.md) ### output section @@ -84,4 +84,4 @@ Output parameters show what has been done: ### Which flists to use in VM -see [list of flists](../manual3_iac/grid3_supported_flists.md) +see [list of flists](grid3_supported_flists.md) diff --git a/collections/system_administrators/terraform/terraform_toc.md b/collections/system_administrators/terraform/terraform_toc.md index 15a7c78..16c7724 100644 --- a/collections/system_administrators/terraform/terraform_toc.md +++ b/collections/system_administrators/terraform/terraform_toc.md @@ -2,33 +2,37 @@

Table of Contents

-- [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](./resources/terraform_resources_readme.md) - - [Using Scheduler](./resources/terraform_scheduler.md) - - [Virtual Machine](./resources/terraform_vm.md) - - [Web Gateway](./resources/terraform_vm_gateway.md) - - [Kubernetes Cluster](./resources/terraform_k8s.md) - - [ZDB](./resources/terraform_zdb.md) - - [Quantum Safe Filesystem](./resources/terraform_qsfs.md) -- [QSFS on Micro VM](./resources/terraform_qsfs_on_microvm.md) -- [QSFS on Full VM](./resources/terraform_qsfs_on_full_vm.md) - - [CapRover](./resources/terraform_caprover.md) -- [Advanced](./advanced/terraform_advanced_readme.md) - - [Terraform Provider](./advanced/terraform_provider.md) - - [Terraform Provisioners](./advanced/terraform_provisioners.md) - - [Mounts](./advanced/terraform_mounts.md) - - [Capacity Planning](./advanced/terraform_capacity_planning.md) - - [Updates](./advanced/terraform_updates.md) - - [SSH Connection with Wireguard](./advanced/terraform_wireguard_ssh.md) - - [Set a Wireguard VPN](./advanced/terraform_wireguard_vpn.md) - - [Synced MariaDB Databases](./advanced/terraform_mariadb_synced_databases.md) - - [Nomad](./advanced/terraform_nomad.md) - - [Nextcloud Deployments](./advanced/terraform_nextcloud_toc.md) - - [Nextcloud All-in-One Deployment](./advanced/terraform_nextcloud_aio.md) - - [Nextcloud Single Deployment](./advanced/terraform_nextcloud_single.md) - - [Nextcloud Redundant Deployment](./advanced/terraform_nextcloud_redundant.md) - - [Nextcloud 2-Node VPN Deployment](./advanced/terraform_nextcloud_vpn.md) \ No newline at end of file +- [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) +- [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 diff --git a/collections/tech/innovations/key_innovations_overview.md b/collections/tech/innovations/key_innovations_overview.md index 20c07b3..5ee8c07 100644 --- a/collections/tech/innovations/key_innovations_overview.md +++ b/collections/tech/innovations/key_innovations_overview.md @@ -1,15 +1,15 @@ -

Key Innovations

- -Throughout the years, we've built innovative products that are now part of a whole ecosystem. - -![](dream_comes_true.png) - -

Table of Contents

- -- [Mycelium: a new network layer for the internet](mycelium_innovation.md) -- [Zero-OS: a minimalistic and more efficient server operating system](zos_innovation) -- [Quantum Safe Storage](zstor_innovation.md) -- [Quantum Safe Filesystem](qsfs_innovation.md) -- [FList: a new way to deal with OS Images](flist_innovation.md) -- [FungiStor](fungistor_innovation.md) +

Key Innovations

+ +Throughout the years, we've built innovative products that are now part of a whole ecosystem. + +![](dream_comes_true.png) + +

Table of Contents

+ +- [Mycelium: a new network layer for the internet](mycelium_innovation.md) +- [Zero-OS: a minimalistic and more efficient server operating system](zos_innovation) +- [Quantum Safe Storage](zstor_innovation.md) +- [Quantum Safe Filesystem](qsfs_innovation.md) +- [FList: a new way to deal with OS Images](flist_innovation.md) +- [FungiStor](fungistor_innovation.md) - [Network Wall](network_wall_innovation.md) \ No newline at end of file diff --git a/collections/tech/innovations/mycelium_innovation_short.md b/collections/tech/innovations/mycelium_innovation_short.md index c982d6d..9b58836 100644 --- a/collections/tech/innovations/mycelium_innovation_short.md +++ b/collections/tech/innovations/mycelium_innovation_short.md @@ -1,25 +1,25 @@ - -### The Problem - -The current centralized state of the internet poses significant security risks, with compromised routers and growing cyber threats (trillions of USD per year now), making everyone vulnerable to hacking. Industry responses involve disabling original features, hindering true peer-to-peer connectivity and personal server capabilities. Workarounds and system hacks have become the norm. - -**Our Internet is seriously broken. We need new ways to communicate** - -### Introducing Mycelium - -Mycelium is an overlay network layer designed to enhance the existing internet infrastructure while remaining compatible with all current applications. It empowers true peer-to-peer communication. By installing a Network Agent on your device, you gain the ability to securely connect with any other participant on this network. Mycelium intelligently reroutes traffic to maintain connectivity taking location of you and your peer into consideration. - -### The Benefits - -- **Continuous connectivity:** Mycelium ensures uninterrupted connectivity by dynamically rerouting traffic through available connections (friends, satellites, 4/5G, fiber). -- **End-to-end encryption:** robust encryption stops man-in-the-middle attacks, guaranteeing secure communication. -- **Proof of authenticity ([POA](p2p:poa.md))**: ensures that we know who we are communicating with -- **Optimized routing:** Mycelium finds the shortest path between network participants, reducing latency and keeping traffic localized. -- **Universal server capability:** empowers individuals to act as servers, a foundational element for any peer-to-peer system. -- **Full Compatibility:** Mycelium seamlessly integrates with the current internet, supporting any application. -- **Impressive speed:** achieves 1 Gbps per Network Agent, ensuring rapid data transfer. - -### Status - -In beta and usable from TFGrid 3.13, its our 3e generation approach to networking and took us years to do. We are looking forward to your feedback. - + +### The Problem + +The current centralized state of the internet poses significant security risks, with compromised routers and growing cyber threats (trillions of USD per year now), making everyone vulnerable to hacking. Industry responses involve disabling original features, hindering true peer-to-peer connectivity and personal server capabilities. Workarounds and system hacks have become the norm. + +**Our Internet is seriously broken. We need new ways to communicate** + +### Introducing Mycelium + +Mycelium is an overlay network layer designed to enhance the existing internet infrastructure while remaining compatible with all current applications. It empowers true peer-to-peer communication. By installing a Network Agent on your device, you gain the ability to securely connect with any other participant on this network. Mycelium intelligently reroutes traffic to maintain connectivity taking location of you and your peer into consideration. + +### The Benefits + +- **Continuous connectivity:** Mycelium ensures uninterrupted connectivity by dynamically rerouting traffic through available connections (friends, satellites, 4/5G, fiber). +- **End-to-end encryption:** robust encryption stops man-in-the-middle attacks, guaranteeing secure communication. +- **Proof of authenticity ([POA](p2p:poa.md))**: ensures that we know who we are communicating with +- **Optimized routing:** Mycelium finds the shortest path between network participants, reducing latency and keeping traffic localized. +- **Universal server capability:** empowers individuals to act as servers, a foundational element for any peer-to-peer system. +- **Full Compatibility:** Mycelium seamlessly integrates with the current internet, supporting any application. +- **Impressive speed:** achieves 1 Gbps per Network Agent, ensuring rapid data transfer. + +### Status + +In beta and usable from TFGrid 3.13, its our 3e generation approach to networking and took us years to do. We are looking forward to your feedback. + diff --git a/collections/tech/primitives/primitives.md b/collections/tech/primitives/primitives.md index e83845e..8769ba2 100644 --- a/collections/tech/primitives/primitives.md +++ b/collections/tech/primitives/primitives.md @@ -9,35 +9,35 @@ Any application which can run on linux can run on the TFGrid. ### Compute (uses CU) -- [ZKube](compute/zkube.md) +- [ZKube](zkube.md) - kubernetes deployment -- [ZMachine](compute/zmachine.md) +- [ZMachine](zmachine.md) - the container or virtual machine running inside ZOS -- [CoreX](compute/corex.md) +- [CoreX](corex.md) - process manager (optional), can be used to get remote access to your zmachine A 3Node is a Zero-OS enabled computer which is hosted by any cloud operator. ### There are 4 storage mechanisms which can be used to store your data: -- [ZOS FS](storage/zos_fs.md) +- [ZOS FS](zos_fs.md) - is our dedupe unique filesystem, replaces docker images -- [ZOS Mount](storage/zmount.md) +- [ZOS Mount](zmount.md) - is a mounted disk location on SSD, this can be used as faster storage location -- [Quamtum Safe Filesystem](../qsss/qss_filesystem.md) +- [Quamtum Safe Filesystem](qss_filesystem.md) - this is a super unique storage system, data can never be lost or corrupted. Please be reminded that this storage layer is only meant to be used for secondary storage applications -- [ZOS Disk](storage/zdisk.md) +- [ZOS Disk](zdisk.md) - a virtual disk technology, only for TFTech OEM partners ### There are 4 ways how networks can be connected to a Z-Machine. -- [Planetary network](network/planetary_network.md): +- [Planetary network](planetary_network.md): - is a planetary scalable network, we have clients for windows, osx, android and iphone -- [ZOS Net](network/znet.md): +- [ZOS Net](znet.md): - is a fast end2end encrypted network technology, keep your traffic between your z_machines 100% private -- [ZOS NIC](network/znic.md): +- [ZOS NIC](znic.md): - connection to a public ipaddress -- [WEB GW](network/webgw.md): +- [WEB GW](webgw.md): - web gateway, a secure way to allow internet traffic reach your secure Z-Machine. diff --git a/collections/tech/primitives/storage/qsfs.md b/collections/tech/primitives/storage/qsfs.md index b596424..08b160e 100644 --- a/collections/tech/primitives/storage/qsfs.md +++ b/collections/tech/primitives/storage/qsfs.md @@ -23,7 +23,7 @@ presents itself as a filesystem to the ZMachine. see how its implemented in: -- [Quantum Safe Storage](../../qsss/qsss_home.md) -- [Quantum Safe Filesystem](../../qsss/qss_filesystem.md) -- [Quantum Safe Algo](../../qsss/qss_algorithm.md) +- [Quantum Safe Storage](qsss_home.md) +- [Quantum Safe Filesystem](qss_filesystem.md) +- [Quantum Safe Algo](qss_algorithm.md) diff --git a/collections/tech/primitives/storage/storage.md b/collections/tech/primitives/storage/storage.md index e8dec2e..488113e 100644 --- a/collections/tech/primitives/storage/storage.md +++ b/collections/tech/primitives/storage/storage.md @@ -6,4 +6,4 @@ - [Zero-DB](zdb.md) : the lowest level storage primitive, is a key value stor, used underneath other storage mechanisms typically - [Zero-Disk](zdisk.md) : OEM only, virtual disk format -Uses [Storage Units = SU](../../../grid/concepts/cloudunits.md). \ No newline at end of file +Uses [Storage Units = SU](cloudunits.md). \ No newline at end of file diff --git a/collections/tech/qsss/qss_benefits_.md b/collections/tech/qsss/qss_benefits0.md similarity index 100% rename from collections/tech/qsss/qss_benefits_.md rename to collections/tech/qsss/qss_benefits0.md diff --git a/collections/tech/technology_toc.md b/collections/tech/technology_toc.md new file mode 100644 index 0000000..b8085da --- /dev/null +++ b/collections/tech/technology_toc.md @@ -0,0 +1,46 @@ +

Technology

+ +This section covers the technology behind the ThreeFold Grid. ThreeFold has created an amazing technology system to allow anyone to host their applications and data close to them. + +To build on the ThreeFold Grid, refer to the [Developers](developers@@developers) section. + +

Table of Contents

+ +- [Introduction](technology.md) +- [The Internet Today](internet_today.md) + - [History of Computers](c64.md) + - [Too Many Layers](layers.md) +- [The Internet Re-invented](how_does_it_work.md) + - [World Records](world_records.md) +- [Key Innovations](key_innovations_overview.md) + - [Mycelium Network](mycelium_innovation.md) + - [Zero-OS](zos_innovation.md) + - [Quantum Safe Storage](zstor_innovation.md) + - [Quantum Safe Filesystem](qsfs_innovation.md) + - [FList: Better OS Images](flist_innovation.md) + - [FungiStor](fungistor_innovation.md) + - [Network Wall](network_wall_innovation.md) +- [Architecture](architecture.md) +- [Energy Efficient](energy_efficient.md) +- [Decentralized Cloud Core Capabilities](features.md) + - [Storage](qsss_home.md) + - [Quantum Safe Storage Algo](qss_algorithm.md) + - [Zero Knowledge proof](qss_zero_knowledge_proof.md) + - [NFT Storage](nft_storage.md) + - [S3 Storage](tech/s3_interface) + - [File System](qss_filesystem.md) + - [Network](networking.md) + - [Mycelium](mycelium.md) + - [Web Gateway](webgw.md) +- [Partners Utilization](partners_utilization@@partners) + - [Sikana](partners_utilization@@sikana) + - [Vindo](partners_utilization@@vindo) + - [Mkondo](partners_utilization@@mkondo) + - [Vverse](partners_utilization@@vverse) + - [Earth Wallet](partners_utilization@@earth_wallet) + - [Elestio](partners_utilization@@elestio) + - [OW Freezone](partners_utilization@@freezone) + - [Helium](partners_utilization@@helium) + - [Holochain](partners_utilization@@holochain) + - [TZG](partners_utilization@@tanzania) + - [Tier-S DC](partners_utilization@@tier_s_datacenter) \ No newline at end of file diff --git a/collections/tech/zos/benefits/unbreakable_storage.md b/collections/tech/zos/benefits/unbreakable_storage.md index e06e85c..69ba1de 100644 --- a/collections/tech/zos/benefits/unbreakable_storage.md +++ b/collections/tech/zos/benefits/unbreakable_storage.md @@ -13,7 +13,7 @@ If you deploy a container with simple disk access, you don’t have it. Performance is around 50MB/second, if a bit more CPU is given for the distributed storage encoder, we achieve this performance. -More info see [Quantum Safe Storage](../../qsss/qsss_home.md). +More info see [Quantum Safe Storage](qsss_home.md). diff --git a/collections/tfgrid3/dao/tfdao.md b/collections/tfgrid3/dao/tfdao.md index 2b3ec3a..79cddd8 100644 --- a/collections/tfgrid3/dao/tfdao.md +++ b/collections/tfgrid3/dao/tfdao.md @@ -17,5 +17,5 @@ As well as ### More info about DAO's -- see [what is a DAO](dao_info.md) -- see [why a DAO](dao_why.md) \ No newline at end of file +- see [what is a DAO](tfgrid3:dao_info.md) +- see [why a DAO](tfgrid3:dao_why.md) \ No newline at end of file diff --git a/collections/tfgrid3/threefold_grid.md b/collections/tfgrid3/threefold_grid.md new file mode 100644 index 0000000..5268715 --- /dev/null +++ b/collections/tfgrid3/threefold_grid.md @@ -0,0 +1,7 @@ +# ThreeFold_Grid + +ThreeFold_Grid is a global, neutral, and sustainable network of autonomous storage and compute Internet capacity created by ThreeFold Farmers, with more than 80,000,000 GB and 20,000 cores existing today. On this Grid, IT capacity is indexed / registered on the TFChain for easy discovery by purchasers. Any application which can run on Linux can run on the ThreeFold_Grid but with more privacy, security, closer to the end-user, and at a much lower cost. + +This Internet capacity is produced and allocated locally - similar to the way electricity and other utilities are purchased today. This allows any digital service or application provider to host their services and applications in proximity to the end user leading to significantly greater performance, a lower price point and better margins. This is both more cost effective and green. + +!!!def alias:Threefold_Grid,tf_grid diff --git a/collections/threefold_token/buy_sell_tft/albedo_buy.md b/collections/threefold_token/buy_sell_tft/albedo_buy.md index ef6d18e..eba0cca 100644 --- a/collections/threefold_token/buy_sell_tft/albedo_buy.md +++ b/collections/threefold_token/buy_sell_tft/albedo_buy.md @@ -19,7 +19,7 @@ In this tutorial, we will walk you through the process of buying Stellar TFT tok - **XLM**: When buying TFT tokens using the Albedo wallet, the process involves swapping XLM (Stellar Lumens) or other Stellar tokens into TFT. Please note that a certain amount of XLM funding is required to facilitate the sending and receiving of assets on the Stellar network. -- **Create a Wallet and Add TFT Asset**: Create an Albedo Wallet Account and add TFT as an asset. Read [**here**](../storing_tft/storing_tft.md) for the complete manual of how to create an Albedo Wallet. +- **Create a Wallet and Add TFT Asset**: Create an Albedo Wallet Account and add TFT as an asset. Read [**here**](storing_tft.md) for the complete manual of how to create an Albedo Wallet. *** ## Get Started @@ -33,7 +33,7 @@ Congratulations. You just swapped some XLM to TFT. Go to 'Balance' page to see y *** ## Important Notice -If you are looking for ways to provide liquidity for TFT (Stellar) on Albedo, you will find the according information [here](../liquidity/liquidity_albedo.md). +If you are looking for ways to provide liquidity for TFT (Stellar) on Albedo, you will find the according information [here](liquidity_albedo.md). *** ## Disclaimer diff --git a/collections/threefold_token/buy_sell_tft/btc_alpha.md b/collections/threefold_token/buy_sell_tft/btc_alpha.md index c80d633..02418ea 100644 --- a/collections/threefold_token/buy_sell_tft/btc_alpha.md +++ b/collections/threefold_token/buy_sell_tft/btc_alpha.md @@ -114,7 +114,7 @@ While it is possible to keep your TFT in your exchange wallet on BTC-Alpha, it i To ensure the safety and security of your TFT holdings, it is advisable to transfer them to a dedicated TFT wallet. There are several options available for creating a TFT wallet, each with its own unique features and benefits. -To explore different TFT wallet options and choose the one that best suits your needs, you can refer to our comprehensive [**TFT Wallet guide**](../storing_tft/storing_tft.md) that provides a list of recommended TFT wallets. This guide will help you understand the features, security measures, and compatibility of each wallet, enabling you to make an informed decision on where to store your TFT securely. +To explore different TFT wallet options and choose the one that best suits your needs, you can refer to our comprehensive [**TFT Wallet guide**](storing_tft.md) that provides a list of recommended TFT wallets. This guide will help you understand the features, security measures, and compatibility of each wallet, enabling you to make an informed decision on where to store your TFT securely. Remember, maintaining control over your private keys and taking precautions to protect your wallet information are essential for safeguarding your TFT investments. diff --git a/collections/threefold_token/buy_sell_tft/buy_sell_tft.md b/collections/threefold_token/buy_sell_tft/buy_sell_tft.md index a97b90c..d2f9d18 100644 --- a/collections/threefold_token/buy_sell_tft/buy_sell_tft.md +++ b/collections/threefold_token/buy_sell_tft/buy_sell_tft.md @@ -1,20 +1,20 @@

Buy and Sell TFT

-> If you're looking for a simple way to get TFT with crypto or fiat, check out the [Quick Start guide](./tft_lobstr/tft_lobstr_short_guide.md)! +> If you're looking for a simple way to get TFT with crypto or fiat, check out the [Quick Start guide](tft_lobstr_short_guide.md)! There are multiple ways to buy and sell TFT depending on your preferences and the blockchain network you choose to transact on. -You can buy and sell TFT on Stellar Chain, Ethereum Chain and BNB Smart Chain, and you can use the [TFT bridges](../tft_bridges/tft_bridges.md) to go from one chain to another. +You can buy and sell TFT on Stellar Chain, Ethereum Chain and BNB Smart Chain, and you can use the [TFT bridges](tft_bridges.md) to go from one chain to another. -With TFTs, you can [deploy workloads](../../system_administrators/getstarted/tfgrid3_getstarted.md) on the ThreeFold Grid and benefit from [staking discounts](../../../knowledge_base/cloud/pricing/staking_discount_levels.md) up to 60%! +With TFTs, you can [deploy workloads](system_administrators@@tfgrid3_getstarted) on the ThreeFold Grid and benefit from [staking discounts](cloud@@staking_discount_levels) up to 60%!

Table of Contents

-- [Quick Start (Stellar)](./tft_lobstr/tft_lobstr_short_guide.md) -- [Lobstr Wallet (Stellar)](./tft_lobstr/tft_lobstr_complete_guide.md) -- [MetaMask (BSC & ETH)](./tft_metamask/tft_metamask.md) -- [Pancake Swap (BSC)](./pancakeswap.md) +- [Quick Start (Stellar)](tft_lobstr_short_guide.md) +- [Lobstr Wallet (Stellar)](tft_lobstr_complete_guide.md) +- [MetaMask (BSC & ETH)](tft_metamask.md) +- [Pancake Swap (BSC)](pancakeswap.md) ## More on TFT -The [Threefold token (TFT)](../threefold_token.md) is the token of the Threefold Grid, a decentralized and open-source project offering network, compute and storage capacity. TFTs are created by TFChain, the ThreeFold blockchain, only when new Internet capacity is added to the ThreeFold Grid by cloud service providers (farmers) deploying 3Nodes, a process we call [farming](../../farmers/farmers.md). \ No newline at end of file +The [Threefold token (TFT)](threefold_token.md) is the token of the Threefold Grid, a decentralized and open-source project offering network, compute and storage capacity. TFTs are created by TFChain, the ThreeFold blockchain, only when new Internet capacity is added to the ThreeFold Grid by cloud service providers (farmers) deploying 3Nodes, a process we call [farming](farmers@@farmers). \ No newline at end of file diff --git a/collections/threefold_token/buy_sell_tft/buy_sell_tft_archive.md b/collections/threefold_token/buy_sell_tft/buy_sell_tft_archive.md index 9e16570..46cbb77 100644 --- a/collections/threefold_token/buy_sell_tft/buy_sell_tft_archive.md +++ b/collections/threefold_token/buy_sell_tft/buy_sell_tft_archive.md @@ -12,7 +12,7 @@ ## Introduction -There are multiple ways to acquire [TFT](../threefold_token.md) depending on your preferences and the blockchain network you choose to transact on. Note that you can use the [TFT bridges](../tft_bridges/tft_bridges.md) to go from one chain to another. To start, you need to have a supporting wallet to [store your TFT](../storing_tft/storing_tft.md). +There are multiple ways to acquire [TFT](threefold_token.md) depending on your preferences and the blockchain network you choose to transact on. Note that you can use the [TFT bridges](tft_bridges.md) to go from one chain to another. To start, you need to have a supporting wallet to [store your TFT](storing_tft.md). It's important to explore the available options and select the most convenient and secure method for acquiring TFT. Always exercise caution and ensure the legitimacy and reliability of the platforms or individuals you engage with to obtain TFT. @@ -20,11 +20,11 @@ It's important to explore the available options and select the most convenient a In general, to set up a Stellar address to transact TFT on Stellar chain, you can use any Stellar wallet that has a TFT trustline enabled. Note that on Stellar chain, fees are paid in XLM. -The easiest way is to simply create an account on the [ThreeFold Connect App](../storing_tft/tf_connect_app.md) (for [Android](https://play.google.com/store/apps/details?id=org.jimber.threebotlogin) and [iOS](https://apps.apple.com/us/app/threefold-connect/id1459845885)) and to then use the TFT wallet of the app, which has by default a TFT trustline on Stellar chain and also comes with 1 XLM sponsored by Threefold for transaction fees. +The easiest way is to simply create an account on the [ThreeFold Connect App](tf_connect_app.md) (for [Android](https://play.google.com/store/apps/details?id=org.jimber.threebotlogin) and [iOS](https://apps.apple.com/us/app/threefold-connect/id1459845885)) and to then use the TFT wallet of the app, which has by default a TFT trustline on Stellar chain and also comes with 1 XLM sponsored by Threefold for transaction fees. ## Methods to Get TFT -The ThreeFold manual covers numerous methods [to buy and sell TFT](./buy_sell_tft_methods.md). For a complete tutorial on getting TFT with crypto or fiat, read the [Lobstr guide](./tft_lobstr/tft_lobstr_complete_guide.md). +The ThreeFold manual covers numerous methods [to buy and sell TFT](buy_sell_tft_methods.md). For a complete tutorial on getting TFT with crypto or fiat, read the [Lobstr guide](tft_lobstr_complete_guide.md). If you're interested in trading or swapping other cryptocurrencies for TFT, you can visit various crypto exchanges that list TFT. Additionally, you can leverage swapping services available on decentralized exchanges (DEXs) or automated market makers (AMMs) to exchange your tokens for TFT (BSC). diff --git a/collections/threefold_token/buy_sell_tft/buy_sell_tft_methods.md b/collections/threefold_token/buy_sell_tft/buy_sell_tft_methods.md index f7d7175..45ffd93 100644 --- a/collections/threefold_token/buy_sell_tft/buy_sell_tft_methods.md +++ b/collections/threefold_token/buy_sell_tft/buy_sell_tft_methods.md @@ -5,32 +5,32 @@ There are many ways to buy and sell TFT on the different chains where it lives.

Table of Contents

- Ethereum and BSC - - [MetaMask](./tft_metamask/tft_metamask.md) - - [1inch.io](./oneinch.md) + - [MetaMask](tft_metamask.md) + - [1inch.io](oneinch.md) - BSC - - [Pancake Swap](./pancakeswap.md) + - [Pancake Swap](pancakeswap.md) - Stellar Chain - - [Lobstr Wallet](./tft_lobstr/tft_lobstr.md) - - [Lobstr Wallet: Short Guide](./tft_lobstr/tft_lobstr_short_guide.md) - - [Lobstr Wallet: Complete Guide](./tft_lobstr/tft_lobstr_complete_guide.md) - - [GetTFT.com](./gettft.md) - - [Albedo Wallet](./albedo_buy.md) - - [Solar Wallet](./solar_buy.md) - - [Coinbase (XLM)](./coinbase_xlm.md) - - [StellarTerm](./stellarterm.md) - - [Interstellar](./interstellar.md) + - [Lobstr Wallet](tft_lobstr.md) + - [Lobstr Wallet: Short Guide](tft_lobstr_short_guide.md) + - [Lobstr Wallet: Complete Guide](tft_lobstr_complete_guide.md) + - [GetTFT.com](gettft.md) + - [Albedo Wallet](albedo_buy.md) + - [Solar Wallet](solar_buy.md) + - [Coinbase (XLM)](coinbase_xlm.md) + - [StellarTerm](stellarterm.md) + - [Interstellar](interstellar.md) - CEX - - [BTC-Alpha](./btc_alpha.md) + - [BTC-Alpha](btc_alpha.md) - OTC - - [ThreeFold Live Desk](./tf_otc.md) + - [ThreeFold Live Desk](tf_otc.md) - Farmers - - [BetterToken Farmers](./bettertoken.md) - - [Mazraa Farmers](./mazraa.md) + - [BetterToken Farmers](bettertoken.md) + - [Mazraa Farmers](mazraa.md) -> Note: You can [use TFT bridges](../tft_bridges/tft_bridges.md) to move from one chain to another. \ No newline at end of file +> Note: You can [use TFT bridges](tft_bridges.md) to move from one chain to another. \ No newline at end of file diff --git a/collections/threefold_token/buy_sell_tft/coinbase_xlm.md b/collections/threefold_token/buy_sell_tft/coinbase_xlm.md index a9113cc..d5086b3 100644 --- a/collections/threefold_token/buy_sell_tft/coinbase_xlm.md +++ b/collections/threefold_token/buy_sell_tft/coinbase_xlm.md @@ -44,4 +44,4 @@ After successfully purchasing XLM from Coinbase, you can begin the process of wi To learn more about the steps involved in withdrawing XLM from Coinbase to another Stellar wallet, click [here](https://help.coinbase.com/en/exchange/trading-and-funding/withdraw-funds). This resource will provide you with detailed instructions and guidelines on how to initiate the withdrawal process and ensure a smooth transfer of your XLM to your preferred Stellar wallet. -> Get a TFT (Stellar) Wallet of your choice [here](../storing_tft/storing_tft.md)! +> Get a TFT (Stellar) Wallet of your choice [here](storing_tft.md)! diff --git a/collections/threefold_token/buy_sell_tft/interstellar.md b/collections/threefold_token/buy_sell_tft/interstellar.md index e12ef25..57667a6 100644 --- a/collections/threefold_token/buy_sell_tft/interstellar.md +++ b/collections/threefold_token/buy_sell_tft/interstellar.md @@ -22,7 +22,7 @@ In this guide, we will walk you through the process of buying TFT on the Interst - **XLM**: To get TFT tokens using Interstellar, a certain amount of XLM funding is required to facilitate the sending and receiving of assets on the Stellar network. -- **Create Interstellar Account and Add TFT Asset**: Create an Interstellar Account via desktop, and add TFT as an asset. Read [**here**](../storing_tft/interstellar_store.md) for the complete manual of how to create an Interstellar Account. +- **Create Interstellar Account and Add TFT Asset**: Create an Interstellar Account via desktop, and add TFT as an asset. Read [**here**](interstellar_store.md) for the complete manual of how to create an Interstellar Account. ## Get Started @@ -40,9 +40,9 @@ You can choose to fullfill sell orders, or create your own buy order. Once the b ## Store TFT on Interstellar -If you are looking for ways to store TFT on Interstellar, you will find the according information [here](../storing_tft/interstellar_store.md). +If you are looking for ways to store TFT on Interstellar, you will find the according information [here](interstellar_store.md). -To explore different TFT wallet options and choose the one that best suits your needs, you can refer to our comprehensive [**TFT Wallet guide**](../storing_tft/storing_tft.md) that provides a list of recommended TFT wallets. This guide will help you understand the features, security measures, and compatibility of each wallet, enabling you to make an informed decision on where to store your TFT securely. +To explore different TFT wallet options and choose the one that best suits your needs, you can refer to our comprehensive [**TFT Wallet guide**](storing_tft.md) that provides a list of recommended TFT wallets. This guide will help you understand the features, security measures, and compatibility of each wallet, enabling you to make an informed decision on where to store your TFT securely. ## Disclaimer diff --git a/collections/threefold_token/buy_sell_tft/mazraa.md b/collections/threefold_token/buy_sell_tft/mazraa.md index 9d1af85..a06a56e 100644 --- a/collections/threefold_token/buy_sell_tft/mazraa.md +++ b/collections/threefold_token/buy_sell_tft/mazraa.md @@ -52,7 +52,7 @@ Verification Code: Check your email for the verification code and enter it on th Step 4: KYC Procedure: Complete the KYC (Know Your Customer) procedure by providing the required documents to Transcoin for verification. The specific documents needed will vary for each user. -Specify the amount in euros (€) that you would like to purchase and provide the TFT wallet address where you want to receive the TFT. Your wallet address can be found in the [ThreeFold Connect a wallet](../storing_tft/tf_connect_app.md#create-a-wallet) or any other [TFT (Stellar) Wallet](../storing_tft/storing_tft.md) you prefer. +Specify the amount in euros (€) that you would like to purchase and provide the TFT wallet address where you want to receive the TFT. Your wallet address can be found in the [ThreeFold Connect a wallet](../storing_tft/tf_connect_app.md#create-a-wallet) or any other [TFT (Stellar) Wallet](storing_tft.md) you prefer. Select your preferred payment method from the options provided by Transcoin. diff --git a/collections/threefold_token/buy_sell_tft/oneinch.md b/collections/threefold_token/buy_sell_tft/oneinch.md index b0aef23..fed62cf 100644 --- a/collections/threefold_token/buy_sell_tft/oneinch.md +++ b/collections/threefold_token/buy_sell_tft/oneinch.md @@ -24,9 +24,9 @@ Before you can buy TFT on 1inch.io, there are a few prerequisites you need to fu - **BSC Wallet**: To interact with the Binance Smart Chain and 1inch.io, you'll need a BSC-compatible wallet. [Trust Wallet](https://trustwallet.com/) and [MetaMask](https://metamask.io/) are popular options that support BSC. Make sure to set up and secure your wallet before proceeding. On this tutorial, we will use Metamask as our connecting wallet. -> [Set up a Metamask Wallet](../storing_tft/metamask.md) +> [Set up a Metamask Wallet](metamask.md) > -> [Set up a Trust Wallet](../storing_tft/trustwallet.md) +> [Set up a Trust Wallet](trustwallet.md) - **Get BNB Tokens**: As the native cryptocurrency of Binance Smart Chain, BNB is required to pay for transaction fees on the network. You will need to have Ensure you have some BNB tokens in your BSC wallet to cover these fees when buying TFT on 1inch.io. Read [this tutorial](https://fortunly.com/articles/how-to-buy-bnb/) to know where you can buy BNB and transfer them to your BSC Wallet. @@ -34,7 +34,7 @@ Before you can buy TFT on 1inch.io, there are a few prerequisites you need to fu *** ## How to Get TFT on 1inch.io (TFT-BSC) -By utilizing 1inch.io, you can easily convert your existing crypto assets on BSC network into TFT-BSC by using the Swap function. Once you have obtained TFT-BSC, you have the option to bridge it into TFT Native on the Stellar network by utilizing the [TFT-Stellar bridge](../tft_bridges/tfchain_stellar_bridge.md). Let's swap some tokens! +By utilizing 1inch.io, you can easily convert your existing crypto assets on BSC network into TFT-BSC by using the Swap function. Once you have obtained TFT-BSC, you have the option to bridge it into TFT Native on the Stellar network by utilizing the [TFT-Stellar bridge](tfchain_stellar_bridge.md). Let's swap some tokens! ### Connect a BSC Wallet to 1inch.io @@ -60,7 +60,7 @@ Wait for the banner in the upper-right corner informing you about the success of ### Important Notice -If you are looking for ways to provide liquidity for TFT on Binance Smart Chain on 1inch.io, you will find the according information [here](../liquidity/liquidity_1inch.md). +If you are looking for ways to provide liquidity for TFT on Binance Smart Chain on 1inch.io, you will find the according information [here](liquidity_1inch.md). *** ## Disclaimer diff --git a/collections/threefold_token/buy_sell_tft/pancakeswap.md b/collections/threefold_token/buy_sell_tft/pancakeswap.md index ed09435..ef892dd 100644 --- a/collections/threefold_token/buy_sell_tft/pancakeswap.md +++ b/collections/threefold_token/buy_sell_tft/pancakeswap.md @@ -22,7 +22,7 @@ Before you can buy TFT on Pancake Swap, there are a few prerequisites you need t - **BSC Wallet**: To interact with the BNB Smart Chain and Pancake Swap, you'll need a BSC-compatible wallet. [MetaMask](https://metamask.io/) is a popular option that supports BSC. Make sure to set up and secure your wallet before proceeding. -> [Set up a MetaMask Wallet](../storing_tft/metamask.md) +> [Set up a MetaMask Wallet](metamask.md) - **Connect BSC Wallet to Pancake Swap**: Visit the Pancake Swap website and connect your BSC wallet to your Pancake Swap account. @@ -34,7 +34,7 @@ Before you can buy TFT on Pancake Swap, there are a few prerequisites you need t ## Buy TFT on PancakeSwap -On Pancake Swap, you can easily convert your existing crypto assets on BSC network into TFT-BSC by using the Swap function. Once you have obtained TFT-BSC, you have the option to bridge it into TFT Native on the Stellar network by utilizing the [TFT-Stellar bridge](../tft_bridges/tfchain_stellar_bridge.md). Let's swap some tokens! +On Pancake Swap, you can easily convert your existing crypto assets on BSC network into TFT-BSC by using the Swap function. Once you have obtained TFT-BSC, you have the option to bridge it into TFT Native on the Stellar network by utilizing the [TFT-Stellar bridge](tfchain_stellar_bridge.md). Let's swap some tokens! Now that you're all set, go to your [PancakeSwap homepage](https://pancakeswap.finance/) and click on **Trade > Swap** button as shown. Please Make sure you're on **BNB Smart Chain** network. @@ -46,10 +46,10 @@ That's it! You have officially swapped BNB into TFT. ## Important Notice -If you are looking for ways to provide liquidity for TFT on BNB Smart Chain on Pancake Swap, you will find the according information [here](../liquidity/liquidity_pancake.md). +If you are looking for ways to provide liquidity for TFT on BNB Smart Chain on Pancake Swap, you will find the according information [here](liquidity_pancake.md). ## Disclaimer > The information provided in this tutorial or any related discussion is not intended as investment advice. The purpose is to provide educational and informational content only. Investing in cryptocurrencies or any other assets carries inherent risks, and it is crucial to conduct your own research and exercise caution before making any investment decisions. > -> **The ThreeFold Token (TFT)** is not to be considered as a traditional investment instrument. The value of cryptocurrencies can be volatile, and there are no guarantees of profits or returns. Always be aware of the risks involved and make informed choices based on your own assessment and understanding. We strongly encourage you to read our [full disclaimer](../../../knowledge_base/legal/disclaimer.md) and seek advice from a qualified financial professional if needed. +> **The ThreeFold Token (TFT)** is not to be considered as a traditional investment instrument. The value of cryptocurrencies can be volatile, and there are no guarantees of profits or returns. Always be aware of the risks involved and make informed choices based on your own assessment and understanding. We strongly encourage you to read our [full disclaimer](disclaimer.md) and seek advice from a qualified financial professional if needed. diff --git a/collections/threefold_token/buy_sell_tft/solar_buy.md b/collections/threefold_token/buy_sell_tft/solar_buy.md index 5155d82..546e58c 100644 --- a/collections/threefold_token/buy_sell_tft/solar_buy.md +++ b/collections/threefold_token/buy_sell_tft/solar_buy.md @@ -18,7 +18,7 @@ Welcome to our guide on how to buy TFT tokens (Stellar) via the [**Solar Wallet* - **XLM**: When getting TFT tokens using the Solar wallet, the process involves swapping XLM (Stellar Lumens) or other Stellar tokens into TFT. Please note that a certain amount of XLM funding is required to facilitate the sending and receiving of assets on the Stellar network. -- **Create a Wallet and Add TFT Asset**: Create a Solar Wallet Account via the mobile app or desktop, and add TFT as an asset. Read [**here**](../storing_tft/storing_tft.md) for the complete manual of how to create an Albedo Wallet. +- **Create a Wallet and Add TFT Asset**: Create a Solar Wallet Account via the mobile app or desktop, and add TFT as an asset. Read [**here**](storing_tft.md) for the complete manual of how to create an Albedo Wallet. ## Get Started diff --git a/collections/threefold_token/buy_sell_tft/stellarterm.md b/collections/threefold_token/buy_sell_tft/stellarterm.md index be4aba0..d7cf04c 100644 --- a/collections/threefold_token/buy_sell_tft/stellarterm.md +++ b/collections/threefold_token/buy_sell_tft/stellarterm.md @@ -21,7 +21,7 @@ In this tutorial, we will walk you through the process of buying TFT (ThreeFold *** ## Prerequisites -- **An external Stellar Wallet**: You should have a Stellar wallet of your choice set up for it to be connected to StellarTerm. Read [**here**](../storing_tft/storing_tft.md) for the complete list of Stellar Wallet you can use. +- **An external Stellar Wallet**: You should have a Stellar wallet of your choice set up for it to be connected to StellarTerm. Read [**here**](storing_tft.md) for the complete list of Stellar Wallet you can use. - **XLM**: When buying TFT tokens using StellarTerm, the process involves swapping XLM (Stellar Lumens) or other Stellar tokens into TFT. Please note that a certain amount of XLM funding is required to facilitate the sending and receiving of assets on the Stellar network. *** diff --git a/collections/threefold_token/buy_sell_tft/tft_getting_started.md b/collections/threefold_token/buy_sell_tft/tft_getting_started.md index 0667376..1c99c1a 100644 --- a/collections/threefold_token/buy_sell_tft/tft_getting_started.md +++ b/collections/threefold_token/buy_sell_tft/tft_getting_started.md @@ -13,7 +13,7 @@ ## Introduction -There are multiple ways to acquire TFT depending on your preferences and the blockchain network you choose to transact on. To start, you need to have a supporting wallet to store your TFTs. Read more about how to store your TFTs [here](../storing_tft/storing_tft.md) +There are multiple ways to acquire TFT depending on your preferences and the blockchain network you choose to transact on. To start, you need to have a supporting wallet to store your TFTs. Read more about how to store your TFTs [here](storing_tft.md) If you're interested in trading or swapping other cryptocurrencies for TFT, you can visit various crypto exchanges that list TFT as shown on te next section of this page. Additionally, you can leverage swapping services available on decentralized exchanges (DEXs) or automated market makers (AMMs) to exchange your tokens for TFT (BSC). @@ -50,4 +50,4 @@ The information provided in this tutorial or any related discussion is not inten ### Learn All the Methods -You can learn [all the different ways to transact TFT](./buy_sell_tft.md). \ No newline at end of file +You can learn [all the different ways to transact TFT](buy_sell_tft.md). \ No newline at end of file diff --git a/collections/threefold_token/buy_sell_tft/tft_lobstr/tft_lobstr.md b/collections/threefold_token/buy_sell_tft/tft_lobstr/tft_lobstr.md index 25fdda7..c25d172 100644 --- a/collections/threefold_token/buy_sell_tft/tft_lobstr/tft_lobstr.md +++ b/collections/threefold_token/buy_sell_tft/tft_lobstr/tft_lobstr.md @@ -6,5 +6,5 @@ We present here a quick guide to give you the essential information to purchase

Table of Contents

-- [Quick Guide](./tft_lobstr_short_guide.md) -- [Complete Guide](./tft_lobstr_complete_guide.md) \ No newline at end of file +- [Quick Guide](tft_lobstr_short_guide.md) +- [Complete Guide](tft_lobstr_complete_guide.md) \ No newline at end of file diff --git a/collections/threefold_token/buy_sell_tft/tft_lobstr/tft_lobstr_complete_guide.md b/collections/threefold_token/buy_sell_tft/tft_lobstr/tft_lobstr_complete_guide.md index e1fd2f6..594ac56 100644 --- a/collections/threefold_token/buy_sell_tft/tft_lobstr/tft_lobstr_complete_guide.md +++ b/collections/threefold_token/buy_sell_tft/tft_lobstr/tft_lobstr_complete_guide.md @@ -17,7 +17,7 @@ In this guide, you'll learn how to buy ThreeFold Tokens with [Lobstr](https://lo Lobstr is an app for managing digital assets like TFT on the Stellar blockchain. In this case, we'll first obtain Stellar's native currency, Lumens (XLM) and swap them for TFT. -> Note that it is possible to do these steps without connecting the Lobstr wallet to the TF Connect App wallet (read [docs](./tft_lobstr_short_guide.md)). But doing this has a clear advantage: when we buy and swap on Lobstr, the TFT is directly accessible on the TF Connect app wallet. +> Note that it is possible to do these steps without connecting the Lobstr wallet to the TF Connect App wallet (read [docs](tft_lobstr_short_guide.md)). But doing this has a clear advantage: when we buy and swap on Lobstr, the TFT is directly accessible on the TF Connect app wallet. ## Download the App and Create an Account @@ -197,4 +197,4 @@ You can now use your TFT to deploy workloads on the Threefold Grid. > The information provided in this tutorial or any related discussion is not intended as investment advice. The purpose is to provide educational and informational content only. Investing in cryptocurrencies or any other assets carries inherent risks, and it is crucial to conduct your own research and exercise caution before making any investment decisions. > -> **The ThreeFold Token (TFT)** is not to be considered as a traditional investment instrument. The value of cryptocurrencies can be volatile, and there are no guarantees of profits or returns. Always be aware of the risks involved and make informed choices based on your own assessment and understanding. We strongly encourage you to read our [full disclaimer](../../../../knowledge_base/legal/disclaimer.md) and seek advice from a qualified financial professional if needed. +> **The ThreeFold Token (TFT)** is not to be considered as a traditional investment instrument. The value of cryptocurrencies can be volatile, and there are no guarantees of profits or returns. Always be aware of the risks involved and make informed choices based on your own assessment and understanding. We strongly encourage you to read our [full disclaimer](disclaimer.md) and seek advice from a qualified financial professional if needed. diff --git a/collections/threefold_token/buy_sell_tft/tft_lobstr/tft_lobstr_short_guide.md b/collections/threefold_token/buy_sell_tft/tft_lobstr/tft_lobstr_short_guide.md index eb1d86e..fa51212 100644 --- a/collections/threefold_token/buy_sell_tft/tft_lobstr/tft_lobstr_short_guide.md +++ b/collections/threefold_token/buy_sell_tft/tft_lobstr/tft_lobstr_short_guide.md @@ -73,4 +73,4 @@ When you're finished you'll see a screen that says **Swap completed**. Congrats, > The information provided in this tutorial or any related discussion is not intended as investment advice. The purpose is to provide educational and informational content only. Investing in cryptocurrencies or any other assets carries inherent risks, and it is crucial to conduct your own research and exercise caution before making any investment decisions. > -> **The ThreeFold Token (TFT)** is not to be considered as a traditional investment instrument. The value of cryptocurrencies can be volatile, and there are no guarantees of profits or returns. Always be aware of the risks involved and make informed choices based on your own assessment and understanding. We strongly encourage you to read our [full disclaimer](../../../../knowledge_base/legal/definitions_legal.md) and seek advice from a qualified financial professional if needed. \ No newline at end of file +> **The ThreeFold Token (TFT)** is not to be considered as a traditional investment instrument. The value of cryptocurrencies can be volatile, and there are no guarantees of profits or returns. Always be aware of the risks involved and make informed choices based on your own assessment and understanding. We strongly encourage you to read our [full disclaimer](definitions_legal.md) and seek advice from a qualified financial professional if needed. \ No newline at end of file diff --git a/collections/threefold_token/buy_sell_tft/tft_lobstr/tft_lobstr_short_guide_archive.md b/collections/threefold_token/buy_sell_tft/tft_lobstr/tft_lobstr_short_guide_archive.md index 7d30e5e..fb6edf7 100644 --- a/collections/threefold_token/buy_sell_tft/tft_lobstr/tft_lobstr_short_guide_archive.md +++ b/collections/threefold_token/buy_sell_tft/tft_lobstr/tft_lobstr_short_guide_archive.md @@ -55,4 +55,4 @@ You can choose to fullfill sell orders, or create your own buy order. Once the b > The information provided in this tutorial or any related discussion is not intended as investment advice. The purpose is to provide educational and informational content only. Investing in cryptocurrencies or any other assets carries inherent risks, and it is crucial to conduct your own research and exercise caution before making any investment decisions. > -> **The ThreeFold Token (TFT)** is not to be considered as a traditional investment instrument. The value of cryptocurrencies can be volatile, and there are no guarantees of profits or returns. Always be aware of the risks involved and make informed choices based on your own assessment and understanding. We strongly encourage you to read our [full disclaimer](../../../wiki/disclaimer.md) and seek advice from a qualified financial professional if needed. +> **The ThreeFold Token (TFT)** is not to be considered as a traditional investment instrument. The value of cryptocurrencies can be volatile, and there are no guarantees of profits or returns. Always be aware of the risks involved and make informed choices based on your own assessment and understanding. We strongly encourage you to read our [full disclaimer](disclaimer.md) and seek advice from a qualified financial professional if needed. diff --git a/collections/threefold_token/buy_sell_tft/tft_metamask/tft_metamask.md b/collections/threefold_token/buy_sell_tft/tft_metamask/tft_metamask.md index 99fea4c..b769a65 100644 --- a/collections/threefold_token/buy_sell_tft/tft_metamask/tft_metamask.md +++ b/collections/threefold_token/buy_sell_tft/tft_metamask/tft_metamask.md @@ -88,4 +88,4 @@ When using Uniswap, paste the TFT token address in the field `Select a token` to > The information provided in this tutorial or any related discussion is not intended as investment advice. The purpose is to provide educational and informational content only. Investing in cryptocurrencies or any other assets carries inherent risks, and it is crucial to conduct your own research and exercise caution before making any investment decisions. > -> **The ThreeFold Token (TFT)** is not to be considered as a traditional investment instrument. The value of cryptocurrencies can be volatile, and there are no guarantees of profits or returns. Always be aware of the risks involved and make informed choices based on your own assessment and understanding. We strongly encourage you to read our [full disclaimer](../../../../knowledge_base/legal/disclaimer.md) and seek advice from a qualified financial professional if needed. \ No newline at end of file +> **The ThreeFold Token (TFT)** is not to be considered as a traditional investment instrument. The value of cryptocurrencies can be volatile, and there are no guarantees of profits or returns. Always be aware of the risks involved and make informed choices based on your own assessment and understanding. We strongly encourage you to read our [full disclaimer](disclaimer.md) and seek advice from a qualified financial professional if needed. \ No newline at end of file diff --git a/collections/threefold_token/liquidity/liquidity_1inch.md b/collections/threefold_token/liquidity/liquidity_1inch.md index 99845ad..2eb3956 100644 --- a/collections/threefold_token/liquidity/liquidity_1inch.md +++ b/collections/threefold_token/liquidity/liquidity_1inch.md @@ -24,7 +24,7 @@ BBefore you can buy TFT on 1inch.io, there are a few prerequisites you need to f - **BSC Wallet**: To interact with the Binance Smart Chain and 1inch.io, you'll need a BSC-compatible wallet. [MetaMask](https://metamask.io/) is a popular option that supports BSC. Make sure to set up and secure your wallet before proceeding. On this tutorial, we will use Metamask as our connecting wallet. -> [Set up a Metamask Wallet](../storing_tft/metamask.md) +> [Set up a Metamask Wallet](metamask.md) - **Get BNB Tokens**: As the native cryptocurrency of Binance Smart Chain, BNB is required to pay for transaction fees on the network. You will need to have Ensure you have some BNB tokens in your BSC wallet to cover these fees when buying TFT on 1inch.io. Read [this tutorial](https://fortunly.com/articles/how-to-buy-bnb/) to know where you can buy BNB and transfer them to your BSC Wallet. @@ -76,4 +76,4 @@ It's important to note that being a liquidity provider involves certain risks, s > The information provided in this tutorial or any related discussion is not intended as investment advice. The purpose is to provide educational and informational content only. Investing in cryptocurrencies or any other assets carries inherent risks, and it is crucial to conduct your own research and exercise caution before making any investment decisions. > -> **The ThreeFold Token (TFT)** is not to be considered as a traditional investment instrument. The value of cryptocurrencies can be volatile, and there are no guarantees of profits or returns. Always be aware of the risks involved and make informed choices based on your own assessment and understanding. We strongly encourage you to read our [full disclaimer](../../../knowledge_base/legal/disclaimer.md) and seek advice from a qualified financial professional if needed. +> **The ThreeFold Token (TFT)** is not to be considered as a traditional investment instrument. The value of cryptocurrencies can be volatile, and there are no guarantees of profits or returns. Always be aware of the risks involved and make informed choices based on your own assessment and understanding. We strongly encourage you to read our [full disclaimer](disclaimer.md) and seek advice from a qualified financial professional if needed. diff --git a/collections/threefold_token/liquidity/liquidity_albedo.md b/collections/threefold_token/liquidity/liquidity_albedo.md index 7528868..ab31c25 100644 --- a/collections/threefold_token/liquidity/liquidity_albedo.md +++ b/collections/threefold_token/liquidity/liquidity_albedo.md @@ -53,6 +53,6 @@ It's important to note that being a liquidity provider involves certain risks, s > The information provided in this tutorial or any related discussion is not intended as investment advice. The purpose is to provide educational and informational content only. Investing in cryptocurrencies or any other assets carries inherent risks, and it is crucial to conduct your own research and exercise caution before making any investment decisions. > -> **The ThreeFold Token (TFT)** is not to be considered as a traditional investment instrument. The value of cryptocurrencies can be volatile, and there are no guarantees of profits or returns. Always be aware of the risks involved and make informed choices based on your own assessment and understanding. We strongly encourage you to read our [full disclaimer](../../../knowledge_base/legal/disclaimer.md) and seek advice from a qualified financial professional if needed. +> **The ThreeFold Token (TFT)** is not to be considered as a traditional investment instrument. The value of cryptocurrencies can be volatile, and there are no guarantees of profits or returns. Always be aware of the risks involved and make informed choices based on your own assessment and understanding. We strongly encourage you to read our [full disclaimer](disclaimer.md) and seek advice from a qualified financial professional if needed. diff --git a/collections/threefold_token/liquidity/liquidity_pancake.md b/collections/threefold_token/liquidity/liquidity_pancake.md index b2d378f..52b747e 100644 --- a/collections/threefold_token/liquidity/liquidity_pancake.md +++ b/collections/threefold_token/liquidity/liquidity_pancake.md @@ -24,7 +24,7 @@ Before you can become a TFT(BSC) LP on Pancake Swap, there are a few prerequisi - **BSC Wallet**: To interact with the Binance Smart Chain and Pancake Swap, you'll need a BSC-compatible wallet. [MetaMask](https://metamask.io/) is a popular option that supports BSC. Make sure to set up and secure your wallet before proceeding. -> [Set up a Metamask Wallet](../storing_tft/metamask.md) +> [Set up a Metamask Wallet](metamask.md) - **Connect BSC Wallet TO Pancake Swap**: Visit the Pancake Swap website and connect your BSC wallet to your Pancake Swap account. @@ -70,4 +70,4 @@ It's important to note that being a liquidity provider involves certain risks, s > The information provided in this tutorial or any related discussion is not intended as investment advice. The purpose is to provide educational and informational content only. Investing in cryptocurrencies or any other assets carries inherent risks, and it is crucial to conduct your own research and exercise caution before making any investment decisions. > -> **The ThreeFold Token (TFT)** is not to be considered as a traditional investment instrument. The value of cryptocurrencies can be volatile, and there are no guarantees of profits or returns. Always be aware of the risks involved and make informed choices based on your own assessment and understanding. We strongly encourage you to read our [full disclaimer](../../../knowledge_base/legal/disclaimer.md) and seek advice from a qualified financial professional if needed. +> **The ThreeFold Token (TFT)** is not to be considered as a traditional investment instrument. The value of cryptocurrencies can be volatile, and there are no guarantees of profits or returns. Always be aware of the risks involved and make informed choices based on your own assessment and understanding. We strongly encourage you to read our [full disclaimer](disclaimer.md) and seek advice from a qualified financial professional if needed. diff --git a/collections/threefold_token/liquidity/liquidity_readme.md b/collections/threefold_token/liquidity/liquidity_readme.md index 3a1d592..f7614e4 100644 --- a/collections/threefold_token/liquidity/liquidity_readme.md +++ b/collections/threefold_token/liquidity/liquidity_readme.md @@ -2,9 +2,9 @@

Table of Contents

-- [Liquidity Provider on Pancake Swap](./liquidity_pancake.md) -- [Liquidity Provider on 1inch.io](./liquidity_1inch.md) -- [Liquidity Provider on Albedo](./liquidity_albedo.md) +- [Liquidity Provider on Pancake Swap](liquidity_pancake.md) +- [Liquidity Provider on 1inch.io](liquidity_1inch.md) +- [Liquidity Provider on Albedo](liquidity_albedo.md) *** diff --git a/collections/threefold_token/storing_tft/albedo_store.md b/collections/threefold_token/storing_tft/albedo_store.md index b849c0b..e8a014b 100644 --- a/collections/threefold_token/storing_tft/albedo_store.md +++ b/collections/threefold_token/storing_tft/albedo_store.md @@ -26,7 +26,7 @@ In this tutorial, we will walk you through the process of storing Stellar TFT to There are multiple ways to acquire XLM and send it to your wallet. One option is to utilize XLM-supported exchanges, which provide a convenient platform for purchasing XLM. Click [here](https://www.coinlore.com/coin/stellar/exchanges) to access a comprehensive list of exchanges that support XLM. -As an example, we have created a tutorial specifically focusing on how to buy XLM on Coinbase, one of the popular cryptocurrency exchanges. This tutorial provides step-by-step instructions on the process of purchasing XLM on **Coinbase Exchange**. You can find the tutorial [**here**](../buy_sell_tft/coinbase_xlm.md). +As an example, we have created a tutorial specifically focusing on how to buy XLM on Coinbase, one of the popular cryptocurrency exchanges. This tutorial provides step-by-step instructions on the process of purchasing XLM on **Coinbase Exchange**. You can find the tutorial [**here**](coinbase_xlm.md). *** ## Get Started @@ -83,7 +83,7 @@ You can also transfer TFT to another stellar wallet by clicking the '**Transfer* *** ## Important Notice -If you are looking for ways to get / purchase TFT (Stellar) on Albedo, you will find the according information [here](../buy_sell_tft/albedo_buy.md). +If you are looking for ways to get / purchase TFT (Stellar) on Albedo, you will find the according information [here](albedo_buy.md). *** ## Disclaimer diff --git a/collections/threefold_token/storing_tft/btc_alpha_deposit.md b/collections/threefold_token/storing_tft/btc_alpha_deposit.md index bd65ebc..3bbab8d 100644 --- a/collections/threefold_token/storing_tft/btc_alpha_deposit.md +++ b/collections/threefold_token/storing_tft/btc_alpha_deposit.md @@ -20,7 +20,7 @@ BTC-Alpha is a cryptocurrency exchange platform that provides a secure and user- In this guide, we will walk you through the process of storing TFT on the BTC-Alpha exchange by depositing TFT from your external wallet to your BTC-Alpha Exchange. -> If you are looking for ways to get / purchase TFT (Stellar) on BTC-Alpha by trading, you will find the according information [here](../buy_sell_tft/btc_alpha.md). +> If you are looking for ways to get / purchase TFT (Stellar) on BTC-Alpha by trading, you will find the according information [here](btc_alpha.md). *** ## Prerequisites @@ -120,7 +120,7 @@ To explore different TFT wallet options and choose the one that best suits your Remember, maintaining control over your private keys and taking precautions to protect your wallet information are essential for safeguarding your TFT investments. -If you are looking for ways to get / purchase TFT (Stellar) on BTC-Alpha by trading, you will find the according information [here](../buy_sell_tft/btc_alpha.md). +If you are looking for ways to get / purchase TFT (Stellar) on BTC-Alpha by trading, you will find the according information [here](btc_alpha.md). *** ## Disclaimer diff --git a/collections/threefold_token/storing_tft/hardware_wallet.md b/collections/threefold_token/storing_tft/hardware_wallet.md index a00c9f9..d0070b3 100644 --- a/collections/threefold_token/storing_tft/hardware_wallet.md +++ b/collections/threefold_token/storing_tft/hardware_wallet.md @@ -72,4 +72,4 @@ When it comes to choosing where to send your farming rewards, you simply need to > The information provided in this tutorial or any related discussion is not intended as investment advice. The purpose is to provide educational and informational content only. Investing in cryptocurrencies or any other assets carries inherent risks, and it is crucial to conduct your own research and exercise caution before making any investment decisions. > -> **The ThreeFold Token (TFT)** is not to be considered as a traditional investment instrument. The value of cryptocurrencies can be volatile, and there are no guarantees of profits or returns. Always be aware of the risks involved and make informed choices based on your own assessment and understanding. We strongly encourage you to read our [full disclaimer](../../../knowledge_base/legal/disclaimer.md) and seek advice from a qualified financial professional if needed. +> **The ThreeFold Token (TFT)** is not to be considered as a traditional investment instrument. The value of cryptocurrencies can be volatile, and there are no guarantees of profits or returns. Always be aware of the risks involved and make informed choices based on your own assessment and understanding. We strongly encourage you to read our [full disclaimer](disclaimer.md) and seek advice from a qualified financial professional if needed. diff --git a/collections/threefold_token/storing_tft/interstellar_store.md b/collections/threefold_token/storing_tft/interstellar_store.md index 3c85bd5..1c408d3 100644 --- a/collections/threefold_token/storing_tft/interstellar_store.md +++ b/collections/threefold_token/storing_tft/interstellar_store.md @@ -21,7 +21,7 @@ Interstellar is a decentralized exchange built on the Stellar network that enabl In this guide, we will walk you through the process of buying TFT on the Interstellar exchange, allowing you to participate in the vibrant Stellar ecosystem. -> If you are looking for ways to get / purchase TFT (Stellar) on Interstellar by trading, you will find the according information [here](../buy_sell_tft/interstellar.md). +> If you are looking for ways to get / purchase TFT (Stellar) on Interstellar by trading, you will find the according information [here](interstellar.md). ## Prerequisites @@ -29,7 +29,7 @@ In this guide, we will walk you through the process of buying TFT on the Interst If you already have some XLMs stored in another Stellar wallet or exchange, you could simply withdraw them to your new Interstellar account after you complete the signup process (we will explain how to do it later on). If not, there are multiple ways to acquire XLM and send it to your wallet. One option is to utilize XLM-supported exchanges, which provide a convenient platform for purchasing XLM. Click [**here**](https://www.coinlore.com/coin/stellar/exchanges) to access a comprehensive list of exchanges that support XLM. -As an example, we have created a tutorial specifically focusing on how to buy XLM on Coinbase, one of the popular cryptocurrency exchanges. This tutorial provides step-by-step instructions on the process of purchasing XLM on **Coinbase Exchange**. You can find the tutorial [**here**](../buy_sell_tft/coinbase_xlm.md). +As an example, we have created a tutorial specifically focusing on how to buy XLM on Coinbase, one of the popular cryptocurrency exchanges. This tutorial provides step-by-step instructions on the process of purchasing XLM on **Coinbase Exchange**. You can find the tutorial [**here**](coinbase_xlm.md). ## Get Started @@ -106,7 +106,7 @@ You can now store TFT into your Interstellar account by clicking on the TFT Asse ## Purchase TFT on Interstellar -If you are looking for ways to get / purchase TFT (Stellar) on Interstellar by trading, you will find the according information [here](../buy_sell_tft/interstellar.md). +If you are looking for ways to get / purchase TFT (Stellar) on Interstellar by trading, you will find the according information [here](interstellar.md). ## Disclaimer diff --git a/collections/threefold_token/storing_tft/lobstr_wallet.md b/collections/threefold_token/storing_tft/lobstr_wallet.md index f43f174..3234d86 100644 --- a/collections/threefold_token/storing_tft/lobstr_wallet.md +++ b/collections/threefold_token/storing_tft/lobstr_wallet.md @@ -93,11 +93,11 @@ You can now store TFT by depositing it from another wallet on your TFT Asset pag ## Important Notice -If you are looking for ways to get / purchase TFT (Stellar) on Lobstr Wallet by trading or swapping, you will find the according information [here](../buy_sell_tft/tft_lobstr/tft_lobstr_complete_guide.md). +If you are looking for ways to get / purchase TFT (Stellar) on Lobstr Wallet by trading or swapping, you will find the according information [here](tft_lobstr_complete_guide.md). ## Disclaimer > The information provided in this tutorial or any related discussion is not intended as investment advice. The purpose is to provide educational and informational content only. Investing in cryptocurrencies or any other assets carries inherent risks, and it is crucial to conduct your own research and exercise caution before making any investment decisions. > -> **The ThreeFold Token (TFT)** is not to be considered as a traditional investment instrument. The value of cryptocurrencies can be volatile, and there are no guarantees of profits or returns. Always be aware of the risks involved and make informed choices based on your own assessment and understanding. We strongly encourage you to read our [full disclaimer](../../../knowledge_base/legal/disclaimer.md) and seek advice from a qualified financial professional if needed. +> **The ThreeFold Token (TFT)** is not to be considered as a traditional investment instrument. The value of cryptocurrencies can be volatile, and there are no guarantees of profits or returns. Always be aware of the risks involved and make informed choices based on your own assessment and understanding. We strongly encourage you to read our [full disclaimer](disclaimer.md) and seek advice from a qualified financial professional if needed. diff --git a/collections/threefold_token/storing_tft/metamask.md b/collections/threefold_token/storing_tft/metamask.md index a70c8d6..cebcfcf 100644 --- a/collections/threefold_token/storing_tft/metamask.md +++ b/collections/threefold_token/storing_tft/metamask.md @@ -131,12 +131,12 @@ To deposit TFT tokens to your MetaMask BSC wallet, **you can only initiate a tra For example, you cannot transfer TFT tokens directly from the TFConnect app to MetaMask, because TFT tokens on TFT Connect operate on the Stellar network, while TFT on MetaMask lives on Binance Smart Chain (BSC) Network. -But don't worry! You can still swap your Stellar TFT into BSC TFT and vice versa by bridging them using our [TFT BSC Bridge](https://bridge.bsc.threefold.io/). See tutorial [here](../tft_bridges/bsc_stellar_bridge.md). +But don't worry! You can still swap your Stellar TFT into BSC TFT and vice versa by bridging them using our [TFT BSC Bridge](https://bridge.bsc.threefold.io/). See tutorial [here](bsc_stellar_bridge.md). -You can also buy TFTs on BSC-supported exchangers like [Pancake Swap](https://pancakeswap.finance/). See tutorial [here](../buy_sell_tft/pancakeswap.md) +You can also buy TFTs on BSC-supported exchangers like [Pancake Swap](https://pancakeswap.finance/). See tutorial [here](pancakeswap.md) ## Disclaimer > The information provided in this tutorial or any related discussion is not intended as investment advice. The purpose is to provide educational and informational content only. Investing in cryptocurrencies or any other assets carries inherent risks, and it is crucial to conduct your own research and exercise caution before making any investment decisions. > -> **The ThreeFold Token (TFT)** is not to be considered as a traditional investment instrument. The value of cryptocurrencies can be volatile, and there are no guarantees of profits or returns. Always be aware of the risks involved and make informed choices based on your own assessment and understanding. We strongly encourage you to read our [full disclaimer](../../../knowledge_base/legal/disclaimer.md) and seek advice from a qualified financial professional if needed. +> **The ThreeFold Token (TFT)** is not to be considered as a traditional investment instrument. The value of cryptocurrencies can be volatile, and there are no guarantees of profits or returns. Always be aware of the risks involved and make informed choices based on your own assessment and understanding. We strongly encourage you to read our [full disclaimer](disclaimer.md) and seek advice from a qualified financial professional if needed. diff --git a/collections/threefold_token/storing_tft/solar_wallet.md b/collections/threefold_token/storing_tft/solar_wallet.md index 3cd8d62..9ab713a 100644 --- a/collections/threefold_token/storing_tft/solar_wallet.md +++ b/collections/threefold_token/storing_tft/solar_wallet.md @@ -24,7 +24,7 @@ Welcome to our guide on how to store TFT tokens (Stellar) via the [**Solar Walle There are multiple ways to acquire XLM and send it to your wallet. One option is to utilize XLM-supported exchanges, which provide a convenient platform for purchasing XLM. Click [**here**](https://www.coinlore.com/coin/stellar/exchanges) to access a comprehensive list of exchanges that support XLM. -As an example, we have created a tutorial specifically focusing on how to buy XLM on Coinbase, one of the popular cryptocurrency exchanges. This tutorial provides step-by-step instructions on the process of purchasing XLM on **Coinbase Exchange**. You can find the tutorial [**here**](../buy_sell_tft/coinbase_xlm.md). +As an example, we have created a tutorial specifically focusing on how to buy XLM on Coinbase, one of the popular cryptocurrency exchanges. This tutorial provides step-by-step instructions on the process of purchasing XLM on **Coinbase Exchange**. You can find the tutorial [**here**](coinbase_xlm.md). *** ## Get Started @@ -112,7 +112,7 @@ You can also transfer TFT to another stellar wallet by clicking the '**Send**' i *** ## Important Notice -If you are looking for ways to get / purchase TFT (Stellar) on Solar Wallet, you will find the according information [here](../buy_sell_tft/solar_buy.md). +If you are looking for ways to get / purchase TFT (Stellar) on Solar Wallet, you will find the according information [here](solar_buy.md). *** ## Disclaimer diff --git a/collections/threefold_token/storing_tft/storing_tft.md b/collections/threefold_token/storing_tft/storing_tft.md index 7d05dd6..4931f0d 100644 --- a/collections/threefold_token/storing_tft/storing_tft.md +++ b/collections/threefold_token/storing_tft/storing_tft.md @@ -10,7 +10,7 @@ If TFTs are issued on the Stellar blockchain, users can opt to store them in Ste

Table of Contents

-- [ThreeFold Connect App (Stellar)](./tf_connect_app.md) -- [Lobstr Wallet (Stellar)](./lobstr_wallet.md) -- [MetaMask (BSC & ETH)](./metamask.md) -- [Hardware Wallet](./hardware_wallet.md) \ No newline at end of file +- [ThreeFold Connect App (Stellar)](tf_connect_app.md) +- [Lobstr Wallet (Stellar)](lobstr_wallet.md) +- [MetaMask (BSC & ETH)](metamask.md) +- [Hardware Wallet](hardware_wallet.md) \ No newline at end of file diff --git a/collections/threefold_token/storing_tft/tf_connect_app.md b/collections/threefold_token/storing_tft/tf_connect_app.md index 03bcdda..afd860c 100644 --- a/collections/threefold_token/storing_tft/tf_connect_app.md +++ b/collections/threefold_token/storing_tft/tf_connect_app.md @@ -303,10 +303,10 @@ To generate the QR Code, select the chain you want to use, Stellar or TFChain, e ### Send TFT to Hardware Wallet on Stellar Blockchain -Before sending TFT to a hardware wallet, make sure the hardware wallet has a TFT trustline on the Stellar Blockchain. For more information, read [this section](./hardware_wallet.md). +Before sending TFT to a hardware wallet, make sure the hardware wallet has a TFT trustline on the Stellar Blockchain. For more information, read [this section](hardware_wallet.md). ## Disclaimer > The information provided in this tutorial or any related discussion is not intended as investment advice. The purpose is to provide educational and informational content only. Investing in cryptocurrencies or any other assets carries inherent risks, and it is crucial to conduct your own research and exercise caution before making any investment decisions. > -> **The ThreeFold Token (TFT)** is not to be considered as a traditional investment instrument. The value of cryptocurrencies can be volatile, and there are no guarantees of profits or returns. Always be aware of the risks involved and make informed choices based on your own assessment and understanding. We strongly encourage you to read our [full disclaimer](../../../knowledge_base/legal/disclaimer.md) and seek advice from a qualified financial professional if needed. +> **The ThreeFold Token (TFT)** is not to be considered as a traditional investment instrument. The value of cryptocurrencies can be volatile, and there are no guarantees of profits or returns. Always be aware of the risks involved and make informed choices based on your own assessment and understanding. We strongly encourage you to read our [full disclaimer](disclaimer.md) and seek advice from a qualified financial professional if needed. diff --git a/collections/threefold_token/storing_tft/trustwallet.md b/collections/threefold_token/storing_tft/trustwallet.md index bbd044d..a169e8e 100644 --- a/collections/threefold_token/storing_tft/trustwallet.md +++ b/collections/threefold_token/storing_tft/trustwallet.md @@ -69,9 +69,9 @@ To deposit TFT tokens to your Trust BSC wallet, **you can only initiate a transf For example, you cannot transfer TFT tokens directly from the TFConnect app to MetaMask, because TFT on TFT Connect Wallet operate on the Stellar network, while TFT on MetaMask lives on Binance Smart Chain (BSC) Network. -But don't worry! You can still swap your Stellar TFT into BSC TFT and vice versa by bridging them using our [Stellar-BSC Bridge](https://bridge.bsc.threefold.io/). See tutorial [here](../tft_bridges/bsc_stellar_bridge.md). +But don't worry! You can still swap your Stellar TFT into BSC TFT and vice versa by bridging them using our [Stellar-BSC Bridge](https://bridge.bsc.threefold.io/). See tutorial [here](bsc_stellar_bridge.md). -You can also buy and swap TFTs on BSC-supported exchangers by connecting your Trust Wallet to platforms like [Pancake Swap](https://pancakeswap.finance/). See the tutorial [here](../buy_sell_tft/pancakeswap.md) +You can also buy and swap TFTs on BSC-supported exchangers by connecting your Trust Wallet to platforms like [Pancake Swap](https://pancakeswap.finance/). See the tutorial [here](pancakeswap.md) *** ## Disclaimer diff --git a/collections/threefold_token/tft_bridges/bsc_stellar_bridge.md b/collections/threefold_token/tft_bridges/bsc_stellar_bridge.md index 88f5152..bd76702 100644 --- a/collections/threefold_token/tft_bridges/bsc_stellar_bridge.md +++ b/collections/threefold_token/tft_bridges/bsc_stellar_bridge.md @@ -109,7 +109,7 @@ In this method, you use the Bridge directly. Thus, it is normal if you do not se ## Bridge Fees -To learn more about the bridge fees, read [this documentation](../transaction_fees.md). +To learn more about the bridge fees, read [this documentation](transaction_fees.md). ## Questions and Feedback diff --git a/collections/threefold_token/tft_bridges/tfchain_stellar_bridge.md b/collections/threefold_token/tft_bridges/tfchain_stellar_bridge.md index a09fd29..ff75ea6 100644 --- a/collections/threefold_token/tft_bridges/tfchain_stellar_bridge.md +++ b/collections/threefold_token/tft_bridges/tfchain_stellar_bridge.md @@ -13,7 +13,7 @@ We present here the general steps to use the TFChain-Stellar Bridge. Note that the only difference between using the Main net or Test net TFChain-Stellar bridge lies in the ThreeFold Dashboard URL. -Read the [Dashboard section](../../dashboard/tfchain/tf_token_bridge.md) for more information. +Read the [Dashboard section](tf_token_bridge.md) for more information. @@ -35,7 +35,7 @@ Note: If you are on ThreeFold Connect App, you can export your account to the Po ## Bridge Fees -To learn more about the bridge fees, read [this documentation](../transaction_fees.md). +To learn more about the bridge fees, read [this documentation](transaction_fees.md). ## Questions and Feedback diff --git a/collections/threefold_token/tft_bridges/tft_bridges.md b/collections/threefold_token/tft_bridges/tft_bridges.md index 509c380..99b47c5 100644 --- a/collections/threefold_token/tft_bridges/tft_bridges.md +++ b/collections/threefold_token/tft_bridges/tft_bridges.md @@ -2,11 +2,11 @@

Table of Contents

-- [TFChain-Stellar Bridge](./tfchain_stellar_bridge.md) -- [BSC-Stellar Bridge](./bsc_stellar_bridge.md) - - [BSC-Stellar Bridge Verification](./bsc_stellar_bridge_verification.md) -- [Ethereum-Stellar Bridge](./tft_ethereum/tft_ethereum.md) -- [Bridge Fees](../transaction_fees.md) +- [TFChain-Stellar Bridge](tfchain_stellar_bridge.md) +- [BSC-Stellar Bridge](bsc_stellar_bridge.md) + - [BSC-Stellar Bridge Verification](bsc_stellar_bridge_verification.md) +- [Ethereum-Stellar Bridge](tft_ethereum.md) +- [Bridge Fees](transaction_fees.md) *** @@ -26,10 +26,10 @@ graph LR B((Stellar Chain)) === id3(Stellar / BSC Bridge) === E((Binance Smart Chain)); B((Stellar Chain)) === id4(Stellar / Eth Bridge) === D((Ethereum Chain)); - click id1 "./tfchain_stellar_bridge.html" - click id2 "./tfchain_stellar_bridge.html" - click id3 "./bsc_stellar_bridge.html" - click id4 "./tft_ethereum/tft_ethereum.html" + click id1 "tfchain_stellar_bridge.html" + click id2 "tfchain_stellar_bridge.html" + click id3 "bsc_stellar_bridge.html" + click id4 "tft_ethereum.html" ``` @@ -39,16 +39,16 @@ The links to the bridges for TFT are the following: * Stellar-Ethereum Bridge * This bridge is accessible at the following link: [https://bridge.eth.threefold.io/](https://bridge.eth.threefold.io/) - * Read [this guide](./tft_ethereum/tft_ethereum.md) for more information + * Read [this guide](tft_ethereum.md) for more information * Stellar-BSC Bridge * This bridge is accessible at the following link: [https://bridge.bsc.threefold.io/](https://bridge.bsc.threefold.io/) - * Read [this guide](./bsc_stellar_bridge.html) for more information + * Read [this guide](bsc_stellar_bridge.html) for more information * The TFChain Main net Bridge * This bridge is accessible on the ThreeFold Main Net Dashboard: [https://dashboard.grid.tf/](https://dashboard.grid.tf/). - * Read [this guide](./tfchain_stellar_bridge.html) for more information + * Read [this guide](tfchain_stellar_bridge.html) for more information * The TFChain Test net Bridge * This bridge is accessible on the ThreeFold Test Net Dashboard: [https://dashboard.test.grid.tf/](https://dashboard.test.grid.tf/). - * Read [this guide](./tfchain_stellar_bridge.html) for more information + * Read [this guide](tfchain_stellar_bridge.html) for more information ## Chains Functions diff --git a/collections/threefold_token/tft_bridges/tft_ethereum/tft_ethereum.md b/collections/threefold_token/tft_bridges/tft_ethereum/tft_ethereum.md index def5d6a..5927477 100644 --- a/collections/threefold_token/tft_bridges/tft_ethereum/tft_ethereum.md +++ b/collections/threefold_token/tft_bridges/tft_ethereum/tft_ethereum.md @@ -29,7 +29,7 @@ To see the ThreeFold Token on Etherscan, check [this link](https://etherscan.io/ ## Bridge Fees -To learn more about the bridge fees, read [this documentation](../../transaction_fees.md). +To learn more about the bridge fees, read [this documentation](transaction_fees.md). ## Questions and Feedback diff --git a/collections/threefold_token/threefold_token.md b/collections/threefold_token/threefold_token.md index de0079f..fe252b9 100644 --- a/collections/threefold_token/threefold_token.md +++ b/collections/threefold_token/threefold_token.md @@ -21,7 +21,7 @@ The ThreeFold Token (TFT) is a decentralized digital currency used to buy autono 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](../../knowledge_base/about/token_overview/token_overview.md) +> [Get an overview of the ThreeFold token](about:token_overview.md) ## Chains with TFT @@ -36,60 +36,60 @@ TFT lives on 4 different chains: TFChain, Stellar chain, Ethereum chain and Bina The TFT contract address on different chains are the following: - [TFT Contract address on Stellar](https://stellarchain.io/assets/TFT-GBOVQKJYHXRR3DX6NOX2RRYFRCUMSADGDESTDNBDS6CDVLGVESRTAC47) - - ``` + ``` TFT-GBOVQKJYHXRR3DX6NOX2RRYFRCUMSADGDESTDNBDS6CDVLGVESRTAC47 ``` - [TFT Contract address on Ethereum](https://etherscan.io/token/0x395E925834996e558bdeC77CD648435d620AfB5b) - - ``` + ``` 0x395E925834996e558bdeC77CD648435d620AfB5b ``` - [TFT Contract address on BSC](https://bscscan.com/address/0x8f0FB159380176D324542b3a7933F0C2Fd0c2bbf) - - ``` + ``` 0x8f0FB159380176D324542b3a7933F0C2Fd0c2bbf ``` ## Bridges Between Chains -[Bridges](./tft_bridges/tft_bridges.md) are available to easily navigate between the chains. +[Bridges](tft_bridges.md) are available to easily navigate between the chains. -- [TFChain-Stellar Bridge](./tft_bridges/tfchain_stellar_bridge.html) -- [BSC-Stellar Bridge](./tft_bridges/bsc_stellar_bridge.html) -- [Ethereum-Stellar Bridge](./tft_bridges/tft_ethereum/tft_ethereum.html) +- [TFChain-Stellar Bridge](tfchain_stellar_bridge.md) +- [BSC-Stellar Bridge](bsc_stellar_bridge.md) +- [Ethereum-Stellar Bridge](tft_ethereum.md) ## Storing TFT -There are many ways to store TFT. The [TF Connect app wallet](./storing_tft/tf_connect_app.md) and a [hardwallet wallet](./storing_tft/hardware_wallet.md) are two of the many possibilities. +There are many ways to store TFT. The [TF Connect app wallet](tf_connect_app.md) and a [hardwallet wallet](hardware_wallet.md) are two of the many possibilities. -> [Easily Store TFT](./storing_tft/storing_tft.md) +> [Easily Store TFT](storing_tft.md) ## Buy and Sell TFT -You can [buy and sell TFT](./buy_sell_tft/buy_sell_tft.md) with cryptocurrencies on Stellar Chain, Ethereum Chain and BNB Smart Chain. +You can [buy and sell TFT](buy_sell_tft.md) with cryptocurrencies on Stellar Chain, Ethereum Chain and BNB Smart Chain. Using Lobstr is very effective to buy TFT with fiat or crypto in no time: -> [Get TFT: Quick Guide](./buy_sell_tft/tft_lobstr/tft_lobstr_short_guide.md) +> [Get TFT: Quick Guide](tft_lobstr_short_guide.md) ## Liquidity Provider (LP) A liquidity provider (LP) is an individual or entity that contributes liquidity to a decentralized exchange or automated market maker (AMM) platform -> [Become a Liquidity Provider](./liquidity/liquidity_readme.md) +> [Become a Liquidity Provider](liquidity_readme.md) ## Transaction Fees Each time transactions are done on chains, transaction fees apply. -> Learn about [Transaction Fees](./transaction_fees.md) +> Learn about [Transaction Fees](transaction_fees.md) ## Deploy on the TFGrid with TFT You can do almost anything on the TFGrid: as long as you're doing Linux stuff, ZOS got your back! -> [Get Started on the TFGrid](../system_administrators/getstarted/tfgrid3_getstarted.md) +> [Get Started on the TFGrid](system_administrators:tfgrid3_getstarted.md) ## Disclaimer > The information provided in this tutorial or any related discussion is not intended as investment advice. The purpose is to provide educational and informational content only. Investing in cryptocurrencies or any other assets carries inherent risks, and it is crucial to conduct your own research and exercise caution before making any investment decisions. > -> **The ThreeFold Token (TFT)** is not to be considered as a traditional investment instrument. The value of cryptocurrencies can be volatile, and there are no guarantees of profits or returns. Always be aware of the risks involved and make informed choices based on your own assessment and understanding. We strongly encourage you to read our [full disclaimer](../../knowledge_base/legal/disclaimer.md) and seek advice from a qualified financial professional if needed. \ No newline at end of file +> **The ThreeFold Token (TFT)** is not to be considered as a traditional investment instrument. The value of cryptocurrencies can be volatile, and there are no guarantees of profits or returns. Always be aware of the risks involved and make informed choices based on your own assessment and understanding. We strongly encourage you to read our [full disclaimer](disclaimer.md) and seek advice from a qualified financial professional if needed. \ No newline at end of file diff --git a/collections/values/values.md b/collections/values/values.md index 3c41eae..db54a9c 100644 --- a/collections/values/values.md +++ b/collections/values/values.md @@ -1,5 +1,5 @@ # Values -At ThreeFold, we have the planet and people first in mind. +We always have the planet and people first in mind. Anything we do needs to improve our planet's situation and help the people around us. \ No newline at end of file diff --git a/collections/web4/actor_based/actor_based_approach.md b/collections/web4/actor_based/actor_based_approach.md index bb0e994..74f0451 100644 --- a/collections/web4/actor_based/actor_based_approach.md +++ b/collections/web4/actor_based/actor_based_approach.md @@ -2,12 +2,8 @@ ![](img/twin_model.png) -'actor' driven pattern instead of a model first pattern. +We use an 'actor' driven pattern instead of a model first pattern. In such a pattern, the root model only holds essentials in its database, hence any necessary changes can be applied at the root. -The model can tap direct into knowledge (how to do certain things) by accessing the 'recipes'. 'Recipes' are the source code that can easily be adapted to any task. By using Domain Specific Language (DSL) it is easy to reuse recipes. - -> TODO: too dense, need more explanation - - +The model can tap direct into knowledge (how to do certain things) by accessing the 'recipes'. 'Recipes' are the source code that can easily be adapted to any task. By using Domain Specific Language (DSL) it is easy to reuse recipes. \ No newline at end of file diff --git a/collections/web4/freeflowself/freeflowself.md b/collections/web4/freeflowself/freeflowself.md index 21b7a79..3dd8db2 100644 --- a/collections/web4/freeflowself/freeflowself.md +++ b/collections/web4/freeflowself/freeflowself.md @@ -9,8 +9,6 @@ FreeFlow Self is your unique digital "self" - in other worlds, it is you in this FreeFlow Self guarantees that only you have access to your data - no one else. It encourages a trustful environment without any manipulation attempt from third parties. -> TODO: need more complete and easy to understand explanation, more practical - ## Link to 3Bot 3Bot is a first implementation of the FreeFlow Self, its rather technical and in heavy development at this stage. diff --git a/collections/why/countries_no_internet.md b/collections/why/countries_no_internet.md index 59f2da6..6dc569a 100644 --- a/collections/why/countries_no_internet.md +++ b/collections/why/countries_no_internet.md @@ -1,21 +1,15 @@ ![](fortune_no_internet.png) - # Many Countries Do Not Have Their Own Internet ![alt text](nointernet.png) - -The issue extends beyond countries lacking their own Internet infrastructure; a significant portion of the global population still lacks access to the Internet. +The issue extends beyond countries lacking their own Internet infrastructure: a significant portion of the global population still lacks access to the Internet. It is a must to democratize the Internet. -## IMMENSE LOSSES - -**BECAUSE OF THE CENTRALIZED MODEL** - -some companies have access to the data of hundreds -of millions of citizens, this makes us a product. +## The Centralized Model Leads to Immense Losses +Some companies have access to the data of hundreds of millions of citizens, this makes us a product. ![alt text](not_internet_losses.png) \ No newline at end of file diff --git a/collections/why/internet_human_right/internet_human_right.md b/collections/why/internet_human_right/internet_human_right.md index 3f6e35c..a202272 100644 --- a/collections/why/internet_human_right/internet_human_right.md +++ b/collections/why/internet_human_right/internet_human_right.md @@ -1,7 +1,7 @@ ![](img/humanityplanet.jpg) -# Why we do what we do +# Why We Do What We Do ## Internet Access is a Human Right diff --git a/collections/why/social_warming/social_warming.md b/collections/why/social_warming/social_warming.md index 7f8785c..ce90459 100644 --- a/collections/why/social_warming/social_warming.md +++ b/collections/why/social_warming/social_warming.md @@ -1,18 +1,17 @@ ![](img/social_warming.png) -## +5 billion people in survival mode +## +5 Billion People in Survival Mode ![](img/toabondance.png) -## Our Kids define our Future World +## Our Kids Define our Future World ![](img/world_behind.png) We are maybe too much focussed on what kind of world we will leave behind, rather than thinking about how we need to raise our kids so that they will treat our world differently. - -## Education is everything +## Education is Everything ![](img/africa_young.png) diff --git a/heroscript/duniayetu/book_collections.md b/heroscript/duniayetu/book_collections.md index a77e8e6..2381a8a 100644 --- a/heroscript/duniayetu/book_collections.md +++ b/heroscript/duniayetu/book_collections.md @@ -2,7 +2,7 @@ ```js -!!book.generate name:'duniayetu' title:'TFGrid Internet 4.0' +!!book.generate name:'duniayetu' title:'Dunia Yetu' url:'https://git.ourworld.tf/tfgrid/info_tfgrid/src/branch/main/books/duniayetu_dar' diff --git a/heroscript/manual/book_collections.md b/heroscript/manual/book_collections.md index a67ab09..0e6cb9a 100644 --- a/heroscript/manual/book_collections.md +++ b/heroscript/manual/book_collections.md @@ -22,15 +22,23 @@ !!doctree.add url:'https://git.ourworld.tf/tfgrid/info_tfgrid/src/branch/main/collections/about' !!doctree.add - url:'https://git.ourworld.tf/tfgrid/info_tfgrid/src/branch/main/collections/technology' + url:'https://git.ourworld.tf/tfgrid/info_tfgrid/src/branch/main/collections/tech' !!doctree.add - url:'https://git.ourworld.tf/tfgrid/info_tfgrid/src/branch/main/collections/manual_legal' + url:'https://git.ourworld.tf/tfgrid/info_tfgrid/src/branch/main/collections/legal' !!doctree.add url:'https://git.ourworld.tf/tfgrid/info_tfgrid/src/branch/main/collections/farming' !!doctree.add url:'https://git.ourworld.tf/tfgrid/info_tfgrid/src/branch/main/collections/cloud' !!doctree.add url:'https://git.ourworld.tf/tfgrid/info_tfgrid/src/branch/main/collections/collaboration' +!!doctree.add + url:'https://git.ourworld.tf/tfgrid/info_tfgrid/src/branch/main/collections/partners_utilization' + +!!doctree.add + url:'https://git.ourworld.tf/tfgrid/info_tfgrid/src/branch/main/collections/vindo' + +!!doctree.add + url:'https://git.ourworld.tf/tfgrid/info_tfgrid/src/branch/main/collections/mkondo' ```