Skip to content

Follow-up (#3293): stamp expiry on genesis mock sentinels and drop node mock-identity fallback #3786

Description

@barakeinav1

Background

Follow-up to #3293 / #3785. Two loose ends remain after making mock attestations cleanable:

  1. The genesis sentinel path TeeState::with_mocked_participant_attestations (used by init / init_running, crates/contract/src/tee/tee_state.rs) still stores non-expiring MockAttestation::Valid. fix(contract): make mock attestations cleanable via expiry #3785 stamps an expiry on submitted mocks and migrates existing stored entries, but a fresh init can still create a mock that never expires and can never be cleaned up. Stamping these too changes the Figure out a good way to initialize the contract with attestations enforced for hard launch #1087 placeholder semantics (a participant that never submits a real attestation would auto-expire), which is why it was deferred.
  2. Because a no-expiry mock can still exist, the node keeps a backward-compat fallback in submitted_attestation_landed (crates/node/src/indexer/tx_sender.rs): a mock with no stored expiry is matched by identity instead of the expiry-changed heuristic. Once every stored mock carries an expiry, that None arm is dead code and the mock case collapses into the same heuristic Dstack uses.

Acceptance Criteria

Resources & Additional Notes

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions