The Provable team is happy to announce a new version of the snarkOS Aleo implementation. Aleo is a cryptocurrency enabling developers to build cryptographically secure dApps.
You can already use this version on testnet and it is planned to land on mainnet by April 22nd, 2025 - at which point you can also download the release from github. Or, if you’re keen to dive in, build from source anytime you want.
Please report any issues you might come across!
What's new in v3.6.x
snarkVM Consensus changes: increase to 30 validators and spend limits
A consensus update is going to take place, allowing the validator count to increase to 30! Extensive load-testing was performed to confirm the robustness of the larger network. In future releases, the validator set will continue to increase in a responsible manner. Excitingly, due to the use of the Bullshark-based AleoBFT consensus algorithm, this increased validator set will increase the throughput of Aleo to around 65 transactions per second! Additionally, spend limits have been introduced, which are discussed in more detail below.
The consensus changes will occur at the following block heights:
Canary - Block 5_780_000 (~April 11th, 2025 at the current block times)
Testnet - Block 6_765_000 (~April 15th, 2025 at the current block times)
Mainnet - Block 7_060_000 (~May 4th, 2025 at the current block times)
ATTENTION: Validators that do not upgrade in time will be at risk of forking and require manual intervention. Clients that do not upgrade will be at risk of halting until an upgrade occurs.
Improvements for validators
Initialization runtime performance has improved significantly. Program loading on initialization now avoids an exponential slowdown incurred previously from recursive loading of the same program; and fetching from CDN has been sped up through increased parallelization.
Overall runtime performance has also been improved. Validator committees are expensive to construct, and they are now cached in more places. Deployment synthesis has been sped up by almost 2x with help from a statically allocated vector and further allocation reductions. Peering and syncing logic has been overhauled to be more robust. Finally, proposal spend limits have been introduced to limit the maximum blocktime.
Validator storage changes
This PR fixed the storage path configuration for the proposal cache for validators, to ensure it is stored in the location indicated by the --storage flag. Previously, it was always stored in the default Aleo ledger directory. Validators using this flag should review whether they are backing up the entire indicated folder.
Improvements for provers
Support for CUDA has been merged which will speed up running a snarkOS prover out of the box.
API changes
This PR is an initial iteration of a validator telemetry implementation used for tracking metrics and performance of other validators. This will allow validators to better monitor the behavior of its peers (and itself) and react accordingly - directly via connections or off-chain via alerts.
This new feature is currently guarded with a new telemetry feature flag for optional use by validators. There is a rudimentary concept of participation score that is exposed via logs and a new REST api:
// GET /{network}/validators/participation
// GET /{network}/validators/participation?metadata={true}
Improvements for developers
A locktick feature has been added which allows for logging of currently-held locks. This has proven extremely useful for hunting down deadlocks.
Cargo doc now compiles again! Moreover, many parts of the codebase have been documented in much more detail - this ongoing documentation effort will improve the developer experience for new contributors.
A regression testing suite has been developed to ensure all deployed programs continue to be valid on new versions of snarkVM - ensuring for example that R1CS synthesis does not change. Moreover, a small devnet is now automatically launched in CI on every open PR, catching more issues in a fully automated way.
Closing notes
This release, there is no update required for Leo, but a new release is on its way bringing several exciting updates, so stay tuned.
The full changelog for this upcoming release can be found here:
https://github.com/ProvableHQ/snarkVM/compare/v1.4.0...a296d35
https://github.com/ProvableHQ/snarkOS/compare/v3.4.0...a1e4a28
Contributors
A big thank you to all the contributors to this release!
@acoglio
@d0cd
@ljedrz
@kaimast
@kpandl
@mikebenfield
@niklaslong
@onetrickwolf
@raychu86
@vicsn