Hyperledger Sawtooth: Performance Problem and the way to solve it
The Hyperledger global initiative within the Open Source movement, bringing together hundreds of technology giants [for example, Huawei, Intel, and Samsung], startups [Blockstream, Lykke, Consensys] and solutions [Netki, Factom, bloq], has become a real push for the entire blockchain industry in forming not only a strong community but also a completely different perception of technology through the prism of innovations in business.
Hyperledger can be called a global collaboration organized by the Linux Foundation. In turn, the uncommercial Linux development consortium, the Linux Foundation, creates sustainable ecosystems around open source projects to develop technologies and implement them in businesses.
Founded in 2000, the Linux Foundation supports communities and innovative projects through financial and intellectual resources, making ambitious and successful contributions to creating technologies for widespread use.
The consortium launched Hyperledger in December 2015 and in February of the following year, it became known about the first participants of the initiative.
The main Hyperledger’s focus is to improve the reliability and performance of the blockchain through comprehensive cooperation with the platform participants, whose number is already over 250.
It is worth noting that for many projects Hyperledger has become the starting point for the development of their own business apps: many solutions have been created on the basis of the platform, ranging from smart contracts to complex multi-stage innovations.
One of the advantages of using Hyperledger is the interaction between its participants since third-party developers can make their own changes to the already created platforms, thus modifying the services and providing new opportunities to end users.
Hyperledger expands its global business and improves its internal processes, developing also the technologies of the Internet of things, logistics, industry, etc.
Platform participants have access to five main frameworks, on the basis of which blockchain solutions can be created, depending on the goals set by the projects’ creators.
Hyperledger Burrow
This framework appeared in 2014 and works in conjunction with Ethereum Virtual Machine [EVM]. Solutions based on Hyperledger Burrow allow enterprises to use smart contracts to optimize their business processes.
Hyperledger Fabric
Initiated by the IBM tech giant, the Hyperledger Fabric framework is the foundation for developing complex, scalable applications for corporations.
Businesses can use smart contracts and many other components. Feature of Hyperledger Fabric can be called a high level of performance, off-chain channels, as well as integration with corporate access control systems.
Hyperledger Iroha
Hyperledger Iroha is designed for easy implementation into a project. This framework is suitable for many businesses, as it is distinguished by a rather light construction and focus on mobile platforms.
In addition, by analogy with the Fabric, Hyperledger Iroha has a well-developed access control system.
Hyperledger Indy
The framework is used for decentralized identification. Hyperledger Indy provides reusable services for creating and using independent digital identifiers.
Hyperledger Sawtooth
Hyperledger Sawtooth deserves special attention since this framework is quite popular. Operating on the new consensus algorithm, Proof of Elapsed Time [PoET], which stands out from the rest with minimal use of resources, the Hyperledger Sawtooth is considered by the community as one of the most promising.
This solution’s developer, Intel, is confident that Hyperledger Sawtooth is ideal for businesses whose requirements exceed the capabilities of the available public blockchains.
The PoET algorithm provides highly efficient consensus achievement without a serious resources’ cost even in an environment where contractors don’t know each other and they have no reason to trust other participants.
The Sawtooth blockchain platform is designed to counteract denial of service attacks that become more likely in a public blockchain environment or in an environment in which unknown parties can interact.
The reason for the popularity of this framework can also be called the ability to integrate with hardware security solutions, “reliable execution environments”, among which are scalable Intel Xeon E processor from Intel.
At the same time, in Hyperledger Sawtooth were found flaws. In the GitHub user profile eugene-babichenko, the problem that the developer was able to solve was described in detail.
It is important to note that the network built on Hyperledger Sawtooth consists of 30 nodes located in different regions [from Europe and the USA to Singapore] and at three different cloud providers.
Having contacted the developer, it was possible to find out that while the node was experiencing problems with the network connection and could not access the minimum number of peers, the blockchain node, in turn, began to consume an increasing amount of RAM.
As a result, the system crashed in about a day, operating on a server with 1 GB of RAM.
The blockchain developer, after careful monitoring, determined that the component that caused the crash was a Sawtooth validator.
It is responsible for connecting all the other components of the blockchain node [transaction processors, APIs, consensus modules], and also manages network connections and data storage.
The vulnerability was discovered in the inner essence of Sawtooth, which is designed to manage some of the computing and networking staff.
The study revealed that the system was overloaded due to saving instances when trying to reconnect to peers. Since each instance has its own waiting time [which was originally used only to block calls], it was decided to clear the futures’ collections based on this timeout.
The developer of the 482.solutions company, using the example of this vulnerability, warns his colleagues about the need to be attentive with the use of RAM in their apps.
Moreover, Eugene noted that the use of open source products can be really useful in cases where your tool behaves strangely and requires immediate corrections.
In the case of the problem described above, 482.solutions just forked Sawtooth core, fixed it, tested the fix and sent this change to the upstream repository.
Conclusion
The blockchain technology is undoubtedly capable of transforming the most well-known business approaches. The Hyperledger platform, in turn, is an indispensable engine of this progress, since it focuses on the development of blockchain solutions for enterprises.
At the same time, you should not lose sight of the fact that Hyperledger is not a magical place that will solve all the corporation’s problems with a few clicks.
To work with frameworks, you need a strong team that owns all the knowledge in the field of blockchain technologies and businesses digitalization. It is also necessary to pay attention to the previous experience of developers.
For example, the 482.solutions company, whose member fixed the problem in Hyperledger Sawtooth, previously contributed to OpenZeppelin and Ethereum, and also provides services to develop a Remme solution.