Skip to main content

Running Core Full Nodes on Core Testnet


A Core full node stores the entire history of the Core blockchain, enabling anyone to verify the state of any account. A Core full node can take many forms:

  • Normal full node: for private use.
  • Validator full node: acts as a validator on Core, validating blocks and transactions.
  • RPC full node: provides RPC services and responds to HTTP requests.
note

This document provides a detailed guideline on running Normal Full Nodes on the Core network.

System Requirements

There are several system requirements for setting up a Full Node on Core.

Software Specifications for Full Nodes on Core Testnet

Currently, only run on Mac OS X and Linux are supported.

Hardware Specifications for Full Nodes on Core Testnet

For full nodes on Core Testnet, following minimum hardware specifications are recommended:

RequirementsDetails
Storage1 TB of free disk space
CPU4 CPU cores
RAM8 gigabytes
Internet SpeedA broadband Internet connection with upload/download speeds of 5Mbps

Build and Run Full Node on Core Testnet

  1. We recommend using the core-chain GitHub repository to build and run your full node directly from our blockchain codebase. Instructions for building the source code can be found in the repository's README.

  2. Download the latest node binary for Core Testnet from Core's GitHub releases repo. The node binary includes the testnet and mainnet configuration files, amke sure to use the testnet2 configuration files. Download the latest snapshot for testnet from here. Note that the recommended method for syncing a full node is to sync from the genesis block.

  3. Write the genesis state locally by executing the following command from your project directory:

geth --datadir node init genesis.json

You should see the following output:

INFO [07-18|14:57:20.715] Maximum peer count                       ETH=25 LES=0 total=25
INFO [07-18|14:57:20.721] Allocated cache and file handles database=/Users/jackcrypto/go/core-chain/node/geth/chaindata cache=16 handles=16
INFO [07-18|14:57:20.724] Writing custom genesis block
INFO [07-18|14:57:20.725] Persisted trie from memory database nodes=25 size=87.18kB time=226.129µs gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00B
INFO [07-18|14:57:20.725] Successfully wrote genesis state database=chaindata hash=d90508…5c034a
INFO [07-18|14:57:20.725] Allocated cache and file handles database=/Users/jackcrypto/go/core-chain/node/geth/lightchaindata cache=16 handles=16
INFO [07-18|14:57:20.729] Writing custom genesis block
INFO [07-18|14:57:20.729] Persisted trie from memory database nodes=25 size=87.18kB time=178.332µs gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00B
INFO [07-18|14:57:20.730] Successfully wrote genesis state database=lightchaindata hash=d90508…5c034a
  1. Now that the full node configuration is completed, let's start running it!

Execute the following geth command to run the fun node:

## start a full node
geth --config ./config.toml --datadir ./node --cache 8000
  1. While the full node is running, you can monitor its logs to ensure that everything is operating correctly. The log file is located at /node/logs/core.log by default, but can be changed to another location if desired.