In Summer 2016, I’d been interested in Bitcoin for a little over a year. I’d been slowly becoming more and more enchanted by this strange and wonderful technology, and I’d finally made the step of quitting my job of eight years with the intention of finding a way to make a living by working on Bitcoin. Matt Corallo’s announcement of the first Hacker Residency was very happy timing. I no longer had any work responsibilities and the circumstances were exactly right for me to fly to New York and dedicate four weeks to diving into the deep technical details of…

This is the final article in this series about features and improvements in Bitcoin Core v0.15. Today I’ll talk about a small implementation change by Matt Corallo that gives a huge boost in performance for nodes that are in sync and keeping up with the blockchain.

Block validation: now up to 50% faster!

Script Caching (PR 10192)

This is another great performance improvement, this time in new block validation time when the node is up to date with to the chain tip. Under normal circumstances, blocks will now validate around 40–50% faster.

How can we achieve such a dramatic speed-up? It starts from the observation that once…

In this series, I’ve already covered one performance improvement (per-output chainstate db) and a couple of user features (better fee estimation and bumpfee in the GUI). Today I’ll talk about another user feature, multi-wallet.

Multi-wallet Support (PR 8694)

Multi-wallet is a feature that’s long been requested by users, and has now been implemented in Bitcoin Core. Users are now able to load more than one wallet when starting the software. Each wallet is completely separated from all others, with its own keys, addresses, balance and transaction outputs.

There are many possible use-cases for multi-wallet, such as:

  • Having separate ‘personal’ and…

Yesterday, I wrote about how fee estimation is better in v0.15, but what happens if you send a transaction without enough fee to be included in a block? Somehow you need to encourage miners to include your transaction, or it’ll be stuck in limbo forever (or at least until it drops out of nodes’ mempools). There are two ways to ‘unstick’ your transaction and get it into a block:

  • Child Pays For Parent (CPFP) — a new transaction which spends the outputs of the stuck transaction. This child transaction attaches enough fee to pay for itself and its parent transactions…

This article continues the series on enhancements and new features in Bitcoin Core v0.15. Yesterday I talked about a low-level technical change that results in dramatic performance wins. Today, I’ll cover something much more visible to users — significantly improved fee estimation.

Better Fee Estimation (PR 10199)

I recently wrote about Bitcoin Core fee estimation in v0.14. It’s a huge subject and I was only able to scratch the surface. I recommend you take a look at that article first to familiarise yourself with the concepts and terminology used in Bitcoin Core’s fee estimation.

Bitcoin Core v0.15 takes the same…

I’m very excited about the recent Bitcoin Core v0.15 release. This is the first major release that I’ve been involved in from start to finish, and there are some great new features and improvements. Over the next few days, I’ll present a series of articles highlighting five of the most interesting changes to look out for.

I’m going to dive quite deep into the technical details of these changes since I think they’re all interesting and instructive. …

Why we have fees

Space in the Bitcoin blockchain is a limited resource, and given a low enough price, demand for that space will far exceed the supply. If block space is free, people will find all kinds of uses for it — decentralised gambling, uploading an entire copy of the Bitcoin whitepaper, and timestamping individual documents are just a few examples we’ve seen in the past.

To make sure that the limited space in the blocks is allocated to those who value it most and who are prepared to pay the most for it, Bitcoin has a fee market. In effect, the mempool…

In January of this year, I moved to New York to take a job contributing full time to open source Bitcoin projects. These are some of my experiences in those first few months.

First of all, I recognize that I’m incredibly fortunate. Not only do I have tremendous freedom to work on what I think is important or interesting, I get to sit alongside and work directly with brilliantly talented and motivated people. All the work I do is open source, and I’m contributing to a fascinating technology which will be hugely important over the coming years. …

This afternoon, I tweeted a response to the strange suggestion that we fire core. I’ve ignored the fact that Bitcoin Core isn’t a person or an organization (in the traditional sense), and that everyone is perfectly free to run their own re-implementation of Bitcoin, but instead focused on a few of the things you’d need to do if you were serious about rejecting the work of the Bitcoin Core contributors.

I’ve included a mix of enhancements that have been around for one or more releases, stuff that’s going in to 0.15 right now, and longer-term development or research work…

John Newbery

I work on open source Bitcoin projects at @Chaincodelabs in NYC.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store