You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## What ❔
This PR modifies the client for EigenDA, adding the option to use
EigenDA V2.
It replaces the old v1 crate `rust-eigenda-client` for the new v2 crate
`rust-eigenda-v2-client`.
It modifies the `EigenConfig` to leave only the necessary fields for v2.
It removes:
- `settlement_layer_confirmation_depth`
- `eigenda_svc_manager_address`
- `wait_for_finalization`
- `points`
- `custom_quorum_numbers`
It adds:
- `cert_verifier_router_addr`
- `blob_version`
- `polynomial_form`
- `operator_state_retriever_addr`
- `registry_coordinator_addr`
The client now uses a `PayloadDisperser` to disperse the blobs, with the
`send_payload` method.
And uses the `get_cert` method to get the inclusion data.
How to test:
```bash
zkstackup --local
```
Modify `etc/env/file_based/overrides/validium.yaml`:
```yaml
da_dispatcher:
use_dummy_inclusion_data: true
da_client:
client: Eigen
disperser_rpc: <your_disperser_rpc>
eigenda_eth_rpc: <your_eth_rpc>
authenticated: true
cert_verifier_router_addr: <your_cert_verifier_address>
operator_state_retriever_addr: <your_operator_state_retriever_addr>
registry_coordinator_addr: <your_registry_coordinator_addr>
blob_version: <your_blob_version>
polynomial_form: <your_polynomial_form> #Either coeff or eval
```
Modify `etc/env/file_based/secrets.yaml`:
```yaml
da:
client: Eigen
private_key: <your_private_key> #The private key you want to use with the eigenda disperser
```
Run replacing with your l1 rpc:
```bash
zkstack containers --observability true
zkstack chain create \
--chain-name eigenda \
--chain-id sequential \
--prover-mode no-proofs \
--wallet-creation localhost \
--l1-batch-commit-data-generator-mode validium \
--base-token-address 0x0000000000000000000000000000000000000001 \
--base-token-price-nominator 1 \
--base-token-price-denominator 1 \
--set-as-default false
zkstack ecosystem init \
--deploy-paymaster true \
--deploy-erc20 true \
--deploy-ecosystem true \
--l1-rpc-url <your_l1_rpc> \
--server-db-url=postgres://postgres:notsecurepassword@localhost:5432 \
--server-db-name=zksync_server_localhost_eigenda \
--chain eigenda \
--verbose
```
Then run
```bash
zkstack server --chain eigenda
```
<!-- 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 ❔
To support the latest version of EigenDA (V2 M0), while preserving
compatibility with the existing client (V1 M0).
<!-- Why are these changes done? What goal do they contribute to? What
are the principles behind them? -->
<!-- The `Why` has to be clear to non-Matter Labs entities running their
own ZK Chain -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->
## Is this a breaking change?
- [x] Yes
- [ ] No
## Operational changes
<!-- Any config changes? Any new flags? Any changes to any scripts? -->
<!-- Please add anything that non-Matter Labs entities running their own
ZK Chain may need to know -->
## 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 `zkstack dev fmt` and `zkstack dev
lint`.
---------
Co-authored-by: juan518munoz <[email protected]>
Co-authored-by: Juan Munoz <[email protected]>
Co-authored-by: Juan Bono <[email protected]>
0 commit comments