Files
neuron-tai/docs/archived/alpha-hardening/issues/15-h1-commutative-forfeit.md
2026-07-17 12:41:46 +03:00

1.0 KiB
Raw Permalink Blame History

Status: ready-for-human

15 — H1: Commutative forfeit event ordering (deferred)

What to build

Define deterministic ordering when forfeit, charge, and payout events replicate concurrently. Forfeit snapshots amount at creation (~287) but apply order can desync pending balances under gossip.

Code refs:

  • packages/tracker/meshnet_tracker/billing.pyforfeit_pending (~280292), _apply_locked forfeit branch (~345349)
  • packages/tracker/meshnet_tracker/billing.py_pending_since.setdefault (~324), wallet bind direct overwrite (~351)

Acceptance criteria

  • Documented commit order: charges before forfeit before payout for same wallet epoch
  • Forfeit events carry pending snapshot or (term, index) for tie-break
  • setdefault replaced with explicit merge rules on out-of-order apply
  • Property tests under shuffled event delivery

Blocked by

  • 13-c3-c4-consensus-gated-settlement.md