As time unfolds, few industries are left untouched by the robust blockchain technology that has been maintaining trusted transaction networks without relying on a central authority. Bitcoin has celebrated over a decade of success since the launch of the first decentralized peer-to-peer transfer mechanism empowered by blockchains, yet the technology conceived as a game-changer for the world of finance still has not reached a widespread adoption.
The answer to this paradox is rather simple: there is nothing perfect in the world and even the most promising technology has inherited bugs hampering the real market application. Speaking on blockchains, everyone familiar with the matter can easily name at least one major issue pertinent to transactions executed on the digital ledger, namely scalability.
Current blockchain solutions are not scalable, as the performance of one single node determines the performance of the whole system. Therefore, in order to enter the new paradigm of blockchains, there needs to be a versatile operating system designed to address this main challenge and eventually make blockchains comply with commercial needs.
Aelf represents a highly efficient blockchain architecture that incorporates State-of-the Art IT design principles and technologies to bridge blockchain with the physical business world. Being dubbed as the “Linux eco-system” for blockchains, aelf makes huge strides toward the technology being accepted in mainstream industries, continuously upgrading the most basic, essential and time-consuming components of the operating system.
On June 30th, 2018, aelf launched their much anticipated testnet v1.0 to the public. Due to the complex and revolutionary concepts behind aelf, this process took more time compared to other blockchain testnet releases since it was crucial that the team work with each component before approaching the next level. This being the case, aelf was still able to launch it ahead of schedule.
One of the foundational layers on which the aelf blockchain is built lies their cluster nodes and parallel processing. As such, this was a primary focus of optimization with the initial launch. Within 4 weeks, the developers have reached an efficient environment where those elements were able to work as intended, and the speed of the network reached 15,000 TPS.
Initially the testnet ran with just the basic aelf blockchain with no optimization on an individual computer. This had a base TPS of 1,800.
From here, the first step was to introduce the parallel processing element. This required a number of smaller components to already be in place, like the scheduler that organizes dependent transactions. In essence, this is similar to a program that is able to utilize multiple threads in a CPU. For simplicity, let us refer to the blockchain processing streams the same way.
By incorporating parallel processing on this computer, this node is now able to process multiple transactions simultaneously through multiple ‘threads’. The development team found that the optimum number of ‘threads’ was 12. At this point, the TPS increased to 6,100. This maximizes the performance of the individual computer and uses its full capabilities. The limiting factor now becomes the hardware of the computer.
This is where the scalability of many blockchains drops off since they run linearly. What this means is that once they have reached the maximum performance for the one node then the slowest computer or hardware becomes the limiting factor. In order to improve the overall network performance, the hardware of all nodes would need to be upgraded.
The aelf network removed this limitation with cluster nodes. Instead of upgrading the hardware of the computer, aelf can add another computer to a cluster, which essentially makes a single large computer setup in two or more separate locations.
This was the next step to improving the performance of the testnet. It was determined that the performance peaked with 4 servers per node at over 10,200 TPS. The cluster node setup was only made possible using parallel processing. This peak will continue to grow as the network is configured to allow the addition of more servers.
Now that the team had removed the bottleneck created by the hardware, the next hurdle to cross was a little trickier. In basic terms, it related to the writing speed for the database of the blockchain.
Since current blockchains run one computer for one full node, this means that the computer not only has to process the transactions but also write the data to file. Obviously, this has its own limitations. Again, aelf’s cluster nodes allow for another approach. Although the fundamentals are the same, and the full database is stored on every node, because a node consists of multiple computers, different devices can process the transactions and the data.
Aelf has actually taken this a step further, something no other blockchain has attempted. They have completely separated the database component from the processing component of the blockchain. In an aelf cluster node, there are sub-clusters; one sub-cluster prioritizes the processing component while another takes care of the database. By separating these two components and organizing designated clusters of computers to each, the team was able improve the speed to a very solid 15,000 TPS.
More Improvements to Come
This is just the beginning, and aelf expects the performance to continue to increase as they add larger nodes and better configuration optimizations. These results clearly show that each component of this initial testnet scenario directly adds to the overall network performance. That is:
In the next few phases of testnet improvements, the team will be looking towards the network layer and the Consensus Protocol layer. Aelf has ensured that all codes are available on GitHub and a guide has been created to welcome developers to recreate and improve the above-mentioned results.