Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Navigating the codebase

The code is organised using a Rust workspace with separate crates for the node and remote prover binaries, a crate for each node component, a couple of gRPC-related codegen crates, and a catch-all utilities crate.

The primary artifacts are the node and remote prover binaries. The library crates are not intended for external usage, but instead simply serve to enforce code organisation and decoupling.

CrateDescription
nodeThe node executable. Configure and run the node and its components.
remote-proverRemote prover executables. Includes workers and proxies.
remote-prover-clientRemote prover client implementation.
block-producerBlock-producer component implementation.
storeStore component implementation.
ntx-builderNetwork transaction builder component implementation.
rpcRPC component implementation.
protoContains and exports all protobuf definitions.
rpc-protoContains the RPC protobuf definitions. Currently this is an awkward clone of proto because we re-use the definitions from the internal protobuf types.
utilsVariety of utility functionality.
test-macroProvides a procedural macro to enable tracing in tests.

note

miden-base is an important dependency which contains the core Miden protocol definitions e.g. accounts, notes, transactions etc.

workspace dependency tree