Skip to content

Commit

Permalink
miden-tx: add readme (#503)
Browse files Browse the repository at this point in the history
  • Loading branch information
hackaugusto authored Mar 4, 2024
1 parent eed15bf commit 3841349
Showing 1 changed file with 49 additions and 0 deletions.
49 changes: 49 additions & 0 deletions miden-tx/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Miden Transaction

This crate contains tools to create, execute, and prove transactions.

## Usage

This crate exposes a few components to compile, run, and prove transactions.

The first requirement is to have a `DataStore` implementation. `DataStore`
objects are responsible to load the data needed by the transactions executor,
specially the account's code, the reference block data, and the note's inputs.

```rust
let store = DataStore:new();
```

Once a store is available, a `TransactionExecutor` object can be used to
execute a transaction. Consuming a zero or more notes, and possibly calling
some of the account's code.

```rust
let executor = TransactionExecutor::new(store);
let executed_transaction = executor.execute_transaction(account_id, block_ref, note_ids, tx_args);
```

With the transaction execution done, it is then possible to create a proof:

```rust
let prover = TransactionProver::new(ProvingOptions::default());
let proven_transaction = prover.prove_transaction(executed_transaction);
```

And to verify a proof:

```rust
let verifier = TransactionVerifier::new(SECURITY_LEVEL);
verifier.verify(proven_transaction);
```

## Features

| Features | Description |
| ------------ | --------------------------------------------------------------------------------------------- |
| `std` | Enable usage of Rust's `std`, use `--no-default-features` for `no-std` support. |
| `concurrent` | Enables concurrent code to speed up runtime execution. |

## License

This project is [MIT licensed](../LICENSE).

0 comments on commit 3841349

Please sign in to comment.