Bitcoin Core 0.14.0 Speeds Up Blockchain Syncing By 48%
4 stars based on
We are pleased to release Bitcoin Core speed up bitcoin wallet sync. An optional new feature disabled by default is also provided to allow wallet users to rebroadcast one of their previously-sent unconfirmed transactions with a higher fee, which may allow it to confirm more quickly.
A short summary of the major new features is provided below, with links to more details later in this post. Faster new block validation and relay: The P2P network code has also generally been refactored to allow multiple actions to happen at the same time concurrency as well as to increase throughput, eliminating many potential delays in processing new blocks. This feature is disabled by default. Over time, the constantly-increasing size of the block chain has forced new first-time nodes to process larger and large amounts of data before they can be used with a wallet to receive and send payments.
Many previous Bitcoin and Bitcoin Core releases have included major improvements designed to eliminate the pain of this Initial Block Download IBDalso called the initial sync. Those two optimizations are described in more detail below. A test of the speed of the previous release Bitcoin Core 0. All Bitcoin Core settings were left at their defaults. Under these testing conditions, Bitcoin Core 0.
Many modern computers should be able to sync in about 3 hours using Bitcoin Core 0. Assumed valid blocks is a new feature that speed up bitcoin wallet sync the signature-skipping speed up bitcoin wallet sync from the checkpoints anti-denial-of-service speed up bitcoin wallet sync so they can each be dealt with independently.
An assumed valid block is a block that individual users consider to be valid, including being part of a valid block chain. This is easy for anyone to test in a completely repeatable deterministic way: If someone who starts a new full node for the first time knows about any valid blocks, they can then provide the highest-height one of those blocks to Bitcoin Core 0. All blocks after the assumed valid block will still have their signatures checked normally.
A critical difference between checkpoints and assumed valid blocks is that Bitcoin 0. If no assumed valid block provided by the user or the system defaults is part of the block chain, Bitcoin Core will simply verify all signatures for historic blocks. Anyone who wants to specify an alternative assumed valid block can specify the block identifier as a parameter to assumevalid ; for example:. The default assumed valid block in Bitcoin Core 0.
This means that the memory allocated to the mempool has historically simply been unallocated, meaning Bitcoin Core ran with less memory during IBD than it did normally. In Bitcoin Core 0. Four significant improvements in Bitcoin Core 0. The first feature is an update of the signature cache to use cuckoo hashing. Because signature verification is typically the most computationally-expensive part of processing a new block, using the signature cache significantly improves the speed at which new blocks can be processed by nodes that have been online for a while.
The existing signature cache in Bitcoin Core 0. For systems with fewer than 8 cores, there is no major speed up bitcoin wallet sync increase, although the cuckoo cache does allow caching more signatures than before for the same amount of memory, so there can be a slight performance improvement. The second feature improved in Bitcoin Core 0. A low-bandwidth mode that attempts to send the minimum data necessary to relay a new block, including waiting for the receiving node to request that specific new block.
A high-bandwidth mode that sends new block data without waiting for the receiving node to request that specific block. This risks sending the receiving node the same data that another node sent it—a waste of bandwidth—but helps ensure that blocks are transferred quickly.
The upgraded implementation enhances the high-bandwidth node by starting the relay of a new block before the block has been fully validated. In the best speed up bitcoin wallet sync, removing the validation delay can allow new blocks to propagate across multiple hops on the peer-to-peer network several times faster than they could before. In the worst case, some additional bandwidth is wasted transferring invalid blocks. In either case, the security model remains the same since all nodes will still reject invalid blocks.
The third feature improved in Bitcoin Core 0. The concurrency improvements help allow newly-received blocks such as BIP compactblocks to be processed ahead of lower-priority traffic, ensuring that blocks are relayed and validated as fast as possible.
The refactor also now allows network activity to continue in the background during message processing, notably providing an improvement in IBD speed that complements the headers-first sync introduced in Bitcoin Core 0.
A fourth feature which helps support the signature cache and compactblocks implementations is that speed up bitcoin wallet sync memory pool mempool of unconfirmed transactions received by each node is now saved to disk during regular shutdown, speed up bitcoin wallet sync is then loaded back into memory when the node starts back up. Combined with compact blocks, this can save the node speed up bitcoin wallet sync having to re-download all those unconfirmed transactions when they are received in a newly-produced block.
Combined with the signature cache, this allows the node to cache the signature verification of those unconfirmed transactions so that new blocks including those transactions can be validated more quickly. An optional feature in Bitcoin Core 0.
When this feature is enabled by starting Bitcoin Core with the -walletrbf option, an additional RPC bumpfee is made available that allows a previously-sent unconfirmed transaction to be resent with a speed up bitcoin wallet sync fee. Miners who support either opt-in RBF or full RBF will usually replace the lower-fee transaction with the higher-fee transaction in their queues, and the higher fee will encourage miners to mine the new version of the transaction more quickly.
For details on all the changes made in Bitcoin Core 0. To download, please visit the download page or the files directory. The next major planned release will be scheduled for approximately six months after the 0.
If you are interested in contributing to Bitcoin Core, please see our contributing page and the document How to contribute code to Bitcoin Core. Recommended View all posts Bitcoin Core 0.