← BACK
feature image
Contents
About Victor Sint Nicolaas, Protocol Engineer - Provable

Victor Sint Nicolaas is Protocol Engineer at Provable. He loves to further the science of cryptography and mechanism design, and aims to bring them into the real world. Previously, he worked on securing taxation and identity software.

Announcing Aleo Stack v4.7.0

The Aleo maintainers are excited to announce a new version of the Aleo Stack. This update includes changes to the node implementation snarkOS and the high-level programming language Leo - as well as their supporting libraries.

While this release is mainly focused on enhanced network reliability, a number of features have been added to the VM which will significantly improve developer experience as well:

  • View-only functions: smart contracts can now be deployed with view-only functions - a concept many Ethereum developers will be familiar with. View-only functions can read on-chain state, and are a key component of the upcoming privacy preserving token standard.

  • Real-time data streaming: canonical finalize events can now be streamed out of snarkOS to external consumers using a Slipstream plugin framework. This enables downstream services (e.g., explorer backends) to receive real-time mapping updates and staking rewards at block finalization time.

  • 30-50% client-side proving speedup: targeted optimizations and caching of proving material in the Aleo SDK enable much faster client-side proving. Whether you want to craft transactions locally or delegate to a powerful machine - Aleo's tooling supports it all.

If you want to try it out, you can build from source today or download the mainnet release from Github June 1st. Find the current release schedule at: https://aleo.org/roadmap.

Consensus Upgrade: V15

The release schedule and upgrade block heights for v4.7.0 can be found here: https://roadmap.aleo.org/

ATTENTION: Validators and clients that do not upgrade in time will be at risk of forking and require manual intervention to recover.

View-only functions

A function's finalize body can now call a view function — same-program or imported. Views remain leaves (cannot call other views).

program test.aleo { mapping balances: address => u64; mapping totals: address => u64; view fn get_balance(addr: address) -> u64 { return balances.get_or_use(addr, 0u64); } }

Views may also declare zero outputs and serve as cross-program preconditions (Aleo analogue of Solidity's function require_member(address) external view { require(...); }):

Additionally, view-only functions can be queried via a node's API, making it easier to fetch, say, someone's latest balance without having to have knowledge of underlying smart contract datastructures.

Rejection reasons

The VM also receives improved rejection reporting through snarkVM#3214 , storing a structured variant of rejection reasons for easier retrievability.

Slipstream Plugin Support

On the node side, snarkOS#4175 adds Slipstream plugin support. canonical finalize events can now be streamed out of snarkOS to external consumers. This enables downstream services (e.g., explorer backends) to receive real-time mapping updates and staking rewards at block finalization time.

More improvements for developers

Leo

IDE enhancements: leo#29292 adds LSP server work, opening the door to richer language-server features in editors. leo#29345 adds semantic highlighting, leo#29359 improves tree-sitter identifier handling, leo#29420 improves diagnostics, and leo#29412 adds rename-related work.

Plugins: leo#29245 introduces Leo plugin work. There is now a leo plugins command - which lists all plugins, and support is added for the first actual plugin dispatch, i.e. leo fmt <args> now dispatches to leo-fmt <args>.

Workspaces: similar in spirit to Rust workspaces, Leo now also has experimental support! While leo#29401 and leo#29417 enable a workspace-aware leo deploy! An extensive guide can be found on: https://docs.leo-lang.org/leo

ABI and frontend integration: are greatly improved. One can now generate per-interface ABIs leo#29367, and leo#29350 improves the frontend ABI path for WASM-friendly environments.

Together, these changes make Leo more comfortable to use in modern development environments, especially for larger projects with multiple packages, plugins, editor integrations, and frontend tooling.

SDK

Optional SRS embedding: SRS embedding is now optional, enabling wallets and applications to have a smaller memory footprint snarkVM#3263 .

Proving time speedup: 30-50% Proving time Speedup Via Proving Key Caching If a KeyStore object is configured on the ProgramManager. Proving keys will now:

1. Be inserted into a function's execution prior to the execution starting, saving up to 50% on proving time.

2. Be stored in the KeyStore if a function ends up synthesizing new keys.

A reference implementation of the KeyStore is provided by the IndexedDBKeystore for browsers and the LocalFileKeyStore is provided for nodeJS/denoJS and other non-browser runtimes.

Use delegating proving in more lightweight environments: The callers can now execute delegated proofs by sending signed requests AND authorizations. Currently requests are limited to functions with a single call. A call stack deeper than 1 is not yet supported.

More customizable logging: SDK logging routed through logger enabling silencing of both wasm and js/ts logs.

Improvements for Node Operators

Enhanced node connectivity and logging: Several PRs improve connection-level debugging and metrics. snarkOS#4273 adds enhanced connection logs, while snarkOS#4203 and snarkOS#4236 refine TCP task and connection metrics so operators can observe node behavior with less intrusion.

Enhanced sync performance and stability: One major focus is better behavior during sync. The release adds improved request redundancy in snarkOS#4207, helping nodes recover when individual requests or peers fail to provide the needed data. It also improves fork-related sync logs in snarkOS#4208, making it easier to identify the source of a fork while a node is catching up. Sync stability also benefits from targeted fixes, including recursive certificate fetching, avoiding invalid peer bans during sync and improved trusted peer errors. Finally snarkOS#4237 adds important REST performance enhancements. Together, these changes make node behavior more transparent and reduce the amount of manual investigation required when networking or sync issues occur.

Closing Notes

The full changelogs for the referenced releases can be found here:

  • https://github.com/ProvableHQ/snarkVM/compare/v4.6.0...testnet-v4.7.0  

  • https://github.com/ProvableHQ/snarkOS/compare/v4.6.0…testnet-v4.7.0 

  • https://github.com/ProvableHQ/leo/compare/v4.0.0…testnet-v4.1.0 

  • https://github.com/ProvableHQ/sdk/compare/v0.10.0...v0.11.0

If you want to try it out, you can build from source today or download the mainnet release from Github June 1st. Find the current release schedule at: https://aleo.org/roadmap.

Please report any issues you might come across!

Contributors

A big thank you to all the contributors on Github to this snarkOS, snarkVM, Leo, and SDK release!

@AleoAlexander

@Antonio95

@awatts73 

@d0cd 

@dgrkotsonis

@eranrund

@iamalwaysuncomfortable

@IGI-111 

@JoshuaBatty

@kaimast 

@ljedrz

@marshacb

@mitchmindtree

@mohammadfawaz 

@raychu86 

@Roee-87

@vicsn

About Victor Sint Nicolaas, Protocol Engineer - Provable

Victor Sint Nicolaas is Protocol Engineer at Provable. He loves to further the science of cryptography and mechanism design, and aims to bring them into the real world. Previously, he worked on securing taxation and identity software.