Dusk | Release Cycle #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.
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.