Skip to content

kurtosis idempotency / performance #14390

@sigma

Description

@sigma

This is an umbrella issue / high-level plan to get to a better state for kurtosis devnet experience.

  1. issue: contracts bundle not reproducible (PR: perf(kt-devnet): use deterministic tarballs of contract code to make fileserver runs idempotent #14365 )

    • tweak tarball to be bit-reproducible
    • put it in predictable location so kurtosis sees it as identical (kurtosis issue workaround)
  2. issue: docker images not reproducible enough

  3. issue: docker images are still slow to (re-)build (fix: reduce context size for docker images #14409)

    • make sure we dockerignore everything we can, so that nop-builds are as fast as possible (context transfer is costly)
  4. issue: flip/flopping between packages (fileserver / optimism-package) in an enclave ruins idempotency

  5. issue: changes in proofs still churns too much

    • integrate nginx server into optimism-package to cache-proxy locator by default (well, at least proxy so the URL is predictable, but a cache would be nice to make the whole system more self-contained)
    • make nginx image tunable
    • make wrapper build custom nginx, embedding proofs
      • reason: most of the “build” time is spent extracting the proofs locally from a docker image, only to put them in another. We can avoid the roundtrip by creating an nginx container pre-populated from the proofs build
      • adjust nginx config to serve these proofs on a non-proxied URL
    • tie that nginx server to the deployment of op-challenger
  6. Issue: embedding the devnet descriptor breaks idempotency (fix(devnet-sdk): allow in-place redeployment #14412)

    • purely a bug in the wrapper, re-generating a descriptor in-place fails

Final outcome (hopefully !):

  • proper incremental builds, leveraging kurtosis known dependency graph
  • docker images are bit-reproducible, so idempotent builds don’t trigger enclave churn
  • proofs build is as fast as possible (in the order of seconds, not minutes), and doesn’t trigger enclave churn beyond fileserver redeployment
  • only one package run in the devnet enclave, which makes kurtosis’ job tracking changes easier

Metadata

Metadata

Assignees

Labels

A-kt-devnetArea: kurtosis devnetM-needs-triageMeta: this issue needs to be labelledT-platformsTeam: Platforms

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions