Ozone Chain is a private blockchain network. Participation in the network as a node is restricted to select nodes that is agreed to by Ozone Chain DAO (Decentralized Autonomous Organization).
A Non-Validator Node is a peer node in the Ozone Chain network that has access to the RPC URL of a Validator Node, can receive block data or forward transaction requistions from a client like Metamask to the Validator Node’s RPC URL. A Non-Validator cannot produce blocks and thus cannot receive transaction fees.
The code for running a Non-Validator Node is hosted at https://github.com/Ozone-chain/ozonechain_quantum
The proposed Non-Validator Node as well as an existing Validator Node must perform the below steps.
Ozone chain is very light on system requirements. It can run on a server with just 2 CPU and 4 GB RAM.
For optimal performance, we recommend a server with 8 CPU and 16 GB RAM.
Storage : 1 TB SSD harddisk.
Ozone chain supports a variety of OS like Linux (many distros like Debian, Ubuntu, Fedora, RHEL etc), Windows and Mac.
The recommended OS is any recent version of Ubuntu or Debian. These have been tested to work well with the officially provided scripts.
Caution: If you want to run Ozone chain on a different OS, you may need to modify the scripts. Go this route only if you are an expert in blockchain. Official support may not be available.
It can be an on-premise server or from a cloud provider like AWS, Azure, Digital ocean etc.
The IP address of the node must be public and static.
Public, meaning it is reachable from the Internet. Static, meaning it must be a permanent IP address and not a dynamically changing one. If you are using AWS, you need to attach an Elastic IP to the EC2 Instance.
The following ports are to be opened.
TCP 30303
UDP 30303
TCP 8545 (if you want to open RPC port to public)
$ cd /root
$ sudo su or $ su root
# git clone https://github.com/Ozone-chain/ozonechain_quantum.git
Verify that the folder /root/ozonechain_quantum is present and the code is inside.
The scripts run-1.sh and run-2.sh are used to setup quantum security as a systemd service. The script run-3.sh is used to setup the blockchain node as a systemd service.
Caution: If you mount this partition to any other path, you may need to modify the scripts. Go this route only if you are an expert in system administration. Official support may not be available.
# bash run-1.sh
/root/ozonechain_quantum/quantum
Get the .env file by contacting contact@ozonechain.io. The .env file contains credentials to receive QRNs from the laser-based quantum source
# bash run-2.sh
NODE_PUBLIC_IP="aaa.bbb.ccc.ddd"
# bash run-3.sh
# journalctl -u ozonechain_node --grep"enode" | head
github repo, in the file https://github.com/Ozonechain/ozonechain_quantum/blob/main/ozonechain/config/permissions_config.toml
# echo `cat /root/blockchain/data/keys/node_address
# echo `cat /root/blockchain/data/keys/node_address
https://ozonechain.io/nodes/list
# systemctl status quantum
# systemctl status ozonechain_node
If you see “active (running)” in the output, your quantum-secure node is operational.
To see the peer count and imported blocks in real-time, run,
#journalctl -u ozonechain_node -f
# cd /root/ozonechain
# bash run-1.sh
This script does a “git pull” and updates the local git repo. Importantly, this file
https://github.com/Ozone-chain/ozonechain_quantum/blob/main/ozonechain/config/permissions_config.toml
# bash run-3.sh
ozonechain restarts and uses the updated permissions_config.toml file.
Propose to add a validator with the specified address
# curl -X POST --data
'{"jsonrpc":"2.0","method":"qbft_proposeValidatorVote","params":["new_validator_node_address",true], "id":1}' http://127.0.0.1:8545
Note: Replace new_validator_node_address with the address provided by the new validator from Step 3.10.
The new validator will be accepted by the network after a period of 6 hours mentioned by epochlength in the genesis file is passed and if it received the votes from a majority (above 50%) of existing validators within the 6 hours period.
To check if the new validator is accepted, run the command,
# curl -X POST --data
'{"jsonrpc":"2.0","method":"qbft_getValidatorsByBlockNumber","params":["latest"], "id":1}' http://127.0.0.1:8545
In the output, you will see the address of the newly added validator.