In the 1.7 update we focused on blockchain performance, bandwidth, and resource efficiency. This connects all the changes in the newest release.
We added prioritization to smart contract processing. Now after failing to execute a smart contract, a node will decrease its priority. In a while, the smart contract is given another try. With every fail the smart contract priority gets lower until after another try the node decreases it to zero and stops trying. This helps to protect the blockchain from DDoS attacks and increase the performance in general.
The algorithms of block processing and the network protocol were also optimized. We changed the rules of parallelization for the mining and decreased the number of operations within the data exchange.
In a stand-alone Scala library we packed all the domain objects engaged in network transactions — for signing, conversion and other operations necessary. The library will help third-party developers to make their own applications for working with the Waves Enterprise platform.
We also added a new node operating mode to the blockchain — a watcher node. They don’t participate in mining, but only receive blocks and transactions from other nodes, check their validity and give information about the blockchain through API. Compared to the default nodes, the watcher nodes need much fewer resources and don’t load up the network. This is great for high-load projects with many spectators — for example, regulatory agencies.