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 June 17th, 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.8.x
snarkVM Consensus change
A consensus change solidifying consensus logic will occur at the following block height:
Canary - Block 6_895_000 (~June 6th, 2025 at the current block times)
Testnet - Block 8_365_000 (~June 15th, 2025 at the current block times)
Mainnet - Block 8,392,501 (~June 18th, 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.
New bootstrap peer IPs
This PR introduced new bootstrap peer IPs, which are nodes run by the Aleo Network Foundation! They are an optional gateway into the Aleo network.
Improvements for developers
When you issue cargo run or even cargo test with no code changes at all, cargo would still re-build the snarkOS binary (and this can take a long time) on every single invocation. With a single clean “cargo:rerun-if-changed=” line removed, you will no longer have a rebuild on every run.
A bug was present in the previously added unconfirmed transaction endpoint, causing it to return confirmed transactions. This has now been fixed, the endpoint now returns unconfirmed transactions.
There were a few things that made the CLI a little awkward to use, which is now improved. The power of Rust shines through scary idiomatic code such as the following:
#[clap(default_value_t=MainnetV0::ID, long = "network", value_parser = clap::value_parser!(u16).range((MainnetV0::ID as i64)..=(CanaryV0::ID as i64)))]
Improvements for validators
A number of stabilization improvements are coming to consensus and peering. For example, the heartbeat logic has no notion of pending connections, so it might call Router::connect
multiple times for the same peer while the handshake is happening. This change prevents frequent warnings being generated when a node attempts to connect to a peer, that it already connected or is currently connecting to, by not considering those cases an error.
This PR clears the partially_verified_transactions on all the ConsensusVersion changes. All ConsensusVersions change consensus rules and regardless if it is transaction related or not, we clear the partially_verified_transactions out of abundance of caution.
Leo 2.7.0: now with type inference!
Alongside the new snarkOS release, there will also be a new Leo release. 🦁Leo is a programming language for formally verified, zero-knowledge applications on the Aleo network. From now on, we’ll be using these release notes to give an overview of new exciting features which landed in the programming language.
Unsuffixed Literals and Basic Type Inference
In many cases it’s now possible to avoid explicitly writing types, or to avoid the type suffix of numeric literals.
let x: u8 = 12; // We no longer have to write `12u8`.
let y = 12u8; // Or, instead of `let y: u8 = ...`, we omit the type.
for i in 10u8..16u8 { // Can also omit the type here, instead of `for i: u8`.
// ...
}
Clearer Reporting for execute and deploy
Now when you use deploy and execute, you’ll get better messaging, including checking the status of your transaction.
Closing notes
The full changelogs for the referenced releases can be found here:
https://github.com/ProvableHQ/snarkVM/compare/v3.7.1...testnet-v3.8.0
https://github.com/ProvableHQ/snarkOS/compare/v3.7.1…testnet-v3.8.0
https://github.com/ProvableHQ/leo/compare/v2.6.0...testnet-v2.7.0
Contributors
A big thank you to all the contributors to this snarkVM, snarkOS and Leo release!
@cypherpepe
@d0cd
@ljedrz
@kaimast
@kpandl
@ljedrz
@mikebenfield
@mohammadfawaz
@niklaslong
@raychu86
@vicsn
@VolodymyrBg