Blog

Update for the Waves Enterprise platform

The new version incorporates atomic transactions for the continuous execution of business scenarios, improved user experience, and network performance.

The main sources of requirements for version 1.4 were feedback from customers and partners in the platform implementation projects and analysis of users’ behavior in the Waves Enterprise mainnet. The ability to quickly get feedback helped the team determine the priority areas of the platform’s development at this stage and focus on them. In total, we completed more than 100 requests during the development of the latest version.

Node

The new version of the node has more than 50 changes. We will not consider each change separately because we appreciate your time and focus on the most important.

Atomic transactions

The main feature of the platform update is the introduction of the atomic transaction execution process. It allows combining interrelated and interdependent sequences of operations into groups. This approach will enable business clients to combine multiple transactions in a single business process into a group and execute them as a whole or cancel the entire group if one or more transactions in the group failed verification or failed for some other reason.

The microblock mining mechanism was completely redesigned to implement atomic transactions.

We will soon publish an article with technical details about the implementation of atomic transactions, but now you can read the technical documentation.

gRPC API blockchain events stream

Business applications can now interact with the blockchain network according to the push model’s principles, which will significantly reduce the load on network nodes and open up opportunities for increasing their performance. Instead of sending multiple pull requests and waiting for the required response, the application can be configured to wait for notifications from the network node, sent as soon as the expected event occurs. Switching to the event model will:

  • Simplify the integration of the application with the blockchain by switching to processing incoming events instead of sending regular requests;
  • Speed up the interaction between the application and the blockchain since gRPC is a binary protocol with a high data transfer rate.

Updated data storage

As part of platform optimization, we moved the data storage of the mainnet nodes from LevelDB to RocksDB, which has many advantages and allows us to increase the data storage’s performance and reliability. The release includes an automatic migration mechanism that will perform a complete migration of existing network nodes from LevelDB to RocksDB at the first launch. In addition, the data storage now uses the probabilistic data structure “Bloom filter”, which allows to quickly get reliable responses to queries about the absence of any data in the storage, which does not require additional verification.

Other updates

Besides, all network nodes can now interact with each other over the secure TLS protocol. All transmitted data will be encrypted if there is such a need, increasing security.

If you manually deploy a node to the Waves Enterprise mainnet and generate keys, you will need to re-enter a password. This way, it will be more difficult to make a mistake with the password when generating a key pair.

Client

In the new version of the client, the team has made more than 30 changes of various types. We will tell you about the most important.

Using the wallet web application has become more convenient and secure by changing the mechanism for storing the authentication token to httpOnly cookies, which will allow you to keep your account information in secure storage that cannot be accessed by malware. In practice, this will enable you to extend the authorized user session up to 24 hours.

The interface of the web application and the mechanics of interaction with it have also changed for the better. You can now navigate transactions using the up and down arrow keys. Keyword search has been added to smart contracts, which will make it easier to navigate through code snippets and make work with smart contracts easier.

We analyzed how users use search in the transaction browser and found several queries that slowed down the search process and put an extra load on the data service. As a result, we have revised the search suggestions and revised requests to the data service. Now the search will work faster. If you have any suggestions for improving and optimizing the search experience, please contact support — we will be happy to make this interface even more convenient for users.