Documentation
Chevron icon
General Tools
Chevron icon

Configuring a Neo Blockchain Node

May 23, 2024 6:22:35 AM

What is and how to configure a Neo Node

A Neo node is a server that maintains an up-to-date copy of the Neo blockchain ledger. Nodes validate and relay transactions to other network participants. RPC nodes offer an API that allows developers to interact with the blockchain programmatically.

This article explains how to configure a Neo node using Neo-CLI and Neo Go on Windows, macOS, and Linux. For more information on blockchain nodes, read the Blockchain Node article.

Configuration Steps

There are two implementations of Neo nodes: Neo-CLI and Neo-Go. Both clients are cross-platform and can be run on Windows, macOS, and Linux. Neo-CLI is the official C# client, while Neo Go is an alternative implementation.

The recommended system requirements for running a Neo node are:

  • Operating System: Windows, macOS, or Linux
  • Processor: Dual-core CPU or higher.
  • Memory: 8 GB RAM.
  • Storage: 100 GB or more of free disk space.

Neo CLI Installation Steps

  • Download the Neo-CLI Client:

    • Visit the Neo repository and download the latest release.
    • Select the appropriate version for your operating system (Windows, macOS, or Linux).
  • Extract the Downloaded Archive:

    • Extract the downloaded archive and put it in a folder on your system.
  • Configure the Node(optional):

    • Review the configuration options in the config.json file. By default, the node will connect to the Main Net. To connect to the Test Net, replace the contents of the config.json file with the config.testnet.json file.
  • Start the Node:

    • Open a terminal or command prompt and navigate to the extracted folder.

    • Run the following command to start the node:

  • Install the RPC Plugin (optional):

    • To install the plugin, run the following command in the Neo-CLI terminal:

    • Restart neo-cli.

    • The RPC server will be available at http://localhost:10332 by default.

    • (Optional) Allow remote RPC access by setting the BindAddress to 0.0.0.0 in the Plugins/RpcServer/config.json file.

  • Install the TokenTracker Plugin (optional):

    • The token tracker plugin allows you to track balances for tokens.

    • Restart neo-cli.

    • This plugin requires resyncing the blockchain.

  • Sync the Node:

    • Check the node’s synchronization status using the show state command.
    • Wait for the node to sync with the blockchain.
      • This process takes time and depends on the network speed and the size of the blockchain.

Neo Go Installation Steps

  • Download the Neo-Go Client:

    • Visit the Neo-Go repository and download the latest release.
    • Select the appropriate version for your operating system (Windows, macOS, or Linux).
  • Extract the Downloaded Archive:

    • Extract the downloaded archive and put it in a folder on your system.
  • Create a Configuration File:

    • Create a config folder in the extracted directory.
    • Download the protocol.mainnet.yml and protocol.testnet.yml files from the Neo-Go repository and place them in the config folder.
    • By default, RPC is enabled on port 10332.
  • Start the Node:

    • Open a terminal or command prompt and navigate to the extracted folder.

    • Run the following command to start the node:

    • The node will automatically start syncing the blockchain.

RPC Node Security Best Practices

Running an RPC server exposes your node to incoming connections. Follow these best practices to avoid security risks:

  • Use a firewall: Limit incoming connections to your RPC server by configuring your firewall.
  • Keep software updated: Regularly update your OS and client software to patch security vulnerabilities.
  • Use HTTPS: Use secure connections to protect data transmitted between the client and server.
  • Rate limiting: Implement rate limiting to prevent abuse and protect your server from denial-of-service attacks.
  • Use port 443: Use port 443 for HTTPS connections to avoid firewall restrictions.
  • Put the RPC server behind a proxy: Use a reverse proxy or load balancer to protect your server from direct exposure.

Deploying Using 1ClickNode

If you prefer a more user-friendly approach to deploying a Neo node, you can use 1ClickNode.

1ClickNode is a platform that allows the deployment of a Neo node in a few clicks. It provides a user-friendly interface to set up and manage a Neo node without the need for manual configuration.

Visit the 1ClickNode website to get started.

Join the Linkd Academy Community

If you have questions about Neo or want to learn more about blockchain technology, join the Linkd Academy Discord.