For this new release of the Waves Enterprise platform we performed vast code refactoring, added snapshots and stream data integration, and speeded up smart contracts and GOST cryptography. The post gives you a low-down on these and other improvements we have made.
We implemented a feature that allows you to create a ‘state of the system’ snapshot, which ensures data integrity in the distributed ledger, as well as reliable synchronization and validation. Snapshots can help in many scenarios, the most common ones include:
Archiving historical data. Thanks to the specifics of the business cases addressed, private permissioned blockchain networks tend to be highly loaded and undertake major transactions. Users and business applications generate enormous volumes of data. To save resources and reduce costs, you can now archive historical data by using snapshots to save it.
Changing key blockchain network parameters. In many cases, it’s difficult to change the key parameters of an operating blockchain network like the consensus algorithm, block time and size — but sometimes it’s necessary to do so. You can now resolve these changes by using snapshots. Just save the current state of your system and relaunch the network with other parameters. For example, you can change your consensus algorithm from PoA (Proof of Authority) to a more relevant CFT (Crash-Fault Tolerance) model.
Stream format data integration
In version 1.6 we have made it possible to integrate with the platform in stream format, and not only in request-response format as before. This makes it possible to increase the performance of the blockchain under heavy loads, with hundreds or thousands of transactions per second.
We thoroughly analyzed the functioning of smart contracts, worked-through bottlenecks and highly-loaded sections. This resulted in an overall bandwidth increase for smart contracts in the network.
Accelerated GOST cryptography
We have improved the handling of GOST cryptography, resulting in a 300% performance increase at specific stages. In version 1.6 the bandwidth of the GOST-cryptography-based blockchain doesn’t yield to the Curve25519-sha256-based one.
Parser as a stand-alone library
We performed vast code refactoring in our JS SDK library, made for transaction handling and key generating. As a result, performance under heavy loads is now improved, and the transaction parser has been placed into a standalone open-source library. Users can now separate the parser from the crawler to export data from their own blockchain network to their own storage.
Client side improvements
The client side of the platform has received some updates as well. We have added the number of leased tokens to the user’s list of available addresses, and redesigned the wallet to make it more convenient.
A couple of other updates worth a mention:
- To make integration with the platform easier we have streamlined the integration services error codes.
- The platform documentation has been restructured and partially rewritten, and its mark-up has been updated as well.