waves_logo Docs
  • Node Owner Guide
    Node Owner Guide
  • Install Waves Node
    • Deploy Node in Docker
      Deploy Node in Docker
    • Install Node on Ubuntu
      Install Node on Ubuntu
    • Install Node on macOS
      Install Node on macOS
    • Install Node on Windows
      Install Node on Windows
    • Install from Source (Building SBT)
      Install from Source (Building SBT)
    • Deploy Node in Cloud
      • Deploy Node in Yandex.Cloud
        Deploy Node in Yandex.Cloud
      Deploy Node in Cloud
    Install Waves Node
  • Synchronize Waves Blockchain
    • Import/Export Blockchain
      Import/Export Blockchain
    • Download the Latest Blockchain
      Download the Latest Blockchain
    • Rollback Waves Node
      Rollback Waves Node
    Synchronize Waves Blockchain
  • Upgrade Waves Node
    Upgrade Waves Node
  • Node Configuration
    Node Configuration
  • Logging Configuration
    Logging Configuration
  • Node Wallet
    Node Wallet
  • Features
    • Activation protocol
      Activation protocol
    Features
  • Custom Blockchain
    Custom Blockchain
  • Node API
    • Request headers
      Request headers
    • Activation
      Activation
    • Address
      Address
    • Lease Transactions
      Lease Transactions
    • Assets
      • Public Functions
        Public Functions
      • Private Functions
        Private Functions
      • Distribution Methods
        Distribution Methods
      Assets
    • Alias Transaction
      Alias Transaction
    • Transactions
      Transactions
    • Peers
      Peers
    • Blocks
      Blocks
    • Utils
      Utils
    • Examples of transactions
      Examples of transactions
    • Feature Activation
      Feature Activation
    • API limitations of the pool of public nodes
      API limitations of the pool of public nodes
    Node API
  • Extensions
    • gRPC Server
      gRPC Server
    Extensions
  • Troubleshooting
    Troubleshooting
      • English
      • Русский
      On this page
        • Install a Node
        • Get Actual Blockchain
        • Upgrade a Node
        • Deal With Forks
      waves_logo Docs

          # Node Owner Guide

          Nodes are the critical components of Waves ecosystem. By running a node, you can help processing transactions and get profit for securing the network.

          Every Waves node is a full node that takes part in the decentralized process of block creation by storing full blockchain data, passing the data to other nodes (relay blocks and transactions to miners), and checking that the newly added blocks are valid. Validation implicates ensuring that the format of the block is correct, all hashes in the new block were computed correctly, the new block contains the hash of the previous block, and each transaction in the block is validated and signed by the appropriate parties (answer end user queries about the state of the blockchain). Any node can propose new transactions, and these proposed transactions are propagated between nodes until they are eventually added to a block.

          Nodes can be used for mining (generating new blocks). A mining node checks that each transaction is self-valid since the other nodes would reject the block if it includes invalid transactions. A node can have zero balance, but to start mining, a node must have the minimum balance of 1000 WAVES (including Waves that are leased to the node). The WAVES you own (or that have been leased to you) reflect your mining power, the more you own, the higher your chances of processing the next block and receiving the transaction fees as a reward. The final amount also depends on overall network activity and the amout of generated fees.

          Note: You can find the list of the existing nodes at dev.pywaves.org .

          Reasons to run node:

          • Mining: earn profit for generating new blocks and transaction fees.
          • Own project: get the latest blockchain data from your own node without having to trust third party. Send transactions from your own node. Use your node API, to be independent from third party. Tweak your own node to setup extended functionality for your project.

          For details about Waves protocol, blockchain scalability and rewards see Waves-NG Protocol article.

          # Install a Node

          There are different options to install Waves node. The installation methods are explained in Install Waves Node article.

          # Get Actual Blockchain

          A running node requires blockchain database. Use one of the methods described in Synchronize Waves Blockchain article to get the latest blockchain database.

          # Upgrade a Node

          When you own a node, check the Releases page for the latest updates on a regular basis. Releases of new versions of node come with release notes document describing the new features and telling the node owner what actions to take to upgrade, depending on the type of the update. For details about upgrading see Upgrade Waves Node article.

          # Deal With Forks

          Fork is the moment when a blockchain splits in two seperate ones. Forks can happen because of node version difference (for example, when your node is of older version and does not support functionality of the newer ones). Also, forks can be caused by malicious attacks or system failure. A running node receives information from other nodes and monitors "the best blockchain" (that is the one that has the biggest generating balance). If the node spots a "better" blockchain that had split (forked) from the current one not more than 100 blocks ago, it can automatically switch to it. If it split more than 100 blocks ago a forked node continues generating blocks, but it does not communicate with other valid nodes.

          You can check the blockchain height or the last 100 signatures of blocks to understand if your node is on fork or not. Use chaincmp utility to compare blockchains on your node and the reference nodes. Chaincmp utility indicates whether you are on the same blockchain with the reference nodes and if not it provides recommendations on further actions.

          Your node can be on fork with height less than 2000 blocks or more than 2000 blocks.

          • In case that your node is on fork with a height less than 2000 blocks, you can implement rollback and restart the node to begin generating blocks as described in Rollback Waves Node article.
          • Otherwise, you need to go with one of the options described in Synchronize Waves Blockchain article.
          Install Waves Node
          Install Waves Node