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

feat: forester batched ops #1357

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

Commits on Nov 19, 2024

  1. fix: add light prover client batch update and append tests

    added bloomfilter
    
    batch e2e test failing because filter change doesn't work yet
    
    debugging
    
    batched Merkle tree e2e test works with output queue
    
    fix: e2e test work with input and output queues
    
    chore: rename wipe bloomfilter -> wipe_batch
    
    refactored input queue into mt account
    
    stash
    
    test: rnd account init works
    
    chore: replace is_inserted with state
    
    chore: moved offset to bounded vec, added bounded vec init and deserialize
    
    fixed bounded vec imports
    
    refactor: partial batch zkp updates, flexible sized root history array with seq
    
    implemented batch prove and verification in rust tests untested
    
    stash: batched updates work with simulate transactions test
    
    add comment
    
    stash before account *mut
    
    onchain account init works
    
    test: account compression program batch updates work
    
    feat: add flexbile nullifier to circuit
    
    feat: implement nullifier derivation from tx hash
    
    test: batch
    
    test: bounded vec
    
    cleanup
    
    cleanup
    
    cleanup
    
    feat: add flexible nullifier to update circuit
    
    fix: e2e test
    
    chore: add full asserts to simulate tx test
    
    test: root overwrite test
    
    cleanup
    ananas-block committed Nov 19, 2024
    Configuration menu
    Copy the full SHA
    d138ebc View commit details
    Browse the repository at this point in the history
  2. refactor: update health check timeout in spawn_prover function, rewri…

    …te prove_batch_append test
    
    Change CI runner to buildjet-8vcpu-ubuntu-2204 for rust tests
    
    run rust.yml on buildjet-16vcpu-ubuntu-2204
    
    debug rust.yml workflow
    
    Add step to download proving keys for big batches
    
    Remove redundant setup steps and update test configurations
    
    Update ProverConfig to use test-specific circuits
    
    cleaning up after rebase to main
    sergeytimoshin authored and ananas-block committed Nov 19, 2024
    Configuration menu
    Copy the full SHA
    e662e6d View commit details
    Browse the repository at this point in the history
  3. fix: batch append public input computation (#1330)

    Issue:
    the batch append zkp public input LeavesHashchainHash is computed
    dynamically from the values array during the batched update.
    If the values array changes in between proof generation and transaction
    execution the batched append update fails.
    -> Users can make batched append update transactions fail.
    
    Solution:
    compute LeavesHashchainHash incrementally when the output value is
    inserted into the value array (the same way we compute it with
    nullifiers for input queue insertions).
    
    Changes:
    1. switch to updated circuits
    2. batch.rs
    - add start_index field to derive the leaf_index of values from a value
    array
    - introduce store_and_hash_value to store an output queue value and add
    it to the LeavesHashchainHash
    3. batched_queue.rs
    - init_queue initialize start_index during account initialization
    - use store_and_hash_value instead of store_value when inserting into
    output queues
    - update batch.start_index when wiping a batch
    4. batched_merkle_tree.rs
    - remove subtree field (it is not used in new batch append circuit)
    - initialize root_history with the zero_value_root
    - add hashchain store for leaves_hashchain in
    ZeroCopyBatchedMerkleTreeAccount
    - add leaf_index to nullifier hash H(value, leaf_index, tx_hash)
    
    Co-authored-by: ananas-block <[email protected]>
    sergeytimoshin and ananas-block committed Nov 19, 2024
    Configuration menu
    Copy the full SHA
    9f6bc3b View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    51f4de7 View commit details
    Browse the repository at this point in the history
  5. fix: rebase

    ananas-block committed Nov 19, 2024
    Configuration menu
    Copy the full SHA
    4b6ba17 View commit details
    Browse the repository at this point in the history

Commits on Nov 20, 2024

  1. Configuration menu
    Copy the full SHA
    fac98a2 View commit details
    Browse the repository at this point in the history
  2. refactor: remove AddressMerkleTree{Accounts,Bundle}, StateMerkleTree{…

    …Accounts, Bundle} from forester-utils
    sergeytimoshin committed Nov 20, 2024
    Configuration menu
    Copy the full SHA
    6d76228 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    5d64d55 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    157cd1e View commit details
    Browse the repository at this point in the history

Commits on Nov 22, 2024

  1. wip

    sergeytimoshin committed Nov 22, 2024
    Configuration menu
    Copy the full SHA
    04b47bc View commit details
    Browse the repository at this point in the history
  2. wip

    sergeytimoshin committed Nov 22, 2024
    Configuration menu
    Copy the full SHA
    136eb08 View commit details
    Browse the repository at this point in the history

Commits on Nov 24, 2024

  1. wip

    sergeytimoshin committed Nov 24, 2024
    Configuration menu
    Copy the full SHA
    012eb31 View commit details
    Browse the repository at this point in the history
  2. wip

    sergeytimoshin committed Nov 24, 2024
    Configuration menu
    Copy the full SHA
    8337ab7 View commit details
    Browse the repository at this point in the history