Dusk | Release Cycle Update #24
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 this Release Cycle Update, like always, we will highlight the most significant changes and updates that happened in the past 3 weeks. Our focus for the Rusk repository has been to streamline the process of launching and managing Rusk networks on DigitalOcean (DO). Enhanced configurations, improved logging, and refined error handling are among the updates. . We are excited to announce that last week we successfully(!) ran our first Rust only cluster and also discovered and resolved the first bugs (more info below).
A next step would be to allow interested people and third-parties to either set up their own cluster or connect to our testnet. To simplify this process we are currently working on expanding the existing README with prerequisites, system requirements and an explanation for some of the main configuration options.
Meanwhile, the Wallet-cli library has introduced v0.18.0, encompassing various enhancements. Notable improvements include Rusk HTTP request support, integration of a local network into the default configuration, a shift to HTTP endpoints, and the adoption of the new Rusk Binary Format for wallet data storage. The update also includes password hashing algorithm changes and the removal of gRPC and GraphQL support for streamlined communication.
While the latest citadel update mainly addressed minor fixes and code cleaning, we are happy to share that we created a contract on Rusk that handles the citadel licenses. For more information, feel free to have a look here.
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.
Core Repositories
Rusk
The Dusk's Smart Contract Platform.
Update Summary
We are currently working on introducing changes that make it easier to bootstrap and monitor a rusk network on DO. Focussing on configs, improving logging, extending error handling etc.
After successfully(!) running our first Rust only cluster last week, we want to allow interested people and third-parties to either set up their own cluster or connect to our testnet. To simplify this process we are currently working on expanding the existing README with prerequisites, system requirements and an explanation for some of the main configuration options.
Opened issues
Implement sensible Default for all ExecuteCircuit variants #999
Implement sensible Default for the LicenseCircuit #998
Expand node setup documentation #997
Assist in the bootstrapping process of the rusk-driven devnet #990
Resolve VST call failure due to invalid state hash #987
Verify agreement message before its re-broadcast #982
Closed issues
Write Citadel contract module:license-contract #865
Stream txs from mempool to block producer #996
Make use of the feed import in the stake contract #972
Make use of the feed import in the transfer contract #971
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
The virtual machine now returns an error message whenever a contract attempts to access memory outside its allocated bounds. This behavior is necessary to prevent contracts from inadvertently or maliciously affecting memory segments that they shouldn't have access to, and to ensure the stability of the system by avoiding a full VM panic.
Opened issues
In the past 3 weeks, no issues were opened in this repository.
Closed issues
Invalid memory access is unguarded #249
Wallet-cli
Library providing functionalities to create wallets compatible with Dusk. This library is used to implement the official Dusk CLI wallet.
Update Summary
In the latest release of the Dusk Wallet CLI, several new features, changes, and improvements have been introduced to enhance the functionality and security of the wallet application.
Added:
- Support for Rusk HTTP Request: The release introduces support for making HTTP requests to the Rusk network, enhancing the wallet's communication capabilities.
- Local Network in Default Configuration: A local network has been added to the default configuration file (default.config.toml), providing users with the ability to interact with the Dusk network locally.
Changed:
- HTTP Endpoints in Configuration: The configuration setup has been updated to use HTTP endpoints instead of gRPC endpoints. This change enhances compatibility and communication with the Dusk network.
- New Rusk Binary Format for Wallet.dat: The wallet data (wallet.dat) file is now saved in the new Rusk Binary Format, improving the efficiency and security of the wallet data storage.
- Password Hashing Algorithm Change: The password hashing algorithm has been updated from blake3 to sha256 for the new Rusk Binary Format. However, the use of blake3 for password hashing is still retained for older wallet data file formats.
Removed:
- gRPC Support: Support for gRPC (Remote Procedure Call over HTTP/2) has been removed from the wallet CLI. This streamlines the codebase and focuses on the updated communication methods.
- GraphQL (gql) Support: Support for GraphQL (gql) has been removed from the CLI as well. This change aligns with the shift in communication methods.
Opened issues
In the past 3 weeks, no issues were opened in this repository.
Closed issues
Compile to wasm #172
Replace blake3 with sha256 #162
Start saving wallet.dat files with the new binary format #165
Replace gRPC with new node implementation in rusk #157
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
An update containing minor improvements, bug fixes and code cleaning.
AAdded
- Add Utils implementation
Opened issues
In the past 3 weeks, no issues were opened in this repository.
Closed issues
In the past 3 weeks, no issues were closed in this 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.
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.
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.