You’ve seen Steve Shadders’ live demonstration of Teranode at CoinGeek Zurich on June 8th, 2021 showing the node software handling over 50,000 transactions per second.
Today, by means of a Q&A session with Jad Wahab, we give you more insight into Teranode and the related project – LiteClient.
Jad is one of the software engineers that’s been focussing on developing Bitcoin SV infrastructure for the past few years, currently in the role of Director of Engineering at the Bitcoin Association.
Q: What is LiteClient?
LiteClient wallets are basically just wallets that use the Simplified Payment Verification (SPV) method, described in section eight of the Bitcoin whitepaper. Before releasing a LiteClient wallet reference implementation, we wanted to first release the LiteClient Toolbox (LCT) which comprises a set of components that existing wallets and services can use and integrate so that all wallets and services in the industry can easily upgrade to SPV style payments and avoid issues with scalability, robustness, and privacy that are inherent with legacy style payments.
Q: LiteClient is a set of tools that’s growing over time. Which tools are available at present and what’s next?
In the initial phase of the LiteClient programme, we focused on laying down the foundation to make sure everyone has all of the tools to be able to use Simplified Payment Verification (SPV) properly. For the initial phase of the LiteClient Toolbox (LCT), we focused on getting some of the peripheral components that allow for direct communications out there. To do that, we had to create a dummy wallet – Pay D – to get these components and standards to a reliable state. In future phases, we’ll integrate a production ready wallet – Electrum SV – into the toolset. LiteClient Toolbox components are very modular and interoperable, allowing for any type of wallet to interact with any other type of wallet by sending and receiving any type of token. It doesn’t even have to be native satoshis.
Q: What is the Teranode framework and what do you hope it will achieve in terms of scale?
Teranode is a new implementation of a Bitcoin node built according to a microservices architecture that’s horizontally very scalable. The early versions of the Bitcoin nodes were single threaded, not properly parallelisable and not very scalable. They were built as big monoliths just to get the project out there. It’s worked fine thus far, but it’s reaching the limits of horizontal scaling.
Bitcoin was designed in such a way to allow for a lot of these horizontally scalable techniques. For example, the whole UTXO model (the way transaction identifiers are just hashes of the data) very easily lends itself to horizontal scale compared to an account-based model. This allows for a lot of data structures like hash tables can be easily spread out horizontally.
Teranode is a rethinking of the way the Bitcoin node is designed – a ground-up solution that builds things with scaling in mind from the start.
Q: What can we expect in terms of maximum transactions per second once Teranode launches, and over time?
The beauty of Bitcoin is the way it was designed: there were no inherent fundamental limits involved. It can be designed in a way that can reach massive, massive scale. This is why it’s called the Teranode: we envision terabyte size blocks for a start, and even larger as time goes by.
However, Teranode is just the software. You also need to consider the hardware and node operators, the miners themselves, who will have to get more involved in the scaling journey. The architecture is there. It’s all about implementation.
Q: Are you saying there’s essentially no theoretical limit beyond the hardware limitations once you go horizontal scaling?
Yes, theoretically there’s no fundamental limit. It’s all about designing the system to be able to take advantage of horizontal scaling. We’ve seen so many projects that take advantage of horizontal scaling. It’s not something new. All of the new computers have many cores and they take advantage of horizontal scaling that way. Teranode fits in with these existing paradigms. We’re not reinventing the wheel here. We’re just taking advantage of the technology that’s available.
Q: Once Teranode has launched on the Bitcoin SV Node, the current implementation is still going to be active. How is parity going to be kept between those two software implementations?
Once we introduce the Teranode, we expect SV Nodes to have some difficulty keeping up with the scale that Teranode is capable of. SV Nodes will first reach their limits in terms of hardware. If you ran SV Node with really great hardware you’d just be able to compete with the transaction volumes that Teranode delivers with a lot lower hardware requirements – because of the software’s microservices architecture.
We don’t expect SV Nodes to disappear overnight. We’re going to go through a phase where there might still be some SV Nodes around there running on very capable hardware. Over time, we expect everyone will move to Teranode or any other parallelisable and horizontally scalable implementations of the node.
Teranode is very similar to LiteClient in the modular fashion of its microservices architecture. Some people could just be running some parts of the node to, for example, just index the blockchain. Some people might only want to have a UTXO set. mAPI (merchant API) was the initial step to turning the node into a microservices architecture. mAPI removed the fee module from the SV Node and put it into another module that functions like an interface to the node.
With Teranode, we see the node’s different functions as distinct, which allows the system to scale a lot more – if you have separate workers working on different things, you can scale them out a lot better.
Q: Will miners be able to create their own node implementations?
Miners can create their own node implementations starting today because the protocol is fixed – anyone can create their own version of a node. Over the years, many people have done that. For example, there’s been many different node implementations with different languages.
The whole point of Bitcoin is that the protocol is stable, it’s set in stone. Based on that protocol, people can create different software implementations that scale in different ways and offer other benefits.
Until now, the network has been focussed on the Bitcoin SV Node, which was a software fork of the initial implementations of Bitcoin. The initial implementation had a lot of fundamental software challenges like global logs and a lot of single threaded processes. It’s gotten to a point where it’s better to start from scratch – obviously the protocol remains the same.
I’ve heard about other people in the space that are thinking of releasing their own node implementations once we’ve released Teranode. Nothing’s stopping them from doing that. On the contrary, we want more people (specifically nodes/miners) to contribute to Bitcoin’s development.
Q: How does LiteClient contribute to the road to Terabyte sized blocks?
The reason why the LiteClient is very important is because we still have a lot of entities in the space doing things in a way that’s far from ideal. For example, there are those who are using a full node as a wallet. These people aren’t able to keep up as BSV blocks scale, as happened around two years ago when some wallets and applications started collapsing because of running the node software on low hardware specifications. LiteClient wallets are extremely lean and can easily run on any cheap hardware unlike a node.
We need to get people away from using a full node as a wallet, to using a LiteClient as a wallet the way it was originally designed. Once we get there, there won’t be anything stopping us from scaling indefinitely.
Q: What changes do miners have to make to their physical hardware in order to run Teranode most efficiently?
An ASIC is just an application specific integrated circuit. It just does one specific thing very efficiently. I imagine in the future we might have specific ASICs for verifying ECDSA signatures or something like that, because the way Teranode does it, it separates out different tasks. And this is one relatively expensive task validating ECDSA signatures. Maybe ASICs or GPUs will be used to accelerate that.
Q: How will Teranode impact transaction fees?
It only makes sense for transaction fees to get lower over time because miners will be able to increase the throughput. A lot bigger sizes means a lot more transactions in the blocks, a lot more transactions per second. And if you’re able to get a lot more transactions, you’re able to decrease the transaction fees over time.
Yet it’s up to the miners to decide. They’re the ones that have to evaluate the risks involved with increasing limits, decreasing fees and running their business. It will also come down to the competition between miners who contend to mine the biggest blocks, be the fastest processors that offer the best features and prices.
Q: Do you expect to see the birth of a blockchain services industry?
There’s already a lot of providers that provide services like blockchain indexing and archiving, very similar to CDN’s on the Internet now. Again, we’re not reinventing the wheel. You could have services you can query for data. They could offer to cache it a lot faster or cache the most popular data and charge for these services.
Bitcoin enables this a lot better than the way the Internet works right now. If you want to get access to the Internet, for example, you need to get a subscription with an ISP and pay per month. Because of Bitcoin’s micro and nano payments, you can pay per use which makes things a lot more a lot easier and opens the door for a lot more features and use cases. Especially with the increased usage of IPv6 that will open the door for so much more mobility and security on the Internet.
Q: Will Teranode also bring increased efficiency for those service providers who are currently offering that service on Bitcoin SV node software?
Teranode is going to be open sourced, so service providers can take advantage of a lot of those modules and do things in a similar way or take advantage of some of the code.
Pose your own questions about LiteClient & Teranode
Has your question about LiteClient remained unanswered? Ask the Bitcoin SV community by joining our Discord channel to discuss everyday topics around BSV, or our Discourse forum for technical Bitcoin SV professionals, including miners, developers and exchanges.