Skip to content

Write the storage-archival ADR #340

Description

@Otaiki1

Context

Soroban archives storage entries whose TTL lapses, and the contract's behaviour under archival differs
by entry: Circle entries are re-extended on every fund/claim; the NextCircleId instance entry
is extended on create_circle (with a comment explaining why); nullifier entries are written once and
never touched again.

The nullifier case is a security fence, so its lifetime is a security property. That analysis is
scattered across code comments and contracts/README.md and should be one document.

Where to build it

  • New file docs/adr/004-storage-archival.md, following docs/adr/001-upgradeability.md's format.
  • contracts/README.md — link it and trim the duplicated prose.
  • docs/index.md — add to the ADR list.

What to do

  • Enumerate every storage entry, its type (instance vs persistent), when its TTL is extended, and the consequence of archival.
  • Analyse the nullifier lifetime specifically, including the replay risk.
  • Record the decision and its consequences, and link the implementation issue.
  • State the operational implication: how long a circle can lie dormant and still be safe.

Acceptance criteria

  • Every storage key in DataKey appears in the ADR's table.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Stellar WaveIssues in the Stellar wave programarchitectureSystem structure & module boundariescontractsSoroban smart contract (contracts/)documentationImprovements or additions to documentation

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions