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)
    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
  • Generate Blocks
    Generate Blocks
  • 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 REST API
    • API Key
      API Key
    • Working with Transactions
      Working with Transactions
    • Numeric Fields Format
      Numeric Fields Format
    • Pagination
      Pagination
    • CORS
      CORS
    • API Limitations of Pool of Public Nodes
      API Limitations of Pool of Public Nodes
    • Slow Requests
      Slow Requests
    • Response Codes and Errors
      Response Codes and Errors
    Node REST API
  • Extensions
    • gRPC Server
      gRPC Server
    • Blockchain Updates
      Blockchain Updates
    Extensions
  • Troubleshooting
    • Block Generation FAQ
      Block Generation FAQ
    Troubleshooting
  • Node Go
    Node Go
      • English
      • Русский
      On this page
        • Synchronize Blockchain During Regular Node Operation
        • Import Blockchain
        • Download the Latest Blockchain Database
      waves_logo Docs

          # Synchronize Waves Blockchain

          A running Waves node requires up-to-date blockchain database for operation.

          Use one of the following methods to synchronize your blockchain to current state:

          • Synchronize your blockchain during regular node operation to get all the necessary data from the peer nodes, verify the blocks and validate signatures.

          • Import blockchain from binary file. Importing is a time-consuming process that implies the same execution of transactions and validations that happen during normal node operation. This method is ~10% faster compared to the synchronization during regular node operation.

          • Download the latest blockchain database and deploy it on your node. This is the fastest method. In this case your node will skip the time-consuming execution of transactions and validations and use the downloaded blockchain state "as is". Download the blockchain database only from a trusted source. Databases from unknown sources may contain incorrect data or balances.

          Important: Full synchronization can take 1-3 days and mostly depends on CPU frequency. The most significant process (block verification) is single-threaded, so high-frequency CPUs provide better performance. The signature validation process is multi-threaded, but it has insignificant duration effect compared to the block verification. In other words, there is almost no difference between using 8 or 16-core CPUs operating at the same frequency. Block verification is not a linear operation, “heavy” blocks take more time to be verified. The ”heaviness" of a block is determined by the number and type of transactions it contains. Empty blocks (for example, the first 200 000) are verified much faster than the same number of blocks after one million. During synchronization of the blockchain database, writing to disk can exceed the IOPS values supported by an HDD which can cause delays when the operating system doesn't have enough physical memory. Waves team recommends using SSD and keep at least 30% of the total memory for the needs of the operating system (cache/buffers).

          # Synchronize Blockchain During Regular Node Operation

          This method implies running the node from scratch. For detailed description of running the node, see Install Waves Node article.

          After the first run, your node will start automatically receiving all the necessary data from the peer nodes as well as it will verify the blocks and validate signatures untill the blockchain is fully sychronized with the current state.

          In this case the following factors affect the duration of obtaining the data via network sharing:

          • Internet channel width and network latency
          • Number of connected peers

          The first factor depends on the internet data provider, while the second one can be set with max-outbound-connections parameter in node configuration file. Waves team believes that the default value of 30 is optimal. The internet connection speed has less effect on the process duration then the verification of the blocks and validation of the signatures.

          # Import Blockchain

          You can import blockchain from binary file to speed up (by ~10%) your blockchain synchronization process. Binary files contain chain of transaction blocks in verifiable format (include the original sequence of all the transactions with signatures and blocks with signatures of the block generators). The import process implies the same execution of every transaction that happens during normal node operation. That includes validation of signatures, balances etc. If you have a running Waves node that is synchronized to current state, you can export the node's blockchain database to a binary file and then import it on another node.

          For detailed description of the import/export process, see Import/Export Blockchain article.

          Warning: If your node is on fork with a height more than 2000 blocks, do not export/import your own blockchain but update the node as described in Upgrade Waves Node article. Then perform the activities described in Download the Latest Blockchain Database section.

          # Download the Latest Blockchain Database

          You can download and manually deploy the latest blockchain state on your node. In this case your node will use the downloaded blockchain state "as is" and skip the execution of transactions (validation of signatures, balances etc.) that happens during normal node operation or importing blockchain from binary file. For detailed description of the process, see Download the Latest Blockchain article.

          Install from Source (Building SBT)
          Import/Export Blockchain
          Install from Source (Building SBT)
          Import/Export Blockchain