Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tracking PR for v0.8.0 release #1096

Draft
wants to merge 38 commits into
base: main
Choose a base branch
from
Draft

Tracking PR for v0.8.0 release #1096

wants to merge 38 commits into from

Conversation

bobbinth
Copy link
Contributor

This is a tracking PR for v0.8.0 release.

bobbinth and others added 30 commits January 23, 2025 01:05
* feat: use different service for workers update

fix: move changelog entry to right place

* review: use http/2 for update workers endpoint

* review: replace service with endpoint in the changelog

* review: re-arrange ProxyConfig struct

* review: update command documentation

* review: rename to LoadBalancerUpdateService

* review: add error message in the empty query params case

* review: move response creation function to update worker file

* fix: typo in LoadBalancerUpdateService

* review: make function private

* review: rename health check frequency
* feat: Add miden-batch-prover crate

* feat: Add `BatchId`

* Introduce `AccountUpdateError`

* feat: Add `ProposedBatch`

* feat: Add `LocalBatchProver`

* feat: Add `ProvenBatch`

* feat: Migrate `LocalBatchProver` from node

* chore: Rename `NoteAuthenticationInfo`

* feat:Add batch expiration block num

* chore: Use core instead of std for `Display`

* feat: Migrate `MockProvenTxBuilder`

* feat: Test tx ordering in batches

* feat: Add `BatchAccountUpdate`

* chore: Extend test assertions

* feat: Refactor and document batch output note tracker

* feat: Add input/output notes commitment test

* feat: Remove `BlockNumber::from_usize`

* feat: Check for duplicate input notes

* feat: Add unauthenticated/authenticated scenario tests

* chore: Misc doc fixes

* feat: Move `ProposedBatch` and `ProvenBatch` to objects

* chore: Add changelog entry

* feat: Use MockChain for batch tests (partially)

* chore: Move most validation to `ProposedBatch`

* feat: Use MockChain for all tests

* feat: Implement note authentication and tests for it

* feat: Verify transactions in batch

* chore: Document error conditions on proposed batch

* feat: Check max input/output notes and account updates in batch

* feat: Check for duplicate transactions in batch

* feat: Add tests with a circular note dependency

* feat: Rename batch prover crate

* chore: Address review comments

* chore: Unbox the `BlockHeader`

* chore: Remove unused dependencies

* feat: Use `InputNotes` rather than `Vec`

* feat: Compute batch ID as sequential hash over tx ID and account ID

* chore: Remove `BlockInclusionProof` and `NoteInclusionProofs`

* chore: Address more review comments

* chore: Move tests into dedicated file

* feat: Add `block_num` field to `ProvenTransaction`

* feat: Add `ChainMmr::from_mmr`

* feat: Add `BatchAccountUpdate::into_parts`

* feat: Add `ProvenBatch::produced_nullifiers`

* feat: Add `BatchId::compute_from_ids`

* feat: Expose `BatchProveError` and rename `BatchProposeError`

* feat: Remove `compute` prefix from batch id constructors

* chore: Move `ChainMmr::from_mmr` behind test flag

* chore: Address review comments

* feat: Disallow empty transaction batches

* chore: Address review comments
* feat: add env vars for proxy configurations

* docs: update changelog

* feat: remove toml file and init command

* remove env var arguments from start-worker command

* review: remove env support for start-proxy command

* review: remove figment and dotenvy

* review: use MPS_ as env vars prefix

* rename vars in .env with MPS_ prefix

* docs: update readme

* fix docs and remove unused dependency

* review: merge ProxyConfig and StartProxy structs

* review: update changelog entry

* review: improve env file section of the readme

* review: improve commands documentation

* docs: update add/remove workers section of the readme

* fix: start proxy command was bad formatted

* review: mark the change as breaking

* review: add missing backticks in readme

* review: rename polling time frequency

* review: update comment of worker polling time

* review: update comment of timeout time
* feat: impl get_block_timestamp miden lib proc

* test: impl tests for block procedures

* chore: update changelog

* refactor: update the doc comments in timestamp related procs

* docs: update the documentation of the get_block_timestamp procedure
* feat: Implement `ProposedBlock::new` (partially)

* feat: Add reference block hash/num to `ProvenBatch`

* feat: Check batch reference blocks in `ProposedBlock::new`

* chore: Make check functions standalone

* feat: Add APIs for block prover

* feat: Use miden-crypto with `PartialSmt`

* feat: Refactor `BatchOutputNoteTracker` into `InputOutputNoteTracker`

* feat: Use `InputOutputNoteTracker` in proposed block

* feat: Build `BlockNoteTree`

* feat: Add `NullifierWitness` type

* feat: Split up account update aggregation into parts

* feat: Remove erased notes from batch note tree and aggregate them

* feat: Document errors of `ProposedBlock::new`

* feat: Enforce timestamp increases monotonically

* chore: Make InputOutputNoteTracker more consistent

* feat: Document public methods

* chore: Remove `{Partial}NullifierTree`

* chore: Rephrase error messages

* chore: Fix no-std compilation by importing from `alloc`

* chore: Add changelog entry

* chore: Remove patch for miden-crypto

* chore: Remove note about account id prefix check

* chore: Remove `UpdatedAccounts` type alias

* chore: Address review comments

* fix: Nullifier check when leaf is empty

* feat: Simplify nullifier witness check

* chore: Address review comments

* chore: Remove unused import

---------

Co-authored-by: Bobbin Threadbare <43513081+bobbinth@users.noreply.github.com>
* feat: Extend MockChain and test some parts of ProposedBlock::new

* feat: Test duplicate output notes

* feat: Test missing unauthenticated note proofs

* feat: Test invalid note inclusion proof

* feat: Fix reference block in note authentication

* feat: Test spent nullifier

* chore: Handle update details in proven tx builder

* feat: Test conflicting tx against same account

* feat: Test missing account witness

* feat: Test inconsistent account state update

* chore: Split tests in success and error

* chore: Simplify executed tx -> proven tx conversion

* chore: Improve test util naming

* chore: Use only no-std methods in mock chain

* chore: Document tests

* chore: remove unused dependencies

* feat: Test account update aggregation at block level

* feat: Test authenticating unauthenticated notes

* feat: Move output note builder into utils

* fix: Remove nullifiers of erased notes

* feat: Test note erasure on block level

* feat: Simplify conflicting txs test

* chore: Swap note erasure line for readability

* chore: Clean up documentation

* chore: Fix typo in docs

* chore: Modify changelog entry

* chore: Remove unused vm-core dep

* chore: Remove unused non-dev dependencies

* chore: Update erase_notes comment

* chore: Rename `MockChain::chain`

* chore: Fix incorrect doc comment

* chore: Reference miden crypto PartialMmr::untrack issue

* chore: Replace std with alloc

* feat: Use mock account instead to avoid authenticators
* feat: add remote batch prover

* review: update readme's

* review: formatting in cargo.toml

* review: rename remote_prover to proving_service, rename request and response structs from proto

* review: abstract provers into struct

* review: improve readme

* review: remove .ok from build files

* review: add ProverTypeSupport struct:

* review: remove default features from tokio

* review: format the markdown table

* review: replace endpoint from &str to impl From<String>

* review: use ProofType to create Request struct

* review: fix typo in BatchProverError

* review: replace error type in RemoteBatchProver::prove to RemoteProverError

* review: fix typo in readme

* review: add documentation to proto file

* review: make prove method type safe

* fix:lint

* review: make ProverTypeSupport copy, make with_{batch, transaction} return self

* review: fix documentation with missing dot

* review: remove unused variants of BatchProverError
* feat: Remove unused files

* chore: Remove pre-commit config
* feat: add native types to storage placeholders

* reviews: Propagate error correctly, change test, refactor code

* refactor: Fix docs, imports

* refactor: publish component's libraries

* refactor: change key in template requirements

* feat: Use a type registry

* reviews: Address doc comments, refactor checks, add validation of types
* feat: Extend MockChain and test some parts of ProposedBlock::new

* feat: Test duplicate output notes

* feat: Test missing unauthenticated note proofs

* feat: Test invalid note inclusion proof

* feat: Fix reference block in note authentication

* feat: Test spent nullifier

* chore: Handle update details in proven tx builder

* feat: Test conflicting tx against same account

* feat: Test missing account witness

* feat: Test inconsistent account state update

* chore: Split tests in success and error

* chore: Simplify executed tx -> proven tx conversion

* chore: Improve test util naming

* chore: Use only no-std methods in mock chain

* chore: Document tests

* chore: remove unused dependencies

* feat: Test account update aggregation at block level

* feat: Test authenticating unauthenticated notes

* feat: Move output note builder into utils

* fix: Remove nullifiers of erased notes

* feat: Test note erasure on block level

* feat: Simplify conflicting txs test

* chore: Swap note erasure line for readability

* chore: Clean up documentation

* chore: Fix typo in docs

* chore: Modify changelog entry

* chore: Remove unused vm-core dep

* chore: Remove unused non-dev dependencies

* chore: Update erase_notes comment

* chore: Rename `MockChain::chain`

* chore: Fix incorrect doc comment

* chore: Reference miden crypto PartialMmr::untrack issue

* chore: Replace std with alloc

* feat: Use mock account instead to avoid authenticators

* feat: Add `LocalBlockProver`

* feat: Rename `Block` to `ProvenBlock`

* feat: Move tx hash computation to `BlockHeader`

* chore: Remove `BlockError`

* feat: Compute batch output notes in proposed block

* chore: Document proving and update test

* chore: Make test non-trivial for block note tree

* feat: Test account updates and nullifiers

* feat: Document partial nullifier tree methods

* fix: ProvenBlock docs

* chore: Document errors and panics

* chore: Add changelog entry

* chore: Address review comments

* feat: Document all fields of `ProposedBlock`

* feat: Compute block note tree in block prover

* feat: Check nullifier/account tree root consistency

* feat: Set kernel root

* feat: Test stale nullifier/account witnesses

* feat: Add stale nullifier/account witness test

* chore: cargo update and avoid clone in batch deserialization

* chore: Fix `Arc` clippy lint

* chore: Make test file names consistent

* feat: Move note erasure test to proven block

* feat: Include note index in batch in `OutputNoteBatch`

* chore: Bump `miden-crypto` to `0.13.3` (includes `PartialSmt`)

* chore: Update docs on `compute_batch_output_notes`

* feat: Make `PartialNullifierTree::mark_spent` take an iterator

* chore: Add TODO on account witness updating

* chore: Expand on note index in `OutputNoteBatch`

* chore: Rename `prove_without_batch_verification`

* chore: Split up nullifier/account witness tests into four tests

* chore: Describe high level test setup
* feat: Implement batch expiration num check

* feat: Test batch expiration

* chore: Adjust batch expiration test to smallest valid value

* feat: Check for batch expiration in block

* feat: Test expired batch

* feat: Test batch expiring in block being proposed

* feat: Simplify tx ref block check in batch

* feat: Rename `ProvenBatch::new_unchecked`

* feat: `ProvenBatchError` rename

* chore: Add changelog entry

* feat: Rename `ExpiredBatch` to `ExpiredTransaction` in batch error

* chore: Update error condition

* chore: Remove unused error

* chore: Remove unused dependency

* feat: Remove `BatchNoteTree` from `{Proposed,Proven}Batch`

* chore: Fix proposed batch serialization test

* chore: Untrack note in MMR

* feat: Test that nullifier witness is not required for erased notes

* chore: Improve test name
* feat: use with_entries for StorageMap

* fix: error handling

* feat: update StorageMapHasDuplicateKeys
PhilippGackstatter and others added 8 commits February 24, 2025 12:51
* feat: Allow empty proposed blocks

* feat: Use previous account/nullifier roots if block is empty

* chore: Add changelog entry

* feat: Explain why batch reference block proving is skipped

* chore: Mention chain MMR <-> chain root match requirement

* chore: Note chain MMR contains check

* feat: Align naming of `ProvenBatch::created_nullifiers`

* chore: Align naming of `ProposedBlock::created_nullifiers`

* chore: Remove duplicate code

* feat: Let `BlockNoteIndex` return error if indices out of bounds
* feat: Remove `Copy` from `BlockHeader`

* feat: Enable large types clippy lint

* chore: Remove lints for now
* feat: Pin cargo machete commit

* fix: Another attempt to fix machete
* chore: Move storage slot index error to account category

* feat: Rework tx kernel error categories

* feat: Use 0x2 prefix for all miden lib errors

* feat: Implement error categories in build.rs

* feat: Validate tx kernel error category

* feat: Add category info

* chore: Minor fixes

* chore: Add changelog entry

* feat: Add `NamedError`

* chore: Fix doc build
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.

10 participants