Nodes and Clients

Pollux functions as a decentralized network of computers operating software, referred to as nodes, capable of validating blocks and transaction data. To engage in this process, you'll require a client application installed on your computer to effectively "run" a node.

What Are Nodes And Clients?

A "node" denotes an active instance of client software. A client represents an implementation of the Pollux protocol, responsible for verifying transactions within each block, safeguarding the network's integrity, and ensuring the accuracy of data.

As of now, the Pollux client is developed using the Java language, aligning with the Pollux protocol and bringing to life the essential functions of the Pollux blockchain.

Node Categories

"Various node types exist within the Pollux network, including"

Fullnode

A Fullnode is responsible for storing and synchronizing complete blockchain data, verifying all blocks and states. It also offers HTTP API and Grpc API for external queries. It's important to highlight that Super Representatives are required to operate a Fullnode to generate blocks and package transactions through the Grpc API.

Lite Fullnode

A Lite FullNode operates on the same codebase as a FullNode, with the key distinction that it initiates based on a state data snapshot. This snapshot comprises account state data and historical data from the latest 65536 blocks, encompassing only about 3% of the FullNode data. Consequently, Lite FullNode boasts advantages such as minimal disk space occupancy and swift startup. However, it defaults to not providing historical block and transaction data queries and offers only a subset of the HTTP API and GRPC API of a FullNode.

For functionalities not supported by Lite FullNode, developers can refer to HTTP and GRPC. If historical query support is needed, it can be enabled by configuring "openHistoryQueryWhenLiteFN = true" in the configuration file. This setting allows Lite FullNode to support querying block data synchronized after startup, although it remains unable to query block data predating the node's initiation.

Therefore, for developers focusing solely on nodes for block synchronization, transaction processing, and broadcast, or those requiring queries for blocks and transactions synchronized post-startup, Lite FullNode stands out as a more suitable choice.

Why Should I Run A Pollux Node?

Operating a node enables you to trustlessly and privately engage with the Pollux network, contributing to the ecosystem. Your node autonomously verifies all transactions and blocks according to consensus rules, eliminating the need to depend entirely on other nodes in the network or trust them implicitly. Additionally, you have the flexibility to create custom RPC endpoints to tailor your node's functionality.

Running A Node

Operating your individual node provides numerous advantages, unlocks new opportunities, and contributes to bolstering the Pollux ecosystem. This guide will assist you in setting up your node, enabling you to actively participate in validating transactions on the Pollux network.

Hardware Requirements

Before installing any client, it's crucial to ensure that your computer meets the required specifications. The recommended specifications are as follows:

Fullnode:

  • CPU: 16 cores

  • RAM: 32 GB

  • Bandwidth: 100 Mbps

  • SSD: 2.5 TB or more

Fullnode running by Super Representative:

  • CPU: 32 cores

  • RAM: 64 GB

  • Bandwidth: 100 Mbps

  • SSD: 2.5 TB or more

Meeting these hardware specifications will ensure optimal performance and the ability to run the client smoothly. It's important to verify that your computer has the necessary resources before proceeding with the installation.

Starting the client

Before launching the Pollux client software, conduct a final check to ensure that your environment is prepared. Verify the following:

  1. Sufficient Disk Space: Confirm that there is ample disk space available for the client to operate.

  2. Uninterrupted Memory and CPU: Ensure that memory and CPU resources are not hindered by other running programs, allowing the client to function smoothly.

  3. Updated Operating System: Check that your operating system is updated to the latest version for optimal compatibility.

  4. Correct Time and Date: Confirm that your system's time and date settings are accurate.

Once you've confirmed that everything is in order, refer to the guide to run a Pollux Node. The current blockchain data will become accessible once the client successfully synchronizes to the current state.

Keeping node online

While your node doesn't necessarily have to be online continuously, it is advisable to keep it online as much as possible to maintain synchronization with the network. If you decide to shut it down for a restart, consider the following:

  1. Forced Shutdowns and Database Damage:

    • Forced shutdowns can potentially harm the database. If the database is damaged, it requires resynchronization with the latest backup database. To avoid this, it's preferable to initiate a graceful shutdown whenever possible.

  2. Network Synchronization:

    • When you restart your client after shutting it down, it will go out of sync with the network. Subsequently, it will need to resynchronize to catch up with the latest state of the network. This process might take some time, depending on the duration your node was offline.

Keeping your node online whenever feasible ensures a more seamless operation and reduces the likelihood of encountering issues related to forced shutdowns and resynchronization.

Updating client

It's crucial to maintain your client software up-to-date with the latest version. This is particularly important before hard forks; ensure that you are running the correct client version that aligns with the upcoming changes in the blockchain protocol. Regularly updating your client ensures compatibility with network upgrades and allows you to benefit from the latest features, improvements, and security patches. Always stay informed about any upcoming hard forks and follow the recommended upgrade procedures provided by the Pollux development team.

Alternatives

Establishing and maintaining your node can be a complex task, and running your instance isn't always a requirement. In such cases, you can utilize the services of a third-party API provider, like Polluxgrid. To gain a thorough understanding of its usage, please consult the Polluxgrid Guide.

Last updated