Debugging Blockchains

On the Importance of TestNets

Gerald Nash
Crypto Currently
3 min readAug 12, 2017

--

As we all know, blockchain technologies are growing at an alarming rate.

But as these fully digital economies continue facilitating the transaction of billions of dollars of value, we must recall that software is the foundation of these financial edifices. And because all blockchain implementations are ultimately just software running on computers, it’s important to be wary of bugs.

Software Bug

An error, flaw, failure or fault in a computer program or system that causes it to produce an incorrect or unexpected result, or to behave in unintended ways.

We prevent and/or squash bugs by debugging software. But how do we debug blockchain software without losing or stealing people’s hard-earned money? The answer is TestNets.

TestNet

An alternative Bitcoin block chain, to be used for testing.

In other words, a TestNet is a fake blockchain [net]work that runs solely on the host computer and is used for [test]ing aspects of the protocol. Also, TestNet doesn’t only exist for Bitcoin: every blockchain implementation has a TestNet at some point in the source code. This is because TestNets are key components in the development process of a functional blockchain.

But why are TestNets truly so important for blockchain development?

The commit that fixed the $30 Million Ethereum Hack.

Preventative Measures

Although humans are prone to making mistakes, TestNets help minimize the propensity to create bugs. Thus, they are essential in ensuring the integrity and security of production systems. As previously stated, blockchains can easily be reduced down to software running on a computer. And just like all software in production, it needs to be adequately tested for bugs.

Staying on the Right Path in the Early Days

TestNets prove to be adequate frameworks for test-driven development in the blockchain space. In the same way that mission-critical software in industries such as transportation and healthcare must pass a rigorous testing platform, blockchain software must be adequately tested so that components function properly. While conventional testing frameworks can perform unit tests on individual components of blockchain source code, TestNets provide a high level interface for integration testing and, ultimately, studying the behavior of the chain as the codebase grows and changes.

Safety First

TestNets let developers debug their wallet applications (like Copay or Jaxx) without having to move and store actual coins. This increases the safety of production wallet applications by providing a fully functional sandbox network to interface with their apps, which minimizes the risk factor of dealing with coins with actual value and establishes trust among users and developers within the community.

Ultimately, TestNets are simply avenues for sufficient testing and debugging of blockchain code. Like the name implies, they’re networks in which you can simulate nearly anything that would happen in a production blockchain environment. And, they can be run on your own machine right now: you can spin up a Bitcoin TestNet here and an Ethereum TestNet here.

Thank you very much for reading!

Twitter, Github, Snapchat, Instagram

--

--