From 6a2c4239f50364b1583f7dc7bb8b1b14d27efa63 Mon Sep 17 00:00:00 2001 From: j75689 Date: Thu, 28 Jul 2022 15:36:04 +0800 Subject: [PATCH] Add separate node tutorial for BSC --- docs/BSC-fast-node.md | 155 ++++++++++++++++++++ docs/BSC-separate-node.md | 49 +++++++ docs/BSC-verify-node.md | 163 ++++++++++++++++++++++ sidebars.js | 6 + static/img/separate-node-architecture.png | Bin 0 -> 45002 bytes 5 files changed, 373 insertions(+) create mode 100644 docs/BSC-fast-node.md create mode 100644 docs/BSC-separate-node.md create mode 100644 docs/BSC-verify-node.md create mode 100644 static/img/separate-node-architecture.png diff --git a/docs/BSC-fast-node.md b/docs/BSC-fast-node.md new file mode 100644 index 0000000000..e8aeff9f89 --- /dev/null +++ b/docs/BSC-fast-node.md @@ -0,0 +1,155 @@ +--- +sidebar_label: BNB Smart Chain Fast Node +hide_table_of_contents: false +sidebar_position: 2 +--- +# How to Run A Fast Node on BNB Smart Chain + +## Fast Node Functions + +* Stores the full blockchain history on disk and can answer the data request from the network. +* Receives and validates the new blocks and transactions. +* Verifies the states of every accounts. + +## Suggested Requirements + +### Fast Node +- VPS running recent versions of Mac OS X or Linux. +- **IMPORTANT** 1T GB of free disk space, solid-state drive(SSD), gp3, 8k IOPS, 250MB/S throughput, read latency <1ms. (if start with snap/fast sync, it will need NVMe SSD) +- 16 cores of CPU and 64 gigabytes of memory (RAM). +- Suggest m5zn.3xlarge instance type on AWS, c2-standard-16 on Google cloud. +- A broadband Internet connection with upload/download speeds of 5 megabyte per second + +## Settings + +## Steps to Run a Fast Node + +### Sync From Snapshot (Recommended) + +1. Download the pre-build binaries from [release page](https://github.com/bnb-chain/bsc/releases/latest) or follow the instructions below: + +```bash +# Linux +wget $(curl -s https://api.github.com/repos/bnb-chain/bsc/releases/latest |grep browser_ |grep geth_linux |cut -d\" -f4) +# MacOS +wget $(curl -s https://api.github.com/repos/bnb-chain/bsc/releases/latest |grep browser_ |grep geth_mac |cut -d\" -f4) +``` + +2. Download the config files + +Download `genesis.json` and `config.toml` by: + +```bash +wget $(curl -s https://api.github.com/repos/bnb-chain/bsc/releases/latest |grep browser_ |grep mainnet |cut -d\" -f4) +unzip mainnet.zip +``` + +3. Download snapshot + +Download latest snapshot from [Download site](https://github.com/bnb-chain/bsc-snapshots) +Follow the guide to structure the files. + +4. Prune all trie data + +Fast node does not need trie data anymore, prune the trie data by the following command. +``` +geth snapshot insecure-prune-all --datadir ./node ./config.toml +``` + +### Sync From Genesis Block (Not Recommended) + +1.Build from source code + +Make sure that you have installed [Go 1.13+](https://golang.org/doc/install) and have added `GOPATH` to `PATH` environment variable + +```bash +git clone https://github.com/bnb-chain/bsc +# Enter the folder bsc was cloned into +cd bsc +# Compile and install bsc +make geth +``` + +or you can download the pre-build binaries from [release page](https://github.com/bnb-chain/bsc/releases/latest) or follow the instructions below: + +```bash +# Linux +wget $(curl -s https://api.github.com/repos/bnb-chain/bsc/releases/latest |grep browser_ |grep geth_linux |cut -d\" -f4) +# MacOS +wget $(curl -s https://api.github.com/repos/bnb-chain/bsc/releases/latest |grep browser_ |grep geth_mac |cut -d\" -f4) +``` + +2.Download the config files + +Download `genesis.json` and `config.toml` by: + +```bash +## mainet +wget $(curl -s https://api.github.com/repos/bnb-chain/bsc/releases/latest |grep browser_ |grep mainnet |cut -d\" -f4) +unzip mainnet.zip + +## testnet +wget $(curl -s https://api.github.com/repos/bnb-chain/bsc/releases/latest |grep browser_ |grep testnet |cut -d\" -f4) +unzip testnet.zip +``` + +3.Write genesis state locally + +```bash +geth --datadir node init genesis.json +``` + +You could see the following output: + +``` +INFO [05-19|14:53:17.468] Allocated cache and file handles database=/Users/huangsuyu/Downloads/bsc/node/geth/chaindata cache=16.00MiB handles=16 +INFO [05-19|14:53:17.498] Writing custom genesis block +INFO [05-19|14:53:17.501] Persisted trie from memory database nodes=21 size=56.84KiB time=357.915µs gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=-574.00B +INFO [05-19|14:53:17.502] Successfully wrote genesis state database=chaindata hash=7d79cc…fb0d1e +INFO [05-19|14:53:17.503] Allocated cache and file handles database=/Users/huangsuyu/Downloads/bsc/node/geth/lightchaindata cache=16.00MiB handles=16 +INFO [05-19|14:53:17.524] Writing custom genesis block +INFO [05-19|14:53:17.525] Persisted trie from memory database nodes=21 size=56.84KiB time=638.396µs gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=-574.00B +INFO [05-19|14:53:17.528] Successfully wrote genesis state database=lightchaindata hash=7d79cc…fb0d1e +``` + +## Start Fast Node Without Snapshot Verification +1. Start your fast node without snapshot verification by verify nodes. + +```bash +## start a fast node +geth --tries-verify-mode none --config ./config.toml --datadir ./node --cache 8000 --rpc.allow-unprotected-txs --txlookuplimit 0 +``` + +## Start Fast Node With Snapshot Verification +1. Add verifyNodes peers in config.toml. + +``` +[Node.P2P] +MaxPeers = 1350 +NoDiscovery = false +BootstrapNodes = ["enode://...", "enode://...", ...] +VerifyNodes = ["enode://...", "enode://...", ...] +StaticNodes = ["enode://...", "enode://...", ...] +ListenAddr = ":30311" +EnableMsgEvents = false +``` + +2. Start your fast node with snapshot verification by verify nodes. + +```bash +## start a fast node +geth --tries-verify-mode full --config ./config.toml --datadir ./node --cache 8000 --rpc.allow-unprotected-txs --txlookuplimit 0 +``` + +## Node Maintainence + +### Peer Discovery +The bootstrap nodes will be enhanced in the short future. So far, a discovery http service will provide some stable public p2p peers for syncing. Please visit https://api.binance.org/v1/discovery/peers to get dynamic peer info. You can append the peer info to the `StaticNodes` in the config.toml to enhance the networking of the full nodes. To avoid crowded networking, the discovery service will change the peer info from time to time, try fetch new ones if the connected peers of full node are too few. + +### Binary +All the clients are suggested to upgrade to the latest release. The [latest version](https://github.com/bnb-chain/bsc/releases/latest) is supposed to be more stable and get better performance. + +## Upgrade Geth + +Please read [this guide](./upgrade-fullnode.md) + diff --git a/docs/BSC-separate-node.md b/docs/BSC-separate-node.md new file mode 100644 index 0000000000..c71746022c --- /dev/null +++ b/docs/BSC-separate-node.md @@ -0,0 +1,49 @@ +--- +sidebar_label: BNB Smart Chain Separate Node +hide_table_of_contents: false +sidebar_position: 2 +--- +# Introduce + +![img](../static/img/separate-node-architecture.png) + +Currently, a BSC node has two kinds of state world: MPT and snapshot. MPT(Merkle Patricia Tries) is a tree-structured state world. The key function of MPT is to generate the state root to ensure state consistency, while the query/commit on MPT is quite slow. Snapshot is a flattened key-value-based state world. Snapshot provides fast queries and commits. The storage size of the snapshot increases slowly even with a large transaction volume. Snapshot is usually used for block processing, while MPT is used for state verification. + +In order to lower the hardware requirement and keep security, we introduce two types of nodes to make full use of different storage, one is named fast node, and the other is named verify node. The fast node will do block processing with snapshot, it will do all verification against blocks except state root. The verify node receives diffhash from the fast node and then responds MPT root to the fast node. + +The fast node doesn’t need to store MPT, so the storage and computation requirement will be much lower. + +## Roles + +- Fast Node + It does full sync using only Snapshot and generates difflayer. It needs the confirm message from the verify node before freezing the blocks, it has to wait until it receives a confirm message from the verify node for the ancestor block before inserting new blocks. +- Verify Node + It is a normal BSC full node that does full sync using Snapshot and MPT, and generates difflayer. It receives diffhash from fast nodes, finds the corresponding difflayer whose diffhash is matched, then responds MPT root message to the fast node. + + +## Related Commands + +#### Fast Node +Introduce a new **tries-verify-mode** setting, there are four modes: +- **local**: a normal full node with complete state world(both MPT and snapshot), merkle state root will be verified against the block header. +- **full**: a fast node with only snapshot state world. Merkle state root is verified by the trustworthy remote verify node by comparing the diffhash(an identify of difflayer generated by the block) and state root. +- **insecure**: same as full mode, except that it can tolerate without verifying the diffhash when verify node does not have it. +- **none**: no merkle state root verification at all, there is no need to setup or connect remote verify node at all, it is more light comparing to full and insecure mode, but get a very little chance that the state is not consistent with other peers. + +If the fast node runs in not local mode, the node will disable diff protocol by default, If the fast node runs in full or light mode, the node will enable trust protocol by default. + +` ./geth --config ./config.toml --datadir ./node --syncmode full --cache 5000 --tries-verify-mode none` + +#### Verify node +When a full node has enabled the trust protocol, it can serve as a verify node, at the same time, we will recommend you to enable persist diff, disable snap protocol and diff protocol when running a verify node. + +` ./geth --config ./config.toml --datadir ./node --syncmode full --cache 5000 --persistdiff --enabletrustprotocol --disablesnapprotocol --disablediffprotocol` + +#### Prune tries node +Prune the tires node: `./geth snapshot insecure-prune-all --datadir ./node ./genesis.json` + +## Run Verify Node +Please read [this guide](./BSC-verify-node.md) + +## Run Fast Node +Please read [this guide](./BSC-fast-node.md) \ No newline at end of file diff --git a/docs/BSC-verify-node.md b/docs/BSC-verify-node.md new file mode 100644 index 0000000000..d21df5964c --- /dev/null +++ b/docs/BSC-verify-node.md @@ -0,0 +1,163 @@ +--- +sidebar_label: BNB Smart Chain Verify Node +hide_table_of_contents: false +sidebar_position: 2 +--- +# How to Run A Verify Node on BNB Smart Chain + +## Verify Node Functions + +* Stores the full blockchain history on disk and can answer the data request from the network. +* Receives and validates the new blocks and transactions. +* Verifies the states of every accounts. +* Verifies the stated of Fast Node. + +## Suggested Requirements + +### Verify Node +- VPS running recent versions of Mac OS X or Linux. +- **IMPORTANT** 2T GB of free disk space, solid-state drive(SSD), gp3, 8k IOPS, 250MB/S throughput, read latency <1ms +- 16 cores of CPU and 64 gigabytes of memory (RAM) +- Suggest m5zn.3xlarge instance type on AWS, or c2-standard-16 on Google cloud. +- A broadband Internet connection with upload/download speeds of 10 megabyte per second + +## Settings + +## Chaindata Snapshot + +Please download the chain data [snapshot](./snapshot) and extract to your home folder to speed up + +``` +## Extract the data +unzip geth.zip -d /NAME_OF_YOUR_HOME/node & +``` +## Steps to Run a Verify Node + +### Sync From Snapshot (Recommended) + +1. Download the pre-build binaries from [release page](https://github.com/bnb-chain/bsc/releases/latest) or follow the instructions below: + +```bash +# Linux +wget $(curl -s https://api.github.com/repos/bnb-chain/bsc/releases/latest |grep browser_ |grep geth_linux |cut -d\" -f4) +# MacOS +wget $(curl -s https://api.github.com/repos/bnb-chain/bsc/releases/latest |grep browser_ |grep geth_mac |cut -d\" -f4) +``` + +2. Download the config files + +Download `genesis.json` and `config.toml` by: + +```bash +wget $(curl -s https://api.github.com/repos/bnb-chain/bsc/releases/latest |grep browser_ |grep mainnet |cut -d\" -f4) +unzip mainnet.zip +``` + +3. Download snapshot + +Download latest snapshot from [Download site](https://github.com/bnb-chain/bsc-snapshots) +Follow the guide to structure the files. + +4. Start a full node +``` +geth --config ./config.toml --datadir ./node --diffsync --cache 8000 --rpc.allow-unprotected-txs --txlookuplimit 0 +``` + +### Sync From Genesis Block (Not Recommended) + +1.Build from source code + +Make sure that you have installed [Go 1.13+](https://golang.org/doc/install) and have added `GOPATH` to `PATH` environment variable + +```bash +git clone https://github.com/bnb-chain/bsc +# Enter the folder bsc was cloned into +cd bsc +# Compile and install bsc +make geth +``` + +or you can download the pre-build binaries from [release page](https://github.com/bnb-chain/bsc/releases/latest) or follow the instructions below: + +```bash +# Linux +wget $(curl -s https://api.github.com/repos/bnb-chain/bsc/releases/latest |grep browser_ |grep geth_linux |cut -d\" -f4) +# MacOS +wget $(curl -s https://api.github.com/repos/bnb-chain/bsc/releases/latest |grep browser_ |grep geth_mac |cut -d\" -f4) +``` + +2.Download the config files + +Download `genesis.json` and `config.toml` by: + +```bash +## mainet +wget $(curl -s https://api.github.com/repos/bnb-chain/bsc/releases/latest |grep browser_ |grep mainnet |cut -d\" -f4) +unzip mainnet.zip + +## testnet +wget $(curl -s https://api.github.com/repos/bnb-chain/bsc/releases/latest |grep browser_ |grep testnet |cut -d\" -f4) +unzip testnet.zip +``` + +3.Write genesis state locally + +```bash +geth --datadir node init genesis.json +``` + +You could see the following output: + +``` +INFO [05-19|14:53:17.468] Allocated cache and file handles database=/Users/huangsuyu/Downloads/bsc/node/geth/chaindata cache=16.00MiB handles=16 +INFO [05-19|14:53:17.498] Writing custom genesis block +INFO [05-19|14:53:17.501] Persisted trie from memory database nodes=21 size=56.84KiB time=357.915µs gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=-574.00B +INFO [05-19|14:53:17.502] Successfully wrote genesis state database=chaindata hash=7d79cc…fb0d1e +INFO [05-19|14:53:17.503] Allocated cache and file handles database=/Users/huangsuyu/Downloads/bsc/node/geth/lightchaindata cache=16.00MiB handles=16 +INFO [05-19|14:53:17.524] Writing custom genesis block +INFO [05-19|14:53:17.525] Persisted trie from memory database nodes=21 size=56.84KiB time=638.396µs gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=-574.00B +INFO [05-19|14:53:17.528] Successfully wrote genesis state database=lightchaindata hash=7d79cc…fb0d1e +``` + +4.Start your verify node + + +!!! Note + BREAKING CHANGE: Non-EIP155 transactions (i.e. transactions which are not replay-protected) are now rejected by the RPC API. You can disable this restriction using the --rpc.allow-unprotected-txs command-line flag. + +```bash +## start a verify node +geth --enabletrustprotocol --persistdiff --diffblock 1000000000 --config ./config.toml --datadir ./node --cache 8000 --rpc.allow-unprotected-txs --txlookuplimit 0 +``` + +## Node Maintainence + +### Peer Discovery +The bootstrap nodes will be enhanced in the short future. So far, a discovery http service will provide some stable public p2p peers for syncing. Please visit https://api.binance.org/v1/discovery/peers to get dynamic peer info. You can append the peer info to the `StaticNodes` in the config.toml to enhance the networking of the full nodes. To avoid crowded networking, the discovery service will change the peer info from time to time, try fetch new ones if the connected peers of full node are too few. + +### Binary +All the clients are suggested to upgrade to the latest release. The [latest version](https://github.com/bnb-chain/bsc/releases/latest) is supposed to be more stable and get better performance. + +### Storage +According to the test, the performance of a verifynode will degrade when the storage size exceeds 1.5T. We suggest the verifynode always keep light storage by pruning the storage. + +How to prune: + +1. Stop the BSC node. +2. Run `nohup geth snapshot prune-state --datadir {the data dir of your bsc node} &`. It will take 3-5 hours to finish. +3. Start the node once it is done. + +The maintainers should always have a few backup nodes. + +The hardware is also important, **make sure the SSD meets: 2T GB of free disk space, solid-state drive(SSD), gp3, 8k IOPS, 250MB/S throughput, read latency <1ms**. + +### Diff Sync +The diffsync protocol rolled out as a stable feature in release v1.1.5. Diff sync improves the syncing speed by 60%~70% approximately according to the test. All full nodes are suggested to enable it by adding `--diffsync` in the starting command. + +### Light Storage +When the node crashes or been force killed, the node will sync from a block that was a few minutes or a few hours ago. This is because the state in memory is not persisted into the database in real time, and the node needs to replay blocks from the last checkpoint once it start. The replaying time dependents on the configuration `TrieTimeout` in the config.toml. We suggest you raise it if you can tolerate with long replaying time, so the node can keep light storage. + +## Upgrade Geth + +Please read [this guide](./upgrade-fullnode.md) + diff --git a/sidebars.js b/sidebars.js index 4bb348af5f..2b82a39323 100644 --- a/sidebars.js +++ b/sidebars.js @@ -62,6 +62,12 @@ const sidebars = { label: 'Running Fullnode', items: ['validator/fullnode','validator/snapshot','local', 'validator/upgrade-fullnode'] }, + { + type: 'category', + collapsed: true, + label: 'Separate Node', + items: ['BSC-separate-node','BSC-verify-node', 'BSC-fast-node'] + }, { type: 'category', collapsed: true, diff --git a/static/img/separate-node-architecture.png b/static/img/separate-node-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..66d81826877c9ac78141210094501f3babbce5db GIT binary patch literal 45002 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 z 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�b_Gkf~yjgd9P1p=b^ta%Gn= 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 O{3*(+$y7^Og#8b6dZK{< literal 0 HcmV?d00001