How to run POTOS observer nodes#

This document is intended to help community users run POTOS observer nodes step-by-step.

Currently, only access to the POTOS testnet is available; access to the POTOS mainnet will be come soon. Stay tuned!

System requirements#

Running an observer node requires the following system requirements:

Specifications

Recommended

Lowest

CPU

16 cores

4 cores

Memory

64 GB

8 GB

Storage

> 4 TB SSD, 4,000 Mbps

> 1 TB SSD, 800 Mbps

Network

10 Gbps

10 Mbps

Storage Estimation#

To address storage expansion, the requirement is determined by both the block size and transaction volume. Assuming average transaction size of 200 bytes and with each block containing approximately 100 transactions, the storage needed per block stands at 20 KB.

With a block interval set at 1 second, this translates to a daily storage requirement of 20 KB multiplied by 24 hours by 3600 seconds, equating to 1.65 GB per day.

This calculation underscores the importance of considering both the frequency and size of transactions when planning for storage capacity.

Operation System#

  • (Recommended) AWS Amazon Linux2, or other linux-based environments in mainstream cloud services provider.

  • (Recommended) Ubuntu 22.04 LTS in x86_64 or arm64.

  • CentOS 7/8 in x86_64 ir arm 64.

  • macOS 13.0 or later in x86_64 or arm64.

Deploy a observer node step-by-step#

Step 1. Download POTOS build-essentials#

Download the build_chain.sh from the github release.

# Create a directory to store the node binary, scripts, configuration, and data
$ mkdir -p ~/fisco && cd ~/fisco
# download the build_chain.sh for building nodes
$ curl -#LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v3.14.0/build_chain.sh && chmod u+x build_chain.sh

# download config.genesis and bootstrap-nodes config of POTOS testnet
$ curl -#LO https://github.com/potoshk/potos-docs/releases/download/v1.0.0/POTOS-testnet.tgz
$ tar -xvf POTOS-testnet.tgz

Step 2. Generate the node#

Generate the node config using downloaded build_chain.sh:

# generate a self observer node
$ bash build_chain.sh -C generate-template-package -o self-observer-node -G POTOS-testnet -k 0

# generate the node private key
$ bash build_chain.sh -C generate_cert -o self-observer-node/node0/conf

# The node directory structure is as follows:
$ tree self-observer-node
self-observer-node
├── fisco-bcos
├── node0
│   ├── conf
│      ├── ca
│         ├── ca.crt
│         ├── ca.key
│         ├── ca.srl
│         └── cert.cnf
│      ├── ca.crt
│      ├── cert.cnf
│      ├── node.nodeid
│      ├── node.pem
│      ├── ssl.crt
│      ├── ssl.key
│      └── ssl.nodeid
│   ├── config.genesis
│   ├── config.ini
│   ├── nodes.json
│   ├── start.sh
│   └── stop.sh
├── start_all.sh
└── stop_all.sh

Step 3. Start the observer node#

Run the start_all.sh script to start the observer node.

Before starting the node, please ensure that port 30300, 20200 and 8545 are not occupied by other services

If you want to modify the configuration of the node, you can edit the config.ini file of the node directory, check more details in the Configure observer node section.

$ cd ~/fisco/self-observer-node
# Start observer node
$ bash start_all.sh
# Observer node pid is 98622
 node0 start successfully pid=98622

$ ps -aux | grep bcos
501 98622     1   0 10:36 ttys019   13:33.97 ~/fisco/self-observer-node/node0/../fisco-bcos -c config.ini -g config.genesis

After starting the observer node, it will start to synchronize the block data. You can grep the log file to check the synchronization status.

$ tail -f node0/log/* | grep Report

# Many logs will be printed, and the following is an example of the log
info|2025-4-6 22:36:31.415281|[CONSENSUS][PBFT][METRIC]^^^^^^^^Report,sealer=2,txs=1,committedIndex=203,consNum=204

Step 4. Connecting MetaMask to Observer Node#

After the observer node is started, it will start a JSON-RPC service on port 8545. You can connect MetaMask to the observer node by adding a custom RPC.

Please refer to Guide to MetaMask & Connecting to the Testnet and Connect Remix to POTOS to learn how to use a wallet and Remix to connect to the POTOS testnet.