BPX Beacon Client 3.3.0 beta 1 is now available for download. This release introduces two new sync modes that speed up the initial synchronization to just a few minutes.

Please keep in mind that this is a proof-of-concept, highly experimental release. While the most important features have been tested, there are many edge cases that may not be handled correctly.

💾 Download BPX Beacon Client 3.3.0 beta 1:
https://github.com/bpx-network/bpx-beacon-client/releases

Sync mode: Full (used so far)

All previous BPX Beacon Client releases have used this sync mode. When we introduced additional modes, we named it full syncing.

It works that the beacon chain node, after connecting with other peers, starts downloading and validating all blocks from the genesis block up to the head of the chain. Full synchronization takes a long time to finish – it already takes several hours, and with the growth of the blockchain it will be longer and longer. In the further future, it can take even couple weeks to complete.

Before the synchronization is complete, the node is not usable. It does not provide the latest consensus updates to the execution client and the farming is not possible. The blockchain database file stored on the hard drive grows as well as the synchronization time. Currently, it takes up about 3 GB, but in the future it will reach hundreds of gigabytes.

Sync mode: Fast (default)

The first new sync mode is fast syncing. In this mode, an unsynchronized node connects to another peer and receives a weight proof from it (cryptographically secure confirmation that the peer is synchronized to the heaviest chain). Along with this proof, it receives several hundred of block records from the previous epoch (epoch is 4608 blocks), i.e. data structures that allow the validation of subsequent blocks (1).

Then a node starts fetching and validating full blocks from the current epoch (2). How many blocks will need to be downloaded depends on at which point in the epoch our node was connected to the network. In the best case, it will be 384 blocks, and in the worst case, 4459 blocks. Downloading such a number of blocks takes from several seconds to several minutes, regardless of the blockchain height!

At this point our node is synchronized! Execution client has received the latest consensus update and we can start farming. Meanwhile, ancient blocks are being downloaded in the background, with lower priority (3, 4, 5, …).

After downloading them all, the fast synced node behaves like a full synced node. It also stores a full copy of the blockchain and other nodes can synchronize from it. Fast syncing has no serious disadvantages compared to full syncing, but it completely solves the problem of long synchronization from the scratch. Therefore, from now on, it’s default synchronization mode of the BPX Beacon Client.

Sync mode: Light

Light syncing works similarly to fast syncing. The weight proof is fetched from another peer and the blocks from the current epoch are validated (2) using block records included in this proof (1). After catching the head of the chain, the node is synchronized. Execution client has received the latest consensus update and we can start farming.

However, no ancient blocks are ever downloaded. Besides, the blockchain is pruned from time to time to store only those blocks that are necessary to maintain a consensus (3). Thanks to this, the database file will never take up more than several dozen megabytes.

The only disadvantage of this synchronization mode is that other nodes cannot synchronize from the light synced node, because it does not store a complete copy of the blockchain, but only a small fraction of it. Therefore, we don’t recommend using this mode on nodes that are running all the time like farmers. Light syncing is a good mode for development, testing and personal machines that are run occasionally.