diff --git a/docs/Concepts/Pruning.md b/docs/Concepts/Pruning.md index 56e9552125c..198f1533d85 100644 --- a/docs/Concepts/Pruning.md +++ b/docs/Concepts/Pruning.md @@ -4,9 +4,11 @@ description: Pruning # Pruning !!! caution - Do not use pruning in Hyperledger Besu v1.4.0. Pruning has a [known bug](https://github.com/hyperledger/besu/blob/master/CHANGELOG.md#known-issues). - - If using fast sync in v1.4.0, explicitly disable pruning using [`--pruning-enabled=false`](../Reference/CLI/CLI-Syntax.md#pruning-enabled). + Do not use pruning in Hyperledger Besu v1.4.0. Pruning has a + [known bug](https://github.com/hyperledger/besu/blob/master/CHANGELOG.md#known-issues). + + If using fast sync in v1.4.0, explicitly disable pruning using + [`--pruning-enabled=false`](../Reference/CLI/CLI-Syntax.md#pruning-enabled). Use pruning to reduce storage required for the world state. Pruning removes state trie nodes that are not required. diff --git a/docs/HowTo/Deploy/Ansible.md b/docs/HowTo/Deploy/Ansible.md index 823b5ea5363..20733621a74 100644 --- a/docs/HowTo/Deploy/Ansible.md +++ b/docs/HowTo/Deploy/Ansible.md @@ -1,13 +1,17 @@ -title: Deploy Hyperledger Besu with Ansible -description: Deploying Hyperledger Besu with Ansible role on Galaxy - +--- +title: Deploy Hyperledger Besu with Ansible +description: Deploying Hyperledger Besu with Ansible role on Galaxy +--- -Use the [Hyperledge Besu role](https://galaxy.ansible.com/pegasyseng/hyperledger_besu) published on Galaxy to deploy Besu using Ansible. +# Deploying Hyperledger Besu with Ansible -Refer to the [Readme](https://galaxy.ansible.com/pegasyseng/hyperledger_besu) for details. +To deploy Hyperledger Besu using Ansible, use the +[Hyperledge Besu role](https://galaxy.ansible.com/pegasyseng/hyperledger_besu) published on Galaxy. + +For more information, see the +[Ansible readme](https://galaxy.ansible.com/pegasyseng/hyperledger_besu). !!! important - We strongly recommend automating network creation. Automating makes updates easy and ensures your - configuring is in sync across the network. - - Use the [Besu role](https://galaxy.ansible.com/pegasyseng/hyperledger_besu) for automation of network creation. + + We strongly recommend automating network creation. Automating makes updates easier and ensures + your configuration is synchronized across the network. \ No newline at end of file diff --git a/docs/HowTo/Deploy/Bootnodes.md b/docs/HowTo/Deploy/Bootnodes.md index 857ea0bf396..647c13d4593 100644 --- a/docs/HowTo/Deploy/Bootnodes.md +++ b/docs/HowTo/Deploy/Bootnodes.md @@ -1,45 +1,57 @@ -description: Configuring bootnodes in production networks - +--- +description: Configuring bootnodes in production networks +--- -# Configuring Bootnodes in a Production Network +# Configuring bootnodes in a production network -A network must have at least one operating bootnode. To allow for continuity in the event of failure, -configure two or more bootnodes. +A network must have at least one operating bootnode. To allow for continuity in the event of +failure, configure two or more bootnodes. -We do not recommend putting bootnodes behind a load balancer since the [enode](../../Concepts/Node-Keys.md#enode-url) is -tied to the node's public key, IP address, and discovery ports. Any changes to the enode of the bootnode prevents other nodes -from being able to establish a connection with the bootnode. This is why we recommend putting more bootnodes on the network itself. +We do not recommend putting bootnodes behind a load balancer because the +[enode](../../Concepts/Node-Keys.md#enode-url) relates to the node public key, IP address, and +discovery ports. Any changes to a bootnode enode prevents other nodes from being able to establish +a connection with the bootnode. This is why we recommend putting more bootnodes on the network +itself. -To ensure that the bootnode's enode does not change when recovering from a complete bootnode failure: +To ensure that a bootnode enode does not change when recovering from a complete bootnode failure: -1. Create the [node key pair](../../Concepts/Node-Keys.md) (that is, the private and public key) before starting the bootnode. -1. When creating bootnodes in the cloud (for example, AWS, Azure), attempt to assign a static IP to them. If your network is: - - * Publicly accessible, assign an elastic IP. - - * Internal only, specify a private IP address when you create the instance and record this IP address. +1. Create the [node key pair](../../Concepts/Node-Keys.md) (that is, the private and public key) + before starting the bootnode. +1. When creating bootnodes in the cloud (for example, AWS and Azure), attempt to assign a static IP + address to them. If your network is: -We recommend that the bootnode configuration be stored under source control. + * Publicly accessible, assign an elastic IP. + * Internal only, specify a private IP address when you create the instance and record this IP + address. -## Specifying Bootnodes +We recommend that you store the bootnode configuration under source control. -To allow for failure, specify all bootnodes on the command line (even to the bootnodes themselves). +## Specifying bootnodes -!!! example - If your network has two bootnodes, pass the following parameter to all nodes, including the bootnodes. - - `--bootnodes=enode://@:30303,@:30303` - -!!! tip - Having each bootnode list the other bootnodes increases the speed of discovery. Nodes ignore their own - enode in the bootnodes list so it's not required to specify different bootnode lists to the bootnodes - themselves. +To allow for failure, specify all bootnodes on the command line (even to the bootnodes themselves). -## Adding and Removing Bootnodes +!!! example -Adding new bootnodes is a similar process to creating bootnodes. Once the bootnodes have been created and added to the network, -update the [`--bootnodes`](../../Reference/CLI/CLI-Syntax.md#bootnodes) command line option for each node to include the new bootnodes. + If your network has two bootnodes, pass the following parameter to all nodes, including the + bootnodes. -When bootnodes are added, running nodes don’t need to be restarted. Updating the [`--bootnodes`](../../Reference/CLI/CLI-Syntax.md#bootnodes) -option means the next time they are restarted (for example, when [upgrading](../Upgrade/Upgrade-Node.md)), -the node connects to the new bootnodes. + ```bash + --bootnodes=enode://@:30303,@:30303 + ``` + +!!! tip + + Having each bootnode list the other bootnodes increases the speed of discovery. Nodes ignore + their own enode in the bootnodes list so it is not required to specify different bootnode lists + to the bootnodes themselves. + +## Adding and removing bootnodes + +Adding new bootnodes is a similar process to creating bootnodes. After creating the bootnodes and +adding them to the network,update the [`--bootnodes`](../../Reference/CLI/CLI-Syntax.md#bootnodes) +command line option for each node to include the new bootnodes. + +When adding bootnodes, you do not need to restart running nodes. By updating the +[`--bootnodes`](../../Reference/CLI/CLI-Syntax.md#bootnodes) option, the next time you restart the +nodes (for example, when [upgrading](../Upgrade/Upgrade-Node.md)), the nodes connect to the new +bootnodes. \ No newline at end of file diff --git a/docs/HowTo/Deploy/Cloud.md b/docs/HowTo/Deploy/Cloud.md index ff47b39221c..ecc274d4dcc 100644 --- a/docs/HowTo/Deploy/Cloud.md +++ b/docs/HowTo/Deploy/Cloud.md @@ -1,8 +1,12 @@ -description: Deploying Besu to cloud - +--- +description: Deploying Besu to the cloud +--- -When deploying to the cloud: +# Deploying Hyperledger Besu to the cloud -* Ensure you have enough spread across Availability Zones (AZs) and Regions especially for bootnodes and validators. -* If your network is a multi-region network, consider using VPC Peering to reduce latency. +When deploying Hyperledger Besu to the cloud: + +* Ensure you have enough spread across Availability Zones (AZs) and Regions, especially for + bootnodes and validators. +* If your network is a multi-region network, consider using VPC Peering to reduce latency. * Where required, use VPNs to connect to your on premise systems, or single private chains. \ No newline at end of file diff --git a/docs/HowTo/Deploy/Kubernetes.md b/docs/HowTo/Deploy/Kubernetes.md index 21ae1e81547..d5022d18e69 100644 --- a/docs/HowTo/Deploy/Kubernetes.md +++ b/docs/HowTo/Deploy/Kubernetes.md @@ -1,11 +1,18 @@ -title: Deploy a Hyperledger Besu Private Network with Kubernetes -description: Deploying Hyperledger Besu with Kubernetes - +--- +title: Deploy a Hyperledger Besu private network with Kubernetes +description: Deploying Hyperledger Besu with Kubernetes +--- -Use the [reference implementations](https://github.com/PegaSysEng/besu-kubernetes) to install private networks using Kubernetes(K8s). Reference implementations are available using: +# Deploying Hyperledger Besu with Kubernetes + +Use the [reference implementations](https://github.com/PegaSysEng/besu-kubernetes) to install +private networks using Kubernetes(K8s). Reference implementations are available using: * [Helm](https://github.com/PegaSysEng/besu-kubernetes/tree/master/helm) -* [Helmfile](https://github.com/PegaSysEng/besu-kubernetes/tree/master/helmfile/private-network-ibft-automated) -* [kubectl](https://github.com/PegaSysEng/besu-kubernetes/tree/master/kubectl) +* [Helmfile] +* [kubectl](https://github.com/PegaSysEng/besu-kubernetes/tree/master/kubectl). + +Familiarize yourself with the reference implementations and customize them for your requirements. -Familiarize yourself with the reference implementations and customize them for your requirements. \ No newline at end of file + +[Helmfile]: https://github.com/PegaSysEng/besu-kubernetes/tree/master/helmfile/private-network-ibft-automated diff --git a/docs/HowTo/Deploy/Lite-Block-Explorer.md b/docs/HowTo/Deploy/Lite-Block-Explorer.md index 4719e85280c..f45a607a594 100644 --- a/docs/HowTo/Deploy/Lite-Block-Explorer.md +++ b/docs/HowTo/Deploy/Lite-Block-Explorer.md @@ -1,101 +1,110 @@ +--- description: Ethereum Lite Explorer - +--- -Use the [Alethio Ethereum Lite Explorer](https://lite-explorer.aleth.io/) to explore blockchain data -at the block, transaction, and account level. - -The Alethio Ethereum Lite Explorer is a web application that connects to any Ethereum -JSON-RPC enabled node. No online server, hosting, or trusting third parties to display the blockchain -data is required. +# Alethio Ethereum Lite Explorer + +Use the [Alethio Ethereum Lite Explorer](https://lite-explorer.aleth.io/) to explore blockchain +data at the block, transaction, and account level. + +The Alethio Ethereum Lite Explorer is a web application that connects to any Ethereum +JSON-RPC-enabled node. The Explorer does not require an online server, hosting, or trusting third +parties to display the blockchain data. ## Prerequisites -[Docker](https://docs.docker.com/install/) or [Node.js](https://nodejs.org/) +[Docker](https://docs.docker.com/install/) or [Node.js](https://nodejs.org/). !!! tip - Using Docker is the easiest way to get started using the Ethereum Lite Explorer with Hyperledger - Besu if you do not have Node.js installed. -## Run Using Docker + Using Docker is the easiest way to get started using the Ethereum Lite Explorer with + Hyperledger Besu if you do not have Node.js installed. + +## Run using Docker -To run the Ethereum Lite Explorer using the Docker image: +To run the Ethereum Lite Explorer using the Docker image: -1. Start Besu with the [`--rpc-http-enabled`](../../Reference/CLI/CLI-Syntax.md#rpc-http-enabled) option. +1. Start Besu with the [`--rpc-http-enabled`](../../Reference/CLI/CLI-Syntax.md#rpc-http-enabled) + option. + + !!! example - !!! example - To run Besu in development mode: - + ```bash besu --network=dev --miner-enabled --miner-coinbase=0xfe3b557e8fb62b89f4916b721be55ceb828dbd73 --rpc-http-cors-origins="all" --host-whitelist="*" --rpc-http-enabled --data-path=/tmp/tmpDatdir ``` -1. Run the `alethio/ethereum-lite-explorer` Docker image specifying the JSON-RPC HTTP URL (`http://localhost:8545` in this example): +1. Run the `alethio/ethereum-lite-explorer` Docker image specifying the JSON-RPC HTTP URL + (`http://localhost:8545` in this example): ```bash docker run --rm -p 8080:80 -e APP_NODE_URL=http://localhost:8545 alethio/ethereum-lite-explorer ``` -1. Open [http://localhost:8080](http://localhost:8080) in your browser to view the Lite Explorer. +1. Open [http://localhost:8080](http://localhost:8080) in your browser to view the Lite Explorer. ![Ethereum Lite Explorer](../../images/explorer.png) !!! note "Default HTTP port" + We are using port 8080 to run the Ethereum Lite Explorer so - the [EthStats Lite](Lite-Network-Monitor.md) can use port 80. You can then run - both at the same time. + the [EthStats Lite](Lite-Network-Monitor.md) can use port 80, allowing you to run both at + the same time. + +## Install and run with Node.js -## Install and Run with Node.js +1. Clone the `ethereum-lite-explorer` repository: -1. Clone the `ethereum-lite-explorer` repository: - ```bash git clone https://github.com/Alethio/ethereum-lite-explorer.git ``` -1. Change into the `ethereum-lite-explorer` directory: +1. Change into the `ethereum-lite-explorer` directory: + ```bash cd ethereum-lite-explorer ``` -1. Install npm packages: +1. Install npm packages: ```bash npm install ``` -1. Copy the sample config: +1. Copy the sample configaration: - ```bash + ```bash cp config.default.json config.dev.json ``` - -1. Update the `config.dev.json` file: - * Set `APP_NODE_URL` to the JSON-RPC HTTP URL of your node (`http://localhost:8545` in this example) - - * Remove other environment variables. - -1. In another terminal, start Besu with the [`--rpc-http-enabled`](../../Reference/CLI/CLI-Syntax.md#rpc-http-enabled) option. +1. Update the `config.dev.json` file: + + * Set `APP_NODE_URL` to the JSON-RPC HTTP URL of your node (`http://localhost:8545` in this + example). + * Remove other environment variables. + +1. In another terminal, start Besu with the + [`--rpc-http-enabled`](../../Reference/CLI/CLI-Syntax.md#rpc-http-enabled) option. + + !!! example - !!! example - To run Besu in development mode: - + ```bash besu --network=dev --miner-enabled --miner-coinbase=0xfe3b557e8fb62b89f4916b721be55ceb828dbd73 --rpc-http-cors-origins="all" --host-whitelist="*" --rpc-http-enabled --data-path=/tmp/tmpDatdir ``` - -1. In the `ethereum-lite-explorer` directory, run the Lite Explorer in development mode: + +1. In the `ethereum-lite-explorer` directory, run the Lite Explorer in development mode: ```bash npm run build npm run start - ``` - -1. A browser window displays the Ethereum Lite Explorer (http://localhost:3000/). - -## Lite Block Explorer Documentation - -See the Ethereum Lite Explorer [GitHub repository](https://github.com/Alethio/ethereum-lite-explorer) -for more documentation, including details on deploying it. + ``` + +A browser window displays the Ethereum Lite Explorer (http://localhost:3000/). + +## Lite Block Explorer documentation + +For more information about Ethereum Lite Explorer, including details on how to deploy it, see the +[GitHub repository](https://github.com/Alethio/ethereum-lite-explorer). diff --git a/docs/HowTo/Deploy/Lite-Network-Monitor.md b/docs/HowTo/Deploy/Lite-Network-Monitor.md index 587cf4b2157..7f2b0e01367 100644 --- a/docs/HowTo/Deploy/Lite-Network-Monitor.md +++ b/docs/HowTo/Deploy/Lite-Network-Monitor.md @@ -1,103 +1,109 @@ +--- description: Alethio EthStats Lite network monitor - +--- # Alethio EthStats Lite (network monitor) -Use [Alethio EthStats Lite](https://github.com/Alethio?utf8=%E2%9C%93&q=ethstats&type=&language=javascript) -to have a live view of private network health by displaying real time and historical statistics -about the network and nodes. +Use [Alethio EthStats Lite] to have a live view of private network health by displaying real time +and historical statistics about the network and nodes. -EthStats Lite supports in-memory persistence or using Redis to persist a fixed number of blocks -(by default, 3000). +EthStats Lite supports in-memory persistence or using Redis to persist a fixed number of blocks (by +default, 3000). -A full online version of [EthStats for the Ethereum Mainnet](https://ethstats.io/) is also available. +A full online version of [EthStats for the Ethereum Mainnet](https://ethstats.io/) is also +available. !!! tip - Static local ports 80 and 3000 are used in the example [running EthStats Lite - for a Hyperledger Besu Node](#running-ethstats-lite-for-a-besu-node) + + The example + [running EthStats Lite for a Hyperledger Besu Node](#running-ethstats-lite-for-a-besu-node) + uses static local ports 80 and 3000. ## Statistics -Statistics displayed by EthStats Lite include: +Statistics displayed by EthStats Lite include: * Nodes in the network. Metrics for nodes include: - - Information about the last received block such as block number, -block hash, transaction count, uncle count, block time and propagation time - - Connected peers, whether the node is mining, hash rate, latency, and uptime -* Charts for Block Time, Block Difficulty, Block Gas Limit, Block Uncles, Block Transactions, Block Gas Used, -Block Propagation Histogram, and Top Miners -* IP based geolocation overview -* Node logs. Node logs display the data sent by a node -* Block history. Block history provides the ability to go back in time and playback the block propagation - through the nodes - -## Components - -EthStats Lite consists of: + * Information about the last received block such as block number, block hash, transaction count, + uncle count, block time and propagation time. + * Connected peers, whether the node is mining, hash rate, latency, and uptime. +* Charts for Block Time, Block Difficulty, Block Gas Limit, Block Uncles, Block Transactions, + Block Gas Used, Block Propagation Histogram, and Top Miners. +* IP-based geolocation overview. +* Node logs, which display the data sent by a node. +* Block history, which provides the ability to go back in time and playback the block propagation + through the nodes. -* [Server](https://github.com/Alethio/ethstats-network-server). Consumes node data received from the -client. +## Components -* [Client](https://github.com/Alethio/ethstats-cli). A client must be started for each node in the network. -The client extracts data from the node and sends it to the server +EthStats Lite consists of a: -* [Dashboard](https://github.com/Alethio/ethstats-network-dashboard). Dashboard displaying [statistics](#statistics). +* [Server](https://github.com/Alethio/ethstats-network-server). The server consumes node data + received from the client. +* [Client](https://github.com/Alethio/ethstats-cli). Each node in the network requires you to start + a client. The client extracts data from the node and sends it to the server. +* [Dashboard](https://github.com/Alethio/ethstats-network-dashboard). The dashboard displays + [statistics](#statistics). -## Pre-requisities +## Pre-requisities [Docker](https://docs.docker.com/install/) !!! tip + EthStats Lite has a number of dependencies. Using Docker is the easiest way to use EthStats Lite with Besu. - + The [EthStats CLI](https://github.com/Alethio/ethstats-cli), - [EthStats Network Server](https://github.com/Alethio/ethstats-network-server), and [EthStats Network - Dashboard](https://github.com/Alethio/ethstats-network-dashboard) documentation describes how to - install EthStats Lite tools. + [EthStats Network Server](https://github.com/Alethio/ethstats-network-server), and + [EthStats Network Dashboard](https://github.com/Alethio/ethstats-network-dashboard) + documentation describes how to install the EthStats Lite tools. -## Running EthStats Lite for a Besu Node +## Running EthStats Lite for a Besu node !!! important - This example describes how to run EthStats Lite for a single Besu node. - To run EthStats Lite for a network of nodes, a [client](#3-client) must be started for each node. + + This example describes how to run EthStats Lite for a single Besu node. For a network, run one + dedicated [EthStats Lite client](#3-client) for each Besu node. ### 1. Server -Start the EthStats Lite server using in-memory persistence: +Start the EthStats Lite server using in-memory persistence: -1. Clone the server repository: +1. Clone the server repository: ```bash git clone https://github.com/Alethio/ethstats-network-server.git ``` 1. Change into the `/ethstats-network-server/docker/lite-mode/memory-persistence` directory: - + ```bash cd ethstats-network-server/docker/lite-mode/memory-persistence ``` -1. Update the `docker-compose.yml` file to your Besu [network ID](../../Concepts/NetworkID-And-ChainID.md): - +1. Update the `docker-compose.yml` file to your Besu + [network ID](../../Concepts/NetworkID-And-ChainID.md): + ```yaml - NETWORK_ID=2018 - NETWORK_NAME=mynetwork ``` - - In this example we are using the `dev` Besu network with a network ID of `2018`. - -1. Start the server using Docker compose: + + In this example, we are using the `dev` Besu network with a network ID of `2018`. + +1. Start the server using Docker compose: ```bash docker-compose up -d ``` - + !!! tip - A `docker-compose` file is provided in the `ethstats-network-server/docker/lite-mode/redis-persistence` - directory to run the server using Redis to persist a fixed number of blocks (default is 3000). -### 2. Besu + A `docker-compose` file in the `ethstats-network-server/docker/lite-mode/redis-persistence` + directory runs the server using Redis to persist a fixed number of blocks (the default is 3000). + +### 2. Besu Start Besu in development mode with WebSockets enabled: @@ -105,62 +111,72 @@ Start Besu in development mode with WebSockets enabled: docker run --rm -p 8546:8546 hyperledger/besu:latest --miner-enabled --miner-coinbase fe3b557e8fb62b89f4916b721be55ceb828dbd73 --rpc-http-cors-origins="all" --rpc-ws-enabled --network=dev ``` -Where `` is the volume to which the node data is saved. +Where `` is the volume to save the node data to. -### 3. Client +### 3. Client -Start the client for the Besu node: +Start the client for the Besu node: ```bash docker run -d --rm --name ethstats-client --net host alethio/ethstats-cli --register --account-email --node-name --server-url http://localhost:3000 --client-url ws://127.0.0.1:8546 ``` -Where: +Where: -* `--server-url` specifies [your server](#1-server). The default is the server that consumes data for the Ethereum MainNet. -* `--register` specifies the registration of the Besu node is done automatically with the specified `` and ``. -Registering the node is only required the first time the client is started for the node. -* `--client-url` specifies the WebSockets URL for the Besu node. +* `--server-url` specifies [your server](#1-server). The default is the server consuming data for + the Ethereum MainNet. +* `--register` specifies automatic registration of the Besu node with the specified `` and + ``. Registering the node is only required when starting the client for the first time + for the node. +* `--client-url` specifies the WebSockets URL for the Besu node. -### 4. Dashboard +### 4. Dashboard -To display EthStats Lite dashboard, open [http://localhost](http://localhost) in your browser. +To display the EthStats Lite dashboard, open [http://localhost](http://localhost) in your browser. ![Alethio EthStats Lite Dashboard](../../images/ethstats.png) !!! note "Default HTTP port" - We are using the default HTTP port (80) to run EthStats Lite. The [Lite Block Explorer](Lite-Block-Explorer.md) - example uses port 8080. You can then run both at the same time. - + + We are using the default HTTP port (80) to run EthStats Lite. The + [Lite Block Explorer](Lite-Block-Explorer.md) example uses port 8080, allowing you to run both + at the same time. + To change the port, update the `docker-compose.yml` file: + ```yaml ports: - 127.0.0.1:80:80 ``` - + Update the first 80 to the required port: + ```yaml ports: - 127.0.0.1:8080:80 ``` -### Stopping and Cleaning Up Resources +### Stopping and cleaning up resources -When you've finished running EthStats Lite: +To stop running EthStats Lite: -1. Stop Besu using ++ctrl+c++. +1. Stop Besu, using ++ctrl+c++. -1. Stop EthStats Lite server and remove containers and volumes: +1. Stop the EthStats Lite server and remove containers and volumes: ```bash docker-compose down -v - ``` - -1. Stop EthStats Lite client: - + ``` + +1. Stop the EthStats Lite client: + ```bash docker stop ethstats-client ``` - + !!! tip + The client container is automatically removed because we used the `--rm` option. + + +[Alethio EthStats Lite]: https://github.com/Alethio?utf8=%E2%9C%93&q=ethstats&type=&language=javascript diff --git a/docs/HowTo/Deploy/Production.md b/docs/HowTo/Deploy/Production.md index 60b0653b414..6ebf9e27ba8 100644 --- a/docs/HowTo/Deploy/Production.md +++ b/docs/HowTo/Deploy/Production.md @@ -1,18 +1,19 @@ -description: Deploying Hyperledger Besu Permissioning Management Dapp for production - +--- +description: Deploying Hyperledger Besu Permissioning Management Dapp for production +--- -# Deploying Hyperledger Besu Permissioning Management Dapp for Production +# Deploying the Hyperledger Besu Permissioning Management Dapp for production -To deploy the Permissioning Management Dapp for production: +To deploy the Permissioning Management Dapp for production: -1. Get the most recent release (tarball or zip) from the [projects release page](https://github.com/PegaSysEng/permissioning-smart-contracts/releases/latest). +1. Retrieve the most recent release (tarball or zip) from the [projects release page]. 1. Unpack the distribution into a directory available to your webserver. -1. In the root of the directory to which the distribution was unpacked, add a file called `config.json` replacing -the placeholders. - - ```json tab="config.json" +1. In the root of the unpack directory, add a file called `config.json` replacing the placeholders + shown below. + + ```json tab="config.json" { "accountIngressAddress": "
", "nodeIngressAddress": "
", @@ -20,10 +21,15 @@ the placeholders. } ``` -1. On your webserver, host the contents of the directory as static files and direct root requests to `index.html` +1. On your webserver, host the contents of the directory as static files and direct root requests + to `index.html`. + +## Starting a production permissioned network -## Starting a Production Permissioned Network +Follow the procedure as for [Getting Started with Onchain Permissioning], but do not perform the +steps using `yarn` to install, build, and start the development server. Instead, follow the +procedure above to deploy the Permissioning Management Dapp to your webserver. -Follow the procedure as for [Getting Started with Onchain Permissioning](../../Tutorials/Permissioning/Getting-Started-Onchain-Permissioning.md) -but do not perform the steps using `yarn` to install, build, and start the development server. Instead follow the procedure above to -deploy the Permissioning Management Dapp to your webserver. + +[projects release page]: https://github.com/PegaSysEng/permissioning-smart-contracts/releases/latest +[Getting Started with Onchain Permissioning]: ../../Tutorials/Permissioning/Getting-Started-Onchain-Permissioning.md \ No newline at end of file diff --git a/docs/HowTo/Deploy/Validators.md b/docs/HowTo/Deploy/Validators.md index 478dd1c3c1c..2984be77633 100644 --- a/docs/HowTo/Deploy/Validators.md +++ b/docs/HowTo/Deploy/Validators.md @@ -1,40 +1,41 @@ -description: Configuring validators in production networks - +--- +description: Configuring validators in production networks +--- -# Configuring Validators in a Production Network +# Configuring validators in a production network -As when [configuring bootnodes](Bootnodes.md): +As when [configuring bootnodes](Bootnodes.md): -1. Create the [node key pair](../../Concepts/Node-Keys.md) (that is, the private and public key) before starting the validator. -1. When creating validators in the cloud (for example, AWS, Azure), attempt to assign a static IP to them. -If your network is: - - * Publicly accessible, assign an elastic IP. - * Internal only, specify a private IP address when you create the instance and record this IP address. +1. Create the [node key pair](../../Concepts/Node-Keys.md) (that is, the private and public key) + before starting the validator. +1. When creating validators in the cloud (for example, AWS or Azure), attempt to assign static IP + addresses to them. If your network is: -We recommend validator configuration is stored under source control. + * Publicly accessible, assign an elastic IP address. + * Internal only, specify a private IP address when you create the instance and record this IP + address. -## Number of Validators Required +We recommend storing validator configuration under source control. -Ensure sufficient validators are configured to allow for redundancy. The number of faulty validators that can be tolerated when -using IBFT 2.0 is: +## Number of validators required -`f = (n-1)/3` +Ensure you confingure enough validators to allow for redundancy. IBFT 2.0 tolerates `f = (n-1)/3` +faulty validators, where: -Where: +* `f` is the number of faulty validators +* `n` is the number of validators. -* f = number of faulty validators -* n = number of validators +## Adding and removing validators -## Adding and Removing Validators +You can [vote validators in or out of the validator pool]. -Validators are [voted in or out of the validator pool](../Configure/Consensus-Protocols/IBFT.md#adding-and-removing-validators). +## Validators as bootnodes -## Validators as Bootnodes +Validators can also be bootnodes. Other than the [usual configuration for bootnodes](Bootnodes.md), +you do not need to specify any extra configuration when a validator is also a bootnode. -Validators can also be bootnodes. Other than the [usual configuration for bootnodes](Bootnodes.md) no additional configuration -is required when a validator is also a bootnode. - -If a validator is removed that is also a bootnode, ensure there are enough remaining bootnodes on the -network. +If you remove a validator that is also a bootnode, ensure there are enough remaining bootnodes on +the network. + +[vote validators in or out of the validator pool]: ../Configure/Consensus-Protocols/IBFT.md#adding-and-removing-validators \ No newline at end of file diff --git a/docs/HowTo/Upgrade/Upgrade-Protocol.md b/docs/HowTo/Upgrade/Upgrade-Protocol.md index 052923a7901..db810d144d6 100644 --- a/docs/HowTo/Upgrade/Upgrade-Protocol.md +++ b/docs/HowTo/Upgrade/Upgrade-Protocol.md @@ -13,7 +13,7 @@ private network: 1. Network participants agree on block number at which to [upgrade](../../Concepts/Protocol-Upgrades.md). 1. For each node in the network: - + a. Add the [milestone block number](../../Reference/Config-Items.md#milestone-blocks) to the genesis file.