From 745d924eafc12560c706022d87e37c98fa9bb93a Mon Sep 17 00:00:00 2001 From: Josh Ford Date: Tue, 15 Sep 2020 19:18:05 -0700 Subject: [PATCH 01/10] added running a node using nearcore guide --- docs/local-setup/running-testnet.md | 66 +++++++++++++++++------------ 1 file changed, 38 insertions(+), 28 deletions(-) diff --git a/docs/local-setup/running-testnet.md b/docs/local-setup/running-testnet.md index cdbddc634cf..f19bda56122 100644 --- a/docs/local-setup/running-testnet.md +++ b/docs/local-setup/running-testnet.md @@ -6,7 +6,7 @@ sidebar_label: Running a node ## Why? -NEAR Protocol runs on a collection of publicly maintained computers (or "nodes"). +NEAR Protocol runs on a collection of publicly maintained computers or "nodes". You may decide to run a node of your own for a few reasons: @@ -18,51 +18,61 @@ _( † ) `TestNet` is intended to operate as closely (similarly) to `MainNet` a _( †† ) `LocalNet` would be the right choice if you prefer to avoid leaking information about your work during the development process since `TestNet` and `BetaNet` are *public* networks. `LocalNet` also gives you total control over accounts, economics and other factors for more advanced use cases (ie. making changes to `nearcore`)._ -## `nearup` Installation +## Running a node using `nearcore` -You can install `nearup` by following the instructions at https://github.com/near/nearup. +1) If you haven't already, you will need to clone [`nearcore`](https://github.com/nearprotocol/nearcore) as well as compile and run the `neard` package using Rust. Please reference [this guide](https://docs.near.org/docs/contribution/nearcore#docsNav) for assistance. -
-heads up

+2) Download the genesis file: + - TestNet [`genesis.json`](https://s3-us-west-1.amazonaws.com/build.nearprotocol.com/nearcore-deploy/testnet/genesis.json) + - BetaNet [`genesis.json`](https://s3-us-west-1.amazonaws.com/build.nearprotocol.com/nearcore-deploy/betanet/genesis.json) + - MainNet does not require you to download the `genesis.json` file as it is embedded into `nearcore` -The README for `nearup` (linked above) may be **all you need to get a node running**. +3) Download the config file: + - TestNet [`config.json`](https://s3-us-west-1.amazonaws.com/build.nearprotocol.com/nearcore-deploy/testnet/config.json) + - BetaNet [`config.json`](https://s3-us-west-1.amazonaws.com/build.nearprotocol.com/nearcore-deploy/betanet/config.json) + - MainNet [`config.json`](https://s3-us-west-1.amazonaws.com/build.nearprotocol.com/nearcore-deploy/mainnet/config.json) -This page is made available to clarify a few points of confusion along the way for those who need it. +4) Run the following command replacing the paths & networkId: + ```bash + neard --home= init --chain-id= --genesis= + ``` + example: + ```bash + neard --home=/HOME/USER/near/my-near-node init --chain-id=testnet --genesis=/HOME/USER/near/genesis.json + ``` -
+5) Either copy the downloaded `config.js` file to the home location chosen above, or only copy paste the `boot_nodes` from the downloaded `config.js` file to the one created by the `neard init`. -The steps in the rest of this document will require `nearup` +6) Run: + ```bash + neard --home= run + ``` +## Running a node using `nearup` and Docker +**Note**: The following guides are only for `betanet` and `testnet`. -## Running an Official Node using Docker +### Install `nearup` +You can install `nearup` by following the instructions at https://github.com/near/nearup. ### Install Docker -By default we use Docker to run the client. +By default, we use Docker to run the client. Follow these instructions to install Docker on your machine: -Follow these instructions to install Docker on your machine: +* [MacOS Docker Install](https://docs.docker.com/docker-for-mac/install/) +* [Ubuntu Docker Install](https://docs.docker.com/install/linux/docker-ce/ubuntu/) -* [MacOS](https://docs.docker.com/docker-for-mac/install/) -* [Ubuntu](https://docs.docker.com/install/linux/docker-ce/ubuntu/) - -NOTE: You can run a node without Docker by adding the `--nodocker` flag to the `nearup` command and specifying the compiled binary path. See how to do this in the next section: [Compiling and Running an Official Node without Docker](/docs/local-setup/running-testnet#compiling-and-running-official-node-testnetbetanet-without-docker). +**Note**: You can run a node without Docker by adding the `--nodocker` flag to the `nearup` command and specifying the compiled binary path. See how to do this in the next section: [Compiling and Running an Official Node without Docker](/docs/local-setup/running-testnet#compiling-and-running-official-node-without-docker). ### Running `nearup` -Once `nearup` and Docker are installed (by following instructions in previous section), just run: - -```sh -nearup betanet -``` - -_(If you prefer to use `TestNet` then just replace `betanet` with `testnet` in the command above)_ +Once `nearup` and Docker are installed, run either `nearup testnet` or `nearup betanet` in your terminal, depending on your preferred network. -You will then be prompted for an Account ID. You can leave this empty if you would just like to run a node. Validators should use the account ID of the account you want to stake with. See [staking](/docs/validator/staking) if you would like to become a validator. +You will then be prompted for an Account ID. You can leave this empty if you would just like to run a regular node. Validators should use the account ID of the account you want to stake with. See [staking](/docs/validator/staking) if you would like to become a validator. ```text -Enter your account ID (leave empty if not going to be a validator): +Enter your account ID: (leave empty if not going to be a validator) ``` A node will then start in the background with Docker. @@ -80,7 +90,7 @@ To check the logs inside Docker, run `docker logs --follow nearcore`. -## Compiling and Running Official Node without Docker +## Compiling and running a node without Docker Alternatively, you can build and run a node without Docker by compiling `nearcore` locally and pointing `nearup` to the compiled binaries. Steps in this section provide details of how to do this. @@ -125,13 +135,13 @@ If you are running a validator in production you may find it more efficient to j cargo build -p neard --release ``` -NB. Please ensure you include the `--release` flag. Omitting this will lead to an unoptimized binary being produced that is too slow for a validator to function effectively. +**Note**: Please ensure you include the `--release` flag. Omitting this will lead to an unoptimized binary being produced that is too slow for a validator to function effectively. Finally: On MacOS or Linux ```bash -nearup betanet --nodocker --binary-path path/to/nearcore/target/release +nearup betanet --nodocker --binary-path ``` If you want to run `TestNet` instead of `BetaNet` then replace `betanet` with `testnet` in the command above. From 43a3edcbb425bf39f448df9aed242e780d567cb3 Mon Sep 17 00:00:00 2001 From: Josh Ford Date: Wed, 16 Sep 2020 14:38:04 -0700 Subject: [PATCH 02/10] revised node explanations --- docs/local-setup/running-testnet.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/docs/local-setup/running-testnet.md b/docs/local-setup/running-testnet.md index f19bda56122..11b37a686cd 100644 --- a/docs/local-setup/running-testnet.md +++ b/docs/local-setup/running-testnet.md @@ -4,19 +4,21 @@ title: Running a node sidebar_label: Running a node --- -## Why? +NEAR Protocol runs on a collection of publicly maintained computers or "nodes". -NEAR Protocol runs on a collection of publicly maintained computers or "nodes". + - All nodes on a network perform and validate transactions, but differ in their ability to produce blocks. + - Anyone can run a non-producing block node, or "regular node", by following the guides below. + - Nodes that _can_ produce blocks, also referred to as "[Validator Nodes](/docs/validator/staking-overview)", undergo a more extensive vetting process which includes [staking](/docs.near.org/docs/validator/staking) and other [selection requirements](https://nomicon.io/Economics/README.html?validator-selection#validator-selection). (See [Validator FAQ](/docs/validator/validator-faq) for more information) You may decide to run a node of your own for a few reasons: -- To develop and deploy contracts on a node connected to `MainNet`, `TestNet` or `BetaNet` (†) -- To develop and deploy contracts on a local (independent and isolated) node (sometimes called "LocalNet"). (††) -- To join a network as a validator running a "validator node" (see [staking](/docs/validator/staking)) +- To view, process, and validate transactions on `MainNet`, `TestNet` or `BetaNet` (†) +- To view, process, and validate transactions on an independent / isolated local NEAR network (sometimes called "LocalNet"). (††) +- To join `BetaNet` or `MainNet` as a block producing node, aka "Validator Node" (see "[Running a Validator Node](/docs/validator/staking)") -_( † ) `TestNet` is intended to operate as closely (similarly) to `MainNet` as possible with only stable releases while `BetaNet` follows a weekly release cycle._ +_( † ) `TestNet` is intended to operate as similarly to `MainNet` as possible with only stable releases, while `BetaNet` follows a weekly release cycle._ -_( †† ) `LocalNet` would be the right choice if you prefer to avoid leaking information about your work during the development process since `TestNet` and `BetaNet` are *public* networks. `LocalNet` also gives you total control over accounts, economics and other factors for more advanced use cases (ie. making changes to `nearcore`)._ +_( †† ) `LocalNet` would be the right choice if you prefer to avoid leaking information about your work during the development process since `TestNet` and `BetaNet` are *public* networks. `LocalNet` also gives you total control over accounts, economics, and other factors for more advanced use cases (i.e. making changes to `nearcore`)._ ## Running a node using `nearcore` @@ -89,7 +91,6 @@ To check the logs inside Docker, run `docker logs --follow nearcore`. | `0/0/40` | connected peers / up to date peers / max peers | - ## Compiling and running a node without Docker Alternatively, you can build and run a node without Docker by compiling `nearcore` locally and pointing `nearup` to the compiled binaries. Steps in this section provide details of how to do this. From 75f6685d513886d3529fd84edb0c6f57e0edeaaf Mon Sep 17 00:00:00 2001 From: Josh Ford Date: Wed, 16 Sep 2020 14:59:56 -0700 Subject: [PATCH 03/10] rename running-testnet => running-a-node w/ link updates --- docs/local-setup/{running-testnet.md => running-a-node.md} | 6 +++--- docs/overview/basics-orientation.md | 2 +- docs/roles/integrator/exchange-integration.md | 2 +- docs/roles/integrator/integrating.md | 2 +- docs/validator/validator-faq.md | 4 ++-- website/sidebars.json | 5 +++-- 6 files changed, 11 insertions(+), 10 deletions(-) rename docs/local-setup/{running-testnet.md => running-a-node.md} (95%) diff --git a/docs/local-setup/running-testnet.md b/docs/local-setup/running-a-node.md similarity index 95% rename from docs/local-setup/running-testnet.md rename to docs/local-setup/running-a-node.md index 11b37a686cd..58e6528e6d6 100644 --- a/docs/local-setup/running-testnet.md +++ b/docs/local-setup/running-a-node.md @@ -1,5 +1,5 @@ --- -id: running-testnet +id: running-a-node title: Running a node sidebar_label: Running a node --- @@ -8,7 +8,7 @@ NEAR Protocol runs on a collection of publicly maintained computers or "nodes". - All nodes on a network perform and validate transactions, but differ in their ability to produce blocks. - Anyone can run a non-producing block node, or "regular node", by following the guides below. - - Nodes that _can_ produce blocks, also referred to as "[Validator Nodes](/docs/validator/staking-overview)", undergo a more extensive vetting process which includes [staking](/docs.near.org/docs/validator/staking) and other [selection requirements](https://nomicon.io/Economics/README.html?validator-selection#validator-selection). (See [Validator FAQ](/docs/validator/validator-faq) for more information) + - Nodes that _can_ produce blocks, also referred to as "[Validator Nodes](/docs/validator/staking-overview)", undergo a more extensive vetting process which includes [staking](/docs/validator/staking) and other [selection requirements](https://nomicon.io/Economics/README.html?validator-selection#validator-selection). (See [Validator FAQ](/docs/validator/validator-faq) for more information) You may decide to run a node of your own for a few reasons: @@ -63,7 +63,7 @@ By default, we use Docker to run the client. Follow these instructions to instal * [MacOS Docker Install](https://docs.docker.com/docker-for-mac/install/) * [Ubuntu Docker Install](https://docs.docker.com/install/linux/docker-ce/ubuntu/) -**Note**: You can run a node without Docker by adding the `--nodocker` flag to the `nearup` command and specifying the compiled binary path. See how to do this in the next section: [Compiling and Running an Official Node without Docker](/docs/local-setup/running-testnet#compiling-and-running-official-node-without-docker). +**Note**: You can run a node without Docker by adding the `--nodocker` flag to the `nearup` command and specifying the compiled binary path. See how to do this in the next section: [Compiling and Running an Official Node without Docker](/docs/local-setup/running-a-node#compiling-and-running-official-node-without-docker). ### Running `nearup` diff --git a/docs/overview/basics-orientation.md b/docs/overview/basics-orientation.md index 9800658183a..51109914f12 100644 --- a/docs/overview/basics-orientation.md +++ b/docs/overview/basics-orientation.md @@ -11,7 +11,7 @@ If you are ready to dive straight into application and smart contract developmen If you are **not** an app developer, we recommend the following paths instead: 1. **For the non-technical person or NEAR noob,** see the [Beginner's Guide to NEAR](https://near.org/blog/the-beginners-guide-to-the-near-blockchain/). For a slightly more technical introduction, begin with [What is NEAR?](/docs/overview/what-is-near). -2. **To run a validating node,** which means taking part in the operation of the core network itself, see [running a testnet node](/docs/local-setup/running-testnet) or, for a full staking overview, see [the staking overview](/docs/validator/staking-overview). This is not necessary for developing smart contracts or apps but it can be a good way to feel connected to the "bare metal" of how the network works. +2. **To run a validating node,** which means taking part in the operation of the core network itself, see [running a testnet node](/docs/local-setup/running-a-node) or, for a full staking overview, see [the staking overview](/docs/validator/staking-overview). This is not necessary for developing smart contracts or apps but it can be a good way to feel connected to the "bare metal" of how the network works. 3. **To integrate with NEAR,** for example if you are running an exchange, a wallet, or other project that needs to integrate on a deeper level, please see [integrating with NEAR](/docs/roles/integrator/integrating). 4. **To contribute to the core code base yourself,** see [contributing to NEAR](/docs/contribution/contribution-overview). To suggest changes to these docs, [view them on Github](https://github.com/near/docs) or just click the "Edit" button in the top to get started submitting your pull request. diff --git a/docs/roles/integrator/exchange-integration.md b/docs/roles/integrator/exchange-integration.md index b3c5bb1eb72..4f3af187a2a 100644 --- a/docs/roles/integrator/exchange-integration.md +++ b/docs/roles/integrator/exchange-integration.md @@ -117,7 +117,7 @@ taking the first approach whenever possible to support all transfers at once. - See [Blockchain Finality](/docs/roles/integrator/integrating#finality) for more information. ## Running an Archival Node -- Setting up an archival node is the same as a [regular node](https://docs.near.org/docs/local-setup/running-testnet), but modifying your `config.json` by changing `archive` to `true`. +- Setting up an archival node is the same as a [regular node](/docs/local-setup/running-a-node), but modifying your `config.json` by changing `archive` to `true`. ## Staking and Delegation - [https://github.com/nearprotocol/stakewars](https://github.com/nearprotocol/stakewars) diff --git a/docs/roles/integrator/integrating.md b/docs/roles/integrator/integrating.md index 38771e3d4bb..0ec3b45ffb0 100644 --- a/docs/roles/integrator/integrating.md +++ b/docs/roles/integrator/integrating.md @@ -25,7 +25,7 @@ The Near team recommends that custody wallets and exchanges track all shards to ### Server Setup -Please see [hardware requirements](/docs/roles/validator/hardware) and details of how to [run a NEAR node](/docs/local-setup/running-testnet). +Please see [hardware requirements](/docs/roles/validator/hardware) and details of how to [run a NEAR node](/docs/local-setup/running-a-node). ## Blockchain diff --git a/docs/validator/validator-faq.md b/docs/validator/validator-faq.md index 5778598101a..ddb107ad8cf 100644 --- a/docs/validator/validator-faq.md +++ b/docs/validator/validator-faq.md @@ -19,7 +19,7 @@ The collection of transactions for the shard is called a chunk. Once a chunk and ### How do I become a validator? You need an account with sufficient amount of funds. -Follow the docs [here](/docs/validator/staking) to understand how to become a validator, and [here](/docs/local-setup/running-testnet) to run a node. +Follow the docs [here](/docs/validator/staking) to understand how to become a validator, and [here](/docs/local-setup/running-a-node) to run a node. More specific steps: 1. Create a new key pair that will be used for staking for given account, and load it with the funds you want to put at stake @@ -72,7 +72,7 @@ Large validators will have to generate blocks signing across multiple shards, th ### How do I run a node? -Follow [this tutorial.](local-setup/running-testnet.md) +Follow [this tutorial.](local-setup/running-a-node.md) ### Do validators receive incentives for testing the protocol? diff --git a/website/sidebars.json b/website/sidebars.json index d52b130a668..d35e772640b 100644 --- a/website/sidebars.json +++ b/website/sidebars.json @@ -93,9 +93,10 @@ } ], "Machine Setup": [ + "local-setup/running-a-node", "local-setup/local-dev-testnet", - "local-setup/local-dev-node", - "local-setup/running-testnet" + "local-setup/local-dev-node" + ], "FAQ": [ "roles/developer/faq" From f1ca5c437f1699fadfa058df507b9fad4ce36e97 Mon Sep 17 00:00:00 2001 From: Josh Ford Date: Wed, 16 Sep 2020 18:14:12 -0700 Subject: [PATCH 04/10] created node key conecept doc --- docs/concepts/nodes.md | 53 ++++++++++++++++++++++++++++++ docs/local-setup/running-a-node.md | 16 --------- website/sidebars.json | 1 + 3 files changed, 54 insertions(+), 16 deletions(-) create mode 100644 docs/concepts/nodes.md diff --git a/docs/concepts/nodes.md b/docs/concepts/nodes.md new file mode 100644 index 00000000000..f8590179fc5 --- /dev/null +++ b/docs/concepts/nodes.md @@ -0,0 +1,53 @@ +--- +id: nodes +title: Nodes +sidebar_label: Nodes +--- + +## What is a node? + +NEAR Protocol runs on a collection of publicly maintained computers or "nodes". All nodes on a network perform and validate transactions, but differ in their ability to produce blocks. + +## Node types + +For simplicity sake, there are two main types of nodes: + - block producing nodes (aka "validator nodes") + - non-block producing nodes (aka "regular nodes") + +### Non-block producing node ("regular node") + +Anyone can run a "regular node" by following one of the methods mentioned in [this guide](/docs/local-setup/running-a-node). + +You may decide to run a node of your own for a few reasons: + + - To view, process, and validate transactions on `MainNet`, `TestNet` or `BetaNet` (†) + - To view, process, and validate transactions on an independent / isolated local NEAR network (sometimes called "LocalNet"). (††) + - To join `BetaNet` or `MainNet` as a block producing node, aka "Validator Node" (see "[Running a Validator Node](/docs/validator/staking)") + + _( † ) `TestNet` is intended to operate as similarly to `MainNet` as possible with only stable releases, while `BetaNet` follows a weekly release cycle._ + +_( †† ) `LocalNet` would be the right choice if you prefer to avoid leaking information about your work during the development process since `TestNet` and `BetaNet` are *public* networks. `LocalNet` also gives you total control over accounts, economics, and other factors for more advanced use cases (i.e. making changes to `nearcore`)._ + + +### Block producing node ("validator node") + +Nodes that _can_ produce blocks, also referred to as "[Validator Nodes](/docs/validator/staking-overview)", undergo a more extensive vetting process including [staking](/docs/validator/staking). + +To run a block producing node, you must have a validator key and be included among the set of block producers. After each [epoch](/docs/concepts/epoch), "validator nodes" are shuffled and randomly selected for the next epoch. + +See "[How do I become a validator](http://localhost:3000/docs/validator/validator-faq#how-do-i-become-a-validator)" and [validator selection process](https://nomicon.io/Economics/README.html?validator-selection#validator-selection) for more information. + +
+heads up

+ +Non-block producing nodes still validate every block and is very important to the network. Through this network of nodes that view all transactions taking place, they help us to be certain that the chain is correct and no invalid state transitions / forks are taking place. + +
+ +### Archival vs. Non-archival nodes + +Both block producing ("validator") and non-block producing ("regular") nodes can be configured to be either archival or non-archival. Nodes are non-archival by default, but you can easily set your node to archival by updating your `config.json` changing `archive` to `true`. + + - Archival nodes store all data, from genesis to present. Anytime a new archival node is created, it begins by first syncing all data from genesis to current, then begins to record all future transactions. + + - Non-archival nodes will do a state sync to a recent point, and will only validate from that point forward. They will continue to only maintain a recent set of blocks locally, discarding older ones as the chain grows in height. diff --git a/docs/local-setup/running-a-node.md b/docs/local-setup/running-a-node.md index 58e6528e6d6..58e2ecb18f1 100644 --- a/docs/local-setup/running-a-node.md +++ b/docs/local-setup/running-a-node.md @@ -4,22 +4,6 @@ title: Running a node sidebar_label: Running a node --- -NEAR Protocol runs on a collection of publicly maintained computers or "nodes". - - - All nodes on a network perform and validate transactions, but differ in their ability to produce blocks. - - Anyone can run a non-producing block node, or "regular node", by following the guides below. - - Nodes that _can_ produce blocks, also referred to as "[Validator Nodes](/docs/validator/staking-overview)", undergo a more extensive vetting process which includes [staking](/docs/validator/staking) and other [selection requirements](https://nomicon.io/Economics/README.html?validator-selection#validator-selection). (See [Validator FAQ](/docs/validator/validator-faq) for more information) - -You may decide to run a node of your own for a few reasons: - -- To view, process, and validate transactions on `MainNet`, `TestNet` or `BetaNet` (†) -- To view, process, and validate transactions on an independent / isolated local NEAR network (sometimes called "LocalNet"). (††) -- To join `BetaNet` or `MainNet` as a block producing node, aka "Validator Node" (see "[Running a Validator Node](/docs/validator/staking)") - -_( † ) `TestNet` is intended to operate as similarly to `MainNet` as possible with only stable releases, while `BetaNet` follows a weekly release cycle._ - -_( †† ) `LocalNet` would be the right choice if you prefer to avoid leaking information about your work during the development process since `TestNet` and `BetaNet` are *public* networks. `LocalNet` also gives you total control over accounts, economics, and other factors for more advanced use cases (i.e. making changes to `nearcore`)._ - ## Running a node using `nearcore` 1) If you haven't already, you will need to clone [`nearcore`](https://github.com/nearprotocol/nearcore) as well as compile and run the `neard` package using Rust. Please reference [this guide](https://docs.near.org/docs/contribution/nearcore#docsNav) for assistance. diff --git a/website/sidebars.json b/website/sidebars.json index d35e772640b..7d422eab4df 100644 --- a/website/sidebars.json +++ b/website/sidebars.json @@ -11,6 +11,7 @@ "Key Concepts": [ "concepts/overview", "concepts/account", + "concepts/nodes", "concepts/epoch", "concepts/storage", "concepts/gas", From fd29cc5811e48e4f53de4cf81a36ddc330417f83 Mon Sep 17 00:00:00 2001 From: Josh Ford Date: Wed, 16 Sep 2020 18:31:36 -0700 Subject: [PATCH 05/10] minor grammar edit --- docs/concepts/nodes.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/concepts/nodes.md b/docs/concepts/nodes.md index f8590179fc5..e96f50fbb38 100644 --- a/docs/concepts/nodes.md +++ b/docs/concepts/nodes.md @@ -38,15 +38,17 @@ To run a block producing node, you must have a validator key and be included amo See "[How do I become a validator](http://localhost:3000/docs/validator/validator-faq#how-do-i-become-a-validator)" and [validator selection process](https://nomicon.io/Economics/README.html?validator-selection#validator-selection) for more information.
-heads up

+Note

-Non-block producing nodes still validate every block and is very important to the network. Through this network of nodes that view all transactions taking place, they help us to be certain that the chain is correct and no invalid state transitions / forks are taking place. +Non-block producing nodes still validate every block and are very important to the network. This network of nodes that view all transactions taking place, help us to be certain that the chain is correct and no invalid state transitions / forks are taking place.
### Archival vs. Non-archival nodes -Both block producing ("validator") and non-block producing ("regular") nodes can be configured to be either archival or non-archival. Nodes are non-archival by default, but you can easily set your node to archival by updating your `config.json` changing `archive` to `true`. +Both block producing ("validator") and non-block producing ("regular") nodes can be configured to be either archival or non-archival. All nodes are non-archival by default, but you can easily set your node to archival by updating your `config.json` changing `archive` to `true`. + +Its important to note that: - Archival nodes store all data, from genesis to present. Anytime a new archival node is created, it begins by first syncing all data from genesis to current, then begins to record all future transactions. From d61a469350464ddc388f200a4df244b26ec3695f Mon Sep 17 00:00:00 2001 From: Josh Ford Date: Wed, 16 Sep 2020 18:55:56 -0700 Subject: [PATCH 06/10] minor edit --- docs/concepts/nodes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/concepts/nodes.md b/docs/concepts/nodes.md index e96f50fbb38..d8041b13831 100644 --- a/docs/concepts/nodes.md +++ b/docs/concepts/nodes.md @@ -40,7 +40,7 @@ See "[How do I become a validator](http://localhost:3000/docs/validator/validato
Note

-Non-block producing nodes still validate every block and are very important to the network. This network of nodes that view all transactions taking place, help us to be certain that the chain is correct and no invalid state transitions / forks are taking place. +Non-block producing nodes still validate every block and are very important to the network. This network of nodes, that view all transactions taking place, help us to be certain that the chain is correct and no invalid state transitions / forks are occurring.
@@ -52,4 +52,4 @@ Its important to note that: - Archival nodes store all data, from genesis to present. Anytime a new archival node is created, it begins by first syncing all data from genesis to current, then begins to record all future transactions. - - Non-archival nodes will do a state sync to a recent point, and will only validate from that point forward. They will continue to only maintain a recent set of blocks locally, discarding older ones as the chain grows in height. + - Non-archival nodes will do a state sync to a recent point, and will only validate from that point forward. They will continue to maintain a recent set of blocks locally, discarding older ones as the chain grows in height. From d07f90276961ad282532439ace519f1e32b8a34a Mon Sep 17 00:00:00 2001 From: Josh Ford Date: Wed, 16 Sep 2020 18:58:34 -0700 Subject: [PATCH 07/10] update link --- docs/concepts/nodes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/concepts/nodes.md b/docs/concepts/nodes.md index d8041b13831..663c260ecbe 100644 --- a/docs/concepts/nodes.md +++ b/docs/concepts/nodes.md @@ -35,7 +35,7 @@ Nodes that _can_ produce blocks, also referred to as "[Validator Nodes](/docs/va To run a block producing node, you must have a validator key and be included among the set of block producers. After each [epoch](/docs/concepts/epoch), "validator nodes" are shuffled and randomly selected for the next epoch. -See "[How do I become a validator](http://localhost:3000/docs/validator/validator-faq#how-do-i-become-a-validator)" and [validator selection process](https://nomicon.io/Economics/README.html?validator-selection#validator-selection) for more information. +See "[How do I become a validator](/docs/validator/validator-faq#how-do-i-become-a-validator)" and [validator selection process](https://nomicon.io/Economics/README.html?validator-selection#validator-selection) for more information.
Note

From 924793e9224f6c29471560fb64a75f8874d6caff Mon Sep 17 00:00:00 2001 From: Josh Ford Date: Mon, 21 Sep 2020 09:20:19 -0700 Subject: [PATCH 08/10] added NEAR / grammar fix --- docs/concepts/nodes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/concepts/nodes.md b/docs/concepts/nodes.md index 663c260ecbe..ec36cd3aab4 100644 --- a/docs/concepts/nodes.md +++ b/docs/concepts/nodes.md @@ -10,7 +10,7 @@ NEAR Protocol runs on a collection of publicly maintained computers or "nodes". ## Node types -For simplicity sake, there are two main types of nodes: +For simplicities sake, NEAR has two main types of nodes: - block producing nodes (aka "validator nodes") - non-block producing nodes (aka "regular nodes") From 5b97677d78ca3a4989ae27076df44f7932669e8f Mon Sep 17 00:00:00 2001 From: Josh Ford Date: Tue, 6 Oct 2020 13:52:19 -0700 Subject: [PATCH 09/10] block/non-block producing => producing/non-producing --- docs/concepts/nodes.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/concepts/nodes.md b/docs/concepts/nodes.md index ec36cd3aab4..469789dc2d4 100644 --- a/docs/concepts/nodes.md +++ b/docs/concepts/nodes.md @@ -11,10 +11,10 @@ NEAR Protocol runs on a collection of publicly maintained computers or "nodes". ## Node types For simplicities sake, NEAR has two main types of nodes: - - block producing nodes (aka "validator nodes") - - non-block producing nodes (aka "regular nodes") + - Producing nodes (aka "validator nodes") + - Non-producing nodes (aka "regular nodes") -### Non-block producing node ("regular node") +### Non-producing node ("regular node") Anyone can run a "regular node" by following one of the methods mentioned in [this guide](/docs/local-setup/running-a-node). @@ -22,31 +22,31 @@ You may decide to run a node of your own for a few reasons: - To view, process, and validate transactions on `MainNet`, `TestNet` or `BetaNet` (†) - To view, process, and validate transactions on an independent / isolated local NEAR network (sometimes called "LocalNet"). (††) - - To join `BetaNet` or `MainNet` as a block producing node, aka "Validator Node" (see "[Running a Validator Node](/docs/validator/staking)") + - To join `BetaNet` or `MainNet` as a producing node, aka "Validator Node" (see "[Running a Validator Node](/docs/validator/staking)") _( † ) `TestNet` is intended to operate as similarly to `MainNet` as possible with only stable releases, while `BetaNet` follows a weekly release cycle._ _( †† ) `LocalNet` would be the right choice if you prefer to avoid leaking information about your work during the development process since `TestNet` and `BetaNet` are *public* networks. `LocalNet` also gives you total control over accounts, economics, and other factors for more advanced use cases (i.e. making changes to `nearcore`)._ -### Block producing node ("validator node") +### Producing node ("validator node") Nodes that _can_ produce blocks, also referred to as "[Validator Nodes](/docs/validator/staking-overview)", undergo a more extensive vetting process including [staking](/docs/validator/staking). -To run a block producing node, you must have a validator key and be included among the set of block producers. After each [epoch](/docs/concepts/epoch), "validator nodes" are shuffled and randomly selected for the next epoch. +To run a producing node, you must have a validator key and be included among the set of block producers. After each [epoch](/docs/concepts/epoch), "validator nodes" are shuffled and randomly selected for the next epoch. See "[How do I become a validator](/docs/validator/validator-faq#how-do-i-become-a-validator)" and [validator selection process](https://nomicon.io/Economics/README.html?validator-selection#validator-selection) for more information.
Note

-Non-block producing nodes still validate every block and are very important to the network. This network of nodes, that view all transactions taking place, help us to be certain that the chain is correct and no invalid state transitions / forks are occurring. +Non-producing nodes still validate every block and are very important to the network. This network of nodes, that view all transactions taking place, help us to be certain that the chain is correct and no invalid state transitions / forks are occurring.
### Archival vs. Non-archival nodes -Both block producing ("validator") and non-block producing ("regular") nodes can be configured to be either archival or non-archival. All nodes are non-archival by default, but you can easily set your node to archival by updating your `config.json` changing `archive` to `true`. +Both producing ("validator") and non-producing ("regular") nodes can be configured to be either archival or non-archival. All nodes are non-archival by default, but you can easily set your node to archival by updating your `config.json` changing `archive` to `true`. Its important to note that: From c05cb21fb1096f25fb27b79329f07ab0ef343f61 Mon Sep 17 00:00:00 2001 From: Josh Ford Date: Tue, 6 Oct 2020 13:55:06 -0700 Subject: [PATCH 10/10] remove vetting process --- docs/concepts/nodes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/concepts/nodes.md b/docs/concepts/nodes.md index 469789dc2d4..7cab46b742a 100644 --- a/docs/concepts/nodes.md +++ b/docs/concepts/nodes.md @@ -31,9 +31,9 @@ _( †† ) `LocalNet` would be the right choice if you prefer to avoid leaking ### Producing node ("validator node") -Nodes that _can_ produce blocks, also referred to as "[Validator Nodes](/docs/validator/staking-overview)", undergo a more extensive vetting process including [staking](/docs/validator/staking). +Producing nodes, also referred to as "[Validator Nodes](/docs/validator/staking-overview)" contribute to the network by producing blocks or chunks. -To run a producing node, you must have a validator key and be included among the set of block producers. After each [epoch](/docs/concepts/epoch), "validator nodes" are shuffled and randomly selected for the next epoch. +To run a producing node, you must have a validator key and be included among the set of block producers. After each [epoch](/docs/concepts/epoch), "validator nodes" are shuffled and randomly selected for the next epoch. See "[How do I become a validator](/docs/validator/validator-faq#how-do-i-become-a-validator)" and [validator selection process](https://nomicon.io/Economics/README.html?validator-selection#validator-selection) for more information.