If you’re a miner and have heard of BSV’s launch of LiteClient - a set of tools to enable usage of the dramatically growing BSV block size without downloading the entire blockchain - you might be thinking to yourself:
‘Well, that’s all good and well for Bitcoin users.
But, what about block explorers and miners who DO have to download the entire blockchain!?!
How are we supposed to process and index transactions when blocks have already grown to a whopping 3.8 GB, an average block size of 100 MB, and aims to grow to TB size (and beyond) into the future?’
Fear not! The BSV infrastructure development team has your back. In tune with the BSV blockchain's vision to scale unlimitedly, the team has been developing a Bitcoin node implementation - Teranode - that lets you scale your mining setup horizontally indefinitely.
In this blog, we spoke to Jad Wahab (BSV Association’s Director of Engineering) to give you an overview of Teranode’s role in Bitcoin’s infrastructure, and to prepare you for implementing it with your mining hardware.
Background on BSV’s Teranode
While some in BSV have been bewildered by the launch of new BSV node software for miners, Jad reminds us that the concept fits in perfectly well within the world of Bitcoin’s implementation: ‘If you're a miner, you need to run node software. It's a misconception that Teranode is a different concept from the existing node software. To put it into context, in the BTC days there have been different software implementations of the node including Bitcoin core, Bitcoin XT, Bitcoin Unlimited. BCH has had Bitcoin ABC, BSV node (which is the one that's still around now), Bitcoin Unlimited (which has kind of died out).’
Then why the confusion? Jad explains that BSV was left with only one node implementation after the BCH-BSV fork. But in future, Teranode will be offering a different implementation of the node, which means SV node and Teranode can be run side by side on the network.
Why the need for Teranode?
Jad proposes that while SV node is an improved version of the original software and source code, its architecture is like a monolith: one big piece of software that has to be run in its entirety on every machine (just like other Bitcoin node implementations).'
But then, if you look at software that's built for scale, like Google or Uber, they’ve got a horizontal architecture which means the different compartments can run on different machines.
‘With Teranode we're moving in this same direction, so BSV can scale up more easily. SV node launched the Bitcoin protocol as one big monolithic software to get the network rolling - almost like a proof of concept. Although it's gotten us this far, we've reached the stage where we need to scale horizontally,’ he clarifies.
Jad points out that Bitcoin was designed in a way that could scale out horizontally without limit ‘compared to things like Ethereum, where even if you design the software in a certain way, you'll still have fundamental bottlenecks which do not exist within Bitcoin.’
Because SV node is built as a monolithic software, it hits limits on performance when you reach a certain throughput level. Teranode follows the approach of computers that have multiple cores inside of each of them so they can process tasks in parallel. You can think of Teranode as SV node, but with multiple 'cores' that lets you parallelise tasks from a software standpoint. In this case, you'll be running the cores on different machines.
Within the context of BSV, Teranode will enable you to run particular microservices on different machines.
A metaphor to understand Teranode’s role in Bitcoin’s architecture
Jad compare this microservices architecture of the nodes to a scenario of running a clothes laundering setup:
If you have a washer and dryer in one, that appliance would have to finish the washing cycle ‘before you can dry anything. Because the same machine will have to be fitted out for both washing and drying, it will have to contain double the parts and probably consume more energy to run.
The setup might be fine for a household with limited space for appliances. But if you wanted to run a laundromat you'd want to have machines dedicated to washing and others to drying so you can run short drying cycles in parallel with washing full loads to meet the demand of your clients.’
How will Teranode benefit Bitcoin miners
Optimised performance, no bottlenecks
For miners, Teranode means they'll be optimising their performance by spreading the load across their rig, instead of arriving at a hard limit when their hardware can't cope with running the entire software on each machine. Miners could even scale up their rig and maximise their performance even more with this parallel approach.
To put it into perspective, Jad reiterates that ‘mining is a competitive industry, and those who aren't able to compete will go out of business. When some of them go out of business, it will become even more profitable to keep mining, as the revenue will be split between fewer miners.’
In the case of Teranode, the software will give miners the ability to achieve a higher level of performance (and revenue) to better compete with the network, encouraging other miners to follow suit.
New business opportunities for miners
‘Just like in every modern industry, Bitcoin gives network participants the opportunity to specialise,’ Jad points out. ‘Right now, miners mostly specialise in transaction processing. As blockchain applications grow and diversify, we'll need services like specialised blockchain indexers or explorers. Miners verify and write transactions to the blockchain. This concerns current data (UTXO set), not historical data which can be dropped/pruned by miners who are only concerned with transaction processing. They don't have to provide services related to retrieving and displaying it to users, but they could offer it for a fee.
He compares these future services to Google that provides a search engine for the Internet that lets you search a specific kind of information (images, websites, videos) and displays it to you via a user-friendly interface.
How blockchain services will differ is that they don't have to scrape and index and secure data, as Bitcoin data is already structured as a hash table and secured via the very nature of the blockchain. While this will make it easier to find and display authenticated data from the blockchain, providers will have to build out frontends to make the display user-friendly and APIs to put it to use.
‘Right now we're at the stage where email was at the beginning of the Internet. If you wanted to send an email, you'd have to open up the terminal screen and type in a bunch of server commands to build the email yourself. Then companies like Hotmail, Gmail and Outlook developed frontends to make it really easy for people to use email. We're not there yet, but you can imagine that there will be frontends that let you utilise the blockchain under the hood without even touching a blockchain explorer yourself.’
Teranode: enabling a blockchain-based Internet that benefits users
Jad is excited about the potential that a blockchain-based Internet can deliver for users:
‘The thing about using blockchain under the hood of your business and Internet applications is that you only have to publish a bit of data, like your personal details or a photograph once. All the other services can plug into the same bit of data when you give them access.’
He contrasts this to today's Internet applications like YouTube, Facebook or Twitter, that are like walled gardens: ‘If you want to share your content to another platform, you have to upload it again or link to the first post. And if your account gets censored or shut down, you lose all of your content and followers.’
‘If we run such applications off the blockchain, they can be like frontends drawing from the data you published to the blockchain. You own your data, and you can decide where it gets displayed and accessed. ’
How should miners prepare their Bitcoin mining hardware
By now it should be fairly obvious to you: You don't need to make changes to your hardware to run Teranode. From a software design perspective, Teranode is simply an optimised node implementation that eliminates the bottlenecks you'd hit if you were running SV node. Because of the optimised architecture, your hardware will deliver better performance.
Cheers to the BSV development team!