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

[WIP] EigenDA implementation, zk script version #266

Closed
wants to merge 24 commits into from

Commits on Sep 9, 2024

  1. initial commit

    juan518munoz committed Sep 9, 2024
    Configuration menu
    Copy the full SHA
    d173f13 View commit details
    Browse the repository at this point in the history

Commits on Sep 11, 2024

  1. toml path changes

    juan518munoz committed Sep 11, 2024
    Configuration menu
    Copy the full SHA
    1d3a17a View commit details
    Browse the repository at this point in the history

Commits on Sep 13, 2024

  1. Hyperchain da removal (#259)

    * fix(tee-prover): passthrough env vars to the SGX enclave (matter-labs#2824)
    
    ## What ❔
    
    Passthrough env vars to the SGX enclave.
    
    Relevant logs showcasing the issue:
    https://grafana.matterlabs.dev/goto/1iFHMIeIg?orgId=1
    
    ## Why ❔
    
    To fix the bug.
    
    ## Checklist
    
    - [x] PR title corresponds to the body of PR (we generate changelog
    entries from PRs).
    - [ ] Tests for the changes have been added / updated.
    - [ ] Documentation comments have been added / updated.
    - [x] Code has been formatted via `zk fmt` and `zk lint`.
    
    * feat(zk_toolbox): Add setup keys step to prover init (matter-labs#2811)
    
    ## What ❔
    Add setup keys step to prover init
    
    * feat(zk_toolbox): Allow running docker images for provers (matter-labs#2800)
    
    ## What ❔
    
    Add `--docker` flag for `zk_inception prover run` which will allow
    prover components to run from docker images.
    
    ## Why ❔
    
    To decrease setup time/improve UX
    
    ## Checklist
    
    <!-- Check your PR fulfills the following items. -->
    <!-- For draft PRs check the boxes as you complete them. -->
    
    - [ ] PR title corresponds to the body of PR (we generate changelog
    entries from PRs).
    - [ ] Tests for the changes have been added / updated.
    - [ ] Documentation comments have been added / updated.
    - [ ] Code has been formatted via `zk fmt` and `zk lint`.
    
    * chore: Add README for verified sources fetcher (matter-labs#2829)
    
    ## What ❔
    
    Adds README for verified sources fetcher
    
    ## Checklist
    
    <!-- Check your PR fulfills the following items. -->
    <!-- For draft PRs check the boxes as you complete them. -->
    
    - [ ] PR title corresponds to the body of PR (we generate changelog
    entries from PRs).
    - [ ] Tests for the changes have been added / updated.
    - [ ] Documentation comments have been added / updated.
    - [ ] Code has been formatted via `zk fmt` and `zk lint`.
    
    * chore(ci): Limit tokio/rayon pools for zk_toolbox CI (matter-labs#2828)
    
    ## What ❔
    
    Limits rayon threadpool size to 2 and tokio threadpool size to 4 in
    zk_toolbox CI.
    I have checked locally, and with this configuration time to run
    integration tests is pretty close to the default configuration.
    
    ## Why ❔
    
    By default, both tokio and rayon will try to use all the CPUs. When we
    run multiple Rust binaries at the same time (3 servers and 3 ENs in our
    case), it causes a lot of conflict for resources, regardless of the
    number of CPUs.
    
    * feat: attester committees data extractor (BFT-434) (matter-labs#2684)
    
    Extraction of the attester committee from consensus registry state. If
    consensus registry address is not specified, we fall back to attester
    committee from genesis. This pr does NOT enable the dynamic attestation,
    as the registry address needs to be added to the main node config first.
    
    ---------
    
    Co-authored-by: Moshe Shababo <[email protected]>
    Co-authored-by: Igor Aleksanov <[email protected]>
    
    * test: Improve revert integration test (matter-labs#2822)
    
    ## What ❔
    
    - Removes a data race from the revert integration test (a single node
    one); a batch gets executed after it is verified that not all batches
    are executed.
    - Removes copy-paste between single-node and EN tests.
    - Structures revert tests into smaller steps.
    
    ## Why ❔
    
    Makes the test less flaky and easier to maintain.
    
    ## Checklist
    
    - [x] PR title corresponds to the body of PR (we generate changelog
    entries from PRs).
    - [x] Tests for the changes have been added / updated.
    - [x] Documentation comments have been added / updated.
    - [x] Code has been formatted via `zk fmt` and `zk lint`.
    
    * test: Fix "missing revert data" error; fix / debug integration tests (matter-labs#2804)
    
    ## What ❔
    
    - Fixes the "missing revert data" error by updating the used reth Docker
    image. The error is probably caused by [this
    issue](paradigmxyz/reth#7381) fixed in the new
    reth versions.
    - Removes "web3 API compatibility tests › Should check API returns error
    when there are too many logs in eth_getLogs" test as fundamentally flaky
    and able to poison other tests.
    - Adds logging for upgrade test to investigate L1 "nonce too low"
    errors.
    
    ## Why ❔
    
    Flaky CI bad.
    
    ## Checklist
    
    - [x] PR title corresponds to the body of PR (we generate changelog
    entries from PRs).
    - [x] Tests for the changes have been added / updated.
    - [x] Code has been formatted via `zk fmt` and `zk lint`.
    
    * refactor(api): Extract oneshot VM executor to executor crate (matter-labs#2806)
    
    ## What ❔
    
    Extracts oneshot VM executor to the executor crate.
    
    ## Why ❔
    
    To make executor logic more reusable and maintainable.
    
    ## Checklist
    
    - [x] PR title corresponds to the body of PR (we generate changelog
    entries from PRs).
    - [x] Tests for the changes have been added / updated.
    - [x] Documentation comments have been added / updated.
    - [x] Code has been formatted via `zk fmt` and `zk lint`.
    
    * fix(en): Fix connection starvation during snapshot recovery (matter-labs#2836)
    
    ## What ❔
    
    - Fixes DB connection starvation during snapshot recovery. Caused by the
    insufficient number of connections in the DB pool provided to recovery
    logic.
    - Additionally, fixes max concurrency of recovery not being set.
    
    ## Why ❔
    
    Connection starvation errors degrade UX.
    
    ## Checklist
    
    - [x] PR title corresponds to the body of PR (we generate changelog
    entries from PRs).
    - [x] Tests for the changes have been added / updated.
    - [x] Documentation comments have been added / updated.
    - [x] Code has been formatted via `zk fmt` and `zk lint`.
    
    * fix: handling of HTTP 403 thrown by proxyd (matter-labs#2835)
    
    When a method is missing:
    proxyd returns HTTP 403:  methodnotfound
    while api server returns HTTP 200: methodnotfound
    
    we need to handle both.
    
    * chore: log the whole error message when the task fails (matter-labs#2834)
    
    "{err}" is not useful, because it truncates the stack trace of anyhow
    errors.
    
    * feat: allow specifying what tests to run with zks (matter-labs#2841)
    
    `zks t i` now accepts a `-t` flag that can can be used to specify a
    pattern. Only matching tests are run.
    
    * chore: clean up dependencies (matter-labs#2839)
    
    ## What ❔
    
    Resolves matter-labs#2783
    
    ## Checklist
    
    <!-- Check your PR fulfills the following items. -->
    <!-- For draft PRs check the boxes as you complete them. -->
    
    - [ ] PR title corresponds to the body of PR (we generate changelog
    entries from PRs).
    - [ ] Tests for the changes have been added / updated.
    - [ ] Documentation comments have been added / updated.
    - [ ] Code has been formatted via `zk fmt` and `zk lint`.
    
    * feat(utils): Rework locate_workspace, introduce Workspace type (matter-labs#2830)
    
    ## What
    
    - Removes `locate_workspace` and `workspace_dir_or_current_dir` methods.
    - Instead, introduces `Workspace` type that is aware of different Cargo
    workspaces in the codebase.
    
    ## Why
    
    The approach with a single `locate_workspace` doesn't work well for our
    codebase, since we have multiple workspaces. It resulted in some very
    implicit and convoluted code (see the removed `get_base_dir` in prover
    workspace).
    
    New approach handles all 3 workspaces _plus_ the lack of a workspace.
    
    * feat(zk_toolbox):  `zk_supervisor prover` subcommand (matter-labs#2820)
    
    ## What ❔
    
    Add prover subcommand for `zk_supervisor`. Add the following subcommand:
    * `zk_supervisor prover info` - Prints information about current prover
    setup.
    * `zk_supervisor prover insert-version` - Insert new protocol version in
    prover database(integration with `prover_cli`).
    * `zk_supervisor prover insert-batch` - Insert new batch in prover
    database(integration with `prover_cli`).
    
    Add automatic creation of `prover/artifacts/witness_inputs` dirs if the
    storage is file backed on init.
    
    ## Why ❔
    
    To improve UX of working with provers.
    
    ## Checklist
    
    <!-- Check your PR fulfills the following items. -->
    <!-- For draft PRs check the boxes as you complete them. -->
    
    - [ ] PR title corresponds to the body of PR (we generate changelog
    entries from PRs).
    - [ ] Tests for the changes have been added / updated.
    - [ ] Documentation comments have been added / updated.
    - [ ] Code has been formatted via `zk fmt` and `zk lint`.
    
    * fix(zk-toolbox): Make token multiplier optional (matter-labs#2843)
    
    ## What ❔
    
    <!-- What are the changes this PR brings about? -->
    <!-- Example: This PR adds a PR template to the repo. -->
    <!-- (For bigger PRs adding more context is appreciated) -->
    
    ## Why ❔
    
    <!-- Why are these changes done? What goal do they contribute to? What
    are the principles behind them? -->
    <!-- Example: PR templates ensure PR reviewers, observers, and future
    iterators are in context about the evolution of repos. -->
    
    ## Checklist
    
    <!-- Check your PR fulfills the following items. -->
    <!-- For draft PRs check the boxes as you complete them. -->
    
    - [ ] PR title corresponds to the body of PR (we generate changelog
    entries from PRs).
    - [ ] Tests for the changes have been added / updated.
    - [ ] Documentation comments have been added / updated.
    - [ ] Code has been formatted via `zk fmt` and `zk lint`.
    
    Signed-off-by: Danil <[email protected]>
    
    * feat: Smaller zk_environment image (matter-labs#1920)
    
    ## What ❔
    
    * Reduced uncompressed size from 7.5GB to 4.81 GB.
    * Changes to make zk_environment image smaller
    * compile solc with release mode
    * remove unnecessary components from google cli
    * build things first, and then only copy the artifacts.
    
    ## Why ❔
    
    * This image is used on ALL of our CI builds - so reducing its size will
    speed up the CIs.
    
    * fix(zk_toolbox): secrets path, artifacts path (matter-labs#2850)
    
    ## What ❔
    
    Fix getting chain config in zk_supervisor prover
    Fix artifacts path when initializing.
    Setup data path for provers
    
    ## Why ❔
    
    <!-- Why are these changes done? What goal do they contribute to? What
    are the principles behind them? -->
    <!-- Example: PR templates ensure PR reviewers, observers, and future
    iterators are in context about the evolution of repos. -->
    
    ## Checklist
    
    <!-- Check your PR fulfills the following items. -->
    <!-- For draft PRs check the boxes as you complete them. -->
    
    - [ ] PR title corresponds to the body of PR (we generate changelog
    entries from PRs).
    - [ ] Tests for the changes have been added / updated.
    - [ ] Documentation comments have been added / updated.
    - [ ] Code has been formatted via `zk fmt` and `zk lint`.
    
    * ci: fix using cargo nextest (matter-labs#2855)
    
    ## What ❔
    
    `cargo install --list` doesn't work properly in CI because we copy only
    binaries to zk-environment
    also increase reth block-time and fixes upgrade-test which improves
    tests stability
    
    ## Why ❔
    
    we rely on cargo-nextest in tests
    
    ## Checklist
    
    <!-- Check your PR fulfills the following items. -->
    <!-- For draft PRs check the boxes as you complete them. -->
    
    - [ ] PR title corresponds to the body of PR (we generate changelog
    entries from PRs).
    - [ ] Tests for the changes have been added / updated.
    - [ ] Documentation comments have been added / updated.
    - [ ] Code has been formatted via `zk fmt` and `zk lint`.
    
    * feat: add da clients (matter-labs#2743)
    
    ## What ❔
    
    This PR changes the approach to managing 3rd party DA clients. It was
    assumed before that they will be stored in a separate repository
    (hyperchain-da), but to simplify the processes and solve a recursive
    dependency problem, we decided to manage those within `zksync-era`.
    
    The config now defines which DA client will be used, for proto-based
    configuration it requires adding these lines to general.yaml:
    ```
    da_client:
      avail:
        api_node_url: wss://turing-rpc.avail.so/ws
        bridge_api_url: undefined
        seed: SEED_PHRASE
        app_id: 82
        timeout: 3
        max_retries: 5
    ``` 
    for env-based:
    ```
        DA_CLIENT="Avail"
        DA_API_NODE_URL="localhost:12345"
        DA_BRIDGE_API_URL="localhost:54321"
        DA_SEED="SEED_PHRASE"
        DA_APP_ID=1
        DA_TIMEOUT=2
        DA_MAX_RETRIES=3
    ```
    If no config is provided - the default behavior is to use NoDA client
    (same as now).
    
    The `da_client` config might be merged with `da_dispatcher` at some
    point as the second depends on the first one, so their separation does
    not make much sense (apart from simplification of the configs). But I'd
    prefer to do it as a separate PR in case we decide to merge them.
    
    The client was reimplemented using only lightweight libraries from
    crates.io, so it doesn't have any visible impact on build time.
    
    ## Why ❔
    
    To enable seamless integration with 3rd party DA clients in
    `zksync-era`.
    
    ## Checklist
    
    <!-- Check your PR fulfills the following items. -->
    <!-- For draft PRs check the boxes as you complete them. -->
    
    - [ ] PR title corresponds to the body of PR (we generate changelog
    entries from PRs).
    - [ ] Tests for the changes have been added / updated.
    - [ ] Documentation comments have been added / updated.
    - [ ] Code has been formatted via `zk fmt` and `zk lint`.
    
    * feat(zk_toolbox): deploy legacy bridge (matter-labs#2837)
    
    ## What ❔
    
    Support legacy bridges in zk toolbox 
    
    ## Why ❔
    
    We still have some legacy bridges in production, so we have to have an
    opportunity to test it
    
    ## Checklist
    
    <!-- Check your PR fulfills the following items. -->
    <!-- For draft PRs check the boxes as you complete them. -->
    
    - [ ] PR title corresponds to the body of PR (we generate changelog
    entries from PRs).
    - [ ] Tests for the changes have been added / updated.
    - [ ] Documentation comments have been added / updated.
    - [ ] Code has been formatted via `zk fmt` and `zk lint`.
    
    ---------
    
    Signed-off-by: Danil <[email protected]>
    
    * feat(zk_toolbox): Add external_node consensus support (matter-labs#2821)
    
    ## What ❔
    Add external_node consensus support
    
    ---------
    
    Signed-off-by: Danil <[email protected]>
    Co-authored-by: Danil <[email protected]>
    
    * feat: Selector generator tool (matter-labs#2844)
    
    ## What ❔
    
    * A small tool to generate the selector hashes based on the ABI from
    json files
    
    ## Why ❔
    
    * The output json can be useful for humans to better understand some of
    the errors (and calldata)
    * It can also be read by our tools, to make the debugging easier.
    
    In the future, we could call this tool regularly on each contracts
    version change, but for now it can stay as manual.
    
    * feat(prover): Optimize setup keys loading (matter-labs#2847)
    
    ## What ❔
    
    - Loads setup keys to memory in parallel (for GPU prover only).
    - Refactors a bunch of related code for simplicity.
    
    ## Why ❔
    
    - Locally I've observed load time going from ~30s to ~12s, so ~60%
    improvement for prover start time.
    - Readability & maintainability.
    
    ## Checklist
    
    <!-- Check your PR fulfills the following items. -->
    <!-- For draft PRs check the boxes as you complete them. -->
    
    - [ ] PR title corresponds to the body of PR (we generate changelog
    entries from PRs).
    - [ ] Tests for the changes have been added / updated.
    - [ ] Documentation comments have been added / updated.
    - [ ] Code has been formatted via `zk fmt` and `zk lint`.
    
    * feat: Bump crypto and protocol deps (matter-labs#2825)
    
    ## What ❔
    
    - Use latest versions of crypto, protocol, gpu, and consensus crates.
    - Remove solved cargo deny advisories from the allowlist.
    
    ## Why ❔
    
    - A bunch of fixes/improvements were done.
    - Optimization of dependency graph.
    - Solving cargo deny advisories.
    
    * feat(prover): Refactor WitnessGenerator (matter-labs#2845)
    
    ## What ❔
    
    Introduce new structure for witness generators.
    Introduce `ArtifactsManager` trait responsible for operations with
    object store and artifacts.
    
    ## Why ❔
    
    <!-- Why are these changes done? What goal do they contribute to? What
    are the principles behind them? -->
    <!-- Example: PR templates ensure PR reviewers, observers, and future
    iterators are in context about the evolution of repos. -->
    
    ## Checklist
    
    <!-- Check your PR fulfills the following items. -->
    <!-- For draft PRs check the boxes as you complete them. -->
    
    - [ ] PR title corresponds to the body of PR (we generate changelog
    entries from PRs).
    - [ ] Tests for the changes have been added / updated.
    - [ ] Documentation comments have been added / updated.
    - [ ] Code has been formatted via `zk fmt` and `zk lint`.
    
    * Move hyperchain-da to zksync-era
    
    * Uncomment validium config checks
    
    ---------
    
    Signed-off-by: Danil <[email protected]>
    Co-authored-by: Patrick <[email protected]>
    Co-authored-by: Matías Ignacio González <[email protected]>
    Co-authored-by: Artem Fomiuk <[email protected]>
    Co-authored-by: perekopskiy <[email protected]>
    Co-authored-by: Igor Aleksanov <[email protected]>
    Co-authored-by: Grzegorz Prusak <[email protected]>
    Co-authored-by: Moshe Shababo <[email protected]>
    Co-authored-by: Alex Ostrovski <[email protected]>
    Co-authored-by: Joonatan Saarhelo <[email protected]>
    Co-authored-by: Danil <[email protected]>
    Co-authored-by: Marcin M <[email protected]>
    Co-authored-by: Dima Zhornyk <[email protected]>
    13 people authored Sep 13, 2024
    Configuration menu
    Copy the full SHA
    824fa98 View commit details
    Browse the repository at this point in the history
  2. Add eigenDA proxy to docker (#258)

    * Add proxy to docker
    
    * Add api_node_url to toml initialization
    
    * Add eigenda flag to zk server
    
    * Revert "Add eigenda flag to zk server"
    
    This reverts commit 081cff6.
    
    * Update submodule
    gianbelinche authored Sep 13, 2024
    Configuration menu
    Copy the full SHA
    69ea100 View commit details
    Browse the repository at this point in the history
  3. fix(zksync_tee_prover): strip binary for nix package (matter-labs#2876)

    ## What ❔
    
    Strip `zksync_tee_prover` binary for nix package.
    
    ## Why ❔
    
    Somehow llvm decided to produce different symbol names each build
    
    ```diff
    - 12916: 000000000194d628    48 OBJECT  LOCAL  HIDDEN    23 anon.c880a573512c356e53163839ee7cd669.742.llvm.17979232152659092167
    + 12916: 000000000194d628    48 OBJECT  LOCAL  HIDDEN    23 anon.c880a573512c356e53163839ee7cd669.742.llvm.14235143304249741099
    [...]
    ```
    
    Remove those to make the builds reproducible again.
    
    ## Checklist
    
    <!-- Check your PR fulfills the following items. -->
    <!-- For draft PRs check the boxes as you complete them. -->
    
    - [x] PR title corresponds to the body of PR (we generate changelog
    entries from PRs).
    - [ ] Tests for the changes have been added / updated.
    - [ ] Documentation comments have been added / updated.
    - [ ] Code has been formatted via `zk fmt` and `zk lint`.
    
    Signed-off-by: Harald Hoyer <[email protected]>
    haraldh authored Sep 13, 2024
    Configuration menu
    Copy the full SHA
    b894039 View commit details
    Browse the repository at this point in the history

Commits on Sep 16, 2024

  1. fix(eth_watch): fix get_events_inner (matter-labs#2882)

    ## What ❔
    
    - `get_events_inner` should recursively call itself
    - `get_events_inner` should allow passing `None` as topics and/or
    addresses
    
    ## Why ❔
    
    bug fix
    
    ## Checklist
    
    <!-- Check your PR fulfills the following items. -->
    <!-- For draft PRs check the boxes as you complete them. -->
    
    - [ ] PR title corresponds to the body of PR (we generate changelog
    entries from PRs).
    - [ ] Tests for the changes have been added / updated.
    - [ ] Documentation comments have been added / updated.
    - [ ] Code has been formatted via `zk fmt` and `zk lint`.
    perekopskiy authored Sep 16, 2024
    Configuration menu
    Copy the full SHA
    c957dd8 View commit details
    Browse the repository at this point in the history
  2. refactor(vm-runner): Improve VM runner / VM playground (matter-labs#2840

    )
    
    ## What ❔
    
    Various minor improvements to VM runner / VM playground:
    
    - Get batch storage asynchronously, so that it works efficiently with
    snapshot storage.
    - Add metrics / logs to ensure that snapshot storage works as expected.
    
    ## Why ❔
    
    Improves usability.
    
    ## Checklist
    
    - [x] PR title corresponds to the body of PR (we generate changelog
    entries from PRs).
    - [x] Tests for the changes have been added / updated.
    - [x] Documentation comments have been added / updated.
    - [x] Code has been formatted via `zk fmt` and `zk lint`.
    slowli authored Sep 16, 2024
    Configuration menu
    Copy the full SHA
    9ab7200 View commit details
    Browse the repository at this point in the history
  3. fix(zk_toolbox): increase confirmations in testing (matter-labs#2878)

    ## What ❔
    
    <!-- What are the changes this PR brings about? -->
    <!-- Example: This PR adds a PR template to the repo. -->
    <!-- (For bigger PRs adding more context is appreciated) -->
    Increase confirmations in testing.
    
    ## Why ❔
    
    <!-- Why are these changes done? What goal do they contribute to? What
    are the principles behind them? -->
    <!-- Example: PR templates ensure PR reviewers, observers, and future
    iterators are in context about the evolution of repos. -->
    Should make CI workflows less flaky.
    
    ## Checklist
    
    <!-- Check your PR fulfills the following items. -->
    <!-- For draft PRs check the boxes as you complete them. -->
    
    - [x] PR title corresponds to the body of PR (we generate changelog
    entries from PRs).
    - [x] Tests for the changes have been added / updated.
    - [x] Documentation comments have been added / updated.
    - [x] Code has been formatted via `zk fmt` and `zk lint`.
    manuelmauro authored Sep 16, 2024
    Configuration menu
    Copy the full SHA
    f985e41 View commit details
    Browse the repository at this point in the history
  4. feat(zk_toolbox): Verbose version message (matter-labs#2884)

    Modifies the version message to include stuff like git commit, branch,
    build timestamp, and submodules versions (non-recursive).
    Sample output:
    
    ```
    $ zki --version
    zk_inception v0.1.0-c03229138
    Branch: popzxc-version-with-git-commit
    Submodules:
      - contracts: 3a1b5d4b94ffb00f03d436a7db7e48589eb74d39
    Build timestamp: 2024-09-16 12:07:09
    ```
    popzxc authored Sep 16, 2024
    Configuration menu
    Copy the full SHA
    438c820 View commit details
    Browse the repository at this point in the history
  5. feat(en): Resume incomplete snapshot in snapshot creator in more cases (

    matter-labs#2886)
    
    ## What ❔
    
    Resumes an incomplete snapshot in the snapshot creator if the creator
    config doesn't specify an L1 batch.
    
    ## Why ❔
    
    This effectively reverts the relevant changes from
    matter-labs#2256. It makes the
    snapshot creator resilient by default without additional setup, at the
    cost of parallel creator jobs working incorrectly (unless they all
    specify L1 batches).
    
    ## Checklist
    
    - [x] PR title corresponds to the body of PR (we generate changelog
    entries from PRs).
    - [x] Tests for the changes have been added / updated.
    - [x] Code has been formatted via `zk fmt` and `zk lint`.
    slowli authored Sep 16, 2024
    Configuration menu
    Copy the full SHA
    f095b4a View commit details
    Browse the repository at this point in the history
  6. feat(build-base): Add sccache to build-base Dockerfile (matter-labs#2889

    )
    
    ## What ❔
    
    Adding installation of sccache to build-base Dockerfile
    
    ## Why ❔
    
    To speed-up docker builds 
    
    ## Checklist
    
    <!-- Check your PR fulfills the following items. -->
    <!-- For draft PRs check the boxes as you complete them. -->
    
    - [x] PR title corresponds to the body of PR (we generate changelog
    entries from PRs).
    - [ ] Tests for the changes have been added / updated.
    - [ ] Documentation comments have been added / updated.
    - [ ] Code has been formatted via `zk fmt` and `zk lint`.
    artmakh authored Sep 16, 2024
    Configuration menu
    Copy the full SHA
    af614fe View commit details
    Browse the repository at this point in the history
  7. refactor(selector-generator): Polish the code (matter-labs#2888)

    ## What ❔
    
    - Changes procedural approach to more idiomatic for rust (introduces
    `Selectors` + `App` structures). `Selectors` are not FS aware, `App` is.
    - Introduces more strong typing -- when both selectors and function
    names are `String`, it's easy to misuse them (I did several times, while
    working on this PR).
    - Removes manual selector calculation and uses `ethabi` for that.
    - Makes the code async.
    - Adds docs for CLI (e.g. to see with `--help` argument).
    - Adds a test for `Selectors`.
    - Reduces number of panics and uses `anyhow` to propagate errors.
    - Adds new selectors (I guess I have more contracts compiled locally).
    
    ## Why ❔
    
    Maintainability and testability, mostly. With the refactoring, it should
    be easier to add new functionality and tests for it.
    Also, the runtime has improved.
    
    Before
    
    ```
    $ time cargo run --bin selector_generator -- contracts etc/selector-generator-data/selectors.json
       Compiling selector_generator v0.1.0 (/home/popzxc/workspace/current/zksync-era/core/bin/selector_generator)
        Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.54s
         Running `target/debug/selector_generator contracts etc/selector-generator-data/selectors.json`
    Analyzed 401 files. Added 452 selectors (before: 516 after: 968)
    cargo run --bin selector_generator -- contracts   4.48s user 7.02s system 100% cpu 11.486 total
    ```
    
    After
    
    ```
    $ time cargo run --bin selector_generator -- contracts etc/selector-generator-data/selectors.json
        Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.20s
         Running `target/debug/selector_generator contracts etc/selector-generator-data/selectors.json`
    Analyzed 1087 files. Added 0 selectors (before: 1023 after: 1023)
    cargo run --bin selector_generator -- contracts   1.24s user 0.12s system 100% cpu 1.360 total
    ```
    
    ## Next steps
    
    I would love to see `--check` mode introduced (which checks that 0 new
    entries were added) and this tool is added to CI, so that we continously
    run it and prevent from rotting. @mm-zk leaving it to you.
    popzxc authored Sep 16, 2024
    Configuration menu
    Copy the full SHA
    9d40704 View commit details
    Browse the repository at this point in the history
  8. feat(zk_toolbox): add zki ecosystem build subcommand (matter-labs#2787

    )
    
    ## What ❔
    
    <!-- What are the changes this PR brings about? -->
    <!-- Example: This PR adds a PR template to the repo. -->
    <!-- (For bigger PRs adding more context is appreciated) -->
    Add `zki ecosystem build` subcommand, which builds L1 transactions
    without signing and broadcasting them.
    This allows a security team to sign them using keys in cold storage and
    multisig.
    
    ```bash
    Create transactions to build ecosystem contracts
    
    Usage: zki ecosystem build-transactions [OPTIONS]
    
    Options:
          --sender <SENDER>
              Address of the transaction sender
    
          --l1-rpc-url <L1_RPC_URL>
              L1 RPC URL
    
      -o, --out <OUT>
              Output directory for the generated files
    
      -h, --help
              Print help (see a summary with '-h')
    ```
    
    ```bash
    Create unsigned transactions for chain deployment
    
    Usage: zki chain build-transactions [OPTIONS]
    
    Options:
      -o, --out <OUT>
              Output directory for the generated files
    
      -h, --help
              Print help (see a summary with '-h')
    ```
    
    ### Output
    ```json
    # /transactions/deploy.json
    {
      "transactions": [
        {
          "hash": null,
          "transactionType": "CREATE",
          "contractName": null,
          "contractAddress": "0xddca24376aa96d8f56667d78306a3bbbdc65b1ff",
          "function": null,
          "arguments": null,
          "transaction": {
            "from": "0xaf9d732e8a5607caccb72df525851849c33edf9e",
            "gas": "0x15a02",
            "value": "0x0",
            "input": "0x604580600e600039806000f350fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf3",
            "nonce": "0x0",
            "chainId": "0x9"
          },
          "additionalContracts": [],
          "isFixedGasLimit": false
        },
        {
          "hash": null,
          "transactionType": "CALL",
          "contractName": null,
          "contractAddress": "0xddca24376aa96d8f56667d78306a3bbbdc65b1ff",
          "function": null,
          "arguments": null,
          "transaction": {
            "from": "0xaf9d732e8a5607caccb72df525851849c33edf9e",
            "to": "0xddca24376aa96d8f56667d78306a3bbbdc65b1ff",
            "gas": "0xfb603",
            "value": "0x0",
            "input": ...
    ```
    
    
    
    ## Why ❔
    
    <!-- Why are these changes done? What goal do they contribute to? What
    are the principles behind them? -->
    <!-- Example: PR templates ensure PR reviewers, observers, and future
    iterators are in context about the evolution of repos. -->
    
    ## Checklist
    
    <!-- Check your PR fulfills the following items. -->
    <!-- For draft PRs check the boxes as you complete them. -->
    
    - [x] PR title corresponds to the body of PR (we generate changelog
    entries from PRs).
    - [x] Tests for the changes have been added / updated.
    - [x] Documentation comments have been added / updated.
    - [x] Code has been formatted via `zk fmt` and `zk lint`.
    manuelmauro authored Sep 16, 2024
    Configuration menu
    Copy the full SHA
    73c0b7c View commit details
    Browse the repository at this point in the history
  9. feat: deployment of multicall3 on L2 by zk_toolbox (matter-labs#2872)

    For complex atomic operations on consensus registry.
    Should be merged after
    matter-labs/era-contracts#805
    Tested manually by running `cargo -p zk_inception -- e init --dev`,
    which populated the multicall3 address in contract.yaml to non-zero
    value.
    pompon0 authored Sep 16, 2024
    Configuration menu
    Copy the full SHA
    6d4090f View commit details
    Browse the repository at this point in the history
  10. fix(zk_toolbox): Clone era observability (matter-labs#2892)

    ## What ❔
    
    <!-- What are the changes this PR brings about? -->
    <!-- Example: This PR adds a PR template to the repo. -->
    <!-- (For bigger PRs adding more context is appreciated) -->
    
    ## Why ❔
    
    <!-- Why are these changes done? What goal do they contribute to? What
    are the principles behind them? -->
    <!-- Example: PR templates ensure PR reviewers, observers, and future
    iterators are in context about the evolution of repos. -->
    
    ## Checklist
    
    <!-- Check your PR fulfills the following items. -->
    <!-- For draft PRs check the boxes as you complete them. -->
    
    - [ ] PR title corresponds to the body of PR (we generate changelog
    entries from PRs).
    - [ ] Tests for the changes have been added / updated.
    - [ ] Documentation comments have been added / updated.
    - [ ] Code has been formatted via `zk fmt` and `zk lint`.
    
    Signed-off-by: Danil <[email protected]>
    Deniallugo authored Sep 16, 2024
    Configuration menu
    Copy the full SHA
    413856f View commit details
    Browse the repository at this point in the history
  11. feat: updated the docker examples to generate consensus keys and use …

    …gossipnet (matter-labs#2476)
    
    Tested on a hetzner instance.
    
    ---------
    
    Co-authored-by: Bruno França <[email protected]>
    pompon0 and brunoffranca authored Sep 16, 2024
    Configuration menu
    Copy the full SHA
    beca173 View commit details
    Browse the repository at this point in the history
  12. fix: token multiplier setter is taken from chain config (matter-labs#…

    …2893)
    
    Fix `zki chain update-toen-multiplier-setter` to take the address from
    the chain config instead of the ecosystem.
    ischasny authored Sep 16, 2024
    Configuration menu
    Copy the full SHA
    f848d93 View commit details
    Browse the repository at this point in the history
  13. Dashboard metrics (#268)

    * Add observability dashboard to init
    
    * Add blob retrieval metric server
    
    * Add metrics to docker
    
    * Format code
    
    * Change yq and sponge for node modules
    
    * Change blob size to 2MB
    
    * Format code
    gianbelinche authored Sep 16, 2024
    Configuration menu
    Copy the full SHA
    3b16f66 View commit details
    Browse the repository at this point in the history

Commits on Sep 17, 2024

  1. feat: emit errors in prover API metrics (matter-labs#2890)

    ## What ❔
    
    Report reasons of failed calls in prover API metrics.
    
    ## Why ❔
    
    To have more observability
    
    ## Checklist
    
    <!-- Check your PR fulfills the following items. -->
    <!-- For draft PRs check the boxes as you complete them. -->
    
    - [ ] PR title corresponds to the body of PR (we generate changelog
    entries from PRs).
    - [ ] Tests for the changes have been added / updated.
    - [ ] Documentation comments have been added / updated.
    - [ ] Code has been formatted via `zk fmt` and `zk lint`.
    Artemka374 authored Sep 17, 2024
    Configuration menu
    Copy the full SHA
    2ac7cc5 View commit details
    Browse the repository at this point in the history
  2. ci: Deprecate zk in ci tests (matter-labs#2860)

    ## What ❔
    
    Do not use old zk tool inside our ci. Only zk docker is still in place
    will be replaced soon by DevOps team
    
    ## Why ❔
    
    We are deprecating old zk tool and now it's not needed anymore 
    
    ## Checklist
    
    <!-- Check your PR fulfills the following items. -->
    <!-- For draft PRs check the boxes as you complete them. -->
    
    - [ ] PR title corresponds to the body of PR (we generate changelog
    entries from PRs).
    - [ ] Tests for the changes have been added / updated.
    - [ ] Documentation comments have been added / updated.
    - [ ] Code has been formatted via `zk fmt` and `zk lint`.
    
    ---------
    
    Signed-off-by: Danil <[email protected]>
    Co-authored-by: perekopskiy <[email protected]>
    Deniallugo and perekopskiy authored Sep 17, 2024
    Configuration menu
    Copy the full SHA
    1baa585 View commit details
    Browse the repository at this point in the history
  3. chore: increase max_nonce_ahead (matter-labs#2896)

    ## What ❔
    
    increases max_nonce_ahead in default config
    
    ## Why ❔
    
    fix flaky test
    
    ## Checklist
    
    <!-- Check your PR fulfills the following items. -->
    <!-- For draft PRs check the boxes as you complete them. -->
    
    - [ ] PR title corresponds to the body of PR (we generate changelog
    entries from PRs).
    - [ ] Tests for the changes have been added / updated.
    - [ ] Documentation comments have been added / updated.
    - [ ] Code has been formatted via `zk fmt` and `zk lint`.
    perekopskiy authored Sep 17, 2024
    Configuration menu
    Copy the full SHA
    133d694 View commit details
    Browse the repository at this point in the history
  4. feat(zk_toolbox): Add zk_supervisor config-writer command (matter-lab…

    …s#2866)
    
    ## What ❔
    Add zk_supervisor override configs command
    
    ## Why ❔
    In some cases we want to override some default configs. Right now it is
    done manually and we need proper automation for regular use/ci.
    matias-gonz authored Sep 17, 2024
    Configuration menu
    Copy the full SHA
    80b37b2 View commit details
    Browse the repository at this point in the history
  5. fix: EigenDA retrieve blob logic (#267)

    * initial commit
    
    * remove unwraps
    juan518munoz authored Sep 17, 2024
    Configuration menu
    Copy the full SHA
    ff3eac9 View commit details
    Browse the repository at this point in the history
  6. merge branch main

    juan518munoz committed Sep 17, 2024
    Configuration menu
    Copy the full SHA
    0f5a1e9 View commit details
    Browse the repository at this point in the history