Skip to content

Commit

Permalink
Merge branch 'next' into andrew-tx-execution-bench
Browse files Browse the repository at this point in the history
  • Loading branch information
Fumuran committed Apr 12, 2024
2 parents 4e33ee8 + d5fa774 commit cdf40f9
Show file tree
Hide file tree
Showing 93 changed files with 2,339 additions and 1,669 deletions.
38 changes: 38 additions & 0 deletions .github/ISSUE_TEMPLATE/1-bugreport.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: "Bug Report"
description: "File a bug report"
labels: ["bug"]
body:
- type: markdown
attributes:
value: |
Thank you for taking the time to fill out this bug report!
- type: textarea
id: version
attributes:
label: "Packages versions"
description: "Let us know the versions of any other packages used. For example, which version of the protocol are you using?"
placeholder: "miden-base: 0.1.0"
validations:
required: true
- type: textarea
id: bug-description
attributes:
label: "Bug description"
description: "Describe the behavior you are experiencing."
placeholder: "Tell us what happened and what should have happened."
validations:
required: true
- type: textarea
id: reproduce-steps
attributes:
label: "How can this be reproduced?"
description: "If possible, describe how to replicate the unexpected behavior that you see."
placeholder: "Steps!"
validations:
required: false
- type: textarea
id: logs
attributes:
label: Relevant log output
description: Please copy and paste any relevant log output. This is automatically formatted as code, no need for backticks.
render: shell
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/2-feature-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: "Feature request"
description: "Request new goodies"
labels: ["enhancement"]
body:
- type: markdown
attributes:
value: |
Thank you for taking the time to fill a feature request!
- type: textarea
id: scenario-why
attributes:
label: "Feature description"
validations:
required: true
- type: textarea
id: scenario-how
attributes:
label: "Why is this feature needed?"
validations:
required: false
35 changes: 35 additions & 0 deletions .github/ISSUE_TEMPLATE/3-task.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: "Task"
description: "Work item"
body:
- type: markdown
attributes:
value: |
A task should be less than a week worth of work!
- type: textarea
id: task-what
attributes:
label: "What should be done?"
placeholder: "Refactor how account storage is loaded into transaction executor"
validations:
required: true
- type: textarea
id: task-how
attributes:
label: "How should it be done?"
placeholder: "Only the data required for transaction execution should be loaded from account storage (i.e., lazy-loading)"
validations:
required: true
- type: textarea
id: task-done
attributes:
label: "When is this task done?"
placeholder: "The task is done when lazy-loading of account storage is implemented"
validations:
required: true
- type: textarea
id: task-related
attributes:
label: "Additional context"
description: "Add context to the tasks. E.g. other related tasks or relevant discussions on PRs/chats."
validations:
required: false
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
blank_issues_enabled: true
20 changes: 16 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,24 @@
# Changelog

## 0.2.0
## 0.3.0 (TBD)

* Added state delta to the ProvenTransaction (#485).
* [BREAKING] Added `NoteType` to notes (#515).
## 0.2.1 (2024-04-12)

* [BREAKING] Return a reference to `NoteMetadata` from output notes (#593).
* Add more type conversions for `NoteType` (#597).
* Fix note input padding for expected output notes (#598).

## 0.2.0 (2024-04-11)

* [BREAKING] Implement support for public accounts (#481, #485, #538).
* [BREAKING] Implement support for public notes (#515, #540, #572).
* Improved `ProvenTransaction` validation (#532).
* [BREAKING] Updated `no-std` setup (#533).
* Improved `ProvenTransaction` serialization (#543)
* Improved `ProvenTransaction` serialization (#543).
* Implemented note tree wrapper structs (#560).
* [BREAKING] Migrated to v0.9 version of Miden VM (#567).
* [BREAKING] Added account storage type parameter to `create_basic_wallet` and `create_basic_fungible_faucet` (miden-lib crate only) (#587).
* Removed serialization of source locations from account code (#590).

## 0.1.1 (2024-03-07) - `miden-objects` crate only

Expand Down
8 changes: 4 additions & 4 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,9 @@ members = [

[workspace.package]
edition = "2021"
rust-version = "1.75"
rust-version = "1.77"
license = "MIT"
authors = ["Miden contributors"]
readme = "README.md"
homepage = "https://polygon.technology/polygon-miden"
repository = "https://github.com/0xPolygonMiden/miden-base"
exclude = [".github/"]
Expand Down
11 changes: 7 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
[![LICENSE](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/0xPolygonMiden/miden-base/blob/main/LICENSE)
[![test](https://github.com/0xPolygonMiden/miden-base/actions/workflows/test.yml/badge.svg)](https://github.com/0xPolygonMiden/miden-base/actions/workflows/test.yml)
[![no-std](https://github.com/0xPolygonMiden/miden-base/actions/workflows/no-std.yml/badge.svg)](https://github.com/0xPolygonMiden/miden-base/actions/workflows/no-std.yml)
[![RUST_VERSION](https://img.shields.io/badge/rustc-1.75+-lightgray.svg)]()
[![RUST_VERSION](https://img.shields.io/badge/rustc-1.77+-lightgray.svg)]()
[![GitHub Release](https://img.shields.io/github/release/0xPolygonMiden/miden-base)]()

Description and core structures for the Miden Rollup protocol.
Expand All @@ -23,22 +23,25 @@ If you want to join the technical discussion or learn more about the project, pl

## Status and features

Polygon Miden is currently on release v0.1. This is an early version of the protocol and its components. We expect to keep making changes (including breaking changes) to all components.
Polygon Miden is currently on release v0.2. This is an early version of the protocol and its components. We expect to keep making changes (including breaking changes) to all components.

### Feature highlights

* **Private accounts**. The Miden Operator tracks only commitments to account data in the public database. The users are responsible for keeping track of the state of their accounts.
* **Public accounts**. With public accounts users are be able to store the entire state of their accounts on-chain, thus, eliminating the need to keep track of account states locally (albeit by sacrificing privacy and at a higher cost).
* **Private notes**. Like with private accounts, the Miden Operator tracks only commitments to notes in the public database. Users need to communicate note details to each other via side-channels.
* **Public notes**. With public notes, the users are be able to store all note details on-chain, thus, eliminating the need to communicate note details via side-channels.
* **Local transactions**. Users can execute and prove transactions locally on their devices. The Miden Operator verifies the proofs and if the proofs are valid, updates the state of the rollup accordingly.
* **Standard account**. Users can create accounts using a small number of standard account interfaces (e.g., basic wallet). In the future, the set of standard smart contracts will be expanded.
* **Standard notes**. Can create notes using standardized note scripts such as pay-to-ID (`P2ID`) and atomic swap (`SWAP`). In the future, the set of standardized notes will be expanded.

### Planned features

* **Public accounts**. With public accounts users will be able to store the entire state of their accounts on-chain, thus, eliminating the need to keep track of account states locally (albeit by sacrificing privacy and at a higher cost).
* **Public notes**. With public notes, the users will be able to store all note details on-chain, thus, eliminating the need to communicate note details via side-channels. Encrypted on-chain notes will also be supported in the future.
* **More storage types**. In addition to storing a limited set of simple values, the accounts will be able to store data in storage maps (mapping 256-bit keys to 256-bit values) and storage arrays.
* **Transaction recency conditions**. Users will be able to specify how close to the chain tip their transactions are to be executed. This will enable things like rate limiting and oracles.
* **Delegated note inclusion proofs**. By delegating note inclusion proofs, users will be able to create chains of dependent notes which are would be included into a block as a single batch.
* **Network transactions**. Users will be able to create notes intended for network execution. Such notes will be included into transactions executed and proven by the Miden operator.
* **Encrypted notes**. With encrypted notes users will be able to put all note details on-chain, but the data contained withing the notes would be encrypted with the recipients key.

## Project structure

Expand Down
Loading

0 comments on commit cdf40f9

Please sign in to comment.