Files
logos-execution-zone/lez/programs
Marvin Jones 6ed4ad8957 feat(lee): remove public_pre_states from privacy-preserving circuit output
Public accounts' pre-transaction values no longer need to be part of the
circuit's proven public output. Materialization already replays
public_diffs against live sequencer state, never the witnessed
pre-state, and proof-internal consistency has nothing left to check
once the field isn't part of the output at all. Duplicate/inconsistent
witnessing was already structurally impossible via the circuit's own
post_states tracking, independent of whether pre_state was exported, so
no new in-circuit assertion is needed to compensate.

Drop the field from PrivacyPreservingCircuitOutput and Message;
reimplement Message::public_account_ids() from deduped public_diffs
account ids. Update every downstream mirror (indexer protocol/FFI,
explorer UI, mock service) to the same id-only shape, and rebuild the
guest ELF, program artifacts, and prebuilt sequencer fixture to match
the changed journal layout.
2026-08-22 11:41:07 -04:00
..

Programs

This crate serves two purposes at once:

  1. Provide one entrypoint for cargo risczero build to build guest binaries used in LEZ in one shot.
  2. Provide access to the built binaries wrapped with Program type.

Binaries

This crate contains binaries taken from sub-directories: one per each program. This binaries are meant to be compiled with cargo risczero build. No other use is intended for them.

Library

You may import this crate as a library but it will only make sense if you enable artifacts feature flag. Enabling this flag will make crate expect that binaries where already built and put in the right place (use just build-artifacts for that).

Why not just risc0_build::embed_methods() ?

Because this will either provide non-deterministic guest build or requires Docker. And forcing to use Docker to build the project is not an option for us especially because we also build Docker images for our services, which would mean we would have to call docker from docker (and this is not really feasible).

risc0_build::embed_methods() works well when you don't need deterministic build or Docker is not a problem. This is the case for our tests and we use it there.