diff --git a/collections/manual/knowledge_base/about/about.md b/collections/manual/knowledge_base/about/about.md new file mode 100644 index 0000000..ba76824 --- /dev/null +++ b/collections/manual/knowledge_base/about/about.md @@ -0,0 +1,13 @@ +

About

+ +This section of the manual covers information about ThreeFold, its history, its roadmap, its vision and more. + +It's a good place to start if you want to have an overview of ThreeFold since its beginning. + +

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 diff --git a/collections/manual/knowledge_base/about/bettertoken.md b/collections/manual/knowledge_base/about/bettertoken.md new file mode 100644 index 0000000..81ff291 --- /dev/null +++ b/collections/manual/knowledge_base/about/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/manual/knowledge_base/about/dao/dao.md b/collections/manual/knowledge_base/about/dao/dao.md new file mode 100644 index 0000000..61f6568 --- /dev/null +++ b/collections/manual/knowledge_base/about/dao/dao.md @@ -0,0 +1,55 @@ +

DAO

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Overview of a DAO](#overview-of-a-dao) +- [Comparisons](#comparisons) +- [DAO Rules](#dao-rules) +- [DAO and Blockchain](#dao-and-blockchain) + +*** + +## Introduction + +We present the main concept of a DAO. + +A DAO is a decentralized autonomous organization. To be more precise, this means the following: + +- Decentralized = Online, global, uncensorable. +- Autonomous = Self-governing. +- Organization = Coordination & collaboration around shared objectives. + +## Overview of a DAO + +DAOs are an effective and safe way to work with like-minded folks around the globe. + +Think of them like an internet-native business that's collectively owned and managed by its members. They have built-in treasuries that no one has the authority to access without the approval of the group. Decisions are governed by proposals and voting to ensure everyone in the organization has a voice. + +This opens up so many new opportunities for global collaboration and coordination. + +DAOs operate using smart contracts, which are essentially chunks of code that automatically execute whenever a set of criteria are met. These smart contracts establish the DAO’s rules. Those with a stake in a DAO then get voting rights and may influence how the organization operates by deciding on or creating new governance proposals. + +## Comparisons + +The following table provides some comparisons between a DAO and a traditional organization. + +| DAO | A traditional organization | +| ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | +| Usually flat, and fully democratized. | Usually hierarchical. | +| Voting required by members for any changes to be implemented. | Depending on structure, changes can be demanded from a sole party, or voting may be offered. | +| Votes tallied, and outcome implemented automatically without trusted intermediary. | If voting is allowed, votes are tallied internally, and the outcome of voting must be handled manually. | +| Services offered are handled automatically in a decentralized manner (for example distribution of philanthropic funds). | Requires human handling, or centrally controlled automation, prone to manipulation. | +| All activity is transparent and fully public. | Requires human handling, or centrally controlled automation, prone to manipulation. | + +*Info from https://ethereum.org/en/dao/, picture from https://cointelegraph.com/ethereum-for-beginners* + +## DAO Rules + +Decentralized autonomous organization (DAO), is an organization represented by rules encoded as a computer program that is transparent, controlled by the organization members and not influenced by a central government. A DAO's financial and voting transaction record and program rules are maintained on a blockchain. + +## DAO and Blockchain + +Decentralized autonomous organizations are typified by the use of blockchain technology to provide a secure digital ledger to track financial and other community interactions across the internet, hardened against forgery by trusted timestamping and dissemination of a distributed database. This approach eliminates the need to involve a mutually acceptable trusted third party in a transaction, simplifying the transaction. The costs of a blockchain-enabled transaction and of the associated data reporting may be substantially offset by the elimination of both the trusted third party and of the need for repetitive recording of contract exchanges in different records. For example, the blockchain data could, in principle and if regulatory structures permit it, replace public documents such as deeds and titles. In theory, a blockchain approach allows multiple cloud computing users to enter a loosely coupled peer-to-peer smart contract collaboration. + +*Info from [here](https://en.wikipedia.org/wiki/Decentralized_autonomous_organization)* \ No newline at end of file diff --git a/collections/manual/knowledge_base/about/dao/dao_info.md b/collections/manual/knowledge_base/about/dao/dao_info.md new file mode 100644 index 0000000..19aa1f8 --- /dev/null +++ b/collections/manual/knowledge_base/about/dao/dao_info.md @@ -0,0 +1,33 @@ + +![](img/dao_whatis_.jpg) + + +- Decentralized = Online, global, uncensorable. +- Autonomous = Self-governing. +- Organization = Coordination & collaboration around shared objectives. + +DAOs are an effective and safe way to work with like-minded folks around the globe. + +Think of them like an internet-native business that's collectively owned and managed by its members. They have built-in treasuries that no one has the authority to access without the approval of the group. Decisions are governed by proposals and voting to ensure everyone in the organization has a voice. + +This opens up so many new opportunities for global collaboration and coordination. + +DAOs operate using smart contracts, which are essentially chunks of code that automatically execute whenever a set of criteria are met. These smart contracts establish the DAO’s rules. Those with a stake in a DAO then get voting rights and may influence how the organization operates by deciding on or creating new governance proposals. + + +| DAO | A traditional organization | +| ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | +| Usually flat, and fully democratized. | Usually hierarchical. | +| Voting required by members for any changes to be implemented. | Depending on structure, changes can be demanded from a sole party, or voting may be offered. | +| Votes tallied, and outcome implemented automatically without trusted intermediary. | If voting is allowed, votes are tallied internally, and the outcome of voting must be handled manually. | +| Services offered are handled automatically in a decentralized manner (for example distribution of philanthropic funds). | Requires human handling, or centrally controlled automation, prone to manipulation. | +| All activity is transparent and fully public. | Requires human handling, or centrally controlled automation, prone to manipulation. | + +*Info from https://ethereum.org/en/dao/, picture from https://cointelegraph.com/ethereum-for-beginners* + +Decentralized autonomous organization (DAO), is an organization represented by rules encoded as a computer program that is transparent, controlled by the organization members and not influenced by a central government. A DAO's financial and voting transaction record and program rules are maintained on a blockchain. + +Decentralized autonomous organizations are typified by the use of blockchain technology to provide a secure digital ledger to track financial and other community interactions across the internet, hardened against forgery by trusted timestamping and dissemination of a distributed database. This approach eliminates the need to involve a mutually acceptable trusted third party in a transaction, simplifying the transaction. The costs of a blockchain-enabled transaction and of the associated data reporting may be substantially offset by the elimination of both the trusted third party and of the need for repetitive recording of contract exchanges in different records. For example, the blockchain data could, in principle and if regulatory structures permit it, replace public documents such as deeds and titles. In theory, a blockchain approach allows multiple cloud computing users to enter a loosely coupled peer-to-peer smart contract collaboration. + + + diff --git a/collections/manual/knowledge_base/about/dao/dao_more_info.md b/collections/manual/knowledge_base/about/dao/dao_more_info.md new file mode 100644 index 0000000..dc6599e --- /dev/null +++ b/collections/manual/knowledge_base/about/dao/dao_more_info.md @@ -0,0 +1,6 @@ +### More Info: + +- [ThreeFold DAO](@tfdao). +- [Why are DAO's important](@dao_why) +- [ThreeFold Validators](@validators_faq). +- [Decentralization Info](@decentralization). diff --git a/collections/manual/knowledge_base/about/dao/dao_why.md b/collections/manual/knowledge_base/about/dao/dao_why.md new file mode 100644 index 0000000..c5884f1 --- /dev/null +++ b/collections/manual/knowledge_base/about/dao/dao_why.md @@ -0,0 +1,97 @@ +# What is a decentralized autonomous organization, and how does a DAO work? + +![](img/dao_whatis_.jpg) + +A decentralized autonomous organization (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. + +A DAO works without hierarchical management and can have a large number of purposes. Freelancer networks where contracts pool their funds to pay for software subscriptions, charitable organizations where members approve donations and venture capital firms owned by a group are all possible with these organizations. + +Before moving on, it’s important to distinguish a DAO, an internet-native organization, from The DAO, one of the first such organizations ever created. The DAO was a project founded in 2016 that ultimately failed and led to a dramatic split of the Ethereum network. + +## How does a DAO work? + +As mentioned above, a DAO is an organization where decisions get made from the bottom-up; a collective of members owns the organization. There are various ways to participate in a DAO, usually through the ownership of a token. + +DAOs operate using smart contracts, which are essentially chunks of code that automatically execute whenever a set of criteria are met. Smart contracts are deployed on numerous blockchains nowadays, though Ethereum was the first to use them. + +These smart contracts establish the DAO’s rules. Those with a stake in a DAO then get voting rights and may influence how the organization operates by deciding on or creating new governance proposals. + +This model prevents DAOs from being spammed with proposals: A proposal will only pass once the majority of stakeholders approve it. How that majority is determined varies from DAO to DAO and is specified in the smart contracts. + +DAOs are fully autonomous and transparent. As they are built on open-source blockchains, anyone can view their code. Anyone can also audit their built-in treasuries, as the blockchain records all financial transactions. + +Typically, a DAO launch occurs in three major steps +Smart contract creation: First, a developer or group of developers must create the smart contract behind the DAO. After launch, they can only change the rules set by these contracts through the governance system. That means they must extensively test the contracts to ensure they don’t overlook important details. + +Funding: After the smart contracts have been created, the DAO needs to determine a way to receive funding and how to enact governance. More often than not, tokens are sold to raise funds; these tokens give holders voting rights. + +Deployment: Once everything is set up, the DAO needs to be deployed on the blockchain. From this point on, stakeholders decide on the future of the organization. The organization’s creators — those who wrote the smart contracts — no longer influence the project any more than other stakeholders. + +## Why do we need DAOs? + +Being internet-native organizations, DAOs have several advantages over traditional organizations. One significant advantage of DAOs is the lack of trust needed between two parties. While a traditional organization requires a lot of trust in the people behind it — especially on behalf of investors — with DAOs, only the code needs to be trusted. + +Trusting that code is easier to do as it’s publicly available and can be extensively tested before launch. Every action a DAO takes after being launched has to be approved by the community and is completely transparent and verifiable. + +Such an organization has no hierarchical structure. Yet, it can still accomplish tasks and grow while being controlled by stakeholders via its native token. The lack of a hierarchy means any stakeholder can put forward an innovative idea that the entire group will consider and improve upon. Internal disputes are often easily solved through the voting system, in line with the pre-written rules in the smart contract. + +By allowing investors to pool funds, DAOs also give them a chance to invest in early-stage startups and decentralized projects while sharing the risk or any profits that may come out of them. + +## The principal-agent dilemma + +The main advantage of DAOs is that they offer a solution to the principal-agent dilemma. This dilemma is a conflict in priorities between a person or group (the principal) and those making decisions and acting on their behalf (the agent). + +Problems can occur in some situations, with a common one being in the relationship between stakeholders and a CEO. The agent (the CEO) may work in a way that’s not in line with the priorities and goals determined by the principal (the stakeholders) and instead act in their own self-interest. + +Another typical example of the principal-agent dilemma occurs when the agent takes excessive risk because the principal bears the burden. For example, a trader can use extreme leverage to chase a performance bonus, knowing the organization will cover any downside. + +DAOs solve the principal-agent dilemma through community governance. Stakeholders aren’t forced to join a DAO and only do so after understanding the rules that govern it. They don’t need to trust any agent acting on their behalf and instead work as part of a group whose incentives are aligned. + +Token holders’ interests align as the nature of a DAO incentivizes them not to be malicious. Since they have a stake in the network, they will want to see it succeed. Acting against it would be acting against their self-interests. + +## What was The DAO? + +The DAO was an early iteration of modern decentralized autonomous organizations. It was launched back in 2016 and designed to be an automated organization that acted as a form of venture capital fund. + +Those who owned DAO tokens could profit from the organization’s investments by either reaping dividends or benefitting from price appreciation of the tokens. The DAO was initially seen as a revolutionary project and raised $150 million in Ether (ETH), one of the greatest crowdfunding efforts of the time. + +The DAO launched on April 30, 2016, after Ethereum protocol engineer Christoph Jentzsch released the open-source code for an Ethereum-based investment organization. Investors bought DAO tokens by moving Ether to its smart contracts. + +A few days into the token sale, some developers expressed concerns that a bug in The DAO’s smart contracts could allow malicious actors to drain its funds. While a governance proposal was set forth to fix the bug, an attacker took advantage of it and siphoned over $60 million worth of ETH from The DAO’s wallet. + +At the time, around 14% of all ETH in circulation was invested in The DAO. The hack was a significant blow to DAOs in general and the then one-year-old Ethereum network. A debate within the Ethereum community ensued as everyone scrambled to figure out what to do. Initially, Ethereum co-founder Vitalik Buterin proposed a soft fork that would blacklist the attacker’s address and prevent them from moving the funds. + +The attacker or someone posing as them then responded to that proposal, claiming the funds had been obtained in a “legal” way according to the smart contract’s rules. They claimed they were ready to take legal action against anyone who tried to seize the funds. + +The hacker even threatened to bribe ETH miners with some of the stolen funds to thwart a soft fork attempt. In the debate that ensued, a hard fork was determined to be the solution. That hard fork was implemented to roll back the Ethereum network’s history to before The DAO was hacked and reallocate the stolen funds to a smart contract that allowed investors to withdraw them. Those who disagreed with the move rejected the hard fork and supported an earlier version of the network, known as Ethereum Classic (ETC). + +## Disadvantages of DAOs + +Decentralized autonomous organizations aren’t perfect. They are an extremely new technology that has attracted much criticism due to lingering concerns regarding their legality, security and structure. + +MIT Technology Review has, for example, revealed it considers it a bad idea to trust the masses with important financial decisions. While MIT shared its thoughts back in 2016, the organization appears to have never changed its mind on DAOs — at not least publicly. The DAO hack also raised security concerns, as flaws in smart contracts can be hard to fix even after they are spotted. + +DAOs can be distributed across multiple jurisdictions, and there’s no legal framework for them. Any legal issues that may arise will likely require those involved to deal with numerous regional laws in a complicated legal battle. + +In July 2017, for example, the United States Securities and Exchange Commission issued a report in which it determined that The DAO sold securities in the form of tokens on the Ethereum blockchain without authorization, violating portions of securities law in the country. + +## Examples of DAOs + +Decentralized autonomous organizations have gained traction over the last few years and are now fully incorporated into many blockchain projects. The decentralized finance (DeFi) space uses DAOs to allow applications to become fully decentralized, for example. + +To some, the Bitcoin (BTC) network is the earliest example of a DAO there is. The network scales via community agreement, even though most network participants have never met each other. It also does not have an organized governance mechanism, and instead, miners and nodes have to signal support. + +However, Bitcoin is not seen as a DAO by today’s standards. By current measures, Dash would be the first true DAO, as the project has a governance mechanism that allows stakeholders to vote on the use of its treasury. + +Other, more advanced DAOs, including decentralized networks built on top of the Ethereum blockchain, are responsible for launching cryptocurrency-backed stablecoins. In some cases, the organizations that initially launched these DAOs slowly give away control of the project to one day become irrelevant. Token holders can actively vote on governance proposals to hire new contributors, add new tokens as collateral for their coins or adjust other parameters. + +In 2020, a DeFi lending protocol launched its own governance token and distributed it through a liquidity mining process. Essentially, anyone who interacted with the protocol would receive tokens as a reward. Other projects have since replicated and adapted the model. + +Now, the list of DAOs is extensive. Over time, it has become a clear concept that has been gaining traction. Some projects are still looking to achieve complete decentralization through the DAO model, but it’s worth pointing out they are only a few years old and have yet to achieve their final goals and objectives. + +As internet-native organizations, DAOs have the potential to change the way corporate governance works completely. While the concept matures and the legal gray area they operate in is cleared, more and more organizations may adopt a DAO model to help govern some of their activities. + + +> info from: https://cointelegraph.com/ethereum-for-beginners/what-is-a-decentralized-autonomous-organization-and-how-does-a-dao-work diff --git a/collections/manual/knowledge_base/about/dao/gep.md b/collections/manual/knowledge_base/about/dao/gep.md new file mode 100644 index 0000000..d63a0a2 --- /dev/null +++ b/collections/manual/knowledge_base/about/dao/gep.md @@ -0,0 +1,14 @@ +# Grid Enhancement Proposal + +![](img/gep.png) + +GEP stands for Grid Enhancement Proposal. A GEP is a design document providing information to the ThreeFold community, or describing a new feature for the TFGrid or its processes or environment. The GEP should provide a concise technical specification of the feature and a rationale for the feature. + +- A GEP gets registered in TFChain. TFDAO makes this possible +- Community has to approve or not a GEP +- Once enough consensus achieved the GEP will be executed upon, whereas "consensus" is a variable % per GEP and will be defined when sepcs are ready. +- Validator Nodes of our L1 TFChain will make sure GEP is properly implemented and consensus also achieved on that level. + +*some inspiration comes from https://www.python.org/dev/peps/pep-0001* + +!!!def alias:gep diff --git a/collections/manual/knowledge_base/about/dao/img/dao_whatis_.jpg b/collections/manual/knowledge_base/about/dao/img/dao_whatis_.jpg new file mode 100644 index 0000000..0b99259 Binary files /dev/null and b/collections/manual/knowledge_base/about/dao/img/dao_whatis_.jpg differ diff --git a/collections/manual/knowledge_base/about/dao/img/gep.png b/collections/manual/knowledge_base/about/dao/img/gep.png new file mode 100644 index 0000000..dc20ecf Binary files /dev/null and b/collections/manual/knowledge_base/about/dao/img/gep.png differ diff --git a/collections/manual/knowledge_base/about/dao/tfdao.md b/collections/manual/knowledge_base/about/dao/tfdao.md new file mode 100644 index 0000000..79020b5 --- /dev/null +++ b/collections/manual/knowledge_base/about/dao/tfdao.md @@ -0,0 +1,138 @@ +

ThreeFold DAO

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [DAO Tasks](#dao-tasks) +- [What is a DAO?](#what-is-a-dao) +- [How does a DAO work?](#how-does-a-dao-work) +- [Why do we need DAOs?](#why-do-we-need-daos) +- [The principal-agent dilemma](#the-principal-agent-dilemma) +- [What was The DAO?](#what-was-the-dao) +- [Disadvantages of DAOs](#disadvantages-of-daos) +- [Examples of DAOs](#examples-of-daos) + +*** + +## Introduction + +The ThreeFold DAO allows autonomous operation of the TFChain and TFGrid. + +## DAO Tasks + +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 | + +As well as + +- distribution of TFT grants +- manage code upgrade of TFChain and ZOS +- approval for changes to anything in our ecosystem, by means of GEP e.g. + - changes to tokenomics e.g. changes related to + - farming rewards + - cultivation flows + - pricing of grid capacity + - new features in TFChain + - rewards for sales channels, solution providers (v3.2+) + +## What is a DAO? + +A decentralized autonomous organization (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. + +A DAO works without hierarchical management and can have a large number of purposes. Freelancer networks where contracts pool their funds to pay for software subscriptions, charitable organizations where members approve donations and venture capital firms owned by a group are all possible with these organizations. + +Before moving on, it’s important to distinguish a DAO, an internet-native organization, from The DAO, one of the first such organizations ever created. The DAO was a project founded in 2016 that ultimately failed and led to a dramatic split of the Ethereum network. + +## How does a DAO work? + +As mentioned above, a DAO is an organization where decisions get made from the bottom-up; a collective of members owns the organization. There are various ways to participate in a DAO, usually through the ownership of a token. + +DAOs operate using smart contracts, which are essentially chunks of code that automatically execute whenever a set of criteria are met. Smart contracts are deployed on numerous blockchains nowadays, though Ethereum was the first to use them. + +These smart contracts establish the DAO’s rules. Those with a stake in a DAO then get voting rights and may influence how the organization operates by deciding on or creating new governance proposals. + +This model prevents DAOs from being spammed with proposals: A proposal will only pass once the majority of stakeholders approve it. How that majority is determined varies from DAO to DAO and is specified in the smart contracts. + +DAOs are fully autonomous and transparent. As they are built on open-source blockchains, anyone can view their code. Anyone can also audit their built-in treasuries, as the blockchain records all financial transactions. + +Typically, a DAO launch occurs in three major steps +Smart contract creation: First, a developer or group of developers must create the smart contract behind the DAO. After launch, they can only change the rules set by these contracts through the governance system. That means they must extensively test the contracts to ensure they don’t overlook important details. + +Funding: After the smart contracts have been created, the DAO needs to determine a way to receive funding and how to enact governance. More often than not, tokens are sold to raise funds; these tokens give holders voting rights. + +Deployment: Once everything is set up, the DAO needs to be deployed on the blockchain. From this point on, stakeholders decide on the future of the organization. The organization’s creators — those who wrote the smart contracts — no longer influence the project any more than other stakeholders. + +## Why do we need DAOs? + +Being internet-native organizations, DAOs have several advantages over traditional organizations. One significant advantage of DAOs is the lack of trust needed between two parties. While a traditional organization requires a lot of trust in the people behind it — especially on behalf of investors — with DAOs, only the code needs to be trusted. + +Trusting that code is easier to do as it’s publicly available and can be extensively tested before launch. Every action a DAO takes after being launched has to be approved by the community and is completely transparent and verifiable. + +Such an organization has no hierarchical structure. Yet, it can still accomplish tasks and grow while being controlled by stakeholders via its native token. The lack of a hierarchy means any stakeholder can put forward an innovative idea that the entire group will consider and improve upon. Internal disputes are often easily solved through the voting system, in line with the pre-written rules in the smart contract. + +By allowing investors to pool funds, DAOs also give them a chance to invest in early-stage startups and decentralized projects while sharing the risk or any profits that may come out of them. + +## The principal-agent dilemma + +The main advantage of DAOs is that they offer a solution to the principal-agent dilemma. This dilemma is a conflict in priorities between a person or group (the principal) and those making decisions and acting on their behalf (the agent). + +Problems can occur in some situations, with a common one being in the relationship between stakeholders and a CEO. The agent (the CEO) may work in a way that’s not in line with the priorities and goals determined by the principal (the stakeholders) and instead act in their own self-interest. + +Another typical example of the principal-agent dilemma occurs when the agent takes excessive risk because the principal bears the burden. For example, a trader can use extreme leverage to chase a performance bonus, knowing the organization will cover any downside. + +DAOs solve the principal-agent dilemma through community governance. Stakeholders aren’t forced to join a DAO and only do so after understanding the rules that govern it. They don’t need to trust any agent acting on their behalf and instead work as part of a group whose incentives are aligned. + +Token holders’ interests align as the nature of a DAO incentivizes them not to be malicious. Since they have a stake in the network, they will want to see it succeed. Acting against it would be acting against their self-interests. + +## What was The DAO? + +The DAO was an early iteration of modern decentralized autonomous organizations. It was launched back in 2016 and designed to be an automated organization that acted as a form of venture capital fund. + +Those who owned DAO tokens could profit from the organization’s investments by either reaping dividends or benefitting from price appreciation of the tokens. The DAO was initially seen as a revolutionary project and raised $150 million in Ether (ETH), one of the greatest crowdfunding efforts of the time. + +The DAO launched on April 30, 2016, after Ethereum protocol engineer Christoph Jentzsch released the open-source code for an Ethereum-based investment organization. Investors bought DAO tokens by moving Ether to its smart contracts. + +A few days into the token sale, some developers expressed concerns that a bug in The DAO’s smart contracts could allow malicious actors to drain its funds. While a governance proposal was set forth to fix the bug, an attacker took advantage of it and siphoned over $60 million worth of ETH from The DAO’s wallet. + +At the time, around 14% of all ETH in circulation was invested in The DAO. The hack was a significant blow to DAOs in general and the then one-year-old Ethereum network. A debate within the Ethereum community ensued as everyone scrambled to figure out what to do. Initially, Ethereum co-founder Vitalik Buterin proposed a soft fork that would blacklist the attacker’s address and prevent them from moving the funds. + +The attacker or someone posing as them then responded to that proposal, claiming the funds had been obtained in a “legal” way according to the smart contract’s rules. They claimed they were ready to take legal action against anyone who tried to seize the funds. + +The hacker even threatened to bribe ETH miners with some of the stolen funds to thwart a soft fork attempt. In the debate that ensued, a hard fork was determined to be the solution. That hard fork was implemented to roll back the Ethereum network’s history to before The DAO was hacked and reallocate the stolen funds to a smart contract that allowed investors to withdraw them. Those who disagreed with the move rejected the hard fork and supported an earlier version of the network, known as Ethereum Classic (ETC). + +## Disadvantages of DAOs + +Decentralized autonomous organizations aren’t perfect. They are an extremely new technology that has attracted much criticism due to lingering concerns regarding their legality, security and structure. + +MIT Technology Review has, for example, revealed it considers it a bad idea to trust the masses with important financial decisions. While MIT shared its thoughts back in 2016, the organization appears to have never changed its mind on DAOs — at not least publicly. The DAO hack also raised security concerns, as flaws in smart contracts can be hard to fix even after they are spotted. + +DAOs can be distributed across multiple jurisdictions, and there’s no legal framework for them. Any legal issues that may arise will likely require those involved to deal with numerous regional laws in a complicated legal battle. + +In July 2017, for example, the United States Securities and Exchange Commission issued a report in which it determined that The DAO sold securities in the form of tokens on the Ethereum blockchain without authorization, violating portions of securities law in the country. + +## Examples of DAOs + +Decentralized autonomous organizations have gained traction over the last few years and are now fully incorporated into many blockchain projects. The decentralized finance (DeFi) space uses DAOs to allow applications to become fully decentralized, for example. + +To some, the Bitcoin (BTC) network is the earliest example of a DAO there is. The network scales via community agreement, even though most network participants have never met each other. It also does not have an organized governance mechanism, and instead, miners and nodes have to signal support. + +However, Bitcoin is not seen as a DAO by today’s standards. By current measures, Dash would be the first true DAO, as the project has a governance mechanism that allows stakeholders to vote on the use of its treasury. + +Other, more advanced DAOs, including decentralized networks built on top of the Ethereum blockchain, are responsible for launching cryptocurrency-backed stablecoins. In some cases, the organizations that initially launched these DAOs slowly give away control of the project to one day become irrelevant. Token holders can actively vote on governance proposals to hire new contributors, add new tokens as collateral for their coins or adjust other parameters. + +In 2020, a DeFi lending protocol launched its own governance token and distributed it through a liquidity mining process. Essentially, anyone who interacted with the protocol would receive tokens as a reward. Other projects have since replicated and adapted the model. + +Now, the list of DAOs is extensive. Over time, it has become a clear concept that has been gaining traction. Some projects are still looking to achieve complete decentralization through the DAO model, but it’s worth pointing out they are only a few years old and have yet to achieve their final goals and objectives. + +As internet-native organizations, DAOs have the potential to change the way corporate governance works completely. While the concept matures and the legal gray area they operate in is cleared, more and more organizations may adopt a DAO model to help govern some of their activities. + + +> info from: https://cointelegraph.com/ethereum-for-beginners/what-is-a-decentralized-autonomous-organization-and-how-does-a-dao-work + + diff --git a/collections/manual/knowledge_base/about/genesis_block_pool_details.md b/collections/manual/knowledge_base/about/genesis_block_pool_details.md new file mode 100644 index 0000000..7c96cbb --- /dev/null +++ b/collections/manual/knowledge_base/about/genesis_block_pool_details.md @@ -0,0 +1,69 @@ +

Genesis Pool Details

+ +

Table of Contents

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

Genesis Pool

+ +

Table of Contents

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

Governance

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Project History](#project-history) +- [Type of Token](#type-of-token) +- [Governance Process](#governance-process) +- [Organic Growth](#organic-growth) +- [Genesis Pool](#genesis-pool) +- [Decentralized and Open-Source](#decentralized-and-open-source) + +*** + +## Introduction + +We introduce the ThreeFold governance and provide some context around ThreeFold in general. + +## Project History + +The project is grateful of the support of its community and the commercial entity TFTech. + +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). + +## Type of Token + +The regulators and legal advisors believe that we are a payment token with some flavor of a utility token (hybrid). + +We conducted research and obtained legal counsel in multiple jurisdictions: + +- Switzerland +- Belgium +- Dubai +- Singapore + +For more information, [read the legal opinions](https://drive.google.com/file/d/1kNu2cFjMkgqdadrOOQTTC5FPAM4OgKEb/view?usp=drive_link). + +## 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/). + +## Organic Growth + +We never organized a pump and dump or any other synthetic mechanism to boost the token price and benefit from this. We believe in organic growth and TFT going up as result of utilization and grid expansion. + +## Genesis Pool + +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). + +## Decentralized and Open-Source + +In essence, ThreeFold is a decentralized and open-source project. We invite everyone to contribute and participate within the ThreeFold ecosystem. + +You can read the code on the [ThreeFold Tech GitHub repository](https://github.com/threefoldtech). \ No newline at end of file diff --git a/collections/manual/knowledge_base/about/img/al_jadaf.jpg b/collections/manual/knowledge_base/about/img/al_jadaf.jpg new file mode 100644 index 0000000..b43ab97 Binary files /dev/null and b/collections/manual/knowledge_base/about/img/al_jadaf.jpg differ diff --git a/collections/manual/knowledge_base/about/img/aljadaf2.jpg b/collections/manual/knowledge_base/about/img/aljadaf2.jpg new file mode 100644 index 0000000..f90719e Binary files /dev/null and b/collections/manual/knowledge_base/about/img/aljadaf2.jpg differ diff --git a/collections/manual/knowledge_base/about/img/bettertoken_web.jpg b/collections/manual/knowledge_base/about/img/bettertoken_web.jpg new file mode 100644 index 0000000..a8318b4 Binary files /dev/null and b/collections/manual/knowledge_base/about/img/bettertoken_web.jpg differ diff --git a/collections/manual/knowledge_base/about/img/blockchain.png b/collections/manual/knowledge_base/about/img/blockchain.png new file mode 100644 index 0000000..fa6290e Binary files /dev/null and b/collections/manual/knowledge_base/about/img/blockchain.png differ diff --git a/collections/manual/knowledge_base/about/img/crypto_valley_zug_.jpg b/collections/manual/knowledge_base/about/img/crypto_valley_zug_.jpg new file mode 100644 index 0000000..08a3180 Binary files /dev/null and b/collections/manual/knowledge_base/about/img/crypto_valley_zug_.jpg differ diff --git a/collections/manual/knowledge_base/about/img/dubai_office1.jpg b/collections/manual/knowledge_base/about/img/dubai_office1.jpg new file mode 100644 index 0000000..e29f0d3 Binary files /dev/null and b/collections/manual/knowledge_base/about/img/dubai_office1.jpg differ diff --git a/collections/manual/knowledge_base/about/img/foundation_header_image.jpg b/collections/manual/knowledge_base/about/img/foundation_header_image.jpg new file mode 100644 index 0000000..2165278 Binary files /dev/null and b/collections/manual/knowledge_base/about/img/foundation_header_image.jpg differ diff --git a/collections/manual/knowledge_base/about/img/genesispool_1.jpg b/collections/manual/knowledge_base/about/img/genesispool_1.jpg new file mode 100644 index 0000000..aa3c163 Binary files /dev/null and b/collections/manual/knowledge_base/about/img/genesispool_1.jpg differ diff --git a/collections/manual/knowledge_base/about/img/genesispool_2.jpg b/collections/manual/knowledge_base/about/img/genesispool_2.jpg new file mode 100644 index 0000000..4f26416 Binary files /dev/null and b/collections/manual/knowledge_base/about/img/genesispool_2.jpg differ diff --git a/collections/manual/knowledge_base/about/img/korenlei_22.jpg b/collections/manual/knowledge_base/about/img/korenlei_22.jpg new file mode 100644 index 0000000..5c757d4 Binary files /dev/null and b/collections/manual/knowledge_base/about/img/korenlei_22.jpg differ diff --git a/collections/manual/knowledge_base/about/img/korenlei_old.jpg b/collections/manual/knowledge_base/about/img/korenlei_old.jpg new file mode 100644 index 0000000..72a2dd9 Binary files /dev/null and b/collections/manual/knowledge_base/about/img/korenlei_old.jpg differ diff --git a/collections/manual/knowledge_base/about/img/labs_it_license.jpg b/collections/manual/knowledge_base/about/img/labs_it_license.jpg new file mode 100644 index 0000000..f4df0aa Binary files /dev/null and b/collections/manual/knowledge_base/about/img/labs_it_license.jpg differ diff --git a/collections/manual/knowledge_base/about/img/lochristi_1_.jpg b/collections/manual/knowledge_base/about/img/lochristi_1_.jpg new file mode 100644 index 0000000..5e72e15 Binary files /dev/null and b/collections/manual/knowledge_base/about/img/lochristi_1_.jpg differ diff --git a/collections/manual/knowledge_base/about/img/lochristi_2_.jpg b/collections/manual/knowledge_base/about/img/lochristi_2_.jpg new file mode 100644 index 0000000..49f3dba Binary files /dev/null and b/collections/manual/knowledge_base/about/img/lochristi_2_.jpg differ diff --git a/collections/manual/knowledge_base/about/img/lochristi_3.jpg b/collections/manual/knowledge_base/about/img/lochristi_3.jpg new file mode 100644 index 0000000..e6e8392 Binary files /dev/null and b/collections/manual/knowledge_base/about/img/lochristi_3.jpg differ diff --git a/collections/manual/knowledge_base/about/img/lochristi_4.jpg b/collections/manual/knowledge_base/about/img/lochristi_4.jpg new file mode 100644 index 0000000..0f16e4c Binary files /dev/null and b/collections/manual/knowledge_base/about/img/lochristi_4.jpg differ diff --git a/collections/manual/knowledge_base/about/img/lochristi_5_.jpg b/collections/manual/knowledge_base/about/img/lochristi_5_.jpg new file mode 100644 index 0000000..08d8cab Binary files /dev/null and b/collections/manual/knowledge_base/about/img/lochristi_5_.jpg differ diff --git a/collections/manual/knowledge_base/about/img/lochristi_6_.jpg b/collections/manual/knowledge_base/about/img/lochristi_6_.jpg new file mode 100644 index 0000000..f5b3781 Binary files /dev/null and b/collections/manual/knowledge_base/about/img/lochristi_6_.jpg differ diff --git a/collections/manual/knowledge_base/about/img/lochristi_7.jpg b/collections/manual/knowledge_base/about/img/lochristi_7.jpg new file mode 100644 index 0000000..8b9c713 Binary files /dev/null and b/collections/manual/knowledge_base/about/img/lochristi_7.jpg differ diff --git a/collections/manual/knowledge_base/about/img/mazraa_web1.jpg b/collections/manual/knowledge_base/about/img/mazraa_web1.jpg new file mode 100644 index 0000000..17a2451 Binary files /dev/null and b/collections/manual/knowledge_base/about/img/mazraa_web1.jpg differ diff --git a/collections/manual/knowledge_base/about/img/tf_companies_.jpg b/collections/manual/knowledge_base/about/img/tf_companies_.jpg new file mode 100644 index 0000000..ef7bc62 Binary files /dev/null and b/collections/manual/knowledge_base/about/img/tf_companies_.jpg differ diff --git a/collections/manual/knowledge_base/about/img/threefold_commodities_1_.jpg b/collections/manual/knowledge_base/about/img/threefold_commodities_1_.jpg new file mode 100644 index 0000000..84afbb4 Binary files /dev/null and b/collections/manual/knowledge_base/about/img/threefold_commodities_1_.jpg differ diff --git a/collections/manual/knowledge_base/about/img/threefold_dmcc_license_certificate.jpg b/collections/manual/knowledge_base/about/img/threefold_dmcc_license_certificate.jpg new file mode 100644 index 0000000..6c6d34a Binary files /dev/null and b/collections/manual/knowledge_base/about/img/threefold_dmcc_license_certificate.jpg differ diff --git a/collections/manual/knowledge_base/about/img/threefold_tech.jpg b/collections/manual/knowledge_base/about/img/threefold_tech.jpg new file mode 100644 index 0000000..d4d2f0b Binary files /dev/null and b/collections/manual/knowledge_base/about/img/threefold_tech.jpg differ diff --git a/collections/manual/knowledge_base/about/img/threefold_tech_location.jpg b/collections/manual/knowledge_base/about/img/threefold_tech_location.jpg new file mode 100644 index 0000000..8bd7427 Binary files /dev/null and b/collections/manual/knowledge_base/about/img/threefold_tech_location.jpg differ diff --git a/collections/manual/knowledge_base/about/img/threefold_vzw_official_doc.jpg b/collections/manual/knowledge_base/about/img/threefold_vzw_official_doc.jpg new file mode 100644 index 0000000..82c1173 Binary files /dev/null and b/collections/manual/knowledge_base/about/img/threefold_vzw_official_doc.jpg differ diff --git a/collections/manual/knowledge_base/about/img/view_dubai.jpg b/collections/manual/knowledge_base/about/img/view_dubai.jpg new file mode 100644 index 0000000..022fad0 Binary files /dev/null and b/collections/manual/knowledge_base/about/img/view_dubai.jpg differ diff --git a/collections/manual/knowledge_base/about/mazraa.md b/collections/manual/knowledge_base/about/mazraa.md new file mode 100644 index 0000000..c280c8e --- /dev/null +++ b/collections/manual/knowledge_base/about/mazraa.md @@ -0,0 +1,22 @@ +

Mazraa

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [History](#history) +- [Mission](#mission) + +*** + +## Introduction + +Mazraa is a brand name of [ThreeFold Dubai](./threefold_dubai.md). You can read about ThreeFold Dubai for more details. + +## History + +Mazraa was established in early 2016 in the United Arab Emirates and was one of the first provider's of Peer2Peer Internet capacity on the ThreeFold Grid. Currently, Mazraa's capacity pool of storage and compute capacity can be accessed for workload development on the TF Capacity Explorer. + + +## Mission + +Mazraa supports ThreeFold Foundation's mission to create a responsible Internet for all, one that is accessible, affordable and environmentally conscious. Mazraa is a founding capacity farmer on the ThreeFold Network and actively supports the expansion and adoption of ThreeFold's P2P Cloud. Mazraa's focus is to provide P2P Cloud capacity for developers, nodes for new and existing farmers, as well as, providing over the counter access to TFT's to enable reservations of Internet capacity. Additionally, Mazraa supports the promotion and growth of the ThreeFold Network, through marketing resources and funding contributions. We believe it's time for the internet to have a major upgrade to empower people and protect our planet. \ No newline at end of file diff --git a/collections/manual/knowledge_base/about/orgstructure.md b/collections/manual/knowledge_base/about/orgstructure.md new file mode 100644 index 0000000..8f1ec9d --- /dev/null +++ b/collections/manual/knowledge_base/about/orgstructure.md @@ -0,0 +1,14 @@ +# Organisation Structure + +

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 diff --git a/collections/manual/knowledge_base/about/roadmap/releasenotes/img/.done b/collections/manual/knowledge_base/about/roadmap/releasenotes/img/.done new file mode 100644 index 0000000..50c9c2b --- /dev/null +++ b/collections/manual/knowledge_base/about/roadmap/releasenotes/img/.done @@ -0,0 +1 @@ +releasenotes.png diff --git a/collections/manual/knowledge_base/about/roadmap/releasenotes/img/releasenotes.png b/collections/manual/knowledge_base/about/roadmap/releasenotes/img/releasenotes.png new file mode 100644 index 0000000..8e4360b Binary files /dev/null and b/collections/manual/knowledge_base/about/roadmap/releasenotes/img/releasenotes.png differ diff --git a/collections/manual/knowledge_base/about/roadmap/releasenotes/releasenotes_readme.md b/collections/manual/knowledge_base/about/roadmap/releasenotes/releasenotes_readme.md new file mode 100644 index 0000000..21e8011 --- /dev/null +++ b/collections/manual/knowledge_base/about/roadmap/releasenotes/releasenotes_readme.md @@ -0,0 +1,19 @@ +![](img/releasenotes.png) + +# ThreeFold Grid Release Notes + + We're delighted to have you here as we explore the latest updates and enhancements to our decentralized grid ecosystem. In these release notes, you'll discover a wealth of information about the exciting features, bug fixes, performance optimizations, and new functionalities that have been introduced in each release. + + 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) diff --git a/collections/manual/knowledge_base/about/roadmap/releasenotes/tfgrid_release_3_0.md b/collections/manual/knowledge_base/about/roadmap/releasenotes/tfgrid_release_3_0.md new file mode 100644 index 0000000..32ea6d9 --- /dev/null +++ b/collections/manual/knowledge_base/about/roadmap/releasenotes/tfgrid_release_3_0.md @@ -0,0 +1,43 @@ +# TFGrid release 3.0 + +TFGrid 3.0 will be released gradually during Q3/Q4 2021. + +## What's new ? + +TFGrid 3.0 is a full redesign of the ThreeFold Grid architecture. The main purpose of this redesign is to decentralize all the components that the Grid is built with. + +### TFChain 3.0 + +A decentralised chain holding all information on entities that make up the ThreeFold Grid. It runs on Parity Substrate blockchain infrastructure. + +Features : +- Your identity and proofs/reputation on our blockchain +- All info about TFGrid (nodes, farmers, …) +- A Graphql interface to be able to query the blockchain +- Support of side chains (unlimited scalability, allow others to run their own blockchain) +- TFT exists now also on TFChain (allows us to work around Stellar scalability issues) +- Bridge between TFT on Stellar and TFT on TFChain (one way to start) +- Blockchain based provisioning process +- TFChain API (javascript, golang, vlang) +- Support for 'Infrastructure as Code' : IAC frameworks + - Terraform + - Kubernetes, Helm, Kubernetes + - Ansible (planned for Q4 2021) +- Use RMB = peer2peer secure Reliable Message Bus to communicate with Zero-OS + +### Proof of Utilization + +- Resource utilisation is captured and calculated on hourly basis +- Resource utilisation stored in TFChain +- An automated discount system has been put in place, rewarding users who pre-purchased their cloud needs. Price discounts are applied, in line with amount of TFT you have in your account and the period you are holding these TFT. +E.g. if you have 12 months worth of TFT in your account in relation to the last hour used capacity you get 40% discount, 36 months results in 60% discount. + +### New Explorer UI +- An updated User Interface of the TF Grid Explorer, nicer and easier to use +- It uses the Graphql layer of TFChain + +## Roadmap + +The feature overview split over different releases can be found [here](https://circles.threefold.me/project/despiegk-product_tfgrid3_roadmap/wiki/roadmap). + +More info and announcements on Grid 3.0 to be found on our [forum](https://forum.threefold.io/t/announcement-of-tfgrid-3-0/1132) diff --git a/collections/manual/knowledge_base/about/roadmap/releasenotes/tfgrid_release_3_0_a2.md b/collections/manual/knowledge_base/about/roadmap/releasenotes/tfgrid_release_3_0_a2.md new file mode 100644 index 0000000..0f9cc1a --- /dev/null +++ b/collections/manual/knowledge_base/about/roadmap/releasenotes/tfgrid_release_3_0_a2.md @@ -0,0 +1,204 @@ +# ThreeFold Release Notes TFGrid 3.0.0 Alpha 2 (Live on testnet) + +## TFChain v1.0.0 + +- DAO Requests + - Becoming council member + - Becoming a validator node + - Pricing changes + - Upgrading tfchain + - Changing farming rewards + +## Admin Portal v3.0.1-rc1 + +- Terms and conditions support +- Fix reasking for activation when the balance reaches 0 +- Show amount of bridge deposit/withdraw fee +- Get more TFT button when connected to devnet + +## tfchain explorer v3.0.0-rc19 + +- certification type filter +- adding certification type to nodes +- add zos version to node details +- update map to reflect the selected node +- UX fixes for filters and data sorting +- include version of tfchain, explorer, grid proxy +- showing available resources +- showing online / offline nodes +- showing number of available IPs in a farm +- adding favicon +- statistics page improvements + +## ZOS v3.0.4 + +- public IPv6 support +- Min rootfs for more than 1 CU = 2GB, and anything less will be 500MB +- Mainnet image +- Fix IPv6 rules that broke SLAAC +- Update SRU calculation +- bug don't wait for QSFS shutdown +- Update traefik version +- Fixing crashes caused by slow disks +- Avoid lsblk blocking for QSFS +- Decommission on too many QSFS metric fetches failure +https://github.com/threefoldtech/zos/releases + +## Terraform v0.1.20 +- Support for public IPv6 +- Support planetary option for k8s + +https://github.com/threefoldtech/tf-terraform-provider/releases + + +## grid3_client_ts v1.0.3 +- Cert type for nodes +- public IPv6 support +- TwinServer command to be used from other langauges + + +## Weblets v1.2.0 + +- Support peertube +- Support funkwhale +- Remove rootfs specification from machine +- Support adding/deleting workers in kubernetes +- Add more images ubuntu, alpine, centos +- Updating the balance periodically +- Adding access for nodes by default for hidden nodes issues +- Resolving issues + +### detailed projects list + +- https://github.com/threefoldtech/grid_weblets/projects/1 +- https://github.com/threefoldtech/grid_weblets/projects/4 +- https://github.com/threefoldtech/grid_weblets/projects/6 +- https://github.com/threefoldtech/grid_weblets/projects/6 +- https://github.com/threefoldtech/grid_weblets/projects/7 +- https://github.com/threefoldtech/grid_weblets/projects/8 + +https://github.com/threefoldtech/grid_weblets/releases + +## QSFS + +TODO + +## gridproxy v1.0.0-rc8 + +- generic performance improvements +- reduce caching time +- enable CORS in version +- include certification types in nodes +- fix regression on nodes query +- + +## Known Issues 3.0.0 Alpha 2 + +Following list is incomplete but gives some issues to think about. + +- Weblets [limitations](https://library.threefold.me/info/manual/#/manual__weblets_home?id=limitations) +- QSFS integration is a work in progress +- ZOS and SSD performance [issue](https://github.com/threefoldtech/zos/issues/1467) +- Threefold Connect having [issues](https://circles.threefold.me/project/test-tfgrid3/issue/52) +- Docker & ZOS containers [differences](https://github.com/threefoldtech/zos/issues/1483) +- ZOS workloads upgrade [issue](https://github.com/threefoldtech/zos/issues/1425) +- Terraform projects [don't reflect in the weblets](https://github.com/threefoldtech/terraform-provider-grid/issues/146) +- Can't detach public IP from a VM and removing it from a contract [issue](https://github.com/threefoldtech/tfchain_pallets/issues/73), please note you can still create each in separate contracts. + +# ThreeFold Release Notes TFGrid 3.0.0 Alpha 1 (Live on mainnet) + +- [TFgrid 3.0 announcement](https://forum.threefold.io/t/announcement-of-tfgrid-3-0/1132) +- [Whats new in TFGrid 3.0](https://forum.threefold.io/t/what-is-new-in-tfgrid-3-0/1133) +- [Roadmap](https://circles.threefold.me/project/despiegk-product_tfgrid3_roadmap/wiki/home) +- +## TFChain + +- Staking support (as the moment of this writing it's only on devnet now) +- KeyValue store support +- Bridging tokens from stellar to tfchain +- Smart contract for IT +- Billing +- Consumption Reports +- Discounts support + +## Admin Portal + +- Creation of twins +- Bridge from and to Stellar +- Farm Management + + +## Tfchain explorer + +- Nodes view +- Gateways listing +- Farms information +- Resources/utilization +- Better filtering + + +## ZOS +- zmachine support +- Integration with latest subtsrate client event types +- public ipv6 support in VMs +- planetary support in VMs +- upgrade to new file system RFS +- support for QSFS +- support for gateways +- capacity reporting to the blockchain support +- Support of SR25519 +- Improvements in .zosrc creation +- Safer mechanism for environment variables and init arguments +- improvments in cleaning unused mounts + +https://github.com/threefoldtech/zos/releases + +## Terraform +- Support ZMachine +- Support Kubernetes +- Support QSFS +- Support Capacity Planning +- Support Gateways + +https://github.com/threefoldtech/tf-terraform-provider/releases + + +## grid3_client_ts +- Support ZMachine +- Support Kubernetes +- Support QSFS +- Support Capacity Planning +- Support Gateways + + +## Weblets + +- Support Profile manager +- Support Virtual machine +- Support CapRover +- Support Kubernetes +https://github.com/threefoldtech/grid_weblets/releases +- Capacity planning deployment + +## QSFS + +TODO + + +- [TFgrid 3.0 announcement](https://forum.threefold.io/t/announcement-of-tfgrid-3-0/1132) +- [Whats new in TFGrid 3.0](https://forum.threefold.io/t/what-is-new-in-tfgrid-3-0/1133) +- [Roadmap](https://circles.threefold.me/project/despiegk-product_tfgrid3_roadmap/wiki/home) + +## Known Issues 3.0.0 Alpha 1 + +Following list is incomplete but gives some issues to think about. + +- Weblets [limitations](https://library.threefold.me/info/manual/#/manual__weblets_home?id=limitations) +- Public IP6 [support](https://github.com/threefoldtech/zos/pull/1488) in ZOS +- QSFS integration is a work in progress +- ZOS and SSD performance [issue](https://github.com/threefoldtech/zos/issues/1467) +- Threefold Connect having [issues](https://circles.threefold.me/project/test-tfgrid3/issue/52) +- Docker & ZOS containers [differences](https://github.com/threefoldtech/zos/issues/1483) +- ZOS workloads upgrade [issue](https://github.com/threefoldtech/zos/issues/1425) +- Terraform projects [don't reflect in the weblets](https://github.com/threefoldtech/terraform-provider-grid/issues/146) +- Can't detach public IP from a VM and removing it from a contract [issue](https://github.com/threefoldtech/tfchain_pallets/issues/73), please note you can still create each in separate contracts. diff --git a/collections/manual/knowledge_base/about/roadmap/releasenotes/tfgrid_release_3_0_a4.md b/collections/manual/knowledge_base/about/roadmap/releasenotes/tfgrid_release_3_0_a4.md new file mode 100644 index 0000000..97a9456 --- /dev/null +++ b/collections/manual/knowledge_base/about/roadmap/releasenotes/tfgrid_release_3_0_a4.md @@ -0,0 +1,53 @@ +# ThreeFold Grid v3.0.0 Alpha - 4 Release Note + +## TFConnect v3.4.0 + +### TFConnect Backend Services Migration + +We moved ThreeFold Connect’s backend services from a data storage in Lochristi to TFGrid. From TF Wallet, to TF account, and TFNews, all active services are migrated by using Helm charts. + +## TFPlay v1.1.4 + +### Listed Mattermost as Deployable Solution + +On this release, we added Mattermost as one of our deployable decentralised solutions. +Mattermost is a secure, open source platform for communication, collaboration, and workflow orchestration across tools and teams. + +### Separated TFPlay into 3 different networks + +Node upgrades could happen anytime, and it could make solution deployments on different networks incompatible. Therefore, we separated TFPlay into 3 different networks: + +- Deployment on TFGrid Mainnet: play.grid.tf +- Deployment on TFGrid Testnet: play.test.grid.tf +- Deployment on TFGrid Devnet: play.dev.grid.tf + +This way, if some nodes on one network are being upgraded, deployments on the other nets should not be affected. + +## Minting v3.0 + +### Minting V3 code + +Repo: https://github.com/threefoldtech/minting_v3 + +There was a change the way how the CU/SU are calculated from the resource units calculations, please see https://library.threefold.me/info/threefold#/resource_units_calc_cloudunits for details. +Therefore, we updated the calculations on the minting code (minting v3), as well as adjusted price calculation for workloads on TFchain. + +## GetTFT Shop v1.0.4 + +Story: https://github.com/threefoldtech/home/issues/1171 + +### Minor UX / UI improvements + +On this release we created minor UX improvements on the existing GetTFT Shop website that create a better experience for our customers, such as improved interactivity, fixed embedded media, revised UX content, improved screen responsiveness, and many more. + +## TF Capacity Explorer v0.1.0 + +### An all-in-one Unified Capacity Explorer + +Currently we have a few separate capacity explorers for both TFGrid v2 Explorer and TFGrid v3 Explorer. On this release we unified all versions and networks into one explorer, where users can find capacity information on both TFGrid v2 and v3 mainnet, testnet, and devnet. This all-in-one unified Capacity Explorer will be hosted under the domain https://explorer.threefold.io. + +## TF Farm Management v1.1 + +On TFGrid v3, node and farm management are also moved to substrate-based blockchains. A farm can be managed by making calls directly to the blockchain using objects created in TFChain called Twins. TFWallet app can reuse the wallet keypair to support a twin. A twin is also associated with a Planetary Network address that is supported by the Threefold Connect App. + +Therefore we added a ‘Farm Management’ feature on the TFConnect App that would enable farmers to list their farms and create new ones directly on the mobile app. The ‘Farm Management’ feature will allow users to create new farms, list farms, as well as migrate their farms from TFGrid v2 to TFGrid v3. diff --git a/collections/manual/knowledge_base/about/roadmap/releasenotes/tfgrid_release_3_0_a5.md b/collections/manual/knowledge_base/about/roadmap/releasenotes/tfgrid_release_3_0_a5.md new file mode 100644 index 0000000..94b28b2 --- /dev/null +++ b/collections/manual/knowledge_base/about/roadmap/releasenotes/tfgrid_release_3_0_a5.md @@ -0,0 +1,72 @@ +# ThreeFold Grid v3.0.0 Alpha - 5 Release Note + +This is the release note of TFGrid v3.0.0 Alpha 5. It includes updates, improvements and fixes of numerous grid components as described below. + +## TFT Shop v1.1.0 + +On the first initial release of TFT Shop v1.0.0, we have made it easier for users to buy TFT by BTC on the [TFT Shop website](https://gettft.com/gettft/). + +On this v1.1.0 release, we are giving users another **option to buy TFT by using fiat currency**. This is made possible by integrating [mercuryo.io](http://www.mercuryo.io/) (third-party) widget onto the shop. By buying TFT using TFT Shop, you confirm that you have read and agree to [ThreeFold’s terms and conditions](https://library.threefold.me/info/legal/#/legal__terms_conditions_gettft). + + +## ZOS v3.1.0 + +### Performance Improvements + +This new feature release of ZOS v3.1.0 includes a lot of improvements such as **improvements on performance issues** (disk and IO), grid events handling, and improvement on the current yggdrasil network by start and maintaining our public peers. + +### ZOS Supoort Dedicated Nodes + +To empower community-driven decentralization on the TFGrid, we would like to soon invite anyone to deploy their own solutions on the TFGrid. This is feasible to do by allowing any external developers to** deploy their own workloads on** **dedicated nodes** and provide the deployment documentation. By choosing to deploy on dedicated nodes, a user can reserve an entire node, then use it exclusively to deploy solutions for themselves or for other customers. Therefore on this release we are happy to announce that we are supporting dedicated nodes deployment, apply the dedicated node contracts on TFChain and support mechanism on ZOS' next release. + + +## TF Playground v3.0.0 Alpha-5 + +### New community and blockchain solutions +On the last release, we have added new deployable community solutions on [TF Playground](https://play.grid.tf/#/), such as Peertube, Funkwhale and Taiga, Mattermost as well as some developer tools like CapRover, Virtual Machine, Kubernetes and Owncloud. + +On this release, we have added **community and blockchain solutions** such as Discourse (forum), Presearch Node and Casperlabs validator node. + +## Uhuru v1.1 (beta) + +### Uhuru Backend Changes + +[Uhuru](https://www.uhuru.me) is a digital product on top of a the TFGrid that enhance collaboration with features such as chat, videocall, office tools, and file storage, all in one platform. + + +## ThreeFold Wallet v3.0.0 + +### Add (substrate-based) TFChain Wallet + +TFGrid v3 is powered by substrate-based blockchain. A TFT is moveable from Stellar blockchain to TFChain through the use of a bridge.ThreeFold Wallet now has successfully **added (substrate-based) TFChain Wallet in order to support the bridge transaction**. + +However, TFT is still the native currency on TFChain. As such, there is no need for an external service to transfer tokens on TFChain. A transaction fee is charged (currently 0.01 TFT) for every transaction/extrinsic call. + +## TF Farm Management Tool v3.0.2 + +### Adjust farm management for the latest TFChain upgrade + +On the last release of 3 alpha-4, we have released Farm Management Tool v3.0.1 which allows farmers to migrate their farms from v2 to v3 through the TF Connect application. + +Recently a change was made within the codes of TFChain, thus broke the farm management function in the wallet. Therefore, on the v3.0.2 release, code changes were done on **Farm Management Tool to adapt itself with TFChain changes**. This was done quickly in production. + +## TFConnect App v3.5.0 + +### Generic Frontend and Backend Improvements +This new feature release of TFConnect App includes new features such as **enabling user to sign documents on the app** directly, and many other backend improvements. + +### Integrate TFConnect SSO to TFPlay Solutions + +We need to simplify peer-to-peer collaboration and how users interact with their TFPlay solutions. On this release, we have eliminated a complicated way of signing up to solutions (emails, username and password) by replacing it using **TFConnect app SSO login**. Therefore on this release, we successfully created TFConnect Native SSO backend environments for the following TFPlay solutions**: Discourse. Mattermost, and Gitea, that will allow users to sign in and start using the solutions with just few clicks. + +## TFChain v1.2.0 + +### ThreeFold DAO Pt. 2: Adjoint Validator-Council member request + +From version 3.0 on, [ThreeFold Grid operates as a DAO](https://library.threefold.me/info/threefold#/tfgrid/threefold__dao). On the last release of TFChain v1.0.0, we have successfully implemented The first TF-DAO that allows users to request to become DAO council members. + +On this release we also have successfully implemented **ThreeFold DAO Request part 2 where any user could request to become an adjoint validator-council member**: by running a a validator node, not only that they become a validator, they would also gain a seat as DAO council member that give them the right to vote for organizational changes. + +### ThreeFold DAO Pt. 2: Enable Validator Application + +On this release we implemented ThreeFold DAO Request part 2 any user could **apply to become a validator **and register the validator application on-chain if they meet the validator requirements. diff --git a/collections/manual/knowledge_base/about/roadmap/releasenotes/tfgrid_release_3_10_0.md b/collections/manual/knowledge_base/about/roadmap/releasenotes/tfgrid_release_3_10_0.md new file mode 100644 index 0000000..8cad3e3 --- /dev/null +++ b/collections/manual/knowledge_base/about/roadmap/releasenotes/tfgrid_release_3_10_0.md @@ -0,0 +1,119 @@ +# ThreeFold Grid v3.10.0 Release Note + +Release Note of ThreeFold Grid v3.10.0. + +- Deployed on Mainnet on 3rd July 2023. + +## Components and Services + +The following components and services have been upgraded in this release: + +- TFChain +- ZOS +- Terraform +- TFGrid-SDK-GO +- TF Gridclient +- TF Gridproxy +- RMB +- TF Weblets +- TF Playground +- TF-Grid-CLI +- Gridify +- TFGrid-SDK-TS + +## Upgrades and Improvement Highlights + +Below are some of the key highlights of the TFGrid v3.10.0 component upgrades and improvements. + +### TFChain 2.4.0 + +- Addressed syncing issues. +- Introduced the attachment of solution provider IDs to contracts. +- Enabled the bonding of a stash account to a twin. +- Implemented various bug fixes. + +### ZOS 3.7.1 + +- Restructured the capacity to enhance dynamism. +- Added support for proxying traffic to private networks using WireGuard-based gateways. +- Introduced support for cloud-based consoles. +- Resolved various issues related to error messages, user validations, and error handling. + +### Terraform 1.9 + +- Added support for WireGuard-based gateway options. +- Implemented proper timeout handling for deployments. +- Introduced gateway node validation before submitting deployments. +- Resolved various bugs and issues. + +### TFGrid-SDK-GO 0.8.0 + +- Consolidated multiple Go projects into a single repository for simplified administration and quicker releases. +- Extracted reusable code from the Terraform project and created a standalone library for creating new platforms or plugins. + +#### Grid-Client + +- Enhanced the grid client to serve as the foundation layer for the Terraform plugin, enabling deployment of networks, virtual machines, and Kubernetes. + +#### Grid-Proxy + +- Added support for standby status for nodes powered off by the farmerbot. +- Enabled farm filtering based on requested resources. + +#### RMB + +- Improved the direct client's resilience to recover from close connections. + +#### 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). + +#### Gridify + +- An experimental project that allows developers to deploy their projects on ThreeFold as a platform with a single command, "gridify," using a Procfile in their code repository. +- Currently supported platforms include: + - Go 1.18 + - Python 3.10.10 + - Node 16.17.1 + - NPM 8.10.0 + - Caddy +- Learn more [here](https://github.com/threefoldtech/tfgrid-sdk-go/tree/development/gridify). + +### TFGrid-SDK-TS 2.0.0 + +- Consolidated all components targeting web/TypeScript developers and frontend efforts into a single repository for easier management and rapid releases. +- Moved gridclient, dashboard, statistics websites, and other TypeScript-based projects to the new repository [here](https://github.com/threefoldtech/tfgrid-sdk-ts). + +#### Grid-Client + +- Gateways now support WireGuard backends. +- Added support for hex secrets. +- Various fixes are detailed [here](https://github.com/orgs/threefoldtech/projects/192/views/12?filterQuery=repo%3A%22threefoldtech%2Ftfgrid-sdk-ts%22+label%3Agrid_client). + +#### TF Dashboard + +- Added support for IPv4 pricing in the resources calculator. +- Included TFT/USD exchange rate in the dashboard navbar. +- Introduced new standby status for nodes powered off by the farmerbot. +- In the explorer, a node monitoring page is now available. +- Fixed high CPU usage in the DAO Pages. +- Tracking improperly set serial number on nodes with a clear message. + +#### TFGrid Weblets + +- We are phasing out the TFGrid Weblets for a newer playground rewritten in vue3, however, we introduced some maintenance bugfixes. +- [Support umbrel on the grid](https://github.com/threefoldtech/home/issues/1394). + +### TF Playground v2.0.0 + +This release introduces a new playground with a more consistent user experience. Some components have been reworked for consistency. + +- Simplified the profile manager, requiring only the provision of a mnemonic and a password for encryption on the device. Mnemonics are never shared or sent across the network. +- Real-time calculation of deployment costs. +- Ability to generate WireGuard configurations. +- Direct link to the monitoring page of a deployment’s hosting node. + +## RMB 1.0.5 + +- Deprecated seed flag. \ No newline at end of file diff --git a/collections/manual/knowledge_base/about/roadmap/releasenotes/tfgrid_release_3_6_0.md b/collections/manual/knowledge_base/about/roadmap/releasenotes/tfgrid_release_3_6_0.md new file mode 100644 index 0000000..533a1a3 --- /dev/null +++ b/collections/manual/knowledge_base/about/roadmap/releasenotes/tfgrid_release_3_6_0.md @@ -0,0 +1,67 @@ +# ThreeFold Grid v3.6 Release Note + +Release Note of ThreeFold Grid v3.6. It includes updates, improvements and fixes of numerous grid components as described below. + +## TFPlayground v1.4.3 +- Updated Farming Calculator +- Better node-filtering mechanism by adding 'capacity' filter +- Simplified K8s solution deployment by eliminating 'add ssh key' part +- Improved UX for manual solution deployment on dedicated nodes +- Fixed solution's post-deployment bad gateway issue. +- Validation enhancements + +## Uhuru v1.2 (beta) +- Tackled the UI/UX issues and bugs. +- Added many features except for main missing things such as 'logout' option. + +## ThreeFold Wallet v3.1.0 +- Enable token unlocking feature +- Allow users to unlock their locked tokens via TFwallet. +- Improvements and fixes included, including usability supports for iOS devices that will be greatly improved. + +## TFConnect App v3.6.0 + +- Better usability and user experience through the app workflow improvements as well as +- Improved design and interface, look and feel. + +## TF Planetary Network v0.3.0 +TF Planetary Network is an application that allows users to access[ Peer To Peer end2end encrypted global network](https://library.threefold.me/info/manual/#/technology/threefold__planetary_network) which lives on top of the existing internet or other Peer To Peer networks created. This release's improvements: + +- New P2P functionalities on Desktop Client +- Improved the desktop clients for planetary network by adding support for M1 version of Mac. +- Allowed the application to refresh the list of ‘peers’, allowing extra ‘peers’ to be added by TF org +- Debugged multiple account issues on Mac. + +## TFTShop (GetTFT) v1.1.1 + +- Better usability and user experience through the app workflow improvements +- Improved design and interface, look and feel, such as Improvement on TFT purchase flows on all BTC-TFT, and FIAT-TFT transactions + +## TFGrid Proxy v1.5.0 +TFGrid Proxy is a REST API-based server used to interact with TFGridDB (Database) in order to access all available node-related information. This release's improvements: + +- Added querying for dedicated nodes support in gridproxy API. +- Added support for twins and contracts. +- Added filter for dedicated nodes +- Added missing queries on farms +- Added country API for node distribution + +## ZOS v3.1.0 +- Support pausing workloads to allow grace period before canceling contract. +- Enabled log streaming from VMs/Containers to a remote logs aggregation server. + +## TFNode-Pilot v0.1.0 +Pocket Network is a blockchain data platform built for applications that use cost-efficient economics to coordinate and distribute data at scale, enabling seamless interactions between blockchains and applications. This release's content: + +- Reverse-engineered the Pokt node pilot into Node Pilot Light. +- Deployed first version of PoktNetwork with TF Terraform Grid Provider. + +## TFChain v1.12 +- DAO support +- Dedicated nodes support +- General stability improvement +- Reworked farming policies +- Introduction of contract grace periods +- Farm certificaation through DAO +- New bridge code + diff --git a/collections/manual/knowledge_base/about/roadmap/releasenotes/tfgrid_release_3_6_1.md b/collections/manual/knowledge_base/about/roadmap/releasenotes/tfgrid_release_3_6_1.md new file mode 100644 index 0000000..cc1bc3d --- /dev/null +++ b/collections/manual/knowledge_base/about/roadmap/releasenotes/tfgrid_release_3_6_1.md @@ -0,0 +1,103 @@ +# ThreeFold Grid v3.6.1 Release Note + +Release Note of ThreeFold Grid v3.6.1 It includes updates, improvements and fixes of numerous grid components as described below. + +## TFGrid 3.6.1 components + - testnet tfchain 1.12.1 + - substrate client (go) release for type change + - tfchain client (JS) release for type change + - graphql 2.3.3 + - tfchain bridge v2.1.0 + - ZOS 3.1.0-rc1 + - weblets 1.4.3-rc1 + - terraform 1.2.1 + - gridproxy v1.5.1 + - explorer 3.2.2 + - tfgrid_dashboard 1.0.6 + +## Component Upgrades + +### TFPlayground v1.4.3 +- Updated Farming Calculator +- Better node-filtering mechanism by adding 'capacity' filter +- Simplified K8s solution deployment by eliminating 'add ssh key' part +- Improved UX for manual solution deployment on dedicated nodes +- Fixed solution's post-deployment bad gateway issue. +- Validation enhancements + + +### ThreeFold Wallet v3.1.0 +- Enable token unlocking feature +- Allow users to unlock their locked tokens via TFwallet. +- Improvements and fixes included, including usability supports for iOS devices that will be greatly improved. + +### TFConnect App v3.6.0 + +- Better usability and user experience through the app workflow improvements as well as +- Improved design and interface, look and feel. + +### TF Planetary Network v0.3.0 +TF Planetary Network is an application that allows users to access[ Peer To Peer end2end encrypted global network](https://library.threefold.me/info/manual/#/technology/threefold__planetary_network) which lives on top of the existing internet or other Peer To Peer networks created. This release's improvements: + +- New P2P functionalities on Desktop Client +- Improved the desktop clients for planetary network by adding support for M1 version of Mac. +- Allowed the application to refresh the list of ‘peers’, allowing extra ‘peers’ to be added by TF org +- Debugged multiple account issues on Mac. + +### TFTShop (GetTFT) v1.1.1 + +- Better usability and user experience through the app workflow improvements +- Improved design and interface, look and feel, such as Improvement on TFT purchase flows on all BTC-TFT, and FIAT-TFT transactions + +### TFGrid Proxy v1.5.0 +TFGrid Proxy is a REST API-based server used to interact with TFGridDB (Database) in order to access all available node-related information. This release's improvements: + +- Added querying for dedicated nodes support in gridproxy API. +- Added support for twins and contracts. +- Added filter for dedicated nodes +- Added missing queries on farms +- Added country API for node distribution + +### ZOS v3.1.0 +- Support pausing workloads to allow grace period before canceling contract. +- Enabled log streaming from VMs/Containers to a remote logs aggregation server. + +### TFNode-Pilot v0.1.0 +Pocket Network is a blockchain data platform built for applications that use cost-efficient economics to coordinate and distribute data at scale, enabling seamless interactions between blockchains and applications. This release's content: + +- Optimized node pilot by Threefold. +- Deployed first version of PoktNetwork with TF Terraform Grid Provider. + +### TFChain v1.12 +- DAO support +- Dedicated nodes support +- General stability improvement +- Reworked farming policies +- Introduction of contract grace periods +- Farm certificaation through DAO +- New bridge code + +### TFgrid Dashboard +Tfgrid Dashboard is the mainhighlight of this release. We aim to have a simpler workflow for our Threefold users and more unified experience. The supported functionalites for this release are: +- Farm management +- Twin management +- Dedicated nodes +- Tfchain DAO +- Transferring money to TFChain accounts +- Swapping tokens on Binance and stellar +- Exploring farms +- Explorring nodes +- Grid statistics + +service is deployed on https://dashboard.test.grid.tf + +### Uhuru v1.4.0 (beta) +- Improved mobile View +- Improved multiple screen size views +- Added support and usability for more browsers (Firefox, Safari, etc) +- Added features on chat group management +- Full backend rewrite for improved performance, stability and security + +### TFConnect App v3.6.0 +- UX rewrite on for userflows like the welcome screen, registration screen, planetary network and many more +- Added Planetary network for iOS users \ No newline at end of file diff --git a/collections/manual/knowledge_base/about/roadmap/releasenotes/tfgrid_release_3_7_0.md b/collections/manual/knowledge_base/about/roadmap/releasenotes/tfgrid_release_3_7_0.md new file mode 100644 index 0000000..5294152 --- /dev/null +++ b/collections/manual/knowledge_base/about/roadmap/releasenotes/tfgrid_release_3_7_0.md @@ -0,0 +1,101 @@ +# ThreeFold Grid v3.7.0 Release Note + +Release Note of ThreeFold Grid v3.7.0. +It includes updates, improvements and fixes of numerous grid components as described below. + + +## Component Upgrades + +### ThreeFold Wallet v3.7.0 +- Include the option to show transaction details (Sender, Receiver, Memo, Blockchain hash, Amount, Asset, Date +- Added Farmer types details +- GraphQL types fix +- Enabled wallet deletion +- Wallet Cache fixes +- Bugs fixes and generic improvements + +### ThreeFold Connect v3.7.0 +- Improved loading of webpages +- Released the IOS version of planetary network +- Improved login flow (backend) +- Removed the concept of .3bot from the app registration and other display +- Re-enable TFChain bridge after twin changed +- Backend: Upgraded from Vue v2 to Vue v3 +- Backend: Full kubernetes test deploy stack. +- Frontend: Add typescript, tailwind. Removed the use of vuetify +- Generic Bug fixes + + +### ThreeFold Grid Proxy Client v1.5.9 +- Initial Grid Proxy Client implementation +- Includes the gridproxy API client along with API-specific information +- Includes classes that represent entities in the context of the API in the sub-module model (for making conversions between JSON objects and V objects). +- Added CI pipeline to run tests + + +### ThreeFold Chain v2.1.0 +- Improved Validation for Public Config (Node) by Implementing a maximum size on all types that are filled in by the user or ZOS tfchain +- Improved Validation for Interfaces (Node) by Implementing a maximum size on all types that are filled in by the user or ZOS tfchain +- Improved Validationfor Public IPs (Farm) +- Improved Validation for Twin IPs +- Reworked public IPs on Contract, they are now shown as a list with the actual public IP object +- Executed billing in a transactional operation tfchain +- Added Restriction of deployment hash length (32 bytes) + +### Planetary Network v.3.7.0 +- Added support for M1 Mac. +- Refresh list of peers. +- Allow extra peers to be added by TF org. +- Fix UI crashing/lags +- Build for Ubuntu, Windows, Build for Mac + +### Freeflow Twin Beta 1.5 +- Major Rebranding from Uhuru to Freeflow Twin +- Generic Bug fixes +- Enabled tagging people in chats +- Improved dev setup +- Improved staging+production link setup. +- Self-deploy improvements. +- PWA support +- Add info labels +- HTML encoding of messages +- Overflow handling +- Remember login session +- Chat: Added File upload progress view +- Chat: Added Link preview +- Chat: Adding more search options + +### TFGrid Dashboard v1.1.4 +- UX/UI : Updated Color Palette +- Updated Font styles +- Updated sidebar menu UX to include TF Portal, TF Explorer +- Enabled day/night mode +- TFGrid Explorer: Added Nodes page, Statistic Page, and Farms page ON TFGrid Explorer +- TFGrid Explorer: Added category of listed nodes as (dedicated, rented, and arentable) +- TFGrid Stats: Updated Minting Details on TF Dashboard +- TFGrid Stats: show receipts of previous nodes +- TFGrid Stats: Added Calendar UI +- Clickable Live Support Chat Popup + +### TF Playground v1.4.4 +- UX/UI : Updated Color Palette +- Updated Fonts. +- New Deployment/Solutions Icons in the sidebar. +- New Actions Icons in the deployment list. +- Added Solution Categories +- Enabled custom ‘Presearch instance’ deployment +- New Capacity Filter +- Add IPv4 Planetary Network Filter for specific instance deployments +- Newly improved Capacity Management for solution deployment: enabling the setting of a full VM as the default Virtual Machine for deployment, +- Easily fund a deployment profile / ID by scanning your ID wallet QR Code +- Profile Manager: Avoid losing deployment with Grace Period Listing +- provide a simple list where you can select one of the online Grid gateways +- Profile Management: Add ‘Confirmation’ popup before deleting a deployment profile +- Added an Identifier for the current network in the sidebar (main/test/devnet) +- TF Playground Wallet: show unlocked/locked tokens in balance +- Profile Management: allow a user to create a profile with no SSH key. +- TFGrid Client TS supports Algorand, Stellar, and TFChain Modules. +- NEW Node Pilot Instance Deployment +- NEW Subsquid Solution + + diff --git a/collections/manual/knowledge_base/about/roadmap/releasenotes/tfgrid_release_3_8_0.md b/collections/manual/knowledge_base/about/roadmap/releasenotes/tfgrid_release_3_8_0.md new file mode 100644 index 0000000..9142adf --- /dev/null +++ b/collections/manual/knowledge_base/about/roadmap/releasenotes/tfgrid_release_3_8_0.md @@ -0,0 +1,74 @@ +# ThreeFold Grid v3.8.0 Release Note + +Release Note of ThreeFold Grid v3.8.0. +Live on Testnet 02/02/2023 + +This release note includes updates, improvements and fixes of numerous grid components as described below: + +## The Components + +- TFChain v2.2.0 +- ZOS v3.4.0 +- TF Weblets v1.6.0 +- TF Dashboard v1.3.0 +- TFGrid Client v1.5.0 +- TFGrid Proxy v1.6.5 +- Terraform v1.6.0 + +## 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. +- 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 + +### ZOS v3.4.0 +This release was mainly focused on the stabilization of ZOS, Monitoring Support, upgrading components and fixing bugs as described below: +- Vector and Node-exporter support for [monitoring](https://metrics.grid.tf/) +- Bugfixes / hardening around uptime reports, capacity reports and QSFS workloads cleanup +- Added fixes for Grace Period regression +- Added fixes for ZOS Nodes Recovery after Network Outages +- Uptime reports rework: allowing it to happen every 40 minutes, instead of evey 2 hours +- Added Grace Period Workload Regression fixes + +[3.4 milestone](https://github.com/threefoldtech/zos/milestone/11) for more details + +### TF Weblets v1.6.0 +- Support [Algorand](https://www.algorand.com/) solution deployment +- Simplified Weblet's Profile Manager +- Support [Mastodon](https://joinmastodon.org/) solution deployment +- Upgraded [Discourse](https://www.discourse.org/) solution deployment support +- Various bugfixes and [UI Improvements](https://github.com/orgs/threefoldtech/projects/172/views/6) + +For more detailed information on this component release, please see [TF Weblets v1.6.0 Milestone](https://github.com/threefoldtech/grid_weblets/milestone/10) + +### TF Dashboard v1.3.0 +- Fixed broken 'Filter by Farm ID' +- Added fixes on HRU Filter +- Added Validation function on recipient's TFT address +- Added updates to sidebar icons +- Improved new farm addition function +- Added node filters validations fix +- Support filtering nodes by farm name +- Added Monitoring dashboard + +For more detailed information on this component release, please see [TF Dashboard v1.3.0 Milestone](https://github.com/threefoldtech/tfgrid_dashboard/milestone/12) + +### TFGrid Client 1.5.0 +- Added ZLogs workload support +- Added documentation updates + +### Terraform 1.6.0 +- Capacity planning upgrade +- Added Kubernetes token validation function + +## TFGrid Proxy v1.6.5 +- Added fixes on dedicated nodes reservation +- Added fixes on TCP connection leaks +- Added Swagger Docs fixes +- Added Updates to stats endpoint +- Added new queries for total resources +- Added more parameters to /nodes enpoint for filter by twin_id and node_id + +For more detailed information on this component release, please see [TFGrid Proxy v1.6.5 Milestone](https://github.com/threefoldtech/tfgridclient_proxy/milestone/5) diff --git a/collections/manual/knowledge_base/about/roadmap/releasenotes/tfgrid_release_3_9_0.md b/collections/manual/knowledge_base/about/roadmap/releasenotes/tfgrid_release_3_9_0.md new file mode 100644 index 0000000..972cb78 --- /dev/null +++ b/collections/manual/knowledge_base/about/roadmap/releasenotes/tfgrid_release_3_9_0.md @@ -0,0 +1,170 @@ +# ThreeFold Grid v3.9.0 Release Note + +Release Note of ThreeFold Grid v3.9.0. + +- Live on Mainnet 12/04/2023 +- Live on Testnet 23/03/2023 + + +This release is mainly around power management/capacity planning orchestrated by the farmerbot based on Wake-on Lan (WOL) and the reliable message bus (RMB) and the toolings update to utilize both. It also includes several other updates, improvements and fixes of numerous grid components as described below: + +## The Components + +- TFChain v2.3.0 +- ZOS v3.6.0 +- TF Farmerbot v1.0.0 +- TF Weblets v1.7.0 +- TF Dashboard v1.4.0 +- TF Gridclient v2.0.0 +- TF Gridproxy v1.7.0 +- Terraform v1.8.x +- RMB-RS v1.0.2 +- TFChain-GraphQL v2.9.0 + +## Upgrades and Improvement Highlights + +Below are some of the highlights of TFGrid v3.9.0 component upgrades and improvements. +Feel free to check [TFGrid v3.9.0 Project](https://github.com/orgs/threefoldtech/projects/172) for a more detailed overview of the TFGrid v3.9.0 release. + + +### RMB-RS v1.0.2 + +Reliable Message Bus Relay (RMB-RS) is a secure communication panel that allows bots to communicate together in a chat-like way. It makes it very easy to host a service or a set of functions to be used by anyone, even if your service is running behind NAT. + +- Guarantee authenticity of the messages. You are always sure that the received message is authentic from the sender. +- 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. + +> Below is the list of the __Public Relay Addresses__ hosted by Threefold: + +- Dev: wss://relay.dev.grid.tf +- QA: wss://relay.qa.grid.tf +- Test: wss://relay.test.grid.tf +- Main: wss://relay.grid.tf + +__Impacted Clients:__ + +- [RMB-SDK-TS](https://github.com/threefoldtech/rmb-sdk-ts/releases/tag/v1.1.1) +- [RMB-SDK-GO](https://github.com/threefoldtech/rmb-sdk-go/releases/tag/v1.0.0) + + +### TFChain v2.3.0 + +On this release, we modified the twin objects on TFChain and removed the notion of an `IP`. We added 2 fields (`Relay` and `PK`) onto the twins. + +- __Relay__: an RMB Relay Address which a client can connect to (See RMB changes) +- __PK__: a public key for an encryption key which can be used to encrypt messages on the Public Relay, if not set, traffic will be unencrypted. + +__Impacted Clients:__ + +- [Grid3_Client_RS](https://github.com/threefoldtecharchive/grid3_client_rs/releases/tag/v0.2.0) + +### TFChain-GraphQL v2.9.0 + +An important note for users, that multiple steps would be required to upgrade your TFChain-GraphQL into the latest v2.9.0 release, as described below: + +1. Restart the ingester from scratch using the new config +2. Restart the processor from scratch using the new code + +Please make sure all data is wiped before restarting both services. + +### TF Famerbot v1.0.0 + +TF Farmerbot is a new component that aim as a power management solution that would allow farmer to setup to enable Wake-on-LAN mechanism on their farms. + +## Other Component Changelogs + +### TFChain v2.3.0 + +- Fixed locked balances +- Added extra field to twin for publickey +- Fixed serial number validation was blocking nodes from registration +- Added fixes on Farming policies on Testnet +- Allow farms to Add public IP ranges +- Support power management and capacity planning +- Fixed TFT price on mainnet +- Reworked migrations +- Set node's last uptime when the node send an uptime event +- Disable twin deletion +- Bug fixes around data validations, and more. + +Please follow [this milestone](https://github.com/threefoldtech/tfchain/milestone/11) for more. + +### ZOS v3.6.0 + +- Support Switching dhcpd from udhcpd +- WOL support +- Power Management support +- Fixed gateways backend validation +- Added number of workloads and deployments to zos reported statistics +- Support the new RMB and Relay +- Provide clearer messaging during twin registration + +Please follow [this milestone](https://github.com/threefoldtech/zos/milestone/12) for more details + +### TF Farmerbot v1.0.0 + +- Initial Release +- Added Support for Power Management feature +- Added Support for Capacity Planning feature + +### TF Weblets v1.7.0 + +- NEW Wordpress solution +- NEW Umbrel solution +- Added live button support +- Better error reporting mechanism +- Support Mnemonics field editing +- Removed flash messages after successfull deployment + +Please follow [this milestone](https://github.com/threefoldtech/grid_weblets/milestone/9) for more details + +### TF Dashboard v1.4.0 + +- Public IP validation +- RenameD 'Swap' page to 'Bridge' +- Support setting Relay and Public Key +- Added filter by Country validation +- Filter farms by pricing policy support +- Resource pricing calculator discount distinction between shared and dedicated nodes + +Please follow [this milestone](https://github.com/threefoldtech/tfgrid_dashboard/milestone/13) for more details + +### TF GridClient v2.0.0 + +- Added Support for RMB and Public Key of Twins +- Added Support for Farmerbot +- Added pricing calculator module +- Support service contracts +- Added size property to QSFS model +- HTTP server mode allows configuration file for user credentials +- Added fixes on 'Filter nodes by farmID' featue + +### Terraform v1.8.x + +- Added Support for RMB and RMB Relay +- Added Support for deployment using direct client +- Added Support for parallel deployment of resources +- Expand resources and data sources documentation + +Please follow [this milestone](https://github.com/threefoldtech/terraform-provider-grid/milestone/16) for more details + +## RMB v1.0.2 + +The new version of RMB written in Rust + +- Added Federation support +- Added Signing and end-to-end encryption +- RMB-Peer for compatibility +- Added Ratelimiting support + +## TFGrid Proxy v1.7.0 + +- Removed the proxying features, obsoleted by the new RMB. + +Please follow [this milestone](https://github.com/threefoldtech/tfgridclient_proxy/milestone/6) for more details + + + diff --git a/collections/manual/knowledge_base/about/roadmap/roadmap_readme.md b/collections/manual/knowledge_base/about/roadmap/roadmap_readme.md new file mode 100644 index 0000000..acf698c --- /dev/null +++ b/collections/manual/knowledge_base/about/roadmap/roadmap_readme.md @@ -0,0 +1,11 @@ +# ThreeFold Grid and Product Roadmap + +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 + +## 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 diff --git a/collections/manual/knowledge_base/about/tfchain.md b/collections/manual/knowledge_base/about/tfchain.md new file mode 100644 index 0000000..f7d875a --- /dev/null +++ b/collections/manual/knowledge_base/about/tfchain.md @@ -0,0 +1,30 @@ +

TFChain

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [TFChain Uses](#tfchain-uses) + +*** + +## Introduction + +TFChain is a blockchain based on Parity Substrate which manages the TFGrid 3.x. + +TFChain is a combination of TFChain nodes. + +## TFChain Uses + +This blockchain is used for: + +- storing information as needed on the ThreeFold Grid + - identity information of entities (person and company) + - 3node phone book, where are the 3nodes, how much capacity, which farmer + - TF Farmer's, where are they based, how long active, reputation + - DigitalTwin Phonebook, registry of all digital_twins, where are they, public key, unique id, ... (\*1) + - Reputation information : how good is a farmer, uptime of a 3Node (\*2) + - Account_Metadata which is information about a digital currency wallet/account needed for vesting, locking, ... +- backend for Consensus_Engine. +- smartcontract_it layer (how to provision workloads on top of TFGrid) +- the backend for TFChainDB + diff --git a/collections/manual/knowledge_base/about/threefold_ag.md b/collections/manual/knowledge_base/about/threefold_ag.md new file mode 100644 index 0000000..2d1c69f --- /dev/null +++ b/collections/manual/knowledge_base/about/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/manual/knowledge_base/about/threefold_companies.md b/collections/manual/knowledge_base/about/threefold_companies.md new file mode 100644 index 0000000..280a3f0 --- /dev/null +++ b/collections/manual/knowledge_base/about/threefold_companies.md @@ -0,0 +1,40 @@ +

ThreeFold Related Companies

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Companies Overview](#companies-overview) + +*** + +## Introduction + +The following companies are related parties to ThreeFold. Our terms and conditions apply. + +## Companies Overview + +| 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 | +| 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 | + + +| SOME LARGER FARMERS | | +| ------------------- | ---------------------------------------------------------------- | +| Green Edge | Early ThreeFold Farmer providing decentralized compute & storage | +| Bancadati | Large ThreeFold Farmer in Switzerland | +| 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 diff --git a/collections/manual/knowledge_base/about/threefold_dubai.md b/collections/manual/knowledge_base/about/threefold_dubai.md new file mode 100644 index 0000000..9c1836b --- /dev/null +++ b/collections/manual/knowledge_base/about/threefold_dubai.md @@ -0,0 +1,61 @@ +

ThreeFold Dubai

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Responsibilities](#responsibilities) +- [NEW 2023](#new-2023) +- [Some memories from 2015+](#some-memories-from-2015) +- [Structure: Oct 2021 - Dec 2022](#structure-oct-2021---dec-2022) +- [Official License](#official-license) + +*** + +## Introduction + +ThreeFold Dubai is the original team of ThreeFold operated from Dubai and Belgium. We started in 2016. + +## Responsibilities + +- Promote ThreeFold Grid and the ThreeFold Token +- 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 + +## NEW 2023 + +ThreeFold Dubai = ThreeFold DMCC and will launch a commercial business on top of the TFGrid. + +See more info in [this google doc](https://docs.google.com/document/d/10Ieu1D00vZdVNP9nQESk4WMszAM5vqi8XoWzSBy3xPU/edit) + +## Some memories from 2015+ + +At one point in time we had our office on the 74th floor of a building close to the Dubai International Airport. It was a cool spot with a great view, but we also realized the importance of being located closer to the ground. We only stayed there for just a little more than 1 year. + +![](img/view_dubai.jpg) +![](img/dubai_office1.jpg) + +Our main office was and still is in Al Jadaf which is, interestingly enough, a boat shipyard. This is where a lot of the ideas and work has been done to make ThreeFold possible. + +![](img/al_jadaf.jpg) +![](img/aljadaf2.jpg) + +The tower on the left in the photo above is where our office was. The place behind (to the right) is called Al Jadaf. We decided to do something different compared to most. No office in a fancy office building. Instead we have our office next to the water in a very old shipyard. Very unique, and it much more cost effective as well. (-: + +Still today there are more than 100 servers located there in our testlab, and the ThreeFold Dubai was run from there. + +## Structure: Oct 2021 - Dec 2022 + +- ThreeFold Dubai is our operational HQ from where all Foundation activities are coordinated. +- ThreeFold Dubai was mainly funded from TFTech (during 2019-2022), this will now change in 2023 +- ThreeFold Dubai sometimes uses ThreeFold Labs IT which is a Dubai onshore company for when we need onshore activities like visa's for our people, workpermits, invoicing, ... ThreeFold Labs IT is just a services company to deal with some of these practical elements. + +Adnan Fatayerji is the managing director and shareholder, in the future the shares of ThreeFold Dubai will be 100% owned by The OurWorld Venture Creator + +## Official License + +Please see below the ThreeFold DMCC license: + +![](img/threefold_dmcc_license_certificate.jpg) + diff --git a/collections/manual/knowledge_base/about/threefold_history.md b/collections/manual/knowledge_base/about/threefold_history.md new file mode 100644 index 0000000..df6c74c --- /dev/null +++ b/collections/manual/knowledge_base/about/threefold_history.md @@ -0,0 +1,59 @@ +

ThreeFold History

+ +

Table of Contents

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

ThreeFold Tech

+ +

Table of Contents

+ +- [Overview](#overview) +- [Location](#location) + +*** + +## Overview + +Company developing & promoting software for self-healing, self-driving cloud & blockchain workloads. Has developed most of the software as used in the ThreeFold_Grid. + +- TFTech is working together with industry partners to sell its software + - Major partners: HPE, Solidaridad, Kleos (learn more on [threefold.io/partners](https://threefold.io/partners) +- Income - License and OEM agreements involving the TFTech technology: - License fees can be in the form of a revenue share on commercial products being developed on top of the TF platform. - With respect to the TF Grid, a fee of 10% of revenue generated is charged + for as a license fee for certified edge Internet Capacity registered on the TF Grid + network +- Investors to this point: + - Self-funded by founders & current funding round + +see https://threefold.tech/ + +We believe that doing good for the world and growing a successful software company can go hand in hand. + +ThreeFold Tech is a Belgium-based for-profit software company that believes that doing good for the world and building a successful company can go hand-in-hand. They are responsible for the technology behind the ThreeFold_Grid. + +ThreeFold Tech business wise focusses on + +- [X] sell licenses to companies and/or governments to deploy private versions of our cloud technology. +- [X] create an antidote for the Cyberpandemic, help customers to protect themselves against this huge threat. + +The company is 80% engineering centric today. + +> TFTech has no links to tokens, at this point (March 2021) does not own any of them either. All Token & TFGrid activities are coordinate from ThreeFold Dubai. + +![](img/threefold_tech.jpg) + +## Location + +![](img/threefold_tech_location.jpg) diff --git a/collections/manual/knowledge_base/about/threefold_vzw.md b/collections/manual/knowledge_base/about/threefold_vzw.md new file mode 100644 index 0000000..584653f --- /dev/null +++ b/collections/manual/knowledge_base/about/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/manual/knowledge_base/about/token_history.md b/collections/manual/knowledge_base/about/token_history.md new file mode 100644 index 0000000..613d000 --- /dev/null +++ b/collections/manual/knowledge_base/about/token_history.md @@ -0,0 +1,96 @@ +

Token History

+ +

Table of Contents

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

ThreeFold Special Wallets

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Exchange and OTC Wallets](#exchange-and-otc-wallets) +- [ThreeFold Contribution Wallets](#threefold-contribution-wallets) +- [Wisdom Council Wallets](#wisdom-council-wallets) +- [Important Note](#important-note) +- [Remarks](#remarks) + +*** + +## Introduction + +We present special wallets that hold a given amount of TFT. + +## Exchange and OTC Wallets + +| **Description** | **TFT Balance** | **Address** | +| ------------------ | ----------- | -------------------------------------------------------------------------------- | +| Liquid Exchange #1 | {{#include ./wallet_data/GA7OPN4A3JNHLPHPEWM4PJDOYYDYNZOM7ES6YL3O7NC3PRY3V3UX6ANM.md}} | [GA7OPN4A3JNHLPHPEWM4PJDOYYDYNZOM7ES6YL3O7NC3PRY3V3UX6ANM](https://stellar.expert/explorer/public/account/GA7OPN4A3JNHLPHPEWM4PJDOYYDYNZOM7ES6YL3O7NC3PRY3V3UX6ANM) | +| Liquid Exchange #2 | {{#include ./wallet_data/GDSKFYNMZWTB3V5AN26CEAQ27643Q3KB4X6MY4UTO2LIIDFND4SPQZYU.md}} | [GDSKFYNMZWTB3V5AN26CEAQ27643Q3KB4X6MY4UTO2LIIDFND4SPQZYU](https://stellar.expert/explorer/public/account/GDSKFYNMZWTB3V5AN26CEAQ27643Q3KB4X6MY4UTO2LIIDFND4SPQZYU) | +| gettft.com | {{#include ./wallet_data/GBQHN7RL4LSRPR2TT74ID2UJPZ2AXCHQY2WKGCTDLJM3NXVJ7GQHUCOD.md}} | [GBQHN7RL4LSRPR2TT74ID2UJPZ2AXCHQY2WKGCTDLJM3NXVJ7GQHUCOD](https://stellar.expert/explorer/public/account/GBQHN7RL4LSRPR2TT74ID2UJPZ2AXCHQY2WKGCTDLJM3NXVJ7GQHUCOD) | +| BTC-Alpha Exchange | {{#include ./wallet_data/GBTPAXXP6534UPC4MLNGFGJWCD6DNSRVIPPOZWXAQAWI4FKTLOJY2A2S.md}} | [GBTPAXXP6534UPC4MLNGFGJWCD6DNSRVIPPOZWXAQAWI4FKTLOJY2A2S](https://stellar.expert/explorer/public/account/GBTPAXXP6534UPC4MLNGFGJWCD6DNSRVIPPOZWXAQAWI4FKTLOJY2A2S) | + +## ThreeFold Contribution Wallets + +| **Description** | **TFT Balance** | **Address** | +| ------------------------------- | ----------- | -------------------------------------------------------------------------------- | +| TF DAY2DAY operations | {{#include ./wallet_data/GB2C5HCZYWNGVM6JGXDWQBJTMUY4S2HPPTCAH63HFAQVL2ALXDW7SSJ7.md}} | [GB2C5HCZYWNGVM6JGXDWQBJTMUY4S2HPPTCAH63HFAQVL2ALXDW7SSJ7](https://stellar.expert/explorer/public/account/GB2C5HCZYWNGVM6JGXDWQBJTMUY4S2HPPTCAH63HFAQVL2ALXDW7SSJ7) | +| TF Promotion Wallet | {{#include ./wallet_data/GDLVIB44LVONM5K67LUPSFZMSX7G2RLYVBM5MMHUJ4NAQJU7CH4HBJBO.md}} | [GDLVIB44LVONM5K67LUPSFZMSX7G2RLYVBM5MMHUJ4NAQJU7CH4HBJBO](https://stellar.expert/explorer/public/account/GDLVIB44LVONM5K67LUPSFZMSX7G2RLYVBM5MMHUJ4NAQJU7CH4HBJBO) | +| TF Grants Wallet | {{#include ./wallet_data/GDKXTUYNW4BJKDM2L7B5XUYFUISV52KUU4G7VPNLF4ZSIKBURM622YPZ.md}} | [GDKXTUYNW4BJKDM2L7B5XUYFUISV52KUU4G7VPNLF4ZSIKBURM622YPZ](https://stellar.expert/explorer/public/account/GDKXTUYNW4BJKDM2L7B5XUYFUISV52KUU4G7VPNLF4ZSIKBURM622YPZ) | +| ThreeFold Carbon Credit Funding | {{#include ./wallet_data/GDIJY6K2BBRIRX423ZFUYKKFDN66XP2KMSBZFQSE2PSNDZ6EDVQTRLSU.md}} | [GDIJY6K2BBRIRX423ZFUYKKFDN66XP2KMSBZFQSE2PSNDZ6EDVQTRLSU](https://stellar.expert/explorer/public/account/GDIJY6K2BBRIRX423ZFUYKKFDN66XP2KMSBZFQSE2PSNDZ6EDVQTRLSU) | +| TF Team Wallet | {{#include ./wallet_data/GCWHWDRXYPXQAOYMQKB66SZPLM6UANKGMSL4SP7LSOIA6OTTOYQ6HBIH.md}} | [GCWHWDRXYPXQAOYMQKB66SZPLM6UANKGMSL4SP7LSOIA6OTTOYQ6HBIH](https://stellar.expert/explorer/public/account/GCWHWDRXYPXQAOYMQKB66SZPLM6UANKGMSL4SP7LSOIA6OTTOYQ6HBIH) | + +## Wisdom Council Wallets + +| **Description** | **TFT Balance** | **Address** | +| --------------------------------------- | ----------- | -------------------------------------------------------------------------------- | +| Liquidity/Ecosystem Contribution Wisdom | {{#include ./wallet_data/GBV734I2SV4YDDPVJMYXU3IZ2AIU5GEAJRAD4E4BQG7CA2N63NXSPMD6.md}} | [GBV734I2SV4YDDPVJMYXU3IZ2AIU5GEAJRAD4E4BQG7CA2N63NXSPMD6](https://stellar.expert/explorer/public/account/GBV734I2SV4YDDPVJMYXU3IZ2AIU5GEAJRAD4E4BQG7CA2N63NXSPMD6) | +| TF Promotion Wisdom | {{#include ./wallet_data/GAI4C2BGOA3YHVQZZW7OW4FHOGGYWTUBEVNHB6MW4ZAFG7ZAA7D5IPC3.md}} | [GAI4C2BGOA3YHVQZZW7OW4FHOGGYWTUBEVNHB6MW4ZAFG7ZAA7D5IPC3](https://stellar.expert/explorer/public/account/GAI4C2BGOA3YHVQZZW7OW4FHOGGYWTUBEVNHB6MW4ZAFG7ZAA7D5IPC3) | +| TF Grants Wisdom | {{#include ./wallet_data/GCEJ7DMULFTT25UH4FAAGOZ6KER4WXAYQGJUSIITQD527DGTKSXKBQGR.md}} | [GCEJ7DMULFTT25UH4FAAGOZ6KER4WXAYQGJUSIITQD527DGTKSXKBQGR](https://stellar.expert/explorer/public/account/GCEJ7DMULFTT25UH4FAAGOZ6KER4WXAYQGJUSIITQD527DGTKSXKBQGR) | +| TF Team Wisdom | {{#include ./wallet_data/GAQXBLFG4BZGIVY6DBJVWE5EAP3UNHMIA2PYCUVLY2JUSPVWPUF36BW4.md}} | [GAQXBLFG4BZGIVY6DBJVWE5EAP3UNHMIA2PYCUVLY2JUSPVWPUF36BW4](https://stellar.expert/explorer/public/account/GAQXBLFG4BZGIVY6DBJVWE5EAP3UNHMIA2PYCUVLY2JUSPVWPUF36BW4) | +| Wisdom Council Locked | {{#include ./wallet_data/GAUGOSYLCX7JZTQYF2K7RIMHFWKSA3WSI2OQ4IRKXMDMVE6ABJIJMFQR.md}} | [GAUGOSYLCX7JZTQYF2K7RIMHFWKSA3WSI2OQ4IRKXMDMVE6ABJIJMFQR](https://stellar.expert/explorer/public/account/GAUGOSYLCX7JZTQYF2K7RIMHFWKSA3WSI2OQ4IRKXMDMVE6ABJIJMFQR) | + +## Important Note + +ThreeFold DMCC (Dubai) is in the process of acquiring a substantial number of tokens. While these tokens possess liquidity from a technical standpoint, they are not currently accessible or traded on the open market. This reserve of tokens has been allocated for our upcoming commercial rollout, and their governance will be managed through consensus based system with input from the community. + +## Remarks + +- All wisdom council wallets are protected by multisignature of the members of the wisdom council +- All foundation wallets are protected by members of the foundation (4 on 6 need to sign) +- Signatures can be checked by going to detail of account and then to the stellar link +- The foundation will never spend tokens if the markets cannot support it and all proceeds are 100% used for the benefit of the ThreeFold project. diff --git a/collections/manual/knowledge_base/about/token_overview/token_overview.md b/collections/manual/knowledge_base/about/token_overview/token_overview.md new file mode 100644 index 0000000..4319621 --- /dev/null +++ b/collections/manual/knowledge_base/about/token_overview/token_overview.md @@ -0,0 +1,90 @@ +

ThreeFold Token Overview

+ +

Table of Contents

+ +- [Introduction to TFT](#introduction-to-tft) +- [Proof-of-Capacity](#proof-of-capacity) +- [Proof-of-Utilization](#proof-of-utilization) + - [Proof-of-Utility Distribution Flow](#proof-of-utility-distribution-flow) +- [TFT Distribution](#tft-distribution) +- [TFT Marketcap and Market Price](#tft-marketcap-and-market-price) +- [Complemetary Information](#complemetary-information) +- [Disclaimer](#disclaimer) + +*** + +## Introduction to TFT + +ThreeFold tokens, or TFTs, are exclusively generated when new capacity is added to the TF Grid. There are no centralized issuers. Tokens have not been created out of thin air. + +While the ThreeFold Grid can expand, a maximum of 1 billion TFTs can ever be in circulation. This limit ensures stability of value and incentivization for all stakeholders. + +TFT lives on the Stellar Blockchain. TFT holders benefit from a big ecosystem of proven wallets and mediums of exchange. + +By employing Stellar technology, TFT transactions and smart contracts are powered by one of the most energy-efficient blockchains available. Furthermore, TFT is the medium of exchange on the greenest internet network in the world. The market for farming, cultivating and trading TFT is open to all. + +Anyone with internet connection, power supply and necessary hardware can become a Farmer or trade ThreeFold tokens (TFT). + +By farming, buying, holding, and utilizing ThreeFold Tokens, you are actively supporting the expansion of the ThreeFold Grid and its use cases — creating a more sustainable, fair, and equally accessible Internet. + +## Proof-of-Capacity + +ThreeFold uses proof-of-capacity to mint tokens. Since the genenis pool, all tokens that are being minted are the result of farming. Minting will stop during 2024, to keep the total amount of TFT at 1 billion, instead of the previously planned 4 billion. Read more about this [here](https://forum.threefold.io/t/end-feb-2024-update-from-the-team/4233). + +> For more details, see [Proof of Capacity](../../farming/proof_of_capacity.md) + +## Proof-of-Utilization + +TFT is used on the TFGrid to purchase network, compute and storage resources through the proof-of-utilization protocol. + +### Proof-of-Utility Distribution Flow + +![](img/token_distribution.png) + +> For more details, see [Proof-of-Utilization](../../farming/proof_of_utilization.md) + +## TFT Distribution + +The supply distribution of TFT is as follows: + +| Supply Distribution | Qty (Millions) | +| ------------------- | -------------- | +| Total supply | 942 | +| TF Foundation Supply | 162 | +| Circulating supply | 780 | +| Maximum supply | 1000 | + +The total supply of TFT is distributed as follows: + +| Total Supply Distribution | Qty (Millions) | +| ------------------------------------------- | -------------- | +| TF Foundation: Ecosystem Grants | 22 | +| TF Foundation: Promotion & Marketing Effort | 100 | +| TF Foundation: Ecosystem Contribution & Liquidity Exchanges | 40 | +| Genesis Pool & Farming Rewards | 780 | + +## TFT Marketcap and Market Price + +The TFT market price and marketcap are as follows: + +| **Description** | **Value** | +| ------------------------- | ------------- | +| TFT Market Price | {{#include ../../../values/tft_value.md}} USD | +| TFT Market Cap | {{#include ../../../values/tft_marketcap.md}} USD | + +The market cap is equal to the product of the TFT market price and the circulating supply. + +> Market Cap = (TFT Market Price) X (TFT Circulating Supply) + +The values here are subject to change. Check the current market conditions. + +## Complemetary Information + +- [ThreeFold History](../../about/threefold_history.md) +- [Token History](../../about/token_history.md) +- [Special Wallets](./special_wallets/stats_special_wallets.md) + +## Disclaimer + +> Important Note: The ThreeFold Token (TFT) is not an investment instrument. +TFTs represent IT capacity on the ThreeFold Grid, farmers create TFT, developers use TFT. \ No newline at end of file diff --git a/collections/manual/knowledge_base/cloud/cloud_toc.md b/collections/manual/knowledge_base/cloud/cloud_toc.md new file mode 100644 index 0000000..4a50bd7 --- /dev/null +++ b/collections/manual/knowledge_base/cloud/cloud_toc.md @@ -0,0 +1,16 @@ +

Cloud

+ +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. + +

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 diff --git a/collections/manual/knowledge_base/cloud/cloudunits.md b/collections/manual/knowledge_base/cloud/cloudunits.md new file mode 100644 index 0000000..e9f34c4 --- /dev/null +++ b/collections/manual/knowledge_base/cloud/cloudunits.md @@ -0,0 +1,69 @@ +

Cloud Units

+ +

Table of Contents

+ +- [What are Cloud Units?](#what-are-cloud-units) +- [How is the price of Cloud Units (v4) calculated?](#how-is-the-price-of-cloud-units-v4-calculated) + - [Compute Capacity](#compute-capacity) + - [Storage Capacity](#storage-capacity) + - [Network](#network) + +*** + +## What are Cloud Units? +Cloud units are the basis for price calculation for anyone intending to use/deploy on the Threefold Grid. + +Cloud units are a unified way to account for virtual hardware resources on the ThreeFold Grid. They represent compute, storage and network equivalents to energy (kW - kilowatt). The are three categories of cloud units: + +- Compute Unit (CU): The amount of data processing power in terms of virtual CPU (vCPU) cores (logical [CPUs](https://en.wikipedia.org/wiki/Central_processing_unit)) and Random Access Momory ([RAM](https://en.wikipedia.org/wiki/Random-access_memory)). +- 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. + +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. + +## How is the price of Cloud Units (v4) calculated? + +The following tables display how cloud units (v4) are calculated on the ThreeFold Grid. The 4th version of cloud units are used since Grid 2.2+ in mid 2020. + +### Compute Capacity + +| CU (Compute Unit) | | | | | +| ------------------------------------- | --- | --- | ---- | --------------- | +| GB Memory | 4 | 8 | 2 | | +| nr vCPU | 2 | 1 | 4 | | +| Passmark Minimum (expected is double) | 500 | 250 | 1000 | CPU performance | + +The passmark (CPU benchmark or alternative) is not measured on the grid yet. It is used in simulators to check the mechanisms and ensure enough performance per CU is delivered. + +Example of Compute unit: +- 4 GB memory & 2 virtual CPU (and 50GB of SSD disk space) +- 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). + +### Storage Capacity + +| SU (Storage Unit) | HDD | SSD | +| ------------------- | ---- | --- | +| GB Storage Capacity | 1200 | 200 | + +HDD is only usable for Zero Database driven storage (e.g. ThreeFold Quantum Safe Storage). 1.2 TB of HDD is provided following the advised storage policy of 16+4 with 20% overhead. So the net usable storage would be 1TB. In other words, the SU corresponds in that case to 1TB of net usable storage and an extra 200GB for redundancy. + +Example of Storage unit: + +- 1TB of usable storage as provided by the Zero-DBs (the backend storage systems) +- 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). + +### Network + +| NU (Network Unit = per GB) = NRU per month | GB (NRU) | +| ------------------------------------------ | -------- | +| 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 diff --git a/collections/manual/knowledge_base/cloud/cloudunits_advanced.md b/collections/manual/knowledge_base/cloud/cloudunits_advanced.md new file mode 100644 index 0000000..05bd98c --- /dev/null +++ b/collections/manual/knowledge_base/cloud/cloudunits_advanced.md @@ -0,0 +1,52 @@ +# Cloud Units Advanced + +## How is the price of Cloud Units (v4) calculated? + +The following tables display how cloud units (v4) are calculated on the ThreeFold Grid. The 4th version of cloud units are used since Grid 2.2+ in mid 2020. + +> Note: [Resource units](resource_units.md) are used to calculate SU & CU. Resource Units are used to measure compute and storage capacity produced by hardware. + +### Compute Capacity + +| CU (Compute Unit) | | | | | +| ------------------------------------- | --- | --- | ---- | --------------- | +| GB Memory | 4 | 8 | 2 | | +| nr vCPU | 2 | 1 | 4 | | +| Passmark Minimum (expected is double) | 500 | 250 | 1000 | CPU performance | + +The passmark (CPU benchmark or alternative) is not measured on the grid yet. It is used in simulators to check the mechanisms and ensure enough performance per CU is delivered. + +Example of Compute unit: + +- 4 GB memory & 2 virtual CPU (and 50GB of SSD disk space) +- 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). + +### Storage Capacity + +| SU (Storage Unit) | HDD | SSD | +| ------------------- | ---- | --- | +| GB Storage Capacity | 1200 | 200 | + +HDD is only usable for Zero Database driven storage (e.g. ThreeFold Quantum Safe Storage). 1.2 TB of HDD is provided following the advised storage policy of 16+4 with 20% overhead. So the net usable storage would be 1TB. In other words, the SU corresponds in that case to 1TB of net usable storage and an extra 200GB for redundancy. + +Example of Storage unit: + +- 1TB of usable storage as provided by the Zero-DBs (the backend storage systems) +- 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). + +### Network + +| NU (Network Unit = per GB) = NRU per month | GB (NRU) | +| ------------------------------------------ | -------- | +| 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), a way to measure the compute and storage capacity produced by hardware. + + + diff --git a/collections/manual/knowledge_base/cloud/grid_billing/grid_billing.md b/collections/manual/knowledge_base/cloud/grid_billing/grid_billing.md new file mode 100644 index 0000000..771d59d --- /dev/null +++ b/collections/manual/knowledge_base/cloud/grid_billing/grid_billing.md @@ -0,0 +1,422 @@ +

Grid Billing

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Resources to Update](#resources-to-update) + - [Current TFT Price](#current-tft-price) + - [Current Cloud Units Values](#current-cloud-units-values) +- [Node Contract](#node-contract) + - [Calculating the CU](#calculating-the-cu) + - [Calculating the SU](#calculating-the-su) + - [Calculating the Billing Rate for the Contract](#calculating-the-billing-rate-for-the-contract) + - [Applying the Discounts](#applying-the-discounts) +- [Rent Contract](#rent-contract) + - [Getting the Resources](#getting-the-resources) + - [Calculating the CU](#calculating-the-cu-1) + - [Calculating the SU](#calculating-the-su-1) + - [Calculating the Billing Rate for the Contract](#calculating-the-billing-rate-for-the-contract-1) + - [Applying the Dedicated Node Discount](#applying-the-dedicated-node-discount) + - [Applying the Staking Discount](#applying-the-staking-discount) +- [Name Contract](#name-contract) + - [Applying the Staking Discount](#applying-the-staking-discount-1) +- [Public IP](#public-ip) + - [Applying the Staking Discount](#applying-the-staking-discount-2) +- [Network Usage](#network-usage) + - [Data Usage](#data-usage) + - [NU Value](#nu-value) + - [Applying the Staking Discount](#applying-the-staking-discount-3) +- [Billing History](#billing-history) + +*** + +## Introduction + +In this section, we explain how the billing works on the TFGrid by showing different examples such as node, rent and name contracts as well as public IP and network usage. + + + +## Resources to Update + +Some of the used resources should be updated whenever you try to do these calculations, these resources are the TFT price and the cloud units (SU and CU). + +### Current TFT Price + +TFT price can be retrieved directly through [Stellar](https://stellar.expert/explorer/public/asset/TFT-GBOVQKJYHXRR3DX6NOX2RRYFRCUMSADGDESTDNBDS6CDVLGVESRTAC47-1?asset[]=TFT-GBOVQKJYHXRR3DX6NOX2RRYFRCUMSADGDESTDNBDS6CDVLGVESRTAC47-1&filter=markets&market=USDC-GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN-1) or from the [Dashboard](https://dashboard.grid.tf/), through the price available in the header. + +![image](./img/grid_billing_1.png) + +### Current Cloud Units Values + +The current cloud units values can be retrieved directly from TChain with the [Polkadot UI](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftfchain.grid.tf#/chainstate) and the current chain state. + +- On the page `Chain State`, select `tfgridModule` as the `selected state query` +- Select `pricingPolicies(u32): Option` +- Enter the value of the default pricing policy, which is `1`, or enter the value of any other policy if you need to use a custom one +- Press `Enter` + +![image](./img/grid_billing_2.png) + +> Note: Values on chain are expressed as "units USD per hour", where "1 unit USD" == 10.000.000 (or 1e7) + +## Node Contract + +For this example, we will assume that the resources for this deployment are the following: + +``` +CRU: 2 +MRU: 2 +SRU: 15 +HRU: 0 +``` + +### Calculating the CU + +Let's calculate the CU of this deployment. + +For our example, the CU value is `10 mUSD/h`. Make sure that this value is updated according to the current values. + +``` +CU = min( max(MRU/4, CRU/2), max(MRU/8, CRU), max(MRU/2, CRU/4) ) + = min( max(2/4, 2/2), max(2/8, 2), max(2/2, 2/4) ) + = min( max(0.5, 1), max(0.25, 2), max(1, 0.5) ) + = min( 1, 2, 1 ) + = 1 +CU cost/hour = CU * CU pricing + = 1 * 10 mUSD/h + = 10 mUSD/h +``` + + +### Calculating the SU + +Let's calculate the SU of this deployment. + +The current SU value is `5 mUSD/h`. Make sure that this value is updated according to the current values. + +``` +SU = HRU/1200 + SRU/200 + = 0/1200 + 15/200 + = 0 + 0.075 + = 0.075 +SU cost/hour = SU * SU pricing + = 0.075 * 5 mUSD/h + = 0.375 mUSD/h +``` + + +### Calculating the Billing Rate for the Contract + +Let's calculate the billing rate by combining the CU and SU from above. + +For this example, the current TFT value is `0.011 USD`. Make sure that this value is updated according to the current TFT value. + +``` +Contract cost/hour = CU cost/hour + SU cost/hour + = 10 mUSD/h + 0.375 mUSD/h + = 10.375 mUSD/h + = 0.010375 USD/h + = 0.010375 * 24 * 30 + = 7.47 USD/month + = 679.090909 TFT/month + = 0.943182 TFT/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). + +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). + +The 60% discount is thus equivalent to paying only 40% of the total price, as shown below: + +``` +Cost with 60% discount = 0.943182 * 0.4 + = 0.377273 TFT/hour +``` + + +## Rent Contract + + +### Getting the Resources + +You can get the resources of a node using different methods. You can use Grid Proxy, GraphQL and the Polkadot UI. + +- Using Grid Proxy + - Grid Proxy API + - Go to the section [nodes endpoint](https://gridproxy.grid.tf/swagger/index.html#/GridProxy/get_nodes__node_id_) + - Click on `Try it out` + - Write the node ID + - Click on `Execute` + - Grid Proxy URL + - You can use the following URL and replace by the node ID: + ``` + https://gridproxy.grid.tf/nodes/ + ``` + +- Using GraphQL + + Navigate to [ThreeFold's GraphQL](https://graphql.grid.tf/graphql), then use the following query and replace the node id with the desired node id. + + ``` + query MyQuery { + nodes(where: {nodeID_eq: 83}) { + id + farmingPolicyId + resourcesTotal { + cru + mru + sru + hru + } + } + } + + ``` + +- TFChain and Polkadot UI + - On the page Chain State of the [polakdot UI](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftfchain.grid.tf#/chainstate), select `tfgridModule` as the `selected state query` + - Select `nodes(u32): Option` + - Enter the node ID + - Press `Enter` + + ![image](./img/grid_billing_3.png) + + +For our example, these are the resources for node `83` that will be used for the calculations. + +``` +CRU = 4 +SRU = 119.24 +HRU = 1863 +MRU = 15.55 +``` + +### Calculating the CU + +Let's calculate the CU of this deployment. + +For our example, the CU value is `10 mUSD/h`. Make sure that this value is updated according to the current values. + +``` +CU = min( max(MRU/4, CRU/2), max(MRU/8, CRU), max(MRU/2, CRU/4) ) + = min( max(15.55/4, 4/2), max(15.55/8, 4), max(15.55/2, 4/4) ) + = min( max(3.8875, 2), max(1.94375, 4), max(7.775, 1) ) + = min( 3.8875, 4, 7.775 ) + = 3.8875 +CU cost/hour = CU * CU pricing + = 3.8875 * 10 mUSD/h + = 38.875 mUSD/h +``` + + +### Calculating the SU + +For our example, the SU value is `5 mUSD/h`. Make sure that this value is updated according to the current values. + +``` +SU = HRU/1200 + SRU/200 + = 1863/1200 + 119.24/200 + = 1.5525 + 0.5962 + = 2.1487 +SU cost/hour = SU * SU pricing + = 2.1487 * 5 mUSD/h + = 10.7435 mUSD/h +``` + +### Calculating the Billing Rate for the Contract + +For our example, the current TFT value is `0.011 USD`. Make sure that this value is updated according to the current values. + +``` +Contract cost/hour = CU cost/hour + SU cost/hour + = 38.875 mUSD/h + 10.7435 mUSD/h + = 49.6185 mUSD/h + = 0.0496185 USD/h + = (0.0496185 * 24 * 30) + = 35.72532 USD/month + = 3247.75636 TFT/month +``` + +### 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). + +``` +Cost with 50% discount = 35.72532 * 0.5 + = 17.86266 TFT/month +``` + +### 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). + +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). + + + +``` +Cost with 60% discount = 17.86266 * 0.4 + = 7.145064 TFT/month +``` + +## Name Contract + +Let's calculate the cost of a name contract. + +For our example, we use the following value from the Pricing Policy. + +![image](./img/grid_billing_4.png) + +This value can then be converted to USD. + +``` +uniqueName in USD = 2500 / 10000000 + = 0.00025 USD/hour + +``` +Since the current TFT conversion rate is `1 USD = 100 TFT`, we have the following: + +``` +uniqueName in TFT = 0.00025 * 100 + = 0.025 TFT/hour +``` + +### 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). + +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). + +``` +Cost with 60% discount = 0.025 * 0.4 + = 0.01 TFT/hour + +``` + +## Public IP + +Let's calculate the cost of public IPs. + +For our example, we use the following value from the Pricing Policy. + +![image](./img/grid_billing_5.png) + +This value can then be converted to USD. + +``` +Public IP in USD = 40000 / 10000000 + = 0.004 USD/hour + +``` + +Since the current TFT conversion rate is `1 USD = 100 TFT`, we have the following: + +``` +Public IP in TFT = 0.004 * 100 + = 0.4 TFT/hour +``` + +### 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). + +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). + +``` +Cost with 60% discount = 0.4 * 0.4 + = 0.16 TFT/hour + +``` + +> Note: This value gets added to the billing rate of your deployment. + + +## Network Usage + +Network Usage is calculated for deployments with public IPs. It's reported every hour and its cost can be calculated approximately as follows, where the data usage is the value of data sent and received: + +``` +network usage = data usage * NU value +``` + +### Data Usage + +To start, let's calculate the data usage. This can be tracked with a network tool like [nload](https://github.com/rolandriegel/nload), where the total amount of data sent and received can be displayed. + +![image](./img/grid_billing_6.png) + + +### NU Value + +Let's find the NU value of this deployment. + +For our example, we use the following value from the Pricing Policy. + +![image](./img/grid_billing_7.png) + +This value can then be converted to USD. + +``` +NU price in USD = 15000 / 10000000 + = 0.0015 USD/hour + +``` +Since in our example the current TFT conversion rate is `1 USD = 100 TFT`, we have the following: + +``` +NU price in TFT = 0.0015 * 100 + = 0.15 TFT/hour +``` + +### 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). + +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). + +``` +Cost with 60% discount = 0.15 * 0.4 + = 0.06 TFT/hour + +``` + +As an example, let's assume that we used a total of 10GB in the last hour, so the next hour the billing rate should be updated to: + +``` +Total network usage = 10GB * 0.06 TFT/hour + = 0.6 TFT/hour +``` + +The billing rate in the next hour should be the following: + +``` +hourly billing rate = actual cost of the deployment + total network usage +``` + + +> Note: The calculated value will always be an approximation since it's not possible to manually calculate the exact value of the data used. + + +## Billing History + +Since the billing rate gets updated hourly, you can check the billing history from [GraphQL](https://graphql.grid.tf/graphql) using the following query. Make sure to enter the proper contract ID. + +``` +query MyQuery { + contractBillReports(where: {contractID_eq: ""}) { + contractID + amountBilled + discountReceived + timestamp + } +} + +``` \ No newline at end of file diff --git a/collections/manual/knowledge_base/cloud/grid_billing/img/grid_billing_1.png b/collections/manual/knowledge_base/cloud/grid_billing/img/grid_billing_1.png new file mode 100644 index 0000000..b6123fa Binary files /dev/null and b/collections/manual/knowledge_base/cloud/grid_billing/img/grid_billing_1.png differ diff --git a/collections/manual/knowledge_base/cloud/grid_billing/img/grid_billing_2.png b/collections/manual/knowledge_base/cloud/grid_billing/img/grid_billing_2.png new file mode 100644 index 0000000..a3d647e Binary files /dev/null and b/collections/manual/knowledge_base/cloud/grid_billing/img/grid_billing_2.png differ diff --git a/collections/manual/knowledge_base/cloud/grid_billing/img/grid_billing_3.png b/collections/manual/knowledge_base/cloud/grid_billing/img/grid_billing_3.png new file mode 100644 index 0000000..216ebb6 Binary files /dev/null and b/collections/manual/knowledge_base/cloud/grid_billing/img/grid_billing_3.png differ diff --git a/collections/manual/knowledge_base/cloud/grid_billing/img/grid_billing_4.png b/collections/manual/knowledge_base/cloud/grid_billing/img/grid_billing_4.png new file mode 100644 index 0000000..9a6f291 Binary files /dev/null and b/collections/manual/knowledge_base/cloud/grid_billing/img/grid_billing_4.png differ diff --git a/collections/manual/knowledge_base/cloud/grid_billing/img/grid_billing_5.png b/collections/manual/knowledge_base/cloud/grid_billing/img/grid_billing_5.png new file mode 100644 index 0000000..8b9a85c Binary files /dev/null and b/collections/manual/knowledge_base/cloud/grid_billing/img/grid_billing_5.png differ diff --git a/collections/manual/knowledge_base/cloud/grid_billing/img/grid_billing_6.png b/collections/manual/knowledge_base/cloud/grid_billing/img/grid_billing_6.png new file mode 100644 index 0000000..51a0e26 Binary files /dev/null and b/collections/manual/knowledge_base/cloud/grid_billing/img/grid_billing_6.png differ diff --git a/collections/manual/knowledge_base/cloud/grid_billing/img/grid_billing_7.png b/collections/manual/knowledge_base/cloud/grid_billing/img/grid_billing_7.png new file mode 100644 index 0000000..6317825 Binary files /dev/null and b/collections/manual/knowledge_base/cloud/grid_billing/img/grid_billing_7.png differ diff --git a/collections/manual/knowledge_base/cloud/img/cloudunits_abstract.jpg b/collections/manual/knowledge_base/cloud/img/cloudunits_abstract.jpg new file mode 100644 index 0000000..4e5e089 Binary files /dev/null and b/collections/manual/knowledge_base/cloud/img/cloudunits_abstract.jpg differ diff --git a/collections/manual/knowledge_base/cloud/pricing/cloud_pricing_compare.md b/collections/manual/knowledge_base/cloud/pricing/cloud_pricing_compare.md new file mode 100644 index 0000000..5b95675 --- /dev/null +++ b/collections/manual/knowledge_base/cloud/pricing/cloud_pricing_compare.md @@ -0,0 +1,55 @@ +

Price comparison Cloudorado

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Compute](#compute) + - [Compute Conclusion](#compute-conclusion) +- [Storage](#storage) + - [Storage Conclusion](#storage-conclusion) + +*** + +## Introduction + +We compare cloud pricing with Cloudorado. Note that the information here can be subject to change and might not reflect current market prices. + +## Compute + +A ThreeFold Compute Unit is (CU) + +- 4 GB memory +- 2 virtual CPU cores + +A good site to compare is Cloudorado: https://www.cloudorado.com/ + +![](img/cloudorado_compute_choices.jpg ':size=600x240') + +| Compute | Compute | +| --------------------------------- | --------------------------------- | +| ![](img/cloudorado_compute_1.jpg) | ![](img/cloudorado_compute_2.jpg) | + + +### Compute Conclusion + +> Our price can easily be < 10 USD for 1 compute unit (CU)
+> In market, this is between 36 and 202 USD + +## Storage + +A ThreeFold Storage Unit is (SU) + +- 1 TB of storage + +Again, a good site to compare is Cloudorado: https://www.cloudorado.com/ + +![](img/cloudorado_storage_choices.jpg ':size=600x270') + +![](img/cloudorado_storage_1.jpg ':size=500x610') + +### Storage Conclusion + +> Our price can easily be < 8 USD for 1 storage unit (CU)
+> In market, this is between 19 and 154 USD + + \ No newline at end of file diff --git a/collections/manual/knowledge_base/cloud/pricing/cloudunits_pricing.md b/collections/manual/knowledge_base/cloud/pricing/cloudunits_pricing.md new file mode 100644 index 0000000..f8ab13d --- /dev/null +++ b/collections/manual/knowledge_base/cloud/pricing/cloudunits_pricing.md @@ -0,0 +1,69 @@ + +![](img/tfgrid_pricing.jpg) + +## Cloud Unit Pricing + +| Cloud Units | description | mUSD | mTFT | +| ----------------- | ------------------------------------------------ | ------------------ | ------------------ | +| Compute Unit (CU) | typically 2 vcpu, 4 GB mem, 50 GB storage | $CU_MUSD_HOUR/hour | $CU_MTFT_HOUR/hour | +| Storage Unit (SU) | typically 1 TB of netto usable storage (*) | $SU_MUSD_HOUR/hour | $SU_MTFT_HOUR/hour | +| Network Unit (NU) | 1 GB transfer, bandwidth as used by TFGrid users | $NU_MUSD_GB/GB | $NU_MTFT_GB/GB | + + +| Network Addressing | description | mUSD | mTFT | +| ------------------ | ------------------------------------------ | --------------------- | --------------------- | +| IPv4 Address | Public Ip Address as used by a TFGrid user | $IP_MUSD_HOUR/hour | $IP_MTFT_HOUR/hour | +| Unique Name | Usable as name on webgateways | $NAME_MUSD_HOUR/hour | $NAME_MTFT_HOUR/hour | +| Unique Domain Name | Usable as dns name on webgateways | $DNAME_MUSD_HOUR/hour | $DNAME_MTFT_HOUR/hour | + +- mUSD = 1/1000 of USD, mTFT = 1/1000 of TFT +- TFT pricing pegged to USD (pricing changes in line with TFT/USD rate) +- **current TFT to USD price is $TFTUSD** , calculated on $NOW +- pricing is calculated per hour for the TFGrid 3.0 + + + +### Pricing Expressed Per Month + +| Cloud Units | description | USD NO DISCOUNT | USD 60% DISCOUNT | +| ----------------- | ------------------------------------------------ | ------------------- | ---------------------------- | +| Compute Unit (CU) | typically 2 vcpu, 4 GB mem, 50 GB storage | $CU_USD_MONTH/month | $CU_USD_MONTH_DISCOUNT/month | +| Storage Unit (SU) | typically 1 TB of netto usable storage (*) | $SU_USD_MONTH/month | $SU_USD_MONTH_DISCOUNT/month | +| Network Unit (NU) | 1 GB transfer, bandwidth as used by TFGrid users | $NU_USD_GB/GB | $NU_USD_MONTH_DISCOUNT/GB | +| IPv4 Address | Public Ip Address as used by a TFGrid user | $IP_USD_MONTH/month | $IP_USD_MONTH_DISCOUNT/month | + + +> Please check pricing calculator on http://pricing.threefold.me + +### Dedicated Servers + +Starting April 2022, the TFGrid 3.0/a5 has support for dedicated servers. You can reserve a full server and the server is only usable for you, a minimum of 70% discount is given for this usecase. + +- Dedicated Node, 192 GB mem, 24 cores, 1000 GB SSD = 75 USD per month (max discount, 3Y staking) +- Dedicated Node, 32 GB mem, 8 cores, 1000 GB SSD = 31 USD per month (max discount, 3Y staking) + +Above example was with generous 5TB of bandwidth used per node per month, which is huge. + +These nodes are ideal to deploy blockchain nodes, or other high demanding workloads. Dedicated nodes leads to amazing pricing. + +To use a dedicated node, you will have to reserve a 3node for yourself in your admin portal of TFGrid, only you can then deploy on this node and there is no additional cost. + +> Please check pricing calculator on http://pricing.threefold.me + + +### How to buy and use capacity + +- More info about [how to use the grid see here](grid_use) +- See our manual how to get started. +- [TFT's can be bought on multiple locations](how_to_buy). + +### More Info + +- See [here for more info about planet positive certification](certified_farming) +- Pricing is done based on cloud units, see [cloudunits](cloudunits) + +!!!include:staking_discount_levels + +!!!def alias:tfpricing,cloudunit_pricing,threefold_pricing + +!!!tfpriceinfo diff --git a/collections/manual/knowledge_base/cloud/pricing/img/cloudorado.jpg b/collections/manual/knowledge_base/cloud/pricing/img/cloudorado.jpg new file mode 100644 index 0000000..1cf6e01 Binary files /dev/null and b/collections/manual/knowledge_base/cloud/pricing/img/cloudorado.jpg differ diff --git a/collections/manual/knowledge_base/cloud/pricing/img/cloudorado_compute_1.jpg b/collections/manual/knowledge_base/cloud/pricing/img/cloudorado_compute_1.jpg new file mode 100644 index 0000000..0f261ff Binary files /dev/null and b/collections/manual/knowledge_base/cloud/pricing/img/cloudorado_compute_1.jpg differ diff --git a/collections/manual/knowledge_base/cloud/pricing/img/cloudorado_compute_2.jpg b/collections/manual/knowledge_base/cloud/pricing/img/cloudorado_compute_2.jpg new file mode 100644 index 0000000..1284fa9 Binary files /dev/null and b/collections/manual/knowledge_base/cloud/pricing/img/cloudorado_compute_2.jpg differ diff --git a/collections/manual/knowledge_base/cloud/pricing/img/cloudorado_compute_choices.jpg b/collections/manual/knowledge_base/cloud/pricing/img/cloudorado_compute_choices.jpg new file mode 100644 index 0000000..7074de6 Binary files /dev/null and b/collections/manual/knowledge_base/cloud/pricing/img/cloudorado_compute_choices.jpg differ diff --git a/collections/manual/knowledge_base/cloud/pricing/img/cloudorado_storage_1.jpg b/collections/manual/knowledge_base/cloud/pricing/img/cloudorado_storage_1.jpg new file mode 100644 index 0000000..022c737 Binary files /dev/null and b/collections/manual/knowledge_base/cloud/pricing/img/cloudorado_storage_1.jpg differ diff --git a/collections/manual/knowledge_base/cloud/pricing/img/cloudorado_storage_choices.jpg b/collections/manual/knowledge_base/cloud/pricing/img/cloudorado_storage_choices.jpg new file mode 100644 index 0000000..d18a2a3 Binary files /dev/null and b/collections/manual/knowledge_base/cloud/pricing/img/cloudorado_storage_choices.jpg differ diff --git a/collections/manual/knowledge_base/cloud/pricing/img/tfgrid_pricing.jpg b/collections/manual/knowledge_base/cloud/pricing/img/tfgrid_pricing.jpg new file mode 100644 index 0000000..5775ded Binary files /dev/null and b/collections/manual/knowledge_base/cloud/pricing/img/tfgrid_pricing.jpg differ diff --git a/collections/manual/knowledge_base/cloud/pricing/pricing.md b/collections/manual/knowledge_base/cloud/pricing/pricing.md new file mode 100644 index 0000000..8854e3d --- /dev/null +++ b/collections/manual/knowledge_base/cloud/pricing/pricing.md @@ -0,0 +1,98 @@ +

Cloud Unit Pricing

+ +

Table of Contents

+ +- [Pricing Policy](#pricing-policy) +- [Pricing Expressed Per Month](#pricing-expressed-per-month) +- [Operation Fees](#operation-fees) +- [Certified Capacity](#certified-capacity) +- [Dedicated Nodes](#dedicated-nodes) +- [Staking Discount](#staking-discount) + - [Example for 40% discount (Silver)](#example-for-40-discount-silver) + +*** + +## Pricing Policy + +- The current prices are for resources usage on mainnet (testnet get 50% discount) +- A month is considered as 30 days (720 hours) + +| Cloud Units | Description | mUSD | mTFT | +| ----------------- | ------------------------------------------------ | ------------------ | ------------------ | +| Compute Unit (CU) | typically 2 vcpu, 4 GB mem, 50 GB storage | {{#include ../../../values/CU_MUSD_HOUR.md}}/hour | {{#include ../../../values/CU_MTFT_HOUR.md}}/hour | +| Storage Unit (SU) | typically 1 TB of netto usable storage (*) | {{#include ../../../values/SU_MUSD_HOUR.md}}/hour | {{#include ../../../values/SU_MTFT_HOUR.md}}/hour | +| Network Unit (NU) | 1 GB transfer, bandwidth as used by TFGrid users | {{#include ../../../values/NU_MUSD_HOUR.md}}/hour | {{#include ../../../values/NU_MTFT_HOUR.md}}/hour | + +
+ +| Network Addressing | Description | mUSD | mTFT | +| ------------------ | ------------------------------------------ | --------------------- | --------------------- | +| IPv4 Address | Public Ip Address as used by a TFGrid user | {{#include ../../../values/IP_MUSD_HOUR.md}}/hour | {{#include ../../../values/IP_MTFT_HOUR.md}}/hour | +| Unique Name | Usable as name on webgateways | {{#include ../../../values/NAME_MUSD_HOUR.md}} | {{#include ../../../values/NAME_MTFT_HOUR.md}}/hour | +| Unique Domain Name | Usable as dns name on webgateways | {{#include ../../../values/DNAME_MUSD_HOUR.md}}/hour | {{#include ../../../values/DNAME_MTFT_HOUR.md}}/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 {{#include ../../../values/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 | +| ----------------- | ------------------------------------------------ | ------------------- | ---------------------------- | +| 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 + +Operations on TFChain have a base fee of 0.001 TFT. Creating and destroying deployments usually includes several operations. + +## Certified Capacity + +Renting capacity on certified nodes is charged 25% extra (x 1.25). + +## Dedicated Nodes + +Since April 2022, TFGrid has introduced dedicated server support. With dedicated servers, you can reserve a full server exclusively for your use. This comes with 50% discount, making it a cost-effective option. + +Here are two examples of dedicated nodes and their prices, with maximum staking discount level (Gold => -60%) for 18 months staking: + +- Dedicated Node 1: 192 GB memory, 24 cores, 1000 GB SSD = $75 per month +- Dedicated Node 2: 32 GB memory, 8 cores, 1000 GB SSD = $31 per month + +> Please check our [Cloud Pricing for utilization sheet](https://docs.google.com/spreadsheets/d/1E6MpGs15h1_flyT5AtyKp1TixH1ILuGo5tzHdmjeYdQ/edit#gid=2014089775) for more details. + +These dedicated nodes come with a generous 5TB bandwidth usage per node per month. They are well-suited for deploying blockchain nodes or other resource-intensive workloads. Using a dedicated node requires reserving a 3node in your TFGrid admin portal. Once reserved, you have exclusive deployment rights for that node, and there are no additional costs. + +When renting a dedicated node, you receive a 50% discount for the entire node. However, it's important to note that you will still be required to pay for the entire node, even with the discount applied. This means that while you enjoy the discount, the cost of the dedicated node is not prorated based on the resources you utilize. + +## Staking Discount + +| Type | Pricing Level | Nr months of TFT linked to account | +| ---------- | ------------- | ---------------------------------- | +| No staking | - 0% | 0 | +| Default | - 20% | 1.5 months | +| Bronze | - 30% | 3 months | +| Silver | - 40% | 6 months | +| Gold | - 60% | 18 months | + +TFChain charges users for proof of utilization on an hourly basis. The discount applied is determined by the amount of TFT (ThreeFold Token) available in the user's TFChain account. It's important to note that the discount is calculated based on the TFT balance in the TFChain account, not on other supported blockchains like Stellar. + +This discount mechanism operates automatically, and users don't need to take any specific actions to avail themselves of this benefit. However, it's worth mentioning that the maximum discount for network-related services is 40%. + +### Example for 40% discount (Silver) + +Let's break down the example for a 40% discount on Internet Capacity consumption: + +- Suppose your consumption on the ThreeFold Grid is worth 10 TFT per hour. +- To be eligible for a 40% discount, you need to have a minimum of 43,200 TFT in your account, calculated as 10 TFT * 24 hours * 30 days * 6 months. +- Similarly, to be eligible for a 60% discount, you would need a minimum of 129,600 TFT in your account, calculated as 10 TFT * 24 hours * 30 days * 18 months. +- If you have 60,000 TFT in your TFChain account, you would receive a 40% discount. +- However, since you don't have enough tokens to qualify for the 60% discount, it won't be applicable. +- With the 40% discount, your effective payment for the consumption would be 6 TFT per hour, as long as the amount of TFT in your account falls within the range of 43,200 to 129,600 (as calculated above). + +Keep in mind that these calculations are based on the example provided and the specific discount levels mentioned. \ No newline at end of file diff --git a/collections/manual/knowledge_base/cloud/pricing/pricing_toc.md b/collections/manual/knowledge_base/cloud/pricing/pricing_toc.md new file mode 100644 index 0000000..8e7a128 --- /dev/null +++ b/collections/manual/knowledge_base/cloud/pricing/pricing_toc.md @@ -0,0 +1,8 @@ +# Pricing + +

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 diff --git a/collections/manual/knowledge_base/cloud/pricing/sidebar.md b/collections/manual/knowledge_base/cloud/pricing/sidebar.md new file mode 100644 index 0000000..71e6615 --- /dev/null +++ b/collections/manual/knowledge_base/cloud/pricing/sidebar.md @@ -0,0 +1,5 @@ +- [**Home**](@threefold_home) +----- +**Pricing** +- [Cloud Pricing](@pricing) +- [Cloud Pricing Compare](@cloud_pricing_compare) diff --git a/collections/manual/knowledge_base/cloud/pricing/staking_discount_levels.md b/collections/manual/knowledge_base/cloud/pricing/staking_discount_levels.md new file mode 100644 index 0000000..0c4f62e --- /dev/null +++ b/collections/manual/knowledge_base/cloud/pricing/staking_discount_levels.md @@ -0,0 +1,34 @@ +

Staking Discount Levels

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Table of Discounts](#table-of-discounts) +- [Example for 40% discount](#example-for-40-discount) + +*** + +## Introduction + +By staking TFT on their TFChain wallet, TFGrid users can benefit to discounts up to 60%. + +## Table of Discounts + +| type | pricing level | nr months of TFT linked to account | +| ---------- | ------------- | ---------------------------------- | +| no staking | - 0% | 0 | +| default | - 20% | 3 months | +| bronze | - 30% | 6 months | +| silver | - 40% | 12 months | +| gold | - 60% | 36 months | + +TFChain charges the user for proof_of_utilization every hour. TFChain will calculate the discount based on amount of TFT available in the account of the user on TFChain (not on Stellar or any of the other blockchains we also support). This is an automatic form of staking, the user does not have to do anything to have this benefit. For network related services its max 40% discount. + +## Example for 40% discount + +- I've used 10 TFT worth of Internet Capacity on tf_grid for the last hour. +- 10TFT * 24 * 30 * 12 = I would need 86,400 TFT for one year +- 10TFT * 24 * 30 * 36 = I would need 259,200 TFT for 3 year +- I have 120,000 TFT in my account on TF_Chain, this means that I will get 40% discount. +- I don't have enough tokens to get to 60% discount. + diff --git a/collections/manual/knowledge_base/cloud/pricing/staking_discount_levels0.md b/collections/manual/knowledge_base/cloud/pricing/staking_discount_levels0.md new file mode 100644 index 0000000..75db027 --- /dev/null +++ b/collections/manual/knowledge_base/cloud/pricing/staking_discount_levels0.md @@ -0,0 +1,18 @@ +| type | pricing level | nr months of TFT linked to account | +| ---------- | ------------- | ---------------------------------- | +| no staking | - 0% | 0 | +| default | - 20% | 3 months | +| bronze | - 30% | 6 months | +| silver | - 40% | 12 months | +| gold | - 60% | 36 months | + +TFChain charges the user for proof_of_utilization every hour. TFChain will calculate the discount based on amount of TFT available in the account of the user on TFChain (not on Stellar or any of the other blockchains we also support). This is an automatic form of staking, the user does not have to do anything to have this benefit. For network related services its max 40% discount. + +### Example for 40% discount + +- I've used 10 TFT worth of Internet Capacity on tf_grid for the last hour. +- 10TFT * 24 * 30 * 12 = I would need 86,400 TFT for one year +- 10TFT * 24 * 30 * 36 = I would need 259,200 TFT for 3 year +- I have 120,000 TFT in my account on TF_Chain, this means that I will get 40% discount. +- I don't have enough tokens to get to 60% discount. + diff --git a/collections/manual/knowledge_base/cloud/resource_units_calc_cloudunits.md b/collections/manual/knowledge_base/cloud/resource_units_calc_cloudunits.md new file mode 100644 index 0000000..87a2b99 --- /dev/null +++ b/collections/manual/knowledge_base/cloud/resource_units_calc_cloudunits.md @@ -0,0 +1,89 @@ + +

Resource Units

+ +

Table of Contents

+ +- [Resource Units Overview](#resource-units-overview) + - [Compute](#compute) + - [Storage](#storage) + - [Storage cost price verification Dec 2021](#storage-cost-price-verification-dec-2021) +- [Change Log](#change-log) +- [Remarks](#remarks) + +*** + +## 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. + +Resource units are used to measure and convert capacity on the hardware level into cloud units: CU & SU. + + +| Unit Type | Description | Code | +| ------------ | ------------------------------------ | ---- | +| Core Unit | 1 Logical Core (Hyperthreaded Core) | CRU | +| Mem Unit | 1 GB mem | MRU | +| HD Unit | 1 GB | HRU | +| SSD Unit | 1 GB | SRU | +| Network Unit | 1 GB of bandwidth transmitted in/out | NRU | + +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) + +### Compute + +For farming, 1 CU equals: + +- 2 virtual CPUs with a maximum over subscription of 4 CPUs and minimum required memory of 4GB. +- An over subscription of 4 CPUs remains still gentle as we understand many other providers use more. +- There needs to be at least 50GB SSD per CU, if not there is penalty for nr of CU, reasoning is that otherwise people cannot deploy their VM's or Containers if there would not be minimal SSD. + +```python +cu = min((mru - 1) / 4, cru * 4 / 2, sru / 50) +``` + +- 1 GB of memory is subtracted for the operating system to function. +- please note minimal passmark per CU (with 4GB mem), needs to be 1000 passmark at farming side, this is not being checked today but might be done in future. If your chosen CPU has less than 1000 passmark per CU (of 4 GB mem), it could be your final CU's will be lower once that feature is introduced. + + + + + +### Storage + +For farming, 1 SU equals to: +- 1.2 TB of HD capacity (which can deliver 1 TB of net usable storage) +- 200 GB of SSD capacity with a buffer of 20% + +```python +su = hru / 1200 + sru * 0.8 / 200 +``` + +#### Storage cost price verification Dec 2021 + +- price for 16 TB HDD = 300 USD + - 16000 / 1200 = 13.3 SU + - 1 SU costs = 300 / 13.3 = 22.5 for HDD +- price for 2 TB SSD = 200 USD + - 2000 * 0.8 / 200 = 8 SU + - 1 SU costs 200 / 8 = 25 for SSD + + + + +## Change Log + +- original non final specs from Summer 2021, was mentioned its not final. +- Dec 2021 update for launch v3.x + - there need to be at least 50 GB SSD capacity per CU + - was in the specs of farming reward but formula above did not take it into consideration, in others nonconsistenty between specs & formula. + - sru division to 200, was 300, to be more in line with HDD vs SSD pricing, this check needs to be done +- every 6 months, results in slightly more SU, which is good for farmers. +- Jan 2022 update for launch v3.x + - reverted change done in Dec, sru does not have to be deducted from cpu, results in increase of farming rewards, in other words good for farmers. Also good formula more easy. + - Introduced warning about minimum CPU requirements in relation to passmark. + +## Remarks + +- There seems to be issue in simulator play.grid.tf, will check asap (17-jan) +- We are checking all numbers & the DAO is coming life in Jan/Feb 2022, once we have the DAO every change of the specs needs to be approved by DAO voting members. For now we use the forum to notify and ask feedback and make sure farming reward goes up for the changes if possible. There ia already a minimal DAO life, the blockchain TFChain validators (L1) need to find consensus to upgrade code. diff --git a/collections/manual/knowledge_base/cloud/resourceunits.md b/collections/manual/knowledge_base/cloud/resourceunits.md new file mode 100644 index 0000000..7265f41 --- /dev/null +++ b/collections/manual/knowledge_base/cloud/resourceunits.md @@ -0,0 +1,16 @@ +## Resource Units + +Resource units are used to measure and convert capacity on the hardware level into cloud units: CU & SU. + + +| Unit Type | Description | Code | +| ------------ | ------------------------------------ | ---- | +| Core Unit | 1 Logical Core (Hyperthreaded Core) | CRU | +| Mem Unit | 1 GB mem | MRU | +| HD Unit | 1 GB | HRU | +| SSD Unit | 1 GB | SRU | +| Network Unit | 1 GB of bandwidth transmitted in/out | NRU | + +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 diff --git a/collections/manual/knowledge_base/cloud/resourceunits_advanced.md b/collections/manual/knowledge_base/cloud/resourceunits_advanced.md new file mode 100644 index 0000000..674afb1 --- /dev/null +++ b/collections/manual/knowledge_base/cloud/resourceunits_advanced.md @@ -0,0 +1,62 @@ +

Resource Units Calculation

+ +

Table of Contents

+ +- [Calculation from resource units to CU/SU for farming purposes](#calculation-from-resource-units-to-cusu-for-farming-purposes) +- [Compute](#compute) +- [Storage](#storage) + - [Storage cost price verification Dec 2021](#storage-cost-price-verification-dec-2021) + +*** + +## Calculation from resource units to CU/SU for farming purposes + +The threefold Zero-OS and TFChain software translates resource units (CRU, MRU, HRU, SRU) into cloud units (CU, SU) for farming reward purposes. + +## Compute + +For farming, 1 CU equals: + +- 2 virtual CPUs with a maximum over subscription of 4 CPUs and minimum required memory of 4GB. +- An over subscription of 4 CPUs remains still gentle as we understand many other providers use more. +- There needs to be at least 50GB SSD per CU, if not there is penalty for nr of CU, reasoning is that otherwise people cannot deploy their VM's or Containers if there would not be minimal SSD. + +```python +cu = min((mru - 1) / 4, cru * 4 / 2, sru / 50) +``` + +- 1 GB of memory is subtracted for the operating system to function. +- please note minimal passmark per CU (with 4GB mem), needs to be 1000 passmark at farming side, this is not being checked today but might be done in future. If your chosen CPU has less than 1000 passmark per CU (of 4 GB mem), it could be your final CU's will be lower once that feature is introduced. + + +## Storage + +For farming, 1 SU equals to: +- 1.2 TB of HD capacity (which can deliver 1 TB of net usable storage) +- 200 GB of SSD capacity with a buffer of 20% + +```python +su = hru / 1200 + sru * 0.8 / 200 +``` + +### Storage cost price verification Dec 2021 + +- price for 16 TB HDD = 300 USD + - 16000 / 1200 = 13.3 SU + - 1 SU costs = 300 / 13.3 = 22.5 for HDD +- price for 2 TB SSD = 200 USD + - 2000 * 0.8 / 200 = 8 SU + - 1 SU costs 200 / 8 = 25 for SSD + + + \ No newline at end of file diff --git a/collections/manual/knowledge_base/collaboration/bug_report.md b/collections/manual/knowledge_base/collaboration/bug_report.md new file mode 100644 index 0000000..db75a12 --- /dev/null +++ b/collections/manual/knowledge_base/collaboration/bug_report.md @@ -0,0 +1,29 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: '' +assignees: '' + +--- + +## Describe the bug + +A clear and concise description of what the bug is. + +## To Reproduce + +Steps to reproduce the behavior: + + 1. Go to '...' + 2. Click on '....' + 3. Scroll down to '....' + 4. See error + +## Expected behavior + +A clear and concise description of what you expected to happen. + +## Screenshots + +If applicable, add screenshots to help explain your problem. \ No newline at end of file diff --git a/collections/manual/knowledge_base/collaboration/code_conduct.md b/collections/manual/knowledge_base/collaboration/code_conduct.md new file mode 100644 index 0000000..2c8ffd6 --- /dev/null +++ b/collections/manual/knowledge_base/collaboration/code_conduct.md @@ -0,0 +1,318 @@ +

Code of Conduct

+ +

Table of Contents

+ +- [Introduction: Collaboration Manifest](#introduction-collaboration-manifest) +- [Code of Conduct](#code-of-conduct) + - [Forum \& Chat Rules](#forum--chat-rules) + - [Moderation Rights](#moderation-rights) + - [Contribution](#contribution) + - [Keep It Simple and Relevant](#keep-it-simple-and-relevant) + - [Content Verification Guidelines](#content-verification-guidelines) + - [Freedom of Speech.](#freedom-of-speech) +- [Contribution Guidelines](#contribution-guidelines) + - [This is a Civilized Place for Public Discussion](#this-is-a-civilized-place-for-public-discussion) + - [Improve the Discussion](#improve-the-discussion) + - [Be Agreeable, Even When You Disagree](#be-agreeable-even-when-you-disagree) + - [Your Participation Counts](#your-participation-counts) + - [If You See a Problem, Flag It](#if-you-see-a-problem-flag-it) + - [Always Be Civil](#always-be-civil) + - [Keep It Tidy](#keep-it-tidy) + - [Post Only Your Own Stuff](#post-only-your-own-stuff) + - [Powered by You](#powered-by-you) + - [Terms of Service](#terms-of-service) +- [Terms of Service (TOS)](#terms-of-service-tos) + - [Important Terms](#important-terms) + - [Your Permission to Use the Forum)](#your-permission-to-use-the-forum) + - [Conditions for Use of the Forum](#conditions-for-use-of-the-forum) + - [Acceptable Use](#acceptable-use) + - [Content Standards](#content-standards) + - [Enforcement](#enforcement) + - [Your Account](#your-account) + - [Your Content](#your-content) + - [Your Responsibility](#your-responsibility) + - [Disclaimers](#disclaimers) + - [Limits on Liability](#limits-on-liability) + - [Feedback](#feedback) + - [Termination](#termination) + - [Disputes](#disputes) + - [General Terms](#general-terms) + - [Contact](#contact) + - [Changes](#changes) + +*** + +# Introduction: Collaboration Manifest + +FreeFlow nation created this collaboration manifest which can be freely used by any organization who finds them useful. If you would like to see any changes to this document please email to **info@freeflownation.org**. +We at ThreeFold want to follow these guidelines. + +This document has been created honoring the [FreeFlow Nation Manifesto](https://www.freeflownation.org/manifesto.html). + +# Code of Conduct + +## Forum & Chat Rules + +We are committed to making participation a harassment-free experience for everyone, regardless of level of experience, gender, gender identity or expression, sexual orientation, disability, personal appearance, race, ethnicity, age, religion, or nationality. + +Examples of unacceptable behavior include, but are not limited to: + +* Use of sexualized language or imagery +* Personal attacks +* Trolling or insulting/derogatory comments +* Public or private harassment +* Publishing private information without explicit permission (e.g. physical or electronic address) + +## Moderation Rights + +Content moderators have the right and responsibility to remove, edit, or reject all posts, comments, and other contributions that are not aligned to this Code of Conduct. They may also suspend or ban any forum member for behaviors that they deem inappropriate, threatening, offensive, or harmful. + +By adopting this Code of Conduct, moderators commit themselves to fairly and consistently applying these principles to every aspect of managing this community. Moderators who do not follow or enforce the Code of Conduct may be permanently removed from the moderation team. + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by flagging the post or comment in question. All complaints will be reviewed and investigated and will result in a response deemed both necessary and appropriate to the circumstances. Moderators are obligated to maintain confidentiality regarding the identity of the reporting party. + +The forum is a place where we bring people together that share the same values and want to make the world a better place. Positive feedback is well appreciated but must always stay respectful and helpful. Moderators thus have the right to remove any posts spreading negativity and/or attacking the project and its founders. + +## Contribution + +We welcome everyone to contribute and thank you for your content contribution. + +Content can be chat, questions, answers, blogs, articles, knowledge base information, tutorials, … + +The more people collaborate the more relevant set of information will be created. + +Creating content constitutes your agreement to release submitted content as public domain ([CC0 10 4](https://creativecommons.org/publicdomain/zero/1.0/)). + +## Keep It Simple and Relevant + +Overload of information is maybe even worse as not enough information. + +Please keep your discussions and contributions information-rich. If your signal-to-noise ratio gets too low, you will be muted or banned from the forum or relevant chat. This is up to the discretion of ThreeFold moderators. + +## Content Verification Guidelines + +We believe it’s in the best interest of our community to know the origin and authenticity of any information contributed. We want to do everything possible to verify the authenticity of the content created (e.g. messages, knowledge-base, chats, etc.). As such it’s our right to block a contributor from creating any content if identity cannot be verified. + +## Freedom of Speech. + +We believe in freedom of speech as long as it’s not in contradiction with our Content Verification Guidelines. + +# Contribution Guidelines + +## This is a Civilized Place for Public Discussion + +Please treat this discussion forum with the same respect you would a public park. We, too, are a shared community resource — a place to share skills, knowledge and interests through ongoing conversation. + +These are not hard and fast rules, merely guidelines to aid the human judgment of our community and keep this a clean and well-lighted place for civilized public discourse. + +## Improve the Discussion + +Help us make this a great place for discussion by always working to improve the discussion in some way, however small. If you are not sure your post adds to the conversation, think over what you want to say and try again later. + +The topics discussed here matter to us, and we want you to act as if they matter to you, too. Be respectful of the topics and the people discussing them, even if you disagree with some of what is being said. + +One way to improve the discussion is by discovering ones that are already happening. Spend time browsing the topics here before replying or starting your own, and you’ll have a better chance of meeting others who share your interests. + +## Be Agreeable, Even When You Disagree + +You may wish to respond to something by disagreeing with it. That’s fine. But remember to criticize ideas, not people. Please avoid any of the following: + +* Name-calling +* Ad hominem attacks +* Responding to a post’s tone instead of its actual content +* Knee-jerk contradiction + +Instead, provide reasoned counter-arguments that improve the conversation. + +## Your Participation Counts + +The conversations we have here set the tone for every new arrival. Help us influence the future of this community by choosing to engage in discussions that make this forum an interesting place to be — and avoiding those that do not. + +The forum we use (Discourse) provides tools that enable the community to collectively identify the best (and worst) contributions: bookmarks, likes, flags, replies, edits, and so forth. Use these tools to improve your own experience, and everyone else’s, too. + +Let’s leave our community better than we found it. + +## If You See a Problem, Flag It + +Moderators have special authority: they are responsible for this forum, but so are you. With your help, moderators can be community facilitators, not just janitors or police. + +When you see bad behavior, don’t reply. It encourages bad behavior by acknowledging it, consumes your energy, and wastes everyone’s time. Just flag it. If enough flags accrue, action will be taken, either automatically or by moderator intervention. + +In order to maintain our community, moderators reserve the right to remove any content and any user account for any reason at any time. Moderators do not preview new posts: the moderators and site operators take no responsibility for any content posted by the community. + +## Always Be Civil + +Nothing sabotages a healthy conversation like rudeness: + +* Be civil. Don’t post anything that a reasonable person would consider offensive, abusive, or hate speech. +* Keep it clean. Don’t post anything obscene or sexually explicit. +* Respect each other. Don’t harass or grief anyone, impersonate people, or expose their private information. +* Respect our forum. Don’t post spam or otherwise vandalize the forum. + +These are not concrete terms with precise definitions — avoid even the appearance of any of these things. If you’re unsure, ask yourself how you would feel if your post was featured on the front page of the New York Times. + +This is a public forum, and search engines index these discussions. Keep the language, links, and images safe for family and friends. + +## Keep It Tidy + +Make the effort to put things in the right place, so that we can spend more time discussing and less time cleaning up. + +In brief: + +* Don’t start a topic in the wrong category. +* Don’t cross-post the same thing in multiple topics. +* Don’t post no-content replies. +* Don’t divert a topic by changing it midstream. +* Don’t sign your posts — every post has your profile information attached to it. +* Rather than posting “+1” or “Agreed”, use the Like button. Rather than taking an existing topic in a radically different direction, use Reply as a Linked Topic. + +## Post Only Your Own Stuff + +You may not post anything digital that belongs to someone else without permission. You may not post descriptions of, links to, or methods for stealing someone’s intellectual property (e.g. software, video, audio, images, etc.), or for breaking any other law. + +## Powered by You + +This site is operated by your friendly local staff and you, the community. If you have any further questions about how things should work here, open a new topic in the site feedback category and let’s discuss! If there’s a critical or urgent issue that can’t be handled by a meta topic or flag, contact us via the support live chat. + +## Terms of Service + +Yes, legalese is boring, but we must protect ourselves – and by extension, you and your data – against unfriendly folks. We have a Terms of Service describing your (and our) behavior and rights related to content, privacy, and laws. To use this service, you must agree to abide by our TOS. See below for more information on this. + +# Terms of Service (TOS) + +These terms include a number of important provisions that affect your rights and responsibilities, such as the disclaimers in Disclaimers, limits on the company’s liability to you in Limits on Liability, your agreement to cover the company for damages caused by your misuse of the forum in Responsibility for Your Use, and an agreement to arbitrate disputes in Disputes. + +Please read: + +To use this forum, or any other collaboration/communication tool of ThreeFold you must agree to these terms with threefold, the company that runs the forum or any other tool (FreeFlow Pages and others). + +The company may offer other products and services, under different terms. These terms apply only to use of the forum. + +## Important Terms + +These terms include a number of important provisions that affect your rights and responsibilities, such as the disclaimers in [Disclaimers](#disclaimers), limits on the company’s liability to you in [Limits on Liability](#limits-on-liability), your agreement to cover the company for damages caused by your misuse of the forum in [Responsibility for Your Use](#your-responsibility), and an agreement to arbitrate disputes in [Disputes](#disputes). + +## Your Permission to Use the Forum) + +Subject to these terms, the company gives you permission to use the forum. Everyone needs to agree to these terms to use the forum. + +## Conditions for Use of the Forum + +Your permission to use the forum is subject to the following conditions: + +1. You must be at least thirteen years old. +2. You may no longer use the forum if the company contacts you directly to say that you may not. +3. You must use the forum in accordance with [Acceptable Use](#acceptable-use) and [Content Standards](#content-standards). + +## Acceptable Use + +1. You may not break the law using the forum. +2. You may not use or try to use another’s account on the forum without their specific permission. +3. You may not buy, sell, or otherwise trade in user names or other unique identifiers on the forum. +4. You may not send advertisements, chain letters, or other solicitations through the forum, or use the forum to gather addresses or other personal data for commercial mailing lists or databases. +5. You may not automate access to the forum, or monitor the forum, such as with a web crawler, browser plug-in or add-on, or other computer program that is not a web browser. You may crawl the forum to index it for a publicly available search engine, if you run one. +6. You may not use the forum to send e-mail to distribution lists, newsgroups, or group mail aliases. +7. You may not falsely imply that you’re affiliated with or endorsed by the company. +8. You may not hyperlink to images or other non-hypertext content on the forum on other webpages. +9. You may not remove any marks showing proprietary ownership from materials you download from the forum. +10. You may not show any part of the forum on other websites with \. +11. You may not disable, avoid, or circumvent any security or access restrictions of the forum. +12. You may not strain infrastructure of the forum with an unreasonable volume of requests, or requests designed to impose an unreasonable load on information systems underlying the forum. +13. You may not impersonate others through the forum. +14. You may not encourage or help anyone in violation of these terms. + +## Content Standards + +1. You may not submit content to the forum that is illegal, offensive, or otherwise harmful to others. This includes content that is harassing, inappropriate, or abusive. +2. You may not submit content to the forum that violates the law, infringes anyone’s intellectual property rights, violates anyone’s privacy, or breaches agreements you have with others. +3. You may not submit content to the forum containing malicious computer code, such as computer viruses or spyware. +4. You may not submit content to the forum as a mere placeholder, to hold a particular address, user name, or other unique identifier. +5. You may not use the forum to disclose information that you don’t have the right to disclose, like others’ confidential or personal information. + +## Enforcement + +The company may investigate and prosecute violations of these terms to the fullest legal extent. The company may notify and cooperate with law enforcement authorities in prosecuting violations of the law and these terms. + +The company reserves the right to change, redact, and delete content on the forum for any reason. If you believe someone has submitted content to the forum in violation of these terms, [contact us immediately](#contact). + +## Your Account + +You must create and log into an account to use some features of the forum. + +To create an account, you must provide some information about yourself. If you create an account, you agree to provide, at a minimum, a valid e-mail address, and to keep that address up-to-date. You may close your account at any time by e-mailing **info@threefold.io**. + +You agree to be responsible for all action taken using your account, whether authorized by you or not, until you either close your account or notify the company that your account has been compromised. You agree to notify the company immediately if you suspect your account has been compromised. You agree to select a secure password for your account, and keep it secret. + +The company may restrict, suspend, or close your account on the forum according to its policy for handling copyright-related takedown requests, or if the company reasonably believes that you’ve broken any rule in these terms. + +## Your Content + +Nothing in these terms gives the company any ownership rights in intellectual property that you share with the forum, such as your account information, posts, or other content you submit to the forum. Nothing in these terms gives you any ownership rights in the company’s intellectual property, either. + +Between you and the company, you remain solely responsible for content you submit to the forum. You agree not to wrongly imply that content you submit to the forum is sponsored or approved by the company. These terms do not obligate the company to store, maintain, or provide copies of content you submit, and to change it, according to these terms. + +Content you submit to the forum belongs to you, and you decide what permission to give others for it. But at a minimum, you license the company to provide content that you submit to the forum to other users of the forum. That special license allows the company to copy, publish, and analyze content you submit to the forum. + +When content you submit is removed from the forum, whether by you or by the company, the company’s special license ends when the last copy disappears from the company’s backups, caches, and other systems. Other licenses you apply to content you submit, such as [Creative Commons](https://creativecommons.org/) licenses, may continue after your content is removed. Those licenses may give others, or the company itself, the right to share your content through the forum again. + +Others who receive content you submit to the forum may violate the terms on which you license your content. You agree that the company will not be liable to you for those violations or their consequences. + +## Your Responsibility + +You agree to indemnify the company from legal claims by others related to your breach of these terms, or breach of these terms by others using your account on the forum. Both you and the company agree to notify the other side of any legal claims for which you might have to indemnify the company as soon as possible. If the company fails to notify you of a legal claim promptly, you won’t have to indemnify the company for damages that you could have defended against or mitigated with prompt notice. You agree to allow the company to control investigation, defense, and settlement of legal claims for which you would have to indemnify the company, and to cooperate with those efforts. The company agrees not to agree to any settlement that admits fault for you or imposes obligations on you without your prior agreement. + +## Disclaimers + +You accept all risks of using the forum and content on the forum. As far as the law allows, the company and its suppliers provide the forum as is, without any warranty whatsoever. + +The forum may hyperlink to and integrate forums and services run by others. The company does not make any warranty about services run by others, or content they may provide. Use of services run by others may be governed by other terms between you and the one running service. + +## Limits on Liability + +Neither the company nor its suppliers will be liable to you for breach-of-contract damages their personnel could not have reasonably foreseen when you agreed to these terms. + +As far as the law allows, the total liability to you for claims of any kind that are related to the forum or content on the forum will be limited to $50. + +## Feedback + +The company welcomes your feedback and suggestions for the forum. See the [Contact](#contact) section below for ways to get in touch with us. + +You agree that the company will be free to act on feedback and suggestions you provide, and that the company won’t have to notify you that your feedback was used, get your permission to use it, or pay you. You agree not to submit feedback or suggestions that you believe might be confidential or proprietary, to you or others. + +## Termination + +Either you or the company may end the agreement written out in these terms at any time. When our agreement ends, your permission to use the forum also ends. + +The following provisions survive the end of our agreement: [Your Content](#your-content), [Feedback](#feedback), [Your Responsibility](#your-responsibility), [Disclaimers](#disclaimers), [Limits on Liability](#limits-on-liability), and [General Terms](#general-terms). + +## Disputes + +The governing law will govern any dispute related to these terms or your use of the forum. + +You and the company agree to seek injunctions related to these terms only in state or federal court in the city for disputes. Neither you nor the company will object to jurisdiction, forum, or venue in those courts. + +Other than to seek an injunction or for claims under the Computer Fraud and Abuse Act, you and the company will resolve any dispute by binding American Arbitration Association arbitration. Arbitration will follow the AAA’s Commercial Arbitration Rules and Supplementary Procedures for Consumer Related Disputes. Arbitration will happen in the city for disputes. You will settle any dispute as an individual, and not as part of a class action or other representative proceeding, whether as the plaintiff or a class member. No arbitrator will consolidate any dispute with any other arbitration without the company’s permission. + +Any arbitration award will include costs of the arbitration, reasonable attorneys’ fees, and reasonable costs for witnesses. You and the company may enter arbitration awards in any court with jurisdiction. + +## General Terms + +If a provision of these terms is unenforceable as written, but could be changed to make it enforceable, that provision should be modified to the minimum extent necessary to make it enforceable. Otherwise, that provision should be removed. + +You may not assign your agreement with the company. The company may assign your agreement to any affiliate of the company, any other company that obtains control of the company, or any other company that buys assets of the company related to the forum. Any attempted assignment against these terms has no legal effect. + +Neither the exercise of any right under this Agreement, nor waiver of any breach of this Agreement, waives any other breach of this Agreement. + +These terms embody all the terms of agreement between you and the company about use of the forum. These terms entirely replace any other agreements about your use of the forum, written or not. + +## Contact + +You may notify the company under these terms, and send questions to the company, at **info@threefold.io**. + +The company may notify you under these terms using the e-mail address you provide for your account on the forum, or by posting a message to the homepage of the forum or your account page. + +## Changes + +The company last updated these terms on Aug, 2020, and may update these terms again. For updates that contain substantial changes, the company agrees to e-mail you, if you’ve created an account and provided a valid e-mail address. The company may also announce updates with special messages or alerts on the forum. + +Once you get notice of an update to these terms, you must agree to the new terms in order to keep using the forum. \ No newline at end of file diff --git a/collections/manual/knowledge_base/collaboration/collaboration_toc.md b/collections/manual/knowledge_base/collaboration/collaboration_toc.md new file mode 100644 index 0000000..3a6bc41 --- /dev/null +++ b/collections/manual/knowledge_base/collaboration/collaboration_toc.md @@ -0,0 +1,13 @@ +

Collaboration

+ +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). + +

Table of Contents

ThreeFold Circle Tool + +

Table of Contents

+ +- [Introduction](#introduction) +- [Overview](#overview) +- [Prerequisites](#prerequisites) +- [How to Use the Circle Tool](#how-to-use-the-circle-tool) +- [Circle Tool Overview](#circle-tool-overview) +- [Dashboard View](#dashboard-view) +- [Profile view](#profile-view) +- [Projects](#projects) +- [Scrum Module on Project](#scrum-module-on-project) + - [Scrum Backlog](#scrum-backlog) + - [Scrum Sprints](#scrum-sprints) +- [More Info](#more-info) + +*** + +## Introduction + +The [__ThreeFold Circle Tool__](https://circles.threefold.me ) is our own self-hosted (desktop only) project management tool based on [Taiga](https://www.taiga.io/), an open-source project management tool for cross-functional agile. It offers a lot of different project management kits and features such as the scrum board, kanban board, issues management, and many more. + +Our teams at ThreeFold use the Circle Tool to self-manage our tasks, thus it is deemed necessary for the new onboarded team members to learn how to use the tool. Unfortunately we only provide the desktop version of the tool at this moment since we normally manage our projects on the computer. + +This manual will be a beneficial thing to read for anyone: our team members, as well as our community members who are interested in using Circle Tool for their projects. + +## Overview + +Here is an overview of the tool. + +![ ](./img/taiga.png) + +## Prerequisites + +You would need to install and create an account on the [TF Connect App](../../../documentation/threefold_token/storing_tft/tf_connect_app.md) before being able to register and use the Circle Tool. + +## How to Use the Circle Tool + +* Go to [Circle Tool's desktop homepage](https://circles.threefold.me) on your computer as shown below. Click on '__Login__' button on the very top right corner of your screen. + +![ ](./img/circlehome.png) + +* Click on "TF Connect" button to log into the Circle Tool by using your TF Connect Account. + +![ ](./img/tfconnect.png) + +* Fill in your TF Connect usernames (without adding the '@' sign) on the provided box, and click on the 'Sign in' button. + +![ ](./img/signin.png) + +* Circle Tool will ask you to verify your login by clicking the right emoji that is sent to your TF Connect App. + +![ ](./img/emoji.png) + +* Verify your sign in process by loggin in to your TF Connect App on your mobile phone. Click on the same emoji that you see on your circle tool (desktop). + +![ ](./img/matchemoji.png) + +* Congratulations, you are now officially logged in on the circle tool. The Dashboard view will be the first thing you will see once you are logged in to the tool. + +![ ](./img/dashboard.png) + +*** + +## Circle Tool Overview + +The Circle Tool always try to make things easy and intuitive for new users but it’s good to have a nice & quick overview for your first couple of days. + +## Dashboard View + +![ ](./img/dashboard.png) + +Upon login or if you just go to your Circle Tool, you’re confronted with your dashboard with quick access to your working on items, a list of watched items and shortcuts to your projects. You can always go back to your dashboard by clicking on the Taiga +icon on the top bar. + +## Profile view + +![ ](./img/profile.png) + +Circle Tool has an additional section to get a multiproject view where you can find and list everything that is accessible to you. Simply click on your avatar and you access your personal profile section where you can check from what your personal bio looks like for people that might have access to it to all sorts of information on your activities and relevant content. + +## Projects + +![ ](./img/project.png) + +You can access your assigned projects by clicking on Projects link at the top left of your screen. You can hover and get an interactive shortlist or click on the link and go to a dedicated page where you can access them as well as rearrange them. Once you have clicked on a project, you access your default view for that project, which is always the Project’s Timeline if you haven’t changed that. + + +## Scrum Module on Project + +![ ](./img/homeproject.png) + +Every circle project can activate the Scrum module. This also happens automatically if you chose the Scrum template upon project creation. You can find the scrum module on the sidebar of your project page. + +Scrum is an agile framework for developing, delivering, and sustaining complex products. Although it had an initial emphasis on software development, it has been used in other fields including research, sales, marketing and advanced technologies. + +### Scrum Backlog + +![ ](./img/backlog.png) + +There are various so called artifacts in Scrum. The top three are the Backlog, the User Stories and the Sprints. They respectively represent what is to be done ordered by priority and readyness, the pieces of work themselves and the fixed time periods in which we put selected User Stories to be worked upon and finished. + +### Scrum Sprints + +![ ](./img/sprints.png) + +The Scrum Backlog view will always show a summary view of ongoing or closed Sprints but teams generally stick to the Sprint Taskboard view when they are focused on getting things done for that Sprint. Click on either the Sprint name or the “Sprint Taskboard” button so you can access the very important Sprint Taskboard. Open Sprints appear as shortcuts through the left navigation pane’s Scrum icon. + + +## More Info + +You can read more about the Circle Tool (Taiga), scrum, sprints, and other documentations on Taiga's project management features on Taiga's official documentation [here](https://community.taiga.io/). Happy Project Managing! \ No newline at end of file diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/collaboration_tools.md b/collections/manual/knowledge_base/collaboration/collaboration_tools/collaboration_tools.md new file mode 100644 index 0000000..2060d09 --- /dev/null +++ b/collections/manual/knowledge_base/collaboration/collaboration_tools/collaboration_tools.md @@ -0,0 +1,18 @@ +

ThreeFold's Collaboration Tools

+ +In this section, we will introduce powerful collaboration tools utilized by ThreeFold, such as the Circle Tool and the Website Deployer. + +These tools play a crucial role in enhancing as well as simplifying collaboration and communication at ThreeFold. The tools we use at ThreeFold are chosen for their open-source design and their focus on ease of comprehension and use. + +

Table of Contents

+ +- [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) + - 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) + - 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/manual/knowledge_base/collaboration/collaboration_tools/img/.done b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/.done new file mode 100644 index 0000000..47f2ee9 --- /dev/null +++ b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/.done @@ -0,0 +1,8 @@ +column.png +emoji.png +fork.png +signin.png +taiga.png +threecolumnsdone.png +twocolumnsdone.png +vscode.png diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/backlog.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/backlog.png new file mode 100644 index 0000000..2cc0f41 Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/backlog.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/circlehome.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/circlehome.png new file mode 100644 index 0000000..a1ca18b Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/circlehome.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/clone.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/clone.png new file mode 100644 index 0000000..083e4ad Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/clone.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/codeexample.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/codeexample.png new file mode 100644 index 0000000..de6f82d Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/codeexample.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/column.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/column.png new file mode 100644 index 0000000..03427a5 Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/column.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/config.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/config.png new file mode 100644 index 0000000..c615104 Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/config.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/dashboard.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/dashboard.png new file mode 100644 index 0000000..b0c8ce2 Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/dashboard.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/done.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/done.png new file mode 100644 index 0000000..43f760c Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/done.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/emoji.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/emoji.png new file mode 100644 index 0000000..7074280 Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/emoji.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/folderdetail.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/folderdetail.png new file mode 100644 index 0000000..019b1ee Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/folderdetail.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/fork.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/fork.png new file mode 100644 index 0000000..7a20259 Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/fork.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/gitpages.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/gitpages.png new file mode 100644 index 0000000..7b49f85 Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/gitpages.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/homeproject.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/homeproject.png new file mode 100644 index 0000000..70f0ca0 Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/homeproject.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/indexmd.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/indexmd.png new file mode 100644 index 0000000..0a746b0 Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/indexmd.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/logo.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/logo.png new file mode 100644 index 0000000..b945b27 Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/logo.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/mastodon.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/mastodon.png new file mode 100644 index 0000000..cb24871 Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/mastodon.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/mastodonmd.jpg b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/mastodonmd.jpg new file mode 100644 index 0000000..e34b84a Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/mastodonmd.jpg differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/matchemoji.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/matchemoji.png new file mode 100644 index 0000000..24cad6c Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/matchemoji.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/navbar.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/navbar.png new file mode 100644 index 0000000..d322317 Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/navbar.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/navigate.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/navigate.png new file mode 100644 index 0000000..5294595 Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/navigate.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/placeholder.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/placeholder.png new file mode 100644 index 0000000..b39dbfd Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/placeholder.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/profile.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/profile.png new file mode 100644 index 0000000..ee4a3bb Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/profile.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/project.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/project.png new file mode 100644 index 0000000..96285b5 Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/project.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/publishtools.jpg b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/publishtools.jpg new file mode 100644 index 0000000..cffcdfe Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/publishtools.jpg differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/scoopsuccess.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/scoopsuccess.png new file mode 100644 index 0000000..16e7eea Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/scoopsuccess.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/signin.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/signin.png new file mode 100644 index 0000000..eb0f29e Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/signin.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/sprints.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/sprints.png new file mode 100644 index 0000000..9fc2747 Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/sprints.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/success.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/success.png new file mode 100644 index 0000000..9818dd1 Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/success.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/taiga.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/taiga.png new file mode 100644 index 0000000..834927a Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/taiga.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/tfconnect.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/tfconnect.png new file mode 100644 index 0000000..0479e95 Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/tfconnect.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/threecolumns.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/threecolumns.png new file mode 100644 index 0000000..e6ff5e8 Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/threecolumns.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/threecolumnsdone.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/threecolumnsdone.png new file mode 100644 index 0000000..052d450 Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/threecolumnsdone.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/threefolders.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/threefolders.png new file mode 100644 index 0000000..ba9aa74 Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/threefolders.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/twocolumns.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/twocolumns.png new file mode 100644 index 0000000..45ea049 Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/twocolumns.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/twocolumnsdone.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/twocolumnsdone.png new file mode 100644 index 0000000..5766137 Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/twocolumnsdone.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/vscode.png b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/vscode.png new file mode 100644 index 0000000..9650e2b Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/vscode.png differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/img/websitetool.jpg b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/websitetool.jpg new file mode 100644 index 0000000..bc4315e Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/collaboration_tools/img/websitetool.jpg differ diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/website_link_checker.md b/collections/manual/knowledge_base/collaboration/collaboration_tools/website_link_checker.md new file mode 100644 index 0000000..788c5e0 --- /dev/null +++ b/collections/manual/knowledge_base/collaboration/collaboration_tools/website_link_checker.md @@ -0,0 +1,87 @@ +

Website Link Checker

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [How the Program Exits](#how-the-program-exits) +- [Program Arguments](#program-arguments) +- [How to Use the Program](#how-to-use-the-program) + - [With Python](#with-python) + - [With Docker](#with-docker) + - [With Github Action](#with-github-action) + +*** + +## Introduction + +This is a Python program that calls muffet on a whole website and then filters and displays the HTTP errors. + +> Note: It can take a couple of minutes to run if the website has a lot of URLs. + +## How the Program Exits + +Exits with error code 1 if at least one error is found, as specified with --errors +flag. Otherwise exits with code 0. Note that errors set as --warnings will always exit with code 0. + +## Program Arguments + +* url + * The URL to scan. Please include https:// or http://. (e.g. https://google.com) +* -h, --help + * show this help message and exit +* -e ERRORS [ERRORS ...], --errors ERRORS [ERRORS ...] + * Specify one, many or all error codes to be filtered (e.g. -e 404, -e 403 404, -e all). Use -e all to show all errors. +* -w WARNINGS [WARNINGS ...], --warnings WARNINGS [WARNINGS ...] + * Specify one, many or all error codes to be filtered as warnings (e.g. -w 404, -w 403 404, -w all). Use -w all to show all warnings. + +## How to Use the Program + +### 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 + ``` + +### With Docker + +You can use the following command to run the website link checker with Docker: + +``` +docker run ghcr.io/threefoldfoundation/website-link-checker https://example.com -e 404 -w all +``` + +### With Github Action + +The website link checker can be run as an action (e.g. `action.yml`) set in `.github/workflows` of a Github repository. + +The following action example runs everytime there is a push on the development branch and also every Monday at 6:00AM as set by the cron job. + +``` +name: link-checker-example +on: + push: + branches: [ development ] + schedule: + - cron: '0 6 * * 1' # e.g. 6:00 AM each Monday + +jobs: + job_one: + name: Check for Broken Links + runs-on: ubuntu-latest + steps: + - name: Check for Broken Links + id: link-report + uses: docker://ghcr.io/threefoldfoundation/website-link-checker:latest + with: + args: 'https://example.com -e 404 -w all' +``` + diff --git a/collections/manual/knowledge_base/collaboration/collaboration_tools/website_tool.md b/collections/manual/knowledge_base/collaboration/collaboration_tools/website_tool.md new file mode 100644 index 0000000..c3b997f --- /dev/null +++ b/collections/manual/knowledge_base/collaboration/collaboration_tools/website_tool.md @@ -0,0 +1,338 @@ +

Zola Website Deployer

+ +

Table of Contents

+ +- [Overview](#overview) + - [What is Zola Framework?](#what-is-zola-framework) +- [Prerequisites](#prerequisites) + - [Important Links](#important-links) +- [Installing Zola Onto Your Machine](#installing-zola-onto-your-machine) + - [Important Links](#important-links-1) +- [Get Started](#get-started) + - [Fork ThreeFold's Website Template to Your Github Account](#fork-threefolds-website-template-to-your-github-account) + - [Clone the Forked Repository Locally](#clone-the-forked-repository-locally) + - [Open and Edit Your Cloned Zola Template with a Code Editor](#open-and-edit-your-cloned-zola-template-with-a-code-editor) + - [Template Guide](#template-guide) + - [Navigating the Template](#navigating-the-template) + - [Top Navbar Made Easy](#top-navbar-made-easy) + - [Replace Logo with your Own logo](#replace-logo-with-your-own-logo) + - [Important Links](#important-links-2) +- [Customization](#customization) + - [Some Tutorials on Markdown](#some-tutorials-on-markdown) + - [Creating A Single-Column Page Section](#creating-a-single-column-page-section) + - [Adding Image](#adding-image) + - [Creating Page Section with Multiple Columns](#creating-page-section-with-multiple-columns) + - [Important Links](#important-links-3) + - [Build and Preview Your Website Locally](#build-and-preview-your-website-locally) + - [Check the Website Links](#check-the-website-links) + - [Important Links](#important-links-4) +- [Publish Your Website (Via Github Pages)](#publish-your-website-via-github-pages) + - [Publish your Github page](#publish-your-github-page) +- [Important Links](#important-links-5) +- [Questions and Feedback](#questions-and-feedback) + +*** + +## Overview + +**ThreeFold Website Tool** is a customized open-source Zola-based web deployment framework and static website template repository that is available for anyone to use. + +At ThreeFold, we utilized Website Tool to deploy all of our web presences. For example, [**www.threefold.io**](https://threefold.io). + +### What is Zola Framework? +[**Zola**](https://www.getzola.org/) is a static site generator (SSG), similar to Hugo, Pelican, and Jekyll (for a comprehensive list of SSGs, please see Jamstack). It is written in Rust and uses the Tera template engine, which is similar to Jinja2, Django templates, Liquid, and Twig. Content is written in CommonMark, a strongly defined, highly compatible specification of Markdown. + +While you can also publish a static website using Zola alone, we at ThreeFold have customized the framework and created a static website template that makes it even easier for anyone to build a website by simply cloning template and fill it with their own website content. + + + +## Prerequisites + +- Github Account +- Zola Framework +- VS Code, or any code editor of choice +- Markdown language knowledge +- Basic Command Line (Terminal) Knowledge + +In order to deploy and publish a website using ThreeFold Website Tool, you would need to have an account on github (to store your website data in a github repository), as well as to have Zola framework installed on your machine. + +### Important Links + +> - [How to Sign Up for a Github Account](https://docs.github.com/en/get-started/signing-up-for-github/signing-up-for-a-new-github-account) +> - [Download VS Code](https://code.visualstudio.com/download) +> - [Learn Markdown Language](https://www.markdownguide.org/) +> - [Command Line Cheat Sheet](https://cs.colby.edu/maxwell/courses/tutorials/terminal/) + + + +## Installing Zola Onto Your Machine + +To install Zola on your machine, simply go to your terminal and run the following command: + +**MacOS (brew)**: + +``` +$ brew install zola +``` +Please make sure you have [Brew](https://brew.sh/) installed on your MacOS machine before installing Zola. + +Windows (scoop): + +``` +$ scoop install zola +``` +Please make sure you have [Scoop](https://scoop.sh/) installed on your Windows machine before installing Zola. + +You should see a similar screen as below when successful: + +![](./img/scoopsuccess.png) + +For more details on Zola Installation, and installation guidelines for other operating systems, please read: [**Zola Installation Manual**](https://www.getzola.org/documentation/getting-started/installation/). + + +### Important Links +> - [How to Install Brew (MacOS)](https://brew.sh/) +> - [How to Install Scoop (Windows)](https://github.com/ScoopInstaller/Scoop#readme) +> - [Zola Installation for other OS](https://www.getzola.org/documentation/getting-started/installation/) +> - [Command Line Cheat Sheet](https://cs.colby.edu/maxwell/courses/tutorials/terminal/) + +> Next Step: [Template Guide: How to use the TF Web Template](#template-guide) + + + +## Get Started + +Now that you have successfully installed Zola on your machine. You are ready to create and build your own website using ThreeFold Website Tool. + +In order to do that you would need to clone [**ThreeFold's Website Template**](https://github.com/threefoldfoundation/www_examplezola) to your own github account, and open it locally on your computer by using VS Code or your code editing program of choice. + +### Fork ThreeFold's Website Template to Your Github Account + +Our Team has especially created an html/css/markdown based template repository on github, free for anyone to use. To start working on your project, simply fork [this repository](https://github.com/threefoldfoundation/www_examplezola) to your own github account by clicking the 'fork' account on the repository, and rename it with your website's name. + +![](./img/fork.png) + +### Clone the Forked Repository Locally +After you forked the template, now you can [clone the repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) to your local computer so we can start working on it. Please remember the directory / folder of where you cloned the repository in your computer to make it easier for you to locate and edit it. + + +![](./img/clone.png) + +### Open and Edit Your Cloned Zola Template with a Code Editor + +Once the template is forked and cloned, open your code editor and start working on your website. I will explain a little more about the content editing process and procedure on the next pages... + +![](./img/vscode.png) + +### Template Guide + +On this page you will find an introduction on [TF Web Template](https://github.com/threefoldfoundation/www_examplezola) and how to navigate the different template component that enable you to edit the template with your own content. + +### Navigating the Template + +All editable content of your website would be found under **‘content’** folder. +Each page of your website is a **markdown (.md) file.** + +Each page and all the images on the page will be put into its own folder under content/ folder. +![](./img/folderdetail.png) +
+For example, here, my homepage (index.md) is put into **content/home** folder. +![](./img/indexmd.png) + +If I want to edit the homepage of my website, I would go to the following: +bb +``` +content/home/index.md +``` + and start editing. + + ![](./img/vscode.png) + + ### Top Navbar Made Easy + +![](./img/navbar.png) + +Every time you make a new page folder, we have designed it in a way that the website would automatically generate a new navbar item using the name of each folder you created. + + based on the navbar picture above, it means that I have created 3 separate content subfolders, each with an index.md file on it called Home, ThreeFoldFeed and GetServer. + +### Replace Logo with your Own logo +![](./img/logo.png) + +To replace the logo, **add your own logo image to ‘home’ folder.** + +And then go to **_index.md** file and replace the **logo_path**: images/yourlogoimagename.jpg + +![](./img/placeholder.png) + +### Important Links + +> - [TF Web Template](https://github.com/threefoldfoundation/www_examplezola) + + + +## Customization + +We have designed the template in certain ways that it would accommodate different indentation web page style, such as placeholders, footer, header, left-indentation, right-indentation. + +All you need to do is just replace the texts and images using markdown language, and use the indentation style you would like to use for your page. Don’t know how to markdown? Here’s a [**complete markdown syntax guide**](https://www.markdownguide.org/basic-syntax/) for you to begin with. + + Happy experimenting! + +### Some Tutorials on Markdown + +### Creating A Single-Column Page Section + +Since we only have one column, Every one column section begins only with row indentation syntax (style, margin, padding). + + +``` + + +{% row(style="" margin="" padding="t") %} +``` + +for example: + +``` + + +{% row(style="center" margin="narrow" padding="top") %} +``` + +and ends with + +``` +{% end %} +``` + +### Adding Image + +To add image to your page please use + +``` +![alt_text](yourimagename.png) +``` + +The Result: + +![](./img/mastodon.png) + + +### Creating Page Section with Multiple Columns + +For more than one column section, we need to configure the row and column syntax. +For example: +Sometimes you would like to have a page where you place your texts and buttons on left column and an image on the right column, like: + +What you need to do is add: + +``` +||| +``` +in between your text and images for every column you want to create. + +For example, this page consist of two columns (left and right): + +![](./img/twocolumns.png) + +The Result: + +![](./img/twocolumnsdone.png) + +You can add more than two column like this one, a page section consist of 3 columns. + +The code: + +![](./img/threecolumns.png) + +The Result: + +![](./img/threecolumnsdone.png) + + +### Important Links +> - [Learn Markdown Language](https://www.markdownguide.org/) + +### Build and Preview Your Website Locally + +After customizing your website, you might want to review and build your website locally before publishing it online. On this page you will find tutorials on how to preview and deploy your website. + +To preview your website locally, simply open the terminal via your code editor and type in: + +``` +./build.sh +``` + +So that the framework starts building your website. + +Then + +``` +./start.sh +``` + +So that the framework starts serving your website preview locally. Please make sure you are on located on the right website folder, for example: *$ user/doc/mywebsitename* before typing the command above. + + The preview won't successfuly be built if you run the command in the wrong folder. + +When successful, it will give you a link to a local preview of your website. Go ahead and copy paste the url onto your web browser to preview your website locally. + +![](./img/success.png) + +And, Congratulations! You just built your website locally! + +![](./img/preview.png) + +### Check the Website Links + +When you are in the main directory of your Zola website, you can check the following command to check the links of the complete website locally: + +``` +zola check +``` + +Once your website is online, you can also use the [Website Link Checker](./website_link_checker.md). + +### Important Links + +> - [Command Line Cheat Sheet](https://cs.colby.edu/maxwell/courses/tutorials/terminal/) + + + +## Publish Your Website (Via Github Pages) + +Since we're using github repository to save our website content, the easiest way to publish our website is also through github pages and by using our own domain. + +Once all commits have been pushed back to your github repository online, you can start publishing your website. + +The first thing you need to do is to go back to your code editor, and find **config.toml** file on your website repo. +Edit the **base_url** on the **config.toml** file on your repo to your own domain. + +![](./img/config.png) + +Save all your changes and push all your commits to its origin again. + +### Publish your Github page + +Later on, go to your github repo **settings**, go to **Pages** on the left navigation sidebar. Add your own custom domain to start publishing your website. + +![](./img/gitpages.png) + + +And you are done! Your website will be published, and it will take only a minute or so to complete the process. Refresh page, and you will see a link to your newly published website. + +![](./img/done.png) + + + +## Important Links +> - [Pushing Changes to Github](https://docs.github.com/en/desktop/contributing-and-collaborating-using-github-desktop/making-changes-in-a-branch/pushing-changes-to-github) +> - [Github Pages How-to](https://docs.github.com/en/pages) +> - [Adding Custom Domain to my Github Page](https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site/about-custom-domains-and-github-pages) + + + +## Questions and Feedback + +If you have any question or feedback, you can write a post on the [ThreeFold Forum](http://forum.threefold.io/). \ No newline at end of file diff --git a/collections/manual/knowledge_base/collaboration/contribute.md b/collections/manual/knowledge_base/collaboration/contribute.md new file mode 100644 index 0000000..698a477 --- /dev/null +++ b/collections/manual/knowledge_base/collaboration/contribute.md @@ -0,0 +1,119 @@ +

How to Contribute to the Threefold Manual

+ +

Table of Contents

+ +- [Quick Method: Create an Issue](#quick-method-create-an-issue) +- [Advanced Method: Create a Pull Request](#advanced-method-create-a-pull-request) + - [Main Steps to Add Content](#main-steps-to-add-content) + - [How to View the mdbook Locally](#how-to-view-the-mdbook-locally) + - [How to Install git and mdbook](#how-to-install-git-and-mdbook) + - [Markdown File Template (Optional)](#markdown-file-template-optional) +- [Questions and Feedback](#questions-and-feedback) + +*** + +## Quick Method: Create an Issue + +If you've found some issues or typos in the ThreeFold Manual, feel free to [create an issue on the ThreeFold Manual repository](https://github.com/threefoldtech/info_grid/issues) to let us know. We will then be able to fix it as soon as possible. + +The steps are simple: + +* Go to the [issues section of ThreeFold Manual](https://github.com/threefoldtech/info_grid/issues) repository on GitHub +* Click on `New Issue` +* Choose an appropriate title +* Explain briefly the issue you found +* Click `Submit New Issue` + + + +## Advanced Method: Create a Pull Request + +If you found an issue in the manual and you wish to fix the issue yourself, you can always fork the repository and propose the changes in a pull request. We present the main steps in this section as well as further details on how to proceed efficiently. + + + +### Main Steps to Add Content + + + +We present here the main steps to add content to the Threefold Manual by forking the repository [`threefoldtech/info_grid`](https://github.com/threefoldtech/info_grid) to your own Github account. + +* Go to the Threefold Manual repository: [https://github.com/threefoldtech/info_grid](https://github.com/threefoldtech/info_grid) +* Fork the Development branch + * On the top right corner, click `Fork -> Create a new fork` +* 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). + * To modify an existing section: + * Make the changes directly in the Markdown file +* Ask for a pull request + * In the forked repository, click `Contribute -> Open pull request` +* Once the pull request is accepted, the changes of the Development branch will be available here: [https://www2.manual.grid.tf](https://www2.manual.grid.tf) +* The Threefold team will regularly update the [Development branch](https://github.com/threefoldtech/info_grid) to the [Master branch](https://github.com/threefoldtech/info_grid/tree/master) + * The new content will thus be available here: [https://www.manual.grid.tf](https://www.manual.grid.tf) + +Note: You can update your forked repository by clicking `Sync fork -> Update branch`. + + + +### How to View the mdbook Locally + + + +Once you've forked the TF Manual repository to your Github account, you might want to see the changes you've made before asking for a pull request. This will ensure that the final output is exactly what you have in mind. + +To do so, you simply need to clone the forked repository on your local computer and serve the mdbook on a given port. + +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/` +* You should now be able to see your changes. + + + +### How to Install git and mdbook + + + +To install git, follow the steps provided [here](https://github.com/git-guides/install-git). + +To install mdbook, you can download the executable binaries available on the [GitHub Releases Page](https://github.com/rust-lang/mdBook/releases). Simply download the binary for your platform (Windows, macOS, or Linux) and extract the archive. The archive contains an mdbook executable which you can run to build your books. To make it easier to run, you can put the path to the binary into your PATH. + +For more information, read the [mdbook Documentation](https://rust-lang.github.io/mdBook/guide/installation.html). + + + +### Markdown File Template (Optional) + + + +Here are some suggestions on how to organize a Markdown file (`.md`) when you submit contents to the ThreeFold Manual. This is not necessary, but it will ease the whole process. + +* Title: Heading 1 (`#` in Markdown syntax) +* Main sections: Heading 2 (`##` in Markdown syntax) +* For Markdown files that contain a *Table of Contents*: + * Use `

` instead of `#` for the _Title_ , and `

` instead of `##` for the _Table of Contents_. + * This quickens editing when creating and updating the ToC ([read this for more details](https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one#table-of-contents)). + * Other heading labels should use standard Markdown headings (`##`, etc.). +* If your text reaches heading level 4, you might want to separate your file into two or more files. + * A long article can be spread in many subsections. + + + +## Questions and Feedback + +If you have any questions or if you would like to share some feedback, let us know in this [Threefold forum post](https://forum.threefold.io/t/new-grid-manual/3783). \ No newline at end of file diff --git a/collections/manual/knowledge_base/collaboration/development_cycle.md b/collections/manual/knowledge_base/collaboration/development_cycle.md new file mode 100644 index 0000000..c321367 --- /dev/null +++ b/collections/manual/knowledge_base/collaboration/development_cycle.md @@ -0,0 +1,36 @@ +The development cycle is explained below: + +![Untitled presentation (1)](https://user-images.githubusercontent.com/8425762/170034170-7247a737-9d99-481d-9289-88d361275043.png) + + + +Devnet: + - continuous development for active version + - can be reset + - should be against a branch named with the version being developed (example: 10.2.3) + +Nextnet: + - for parallel version development + - oftentimes, the next major version while development has bugfixes + - should be against a branch named with the version being developed (example: 10.3.1) + +QAnet: + - once development is complete, each component is tagged with an rc (example: 10.2.3-rc1) and the new version to be tested is deployed on QAnet + - this net is for INTERNAL QA + - Here, we expect most bugs to be reported + - Once QA signs off, it moves to testnet + +Testnet: + - tag as beta release (example: 10.2.3-rc3-beta) + - This is for the community and stability testing + - should be almost completely stable + +Mainnet: + - if testnet has no blockers for 2 weeks, community votes to move to mainnet + - everything is merged to main + - final release is tagged (example: 10.2.3) + + + +## GOAL: +moving away from that model to be able to use ephermal environments instead of maintaining such environments, but now they're available for simplicity \ No newline at end of file diff --git a/collections/manual/knowledge_base/collaboration/development_process.md b/collections/manual/knowledge_base/collaboration/development_process.md new file mode 100644 index 0000000..ae6d64b --- /dev/null +++ b/collections/manual/knowledge_base/collaboration/development_process.md @@ -0,0 +1,422 @@ +

Development Process

+ +Our project development process is characterized by agility, collaboration, and, most importantly, respect. We firmly believe in harnessing the collective ingenuity of our team, recognizing that each individual contributes invaluable insights to our codebase, our development process is completely managed on Github, using Github based projects. + +

Table of Contents

+ +- [Quality Assurance (QA) Process](#quality-assurance-qa-process) + - [QA Responsibilities](#qa-responsibilities) + - [Daily Standups](#daily-standups) + - [Provide Test Plans](#provide-test-plans) + - [Test Execution](#test-execution) + - [Test Documentation](#test-documentation) + - [Verification and Closure](#verification-and-closure) + - [Cross-Environment Testing](#cross-environment-testing) + - [Bug Assessment Meetings (BAM)](#bug-assessment-meetings-bam) + - [Additional Testing Types](#additional-testing-types) + - [Expectations for QA Leads](#expectations-for-qa-leads) + - [Test Planning](#test-planning) + - [Test Strategy](#test-strategy) + - [Review and Closure](#review-and-closure) + - [Communication](#communication) + - [QA Verification and Testing](#qa-verification-and-testing) + - [Testplan](#testplan) + - [Verification Process](#verification-process) + +*** + +## Product Definition on Home + + +`Home` repo serves a special role in the organization, it's the starting point of all development. + +- It links to all products & components +- Put only stories, identified with tag `type_story` in the home repo + + +To streamline our development workflow, we have adopted the GitHub-style projects framework, with all repositories linked to the ThreeFold Grid (tfgrid) product (e.g., version 3.6.0). + +- Various views, such as StoryCards for a high-level overview, repository-specific views, and prioritized views, enhance project visibility. +- All repositories are managed within a centralized project, ensuring unified control and coordination. +- Milestones, aligned with semantic versioning, serve as a means to categorize and organize issues, providing versioning per component. +- Each product is clearly outlined in a dedicated project section within the "home" repository. +- The home page in the home repository serves as a hub linking to individual product pages. +- Products are associated with relevant components slated for the upcoming release. +- Product release milestones are clearly marked on the product page. +- Release notes, accessible through each product, offer a historical overview with links to specific components used in each release. +- Interlinked relationships between products and components, as well as links to third-party products with specified version numbers, provide comprehensive tracking. +- Components are meticulously monitored within the same product project. +- A commitment to [semantic versioning](https://semver.org) is mandated for all components. + +## Github Project + +When creating a new project, please use the grid template project (private repository) available at `https://github.com/orgs/threefoldtech/projects/205`. + + +### Github project columns + +- `No Status` + - Stakeholder or project owner suggests a feature/story/bug to be resolved in this release +- `Accepted` + - The project owner accepts the item, the issue will be worked on and he commits to solve within the release + - Once accepted = then escalation is needed if it can not be done in time +- `In progress` + - The issue is being worked on +- `Blocked` + - We are using the Kanban way of thinking - something in this swimlane needs to be resolved asap, can be e.g. a question + - Means issue cannot be completed, attention from e.g. stakeholders is needed +- `Verification` : work is being verified + - The team delivered the feature/bug/story + - Stakeholders need to agree that the issue has been resolved appropriately + - Project owner can never go from 'Verification' to 'Done' without approval from stakeholders (often represented by QA team) +- `Done` + - Everyone agreed (project owner and stakeholders) agreed that the issue was done ok + + +##### Project Special Columns + +Some projects require special columns like the following + +- `Pending Review`: Work is done, waiting for review; no need for daily progress updates. +- `Pending Deployment`: If deployment is needed for QA testing on the staging instance. + + +### Repository + +Creating a repository involves establishing a foundation for collaborative development. Follow these guidelines to ensure consistency and best practices in repository creation. + +#### Naming + +- Choose a clear and descriptive name for the repository. +- Use lowercase letters and hyphens for improved readability. + +#### README + +- Include a comprehensive README.md file. +- Provide essential information about the project, including setup instructions, dependencies, and usage guidelines. + +#### License + +- Include a LICENSE file specifying the project's licensing terms, threefoldtech is using [Apache2 License](https://github.com/threefoldtech/info_grid/blob/master/LICENSE). + +#### 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) + +#### Expected Workflows + +- Set up a continuous integration (CI) pipeline using a tool like GitHub Actions. +- Include linting, tests and code quality checks in the CI process. +- Set up automation to deployment on staging, and production server +- Building docker images +- Building flists +- Pushing to the hub +- Publishing packages + + +### Issues + +Consider the following for Effective Issue Reporting + +1. **Title:** + - Provide a clear and concise title that summarizes the issue. + +2. **Description:** + - Offer a detailed description of the issue, including what you expected to happen and what actually occurred. + - Provide steps to reproduce the issue, if possible. + - Include any error messages received. + +3. **Environment:** + - Specify the environment in which the issue occurred (e.g., operating system, browser, version). + +4. **Attachments:** + - Attach relevant files or screenshots to help visualize the problem. + +5. **Issue Type:** + - Label the issue with an appropriate type (e.g., bug, feature request, question). + +6. **Priority:** + - If applicable, assign a priority level to indicate the urgency of the issue. + +7. **Version Information:** + - Include information about the version of the software or application where the issue was encountered. + +8. **Labels:** + - Apply relevant labels to categorize the issue (e.g., priority levels, type of issue). + +9. **Reproducibility:** + - Clearly state whether the issue is reproducible and under what conditions. + +10. **Additional Context:** + - Provide any additional context that might help in understanding and addressing the issue. + +11. **Assigned:** + - If known, assign the issue to the responsible team member or developer. + +12. **Discussion:** + - Engage in discussions with the development team and other stakeholders to gather insights and potential solutions. + +By following these guidelines, you contribute to a more efficient issue resolution process, enabling developers and the team to address concerns promptly and effectively. + +#### Issue Labels + +See [issue labels](issue_labels.md) + + +#### Branch Names in Issue titles + +Each issue has the name of a branch in the title as [development_something], the name 'development' can be skipped and its the default or previous could also be written as [something] but don't forget branch is development_... +If not specified, it is to be fixed/developed on development. + +#### Milestones for Issues + +We use milestones for version numbers e.g `1.4.2` means this issue is going to be part of the release of `1.4.2` of the component. + +> It's very important that nobody works on any issue in milestones not part of the global project plan + +- No milestone means need to be sorted +- Number e.g `1.4.2` means + +So issues with no milestones can only be in 1 condition: new and not sorted out yet where (repo) it belongs + +### Branching + +We encourage collaborative branching. Meaning any group of people working within the same scope are highly encouraged to work on the same branch, trusting and communicating with one another. + +Our branching strategy is: + +- `master` is the last stable release +- `master_$hotfix` is only for solving BLOCKING issues which are in the field on the last release + - short living +- `development` is where all stories branch from, and the one that has hotfixes if needed +- `development_$storyname` + - branch for a story + - always updated from development(_hotfixes) +- `development_$storyname_$reviewname` + - short living branch for when reviews are needed for a story +- `development_hotfixes` short living hotfix(es) to allow people to review and then put on development + - now everyone should update from or development or development_hotfixes + - development_hotfixes is always newer than development +- `integration` is a branch used to integrate development branches + - never develop on it, its for verifying & doing tests + +We have branches for new features/disruptive changes. These have a prefix of `development_` + +Each project and story should define which branches to use & the branching strategy. + +There should never be any branch on the system which can not be found back by looking at the stories in the `home` repo. +Title of the story : in between [] + + +### Pull Requests + +When developers or a group initiate work on a separate branch and seek input from their peers, it is recommended to promptly open a `draft pull request` for seamless communication. Upon completion of the work, opening a pull request signals that the work is: + +- Complete as Defined in the Project: The work aligns with the predefined goals and specifications outlined in the project. +- Well Tested: Thorough testing has been conducted to ensure the reliability and functionality of the code. +- Well Documented: Comprehensive documentation accompanies the code, aiding in understanding and future maintenance. + +#### Pull Requests Best Practices + +When creating pull requests (PRs), adhere to the following best practices for effective collaboration: + +- Early Draft PRs: Open a draft pull request as soon as work begins on a different branch. This allows for ongoing communication and collaboration with peers throughout the development process. +- Timely Updates: Regularly update the PR as new changes are made to keep reviewers informed of progress. +- Clear and Concise Title: Use a clear and concise title that summarizes the purpose or goal of the pull request. +- Detailed Description: Provide a comprehensive description of the changes made, the problem solved, and any relevant context. This aids reviewers in understanding the purpose and impact of the changes. +- Link to Issues: If the pull request addresses specific issues, link them to provide additional context and traceability. +- Reviewers and Assignees: Assign the appropriate reviewers and, if applicable, assignees to ensure that the right people are involved in the review process. +- Complete Work: Ensure that the work is complete as defined in the project requirements. Address any outstanding issues before marking the PR as ready for review. +- Thorough Testing: Verify that the code has undergone thorough testing. Include details about the testing strategy and results in the PR description. +- Documentation: Confirm that the changes are well-documented. Documentation should not only explain how the code works but also guide future developers on its usage and maintenance. +- Address Feedback: Be responsive to feedback from reviewers. Address comments and concerns promptly to facilitate a smooth review process. +- Code Style and Standards: Ensure that the code follows established style guidelines and coding standards. Consistent formatting contributes to maintainability. +- Status Checks: Ensure that automated status checks, such as continuous integration (CI) tests, pass successfully before merging. +By adhering to these best practices, you contribute to a collaborative and efficient development process, fostering a culture of high-quality code and effective communication within the team. + +### Commits + +Clear and informative commit messages are essential for understanding the history of a project. Follow these guidelines to create meaningful commit messages. + +## Message Structure + +### Header + +- Start with a concise one-line summary +- Use present-tense verbs (e.g., "Add," "Fix," "Update") to describe the action. + +### Body + +- Optionally, provide a more detailed explanation. +- Break long explanations into bullet points if needed. + +## Be Descriptive + +- Clearly describe the purpose of the commit. +- Include information about why the change is necessary. + +## Reference Issues + +- If the commit is related to an issue, reference it in the message. +- Use keywords like "Fixes," "Closes," or "Resolves." + +## Consistency + +- Be consistent with your writing style and formatting. +- Use the imperative mood consistently throughout. + +## Examples + +### Good Example + +Here's a good example of a commit message +``` +Add user authentication feature + +- Implement user login functionality +- Enhance user registration form +- Fixes #123 +``` + +### Bad Example + +``` +Changes +- Bug fix +- Update +- Important changes +``` + +### Merge or Rebase + +If you're the sole developer on the branch, you can use rebase, if more people are collaborating together, use merge + +### Merge or Squash merge + +Squash only when it makes the history cleaner. Feature branch is a good example, because it is often short-lived, small, and authored by 1 developer. + +On the other hand, use regular merge for big feature co-authored by multiple developers eg. long-lived branches, please be aware of the [Disadvantages of squash merges](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/about-merge-methods-on-github#squashing-your-merge-commits) + +### Releasing Process + +Before tagging a release, open a branch named with the intended version e.g 10.5.x with the quality level + - alpha: doesn't have all the features, but you can use the features in there + - beta: no major, or blocking bugs. All features working for the customer as promised, no blocking bugs + - production: no major, no blocking, no minor bugs and the documentation is ready + +check the [release process document](release_process.md) for more information + +#### Blocking + +Issues categorized as blockers include: + +- Inability of the customer to access the functionality as described in the manual. +- Stability concerns that impede progress, particularly instances where the system crashes. +- Security issues that act as barriers to further development. +- Stability issues that hinder smooth operation. +- Performance concerns labeled as blockers when they prevent continuation. +- Performance issues classified as major when they allow for continued work. + +#### Progress Reporting + +In teams operating remotely, complete transparency is of utmost importance. + +Visibility into development progress is crucial and is best achieved through the use of storycards and issues. + +To facilitate clear communication, commenting daily is a critical aspect of our process. We advocate for the following format, which aids in asynchronous communication: + +``` + +## Work Completed: +Summarize the tasks successfully finished in relation to the issue. Provide specific details to ensure clarity. + +## Work in Progress (WIP): +Detail ongoing efforts and remaining tasks related to this issue. Clearly outline items currently being worked on and those still needing attention. + +## Investigation and Solution: +If no work has been completed or is in progress, elaborate on the investigative work undertaken to address the issue. Provide insights into the problem, and if a solution was reached, include it. +``` + +For issues or stories labeled with `priority_critical`, continuous updates should be at least two updates per day to keep stakeholders informed. + +Including an Estimated Time of Arrival (ETA) in the comments is essential. While it serves as an estimation subject to change with new findings, it provides a valuable projection of completion. + + + +# Quality Assurance (QA) Process + +QA plays a crucial role in delivering high-quality software. This document outlines responsibilities, expectations, and best practices. + +## QA Responsibilities + +### Daily Standups + +- Attend daily standups for progress updates, issue discussions, and coordination. + +### Provide Test Plans + +- Collaborate on test plans for each sprint. + +### Test Execution + +- Execute test plans manually and through automated testing. +- Log and prioritize defects. +- Track nightly tests. + +### Test Documentation + +- Maintain updated test documentation. + +### Verification and Closure + +- Verify issues and user stories before closure. + +### Cross-Environment Testing + +- Conduct test runs across different environments. + +### Bug Assessment Meetings (BAM) + +- Conduct BAM sessions twice weekly to address community feedback, covering both `test_feedback` repository and active projects. + +### Additional Testing Types + +- Expand responsibilities to include various testing types such as: + - Performance testing + - Security testing + - Compatibility testing + - Usability testing + - Regression testing + +## Expectations for QA Leads + +### Test Planning + +- Lead the creation of detailed test plans. + +### Test Strategy + +- Define a testing strategy, emphasizing automation. + +### Review and Closure + +- Review and close issues, ensuring alignment with the test plan. + +### Communication + +- Facilitate communication between QA and development teams. + +## QA Verification and Testing + +### Testplan + +- Provide a comprehensive test plan, authored exclusively by the QA lead that serves as the source of truth for the verification process + +### Verification Process + +- Verify stories in a two-step process + - As soon as the story is moved to In Verification column, QA team can pickup the issue, they need to log their scenarios, executions and link to the testcase in the testplan. + - QA lead can then verify it's aligned to the original requirements and it was properly verified before closing +- QA leads need to test the main features by themselves. +- Automate regression testing through github workflows, and any other means needed. \ No newline at end of file diff --git a/collections/manual/knowledge_base/collaboration/feature_request.md b/collections/manual/knowledge_base/collaboration/feature_request.md new file mode 100644 index 0000000..3390fde --- /dev/null +++ b/collections/manual/knowledge_base/collaboration/feature_request.md @@ -0,0 +1,16 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: '' +assignees: '' + +--- + +## Is your feature request related to a problem? Please describe + +A clear and concise description of what the problem is. Ex. I'm always frustrated when \[...] + +## Describe the solution you'd like + +A clear and concise description of what you want to happen. \ No newline at end of file diff --git a/collections/manual/knowledge_base/collaboration/issue_labels.md b/collections/manual/knowledge_base/collaboration/issue_labels.md new file mode 100644 index 0000000..e771c03 --- /dev/null +++ b/collections/manual/knowledge_base/collaboration/issue_labels.md @@ -0,0 +1,24 @@ +# Issue Labels Usage Guidelines + +Kindly refrain from using labels other than the specified ones. + +## Priority-based Labels + +- `priority_critical`: This label indicates that the issue requires immediate attention, with a maximum resolution timeframe of the same day. + - If the assigned developer deems this timeline unachievable, they must escalate the issue immediately. + - The term "critical" implies that the resolution is of utmost urgency, and everyone involved should prioritize it until it is resolved. + +- `priority_major`: This label designates issues that are very urgent and should be addressed within a minimal timeframe, typically within 1-2 days but no more than 3 days. + - If the developer anticipates challenges in meeting this timeframe, they are required to escalate the issue promptly. +- `priority_minor`: Issues labeled as such are given a lower priority and are typically positioned towards the end of the sprint cycle. + +## Types Labels + +- `type_bug` +- `type_feature` +- `type_question` +- `type_story`: This label is used to distinguish story cards, providing an overview of a use case the team aims to achieve. + +### For monorepos + +Repository owners are free to create labels per component in the monorepo for easier repo management \ No newline at end of file diff --git a/collections/manual/knowledge_base/collaboration/pull_request_template.md b/collections/manual/knowledge_base/collaboration/pull_request_template.md new file mode 100644 index 0000000..c41fc2e --- /dev/null +++ b/collections/manual/knowledge_base/collaboration/pull_request_template.md @@ -0,0 +1,18 @@ +### Description + +Describe the changes introduced by this PR and what does it affect + +### Changes + +List of changes this PR includes + +### Related Issues + +List of related issues + +### Checklist + +- [ ] Tests included +- [ ] Build pass +- [ ] Documentation +- [ ] Code format and docstring \ No newline at end of file diff --git a/collections/manual/knowledge_base/collaboration/release_process.md b/collections/manual/knowledge_base/collaboration/release_process.md new file mode 100644 index 0000000..a931a1b --- /dev/null +++ b/collections/manual/knowledge_base/collaboration/release_process.md @@ -0,0 +1,53 @@ +

Release Process

+ +

Table of Contents

+ +- [Github projects](#github-projects) +- [Releasing the Grid](#releasing-the-grid) + - [Environments](#environments) + - [Versions](#versions) + - [Branching/Tagging](#branchingtagging) + - [Blocking Bugfixes for Mainnet](#blocking-bugfixes-for-mainnet) + +*** + +## Github projects + +- We are going to use new github style projects to manage the development process, all repos are linked against tfgrid product e.g 3.6.0 +- You can have different views e.g StoryCards only view for Highlever overview, a view by repositories, priorities +- We will drive all repos from that one project +- We should use milestones (semantic version to sort out the issues) + +## Releasing the Grid + + +### Environments + +- Grid releases are no longer linked to an environment in a pipeline, while this makes sense in lots of scenarios, it won't scale +- An environment hosts a specific grid version based on the components it has +- In the future, we should be able to create ephermal environments e.g deploy this grid version on these X number of nodes + +### Versions + +- Releasing should follow [semantic versioning](https://semver.org/) +- Every grid release is linked to X number of components. For example, TFGrid 3.6.1 is linked to terraform 1.0.0, portal 2.0.1, .. etc + + +### Branching/Tagging + +- As mentioned above, releases should should follow semantic versioning. The tag itself is prefixed with a `v`. so vx.y.z or vx.y.z-rc1 +- Devnet(s) should host development branches and once it reaches a specific quality they get verified on that branch + - THIS IS NOT TRUE: it can be that on a dev net you have production components +- Once verification happens and everything goes ok, we should tag a release of a component +- Once all components are ready a grid release is complete and we can host that release on whatever environment +- Container image tags must not contain the `v`-prefix + +### Blocking Bugfixes for Mainnet + +- In case of a blocking bug happening only on mainnet, we branch out of the tag on the affected component repository +- do the fix on that branch +- host a new grid release on a testing environment to verify +- tag the new component +- merge to trunk +- create a new grid release +- host that grid release (its components) on mainnet diff --git a/collections/manual/knowledge_base/collaboration/testing/img/add_test.png b/collections/manual/knowledge_base/collaboration/testing/img/add_test.png new file mode 100644 index 0000000..1a8983d Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/testing/img/add_test.png differ diff --git a/collections/manual/knowledge_base/collaboration/testing/img/deploy_evdc.png b/collections/manual/knowledge_base/collaboration/testing/img/deploy_evdc.png new file mode 100644 index 0000000..a662b35 Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/testing/img/deploy_evdc.png differ diff --git a/collections/manual/knowledge_base/collaboration/testing/img/evdc_home_.jpg b/collections/manual/knowledge_base/collaboration/testing/img/evdc_home_.jpg new file mode 100644 index 0000000..b05af42 Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/testing/img/evdc_home_.jpg differ diff --git a/collections/manual/knowledge_base/collaboration/testing/img/evdc_test.png b/collections/manual/knowledge_base/collaboration/testing/img/evdc_test.png new file mode 100644 index 0000000..c8baa69 Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/testing/img/evdc_test.png differ diff --git a/collections/manual/knowledge_base/collaboration/testing/img/help_us_test_.jpg b/collections/manual/knowledge_base/collaboration/testing/img/help_us_test_.jpg new file mode 100644 index 0000000..a94fa94 Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/testing/img/help_us_test_.jpg differ diff --git a/collections/manual/knowledge_base/collaboration/testing/img/my_test.png b/collections/manual/knowledge_base/collaboration/testing/img/my_test.png new file mode 100644 index 0000000..125fea8 Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/testing/img/my_test.png differ diff --git a/collections/manual/knowledge_base/collaboration/testing/img/project_overview.png b/collections/manual/knowledge_base/collaboration/testing/img/project_overview.png new file mode 100644 index 0000000..5a4263e Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/testing/img/project_overview.png differ diff --git a/collections/manual/knowledge_base/collaboration/testing/img/report_test.png b/collections/manual/knowledge_base/collaboration/testing/img/report_test.png new file mode 100644 index 0000000..998f5e4 Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/testing/img/report_test.png differ diff --git a/collections/manual/knowledge_base/collaboration/testing/img/run_test.png b/collections/manual/knowledge_base/collaboration/testing/img/run_test.png new file mode 100644 index 0000000..00ebda3 Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/testing/img/run_test.png differ diff --git a/collections/manual/knowledge_base/collaboration/testing/img/test_finish.png b/collections/manual/knowledge_base/collaboration/testing/img/test_finish.png new file mode 100644 index 0000000..4f9d5c4 Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/testing/img/test_finish.png differ diff --git a/collections/manual/knowledge_base/collaboration/testing/img/test_home.png b/collections/manual/knowledge_base/collaboration/testing/img/test_home.png new file mode 100644 index 0000000..2fa3f7a Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/testing/img/test_home.png differ diff --git a/collections/manual/knowledge_base/collaboration/testing/img/test_list.png b/collections/manual/knowledge_base/collaboration/testing/img/test_list.png new file mode 100644 index 0000000..8071301 Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/testing/img/test_list.png differ diff --git a/collections/manual/knowledge_base/collaboration/testing/img/test_run.png b/collections/manual/knowledge_base/collaboration/testing/img/test_run.png new file mode 100644 index 0000000..e90517e Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/testing/img/test_run.png differ diff --git a/collections/manual/knowledge_base/collaboration/testing/img/testlodge_invitation.png b/collections/manual/knowledge_base/collaboration/testing/img/testlodge_invitation.png new file mode 100644 index 0000000..f6bb9da Binary files /dev/null and b/collections/manual/knowledge_base/collaboration/testing/img/testlodge_invitation.png differ diff --git a/collections/manual/knowledge_base/collaboration/testing/testing_readme.md b/collections/manual/knowledge_base/collaboration/testing/testing_readme.md new file mode 100644 index 0000000..aebf6db --- /dev/null +++ b/collections/manual/knowledge_base/collaboration/testing/testing_readme.md @@ -0,0 +1,52 @@ +

Testing the ThreeFold Grid: Ensuring Reliability and User Feedback

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Automation Testing](#automation-testing) +- [Manual Testing](#manual-testing) +- [Covered Tests](#covered-tests) + +*** + +## Introduction + +With each release of a newer version of the ThreeFold Grid, the ThreeFold Community plays a vital role in testing the product components and providing constructive feedback to the engineering team. This article explores the testing strategy employed by ThreeFold, which includes both automation and manual testing, and highlights the covered functionality tested by the procedures. + +## Automation Testing +The internal QA team conducts automation testing, where they automate various test scenarios and run them in nightly builds. This approach helps identify the status of the code and allows for the early detection of functionality and regression issues. + +## Manual Testing +The QA team, along with the grid testing community, performs manual testing. [TestLodge](./testlodge.html) is the chosen platform for managing test plans, test cases, and test runs. By joining TestLodge as a user, individuals can actively participate in running test use cases and reporting any issues encountered during product deployment. Issues can be reported by creating an issue on [ThreeFold's Test Feedback repository](https://github.com/threefoldtech/test_feedback/issues) on Github. + +## Covered Tests +The ThreeFold Grid 3 encompasses a wide range of functionalities that are thoroughly tested to ensure their reliability and performance. Some of the covered functionalities include: + +- Compute + - Virtual machine + - Caprover + - Kubernetes + +- Network + - WebGateway + - Planetary Network + +- Storage + - Quantum Safe Storage System (Quantum Safe Filesystem) + - 0-DB + - S3 minio + +- TFChain + - Portal + - IPFS + +- Farming + - Create Farm + - Farm Management + +- TwinServer v2 +- TerraForm Deployments + +Testing is a crucial aspect of the ThreeFold Grid's development process. By actively involving the ThreeFold Community in testing the product components and leveraging automation and manual testing approaches, the engineering team ensures the reliability and quality of the Grid3. + +With TestLodge as the testing platform, users can contribute to the testing efforts by running test use cases and reporting any issues encountered. Through collaborative testing, the ThreeFold Grid continues to evolve and deliver a robust and efficient infrastructure for users worldwide. \ No newline at end of file diff --git a/collections/manual/knowledge_base/collaboration/testing/testlodge.md b/collections/manual/knowledge_base/collaboration/testing/testlodge.md new file mode 100644 index 0000000..fe5abf6 --- /dev/null +++ b/collections/manual/knowledge_base/collaboration/testing/testlodge.md @@ -0,0 +1,95 @@ +

How to Use TestLodge for Testing the ThreeFold Grid

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Getting Started on TestLodge](#getting-started-on-testlodge) + - [Joining the TF GRID Project on TestLodge by Invitation](#joining-the-tf-grid-project-on-testlodge-by-invitation) +- [Accessing the TF GRID 3.x Projects](#accessing-the-tf-grid-3x-projects) + - [Project Overview](#project-overview) + - [Creating Your Own Personal Test Run](#creating-your-own-personal-test-run) + +*** + +## Introduction + +After each release of a newer version of the ThreeFold Grid, we encourage the ThreeFold Community to participate in testing the grid's product components and provide valuable feedback to our engineering team. To facilitate this process, we have adopted TestLodge as our QA and testing platform. TestLodge allows us to efficiently manage test plans, test cases, and test runs for our products. By joining TestLodge as a user, you can assist us in running test cases and reporting any issues encountered during our product deployment processes. + +## Getting Started on TestLodge + +### Joining the TF GRID Project on TestLodge by Invitation + +To become one of our testers on TestLodge, please request an invitation by joining our official [TF Grid Tester +Telegram Group](https://t.me/joinchat/R75FxI_6J6tgn1jK) and sending a personal message to the group's moderator, providing your email address. + +Once you receive an invitation, check your email for further instructions and create an account on TestLodge. This will grant you access to the TF GRID Project on TestLodge. + +## Accessing the TF GRID 3.x Projects + +After successfully creating your account, you can access the TF GRID 3.x Project from your Testlodge dashboard. Simply click on the project to begin the testing process. + +### Project Overview + +Inside the project, you will find an overview that displays the project's testing environment. Here's a brief description of the project's content: + +- Total Test Plans: +Indicates the number of test plans or products being tested in this project. + +- Total Requirement Docs: +Represents the amount of testing documentation provided for each test within the project. + +- Total Test Suites: +Displays the number of individual test use cases for each product being tested. These test suites are the procedures you will follow as a user/tester. + +- Total Test Runs: +Reflects the total number of testing rounds conducted by users within the project. Each tester has their own Test Run, which serves as a testing dashboard for reporting test results. To get started with testing the TF Grid Test Suites, you need to create your own Test Run by using your name as the title. + +### Creating Your Own Personal Test Run +To create your personal Test Run, follow these steps: + +1. Click on the "Test Runs" tab in the top navigation bar and select "New Test Run." + +![](./img/test_run.png) + +2. Provide your name as the test name and select "eVDC Deployer" as your test suite since it is a test run for eVDC Deployer. Click on "Select Test Suites and Cases" to view the details of the use cases you want to test. + +![](./img/evdc_test.png) + + +3. On the "Select Test Suites and Cases" page, choose the "Deploy a new eVDC" test suite as your Test Suite. This suite includes the different use cases required to deploy an eVDC. + +![](./img/deploy_evdc.png) + +4. Click "Add Test Run" to complete the registration of your new test run. + +![](./img/add_test.png) + + +5. You will see a list of all created test runs, including your own. Click on the test run you just created to access your test run profile. + +![](./img/my_test.png) + + +6. In your test run profile, you will find a summary and a list of the test suites you need to run. + +![](./img/test_list.png) + +7. Click on the "Deploy eVDC" test suite from the list and select "Run Test" to begin testing. + +![](./img/run_test.png) + +8. Proceed to the eVDC Deployer and commence your test. + +![](./img/evdc_home_.jpg) + +9. Provide your remarks in the provided comment box and click "Pass," "Fail," or "Skip" based on the result of your test run to provide feedback to the ThreeFold QA Team. + +![](./img/report_test.png) + +10. Repeat the previous step to complete all + +11. Go back to the ‘test runs’ page to see the overview of all test runs, and make sure that you completed your own test runs as shown below. + +![](./img/test_finish.png) + +12. Thank you for completing test runs for ThreeFold Grid Project! You can now create an issue on [ThreeFold's Test Feedback repository](https://github.com/threefoldtech/test_feedback/issues) on Github, and report to our development teams about your test findings and feedback. \ No newline at end of file diff --git a/collections/manual/knowledge_base/farming/_beta/planet_positive_farming.md b/collections/manual/knowledge_base/farming/_beta/planet_positive_farming.md new file mode 100644 index 0000000..b7736e1 --- /dev/null +++ b/collections/manual/knowledge_base/farming/_beta/planet_positive_farming.md @@ -0,0 +1,18 @@ +# Planet Positive Farming + +The ThreeFold Grid (“Grid”) has the aim to become a carbon_negative grid by the end of 2022. ThreeFold Farmers (“Farmers”) will be offsetting their carbon emissions three times and through their Farming process, will be directly involved in initiatives with the goal of regenerating the earth and enhancing the life of local communities. ThreeFold will therefore partner with an organization specialized in climate education and involving students and teachers in their quest to fight against climate change. Users of the ThreeFold Grid will therefore purchase carbon-negative internet capacity with ThreeFold Tokens ("TFT"). + +Part of the ThreeFold Token from the farming reward will be allocated for energy compensation and sent onto a pool dedicated for the above project. + +The amount will depend on: +- The types of 3Node run by the Farmer as each type of server varies in terms of power utilization +- The location of the 3Node as each country has a different electricity production structure. + +More variables will be taken into account to ensure the reliability of this voluntary carbon offset. + +> More information will be communicated to the community soon. Stay tune. + + + + + diff --git a/collections/manual/knowledge_base/farming/certified/certified_farming.md b/collections/manual/knowledge_base/farming/certified/certified_farming.md new file mode 100644 index 0000000..94a3127 --- /dev/null +++ b/collections/manual/knowledge_base/farming/certified/certified_farming.md @@ -0,0 +1,5 @@ +# Certified Farming + +!!!include:farming_certification_benefits + +!!!def alias:certified_farming \ No newline at end of file diff --git a/collections/manual/knowledge_base/farming/certified/certified_node.md b/collections/manual/knowledge_base/farming/certified/certified_node.md new file mode 100644 index 0000000..8536d20 --- /dev/null +++ b/collections/manual/knowledge_base/farming/certified/certified_node.md @@ -0,0 +1,33 @@ +![](img/farming_solutions.jpg) + +## Certified Node + +A Certified Node is a node which comes BIOS locked and does not allow the owner change how the node boots. + +This makes it impossible for the node owner to make changes to the operating system and secure that the node will run the right certified version of Zero-OS. + +The Titan V2.1 node is a certified node. Certified nodes are eligible for more [farming rewards](farming_reward). + +### Requirements + +- Node delivered by a certified hardware vendor or through the ThreeFold website. +- The farmer who owns a certified node will have to sign specifically created terms and conditions + - not done yet, will be part of tfgrid 3.0 launch, see [here](farming_certification_terms_conditions). +- For 2.0 Farmers who started in 2020 or before: agreement about vesting see [vesting_overview](vesting_overview). + +### More Info + +- [Certified Farming](certified_farming) + +### More Technical Details + +- The BIOS gets locked. +- The BIOS gets configured to use TPM2 + - more info about tpm2 [here](https://www.usenix.org/system/files/conference/usenixsecurity16/sec16_paper_raj.pdf). +- TPM2 is a security implementation on the motherboard which allows Zero-OS to securely store private keys, this mechanism is used to identify Zero-OS nodes and make sure they are registered as certified node. +- If a user would reset the BIOS then the TPM private keys are gone as well. +- Starting with our TFGrid 3.0 we will use this TPM feature to verify and validate some checks done from tfchain. +- A certified farmer is required to use certified_nodes. + + +!!!def alias:certified_node diff --git a/collections/manual/knowledge_base/farming/certified/farming_certification_benefits.md b/collections/manual/knowledge_base/farming/certified/farming_certification_benefits.md new file mode 100644 index 0000000..bf29f18 --- /dev/null +++ b/collections/manual/knowledge_base/farming/certified/farming_certification_benefits.md @@ -0,0 +1,17 @@ +## Certified Farming Benefits + +This certification program has many benefits for the TFGrid user, for the world and the farmer itself. + +| For The Planet | For The Cloud User | For The Farmer | +| ------------------------------------------------------ | ---------------------------------------------------- | ------------------------------------------------------ | +| More Green | More Secure | Faster Adoption (easier to get to 30% treshold) | +| **certified carbon neutral** | More Defined Legal Framework | More Farming Rewards (income) | +| Better Global Distribution | More Uptime (SLA) | Lower Operational Cost | +| Sovereignity (legal framework) | Better Performance | Higher Credibility | +| More protection for user | Possiblity For Support | Custom Pricing CU/SU/NU is possible (*) | +| **[more info](farming_certification_benefits_planet)** | **[more info](farming_certification_benefits_user)** | **[more info](farming_certification_benefits_farmer)** | + +(*) in collaboration with TFTech, and planned for earliest H1 2022. + +- [farming certification requirements](farming_certified_requirements) +- [certified nodes](certified_node) \ No newline at end of file diff --git a/collections/manual/knowledge_base/farming/certified/farming_certification_benefits_farmer.md b/collections/manual/knowledge_base/farming/certified/farming_certification_benefits_farmer.md new file mode 100644 index 0000000..5629d3f --- /dev/null +++ b/collections/manual/knowledge_base/farming/certified/farming_certification_benefits_farmer.md @@ -0,0 +1,63 @@ +![](img/grid_banner.jpg) + +## For The Farmer + +### Higher Cloud Unit Reward reward = more income + +A certified farmer gets more farming_rewards because a certified farmer need to adhere to higher service level agreements and buy certified farming solutions or certifiy their existing 3nodes. + +### TF Tech Support + +Direct defect and certified build support for Zero-OS from the software creators for the tfgrid_primitives on TFGrid. + +### Lower Operational Cost + +Certified farms can use the TFTech power management solution which makes sure that 3Nodes are only powered on when there is a need for it. This can save huge amounts of electricity. + +### Easier to get to minimal required 30% utilization + +The tokens farmed for a 3Node are locked up in a staking pool untill the 3Node gets to 30% utilization. + +This is to make sure that people cannot put hardware to the grid which cannot be used and as such get farming rewards. + +ThreeFold needs to make sure that there is no abuse and also that 3Nodes are not brought life for just farming which would burn energy for no reason. + +ThreeFold & ThreeFold Tech will do a lot of promotion and find channel_partners to get the TFGrid to grow as fast as possible and get capacity used. + +Its up to ThreeFold to make sure that certified capacity gets deployed where it is needed first. + +All of this leads to much faster utilization of the TF_Farm IT capacity which results in the TF_Farmer getting access to their farmed tokens faster. + +### Higher Credibility Because Of Certification + +Security advantage as farm, location and nodes have been thoroughly checked and documented (secure boot process guarantees the most stable (best) Zero OS version). This information gets checked by ThreeFold which means the TFGrid user will more likey chose a certified farmer. + +### Custom Network (\*): + +Ability to implement custom networking based on VxLAN or many other networking technologies. + +This is needed for deployments in hybrid or even full private mode where customers have very specific requirements around networking. + +### Farmer Bot (\*) + +A farmer bot will be made available which makes it easier for a certified farmer to manage their farm in relation to + +- power management +- management farmed tokens +- network management tools +- lockout bad actors (e.g. deny access for hackers or other bad actors) +- ... + +### Monitoring Integration (\*) + +Possibility to integrate custom monitoring solutions. + +### Reputation System (\*) + +Farmers and TFGrid users are rated by a reputation system. +These reputation scores will be visible on the TF_Chain + +This allows a farmer to see that the TFGrid users on the TF_Farm can be trusted. + +> (\*): planned easliest Q4 2021 + diff --git a/collections/manual/knowledge_base/farming/certified/farming_certification_benefits_planet.md b/collections/manual/knowledge_base/farming/certified/farming_certification_benefits_planet.md new file mode 100644 index 0000000..3d28c69 --- /dev/null +++ b/collections/manual/knowledge_base/farming/certified/farming_certification_benefits_planet.md @@ -0,0 +1,20 @@ +![](img/grid_banner.jpg) + +## For The Planet + +### Green + +Certified farming capacity will become carbon neutral by end 2021. +This happens because if using less energy and offsetting remainder of energy usage with buying carbon credits from a climate change action program called TAG = Take Action Global. + +### Inclusive + +Everyone gets access to this network of capacity everywhere. + +Thanks to certification its easier to make sure that the TF_Farmer complies with all requirements. + +### Sovereignity + +Its important to deliver sovereign solutions to the user and to countries. +Certification allows ThreeFold to guarantee more requirements and have more visibility in the sovereignty requirements. + diff --git a/collections/manual/knowledge_base/farming/certified/farming_certification_benefits_user.md b/collections/manual/knowledge_base/farming/certified/farming_certification_benefits_user.md new file mode 100644 index 0000000..980d57c --- /dev/null +++ b/collections/manual/knowledge_base/farming/certified/farming_certification_benefits_user.md @@ -0,0 +1,52 @@ +![](img/grid_banner.jpg) + +## For The ThreeFold Grid User. + +Users of the ThreeFold Grid have an advantage to use a farmer who is certified. + +### More information about the farm + +Whoever wants to use capacity from the grid gets more information about + +- connection capabilities to the internet +- quality of hardware used +- service level agreements +- location of the TF_Farm (country,...) +- protection mechanisms around fire, water, ... + +This information is important for the TFGrid user to make selection where to host their IT workloads. + +TFTech will validate this information. + +### More uptime + +Being certified means that the farmer likely will have more uptime compared to a non certified farmer. + +### More security + +As part of the certification process, TFTech will make sure that the 3Node has secure boot procedures to allow for more security. The Farmer needs to sign an agreement with ThreeFold Foundation where they commit to a set of standards and security requirements. + +### More legal protection + +Each certified farmer has to adhere to a set of terms & conditions which protect the TFGrid User. + +The terms & conditions describe + +- privacy & security protections +- compliance to legal requirements +- protection against abuse + +### Continuation protection. + +The TF_Farmer has to promise to keep the farm operational till the end as specified on farming certificate which gets registered on the TFChain. + +- [more info about requirements see here](farming_certified_requirements) + +### TFGrid User Can Have Support + +All support inquiries will be handled through blocks of 15 minutes which are paid for in ThreeFold Support Tokens(TFTS). + +Any TFGrid user can ask for support but only for certified farms. + + + diff --git a/collections/manual/knowledge_base/farming/certified/farming_certification_terms_conditions.md b/collections/manual/knowledge_base/farming/certified/farming_certification_terms_conditions.md new file mode 100644 index 0000000..4ddf2f4 --- /dev/null +++ b/collections/manual/knowledge_base/farming/certified/farming_certification_terms_conditions.md @@ -0,0 +1,11 @@ +- sign terms and conditions document with threefold_dubai + - we are in the process of formalizing this, this will be done at least before the end 2022. +- farmer agrees and acknowledges following info: + - TFGrid operates as a DAO with the help of human councils. This means that no organization manages the operations of the TFGrid. + - TFTech as subcontractor for threefold_dubai delivers software support for the tfgrid_primitives (only defect support and certified builds). + - All information required to be a farmer can be found on our knowledgebase: https://library.threefold.me/ + - TFT rewards (farming) is the result of the blockchain as operated by consensus3 concept. If SLA is not achieved TFT will NOT be rewarded that month. + - TFT rewards are done in line with [farming reward document](farming_reward). + - Measurement of SLA (see below) done by consensus3 engine. + + diff --git a/collections/manual/knowledge_base/farming/certified/farming_certified_requirements.md b/collections/manual/knowledge_base/farming/certified/farming_certified_requirements.md new file mode 100644 index 0000000..887f0e7 --- /dev/null +++ b/collections/manual/knowledge_base/farming/certified/farming_certified_requirements.md @@ -0,0 +1,69 @@ +![](img/grid_banner.jpg) + +## Certified Farming Requirements + +### Individual Certified Farmer + +- Certified Farms are made up of certified_nodes +- up to 4 certified nodes +- home or office location + +#### Uptime and Network Requirements + +- 97% uptime is accepted in home farming situations +- 1 IP feed (consumer provider) +- 1 public IP address and NAT allowed +- enough bandwidth to allow the utilization of the storage/archive (see below) +- good enough latency (low latency = performance of network) + +### Professional Certified Farmer + +- Certified Farms are made up of certified_nodes +- more than 4 certified nodes +- datacenter location + +#### Uptime and Network Requirements + +- 99.5% uptime +- minimal bandwidth as required for the workloads as hosted on the farm +- maximum network latency +- more than 1 internet connection (multiple IP feeds) +- enough IPv4 addresses +- at least 1 class C ipv4 addr for network farmers. +- enough bandwidth to allow the utilization of the storage/archive (see below) +- good enough latency (low latency = performance of network) +- [install your network in line with Threefold Requirements](tfgrid_networking) + +(*) = in case of datacenter or commercial deployment + +#### Redundancy Requirements + +- protection for fire & water damage +- enough access to power +- redundant power systems + +#### Terms and Conditions need to be signed + +!!!include:farming_certification_terms_conditions + + +### Bandwidth Requirement for archive/storage usecase example. + +A storage usecase needs a lot of bandwidth to allow the storage nodes to be filled and also to allow its customers to download the information. + +It’s the obligation of the farmer to make sure that enough bandwidth is available. We will measure this by doing random upload & download tests to the storage systems. + +It should always be possible to have at least 1 mbit/sec per Zero_DB (which is a storage container running on 1 harddisk or ssd). + +### Reputation & Monitoring Engine + +The TFGrid has a reputation engine and a monitoring engine to measure uptime & other SLA requirements, see consensus3. + +Factors the TFGrid Reputation_engine will look at (Q4 2021, latest Q1 2022) + +- Available Bandwidth +- Latency +- Utilization +- Uptime (nodes & network) + +The monitoring engine could require farmers to execute on certain actions. \ No newline at end of file diff --git a/collections/manual/knowledge_base/farming/certified/farming_types.md b/collections/manual/knowledge_base/farming/certified/farming_types.md new file mode 100644 index 0000000..c35b1f6 --- /dev/null +++ b/collections/manual/knowledge_base/farming/certified/farming_types.md @@ -0,0 +1,20 @@ +![](img/farming_solutions.jpg) + +# Farming Types + +## DIY (Do It Yourself) Farming + +- Self made or bought bare metal server (compute/storage) capacity (and AMD or Intel system) +- No license on the software with TF Tech (Company responsible for the ThreeFold Software components). +- No Support possibility from ThreeFold / TF Tech. + +### Certified + +- Certified Secured server hardware +- Comes plug and play +- Highest Uptime Requirements +- Certification report given by TFTech or partners to describe farming situation (H2 2021). +- see [farming certified requirements](farming_certified_requirements) + +!!!include:farming_certification_benefits + diff --git a/collections/manual/knowledge_base/farming/certified/img/farming_solutions.jpg b/collections/manual/knowledge_base/farming/certified/img/farming_solutions.jpg new file mode 100644 index 0000000..dfc81d8 Binary files /dev/null and b/collections/manual/knowledge_base/farming/certified/img/farming_solutions.jpg differ diff --git a/collections/manual/knowledge_base/farming/diy/diy_guide.md b/collections/manual/knowledge_base/farming/diy/diy_guide.md new file mode 100644 index 0000000..87255c5 --- /dev/null +++ b/collections/manual/knowledge_base/farming/diy/diy_guide.md @@ -0,0 +1,44 @@ +# Do-it-Yourself Farming Guide + +Any standard computer can become a 3Node on the ThreeFold Grid. This section covers the compatible systems and setup optimization for anyone who wants to purchase or build their own nodes. + +## What kind of hardware is supported? + +Any 64-bit hardware with an Intel or AMD processor chip can run Zero-OS and become a 3Node. The following configurations provide guidelines on compatible and recommended setups: + +- Servers, desktops and mini computers type hardware are compatible. +- A minimum of 500 GB of SSD and a bare minimum of 2 GB of RAM is required. +- A ratio of 1:4 between vCPU and RAM (e.g. 8vCPU and 32 GB of RAM) is recommended. +- The recommended upper limit is 8 GB of RAM per vCPU as farming rewards do not increase beyond that ratio. +- A minimum of 500 GB of SSD and a bare minimum of 2 GB of RAM is required. +- A wired ethernet connection is highly recommended to maximize reliability and the ability to farm TFT. + +> Note: The team successfully tested ARM based devices, but they are not yet supported. + +The follwoing configurations are not advised or not supported: + +- Laptops are not advised and USB based external drives are not supported due to reliability concerns. +- No graphics or display is required, although it may be helpful during the boot configuration or troubleshooting if necessary. +- GPU is not yet supported. + +## How much power does a node consume? + +Power efficiency is important for farmers to spend less on electricity and therefore increase earnings. A small form factor server may be much more power efficient than a gaming PC with similar specs (GPUs are not supported yet). + +> Note: Knowing exactly how much power a system will draw can be complicated, but some manufacturers provide more detailed estimates than the watt rating of a power supply. + +## What kind of internet connection is needed? + +- A wired network connection should be considered essential to maximize a node's reliability. Any domestic high speed internet plan is adequate for a basic node. +- If the node connects more than a few terrabytes of storage, a gigabit or faster connection may be necessary to support the traffic. +- The Grid is designed with IPv6 in mind, but IPv4 is sufficient for now. + +> A node only needs bandwidth when it is being utilized. That means you could scale up your connectivity as utilization of your node grows. + +## How to boot a node with Zero-OS? + +Zero OS can be booted either from a USB stick (the boot image is tiny, so any size drive will do) or over a network via PXE. In either case, the latest software will be downloaded and cryptographically verified before boot. After the first boot, Zero OS will update itself automatically and requires virtually no maintenance. + +When you’re ready to start farming, follow [these instructions](https://library.threefold.me/info/manual/#/manual__farming) to bring your 3Node online. + +> Note: Occasionally, updates to the boot medium may be required. \ No newline at end of file diff --git a/collections/manual/knowledge_base/farming/farming_circular.md b/collections/manual/knowledge_base/farming/farming_circular.md new file mode 100644 index 0000000..eedc2e5 --- /dev/null +++ b/collections/manual/knowledge_base/farming/farming_circular.md @@ -0,0 +1,19 @@ + +Farming is the process of adding Internet capacity (compute, storage and network) to the ThreeFold Grid. + +ThreeFold uses a proof-of-blockstake consensus mechanism. By running Zero-OS on their hardware, Farmers dedicate the computation power and storage capacity of their node to the network, enabling anyone to host data and run IT workloads on a decentralized Internet infrastructure. + +![](img/circular_tft3_.jpg ':size=500') + +> TODO: we have better one (note: image? could not find) + +In decentralized systems like ThreeFold, we need to ensure that everyone is able to provide Internet capacity to the world. Farmers help this happen by connecting hardware that run Zero-OS. Once booted, the hardware is locked to generate Internet capacity for the network. The capacity is registered on TFChain, securing access to a decentralized Internet for users and rewarding farmers with TFT. + + + diff --git a/collections/manual/knowledge_base/farming/farming_intro.md b/collections/manual/knowledge_base/farming/farming_intro.md new file mode 100644 index 0000000..9ba490e --- /dev/null +++ b/collections/manual/knowledge_base/farming/farming_intro.md @@ -0,0 +1,64 @@ + +# ThreeFold Farming + +![](img/farming_intro0.jpeg) + +ThreeFold Farming ("Farming") is the process of connecting Internet capacity to the ThreeFold Grid. This process is undertaken by independent people or organization called ThreeFold Farmers ("Farmers"). + +## What is Farming? + +{{#include farming_circular.md}} + +## Who can become a farmer on ThreeFold? + +![](img/farming_.png) + +Technically, anyone can farm on the ThreeFold Grid using any server-type hardware. By using [Proof-of-Capacity](proof_of_capacity), farming was designed to reward all nodes equally according to the Internt capacity they provide to the ThreeFold Grid. + +## Cost of farming + +Anyone can become a Farmer, and there is no technical knowledge required. ThreeFold's autonomous system does all the heavy lifting, making it easy for anyone to join. + +- Potential costs of the hardware necessary to provide Internet capacity and maintain a farming setup. +- Electrical costs to power the farm. +- Potential cost of equipment to support larger farming setups such as data centers (ventilation, monitoring, electrical wiring, etc). + +To further explore farming rewards, click [here](@farming_reward). + +## How ThreeFold Internet capacity is farmed? + +1. A farmer provides Internet capacity by booting compatible hardware with Zero-OS. +2. Once installed, Zero-OS locks the hardware and registers the Internet capacity in TFChain. +3. Once verified by the [Proof-of-Capacity](proof_of_capacity) algorythm, the Internet capacity is made available to the network via the explorer. + +> Note: All the compute and storage data remains off-chain in order to protect the privacy of users. Once Zero-OS is booted, the device is locked in such a way that it no longer has any state or remote access, preventing farmers to access user data on a hardware level as well. + +## What kind of hardware can become a 3Node? + +Any Intel or AMD server type hardware that contains compute and/ or storage can be connected to the ThreeFold Grid. Farmers need to download Zero-OS and boot their hardware. + +Learn more [here](@farming_hardware_overview) + +Once booted by Zero OS, the hardware becomes a 3Node, and its total capacity will automatically be detected and registered on the blockchain database. We call this Proof-of-Capacity. + +Learn more about Proof-of-Capacity [here](@proof_of_capacity) + + + +!!!alias become_a_farmer \ No newline at end of file diff --git a/collections/manual/knowledge_base/farming/farming_reward.md b/collections/manual/knowledge_base/farming/farming_reward.md new file mode 100644 index 0000000..8eba865 --- /dev/null +++ b/collections/manual/knowledge_base/farming/farming_reward.md @@ -0,0 +1,63 @@ +

Farming Reward

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [How do farmers earn TFT?](#how-do-farmers-earn-tft) +- [Proof-of-Capacity](#proof-of-capacity) +- [What is proof-of-capacity?](#what-is-proof-of-capacity) +- [Why proof-of-capacity?](#why-proof-of-capacity) +- [How does Proof-of-Capacity work?](#how-does-proof-of-capacity-work) + +*** + +> Note: Farming rewards will be updated for the next 3.14 grid release. Stay tuned. + +## Introduction + +The amount of TFT earned by farmers is relative to the amount of compute, storage or network capacity they provide to the ThreeFold Grid as recorded by the proof-of-capacity algorythm. This section covers some farming and token reward basics. + +## How do farmers earn TFT? + +ThreeFold Blockchain (TFChain) rewards farmers for providing Internet capacity and expanding the ThreeFold Grid. They earn TFT. When successfully verified by proof-of-capacity, farmers earn TFT according to the amount of Internet capacity registered in TFChain. + +## Proof-of-Capacity + +The Proof-of-Capacity records Internet resources from the 3Node: + +The ThreeFold Blockchain (TFChain) uses work algorythm called "Proof-of-Capacity" to verify the Internet capacity provided by 3Nodes. Put simply, PoC verifies, on an ongoing basis, that farms are honestly representing the Internet capacity they provide to the network. + +**See Proof-of-Capacity in action** by visiting the [ThreeFold Grid Node Finder](https://dashboard.grid.tf/#/deploy/node-finder/) which represents the best resource to view POC-related data. + +## What is proof-of-capacity? + +POC allows ThreeFold Farmers to earn reward according to their contribution. Farming is the "work" itself, the act of providing Internet capacity to the network and making it accessible via our TFDAO and TFChain. + +The PoC algorythm records four different types of Internet capacity: + +- Compute Capacity (CPU) +- Memory Capacity (RAM) +- Storage Capacity (SSD/HDD) +- Network Capacity (Bandwidth, IP Addresses) + +## Why proof-of-capacity? + +PoC comes with a number of benefits, including: + +- Energy efficiency: earning reward in form of TFT does not waste energy, farming TFT is a carbon_negative operation. +- Lower barriers to entry with reduced hardware requirements: no need for elite hardware to stand a chance for earning rewards. +- Decentralized: allows anyone to connect a 3node to the network. TFGrid runs as a DAO. + +The main advantage of PoC to farmers it makes it really easy to run a 3Node. It doesn't require huge investments in hardware or energy and everyone earns a fair reward for their contribution. It is more decentralized, allowing for increased participation, and more 3Nodes doesn't mean increased returns, like in mining. + +## How does Proof-of-Capacity work? + +1. A farmer boots hardware with Zero-OS (multiple boot methods available) +2. Zero-OS is a low level OS, with no shell, farmers cannot access Zero-OS +3. Zero-OS reports used IT capacity towards TFChain +4. TFChain and TFDAO will calculate rewards as required for the farmer (TFGrid 3.1.x) +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}} diff --git a/collections/manual/knowledge_base/farming/farming_reward_calculation.md b/collections/manual/knowledge_base/farming/farming_reward_calculation.md new file mode 100644 index 0000000..a56a9f1 --- /dev/null +++ b/collections/manual/knowledge_base/farming/farming_reward_calculation.md @@ -0,0 +1,53 @@ +## Farming Reward Calculation + +Each 3Node has certain amount of compute, storage and network resources: + +- Compute Capacity (CPU) +- Memory Capacity (RAM) +- Storage Capacity (SSD/HDD) +- Network Capacity (Bandwidth, IP Addresses) + +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). + +> **Unless explicitly specified otherwise, calculations of "gigabytes" use base +> 1024. That is, 1 GB is equal to 1073741824 bytes.** + +The formula to calculate farming rewards is the following: + +```python +TFT earned per month = + CU farmed * CU farming rewards + + SU farmed * SU farming rewards + + NU used * NU farming rewards + + IPAddr used * IPAddr farming rewards + +``` + +The below table expands on CU, SU, NU and IPAddr and their farming rewards: + +| Unit | description | v3 farming rewards in TFT | +| ------------------- | ----------------------------------------------------------------- | ------------------------- | +| Compute Unit (CU) | typically 2 vcpu, 4 GB mem, 50 GB storage | $REWARD_CU_TFT TFT/month | +| Storage Unit (SU) | typically 1 TB of netto usable storage | $REWARD_SU_TFT TFT/month | +| Network Unit (NU) | 1 GB of data transfered as used by TFGrid user for Public IP Addr | $REWARD_NU_TFT TFT/GB | +| Public IPv4 Address | Public IP Address as used by a TFGrid user | $REWARD_IP_TFT TFT/hour | + + +The reward for above items are linked (pegged) to the USD + +| Unit | USD | Unit | +| ------------------- | ----- | ------------------------------------- | +| Compute Unit (CU) | 2.4 | per month | +| Storage Unit (SU) | 1 | per month | +| Network Unit (NU) | 0.03 | per GB transfer (as customers use it) | +| Public IPv4 Address | 0.005 | per IP address, calculated per hour | + +> IMPORTANT: MORE INFO ABOUT DAO RULES IN RELATION TO PROOF OF CAPACITY, SEE BELOW + +> **The rewards above are calculated according to the current TFT to USD price in TFChain of $TFTFARMING** ($NOW). TFDAO is responsible to change this price in accordance to current marketsituation and liquidity. + +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). diff --git a/collections/manual/knowledge_base/farming/farming_reward_disclaimer.md b/collections/manual/knowledge_base/farming/farming_reward_disclaimer.md new file mode 100644 index 0000000..5485865 --- /dev/null +++ b/collections/manual/knowledge_base/farming/farming_reward_disclaimer.md @@ -0,0 +1,8 @@ +> DISCLAIMER: ThreeFold Foundation organizes this process. This process is the result of the execution of code written by open source developers (Zero-OS and minting code) and a group of people who checks this process voluntarily. No claims can be made or damages asked for to any person or group related to ThreeFold Foundation like, but not limited to, the different councils. This process changes for TFGrid 3.X once the TFDAO is fully active. + +> 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) + + + diff --git a/collections/manual/knowledge_base/farming/farming_toc.md b/collections/manual/knowledge_base/farming/farming_toc.md new file mode 100644 index 0000000..547b71e --- /dev/null +++ b/collections/manual/knowledge_base/farming/farming_toc.md @@ -0,0 +1,12 @@ +# Farming + +This section covers the essential information concerning ThreeFold Farming. + +To farm on the ThreeFold Grid, refer to the [Farmers](../../documentation/farmers/farmers.md) 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 diff --git a/collections/manual/knowledge_base/farming/img/circular_tft3_.jpg b/collections/manual/knowledge_base/farming/img/circular_tft3_.jpg new file mode 100644 index 0000000..0c54072 Binary files /dev/null and b/collections/manual/knowledge_base/farming/img/circular_tft3_.jpg differ diff --git a/collections/manual/knowledge_base/farming/img/farming_.png b/collections/manual/knowledge_base/farming/img/farming_.png new file mode 100644 index 0000000..f7a6ff6 Binary files /dev/null and b/collections/manual/knowledge_base/farming/img/farming_.png differ diff --git a/collections/manual/knowledge_base/farming/img/farming_intro0.jpg b/collections/manual/knowledge_base/farming/img/farming_intro0.jpg new file mode 100644 index 0000000..c60445f Binary files /dev/null and b/collections/manual/knowledge_base/farming/img/farming_intro0.jpg differ diff --git a/collections/manual/knowledge_base/farming/img/farming_rewards_.png b/collections/manual/knowledge_base/farming/img/farming_rewards_.png new file mode 100644 index 0000000..d67d68b Binary files /dev/null and b/collections/manual/knowledge_base/farming/img/farming_rewards_.png differ diff --git a/collections/manual/knowledge_base/farming/img/grid_new_.png b/collections/manual/knowledge_base/farming/img/grid_new_.png new file mode 100644 index 0000000..5f85f72 Binary files /dev/null and b/collections/manual/knowledge_base/farming/img/grid_new_.png differ diff --git a/collections/manual/knowledge_base/farming/img/token_time_to_get_involved_now_.jpg b/collections/manual/knowledge_base/farming/img/token_time_to_get_involved_now_.jpg new file mode 100644 index 0000000..2022990 Binary files /dev/null and b/collections/manual/knowledge_base/farming/img/token_time_to_get_involved_now_.jpg differ diff --git a/collections/manual/knowledge_base/farming/img/utilization_process.png b/collections/manual/knowledge_base/farming/img/utilization_process.png new file mode 100644 index 0000000..0016ff6 Binary files /dev/null and b/collections/manual/knowledge_base/farming/img/utilization_process.png differ diff --git a/collections/manual/knowledge_base/farming/own_farm_utilization.md b/collections/manual/knowledge_base/farming/own_farm_utilization.md new file mode 100644 index 0000000..724553d --- /dev/null +++ b/collections/manual/knowledge_base/farming/own_farm_utilization.md @@ -0,0 +1,10 @@ +# Cost of Utilization of Capacity for a Famer their own farm. + +We would like to make sure that a farmer can use their provided capacity super cost effective. +The ThreeFold Dao will take care of this situation. + +The idea is that the farmer will pay only for the burning & validator nodes. + +> see [Proof of Capacity DAO rules](poc_dao_rules). + + diff --git a/collections/manual/knowledge_base/farming/poc_dao_rules.md b/collections/manual/knowledge_base/farming/poc_dao_rules.md new file mode 100644 index 0000000..0b0475c --- /dev/null +++ b/collections/manual/knowledge_base/farming/poc_dao_rules.md @@ -0,0 +1,60 @@ +

ThreeFold DAO Rules for Proof-of-Capacity

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Technical Farming Requirements](#technical-farming-requirements) +- [Suggested: improvements to proof-of-capacity](#suggested-improvements-to-proof-of-capacity) +- [TFGrid is a DAO](#tfgrid-is-a-dao) +- [Grid Enhancement Proposal](#grid-enhancement-proposal) + +*** + +> Note: The proof-of-capacity DAO rules will be updated for the next 3.14 grid release. Stay tuned. + +## Introduction + +- The CU/SU reward gets expressed in TFT and registered in TFChain at 3Node registration time + - For certified Nodes, the CU/SU reward was specified at sales/promotion time, this process is managed by ThreeFold Tech. +- CU/SU rewards are calculated from Resource Units + - Certified Node gets 25% more farming rewards + - TFT pricing is pegged to USD (pricing changes in line with TFT/USD rate) +- Rewards for NU and IP Addresses are dynamic + - The TFChain tracks capacity utilization and as such the reward can be calculated for the Farmer +- All Internet capacity farmed is rewarded on a monthly basis according to minimum service level agreements + - Minimum SLA = Service Level Agreement (see special section about SLA) needs to be achieved before TFT can be rewarded + +## Technical Farming Requirements + +- 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}} + +**Important Information around TFT USD Price Used at Registration** + +This is for mainnet TFGrid 3.0: + +- The TFT USD price used at 3Node registration at launch of mainnet is hardcoded in TFChain 3.0 at 0.08 USD per TFT (TFChain 3.0 as used in Jan 2022). +- Once the DAO is life, a new price will be approved by the DAO voters. Idea is to have this price re-visited more or less once a month, if needed faster. +- The TFT USD price used at 3Node registration is defined by the TFDAO at least once a month by means of GEP. + +## Suggested: improvements to proof-of-capacity + +Suggestions will be made to improve PoC, the DAO will have to come to consensus before changes can be made. + +- How to deal with a situation where a 3node adds or removes compute or storage capacity. +- ThreeFold is developing a way of how to detect possible fraud on PoC using TPM chip and dynamic generated code to execute random PoC checks. +- If PoC finds fraud e.g. trying to fake Internet capacity provided, the 3Node will be disabled automatically by Zero-OS and flagged as fraudulant. The Farmer will then have to re-register with a lower reputation for transparancy to the ecosystem. If TFTs are staked at that time, they will be locked permanently. +- How to improve the calculation of CU rewards to mitigate the difference in power provided between new and old hardware. + + +## TFGrid is a DAO + +- All of above information is public and can be see by everone of the community as per 3Node and Farmer (part of TFChain). +- Farming rewards methodology can and probably will get revised if the community wants this, DAO consensus needs to be achieved before changes can happen, this happens by means of a GEP. + +## Grid Enhancement Proposal + +- Changes to above described mechanism or any other change request for the TFGrid is managed by grid enhancement proposals (GEP). +- Because we are a DAO, everything is open for change as long as consensus of community in accordance of TFDAO has been achieved. \ No newline at end of file diff --git a/collections/manual/knowledge_base/farming/proof_of_capacity.md b/collections/manual/knowledge_base/farming/proof_of_capacity.md new file mode 100644 index 0000000..ae0f9fe --- /dev/null +++ b/collections/manual/knowledge_base/farming/proof_of_capacity.md @@ -0,0 +1,93 @@ +

Proof-of-Capacity

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [What is proof-of-capacity?](#what-is-proof-of-capacity) +- [Why proof-of-capacity?](#why-proof-of-capacity) +- [How does Proof-of-Capacity work?](#how-does-proof-of-capacity-work) +- [PoC Rewards](#poc-rewards) +- [Farming Reward Calculation](#farming-reward-calculation) + +*** + +> Note: The proof-of-capacity parameters will be updated for the next 3.14 grid release. Stay tuned. + +## Introduction + +The ThreeFold Blockchain (TFChain) uses work algorythm called "Proof-of-Capacity" to verify the Internet capacity provided by 3Nodes. Put simply, PoC verifies, on an ongoing basis, that farms are honestly representing the Internet capacity they provide to the network. + +## What is proof-of-capacity? + +POC allows ThreeFold Farmers to earn reward according to their contribution. Farming is the "work" itself, the act of providing Internet capacity to the network and making it accessible via our TFDAO and TFChain. + +The PoC algorythm records four different types of Internet capacity: + +- Compute Capacity (CPU) +- Memory Capacity (RAM) +- Storage Capacity (SSD/HDD) +- Network Capacity (Bandwidth, IP Addresses) + +## Why proof-of-capacity? + +PoC comes with a number of benefits, including: + +- Energy efficiency: earning reward in form of TFT does not waste energy. +- Lower barriers to entry with reduced hardware requirements: no need for elite hardware to stand a chance for earning rewards. +- Decentralized: allows anyone to connect a 3node to the network. TFGrid runs as a DAO. + +The main advantage of PoC to farmers it makes it really easy to run a 3Node. It doesn't require huge investments in hardware or energy and everyone earns a fair reward for their contribution. It is more decentralized, allowing for increased participation, and more 3Nodes doesn't mean increased returns, like in mining. + +## How does Proof-of-Capacity work? + +1. A farmer boots hardware with Zero-OS (multiple boot methods available) +2. Zero-OS is a low level OS, with no shell, farmers cannot access Zero-OS +3. Zero-OS reports used IT capacity towards TFChain +4. TFChain and TFDAO will calculate rewards as required for the farmer (TFGrid 3.1.x) +5. TFChain will mint the required TFT and send them to account on TFChain of the farmer. +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. + + +## PoC Rewards + +100% of specified [farming rewards](./farming_reward.md) goes to the farmer. + +## Farming Reward Calculation + +Each 3Node has certain amount of compute, storage and network resources: + +- Compute Capacity (CPU) +- Memory Capacity (RAM) +- Storage Capacity (SSD/HDD) +- Network Capacity (Bandwidth, IP Addresses) + +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). + +> **Unless explicitly specified otherwise, calculations of "gigabytes" use base +> 1024. That is, 1 GB is equal to 1073741824 bytes.** + +The formula to calculate farming rewards is the following: + +```python +TFT earned per month = + CU farmed * CU farming rewards + + SU farmed * SU farming rewards + + NU used * NU farming rewards + + IPAddr used * IPAddr farming rewards + +``` + +The below table expands on CU, SU, NU and IPAddr and their farming rewards: + +| Unit | description | v3 farming rewards in TFT | +| ------------------- | ----------------------------------------------------------------- | ------------------------- | +| Compute Unit (CU) | typically 2 vcpu, 4 GB mem, 50 GB storage | 30.00 TFT/month | +| Storage Unit (SU) | typically 1 TB of netto usable storage | 12.50 TFT/month | +| Network Unit (NU) | 1 GB of data transfered as used by TFGrid user for Public IP Addr | 0.38 TFT/GB | +| Public IPv4 Address | Public IP Address as used by a TFGrid user | 0.06 TFT/hour | + +> **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). diff --git a/collections/manual/knowledge_base/farming/proof_of_utilization.md b/collections/manual/knowledge_base/farming/proof_of_utilization.md new file mode 100644 index 0000000..e92536e --- /dev/null +++ b/collections/manual/knowledge_base/farming/proof_of_utilization.md @@ -0,0 +1,58 @@ +

Proof-of-Utilization

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [What is Proof-of-Utilization?](#what-is-proof-of-utilization) +- [How does Proof-of-Utilization work?](#how-does-proof-of-utilization-work) +- [ThreeFold DAO rules in Relation To Proof-of-Utilization](#threefold-dao-rules-in-relation-to-proof-of-utilization) + - [TFGrid Capacity Utilization](#tfgrid-capacity-utilization) + - [Other Ways TFT are Required](#other-ways-tft-are-required) + +*** + +> Note: The proof-of-utilization parameters will be updated for the next 3.14 grid release. Stay tuned. + +## 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. + +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. + +## What is Proof-of-Utilization? + +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). + +## 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). +4. TFT from the user account are burned/distributed in line to table below. + +| Percentage | Description | Remark | +| ---------- | -------------------------------------- | ------------------------------------------------------------------------ | +| 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). | + +> 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. + +## ThreeFold DAO rules in Relation To Proof-of-Utilization + +### TFGrid Capacity Utilization + +- 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. +- 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 + +- Anyone building solutions on top of the TFGrid can use TFT as a currency to charge for the added value they provide, this gives an extra huge requirement for TFT. +- Some will use TFT as a store or exchange of value, like money, because TFT is a valuable commodity. The hoarding of TFT means that TFT are not available to be used on the TFGrid. + + diff --git a/collections/manual/knowledge_base/farming/tfgrid_min_sla.md b/collections/manual/knowledge_base/farming/tfgrid_min_sla.md new file mode 100644 index 0000000..5659485 --- /dev/null +++ b/collections/manual/knowledge_base/farming/tfgrid_min_sla.md @@ -0,0 +1,18 @@ +## Minimum requirement Service Level Agreement (SLA) + +Minimal SLA's need to be achieved before the farming reward can be earned (uptime, bandwidth, latency, ...). This is not yet fully implemented. + +More service levels agreements will be required, the DAO will decide on those changes. +Requests can be made by everyone by means of GEP. + +Some Ideas + +- minimal uptime +- minimal bandwidth requirement +- minimal network latency requirement +- minimal distance between Certified Nodes for the super node concept +- different uptime requirement for Certified vs DIY nodes + + +If SLA (Service Level Agreement) was not achieved for 3 consecutive months, then the 3Node will have to re-register which means the CU/SU reward will be recalculated at that time and re-registered in TFChain for that node, just like a new one. + diff --git a/collections/manual/knowledge_base/farming/utility_token_model.md b/collections/manual/knowledge_base/farming/utility_token_model.md new file mode 100644 index 0000000..56e4346 --- /dev/null +++ b/collections/manual/knowledge_base/farming/utility_token_model.md @@ -0,0 +1,4 @@ +| Utility Token model | | +| -------------------------------------------- | ------------------------------------------ | +| [Proof Of Capacity](proof_of_capacity) | Farming (creation) of TFT | +| [Proof Of Utilization](proof_of_utilization) | Utilization (burning, distribution) of TFT | \ No newline at end of file diff --git a/collections/manual/knowledge_base/farming/why_farming.md b/collections/manual/knowledge_base/farming/why_farming.md new file mode 100644 index 0000000..be389a5 --- /dev/null +++ b/collections/manual/knowledge_base/farming/why_farming.md @@ -0,0 +1,18 @@ + +## Why becoming a Farmer? + +### Internet and Its Global Demand + +The Internet represents the largest economy in the world and is growing at a rapid pace. + +![](img/token_time_to_get_involved_now_.jpg) + +The ThreeFold Grid offers the most scaleable, secure and sustainable infrastructure to supply the increasing Internet demand. + +Learn more about the ThreeFold Grid [here](grid_intro). + +### Sovereign and Recurrent Wealth + +By participating in the expansion of the ThreeFold Grid, Farmers earn [TFT](threefold_token) on a monthly basis. ThreeFold Token has value - it represents a unit of reservation of Internet Capacity on the ThreeFold Grid. With the infinite expansion of the ThreeFold Grid and the scarcity of mechanism of the [TFT](threefold_token), there will be a constant increase in demand while a decrease in supply, thus providing value of its holders/Farmers. + +Learn more about Farming Rewards [here](farming_reward). \ No newline at end of file diff --git a/collections/manual/knowledge_base/knowledge_base.md b/collections/manual/knowledge_base/knowledge_base.md new file mode 100644 index 0000000..2aebbdb --- /dev/null +++ b/collections/manual/knowledge_base/knowledge_base.md @@ -0,0 +1,14 @@ +

ThreeFold Knowledge Base

+ +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/documentation.md). + +

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 diff --git a/collections/manual/knowledge_base/legal/definitions_legal.md b/collections/manual/knowledge_base/legal/definitions_legal.md new file mode 100644 index 0000000..5afe811 --- /dev/null +++ b/collections/manual/knowledge_base/legal/definitions_legal.md @@ -0,0 +1,297 @@ +# Definitions + +## ThreeFold (TF) + +AN INTERNET BUILT FOR EVERYONE, BY EVERYONE. + +Threefold is a peer-to-peer network of network, storage an compute capacity for an upgraded internet, laying the foundation for a more sustainable, smart, and sovereign digital world where everyone can participate and prosper. + +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](https://github.com/threefoldfoundation) + +## ThreeFold Foundation (TFF) + +The ThreeFold Foundation (ThreeFold_Dubai) is a participant in the bigger ThreeFold movement, the purpose of the movement is to bring the world a truly peer-to-peer internet. + +We acknowledge and support the many people and organizations around the world who bring crucial support to the growth and adoption of the ThreeFold_Grid. + +See [ThreeFold Dubai](../about/threefold_dubai.md) + +> Work is ongoing to make the Foundation a global distributed concept with probably more than 1 legal entity. + +## ThreeFold Tech (TFTech, TFTECH) + +TF TECH NV, a Belgian limited liability company, having its registered office at Antwerpse Steenweg 19, B-9080 Lochristi, Belgium, registered with the Belgian Crossroads Bank of Enterprises under company number 0712.845.674 (RLP Gent, district Gent) + +TF Tech is a software tech company and is a major contributor to the software as used on the TFGrid. + +See [TFTech](../about/threefold_tech.md) + +## Non For Profit + +Non-for-profit organizations are types of organizations that do not earn profits for its owners. All of the money earned by or donated to a non-for-profit organization is used in pursuing the organization's objectives and keeping it running. Employees or contributors can be paid for the services provided. + +In the case of TFF following remarks might be useful + +- Many non for profits get a legal status by the government to not have to pay tax, in our case the foundation is in Dubai, there is no Tax implication in Dubai as such we didn't need this status or certification. +- TFF has been funded by its original founders by means of loans or investment in kind or tokens, this money can be returned to the founders whenever cashflow allows (which is not the case yet). +- TFF directors/shareholders do everything they can to only operate out of the best interests of the ThreeFold Project. +- A project is under way to officialize the structure with strict governance e.g. a company called ThreeFold VZW has been created in Belgium with official governance around non for profit structure. This company is not used yet. Other alternatives are being researched at this moment (Aug 2020). +- ThreeFold_Dubai has farmed tokens which can be used as gifts towards contributors or employees. + +## ThreeFold_Grid (TFG) + +The ThreeFold_Grid is a new, global neutral and sustainable network of IT infrastructure. On this Grid, IT capacity is indexed registered on the TFChain for easy discovery by purchasers. + +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. + +## IT Capacity + +- IT = Information Technology. +- IT Capacity is resource availability for running any IT Workloads +- Examples of IT Workloads which can run on the TFG are + - web applications + - archiving of data + - generic storage (e.g. using the S3 storage interface) + - container workloads (e.g. using the Kubernetes interface) + - artificial intelligence workloads + - big data workloads (processing of data) + - gaming servers + - content delivery + - test workloads for developers + +## ThreeFold_Token (TFT) + +The ThreeFold_Token is a digital Token which allows anyone to buy and sell IT Capacity on the TF Grid. This token only gets issued by the TFChain if a TF Pool gets connected to the TF Grid. + +The TFChain can issue a maximum of 4 billion tokens (gen 2). + +## TFChain + +Group of blockchain related technologies as used by ThreeFold to accomplish the following: + +- store & trade your TFTs: uses Stellar Public Blockchain platform +- buy/sell capacity on the TFG: TFExplorer +- register capacity of the TFG: TFExplorer +- provision IT workloads on the TFG: TFExplorer +- ... + +> See the following [github repos](https://github.com/threefoldtech) and [https://github.com/threefoldfoundation/tft-stellar](https://github.com/threefoldfoundation/tft-stellar) + +## Zero-OS (ZOS) or Capacity Layer + +The Zero-OS is the software which makes it possible to convert any pool of hardware to become a pool of resource for the ThreeFold_Grid. + +> See [Zero-OS](https://github.com/threefoldtech/zos) = Ultra Efficient Stateless Operating System + +## Zero-People or Autonomous Layer + +- [Jumpscale](https://github.com/threefoldtech/js-ng) = Automation Framework (self healing, ...) + +## User + +- is the person/organization/company who buys capacity from the TF Grid +- capacity can only be bought by means of TFTs + +## TF Distributed exchange (TFExchange) + +Since March 2020 based on Stellar integrated Decentralized exchange and before Atomic Swaps. +Mechanism for people to exchange TFT to other digital currencies in a decentralized way. +Atomic Swaps were difficult to use, this got resolved by switching to Stellar blockchain. + +# ThreeFold Farming + +## TFNode + +- is a compute/storage server which provides IT Capacity as source for the Cloud Units +- a TFNode is part of a Farming Pool +- 3Nodes are owned by TF Farmers. +- The TFNode runs the TF Operating System and TFChain (TFC). + +## Cloud Units + +Units of IT capacity as sold from the TF Grid to Users. +More info see [here](../cloud/cloudunits.md) + +## ThreeFold Farming Pool (FP) + +A Pool of storage & compute hardware which allows to provision IT Capacity. + +Each Farming Pool consists out of 3Nodes which run the TF Operating System and TF Blockchain Software (TFChain) which allows anyone in the world to use this IT capacity to host their IT workloads (storage apps, archive capacity, web applications, artificial intelligence, iOT, docker containers, etc). To use this IT Capacity, through the TF Grid, people need to own ThreeFold_Tokens (“TFTs”) as they are the only possible mechanism to purchase this capacity on the TF Grid. As such, TFTs represent a true utility. + +## ThreeFold Farmer + +A ThreeFold Farmer is any organization or person who invests in a ThreeFold Farming Pool and connects this capacity to the ThreeFold_Grid. + +As a result of Farming, i.e. creating additional capacity, ThreeFold_Tokens are automatically created by the ThreeFold Chain. + +Farmers can cultivate both managed and/or unmanaged capacity. + +Farmers receive TFTs + +- as part of owning the TF Farming Pool (tf_farming) +- as part of selling capacity from the TF Farming Pool (cultivating) + +Most TF Farmers use a ThreeFold Cooperative to become active because it hugely simplifies the process and gives them often better pricing to purchase the Farming Pool as well as connecting the Farming Pool to the internet. + +The ThreeFold Farmer is the only party who owns the TF Farming Pool. + +## ThreeFold Cooperative + +Any organization who helps a TF Farmer to become active on the TF Grid. + +A Cooperative can supply any or all of following services. + +- Selling required hardware kit for the Farming Pool (compute, storage, networking) to the TF Farmer (and logistics around it). +- Installing & testing the TF Operating System on the chosen hardware. +- Burn in testing of the chosen hardware: make sure the hardware is reliable and works following expectations. +- Configuration & Installation of the ThreeFold Farming Pool. +- Registration & Initialization of the ThreeFold Farming Pool. +- Delivering & Executing of hardware Warranty as specified on contract. +- Creation and Delivery of the ThreeFold Mobile App for the TF Farmer (allow people worldwide to order capacity using TFTs for the Farming Pool. +- Software support for the Farming Pool +- Training of the TF Farmer about TF Concepts + - how to use the TF Wallet + - how to safely store the TFT's + - how to go from TFT's to fiat currency like USD/EUR (and visa versa) + - how to register pricing info on the TF Grid + - how to integrate a fiat currency payment gateway into existing ecommerce website for the sales of TFT's or TF IT Capacity (e.g. integration with Stripe or other payment mechanism) + - how to consult/register information on the TFChain +- Hosting Services + - all services related to connectivity to the internet (routing, denial of service, firewalling, ...) + - rackspace & other datacenter services + - monitoring of the infrastructure (hardware and software). + +## Do It Yourself Capacity + +Unmanaged IT Capacity can exist everywhere; in people’s home, in mobile telephone masts, in utility cabinets, next to railways or motorways, anywhere where internet lines meet electrical outlets, any IT Hosting or Datacenter Facility. This capacity is deployed to the TF Grid and has no people involved to manage its operations (apart from the physical and network aspects). Farmers have no access to the 3Nodes purchased. They can only use the capacity produced in the exact same way as any other user, i.e. through the TFChain, in a secure private and neutral way, equally applicable to all. + +Unmanaged capacity provides the following 3 basic services + +- Storage Capacity = backend storage services which can be used as backend for more high level storage services like S3 +- Compute Capacity = backend compute capacity which can be used as backend for more high level compute services like Kubernetes. +- Network Gateway Services: integration with ZeroTier network, HTTP(s) reverse proxy, DNS services, TCP Portforwarding. + +These basic services are ordered through the TFChain only. +SLA's (service level agreements) cannot be be guaranteed on Unmanaged Capacity and as such not registered in the TFChain. + +## Certified Capacity + +Capacity which received certification as organized by ThreeFold Tech. + +## Managed Capacity + +Managed capacity is capacity that sits in a datacenter or other controlled environment where people operate and maintain supervision of the capacity connected to the TF Grid and published in the TF Directory. SLA (Service Level Agreements) are provided on this capacity like uptime, guaranteed bandwidth, response times, ... + +TF Farmers have access to the 3Nodes. + +Features Only Available In A Managed Capacity Farming Pool + +- Published & Tracked (monitored) Service Level Agreements + +# Legal + +## The Company + +The Company has been defined on the contract who refers to this document but can be any of the following: + +- The company or organization who is selling a service on the ThreeFold_Grid. +- The company who is selling/buying ThreeFold_Tokens (TFTs) as capacity on the ThreeFold_Grid. +- The company who is helping a Farmer to become active on the ThreeFold_Grid = a TF Cooperative. +- The company who is selling the hardware and software required for a Farming Pool + +## The Product + +The Product is the ThreeFold_Token or any service related to the ThreeFold_Grid which can be bought by The Purchaser. +The Product has been defined on the contract who refers to this document. + +## The Purchaser + +Is the person or company or organization who buys The Product from The Company + +## ThreeFold Tech (TFTech) + +Software Technology company in Belgium. + +Has no direct relationship with the TFGrid or TFTokens. TFTech does not farm and ThreeFold_Tokens and has no impact or does not give any direction to anything happening on the ThreeFold_Grid or in relation to TFTokens. + +TFTech is the company who creates a lot of the opensource software as is used in the TFGrid. TFTech is also a contributor to the TF Foundation in the form of content or promotion, there is no legal connection in place. + +TFTech business model is to sell licenses and certify TFGrid farmers if that is what they require. + +# Miscellaneous + +## TF Wallet + +A software application which allows anyone to consult how many TFTs they own and to make transfers of TFTs to other parties. +The TF Wallet works together with Stellar and is nothing but a javascript UI. +TF Wallet is part of the ThreeFold Connect app on mobile. + +# Sales Related Definitions + +### “Acceptance” + +means that any Deliverable has successfully completed the Acceptance process set forth in Section 4. Such Acceptance may be either explicit or implicit, i.e. in the absence of an explicit Rejection. + +### “Acceptance Period” + +means fifteen (15) days as from the Delivery Date, unless otherwise agreed to in the Sales Order or as provided under statutory law. + +### “Customer” + +means you or the customer entity identified in the Sales Order, as the case may be. + +### “Deliverables” + +means the Hardware, Software, Services (if any), or any deliverable specified in a Sales Order. + +### “Delivery” + +means the act of making the Deliverables available for reception by the Customer in accordance with Section 4.1. + +### “Delivery Date” + +means the ultimate date on which the Delivery may take place, as determined in the Sales Order. + +### “Documentation” + +means all manuals, instructions and other documents (whether in hard copy, soft copy or web-based form) relating to, or necessary for, the use, operation or maintenance of the Deliverables, together with all enhancements, corrections, modifications and amendments to such documents that are furnished to Customer under this Agreement. + +### “Effective Date” + +means the date when the Agreement starts to operate, corresponding to the issuance date of the Sales Order. + +### “Hardware” + +means any hardware to be provided by Company as specified in a Sales Order or Specific Agreement. + +### “Party” + +means any party to this Agreement; + +### “Rejection” + +means the explicit rejection of Deliverables by Customer, provided that the following cumulative conditions have all been completed: +the Rejection has been notified by Customer to Company within the Acceptance Period (i.e. at the latest on the last day of the Acceptance Period); +Customer has returned to Company all rejected Deliverables immediately after the Rejection notice; +Any rejection that does not meet both aforementioned cumulative conditions shall not qualify as a Rejection and shall be deemed an implicit Acceptance. + +### “Sales Order” + +means any Sales Order generated electronically by Company to allow the Customer to order, including the details specified by Customer in the checkout of the Company website, or any document that the Parties mutually agree upon as the vehicle for procuring Hardware, Software and/or Services pursuant to this Agreement. + +### “Services” + +means any services to be provided by Company to Customer as stipulated in the Sales Order. + +### “Software” + +means the open source software connecting the Hardware to the ThreeFold network, all in machine readable, object code form, together with all enhancements, modifications, corrections and amendments thereto. + +### “Specifications” + +means the technical requirements for, and performance standards of, the Deliverables as set forth in the Sales Order or Documentation provided to Customer. + +{{#include ./terms_conditions/sub/the_single_source_truth.md}} \ No newline at end of file diff --git a/collections/manual/knowledge_base/legal/disclaimer.md b/collections/manual/knowledge_base/legal/disclaimer.md new file mode 100644 index 0000000..37be9e9 --- /dev/null +++ b/collections/manual/knowledge_base/legal/disclaimer.md @@ -0,0 +1,36 @@ +# General Warning And Disclaimer + +Your use of the TFGrid and/or TFTs, as well as the IT capacity made available from the TFGrid to the Internet, as well as any tools provided to work with TFGrid or TFTokens (hereinafter collectively also referred to as the "Services") will be subject to the warnings, limitations, acknowledgements and disclaimers set out hereinafter. These statements and disclaimers are made by and on behalf of (1) the TF Foundation (ThreeFold_Dubai), (2) each individual or entity acting as a ThreeFold Farmer (3) , TFTech NV (4) any of the companies or individuals related to these entities, and (5) any person contributing or otherwise assisting in developing, marketing or distributing the Services (hereinafter collectively referred to as “ThreeFold”). + +### Disclaimer + +TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW THE SERVICES ARE PROVIDED ON AN "AS IS" AND “AS AVAILABLE” BASIS WITHOUT WARRANTIES OF ANY KIND, AND THREEFOLD EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES AS TO THE SERVICES, INCLUDING, WITHOUT LIMITATION, IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT; (B) THREEFOLD DOES NOT REPRESENT OR WARRANT THAT THE SERVICES ARE ACCURATE, COMPLETE, RELIABLE, CURRENT OR ERROR-FREE, MEET YOUR REQUIREMENTS, OR THAT DEFECTS IN THE SERVICES WILL BE CORRECTED; AND (C) THREEFOLD CANNOT AND DOES NOT REPRESENT OR WARRANT THAT THE SERVICES, OR THE SERVERS USED TO PROVIDE SUCH SERVICES, ARE FREE OF VIRUSES OR OTHER HARMFUL COMPONENTS. + +By using the Services, you acknowledge that: + +- you have access to all relevant and required information to do with the tokens and the grid on https://library.threefold.me + - e.g. way how tokens are created/minted on: token_creation + - all this information is being provided on best effort basis and does not imply any promise or guarantee +- you have sufficient knowledge and experience in financial and business matters and are capable of evaluating the merits and risks of using or acquiring TFTs, and that you are able to bear the economic risk of such acquisition for an indefinite period of time. +- the Services (including the TFTs) involve risks, all of which you fully and completely assume, including, but not limited to, the risk relating to the possibility of limited or absent liquidity for the TFTs on the secondary markets (including the relevant online exchanges), the risk relating to price fluctuations of the TFTs on such secondary markets (including the relevant online exchanges), etc. +- the Services (including the TFTs) have or will be created and delivered to you at your sole risk on an "AS IS" basis. +- you have not relied on any representations or warranties made by ThreeFold outside this document, including, but not limited to, conversations of any kind, whether through oral or electronic communication, or any white paper. Without limiting the generality of the foregoing, you assume all risk and liability for the results obtained by the use of any tokens (including TFTs) and regardless of any oral or written statements made by ThreeFold, by way of technical advice or otherwise, related to the use of the tokens. +- you bear sole responsibility for any taxes as a result of the use or acquisition of the Services (including the TFTs), and any future acquisition, ownership, use, sale or other disposition of TFTs held by you. To the extent permitted by law, you agree to indemnify, defend and hold ThreeFold harmless for any claim, liability, assessment or penalty with respect to any taxes (other than any net income taxes of ThreeFold that result from the sale of TFTs) associated with or arising from your purchase, use or ownership of TFTs. + +### Release + +To the fullest extent permitted by applicable law, you hereby explicitly release ThreeFold from responsibility, liability, claims, demands and/or damages (actual and consequential) of every kind and nature, known and unknown (including, but not limited to, claims of negligence), arising out of or related to: + +(1) disputes between users of the Services and/or the acts or omissions of third parties; and +(2) your purchase of tokens (if any) from ThreeFold_Dubai (formerly known as ‘GreenITGlobe’) or Bettertoken BV identified in the relevant contracts as ‘Internal ThreeFold_Tokens’ or ‘iTFTs’. + +If and to the extend you have purchased or otherwise acquired tokens from ThreeFold_Dubai (formerly known as ‘GreenITGlobe’) or Bettertoken BV that were identified in the relevant contracts as ‘Internal ThreeFold_Tokens’ or ‘iTFTs’, your use of the Services (including your subsequent receipt or acceptance of TFTs) implies your confirmation that such purchase or acquisition has been duly completed as a result of your receipt of a corresponding amount of TFTs, that all deliverables under the relevant contracts (known as ‘iTFT Purchase Agreement’, ‘TFT Purchase Agreement’ or ‘ITO investment agreement’) have been duly delivered and that there are no further obligations from one of the above-mentioned companies to you in relation to such contracts. + +### Limitation of Liability + +- Exclusion of indirect damages. To the fullest extent permissible under applicable law, ThreeFold shall not have any liability with respect to any claims for consequential, exemplary, special, indirect and/or punitive damages (such as –but not limited to – loss of goodwill, loss of actual or anticipated business or contracts, work stoppage, loss as a result of a third party claim, data loss or corruption of data, computer failure or lost profit), arising out or in any way related to the access or use of the Services or otherwise related to ThreeFold, regardless of the form of action, whether based in contract, or otherwise, even if ThreeFold has been advised of the possibility of such damages. +- Cap on damages. To the extent permissible under the applicable law the contractual and/or extra-contractual liability of ThreeFold arising out or related to the use of, or inability to use, the Services, shall be limited to (1) any compensation you paid to ThreeFold for the Services, or (2) 1,000 US Dollars, whichever is greater. This limitation is cumulative and not per incident. It applies to all causes of action and obligations in the aggregate, including without limitations, any claim of breach of contract and/or negligence. +- Prescription. No action in any form arising out of or in connection with this Agreement may be brought by the Purchaser more than one (1) year after the cause of action has accrued. +- No limitations for own intent. Nothing in this Agreement shall (or shall be deemed to, or construed to) exclude or restrict any liability either Party may incur as a result of fraud, willful intent or for any death or personal injury resulting from its gross negligence or that of its employees, agents or subcontractors. + +{{#include ./terms_conditions/sub/the_single_source_truth.md}} \ No newline at end of file diff --git a/collections/manual/knowledge_base/legal/legal.md b/collections/manual/knowledge_base/legal/legal.md new file mode 100644 index 0000000..d925da2 --- /dev/null +++ b/collections/manual/knowledge_base/legal/legal.md @@ -0,0 +1,17 @@ +

ThreeFold Legal Wiki

+ +As part of ThreeFold's commitment to transparency and providing a secure and reliable platform, we have a dedicated [ThreeFold's Legal Wiki](https://legal.threefold.io) where users can access essential legal articles and documentation. + +At [**legal.threefold.io**](https://legal.threefold.io), users can find important legal resources such as Terms and Conditions (T&C) and disclaimers that govern the usage of the ThreeFold Grid and related services. + +These legal documents outline the rights, responsibilities, and obligations of both ThreeFold and its users, ensuring a clear understanding of the legal framework within which the platform operates. By visiting the legal section, users can familiarize themselves with the legal aspects of engaging with the ThreeFold ecosystem, promoting a trustworthy and accountable environment. + +You're invited to explore the ThreeFold Legal Wiki by visiting [this link](https://library.threefold.me/info/legal/#/). + +- [Disclaimer](../wiki/disclaimer.md) +- [Definitions](../wiki/definitions_legal.md) +- [Privacy Policy](../wiki/privacypolicy.md) +- [Terms & Conditions ThreeFold Related Websites](../wiki/terms_conditions_websites.md) +- [Terms & Conditions TFGrid Users TFGrid 3](../wiki/terms_conditions_griduser.md) + - [TFTA to TFT](../wiki/tfta_to_tft.md) +- [Terms & Conditions TFGrid Farmers TFGrid 3](../wiki/terms_conditions_farmer3.md) \ No newline at end of file diff --git a/collections/manual/knowledge_base/legal/privacypolicy.md b/collections/manual/knowledge_base/legal/privacypolicy.md new file mode 100644 index 0000000..1d0c4a8 --- /dev/null +++ b/collections/manual/knowledge_base/legal/privacypolicy.md @@ -0,0 +1,120 @@ +# Privacy Policy + +*This privacy policy will explain how ThreeFold Movement ("companies", “we”, or “us”) uses the personal data we collect from you when you use any of our:* + +{{#include ./terms_conditions/sub/websites.md}} + +### What data do we collect? + +All websites using the ThreeFold Movement Privacy Policy do not collect any data on a personal level by default. All data being processed is anonymized. When signing up for our newsletter we collect your: *email address* + +**How do we collect your data?** + +Browsing data: +We automatically collect data and process data when you use or view our website via your browser's cookies. + +Newsletter Signups: +Collected only with your permission through our sign-up form that uses a double opt-in mechanism for you to explicitly accept. + +### How will we use your data? + +We use this information to monitor and analyze your use of our website and for the website's technical administration, to increase our website's functionality and user-friendliness, and to better tailor it to our visitors needs. + +If you agree, our companies will share your data with the following partner companies so that they may offer you or us their products and services: + +* Matomo: offers us services relating to monitoring and measuring website traffic and access, creating user navigation reports, etc. All information processed here is anonymized. We run this service within our own environments. The data being processed does not leave our servers and is not shared with any thrid parties. + +* Mailerlite: offers us services relating newsletter sending and monitoring. + +**We do not track individual IP's or any other personal data.** + +The aforementioned processors operate independently from us and have their own privacy policy, which we strongly suggest you review. These processors may use the information collected through their services to evaluate visitors’ activity, as set out in their respective privacy policies. + +### How do we store your data? + +We store the anonmyzed data in Matomo for us to research usage and improve user experience on our websites. +We store email addresses in Mailerlite's system. + +### Marketing + +We will not use your information for any (re)marketing reasons, nor send you information about products and/or services of ours or any partner companies unless you explicitly agreed to signing up for our newsletter. + +### What are your data protection rights? + +We would like to make sure you are fully aware of all of your data protection rights. Every user is entitled to the following: + +#### The right to access + +You have the right to request from us copies of your personal data. We may charge you a small fee for this service. + +#### The right to rectification + +You have the right to request that we correct any information you believe is inaccurate. You also have the right to request us to complete information you believe is incomplete. + +#### The right to erasure + +You have the right to request that we erase your personal data, under certain conditions. + +#### The right to restrict processing + +You have the right to request that we restrict the processing of your personal data, under certain conditions. + +#### The right to object to processing + +You have the right to object to our companies' processing of your personal data, under certain conditions. + +#### The right to data portability + +You have the right to request that we transfer the data that we have collected to another organization, or directly to you, under certain conditions. + +If you make a request, we have one month to respond to you. If you would like to exercise any of these rights, please contact us: + +* email: dataprivacy@threefold.io + +* post address: +{{#include ./threefold_fzc_address.md}} + + +### What are cookies? + +Cookies are text files placed on your computer to collect standard Internet log information and visitor behavior information. When you visit our websites, we may collect information from you automatically through cookies or similar technology. + +For further information, visit: http://allaboutcookies.org/ + +### How do we use cookies? + +We use cookies in a range of ways to improve your experience on our website, including: + +* understanding how you use our website + +* for the websites technical administration + +### What types of cookies do we use? + +There are a number of different types of cookies, however, our websites use: + +* Functionality - Our companies use these cookies so that we recognize you on our website and remember your previously selected preferences. These could include what language you prefer and the location you are in. A mix of first-party and third-party cookies are used. + +* No Advertising - Our companies use these cookies to collect information about your visit to our website, the content you viewed, the links you followed and information about your browser, device, and your IP address. However, we will not share this data with third parties for advertising purposes. + +* Analytics cookies - Our companies use these to monitor how users reached the Site, and how they interact with and move around once on the Site. These cookies let us know what features on the Site are working the best and what features on the Site can be improved. + +### How to manage cookies + +You can set your browser to not accept cookies, and the above website tells you how to remove cookies from your browser. However, in a few cases, some of our website features may not function as a result. + +### Privacy policies of other websites + +Our website contains links to other websites. Our privacy policy applies only to our website, so if you click on a link to another website, you should read their privacy policy. + +### Changes to our privacy policy + +We keep our privacy policy under regular review and places any updates on this web page. This privacy policy was last updated on 16 May 2019. + +### How to contact us + +If you have any questions about our privacy policy, the data we hold on you, or you would like to exercise one of your data protection rights, please do not hesitate to contact us. + +Email us at: dataprivacy@threefold.io + +{{#include ./terms_conditions/sub/the_single_source_truth.md}} \ No newline at end of file diff --git a/collections/manual/knowledge_base/legal/terms_conditions/sub/parties_threefold.md b/collections/manual/knowledge_base/legal/terms_conditions/sub/parties_threefold.md new file mode 100644 index 0000000..1ea6f8f --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/sub/parties_threefold.md @@ -0,0 +1 @@ +These Terms and Conditions (the "**Agreement**") constitute a legal agreement between you (“**user**," “**you**", or “**yours**”) and [THREEFOLD RELATED COMPANIES](../../about/threefold_companies.md) (“**Threefold**”, “**Company**,” “**us**,” “**we**” or “**our**”) \ No newline at end of file diff --git a/collections/manual/knowledge_base/legal/terms_conditions/sub/the_company.md b/collections/manual/knowledge_base/legal/terms_conditions/sub/the_company.md new file mode 100644 index 0000000..1897d8d --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/sub/the_company.md @@ -0,0 +1,8 @@ +## The Company + +The Company has been defined on the contract who refers to this document but can be any of the following: + +- The company or organization who is selling a service on the ThreeFold_Grid. +- The company who is selling/buying ThreeFold_Tokens (TFTs) as capacity on the ThreeFold_Grid. +- The company who is helping a Farmer to become active on the ThreeFold_Grid = a TF Cooperative +- The company who is selling the hardware and software required for a Farming Pool diff --git a/collections/manual/knowledge_base/legal/terms_conditions/sub/the_product.md b/collections/manual/knowledge_base/legal/terms_conditions/sub/the_product.md new file mode 100644 index 0000000..d10fc8f --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/sub/the_product.md @@ -0,0 +1,4 @@ +## The Product + +The Product is the ThreeFold_Token or any service related to the ThreeFold_Grid which can be bought by The Purchaser. +The Product has been defined on the contract who refers to this document. diff --git a/collections/manual/knowledge_base/legal/terms_conditions/sub/the_purchaser.md b/collections/manual/knowledge_base/legal/terms_conditions/sub/the_purchaser.md new file mode 100644 index 0000000..f13c063 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/sub/the_purchaser.md @@ -0,0 +1,3 @@ +## The Purchaser + +The Purchaser is the person or company or organization who buys The Product from The Company. \ No newline at end of file diff --git a/collections/manual/knowledge_base/legal/terms_conditions/sub/the_single_source_truth.md b/collections/manual/knowledge_base/legal/terms_conditions/sub/the_single_source_truth.md new file mode 100644 index 0000000..db24c10 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/sub/the_single_source_truth.md @@ -0,0 +1,5 @@ +## SINGLE SOURCE OF TRUTH + +Our single source of truth for our legal docs is stored on [Github: https://github.com/threefoldfoundation/info_legal/tree/master/](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 diff --git a/collections/manual/knowledge_base/legal/terms_conditions/sub/websites.md b/collections/manual/knowledge_base/legal/terms_conditions/sub/websites.md new file mode 100644 index 0000000..7557344 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/sub/websites.md @@ -0,0 +1 @@ +websites/wikis/forums ending with threefold.io, threefold.me, grid.tf, threefold.tech, ThreeFold_Token.com, freeflownation.org, 3bot.org, incubaid.com or consciousinternet.org or any other website as used/promoted by the ThreeFold Foundation or any other site as originating from our opensource git repository on https://github.com/threefoldfoundation. diff --git a/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions.md new file mode 100644 index 0000000..6f8d82b --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions.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/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer3.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer3.md new file mode 100644 index 0000000..0c6ec94 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer3.md @@ -0,0 +1,24 @@ +{{#include ./terms_conditions_farmer_parts/part_0_introduction_tcs.md}} +{{#include ./terms_conditions_farmer_parts/part_1_definitions.md}} +{{#include ./terms_conditions_farmer_parts/part_2_farmer_services.md}} +{{#include ./terms_conditions_farmer_parts/part_3_farmer_grant.md}} +{{#include ./terms_conditions_farmer_parts/part_4_certified_vs_diy.md}} +{{#include ./terms_conditions_farmer_parts/part_5_farmer_responsibilities.md}} +{{#include ./terms_conditions_farmer_parts/part_6_restrictions.md}} +{{#include ./terms_conditions_farmer_parts/part_7_representations_and_warranties.md}} +{{#include ./terms_conditions_farmer_parts/part_8_capacity_measurement_minting3.md}} +{{#include ./terms_conditions_farmer_parts/part_9_capacity_utilization3.md}} +{{#include ./terms_conditions_farmer_parts/part_10_term_termination.md}} +{{#include ./terms_conditions_farmer_parts/part_11_intellectual_property.md}} +{{#include ./terms_conditions_farmer_parts/part_12_indemnification.md}} +{{#include ./terms_conditions_farmer_parts/part_13_disclaimer_limitation_liability.md}} +{{#include ./terms_conditions_farmer_parts/part_14_export_compliance.md}} +{{#include ./terms_conditions_farmer_parts/part_15_agreement_severability_waiver.md}} +{{#include ./terms_conditions_farmer_parts/part_16_governing_law_venue.md}} + + +## APPENDIX + +{{#include threefold_companies0.md}} + +{{#include ./sub/the_single_source_truth.md}} \ No newline at end of file diff --git a/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/img/farmer_tcs_minting_equation.jpg b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/img/farmer_tcs_minting_equation.jpg new file mode 100644 index 0000000..8b13676 Binary files /dev/null and b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/img/farmer_tcs_minting_equation.jpg differ diff --git a/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_0_introduction_tcs.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_0_introduction_tcs.md new file mode 100644 index 0000000..bc27086 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_0_introduction_tcs.md @@ -0,0 +1,4 @@ +**FARMER TERMS AND CONDITIONS** + +THESE TERMS AND CONDITIONS (THE "**AGREEMENT**") CONSTITUTE A LEGAL AGREEMENT BETWEEN YOU (“**FARMER**," “**YOU**", OR “**YOURS**”) AND OF THE THREEFOLD COMPANIES (“**THREEFOLD**”, “**COMPANY**,” “**US**,” “**WE**” OR “**OUR**”), GOVERNING THE TERMS OF YOUR PARTICIPATION AS A FARMER 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. + diff --git a/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_10_term_termination.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_10_term_termination.md new file mode 100644 index 0000000..df594c0 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_10_term_termination.md @@ -0,0 +1,7 @@ +### 10. TERM AND TERMINATION + +This Agreement shall be effective as of the date that you take the earliest of the following actions: your acceptance 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 Software. It will continue until terminated per the terms below. + +Either party may terminate this Agreement immediately at any time without notice to the other party. + +In case of termination, the Farmer shall immediately cease using the Software. Any portion of Farmed or Cultivated ThreeFold_Tokens that have not been transferred to the Farmer’s wallet on the date of termination will be irrevocably forfeited. diff --git a/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_11_intellectual_property.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_11_intellectual_property.md new file mode 100644 index 0000000..1eb7a4a --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_11_intellectual_property.md @@ -0,0 +1,7 @@ +### 11. INTELLECTUAL PROPERTY + +No rights are granted to the Farmer hereunder other than as expressly set forth in this Agreement. Except for Software subject to the Open Source Licenses, and except for any rights expressly granted under this Agreement, Company and its licensors own and shall retain all right, title, and interest in and to the ThreeFold_Grid and all related software (including any improvements, enhancements, customizations, and modifications thereto), the Documentation, and the Related Data, including, without limitation, all related intellectual property rights therein. For purposes hereof, the term "**Related Data**" means data derived from operation of the 3Node and of the ThreeFold_Grid via the 3Node, and any data that is aggregated by Company (including aggregations with data sourced from other Farmers and other third party data sources), and data and information regarding the Farmer’s access to and participation in the ThreeFold_Grid, including, without limitation, statistical usage data derived from the operation of the 3Node and ThreeFold_Grid and configurations, log data and the performance results related thereto. For the avoidance of doubt, nothing herein shall be construed as prohibiting Company from utilizing Related Data to optimize and improve the ThreeFold_Grid or otherwise operate Company’s business; provided that if Company provides Related Data to third parties, such Related Data shall be de-identified and presented in the aggregate so that it will not disclose the identity of Farmers to any third party. + +The ThreeFold_Grid may include access to various confidential and proprietary third party data that is utilized along with the IT Capacity, and all such data is owned by the applicable third party source or vendor. Farmer may only use such data as part of the ThreeFold_Grid and may not extract or otherwise utilize any such data except as included in and in connection with the ThreeFold_Grid. This data may be compiled from third party sources, including but not limited to, public records, user submissions, and other commercially available data sources. These sources may not be accurate or complete, or up-to-date and is subject to ongoing and continual change without notice. Neither Company nor its third party data sources make any representations or warranties regarding the data and assume no responsibility for the accuracy, completeness, or currency of the data. + +Company shall have a royalty-free, worldwide, transferable, sublicensable, irrevocable, perpetual license to use or incorporate into the Software and/or the ThreeFold_Grid any suggestions, ideas, enhancement requests, feedback, recommendations or other information provided by Farmers relating to the features, functionality, or operation thereof ("**Feedback**"). Company shall have no obligation to use Feedback, and Farmer shall have no obligation to provide Feedback. diff --git a/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_12_indemnification.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_12_indemnification.md new file mode 100644 index 0000000..69fc66c --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_12_indemnification.md @@ -0,0 +1,7 @@ +### 12. INDEMNIFICATION + +To the fullest extent permitted by applicable law, you will defend, indemnify and hold harmless Company and our respective past, present, and future employees, officers, directors, contractors, consultants, equity holders, suppliers, vendors, service providers, parent companies, subsidiaries, affiliates, agents, representatives, predecessors, successors and assigns (the "**Indemnified Parties**") from and against all claims, damages, costs and expenses (including attorneys’ fees) that arise from or relate to: (i) your use of the Software; (ii) your participation in the ThreeFold_Grid; (iii) any Feedback you provide; or (iv) your breach of this Agreement. + +Company reserves the right to exercise sole control over the defense of any claim subject to indemnification under the paragraph above, at your expense. This indemnity is in addition to, and not in lieu of, any other indemnities set forth in a written agreement between you and Company. + +If the Software becomes, or in Company’s reasonable judgment is likely to become, the subject of a claim of infringement, then Company may in its sole discretion: (a) obtain the right, for Farmer to continue using the Software; (b) provide a non-infringing functionally equivalent replacement; or (c) modify the Software so that it is no longer infringing. If Company, in its sole and reasonable judgment, determines that none of the above options are commercially reasonable, then Company may, without liability, suspend or terminate Farmer’s use of the Software. This Section 12 states Company’s sole liability and Farmer’s exclusive remedy for infringement claims. diff --git a/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_13_disclaimer_limitation_liability.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_13_disclaimer_limitation_liability.md new file mode 100644 index 0000000..c03c6ed --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_13_disclaimer_limitation_liability.md @@ -0,0 +1,17 @@ +### 13. DISCLAIMER AND LIMITATION OF LIABILITY + +The Farmer hereby acknowledges the fact that he/she has been advised that TFTs may qualify as a security and that the offers and sales of TFTs have not been registered under any country’s securities laws and, therefore, cannot be resold except in compliance with the applicable country’s laws. + +The Farmer understands that the use of TFTs, the Software and/or the ThreeFold_Grid involves risks, all of which the Farmer fully and completely assumes, including, but not limited to, the risk that (i) the technology associated with the ThreeFold_Grid, 3Node and/or related Threefold products will not function as intended; (ii) the Threefold project will not be completed; (iii) Threefold will fail to attract sufficient interest from key stakeholders; and (iv) ThreeFold or any related parties may be subject to investigation and punitive actions from governmental authorities. + +Except as explicitly set forth herein, Company makes no representations that the Software is appropriate for use in any jurisdictions. Farmers engaging with the ThreeFold_Grid from any jurisdictions do so at their own risk and are responsible for compliance with local laws. + +The Farmer understands and expressly accepts that the TFTs, the Software and the ThreeFold_Grid were created and delivered to the Farmer at the sole risk of the Farmer on an "AS IS" and “UNDER DEVELOPMENT” basis. + +COMPANY DISCLAIMS ALL REPRESENTATIONS AND WARRANTIES, EXPRESS AND IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT. COMPANY MAKES NO WARRANTY THAT THE SOFTWARE, THREEFOLD GRID, OR DOCUMENTATION WILL BE UNINTERRUPTED, ACCURATE, COMPLETE, RELIABLE, CURRENT, ERROR-FREE, VIRUS FREE, OR FREE OF MALICIOUS CODE OR HARMFUL COMPONENTS, OR THAT DEFECTS WILL BE CORRECTED. COMPANY DOES NOT CONTROL, ENDORSE, SPONSOR, OR ADOPT ANY CONTENT AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND REGARDING THE CONTENT STORED ON THE THREEFOLD GRID. COMPANY HAS NO OBLIGATION TO SCREEN, MONITOR, OR EDIT CONTENT AND IS NOT RESPONSIBLE OR LIABLE FOR ANY CONTENT. YOU ACKNOWLEDGE AND AGREE THAT COMPANY HAS NO INDEMNITY, SUPPORT, SERVICE LEVEL, OR OTHER OBLIGATIONS HEREUNDER. + +The Undersigned understands and expressly acknowledges that it has not relied on any representations or warranties made by the Company, TF Tech NV, Bettertoken NV, Kristof De Spiegeleer, any person or entity involved in the development or promotion of the Software and/or the ThreeFold project, or any related parties, including, but not limited to, conversations of any kind, whether through oral or electronic communication or otherwise, or any whitepapers or other documentation. + +WITHOUT LIMITING THE GENERALITY OF THE FOREGOING, THE FARMER ASSUMES ALL RISK AND LIABILITY FOR THE RESULTS OBTAINED BY THE USE OF THE SOFTWARE, THE THREEFOLD GRID AND/OR THE THREEFOLD TOKENS AND REGARDLESS OF ANY ORAL OR WRITTEN STATEMENTS MADE BY THREEFOLD, BY WAY OF TECHNICAL ADVICE OR OTHERWISE, RELATED TO THE USE THEREOF. + +COMPANY SHALL NOT BE LIABLE FOR ANY INCIDENTAL, CONSEQUENTIAL, PUNITIVE, SPECIAL, INDIRECT, OR EXEMPLARY DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS, REVENUE, DATA, OR DATA USE, OR DAMAGE TO BUSINESS) HOWEVER CAUSED, WHETHER BY BREACH OF WARRANTY, BREACH OF CONTRACT, IN TORT (INCLUDING NEGLIGENCE) OR ANY OTHER LEGAL OR EQUITABLE CAUSE OF ACTION EVEN PREVIOUSLY ADVISED OF SUCH DAMAGES IN ADVANCE OR IF SUCH DAMAGES WERE FORESEEABLE, AND COMPANY SHALL ONLY BE LIABLE FOR DIRECT DAMAGES CAUSED BY ITS GROSS NEGLIGENCE. IN NO EVENT WILL COMPANY’S TOTAL AGGREGATE LIABILITY ARISING FROM OR RELATING TO THIS AGREEMENT EXCEED ONE HUNDRED EURO (€ 100.00). diff --git a/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_14_export_compliance.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_14_export_compliance.md new file mode 100644 index 0000000..b580805 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_14_export_compliance.md @@ -0,0 +1,3 @@ +### 14. EXPORT COMPLIANCE + +The Software may be subject to export laws and regulations of the European Union, the United States and other jurisdictions. Farmer represents that it is not named on any E.U. or U.S. government denied-party list. Farmer shall not access or use the Software or the ThreeFold_Grid in a E.U. or U.S.-embargoed or any sanctioned country or region or in violation of any E.U. or U.S. export law or regulation. Farmer shall not use the ThreeFold_Grid to export, re-export, transfer, or make available, whether directly or indirectly, any regulated item or information to anyone outside the E.U. or U.S. in connection with this Agreement without first complying with all export control laws and regulations that may be imposed by the European Union, any EU country or the U.S. Government and any country or organization of nations within whose jurisdiction Farmer operates or does business. diff --git a/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_15_agreement_severability_waiver.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_15_agreement_severability_waiver.md new file mode 100644 index 0000000..d0e2be8 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_15_agreement_severability_waiver.md @@ -0,0 +1,7 @@ +### 15. ENTIRE AGREEMENT,SEVERABILITY, WAIVER + +1. This Agreement sets forth the complete and final agreement of the parties concerning the subject matter hereof, and supersedes, replaces all prior agreements, written and oral, between them concerning the subject matter hereof. If a term of this Agreement to be invalid or unenforceable, the remaining provisions will continue in full force and effect. A party’s consent to, or waiver of, enforcement of this Agreement on one occasion will not be deemed a waiver of any other provision or such provision on any other occasion. +2. We reserve the right to change this Agreement from time to time in our sole discretion. If we make material changes to this Agreement, we will provide notice of such changes, such as by posting the revised Farmer Terms and Conditions to the Software and on our Websites. By continuing to access or use the Software or otherwise participate in the ThreeFold_Grid after the posted effective date of modifications to this Agreement, you agree to be bound by the revised version of this Agreement. If you do not agree to the modified Agreement, you must stop interacting with the ThreeFold_Grid and disconnect all your 3Node. +3. The parties are independent contractors. No agency, partnership, franchise, joint venture, or employment relationship is intended or created by this Agreement. Neither party has the power or authority to create or assume any obligation, or make any representations or warranties, on behalf of the other party. +4. The Farmer agrees that the Company may transfer and assign the Agreement in its sole discretion, provided a notice of such assignment is sent to the Farmer within fifteen days of such assignment. +5. Notices to Company made under this Agreement shall be made by email to legal@threefold.io AND in writing and delivered by registered mail (return receipt requested) or nationally-recognized overnight courier service to ThreeFold_Dubai, with registered office at BA1120 DMCC BUSINESS CENTRE, LEVEL NO 1, JEWELLERY & GEMPLEX 3, DUBAI, UNITED EMIRATES ARAB, attention Legal Department. You agree to receive electronically all communications, agreements, documents, notices, and disclosures that we provide in connection with the Software and/or the ThreeFold_Grid ("**Communications**"). We may provide Communications in a variety of ways, including by e-mail, text, in-app notifications, or by posting them on our websites. You agree that all Communications that we provide to you electronically satisfy any legal requirement that such communications be in writing. diff --git a/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_16_governing_law_venue.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_16_governing_law_venue.md new file mode 100644 index 0000000..d9178c9 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_16_governing_law_venue.md @@ -0,0 +1,3 @@ +### 16. GOVERNING LAW AND VENUE + +This Agreement will be governed by Luxembourg law. Any disputes shall be subject to the jurisdiction of the courts of Luxembourg, Grand Duchy of Luxembourg. \ No newline at end of file diff --git a/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_1_definitions.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_1_definitions.md new file mode 100644 index 0000000..e135276 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_1_definitions.md @@ -0,0 +1,39 @@ +### 1. DEFINITIONS + +Unless defined otherwise in this Agreement below, capitalized terms in this Agreement shall have the meaning ascribed to them in the following links for [Definitions](../definitions_legal.md). + +SPECIAL DEFINITIONS + +- THREEFOLD COMPANIES noted as (“**THREEFOLD**”, “**COMPANY**,” “**US**,” “**WE**” OR “**OUR**”) mean any of the companies as mentioned below: + - DUBAI & BVI + - THREEFOLD DMCC, TF Hub Limited + - THREEFOLD FZC (the original ThreeFold in UAE, no longer active) + - THREEFOLD LABS IT + - MAZRAA IS BRANDNAME OF THREEFOLD LABS IT + - EUROPE + - THREEFOLD VZW + - TFTECH NV BELGIUM + - BETTERTOKEN NV BELGIUM + - THREEFOLD AG +- TFCHAIN ("**TFCHAIN**") + - ThreeFold Blockchain manages the ThreeFold Grid and the 3Nodes as an autonomous piece of software. + - A DAO has been created (decentralized autonomous organization) which manages the behaviour of this Blockchain Software (upgrades & functionalities) + - Is a piece of opensource software as used by all of us together. + - TFChain has been introduces since TFGrid 3.x +- Change Request + - Change Requests can be registered on the TFChain. They are a proposal for any request for change. + - Change Requests can be used to trigger change in protocol, software update, changes in software or TFGrid specifications. + - Change Requests need to be approved by majority of Validators + - Change Requests are being introduced from TFGrid 3.x (x to be defined) +- TFChain Validators ("**VALIDATOR**") + - A Validator is a piece of software running a TFChain Blockchain Function to protect the security and sovereignity of the Blockchain. + - Each Validator has a vote to agree on changes in protocol, software updates, changes in software or TFGrid specifications. + - Each Owner / Maintainer of a Validator has to stake a certain to be defined amount of TFT before voting can happen. + - Validators are being introduced from TFGrid 3.x (x to be defined) + - Majority of Validators have to vote positively on each Change Request suggested before change can happen. + - Validators are required to let the DAO function. +- DAO + - Decentralizes Autonomous Organization + - Implemented on multiple levels, but for release 3.0.x only on level 1 which is on Substrate TFChain level. + - The DAO is the set of rules under which the decentralized organization functions. + - The DAO specifications will or are available on https://library.threefold.me (our knowledgebase) diff --git a/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_2_farmer_services.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_2_farmer_services.md new file mode 100644 index 0000000..8c1f0a7 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_2_farmer_services.md @@ -0,0 +1,10 @@ +### 2. FARMER SERVICES + +The Farmer may provide IT Capacity on the ThreeFold_Grid (the "**Farmer Services**") pursuant to the terms hereof during the Term of this Agreement. The Farmer Services include the features and functionality applicable to the version of the TF Operating System (Zero OS) installed by the Farmer and TF Blockchain Software (together also referred to as the “**Software**”). Company may update the content, functionality, and user interface of the Farmer Services from time to time in its sole discretion. + +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/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/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_3_farmer_grant.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_3_farmer_grant.md new file mode 100644 index 0000000..0a4a093 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_3_farmer_grant.md @@ -0,0 +1,9 @@ +### 3. FARMER GRANT OF RIGHT TO IT CAPACITY + +By making available one or more computers, network or storage devices ("**3Nodes**") and connecting such 3Nodes to the TF Grid via the Software, you hereby grant to Company, TFChain and Users the irrevocable right to access and use the 3Nodes as follows: + +- to use storage, compute and network services as delivered by your 3Node(s) +- to store data and materials by Users on your 3Node(s) (the "**Content**") and to access such Content from your 3Node(s) at any time + +in accordance with the capabilities of the software installed on the 3Nodes; + diff --git a/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_4_certified_vs_diy.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_4_certified_vs_diy.md new file mode 100644 index 0000000..30cac6c --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_4_certified_vs_diy.md @@ -0,0 +1,19 @@ +### 4. CERTIFIED VS. DIY-FARMERS + +There are two types of ThreeFold Farmers: + +1. Certified Farmer: Uses hardware from certified sources and signs a contract with TF Tech NV for support and additional benefits +2. Do It Yourself (DIY) Farmer: Uses any hardware and in case of support uses online material only. + +Farmers can opt in for certification ("**Certification**"). Certification can be withdrawn in case the relevant 3Node does no longer comply with the applicable certification requirements. + +The following criteria or requirements are checked (timing of implementation, see roadmap on wiki): + +- Bandwidth: 24 times a day random non local nodes are used to upload a 2MB file to a 3Node. The bandwidth will be measured in mbit/sec +- Utilization: Through the ThreeFold Explorer the true utilization of the 3Node will be checked. It will be displayed in % of the 3Node total capacity. +- Uptime: The uptime per month will be created in the ThreeFold Explorer and is presented as a percentage of 3Node availability. + +ThreeFold Foundation or TFTech may give free certification to 3Nodes that benefit the distribution of capacity on the ThreeFold_Grid. + +ThreeFold Foundation or TFTech may also certify certain hardware partners (i.e. certified hardware vendors) as part of this certification process. + diff --git a/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_5_farmer_responsibilities.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_5_farmer_responsibilities.md new file mode 100644 index 0000000..7d081a2 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_5_farmer_responsibilities.md @@ -0,0 +1,15 @@ +### 5. FARMER RESPONSIBILITIES + +At all times during the Term of this Agreement or the period when Content is maintained in your 3Node, whichever is longer: + +1. You will comply with the terms of this Agreement, the [Generic Disclaimer](../disclaimer.md), [ThreeFold Website Terms](./terms_conditions_websites.md) and [Privacy Policy](../privacypolicy.md) and any other terms and conditions required by in connection herewith, the Open Source Licenses, and the terms of all other agreements to which you are a party in connection with your performance under this Agreement including, without limitation, any agreement you have with a third-party Internet service provider. +2. You will operate the 3Node in strict compliance with terms of this Agreement and any applicable laws or regulations, and will not take any action not expressly authorized hereunder. +3. Without prejudice to your rights under any applicable Open Source license, you will not modify or attempt to modify the Software for any purpose including but not limited to attempting to circumvent the audit, bypass security, manipulate the performance of, or otherwise disrupt the ThreeFold_Grid for any reason, including but not limited to attempting to increase the amount of data stored or bandwidth utilized or the amount of Farmed TFTs, as defined herein, and you will not otherwise interfere with the operation of the ThreeFold_Grid. +4. You will provide and maintain the 3Node so that, at all times, it will meet the minimum requirements set out for either pre configured servers (‘certified hardware’) or ‘do-it-yourself’ servers. [Read more here](../../../documentation/farmers/farmers.md). +5. You will implement and maintain adequate administrative, organizational, physical and technical safeguards to ensure the protection, confidentiality, security, and integrity of the 3Node and Content and shall take all reasonable steps to ensure that Content are not disclosed, accessed, used, modified, or distributed except as expressly authorized under this Agreement. +6. You acknowledge and agree that by running the Software on your hardware device and allowing IT Capacity to be made available on the TF Grid to the Users and TFCHAIN, you may act as a cloud service provider under certain circumstances and as such qualify as a processor or sub-processor under the General Data Processing Directive (Regulation (EU) 2016/679 of the European Parliament and of the Council of 27 April 2016 on the protection of natural persons with regard to the processing of personal data and on the free movement of such data, and repealing Directive 95/46/EC) (‘GDPR’). You undertake to comply with any legal obligations which may possibly be applicable to you as a data processor under the GDPR and/or any other applicable data privacy regulations. +7. You acknowledge and agree that by running the Software on your hardware device and allowing IT Capacity to be made available on the TF Grid to the Users, your 3Node may be impacted due to additional constraints being placed on it by the Software and the processing of Content. In particular, but without limiting the generality of the foregoing, your 3Node may not operate as quickly as it would without running the Software and making IT Capacity available for use by Users. +8. In connection with your use of the Software and/or operation of a 3Node hereunder, Company may, provide updates to the software which will be automatically provided and installed. You acknowledge that these updates are done automatically on your 3node or any other web site or portal and you don't have the ability to confirm such an update. This update mechanism might be revisited at the end of 2020 and will be communicated accordingly. These updates need to be done automatically for now, because ThreeFold_Grid consists out of many components which are depending on each other and need the right version to be installed. +9. In connection with your use of the Software and/or operation of a 3Node hereunder, Company may, from time to time, require you to affirm and/or reaffirm your agreement to the terms of this Agreement, and in such case, your continued use of the Software is contingent upon your promptly providing such affirmation as requested by Company. +10. You, as the Famer, acknowledge that you retain administrative and/or physical control over to whom you grant access to the applicable 3Node. You are responsible for maintaining the physical security of the 3Node +11. Company may suspend Famer’s participation in the ThreeFold_Grid if Company believes the Farmer to be: (a) violating any term of this Agreement; or (b) using the ThreeFold_Grid in a manner that Company reasonably believes may cause a security risk, a disruption to the ThreeFold_Grid, or liability for Company or any persons involved in the ThreeFold Open Source project. \ No newline at end of file diff --git a/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_6_restrictions.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_6_restrictions.md new file mode 100644 index 0000000..d37d47b --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_6_restrictions.md @@ -0,0 +1,13 @@ +### 6. RESTRICTIONS + +You will operate the 3Node in strict accordance with the terms of this Agreement and in no other manner. Without limiting the generality of the foregoing, you will not: + +1. access or use the ThreeFold_Grid: (i) in violation of applicable laws; or (ii) in a manner that interferes with or disrupts the integrity or performance of the ThreeFold_Grid (or the data contained therein). +2. with respect to Content (i) reverse engineer any aspect of the Content or do anything that might discover the contents or origin of the Content, (ii) attempt to bypass or circumvent measures employed to prevent or limit access to the Content, including by attempting to defeat any encryption, or (iii) attempt to interfere with the storage or transmission of Content or with our audits of your 3Node(s); +3. manipulate or otherwise attempt to bypass, change, or update any values related to uptime detection outside the programmatic operation of the Software; +4. deliberately or actively limit or otherwise negatively impact download speed such that insufficient bandwidth is available for required audit traffic; +5. manipulate or alter the default behavior of the ThreeFold_Grid to artificially increase or decrease the value of any reputation factor of any 3Node; +6. manipulate network responses to any request with unauthorized intent to change the cryptographic signatures, NodeID, or TFT wallet address; +7. attempt to manipulate or falsify the identification of the 3Node by the Software or otherwise bypass the proof of capacity process; +8. retain any Content after the earlier of termination of this Agreement or de-certification of the applicable 3Node at any time; or +9. in any other way attempt to interfere, impede, alter, or otherwise interact in any manner not expressly authorized hereunder with the ThreeFold_Grid or the operation of any other 3Node(s). diff --git a/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_7_representations_and_warranties.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_7_representations_and_warranties.md new file mode 100644 index 0000000..bff2d65 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_7_representations_and_warranties.md @@ -0,0 +1,9 @@ +### 7. REPRESENTATIONS AND WARRANTIES + +You hereby represent, warrant, and covenant that: + +1. You own or control your 3Node(s), and have the right to install the Software on your 3Node(s) and share IT Capacity pursuant to this Agreement, and otherwise comply with all of your obligations under this Agreement and/or applicable laws; +2. You represent and warrant that you are authorized to receive ThreeFold_Tokens (TFT) as a remuneration from Users for the usage of your IT Capacity on the ThreeFold_Grid as set forth in this Agreement; +3. You have full power and authority to enter into this Agreement and comply with all terms hereof, and that doing so will not conflict with any obligation you may owe to any third party; +4. You have the qualifications, skill, and ability to perform your obligations hereunder without the advice, control, or supervision of Company; and +5. You will at all times comply with all applicable foreign, federal, state, and local laws, orders, rules, and regulations currently in effect or that may come into effect during the term of this Agreement, including but not limited to those regarding data privacy and protection. diff --git a/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_8_capacity_measurement_minting.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_8_capacity_measurement_minting.md new file mode 100644 index 0000000..a61d2f6 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_8_capacity_measurement_minting.md @@ -0,0 +1,52 @@ +### 8. TFT Minting (Token Creation ‘FARMING of capacity’) TFGrid 2.x + +#### 8.1 General Principle + +Farmers who connect 3Nodes on an ongoing basis to the ThreeFold_Grid by running the Software and making IT Capacity available to the Users, get rewarded by receiving ThreeFold_Tokens (TFTs) which are generated by the Software. TFTs are exclusively issued (created) by the TF Chain for each active Capacity Pool which gets and remains connected to the ThreeFold_Grid. Such issuance of TFTs that results from connecting a 3Node to the ThreeFold_Grid and making IT Capacity available on a global scale to Users is called "**Farming**". + +#### 8.2 Calculation of Farmed TFTs + +The details of farming (minting of TFT’s) are described on our farming logic TFGrid 2 and this location serves as master for the TFT Reward Process. + +The wiki is version controlled (on github), so all changes can be followed.All connected IT Capacity gets registered on the TF Chain, i.e. ThreeFolds blockchain software. Each month the TF Chain issues new TFTs and transfers them to Farmers in respect of each 3Node that remained connected to the ThreeFold_Grid during the preceding month, using the following calculation in respect of each 3Node: + +![farmer_tcs_minting_equation](img/farmer_tcs_minting_equation.jpg) + +The concepts of CPR, CPR Price and Difficulty Level are determined in the aforementioned wiki and are incorporated into this Agreement by reference. + +The amount of TFTs that are Farmed hence depends on three variables: + +_1. Proof-of-Capacity_ + +The specs of the Farmer’s relevant 3Node: + +- Compute Capacity (CPU) = CRU +- Memory Capacity (RAM) = MRU +- Storage Capacity (SSD/HDD) = SRU/HRU + +The performance/capability of this hardware is attributed with Cloud Units that then summarized to a Cloud Production Rate (CPR) (as further described in the abovementioned wiki) for the relevant 3Node. The higher the CPR, the more TFTs are Farmed. + +_2. Difficulty Level_ + +The amount of ThreeFold_Tokens (TFTs) that Farmers receive for Farming also depends on the amount of TFTs that are already in circulation. The more TFTs already exist, the lower the rewards. This follows the principle of diminishing returns. We call this Farming limitation to reward the "**Difficulty Level**". + +When the amount of existing TFT nears 4 billion, the amount of TFTs received by Farmers will decrease progressively. Once the aggregate amount of "Farmed" TFTs reaches four billion ThreeFold_Tokens (4,000,000,000 TFTs), there won’t be any rewards for Farming anymore and no new TFTs will be generated by the Software. + +The Difficulty Level is the same for all Farmers at a certain point in time. + +_3. Certification_ + +When connecting reliable hardware the Farmer can request a certification from TF Tech NV which leads to increased earnings in TFT for such ‘Certified Farmers’. We automatically measure uptime, bandwidth and the utilization of the node for this certification. The details of this certification have to be further defined and will be set out on our wiki. + +#### 8.3 Uptime + +In addition thereto, the Company will determine in its sole discretion the reasonable uptime that each 3Node of the Farmer needs to to achieve when they register their 3Node(s) in the TF Chain. ThreeFold expects most 3Nodes to achieve an uptime of more than 98%, commercial providers can go as high as 99.9%. The TF Chain will only issue TFTs if the IT Capacity was connected to the internet and was usable during the last month at least up to the specified uptime guarantee. + +#### 8.4 Taxes + +You will be solely responsible for payment of all applicable taxes (if any) associated with your Farming of ThreeFold_Tokens (TFTA, TFT), including but not limited to value added taxes, taxes on gross receipts and income, Social Security taxes, business license fees and other payment obligations applicable to your business. + +#### 8.5 Modification + +The Company reserves the right to modify the terms of this section 8 (‘_Capacity Measurement and Minting - ‘Farming’_) at any time, including but not limited to the determination of the Difficulty Level. Such amendments will be subject to the approval of a majority of the members of the Company’s ‘Grid Counsel’ and a majority of the Farmers (whereby majority is measured based on nr of 3Nodes a Farmer has, each 3Node entitles the Farmer to one vote, Farmers who do not vote have no say in the decision process) who participate in an online poll organized by the Company In case of modification to these terms, the Company shall inform the Farmer at least one month in advance. In case the Farmer would not agree to such modifications, the Farmer shall have the right to immediately and unilaterally terminate this Agreement by disconnecting the Farming Pool from the ThreeFold_Grid. + diff --git a/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_8_capacity_measurement_minting3.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_8_capacity_measurement_minting3.md new file mode 100644 index 0000000..b4bc8b9 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_8_capacity_measurement_minting3.md @@ -0,0 +1,55 @@ +### 8. TFT Minting (Token Creation ‘FARMING of capacity’) For TFGrid 3.x + +#### 8.1 General Principle + +Farmers who connect 3Nodes on an ongoing basis to the ThreeFold_Grid by running the Software and making IT Capacity available to the Users, get rewarded by receiving ThreeFold tokens (TFTs) which are generated by the Software. TFTs are exclusively issued (created) by the TFChain for each active Capacity Pool which gets and remains connected to the ThreeFold_Grid. Such issuance of TFTs that results from connecting a 3Node to the ThreeFold_Grid and making IT Capacity available on a global scale to Users is called "**Farming**". + +#### 8.2 Calculation of Farmed TFTs + +The details of farming (minting of TFT’s) are described on our [farming logic](../../farming/farming_reward.md) and this location serves as master for the TFT Reward Process. The wiki is version controlled (on github), so all changes can be followed.All connected IT Capacity gets registered on the TFChain, i.e. ThreeFolds blockchain software. Each month the TFChain issues new TFTs and transfers them to Farmers in respect of each 3Node that remained connected to the ThreeFold_Grid during the preceding month, using the following calculation in respect of each 3Node: + + +The amount of TFTs that are Farmed hence depends on three variables: + +_1. Proof-of-Capacity_ + +The specs of the Farmer’s relevant 3Node: + +- Compute Capacity (CPU) = CRU +- Memory Capacity (RAM) = MRU +- Storage Capacity (SSD/HDD) = SRU/HRU + +_2. PRICE OF TFT = THREEFOLD TOKEN_ + +The Price of TFT is registered at point of connection or an averaged out period. + +Each farmer needs to register their TFT farming account in the TF Explorer through the TF Chain (see manual). + +_3. Certification_ + +When connecting reliable hardware the Farmer can request a certification from TF Tech NV which leads to increased earnings in TFT for such ‘Certified Farmers’. We automatically measure uptime, bandwidth and the utilization of the node for this certification. The details of this certification have to be further defined and will be set out on our wiki. + +The specific way how farming rewards are calculated is specified on: + +- [Farming Reward](../../farming/farming_reward.md) +- [Proof-of-Capacity](../../farming/proof_of_capacity.md) + + +#### 8.3 Uptime + +In addition thereto, the Company will determine in its sole discretion the reasonable uptime that each 3Node of the Farmer needs to to achieve when they register their 3Node(s) in the TFChain. ThreeFold expects most 3Nodes to achieve an uptime of more than 98%, commercial providers can go as high as 99.9%. The TFChain will only issue TFTs if the IT Capacity was connected to the internet and was usable during the last month at least up to the specified uptime guarantee. + +#### 8.4 Taxes + +You will be solely responsible for payment of all applicable taxes (if any) associated with your Farming of ThreeFold tokens (TFTA, TFT), including but not limited to value added taxes, taxes on gross receipts and income, Social Security taxes, business license fees and other payment obligations applicable to your business. + +#### 8.5 Modification + +The Company reserves the right to modify the terms of this section 8 (‘_Capacity Measurement and Minting - ‘Farming’_) at any time. Such amendments will be subject to the approval of the majority of the Farmers (whereby majority is measured based on nr of 3Nodes a Farmer has, each 3Node entitles the Farmer to one vote, Farmers who do not vote have no say in the decision process) who participate in an online poll organized by the Company or the DAO. + +In case of modification to these terms, the Company or DAO shall inform the Farmer at least one month in advance. In case the Farmer would not agree to such modifications, the Farmer shall have the right to immediately and unilaterally terminate this Agreement by disconnecting the Farming Pool from the ThreeFold_Grid. + +The TFChain and TFGrid capabilities & specifications can change over time after getting consensus from the DAO . +The specific requirements and workings of the DAO are or will be publised on our wikisystem: [https://library.threefold.me](https://library.threefold.me). + +If the DAO (by means of X nr of members of the Community) agree on a change of the protocol used or specifications for the Software or TFGrid then the Validators can allow and execute an upgrade of the system (TFChain as well as ZERO-OS software). Farmers and Users accept changes introduced this way, they accept that any of above mentioned variables can be changed that way. diff --git a/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_9_capacity_utilization.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_9_capacity_utilization.md new file mode 100644 index 0000000..1a2373c --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_9_capacity_utilization.md @@ -0,0 +1,60 @@ +### 9. CAPACITY SALES (‘UTILIZATION’) = TFGrid 2.X + +#### 9.1 General Principles + +Users (such as developers or other persons requiring IT Capacity) can rent IT Capacity from the ThreeFold_Grid in exchange for ThreeFold_Tokens (TFTs), which creates a natural economic demand. We call this process of selling IT Capacity on the ThreeFold_Grid "**Utilization**". + +ThreeFold_Tokens (TFTs) are used to buy or sell IT Capacity as delivered by the Capacity Pools on the ThreeFold_Grid. In order to do so, the Farmer shall sell the IT Capacity produced on the ThreeFold_Grid via the "**ThreeFold Directory**" (or “TF Directory”). The TF Directory acts like a ‘marketplace’ for selling IT Capacity generated by the Farmer’s 3Nodes. The TF Directory has been implmented by a tool called TF Explorer see http://explorer.grid.tf + +In order to access the TF Directory and sell IT Capacity on the ThreeFold_Grid, the TF Grid user or Solution Provider offering services on the TFGrid must deploy a virtual system administrator, called the "**3Bot**". This 3bot is used, amongst others, to sell and buy IT Capacity (raw storage and compute resources) on the ThreeFold_Grid. + +The reservation and use of the Farmer’s IT Capacity by the User is effected through "Smart Contracts for IT". The Smart Contract for IT will then be executed automatically by the software code and the requested IT workload will be deployed. The TF Explorer calculates the required TFT Token price and makes sure that the TF Farmer receives their cultivated tokens. + +#### 9.2 Utilization Mechanism + +IT capacity is expressed in compute & storage units. + +- CU = [Compute Units](../../cloud/cloudunits.md) +- SU = [Storage Units](../../cloud/cloudunits.md) + +The pricing is expressed as follows: + +- CP = Compute Unit price - expressed in USD +- SP = Storage Unit price - expressed in USD + +- T = Token price in USD at time of capacity reservation + +Certified Farmers are free to determine the pricing of their IT Capacity. DIY (Do It Yourself) farmers have to rely on the TF Foundation to set the price of the CU and SU. +TF Foundation will do this with all best intentions in mind. + +The IT capacity is sold through the TF Explorer using the smart contract for IT concept. TF Explorer is the inventory of all IT capacity available for consumption on the ThreeFold_Grid. See http://explorer.grid.tf/ + +Each farmer needs to register their TFT wallet in the TF Explorer and the certified farmers can register the price for the CU/SU on the TF Exlorer as well by using their farming 3bot. + +> Utilization in TFT = (CU _ CP + SU _ SP) / T \* 0.9 + +Utilization in TFT are the TFT (Tokens) the Farmer receives when capacity has been sold as result of provisioning the IT workload by means of the IT smart contract concept. + +As a result of executing the IT smart contract, 90% of the proceeds (in TFT) of the capacity sold is send to the wallet of the Farmer, 10% is send to the TF Foundation Wallet, this is an automatic action. + +#### 9.3 TF Foundation Fee and License Fees TFTech + +The Company (the "**Foundation Fee**") receives 10% of sales done of Cloud Units on the TF Explorer (as described above). The Company will use the revenues from the Foundation Fees to fund its projects and objectives, including, amongst others, to promote, maintain and expand the ThreeFold_Grid. The Company might also decide to burn part of those tokens (TFT) to lower the total amount of tokens in the field (burning means, destroy tokens). + +In case the Farmer chooses to purchase a license from TF Tech NV in order to qualify as a Certified Farmer and provide Certified Capacity on the ThreeFold_Grid, the Farmer shall pay the relevant fee (as agreed between the Farmer and TF Tech NV directly) to TF Tech NV (the "**Certification License Fee**"). + +#### 9.4 Taxes + +You (The Farmer) will be responsible for payment of all applicable taxes (if any) associated with your Utilization of ThreeFold_Tokens (i.e. sale of IT Capacity), including but not limited to value added taxes, sales taxes, custom taxes, and taxes on gross receipts and income. + +The Farmer shall seek all necessary tax advice in order to comply with any applicable tax regulations when providing IT Capacity to Users on the ThreeFold_Grid. By way of example, the Farmer acknowledges that within the European Union, as from 1 January 2015, telecommunications, broadcasting and electronically supplied services are always taxed in the country of the customer (i.e. the tax residence of the User) – regardless of whether the User is a business or a consumer. + +In view thereof, the Farmer will determine the applicable Farmer’s Compute Unit Price and Storage unit Price (as referred to in section 9.2 above) taking into account any aforementioned taxes that may apply. ThreeFold will not be held liable for the Farmer’s failure to comply with its legal obligations, including but not limited to its obligation to pay any applicable taxes, and the Farmer will indemnify and hold harmless the Company for claims against the Company from any tax authorities in respect of such non-compliance by the Farmer. + +#### 9.5 Modification + +The Company reserves the right to modify the terms of this section 9 (‘_Capacity Sales - ‘Utilization’_’) at any time, including but not limited to the determination of the Foundation Fee. In case of modification to these terms, the Company shall inform the Farmer at least one month in advance. In case the Farmer would not agree to such modifications, the Farmer shall have the right to immediately and unilaterally terminate this Agreement by disconnecting the Farming Pool from the ThreeFold_Grid. + +#### 9.6 Breach + +In addition to its other rights and remedies under this Agreement, the Farmer forfeit any right to compensation under this Agreement if Farmer breaches any terms thereof. \ No newline at end of file diff --git a/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_9_capacity_utilization3.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_9_capacity_utilization3.md new file mode 100644 index 0000000..2c209f3 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_farmer_parts/part_9_capacity_utilization3.md @@ -0,0 +1,53 @@ +### 9. CAPACITY UTILIZATION (‘UTILIZATION’) FOR TFGRID 3.X + +#### 9.1 General Principles + +Users (such as developers or other persons requiring IT Capacity) can use IT Capacity from the ThreeFold_Grid in exchange for ThreeFold_Tokens (TFTs), which creates a natural economic demand. We call this process of using IT Capacity on the ThreeFold_Grid "**Utilization**". + +ThreeFold_Tokens (TFTs) are used to buy IT Capacity as delivered by the 3Nodes (by a process called Farming) on the ThreeFold_Grid. The capacity can be consulted by means of a tool called TF Explorer see http://explorer.grid.tf. + +#### 9.2 Utilization Mechanism + +IT capacity is expressed in [network, compute & storage units](../../cloud/cloudunits.md). + +- 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/ + +TFT received for people using capacity is disributed as follows: + +| Percentage | Description | Remark | +| ---------- | -------------------------------------- | ------------------------------------------------------------------------ | +| 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](../../about/dao/dao.md). | + +The single source of truth for Utilization specifications is available [here](../../farming/proof_of_utilization.md). + + +#### 9.4 Taxes + +You (The Farmer) will be responsible for payment of all applicable taxes (if any) associated with your Utilization of ThreeFold_Tokens (i.e. sale of IT Capacity), including but not limited to value added taxes, sales taxes, custom taxes, and taxes on gross receipts and income. + +The Farmer shall seek all necessary tax advice in order to comply with any applicable tax regulations when providing IT Capacity to Users on the ThreeFold_Grid. By way of example, the Farmer acknowledges that within the European Union, as from 1 January 2015, telecommunications, broadcasting and electronically supplied services are always taxed in the country of the customer (i.e. the tax residence of the User) – regardless of whether the User is a business or a consumer. + +In view thereof, the Farmer will determine the applicable Farmer’s Compute Unit Price and Storage unit Price (as referred to in section 9.2 above) taking into account any aforementioned taxes that may apply. ThreeFold will not be held liable for the Farmer’s failure to comply with its legal obligations, including but not limited to its obligation to pay any applicable taxes, and the Farmer will indemnify and hold harmless the Company for claims against the Company from any tax authorities in respect of such non-compliance by the Farmer. + +#### 9.5 Modification + +The Company reserves the right to modify the terms of this section 9 (‘_CAPACITY UTILIZATION (‘UTILIZATION’)_) at any time. Such amendments will be subject to the approval of the TFChain Validators who protect the TFChain (Substrate based chain on Level 1) through our DAO. + +In case of modification to these terms, the Company or DAO shall inform the Farmers and Community at least one month in advance by means of forum or chat or other mechanism. In case the Farmer would not agree to such modifications, the Farmer shall have the right to immediately and unilaterally terminate this Agreement by disconnecting the Farming Pool from the ThreeFold_Grid. + +The TFChain and TFGrid capabilities & specifications can change over time after getting consensus from the DAO . +The specific requirements and workings of the DAO are or will be publised on our wikisystem: https://library.threefold.me + +If the DAO (by means of X nr of members of the Community or Validators) agree on a change of the protocol used or specifications for the Software or TFGrid then the Validators can allow and execute an upgrade of the system (TFChain as well as ZERO-OS software). Farmers and Users accept changes introduced this way, they accept that any of above mentioned variables can be changed that way. + + +#### 9.6 Breach + +In addition to its other rights and remedies under this Agreement, the Farmer forfeit any right to compensation under this Agreement if Farmer breaches any terms thereof. \ No newline at end of file diff --git a/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_griduser.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_griduser.md new file mode 100644 index 0000000..3de562f --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_griduser.md @@ -0,0 +1,240 @@ +**USER TERMS AND CONDITIONS** + +{{#include ./sub/parties_threefold.md}} +, governing your usage of the ThreeFold software and related products (the “**TF Products**”), including but not limited to: + +- The ThreeFold software and technologies (the "**Software**"), including: + - "**Zero OS**", a stateless operating system which enables distributed hardware to form the ThreeFold_Grid which generates IT Capacity (storage and compute capacity) + - "**Zero Chain**", the blockchain framework + - and any other related software components which are referenced in github under [https://github.com/threefoldtech](https://github.com/threefoldtech) and [https://github.com/threefoldfoundation](https://github.com/threefoldfoundation) +- Threefold applications (including the ThreeFold Connect app) +- ThreeFold Tokens (TFTs) +- The TFGrid and any related products. + +The terms of your interaction with the websites, social networks or online communication channels maintained by the Company (including but not limited to the posting or publishing of content, information or promotional materials) shall be governed by the ‘Terms of Service’ referred to on [www.threefold.io](https://www.threefold.io), which are incorporated herein by reference. + +The IT Capacity services provided by Farmers on the ThreeFold_Grid are governed by the present Agreement, but may be supplemented by additional terms agreed between the relevant Farmer and the User governing their delivery, access and use of the IT Capacity through the ThreeFold_Grid. This supplementation shall not extend the liability of ThreeFold. + +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 TF Products, 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. + +{{#include ./terms_conditions_farmer_parts/part_1_definitions.md}} + +### 2. USE OF TF PRODUCTS + +By entering into this Agreement you receive a non-exclusive, non-sublicenseable, non-transferable right to use the TF Products pursuant to this Agreement during the Term hereof solely for your internal business purposes subject to the limitations set forth herein. + +You acknowledge that the Software consists of open source code which is made available to you pursuant to the terms of the relevant open-source license agreement(s) as specified in github under [https://github.com/threefoldtech](https://github.com/threefoldtech) and [https://github.com/threefoldfoundation](https://github.com/threefoldfoundation) (the "**Open Source License(s)**"). Your use of the Software and the TF Products is conditioned upon your compliance at all times with the terms of all applicable Open Source License(s), 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 TF Products, provides instructions or recommendations related to the configuration and/or use of the TF Products, or otherwise informs Users of their intended use, including, but not limited to content provided directly to User or published at 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 TF Products, including any requirements set forth in the Documentation for ensuring that the TF Products perform properly. + +### 3. FARMER GRANT OF RIGHT TO FARMING POOL + +By making available one or more computers, network or storage devices ("**3Nodes**") and connecting such 3Nodes to the TF Grid (as part of a Farming Pool) via the Software, you hereby grant to Company and Users the irrevocable right to access and use the 3Nodes as follows: + +- to use storage, compute and network services as delivered by your 3Node(s) +- to store data and materials by Users on your 3Node(s) (the "**Content**") and to access such Content from your 3Node(s) at any time + +in accordance with the capabilities of the software installed on the 3Nodes; + +### 4. REGISTRATION TO THE THREEFOLD CONNECT (FORMERLY 3BOT CONNECT) APPLICATION + +In order to access certain TF Products you will be required to install the ThreeFold Connect application on your device and register your account in this ThreeFold Connect application by creating a username and password. You agree to provide us with accurate, complete, and current registration information about yourself. It is your responsibility to ensure that your password remains confidential and secure. By registering, you agree that you are fully responsible for all activities that occur under your user name and password. We may assume that any communications we receive under your account have been made by you. If you are a billing owner, an administrator, or if you have confirmed in writing that you have the authority to make decisions on behalf of a User ("**3Bot Administrator**"), you represent and warrant that you are authorized to make decisions on behalf of the User and agree that ThreeFold is entitled to rely on your instructions. + +You are responsible for notifying us at legal@threefold.io if you become aware of any unauthorized use of or access to your 3Bot account. You understand and agree that we may require you to provide information that may be used to confirm your identity and help ensure the security of your account. ThreeFold will not be liable for any loss, damages, liability, expenses or attorneys’ fees that you may incur as a result of someone else using your password or account, either with or without your knowledge and/or authorization, and regardless of whether you have or have not advised us of such unauthorized use. You will be liable for losses, damages, liability, expenses and attorneys’ fees incurred by ThreeFold or a third party due to someone else using your account. In the event that the 3Bot Administrator or User loses access to an account or otherwise requests information about an account, ThreeFold reserves the right to request from the 3Bot Administrator or User any verification it deems necessary before restoring access to or providing information about such account in its sole discretion. + +### 5. USE OF THREEFOLD TOKENS + +ThreeFold_Tokens (TFTs) are a digital token used to buy autonomous and decentralized IT Capacity (compute, storage, network, IT services, applications) on the ThreeFold_Grid. TFTs have a specific commercial utility, since ThreeFold_Tokens were conceived as the designated currency for buying and selling IT Capacity on the ThreeFold_Grid. + +TFTs are exclusively generated through a process called Farming, which means that TFTs are created only when new IT Capacity is added to the ThreeFold_Grid. TFTs are registered on a blockchain which is part of the Stellar Network ([https://stellar.org](https://stellar.org/)), Binance Smart Chain, a Cosmos Chain or our own TFChain. + +The first batch of TFTs that got registered in the blockchain consists of the ‘Genesis Block’ of 685 million TFTs that were Farmed by or on behalf of the Company using an initial Farming Pool, also known as the Genesis Pool. + +Two versions of ThreeFold_Tokens have been issued: + +- A first version of the ThreeFold_Token was issued as from March 2018 on ThreeFolds initial blockchain called Rivine. These TFTs are also referred to as "TFTv1" or “TFTA”. These tokens have now been migrated to the Stellar blockchain. +- A second version of the ThreeFold_Token was issued as from May 2020 on the Stellar blockchain. These TFTs are also referred to as "TFTv2". This token is available on multiple blockchains, the total amount of tokens farmed is the same independent of blockchain used, TFBridges are used to migrate TFTs between blockchain technology. + +While the original TFTv1 kept all same properties and benefits, they are now called TFTA on the Stellar blockchain. Since the creation of the TFTv2, TFTA’s have become ThreeFolds voluntary staking pool of Tokens, which means these TFTs can only be used to buy IT Capacity and cannot be traded otherwise. However any User can convert TFTA’s into TFTs (i.e. TFTv2) by implementing a few simple migration steps which can be found [here](./tfta_to_tft.md). Once converted, any TFT’s can be traded or transferred by various means as the User deems fit, as further explain [here](../../../documentation/threefold_token/buy_sell_tft/buy_sell_tft.md). + +The TF Foundation has chosen to use multiple blockchain technology for storing and managing the TFT. You can use any wallet that supports the chosen blockchain, including but not limited to the wallet included in the ThreeFold Connect app. + +Your use of the TF Products and/or TFTs constitutes your acknowledgement of the aforementioned general principles relating to the ThreeFold_Tokens. As a User you furthermore acknowledge that: + +- each TFT constitutes a value of exchange on the ThreeFold_Grid; +- you have been advised that the ThreeFold_Tokens are the result of farming which means a Farmer connects IT Capacity to the ThreeFold_Grid; +- as such the TFTs have not been registered under any country’s securities laws; +- TFTs are neither securities nor an investment instrument; and +- the purchase, creation or use of TFTs involve risks, all of which the User fully and completely assumes by entering into this Agreement. + +### 6. MODIFICATIONS TO THE TF PRODUCTS + +We reserve the right, in our sole discretion, to modify or discontinue, temporarily or permanently, any TF Products (or any features or functionality thereof) at any time without notice and without obligation or liability to you. You agree that ThreeFold shall not be liable to you or any third party for any modification, suspension, or discontinuance of the TF Products or related services. + +### 7. USER RESPONSIBILITIES + +At all times during the Term of this Agreement or the period when you use any TF Products, your Content is maintained in a 3Node or TFTs are maintained in a wallet address of which you hold the private keys, whichever is longer: + +1. You will comply with the terms of this Agreement and the [Privacy Policy](../privacypolicy.md) and any other terms and conditions required by in connection herewith, the Open Source Licenses, and the terms of all other agreements to which you are a party in connection with your performance under this Agreement including, without limitation, any agreement you have with a third-party service provider. +2. You will use and operate the TF Products in strict compliance with terms of this Agreement and any applicable laws or regulations, and you will not take any action not expressly authorized hereunder. +3. Without prejudice to your rights under any applicable Open Source license, you will not modify or attempt to modify the TF Products for any purpose including but not limited to attempting to circumvent the audit, bypass security, manipulate the performance of, or otherwise disrupt the TF Products for any reason, including but not limited to attempting to increase the amount of data stored or bandwidth utilized, as defined herein, and you will not otherwise interfere with the operation of the ThreeFold_Grid. +4. You acknowledge and agree that the Company has no practical access to your data or knowledge of the nature of the data stored on your 3Bot or the 3Nodes (including but not limited to Content) and that it does not retain any Content or other data that you process using the ThreeFold_Grid. The Company has no control in the management of such Content or data, nor any influence in the specific processing procedures. The Company will never pursue changes to TF Products that could make User data accessible to Company or third parties. We are a neutral intermediary and do not act on behalf of a Farmer, User or any other party to process Content or User data and thus you acknowledge and agree that we should not be qualified as data processors or sub-processor under the General Data Processing Directive (Regulation (EU) 2016/679 of the European Parliament and of the Council of 27 April 2016 on the protection of natural persons with regard to the processing of personal data and on the free movement of such data, and repealing Directive 95/46/EC) (‘GDPR’). +5. Company may suspend User’s use of the TF Products if Company believes the User to be: (a) violating any term of this Agreement; or (b) using the TF Products in a manner that Company reasonably believes may cause a security risk, a disruption to the TF Products (including the ThreeFold_Grid), or liability for Company or any persons involved in the ThreeFold Open Source project. + +### 8. USAGE RESTRICTIONS (ACCEPTABLE USE) + +You will use the TF Products in strict accordance with the terms of this Agreement and in no other manner. Without limiting the generality of the foregoing, you will not: + +1. access or use the TF Products: (i) in violation of applicable laws; (ii) to send or store material knowingly or intentionally containing software viruses, worms, Trojan horses or other harmful computer code, files, or scripts; (iii) in a manner that interferes with or disrupts the integrity or performance of the ThreeFold_Grid (or the data contained therein); or (iv) in any manner that could interfere with, disrupt, negatively affect or inhibit other Users from fully enjoying their use of the TF Products or that could damage, disable, overburden or impair the functioning of the TF Products in any manner. +2. delete or otherwise render Content unavailable for recovery independent of the programmatic functionality of the relevant software; +3. violate, infringe or misappropriate any intellectual property or other third-party right or commit a tort; +4. modify, copy (other than standard page caching), publicly perform, publicly display, sell, rent, lease, timeshare or otherwise distribute the TF Products, in whole or in part. This restriction does not apply to open source software we release, which you can use subject to the applicable open source software license terms; +5. attempt to bypass or circumvent measures employed to prevent or limit access to any content, area or functionality on the TF Products, without providing prior notice to Company of the method used to bypass or circumvent; +6. in any other way attempt to interfere, impede, alter, or otherwise interact with the TF Products in any manner not expressly authorized hereunder; +7. use any of the TF Products other than for its intended purposes; or +8. use the TF Products to engage in or promote any activity that violates these User Terms and Conditions. + +### 9. CONTENT RESTRICTIONS + +The IT Capacity that is made available on the ThreeFold_Grid can be used by any Users to create, post, upload, share or store Content, such as text, graphics, photos, videos, sound, data or other information and materials submitted or provided by Users. + +We have no access to, nor do we control, own, or endorse any Content that you transmit, store or process via the ThreeFold_Grid or any other TF Products. You are solely responsible for any Content stored using the ThreeFold_Grid or any TF Products, and for any data that you have entered using the ThreeFold Connect application. You hereby represent and warrant that (1) you own all intellectual property rights (or have obtained all necessary permissions) to provide your Content and other data; (2) such Content and other data will not violate any agreements or confidentiality obligations; and (3) such Content and data will not violate, infringe or misappropriate any intellectual property right or other proprietary rights of any person or third party. + +You will not create, post, share or store Content or other data that: + +1. is unlawful, libelous, defamatory, harassing, threatening, invasive of privacy or publicity rights, abusive, inflammatory, fraudulent or otherwise objectionable; +2. would constitute, encourage or provide instructions for a criminal offense, violate the rights of any party, otherwise create liability or violate any local, state, national or international law; +3. intentionally misleads by containing or depicting any statements, remarks or claims that do not reflect your honest views and experiences; +4. impersonates, or misrepresents your affiliation with, any person or entity (including Company); +5. references or depicts Company, our TF Products or any related services but fails to disclose any material connection to us that may exist; +6. contains any unsolicited promotions, political campaigning, advertising or solicitations; +7. contains any viruses, corrupted data or other harmful, disruptive or destructive files or content; or +8. in our sole judgment, is objectionable or that restricts or inhibits any other person from using or enjoying the TF Products, or that may expose Company or others to any harm or liability of any type; + +### 10. REPRESENTATIONS AND WARRANTIES + +You hereby represent, warrant, and covenant that: + +1. You have full legal capacity, power and authority to execute and deliver this Agreement and to perform its obligations hereunder. This Agreement constitutes valid and binding obligations of the User, enforceable in accordance with its terms. + +2. You are NOT a target person or entity under any restrictive measures in the framework of the EU Common Foreign and Security Policy and you are NOT named on any E.U. or U.S. government denied-party list. + +3. You are, and have at all times been, in compliance in all material respects with each legal requirement that is are applicable to you, or the ownership of your assets, relating to money laundering (including but not limited to applicable anti-money laundering regulations). + +4. You have been advised and acknowledge that the ThreeFold_Tokens or TFTs are NOT issued by any company or organization and are only registered in the TF BlockChain as an automatic action when a Farmer connects IT Capacity to the ThreeFold_Grid, as such they have not been registered under any country’s securities laws. + +5. You understand that the TFTs involve risks, all of which you fully and completely assume. You understand and expressly accept that the TFTs will be created and delivered to you at your sole risk on an "AS IS" basis. You understand and expressly accept that you have not relied on any representations or warranties made by the Company outside this Agreement, including, but not limited to, conversations of any kind, whether through oral or electronic communication, or any white paper. Without limiting the generality of the foregoing, you assume all risk and liability for the results obtained by any use of TFTs and regardless of any oral or written statements made by or on behalf of the Company, by way of technical advice or otherwise, related to the use of the TFTs. + +6. You have such knowledge and experience in technology, financial and business matters that you are capable of evaluating the merits and risks of such purchase of TFTs and corresponding IT Capacity and are able to bear the economic risk of such acquisition for an indefinite period of time. + +7. You are executing this Agreement for your own account, not as a nominee or agent. + +8. You understand that you have no right against the Company or any other person related to the ThreeFold project except in the event of the Company’s breach of this agreement or intentional fraud. + +9. You understand that you bear sole responsibility for any taxes as a result of the matters and transactions the subject of this Agreement, and any future acquisition, ownership, use, sale or other disposition of TFTs. To the extent permitted by law, you agree to indemnify, defend and hold the Company or any of its affiliates, employees or agents (including developers, auditors, contractors or founders) harmless for any claim, liability, assessment or penalty with respect to any taxes (other than any net income taxes of the Company) associated with or arising from your acquisition, use or ownership of TFTs hereunder. + +### 11. TERM AND TERMINATION + +This Agreement shall be effective as of the date that you take the earliest of the following actions: your acceptance 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 any TF Product. It will continue until terminated per the terms below. + +Either party may terminate this Agreement immediately at any time without notice to the other party. + +In case of termination, the User shall immediately cease using the TF Products. + +### 12. FEEDBACK + +Company shall have a royalty-free, worldwide, transferable, sublicensable, irrevocable, perpetual license to use or incorporate into the TF Products any suggestions, ideas, enhancement requests, feedback, recommendations or other information provided by Users relating to the features, functionality, or operation thereof ("**Feedback**"). Company shall have no obligation to use Feedback, and User shall have no obligation to provide Feedback. + +### 13. INDEMNIFICATION + +To the fullest extent permitted by applicable law, you will defend, indemnify and hold harmless Company and our respective past, present, and future employees, officers, directors, contractors, consultants, equity holders, suppliers, vendors, service providers, parent companies, subsidiaries, affiliates, agents, representatives, predecessors, successors and assigns (the "**Indemnified Parties**") from and against all claims, damages, costs and expenses (including attorneys’ fees) that arise from or relate to: (i) your use of the TF Products; (ii) any Feedback you provide; or (iii) your breach of this Agreement. + +Company reserves the right to exercise sole control over the defense of any claim subject to indemnification under the paragraph above, at your expense. This indemnity is in addition to, and not in lieu of, any other indemnities set forth in a written agreement between you and Company. + +If any TF Product becomes, or in Company’s reasonable judgment is likely to become, the subject of a claim of infringement, then Company may in its sole discretion: (a) obtain the right, for User to continue using such TF Product; (b) provide a non-infringing functionally equivalent replacement; or (c) modify such TF Product so that it is no longer infringing. If Company, in its sole and reasonable judgment, determines that none of the above options are commercially reasonable, then Company may, without liability, suspend or terminate User’s use of the relevant TF Product. This Section 12 states Company’s sole liability and User’s exclusive remedy for infringement claims. + +### 14. DISCLAIMER AND LIMITATION OF LIABILITY + +The User hereby acknowledges the fact that he/she has been advised that TFTs may qualify as a security and that the offers and sales of TFTs have not been registered under any country’s securities laws and, therefore, cannot be resold except in compliance with the applicable country’s laws. + +The User understands that the use of TFTs, the other TF Products and/or the ThreeFold_Grid involves risks, all of which the User fully and completely assumes, including, but not limited to, the risk that (i) the technology associated with the ThreeFold_Grid, 3Nodes, 3Bot and/or related TF Products will not function as intended; (ii) the Threefold project will not be completed; (iii) Threefold will fail to attract sufficient interest from key stakeholders; and (iv) ThreeFold or any related parties may be subject to investigation and punitive actions from governmental authorities. + +Except as explicitly set forth herein, Company makes no representations that the TF Products are appropriate for use in any jurisdictions. Users engaging with the TF Products from any jurisdictions do so at their own risk and are responsible for compliance with local laws. + +The User understands and expressly accepts that the TFTs, ThreeFold Connect App, the ThreeFold_Grid and other TF Products were created and made available to the User at its sole risk on an "AS IS" and “UNDER DEVELOPMENT” basis. + +COMPANY DISCLAIMS ALL REPRESENTATIONS AND WARRANTIES, EXPRESS AND IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT. COMPANY MAKES NO WARRANTY THAT THE TF PRODUCTS OR DOCUMENTATION WILL BE UNINTERRUPTED, ACCURATE, COMPLETE, RELIABLE, CURRENT, ERROR-FREE, VIRUS FREE, OR FREE OF MALICIOUS CODE OR HARMFUL COMPONENTS, OR THAT DEFECTS WILL BE CORRECTED. COMPANY DOES NOT CONTROL, ENDORSE, SPONSOR, OR ADOPT ANY CONTENT AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND REGARDING THE CONTENT STORED ON THE THREEFOLD GRID. COMPANY HAS NO OBLIGATION TO SCREEN, MONITOR, OR EDIT CONTENT AND IS NOT RESPONSIBLE OR LIABLE FOR ANY CONTENT. YOU ACKNOWLEDGE AND AGREE THAT COMPANY HAS NO INDEMNITY, SUPPORT, SERVICE LEVEL, OR OTHER OBLIGATIONS HEREUNDER. + +User understands and expressly acknowledges that it has not relied on any representations or warranties made by the Company, TF Tech NV, Bettertoken NV, Kristof De Spiegeleer, any person or entity involved in the development or promotion of the TF Products and/or the ThreeFold project, or any related parties, including, but not limited to, conversations of any kind, whether through oral or electronic communication or otherwise, or any whitepapers or other documentation. + +WITHOUT LIMITING THE GENERALITY OF THE FOREGOING, THE USER ASSUMES ALL RISK AND LIABILITY FOR THE RESULTS OBTAINED BY THE USE OF THE TF PRODUCTS (INCLUDING THE THREEFOLD TOKENS) AND REGARDLESS OF ANY ORAL OR WRITTEN STATEMENTS MADE BY THREEFOLD, BY WAY OF TECHNICAL ADVICE OR OTHERWISE, RELATED TO THE USE THEREOF. + +COMPANY SHALL NOT BE LIABLE FOR ANY INCIDENTAL, CONSEQUENTIAL, PUNITIVE, SPECIAL, INDIRECT, OR EXEMPLARY DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS, REVENUE, DATA, OR DATA USE, OR DAMAGE TO BUSINESS) HOWEVER CAUSED, WHETHER BY BREACH OF WARRANTY, BREACH OF CONTRACT, IN TORT (INCLUDING NEGLIGENCE) OR ANY OTHER LEGAL OR EQUITABLE CAUSE OF ACTION EVEN PREVIOUSLY ADVISED OF SUCH DAMAGES IN ADVANCE OR IF SUCH DAMAGES WERE FORESEEABLE, AND COMPANY SHALL ONLY BE LIABLE FOR DIRECT DAMAGES CAUSED BY ITS GROSS NEGLIGENCE. IN NO EVENT WILL COMPANY’S TOTAL AGGREGATE LIABILITY ARISING FROM OR RELATING TO THIS AGREEMENT EXCEED ONE HUNDRED EURO (€ 100.00). + +### 15. RELEASE + +To the fullest extent permitted by applicable law, you hereby explicitly release (1) the TF Foundation (ThreeFold_Dubai), (2) each individual or entity acting as a Farmer, (3) TF Tech NV, (4) any of the companies or individuals related to these entities, and (5) any person contributing or otherwise assisting in developing, marketing or distributing the TF Products (hereinafter collectively referred to as "**ThreeFold Relatives**") from responsibility, liability, claims, demands and/or damages (actual and consequential) of every kind and nature, known and unknown (including, but not limited to, claims of negligence), arising out of or related to: + +- the acts or omissions of third parties; and + +- your purchase of TFTs (if any) from ThreeFold Relatives, regardless of the names or former names under which such TFTs may have been identified in the relevant contracts (e.g. ‘Internal ThreeFold_Tokens’, ‘iTFTs’, TFTs, etc.). + +If and to the extend you have purchased or otherwise acquired TFTs from ThreeFold Relatives that were identified in the relevant contracts as ‘Internal ThreeFold_Tokens’ or ‘iTFTs’, your use of the TF Products (including your subsequent receipt or acceptance of TFTs) implies your confirmation that such purchase or acquisition has been duly completed as a result of your receipt of a corresponding amount of TFTs, and that all deliverables under the relevant contracts (known as ‘iTFT Purchase Agreement’, ‘TFT Purchase Agreement’ or ‘ITO investment agreement’) have been duly delivered and that there are no further obligations from any ThreeFold Relatives to you in relation to such contracts. + +### 16. EXPORT COMPLIANCE + +The TF Products may be subject to export laws and regulations of the European Union, the United States and other jurisdictions. The User represents that it is not named on any E.U. or U.S. government denied-party list. The User shall not access or use the TF Products in a E.U. or U.S.-embargoed or any sanctioned country or region or in violation of any E.U. or U.S. export law or regulation. User shall not use the TF Products to export, re-export, transfer, or make available, whether directly or indirectly, any regulated item or information to anyone outside the E.U. or U.S. in connection with this Agreement without first complying with all export control laws and regulations that may be imposed by the European Union, any EU country or the U.S. Government and any country or organization of nations within whose jurisdiction the User operates or does business. + +### 17. ENTIRE AGREEMENT,SEVERABILITY, WAIVER + +1. This Agreement sets forth the complete and final agreement of the parties concerning the subject matter hereof, and supersedes, replaces all prior agreements, written and oral, between them concerning the subject matter hereof. If a term of this Agreement to be invalid or unenforceable, the remaining provisions will continue in full force and effect. A party’s consent to, or waiver of, enforcement of this Agreement on one occasion will not be deemed a waiver of any other provision or such provision on any other occasion. + +2. We reserve the right to change this Agreement from time to time in our sole discretion. If we make material changes to this Agreement, we will provide notice of such changes, such as by posting the revised User Terms and Conditions on our websites or in the ThreeFold Connect application. By continuing to access or use the TF Products or otherwise participate in the ThreeFold_Grid after the posted effective date of modifications to this Agreement, you agree to be bound by the revised version of this Agreement. If you do not agree to the modified Agreement, you must stop using and interacting with the TF Products. + +3. The parties are independent contractors. No agency, partnership, franchise, joint venture, or employment relationship is intended or created by this Agreement. Neither party has the power or authority to create or assume any obligation, or make any representations or warranties, on behalf of the other party. + +4. The User agrees that the Company may transfer and assign the Agreement in its sole discretion, provided a notice of such assignment is sent to the User within fifteen days of such assignment. + +5. Notices to Company made under this Agreement shall be made by email to legal@threefold.io AND in writing and delivered by registered mail (return receipt requested) or nationally-recognized overnight courier service to ThreeFold_Dubai, United Arab Emirates, attention Legal Department. You agree to receive electronically all communications, agreements, documents, notices, and disclosures that we provide in connection with the Software and/or the ThreeFold_Grid ("**Communications**"). We may provide Communications in a variety of ways, including by e-mail, text, in-app notifications, or by posting them on our websites. You agree that all Communications that we provide to you electronically satisfy any legal requirement that such communications be in writing. + +### 18. OPERATIONS OF THIRD-PARTY'S DIGITAL ASSET PROTOCOLS AND SERVICES + +1. TF Tech NV (“TF Tech) does not provide (investment) advice regarding cryptocurrencies. You acknowledge that any information provided as part of TF Tech’s ThreeFold Connect App and/or ThreeFold Wallet (the “Platforms”) is not intended as a (personal) recommendation to buy, sell or hold (cryptocurrency) assets. All trading services offered on or through TF Tech’s Platforms are offered on the basis of "execution only". Your orders are executed automatically by our systems. + +2. You hereby confirm to be aware of and accept the risks associated with the purchase, sale and holding of cryptocurrencies and agree not to enter into transactions that can lead to losses that you cannot bear. + +3. TF Tech does not have control over the delivery, quality, legality, safety or any other aspects of any digital assets or services provided to you by third parties. + +4. TF Tech assumes no responsibility for the operation of the underlying software protocols which govern the operation of the cryptocurrencies other than the ThreeFold Token (‘TFT’) which may be displayed or referred to on its ‘software’ and services, including but not limited to, its Platforms. + +5. TF Tech NV does not own or control the underlying software protocols which govern the operation of third party’s digital assets supported on Platforms. Generally, the underlying protocols are controlled by third-party services. TF Tech NV assumes no responsibility for the operation of the underlying protocols and is not able to guarantee the functionality, availability, or security of network operations. In particular, the underlying protocols may be subject to sudden changes in operating rules (including “forks”). Any such material operating changes may materially affect the availability, value, functionality, and/or the name of the third party’s digital asset you store in TF Tech’s Platforms. + +6. TF Tech does not control the timing and features of these material operating changes. It is your responsibility to make yourself aware of upcoming operating changes and you must carefully consider publicly available information and information that may be provided by TF Tech NV in determining whether to continue to use the ThreeFold Connect App account or “Platforms” for the affected third-party’s digital asset. In the event of any such operational change, TF Tech NV reserves the right to take such steps as may be necessary to protect the security and safety of assets held on ThreeFold’s “Platforms”, including temporarily suspending operations, and other necessary steps. TF Tech NV will use its best efforts to provide you notice of its response to any material operating change; however, such changes are outside of TF Tech’s control and may occur without notice to TF Tech NV. TF Tech NV’s response to any material operating change is subject to its sole discretion and includes deciding not to support a third-party’s digital asset fork, or other actions. + +7. You acknowledge and accept the risks of operating changes to third-party’s digital asset protocols and agree that TF Tech NV is not responsible for such operating changes and not liable for any loss of value you may experience as a result of such changes in operating rules. You acknowledge and accept that TF Tech NV has sole discretion to determine its response to any operating change and that we have no responsibility to assist you with third-party’s digital assets, operational changes, unsupported currencies, or protocols. + +### 19. TAXES + +1. You shall be solely responsible for and shall pay (and shall indemnify TF Tech against any liability with respect to any failure by you to pay) all income taxes, value added taxes, goods and services taxes and any and all other taxes or sums due to national, federal, state or local governments (as the case may be) as a result of your use of the Platforms.. + +2. You acknowledge that only you are responsible for the provision of information to tax authorities where such is required. Notwithstanding the above, upon request from a tax authority, TF Tech will provide information relating to you to the tax authorities. + +### 20. EXCLUSION OF LIABILITY + +1. For the avoidance of doubt and notwithstanding the generality of the liability limitations set out in the applicable terms and conditions governing your use of the Platforms and/or other software or services provided by TF Tech, no liability shall exist in any manner whatsoever for: + - differences in prices resulting from delayed processing of buy- or sell orders; + - cancellation of orders by reason of clearly misquoted prices; + - any damage incurred relating to the ThreeFold Wallet feature; + - any losses resulting from hacks, system failures and/or regulatory actions; and + - any indirect loss (including consequential loss, loss of income and profit, loss of data and non-material loss). + +2. Except in case of intentional misconduct by TF Tech, the liability of TF Tech in respect of the Platforms shall in all cases be limited to the amount paid by you for the Platforms during the month prior to the moment the cause of the damage occurred. + +### 21. GOVERNING LAW AND VENUE + +This Agreement will be governed by Luxembourg law. Any disputes shall be subject to the jurisdiction of the courts of Luxembourg, Grand Duchy of Luxembourg. + + +## APPENDIX + +{{#include threefold_companies0.md}} + +{{#include ./sub/the_single_source_truth.md}} \ No newline at end of file diff --git a/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_sales.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_sales.md new file mode 100644 index 0000000..643aa46 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_sales.md @@ -0,0 +1,92 @@ +# Terms Conditions Sales + +These terms and conditions (the “Agreement") constitute a legal agreement between you (“farmer,”, "customer", “you", or “yours”) and TF Tech NV, with registered office at Antwerpse Steenweg 19, B-9080 Lochristi, Belgium, (company number KBO 0712.845.674) ("we" "our" or the "Company") regarding our the sales of a service or product to you. + +## DEFINITIONS AND RELATED TERMS + +The definitions which apply to this Agreement, unless stated otherwise herein, can be found [here](../definitions_legal.md), and are incorporated herein by reference. + + +## TF TECH GENERAL TERMS AND CONDITIONS OF SALE + +Unless explicitly stated otherwise in a specific agreement, these General Terms and Conditions of Sale, together with the Sales Order, represent the entire agreement (“Agreement”) between you or the entity you represent, and TF Tech NV, a Belgian limited liability company with registered office at Antwerpsesteenweg 19, B-9080 Lochristi, Belgium, registered with the Crossroads Bank of Enterprises under company number 0712.845.674 (RPR Gent, district Gent) (the “Company”). + +### 1. SALES ORDERS + +Company will issue a Sales Order (either electronically or otherwise in writing), and such Sales Order must be explicitly accepted by the Customer. In order to qualify as a Sales Order, the relevant document shall specify, without limitation, at least: + +- The identity of the Customer; +- The Deliverables; +- The Effective Date; +- The Acceptance Period; and +- The prices and fees to be paid in respect of the Deliverables. + +In addition, each Sales Order issued may set forth (i) the applicable quantities, (ii) the unit prices, (iii) the bill-to address, (iv) the site(s) where any Services are to be performed (if applicable), and (v) any additional special terms or instructions. + +### 2. PRICING AND PAYMENT + +The prices and fees for Deliverables shall be as set forth in the Sales Order. All prices will be displayed in the Customer’s local currency where they have chosen that option. In such case prices are displayed in the Customer’s local currency for information purposes only. The final contracted price shall be in EUR and may be subject to bank charges and/or currency exchange fees which will be borne by Customer. + +Company shall issue an invoice against each accepted Sales Order (the “Invoice”). The Invoice shall be made available either electronically, in writing or online through the Company’s electronic invoicing system (if any). + +Each Invoice shall automatically become due and payable on the date of issuance of the Sales Order. + +In the event that Customer fails to make any payment of undisputed amounts on or prior to the applicable invoice due date (as determined in accordance with this Section 3), then those undisputed amounts shall accrue interest from the due date at a rate of eight percent (8%) per annum (or such lesser rate as may be the maximum permissible rate allowed under applicable law), calculated from the first day when such amount became due and owing until the date on which such amount is paid. The Company’s right to claim additional damages shall remain unaffected. + +Customer shall pay all federal, state or local sales or use taxes and any other government taxes, fees, duties or charges that are imposed upon the fees and charges paid by Customer to Company pursuant to this Agreement. Company will be responsible for all other taxes arising from the transactions contemplated by this Agreement, including, without limitation, any taxes based upon Company’s property, net income or gross receipts. Customer shall pay all such amounts directly to the taxing authority unless the taxing authority requires that Company collect and remit payment, in which event Customer shall pay such amounts to Company and Company shall remit such amounts to the authority and provide Customer with a certificate stating that such amounts were so remitted. Customer and Company shall reasonably cooperate in order to take actions to minimize, or to qualify for exemptions from, any applicable taxes, duties or tariffs. Such cooperation shall include, without limitation, the furnishing of certifications that purchases by Customer are for purposes of resale, if applicable, and must be used in accordance with any local and international laws. Customer and Company shall each have the right to protest or appeal any tax or charge assessed against it by any taxing authority with respect to the subject matter of this Agreement. + +### 3. DELIVERY AND ACCEPTANCE + +Delivery. Unless otherwise agreed, prices and delivery are ExWorks (INCOTERMS 2010) from the production premises of the Company in Lochristi (Belgium) or the third party designated in the Sales Order. Any charges Company may be required to pay or collect on the sale, purchase, delivery, storage, use or transportation of the goods shall be paid by Customer. + + +Export regulations. Customer is responsible for complying with all applicable export and/or re-export restrictions and regulations. + +Title; Risk of Loss. Unless otherwise agreed, the risk of loss passes to Customer on the date when the goods are delivered to the carrier, as described in INCOTERMS 2010 (the “Delivery Date”). Where the risk of loss has passed to Customer, Customer must obtain redress for freight losses, shortages or damages from the carrier or its insurer. Company is not responsible for any such losses. Notwithstanding any provision of INCOTERMS 2010 or contained herein, equitable title and accession to the goods shall, where permitted by law, remain with Company until Customer has paid in full. This shall be the case even if legal title to the goods shall be deemed by law to have passed to Customer at the time of delivery and prior to performance of all of Company’s obligations. Customer shall grant and by acceptance of the goods is deemed to have granted to Company a first security interest in all goods to secure payment of amounts owed by Customer. In certain circumstances for instance for very large orders Customer agrees to execute a financing statement at Company's request. Company may reclaim any goods delivered or in transit if Customer fails to make payment when due. + +Inspection and Acceptance. Customer will evaluate any Deliverable that has been delivered to Customer or performed in accordance with this Agreement to determine whether it complies with all applicable Specifications. Customer shall give Company written notice of Acceptance or Rejection within the Acceptance Period. +Upon notice of Rejection, Customer may: +immediately return to Company the relevant Deliverables, provided such Deliverables are in good working condition and without damage, in which case the Invoice will be cancelled through a credit note; +direct Company to correct the nonconformity, in which case Company (at no cost to Customer) shall correct the nonconformity within thirty (30) days of Customer’s request; or +upon mutual agreement of the Parties, pay Company a reduced amount for the nonconforming item (in which case the Invoice will be partially cancelled accordingly through a credit note). +Deliverables provided to Customer will be deemed accepted: +in the absence of any notice of Rejection within or at the expiration of the Acceptance Period; or +in the absence of any return of the Deliverables within the Acceptance Period. + +### 4. USAGE RESTRICTIONS + +Customer acknowledges that any use or purchase of the Hardware or Services for fraudulent or illegal purposes or purchases Hardware or Services in a fraudulent manner will irrevocably invalidate any Agreement between the Customer and Company and may lead to prosecution. + +### 5.WARRANTIES + +Hardware Warranty by Company to Customer. The Hardware supplied by Company pursuant to this Agreement is manufactured and/or developed by third party vendors and will carry the warranties specified by the applicable third party vendor, which warranties Company shall extend to Customer to the full extent permissible under such warranties or as provided under statutory law. + +Services Warranties. Company warrants that all Services performed hereunder shall be performed in a timely, professional and workmanlike manner, in conformance with industry practices, and Company warrants the workmanship of such Services for a period of ninety (90) days from the date on which the applicable Services are provided. + +Eligibility. Any warranties shall be invalid and the company shall have no responsibility or liability whatsoever for any Hardware or Software, or part thereof, that (a) has had the Serial Number, Model Number, or other identification markings altered, removed or rendered illegible; (b) has been damaged by or subject to improper installation or operation, misuse, accident or neglect; (c) has become defective or inoperative due to its integration or assembly with any equipment or products not supplied by Company; (d) has been repaired, modified or otherwise altered by anyone other than Company and/or has been subject to the opening of the Hardware without Company’s prior written consent; (e) has had any item removed from the Hardware including any storage device including USB drives. If any warranty claim by Customer falls within any of the foregoing exceptions, Customer shall pay Company its then current rates and charges for such services. + +Termination. Cancellation or termination of this Agreement by either Company or Customer shall void this warranty. + +Remedies and repair. Company’s liability and responsibility under this warranty is limited to the obligation, at Company’s option, to either repair or replace the relevant Deliverables. In the event that after repeated efforts Company is unable to repair or replace a defective Deliverable, then Customer’s exclusive remedy and Company’s entire liability in contract, tort, or otherwise shall be the payment by Company of Customer's actual damages after mitigation, but shall not exceed the purchase price or fee actually paid by Customer for the relevant defective Deliverable. +The Company shall have no obligation to repair, replace, or refund the relevant Deliverable until the Customer returns the defective Deliverable to the Company. Before returning any Deliverable to the Company, the Customer must contact the Company for a return authorization and other appropriate instructions. +The Company warrants a repaired Deliverable only for the unexpired term of the original warranty for the defective Deliverable. The Company warrants parts exchanged in connection with a repair, only for the unexpired term of the original warranty for the defective Deliverable. + +Warranty Procedure. The Customer shall notify the Company immediately in writing of any obvious or potential defects in the Deliverables, following the acceptance thereof, as soon as such defects have been discovered in the ordinary course of business within the aforementioned warranty terms. Company shall only remedy defective Deliverables under these Warranty provisions provided the defects are notified to Company within the relevant Warranty period. + +Disclaimer. THE ABOVE WARRANTY IS IN LIEU OF ALL OTHER WARRANTIES, EXPRESS OR IMPLIED, INCLUDING THOSE OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF WHICH ARE EXPRESSLY DISCLAIMED. COMPANY SHALL NOT BE LIABLE FOR ANY CONSEQUENTIAL, INCIDENTAL, SPECIAL, OR EXEMPLARY DAMAGES (WHETHER FOR LOSS OF PROFIT, LOSS OF BUSINESS, LOSS OF OPPORTUNITY, MISSED SAVINGS, DEPLETION OF GOODWILL, RECALL, DISMANTLING OR OTHERWISE); EVEN IF IT HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +Limitations. To the fullest extent permitted by law, Company’s total and aggregate liability in respect to direct damages, whether in contract or tort (including negligence or breach of statutory duty), for each respective breach or series of related breaches or any and all losses, shall not exceed in the aggregate (i) the actual amount paid for the specific Deliverables giving rise to the claim; or (ii) EUR 10,000, whichever amount is lower. The existence of one or more claims under this Agreement shall not enlarge the limit. +The limitations and exclusions referred to in this clause will not apply in the event the liability results from the Company’s deliberate intent (or that of its subordinates or assistants). +The limitations and exclusions of liability, as well as indemnity stipulated for Company itself in the above paragraphs are also stipulated for and on behalf of its directors, employees, agents and other intermediaries and/or any other person employed by it or delivering services to it within the framework of the Agreement. + +### 6. MISCELLANEOUS + +Severability. If any provision of this Agreement will be held to be invalid or unenforceable for any reason, the remaining provisions will continue to be valid and enforceable. If a court finds that any provision of this Agreement is invalid or unenforceable, but that by limiting such provision, it would become valid and enforceable, then such provision will be deemed to be written, construed, and enforced as so limited. + +Governing Law. All disputes will be governed by the laws of Belgium. The venue for litigation will be the appropriate courts of Ghent, Belgium. Choice of law rules of any jurisdiction and the United Nations Convention on Contracts for the International Sale of Goods will not apply to any dispute. + +Changes. TF Tech NV reserves the right to vary these T&Cs at any time. TF Tech NV will inform customers by email if the T&Cs change using the contact email provided at the time of purchase, or using any email subsequently provided by the customer as their main email. The customer agrees that they will always ensure such emails are up to date and monitored. Any variations to the T&Cs will be deemed to have been accepted unless TF Tech NV is informed to the contrary. + +## APPENDIX + +{{#include ./sub/the_single_source_truth.md}} \ No newline at end of file diff --git a/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_toc.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_toc.md new file mode 100644 index 0000000..de9638f --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/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/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites.md new file mode 100644 index 0000000..7eaa7c7 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites.md @@ -0,0 +1,28 @@ +**TERMS OF USE** + +{{#include ./terms_conditions_websites/part_0_agreement_terms.md}} +{{#include ./terms_conditions_websites/part_1_ip_rights.md}} +{{#include ./terms_conditions_websites/part_2_user_representations.md}} +{{#include ./terms_conditions_websites/part_3_user_registration.md}} +{{#include ./terms_conditions_websites/part_4_prohibited_activities.md}} +{{#include ./terms_conditions_websites/part_5_user_generated_contributions.md}} +{{#include ./terms_conditions_websites/part_6_contribution_license.md}} +{{#include ./terms_conditions_websites/part_7_social_media.md}} +{{#include ./terms_conditions_websites/part_8_submission.md}} +{{#include ./terms_conditions_websites/part_9_thirdparty_websites_content.md}} +{{#include ./terms_conditions_websites/part_10_site_management.md}} +{{#include ./terms_conditions_websites/part_11_privacy_policy.md}} +{{#include ./terms_conditions_websites/part_12_dispute_resolution.md}} +{{#include ./terms_conditions_websites/part_13_disclaimer.md}} +{{#include ./terms_conditions_websites/part_14_limitations_liability.md}} +{{#include ./terms_conditions_websites/part_15_indemnification.md}} +{{#include ./terms_conditions_websites/part_16_user_data.md}} +{{#include ./terms_conditions_websites/part_17_electronic_comms_transactions_signatures.md}} +{{#include ./terms_conditions_websites/part_18_miscellaneous.md}} +{{#include ./terms_conditions_websites/part_19_contact_us.md}} + +## APPENDIX + +{{#include threefold_companies0.md}} + +{{#include ./sub/the_single_source_truth.md}} \ No newline at end of file diff --git a/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_0_agreement_terms.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_0_agreement_terms.md new file mode 100644 index 0000000..93cf2e5 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_0_agreement_terms.md @@ -0,0 +1,15 @@ +**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: + +{{#include ../sub/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”). + +You agree that by accessing the Site, you have read, understood, and agreed to be bound by all of these Terms of Use. IF YOU DO NOT AGREE WITH ALL OF THESE TERMS OF USE, THEN YOU ARE EXPRESSLY PROHIBITED FROM USING THE SITE AND YOU MUST DISCONTINUE USE IMMEDIATELY. + +Supplemental terms and conditions or documents that may be posted on the Site from time to time are hereby expressly incorporated herein by reference. We reserve the right, in our sole discretion, to make changes or modifications to these Terms of Use at any time and for any reason. We will alert you about any changes by updating the "Last updated" date of these Terms of Use, and you waive any right to receive specific notice of each such change. It is your responsibility to periodically review these Terms of Use to stay informed of updates. You will be subject to, and will be deemed to have been made aware of and to have accepted, the changes in any revised Terms of Use by your continued use of the Site after the date such revised Terms of Use are posted. + +The information provided on the Site is not intended for distribution to or use by any person or entity in any jurisdiction or country where such distribution or use would be contrary to law or regulation or which would subject us to any registration requirement within such jurisdiction or country. Accordingly, those persons who choose to access the Site from other locations do so on their own initiative and are solely responsible for compliance with local laws, if and to the extent local laws are applicable. + +The Site is intended for users who are at least 18 years old. Persons under the age of 18 are not permitted to use or register for the Site. \ No newline at end of file diff --git a/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_10_site_management.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_10_site_management.md new file mode 100644 index 0000000..1b12bf6 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_10_site_management.md @@ -0,0 +1,3 @@ +**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/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_11_privacy_policy.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_11_privacy_policy.md new file mode 100644 index 0000000..5db0439 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_11_privacy_policy.md @@ -0,0 +1,22 @@ +**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** + +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. + +**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 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** + +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/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_12_dispute_resolution.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_12_dispute_resolution.md new file mode 100644 index 0000000..0483b50 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_12_dispute_resolution.md @@ -0,0 +1,7 @@ +**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** + +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/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_13_disclaimer.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_13_disclaimer.md new file mode 100644 index 0000000..19472d0 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_13_disclaimer.md @@ -0,0 +1,3 @@ +**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/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_14_limitations_liability.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_14_limitations_liability.md new file mode 100644 index 0000000..9adccbf --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_14_limitations_liability.md @@ -0,0 +1,3 @@ +**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/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_15_indemnification.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_15_indemnification.md new file mode 100644 index 0000000..447c022 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_15_indemnification.md @@ -0,0 +1,3 @@ +**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/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_16_user_data.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_16_user_data.md new file mode 100644 index 0000000..80ecde7 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_16_user_data.md @@ -0,0 +1,3 @@ +**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/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_17_electronic_comms_transactions_signatures.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_17_electronic_comms_transactions_signatures.md new file mode 100644 index 0000000..da54ef8 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_17_electronic_comms_transactions_signatures.md @@ -0,0 +1,3 @@ +**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/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_18_miscellaneous.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_18_miscellaneous.md new file mode 100644 index 0000000..633bbe3 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_18_miscellaneous.md @@ -0,0 +1,3 @@ +**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/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_19_contact_us.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_19_contact_us.md new file mode 100644 index 0000000..82f7d36 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_19_contact_us.md @@ -0,0 +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: + + **ThreeFold FCZ** + +BA1120 DMCC BUSINESS CENTRE, LEVEL NO 1, JEWELLERY & GEMPLEX 3, DUBAI, UNITED EMIRATES ARAB + +info@threefold.io \ No newline at end of file diff --git a/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_1_ip_rights.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_1_ip_rights.md new file mode 100644 index 0000000..4a56c39 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_1_ip_rights.md @@ -0,0 +1,5 @@ +**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/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_2_user_representations.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_2_user_representations.md new file mode 100644 index 0000000..281bcc0 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_2_user_representations.md @@ -0,0 +1,5 @@ +**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/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_3_user_registration.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_3_user_registration.md new file mode 100644 index 0000000..24f5115 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_3_user_registration.md @@ -0,0 +1,3 @@ +**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. diff --git a/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_4_prohibited_activities.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_4_prohibited_activities.md new file mode 100644 index 0000000..dc86d3f --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_4_prohibited_activities.md @@ -0,0 +1,18 @@ +**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: + +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. +3. Engage in unauthorized framing of or linking to the Site. +4. Trick, defraud, or mislead us and other users, especially in any attempt to learn sensitive account information such as user passwords. +5. Engage in any automated use of the system, such as using scripts to send comments or messages, or using any data mining, robots, or similar data gathering and extraction tools. +6. Interfere with, disrupt, or create an undue burden on the Site or the networks or services connected to the Site. +7. Use the Site as part of any effort to compete with us or otherwise use the Site and/or the Content for any revenue-generating endeavor or commercial enterprise. +8. Decipher, decompile, disassemble, or reverse engineer any of the software comprising or in any way making up a part of the Site. +9. Upload or transmit (or attempt to upload or to transmit) viruses, Trojan horses, or other material, including excessive use of capital letters and spamming (continuous posting of repetitive text), that interferes with any party’s uninterrupted use and enjoyment of the Site or modifies, impairs, disrupts, alters, or interferes with the use, features, functions, operation, or maintenance of the Site. +10. Upload or transmit (or attempt to upload or to transmit) any material that acts as a passive or active information collection or transmission mechanism, including without limitation, clear graphics interchange formats ("gifs"), 1×1 pixels, web bugs, cookies, or other similar devices (sometimes referred to as “spyware” or “passive collection mechanisms” or “pcms”). +11. Except as may be the result of standard search engine or Internet browser usage, use, launch, develop, or distribute any automated system, including without limitation, any spider, robot, cheat utility, scraper, or offline reader that accesses the Site, or using or launching any unauthorized script or other software. +12. Use the Site in a manner inconsistent with any applicable laws or regulations. diff --git a/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_5_user_generated_contributions.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_5_user_generated_contributions.md new file mode 100644 index 0000000..15b00c4 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_5_user_generated_contributions.md @@ -0,0 +1,22 @@ +**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. +3. You have the written consent, release, and/or permission of each and every identifiable individual person in your Contributions to use the name or likeness of each and every such identifiable individual person to enable inclusion and use of your Contributions in any manner contemplated by the Site and these Terms of Use. +4. Your Contributions are not false, inaccurate, or misleading. +5. Your Contributions are not unsolicited or unauthorized advertising, promotional materials, pyramid schemes, chain letters, spam, mass mailings, or other forms of solicitation. +6. Your Contributions are not obscene, lewd, lascivious, filthy, violent, harassing, libelous, slanderous, or otherwise objectionable (as determined by us). +7. Your Contributions do not ridicule, mock, disparage, intimidate, or abuse anyone. +98 Your Contributions do not advocate the violent overthrow of any government or incite, encourage, or threaten physical harm against another. +9. Your Contributions do not violate any applicable law, regulation, or rule. +10. Your Contributions do not violate the privacy or publicity rights of any third party. +11. Your Contributions do not contain any material that solicits personal information from anyone under the age of 18 or exploits people under the age of 18 in a sexual or violent manner. +12. Your Contributions do not violate any federal or state law concerning child pornography, or otherwise intended to protect the health or well-being of minors; +13. Your Contributions do not include any offensive comments that are connected to race, national origin, gender, sexual preference, or physical handicap. +14. Your Contributions do not otherwise violate, or link to material that violates, any provision of these Terms of Use, or any applicable law or regulation. + +Any use of the Site in violation of the foregoing violates these Terms of Use and may result in, among other things, termination or suspension of your rights to use the Site. \ No newline at end of file diff --git a/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_6_contribution_license.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_6_contribution_license.md new file mode 100644 index 0000000..689ec3d --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_6_contribution_license.md @@ -0,0 +1,9 @@ +**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. + +This license will apply to any form, media, or technology now known or hereafter developed, and includes our use of your name, company name, and franchise name, as applicable, and any of the trademarks, service marks, trade names, logos, and personal and commercial images you provide. You waive all moral rights in your Contributions, and you warrant that moral rights have not otherwise been asserted in your Contributions. + +We do not assert any ownership over your Contributions. You retain full ownership of all of your Contributions and any intellectual property rights or other proprietary rights associated with your Contributions. We are not liable for any statements or representations in your Contributions provided by you in any area on the Site. You are solely responsible for your Contributions to the Site and you expressly agree to exonerate us from any and all responsibility and to refrain from any legal action against us regarding your Contributions. + +We have the right, in our sole and absolute discretion, (1) to edit, redact, or otherwise change any Contributions; (2) to re-categorize any Contributions to place them in more appropriate locations on the Site; and (3) to pre-screen or delete any Contributions at any time and for any reason, without notice. We have no obligation to monitor your Contributions. \ No newline at end of file diff --git a/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_7_social_media.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_7_social_media.md new file mode 100644 index 0000000..56d92b7 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_7_social_media.md @@ -0,0 +1,5 @@ +**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- + +PARTY SERVICE PROVIDERS ASSOCIATED WITH YOUR THIRD-PARTY ACCOUNTS IS GOVERNED SOLELY BY YOUR AGREEMENT(S) WITH SUCH THIRD-PARTY SERVICE PROVIDERS. We make no effort to review any Social Network Content for any purpose, including but not limited to, for accuracy, legality, or non-infringement, and we are not responsible for any Social Network Content. You acknowledge and agree that we may access your email address book associated with a Third-Party Account and your contacts list stored on your mobile device or tablet computer solely for purposes of identifying and informing you of those contacts who have also registered to use the Site. You can deactivate the connection between the Site and your Third-Party Account by contacting us using the contact information below or through your account settings (if applicable). We will attempt to delete any information stored on our servers that was obtained through such Third-Party Account, except the username and profile picture that become associated with your account. diff --git a/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_8_submission.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_8_submission.md new file mode 100644 index 0000000..d390911 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_8_submission.md @@ -0,0 +1,3 @@ +**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/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_9_thirdparty_websites_content.md b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_9_thirdparty_websites_content.md new file mode 100644 index 0000000..7f69b25 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/terms_conditions_websites/part_9_thirdparty_websites_content.md @@ -0,0 +1,3 @@ +**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/manual/knowledge_base/legal/terms_conditions/tfta_to_tft.md b/collections/manual/knowledge_base/legal/terms_conditions/tfta_to_tft.md new file mode 100644 index 0000000..33a89ce --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/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/manual/knowledge_base/legal/terms_conditions/threefold_companies0.md b/collections/manual/knowledge_base/legal/terms_conditions/threefold_companies0.md new file mode 100644 index 0000000..a626914 --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions/threefold_companies0.md @@ -0,0 +1,29 @@ +

ThreeFold Related Companies

+ +The following companies are related parties to ThreeFold. Our terms and conditions apply. + +| THREEFOLD RELATED COMPANIES | Description | +| --------------------------------------------------------------- | ---------------------------------------------------------------------------------- | +| [ThreeFold Dubai or ThreeFold Cloud](../../about/threefold_dubai.md) | Promotion of TFGrid + Delivery of ThreeFold Cloud | +| [Threefold_Tech](../../about/threefold_tech.md) | Belgium-based tech company owns IP (Intellectual Property) of tech, is open source | +| [ThreeFold_VZW](../../about/threefold_vzw.md) | Non for profit organization in BE, intented to be used for grants work. | +| [ThreeFold_AG](../../about/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](../../about/mazraa.md) | A farmer in Middle East who is part of ThreeFold_Dubai | +| [BetterToken](../../about/bettertoken.md) | BetterToken is the very first ThreeFold Farming Cooperative in Europe | + + +| SOME LARGER FARMERS | | +| ------------------- | ---------------------------------------------------------------- | +| Green Edge | Early ThreeFold Farmer providing decentralized compute & storage | +| Bancadati | Large ThreeFold Farmer in Switzerland | +| Moresi | A neutral, technologically advanced data center in Switzerland | +| there are many more | ... | + +> Please note, ThreeFold Grid 3.x operates as a [DAO](../../about/dao/dao.md) every party who wants to participate with the ThreeFold Grid uses the [TFChain](../../about/tfchain.md) and our Forums. +> [Click here for more info about our DAO](../../about/dao/tfdao.md) \ No newline at end of file diff --git a/collections/manual/knowledge_base/legal/terms_conditions_all3.md b/collections/manual/knowledge_base/legal/terms_conditions_all3.md new file mode 100644 index 0000000..07fb1ec --- /dev/null +++ b/collections/manual/knowledge_base/legal/terms_conditions_all3.md @@ -0,0 +1,15 @@ +# Legal + +## TFGRID USER and/or FARMER TERMS AND CONDITIONS TFGRID 3.X + +THESE TERMS AND CONDITIONS (THE "**AGREEMENTS**") CONSTITUTE A LEGAL AGREEMENT BETWEEN YOU (“TFGRID **USER**,"“TFGRID **FARMER**," “**YOU**", OR “**YOURS**”) AND TRC (“**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 OR ANY OF THE THREEFOLD PROVIDED SOFTWARE OR SERVICES YOU ACCEPT THE FOLLOWING AGREEMENTS: + +- [X] [Disclaimer](./disclaimer.md) +- [X] [Definitions](./definitions_legal.md) +- [X] [Privacy Policy](./privacypolicy.md) +- [X] [Terms & Conditions ThreeFold Related Websites](./terms_conditions/terms_conditions_websites.md) +- [X] [Terms & Conditions TFGrid Users TFGrid 3](./terms_conditions/terms_conditions_griduser.md) +- [X] [Terms & Conditions TFGrid Farmers TFGrid 3](./terms_conditions/terms_conditions_farmer3.md) +- [X] [Terms & Conditions TFGrid Sales](./terms_conditions/terms_conditions_sales.md) \ No newline at end of file diff --git a/collections/manual/knowledge_base/legal/threefold_fzc_address.md b/collections/manual/knowledge_base/legal/threefold_fzc_address.md new file mode 100644 index 0000000..7ae3c9e --- /dev/null +++ b/collections/manual/knowledge_base/legal/threefold_fzc_address.md @@ -0,0 +1,2 @@ +Q1-07-038/B SAIF Zone, Sharjah +United Arab Emirates \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/architecture/cloud_architecture_.md b/collections/manual/knowledge_base/technology/architecture/cloud_architecture_.md new file mode 100644 index 0000000..accb833 --- /dev/null +++ b/collections/manual/knowledge_base/technology/architecture/cloud_architecture_.md @@ -0,0 +1,20 @@ +![](img/architecture_why_us.jpg) + +## Architecture Overview + +**More info:** + +- QSSS + - QSFS +- [Quantum Safe Network Concept](sdk:archi_qsnetwork) + - [Zero-OS Network](sdk:capacity_network) + - [ThreeFold Network = Planetary Network](sdk:archi_psnw) + - [Web Gateway](sdk:archi_webgateway) +- TFGrid + - [3Node](3node) + - [ThreeFold Connect](tfconnect) + + diff --git a/collections/manual/knowledge_base/technology/architecture/cloud_wallet_.md b/collections/manual/knowledge_base/technology/architecture/cloud_wallet_.md new file mode 100644 index 0000000..ceff391 --- /dev/null +++ b/collections/manual/knowledge_base/technology/architecture/cloud_wallet_.md @@ -0,0 +1,43 @@ +# Wallet on Stellar Network + +![](img/3bot_wallet_detail.jpg) + +### Prepaid Wallets + +The VDC has a built-in __prepaid wallet__, which is the wallet used for paying the capacity requested in the VDC. This wallet expresses in TFT the remaining balance available for ensuring the operational continuity of the reserved capacity. + +This wallet is registered on the Stellar network, and is exclusively used for capacity reservation aligned with the chosen VDC size. +Both the TFGrid testnet and mainnet are connected to the Stellar mainnet, so TFTs used are the same. Testnet prices are substantially lower than mainnet prices, though there's no guarantee about continuity of operation: testnet is reset at regular times, and available capacity is also lower than on mainnet. + +### A public key and a shared private key + +The wallet is characterized by 2 strings: +- A public address, starting with a 'G', is the address that can be shared with anyone, as it the address to be mentioned when transferring tokens TO the wallet. +- A private key, starting with an 'S', is the secret that gives control over the wallet, and which is needed to generate outgoing transfers. + +### Payment for Capacity Process + +The Prepaid Wallet which is setup within your VDC is exclusively used for this purpose. The private key of this wallet is shared between you and the VDC provider : +- The VDC provider needs the private key to pay the farmer on a rolling basis : every hour an amount is transferred to the farmer(s) that owns the reserved hardware capacity, so it stays reserved for the next 2 weeks. These 2 weeks are meant as a 'grace period' : when the balance of the prepaid wallet becomes zero, you have 2 weeks to top up the wallet. You will get notified for this, while the workload remains operational. +In case after these 2 weeks grace period the wallet hasn't been topped up again, the workload will be removed and the capacity will be made available again for new reservations. + +## Top-up a Wallet + +Please read the [Top-up](evdc_wallet_topup) page for instructions. + +## Viewing Your Balance + +Simply click on one of your existing wallet see the details of the wallet. + +![](img/3bot_wallet_detail.jpg) + +## Withdraw TFTs from the wallet + +The private key is available to transfer tokens from the prepaid wallet to your personal TFT wallet. Evidently, transferring tokens has a direct impact on the expiration date of your VDC. + +### Your VDC Wallet Details + +- The Network is the Stellar mainnet network (indicated with `STD` on the wallet information) +- [Trustlines](https://www.stellar.org/developers/guides/concepts/assets.html) are specific to the Stellar network to indicate that a user is 'trusting' the asset / crypto issuer, in our case trusting ThreeFold Dubai as issuer of TFT. +Trustlines are specific to the network, so it needs to be established both on testnet and mainnet and for all the tokens that someone intends to hold. Without a trustline, a wallet address can't be fed with tokens. +In order to make it easier for the user, trustlines are being established automatically when creating a wallet for TFT in the admin panel as well as in ThreeFold Connect app. However, if you use a third party Stellar wallet for your tokens, you need to create the trustlines yourself. \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/architecture/evdc_qsfs_get_started_.md b/collections/manual/knowledge_base/technology/architecture/evdc_qsfs_get_started_.md new file mode 100644 index 0000000..50d7ab1 --- /dev/null +++ b/collections/manual/knowledge_base/technology/architecture/evdc_qsfs_get_started_.md @@ -0,0 +1,79 @@ +## Getting started + +Any Quantum-Safe File System has 4 storage layers : +- An etcd metadata storage layer +- Local storage +- ZDB-FS fuse layer +- ZSTOR for the dispersed storage + +Now, there are 2 ways to run the zstor filesystem: +- In self-management mode for the metadata; +- A 'Quantum Storage Enabled' mode. + +The first mode combines the local storage, ZDB-FS and ZSTOR, but requires an etcd metadata layer to be manually run and managed. +The second mode is enabled by the `ENABLE QUANTUM STORAGE` button and provisions etcd to manage the metadata. Here the 4 layers are available (hence it will consume slightly more storage from your VDC). + +### Manually Managed Metadata Mode + +This Planetary Secure File System uses a ThreeFold VDC's storage nodes to back data up to the ThreeFold Grid. Below you'll find instructions for using an executable bootstrap file that runs on Linux or in a Linux Docker container to set up the complete environment necessary to use the file system. + +Please note that this solution is currently for testing only, and some important features are still under development. + +#### VDC and Z-Stor Config + +If you haven't already, go ahead and [deploy a VDC](evdc_deploy). Then download the Z-Stor config file, found in the upper right corner of the `VDC Storage Nodes` screen. Unless you know that IPv6 works on your machine and within Docker, choose the IPv4 version of the file. + +![](img/planetaryfs_zstor_config.jpg) + +As described in [Manage Storage Nodes](evdc_storage), this file contains the necessary information to connect with the 0-DBs running on the storage nodes in your VDC. It also includes an encryption key used to encrypt data that's uploaded and a field to specify your etcd endpoints. Using the defaults here is fine. + +#### Bootstrap Executable + +Download now the zstor filesystem bootstrap, available [here](https://github.com/threefoldtech/quantum-storage/releases/download/v0.0.1/planetaryfs-bootstrap-linux-amd64). + + +> __Remark__: +For now, the bootstrap executable is only available for Linux. We'll cover how to use it within an Ubuntu container in Docker, which will also work on MacOS. +First, we'll start an Ubuntu container with Docker, enabling fuse file system capabilities. In a terminal window, + +`docker run -it --name zdbfs --cap-add SYS_ADMIN --device /dev/fuse ubuntu:20.04` + +Next, we'll copy the Z-Stor config file and the bootstrap executable into the running container. In a separate terminal window, navigate to where you downloaded the files and run: + +`docker cp planetaryfs-bootstrap-linux-amd64 zdbfs:/root/` +`docker cp zdbfs:/root/` + +Back in the container's terminal window, `cd /root` and confirm that the two files are there with `ls`. Then run the bootstrap executable, specifying your config file: + +`chmod u+x planetaryfs-bootstrap-linux-amd64` +`./planetaryfs-bootstrap-linux-amd64 ` + +This bootstrap's execution will start up all necessary components and show you that the back-end is ready for dispersing the data. + +![](img/planetaryfs_bootstrap_ready.jpg ':size=600') + +After that, your Planetary Secure File System will be mounted at `/root/.threefold/mnt/zdbfs`. Files copied there will automatically be stored on the grid incrementally as fragments of a certain size are filled, by default 32Mb. In a future release, this will no longer be a limitation. + +### Provisioned Metadata Mode + +Users that intend to have also the metadata out-of-the-box available, and have it used in the Kubernetes cluster, need to push the `ENABLE QUANTUM STORAGE` button. This will allow to use etcd key-value stores in the VDC, and can be used within a Kubernetes cluster. + +![](img/planetaryfs_enable_qs.jpg) + +Once Quantum Storage mode is enabled, you get an etcd for free. + +**Remark**: this action can't be undone in your VDC : the etcd stores can be filled immediately, and deletion of them could result in data loss. This is why the 'Disable Quantum Storage' is considered as too risky and is not available. + +### Add node + +Adding storage nodes manually is simple: press the `+ ADD NODE` button. + +![](img/planetaryfs_add_node.jpg) + +You'll be asked to deploy this storage node either on the same farm or on another one. The choice is a balance between security (have the data in multiple locations makes it more resilient against disaster). + +![](img/planetaryfs_farm.jpg ':size=600') + +If you choose `Yes`, select the farm of your choice, and then pay for the extra capacity. + +![](img/planetaryfs_pay.jpg ':size=600') \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/architecture/img/3bot_wallet_detail.jpg b/collections/manual/knowledge_base/technology/architecture/img/3bot_wallet_detail.jpg new file mode 100644 index 0000000..ab79ec2 Binary files /dev/null and b/collections/manual/knowledge_base/technology/architecture/img/3bot_wallet_detail.jpg differ diff --git a/collections/manual/knowledge_base/technology/architecture/img/3layers_tf_.jpg b/collections/manual/knowledge_base/technology/architecture/img/3layers_tf_.jpg new file mode 100644 index 0000000..1f244d7 Binary files /dev/null and b/collections/manual/knowledge_base/technology/architecture/img/3layers_tf_.jpg differ diff --git a/collections/manual/knowledge_base/technology/architecture/img/architecture_why_us.jpg b/collections/manual/knowledge_base/technology/architecture/img/architecture_why_us.jpg new file mode 100644 index 0000000..0c144df Binary files /dev/null and b/collections/manual/knowledge_base/technology/architecture/img/architecture_why_us.jpg differ diff --git a/collections/manual/knowledge_base/technology/architecture/img/planet_fs.jpg b/collections/manual/knowledge_base/technology/architecture/img/planet_fs.jpg new file mode 100644 index 0000000..7d2d814 Binary files /dev/null and b/collections/manual/knowledge_base/technology/architecture/img/planet_fs.jpg differ diff --git a/collections/manual/knowledge_base/technology/architecture/img/planetaryfs_add_node.jpg b/collections/manual/knowledge_base/technology/architecture/img/planetaryfs_add_node.jpg new file mode 100644 index 0000000..89f259c Binary files /dev/null and b/collections/manual/knowledge_base/technology/architecture/img/planetaryfs_add_node.jpg differ diff --git a/collections/manual/knowledge_base/technology/architecture/img/planetaryfs_bootstrap_ready.jpg b/collections/manual/knowledge_base/technology/architecture/img/planetaryfs_bootstrap_ready.jpg new file mode 100644 index 0000000..c59c889 Binary files /dev/null and b/collections/manual/knowledge_base/technology/architecture/img/planetaryfs_bootstrap_ready.jpg differ diff --git a/collections/manual/knowledge_base/technology/architecture/img/planetaryfs_enable_qs.jpg b/collections/manual/knowledge_base/technology/architecture/img/planetaryfs_enable_qs.jpg new file mode 100644 index 0000000..166edad Binary files /dev/null and b/collections/manual/knowledge_base/technology/architecture/img/planetaryfs_enable_qs.jpg differ diff --git a/collections/manual/knowledge_base/technology/architecture/img/planetaryfs_farm.jpg b/collections/manual/knowledge_base/technology/architecture/img/planetaryfs_farm.jpg new file mode 100644 index 0000000..45fca5b Binary files /dev/null and b/collections/manual/knowledge_base/technology/architecture/img/planetaryfs_farm.jpg differ diff --git a/collections/manual/knowledge_base/technology/architecture/img/planetaryfs_pay.jpg b/collections/manual/knowledge_base/technology/architecture/img/planetaryfs_pay.jpg new file mode 100644 index 0000000..0dfc38d Binary files /dev/null and b/collections/manual/knowledge_base/technology/architecture/img/planetaryfs_pay.jpg differ diff --git a/collections/manual/knowledge_base/technology/architecture/img/planetaryfs_zstor_config.jpg b/collections/manual/knowledge_base/technology/architecture/img/planetaryfs_zstor_config.jpg new file mode 100644 index 0000000..4467329 Binary files /dev/null and b/collections/manual/knowledge_base/technology/architecture/img/planetaryfs_zstor_config.jpg differ diff --git a/collections/manual/knowledge_base/technology/architecture/img/quantum_safe_storage.jpg b/collections/manual/knowledge_base/technology/architecture/img/quantum_safe_storage.jpg new file mode 100644 index 0000000..4d99c48 Binary files /dev/null and b/collections/manual/knowledge_base/technology/architecture/img/quantum_safe_storage.jpg differ diff --git a/collections/manual/knowledge_base/technology/architecture/img/quantum_safe_storage_scale.jpg b/collections/manual/knowledge_base/technology/architecture/img/quantum_safe_storage_scale.jpg new file mode 100644 index 0000000..b785a79 Binary files /dev/null and b/collections/manual/knowledge_base/technology/architecture/img/quantum_safe_storage_scale.jpg differ diff --git a/collections/manual/knowledge_base/technology/architecture/threefold_filesystem.md b/collections/manual/knowledge_base/technology/architecture/threefold_filesystem.md new file mode 100644 index 0000000..45b12fe --- /dev/null +++ b/collections/manual/knowledge_base/technology/architecture/threefold_filesystem.md @@ -0,0 +1,34 @@ +![](img/planet_fs.jpg) + +# ThreeFold zstor filesystem (zstor) + +Part of the eVDC is a set of Storage Nodes, which can be used as a storage infrastructure for files in any format. + +## Mount Any Files in your Storage Infrastructure + +The QSFS is a mechanism to mount any file system (in any format) on the grid, in a quantum-secure way. + +This storage layer relies on relies on 3 primitives of the ThreeFold technology : + +- [0-db](https://github.com/threefoldtech/0-db) is the storage engine. +It is an always append database, which stores objects in an immutable format. It allows keeping the history out-of-the-box, good performance on disk, low overhead, easy data structure and easy backup (linear copy and immutable files). + +- [0-stor-v2](https://github.com/threefoldtech/0-stor_v2) is used to disperse the data into chunks by performing 'forward-looking error-correcting code' (FLECC) on it and send the fragments to safe locations. +It takes files in any format as input, encrypts this file with AES based on a user-defined key, then FLECC-encodes the file and spreads out the result +to multiple 0-DBs. The number of generated chunks is configurable to make it more or less robust against data loss through unavailable fragments. Even if some 0-DBs are unreachable, you can still retrieve the original data, and missing 0-DBs can even be rebuilt to have full consistency. It's an essential element of the operational backup. + +- [0-db-fs](https://github.com/threefoldtech/0-db-fs) is the filesystem driver which uses 0-DB as a primary storage engine. It manages the storage of directories and metadata in a dedicated namespace and file payloads in another dedicated namespace. + +Together they form a storage layer that is quantum secure: even the most powerful computer can't hack the system because no single node contains all of the information needed to reconstruct the data. + +![](img/quantum_safe_storage.jpg) + +This concept scales forever, and you can bring any file system on top of it: +- S3 storage +- any backup system +- an ftp-server +- IPFS and Hypercore distributed file sharing protocols +- ... + +![](img/quantum_safe_storage_scale.jpg) + diff --git a/collections/manual/knowledge_base/technology/concepts/buying_storing_tft.md b/collections/manual/knowledge_base/technology/concepts/buying_storing_tft.md new file mode 100644 index 0000000..8019cb7 --- /dev/null +++ b/collections/manual/knowledge_base/technology/concepts/buying_storing_tft.md @@ -0,0 +1,32 @@ +![](./img/tft.png) + +# Buying and Storing TFTs + +If you're looking to navigate the [TFT Ecosystem](https://library.threefold.me/info/manual/#/tokens/threefold__tft_ecosystem), this collection of tutorials and manuals is here to help. Learn how to purchase, trade, and securely store your TFTs with ease. + +For a comprehensive introduction to TFT, we recommend exploring the [TFT Home Section in the ThreeFold Library](https://library.threefold.me/info/threefold#/tokens/threefold__tokens_home). + +## Manuals on How to Buy TFT +Discover step-by-step instructions on buying and storing TFTs across different platforms. Our manuals cover: + +- [BSC - Pancake Swap](https://library.threefold.me/info/manual/#/tokens/threefold__tft_binance_defi) +- [BSC - 1inch.io](https://library.threefold.me/info/manual/#/tokens/threefold__tft_1inch) +- [GetTFT.com](https://gettft.com/gettft/#how-it-works) +- [Albedo Wallet](https://library.threefold.me/info/manual/#/tokens/threefold__albedo) +- [Solar Wallet](https://library.threefold.me/info/manual/#/tokens/threefold__solar_wallet) +- [Lobstr Wallet](https://library.threefold.me/info/manual/#/tokens/threefold__lobstr_wallet) +- [StellarTerm](https://library.threefold.me/info/manual/#/tokens/threefold__tft_stellarterm) +- [Interstellar](https://library.threefold.me/info/manual/#/tokens/threefold__tft_interstellar) +- [BTC-Alpha Exchange](https://library.threefold.me/info/manual/#/tokens/threefold__tft_btc_alpha) +- [StellarX Exchange](https://library.threefold.me/info/manual/#/tokens/threefold__tft_stellarx) +- [TF Live Desk (OTC)](https://library.threefold.me/info/manual/#/tokens/threefold__tft_otc) +- [Mazraa (Farmers)](https://library.threefold.me/info/manual/#/tokens/threefold__tft_mazraa) +- [Bettertoken (Farmers)](https://library.threefold.me/info/manual/#/tokens/threefold__tft_bettertoken) + +## Other Related Manuals on TFT +- [Store TFTs on Hardware Wallets](../threefold_token/storing_tft/hardware_wallet.md) +- [Storing TFTs on TF Connect App](../threefold_token/storing_tft/tf_connect_app.md) +- [TFT Bridges](../threefold_token/tft_bridges/tft_bridges.md) + - [TFChain-Stellar Bridge](../threefold_token/tft_bridges/tfchain_stellar_bridge.md) + - [BSC-Stellar Bridge](../threefold_token/tft_bridges/bsc_stellar_bridge.md) + - [Ethereum-Stellar Bridge](../threefold_token/tft_bridges/tft_ethereum/tft_ethereum.md) diff --git a/collections/manual/knowledge_base/technology/concepts/concepts_readme.md b/collections/manual/knowledge_base/technology/concepts/concepts_readme.md new file mode 100644 index 0000000..37270cb --- /dev/null +++ b/collections/manual/knowledge_base/technology/concepts/concepts_readme.md @@ -0,0 +1,19 @@ +# ThreeFold Grid Concepts + +On this section we will explore the fundamental principles and concepts behind the ThreeFold Grid. This comprehensive resource will take you on a journey through the core technologies that underpin the ThreeFold Grid, empowering you to understand and leverage the decentralized nature of this groundbreaking infrastructure. + +## Learn the Basics + +- [TFGrid Primitives](./grid_primitives.md) +- [TFGrid Component List](./grid3_components.md) +- [ThreeFold's Infrastructure as Code (IaC)](./grid3_iac.md) +- [Proof of Utilization](./proof_of_utilization.md) +- [Contract Grace Period](./contract_grace_period.md) +- [What's New on TFGrid v3.x](./grid3_whatsnew.md) +- [TFChain](./tfchain.md) +- [TFGrid by Design](./tfgrid_by_design.md) + +## Take an In-Depth Looks + +- [TF Technology](../technology_toc.md) +- [What's New on TFGrid v3.x](./grid3_whatsnew.md) \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/concepts/contract_grace_period.md b/collections/manual/knowledge_base/technology/concepts/contract_grace_period.md new file mode 100644 index 0000000..7dc818a --- /dev/null +++ b/collections/manual/knowledge_base/technology/concepts/contract_grace_period.md @@ -0,0 +1,89 @@ +

Grace Period: Ensuring Seamless Operations

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [What is the Grace Period?](#what-is-the-grace-period) +- [How does it work?](#how-does-it-work) +- [When does the Grace Period kick in?](#when-does-the-grace-period-kick-in) +- [How to resume your workloads:](#how-to-resume-your-workloads) +- [Grace Period Contract State: Easily Accessible Information](#grace-period-contract-state-easily-accessible-information) + - [Grid Weblets:](#grid-weblets) + - [ThreeFold Grid Proxy:](#threefold-grid-proxy) +- [TFChain GraphQL:](#tfchain-graphql) + - [Node Contract](#node-contract) + - [Rent Contract](#rent-contract) +- [PolkadotJS UI:](#polkadotjs-ui) + +*** + +## Introduction + +__The Grace Period__ serves as a crucial aspect of the ThreeFold ecosystem, providing a safety net for users when their funds run low. Let's explore the key details in a user-friendly manner: + +## What is the Grace Period? + +When a contract owner exhausts their wallet funds required for their deployment, the contract enters a Grace Period. During this time, the deployment becomes temporarily inaccessible to the user. However, once the wallet is replenished with TFT (ThreeFold Tokens), the contract resumes normal operation. + +It's important to note that if the Grace Period expires (typically after 2 weeks), the user's deployment and data will be deleted from the node. + +## How does it work? + +When a ``twin`` (a user account) depletes its funds, all linked contracts enter a Grace Period during the next billing cycle. +By default, the Grace Period lasts for 14 days. Throughout this period, users cannot utilize any deployments associated with the twin. + +Additionally, users cannot delete contracts during the Grace Period, whether they are related to nodes, names, or rent. +Workloads become usable again when the twin is funded with the required amount of TFT. + +If the twin is not funded during the Grace Period, the contracts will be automatically deleted after this period. + +## When does the Grace Period kick in? +The Grace Period commences when the twin balance falls below the minimum required for the respective deployments or workloads. + +## How to resume your workloads: +To regain access to workloads within the Grace Period, it is essential to fund your twin with sufficient TFT tokens. This action ensures the resumption of operations and allows you to continue your work seamlessly. + +The Grace Period feature acts as a safeguard, providing users with the opportunity to manage their funds effectively and maintain uninterrupted operations within the ThreeFold ecosystem. + +## Grace Period Contract State: Easily Accessible Information + +Checking the state of your contracts within the ``Grace Period`` is simple and convenient. Here's how you can do it: + +### Grid Weblets: +The Contracts tab on the Dashboard provides an easy way to monitor your contracts. Here, you can find comprehensive details about the desired ``contract``, including its ``State`` and ``Expiration date`` if the node is in the Grace Period. + +![](./img/manual__grace_period_weblets.png) + +### ThreeFold Grid Proxy: +Access the Grace Period contracts through the following endpoint: + +``https://gridproxy.grid.tf/contracts?state=GracePeriod&twin_id=`` + +![](./img/manual__grace_period_gridproxy.png) + +This allows you to retrieve information about contracts that are currently in the Grace Period. + +## TFChain GraphQL: +You can also check the Contract State using [__GraphQL queries__](https://graphql.grid.tf/graphql). Depending on the contract type, utilize the appropriate queries available for ``Node Contract`` and ``Rent Contract``. + +### Node Contract +![](./img/manual__grace_period_graphql_node.png) + +### Rent Contract +These queries provide insights into the status and details of the contracts. + +![](./img/manual__grace_period_graphql_rent.png) + +## PolkadotJS UI: +Another option is to check the Contract state using the [__PolkadotJS UI__](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftfchain.grid.tf#/chainstate). Simply navigate to ``chainstate`` -> ``SmartContractModule`` -> ``Contracts(ID_OF_CONTRACT)`` to view the relevant contract information. + +![](./img/manual__grace_period_polkadot_ui.png) + +With these user-friendly options at your disposal, you can effortlessly track and monitor the state of your contracts within the Grace Period. + + + + + + + diff --git a/collections/manual/knowledge_base/technology/concepts/grid3_components.md b/collections/manual/knowledge_base/technology/concepts/grid3_components.md new file mode 100644 index 0000000..c18fe19 --- /dev/null +++ b/collections/manual/knowledge_base/technology/concepts/grid3_components.md @@ -0,0 +1,351 @@ +

TFGrid Component List (Last Updated May 2023)

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [TFGrid Components (Alphabetical Orders)](#tfgrid-components-alphabetical-orders) + - [TF Admin Portal](#tf-admin-portal) + - [AtomicSwap](#atomicswap) + - [Builders](#builders) + - [TF Capacity Explorer](#tf-capacity-explorer) + - [Cloud Container](#cloud-container) + - [Cloud Console](#cloud-console) + - [TF Dashboard](#tf-dashboard) + - [Farm Management](#farm-management) + - [TF Farming Calculator](#tf-farming-calculator) + - [Farmerbot](#farmerbot) + - [Freeflow Twin Main App or Freeflow Connect (previously Uhuru)](#freeflow-twin-main-app-or-freeflow-connect-previously-uhuru) + - [GetTFT Shop](#gettft-shop) + - [TF Grid3 Client TS](#tf-grid3-client-ts) + - [TF Grid Proxy](#tf-grid-proxy) + - [TF Grid-SDK-Go](#tf-grid-sdk-go) + - [TF Grid-SDK-TS](#tf-grid-sdk-ts) + - [TF Grid Simulator](#tf-grid-simulator) + - [TF Grid Stats](#tf-grid-stats) + - [JS-SDK](#js-sdk) + - [JS-NG](#js-ng) + - [Itenv\_TFGridv2](#itenv_tfgridv2) + - [Libp2p-relay](#libp2p-relay) + - [Minting v3](#minting-v3) + - [Node-Pilot](#node-pilot) + - [Oauth-Proxy](#oauth-proxy) + - [TF Planetary Network Tool](#tf-planetary-network-tool) + - [TF Dashboard and Weblets](#tf-Dashboard-and-weblets) + - [QSFS](#qsfs) + - [Reliable Message Bus Relay (RMB-RS)](#reliable-message-bus-relay-rmb-rs) + - [RMB-SDK-Go](#rmb-sdk-go) + - [Terraform Provider](#terraform-provider) + - [TCP-Router](#tcp-router) + - [TFChain](#tfchain) + - [TFChain Activation Service](#tfchain-activation-service) + - [TFChain Explorer](#tfchain-explorer) + - [TFChain Block Explorer](#tfchain-block-explorer) + - [TFChain-GraphQL](#tfchain-graphql) + - [TFChain TFT Bridge](#tfchain-tft-bridge) + - [3Bot or Threebot](#3bot-or-threebot) + - [Threebot-deployer or 3Bot Deployer](#threebot-deployer-or-3bot-deployer) + - [ThreeFold Wallet](#threefold-wallet) + - [ThreeFold Connect App](#threefold-connect-app) + - [Zinit](#zinit) + - [0-OS or ZOS](#0-os-or-zos) + - [0-bootstrap](#0-bootstrap) + - [0-Bus or ZBus](#0-bus-or-zbus) + - [0-DB](#0-db) + - [0-DB-FS](#0-db-fs) + - [0-Flist](#0-flist) + - [0-Hub](#0-hub) + - [0-InitramFS](#0-initramfs) + - [0-stor\_v2](#0-stor_v2) + +*** + +## Introduction + +This list serves as a comprehensive glossary that provides an overview of the various components and tools within the ThreeFold Grid ecosystem. It serves as a valuable reference for developers, stakeholders, and enthusiasts who want to gain a deeper understanding of the building blocks that power the ThreeFold Grid. + +The glossary covers a wide range of components, including infrastructure elements, software tools, protocols, and services that are integral to the functioning and expansion of the grid. From blockchain-based technologies like TFChain and TFGrid Explorer to networking components like RMB-RS and Zinit, the TFGrid Component List offers concise explanations of each component's purpose and functionality. + +*** + +## TFGrid Components (Alphabetical Orders) + +### TF Admin Portal +A tool within TF Dashboard provided by ThreeFold for administrators to manage and monitor various aspects of the ThreeFold Grid ecosystem. It serves as a central hub where administrators can access and control different components of the grid, including nodes, capacity, workloads, and user management. + +The TF Admin Portal provides a comprehensive set of tools and features to configure, deploy, and monitor resources within the grid, ensuring efficient management and utilization of the decentralized infrastructure. Through the portal, administrators can track the performance and health of the grid, allocate resources, manage user permissions, and gain insights into the grid's utilization and usage patterns. + +> [Component Repository on Github (Archived)](https://github.com/threefoldtech/tfgrid_dashboard) + +### AtomicSwap +A component within the ThreeFold ecosystem that refers to Atomic Swaps, a cryptographic technology that enables the peer-to-peer exchange of cryptocurrencies or digital assets between different blockchain networks without the need for intermediaries. Atomic swaps use smart contracts to facilitate trustless and secure transactions, ensuring that both parties involved in the swap fulfill their obligations. By leveraging atomic swaps, users can seamlessly exchange digital assets across different blockchains, fostering interoperability and eliminating the reliance on centralized exchanges. + +> [Component Repository on Github](https://github.com/threefoldtech/atomicswap) + +### Builders +A Docker-based component within the ThreeFold Grid ecosystem. This particular aspect of Builders involves leveraging Docker containers to package and deploy applications and services on the ThreeFold Grid. Docker is an open-source platform that enables developers to build, package, and distribute applications as lightweight, portable containers. + +By using Builders as a Docker-based component, developers can easily containerize their applications, ensuring consistency and compatibility across different environments. This approach simplifies the deployment process, allowing developers to quickly deploy their applications on the ThreeFold Grid with minimal configuration and setup. The Builders component takes care of managing the underlying infrastructure and orchestrating the deployment of Docker containers, making it an efficient and convenient way to leverage the capabilities of the ThreeFold Grid for hosting and running applications. + +> [Component Repository on Github](https://github.com/threefoldtech/builders) + +### TF Capacity Explorer +A tool within the TF Dashboard provided by ThreeFold that allows users to explore and analyze the available capacity within the ThreeFold Grid. It provides insights into the distributed computing resources, including storage, processing power, and network bandwidth, that are available for utilization within the ThreeFold network. + +The TF Capacity Explorer enables users to discover and assess the capacity of different nodes and data centers within the ThreeFold Grid, helping them make informed decisions when deploying their workloads or applications. + +> [Component Repository on Github (Archived)](https://github.com/threefoldtech/tfgrid_dashboard) + +### Cloud Container +A containerization technology provided by ThreeFold that enables the deployment and management of applications and services in a cloud environment. It offers a lightweight and isolated execution environment for running applications, ensuring scalability, portability, and efficient resource utilization. + +With ThreeFold's Cloud Container, developers and organizations can package their applications along with their dependencies and configurations, making it easier to deploy and manage them in a cloud-native manner. The Cloud Container technology provides features such as automated scaling, load balancing, and resource allocation, allowing for efficient utilization of computing resources and optimal performance of applications. + +> [Component Repository on Github](https://github.com/threefoldtech/cloud-container) + +### Cloud Console +A web-based graphical user interface (GUI) provided by ThreeFold that allows users to manage and control their cloud infrastructure and resources. It serves as a central hub for managing various aspects of the cloud environment, including virtual machines, storage, networking, and other services. + +Through the cloud console, users can perform a wide range of tasks, such as provisioning and configuring virtual machines, managing storage volumes, creating and managing networks, monitoring resource usage, and accessing logs and metrics. It provides an intuitive and user-friendly interface that simplifies the management and administration of the cloud infrastructure. + +> [Component Repository on Github](https://github.com/threefoldtech/cloud-console) + +### TF Dashboard +A Graphical user interface (GUI) provided by ThreeFold for users to access and manage their ThreeFold Grid resources. It serves as a centralized control panel where users can monitor and control various aspects of their infrastructure, including their deployed workloads, storage capacity, network connectivity, and overall system health. The TF Dashboard provides real-time statistics, logs, and metrics to help users gain insights into the performance and utilization of their resources. It also offers tools for managing user accounts, configuring security settings, and accessing support and documentation. + +> [Component Repository on Github (Archived)](https://github.com/threefoldtech/tfgrid_dashboard) + +### Farm Management +A set of tools, processes, and functionalities provided by ThreeFold to manage and operate farms within the ThreeFold Grid. Farms are the physical locations where ThreeFold Farmers deploy and maintain the infrastructure that powers the decentralized network. TF Farm Management offers a comprehensive suite of features that enable farmers to efficiently manage their resources, monitor the health and performance of their infrastructure, and handle various administrative tasks. This includes functionalities such as capacity allocation, monitoring and reporting tools, farmer reputation management, billing and invoicing systems, and overall farm administration. + +Note: This is a feature that involves multiple component repositories. It is listed here to give a complete picture of ThreeFold's component list. + +### TF Farming Calculator +A tool provided by ThreeFold that allows users to estimate and calculate potential earnings from farming on the ThreeFold Grid. Farming refers to the process of providing computing resources, such as storage and processing power, to the ThreeFold Grid and earning tokens in return. The tf-farming-calculator takes into account various factors, including the amount of resources contributed, the duration of farming, and the current market conditions, to provide users with an estimate of their potential earnings in terms of ThreeFold Tokens (TFT). + +> [Component Repository on Github](https://github.com/threefoldtech/tf-farming-calculator) + +### Farmerbot +A software tool developed by ThreeFold that serves as a management and monitoring system for ThreeFold farmers. It is designed to automate various tasks related to operating and managing the ThreeFold Grid infrastructure. The TF Farmerbot helps farmers to efficiently manage their resources, including storage capacity, compute power, and network bandwidth. It provides real-time monitoring of the farmer's nodes, ensuring optimal performance and availability. + +> [Component Repository on Github](https://github.com/threefoldtech/farmerbot) + +### Freeflow Twin Main App or Freeflow Connect (previously Uhuru) +FFTwin is a component of the ThreeFold ecosystem that serves as the main interface for users to access and utilize the features of Freeflow Twin. Freeflow Twin is a decentralized communication and collaboration platform developed by ThreeFold. + +The Twin Main App allows users to securely communicate, share files, and collaborate with others in a decentralized manner, ensuring privacy and data sovereignty. Users can create chat channels, join communities, and engage in real-time messaging with end-to-end encryption. The app also supports file sharing, voice and video calls, and other collaborative features. With the Freeflow Twin Main App, users can experience a decentralized and secure communication platform that empowers them to connect and collaborate with others while maintaining control over their data. + +> [Component Repository on Github](https://github.com/threefoldtech/freeflow_twin_main_app) + +### GetTFT Shop +An official, online platform provided by ThreeFold where users can purchase ThreeFold Tokens (TFT) directly. It serves as a dedicated marketplace for individuals and organizations to buy TFT tokens using various payment methods. The GetTFT Shop ensures a seamless and user-friendly experience for acquiring TFT, which is the native cryptocurrency of the ThreeFold ecosystem. + +Note: This repository is private. You can visit the GetTFT Shop [here](https://gettft.com/gettft/shop/). + +### TF Grid3 Client TS +A software component that serves as a client library for interacting with the Grid3 platform. It provides developers with a set of tools, functions, and interfaces to communicate with the ThreeFold Grid and utilize its resources. The Grid3 Client TS allows users to perform various operations, such as creating and managing virtual machines, deploying applications, accessing storage services, and interacting with the decentralized network. It acts as a bridge between developers and the ThreeFold Grid, enabling them to leverage the platform's decentralized infrastructure and harness its capabilities programmatically. + +### TF Grid Proxy +A fundamental component which serves as a gateway that allows external applications and users to interact with the grid. Acting as a bridge between the decentralized infrastructure of the ThreeFold Grid and external networks, GridProxy facilitates seamless communication and integration. It provides a standardized interface for accessing and managing resources within the grid, enabling developers, businesses, and users to leverage the power and scalability of the ThreeFold Grid in their applications and workflows. By abstracting the complexities of the grid infrastructure, GridProxy simplifies the process of interacting with the grid, making it more accessible and user-friendly. + +> [Component Repository on Github (Archived)](https://github.com/threefoldtech/tfgridclient_proxy) + +### TF Grid-SDK-Go +ThreeFold Grid Software Development Kit (SDK) for the Go programming language. It is a collection of tools, libraries, and APIs provided by ThreeFold to facilitate the development and integration of applications with the ThreeFold Grid. The TFGrid-SDK-Go allows developers to interact with the ThreeFold Grid infrastructure, such as provisioning and managing compute resources, accessing storage, and interacting with blockchain-based services. It provides a standardized and efficient way to leverage the features and capabilities of the ThreeFold Grid within Go applications. + +> [Component Repository on Github](https://github.com/threefoldtech/tfgrid-sdk-go) + +### TF Grid-SDK-TS +ThreeFold Grid Software Development Kit (SDK) for TypeScript. It is a set of tools, libraries, and APIs provided by ThreeFold to simplify the development and integration of applications with the ThreeFold Grid. The TFGrid-SDK-TS enables developers to interact with the ThreeFold Grid infrastructure, such as provisioning and managing compute resources, accessing storage, and interacting with the blockchain-based services. It provides a standardized and convenient way to leverage the features and capabilities of the ThreeFold Grid within TypeScript applications. + +> [Component Repository on Github](https://github.com/threefoldtech/tfgrid-sdk-ts) + +### TF Grid Simulator +A component or tool within the ThreeFold ecosystem that allows for the simulation of the ThreeFold Grid infrastructure. It provides a simulated environment where users can test and evaluate the behavior and performance of the grid without the need for actual hardware or network resources. The tfgrid_simulator mimics the functionalities of the real ThreeFold Grid, enabling users to experiment with various configurations, scenarios, and workloads. This simulation tool is valuable for developers, administrators, and users who want to understand and optimize the behavior of the ThreeFold Grid, test applications, and evaluate the impact of different factors on grid performance. It helps in fine-tuning the grid setup and ensuring optimal resource allocation and utilization. + +> [Component Repository on Github](https://github.com/threefoldtech/tfgrid_simulator) + +### TF Grid Stats +A component or tool within the ThreeFold ecosystem that is designed to gather and provide statistics and metrics related to the ThreeFold Grid. It collects data on various aspects of the grid, such as the number of active nodes, their capacities, network performance, usage patterns, and other relevant information. tfgrid_stats allows users and administrators to monitor the health and performance of the grid, track its growth and utilization, and make informed decisions based on the collected data. + +> [Component Repository on Github (Archived)](https://github.com/threefoldtech/tfgrid_stats) + +### JS-SDK +A software development kit (SDK) provided by ThreeFold that enables developers to interact with and utilize the ThreeFold Grid infrastructure using JavaScript. It provides a set of libraries, tools, and APIs that simplify the integration and interaction with various ThreeFold services and functionalities. + +With the JS-SDK, developers can programmatically manage and deploy resources, interact with the ThreeFold Grid's decentralized storage, perform transactions on the ThreeFold Chain blockchain, and access other platform features. The JS-SDK empowers developers to build decentralized applications (dApps), create custom automation scripts, and leverage the capabilities of the ThreeFold Grid using the familiar JavaScript programming language. + +> [Component Repository on Github](https://github.com/threefoldtech/js-sdk) + +### JS-NG +JavaScript Next-Generation (js-ng) framework, which is a modern and advanced framework for building web applications using JavaScript. It provides developers with a set of tools, libraries, and utilities to streamline the development process and create high-performance, scalable, and maintainable web applications. The js-ng framework incorporates the latest features and best practices of JavaScript, allowing developers to write clean and efficient code. It offers a modular architecture, allowing for easy integration of third-party libraries and extensions. + +With js-ng, developers can build interactive user interfaces, handle data management, perform client-server communication, and implement various functionalities required for robust web applications. The framework promotes code reusability, testability, and code organization, making it an ideal choice for developing modern web applications. + +> [Component Repository on Github](https://github.com/threefoldtech/js-ng) + +### Itenv_TFGridv2 +The development and testing environment for the TFGrid v2, which is the second version of the ThreeFold Grid. It is a comprehensive set of tools, configurations, and resources that enable developers to create, test, and deploy applications on the ThreeFold Grid infrastructure. The itenv_tfgridv2 environment provides developers with the necessary tools and utilities to set up a local development environment that closely resembles the production environment of the ThreeFold Grid. It includes various components such as virtual machines, containers, networking configurations, and monitoring tools, all specifically tailored for the development and testing of applications on the ThreeFold Grid. + +Note: This repository is private. + +### Libp2p-relay +A component within the ThreeFold ecosystem that refers to the libp2p relay functionality. libp2p is a modular networking stack that allows peer-to-peer communication and data transfer between nodes in a decentralized network. The libp2p-relay component specifically focuses on providing relay services, which enable nodes that are behind firewalls or NATs (Network Address Translators) to establish direct connections with other nodes in the network. This relaying functionality helps overcome network obstacles and facilitates seamless communication between nodes, ensuring that the ThreeFold Grid operates efficiently and nodes can interact with each other effectively. + +> [Component Repository on Github](https://github.com/threefoldtech/libp2p-relay) + +### Minting v3 +The third version of the ThreeFold Token (TFT) minting process. It is a protocol implemented by ThreeFold to create new TFT tokens and manage the token supply. TF Minting v3 incorporates various features and improvements over its previous versions to enhance the functionality and security of token creation. It involves the issuance of new TFT tokens according to predefined rules and algorithms, such as token distribution, inflation rates, and token unlocking schedules. TF Minting v3 ensures a fair and transparent distribution of tokens while maintaining the integrity and stability of the ThreeFold ecosystem. + +> [Component Repository on Github](https://github.com/threefoldtech/minting_v3) + +### Node-Pilot +A software package provided by ThreeFold for running and managing individual nodes on the ThreeFold Grid. It is designed to enable users to set up and operate their own decentralized infrastructure nodes. TFNode-Pilot provides the necessary tools and functionality to deploy, configure, and monitor nodes, allowing users to contribute their computing resources to the ThreeFold Grid and participate in the decentralized ecosystem. + +With TFNode-Pilot, users can easily transform their hardware into powerful nodes that contribute to the storage, compute, and networking capabilities of the ThreeFold Grid. The software package includes features such as node management, resource monitoring, security measures, and integration with other components of the ThreeFold ecosystem. + +> [Component Repository on Github](https://github.com/threefoldtech/node-pilot-light) + +### Oauth-Proxy +A component specifically developed by ThreeFold to enhance security and facilitate the authentication process for accessing ThreeFold services and resources. It acts as a middleware between users, applications, and the ThreeFold infrastructure, implementing the OAuth protocol. By using the oauth-proxy, applications can securely obtain authorization to access protected resources on the ThreeFold network without directly handling user credentials. The oauth-proxy handles the authentication flow, obtaining consent from users, and issuing access tokens to authorized applications. This helps ensure that access to ThreeFold's services and resources is controlled and secure, protecting user data and privacy. + +> [Component Repository on Github](https://github.com/threefoldtech/oauth-proxy) + +### TF Planetary Network Tool +A software application or platform that provides users with the necessary tools and functionalities to interact with and utilize the ThreeFold Planetary Network. The ThreeFold Planetary Network is a decentralized and distributed infrastructure network that spans across the globe. It is built on the principles of autonomy, neutrality, and sustainability. The network consists of a vast number of interconnected computing resources, including servers, storage devices, and networking equipment, which are owned and operated by individuals and organizations called farmers. + +> [Component Repository on Github](https://github.com/threefoldtech/planetary_network) + +### TF Dashboard and Weblets +TF Dashboard and TF Weblets are two interconnected components of the ThreeFold ecosystem. TF Dashboard is a user-friendly web-based interface that serves as a sandbox environment for developers, allowing them to experiment, test, and deploy their applications on the ThreeFold Grid. It provides an intuitive interface where users can write, compile, and execute code, explore various programming languages and frameworks, and interact with the ThreeFold infrastructure. + +TF Weblets, on the other hand, are modular, lightweight applications that run on the ThreeFold Grid. They are designed to be decentralized, secure, and easily deployable, enabling users to create and deploy their own web-based services and applications on the ThreeFold network. + +> [Component Repository on Github (Archived)](https://github.com/threefoldtech/grid_weblets) + +### QSFS +It is ThreeFold's innovative storage solution designed to address the security challenges posed by quantum computing. QSFS employs advanced cryptographic techniques that are resistant to attacks from quantum computers, ensuring the confidentiality and integrity of stored data. By utilizing quantum-resistant algorithms, QSFS offers long-term data protection, even in the face of quantum threats. This technology is crucial in a future where quantum computers could potentially break traditional encryption methods. With ThreeFold's QSFS, users can have peace of mind knowing that their data is safeguarded against emerging quantum computing risks, reinforcing the security and resilience of the ThreeFold ecosystem. + +> [Component Repository on Github](https://github.com/threefoldtech/quantum-storage) + +### Reliable Message Bus Relay (RMB-RS) +A component or system that facilitates the reliable and secure transfer of messages between different entities or systems within the ThreeFold ecosystem. It acts as a relay or intermediary, ensuring that messages are delivered accurately and efficiently, even in the presence of network disruptions or failures. The RMB-RS employs robust protocols and mechanisms to guarantee message reliability, integrity, and confidentiality. It plays a crucial role in enabling seamless communication and data exchange between various components, applications, or nodes within the ThreeFold network, enhancing the overall reliability and performance of the system. + +> [Component Repository on Github](https://github.com/threefoldtech/rmb-rs) + +### RMB-SDK-Go +Software development kit (SDK) for interacting with the Reliable Message Bus (RMB) in the Go programming language. The Reliable Message Bus is a messaging system used within the ThreeFold ecosystem to enable reliable and secure communication between different components and services. The rmb-sdk-go provides a set of tools, libraries, and APIs that developers can use to integrate their Go applications with the RMB infrastructure. It simplifies the process of sending and receiving messages, managing subscriptions, and handling the reliability and security aspects of messaging within the ThreeFold environment. + +> [Component Repository on Github](https://github.com/threefoldtech/rmb-sdk-go) + +### Terraform Provider +A software tool that integrates with the popular infrastructure-as-code platform, Terraform. It enables users to provision and manage resources on the ThreeFold Grid using Terraform's declarative configuration language. The provider acts as a bridge between Terraform and the ThreeFold Grid, allowing users to define and deploy infrastructure components such as virtual machines, storage, and networking resources with ease. This integration simplifies the process of building and managing infrastructure on the ThreeFold Grid, offering users the familiar and powerful capabilities of Terraform while leveraging the decentralized and scalable nature of the ThreeFold technology. + +> [Component Repository on Github](https://github.com/threefoldtech/terraform-provider-grid) + +### TCP-Router +A component of the ThreeFold technology stack that acts as a TCP (Transmission Control Protocol) router and load balancer. It serves as a network gateway for incoming TCP connections, routing them to the appropriate destinations based on predefined rules and configurations. The TCP-Router component is responsible for distributing incoming network traffic across multiple backend services or nodes, ensuring efficient load balancing and high availability. It helps optimize network performance by evenly distributing the workload and preventing any single node from being overwhelmed. By managing and balancing TCP connections, tcprouter contributes to the overall scalability, reliability, and performance of applications running on the ThreeFold Grid. + +> [Component Repository on Github](https://github.com/threefoldtech/tcprouter) + +### TFChain +A blockchain developed by the ThreeFold Foundation. It serves as the underlying technology for managing the ThreeFold Grid. TFChain is built on Parity Substrate. It is responsible for storing information related to the ThreeFold Grid, including identity information of entities, 3Node and farmer details, reputation information, digital twin registry, and more. TFChain also acts as the backend for the TFChain database and supports smart contracts for provisioning workloads on top of the ThreeFold Grid. + +> [Component Repository on Github](https://github.com/threefoldtech/tfchain) + +### TFChain Activation Service +A component within the ThreeFold ecosystem that facilitates the activation of TFChain accounts. TFChain is a blockchain developed by ThreeFold that serves as the backbone of the ThreeFold Grid. The Activation Service provides the necessary infrastructure and processes to activate and onboard users onto the TFChain network. It ensures that users can securely create and manage their TFChain accounts, including generating cryptographic keys, validating user identities, and enabling the activation of TFChain functionalities. + +> [Component Repository on Github](https://github.com/threefoldtech/tfchain_activation_service) + +### TFChain Explorer +A web-based tool that allows users to explore and interact with the TFChain blockchain. It provides a graphical interface where users can view transaction history, account balances, smart contracts, and other blockchain-related information. The TFChain Explorer offers transparency and visibility into the TFChain ecosystem, enabling users to track transactions, verify balances, and monitor the overall health of the network. + +> [Component Repository on Github](https://github.com/threefoldtech/tfchain_explorer) + +### TFChain Block Explorer +A web-based tool provided by ThreeFold that allows users to explore and interact with the TFChain blockchain. It provides a user-friendly interface to browse through blocks, transactions, and addresses on the TFChain network. Users can view detailed information about individual blocks and transactions, including timestamps, transaction amounts, and involved addresses. The block explorer also enables searching for specific transactions or addresses, making it easier to track and verify transactions on the TFChain blockchain. With the TFChain Block Explorer, users can gain transparency and visibility into the TFChain network, facilitating better understanding and analysis of blockchain activities. + +> [Component Repository on Github](https://github.com/threefoldtech/tfchain_block_explorer) + +### TFChain-GraphQL +The integration of GraphQL, a query language for APIs, with TFChain, the blockchain technology used by ThreeFold. It enables developers and users to interact with the TFChain blockchain using GraphQL queries and mutations. GraphQL provides a flexible and efficient way to retrieve and manipulate data from the TFChain blockchain, allowing for customized and precise data retrieval. With TFChain-GraphQL, users can easily query blockchain information, such as transaction details, account balances, or smart contract data, and perform mutations, such as submitting transactions or updating contract states. + +> [Component Repository on Github](https://github.com/threefoldtech/tfchain_graphql) + +### TFChain TFT Bridge +The bridge mechanism that enables the conversion of TFT tokens between different blockchain networks, specifically between the ThreeFold Chain (TFChain) and other blockchain networks such as Ethereum or Stellar. The TFChain TFT Bridge allows TFT tokens to be transferred seamlessly and securely across different blockchain platforms, maintaining their value and integrity. This bridge plays a crucial role in interoperability, enabling users to leverage TFT tokens on multiple blockchain networks, unlocking new possibilities for decentralized applications and token ecosystems. + +> [Component Repository on Github](https://github.com/threefoldtech/tfchain_tft_bridge) + +### 3Bot or Threebot +3Bot is a component of the ThreeFold ecosystem that refers to a personal digital assistant. It is a software entity that acts as a virtual representation of an individual or organization, providing various services and performing tasks on their behalf. The 3Bot is designed to be decentralized and secure, running on the ThreeFold Grid infrastructure. It can handle functions such as managing personal data, interacting with other digital entities, executing transactions, and offering a range of services through its customizable capabilities. The 3Bot component enables individuals and organizations to have their own private and secure digital assistant, tailored to their specific needs and preferences. + +Note: This is a feature that involves multiple component repositories. It is listed here to give a complete picture of ThreeFold's component list. + +### Threebot-deployer or 3Bot Deployer +A tool provided by ThreeFold that facilitates the deployment of ThreeFold's ThreeBot applications. A ThreeBot is a personal digital assistant that can perform various tasks and provide services to users. The threebot-deployer simplifies the process of setting up and configuring a ThreeBot instance by automating many of the steps involved. It allows users to specify the desired configuration and parameters for their ThreeBot, such as the domain name, authentication settings, and available services. The threebot-deployer then handles the deployment process, ensuring that the ThreeBot is properly installed and configured according to the specified parameters. This tool streamlines the deployment process and enables users to quickly and easily set up their own personalized ThreeBot instances. + +> [Component Repository on Github](https://github.com/threefoldtech/threebot-deployer) + +### ThreeFold Wallet +A digital wallet designed to securely store and manage ThreeFold Tokens (TFT) and other digital assets inside the ThreeFold Connect App (TFConnect App). It provides users with a convenient and user-friendly interface to interact with their tokens, perform transactions, and track their token balances. The ThreeFold Wallet offers features such as wallet creation, private key management, token transfers, and transaction history. It ensures the security of users' assets through encryption and various authentication methods. The wallet serves as a gateway for users to access and engage with the ThreeFold ecosystem, enabling them to participate in token transactions, staking, and other activities. + +> [Component Repository on Github](https://github.com/threefoldtech/threefold_connect_wallet) + +### ThreeFold Connect App +Mobile application developed by ThreeFold that serves as a gateway to the ThreeFold Grid. It provides users with a secure and user-friendly wallet interface to access and manage their digital assets, such as ThreeFold Tokens (TFT), and interact with various services and applications within the ThreeFold ecosystem. The ThreeFold Connect App also provides an authenticator feature that ensures secure access and authentication to various services within the ThreeFold ecosystem. As an authenticator, it verifies the identity of users and provides them with secure access to their accounts and associated resources. + +> [Component Repository on Github](https://github.com/threefoldtech/threefold_connect) + +### Zinit +A lightweight, fast, and versatile package manager designed to simplify the installation and management of software components within the ThreeFold ecosystem. It provides a user-friendly interface for developers and system administrators to easily install, update, and remove software packages on their ThreeFold nodes. Zinit supports various package sources, including remote repositories, local files, and even directly from Git repositories, allowing users to easily fetch and install the desired software components. It also supports dependency resolution, ensuring that all required dependencies are installed correctly. + +> [Component Repository on Github](https://github.com/threefoldtech/zinit) + +### 0-OS or ZOS +ZOS (Zero Operating System) is a lightweight and secure operating system designed specifically for running workloads on the ThreeFold Grid. ZOS provides a minimalistic and containerized environment for applications, enabling efficient resource allocation and management. With ZOS, developers can deploy their applications easily and take advantage of the scalability and resilience offered by the ThreeFold Grid. + +> [Component Repository on Github](https://github.com/threefoldtech/zos) + +### 0-bootstrap +Also known as Zero-Bootstrap, is a component of the ThreeFold Grid infrastructure. It serves as the initial bootstrap mechanism for setting up and initializing the ThreeFold Grid network. 0-bootstrap provides the necessary tools and processes to deploy the core components of the ThreeFold Grid, including the Zero-OS operating system and other essential services. It helps in establishing the foundational layer of the grid network, enabling the deployment and management of compute resources, storage, and other decentralized services. + +> [Component Repository on Github](https://github.com/threefoldtech/0-bootstrap) + +### 0-Bus or ZBus +A component that facilitates interprocess communication (IPC) within the ThreeFold technology stack. It provides a lightweight and efficient messaging system that allows different software components or services to communicate with each other in a distributed environment. zbus implements a message bus architecture, where components can publish messages to topics and subscribe to receive messages from those topics. It enables decoupled and asynchronous communication between various parts of the system, promoting modularity and scalability. zbus plays a crucial role in enabling communication and coordination between different components of the ThreeFold infrastructure, such as the ThreeBot, ThreeFold Chain, and storage services, allowing them to work together seamlessly to deliver the desired functionality. + +> [Component Repository on Github](https://github.com/threefoldtech/zbus) + +### 0-DB +a distributed key-value database system. It is designed to provide efficient and secure storage for data in a decentralized environment. +In 0-db, data is stored as key-value pairs, allowing for fast and efficient retrieval of information. It provides high-performance read and write operations, making it suitable for applications that require quick access to data. The distributed nature of 0-db ensures that data is replicated and stored across multiple nodes, enhancing data availability and durability. + +> [Component Repository on Github](https://github.com/threefoldtech/0-db) + +### 0-DB-FS +A storage system that allows for efficient and secure storage of files on the ThreeFold Grid. 0-db-fs is built on top of 0-db, which is a key-value store optimized for high performance and scalability. It provides a decentralized and distributed approach to file storage, ensuring data redundancy and availability. With 0-db-fs, users can securely store and retrieve files, benefiting from the decentralized nature of the ThreeFold Grid, which enhances data privacy, security, and resilience. + +> [Component Repository on Github](https://github.com/threefoldtech/0-db-fs) + +### 0-Flist +Also known as Zero-Flist, is a file system image format used in the ThreeFold Grid infrastructure. It represents a compressed and immutable snapshot of a specific file system configuration or application stack. 0-Flist files are used to package and distribute software, data, and configurations within the ThreeFold Grid. They contain all the necessary files and dependencies required to run an application or service. 0-Flist files are lightweight, portable, and easy to distribute, making them ideal for deploying applications across the decentralized network. + +> [Component Repository on Github](https://github.com/threefoldtech/0-flist) + +### 0-Hub +Also known as Zero-Hub, is a key component of the ThreeFold Grid infrastructure. It serves as the central hub or entry point for users and applications to connect with the decentralized network. 0-hub provides a user-friendly interface and API endpoints that allow users to interact with the ThreeFold Grid and access its resources. It acts as a bridge between the users and the underlying infrastructure, enabling them to deploy and manage their workloads, access decentralized storage, and utilize other services provided by the ThreeFold Grid. 0-hub also plays a crucial role in facilitating peer-to-peer communication and collaboration within the network, connecting users and allowing them to share and exchange resources securely. + +> [Component Repository on Github](https://github.com/threefoldtech/0-hub) + +### 0-InitramFS +Initial RAM file system used in the ThreeFold ecosystem. An initramfs is a temporary file system that is loaded into memory during the boot process before the root file system is mounted. It contains essential files and utilities needed to initialize the system and prepare it for the boot process. In the context of ThreeFold, the 0-initramfs is a customized initial RAM file system specifically designed for the ThreeFold Grid infrastructure. It includes necessary components and configurations to ensure a smooth and efficient boot process for ThreeFold nodes. By utilizing the 0-initramfs, the ThreeFold ecosystem can optimize the boot sequence and ensure the proper initialization of the system components before transitioning to the main operating system. + +> [Component Repository on Github](https://github.com/threefoldtech/0-initramfs) + +### 0-stor_v2 +A component of the ThreeFold technology stack that refers to the second version of the 0-stor storage system. 0-stor_v2 is a distributed and decentralized storage solution that enables data storage and retrieval on the ThreeFold Grid. It utilizes erasure coding and sharding techniques to distribute data across multiple storage nodes, ensuring high availability and data redundancy. The 0-stor_v2 component provides an efficient and secure way to store data on the ThreeFold Grid, with features such as data encryption, replication, and integrity checks. It is designed to be scalable and fault-tolerant, allowing for the seamless expansion of storage capacity as needed. Developers and users can leverage 0-stor_v2 to store and manage their data in a decentralized and resilient manner, ensuring data privacy and accessibility on the ThreeFold Grid. + +> [Component Repository on Github](https://github.com/threefoldtech/0-stor_v2) + + diff --git a/collections/manual/knowledge_base/technology/concepts/grid3_iac.md b/collections/manual/knowledge_base/technology/concepts/grid3_iac.md new file mode 100644 index 0000000..321d059 --- /dev/null +++ b/collections/manual/knowledge_base/technology/concepts/grid3_iac.md @@ -0,0 +1,47 @@ +

Infrastructure as Code (IaC)

+ +

Table of Contents

+ +- [What is IaC?](#what-is-iac) +- [Benefits of IaC](#benefits-of-iac) +- [ThreeFold's IaC](#threefolds-iac) +- [How it Works](#how-it-works) +- [Dive Deeper](#dive-deeper) +- [Manuals](#manuals) + +*** + +## What is IaC? +Infrastructure as Code (IaC) is a concept that revolutionizes the way infrastructure is provisioned and managed in the world of IT. It involves the use of declarative scripts or configuration files to define and automate the deployment, configuration, and management of infrastructure resources. With IaC, organizations can treat infrastructure provisioning as code, applying software development principles and practices to infrastructure management. This approach brings numerous benefits, such as increased efficiency, consistency, scalability, and reproducibility. + +## Benefits of IaC +Using IaC in the ThreeFold ecosystem brings several benefits. + +- __Streamlined operations and increased efficiency__: One of the key benefits of Infrastructure as Code (IaC) is the significant improvement in speed and consistency. By eliminating manual processes and automating infrastructure provisioning through code, tasks can be completed faster and with greater accuracy. There is no longer a need to wait for IT administrators to manually perform tasks or worry about their availability. This allows for quicker iterations and faster deployments, enabling organizations to be more agile in their development processes. Consistency is also enhanced as infrastructure configurations are defined in code, ensuring that the same setup is replicated across environments and reducing the risk of configuration drift. + +- __Empowered software development lifecycle__: IaC places more control in the hands of developers, enabling them to focus on application development rather than spending time on infrastructure management. With reliable and consistent infrastructure provisioning, developers can leverage reusable code scripts to deploy and manage resources efficiently. This streamlines the software development lifecycle, enabling faster development cycles and reducing the time and effort spent on manual infrastructure tasks. Developers can quickly spin up development and testing environments, experiment with different configurations, and roll out changes with ease. + +- __Reduced management overhead__: IaC eliminates the need for multiple roles dedicated to managing different layers of hardware and middleware in traditional data center environments. With IaC, the management overhead is significantly reduced as infrastructure is defined and managed through code. This frees up administrators to focus on exploring and implementing new technologies and innovations, rather than being tied down by routine maintenance tasks. It simplifies the operational structure and allows for a more efficient allocation of resources, ultimately leading to cost savings and increased productivity. + +Overall, IaC brings faster speed, improved consistency, efficient software development, and reduced management overhead. It empowers organizations to accelerate their deployment processes, enhance collaboration between development and operations teams, and optimize resource utilization. By adopting IaC practices, organizations can achieve greater agility, scalability, and cost efficiency in their infrastructure management, enabling them to stay competitive in today's fast-paced digital landscape. + +## ThreeFold's IaC +At ThreeFold, IaC plays a crucial role in the deployment and management of the ThreeFold Grid infrastructure. ThreeFold leverages popular IaC tools and methodologies to enable users to define and manage their infrastructure resources in a programmatic and scalable way. The IaC mechanism in ThreeFold involves components like __Terraform__, __TypeScript Client__, __GraphQL Client__, and __Grid Proxy REST API__. + +__Terraform__ acts as the foundation for infrastructure provisioning, allowing users to define their desired infrastructure state using declarative configuration files. __The TypeScript and GraphQL clients__ provide interfaces for interacting with the ThreeFold Grid and managing resources programmatically, while the__ Grid Proxy REST API__ enables integration with external systems and applications. + +## How it Works +Firstly, __Terraform__ acts as the primary infrastructure provisioning tool. It provides a declarative language for defining infrastructure resources and their configurations, enabling users to express their infrastructure requirements in a human-readable and version-controlled manner. + +__TypeScript Client and GraphQL Client__ serve as interfaces for interacting with the ThreeFold Grid, allowing users to create, update, and manage their infrastructure resources programmatically. These clients offer rich functionality and flexibility for managing various aspects of the ThreeFold Grid, including node deployment, capacity allocation, networking, and more. + +__Grid Proxy REST API__ further enhances the extensibility of the IaC mechanism by enabling integration with external systems and applications, allowing for seamless automation and orchestration of infrastructure tasks. Together, these components form a robust and efficient IaC framework within the ThreeFold ecosystem, empowering users to manage their infrastructure as code with ease and precision. + +## Dive Deeper +- [How the Grid Works](../grid3_howitworks.md) +- [ThreeFold's Component List](./grid3_components.md) +- [Grace Periods](./contract_grace_period.md) + +## Manuals +- [Terraform](../../../documentation/system_administrators/terraform/terraform_toc.md) +- [Typescript Client](../../../documentation/developers/javascript/grid3_javascript_readme.md) \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/concepts/grid3_whatsnew.md b/collections/manual/knowledge_base/technology/concepts/grid3_whatsnew.md new file mode 100644 index 0000000..d97fca3 --- /dev/null +++ b/collections/manual/knowledge_base/technology/concepts/grid3_whatsnew.md @@ -0,0 +1,61 @@ +

What's New on ThreeFold Grid v3.x

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [TFChain v3.x](#tfchain-v3x) + - [Key Features of TFChain v3.x:](#key-features-of--tfchain-v3x) +- [Proof of Utilization: Enhancing Your Cloud Experience](#proof-of-utilization-enhancing-your-cloud-experience) + - [Key Features:](#key-features) + - [New TFGrid Explorer UI](#new-tfgrid-explorer-ui) + +*** + +## Introduction + +The ThreeFold Grid v3.x is packed with exciting new features and enhancements. This marks a significant milestone in the evolution of our decentralized grid infrastructure, bringing even more power, flexibility, and innovation to our users. In this introduction, we will highlight some of the key new features that make ThreeFold Grid v3.x a game-changer in the world of decentralized technologies. + +> Click [here](../concepts/grid3_components.md) to see the complete TFGrid Component List + +## TFChain v3.x + +[__TFChain v3.x__](../concepts/tfchain.md) is a decentralized chain that holds all the information about the entities comprising the ThreeFold Grid. It operates on the Parity Substrate blockchain infrastructure. + +### Key Features of TFChain v3.x: + +- Your identity and proofs/reputation are stored on our blockchain. +- All information about TFGrid, including nodes and farmers, is made available. +- A GraphQL interface that allows easy querying of the blockchain. +- Provide Side chains supports, enabling unlimited scalability and allowing others to run their own blockchains. +- TFT now exists on TFChain, addressing scalability issues with Stellar. +- A bridge facilitates the transfer of TFT between Stellar and TFChain. +- Blockchain-based provisioning process/ +- TFChain API that is available in JavaScript, Golang, and Vlang. +- 'Infrastructure as Code' (IAC) framework support for: + - Terraform + - Kubernetes, Helm, Kubernetes + - Ansible (planned) +- Support for App deployment using CapRover +- The use of RMB (Reliable Message Bus) that ensures secure peer-to-peer communication with Zero-OS. + +Please note that the above list summarizes the key features introduced in TFChain v3.0. + +## Proof of Utilization: Enhancing Your Cloud Experience + +Experience the benefits of Proof of Utilization, a user-friendly feature that optimizes your cloud usage and rewards your pre-purchases. Here are the key features: + +### Key Features: + +- __Hourly Resource Utilization__: Your resource utilization is accurately captured and calculated on an hourly basis, ensuring transparency and precision in tracking your cloud usage. + +- __Secure Storage on TFChain__: Your resource utilization data is securely stored in TFChain, our dedicated blockchain, providing a reliable and tamper-proof record of your usage history. + +- __Automated Discount System__: Our innovative automated discount system acknowledges your pre-purchased cloud needs. Based on the amount of TFT (ThreeFold Tokens) you hold in your account and the duration you maintain these tokens, you can enjoy significant price discounts. + +- __Personalized Discounts__: The discount you receive is customized to your TFT holdings and usage patterns. For instance, if you hold TFT tokens equivalent to 12 months' worth of usage, you receive a generous 40% discount. Holding TFT tokens for 36 months unlocks an impressive 60% discount on your cloud services. + + +### New TFGrid Explorer UI + +- The TFGrid Explorer v3.x has an updated user interface that is now nicer and easier to use. +- It utilizes the GraphQL layer of TFChain. diff --git a/collections/manual/knowledge_base/technology/concepts/grid_primitives.md b/collections/manual/knowledge_base/technology/concepts/grid_primitives.md new file mode 100644 index 0000000..24812df --- /dev/null +++ b/collections/manual/knowledge_base/technology/concepts/grid_primitives.md @@ -0,0 +1,60 @@ +

ThreeFold Grid Primitives: Empowering Your Solutions

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Compute](#compute) +- [Storage](#storage) +- [Network](#network) +- [Zero-OS Advantages](#zero-os-advantages) +- [Conclusion](#conclusion) + +*** + +## Introduction + +Within the ThreeFold Grid, we offer a range of __low-level constructs known as Primitives__. These powerful functionalities enable you to create diverse and customized solutions atop the grid, opening up a world of possibilities. It's important to note that any application compatible with Linux can seamlessly run on the ThreeFold Grid, ensuring maximum flexibility. + +## Compute + +Harness the power of computation with our compute primitives, measured in [compute units](../../cloud/cloudunits.md) (CU). + +- [ZKube](../../technology/primitives/compute/zkube.md): Deploy and manage Kubernetes clusters effortlessly. +- [ZMachine](../../technology/primitives/compute/zmachine.md): Run your applications within containers or virtual machines powered by the Zero-OS operating system. +- [CoreX](../../technology/primitives/compute/corex.md) (optional): Gain remote access to your ZMachine by utilizing the CoreX process manager. + +## Storage + +Leverage our robust storage Primitives, measured in [storage units](../../cloud/cloudunits.md) (SU), to meet your data storage requirements efficiently. + +- [ZOS Filesystem](../../technology/primitives/storage/zos_fs.md): Enjoy a deduplicated and immutable filesystem for secure and reliable data storage. +- [ZOS Mount](../../technology/primitives/storage/zmount.md): Utilize a portion of a high-speed SSD (Solid State Drive) as a mounted disk directly accessible within your ZMachine. +- [Quantum Safe Filesystem](../../technology/primitives/storage/qsfs.md): Secure your data with an unbreakable storage system, ideal for secondary storage needs. +- [Zero-DB](../../technology/primitives/storage/zdb.md): Experience a powerful key-value storage mechanism that serves as the foundation for other storage mechanisms. +- [Zero-Disk](../../technology/primitives/storage/zdisk.md) (OEM only): Employ a virtual disk format designed exclusively for original equipment manufacturers. + +## Network + +Harness our network Primitives, measured in [network units](../../cloud/cloudunits.md) (CU), to enable seamless communication and connectivity. + +- [ZNET](../../technology/primitives/network/znet.md): Establish private networks between ZMachines, ensuring secure and efficient communication. +- [ZNIC](../../technology/primitives/network/znic.md): Access and manage network interfaces within the Planetary Network, enabling efficient data transfer and communication. +- [WebGateway](../../technology/primitives/network/webgw3.md): Connect your ZNET to the internet with ease, facilitating seamless integration with the wider network. + +## Zero-OS Advantages + +Enjoy the [numerous advantages](../../technology/zos/benefits/zos_advantages.md) that Zero-OS brings to the table. + +- [Zero Install](../../technology/zos/benefits/zos_advantages.md#zero-os-installation): Experience hassle-free deployment without the need for complex installations. +- [Unbreakable Storage](../../technology/zos/benefits/zos_advantages.md#unbreakable-storage): Ensure the integrity and security of your data with our robust storage mechanisms. +- [Zero Hacking Surface](../../technology/zos/benefits/zos_advantages.md#zero-hacking-surface): Benefit from a minimized attack surface, bolstering the security of your infrastructure. +- [Zero Boot](../../technology/zos/benefits/zos_advantages.md#zero-boot): Enjoy lightning-fast boot times, allowing for swift and efficient system initialization. +- [Deterministic Deployment](../../technology/zos/benefits/zos_advantages.md#deterministic-deployment): Achieve consistent and predictable deployments, streamlining your development process. +- [ZOS Protect](../../technology/zos/benefits/zos_advantages.md#zero-os-protect): Experience enhanced protection and security measures to safeguard your infrastructure. + +## Conclusion + +With these powerful Primitives and Zero-OS advantages, the ThreeFold Grid empowers you to build, scale, and secure your solutions with ease. Unleash your creativity and unlock limitless possibilities within the ThreeFold ecosystem. + + + diff --git a/collections/manual/knowledge_base/technology/concepts/img/.done b/collections/manual/knowledge_base/technology/concepts/img/.done new file mode 100644 index 0000000..a914417 --- /dev/null +++ b/collections/manual/knowledge_base/technology/concepts/img/.done @@ -0,0 +1 @@ +tft.png diff --git a/collections/manual/knowledge_base/technology/concepts/img/layers.jpg b/collections/manual/knowledge_base/technology/concepts/img/layers.jpg new file mode 100644 index 0000000..fa1d017 Binary files /dev/null and b/collections/manual/knowledge_base/technology/concepts/img/layers.jpg differ diff --git a/collections/manual/knowledge_base/technology/concepts/img/manual_grace_period_graphql_node.png b/collections/manual/knowledge_base/technology/concepts/img/manual_grace_period_graphql_node.png new file mode 100644 index 0000000..e25e4ec Binary files /dev/null and b/collections/manual/knowledge_base/technology/concepts/img/manual_grace_period_graphql_node.png differ diff --git a/collections/manual/knowledge_base/technology/concepts/img/manual_grace_period_graphql_rent.png b/collections/manual/knowledge_base/technology/concepts/img/manual_grace_period_graphql_rent.png new file mode 100644 index 0000000..cc0db2c Binary files /dev/null and b/collections/manual/knowledge_base/technology/concepts/img/manual_grace_period_graphql_rent.png differ diff --git a/collections/manual/knowledge_base/technology/concepts/img/manual_grace_period_gridproxy.png b/collections/manual/knowledge_base/technology/concepts/img/manual_grace_period_gridproxy.png new file mode 100644 index 0000000..d21ce2d Binary files /dev/null and b/collections/manual/knowledge_base/technology/concepts/img/manual_grace_period_gridproxy.png differ diff --git a/collections/manual/knowledge_base/technology/concepts/img/manual_grace_period_polkadot_ui.png b/collections/manual/knowledge_base/technology/concepts/img/manual_grace_period_polkadot_ui.png new file mode 100644 index 0000000..ccd17c8 Binary files /dev/null and b/collections/manual/knowledge_base/technology/concepts/img/manual_grace_period_polkadot_ui.png differ diff --git a/collections/manual/knowledge_base/technology/concepts/img/manual_grace_period_weblets.png b/collections/manual/knowledge_base/technology/concepts/img/manual_grace_period_weblets.png new file mode 100644 index 0000000..939f40c Binary files /dev/null and b/collections/manual/knowledge_base/technology/concepts/img/manual_grace_period_weblets.png differ diff --git a/collections/manual/knowledge_base/technology/concepts/img/payment.png b/collections/manual/knowledge_base/technology/concepts/img/payment.png new file mode 100644 index 0000000..68b2e1d Binary files /dev/null and b/collections/manual/knowledge_base/technology/concepts/img/payment.png differ diff --git a/collections/manual/knowledge_base/technology/concepts/img/tft.png b/collections/manual/knowledge_base/technology/concepts/img/tft.png new file mode 100644 index 0000000..39242a8 Binary files /dev/null and b/collections/manual/knowledge_base/technology/concepts/img/tft.png differ diff --git a/collections/manual/knowledge_base/technology/concepts/proof_of_utilization.md b/collections/manual/knowledge_base/technology/concepts/proof_of_utilization.md new file mode 100644 index 0000000..c86b4c3 --- /dev/null +++ b/collections/manual/knowledge_base/technology/concepts/proof_of_utilization.md @@ -0,0 +1,29 @@ +

Proof of Utilization

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Overview](#overview) +- [CU, SU, NU](#cu-su-nu) + +*** + +## Introduction + +The ThreeFold Grid employs a unique mechanism called __Proof of Utilization__ to track and measure resource utilization within its decentralized network. We provide here an overview of this mechanism. + +## Overview + +Proof of Utilization is a system that records resource usage on an hourly basis and serves as a transparent and reliable way to validate and verify the utilization of various components of the grid. + +The Proof of Utilization concept encompasses the monitoring and tracking of three key types of resources within the ThreeFold Grid:__Compute Resources (CU)__, __Storage Resources (SU)__, and __Network resources (NU)__. These resources are essential for supporting the diverse needs of users and applications on the grid. + +## CU, SU, NU + +__Compute resources (CU)__ refer to the computational power and processing capabilities provided by the ThreeFold Grid. This includes the ability to run applications, execute tasks, and perform complex computations in a distributed and decentralized manner. + +__Storage resources (SU)__ encompass the capacity to store and manage data within the ThreeFold Grid. It enables users to securely store and retrieve their data, ensuring reliable and scalable data management solutions. + +__Network resources (NU)__ focus on the network connectivity and bandwidth available within the ThreeFold Grid. This includes the transmission of data, communication between nodes, and facilitating the seamless flow of information across the decentralized network. + +In addition to the resources mentioned above, the Proof of Utilization system also tracks network utilization parameters such as __IPv4 addresses__, __DNS services__, and __name-on-web gateways__. These elements play a crucial role in enabling effective communication and accessibility within the ThreeFold Grid. \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/concepts/tfchain.md b/collections/manual/knowledge_base/technology/concepts/tfchain.md new file mode 100644 index 0000000..ee95510 --- /dev/null +++ b/collections/manual/knowledge_base/technology/concepts/tfchain.md @@ -0,0 +1,37 @@ +

ThreeFold Chain

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Overview](#overview) +- [Key Functionalities](#key-functionalities) + +*** + +## Introduction + +__TFChain__, also known as __ThreeFold Chain__, is the blockchain at the core of managing the ThreeFold Grid, which operates as a decentralized autonomous organization (DAO). Built on Substrate, TFChain provides the infrastructure to support the seamless functioning of the ThreeFold Grid ecosystem. + +## Overview + +One of the key features of TFChain is its __compatibility with multiple blockchains__. The native token of the ThreeFold ecosystem, TFT, can be utilized across different blockchain networks including TFChain, Stellar, and Binance Smart Chain. This compatibility enables users to transfer their TFT tokens seamlessly between these blockchains, providing flexibility and convenience. + +To leverage the Internet Capacity available on the ThreeFold Grid, users are required to transfer funds to their TFChain account. This ensures that users have the necessary financial resources to access and utilize the storage, compute, and network services offered by the ThreeFold Grid. By transferring money to their TFChain account, users can seamlessly tap into the vast potential of the decentralized Internet Capacity provided by the ThreeFold Grid. + +TFChain serves as the backbone of the ThreeFold ecosystem, facilitating efficient transactions, secure transfers of value, and the management of user accounts. It plays a vital role in supporting the seamless interaction between users and the ThreeFold Grid, enabling them to leverage the available Internet Capacity and contribute to the growth of the decentralized network. + +## Key Functionalities + +__TFChain (Threefold Chain)__ is a powerful blockchain that orchestrates the interactions within the ThreeFold Grid ecosystem, providing users with a range of key functions. Let's explore some of these user-friendly functions: + +- __Users Registration__: TFChain allows seamless registration for users to join the ThreeFold Grid. By creating an account, users can easily become part of the decentralized network and access the various resources and services available. + +- __Farms Management__: TFChain simplifies the process of managing node farms within the ThreeFold Grid. It provides a streamlined registration system, enabling farmers to register their nodes and effectively contribute to the grid. Additionally, TFChain facilitates IP management, allowing farmers to efficiently manage and allocate IP addresses to their nodes. + +- __Fund Transfers__: TFChain supports secure and efficient fund transfers within the ThreeFold ecosystem. Users can seamlessly transfer funds, including the native TFT token, between accounts on TFChain. This feature enables easy financial transactions and fosters a thriving economy within the ThreeFold Grid. + +- __Billing and Consumption Reports__: TFChain offers detailed billing and consumption reports, providing users with insights into their resource usage and associated costs. Users can easily track their consumption, monitor usage patterns, and access comprehensive reports, ensuring transparency and accountability in resource management. + +And More: TFChain is continuously evolving and expanding its functionality. In addition to the key functions mentioned above, TFChain provides a robust foundation for other essential features within the ThreeFold Grid. This includes __facilitating secure transactions, maintaining a transparent ledger, enabling governance mechanisms,__ and supporting various interactions and operations within the decentralized ecosystem. + +TFChain's user-friendly functions empower users to participate actively in the ThreeFold Grid, seamlessly manage their resources, and engage in secure and efficient transactions. \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/concepts/tfgrid_by_design.md b/collections/manual/knowledge_base/technology/concepts/tfgrid_by_design.md new file mode 100644 index 0000000..02672f7 --- /dev/null +++ b/collections/manual/knowledge_base/technology/concepts/tfgrid_by_design.md @@ -0,0 +1,152 @@ +

TFGrid by Design: Deployment Architectures and Solution Categories

+ +

Table of Contents

+ +- [Introduction](#introduction) + - [TFGrid by Design](#tfgrid-by-design) + - [Capacity and Connectivity](#capacity-and-connectivity) +- [TFGrid Main Components Overview and Examples](#tfgrid-main-components-overview-and-examples) + - [Storage Units](#storage-units) + - [0-DB-FS](#0-db-fs) + - [0-stor\_v2](#0-stor_v2) + - [QSFS](#qsfs) + - [Compute Units](#compute-units) + - [Virtual CPUs (vCPUs)](#virtual-cpus-vcpus) + - [Kubernetes](#kubernetes) + - [TF Grid-SDK-Go and TF Grid-SDK-TS](#tf-grid-sdk-go-and-tf-grid-sdk-ts) + - [Network Units](#network-units) + - [Reliable Message Bus Relay (RMB-RS)](#reliable-message-bus-relay-rmb-rs) + - [TCP-Router](#tcp-router) +- [Solution Categories](#solution-categories) + - [DIY Workloads](#diy-workloads) + - [Independent Commercial Offerings](#independent-commercial-offerings) + - [ThreeFold Commercial Offerings](#threefold-commercial-offerings) +- [Best Practices](#best-practices) +- [Questions and Feedback](#questions-and-feedback) + +*** + +# Introduction + +Before starting a project on the TFGrid, it can be good idea to consider the overall design of the grid itself, and to ponder the potential solution designs you can come up with to ensure reliable and resilient deployments. This text will explore some of the main components of the TFGrid as well as its inherent design in order to provide sufficient information for system administrators to deploy effective and reliable solutions. We will also cover the three main solution categories that can be built on top of the TFGrid. + +## TFGrid by Design + +At its core, the TFGrid is composed of thousands of 3Nodes. 3Nodes provide storage, compute and network units to the TFGrid. By design, 3Nodes are not reliable in themselves, in the sense that a 3Node online today could be offline tomorrow if hardware or connection failures arise. This reality is inherent to any cloud enterprises. But this does not mean that reliability is not possible on the TFGrid. To the contrary, the TFGrid is composed of different components that can be utilized to provide reliability in all aspects of the grid: storage, compute and network. It is the role of system administrators to develop solutions that will be reliable in themselves. + +A myriad of possibilities and configurations are possible within the TFGrid ecosystem and, by understanding the interconnectedness between the grid components, one can knowingly build a solid deployment that will respond to the needs of a given project. + +## Capacity and Connectivity + +When it comes to deployments, we must consider two major aspects of the Internet infrastructure: capacity and connectivity. While capacity can be thought as the individual 3Nodes composing the TFGrid, where information is processed and stored within the 3Nodes, connectivity can be thought as the links and information transfers between the 3Nodes and the public Internet. + +As a general consideration, the TFGrid works mostly on the capacity side, whereas a 3Node will always be connected to the Internet by ways of different Internet Service Providers (ISP) depending on the farmer's location and resources. The 3Nodes provide storage and compute units where users can store information on SSD and HDD disks and where they can generate compute processes with CPUs. Another major component of the TFGrid would be network units. While, as said before, the TFGrid does not provide directly connectivity as per the traditional ISP services, elements such as gateways and Wireguard VPNs are further related to network units than compute or storage units. + +To build a reliable deployment on the TFGrid, you need to take into consideration the three different types of unit on the TFGrid: storage, compute and network. Let's delve into these a little bit more. + +# TFGrid Main Components Overview and Examples + +We provide here an overview of some of the main components of the TFGrid. We also provide examples for each of those components in order for the reader to obtain a clear understanding of the TF Ecosystem. By understanding the different components of the TFGrid, system administrators will be able to deploy resilient, redundant and reliable solutions on the grid. + +For a complete list of the TFGrid components, read [this documentation](./grid3_components.md). + +## Storage Units + +Storage units are related to the data stored in SSD and HDD disks. The Quantum Safe Filesystem (QSFS) technology developed by ThreeFold ensures redundancy and resilience in storage units. If one disk of the QSFS array goes offline, the rest of the system can still function properly. To the contrary, if a user stores information on one single 3Node and this 3Node has a drastic disk failure, the user will lose the data. Another way to achieve redundancy in the storage category would be to deploy a solution with real-time synced databases of two or more 3nodes connected via a wireguard VPN. Note that other configurations offering reliability and redundancy are possible. + +Let's explore some storage components of the ThreeFold Grid. + +### 0-DB-FS + +[0-DB-FS](./grid3_components.md#0-db-fs) is storage system that allows for efficient and secure storage of files on the ThreeFold Grid. 0-DB-FS is built on top of 0-DB, which is a key-value store optimized for high performance and scalability. It provides a decentralized and distributed approach to file storage, ensuring data redundancy and availability. + +### 0-stor_v2 + +[0-stor_v2](./grid3_components.md#0-stor_v2) is a distributed and decentralized storage solution that enables data storage and retrieval on the ThreeFold Grid. + +### QSFS + +[Quantum Safe Filesystem (QSFS)](./grid3_components.md#qsfs) is ThreeFold's innovative storage solution designed to address the security challenges posed by quantum computing. QSFS employs advanced cryptographic techniques that are resistant to attacks from quantum computers, ensuring the confidentiality and integrity of stored data. By its design, QSFS also offers a high level of redundancy. + +## Compute Units + +Compute units are related to the CPUs doing calculations during the deployment. If a user deploys on a 3Node and uses the CPUs of the units while those CPUs experience failure, the user will lose compute power. as a main example, a way to achieve redundancy in the compute category would be to deploy a solution via Kubernetes. In this case, the CPU workload is balanced between the different 3Nodes of the Kubernetes cluster and if one 3Node fails, the deployment can still function properly. + +Let's explore some compute components of the ThreeFold Grid. + +### Virtual CPUs (vCPUs) + +Virtual CPUs (vCPUs) are virtual representations of physical CPUs that allow multiple virtual machines (VMs) to run concurrently on a single physical server or host. Virtualization platforms allocate vCPUs to each VM, enabling them to execute tasks and run applications as if they were running on dedicated physical hardware. The number of vCPUs assigned to a VM determines its processing power and capacity to handle workloads. On the TFGrid, the number of vCPUs is limited to the physical number of CPUs on the host (i.e. the 3Node). Since this limitation is done per VM, this means that a node with 8 cores can still have 2 VMs each with 8 vCPUs. + +### Kubernetes + +[Kubernetes](../../../documentation/dashboard/solutions/k8s.md) is an open-source container orchestration system for automating software deployment, scaling, and management. On the TFGrid, Kubernetes clusters can be deployed out of the box. Thus, system administrators can seamlessly deploy solutions on the TFGrid that are reliable in terms of compute units. + +### TF Grid-SDK-Go and TF Grid-SDK-TS + +The [TFGrid-SDK-Go](./grid3_components.md#tf-grid-sdk-go) and [TFGrid-SDK-TS](./grid3_components.md#tf-grid-sdk-ts) enable developers to interact with the ThreeFold Grid infrastructure, such as provisioning and managing compute resources, accessing storage, and interacting with the blockchain-based services. They provide a standardized and convenient way to leverage the features and capabilities of the ThreeFold Grid within Go and Typescript applications. + +## Network Units + +Network units are related to the data transmitted over the Internet. While TFGrid does not provide direct ISP services, elements such as gateways are clearly related to the network. [Gateways](../../../documentation/system_administrators/terraform/resources/terraform_vm_gateway.md) can be used to balance network workloads. A deployment could consist of two different gateways with a master node gateway and a worker node gateway. If the master gateway would fail, the worker gateway would take the lead and become the master gateway. Deploying solutions with several gateways can help system administrators build reliable solutions. + +Note that it is also possible to deploy a Wireguard virtual private network (VPN) between different 3Nodes and synchronize their databases. This provides resilience and redundancy. Read more on VPN and synced databases [here](../../../documentation/system_administrators/terraform/advanced/terraform_mariadb_synced_databases.md). + +Let's explore some network components of the ThreeFold Grid. + +### Reliable Message Bus Relay (RMB-RS) + +[Reliable Message Bus Relay (RMB-RS)](./grid3_components.md#reliable-message-bus-relay-rmb-rs) is a component or system that facilitates the reliable and secure transfer of messages between different entities or systems within the ThreeFold ecosystem. It acts as a relay or intermediary, ensuring that messages are delivered accurately and efficiently, even in the presence of network disruptions or failures. The RMB-RS employs robust protocols and mechanisms to guarantee message reliability, integrity, and confidentiality. + +### TCP-Router + +[TCP-Router](./grid3_components.md#tcp-router) is a component of the ThreeFold technology stack that acts as a TCP (Transmission Control Protocol) router and load balancer. It serves as a network gateway for incoming TCP connections, routing them to the appropriate destinations based on predefined rules and configurations. The TCP-Router component is responsible for distributing incoming network traffic across multiple backend services or nodes, ensuring efficient load balancing and high availability. + +# Solution Categories + +There are three main solution categories on the TFGrid: DIY workloads, independent commercial offerings, and ThreeFold commercial offerings. Let's take a look at them and discuss their basic properties. + +## DIY Workloads + +Out-of-the-box applications are available on the [TF Dashboard](../../../documentation/dashboard/deploy/applications.md) and [Terraform](../../../documentation/system_administrators/terraform/terraform_toc.md), where anyone can [buy TFTs](../../../documentation/threefold_token/buy_sell_tft/buy_sell_tft.md) and deploy on the decentralized and open-source grid. The reliability of those deployments depend on the capacity and resources of each DIY system administrator. + +In essence, when you deploy on the decentralized and open-source TFGrid, you act as a centralized entity building the solution architecture. You must design the solution in a way that it can be reliable with high-availability and resilience levels that suit the needs of your project. + +Note that when you deploy on the ThreeFold Grid, you are doing so in accordance with the [ThreeFold Terms and Conditions](../../legal/terms_conditions_all3.md). + +## Independent Commercial Offerings + +Since the TFGrid is open-source, anyone could decide to build a commercial offering on top of the grid. In this case, it would be recommended for the commercial offering to provide Terms and Conditions, clear support, a website to advertise the product and a marketing strategy to obtain customers. + +In this case, the commercial offering is the centralized entity and if the company makes a mistake, it would be liable to the users to the extent discussed in the T&C. + +The ThreeFold Manual already contains a lot of resourceful information on how to [deploy applications](../../../documentation/dashboard/deploy/applications.md) on the TFGrid. We invite everyone to develop independent commercial offerings on top of the ThreeFold Grid. + +## ThreeFold Commercial Offerings + +ThreeFold is building commercial offerings on top of the TFGrid. Those commercial offerings are for-profit organizations. Each of those organizations would function as a centralized entity. + +ThreeFold Ventures will be the branch exploring this aspect of the TF Ecosystem. A major project on the way is [ThreeFold Cloud](https://cloud.threefold.io/). ThreeFold Cloud is thus a centralized entity that will generate its own Terms and Conditions, support, marketing and website strategy. Furthermore, ThreeFold Cloud will be liable to its users to the extent developed in the ThreeFold Cloud Terms and Conditions. + +# Best Practices + +This text provided an introduction to some deployment architectures and solution categories possible on the TFGrid. In the future, we will expand on some of the main TFGrid best practices. Stay tuned for more on this topic. + +Some of the best practices to be covered are the following: + +* Use Kubernetes to deploy redundant workloads +* Use multi-gateways deployments for redundancy + * Deploy manually two VMs + * Use two webgateways to access the VMs + * Choose a data replication strategy to have content on both places (e.g. syncing databases) +* Use continous deployment and integration workloads + * Deploy on 2 different VMs + * Ensure continuous deployment and integration when changes occur +* Use DNS with redundancy +* Use QSFS for storage resilience and redundancy + +These are only a few of the many possibilities that the TFGrid offers. We invite everyone to explore the TFGrid and share their experience and learning. + +# Questions and Feedback + +If you have any questions or feedback, we invite you to discuss with the ThreeFold community on the [ThreeFold Forum](http://forum.threefold.io/) or on the [ThreeFold Grid Tester Community](https://t.me/threefoldtesting) chat on Telegram. diff --git a/collections/manual/knowledge_base/technology/consensus3_mechanism/consensus3.md b/collections/manual/knowledge_base/technology/consensus3_mechanism/consensus3.md new file mode 100644 index 0000000..9ba3105 --- /dev/null +++ b/collections/manual/knowledge_base/technology/consensus3_mechanism/consensus3.md @@ -0,0 +1,19 @@ +![](img/grid_header.jpg) + +# DAO Consensus Engine + +!!!include:dao_info + +## DAO Engine + +On TFGrid 3.0 ThreeFold has implemented a DAO consensus engine using Polkadot/Substrate blockchain technology. + +This is a powerful blockchain construct which allows us to run our TFGrid and maintain consensus on global scale. + +This system has been designed to be compatible with multiple blockchains. + +!!!include:consensus3_overview_graph + +!!!include:consensus3_toc + +!!!def alias:consensus3,consensus_engine \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/consensus3_mechanism/consensus3_engine_farming.md b/collections/manual/knowledge_base/technology/consensus3_mechanism/consensus3_engine_farming.md new file mode 100644 index 0000000..1774781 --- /dev/null +++ b/collections/manual/knowledge_base/technology/consensus3_mechanism/consensus3_engine_farming.md @@ -0,0 +1,17 @@ +![](img/grid_header.jpg) + +### consensus engine in relation to TFT Farming Rewards in TFGrid 3.0 + +!!!include:consensus3_overview_graph + +The consensus engine checks the farming rules as defined in + +- [farming logic 3.0](farming_reward) +- [farming reward calculator](farming_calculator) + +- if uptime + 98% per month then the TFT will be rewarded to the farmer (for TFGrid 3.0, can change later). + +All the data of the farmer and the 3nodes are registered on TFChain + + +!!!include:consensus3_toc \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/consensus3_mechanism/consensus3_oracles.md b/collections/manual/knowledge_base/technology/consensus3_mechanism/consensus3_oracles.md new file mode 100644 index 0000000..0af143f --- /dev/null +++ b/collections/manual/knowledge_base/technology/consensus3_mechanism/consensus3_oracles.md @@ -0,0 +1,44 @@ + +## Consensus 3.X Oracles used + +Oracles are external resources of information. + +The TFChain captures and holds that information so we get more certainty about the accuracy. + +We have oracles for price & reputation for e.g. TF Farmers and 3Nodes. + +These oracles are implemented on TF_CHAIN for TFGrid 3.0. + +```mermaid + + +graph TB + subgraph Digital Currency Ecosystem + money_blockchain[Money Blockchain Explorers] + Exch1[Money Blockchain Decentralized Exchange] + OracleEngine --> Exch1[Polkadot] + OracleEngine --> Exch1[Money Blockchain Exchange] + OracleEngine --> Exch2[Binance Exchange] + OracleEngine --> Exch3[other... exchanges] + end + subgraph ThreeFold Grid + Monitor_Engine --> 3Node1 + Monitor_Engine --> 3Node2 + Monitor_Engine --> 3Node3 + end + subgraph TFChainNode1[TFGrid Blockchain Node] + Monitor_Engine + Explorers[TFChain Explorers]-->TFGridDB --> BCNode + Explorers --> BCNode + ConsensusEngine1-->BCNode[Blockchain Validator Node] + ConsensusEngine1 --> money_blockchain[Money Blockchain] + ConsensusEngine1 --> ReputationEngine[Reputation Engine] + ReputationEngine --> Monitor_Engine[Monitor Engine] + ConsensusEngine1 --> OracleEngine[Oracle For Pricing Digital Currencies] + end + +``` + +> TODO: outdated info + +!!!include:consensus3_toc \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/consensus3_mechanism/consensus3_overview_graph.md b/collections/manual/knowledge_base/technology/consensus3_mechanism/consensus3_overview_graph.md new file mode 100644 index 0000000..8221c40 --- /dev/null +++ b/collections/manual/knowledge_base/technology/consensus3_mechanism/consensus3_overview_graph.md @@ -0,0 +1,51 @@ + +```mermaid +graph TB + subgraph Money Blockchain + money_blockchain --> account1 + money_blockchain --> account2 + money_blockchain --> account3 + click money_blockchain "/threefold/#money_blockchain" + end + subgraph TFChainNode1[TFChain BCNode] + Explorer1-->BCNode1 + ConsensusEngine1-->BCNode1 + ConsensusEngine1 --> money_blockchain + ConsensusEngine1 --> ReputationEngine1 + ReputationEngine1 --> Monitor_Engine1 + click ReputationEngine1 "/info/threefold/#reputationengine" + click ConsensusEngine1 "/info/threefold/#consensusengine" + click BCNode1 "/info/threefold/#bcnode" + click Explorer1 "/info/threefold/#tfexplorer" + end + subgraph TFChainNode2[TFChain BCNode] + Explorer2-->BCNode2 + ConsensusEngine2-->BCNode2 + ConsensusEngine2 --> money_blockchain + ConsensusEngine2 --> ReputationEngine2 + ReputationEngine2 --> Monitor_Engine2 + click ReputationEngine2 "/info/threefold/#reputationengine" + click ConsensusEngine2 "/info/threefold/#consensusengine" + click BCNoBCNode2de1 "/info/threefold/#bcnode" + click Explorer2 "/info/threefold/#tfexplorer" + + end + Monitor_Engine1 --> 3Node1 + Monitor_Engine1 --> 3Node2 + Monitor_Engine1 --> 3Node3 + Monitor_Engine2 --> 3Node1 + Monitor_Engine2 --> 3Node2 + Monitor_Engine2 --> 3Node3 + click 3Node1 "/info/threefold/#3node" + click 3Node2 "/info/threefold/#3node" + click 3Node3 "/info/threefold/#3node" + click Monitor_Engine1 "/info/threefold/#monitorengine" + click Monitor_Engine2 "/info/threefold/#monitorengine" + + +``` + +*click on the parts of the image, they will go to more info* + +> TODO: outdated info + diff --git a/collections/manual/knowledge_base/technology/consensus3_mechanism/consensus3_principles.md b/collections/manual/knowledge_base/technology/consensus3_mechanism/consensus3_principles.md new file mode 100644 index 0000000..27ab007 --- /dev/null +++ b/collections/manual/knowledge_base/technology/consensus3_mechanism/consensus3_principles.md @@ -0,0 +1,45 @@ +# Consensus Mechanism + +## Blockchain node components + +!!!include:consensus3_overview_graph + +- A Blockchain node (= Substrate node) called TF-Chain, containing all entities interacting with each other on the TF-Grid +- An explorer = a Rest + GraphQL interface to TF-Chain (Graphql is a nice query language to make it easy for everyone to query for info) +- Consensus Engine + - is a Multisignature Engine running on TF-Chain + - The multisignature is done for the Money BlockchainAccounts + - It checks the AccountMetadata versus reality and if ok, will sign, which allows transactions to happen after validation of the "smart contract" +- SLA & reputation engine + - Each node uptime is being checked by Monitor_Engine + - Also bandwidth will be checked in the future (starting 3.x) + +### Remarks + +- Each Monitor_Engine checks uptime of X nr of nodes (in beginning it can do all nodes), and stores the info in local DB (to keep history of check) + +## Principle + +- We keep things as simple as we can + - Money Blockchain blockchain used to hold the money + - Money Blockchain has all required features to allow users to manage their money like wallet support, decentralized exchange, good reporting, low transaction fees, ... + - Substrate based TFChain is holding the metadata for the accounts which express what we need to know per account to allow the start contracts to execute. + - Smart Contracts are implemented using multisignature feature on Money Blockchain in combination with Multi Signature done by Consensus_Engine. +- on money_blockchain: + - each user has Money BlockchainAccounts (each of them holds money) + - there are normal Accounts (means people can freely transfer money from these accounts) as well as RestrictedAccounts. Money cannot be transfered out of RestrictedAccounts unless consensus has been achieved from ConsensusEngine. +- Restricted_Account + - On stellar we use the multisignature feature to make sure that locked/vesting or FarmingPool cannot transfer money unless consensus is achieved by the ConsensusEngine + +- Each account on money_blockchain (Money BlockchainAccount) has account record in TFChain who needs advanced features like: + - lockup + - vesting + - minting (rewards to farmers) + - tfta to tft conversion + +- The Account record in TFGrid_DB is called AccountMetadata. + - The AccountMetadata describes all info required to be able for consensus engine to define what to do for advanced features like vesting, locking, ... + +> TODO: outdated info + +!!!include:consensus3_toc \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/consensus3_mechanism/consensus3_toc.md b/collections/manual/knowledge_base/technology/consensus3_mechanism/consensus3_toc.md new file mode 100644 index 0000000..ec2109c --- /dev/null +++ b/collections/manual/knowledge_base/technology/consensus3_mechanism/consensus3_toc.md @@ -0,0 +1,13 @@ + +## Consensus Engine Information + +- [Consensus Engine Homepage](consensus3) +- [Principles TFChain 3.0 Consensus](consensus3_principles) +- [Consensus Engine Farming 3.0](consensus3_engine_farming) +- [TFGrid 3.0 wallets](tfgrid3_wallets) +- Architecture: + - [Money Blockchains/Substrate architecture](money_blockchain_partity_link) + + +> implemented in TFGrid 3.0 + diff --git a/collections/manual/knowledge_base/technology/consensus3_mechanism/img/grid_header.jpg b/collections/manual/knowledge_base/technology/consensus3_mechanism/img/grid_header.jpg new file mode 100644 index 0000000..d2808e3 Binary files /dev/null and b/collections/manual/knowledge_base/technology/consensus3_mechanism/img/grid_header.jpg differ diff --git a/collections/manual/knowledge_base/technology/consensus3_mechanism/img/limitedsupply_.png b/collections/manual/knowledge_base/technology/consensus3_mechanism/img/limitedsupply_.png new file mode 100644 index 0000000..b9220ec Binary files /dev/null and b/collections/manual/knowledge_base/technology/consensus3_mechanism/img/limitedsupply_.png differ diff --git a/collections/manual/knowledge_base/technology/consensus3_mechanism/money_blockchain_partity_link.md b/collections/manual/knowledge_base/technology/consensus3_mechanism/money_blockchain_partity_link.md new file mode 100644 index 0000000..ae8845e --- /dev/null +++ b/collections/manual/knowledge_base/technology/consensus3_mechanism/money_blockchain_partity_link.md @@ -0,0 +1,53 @@ + +## Link between different Money Blockchain & TFChain + +TF-Chain is the ThreeFold blockchain infrastructure, set up in the Substrate framework. + +We are building a consensus layer which allows us to easily bridge between different money blockchains. + +Main blockchain for TFT remains the Stellar network for now. A secure bridging mechanism exists, able to transfer TFT between the different blockchains. +Active bridges as from TFGrid 3.0 release: +- Stellar <> Binance Smart Chain +- Stellar <> Parity Substrate +More bridges are under development. + +```mermaid + + +graph TB + subgraph Money Blockchain + money_blockchain --- account1a + money_blockchain --- account2a + money_blockchain --- account3a + account1a --> money_user_1 + account2a --> money_user_2 + account3a --> money_user_3 + click money_blockchain "/info/threefold/#money_blockchain" + end + subgraph ThreeFold Blockchain On Parity + TFBlockchain --- account1b[account 1] + TFBlockchain --- account2b[account 2] + TFBlockchain --- account3b[account 3] + account1b --- smart_contract_data_1 + account2b --- smart_contract_data_2 + account3b --- smart_contract_data_3 + click TFBlockchain "/info/threefold/#tfchain" + end + account1b ---- account1a[account 1] + account2b ---- account2a[account 2] + account3b ---- account3a[account 3] + + consensus_engine --> smart_contract_data_1[fa:fa-ban smart contract metadata] + consensus_engine --> smart_contract_data_2[fa:fa-ban smart contract metadata ] + consensus_engine --> smart_contract_data_3[fa:fa-ban smart contract metadata] + consensus_engine --> account1a + consensus_engine --> account2a + consensus_engine --> account3a + click consensus_engine "/info/threefold/#consensus_engine" + + +``` + +Above diagram shows how our consensus engine can deal with Substrate and multiple Money Blockchains at same time. + +!!!include:consensus3_toc \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/consensus3_mechanism/roadmap_tfchain3.md b/collections/manual/knowledge_base/technology/consensus3_mechanism/roadmap_tfchain3.md new file mode 100644 index 0000000..28f484f --- /dev/null +++ b/collections/manual/knowledge_base/technology/consensus3_mechanism/roadmap_tfchain3.md @@ -0,0 +1,52 @@ + +# Roadmap For our TFCHain and ThreeFold DAO + +![](img/limitedsupply_.png) + +## TFChain / DAO 3.0.2 + +For this phase our TFChain and TFDAO has been implemented using parity/substrate. + +Features + +- poc +- pou +- identity management +- consensus for upgrades of DAO and TFChain (code) +- capacity tracking (how much capacity used) +- uptime achieved +- capacity utization +- smart contract for IT +- storage of value = TFT +- request/approval for adding a validator + +Basically all basic DAO concepts are in place + +## TFChain / DAO 3.0.x + +TBD version nr, planned Q1 2022 + +NEW + +- proposals for TFChain/DAO/TFGrid changes (request for change) = we call them TFCRP (ThreeFold Change Request Proposal) +- voting on proposals = we call them TFCRV (ThreeFold Change Request Vote) + + +## TFChain / DAO 3.1.x + +TBD version nr, planned Q1 2022 + +This version adds more layers to our existing DAO and prepares for an even more scalable future. + +NEW + +- Cosmos based chain on L2 +- Validator Nodes for TFGrid and TFChain. +- Cosmos based HUB = security for all TFChains + +> More info about our DAO strategy see TFDAO. + + + +!!!def alias:tfchain_roadmap,dao_roadmap,tfdao_roadmap + diff --git a/collections/manual/knowledge_base/technology/consensus3_mechanism/tfgrid3_wallets.md b/collections/manual/knowledge_base/technology/consensus3_mechanism/tfgrid3_wallets.md new file mode 100644 index 0000000..f054c65 --- /dev/null +++ b/collections/manual/knowledge_base/technology/consensus3_mechanism/tfgrid3_wallets.md @@ -0,0 +1,73 @@ + +# TFGrid 3.0 Wallets + +ThreeFold has a mobile wallet which will allow to be used on the TFChain backend (Substrate) as well as any other Money Blockchain it supports. + +This provides for a very secure digital currency infrastructure with lots of advantages. + +- [X] ultra flexible smart contracts possible +- [X] super safe +- [X] compatible with multiple blockchains (money blockchains) +- [X] ultra scalable + +```mermaid + + +graph TB + + subgraph Money Blockchain + money_blockchain[Money Blockchain Explorers] + money_blockchain --- money_blockchain_node_1 & money_blockchain_node_2 + money_blockchain_node_1 + money_blockchain_node_2 + end + + subgraph ThreeFold Wallets + mobile_wallet[Mobile Wallet] + desktop_wallet[Desktop Wallet] + mobile_wallet & desktop_wallet --> money_blockchain + mobile_wallet & desktop_wallet --> Explorers + money_blockchain_wallet[Any Money Blockchain Wallet] --> money_blockchain + end + + + subgraph TFChain[TFGrid Blockchain on Substrate] + Explorers[TFChain Explorers]-->TFGridDB --> BCNode + Explorers --> BCNode + end + + +``` + +Generic overview: + +```mermaid + +graph TB + + subgraph TFChain[TFGrid Chain] + guardian1[TFChain Node 1] + guardian2[TFChain Node 2] + guardian3[TFChain Node 3...9] + end + + User_wallet[User Wallet] --> money_blockchain_account + User_wallet[User Wallet] --> money_blockchain_restricted_account + + subgraph Money Blockchain Ecosystem + money_blockchain_account + money_blockchain_restricted_account --- guardian1 & guardian2 & guardian3 + end + + subgraph consensus[Consensus Layer on Substrate] + guardian1 --> ReputationEngine & PricingOracle + guardian1 --> contract1[Smart Contract Vesting] + guardian1 --> contract2[Smart Contract Minting/Farming] + end + + + + +``` + +!!!include:consensus3_toc \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/consensus3_mechanism/tfgrid_db_models.v b/collections/manual/knowledge_base/technology/consensus3_mechanism/tfgrid_db_models.v new file mode 100644 index 0000000..b34cf6d --- /dev/null +++ b/collections/manual/knowledge_base/technology/consensus3_mechanism/tfgrid_db_models.v @@ -0,0 +1,52 @@ + +// - vesting +// - startdate: epoch +// - currency: USD +// - [[$month_nr,$minprice_unlock,$TFT_to_vest],...] +// - if 48 months then list will have 48 parts +// - month 0 = first month +// - e.g. [[0,0.11,10000],[1,0.12,10000],[2,0.13,10000],[3,0.14,10000]...] + +//information stored at account level in TFGridDB +struct AccountMeta{ + //corresponds to unique address on money_blockchain + money_blockchain_address string + vesting Vesting[] + unlocked_TFT int +} + +struct Vesting{ + startdate int + //which currency is used to execute on the acceleration in the vesting + //if price above certain level (which is currency + amount of that currency) the auto unlock + currency CurrencyEnum + months []VestingMonth +} + +struct VestingMonth{ + month_nr int + //if 0 then will not unlock based on price + unlock_price f32 + tft_amount int +} + +enum CurrencyEnum{ + usd + eur + egp + gbp + aed +} + +//this is stored in the TFGridDB +fn (mut v AccountMeta) serialize() string{ + //todo code which does serialization see above + return "" +} + + +//write minting pool + + +//REMARKS +// if unlock triggered because of month or price then that record in the VestingMonth[] goes away and TFT go to unlocked_TFT \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/grid3_howitworks.md b/collections/manual/knowledge_base/technology/grid3_howitworks.md new file mode 100644 index 0000000..c15025b --- /dev/null +++ b/collections/manual/knowledge_base/technology/grid3_howitworks.md @@ -0,0 +1,33 @@ +

How It Works

+ +Welcome to the ThreeFold ecosystem, your gateway to a global and sustainable network! + +## TFGrid in a Nutshell + +The ThreeFold Grid is a remarkable network sustained by dedicated individuals, known as **ThreeFold farmers**, who offer network, storage and compute (CPU, GPU) resources to users via 3Nodes, specialized computers that run the innovative Zero-OS software. + +> [Become a ThreeFold farmer](../../documentation/farmers/farmers.md) + +## If it runs on Linux, it runs on the Grid! + +The ThreeFold Grid supports any application that can run on Linux, guaranteeing compatibility and flexibility. Moreover, it offers additional benefits, including enhanced privacy, security, proximity to end-users, and a significantly lower cost compared to traditional alternatives. + +> [Deploy on the TFGrid](../../documentation/system_administrators/getstarted/tfgrid3_getstarted.md) + +## Internet as a Resource + +In a similar manner to purchasing electricity or other utilities, the internet capacity provided by the ThreeFold Grid is produced and allocated locally. This decentralized approach empowers digital service and application providers to host their offerings closer to end-users, resulting in exceptional performance, competitive pricing, and improved profit margins. The TFGrid is fueled by the ThreeFold Token. + +> [Learn more about TFT](../about/token_overview/token_overview.md) + +## TFChain: The Backbone Blockchain Infrastructure + +__TFChain__, also known as __ThreeFold Chain__, is the powerful blockchain that orchestrates the interactions within the ThreeFold Grid ecosystem. TFChain is like the control center of the ThreeFold Grid, providing users and farmers with a wide range of key functionalities. + +> [Learn more about TFChain](../technology/concepts/tfchain.md) + +## ThreeFold Dashboard + +The [**ThreeFold Dashboard**](https://dashboard.grid.tf/) serves as an indispensable tool for farmers and users of the ThreeFold Grid, facilitating node registration, resource management, workload deployments and much more. + +> [Learn more about the ThreeFold Dashboard](../../documentation/dashboard/dashboard.md) diff --git a/collections/manual/knowledge_base/technology/img/layer0_.jpg b/collections/manual/knowledge_base/technology/img/layer0_.jpg new file mode 100644 index 0000000..fa1d017 Binary files /dev/null and b/collections/manual/knowledge_base/technology/img/layer0_.jpg differ diff --git a/collections/manual/knowledge_base/technology/img/tech_architecture1.jpg b/collections/manual/knowledge_base/technology/img/tech_architecture1.jpg new file mode 100644 index 0000000..8595e3a Binary files /dev/null and b/collections/manual/knowledge_base/technology/img/tech_architecture1.jpg differ diff --git a/collections/manual/knowledge_base/technology/img/tech_header.jpg b/collections/manual/knowledge_base/technology/img/tech_header.jpg new file mode 100644 index 0000000..31cf3fb Binary files /dev/null and b/collections/manual/knowledge_base/technology/img/tech_header.jpg differ diff --git a/collections/manual/knowledge_base/technology/img/technology_home_.jpg b/collections/manual/knowledge_base/technology/img/technology_home_.jpg new file mode 100644 index 0000000..9d975f3 Binary files /dev/null and b/collections/manual/knowledge_base/technology/img/technology_home_.jpg differ diff --git a/collections/manual/knowledge_base/technology/layers/autonomous_layer_intro.md b/collections/manual/knowledge_base/technology/layers/autonomous_layer_intro.md new file mode 100644 index 0000000..4a52295 --- /dev/null +++ b/collections/manual/knowledge_base/technology/layers/autonomous_layer_intro.md @@ -0,0 +1,12 @@ +## Autonomous Layer + +### Digital Twin + +>TODO: + +### 3Bot + +3Bot is a virtual system administrator that manages the user's IT workloads under a private key. This ensures an immutable record of any workload as well as a self-healing functionality to restore these workloads if/when needed. Also, all 3Bot IDs are registered on a modern type of phone book that uses blockchain technology. This phone book, also referred to as the Threefold Grid Blockchain, allows all 3Bots to find each other, connect and exchange information or resources in a fully end-to-end encrypted way. Here as well, there are "zero people involved, as 3Bots operate autonomously in the network, and only under the user's commands.  + +3Bot is equipped with a cryptographic 2-factor authentication mechanism. You can log in to your 3Bot via the ThreeFold Connect app on your device which contains your private key. The 3Bot is a very powerful tool that allows you to automate & manage thousands of virtual workloads on the ThreeFold_Grid. + diff --git a/collections/manual/knowledge_base/technology/layers/capacity_layer_intro.md b/collections/manual/knowledge_base/technology/layers/capacity_layer_intro.md new file mode 100644 index 0000000..31f60f3 --- /dev/null +++ b/collections/manual/knowledge_base/technology/layers/capacity_layer_intro.md @@ -0,0 +1,54 @@ +## Capacity Layer + +### Zero-OS + +ThreeFold has build its own operating system called, Zero-OS which was based starting from a Linux Kernel with as purpose to remove all the unnecessary complexity found on contemporary OS's. + +Zero-OS supports a small number of primitives, and performs low-level functions natively. + +It delivers 3 primitive functions: +- storage capacity +- compute capacity +- network capacity + +There is no shell, local nor remote attached to Zero-OS. It does not allow for inbound network connections to happen to the core. Also, given its shell-less nature, the people and organizations, called farmers, that run 3nodes cannot issue any commands nor access its features. In that sense, Zero-OS enables a "zero people" (autonomous) Internet, meaning hackers cannot get in, while also eliminating human error from the paradigm. + +### 3Node + +The ThreeFold_Grid needs hardware/servers to function. Servers of all shapes and sizes can be added to the grid by anyone, anywhere in the world. The production of Internet Capacity on the Threefold Grid is called Farming and people who add these servers to the grid are called Farmers. This is a fully decentralized process and they get rewarded by the means of TFT. + +Farmers download the Zero-OS operating system and boot their servers themselves. Once booted, these servers become 3Nodes. The 3Nodes will register themselves in a database called the TF_Explorer. Once registered in the TF_Explorer, the capacity of the 3Nodes will become available on the TF Grid Explorer. Also, given the autonomous nature of the ThreeFold_Grid, there is no need for any intermediaries between the user and 3Nodes. + +This enables a complete peer-to-peer environment for people to reserve their Internet Capacity directly from the hardware. + +### Smart Contract for IT + +The purpose of the smart contract for IT is to create and enable autonomous IT. Autonomous self-driving IT is possible when we adhere to two principles from start: + +1. Information technology architectures are configured and installed by bots (a ‘smart contract agent’), not people. +2. Human beings cannot have access to these architectures and change things. + +While sticking to these principles, it provides the basis to consider and describe everything in a contract type format and to deploy any self-driving and self-healing application on the ThreeFold_Grid. + +Once the smart contract for IT is created, it will be registered in the Blockchain Database in a complete end-to-end process. It will also leave instructions for the 3Nodes in a digital notary system for them to grab the necessary instructions and complete the smart contract. + +Learn more about smart contract for IT [here](smartcontract_it). + +### TFChain + +A blockchain running on the TFGrid stores following information (TFGrid 3.0) + +- registry for all digital twins (identity system, aka phonebook) +- registry for all farmers & 3nodes +- registry for our reputation system +- info as required for the Smart Contract for IT + +This is the hart of our operational system of the TFGrid + +### Peer-to-Peer Network + +The peer-to-peer network allows any zmachine or user to connect with other zmachine or users on the TF Grid securely and creates a private shortest path peer-to-peer network. + +### Web Gateway + + The Web Gateway is a mechanism to connect the private (overlay) networks to the open Internet. By not providing an open and direct path in to the private network, a lot of malicious phishing and hacking attempts are stopped at the Web Gateway level for container applications. \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/layers/experience_layer_intro.md b/collections/manual/knowledge_base/technology/layers/experience_layer_intro.md new file mode 100644 index 0000000..1992925 --- /dev/null +++ b/collections/manual/knowledge_base/technology/layers/experience_layer_intro.md @@ -0,0 +1 @@ +## Experience Layer diff --git a/collections/manual/knowledge_base/technology/layers/technology_layers.md b/collections/manual/knowledge_base/technology/layers/technology_layers.md new file mode 100644 index 0000000..e6ab9c5 --- /dev/null +++ b/collections/manual/knowledge_base/technology/layers/technology_layers.md @@ -0,0 +1,7 @@ + +!!!include:capacity_layer_intro + +!!!include:autonomous_layer_intro + +!!!include:experience_layer_intro + diff --git a/collections/manual/knowledge_base/technology/primitives/compute/beyond_containers.md b/collections/manual/knowledge_base/technology/primitives/compute/beyond_containers.md new file mode 100644 index 0000000..18b419c --- /dev/null +++ b/collections/manual/knowledge_base/technology/primitives/compute/beyond_containers.md @@ -0,0 +1,17 @@ +## Beyond Containers + +![](img/container_native.jpg) + + +Default features: + +- compatible with Docker +- compatible with any Linux workload + +We have following unique advantages: + +- no need to work with images, we work with our unique zos_fs. +- every container runs in a dedicated virtual machine providing more security. +- the containers talk to each other over a private network: zos_net. +- the containers can use web_gw to allow users on the internet connect to the applications as running in their secure containers. +- can use core-x to manage the workload. diff --git a/collections/manual/knowledge_base/technology/primitives/compute/compute_toc.md b/collections/manual/knowledge_base/technology/primitives/compute/compute_toc.md new file mode 100644 index 0000000..2e52fa6 --- /dev/null +++ b/collections/manual/knowledge_base/technology/primitives/compute/compute_toc.md @@ -0,0 +1,7 @@ +# Compute + +

Table of Contents

+ +- [ZKube](./zkube.md) +- [ZMachine](./zmachine.md) +- [CoreX](./corex.md) \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/primitives/compute/corex.md b/collections/manual/knowledge_base/technology/primitives/compute/corex.md new file mode 100644 index 0000000..e599792 --- /dev/null +++ b/collections/manual/knowledge_base/technology/primitives/compute/corex.md @@ -0,0 +1,21 @@ + +

CoreX

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [ZMachine Process Manager](#zmachine-process-manager) + +*** + +## Introduction + +CoreX allows you to manage your ZMachine over web remotely. + +## ZMachine Process Manager + +- Provide a web interface and a REST API to control your processes. +- Allow to watch the logs of your processes. +- Or use it as a web terminal (access over https to your terminal)! + +![](img/corex.jpg) \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/primitives/compute/img/container_native.jpg b/collections/manual/knowledge_base/technology/primitives/compute/img/container_native.jpg new file mode 100644 index 0000000..c763329 Binary files /dev/null and b/collections/manual/knowledge_base/technology/primitives/compute/img/container_native.jpg differ diff --git a/collections/manual/knowledge_base/technology/primitives/compute/img/corex.jpg b/collections/manual/knowledge_base/technology/primitives/compute/img/corex.jpg new file mode 100644 index 0000000..977ab61 Binary files /dev/null and b/collections/manual/knowledge_base/technology/primitives/compute/img/corex.jpg differ diff --git a/collections/manual/knowledge_base/technology/primitives/compute/img/kubernetes_0_.jpg b/collections/manual/knowledge_base/technology/primitives/compute/img/kubernetes_0_.jpg new file mode 100644 index 0000000..f976a52 Binary files /dev/null and b/collections/manual/knowledge_base/technology/primitives/compute/img/kubernetes_0_.jpg differ diff --git a/collections/manual/knowledge_base/technology/primitives/compute/img/tfgrid_compute_.jpg b/collections/manual/knowledge_base/technology/primitives/compute/img/tfgrid_compute_.jpg new file mode 100644 index 0000000..37ee664 Binary files /dev/null and b/collections/manual/knowledge_base/technology/primitives/compute/img/tfgrid_compute_.jpg differ diff --git a/collections/manual/knowledge_base/technology/primitives/compute/img/zkube_architecture_.jpg b/collections/manual/knowledge_base/technology/primitives/compute/img/zkube_architecture_.jpg new file mode 100644 index 0000000..f8fc59a Binary files /dev/null and b/collections/manual/knowledge_base/technology/primitives/compute/img/zkube_architecture_.jpg differ diff --git a/collections/manual/knowledge_base/technology/primitives/compute/img/zmachine_zos_.jpg b/collections/manual/knowledge_base/technology/primitives/compute/img/zmachine_zos_.jpg new file mode 100644 index 0000000..b8dec4f Binary files /dev/null and b/collections/manual/knowledge_base/technology/primitives/compute/img/zmachine_zos_.jpg differ diff --git a/collections/manual/knowledge_base/technology/primitives/compute/tfgrid_compute.md b/collections/manual/knowledge_base/technology/primitives/compute/tfgrid_compute.md new file mode 100644 index 0000000..d8bd51d --- /dev/null +++ b/collections/manual/knowledge_base/technology/primitives/compute/tfgrid_compute.md @@ -0,0 +1,25 @@ + +## TFGrid Compute Layer + +![](img/tfgrid_compute_.jpg) + +We are more than just Container or VM technology, see [our Beyond Container Document](beyond_containers). + +A 3Node is a Zero-OS enabled computer which is hosted with any of the TF_Farmers. + +There are 4 storage mechanisms which can be used to store your data: + +- ZOS_FS is our dedupe unique filesystem, replaces docker images. +- ZOS_Mount is a mounted disk location on SSD, this can be used as faster storage location. +- QSFS, 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, a virtual disk technology, only for TFTech OEM partners. + +There are 4 ways how networks can be connected to a Z-Machine. + +- Planetary_network : is a planetary scalable network, we have clients for windows, osx, android and iphone. +- zos_net : is a fast end2end encrypted network technology, keep your traffic between your z_machines 100% private. +- zos_bridge: connection to a public ipaddress +- web_gw: web gateway, a secure way to allow internet traffic reach your secure Z-Machine. + + + diff --git a/collections/manual/knowledge_base/technology/primitives/compute/zkube.md b/collections/manual/knowledge_base/technology/primitives/compute/zkube.md new file mode 100644 index 0000000..e933059 --- /dev/null +++ b/collections/manual/knowledge_base/technology/primitives/compute/zkube.md @@ -0,0 +1,40 @@ +

ZKube

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Unique for our Kubernetes implementation](#unique-for-our-kubernetes-implementation) +- [Features](#features) +- [ZMachine Benefits](#zmachine-benefits) +- [Architecture](#architecture) + +*** + +## Introduction + +TFGrid is compatible with Kubernetes Technology. + +Each eVDC as shown above is a full blown Kubernetes deployment. + +## Unique for our Kubernetes implementation + +- The Kubernetes networks are on top of our [ZNet](../network/znet.md) technology which means all traffic between containers and kubernetes hosts is end2end encrypted independent of where your Kubernetes nodes are deployed. +- You can mount a QSFS underneath a Kubernetes Node (VM), which means that you can deploy containers on top of QSFS to host unlimited amounts of storage in a super safe way. +- You Kubernetes environment is for sure 100% decentralized, you define where you want to deploy your Kubernetes nodes and only you have access to the deployed workloads on the TFGrid. + +## Features + +* integration with znet (efficient, secure encrypted network between the zmachines) +* can be easily deployed at the edge +* single-tenant! + +## ZMachine Benefits + +* [ZOS Protect](../../zos/benefits/zos_advantages.md#zero-os-protect): no hacking surface to the Zero-Nodes, integrate silicon route of trust + + +![](img/kubernetes_0_.jpg) + +## Architecture + +![](img/zkube_architecture_.jpg) \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/primitives/compute/zmachine.md b/collections/manual/knowledge_base/technology/primitives/compute/zmachine.md new file mode 100644 index 0000000..3c88994 --- /dev/null +++ b/collections/manual/knowledge_base/technology/primitives/compute/zmachine.md @@ -0,0 +1,30 @@ +

ZMachine

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Features](#features) +- [Architecture](#architecture) + +*** + +## Introduction + +ZMachine is a unified container/virtual machine type. This can be used to start a virtual machine on a zos node. + +## Features + +* import from docker (market std for containers) +* can be easily deployed at the edge (edge cloud) +* single-tenant, fully decentralized! +* can deploy unlimited amounts of storage using our qsfs. +* [ZOS Protect](../../zos/benefits/zos_advantages.md#zero-os-protect): no hacking surface to the Zero-Nodes, integrate silicon route of trust +* [ZOS Filesystem](../storage/qsfs.md): dedupe, zero-install, hacker-proof +* [WebGateway](../network/webgw3.md:) intelligent connection between web (internet) and container services +* integration with [ZNet](../network/znet.md) (efficient, secure encrypted network between the zmachines) + +## Architecture + +![](img/zmachine_zos_.jpg) + +A ZMachine is running as a virtual machine on top of Zero-OS. diff --git a/collections/manual/knowledge_base/technology/primitives/network/img/overlay_net1.jpg b/collections/manual/knowledge_base/technology/primitives/network/img/overlay_net1.jpg new file mode 100644 index 0000000..9dd8138 Binary files /dev/null and b/collections/manual/knowledge_base/technology/primitives/network/img/overlay_net1.jpg differ diff --git a/collections/manual/knowledge_base/technology/primitives/network/img/planet_net_.jpg b/collections/manual/knowledge_base/technology/primitives/network/img/planet_net_.jpg new file mode 100644 index 0000000..afba046 Binary files /dev/null and b/collections/manual/knowledge_base/technology/primitives/network/img/planet_net_.jpg differ diff --git a/collections/manual/knowledge_base/technology/primitives/network/img/planetary_lan.jpg b/collections/manual/knowledge_base/technology/primitives/network/img/planetary_lan.jpg new file mode 100644 index 0000000..f60faa5 Binary files /dev/null and b/collections/manual/knowledge_base/technology/primitives/network/img/planetary_lan.jpg differ diff --git a/collections/manual/knowledge_base/technology/primitives/network/img/planetary_net.jpg b/collections/manual/knowledge_base/technology/primitives/network/img/planetary_net.jpg new file mode 100644 index 0000000..f4be658 Binary files /dev/null and b/collections/manual/knowledge_base/technology/primitives/network/img/planetary_net.jpg differ diff --git a/collections/manual/knowledge_base/technology/primitives/network/img/redundant_net.jpg b/collections/manual/knowledge_base/technology/primitives/network/img/redundant_net.jpg new file mode 100644 index 0000000..1975ef7 Binary files /dev/null and b/collections/manual/knowledge_base/technology/primitives/network/img/redundant_net.jpg differ diff --git a/collections/manual/knowledge_base/technology/primitives/network/img/webgateway.jpg b/collections/manual/knowledge_base/technology/primitives/network/img/webgateway.jpg new file mode 100644 index 0000000..ce67712 Binary files /dev/null and b/collections/manual/knowledge_base/technology/primitives/network/img/webgateway.jpg differ diff --git a/collections/manual/knowledge_base/technology/primitives/network/img/webgw_scaling.jpg b/collections/manual/knowledge_base/technology/primitives/network/img/webgw_scaling.jpg new file mode 100644 index 0000000..ad8819c Binary files /dev/null and b/collections/manual/knowledge_base/technology/primitives/network/img/webgw_scaling.jpg differ diff --git a/collections/manual/knowledge_base/technology/primitives/network/img/znet_redundancy.jpg b/collections/manual/knowledge_base/technology/primitives/network/img/znet_redundancy.jpg new file mode 100644 index 0000000..af7dcb3 Binary files /dev/null and b/collections/manual/knowledge_base/technology/primitives/network/img/znet_redundancy.jpg differ diff --git a/collections/manual/knowledge_base/technology/primitives/network/img/znet_znic.jpg b/collections/manual/knowledge_base/technology/primitives/network/img/znet_znic.jpg new file mode 100644 index 0000000..f258522 Binary files /dev/null and b/collections/manual/knowledge_base/technology/primitives/network/img/znet_znic.jpg differ diff --git a/collections/manual/knowledge_base/technology/primitives/network/img/znet_znic1.jpg b/collections/manual/knowledge_base/technology/primitives/network/img/znet_znic1.jpg new file mode 100644 index 0000000..f258522 Binary files /dev/null and b/collections/manual/knowledge_base/technology/primitives/network/img/znet_znic1.jpg differ diff --git a/collections/manual/knowledge_base/technology/primitives/network/img/zos_network_overlay.jpg b/collections/manual/knowledge_base/technology/primitives/network/img/zos_network_overlay.jpg new file mode 100644 index 0000000..cf652ad Binary files /dev/null and b/collections/manual/knowledge_base/technology/primitives/network/img/zos_network_overlay.jpg differ diff --git a/collections/manual/knowledge_base/technology/primitives/network/network_toc.md b/collections/manual/knowledge_base/technology/primitives/network/network_toc.md new file mode 100644 index 0000000..9b85fb4 --- /dev/null +++ b/collections/manual/knowledge_base/technology/primitives/network/network_toc.md @@ -0,0 +1,7 @@ +# Network + +

Table of Contents

+ +- [ZNET](./znet.md) +- [ZNIC](./znic.md) +- [WebGateway](./webgw3.md) \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/primitives/network/p2pagent.md b/collections/manual/knowledge_base/technology/primitives/network/p2pagent.md new file mode 100644 index 0000000..97f6d77 --- /dev/null +++ b/collections/manual/knowledge_base/technology/primitives/network/p2pagent.md @@ -0,0 +1,5 @@ +# Peer2Peer Agent + +>TODO + +!!!include:zos_toc diff --git a/collections/manual/knowledge_base/technology/primitives/network/planetary_network.md b/collections/manual/knowledge_base/technology/primitives/network/planetary_network.md new file mode 100644 index 0000000..e3e3c5b --- /dev/null +++ b/collections/manual/knowledge_base/technology/primitives/network/planetary_network.md @@ -0,0 +1,54 @@ +![](img/planetary_lan.jpg) + +# Planetary Network + +![](img/planet_net_.jpg) + + +The planetary network is an overlay network which lives on top of the existing internet or other peer2peer networks created. In this network, everyone is connected to everyone. End-to-end encryption between users of an app and the app running behind the network wall. + +Each user end network point is strongly authenticated and uniquely identified, independent of the network carrier used. There is no need for a centralized firewall or VPN solutions, as there is a circle based networking security in place. + +Benefits : +- It finds shortest possible paths between peers +- There's full security through end-to-end encrypted messaging +- It allows for peer2peer links like meshed wireless +- It can survive broken internet links and re-route when needed +- It resolves the shortage of IPV4 addresses + + +Whereas current computer networks depend heavily on very centralized design and configuration, this networking concept breaks this mould by making use of a global spanning tree to form a scalable IPv6 encrypted mesh network. This is a peer2peer implementation of a networking protocol. + +The following table illustrates high-level differences between traditional networks like the internet, and the planetary threefold network: + +| Characteristic | Traditional | Planetary Network | +| --------------------------------------------------------------- | ----------- | ----------------- | +| End-to-end encryption for all traffic across the network | No | Yes | +| Decentralized routing information shared using a DHT | No | Yes | +| Cryptographically-bound IPv6 addresses | No | Yes | +| Node is aware of its relative location to other nodes | No | Yes | +| IPv6 address remains with the device even if moved | No | Yes | +| Topology extends gracefully across different mediums, i.e. mesh | No | Yes | + +## What are the problems solved here? + +The internet as we know it today doesn’t conform to a well-defined topology. This has largely happened over time - as the internet has grown, more and more networks have been “bolted together”. The lack of defined topology gives us some unavoidable problems: + +- The routing tables that hold a “map” of the internet are huge and inefficient +- There isn’t really any way for a computer to know where it is located on the internet relative to anything else +- It’s difficult to examine where a packet will go on its journey from source to destination without actually sending it +- It’s very difficult to install reliable networks into locations that change often or are non-static, i.e. wireless mesh networks + +These problems have been partially mitigated (but not really solved) through centralization - rather than your computers at home holding a copy of the global routing table, your ISP does it for you. Your computers and network devices are configured just to “send it upstream” and to let your ISP decide where it goes from there, but this does leave you entirely at the mercy of your ISP who can redirect your traffic anywhere they like and to inspect, manipulate or intercept it. + +In addition, wireless meshing requires you to know a lot about the network around you, which would not typically be the case when you have outsourced this knowledge to your ISP. Many existing wireless mesh routing schemes are not scalable or efficient, and do not bridge well with existing networks. + +![](img/planetary_net.jpg) + +The planetary network is a continuation & implementation of the [Yggdrasil](https://yggdrasil-network.github.io/about.html) network initiative. This technology is in beta but has been proven to work already quite well. + +!!!def alias:planet_net,planetary_net,planetary_network,pan + +!!!include:zos_toc + +> Click [here](manual:planetary_network_connector) to read more about Planetary Network Connector Installation. Click [here](manual:yggdrasil_client) to read more about Planetary Network Installation (advanced). \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/primitives/network/tfgrid_network.md b/collections/manual/knowledge_base/technology/primitives/network/tfgrid_network.md new file mode 100644 index 0000000..d3277a4 --- /dev/null +++ b/collections/manual/knowledge_base/technology/primitives/network/tfgrid_network.md @@ -0,0 +1,7 @@ +# TFGrid networking + +- znet : private network between zmachines +- [Planetary Network](planetary_network) : peer2peer end2end encrypted global network +- znic : interface to planetary network +- [WebGateway](webgw) : interface between internet and znet + diff --git a/collections/manual/knowledge_base/technology/primitives/network/webgw.md b/collections/manual/knowledge_base/technology/primitives/network/webgw.md new file mode 100644 index 0000000..4abd665 --- /dev/null +++ b/collections/manual/knowledge_base/technology/primitives/network/webgw.md @@ -0,0 +1,60 @@ + + +# WebGW 2.0 + +The Web Gateway is a mechanism to connect the private networks to the open Internet, in such a way that there is no direct connection between internet and the secure workloads running in the ZMachines. + +![](img/webgateway.jpg) + + +- Separation between where compute workloads are and where services are exposed. +- Better Security +- Redundant + - Each app can be exposed on multiple webgateways at once. +- Support for many interfaces... +- Helps resolve shortage of IPv4 addresses + +If (parts of) this private overlay network need to be reachable from the Internet, the zmachines initiate a secure connection *to* the web Gateway. + +### Implementation + +It is important to mention that this connection is not a standard network connection, it is a [network socket](https://en.wikipedia.org/wiki/Network_socket) initiated by the container or VM to the web gateway. The container calls out to one or more web gateways and sets up a secure & private socket connection to the web gateway. The type of connection required is defined on the smart contract for IT layer and as such is very secure. There is no IP (TCP/UDP) coming from the internet towards the containers providing more security. + +Up to the Web Gateway Internet traffic follows the same route as for any other network end point: A DNS entry tells the consumers client to what IP address to send traffic to. This endpoint is the public interface of the Web Gateway. That interface accepts the HTTP(s) (or any other TCP) packets and forward the packet payload over the secure socket connection (initiated by the container) to the container. + +No open pipe (NAT plus port forwarding) from the public internet to specific containers in the private (overlay) network exists. + +Web Gateways are created by so called network farmers. Network farmers are people and companies that have access to good connectivity and have a large number of public IP routable IP networks. They provide the facilities (hardware) for Web Gateways to run and terminate a lot of the public inbound and output traffic for the TF Grid. Examples of network farmers are ISP's and (regional, national and international Telcos, internet exchanges etc. + +### Security + +Buy not providing an open and direct path in to the private network a lot of malicious phishing and hacking attempts are stopped at the Web Gateway. By design any private network is meant to have multiple webgateways and by design these Web Gateways exist on different infrastructure in a different location. Sniffing around and finding out what can be done with a Web Gateway might (and will happen) but it will not compromise the containers in your private network. + +### Redundant Network Connection + +![](img/redundant_net.jpg) + + +### Unlimited Scale + +![](img/webgw_scaling.jpg) + + +The network architecture is a pure scale-out network system, it can scale to unlimited size, there is simply no bottleneck. Network "supply" is created by network farmers, and network "demand" is done by TF Grid users. Supply and demand scale independently, for supply there can be unlimited network farmers providing the web gateways on their own 3nodes and unlimited compute farmers providing 3nodes for compute and storage. The demand side is driven by developers creating software that runs on the grid, system integrators creating solutions for enterprise and this demand side is exponentially growing for data processing and storage use cases. + +### Network Wall (future) + +see [Network Wall](network_wall) + +## Roadmap + +Above described Web Gateway is for 2.0. + +For 3.0 we start with a HTTP(S) proxy over Planetary network connection. Not all features from WebGW 2.0 have been ported. + +Further future, we envisage support for many other protocols: sql, redis, udp, ... + +!!!def alias:web_gw,zos_web_gateway + +!!!include:zos_toc + diff --git a/collections/manual/knowledge_base/technology/primitives/network/webgw3.md b/collections/manual/knowledge_base/technology/primitives/network/webgw3.md new file mode 100644 index 0000000..eef289b --- /dev/null +++ b/collections/manual/knowledge_base/technology/primitives/network/webgw3.md @@ -0,0 +1,50 @@ +

WebGW 2.0

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Implementation](#implementation) +- [Security](#security) +- [Redundant Network Connection](#redundant-network-connection) +- [Unlimited Scale](#unlimited-scale) + +*** + +## Introduction + +The Web Gateway is a mechanism to connect the private networks to the open Internet, in such a way that there is no direct connection between internet and the secure workloads running in the ZMachines. + +![](img/webgateway.jpg) + + +- Separation between where compute workloads are and where services are exposed. +- Redundant + - Each app can be exposed on multiple webgateways at once. +- Support for many interfaces... +- Helps resolve shortage of IPv4 addresses + +## Implementation + +Some 3nodes supports gateway functionality (configured by the farmers). A 3node with gateway config can then accept gateway workloads and then forward traffic to ZMachines that only has yggdrasil (planetary network) or Ipv6 addresses. + +The gateway workloads consists of a name (prefix) that need to be reserved on the block chain first. Then the list of backend IPs. There are other flags that can be set to control automatic TLS (please check terraform documentations for the exact details of a reservation) + +Once the 3node receives this workloads, the network configure proxy for this name and the yggdrasil ips. + +## Security + +ZMachines has to have an yggdrasil IP or any other IPv6 (also IPv4 are accepted) but it means that any person who is connected to the yggdrasil network, can also reach the ZMachine without the need for a proxy. + +So ti's up to the ZMachine owner/maintainer to make sure it is secured and only have the required ports open. + +## Redundant Network Connection + +![](img/redundant_net.jpg) + + +## Unlimited Scale + +![](img/webgw_scaling.jpg) + + +The network architecture is a pure scale-out network system, it can scale to unlimited size, there is simply no bottleneck. Network "supply" is created by network farmers, and network "demand" is done by TF Grid users. Supply and demand scale independently, for supply there can be unlimited network farmers providing the web gateways on their own 3nodes and unlimited compute farmers providing 3nodes for compute and storage. The demand side is driven by developers creating software that runs on the grid, system integrators creating solutions for enterprise and this demand side is exponentially growing for data processing and storage use cases. diff --git a/collections/manual/knowledge_base/technology/primitives/network/znet.md b/collections/manual/knowledge_base/technology/primitives/network/znet.md new file mode 100644 index 0000000..b4c7f21 --- /dev/null +++ b/collections/manual/knowledge_base/technology/primitives/network/znet.md @@ -0,0 +1,39 @@ +

ZNET

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Secure mesh overlay network (peer2peer)](#secure-mesh-overlay-network-peer2peer) +- [Redundancy](#redundancy) +- [Interfaces in Zero-OS](#interfaces-in-zero-os) + +*** + +## Introduction + +Decentralized networking platform allowing any compute and storage workload to be connected together on a private (overlay) network and exposed to the existing internet network. The Peer2Peer network platform allows any workload to be connected over secure encrypted networks which will look for the shortest path between the nodes. + +![](img/zos_network_overlay.jpg) + +## Secure mesh overlay network (peer2peer) + +Z_NET is the foundation of any architecture running on the TF Grid. It can be seen as a virtual private datacenter and the network allows all of the *N* containers to connected to all of the *(N-1)* other containers. Any network connection is a secure network connection between your containers and creates peer 2 peer network between containers. + +![](img/overlay_net1.jpg) + +No connection is made with the internet.The ZNet is a single tenant network and by default not connected to the public internet. Everything stays private. For connecting to the public internet a Web Gateway is included in the product to allows for public access if and when required. + +## Redundancy + +As integrated with [WebGW](./webgw3.md): + +![](img/znet_redundancy.jpg) + +- Any app can get (securely) connected to the internet by any chosen IP address made available by ThreeFold network farmers through WebGW. +- An app can be connected to multiple web gateways at once, the DNS round robin principle will provide load balancing and redundancy. +- An easy clustering mechanism where web gateways and nodes can be lost and the public service will still be up and running. +- Easy maintenance. When containers are moved or re-created the same end user connection can be reused as that connection is terminated on the Web Gateway. The moved or newly created Web Gateway will recreate the socket to the Web Gateway and receive inbound traffic. + +## Interfaces in Zero-OS + +![](img/znet_znic1.jpg) diff --git a/collections/manual/knowledge_base/technology/primitives/network/znic.md b/collections/manual/knowledge_base/technology/primitives/network/znic.md new file mode 100644 index 0000000..fbb8daa --- /dev/null +++ b/collections/manual/knowledge_base/technology/primitives/network/znic.md @@ -0,0 +1,24 @@ +

ZNIC

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Use Cases](#use-cases) +- [Overview](#overview) + +*** + +## Introduction + +ZNIC is the network interface which is connected to Z_Machine. + +## Use Cases + +Can be implemented as interface to + +- planetary_network. +- public ip address on a Zero-OS. + +## Overview + +![](img/znet_znic.jpg) \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/primitives/primitives_toc.md b/collections/manual/knowledge_base/technology/primitives/primitives_toc.md new file mode 100644 index 0000000..d8e313a --- /dev/null +++ b/collections/manual/knowledge_base/technology/primitives/primitives_toc.md @@ -0,0 +1,19 @@ +# Primitives + +

Table of Contents

+ +- [Compute](./compute/compute_toc.md) + - [ZKube](./compute/zkube.md) + - [ZMachine](./compute/zmachine.md) + - [CoreX](./compute/corex.md) +- [Storage](./storage/storage_toc.md) + - [ZOS Filesystem](./storage/zos_fs.md) + - [ZOS Mount](./storage/zmount.md) + - [Quantum Safe File System](./storage/qsfs.md) + - [Zero-DB](./storage/zdb.md) + - [Zero-Disk](./storage/zdisk.md) +- [Network](./network/network_toc.md) + - [ZNET](./network/znet.md) + - [ZNIC](./network/znic.md) + - [WebGateway](./network/webgw3.md) +- [Zero-OS Advantages](../zos/benefits/zos_advantages.md) \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/primitives/storage/img/zdb_arch.jpg b/collections/manual/knowledge_base/technology/primitives/storage/img/zdb_arch.jpg new file mode 100644 index 0000000..39f51d6 Binary files /dev/null and b/collections/manual/knowledge_base/technology/primitives/storage/img/zdb_arch.jpg differ diff --git a/collections/manual/knowledge_base/technology/primitives/storage/img/zmount.jpg b/collections/manual/knowledge_base/technology/primitives/storage/img/zmount.jpg new file mode 100644 index 0000000..35011b0 Binary files /dev/null and b/collections/manual/knowledge_base/technology/primitives/storage/img/zmount.jpg differ diff --git a/collections/manual/knowledge_base/technology/primitives/storage/img/zos_zstor.jpg b/collections/manual/knowledge_base/technology/primitives/storage/img/zos_zstor.jpg new file mode 100644 index 0000000..35f0b62 Binary files /dev/null and b/collections/manual/knowledge_base/technology/primitives/storage/img/zos_zstor.jpg differ diff --git a/collections/manual/knowledge_base/technology/primitives/storage/qsfs.md b/collections/manual/knowledge_base/technology/primitives/storage/qsfs.md new file mode 100644 index 0000000..5b3dac8 --- /dev/null +++ b/collections/manual/knowledge_base/technology/primitives/storage/qsfs.md @@ -0,0 +1,34 @@ +

Quantum Safe Filesystem

+ +

Table of Contents

+ +- [Introduction](#introduction) + - [Benefits](#benefits) + - [Use Cases](#use-cases) + - [Implementation](#implementation) + +*** + +## Introduction + +Quantum safe filesystem presents itself as a filesystem to the ZMachine. + +### Benefits + +- Safe +- Hacker Proof +- Ultra Reliable +- Low Overhead +- Ultra Scalable +- Self Healing = recovers service automatically in the event of outage with no human + +![](img/zos_zstor.jpg) + +### Use Cases + +- Backup and archive system +- Blockchain Storage Backend (OEM ONLY) + +### Implementation + +> QSFS is using QSSS inside. \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/primitives/storage/storage_toc.md b/collections/manual/knowledge_base/technology/primitives/storage/storage_toc.md new file mode 100644 index 0000000..d95b3a1 --- /dev/null +++ b/collections/manual/knowledge_base/technology/primitives/storage/storage_toc.md @@ -0,0 +1,9 @@ +# Storage + +

Table of Contents

+ +- [ZOS Filesystem](./zos_fs.md) +- [ZOS Mount](./zmount.md) +- [Quantum Safe File System](./qsfs.md) +- [Zero-DB](./zdb.md) +- [Zero-Disk](./zdisk.md) \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/primitives/storage/zdb.md b/collections/manual/knowledge_base/technology/primitives/storage/zdb.md new file mode 100644 index 0000000..7b0855c --- /dev/null +++ b/collections/manual/knowledge_base/technology/primitives/storage/zdb.md @@ -0,0 +1,21 @@ +

ZOS-DB (ZDB)

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Use Cases](#use-cases) +- [Overview](#overview) + +*** + +## Introduction + +0-db is a fast and efficient key-value store redis-protocol compatible, which makes data persistent inside an always append datafile, with namespaces support. + +## Use Cases + +> ZDB is being used as backend storage for [Quantum Safe Filesystem](./qsfs.md). + +## Overview + +![](img/zdb_arch.jpg) diff --git a/collections/manual/knowledge_base/technology/primitives/storage/zdisk.md b/collections/manual/knowledge_base/technology/primitives/storage/zdisk.md new file mode 100644 index 0000000..02b3297 --- /dev/null +++ b/collections/manual/knowledge_base/technology/primitives/storage/zdisk.md @@ -0,0 +1,18 @@ +

ZOS Disk

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Roadmap](#roadmap) + +*** + +## Introduction + +Virtual disk creates the possibility to create and use virtual disks which can be attached to containers (and virtual machines). + +The technology is designed to be redundant without having to do anything. + +## Roadmap + +- The virtual disk technology is available for OEM's only, contact TF_Tech. \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/primitives/storage/zmount.md b/collections/manual/knowledge_base/technology/primitives/storage/zmount.md new file mode 100644 index 0000000..d8cc663 --- /dev/null +++ b/collections/manual/knowledge_base/technology/primitives/storage/zmount.md @@ -0,0 +1,18 @@ +

ZOS Mount

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Overview](#overview) + +*** + +## Introduction + +ZOS mount is an SSD storage location on which can be written upon inside a VMachine and VKube. + +## Overview + +The SSD storage location is mounted on a chosen path inside your Z-Machine. + +![](img/zmount.jpg) \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/primitives/storage/zos_fs.md b/collections/manual/knowledge_base/technology/primitives/storage/zos_fs.md new file mode 100644 index 0000000..3f17724 --- /dev/null +++ b/collections/manual/knowledge_base/technology/primitives/storage/zos_fs.md @@ -0,0 +1,39 @@ + +

ZOS FileSystem (ZOS-FS)

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Uses Flist Inside](#uses-flist-inside) + - [Why this ZFlist Concept](#why-this-zflist-concept) +- [Benefits](#benefits) + +*** + +## Introduction + +A deduped filesystem which is more efficient compared to images as used in other Virtual Machine technology. + +## Uses Flist Inside + +In Zero-OS, `flist` is the format used to store zmachine images. This format is made to provide +a complete mountable remote filesystem but downloading only the files contents that you actually needs. + +In practice, Flist itself is a small database which contains metadata about files and directories and file payload are stored on a tfgrid hub. You only need to download payload when you need it, this dramatically reduce zmachine boot time, bandwidth and disk overhead. + +### Why this ZFlist Concept + +Have you ever been in the following situation: you need two small files but they are embedded in a large archive. How to get to those 2 files in an efficient way? What a disappointment when you see this archive is 4 GB large and you only need 4 files of 2 MB inside. You'll need to download the full archive, store it somewhere to extract only what you need. Time, effort and bandwidth wasted. + +You want to start a Docker container and the base image you want to use is 2 GB. What do you need to do before being able to use your container ? Waiting to get the 2 GB downloaded. This problem exists everywhere but in Europe and the US the bandwidth speeds are such that this does not present a real problem anymore, hence none of the leading (current) tech companies are looking for solutions for this. + +We believe that there should a smarter way of dealing with this then simply throwing larger bandwidth at the problem: What if you could only download the files you actually want and not the full blob (archive, image, whatever...). + +ZFList is splitting metadata and data. Metadata is referential information about everything you need to know about content of the archive, but without the payload. Payload is the content of the referred files. The ZFList is exactly that: it consists of metadata with references that point to where to get the payload itself. So if you don't need it you won't get it. + +As soon as you have the flist mounted, you can see the full directory tree, and walk around it. The files are only downloaded and presented at moment that you try to access them. In other words, every time you want to read a file, or modify it, Zero FS will download it, so that the data is available too. You only download on-the-fly what you need which reduces dramatically the bandwidth requirement. + + +## Benefits + +- Efficient usage of bandwidth makes this service perform with and without (much) bandwidth \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/qsss/img/filesystem_abstract.jpg b/collections/manual/knowledge_base/technology/qsss/img/filesystem_abstract.jpg new file mode 100644 index 0000000..b366139 Binary files /dev/null and b/collections/manual/knowledge_base/technology/qsss/img/filesystem_abstract.jpg differ diff --git a/collections/manual/knowledge_base/technology/qsss/img/qsss_intro_0_.jpg b/collections/manual/knowledge_base/technology/qsss/img/qsss_intro_0_.jpg new file mode 100644 index 0000000..7bb72cd Binary files /dev/null and b/collections/manual/knowledge_base/technology/qsss/img/qsss_intro_0_.jpg differ diff --git a/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/img/filesystem.jpg b/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/img/filesystem.jpg new file mode 100644 index 0000000..c28a9b7 Binary files /dev/null and b/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/img/filesystem.jpg differ diff --git a/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/img/http.jpg b/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/img/http.jpg new file mode 100644 index 0000000..87fa682 Binary files /dev/null and b/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/img/http.jpg differ diff --git a/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/img/hyperdrive.jpg b/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/img/hyperdrive.jpg new file mode 100644 index 0000000..d07db0d Binary files /dev/null and b/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/img/hyperdrive.jpg differ diff --git a/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/img/ipfs.jpg b/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/img/ipfs.jpg new file mode 100644 index 0000000..0927468 Binary files /dev/null and b/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/img/ipfs.jpg differ diff --git a/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/img/nft_architecture.jpg b/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/img/nft_architecture.jpg new file mode 100644 index 0000000..0c09946 Binary files /dev/null and b/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/img/nft_architecture.jpg differ diff --git a/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/img/nft_storage.jpg b/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/img/nft_storage.jpg new file mode 100644 index 0000000..5f758d0 Binary files /dev/null and b/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/img/nft_storage.jpg differ diff --git a/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/img/storage_architecture_1.jpg b/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/img/storage_architecture_1.jpg new file mode 100644 index 0000000..3a0d3fe Binary files /dev/null and b/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/img/storage_architecture_1.jpg differ diff --git a/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/img/syncthing.jpg b/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/img/syncthing.jpg new file mode 100644 index 0000000..cd1a17e Binary files /dev/null and b/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/img/syncthing.jpg differ diff --git a/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/nft_storage.md b/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/nft_storage.md new file mode 100644 index 0000000..fc41947 --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/nft_storage.md @@ -0,0 +1,97 @@ +# Quantum Safe Storage System for NFT + +![](img/nft_architecture.jpg) + +The owner of the NFT can upload the data using one of our supported interfaces + +- http upload (everything possible on https://nft.storage/ is also possible on our system) +- filesystem + +Every person in the world can retrieve the NFT (if allowed) and the data will be verified when doing so. The data is available everywhere in the world using multiple interfaces again (IPFS, HTTP(S), ...). Caching happens on global level. No special software or account on threefold is needed to do this. + +The NFT system uses a super reliable storage system underneath which is sustainable for the planet (green) and ultra secure and private. The NFT owner also owns the data. + + +## Benefits + +#### Persistence = owned by the data user (as represented by digital twin) + +![](img/nft_storage.jpg) + +Is not based on a shared-all architecture. + +Whoever stores the data has full control over + +- where data is stored (specific locations) +- redundancy policy used +- how long should the data be kept +- CDN policy (where should data be available and how long) + + +#### Reliability + +- data cannot be corrupted +- data cannot be lost +- each time data is fetched back hash (fingerprint) is checked, if issues autorecovery happens +- all data is encrypted and compressed (unique per storage owner) +- data owner chooses the level of redundancy + +#### Lookup + +- multi URL & storage network support (see further the interfaces section) +- IPFS, HyperDrive URL schema +- unique DNS schema (with long key which is globally unique) + +#### CDN support (with caching) + +Each file (movie, image) stored is available on many places worldwide. + +Each file gets a unique url pointing to the data which can be retrieved on all locations. + +Caching happens on each endpoint. + +#### Self Healing & Auto Correcting Storage Interface + +Any corruption e.g. bitrot gets automatically detected and corrected. + +In case of a HD crash or storage node crash the data will automatically be expanded again to fit the chosen redundancy policy. + +#### Storage Algoritm = Uses Quantum Safe Storage System as base + +Not even a quantum computer can hack data as stored on our QSSS. + +The QSSS is a super innovative storage system which works on planetary scale and has many benefits compared to shared and/or replicated storage systems. + +It uses forward looking error correcting codes inside. + +#### Green + +Storage uses upto 10x less energy compared to classic replicated system. + +#### Multi Interface + +The stored data is available over multiple interfaces at once. + +| interface | | +| -------------------------- | ----------------------- | +| IPFS | ![](img/ipfs.jpg) | +| HyperDrive / HyperCore | ![](img/hyperdrive.jpg) | +| http(s) on top of FreeFlow | ![](img/http.jpg) | +| syncthing | ![](img/syncthing.jpg) | +| filesystem | ![](img/filesystem.jpg) | + +This allows ultimate flexibility from enduser perspective. + +The object (video,image) can easily be embedded in any website or other representation which supports http. + + +## More Info + +* [Zero-OS overview](zos) +* [Quantum Safe Storage System](qsss_home) +* [Quantum Safe Storage Algorithm](qss_algorithm) +* [Smart Contract For IT Layer](smartcontract_it) + + + +!!!def alias:nft_storage,nft_storage_system \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/qss_use_cases.md b/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/qss_use_cases.md new file mode 100644 index 0000000..5134fe9 --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/qss_use_cases.md @@ -0,0 +1,12 @@ +## Quantum Safe Storage use cases + +### Backup + +A perfect use case for the QSS is backup. Specific capbabilities needed for backup are a core part of a proper backup policy. Characteristics of QSS that makle backups secure, scalable, efficient and sustainable are: +- physical storage devices are always append. The lowest level of the storage devices, ZDB's, are storage engines that work by design as an always append storage device. +- easy provision of these ZDB's makes them almost like old fashioned tape devices that you have on a rotary schedule. Having this capability make is very visible and possible to use, store and phase out stored data in a way that is auditable and can be made very transparant +- + +### Archiving + +### \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/s3_interface.md b/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/s3_interface.md new file mode 100644 index 0000000..267ee74 --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/interfaces_usecases/s3_interface.md @@ -0,0 +1,15 @@ +# S3 Service + +If you like an S3 interface you can deploy this on top of our eVDC, it works very well together with our [quantumsafe_filesystem](quantumsafe_filesystem). + +A good opensource solution delivering an S3 solution is [min.io](https://min.io/). + +Thanks to our quantum safe storage layer, you could build fast, robust and reliable storage and archiving solutions. + +A typical setup would look like: + +![](img/storage_architecture_1.jpg) + +> TODO: link to manual on cloud how to deploy minio, using helm (3.0 release) + +!!!def alias:s3_storage \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/qsss/manual/qsfs_setup.md b/collections/manual/knowledge_base/technology/qsss/manual/qsfs_setup.md new file mode 100644 index 0000000..e8bce76 --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/manual/qsfs_setup.md @@ -0,0 +1,297 @@ +# QSFS getting started on ubuntu setup + +## Get components + +The following steps can be followed to set up a qsfs instance on a fresh +ubuntu instance. + +- Install the fuse kernel module (`apt-get update && apt-get install fuse3`) +- Install the individual components, by downloading the latest release from the + respective release pages: + - 0-db-fs: https://github.com/threefoldtech/0-db-fs/releases + - 0-db: https://github.com/threefoldtech/0-db, if multiple binaries + are available in the assets, choose the one ending in `static` + - 0-stor: https://github.com/threefoldtech/0-stor_v2/releases, if + multiple binaries are available in the assets, choose the one + ending in `musl` +- Make sure all binaries are executable (`chmod +x $binary`) + +## Setup and run 0-stor + +There are instructions below for a local 0-stor configuration. You can also deploy an eVDC and use the [provided 0-stor configuration](evdc_storage) for a simple cloud hosted solution. + +We will run 6 0-db instances as backends for 0-stor. 4 are used for the +metadata, 2 are used for the actual data. The metadata always consists +of 4 nodes. The data backends can be increased. You can choose to either +run 7 separate 0-db processes, or a single process with 7 namespaces. +For the purpose of this setup, we will start 7 separate processes, as +such: + +> This assumes you have moved the download 0-db binary to `/tmp/0-db` + +```bash +/tmp/0-db --background --mode user --port 9990 --data /tmp/zdb-meta/zdb0/data --index /tmp/zdb-meta/zdb0/index +/tmp/0-db --background --mode user --port 9991 --data /tmp/zdb-meta/zdb1/data --index /tmp/zdb-meta/zdb1/index +/tmp/0-db --background --mode user --port 9992 --data /tmp/zdb-meta/zdb2/data --index /tmp/zdb-meta/zdb2/index +/tmp/0-db --background --mode user --port 9993 --data /tmp/zdb-meta/zdb3/data --index /tmp/zdb-meta/zdb3/index + +/tmp/0-db --background --mode seq --port 9980 --data /tmp/zdb-data/zdb0/data --index /tmp/zdb-data/zdb0/index +/tmp/0-db --background --mode seq --port 9981 --data /tmp/zdb-data/zdb1/data --index /tmp/zdb-data/zdb1/index +/tmp/0-db --background --mode seq --port 9982 --data /tmp/zdb-data/zdb2/data --index /tmp/zdb-data/zdb2/index +``` + +Now that the data storage is running, we can create the config file for +0-stor. The (minimal) config for this example setup will look as follows: + +```toml +minimal_shards = 2 +expected_shards = 3 +redundant_groups = 0 +redundant_nodes = 0 +socket = "/tmp/zstor.sock" +prometheus_port = 9100 +zdb_data_dir_path = "/tmp/zdbfs/data/zdbfs-data" +max_zdb_data_dir_size = 25600 + +[encryption] +algorithm = "AES" +key = "000001200000000001000300000004000a000f00b00000000000000000000000" + +[compression] +algorithm = "snappy" + +[meta] +type = "zdb" + +[meta.config] +prefix = "someprefix" + +[meta.config.encryption] +algorithm = "AES" +key = "0101010101010101010101010101010101010101010101010101010101010101" + +[[meta.config.backends]] +address = "[::1]:9990" + +[[meta.config.backends]] +address = "[::1]:9991" + +[[meta.config.backends]] +address = "[::1]:9992" + +[[meta.config.backends]] +address = "[::1]:9993" + +[[groups]] +[[groups.backends]] +address = "[::1]:9980" + +[[groups.backends]] +address = "[::1]:9981" + +[[groups.backends]] +address = "[::1]:9982" +``` + +> A full explanation of all options can be found in the 0-stor readme: +https://github.com/threefoldtech/0-stor_v2/#config-file-explanation + +This guide assumes the config file is saved as `/tmp/zstor_config.toml`. + +Now `zstor` can be started. Assuming the downloaded binary was saved as +`/tmp/zstor`: + +`/tmp/zstor -c /tmp/zstor_config.toml monitor`. If you don't want the +process to block your terminal, you can start it in the background: +`nohup /tmp/zstor -c /tmp/zstor_config.toml monitor &`. + +## Setup and run 0-db + +First we will get the hook script. The hook script can be found in the +[quantum_storage repo on github](https://github.com/threefoldtech/quantum-storage). +A slightly modified version is found here: + +```bash +#!/usr/bin/env bash +set -ex + +action="$1" +instance="$2" +zstorconf="/tmp/zstor_config.toml" +zstorbin="/tmp/zstor" + +if [ "$action" == "ready" ]; then + ${zstorbin} -c ${zstorconf} test + exit $? +fi + +if [ "$action" == "jump-index" ]; then + namespace=$(basename $(dirname $3)) + if [ "${namespace}" == "zdbfs-temp" ]; then + # skipping temporary namespace + exit 0 + fi + + tmpdir=$(mktemp -p /tmp -d zdb.hook.XXXXXXXX.tmp) + dirbase=$(dirname $3) + + # upload dirty index files + for dirty in $5; do + file=$(printf "i%d" $dirty) + cp ${dirbase}/${file} ${tmpdir}/ + done + + ${zstorbin} -c ${zstorconf} store -s -d -f ${tmpdir} -k ${dirbase} & + + exit 0 +fi + +if [ "$action" == "jump-data" ]; then + namespace=$(basename $(dirname $3)) + if [ "${namespace}" == "zdbfs-temp" ]; then + # skipping temporary namespace + exit 0 + fi + + # backup data file + ${zstorbin} -c ${zstorconf} store -s --file "$3" + + exit 0 +fi + +if [ "$action" == "missing-data" ]; then + # restore missing data file + ${zstorbin} -c ${zstorconf} retrieve --file "$3" + exit $? +fi + +# unknown action +exit 1 +``` + +> This guide assumes the file is saved as `/tmp/zdbfs/zdb-hook.sh. Make sure the +> file is executable, i.e. chmod +x /tmp/zdbfs/zdb-hook.sh` + +The local 0-db which is used by 0-db-fs can be started as follows: + +```bash +/tmp/0-db \ + --index /tmp/zdbfs/index \ + --data /tmp/zdbfs/data \ + --datasize 67108864 \ + --mode seq \ + --hook /tmp/zdbfs/zdb-hook.sh \ + --background +``` + +## Setup and run 0-db-fs + +Finally, we will start 0-db-fs. This guides opts to mount the fuse +filesystem in `/mnt`. Again, assuming the 0-db-fs binary was saved as +`/tmp/0-db-fs`: + +```bash +/tmp/0-db-fs /mnt -o autons -o background +``` + +You should now have the qsfs filesystem mounted at `/mnt`. As you write +data, it will save it in the local 0-db, and it's data containers will +be periodically encoded and uploaded to the backend data storage 0-db's. +The data files in the local 0-db will never occupy more than 25GiB of +space (as configured in the 0-stor config file). If a data container is +removed due to space constraints, and data inside of it needs to be +accessed by the filesystem (e.g. a file is being read), then the data +container is recovered from the backend storage 0-db's by 0-stor, and +0-db can subsequently serve this data to 0-db-fs. + +### 0-db-fs limitation + +Any workload should be supported on this filesystem, with some exceptions: + +- Opening a file in 'always append mode' will not have the expected behavior +- There is no support of O_TMPFILE by fuse layer, which is a feature required by + overlayfs, thus this is not supported. Overlayfs is used by Docker for example. + +## docker setup + +It is possible to run the zstor in a docker container. First, create a data directory +on your host. Then, save the config file in the data directory as `zstor.toml`. Ensure +the storage 0-db's are running as desribed above. Then, run the docker container +as such: + +``` +docker run -ti --privileged --rm --network host --name fstest -v /path/to/data:/data -v /mnt:/mnt:shared azmy/qsfs +``` + +The filesystem is now available in `/mnt`. + +## Autorepair + +Autorepair automatically repairs object stored in the backend when one or more shards +are not reachable anymore. It does this by periodically checking if all the backends +are still reachable. If it detects that one or more of the backends used by an encoded +object are not reachable, the healthy shards are downloaded, the object is restored +and encoded again (possibly with a new config, if it has since changed), and uploaded +again. + +Autorepair does not validate the integrity of individual shards. This is protectected +against by having multiple spare (redundant) shards for an object. Corrupt shards +are detected when the object is rebuild, and removed before attempting to rebuild. +Autorepair also does not repair the metadata of objects. + +## Monitoring, alerting and statistics + +0-stor collects metrics about the system. It can be configured with a 0-db-fs mountpoint, +which will trigger 0-stor to collect 0-db-fs statistics, next to some 0-db statistics +which are always collected. If the `prometheus_port` config option is set, 0-stor +will serve metrics on this port for scraping by prometheus. You can then set up +graphs and alerts in grafana. Some examples include: disk space used vs available +per 0-db backend, total entries in 0-db backends, which backends are tracked, ... +When 0-db-fs monitoring is enabled, statistics are also exported about the filesystem +itself, such as read/write speeds, syscalls, and internal metrics + +For a full overview of all available stats, you can set up a prometheus scraper against +a running instance, and use the embedded promQl to see everything available. + +## Data safety + +As explained in the auto repair section, data is periodically checked and rebuild if +0-db backends become unreachable. This ensures that data, once stored, remains available, +as long as the metadata is still present. When needed, the system can be expanded with more +0-db backends, and the encoding config can be changed if needed (e.g. to change encryption keys). + +## Performance + +Qsfs is not a high speed filesystem, nor is it a distributed filesystem. It is intended to +be used for archive purposes. For this reason, the qsfs stack focusses on data safety first. +Where needed, reliability is chosen over availability (i.e. we won't write data if we can't +guarantee all the conditions in the required storage profile is met). + +With that being said, there are currently 2 limiting factors in the setup: +- speed of the disk on which the local 0-db is running +- network + +The first is the speed of the disk for the local 0-db. This imposes a hard limit on +the throughput of the filesystem. Performance testing has shown that write speeds +on the filesystem reach performance of roughly 1/3rd of the raw performance of the +disk for writing, and 1/2nd of the read performance. Note that in the case of _very_ +fast disks (mostly NVMe SSD's), the cpu might become a bottleneck if it is old and +has a low clock speed. Though this should not be a problem. + +The network is more of a soft cap. All 0-db data files will be encoded and distributed +over the network. This means that the upload speed of the node needs to be able to +handle this data througput. In the case of random data (which is not compressable), +the required upload speed would be the write speed of the 0-db-fs, increased by the +overhead generated by the storage policy. There is no feedback to 0-db-fs if the upload +of data is lagging behind. This means that in cases where a sustained high speed write +load is applied, the local 0-db might eventually grow bigger than the configured size limit +until the upload managed to catch up. If this happens for prolonged periods of time, it +is technically possible to run out of space on the disk. For this reason, you should +always have some extra space available on the disk to account for temprorary cache +excess. + +When encoded data needs to be recovered from backend nodes (if it is not in cache), +the read speed will be equal to the connection speed of the slowest backend, as all +shards are recovered before the data is build. This means that recovery of historical +data will generally be a slow process. Since we primarily focus on archive storage, +we do not consider this a priority. diff --git a/collections/manual/knowledge_base/technology/qsss/product/concept/img/create_png b/collections/manual/knowledge_base/technology/qsss/product/concept/img/create_png new file mode 100755 index 0000000..b232adf --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/product/concept/img/create_png @@ -0,0 +1,9 @@ +#!/bin/bash + +for name in ./*.mmd +do + output=$(basename $name mmd)png + echo $output + mmdc -i $name -o $output -w 4096 -H 2160 -b transparant + echo $name +done diff --git a/collections/manual/knowledge_base/technology/qsss/product/concept/img/data_origin.mmd b/collections/manual/knowledge_base/technology/qsss/product/concept/img/data_origin.mmd new file mode 100644 index 0000000..52c61dc --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/product/concept/img/data_origin.mmd @@ -0,0 +1,13 @@ +graph TD + subgraph Data Origin + file[Large chunk of data = part_1part_2part_3part_4] + parta[part_1] + partb[part_2] + partc[part_3] + partd[part_4] + file -.- |split part_1|parta + file -.- |split part_2|partb + file -.- |split part 3|partc + file -.- |split part 4|partd + parta --> partb --> partc --> partd + end \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/qsss/product/concept/img/data_substitution.mmd b/collections/manual/knowledge_base/technology/qsss/product/concept/img/data_substitution.mmd new file mode 100644 index 0000000..89a1212 --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/product/concept/img/data_substitution.mmd @@ -0,0 +1,20 @@ +graph TD + subgraph Data Substitution + parta[part_1] + partb[part_2] + partc[part_3] + partd[part_4] + parta -.-> vara[ A = part_1] + partb -.-> varb[ B = part_2] + partc -.-> varc[ C = part_3] + partd -.-> vard[ D = part_4] + end + subgraph Create equations with the data parts + eq1[A + B + C + D = 6] + eq2[A + B + C - D = 3] + eq3[A + B - C - D = 10] + eq4[ A - B - C - D = -4] + eq5[ A - B + C + D = 0] + eq6[ A - B - C + D = 5] + vara & varb & varc & vard --> eq1 & eq2 & eq3 & eq4 & eq5 & eq6 + end \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/qsss/product/concept/img/qsfs_principle.mmd b/collections/manual/knowledge_base/technology/qsss/product/concept/img/qsfs_principle.mmd new file mode 100644 index 0000000..e11fe92 --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/product/concept/img/qsfs_principle.mmd @@ -0,0 +1,44 @@ +graph TD + subgraph Data Origin + file[Large chunk of data = part_1part_2part_3part_4] + parta[part_1] + partb[part_2] + partc[part_3] + partd[part_4] + file -.- |split part_1|parta + file -.- |split part_2|partb + file -.- |split part 3|partc + file -.- |split part 4|partd + parta --> partb --> partc --> partd + parta -.-> vara[ A = part_1] + partb -.-> varb[ B = part_2] + partc -.-> varc[ C = part_3] + partd -.-> vard[ D = part_4] + end + subgraph Create equations with the data parts + eq1[A + B + C + D = 6] + eq2[A + B + C - D = 3] + eq3[A + B - C - D = 10] + eq4[ A - B - C - D = -4] + eq5[ A - B + C + D = 0] + eq6[ A - B - C + D = 5] + vara & varb & varc & vard --> eq1 & eq2 & eq3 & eq4 & eq5 & eq6 + end + subgraph Disk 1 + eq1 --> |store the unique equation, not the parts|zdb1[A + B + C + D = 6] + end + subgraph Disk 2 + eq2 --> |store the unique equation, not the parts|zdb2[A + B + C - D = 3] + end + subgraph Disk 3 + eq3 --> |store the unique equation, not the parts|zdb3[A + B - C - D = 10] + end + subgraph Disk 4 + eq4 --> |store the unique equation, not the parts|zdb4[A - B - C - D = -4] + end + subgraph Disk 5 + eq5 --> |store the unique equation, not the parts|zdb5[ A - B + C + D = 0] + end + subgraph Disk 6 + eq6 --> |store the unique equation, not the parts|zdb6[A - B - C + D = 5] + end \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/qsss/product/concept/img/quantum_safe_architecture.mmd b/collections/manual/knowledge_base/technology/qsss/product/concept/img/quantum_safe_architecture.mmd new file mode 100644 index 0000000..3f7a2eb --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/product/concept/img/quantum_safe_architecture.mmd @@ -0,0 +1,34 @@ +graph TD + subgraph Local laptop, computer or server + user[End User] + protocol[Storage protocol] + qsfs[Filesystem on local OS] + 0store[Quantum Safe storage engine] + end + subgraph Grid storage - metadata + etcd1[ETCD-1] + etcd2[ETCD-2] + etcd3[ETCD-3] + end + subgraph Grid storage - zero proof data + zdb1[ZDB-1] + zdb2[ZDB-2] + zdb3[ZDB-3] + zdb4[ZDB-4] + zdb5[ZDB-5] + zdb6[ZDB-6] + zdb7[ZDB-7] + user -.- protocol + protocol -.- qsfs + qsfs --- 0store + 0store --- etcd1 + 0store --- etcd2 + 0store --- etcd3 + 0store <-.-> zdb1[ZDB-1] + 0store <-.-> zdb2[ZDB-2] + 0store <-.-> zdb3[ZDB-3] + 0store <-.-> zdb4[ZDB-4] + 0store <-.-> zdb5[ZDB-5] + 0store <-.-> zdb6[ZDB-...] + 0store <-.-> zdb7[ZDB-N] + end \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/qsss/product/file_system/img/create_png b/collections/manual/knowledge_base/technology/qsss/product/file_system/img/create_png new file mode 100755 index 0000000..b232adf --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/product/file_system/img/create_png @@ -0,0 +1,9 @@ +#!/bin/bash + +for name in ./*.mmd +do + output=$(basename $name mmd)png + echo $output + mmdc -i $name -o $output -w 4096 -H 2160 -b transparant + echo $name +done diff --git a/collections/manual/knowledge_base/technology/qsss/product/file_system/img/qsss_intro_.jpg b/collections/manual/knowledge_base/technology/qsss/product/file_system/img/qsss_intro_.jpg new file mode 100644 index 0000000..25fda06 Binary files /dev/null and b/collections/manual/knowledge_base/technology/qsss/product/file_system/img/qsss_intro_.jpg differ diff --git a/collections/manual/knowledge_base/technology/qsss/product/file_system/img/qsstorage_architecture.jpg b/collections/manual/knowledge_base/technology/qsss/product/file_system/img/qsstorage_architecture.jpg new file mode 100644 index 0000000..811e6ab Binary files /dev/null and b/collections/manual/knowledge_base/technology/qsss/product/file_system/img/qsstorage_architecture.jpg differ diff --git a/collections/manual/knowledge_base/technology/qsss/product/file_system/qss_filesystem.md b/collections/manual/knowledge_base/technology/qsss/product/file_system/qss_filesystem.md new file mode 100644 index 0000000..54c3638 --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/product/file_system/qss_filesystem.md @@ -0,0 +1,39 @@ + + +![](img/qsss_intro_.jpg) + +# Quantum Safe Filesystem + +A redundant filesystem, can store PB's (millions of gigabytes) of information. + +Unique features: + +- Unlimited scalable (many petabytes) filesystem +- Quantum Safe: + - On the TFGrid, no farmer knows what the data is about + - Even a quantum computer cannot decrypt +- Data can't be lost + - Protection for [datarot](datarot), data will autorepair +- Data is kept for ever +- Data is dispersed over multiple sites +- Sites can go down, data not lost +- Up to 10x more efficient than storing on classic storage cloud systems +- Can be mounted as filesystem on any OS or any deployment system (OSX, Linux, Windows, Docker, Kubernetes, TFGrid, ...) +- Compatible with +- all data workloads (not high performance data driven workloads like a database) +- Self-healing: when a node or disk lost, storage system can get back to original redundancy level +- Helps with compliance to regulations like GDPR (as the hosting facility has no view on what is stored, information is encrypted and incomplete) +- Hybrid: can be installed onsite, public, private, ... +- Read-write caching on encoding node (the front end) + + +## Architecture + +By using our filesystem inside a Virtual Machine or Kubernetes the TFGrid user can deploy any storage application on top e.g. Minio for S3 storage, OwnCloud as online fileserver. + +![](img/qsstorage_architecture.jpg) + +Any storage workload can be deployed on top of the zstor. + +!!!def alias:quantumsafe_filesystem,planetary_fs,planet_fs,quantumsafe_file_system,zstor,qsfs + +!!!include:qsss_toc \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/qsss/product/file_system/qss_system.mmd b/collections/manual/knowledge_base/technology/qsss/product/file_system/qss_system.mmd new file mode 100644 index 0000000..5c8e8b7 --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/product/file_system/qss_system.mmd @@ -0,0 +1,14 @@ +graph TD +subgraph Data Ingress and Egress +qss[Quantum Safe Storage Engine] +end +subgraph Physical Data storage +st1[Virtual Storage Device 1] +st2[Virtual Storage Device 2] +st3[Virtual Storage Device 3] +st4[Virtual Storage Device 4] +st5[Virtual Storage Device 5] +st6[Virtual Storage Device 6] +st7[Virtual Storage Device 7] +qss -.-> st1 & st2 & st3 & st4 & st5 & st6 & st7 +end \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/qsss/product/img/create_png b/collections/manual/knowledge_base/technology/qsss/product/img/create_png new file mode 100755 index 0000000..b232adf --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/product/img/create_png @@ -0,0 +1,9 @@ +#!/bin/bash + +for name in ./*.mmd +do + output=$(basename $name mmd)png + echo $output + mmdc -i $name -o $output -w 4096 -H 2160 -b transparant + echo $name +done diff --git a/collections/manual/knowledge_base/technology/qsss/product/img/data_origin.mmd b/collections/manual/knowledge_base/technology/qsss/product/img/data_origin.mmd new file mode 100644 index 0000000..52c61dc --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/product/img/data_origin.mmd @@ -0,0 +1,13 @@ +graph TD + subgraph Data Origin + file[Large chunk of data = part_1part_2part_3part_4] + parta[part_1] + partb[part_2] + partc[part_3] + partd[part_4] + file -.- |split part_1|parta + file -.- |split part_2|partb + file -.- |split part 3|partc + file -.- |split part 4|partd + parta --> partb --> partc --> partd + end \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/qsss/product/img/data_substitution.mmd b/collections/manual/knowledge_base/technology/qsss/product/img/data_substitution.mmd new file mode 100644 index 0000000..89a1212 --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/product/img/data_substitution.mmd @@ -0,0 +1,20 @@ +graph TD + subgraph Data Substitution + parta[part_1] + partb[part_2] + partc[part_3] + partd[part_4] + parta -.-> vara[ A = part_1] + partb -.-> varb[ B = part_2] + partc -.-> varc[ C = part_3] + partd -.-> vard[ D = part_4] + end + subgraph Create equations with the data parts + eq1[A + B + C + D = 6] + eq2[A + B + C - D = 3] + eq3[A + B - C - D = 10] + eq4[ A - B - C - D = -4] + eq5[ A - B + C + D = 0] + eq6[ A - B - C + D = 5] + vara & varb & varc & vard --> eq1 & eq2 & eq3 & eq4 & eq5 & eq6 + end \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/qsss/product/img/qsfs_principle.mmd b/collections/manual/knowledge_base/technology/qsss/product/img/qsfs_principle.mmd new file mode 100644 index 0000000..15a8b2f --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/product/img/qsfs_principle.mmd @@ -0,0 +1,44 @@ +rgraph TD + subgraph Data Origin + file[Large chunk of data = part_1part_2part_3part_4] + parta[part_1] + partb[part_2] + partc[part_3] + partd[part_4] + file -.- |split part_1|parta + file -.- |split part_2|partb + file -.- |split part 3|partc + file -.- |split part 4|partd + parta --> partb --> partc --> partd + parta -.-> vara[ A = part_1] + partb -.-> varb[ B = part_2] + partc -.-> varc[ C = part_3] + partd -.-> vard[ D = part_4] + end + subgraph Create equations with the data parts + eq1[A + B + C + D = 6] + eq2[A + B + C - D = 3] + eq3[A + B - C - D = 10] + eq4[ A - B - C - D = -4] + eq5[ A - B + C + D = 0] + eq6[ A - B - C + D = 5] + vara & varb & varc & vard --> eq1 & eq2 & eq3 & eq4 & eq5 & eq6 + end + subgraph Disk 1 + eq1 --> |store the unique equation, not the parts|zdb1[A + B + C + D = 6] + end + subgraph Disk 2 + eq2 --> |store the unique equation, not the parts|zdb2[A + B + C - D = 3] + end + subgraph Disk 3 + eq3 --> |store the unique equation, not the parts|zdb3[A + B - C - D = 10] + end + subgraph Disk 4 + eq4 --> |store the unique equation, not the parts|zdb4[A - B - C - D = -4] + end + subgraph Disk 5 + eq5 --> |store the unique equation, not the parts|zdb5[ A - B + C + D = 0] + end + subgraph Disk 6 + eq6 --> |store the unique equation, not the parts|zdb6[A - B - C + D = 5] + end \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/qsss/product/img/qss_system.jpg b/collections/manual/knowledge_base/technology/qsss/product/img/qss_system.jpg new file mode 100644 index 0000000..3c4656e Binary files /dev/null and b/collections/manual/knowledge_base/technology/qsss/product/img/qss_system.jpg differ diff --git a/collections/manual/knowledge_base/technology/qsss/product/img/quantumsafe_storage_algo.jpg b/collections/manual/knowledge_base/technology/qsss/product/img/quantumsafe_storage_algo.jpg new file mode 100644 index 0000000..448c7a7 Binary files /dev/null and b/collections/manual/knowledge_base/technology/qsss/product/img/quantumsafe_storage_algo.jpg differ diff --git a/collections/manual/knowledge_base/technology/qsss/product/img/tf_banner_grid_.jpg b/collections/manual/knowledge_base/technology/qsss/product/img/tf_banner_grid_.jpg new file mode 100644 index 0000000..fb093de Binary files /dev/null and b/collections/manual/knowledge_base/technology/qsss/product/img/tf_banner_grid_.jpg differ diff --git a/collections/manual/knowledge_base/technology/qsss/product/qss_algorithm.md b/collections/manual/knowledge_base/technology/qsss/product/qss_algorithm.md new file mode 100644 index 0000000..b92dfaa --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/product/qss_algorithm.md @@ -0,0 +1,82 @@ +# Quantum Safe Storage Algoritm + +![](img/tf_banner_grid_.jpg) + +The Quantum Safe Storage Algorithm is the heart of the Storage engine. The storage engine takes the original data objects and creates data part descriptions that it stores over many virtual storage devices (ZDB/s) + + +![](../img/.jpg) + +Data gets stored over multiple ZDB's in such a way that data can never be lost. + +Unique features + +- data always append, can never be lost +- even a quantum computer cannot decrypt the data +- is spread over multiple sites, sites can be lost, data will still be available +- protects for [datarot](datarot) + +### Why + +Today we produce more data than ever before. We could not continue to make full copies of data to make sure it is stored reliably. This will simply not scale. We need to move from securing the whole dataset to securing all the objects that make up a dataset. + +ThreeFold is using space technology to store data (fragments) over multiple devices (physical storage devices in 3Nodes). The solution does not distribute and store parts of an object (file, photo, movie...) but describes the part of an object. This could be visualized by thinking of it as equations. + + +### Details + +Let a,b,c,d.... be the parts of that original object. You could create endless unique equations using these parts. A simple example: let's assume we have 3 parts of original objects that have the following values: +``` +a=1 +b=2 +c=3 +``` +(and for reference that part of real-world objects is not a simple number like `1` but a unique digital number describing the part, like the binary code for it `110101011101011101010111101110111100001010101111011.....`). With these numbers we could create endless amounts of equations: +``` +1: a+b+c=6 +2: c-b-a=0 +3: b-c+a=0 +4: 2b+a-c=2 +5: 5c-b-a=12 +...... +``` +Mathematically we only need 3 to describe the content (=value) of the fragments. But creating more adds reliability. Now store those equations distributed (one equation per physical storage device) and forget the original object. So we no longer have access to the values of a, b, c and see and we just remember the locations of all the equations created with the original data fragments. Mathematically we need three equations (any 3 of the total) to recover the original values for a, b or c. So do a request to retrieve 3 of the many equations and the first 3 to arrive are good enough to recalculate the original values. Three randomly retrieved equations are: + +``` +5c-b-a=12 +b-c+a=0 +2b+a-c=2 +``` +And this is a mathematical system we could solve: +- First: `b-c+a=0 -> b=c-a` +- Second: `2b+a-c=2 -> c=2b+a-2 -> c=2(c-a)+a-2 -> c=2c-2a+a-2 -> c=a+2` +- Third: `5c-b-a=12 -> 5(a+2)-(c-a)-a=12 -> 5a+10-(a+2)+a-a=12 -> 5a-a-2=2 -> 4a=4 -> a=1` + +Now that we know `a=1` we could solve the rest `c=a+2=3` and `b=c-a=2`. And we have from 3 random equations regenerated the original fragments and could now recreate the original object. + +The redundancy and reliability in such system comes in the form of creating (more than needed) equations and storing them. As shown these equations in any random order could recreate the original fragments and therefore +redundancy comes in at a much lower overhead. + +### Example of 16/4 + +![](img/quantumsafe_storage_algo.jpg) + + +Each object is fragmented into 16 parts. So we have 16 original fragments for which we need 16 equations to mathematically describe them. Now let's make 20 equations and store them dispersedly on 20 devices. To recreate the original object we only need 16 equations, the first 16 that we find and collect which allows us to recover the fragment and in the end the original object. We could lose any 4 of those original 20 equations. + +The likelihood of losing 4 independent, dispersed storage devices at the same time is very low. Since we have continuous monitoring of all of the stored equations, we could create additional equations immediately when one of them is missing, making it an auto-regeneration of lost data and a self-repairing storage system. The overhead in this example is 4 out of 20 which is a mere **20%** instead of (up to) **400%.** + +### Content distribution Policy (10/50) + +This system can be used as backend for content delivery networks. + +Imagine a movie being stored on 60 locations from which we can loose 50 at the same time. + +If someone now wants to download the data the first 10 locations who answer fastest will provide enough of the data parts to allow the data to be rebuild. + +The overhead here is much more compared to previous example but stil order of magnitude lower compared to other cdn systems. + + +!!!def alias:quantumsafe_storage_algo,quantumsafe_storage_algorithm,space_algo,space_algorithm,quantum_safe_storage_algo,qs_algo,qs_codec + +!!!include:qsss_toc \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/qsss/product/qss_datarot.md b/collections/manual/knowledge_base/technology/qsss/product/qss_datarot.md new file mode 100644 index 0000000..9ae4e4e --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/product/qss_datarot.md @@ -0,0 +1,8 @@ +# Datarot Cannot Happen on our Storage System + +Fact that data storage degrades over time and becomes unreadable, on e.g. a harddisk. +The storage system provided by ThreeFold intercepts this silent data corruption, making that it can pass by unnotified. + +> see also https://en.wikipedia.org/wiki/Data_degradation + +!!!def alias:bitrot,datarot \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/qsss/product/qss_zero_knowledge_proof.md b/collections/manual/knowledge_base/technology/qsss/product/qss_zero_knowledge_proof.md new file mode 100644 index 0000000..71f4de3 --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/product/qss_zero_knowledge_proof.md @@ -0,0 +1,11 @@ + +# Zero Knowledge Proof Storage system. + +The quantum save storage system is zero knowledge proof compliant. The storage system is made up / split into 2 components: The actual storage devices use to store the data (ZDB's) and the Quantum Safe Storage engine. + + +![](img/qss_system.jpg) + +The zero proof knowledge compliancy comes from the fact the all the physical storage nodes (3nodes) can proof that they store a valid part of what data the quantum safe storage engine (QSSE) has stored on multiple independent devices. The QSSE can validate that all the QSSE storage devices have a valid part of the original information. The storage devices however have no idea what the original stored data is as they only have a part (description) of the origina data and have no access to the original data part or the complete origal data objects. + +!!!def \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/qsss/qss_benefits.md b/collections/manual/knowledge_base/technology/qsss/qss_benefits.md new file mode 100644 index 0000000..7fb099b --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/qss_benefits.md @@ -0,0 +1,12 @@ +![](img/filesystem_abstract.jpg) + +# Quantum Safe Storage System benefits + +!!!include:qss_benefits_ + +!!!include:qsss_toc + + + + + diff --git a/collections/manual/knowledge_base/technology/qsss/qss_benefits_.md b/collections/manual/knowledge_base/technology/qsss/qss_benefits_.md new file mode 100644 index 0000000..bb27444 --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/qss_benefits_.md @@ -0,0 +1,6 @@ +- Up to 10x more efficient (power and usage of hardware) +- Ultra reliable, data can not be lost +- Ultra safe & private +- Ultra scalable +- Sovereign, data is close to you in the country of your choice +- Truly peer-to-peer, by everyone for everyone diff --git a/collections/manual/knowledge_base/technology/qsss/qsss.md b/collections/manual/knowledge_base/technology/qsss/qsss.md new file mode 100644 index 0000000..e9b34c4 --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/qsss.md @@ -0,0 +1,2 @@ + +!!!include:qsss_home \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/qsss/qsss2_home.md b/collections/manual/knowledge_base/technology/qsss/qsss2_home.md new file mode 100644 index 0000000..d62400a --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/qsss2_home.md @@ -0,0 +1,21 @@ +![](img/qsstorage_architecture.jpg) + +# Quantum Safe Storage System + +Imagine a storage system with the following benefits + +!!!include:qss_benefits_ + +> This is not a dream but does exist and is the underpinning of the TFGrid. + +Our storage architecture follows the true peer-to-peer design of the TF grid. Any participating node only stores small incomplete parts of objects (files, photos, movies, databases...) by offering a slice of the present (local) storage devices. Managing the storage and retrieval of all of these distributed fragments is done by a software that creates development or end-user interfaces for this storage algorithm. We call this '**dispersed storage**'. + +Peer-to-peer provides the unique proposition of selecting storage providers that match your application and service of business criteria. For example, you might be looking to store data for your application in a certain geographic area (for governance and compliance) reasons. Also, you might want to use different "storage policies" for different types of data. Examples are live versus archived data. All of these uses cases are possible with this storage architecture and could be built by using the same building blocks produced by farmers and consumed by developers or end-users. + + +!!!include:qsss_toc + +!!!def alias:qsss,quantum_safe_storage_system + + + diff --git a/collections/manual/knowledge_base/technology/qsss/qsss_home.md b/collections/manual/knowledge_base/technology/qsss/qsss_home.md new file mode 100644 index 0000000..a6efb37 --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/qsss_home.md @@ -0,0 +1,34 @@ + + +

Quantum Safe Storage System

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [QSS Benefits](#qss-benefits) +- [Peer-to-Peer Design](#peer-to-peer-design) +- [Overview](#overview) + +*** + +## Introduction + +ThreeFold offers a quantum safe storage system (QSS). QSS is a decentralized, globally distributed data storage system. It is unbreakable, self-healing, append-only and immutable. + +## QSS Benefits + +Imagine a storage system with the following benefits: + +{{#include ./qss_benefits_.md}} + +This is not a dream but does exist and is the underpinning of the TFGrid. + +## Peer-to-Peer Design + +Our storage architecture follows the true peer-to-peer design of the TF grid. Any participating node only stores small incomplete parts of objects (files, photos, movies, databases...) by offering a slice of the present (local) storage devices. Managing the storage and retrieval of all of these distributed fragments is done by a software that creates development or end-user interfaces for this storage algorithm. We call this '**dispersed storage**'. + +Peer-to-peer provides the unique proposition of selecting storage providers that match your application and service of business criteria. For example, you might be looking to store data for your application in a certain geographic area (for governance and compliance) reasons. Also, you might want to use different "storage policies" for different types of data. Examples are live versus archived data. All of these uses cases are possible with this storage architecture and could be built by using the same building blocks produced by farmers and consumed by developers or end-users. + +## Overview + +![](img/qsss_intro_0_.jpg) \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/qsss/qsss_toc.md b/collections/manual/knowledge_base/technology/qsss/qsss_toc.md new file mode 100644 index 0000000..57670da --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/qsss_toc.md @@ -0,0 +1,7 @@ +

Quantum Safe Storage More Info

+ +

Table of Contents

+ +- [Quantum Safe Storage Overview](./qsss_home.md) +- [Quantum Safe Filesystem](qss_filesystem) +- quantumsafe_storage_algo \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/qsss/roadmap/img/roadmap.jpg b/collections/manual/knowledge_base/technology/qsss/roadmap/img/roadmap.jpg new file mode 100644 index 0000000..ccb52e9 Binary files /dev/null and b/collections/manual/knowledge_base/technology/qsss/roadmap/img/roadmap.jpg differ diff --git a/collections/manual/knowledge_base/technology/qsss/roadmap/quantumsafe_roadmap.md b/collections/manual/knowledge_base/technology/qsss/roadmap/quantumsafe_roadmap.md new file mode 100644 index 0000000..3613d08 --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/roadmap/quantumsafe_roadmap.md @@ -0,0 +1,7 @@ +![roadmap](img/roadmap.jpg) + +# Roadmap + +>TODO: to be filled in + +> See Quantum Safe Storage project [kanban](https://github.com/orgs/threefoldtech/projects/152). \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/qsss/sidebar.md b/collections/manual/knowledge_base/technology/qsss/sidebar.md new file mode 100644 index 0000000..ec25d46 --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/sidebar.md @@ -0,0 +1,20 @@ +- [**Home**](@threefold_home) +- [**Technology**](@technology) +------------ +**Quantum Safe Filesystem** + +- [Home](@qsss_home) +- [Filesystem](@qss_filesystem) +- [Algorithm](@qss_algorithm) + + + + + + + + diff --git a/collections/manual/knowledge_base/technology/qsss/specs_todo/img/specs_header.jpg b/collections/manual/knowledge_base/technology/qsss/specs_todo/img/specs_header.jpg new file mode 100644 index 0000000..e84a21f Binary files /dev/null and b/collections/manual/knowledge_base/technology/qsss/specs_todo/img/specs_header.jpg differ diff --git a/collections/manual/knowledge_base/technology/qsss/specs_todo/policy.md b/collections/manual/knowledge_base/technology/qsss/specs_todo/policy.md new file mode 100644 index 0000000..3d58d59 --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/specs_todo/policy.md @@ -0,0 +1,3 @@ +# zstor filesystem (zstor) Policy + +Describe how it works... diff --git a/collections/manual/knowledge_base/technology/qsss/specs_todo/qss_specs.md b/collections/manual/knowledge_base/technology/qsss/specs_todo/qss_specs.md new file mode 100644 index 0000000..0e66004 --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/specs_todo/qss_specs.md @@ -0,0 +1,68 @@ +![specs](img/specs_header.jpg) + +# System requirements + +System that is easy to provision storage capacity on the TF grid +- user can create X storage nodes on a random or specific locations +- user can list their storage nodes +- check node status/info in some shape or form in a monitoring solution +- external authentication/payment system using threefold connect app +- user can delete their storage nodes +- user can provision mode storage nodes +- user can increase total size of storage solutions +- user can install the quantum safe filesystem on any linux based system, physical or virtual + +# Non-functional requirements + +- How many expected concurrent users: not application - each user will have it's own local binary and software install. +- How many users on the system: 10000-100000 +- Data store: fuse filesystem plus local and grid based ZDB's +- How critical is the system? it needs to be alive all the time. +- What do we know about the external payment system? +Threefold Connect, use QR code for payments and validate on the blockchain +- Life cycle of the storage nodes? How does the user keep their nodes alive? The local binary / application has a wallet from which it can pay for the existing and new storage devices. This wallet needs to be kept topped up. +- When the user is asked to sign the deployment of 20 storage nodes: + - will the user sign each single reservation? or should the system itself sign it for the user and show the QR code only for payments? +- Payments should be done to the a specific user wallet and with a background service with extend the user pools or /extend in the bot conversation? to be resolved +- Configuration and all metadata should be stored as a hash / private key. With this information you are able to regain access to your stored data from everywhere. + + +# Components mapping / SALs + +- Entities: User, storage Node +- ReservationBuilder: builds reservation for the user to sign (note the QR code data size limit is 3KB) +- we need to define how many nodes can we deploy at a time, shouldn't exceed 3KB for the QR Code, if it exceeds the limit should we split the reservations? + +- UserInfo: user info are loaded from threefold login system +- Blockchain Node (role, configurations) +- Interface to Threefold connect (authentication+payment) /identify + generate payments +- User notifications / topup +- Monitoring: monitoring + redeployment of the solutions again if they go down, when redeploying who owns the reservation to delete -can be fixed with delete signers field- and redeploy, but to deploy we need the user identity or should we inform the user in telegram and ask him to /redeploy +- Logging + +# Tech stack + +- [JS-SDK[](https://github.com/threefoldtech/js-sdk) (?) +- [0-db](https://github.com/threefoldtech/0-db-s) +- [0-db-fs](https://github.com/threefoldtech/0-db-fs) +- [0-stor_v2](https://github.com/threefoldtech/0-stor_v2) +- [quantum_storage](https://github.com/threefoldtech/quantum-storage) + + + +# Blockers + + +Idea from blockchain jukekebox brainstorm: + +## payments +- QR code contains threebot://signandpay/#https://tf.grid/api/a6254a4a-bdf4-11eb-8529-0242ac130003 (can also be uni link) +- App gets URL +- URL gives data +- { DataToSign : {RESERVATIONDETAILS}, Payment: {PAYMENTDETAILS}, CallbackUrl: {CALLBACKURL} } +- App signs reservation, makes payment, calls callbackurl { SingedData : {SINGEDRESERVATION}, Payment: {FINISHED_PAYMENTDETAILS}} + +Full flow: +- User logs in using normal login flow +- User scans QR +- User confirms reservation and payment in the app diff --git a/collections/manual/knowledge_base/technology/qsss/specs_todo/quantum_safe_filesystem.md b/collections/manual/knowledge_base/technology/qsss/specs_todo/quantum_safe_filesystem.md new file mode 100644 index 0000000..cb47e70 --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/specs_todo/quantum_safe_filesystem.md @@ -0,0 +1,3 @@ +# Specs zstor filesystem + +- [Quantum Safe File System](quantum_safe_filesystem_2_6) \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/qsss/specs_todo/quantum_safe_filesystem_2_6.md b/collections/manual/knowledge_base/technology/qsss/specs_todo/quantum_safe_filesystem_2_6.md new file mode 100644 index 0000000..5d5b0e2 --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/specs_todo/quantum_safe_filesystem_2_6.md @@ -0,0 +1,15 @@ +# zstor filesystem 2.6 + +## requirements + +- redundancy/uptime + - data can never be lost if older than 20 min (avg will be 7.5 min, because we use 15 min push) + - if a datacenter or node goes down and we are in storage policy the storage stays available +- reliability + - data cannot have hidden data corruption, when bitrot the FS will automatically recover +- self healing + - when data policy is lower than required level then should re-silver (means make sure policy is intact again) + +## NEW + +- 100% redundancy \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/qsss/specs_todo/quantum_safe_filesystem_architecture.md b/collections/manual/knowledge_base/technology/qsss/specs_todo/quantum_safe_filesystem_architecture.md new file mode 100644 index 0000000..ef373f7 --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/specs_todo/quantum_safe_filesystem_architecture.md @@ -0,0 +1,37 @@ + +## zstor Architecture + +```mermaid +graph TD + subgraph TFGridLoc2 + ZDB5 + ZDB6 + ZDB7 + ZDB8 + ETCD3 + end + subgraph TFGridLoc1 + ZDB1 + ZDB2 + ZDB3 + ZDB4 + ETCD1 + ETCD2 + KubernetesController --> ETCD1 + KubernetesController --> ETCD2 + KubernetesController --> ETCD3 + end + + + subgraph eVDC + PlanetaryFS --> ETCD1 & ETCD2 & ETCD3 + PlanetaryFS --> MetadataStor + PlanetaryFS --> ReadWriteCache + MetadataStor --> LocalZDB + ReadWriteCache --> LocalZDB + LocalZDB & PlanetaryFS --> ZeroStor + ZeroStor --> ZDB1 & ZDB2 & ZDB3 & ZDB4 & ZDB5 & ZDB6 & ZDB7 & ZDB8 + end + + +``` \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/qsss/specs_todo/quantum_safe_filesystem_sequence_graph.md b/collections/manual/knowledge_base/technology/qsss/specs_todo/quantum_safe_filesystem_sequence_graph.md new file mode 100644 index 0000000..28b43d7 --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/specs_todo/quantum_safe_filesystem_sequence_graph.md @@ -0,0 +1,40 @@ +## zstor Sequence Diagram + +```mermaid +sequenceDiagram + participant user as user + participant fs as 0-fs + participant lzdb as local 0-db + participant zstor as 0-stor + participant etcd as ETCD + participant zdbs as backend 0-dbs + participant mon as Monitor + + alt Writing data + user->>fs: write data to files + fs->>lzdb: write data blocks + opt Datafile is full + lzdb->>zstor: encode and chunk data file + zstor->>zdbs: write encoded datafile chunks to the different backends + zstor->>etcd: write metadata about encoded file to metadata storage + end + else Reading data + user->>fs: read data from file + fs->>lzdb: read data blocks + opt Datafile is missing + lzdb->>zstor: request retrieval of data file + zstor->>etcd: load file encoding and storage metadata + zstor->>zdbs: read encoded datafile chunks from multiple backends and rebuilds original datafile + zstor->>lzdb: replaces the missing datafile + end + end + + loop Monitor action + mon->>lzdb: delete local data files which are full and have been encoded, AND have not been accessed for some time + mon->>zdbs: monitors health of used namespaces + opt Namespace is lost or corrupted + mon->>zstor: checks storage configuration + mon->>zdbs: rebuilds missing shard on new namespace from storage config + end + end +``` diff --git a/collections/manual/knowledge_base/technology/qsss/testplan/img/failure_points.jpg b/collections/manual/knowledge_base/technology/qsss/testplan/img/failure_points.jpg new file mode 100644 index 0000000..5bb3924 Binary files /dev/null and b/collections/manual/knowledge_base/technology/qsss/testplan/img/failure_points.jpg differ diff --git a/collections/manual/knowledge_base/technology/qsss/testplan/img/testplan_points.mmd b/collections/manual/knowledge_base/technology/qsss/testplan/img/testplan_points.mmd new file mode 100644 index 0000000..7ffae96 --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/testplan/img/testplan_points.mmd @@ -0,0 +1,34 @@ +graph TD + subgraph Local laptop, computer or server + user[End User *11* ] + protocol[Storage Protocol *6*] + qsfs[Filesystem *7*] + 0store[Storage Engine *8*] + end + subgraph Grid storage - metadata + etcd1[ETCD-1 *9*] + etcd2[ETCD-2 *9*] + etcd3[ETCD-3 *9*] + end + subgraph Grid storage - zero proof data + zdb1[ZDB-1 *10*] + zdb2[ZDB-2 *10*] + zdb3[ZDB-3 *10*] + zdb4[ZDB-4 *10*] + zdb5[ZDB-5 *10*] + zdb6[ZDB-... *10*] + zdb7[ZDB-N *10*] + user -.- |-1-| protocol + protocol -.- |-2-| qsfs + qsfs --- |-3-| 0store + 0store --- |-4-| etcd1 + 0store --- |-4-| etcd2 + 0store --- |-4-| etcd3 + 0store <-.-> |-5-| zdb1 + 0store <-.-> |-5-| zdb2 + 0store <-.-> |-5-| zdb3 + 0store <-.-> |-5-| zdb4 + 0store <-.-> |-5-| zdb5 + 0store <-.-> |-5-| zdb6 + 0store <-.-> |-5-| zdb7 + end \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/qsss/testplan/testplan.md b/collections/manual/knowledge_base/technology/qsss/testplan/testplan.md new file mode 100644 index 0000000..4b4a431 --- /dev/null +++ b/collections/manual/knowledge_base/technology/qsss/testplan/testplan.md @@ -0,0 +1,131 @@ +## Quantum Safe Storage Testplan + +### Prerequisites +The quantum safe storage system runs on the following platforms +- bare metal linux installation. +- kubernetes cluster with Helm installation scripts. + +### Installation +For instructions in installing the QSFS please see the manual [here](../manual/README.md). + +#### Bare metal Linux +The software comes as a single binary which will install all the necessary components (local) to run the quantum safe file system. The server in the storage front end and the TF Grid is the storage backend. The storage backend configuration can be provided in two different ways: +- the user has access to the eVDC facility of Threefold and is able to download the kubernetes configuration file. +- the binary has built in options to ask for backend storage components to be provisioned an delivered. + +### Architecture and failure modes + +Quantum Safe Storage is built from a number of components. Components are connected and interacting and therefore there are a number of failure modes that need to be considered for the test plan. + +Failure modes which we have testplans and cases for: + + - [Enduser](#enduser) + - [Storage protocol](#storage-protocol) + - [Filesystem](#filesystem) + - [Storage engine](#storage-engine) + - [Metadata store](#metadata-store) + - [Physical storage devices](#physical-storage-devices) + - [Interaction Enduser - Storage Protocol](#enduser-to-storage-protocol) + - [Interaction Storage Protocol - Filesystem](#storage-protocol---filesystem) + - [Interaction Filesystem - Storage Engine](#filesystem-to-storage-engine) + - [Interaction Storage Engine - Physical Storage Device](#storage-engine-to-physical-storage-device) + - [Interaction Storage Engine - Metadata Store](#storage-engine-to-metadata-store) + +![](img/failure_points.jpg) + +#### Enduser + +Failure scanerio's +- End user enters weird / wrong data at during QSS install +- End user deletes / changes things on the QSS engine host + - End user stops / deletes the storage protocol application of any of its configuration / temp storage facilities + - End user deletes the quantum safe file system and / or it configuration files + - End user deletes the storage enginer and / or its configuration and temp storage files. + + +Tests to conduct +#### Storage protocol + + +Failure scanerio's + +Storage protocol can be anything from IPFS, minio, sFTP and all the other protocols available. The possible failure modes for these are endless to test. For a couple of well knownm protocols we will do some basic testing +- **minio** +- **sFTP** +- **syncthing** +- **scp** + +For all these protocols a number of simple tests can he done: + - stop the protocol binary while data is being pushed in. restart the binary and see if normal operation commences (data loss eg. data in transfer when failure happened is accaptable). + - make changes to the config file (policy, parameters, etc) and see if normal operation commences. + +Tests to conduct +#### Filesystem + +Direct access to the filesystem and eliminates the dependency of the interface protocol. The filesystem provides a well knmow interface to browse, create, store and retrieve data in an easy and structured way. + +Tests to conduct. Testing is required to see if the filesystem can deal with: + - create a large number of nested directories and see if all this is causing problems + - create a large number fo small files and see if this is creating problems + - create a number of very large files (1GB+) and see if this is causing any problems. + - delete a (large) number of files + - delete a (large) number of derectories + - move a (large) number of files + - move a (large) number of directories + +#### Storage engine + +The storage engine takes files (data) and runs a "forward error correcting algorithm" on the data. The algorithm requires a "storage" policy to specify how to treat the inbound data and where to store the resuling data descriptions. This engine is non-redundant at this point in time and we should test how it behaves with certain failure modes. + +Tests to conduct: + - storage policy is change during operation of the storage engine + - physical storage devices are added + - physical storage devices are deleted + - storage policy (example - 16:4) is changed during operation + - other configuration components are changed + - physical storage access passwords + - encryption key + +#### Metadata store + +The metadatastore stores the information needed to retrieve the part of descriptions that make up an original piece of data. These metadata stores are redundant (3x?) and store all data required. + +Testing needs to be done on: + - corruption / deleting one out of the three metadata stores + - corruption / deleting two out of three metadata stores + - rebuilding failed metadata stores + - create high workloads of adding new data and retrieving stored data - no longer available in a local cache. + +#### Physical storage devices + +Physical storage devices are ZDB's on one the the TF Grid networks (Mainnet, Testnet, Devnet). ZDB's manage slices of physical disk space on HDD's and SSD's. They have a very simple operational model and API interface. ZDB's are operating in "append only" mode by default. + +Testing needs to be done: + - create a high workload writing and reading a the same time + - get + +#### Enduser to Storage Protocol + +Failure scanerio's + +Tests to conduct +#### Storage Protocol to Filesystem + +Failure scanerio's + +Tests to conduct +#### Filesystem to Storage Engine + +Failure scanerio's + +Tests to conduct +#### Storage Engine to Physical Storage Device + +Failure scanerio's + +Tests to conduct +#### Storage Engine to Metadata Store + +Failure scanerio's + +Tests to conduct diff --git a/collections/manual/knowledge_base/technology/smartcontract_it/img/iac_overview.jpg b/collections/manual/knowledge_base/technology/smartcontract_it/img/iac_overview.jpg new file mode 100644 index 0000000..2687c63 Binary files /dev/null and b/collections/manual/knowledge_base/technology/smartcontract_it/img/iac_overview.jpg differ diff --git a/collections/manual/knowledge_base/technology/smartcontract_it/img/smart_contract_it_.jpg b/collections/manual/knowledge_base/technology/smartcontract_it/img/smart_contract_it_.jpg new file mode 100644 index 0000000..e3c86d1 Binary files /dev/null and b/collections/manual/knowledge_base/technology/smartcontract_it/img/smart_contract_it_.jpg differ diff --git a/collections/manual/knowledge_base/technology/smartcontract_it/img/smartcontract3_flow.jpg b/collections/manual/knowledge_base/technology/smartcontract_it/img/smartcontract3_flow.jpg new file mode 100644 index 0000000..801a591 Binary files /dev/null and b/collections/manual/knowledge_base/technology/smartcontract_it/img/smartcontract3_flow.jpg differ diff --git a/collections/manual/knowledge_base/technology/smartcontract_it/img/smartcontract_3bot.jpg b/collections/manual/knowledge_base/technology/smartcontract_it/img/smartcontract_3bot.jpg new file mode 100644 index 0000000..c58ad70 Binary files /dev/null and b/collections/manual/knowledge_base/technology/smartcontract_it/img/smartcontract_3bot.jpg differ diff --git a/collections/manual/knowledge_base/technology/smartcontract_it/img/smartcontract_iac.jpg b/collections/manual/knowledge_base/technology/smartcontract_it/img/smartcontract_iac.jpg new file mode 100644 index 0000000..0718469 Binary files /dev/null and b/collections/manual/knowledge_base/technology/smartcontract_it/img/smartcontract_iac.jpg differ diff --git a/collections/manual/knowledge_base/technology/smartcontract_it/img/smartcontract_it.jpg b/collections/manual/knowledge_base/technology/smartcontract_it/img/smartcontract_it.jpg new file mode 100644 index 0000000..f4e4c88 Binary files /dev/null and b/collections/manual/knowledge_base/technology/smartcontract_it/img/smartcontract_it.jpg differ diff --git a/collections/manual/knowledge_base/technology/smartcontract_it/smartcontract_3bot.md b/collections/manual/knowledge_base/technology/smartcontract_it/smartcontract_3bot.md new file mode 100644 index 0000000..9d262b1 --- /dev/null +++ b/collections/manual/knowledge_base/technology/smartcontract_it/smartcontract_3bot.md @@ -0,0 +1,25 @@ +

Smart Contract For IT 3Bot Integration

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Use Cases](#use-cases) +- [Overview](#overview) + +*** + +## Introduction + +The Smart Contract for IT allows you, your company or your community to execute the storage and running of your files and applications securely with consensus and automatic billing. + +## Use Cases + +With the 3Bot integration, you can use smart contracts to define different sets of Internet resources you need for various types of work, such as storing files, running applications, and communicating across the network. + +You can use smart contracts to define different sets of Internet resources , such as storing files, running applications, communicate across the network, etc. + +You can also define a consensus mechanism and create multi-signatures for smart contract execution or completion to deliver appropriate digital services. + +## Overview + +![](img/smartcontract_3bot.jpg) \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/smartcontract_it/smartcontract_iac.md b/collections/manual/knowledge_base/technology/smartcontract_it/smartcontract_iac.md new file mode 100644 index 0000000..841d268 --- /dev/null +++ b/collections/manual/knowledge_base/technology/smartcontract_it/smartcontract_iac.md @@ -0,0 +1,21 @@ +

Infrastructure As Code

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Overview](#overview) +- [Smart Contract](#smart-contract) + +*** + +## Introduction + +IAC = DevOps is a process framework that ensures collaboration between Development and Operations Team to deploy code to production environment faster in a repeatable and automated way. ... In simple terms, DevOps can be defined as an alignment between development and IT operations with better communication and collaboration. + +## Overview + +![](img/iac_overview.jpg) + +## Smart Contract + +![](img/smartcontract_iac.jpg) \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/smartcontract_it/smartcontract_it.md b/collections/manual/knowledge_base/technology/smartcontract_it/smartcontract_it.md new file mode 100644 index 0000000..bec47ca --- /dev/null +++ b/collections/manual/knowledge_base/technology/smartcontract_it/smartcontract_it.md @@ -0,0 +1,50 @@ +# Smart Contract for IT + +Ability for every developer to launch IT workloads on the TFGrid using our TFGrid primitives. + +![](img/smart_contract_it_.jpg) + + + +## Smart Contract Together with 3bot + +Is for TFGrid 2.0 + +![](img/smartcontract_it.jpg) + +3Bot is your virtual system administrator and can execute IT tasks on your behalf. + +**STEP 1: IT Experts create smart contracts:** + +IT experts create smart contracts describing what needs to be done in order to deploy this architecture. The smart contract has to be specific and describe each little detail of the IT architecture. The experts create knowledge for the 3bots (it's like god defining our DNA of our cells) + +**STEP 2: Business and or Enduser customers consume smart contracts**: + + Users have digital needs and in order to procure services for their digital needs they will find smart contracts describing applications (application setups) meeting their needs. Consumers will instruct their 3bot to deploy an IT workload following their requirements buy using a smart contract created + +* e.g. give me an archive of 1 PB in CH, e.g. deploy a CRM for 100 users, … +* e.g. deploy my new banking app feature X +* e.g. deploy my artificial intelligence data mining job for … + +**STEP 3: The 3bot executes the smart contract:** + +Creates & Registers the “IT” smart contract in the BCDB (Blockchain Database). This is a complete end-to-end deployment cycle for all sorts of IT deployments - both simple and complicated, bound to one location of many. The 3bot will provision all the compute and storage capacity needed to meet the IT architecture’s requirement and do all the commercial trades required to get this. It will then leave instructions for the nodes in a digital notary system in order for nodes to be able to grab instructions on what they have to do in order to meet smart contract completion. The 3bot remains the orchestrator for this smart contract execution and will store and secure all intermediate and final state information in the notary service (blockchain database). + +**STEP 4: Business IT Workload Stakeholders:** + +is optional but when required stakeholder can be defined to give consensus and sign off on the successful execution of the “IT smart contract” delivering the appropriate digital service. Stakeholders can be defined in a “multi signature” blockchain to provide sign off on regulatory, commercial and other business requirements. Approvals can include IT expert checks the quality of the code, a legal guy checks GDPR, a business person checks budget etc. + +**STEP 5: The capacity layer: 3 Nodes…** + +* thousands of 3 nodes can work together to execute and deliver the “IT Smart Contract” (if required) +* verify if consensus was reached between the business stakeholders +* verify the validity of the smart contract and download the “IT workload definition” +* download the right files to execute the smart contract and each file gets verified (signature) +* run the required processes and again signatures are checked to make sure the workload is pure. +* ensures that no person (hacker or IT person) can ever gain access or influence on the execution process. + + +## Remarks + +- in TFGrid 2.x smart contract for IT is implemented using ThreeFold Explorer and multisignature capabilities. +- in TFGrid 3.0 this is being re-implemented on TF-Chain on Parity/Substrate blockchain, to become a fully decentralized process. See [here](smartcontract_tfgrid3). diff --git a/collections/manual/knowledge_base/technology/smartcontract_it/smartcontract_tfgrid3.md b/collections/manual/knowledge_base/technology/smartcontract_it/smartcontract_tfgrid3.md new file mode 100644 index 0000000..a5818b5 --- /dev/null +++ b/collections/manual/knowledge_base/technology/smartcontract_it/smartcontract_tfgrid3.md @@ -0,0 +1,97 @@ +

Smart Contract on TFGrid 3.0

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Architecture](#architecture) +- [1: To deploy a workload, the user interacts with this smart contract pallet and calls: `create_contract` with the input being:](#1-to-deploy-a-workload-the-user-interacts-with-this-smart-contract-pallet-and-calls-create_contract-with-the-input-being) +- [2: The user sends the contractID and workload through the RMB to the destination Node.](#2-the-user-sends-the-contractid-and-workload-through-the-rmb-to-the-destination-node) +- [3: The Node sends consumption reports to the chain](#3-the-node-sends-consumption-reports-to-the-chain) +- [Notes](#notes) + +*** + +## Introduction + +From TFGrid 3.0, the 'Smart Contract for IT' concept for reserving capacity is fully decentralized and runs on TF-Chain, the ThreeFold blockchain infrastructure on Parity Substrate. + +## Architecture + +Two main components play a role in achieving a decentralised consensus between a user and a farmer. + +- TFGrid Substrate Database Pallet TFGrid +- TFGrid Smart Contract + +The TF-Grid Substrate Database will keep a record of all Entities, Twins, Nodes and Farmers in the TF-Grid network. This makes it easy to integrate the Smart Contract on Substrate as well since we can read from that storage in runtime. + +![flow](img/smartcontract3_flow.jpg) + +The Smart Contract on Substrate works as following: + +## 1: To deploy a workload, the user interacts with this smart contract pallet and calls: `create_contract` with the input being: + +The user must instruct his twin to create the contract. *This program containing his digital twin is yet to be defined.* A contract will always belong to a twin and to a node. This relationship is important because only the user's twin and target node's twin can update the contract. + +```js +contract = { + version: contractVersion, + contract_id: contractID, + twin_id: NumericTwinID for the contract, + // node_address is the node address. + node_id: NumericNodeID + // data is the encrypted deployment body. This encrypted the deployment with the **USER** public key. So only the user can read this data later on (or any other key that he keeps safe). + // this data part is read only by the user and can actually hold any information to help him reconstruct his deployment or can be left empty. + data: encrypted(deployment) // optional + // hash: is the deployment predictable hash. the node must use the same method to calculate the challenge (bytes) to compute this same hash. + //used for validating the deployment from node side. + deployment_hash: hash(deployment), + // public_ips: number of ips that need to be reserved by the contract and used by the deployment + public_ips: 0, + state: ContractState (created, deployed), + public_ips_list: list of public ips on this contract +} +``` + +The `node_id` field is the target node's ID. A user can do lookup for a node to find its corresponding ID. + +The workload data is encrypted by the user and contains the workload definition for the node. + +If `public_ips` is specified, the contract will reserve the number of public ips requested on the node's corresponding farm. If there are not enough ips available an error will be returned. If the contract is canceled by either the user or the node, the IPs for that contract will be freed. + +This pallet saves this data to storage and returns the user a `contract_id`. + +## 2: The user sends the contractID and workload through the RMB to the destination Node. + +The Node reads from the [RMB](https://github.com/threefoldtech/rmb) and sees a deploy command, it reads the contractID and workload definition from the payload. +It decodes the workload and reads the contract from chain using the contract ID, the Node will check if the user that created the contract and the deployment hash on the contract is the same as what the Node receives over RMB. If all things check out, the Node deploys the workload. + +## 3: The Node sends consumption reports to the chain + +The Node periodically sends consumption reports back to the chain for each deployed contract. The chain will compute how much is being used and will bill the user based on the farmers prices (the chain can read these prices by quering the farmers storage and reading the pricing data). See [PricingPolicy](https://github.com/threefoldtech/substrate-pallets/blob/03a5823ce79200709d525ec182036b47a60952ef/pallet-tfgrid/src/types.rs#L120). + +A report looks like: + +json +``` +{ + "contract_id": contractID, + "timestamp": "timestampOfReport", + "cru": cpus, + "sru": ssdInBytes, + "hru": hddInBytes, + "mru": memInBytes, + "nru": trafficInBytes +} +``` + +The node can call `add_reports` on this module to submit reports in batches. + +Usage of SU, CU and NU will be computed based on the prices and the rules that Threefold set out for cloud pricing. + +Billing will be done in Database Tokens and will be send to the corresponding farmer. If the user runs out of funds the chain will set the contract state to `cancelled` or it will be removed from storage. The Node needs to act on this 'contract cancelled' event and decommission the workload. + +The main currency of this chain. More information on this is explained here: TODO + +## Notes + +Sending the workloads encrypted to the chain makes sure that nobody except the user can read his deployment data. It also facilitates a way for the user to recreate his workload data from the chain. \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/smartcontract_it/smartcontract_toc.md b/collections/manual/knowledge_base/technology/smartcontract_it/smartcontract_toc.md new file mode 100644 index 0000000..f047e9a --- /dev/null +++ b/collections/manual/knowledge_base/technology/smartcontract_it/smartcontract_toc.md @@ -0,0 +1,7 @@ +

Smart Contract IT

+ +

Table of Contents

+ +- [Introduction](./smartcontract_tfgrid3.md) +- [Infrastructure As Code (IAC)](./smartcontract_iac.md) +- [3Bot Integration](./smartcontract_3bot.md) \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/technology_toc.md b/collections/manual/knowledge_base/technology/technology_toc.md new file mode 100644 index 0000000..d496344 --- /dev/null +++ b/collections/manual/knowledge_base/technology/technology_toc.md @@ -0,0 +1,16 @@ +

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](../../documentation/developers/developers.md) section. + +

Table of Contents

+ +- [How It Works](./grid3_howitworks.md) +- [Grid Concepts](./concepts/concepts_readme.md) +- [Primitives](./primitives/primitives_toc.md) +- [Quantum Safe Storage](./qsss/qsss_home.md) +- [Smart Contract IT](./smartcontract_it/smartcontract_toc.md) + + + diff --git a/collections/manual/knowledge_base/technology/tfgrid_primitives.md b/collections/manual/knowledge_base/technology/tfgrid_primitives.md new file mode 100644 index 0000000..de46ec7 --- /dev/null +++ b/collections/manual/knowledge_base/technology/tfgrid_primitives.md @@ -0,0 +1,44 @@ +![](img/layer0_.jpg) + +# TFGrid Low Level Functions = Primitives + +The following are the low level constructs which can be deployed on the TFGrid. + +The following functionalities allow you to create any solutions on top of the grid. +Any application which can run on linux can run on the TFGrid. + +### Compute + +- [ZKube](zkube) : kubernetes deployment +- [ZMachine](zmachine) : the container or virtual machine running inside ZOS +- [CoreX](corex) : process manager (optional), can be used to get remote access to your zmachine + +Uses [Compute Units = CU](cloudunits). + +### Storage (uses SU) + +- [ZOS Filesystem](zos_fs) : deduped immutable filesystem +- [ZOS Mount](zmount) : a part of a SSD (fast disk), mounted underneath your zmachine +- [Quantum Safe Filesystem](qsfs) : unbreakable storage system (secondary storage only) +- [Zero-DB](zdb) : the lowest level storage primitive, is a key value stor, used underneath other storage mechanisms typically +- [Zero-Disk](zdisk) : OEM only, virtual disk format + +Uses [Storage Units = SU](cloudunits). + +### Network (uses NU) + +- znet : private network between zmachines +- [Planetary Network](planetary_network) : peer2peer end2end encrypted global network +- znic : interface to planetary network +- [WebGateway](webgw) : interface between internet and znet + + +Uses [Network Units = SU](cloudunits). + +## Zero-OS Advantages + +!!!include:zos_advantages + + +!!!def alias:tfgrid_primitives,grid_primitives + diff --git a/collections/manual/knowledge_base/technology/zos/benefits/deterministic_deployment.md b/collections/manual/knowledge_base/technology/zos/benefits/deterministic_deployment.md new file mode 100644 index 0000000..c312a37 --- /dev/null +++ b/collections/manual/knowledge_base/technology/zos/benefits/deterministic_deployment.md @@ -0,0 +1,25 @@ + +## Deterministic Deployment + +- flists concept (deduped vfilesystem, no install, ...) + +The Dedupe filesystem flist uses fuse = interface which allows you to create the file system interface in user space, it is a virtual filesystem. +Metadata is exposed. The system sees the full tree of the image, but data itself not there, data is downloaded whenever they are accessed. + +There are multiple ways to create an flist: + - Convert an existing docker image which is hosted on the docker hub + - Push an archive like a tjz on the hub + - A library and CLI tool exist to build the flist from scratch: doing it this way, the directory is locally populated, and the flist is then created from the CLI tool. + - A [GitHub action](https://github.com/threefoldtech/publish-flist) allows to build a flist directly from GitHub action, useful for developers on GitHub + +Be aware that the flist system works a bit differently than the usual deployment of containers (dockers), which doesn't do mounting of volumes from your local disk into container for configuration. +With flists you need to modify your image to get configuration from environment. This is basically how docker was originally intended to be used. + + - Smart contract for IT + The smart contract for IT concept is applicable to any workload: containers, VMs, all gateways primitives, volumes, kubernetes and network. + It is a static agreement between farmer and user about deployment of an IT workload. + + - no dynamic behavior for deployment at runtime + + - no process can start unless the files are 100% described on flist level + \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/zos/benefits/docker_compatibility.md b/collections/manual/knowledge_base/technology/zos/benefits/docker_compatibility.md new file mode 100644 index 0000000..c2e0221 --- /dev/null +++ b/collections/manual/knowledge_base/technology/zos/benefits/docker_compatibility.md @@ -0,0 +1,14 @@ +# Docker compatibility + + +Docker is being recognized as the market leader as a technology provider for containerization technology. Many enterprise and software developers have adopted Docker's technology stack to built a devops (development and operations, more information [here](https://en.wikipedia.org/wiki/DevOps)) "train" (internal process, a way of developing and delivering software) for delivering updates to applications and new applications. Regardless of how this devops "train" is organised it always spits out docker (application) images and deployments methods. Hercules is built with a 100% backwards compatibility in mind to the created docker images and deployment methods. + +A major step in accepting and importing Docker images is to transpose docker images to the [ZOS Filesystem](zos_fs). + +## Features + +- 100 % backwards compatible with all existing and new to be created docker images. +- Easy import and transpose facility +- deduplicated application deployment simplifying aplication image management and versioning + +!!!include:zos_toc \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/zos/benefits/img/network_architecture.jpg b/collections/manual/knowledge_base/technology/zos/benefits/img/network_architecture.jpg new file mode 100644 index 0000000..4732889 Binary files /dev/null and b/collections/manual/knowledge_base/technology/zos/benefits/img/network_architecture.jpg differ diff --git a/collections/manual/knowledge_base/technology/zos/benefits/img/network_architecture2.jpg b/collections/manual/knowledge_base/technology/zos/benefits/img/network_architecture2.jpg new file mode 100644 index 0000000..c5308ed Binary files /dev/null and b/collections/manual/knowledge_base/technology/zos/benefits/img/network_architecture2.jpg differ diff --git a/collections/manual/knowledge_base/technology/zos/benefits/network_wall.md b/collections/manual/knowledge_base/technology/zos/benefits/network_wall.md new file mode 100644 index 0000000..3e47799 --- /dev/null +++ b/collections/manual/knowledge_base/technology/zos/benefits/network_wall.md @@ -0,0 +1,38 @@ +# Network wall + +![](img/webgateway.jpg) + + +> the best security = no network = no incoming tcp/ip from internet to containers  + +This is done via sockets. + +- TCP router client opens up socket to TCP router server, residing on the web gateway. +- When http arrives on this tcp router server, payload van http is brought back over socket to tcp router client. +- TCP router client sends http request that is made to server residing in the container. +- No TCP comes from outside world to the container, creating the most secure connection possible. +- The TCP router client opens the socket, TCP router server that received http request throws it on the socket. +- On the socket there is only data that comes in, which is replayed. TCP router client does a https request. + +This mechanism is now implemented for https, but in the future also other protocols such as sql, redis, http … can be supported. + +The end result is that only data goes over the network. +If container can no longer go to local tcp stack but only to make outgoing connection to the gateway, then there is no longer tcp coming’s in from outside. + +This is what we call the 'Network wall'. +As a consequence, no tcp/ip is coming in AT ALL, making the full set-up reach unprecedented security. + + +## More detailed explanation + +- Containers are behind NAT. We don’t allow traffic coming in. +- All connection needs to come from container to the outside world. = very neat as network security. +- Connection needs to be outwards, secures against DDOS and other hacking etc, nothing to connect to. +- How to access it ? Drive traffic inside the container: proxy or load balancer which is exposed publicly, rest of the traffic in private network, not accessible. +- So you can limit the number of containers that are really accessible from the outside world. +- You don’t have to worry about ‘how to secure my DB’ as my DB is not exposed, only accessible in Wireguard private network. +- In containers you can specify to have specific IPv6 address, so deploy reverse proxy in container which has public access, = entry point in the network, deploy reverse tcp connection (=tcp router client), connects to the gateways and allows incoming connection. + +!!!def alias:network_wall,net_wall + +!!!include:zos_toc diff --git a/collections/manual/knowledge_base/technology/zos/benefits/p2p_networking.md b/collections/manual/knowledge_base/technology/zos/benefits/p2p_networking.md new file mode 100644 index 0000000..a2ed92c --- /dev/null +++ b/collections/manual/knowledge_base/technology/zos/benefits/p2p_networking.md @@ -0,0 +1,30 @@ +![](img/network_architecture2.jpg) + +# Peer2Peer Network Concept + +## Introduction + +True peer-to-peer is a principle that exists everywhere within Threefold's technology stack, especially on its Network Architecture. Farmers produce IT capacity by connecting hardwares to the network and installing Zero-OS. The peer-to-peer network of devices forms the TF Grid. This TF Grid is a universal substrate of which a large variety of IT workloads exist and run. + +## Peer-to-peer networking + +The TF Grid is built by 3Nodes (hardware + Zero-OS) that are connected to the internet by using the IPv6 protocol. To future-proof this grid, IPv6 has been chosen as ThreeFold Grid's native networking technology. The TF Grid operates on IPv6 (where available) and creates peer-to-peer network connections between all the containers (and other primitives). Please find more about Zero-OS primitives in our [SDK manual](manual3_home) + +This creates a many-to-many web of (encrypted) point-to-point network connections which together make a (private) secure **overlay network**. This network is completely private and connects only the primitives that have been deployed in your network. + +TF Network Characteristics: + +- Connect all containers point-to-point; +- All traffic is encrypted; +- High performance; +- The shortest path between two end-points, multi-homed containers; +- Could span large geographical areas and create virtual data centers; +- All created and made operational **without** public access from the internet. + +## Existing Enterprise Private Networks + +At Threefold, we are aware of the existence of private networks, IPsec, VPN, WAN's and more. We have the facility to create bridges to make those networks part of the deployed private overlay networks. This is in an early stage development, but with the right level(s) of interest this could be built out and carried out in the near future. + +![](img/network_architecture.jpg) + +!!!def alias:quantumsafe_network_concept,qsn_concept \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/zos/benefits/unbreakable_storage.md b/collections/manual/knowledge_base/technology/zos/benefits/unbreakable_storage.md new file mode 100644 index 0000000..3bef57f --- /dev/null +++ b/collections/manual/knowledge_base/technology/zos/benefits/unbreakable_storage.md @@ -0,0 +1,14 @@ + +## Unbreakable Storage + +- Unlimited history +- Survives network, datacenter or node breakdown +- No silent corruption possible +- Quantum safe (data cannot be decrypted by quantum computers) as long as quantum computer has no access to the metadata +- Self-healing & autocorrecting + + +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. + +For more information, read [this documentation](../../primitives/storage/qsfs.md). \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/zos/benefits/zero_boot.md b/collections/manual/knowledge_base/technology/zos/benefits/zero_boot.md new file mode 100644 index 0000000..ea605fd --- /dev/null +++ b/collections/manual/knowledge_base/technology/zos/benefits/zero_boot.md @@ -0,0 +1,40 @@ +## Zero Boot + +> Zero Boot = Zero-OS boot process + +ZOS Boot is a boot facility that allows 3nodes to boot from network boot servers located in the TF Grid. This boot mechanism creates as little as possible operational and administration overhead. ZOS Boot is a crucial part for enabling autonomy by *not* having the operating system installed on local disks on 3nodes. With a boot network facility and no local operating system files you immediate erase a number of operational and administration tasks: + +- to install the operating system to start with +- to keep track of which systems run which version of the operating system (especially in large setups this is a complicated and error prone task) +- to keep track of patches and bug fixes that have been applied to systems + +That's just the administration and operational part of maintaining a server estate with local installed operating system. On the security side of things the benefits are even greater: +- many hacking activities are geared towards adding to or changing parts of the operating system files. This is a threat from local physical access to servers as well as over the network. When there are no local operating system files installed this threat does not exist. +- accidental overwrite, delete or corruption of operating system files. Servers run many processes and many of these processes have administrative access to be able to do what they need to do. Accidental deletion or overwrites of crucial files on disk will make the server fail a reboot. +- access control. I there is no local operating system installed access control, user rights etc etc. are unnecessary functions and features and do not have to be implemented. + +### How + +In this image from fs, a small partition is mounted in memory to start booting the machine, it gets IPXE (downloads what it needs), and then 0-OS boots. +After that, going to the hub, downloading different lists. + +There is 1 main flist that triggers downloads of multiple flists. Read more [here](../../../flist/flist.md). +In there all the components/daemons that do part of the 0-OS. +Also the download of the zos-bins, i.e. external binaries are triggered this way (https://hub.grid.tf/tf-zos-bins). + +The core components of zero-os can be found in: [Zero-OS repo](https://github.com/threefoldtech/zos/tree/master/bins/packages) = If something changes in the directory, a workflow is triggered to rebuild the full flist and push it to the hub. + +When a node discovers there is a new version of one of these lists on the hub, it downloads it, restarts the daemon with the new version. +Over the lifetime of the node, it keeps pulling on the hub directories to check whether new daemons/flists/binaries are available and whether things need get upgraded. + +### Features + +The features of ZOS Boot are: + +- no local operating system installed +- network boot from the grid to get on the grid +- decreased administrative and operational work, allowing for autonomous operations +- increased security +- increased efficiency (deduplication, only one version of the OS stored for thousands of servers) +- all server storage space is available for enduser workloads (average operating system size around 10GB) +- bootloader is less than 1MB in size and can be presented to the servers as a PXE script, USB boot device, ISO boot image. \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/zos/benefits/zero_hacking_surface.md b/collections/manual/knowledge_base/technology/zos/benefits/zero_hacking_surface.md new file mode 100644 index 0000000..10a41cf --- /dev/null +++ b/collections/manual/knowledge_base/technology/zos/benefits/zero_hacking_surface.md @@ -0,0 +1,6 @@ +## Zero Hacking Surface + +Zero does not mean is not possible but we use this term to specificy that we minized the attack surface for hackers. + +- There is no shell/server interface on zero-os level (our operating system) +- There are no hidden or unintended processes running which are not prevalidatedOne comment: still ssh server running with keys of a few people on each server, not yet disabled. To be disabled in the near future, now still useful to debug but it is a backdoor. The creation of a new primitive where the farmer agrees to give access to administrators under analysis. This way, when a reservation is sent to a node, a ssh server is booted up with chosen key to allow admins to go in. diff --git a/collections/manual/knowledge_base/technology/zos/benefits/zero_install.md b/collections/manual/knowledge_base/technology/zos/benefits/zero_install.md new file mode 100644 index 0000000..48e8b08 --- /dev/null +++ b/collections/manual/knowledge_base/technology/zos/benefits/zero_install.md @@ -0,0 +1,19 @@ +## Zero-OS Installation + +The Zero-OS is delivered to the 3Nodes over the internet network (network boot) and does not need to be installed. + +### 3Node Install + +1. Acquire a computer (server). +2. Configure a farm on the TFGrid explorer. +3. Download the bootloader and put on a USB stick or configure a network boot device. +4. Power on the computer and connect to the internet. +5. Boot! The computer will automatically download the components of the operating system (Zero-OS). + +The actual bootloader is very small. It brings up the network interface of your computer and queries TFGeid for the remainder of the boot files needed. + +The operating system is not installed on any local storage medium (hard disk, ssd). Zero-OS is stateless. + +The mechanism to allow this to work in a safe and efficient manner is a ThreeFold innovation called our container virtual filesystem. + +For more information on setting a 3Node, please refer to the [Farmers documentation](../../../farmers/farmers.md). \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/zos/benefits/zos_advantages.md b/collections/manual/knowledge_base/technology/zos/benefits/zos_advantages.md new file mode 100644 index 0000000..7569789 --- /dev/null +++ b/collections/manual/knowledge_base/technology/zos/benefits/zos_advantages.md @@ -0,0 +1,134 @@ +

Zero-OS Advantages

+ +

Table of Contents

+ +- [Introduction](#introduction) +- [Zero-OS Installation](#zero-os-installation) + - [3Node Install](#3node-install) +- [Unbreakable Storage](#unbreakable-storage) +- [Zero Hacking Surface](#zero-hacking-surface) +- [Zero Boot](#zero-boot) + - [How](#how) + - [Features](#features) +- [Deterministic Deployment](#deterministic-deployment) +- [Zero-OS Protect](#zero-os-protect) + +## Introduction + +We present the many advantages of Zero-OS. + +## Zero-OS Installation + +The Zero-OS is delivered to the 3Nodes over the internet network (network boot) and does not need to be installed. + +### 3Node Install + +1. Acquire a computer (server). +2. Configure a farm on the TFGrid explorer. +3. Download the bootloader and put on a USB stick or configure a network boot device. +4. Power on the computer and connect to the internet. +5. Boot! The computer will automatically download the components of the operating system (Zero-OS). + +The actual bootloader is very small. It brings up the network interface of your computer and queries TFGeid for the remainder of the boot files needed. + +The operating system is not installed on any local storage medium (hard disk, ssd). Zero-OS is stateless. + +The mechanism to allow this to work in a safe and efficient manner is a ThreeFold innovation called our container virtual filesystem. + +For more information on setting a 3Node, please refer to the [Farmers documentation](../../../../documentation/farmers/farmers.md). + + +## Unbreakable Storage + +- Unlimited history +- Survives network, datacenter or node breakdown +- No silent corruption possible +- Quantum safe (data cannot be decrypted by quantum computers) as long as quantum computer has no access to the metadata +- Self-healing & autocorrecting + + +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. + +For more information, read [this documentation](../../primitives/storage/qsfs.md). + +## Zero Hacking Surface + +Zero does not mean is not possible but we use this term to specificy that we minized the attack surface for hackers. + +- There is no shell/server interface on zero-os level (our operating system) +- There are no hidden or unintended processes running which are not prevalidatedOne comment: still ssh server running with keys of a few people on each server, not yet disabled. To be disabled in the near future, now still useful to debug but it is a backdoor. The creation of a new primitive where the farmer agrees to give access to administrators under analysis. This way, when a reservation is sent to a node, a ssh server is booted up with chosen key to allow admins to go in. + +## Zero Boot + +> Zero Boot = Zero-OS boot process + +ZOS Boot is a boot facility that allows 3nodes to boot from network boot servers located in the TF Grid. This boot mechanism creates as little as possible operational and administration overhead. ZOS Boot is a crucial part for enabling autonomy by *not* having the operating system installed on local disks on 3nodes. With a boot network facility and no local operating system files you immediate erase a number of operational and administration tasks: + +- to install the operating system to start with +- to keep track of which systems run which version of the operating system (especially in large setups this is a complicated and error prone task) +- to keep track of patches and bug fixes that have been applied to systems + +That's just the administration and operational part of maintaining a server estate with local installed operating system. On the security side of things the benefits are even greater: +- many hacking activities are geared towards adding to or changing parts of the operating system files. This is a threat from local physical access to servers as well as over the network. When there are no local operating system files installed this threat does not exist. +- accidental overwrite, delete or corruption of operating system files. Servers run many processes and many of these processes have administrative access to be able to do what they need to do. Accidental deletion or overwrites of crucial files on disk will make the server fail a reboot. +- access control. I there is no local operating system installed access control, user rights etc etc. are unnecessary functions and features and do not have to be implemented. + +### How + +In this image from fs, a small partition is mounted in memory to start booting the machine, it gets IPXE (downloads what it needs), and then 0-OS boots. +After that, going to the hub, downloading different lists. + +There is 1 main flist that triggers downloads of multiple flists. Read more [here](../../../../documentation/developers/flist/flist.md). +In there all the components/daemons that do part of the 0-OS. +Also the download of the zos-bins, i.e. external binaries are triggered this way (https://hub.grid.tf/tf-zos-bins). + +The core components of zero-os can be found in: [Zero-OS repo](https://github.com/threefoldtech/zos/tree/master/bins/packages) = If something changes in the directory, a workflow is triggered to rebuild the full flist and push it to the hub. + +When a node discovers there is a new version of one of these lists on the hub, it downloads it, restarts the daemon with the new version. +Over the lifetime of the node, it keeps pulling on the hub directories to check whether new daemons/flists/binaries are available and whether things need get upgraded. + +### Features + +The features of ZOS Boot are: + +- no local operating system installed +- network boot from the grid to get on the grid +- decreased administrative and operational work, allowing for autonomous operations +- increased security +- increased efficiency (deduplication, only one version of the OS stored for thousands of servers) +- all server storage space is available for enduser workloads (average operating system size around 10GB) +- bootloader is less than 1MB in size and can be presented to the servers as a PXE script, USB boot device, ISO boot image. + + +## Deterministic Deployment + +- flists concept (deduped vfilesystem, no install, ...) + +The Dedupe filesystem flist uses fuse = interface which allows you to create the file system interface in user space, it is a virtual filesystem. +Metadata is exposed. The system sees the full tree of the image, but data itself not there, data is downloaded whenever they are accessed. + +There are multiple ways to create an flist: + - Convert an existing docker image which is hosted on the docker hub + - Push an archive like a tjz on the hub + - A library and CLI tool exist to build the flist from scratch: doing it this way, the directory is locally populated, and the flist is then created from the CLI tool. + - A [GitHub action](https://github.com/threefoldtech/publish-flist) allows to build a flist directly from GitHub action, useful for developers on GitHub + +Be aware that the flist system works a bit differently than the usual deployment of containers (dockers), which doesn't do mounting of volumes from your local disk into container for configuration. +With flists you need to modify your image to get configuration from environment. This is basically how docker was originally intended to be used. + + - Smart contract for IT + The smart contract for IT concept is applicable to any workload: containers, VMs, all gateways primitives, volumes, kubernetes and network. + It is a static agreement between farmer and user about deployment of an IT workload. + + - no dynamic behavior for deployment at runtime + + - no process can start unless the files are 100% described on flist level + +## Zero-OS Protect + +- The operating system of the 3node (Zero-OS) is made to exist in environments without the presence of technical knowhow. 3nodes are made to exist everywhere where network meet a power socket. The OS does not have a login shell and does not allow people to log in with physical access to a keyboard and screen nor does it allows logins over the network. There is no way the 3node accepts user initiated login attempts. +- For certified capacity a group of known strategic vendors are able to lock the [BIOS](https://en.wikipedia.org/wiki/BIOS) of their server range and make sure no-one but them can unlock and change features present in the BIOS. Some vendors have an even higher degree of security and can store private keys in chips in side the computer to provider unique identification based on private keys or have mechanisms to check wether the server has been opened / tampered with in the transportation from the factory / vendor to the Farmer. All of this leads to maximum protection on the hardware level. +- 3nodes boot from a network facility. This means that they do not have local installed operating system files. Also they do not have a local username / password file or database. Viruses and hackers have very little work with if there are no local files to plant viruses or trojan horses in. Also the boot facility provides hashes for the files sent to the booting 3node so that the 3node can check wether is receives the intended file, no more man in the middle attacks. +- The zos_fs provides the same hash and file check mechanism. Every application file presented to a booting container has a hash describing it and the 3node on which the container is booting can verify if the received file matches the previously received hash. +- Every deployment of one or more applications starts with the creation of a (private) [znet](../../primitives/network/znet.md). This private overlay network is single tenant and not connected to the public internet. Every application or service that is started in a container in this overlay network is connection to all of the other containers via a point to point, encrypted network connection. \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/zos/benefits/zos_advantages_toc.md b/collections/manual/knowledge_base/technology/zos/benefits/zos_advantages_toc.md new file mode 100644 index 0000000..5c18b95 --- /dev/null +++ b/collections/manual/knowledge_base/technology/zos/benefits/zos_advantages_toc.md @@ -0,0 +1,10 @@ +# Zero-OS Advantages + +

Table of Contents

+ +- [Zero-OS Installation](./zero_install.md) +- [Unbreakable Storage](./unbreakable_storage.md) +- [Zero Hacking Surface](./zero_hacking_surface.md) +- [Booting Process](./zero_boot.md) +- [Deterministic Deployment](./deterministic_deployment.md) +- [Zero-OS Protect](./zos_protect.md) \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/zos/benefits/zos_monitoring.md b/collections/manual/knowledge_base/technology/zos/benefits/zos_monitoring.md new file mode 100644 index 0000000..90fc551 --- /dev/null +++ b/collections/manual/knowledge_base/technology/zos/benefits/zos_monitoring.md @@ -0,0 +1,39 @@ +# ZOS Monitoring + + +ZOS collects data from deployed solutions and applications and presents data in a well known open source monitoring solution called prometheus. + +Prometheus is an open-source systems monitoring and alerting toolkit originally built at SoundCloud. Since its inception in 2012, many companies and organizations have adopted Prometheus, and the project has a very active developer and user community. It is now a standalone open source project and maintained independently of any company. + +For more elaborate overviews of Prometheus, see [here](https://prometheus.io/) + +### Features + +- a multi-dimensional data model with time series data identified by metric name and key/value pairs +- PromQL, a flexible query language to leverage this dimensionality +- no reliance on distributed storage; single server nodes are autonomous +- time series collection happens via a pull model over HTTP +- pushing time series is supported via an intermediary gateway +- targets are discovered via service discovery or static configuration +- multiple modes of graphing and dashboarding support + +### Components + +The Prometheus ecosystem consists of multiple components, many of which are optional: + +- the main Prometheus server which scrapes and stores time series data +- client libraries for instrumenting application code +- a push gateway for supporting short-lived jobs +- special-purpose exporters for services like HAProxy, StatsD, Graphite, etc. +- an alertmanager to handle alerts +- various support tools + + +### Roadmap + +- ONLY for OEM partners today + + +!!!def alias:zos_monitoring + +!!!include:zos_toc diff --git a/collections/manual/knowledge_base/technology/zos/benefits/zos_protect.md b/collections/manual/knowledge_base/technology/zos/benefits/zos_protect.md new file mode 100644 index 0000000..040d8c4 --- /dev/null +++ b/collections/manual/knowledge_base/technology/zos/benefits/zos_protect.md @@ -0,0 +1,7 @@ +# ZOS Protect + +- The operating system of the 3node (Zero-OS) is made to exist in environments without the presence of technical knowhow. 3nodes are made to exist everywhere where network meet a power socket. The OS does not have a login shell and does not allow people to log in with physical access to a keyboard and screen nor does it allows logins over the network. There is no way the 3node accepts user initiated login attempts. +- For certified capacity a group of known strategic vendors are able to lock the [BIOS](https://en.wikipedia.org/wiki/BIOS) of their server range and make sure no-one but them can unlock and change features present in the BIOS. Some vendors have an even higher degree of security and can store private keys in chips in side the computer to provider unique identification based on private keys or have mechanisms to check wether the server has been opened / tampered with in the transportation from the factory / vendor to the Farmer. All of this leads to maximum protection on the hardware level. +- 3nodes boot from a network facility. This means that they do not have local installed operating system files. Also they do not have a local username / password file or database. Viruses and hackers have very little work with if there are no local files to plant viruses or trojan horses in. Also the boot facility provides hashes for the files sent to the booting 3node so that the 3node can check wether is receives the intended file, no more man in the middle attacks. +- The zos_fs provides the same hash and file check mechanism. Every application file presented to a booting container has a hash describing it and the 3node on which the container is booting can verify if the received file matches the previously received hash. +- Every deployment of one or more applications starts with the creation of a (private) [znet](../../primitives/network/znet.md). This private overlay network is single tenant and not connected to the public internet. Every application or service that is started in a container in this overlay network is connection to all of the other containers via a point to point, encrypted network connection. \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/zos/img/zero_os_overview.jpg b/collections/manual/knowledge_base/technology/zos/img/zero_os_overview.jpg new file mode 100644 index 0000000..0550294 Binary files /dev/null and b/collections/manual/knowledge_base/technology/zos/img/zero_os_overview.jpg differ diff --git a/collections/manual/knowledge_base/technology/zos/img/zos22.png b/collections/manual/knowledge_base/technology/zos/img/zos22.png new file mode 100644 index 0000000..a40cfa3 Binary files /dev/null and b/collections/manual/knowledge_base/technology/zos/img/zos22.png differ diff --git a/collections/manual/knowledge_base/technology/zos/img/zos_network_overview.jpg b/collections/manual/knowledge_base/technology/zos/img/zos_network_overview.jpg new file mode 100644 index 0000000..febb1d6 Binary files /dev/null and b/collections/manual/knowledge_base/technology/zos/img/zos_network_overview.jpg differ diff --git a/collections/manual/knowledge_base/technology/zos/img/zos_overview_compute_storage.jpg b/collections/manual/knowledge_base/technology/zos/img/zos_overview_compute_storage.jpg new file mode 100644 index 0000000..23257e5 Binary files /dev/null and b/collections/manual/knowledge_base/technology/zos/img/zos_overview_compute_storage.jpg differ diff --git a/collections/manual/knowledge_base/technology/zos/zos.md b/collections/manual/knowledge_base/technology/zos/zos.md new file mode 100644 index 0000000..5522e68 --- /dev/null +++ b/collections/manual/knowledge_base/technology/zos/zos.md @@ -0,0 +1,44 @@ +![](img/zos22.png) + +# Zero-OS + +![](img/zero_os_overview.jpg) + + +!!!include:whatis_zos + +### Imagine an operating system with the following benefits + +- upto 10x more efficient for certain workloads (e.g. storage) +- no install required +- all files are deduped for the VM's, containers and the ZOS itself, no more data duplicated filesystems +- the hacking footprint is super small, which leads to much more safe systems + - every file is fingerprinted and gets checked at launch time of an application + - there is no shell or server interface on the operating system + - the networks are end2end encrypted between all Nodes +- there is the possibility to completely disconnect the compute/storage from the network service part which means hackers have a lot less chance to get to the data. +- a smart contract for IT layer allows groups of people to deploy IT workloads with concensus and full control +- all workloads which can run on linux can run on Zero-OS but in a much more controlled, private and safe way + +> ThreeFold has created an operating system from scratch, we used the Linux kernel and its components and then build further on it, we have been able to achieve all above benefits. + +## The requirements for our TFGrid based on Zero OS are: + +- **Autonomy**: TF Grid needs to create compute, storage and networking capacity everywhere. We could not rely on a remote (or a local) maintenance of the operating system by owners or operating system administrators. +- **Simplicity**: An operating system should be simple, able to exist anywhere, for anyone, good for the planet. +- **Stateless**. In a grid (peer-to-peer) set up, the sum of the components is providing a stable basis for single elements to fail and not bring the whole system down. Therefore, it is necessary for single elements to be stateless, and the state needs to be stored within the grid. + + + +!!!def alias:zos,zero-os,threefold_operating_system,tf_os,threefold_os + + + + \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/zos/zos_compute_storage.md b/collections/manual/knowledge_base/technology/zos/zos_compute_storage.md new file mode 100644 index 0000000..54985b7 --- /dev/null +++ b/collections/manual/knowledge_base/technology/zos/zos_compute_storage.md @@ -0,0 +1,6 @@ +## ZOS compute storage overview + +![](img/zos_overview_compute_storage.jpg) + + +!!!include:zos_toc \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/zos/zos_install.md b/collections/manual/knowledge_base/technology/zos/zos_install.md new file mode 100644 index 0000000..1f32caf --- /dev/null +++ b/collections/manual/knowledge_base/technology/zos/zos_install.md @@ -0,0 +1 @@ +# Zero-OS Install diff --git a/collections/manual/knowledge_base/technology/zos/zos_install_mechanism.md b/collections/manual/knowledge_base/technology/zos/zos_install_mechanism.md new file mode 100644 index 0000000..4bc9043 --- /dev/null +++ b/collections/manual/knowledge_base/technology/zos/zos_install_mechanism.md @@ -0,0 +1,21 @@ +### Zero OS install + +The Zero-OS is delivered to the 3Nodes over the internet network (network boot) and does not need to be installed. + +# Zero-OS Install Mechanism + +## Stateless Install + +1. Acquire a computer (server). +2. Configure a farm on the TFGrid explorer. +3. Download the bootloader and put on a USB stick or configure a network boot device. +4. Power on the computer and connect to the internet. +5. Boot! The computer will automatically download the components of the operating system (Zero-OS). + +The actual bootloader is very small. It brings up the network interface of your computer and queries TFGrid for the remainder of the boot files needed. + +The operating system is not installed on any local storage medium (hard disk, ssd). Zero-OS is stateless. + +The mechanism to allow this to work in a safe and efficient manner is a ThreeFold innovation called our container virtual filesystem. This is explained in more detail [here](flist) + +!!!def alias:zero_os_install \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/zos/zos_network.md b/collections/manual/knowledge_base/technology/zos/zos_network.md new file mode 100644 index 0000000..004175b --- /dev/null +++ b/collections/manual/knowledge_base/technology/zos/zos_network.md @@ -0,0 +1,6 @@ +# ZOS network overview + +![](img/zos_network_overview.jpg) + + +!!!include:zos_toc diff --git a/collections/manual/knowledge_base/technology/zos_advantages.md b/collections/manual/knowledge_base/technology/zos_advantages.md new file mode 100644 index 0000000..3a61099 --- /dev/null +++ b/collections/manual/knowledge_base/technology/zos_advantages.md @@ -0,0 +1,6 @@ +- [Zero Install](zero_install) +- [Unbreakable Storage](unbreakable_storage) +- [Zero Hacking Surface](zero_hacking_surface) +- [Zero Boot](zero_boot) +- [Deterministic Deployment](deterministic_deployment) +- [ZOS Protect](zos_protect) \ No newline at end of file diff --git a/collections/manual/knowledge_base/technology/zos_toc.md b/collections/manual/knowledge_base/technology/zos_toc.md new file mode 100644 index 0000000..29f3202 --- /dev/null +++ b/collections/manual/knowledge_base/technology/zos_toc.md @@ -0,0 +1,24 @@ +## Zero OS as generator for Compute, Storage, Network capacity. + +### Compute (uses CU) + +- [ZKube](zkube) : kubernetes deployment +- [ZMachine](zmachine) : the container or virtual machine running inside ZOS +- [CoreX](corex) : process manager (optional), can be used to get remote access to your zmachine + +### Storage (uses SU) + +- [ZOS Filesystem](zos_fs) : deduped immutable filesystem +- [ZOS Mount](zmount) : a part of a SSD (fast disk), mounted underneath your zmachine +- [Quantum Safe Filesystem](!@qsss_home) : unbreakable storage system (secondary storage only) +- [Zero-DB](zdb) : the lowest level storage primitive, is a key value stor, used underneath other storage mechanisms typically +- [Zero-Disk](zdisk) : OEM only, virtual disk format + +### Network (uses NU) + +- zos_net : private network between zmachines +- [Planetary Network](planetary_network) : peer2peer end2end encrypted global network +- [WebGateway](webgw) : interface between internet and znet +- zos_bridge: network interface to planetary_net or public ipaddress + + diff --git a/collections/manual/knowledge_base/technology/zos_tools/flist_hub.md b/collections/manual/knowledge_base/technology/zos_tools/flist_hub.md new file mode 100644 index 0000000..45caca6 --- /dev/null +++ b/collections/manual/knowledge_base/technology/zos_tools/flist_hub.md @@ -0,0 +1,4 @@ +!!!include:flist_hub_ + +!!!def alias:tfhub,zflist_hub,flist_hub + diff --git a/collections/manual/knowledge_base/technology/zos_tools/flist_hub_.md b/collections/manual/knowledge_base/technology/zos_tools/flist_hub_.md new file mode 100644 index 0000000..3f0a572 --- /dev/null +++ b/collections/manual/knowledge_base/technology/zos_tools/flist_hub_.md @@ -0,0 +1,12 @@ + +## TFGrid Flist Hub + +We provide a public hub you could use to upload your own Flist or filesystem directly and take advantages of Flist out-of-box on Zero-OS. +You can convert an existing docker image the same way. + +Public hub: [hub.grid.tf](https://hub.grid.tf) + +If you want to experiment the hub and features, you could use the [playground hub](https://playground.hub.grid.tf). +This hub could be reset anytime, don't put sensitive or production code there. + +