Skip to content

feat(op-devstack): add AltDA sysgo support with e2e test#338

Open
fakedev9999 wants to merge 4 commits intovalidium-supportfrom
fakedev9999/altda-sysgo
Open

feat(op-devstack): add AltDA sysgo support with e2e test#338
fakedev9999 wants to merge 4 commits intovalidium-supportfrom
fakedev9999/altda-sysgo

Conversation

@fakedev9999
Copy link
Member

Summary

  • Adds WithAltDA() sysgo option that starts an in-memory DA server and configures the batcher + op-node for AltDA mode with GenericCommitment (no on-chain challenge contract needed)
  • Extends L2CLConfig with AltDA and RollupAltDAConfig fields so the rollup AltDA config is applied inside op-node's own AfterDeploy hook
  • Includes an e2e test that verifies the full AltDA pipeline: safe head advances and L1 batch transactions contain commitments (versionByte=0x01), not raw batch data

Files changed

File Change
op-devstack/sysgo/da_server.go NewWithAltDA() option: starts DA server, configures batcher + op-node
op-devstack/sysgo/l2_cl.go Add AltDA and RollupAltDAConfig fields to L2CLConfig
op-devstack/sysgo/l2_cl_opnode.go Apply cfg.AltDA to op-node config; override rollup AltDAConfig when set
op-acceptance-tests/tests/altda/init_test.go New — custom minimal system without challenger
op-acceptance-tests/tests/altda/altda_test.go New — e2e test verifying AltDA pipeline

Test plan

  • go build ./op-devstack/sysgo/... compiles cleanly
  • go build ./op-acceptance-tests/tests/altda/... compiles cleanly
  • DEVSTACK_ORCHESTRATOR=sysgo go test -v -count=1 -timeout 120s ./op-acceptance-tests/tests/altda/ passes
  • Test verifies safe head advances (localSafeL2=5) — proves full derivation pipeline works through DA server
  • Test verifies all 3 L1 batcher transactions have versionByte=1 and dataLen=9 (commitment data, not raw batch)

Add WithAltDA() option to sysgo orchestrator that starts an in-memory
DA server and configures batcher + op-node for AltDA mode with
GenericCommitment (no on-chain challenge contract needed).

Changes:
- New da_server.go: WithAltDA() starts DA server during Deploy phase,
  appends batcher and L2CL options for AltDA configuration
- l2_cl.go: Add AltDA and RollupAltDAConfig fields to L2CLConfig
- l2_cl_opnode.go: Apply cfg.AltDA to op-node config; override
  rollup AltDAConfig when RollupAltDAConfig is set
- New altda e2e test: verifies safe head advances and L1 batch txs
  contain commitments (version 0x01), not raw batch data
The op-succinct validity proposer runs as a subprocess and needs the
DA server URL to fetch batch data during AltDA proof generation.
Set ALTDA_SERVER_URL in the process environment so it's inherited
by spawned subprocesses.
The deploy-oracle step must compile fetch-l2oo-config with the same
Cargo features as the proposer binary. Otherwise the vkey commitment
derived from the standard range ELF won't match the AltDA range ELF
used by the proposer, causing a startup validation failure.

Add Features field to L2OOConfigs and WithL2OOFeatures option, and
pass features through to `just deploy-oracle <env> <features>`.
The Rust AltDA data source only supports Keccak256 commitments (type
0x00) which are self-verifying inside the zkVM proof. Switch the DA
server and rollup config from Generic (0x01) to Keccak256 mode.

A dummy DAChallengeAddress is set to satisfy rollup config validation;
the challenge contract is never used in e2e tests.
@fakedev9999 fakedev9999 changed the base branch from op-succinct-sysgo to validium-support March 11, 2026 22:56
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.

1 participant