This repository contains the Miden client, which provides a way to execute and prove transactions, facilitating the interaction with the Miden rollup.
The Miden client is still under heavy development and the project can be considered to be in an alpha stage. Many features are yet to be implemented and there is a number of limitations which we will lift in the near future.
The Miden client currently consists of two components:
miden-client
library, which can be used by other project to programmatically interact with the Miden rollup. You can find more information about the library in the Rust client Library section.- Miden CLI, which is a wrapper around the library exposing its functionality via a simple command-line interface (CLI). You can find more information about the CLI in the Miden client CLI section.
The client's main responsibility is to maintain a partial view of the blockchain which allows for locally executing and proving transactions. It keeps a local store of various entities that periodically get updated by syncing with the node.
For more info check:
The workspace is organized as follows:
- The
bin
folder contains crates that are meant to be compiled into binaries (like the CLI). - The
crates
folder contains the library crates that are meant to be used as dependencies (like the Rust client library). - The
tests
folder contains integration tests for the workspace crates.
We use make
to encapsulate some tasks, such as running lints and tests. You can check out Makefile for all available tasks or just run the following command:
make
To test the project's code, we provide both unit tests (which can be run with cargo test
) and integration tests. For more info on integration tests, refer to the integration testing document
The crate also comes with one feature flag that is used exclusively on tests:
integration
: only used to run integration tests and separate them from unit tests.
Interested in contributing? Check CONTRIBUTING.md.
This project is MIT licensed.