Skip to content

feat: enable TX debugging#1883

Draft
djolertrk wants to merge 9 commits into0xMiden:nextfrom
walnuthq:pr/enable-tx-debugging-clean
Draft

feat: enable TX debugging#1883
djolertrk wants to merge 9 commits into0xMiden:nextfrom
walnuthq:pr/enable-tx-debugging-clean

Conversation

@djolertrk
Copy link

This was rebased on top of Fumuran's branch for migrating to miden-vm v0.21.

cc @bitwalker

@djolertrk djolertrk force-pushed the pr/enable-tx-debugging-clean branch from e502fbb to ec3fa67 Compare March 10, 2026 17:08
@djolertrk
Copy link
Author

Rebased on top of next now, since the PR for migration to new VM is merged.

Cargo.toml Outdated
Comment on lines +83 to +87
[patch.crates-io]
miden-protocol = { path = "../protocol/crates/miden-protocol" }
miden-standards = { path = "../protocol/crates/miden-standards" }
miden-testing = { path = "../protocol/crates/miden-testing" }
miden-tx = { path = "../protocol/crates/miden-tx" }
Copy link
Collaborator

Choose a reason for hiding this comment

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

This needs to be removed

miden-node-ntx-builder = { version = "=0.14.0-alpha.4" }
miden-node-proto = { version = "=0.14.0-alpha.4" }
miden-node-proto-build = { default-features = false, version = "=0.14.0-alpha.4" }
miden-node-proto-build = { default-features = false, path = "../node/proto", version = "=0.14.0-alpha.1" }
Copy link
Collaborator

Choose a reason for hiding this comment

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

This also needs to be fixed.

Copy link
Author

Choose a reason for hiding this comment

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

Yes, sure. I should have marked this as a draft.

@juan518munoz
Copy link
Collaborator

Could you provide a more detailed description like screenshots and a sample debug flow?

@djolertrk
Copy link
Author

Could you provide a more detailed description like screenshots and a sample debug flow?

Hi @juan518munoz, thanks for taking a look.

The main idea is to enhance debugger with support to debug programs executed under the transaction kernel, instead of only debugging standalone VM programs.

Please check:

0xMiden/miden-debug#29

0xMiden/miden-debug#41
0xMiden/protocol#2574

Within 0xMiden/miden-debug#29, I have described one of possible use cases, but I was able to add even an "offline" mode to this dap execution, so you just do:

run

# terminal 1

$  miden-client init --local --network localhost
$ miden-client new-wallet --offline
$ miden-client exec \
    --script-path /tmp/miden-no-node-client/nop.masm \
    --start-debug-adapter localhost:4711

and run debugger as:

# terminal 2
miden-debug --dap-connect localhost:4711

so, it starts the debugger in TUI mode, and you can step through the execution, and whenever you execute a command via DAP, it will be logged with the client -- see picture attached.

Screenshot 2026-03-11 at 20 58 43

@djolertrk djolertrk marked this pull request as draft March 13, 2026 10:47
Copy link
Collaborator

@juan518munoz juan518munoz left a comment

Choose a reason for hiding this comment

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

Let's update the branch so we can run the CI

Comment on lines 105 to 113
client
.execute_program(account_id, tx_script, advice_inputs, BTreeSet::new())
.await
};

#[cfg(not(feature = "dap"))]
let result = client
.execute_program(account_id, tx_script, advice_inputs, BTreeSet::new())
.await;
Copy link
Collaborator

Choose a reason for hiding this comment

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

This is duplicated code. Maybe the best approach is not to split between feature = "dap" or not.

path = "src/main.rs"

[features]
dap = ["miden-client/dap", "dep:miden-debug"]
Copy link
Collaborator

Choose a reason for hiding this comment

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

Should we gate behind a feature? Or have connection depend on an Optional argument?

Copy link
Author

Choose a reason for hiding this comment

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

I moved the CLI behavior toward the optional-argument model. The --start-debug-adapter is now always part of the CLI surface, and if the binary is built without DAP support it returns a clear runtime error. Furthermore, I kept the actual debugger wiring behind the dap feature because miden-debug currently requires a newer Rust version than the rest of the client workspace. So making it unconditional would raise the default build/toolchain requirements for miden-client. If that constraint goes away, we can simplify further and drop the feature gate.

use crate::store::{BlockRelevance, StoreError};
use crate::{Client, ClientError};

const OFFLINE_NATIVE_ASSET_FAUCET_ID: u128 = 0xab00_0000_0000_cd20_0000_ac00_0000_de00;
Copy link
Collaborator

Choose a reason for hiding this comment

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

let's doc this

Copy link
Collaborator

Choose a reason for hiding this comment

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

The whole diff of this part seems to be caused due to not being on track with next. As we should already have solved them here.

Copy link
Author

Choose a reason for hiding this comment

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

Now rebased on top of next.

@juan518munoz juan518munoz changed the title Enable TX debugging feat: enable TX debugging Mar 16, 2026
@djolertrk
Copy link
Author

Let's update the branch so we can run the CI

protocol part 0xMiden/protocol#2574 -- went in, but I think we would need 0xMiden/miden-debug#41 (debugger part) to be merged, so we can get rid of ../miden-debug dependency...

@djolertrk djolertrk force-pushed the pr/enable-tx-debugging-clean branch from f33d10b to 5c75028 Compare March 19, 2026 12:25
@juan518munoz
Copy link
Collaborator

@djolertrk I've enabled CI runs on this PR. Let's wait for 0xMiden/miden-debug#41 as you said and update to it. Once it's done and the CI passes feel free to re-request reviews so we can merge this.

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.

2 participants