diff --git a/docs/development/create_account.md b/docs/development/create_account.md index 4ae32a3b0..5a469aae8 100644 --- a/docs/development/create_account.md +++ b/docs/development/create_account.md @@ -14,7 +14,7 @@ Once pressed you will see this: ![image](https://user-images.githubusercontent.com/13766992/130955887-b6e87bc4-64d5-49ff-b6ac-fa6ac2ebc90d.png) -- Save you mnemonic somewhere save (analogue). When done click ```"I have saved my mnemonics safely"``` and press next. +- Save your mnemonic somewhere safe (analogue). When done click ```"I have saved my mnemonics safely"``` and press next. - click on ```Advanced creation options``` and select ```"Edwards (ed25519, alternative)"``` - Enter ```name``` and ```password``` - Press ```Save``` diff --git a/docs/development/development.md b/docs/development/development.md index 3a5ac57cf..c059b254b 100644 --- a/docs/development/development.md +++ b/docs/development/development.md @@ -43,5 +43,5 @@ To wipe data run: Every pallet should have all functionality tested, you can write unit tests and integration tests for a pallet: -- unit test: heck https://docs.substrate.io/reference/how-to-guides/testing/ +- unit test: check https://docs.substrate.io/reference/how-to-guides/testing/ - integration test: [see](../../substrate-node/tests/readme.md) diff --git a/docs/development/rust-setup.md b/docs/development/rust-setup.md index 136cc0b6e..3e0d55c39 100644 --- a/docs/development/rust-setup.md +++ b/docs/development/rust-setup.md @@ -2,7 +2,7 @@ title: Installation --- -This guide is for reference only, please check the latest information on getting starting with Substrate +This guide is for reference only, please check the latest information on getting started with Substrate [here](https://docs.substrate.io/main-docs/install/). This page will guide you through the **2 steps** needed to prepare a computer for **Substrate** development. diff --git a/docs/misc/adding_validators.md b/docs/misc/adding_validators.md index b84faa258..076aac5ed 100644 --- a/docs/misc/adding_validators.md +++ b/docs/misc/adding_validators.md @@ -14,7 +14,7 @@ Create a node key subkey generate-node-key ``` -This will write the node adress on std err followed by the node private key on stdout. +This will write the node address on std err followed by the node private key on stdout. ## Start node @@ -110,7 +110,7 @@ keys: secret: ``` -Create a Peristent volume claim of 100Gi and assign it using +Create a Persistent volume claim of 100Gi and assign it using ```yaml volume: diff --git a/docs/misc/create_farm.md b/docs/misc/create_farm.md index 6ea62c0a9..cf5957a9b 100644 --- a/docs/misc/create_farm.md +++ b/docs/misc/create_farm.md @@ -17,7 +17,7 @@ Open the following URL based on your setup: - Using a private node: https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A9944#/settings/developer - Using a public node: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftfchain.dev.threefold.io#/settings/developer -Paste the types in in the box and hit `save` +Paste the types in the box and hit `save` ![img](./assets/copy_types_1.png) @@ -27,7 +27,7 @@ Open the following URL based on your setup: - Using a private node:https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A9944#/accounts - Using a public node: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftfchain.dev.threefold.io#/accounts -click `Add account`, take note of the seed. Click on the `Advanced creation options` arrow, and select keypair crypto type: `Edwards(ed25519, alternative)` +Click `Add account`, take note of the seed. Click on the `Advanced creation options` arrow, and select keypair crypto type: `Edwards(ed25519, alternative)` Click `I have saved my mnemonic seed safely` and click next and fill in the required fields. diff --git a/docs/misc/creating_validator.md b/docs/misc/creating_validator.md index aff92e2a9..78a9b963e 100644 --- a/docs/misc/creating_validator.md +++ b/docs/misc/creating_validator.md @@ -2,7 +2,7 @@ ### Requirements -The most common way for a beginner to run a validator is on a cloud server running Linux. You may choose whatever VPS provider that your prefer, and whatever operating system you are comfortable with. +The most common way for a beginner to run a validator is on a cloud server running Linux. You may choose whatever VPS provider that you prefer, and whatever operating system you are comfortable with. For this guide we will be using Ubuntu 18.04, but the instructions should be similar for other platforms. The transactions weights in TFchain were benchmarked on standard hardware. It is recommended that validators run at least the standard hardware in order to ensure they are able to process all blocks in time. The following are not minimum requirements but if you decide to run with less than this beware that you might have performance issue. @@ -18,7 +18,7 @@ The specs posted above are by no means the minimum specs that you could use when ## Node Prerequisites: Install Rust and Dependencies -Once you choose your cloud service provider and set-up your new server, the first thing you will do is install Rust. +Once you choose your cloud service provider and set up your new server, the first thing you will do is install Rust. If you have never installed Rust, you should do this first. @@ -160,7 +160,7 @@ Open polkadot js link in the browser based on the network you want to validate o You now should have 3 accounts. -Note: Both `VALIDATOR_ACCOUNT` and `VALIDATOR_NODE_ACCOUNT` need atleast 0.1 TFT in order to make a validator object. +Note: Both `VALIDATOR_ACCOUNT` and `VALIDATOR_NODE_ACCOUNT` need at least 0.1 TFT in order to make a validator object. > Bonding an account is optional, you can skip this step and continue to the next step. @@ -190,7 +190,7 @@ If all information is filled in correctly. Click on `Submit transaction` and sig ### Insert AURA/GRAN Keys -Mnemonic: Words from the created account (`VALIDATOR_NODE_ACCOUNT`) created in a the previous steps. +Mnemonic: Words from the created account (`VALIDATOR_NODE_ACCOUNT`) created in the previous steps. Transfer some balance to this account (you can see the address in the polkadot UI). (0.1 TFT should be enough). You can transfer the balance to this account from the polkadot UI. @@ -220,7 +220,7 @@ yarn yarn start ``` -Browse to and connect to the new node over it's public ip. Make sure to specify the port, like: ws://YOUR_MACHINE_PUBLIC_IP:9944 +Browse to and connect to the new node over its public ip. Make sure to specify the port, like: ws://YOUR_MACHINE_PUBLIC_IP:9944 First insert the types: Go to `Settings` -> `Developer` -> Copy paste output of following [file](https://raw.githubusercontent.com/threefoldtech/tfchain_client_js/master/types.json) @@ -236,7 +236,7 @@ curl -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0", "method": If you used polkadotjs to generate the session key, use the one you installed. If not, you can use the [public ones](../../docs/chaininfo.md) connected to the network you are installing a validator for. -Go to `Extrinsics` -> `session` -> `setKeys` -> (make sure to use the created node account (`VALIDATOR_NODE_ACCOUNT`), created above) You will need to import this account into this local polkadot js apps UI. Make sure it has atleast 0.1 TFT. +Go to `Extrinsics` -> `session` -> `setKeys` -> (make sure to use the created node account (`VALIDATOR_NODE_ACCOUNT`), created above) You will need to import this account into this local polkadot js apps UI. Make sure it has at least 0.1 TFT. input: diff --git a/docs/misc/minimal_DAO.md b/docs/misc/minimal_DAO.md index f38d0aed1..577b5786c 100644 --- a/docs/misc/minimal_DAO.md +++ b/docs/misc/minimal_DAO.md @@ -2,7 +2,7 @@ Based on https://docs.google.com/document/d/1qK51Dsg4jj3FJ76CWeh-WdNftQPFV8CtBmpLTlqaFk4/edit# -The goal is to have a minimal DAO implemented on TFChain were farmers can vote on proposals. Only farmers can vote (see below), and only selected people (council, see below) can submit a proposal to be voted on. +The goal is to have a minimal DAO implemented on TFChain where farmers can vote on proposals. Only farmers can vote (see below), and only selected people (council, see below) can submit a proposal to be voted on. ## Council @@ -11,7 +11,7 @@ A council member is a person with slightly elevated privileges, represented by a - Create a new voting proposal. - Link an existing farming policy to a farm, with suggested limits (see farming policy section). - Council only vote (nobody except council member can vote for this) to add or remove a member. For the result of this vote, strict majority is used, i.e. vote passes if `votes_for > votes_against`. There must also be a time limit on the vote, any council member who doesn't vote before this time implicitly abstains. Note that in case of removal, the member to be removed can vote against that (no special logic to prevent this). -- Set the certification level of a farm (see bellow). +- Set the certification level of a farm (see below). ## Certified node verifier @@ -28,7 +28,7 @@ A farming policy has the following fields: - id (used to link policies) - name -- Default. This indicates if the policy can be used by any new node (if the parent farm does not have a dedicated attached policy). Essentially, a `Default` policy serves as a base which can be overriden per farm by linking a non default policy to said farm. +- Default. This indicates if the policy can be used by any new node (if the parent farm does not have a dedicated attached policy). Essentially, a `Default` policy serves as a base which can be overridden per farm by linking a non default policy to said farm. - Reward tft per CU, SU and NU - Minimal uptime needed in percentage (can be decimal e.g. 99.8%) - Policy end date (After this data the policy can not be linked to new farms any more) @@ -46,14 +46,14 @@ In case a farming policy is not attached to a farm, new nodes will pick the most - Check for policy without farming certification but certified nodes - Last check for a policy without any kind of certification -Important here is that certification of a node only happens after it comes live for the first time. As such, when a node gets certified, farming certification needs to be re evaluated, but only if the currently attached farming policy on the node is a `Default` policy (as specifically linked policies have priority over default ones). When evaluating again, we first consider if we are eligible for the farming policy linked to the farm, if any. +Important here is that certification of a node only happens after it comes live for the first time. As such, when a node gets certified, farming certification needs to be re-evaluated, but only if the currently attached farming policy on the node is a `Default` policy (as specifically linked policies have priority over default ones). When evaluating again, we first consider if we are eligible for the farming policy linked to the farm, if any. ### Limits on linked policy When a council member attaches a policy to a farm, limits can be set. These limits define how much a policy can be used for nodes, before it becomes unusable and gets removed. The limits currently are: -- CU. Every time a node is added in the farm, it's CU is calculated and deducted from this amount. If the amount drops below 0, the maximum amount of CU that can be attached to this policy is reached. -- SU. Every time a node is added in the farm, it's SU is calculated and deducted from this amount. If the amount drops below 0, the maximum amount of SU that can be attached to this policy is reached. +- CU. Every time a node is added in the farm, its CU is calculated and deducted from this amount. If the amount drops below 0, the maximum amount of CU that can be attached to this policy is reached. +- SU. Every time a node is added in the farm, its SU is calculated and deducted from this amount. If the amount drops below 0, the maximum amount of SU that can be attached to this policy is reached. - End date. After this date the policy is not effective anymore and can't be used. It is removed from the farm and a default policy is used. - Certification. If set, only certified nodes can get this policy. Non certified nodes get a default policy. @@ -84,14 +84,14 @@ Important: we will also reserve some space for some text in the certification st ## Treasury -Currently 50% of the contract cost goes to a "certified sales channel" which is just an account. This will be removed in favor of a treasury. The treasury is essentially an account (though it should be a special account with no private key so it can't be spend from). Spending from the treasury happens through means of a vote proposed by the council. The description in the proposal should indicate the reason of the spending. +Currently 50% of the contract cost goes to a "certified sales channel" which is just an account. This will be removed in favor of a treasury. The treasury is essentially an account (though it should be a special account with no private key so it can't be spent from). Spending from the treasury happens through means of a vote proposed by the council. The description in the proposal should indicate the reason of the spending. ## Solution reward A "solution" is something running on the grid, created by a community member. This can be brought forward to the council, who can vote on it to recognize it as a solution. On contract creation, a recognized solution can be referenced, in which case part of the payment goes toward the address coupled to the solution. On chain a solution looks as follows: - Description (should be some text, limited in length. Limit should be rather low, if a longer one is desired a link can be inserted. 160 characters should be enough imo). -- Up to 5 payout addresses, each with a payout percentage. This is the percentage of the payout received by the associated address. The amount is deducted from the payout to the treasury and specified as percentage of the total contract cost. As such, the sum of these percentages can never exceed 50%. If this value is not 50%, the remainder is payed to the treasure. Example: 10% payout percentage to addr 1, 5% payout to addr 2. This means 15% goes to the 2 listed addresses combined and 35% goes to the treasury (instead of usual 50). Rest remains as is. If the cost would be 10TFT, 1TFT goes to the address1, 0.5TFT goes to address 2, 3.5TFT goes to the treasury, instead of the default 5TFT to the treasury +- Up to 5 payout addresses, each with a payout percentage. This is the percentage of the payout received by the associated address. The amount is deducted from the payout to the treasury and specified as percentage of the total contract cost. As such, the sum of these percentages can never exceed 50%. If this value is not 50%, the remainder is paid to the treasure. Example: 10% payout percentage to addr 1, 5% payout to addr 2. This means 15% goes to the 2 listed addresses combined and 35% goes to the treasury (instead of usual 50). Rest remains as is. If the cost would be 10TFT, 1TFT goes to the address1, 0.5TFT goes to address 2, 3.5TFT goes to the treasury, instead of the default 5TFT to the treasury - A unique code. This code is used to link a solution to the contract. This means contracts need to carry an optional solution code. If the code is not specified (default), the 50% goes entirely to the treasury (as is always the case today).