# Nodes

# Full Node

In Vite network, a full node is responsible for maintaining a complete copy of ledger, sending or receiving transactions, and verifying all transactions in the network. Full nodes can also participate in SBP election and voting. A full node can expose HTTP/WebSocket APIs externally and has a command line interface locally.

# Registration

Registering a full node is permission-less. The registration address shall have 10,000 VITE for staking, then send a registration transaction (opens new window) and wait until the transaction is confirmed.

The 10k VITE will be locked up for 30 days (2592000 snapshot blocks).

After the lock-up period expires, the node owner (registration address) can cancel the registration and retrieve the locked fund through a Cancel Registration transaction. The cancelled full node will be removed from the network list after the transaction is confirmed.

For safety purpose, node owners are recommended to use 2 separate Vite addresses for registration and withdrawing rewards respectively.

# Rewards

  • A Snapshot Block Producer (SBP) named "FullNode.Pool" has been set up and maintained by Vite Labs. It is backed by 10 million VITE votes from the Vite Foundation. All income for "FullNode.Pool", including block creation rewards and voting rewards, will be shared with all eligible full nodes.
  • The size of the full node rewards pool varies on a daily basis. It will determine the incentives provided by the Vite Foundation. The calculation is as follows:
    1. On a daily basis, when the size of the full node rewards pool ( x ) is no more than 8,000 VITE, an equal mount will be provided by the Vite Foundation.

    y=x{0x8000}y=x \left\{ 0 \leq x \leq 8000 \right\}

    1. On a daily basis, when the size of the full node rewards pool ( x ) is above 8,000 VITE, the incentives are determined by the following equation.

    y=(x8000)×8000x+8000{x>8000}y=\left( x - 8000 \right) \times \frac{8000}{x} + 8000 \left\{ x \gt 8000 \right\}

  • Rewards will be shared equally by all live (uptime is above 90%) full nodes in the pool.

The following graph provides a visualization on how incentives are calculated.

For more details please refer to Announcement of Full Node Reward Upgrade (opens new window).

Distinct IP Required

Note that if multiple full nodes run with the same IP address, only one node can get rewards. Do NOT setup your nodes with the same IP address!

# Snapshot Block Producer

A Snapshot Block Producer (SBP) is a delegated node in the Vite network. The primary function of SBP is to secure the network by producing snapshot blocks that store a state snapshot of the Vite ledger. This includes the balance of the account, the Merkle root of the contract state, and the hash of the last block of each account chain. To find out how an SBP works, please refer to Consensus.

Before you continue reading, please see the setup guide on how to install gvite.

# Terminology of SBP Addresses

There are three addresses associated with the operation of an SBP.

  • Block Creation Address: The SBP will be signing blocks from this address.
  • Staking Address: Each SBP is required to stake 1M (1,000,000) VITE to be eligible for producing blocks and earning rewards.
  • Reward Withdraw Address: Block rewards can be retrieved at this address.

Theoretically, all three addresses can be one and the same. But it is STRONGLY RECOMMENDED that the Block Creation Address be different from the Staking Address.

Also, the owner of the Block Creation Address and the owner of the Staking Address can be different. This means the operator of the SBP can ask someone else to stake the 1M VITE on their behalf. The staking process (aka registration process) is described in a later section.

# Configuration

To reate the Block Creation Address, follow instructions here. Take the output from the wallet creation process and append the below 4 properties in node_config.json:

  • Set Miner as true
  • Set CoinBase to the Block Creation Address, in the format of index:address. For example: 0:vite_f1c2d944b1e5b8cbfcd5f90f94a0e877beafeced1f331d9acf.
  • Set EntropyStorePath to the Block Creation Address. For example: vite_f1c2d944b1e5b8cbfcd5f90f94a0e877beafeced1f331d9acf.
  • Set EntropyStorePassword as the password you used to generate the Block Creation Address
    • Note: This password is sometimes referred to as the "keystore password" corresponding to the Block Creation Address.
    • Note: This password, when combined with EntropyStorePath, can derive the SBP's private key for signing blocks produced

# Registration

Registering a new SBP requires staking 1M (1,000,000) VITE. Please make sure you have at least this amount in your account.

Log in Vite Web Wallet (opens new window) and navigate to SBP Registration page.

Fill in Node Name and Block Creation Address.

Please note that Block Creation Address is the CoinBase address you configured above and is only responsible for producing new blocks. Do NOT use your Staking Address as Block Creation Address.

After registration of the SBP, you may change the Reward Withdraw Address (as well as the Block Creation Address) via the following screens.

SBP Name

Please choose your SBP name carefully. Once registered the SBP name cannot be changed anymore. Use an interesting name to gain recognition from the community and draw votes.

SBP Ranking List

Visit https://vitescan.io/sbps (opens new window) for the ranking list.