Dusk | Release Cycle #32

Release Cycle Update #32

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 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

We are always building and developing, and are making great progress towards mainnet. This progress is evidenced by the updates and activities across various key repositories.

Rusk saw a lot of activity, particularly in refining its consensus mechanism. This includes adaptive timeout configuration adjustments, enhancements in the verification process of candidate block headers, and improvements in the voting mechanisms. 

 The release of Piecrust 0.15.0 came with a number of small but useful tweaks. It introduced changes that better manage contract ownership and streamlined how contracts handle and return data. The addition of a new function in uplink 0.10.0 further enhanced contract ID management.

Citadel’s version 0.9.0 release swapped dependencies, reflecting an improvement in its cryptographic framework. This release also indicated ongoing efforts to optimize and restructure the Citadel codebase for better efficiency and functionality.

Phoenix Core, focusing on an anonymity-preserving, zero-knowledge proof-powered transaction model, released version 0.25.0. This update, primarily involving dependency changes, with an emphasis on cryptographic efficiency..

The Poseidon252 repository, dedicated to the Poseidon Hashing algorithm, released version 0.34.0. This version brought significant restructuring, such as modifications in crate features and the introduction of new features for zk and cipher, increasing the modularity of this crate.

The Schnorr repository, which implements the Schnorr signature algorithm using the Poseidon hash function, released version 0.2.0. This release focused on enhancing the challenge computation process in the signature algorithm and highlighted the emphasis on implementing more robust and versatile signature schemes.

Lastly, Hades252, which deals with the Hades252 permutation algorithm, released version 0.24.1. The primary change in this release was a deprecation notice, given the Hades functionality has been moved into dusk-poseidon.

Overall, these updates across the Dusk repositories reflect a dynamic and forward-looking approach in blockchain technology development. The focus is clearly on enhancing smart contract capabilities, improving cryptographic algorithms, and ensuring efficient, secure blockchain operations. This blend of new feature introductions, optimizations, and refinements in existing components is a strong indication of the Dusk Network's commitment to technological excellence and innovation.

release cycle graphic

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

Multiple issues were closed in the Rusk repository, with a lot of updates made to the consensus, as well as some updates to Phoenix. There was no new version of Rusk released, but we can see a lot of issues being closed.  

Opened

consensus: Adjust config parameters of adaptive timeout #1245

Closed
consensus: Revert to last common ancestor #1260

consensus: Allow fallback to lower-round blocks #1168

consensus: Verify the candidate block header before submitting a validation vote #1243

Single vote for iteration #1109

consensus: Emergency Mode #1171

Remove phoenix-core from stake-contract #1138

Remove Timestamps from Validation Logic #1062

consensus: round in Sortition hash is redundant #1204

consensus: Implement adaptive timeout #1170

Remove phoenix-core from rusk-recovery #1139

consensus: Increase iterations to 255 #1174

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

Piecrust 0.15.0 was released on January 24th. Implementing the following changes:

Changed

Change owner import to accept the contract ID as argument and return

non-zero upon success

uplink 0.10.0 - 2024-01-24

Added

Add self_owner function returning the owner of the calling contract

Changed

Change owner function to take a ContractId as argument and return an Option<[u8; N]>

Change owner extern to take a *const u8 argument signifying the contract ID

Opened issues

Remove panic when an empty argument constructor exists and an argument is not provided #316

Add ability to migrate contract bytecode #313

Closed issues

Proc Macro for uplink::wrap_call #308

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.9.0 was released on January 24th, with the following updates:

Changed

Exchanged [email protected] dependency for [email protected]

Opened

Restructure the objects used in the code #98

Closed

No issues were closed in the last 3 weeks. 

Fix compute parameters #59 

Remove local state #54 

Address code reuse of Citadel data structures and test utilities #36 

Phoenix Core

Phoenix is an anonymity-preserving zero-knowledge proof-powered transaction model formalized and developed by Dusk Network.

Update Summary

Phoenix Core v0.25.0 was released on January 24th, with the following updates:

Changed

Exchanged [email protected] dependency for [email protected]

Exchanged [email protected] dependency for [email protected]

Opened/Closed

No issues were opened or closed in the past 3 weeks. 

Poseidon252

Reference implementation for the Poseidon Hashing algorithm.

Poseidon252 v0.34.0 was released on January 24th, with the following updates:

Changed

Restructure crate features [#184]

Removed

Remove default and alloc features [#184]

Added

Add zk and cipher features [#184]

Opened

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

Closed

Move hades permutation in this crate #240

Add sponge helper to take ref bytes as argument #169

Restructure crate features #184

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.2.0 was released on January 24th. Introducing the following changes:

Changed

Change challenge computation adding the public key to the hash [#3]

Opened issues

Implement a multisignature signer version of Schnorr #2

Closed issues

Add strong FS versions of the signature scheme #3

Hades252

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

Update Summary

Hades252 v0.24.1 was released on January 24th. Introducing the following changes:

Changed

Add deprecation notice [#120]

Opened issues

No issues were opened in the past 3 weeks. 

Closed issues

Deprecate crate after migration to dusk-poseidon #120