Skip to content

M3.10b: the version-six execution model and its recorded transition trace #153

Description

@kaikisegfault

Rebound from economy-transition-v5 to economy-transition-v6, which merged in #170. The contract the direction does not supersede now exists, so this is unblocked against a settled target.

Why this comes before the C++ codec

The repository's own lesson rather than a preference. M3.9a implemented a version-four codec and M3.9b found that two implementations agreed perfectly about a message neither could construct, because a codec never asks where a transaction gets its arguments. The execution model is the first step that runs a transition, and version six has more transitions with more state behind them than any predecessor.

What it must exercise

  1. The recovery path end to end. A person with an identity, no signer, and an escrow that holds value assigns a new signer under scheme 2, pays the fee from that escrow, and then transacts with the new key. That is the path version four disabled and version five could not fund.
  2. Registration as one atomic execution. Identity, escrow zero, first signer, and the entry airdrop, with a fee-exempt envelope and a zero nonce — and the same registration past the millionth identity, which must still succeed with a zero balance.
  3. A transfer refused for its recipient, immediately after the accepted version-one bytes are admitted, so the byte identity and the execution divergence appear in one trace.
  4. Both directions of a posture change, including a mixed change that tightens one field and relaxes another and therefore needs the HUB signature.
  5. A block that commits a root. Everything recorded so far establishes that values encode, not that a block executes, charges a fee, and commits.

Then

M3.10c: the C++20 kernel codec for version six, which is requirement 10. Replace src/v4/ rather than adding src/v6/ beside it, and record the decision either way — the codec is the only place in the repository where a superseded contract would still be compiled.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions