Daybreak, Multi-Provisioner Clusters & minor issues - Dusk Development Update #40
By Robin Massini

Mar 09, 2022

A monthly development update series created to embrace the transparency and inclusivity that we strive for at Dusk Network

Dusk Network is developing the privacy blockchain for financial applications. A blockchain-based ecosystem of programmable digital assets that meet industry compliance standards. Companies use Dusk Network to secure capital, trade assets, and access a full spectrum of financial services.

Key takeaways:

  • Multi-provisioner cluster testing has begun, as the team has resolved all issues preventing network forming.

  • Stress-testing this cluster has seen success; the team reached block #257.653 without the appearance of an out-of-memory error.

  • The team is currently working on protocol versioning and fine-tuning transactions, some of the last items before we can successfully launch Daybreak.


Testnet Daybreak

An unforeseen critical bug in the final stage of testing forced the postponement of the Daybreak launch. This so-called 'state bug' has been resolved, which brought us into the process of network forming with a cluster launch. Stress-testing the cluster has seen success as the team reached block #257.653 without the appearance of an out-of-memory error. While we're delighted by this positive test result in network stability, some other issues have been identified in the process, many of which have now been resolved.

An in-depth review of these issues can be found in our latest State of Testnet: Bug Sweeping article. For informative purposes, we’ll give an overview of the identified issues below.

  • ‘Situation of the State’ - [resolved with Canonical patch]
  • ‘State bloat’ - [resolved]
  • ‘Lack of charging gas’ - [resolved]
  • ‘Minor staking issue’ - [scoped outside of the Daybreak launch]
  • ‘Out of memory issue’ - [resolved]
  • ‘Microkelvin proof regression’ - [resolved]

State of Cluster Testing

With the issues above resolved, the team began creating multiple clusters to test the behavior of the network. Our focus is on memory usage, as well as the correctness of the transaction lifecycle; in particular, proof creation and verification.

Out-of-memory no longer an issue

By running the cluster 15 times faster than normal, the team has found confirmation that the memory usage initially raises up to block ~#15.000, and stabilizes thereafter. There is no perceivable increase in memory usage once this block height is reached, even under the most demanding operations. As stated before, the team successfully reached block #257.653 while stress-testing the network.

Tests to include infrastructure stability

We expanded tests on a number of repositories to gain insights into the stability of the protocol and infrastructure in general. Findings are encouraging, as only a few minor issues related to the block-explorer (and one related to the protocol and transaction execution) have come to light. Each of these has been solved on the spot.

Multi-Provisioner consensus

The consensus is also behaving well. Although we initially planned to bootstrap our testnet with a single Provisioner (and staking more as we move forward), we are confident in including multiple Provisioners in the genesis block. This means that Daybreak will launch with a decentralized configuration.

CLI Wallet improvements

The CLI Wallet UX has been improved. In addition, we've resolved the WASM problems that were blocking the process of porting the wallet-core library to the browser. The release of the web-wallet is now scheduled for the first release cycle after Daybreak launch.

Protocol versioning

This is a necessary step to better handle the various network upgrades that will be introduced during the release cycles. Through this, we attempt to avoid disruptions and minimize breaking changes (which would trigger complete network restarts from genesis), and be better prepared for multiple network runs. This is important, as we already know that some of the scheduled upgrades require a network reset. For example, when we bump the VM from version 1 to 2 and when we update to Zelbet & PlonKup.

Fine-tuning transactions

Some of the latest issues being resolved concern transactions. The first issue pertains to verifying the transactions before propagation (i.e. delivering messages to the network) so the user receives feedback much quicker in the event of malfunctioning parameters. This can be a bogus gas price, a gas limit that is set too high, etc.

Issue two and three are about communicating back to the user why a transaction failed, should this happen. Note that users will still pay for gas in the case of failed transactions.

The last issue concerns the fact that transactions should not be penalized for a high gas limit.

We aimed to provide further transparency on the testnet’s progress along the way in the lead-up to launch. That’s why we started the State of Testnet article series. You can find each individual entry into the series here:

Outlook

This update so far has been all about the most recent developments on Daybreak. After the successful cluster test launch, the development team is standing firmly with both feet in the final stage of testing. Once Daybreak launches, bi-weekly release cycles are to be shared with the community to shine some light on the developmental progress. Our GitHub, in addition, remains fully open and available for our community to gauge progress.

A closer look at our development milestones

GitHub includes milestones & timelines, making it a lot easier to follow our developmental progress in real-time. Rest assured, for those unfamiliar with Github, or simply lacking the time to dive in, there is always the opportunity to catch up in our Monthly Development Update.

Latest articles:



About Dusk Network

Dusk Network is the privacy blockchain for financial applications. A new standard for compliance, control, and collaboration. Our mission is to enable any size enterprise to collaborate at scale, meet compliance requirements and ensure that personal and transaction data remains confidential.

Share this post

Subscribe to our newsletter

Dusk on GitHub Download Whitepaper