What are vertical and horizontal scaling?
Vertical scaling entails the expansion of a network by adding more power and memory to a system’s core processing unit, whereas horizontal scaling involves the addition of more nodes (i.e., machines) to the framework of an existing system.
When dealing with the subject of scalability, it is important to understand that the concept is generally invoked when one is looking to increase the transaction capacity of a particular platform.
Vertical scaling in regard to a traditional client–server architecture means upgrading the system’s existing hardware to incorporate more processing power and memory. In the same vein, horizontal scaling is related to changing the core framework of the platform itself — in order to establish a cluster of servers that are capable of handling an increased number of incoming transaction requests with ease.
Does scaling work well with blockchains?
Scaling works best with traditional databases. However, from a security standpoint, scalable blockchains are way more useful and pragmatic — but there is a trade-off involved.
When importing the concept of scalability in the context of blockchain technology, it should be highlighted that since blockchain systems are already distributed networks, it is difficult to increase a network’s overall throughput by simply adding more hardware entities — such as miners, nodes or validators — to it.
To be a bit more specific, while horizontal scaling tends to increase the trust or security of a network, it generally results in the overall performance (transaction processing capacity) of the system being degraded.
On the other hand, vertical scaling generally means making each internal component of a system faster and stronger. This, from the standpoint of a distributed ledger-based system, implies the use of supercomputer nodes. However, the downside to all this is that only a selected few individuals are capable of running such nodes.
How is scaling done?
Vertical scaling is done by improving the efficiency of each individual transaction, whereas horizontal scaling is achieved through increasing the platform’s overall throughput capacity.
In simple terms, general scalability improvements are made through the use of a concept called “layering” — wherein each individual component of a particular system is made to interact with its digital counterparts in some sort of sequential and hierarchical way.
Also, when it comes to blockchains, developers strive to maintain the immutability of their base chain, which in turn allows the scalability layer to leverage the security of the parent chain. An example that perfectly highlights the aforementioned concept is that of the Lightning Network — a technology that leverages the security of Bitcoin in order to increase the system’s overall tx throughput.
Now, when dealing with horizontal and vertical scaling, we can see that the former is implemented by adding more clusters or virtual machines to a system — in order to handle an increasing transaction load. Vertical scaling, on the other hand, is achieved by adding more processing power (or memory) into an existing virtual machine in order to boost processing capacity.
That being said, the upcoming Ethereum 2.0 upgrade has had a lot of hype because it seeks to improve the project’s overall transactional capacity via a number of different design changes — with one of the primary ones being sharding.
By implementing these changes, Ethereum’s core framework will be ported from being a single execution environment to having multiple execution environments that will validate transactions asynchronously and in parallel.
When to use horizontal or vertical scaling?
Pure vertical scaling is limited in its effectiveness but is relatively easier to achieve. Horizontal scaling helps improve the overall throughput of a system but takes longer to develop.
In order to better understand the issue, bottleneck performance of a system can be examined. A bottleneck represents a situation wherein excessive demand is placed on a particular system that results in the overall performance of the platform being severely affected.
For example, if there is an issue with the virtual machine’s local memory not being sufficient to process all of the incoming transactions, a vertical scale might help fix the problem — because by adding additional memory to the framework, the overall load can be reduced.
On the flip side, if an incoming transaction load cannot be handled by a platform’s existing hardware, then by employing a horizontal scale (i.e. adding additional processing units), one can rectify the issue.
To illustrate the aforementioned concept in the simplest manner possible, Jonathan R. Brandt, an enterprise technology initiatives leader who pioneered the blockchain study course that is currently being taught across various Minnesota state colleges and universities, told Cointelegraph:
“In crime-fighting, the Hulk scales vertically, and the Justice League scales horizontally. In Bitcoin, a mining server can be scaled vertically by increasing memory or upgrading its GPU, and it can be scaled horizontally by joining servers together.”
Are there any noteworthy blockchain-scaling solutions?
Over the past couple of years, a number of firms have worked to solve scalability issues that have plagued the crypto sector.
The latest tech creation by vCPU: LiquidApps is a horizontal scaling solution that has been designed to allow developers to gain access to a greater supply of decentralized computation power by tasking decentralized application, (DApp) service providers to read on-chain requests, perform processing and return results to the requesting DApp. One of the biggest selling points of vCPU is its ability to enable DApps to choose the level of trustlessness that is appropriate and suitable as per the needs and requirements of a particular use case.
Another example is EOS. The core goal of EOS is to tackle many of the industry’s existing scalability issues. The main point of difference of EOS with vCPU is its parallel processing technology that is made possible through the use of certain elements related to vertical scaling (i.e., adding processing power).
On the other hand, Temtum’s temporal protocol ensures that data can be shared among nodes even if the current node does not have the required storage space to hold the full blockchain — thereby reducing the entry barrier for new nodes joining the network.
The cost of entry to participate in the network is low, thus the amount of resources needed to run nodes is low, making it possible to fully utilize the capabilities of otherwise idle nodes (something most cryptocurrencies are currently unable to do), thereby increasing the overall performance.
Other relevant examples include Ziliqa, ETH 2.0, an Iota.
What are some of the key points to remember about scalability?
It is all about centralization vs. decentralization.
For blockchain platforms, the scalability of a given chain often boils down to the level of decentralization possessed by the network. Highly decentralized ecosystems (such as Bitcoin) are quite slow, whereas networks that are more centralized (like EOS, with its 21 Block Producers) are much faster.
Therefore, having fewer nodes producing blocks generally makes things faster. However, centralization reduces the interesting properties that blockchains innately possess — namely their resistance to censorship, transparency and overall immutability.