Skip to content

Conversation

@Roee-87
Copy link
Collaborator

@Roee-87 Roee-87 commented Nov 5, 2025

Motivation

leo devnode is a new tool that creates a local development network to enable developers to rapidly test and iterate through Aleo program design.

leo devnode has two commands: leo devnode start which deploys a local network at localhost:3030 and leo devnode advance which creates a block and adds it to the ledger. leo devnode advance takes an optional value n which advances the ledger by n blocks. Default value is 1.

Furthermore, this PR adds a --skip-execution-proof flag for leo execute commands. This flag will generate transactions without proofs.

A --manual-block-create flag will enable developers to broadcast multiple transactions to a queue without creating a block. In order to advance the ledger, users will need to use the leo devnode advance command.

Test Plan

TBD..

@Roee-87 Roee-87 requested review from d0cd and mohammadfawaz and removed request for d0cd November 5, 2025 21:55
@Roee-87
Copy link
Collaborator Author

Roee-87 commented Nov 5, 2025

@d0cd @mohammadfawaz Can you comment on the best way to add tests to the repo? Or should I include custom scripts to demonstrate the functionality of the devnode commands? I'll update the Test Plan section accordingly.

Copy link
Collaborator

@vicsn vicsn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome to see it. I'll continue review after dead code and the diff compared to the base branch has been cleaned up

use crate::cli::commands::devnode::rest::Rest;

const DEFAULT_GENESIS_PATH: &str = "./rest/genesis_8d710d7e2_40val_snarkos_dev_network.bin";
const DEFAULT_GENESIS_PATH: &str = "./leo/cli/commands/devnode/rest/genesis_8d710d7e2_40val_snarkos_dev_network.bin";
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you add a docblock, something like: "Genesis block is stored in $TMPDIR when running snarkos start --dev 0 --dev-num-validators N

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can't use a const since include_bytes!() only takes a string literal as an argument...

)]
inputs: Vec<String>,
#[clap(long, help = "Skips proving.")]
pub(crate) skip_proving: bool,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

--skip-execute-proof and --skip-deploy-certificate

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done 218f84e

@Roee-87 Roee-87 marked this pull request as ready for review November 24, 2025 11:54
@vicsn
Copy link
Collaborator

vicsn commented Nov 26, 2025

Closing in favour of #29012

@vicsn vicsn closed this Nov 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants