Ferrum Testnet Node
Learn about the Ferrum Network Testnet Node and learn how to run the node
Introduction
Collators/Validators are members of the network that maintain the parachains they take part in. They run a full node (for both their particular parachain and the relay chain), and they produce the state transition proof for relay chain validators.
Candidates will need a minimum amount of tokens bonded (self-bonded) to be considered eligible. Along with running a validator node for the Ferrum blockchain, you can choose to run a specific type of Ferrum node, which help in validating crosschain transactions on the Ferrum Network.
The different types of nodes of the Ferrum Network:
Validator node
Running a validator node means you participate in the block production of the Ferrum Network. Once your validator node is up and running, you can choose to be a block producer candidate, and if you have a minimum amount of tokens, you will be selected for block production. Currently, we do not have staking or rewards for block production, but we plan to support this in the future.
Miner Node (QP Miner)
A miner node is responsible for mining crosschain transactions, and these nodes will observe the QP chain pairs and mine blocks on each other chains. This type of node can be run in conjunction with a validator node or independently to mine the block on the pair chain. Do note that running this node requires a minimum amount of tokens to pay for transaction costs on the pair chains.
Finalizer Node (QP Finalizer)
The finalizer node is responsible for finalizing the mined blocks, and these nodes will observe the mined blocks on the pair chains and finalize the block on the pair chain. This type of node can be run in conjunction with a validator node or independently to finalize the block on the pair chain. Do note that running this node requires a minimum amount of tokens to pay for transaction costs on the pair chains.
Archive Node
The archive node is the simplest type of node. The archive node will sync and update the latest block on the Ferrum chain. This type of node is useful to run an indexer or explorer.
How Quantum Portal works
Quantum Portal is part of the Ferrum Runtime Node. When you deploy the Ferrum Network node, you can configure it to mine or validate Quantum Portal transactions of Ferrum Network transactions as a validator on the network.
Overview
Quantum Portal is part of the Ferrum Runtime Node. When you deploy the Ferrum Network node, you can configure it to mine or validate Quantum Portal transactions of Ferrum Network transactions as a validator on the network.
Quantum Portal includes the following core components:
QP Smart Contract
QP Miner
QP Finalizer
What is Quantum Portal Mining?
The QP Miners take turns based on an algorithm to create and relay these blocks from the sourceChain to the destinationChain. QP Miners do this by running the Ferrum Node as a QP Miner (QP Node). Once configured, this QP Node monitors the transactions on the network that they have set up to be miners and staked tokens on. The QP Node monitors transactions on the sourceChain and if new data is available, it creates a block every 15 seconds. After creating a block, the QP Node calls the mineRemoteBlock on the destinationChain in order to execute the transaction and mine the QP Block. It is considered a mined block after the transaction executes on the destinationChain
What is Quantum Portal Finalization?
The QP Validators take turns based on an algorithm to pick the pending (mined but not finalized) Quantum Portal Blocks from the Quantum Portal Mined Block mempool. QP Validators do this by running the Ferrum Node as a QP Validator (QP Node). Once configured, this QP Node monitors the Quantum Portal Mined Block mempool for mined Quantum Portal Blocks, If new data is available, it creates a finalized block every 15 seconds. After creating a finalized block, the QP Node calls the finalizeRemoteBlock on the destinationChain in order to record the block as finalized and execute any remote transactions if applicable. The QP Block. It is considered a finalized block after the finalizeRemoteBlock transaction executes on the destinationChain Once mined QP Blocks are finalized, the record of the finalized mined blocks and the finalized block itself is added to the destinationChains.
What is Quantum Portal Smart Contracts?
Quantum Portal Smart Contracts (QPSC) are Permissionless, decentralized client-side entry points designed to enable interaction with the Ferrum Network, and Quantum portal nodes to conduct sophisticated MultiChain actions. Quantum Portal smart contracts are designed to be generic by design. They are platform and chain agnostic. QPSC gives you the ability to conduct a remoteTransaction or check a remoteBalance. Quantum Portal Mart Contracts (QPSC) and Quantum Portal Node Infrastructure, along with Ferrum Network nodes, adopt and implement the XCM format developed by Polkadot. Further, Quantum Portal and Ferrum Network are backing and adopting MultiChain standards for various dApps. This includes a MultiChain token standard, MultiChain staking standard, and more.
For more details on the Ferrum Quantum Portal, refer to the whitepaper here : https://docs.ferrumnetwork.io/ferrum-network-ecosystem/architecture/core-tech/quantum-portal/overview
Running a node
Prerequisites
This section only applies if you are running a ferrum miner node or ferrum finalizer node. Running a QP node requires setting up the configuration for the sourcechain and destinationchain pairs, it is essential to set these values up correctly or the transactions will fail.
These are the values to be included in the file :
Values explained :
The network_vec contains the list of chains that the miner/finalizer will connect to, this should include the url of the chain, the qp ledger manager address and the chain id of the respective chain.
signer_public_key contains the public key of the address you will use to sign the mine/finalize transactions, do ensure that the address has balance to execute the transactions on both chains.
authority_manager_contract_addres refers to the address of the QP authority manager contract.
NODE_ROLE signifies the role you choose for the node, it should be one of
QP_FINALIZER
orQP_MINER
An example config for mining between Mumbai testnet and BSC testnet would be as follows :
Setup the config and save it to a file called node-config.json
1. Using Docker
Running a full node on a Ferrum network allows you to connect to the network, sync with a bootnode, obtain local access to RPC endpoints, author blocks on the parachain, and more.
1. Create a local directory to store the chain data:
2. Next, make sure you set the ownership and permissions accordingly for the local directory that stores the chain data. In this case, set the necessary permissions either for a specific or current user (replace DOCKER_USER for the actual user that will run the docker command):
3. Before you can start the node, you have to insert the keys, do note that this step depends on the type of node you are running
For validator node
You need to insert the AURA key for the validator account to author blocks, this can be done using
For miner/finaliser node
You need to insert the ofsg key for the account to sign and post transactions on the QP chains
4. Now, execute the docker run command depending on your configuration :
To run a validator node
To run a (QP) miner node
To run a (QP) finalizer node
2. To build and run
Install the required dependencies to compile rust and substrate, refer the documentation here : https://docs.substrate.io/install/
Clone the ferrum-x-network repo
3. Checkout the latest release
For example, if the latest release is 0.0.3
You can checkout releases here : https://github.com/ferrumnet/ferrum-x-network/releases
4. Build the binary
5. Insert the keys
For validators
For miners/finalisers
6. Once the keys are inserted, you can run it using the following command
To run a validator node
To run a miner node
To run a finaliser node
Once the node has started, your output should look similar to this
Depending on how long the testnet has been running, your node will take a while to sync with the latest state of the network.
Last updated