[Bit]coin flipping: Bitcoin Core 0.13.0 — what does it mean?
Photo of Golden Bitcoins close-up image via Shutterstock
Bitcoin Core 0.13.0 is a new major release which includes bugfixes, performance improvements, updated translations and last but not least, new features. The most important code change is the incorporation of the segregated witness (segwit) code in preparation for an upcoming soft fork.
Bitcoin Core 0.13.0 has been released; dozens of contributors have made massive improvements to Bitcoin Core during the six-month development cycle. Before diving right into the features that may grab the attention of wallet users, node operators and miners, let’s see what Bitcoin Core is all about.
What is Bitcoin Core?
Bitcoin Core is an open source project, which means that anyone can contribute to it. According to the official website, Bitcoin Core is “a direct descendant of the original Bitcoin software client released by Satoshi Nakamoto after he published the famous Bitcoin whitepaper.” It contains a Bitcoin wallet and “full-node” software to fully validate the blockchain; plus, it maintains related software such as the cryptography library libsecp256k1 and others located at GitHub.
Everything you need to know about Bitcoin Core 0.13.0
Compact block relay on the peer-to-peer network eliminates a massive source of redundant data transfer among nodes that relay transactions. It also diminishes the peak amount of bandwidth those nodes use when downloading newly-generated blocks. What’s interesting about this feature is that before Bitcoin Core 0.13.0 was released, a running full node would (by default) receive many transactions twice; before the transaction was confirmed and after the transaction was confirmed. However, the node does not need to receive the transaction a second time if it still has the first copy — this is where compact block relay comes into play. It allows a node to receive from its peers an ordered list of what transactions are included in a new block, which helps eliminate the repetition. If the node cannot fully reconstruct the block, it asks for the missing transactions from its peers, and uses them to complete the block.
There’s also a fee-based filtering which allows nodes to “skip relaying any unconfirmed low-fee transactions that they know their peers would ignore anyway;” the aim is to eliminate another source of unnecessary data transfer on the peer-to-peer network, according to the blog post announcing the new release.
Another interesting feature is Child Pays For Parent (CPFP) transaction selection which has at least two benefits: first, it allows miners to mine more profitably (when possible) and second, it allows users to incentivize mining of selected transactions if they cannot increase transaction fees directly.
Preparation for segregated witness also has its benefits: it boosts capacity, eliminates unwanted transaction malleability, and enables new ways to upgrade Bitcoin’s Script language using soft forks. However, keep in mind that the code in 0.13.0 prepares for segwit only, which means that it does not support segwit on mainnet, therefore users will have to upgrade to a future version if they want segwit support.
By including the segwit code in the latest version, users gain a handful of advantages such as easier upgrade to segwit, easier segwit testing and full integration with other features. All the other features “will probably be in production for two or more months before segwit activates, providing extra time for potential problems to be discovered through community review and testing.”
If you want to see the entire list of changes, check out the release notes.