Thanks to the latest improvements, the reliability and stability of private network operation will be enhanced.
Waves Enterprise has released an update that includes a number of significant developments. Overall, these will enhance the privacy and smooth operation of the network.
In the new release, several node components responsible for private transactions have been updated. The need for this improvement recently became clear when a major Waves Enterprise customer formulated their requirements for the platform.
The customer’s business logic is based on smart contracts and private transactions. However, platform operation involving private transactions under load did not completely satisfy their requirements.
The Waves Enterprise team therefore completely reworked the architecture of the private transaction synchronizer. The team also fixed the causes of data queues for deferred requests that were rechecked when the node was restarted.
The synchronizer has been split into three parts, with various flow usage quotas. The high-priority part processes current requests, while the lower-priority part processes pending transactions, and the final part looks for data that has not been found for nine hours or more.
Various synchronizer settings are now available in the configuration, though testing under load has shown that the platform performs well under the default settings.
Speed metrics for private transactions have been included, as well as the opportunity to cache data (or the fact of its absence, which helps reduce the number of identical database requests).
The improvements also involved the business logic for private transactions. The peer query algorithm has been reworked, and now queries are initially sent to data senders, and subsequently to all other peers.
In addition, the new release sees the optimization of database requests, while a node will not be able to delete that data under any circumstances.
Thanks to these changes, the speed and stability of private transactions have been improved, while system resource consumption has been reduced. Throughput has increased by 3,000%.
Recent tests of the platform with profiler software revealed excessive use of resources during some operations with the state. To resolve this issue, the Proof-of-Authority (PoA) consensus algorithm has been substantially improved. Resource-heavy state requests have been optimized, a cache option has been added, and various bugs have been fixed.
An option for disabling the node ban mechanism has also been added. If a network owner is confident about the reliability of all nodes in the network, they can disable this mechanism and save system resources.
This set of improvements has led to increased platform speed and reduced system resource consumption.
In this release, the fork resolver — a component responsible for processing block data in the event of forks — has also been modified. In the previous node app versions, processing large-size block data could slow down node operation. This issue has been resolved in the latest update.
In addition, in previous versions of the node application, the default depth of the blockchain rollback could reach up to 100 blocks during a fork, which were downloaded at a time. When these blocks contained a large amount of data, restoring such a large number could significantly slow down network operation. Node owners can now set a smaller number of blocks for rollback. By default, the node requests the last 10 blocks at a time, which helps to avoid excessive load on the network.
Network layer architecture improvements
Since the Waves Enterprise network is a fork of Waves, its network layer was originally intended for public blockchains.
One peculiarity of private networks is that in some network topologies, not all nodes can see each other, since some of them are not directly linked. The existing network layer architecture therefore did not facilitate stable interaction.
The network layer has therefore been completely refactored, thanks to which it has become possible to support a complex network topology while ensuring the stability and reliability of network operation.