Run a Node

AarmaChain Node Functions

  • Node stores the full blockchain history on disk and can answer the data request from the network.

  • It also receives and validates the new blocks and transactions while also verifies the states of every account.

Supported Platforms

Mac OS X, Linux, and Windows.

Steps to Run a Fullnode

  • Download the pre-build binaries from the AarmaChain repository or follow the instructions below

# Linux
wget   $(curl -s https://api.github.com/repos/aarmachain/aarma/releases/latest |grep browser_ |grep geth_linux |cut -d\" -f4)
mv geth_linux geth
chmod -v u+x geth

# MacOS
wget   $(curl -s https://api.github.com/repos/aarmachain/aarma/releases/latest |grep browser_ |grep geth_mac |cut -d\" -f4)
mv geth_mac geth
chmod -v u+x geth
  • Download genesis.json and config.toml by:

  • Download snapshot

Download latest chaindata snapshot.

Follow the guide to structure your files.

NOTE

Your –datadir flag should point to the folder where the extracted snapshot data is. In our case, we created a new folder named node, and we moved the extracted snapshot data to other folder.

  1. Start a node

Make sure you use the version of geth you downloaded with wget above, and not your local installation of geth, which might be the wrong version.

It will run with Hash-Base Storage Scheme by default

It will run with Path-Base Storage Scheme and enable inline state prune, keeping the latest 90000 blocks’ history state by default.

  1. Monitor node status

You can monitor the log from ./node/aarma.log by default. When your node has started syncing, you should be able to see the following output:

It is recommended to use HBSS with level DB for archive node, PBSS for archive node is not supported yet. To sync from genesis block, you would need a more powerful hardware. Server should at least have 40k IOPS and be at least an i3/i3en series server.

If you can not download the chaindata snapshot and want to sync from genesis, then you have to generate the genesis block first, for which you have already downloaded the genesis.json in the Step - 2 above where you have downloaded config files.

  • Write genesis state locally

  • You could see the following output:

  • Start fullnode

Sync Mode

There are two sync modes for running a full node: snap and full which can be specified by flag –syncmode. The snap sync mode is used for initial sync, which will download the latest states rather than execute the blocks from the genesis. When the initial sync is done, it will switch to full sync automatically.

The full sync mode can also be used to do initial sync, which will execute all the blocks since genesis. But it is not recommended, since the amount of historical data is too large. Instead, you can download a snapshot from the official repo and start full sync from the snapshot.

Last updated