Dusk | Release Cycle #31
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 the last 3 weeks there have been many updates and new version releases, along with the release of the web wallet and node.
The Rusk repository has made significant progress with its version 0.7.0, which introduces various additions, fixes, and changes. This includes enhancements to HTTP functionality and multiple API additions. Despite the focus on this new release, some issues were both opened and closed during this period.
The Piecrust repository has seen limited updates, which is understandable given its recent official release. The team is now turning their attention to other repositories. In addition, the Wallet-core repository has been particularly active, releasing version 0.21.0 with new features and fixes, including the integration of a web wallet.
On the libraries front, Plonk has released a new version, 0.19.0, bringing several fixes and improvements, especially in its modular implementation. The Kadcast repository has been relatively quiet with no new issues reported during this period. Other libraries such as Citadel, Merkle, Poseidon252, Schnorr, and Phoenix Core have also received updates. These updates mainly consist of dependency upgrades and structural changes, reflecting the ongoing efforts to refine and enhance the network's infrastructure.
Additional noteworthy developments include the Rusk repository's progress in enhancing the transfer contract by integrating the dusk-merkle tree. This upgrade simplifies processes and resolves existing issues. The Piecrust repository has released version 0.6.0, focusing on improved event handling and debugging capabilities.
The Wallet-cli’s latest version addresses updates related to Note's key and cache. Plonk has introduced new capabilities for circuit compression, and Citadel has seen new issues opened for request authoring, among other improvements. The Merkle repository has implemented custom serialization features, while Poseidon252 has been busy fixing missing features and adding new benchmarks. Both the Schnorr and Dusk-PKI repositories have updated their dependencies for enhanced performance.
Dusk’s commitment to Release Cycle planning ensures regular and predictable updates, a practice adopted by major tech companies to enhance transparency and consistency in software development.
In conclusion, Dusk continues its dedication to providing regular updates and ensuring transparency in its development process. The latest cycle of updates across various repositories reflects the team's ongoing commitment to enhancing the Dusk ecosystem. For more detailed information, the community is encouraged to visit the Dusk Network's GitHub page.
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
Rusk v0.7.0 was released on 1st January 2024, and features multiple additions, fixes, and changes to the previous version, to go along with the release of the Rusk Node, as scheduled in the Dusk Roadmap. There are too many changes to list, but include additions around HTTP functionality, multiple API additions, and the removal of multiple features.
While the majority of the work on Rusk centered on the new release, but there were also some opened and closed issues in the last 3 weeks.
Opened
Preverify ZK proofs #1228
Add gas spent API #1225
Create error transaction when user tries to unstake for the only active node #1215
consensus: Update Certificate and Committee-related terminology #1208
consensus: round in Sortition hash is redundant #1204
Closed
Add gas price API #1219
consensus: Reduce Maturity to 1 Epoch #1207
consensus: restart consensus when invalid blocks are produced #1203
consensus: Verify validation quorum votes on collecting a Ratification message #1202
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 were not many updates to Piecrust, to be expected given that it was released officially in December and development attention has turned to other repositories.
Opened issues
In the past 3 weeks, no issues were opened in the piecrust repository.
Closed issues
Proc Macro for uplink::wrap_call #308
Wallet-core
Library providing functionalities to create wallets compatible with Dusk Network
This library is used to implement the official Dusk CLI wallet.
Update Summary
This was a big development cycle for the wallet, with the web wallet being released at the end of December. Release v0.21.0 was made live, and featured the following updates:
Added
- Add seed-file to create command [#226]
- Add name to export command
Fixed
- Fix stake_allow command [#222]
Changed
- Change dusk-wallet-core to 0.24.0-plonk.0.16-rc.2
- Change DEFAULT_MAX_ADDRESSES from 255 to 25
Opened issues
wallet-cli panics if the cache has different notes of an old mnemonic #228
Closed issues
interactive stake-allow doesn't work #222
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.
Update Summary
There was a new release on 3rd January 2024 v0.19.0 which featured the following updates:
Fixed
- Fix inconsistency in gate ordering of arithmetic verifier key [#797]
- Fix leading coefficients might be zero [#796]
- Fix tests when default features are turned off by placing them behind the alloc feature
Changed
- Improve InvalidCircuitSize error [#792]
- Hide all modules except 'prelude' [#782]
- Turn Composer trait into a struct [#802]
- Rename Arithmetization to Gate [#802]
- Change internal module structure [#805]:
- Move compiler module to root
- Move prover and verifier modules under compiler
- Move compress module under composer
- Move constraint_system module under composer
- Move permutation module under composer
- Change API for circuit (de-)compression [#804]
Removed
- Remove Builder struct with introduction of Composer struct [#802]
- Remove example from README in favor of an actual example in the example directory that is behind the alloc feature [#346]
Added
- Add example for circuit creation [#346]
Opened/Closed issues
Closed
Restructure modules #805
Improve API for circuit (de-)compression #804
Restructure modules #805
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.8.0 was released on 3rd January 2024, and included the following updates:
Changed
- Update dusk-schnorr dependency to "0.18"
- Update dusk-poseidon dependency to "0.33"
- Update poseidon-merkle dependency to "0.5"
- Update dusk-plonk dependency to "0.19"
- Update phoenix-core dependency to "0.24"
Opened/Closed
There were no opened or closed issues in the last 3 weeks.
Merkle
A sparsely populated Merkle Tree, parameterized over its height and arity.
Update Summary
There was a new release on 3rd January, poseidon-merkle_v0.5.0 which had the following changes:
Changed
- Update dusk-plonk to 0.19
- Update dusk-poseidon to 0.33
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.33.0 was released on 3rd January, and features the following updates:
Changed
- Update dusk-plonk to 0.19
- Update dusk-hades to 0.24
Opened
MDS Matrix Parameters might be weak #237
Allow to encrypt different plaintext sizes #236
Closed
There were no closed issues in the past 3 weeks for the Poseidon252 repository.
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.18.0 was released on 3rd January, and made the following changes:
Changed
- Update dusk-plonk -> 0.19
- Update dusk-poseidon -> 0.33
Opened
In the past 3 weeks, no issues were opened or closed in the Schnorr repository.
Closed
Refactor Signature and Proof to be more consistent to bls12_381-sign #81
Phoenix Core
Phoenix is an anonymity-preserving zero-knowledge proof-powered transaction model formalized and developed by Dusk Network.
Update Summary
On 3rd January, v0.24.0 was released, with the following updates:
Changed
- Update dusk-poseidon -> 0.33
- Update dusk-schnorr -> 0.18
Opened/Closed issues
In the past 3 weeks, no issues were opened or closed in the Phoenix repository.
Wallet-core
A library for generating and dealing with transactions.
Update Summary
Dusk-wallet-core v0.21.8 was released.
Opened/Closed issues
In the past 3 weeks, no issues were opened or closed in the Wallet-core repository.
Hades252
Implementation of Hades252 permutation algorithm over the Bls12-381 Scalar field.
Update Summary
Hades252 v0.24.0 was released on 3rd January, with the following changes:
- Update dusk-plonk from 0.13 to 0.14
Opened/Closed issues
In the past 3 weeks, no issues were opened or closed in the Hades252 repository.