- Zilliqa is working on solving the issue of blockchain downtime faced by users.
- Zilliqa is planning to introduce formal verification tools for verifying the “correctness, reliability, and dependability of mission-critical software systems”.
Zilliqa, the first public blockchain to implement sharding, announced an urgent upgrade to its blockchain platform. Jun Hao Tan, the senior VP of security and engineering at Zilliqa noted that the upgrade is an attempt to resolve the issue of large memory consumption on the mining nodes for the DS committee. Thus, in an announcement on Wednesday, July 14, Zilliqa tweeted:
Dear Community We are working on an urgent network upgrade. In this upgrade period, no transactions will be processed and the blockchain. API may not be accessible. We will keep you posted on the upgrade’s status. Thank you for the continued support!
In its Reddit post, Zilliqa noted that its last network upgrade v8.0 was feature-packed. Besides, it reduced block time, adjusted priorities for miners, along with several other optimizations. However, the Zilliqa blockchain showed instability post the upgrade. As a result, the core team intervened on several occasions for introducing patches. But this resulted in multiple downtimes.
Zilliqa noted that it aims to bring transparency while taking steps that reduce the chances of such events in the future. It aims to bring new features atop its underlying technology while following industry standards and running stress tests. The Reddit announcement notes:
Once the changes and unit tests are fully ready, we run these new changes on a private small-scale network for a period of time, followed by a large-scale integration at the mainnet-scale and then deploy the changes on a public testnet open for all to interact with. If a bug is found during testing on any of the networks, the bug is fixed and we start from the first step, by writing a unit test to capture the bug, deploying the fixes on a private network and so on.
Introducing formal verification tools
Now, to advance its testing process, Zilliqa plans to introduce “formal verification tools” to model the system. The developers then can formally verify the generated model and even the implementation. However, formal verification tools require extensive man-hours. But at the same time, they are helpful for verifying “correctness, reliability, and dependability of mission-critical software systems”.
Zilliqa aims to combine two complementary functions of unit testing and formal verification. This will help developers to detect any design or implementation issues associated with the critical part of the codebase.
To subside these issues further, Zilliqa is planning to reduce the frequency of network upgrades. This will give more time to test the existing features on its blockchain, and in the wild.
In the latest troubleshooting, Zilliqa noticed “a couple of smart contracts deployed on the mainnet where the implemented logic makes the contract state grow with new transactions”. The team will now fine-tune some parameters that will put the underlying design patterns out of notice. Besides, it will bring better static and dynamic to warn developers in this regard. The Reddit post notes:
Do note that such contracts may work fine for now but may sooner or later hit the block gas limit, rendering these contracts unusable and uncallable. We encourage developers to be mindful of this and other similar design patterns. For example, if a contract is using a list and if that list grows with every single transaction, this may create issues in the future for the contract. Also, contracts should avoid loops whenever possible as loops on a very large list or map will hit the block gas limit at some point.