Dusk | Release Cycle #30

Release Cycle Update #30

Our development planning features a Release Cycle of three weeks, providing a consistent stream of updates to the community, developers, and businesses relying on Dusk technology.

The publicly available Dusk Network GitHub contains over 18 active repositories, each focused on a different technical subject. Progress in each is ongoing and can be followed in real-time. The Release Cycle process is currently applied to some of our most active repositories.

Release Cycle Update Summary

In our latest Release Cycle, the Dusk Network has demonstrated continuous progress across its diverse GitHub repositories, reflecting our commitment to delivering consistent and impactful updates.

In the Rusk repository, significant strides have been made. We've tackled numerous consensus issues, such as rolling finality, and updated naming conventions, all while closing multiple issues related to NilQuorum and prover features. 

Piecrust has also seen progress, marked by the release of Piecrust 0.14.0. While no new issues were opened, we successfully resolved issues, strengthening our WASM virtual machine capabilities for Dusk smart contracts.

The Wallet-core library remained steady this cycle, with no new updates, underscoring its current stable state.

In our Libraries section, the Plonk repository made strides in improving user experience with enhanced error messaging, though no issues were closed. Plonk is currently being audited and the team have opened issues based on the auditors feedback.  Meanwhile, Kadcast maintained a steady course with no new updates, indicating a period of stability.

Other repositories like Citadel, Merkle, and Poseidon252 also saw notable developments. Citadel v0.7.0 was released without any new issues, Merkle updated to v0.5.2, and Poseidon252 released v0.32.0 with an issue opened. Schnorr and Dusk-PKI also remained stable with no new issues.

Additionally, Hades252 released v0.23.0, introducing dependency updates to dusk-plonk and dusk-bls12_381, though no new issues were opened or closed.

This cycle illustrates our dynamic development environment. While some repositories like Rusk and Piecrust witnessed substantial updates, others like Wallet-core and Kadcast demonstrated stability. Each repository plays a crucial role in the Dusk ecosystem, contributing to a robust and efficient protocol.

For detailed information on each repository's progress and their specific roles in our technology stack, please visit our GitHub page. Our Release Cycle planning, inspired by practices of major companies like Google and Mozilla, ensures predictable and transparent development, benefiting developers, the community, and stakeholders alike.

Stay tuned for more updates and detailed explanations in our upcoming articles, and thank you for your continued support and feedback as we enhance transparency and development communication within the Dusk Network.

release_cycle_2023.png

For the community's benefit, we have divided our repositories in 3 categories, main, libraries and other. Below you will find a selection of some (but not all) of the work that is being done in our repositories, including recent advancements.

Main Repositories

Rusk

The Dusk's Smart Contract Platform.

Update Summary

In the past three weeks, the Rusk repository has seen notable developments.

The consensus saw many updates, with opened issues including rolling finality, stopping consensus whale syncing, and updating naming conventions. 

Multiple issues were closed in the last 3 weeks, including more work on the consensus related to NilQuorum and updating prover features. 

Opened

consensus: Update naming convention #1178

Remove phoenix-core from stake-contract #1138

Change block's finality definition #1118

consensus: Rolling Finality: implement vote-accumulation quorum #1187

consensus: Ignore candidate with wrong prev_block_hash #1183

Remove phoenix-core from rusk-recovery #1139

consensus: Restore Generation timeout increase #1169

consensus: Add Rolling Finality #1189

consensus: Sync: Stop consensus while syncing #1173

consensus: Remove round and iteration from the block #1182

Investigate fixed fee viability #1186

node: Permit synchronization exclusively with nodes that proves to be honest #1083

consensus: Reuse validated block #1180

consensus: Distinguish Invalid vote from Timeout #1176

consensus: Sync: timeout event is only handled when receiving Block message #1172

consensus: Emergency Mode #1171

consensus: Implement adaptive timeout #1170

consensus: Allow fallback to lower-round blocks #1168

consensus: Initialize second step with None #1165

Closed
Rusk Docker image to be able to load genesis toml files #1194

consensus: Add Instant Finality #1188

consensus: Restore NilQuorum #1184

consensus: NilQuorum is inaccurate #1181

Update consensus nomenclature #905

Refactor Provisioners and Committee #1164

Add failed_iterations fields #1116

Rename License Contract noop method to request_license #1151

Consensus: accept block from single Agreement #1148

Benchmark transfer contract performance #361

Missing block detection #1150

Convert "rust-toolchain" file to TOML and add wasm32 target #751

Update CI so it can read rust-toolchain.toml file #792

Add prover feature for rusk #1145

Piecrust

Piecrust is a Rust workspace containing two crates, piecrust and piecrust-uplink, that together form the WASM virtual machine for running, handling and creating Dusk smart contracts.

Update Summary

There was one issue closed and none opened on Piecrust in the last 3 weeks, and Piecrust 0.14.0 was released.

Opened issues

In the past 3 weeks, no issues were opened in the piecrust repository.

Closed issues

Panic information should be available to calling contracts #301

Libraries

Plonk

This is a pure Rust implementation of the PLONK proving system over BLS12-381

This library contains a modularised implementation of KZG10 as the default polynomial commitment scheme.

Opened

Improve error message when attempting to create a proof for a circuit with the wrong size #792

Closed issues

In the past 3 weeks, no issues were closed in the plonk repository.

Kadcast

Implementation of the Kadcast Network layer according to the latest version of the paper to date (2021). Kadcast is an UDP-based peer-to-peer protocol in which peers form a structured overlay.

Opened/Closed issues

In the past 3 weeks, no issues were opened or closed in the kadcast repository.

Other

Citadel

This repository contains the implementation of Citadel, a protocol that integrates a self-sovereign identity system into the Dusk blockchain. An academic paper with further details about the protocol can be found here.

It also contains Shelter, a version of Citadel meant for non-Blockchain use cases. Documentation on this version will be provided soon

Update Summary

Citadel v0.7.0 was released, while no issues were opened or closed. 

Opened/Closed

No issues were opened or closed. 

Merkle

A sparsely populated Merkle Tree, parameterized over its height and arity.

Update Summary

There was an update to dusk-merkle v0.5.2 with no opened or closed issues. 

Opened/Closed

In the past 3 weeks, no issues were opened or closed in the merkle repository.

Poseidon252

Reference implementation for the Poseidon Hashing algorithm.

Update Summary

Poseidon252 v0.32.0 was released along with one opened issue. 

Opened

Allow to encrypt different plaintext sizes #236

Closed

No issues were closed in the last 3 weeks.

Schnorr

The Schnorr signature algorithm, given its namesake by its creator Claus Schnorr, is a digital signature scheme which provides a simple method of creating short signatures.

The implementation has been created using the Poseidon hash function, the paper for which can be found here.

For a reference to the algorithm, please see the docs.

Update Summary

Schnorr v0.17.0 was released and included many changes, additions and assets. 

Opened/Closed issues

In the past 3 weeks, no issues were opened or closed in the Schnorr repository.

Dusk-pki

PKI stands for Public Key Infrastructure. This repository has been created so there's a unique library that holds the types and functions required to perform keys operations.

Update Summary

Opened/Closed issues

In the past 3 weeks, no issues were opened or closed in the Dusk-PKI repository.

Wallet-core

A library for generating and dealing with transactions.

Update Summary

Much of the Wallet-core repositories are private, and while the public repos did not see many updates, the private ones have been significantly updated over the last 3 weeks in preparation for the web wallet deliverable.

Opened

Wallet-core compatibility issues #92

Closed issues

In the past 3 weeks, no issues were closed in the Wallet-core repository.

Hades252

Implementation of Hades252 permutation algorithm over the Bls12-381 Scalar field.

Update Summary

Hades252 v0.23.0 was released on December 13.. Introducing the following changes:

  • Update dusk-plonk to 0.18
  • Update dusk-bls12_381 to 0.13

Opened/Closed issues

In the past 3 weeks, no issues were opened or closed in the Hades252 repository.


In A Nutshell: Release Cycle planning

As you can see, development is continuous and this list is not exhaustive. For example, minor issues and advancements concerning the Kadcast element have also been opened and resolved. The complete series of repositories can be found on GitHub. 

Breakthrough developments will receive a separate spotlight, such as our latest deployment of Daylight. Thank you very much for your understanding and feedback as we continue to find the best way to provide the community with transparency and development information.

Release Cycle development planning has been adopted by major companies including Google, Mozilla, and during the development of products such as Ubuntu, Kubernetes, and many more. The reason for this is clear: Release Cycle planning improves the predictability of software development for developers and the community alike.

For a more detailed explanation of the concept (along with frequently asked questions) please scroll down to the bottom of this article.
 

The above noted additions/changes to the repository can be followed on GitHub, for further details on their status and their function in the stack.

FAQ 

We’ve included a small FAQ section below to make sure the community understands our intention with Release Cycles.

What is Release Cycle planning?

Release Cycle planning means that developmental updates are published at consistent intervals on GitHub; in the case of Dusk Network, every three weeks. These releases describe the latest additions, changes, fixes, and assets added to the tech stack by the development team.

Dusk Network currently has over 18+ active repositories on GitHub, each repository covering a different technical project. Release Cycle planning has not yet been applied to all repositories; the current focus on a single GitHub repository for clarity does not mean there are no ongoing developmental efforts occurring in other areas.

Does being featured in a Release mean Deployment?

The Release Cycle updates does not mean immediate deployments on our testnet. It is a release detailing additions, changes, and fixes to the repositories that we are ready to share with the public. All released content is considered stable, consistent, reviewed, and cross-checked with other repositories.

Are Release Cycle updates a spotlight for major deliverables?

No. The Release Cycle approach is strictly a way to provide a consistent shape for publication of our work in the clearest terms possible. They are not deadlines to be made, nor are they tied to specific development sprints. Release Cycle updates aim to raise attention with the community, and give proper coverage to, publishable GitHub releases. Major deliverables will be given their proper publication in dedicated articles.

[Read more about our Release Cycle planning here]

 


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.