Skip to content

Conversation

@sergerad
Copy link
Collaborator

@sergerad sergerad commented Dec 15, 2025

Context

The RPC still performs transaction validation from a module in its server crate. Instead, it needs to use the Validator client to allow the Validator component to perform the transaction validation.

Relates to #1316.

Changes

Note: most of the changes are miscellaneous fixes to bring node up to date with miden-base

  • Add validator RPC URL flag to RPC component command.
  • Add validator client to RPC component.
  • Implemented validator logic for re-executing and validating transactions.

Copy link
Contributor

@bobbinth bobbinth left a comment

Choose a reason for hiding this comment

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

Looks good! Thank you! I left some comments inline - but they are pretty minor.

Copy link
Contributor

@bobbinth bobbinth left a comment

Choose a reason for hiding this comment

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

Looks good! Thank you! I left a couple of optional comments inline.

pub async fn validate_transaction(
proven_tx: ProvenTransaction,
tx_inputs: TransactionInputs,
) -> Result<(), TransactionValidationError> {
Copy link
Contributor

Choose a reason for hiding this comment

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

Returning () is fine for now, but I do think that we'll probably end up returning TransactionHeader from here so that we can store it in the validator's database.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Copy link
Contributor

@PhilippGackstatter PhilippGackstatter left a comment

Choose a reason for hiding this comment

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

I reviewed only the CodeBuilder parts. Those LGTM.

.unwrap()
.with_supported_type(AccountType::RegularAccountImmutableCode);
let account_component_code = CodeBuilder::default()
.compile_component_code("baz::interface", "export.baz push.3 end")
Copy link
Contributor

Choose a reason for hiding this comment

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

FYI: After 0xMiden/miden-base#2158 is merged, all exports will have to become pub proc.

@sergerad sergerad merged commit e30bdcb into next Dec 17, 2025
18 checks passed
@sergerad sergerad deleted the sergerad-integrate-rpc-validator branch December 17, 2025 02:43
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.

5 participants