Skip to content

Accept version-one ledger transition - #9

Merged
kaikisegfault merged 1 commit into
mainfrom
protocol/6-ledger-transition-v1
Jul 23, 2026
Merged

Accept version-one ledger transition#9
kaikisegfault merged 1 commit into
mainfrom
protocol/6-ledger-transition-v1

Conversation

@kaikisegfault

Copy link
Copy Markdown
Owner

Linked work

Closes #6

Outcome

Version-one M1 genesis, native transfer, fee routing, replay/expiry handling, receipts, and ordered atomic block execution now have an accepted canonical specification, devnet parameter ADR, frozen vectors, and independent C++20/Python decision harnesses.

Scope

  • Fix nine-decimal M1 devnet units, a 10^18 atomic supply cap, default 10^17 atomic four-account genesis, 1,000 atomic transfer fee, and no post-genesis issuance.
  • Define canonical genesis and chain ID, admission order/errors, execution result order, self-transfer and recipient-creation behavior, receipts, transaction commitments, height advancement, and block atomicity.
  • Add a normative 15-input scenario with 11 admitted transactions and exact final commitments.
  • Add independent cross-language harnesses to the existing CMake/CTest matrix.

No production kernel, persistence, networking, consensus adapter, production tokenomics, or deployment is included.

Protocol and compatibility impact

ADR 0006 and ledger-transition-v1.md are consensus-visible and accepted under the standing delegation. Version-one bytes, result numbers, validation order, writes, and failure atomicity are immutable. Future fee, issuance, account-lifecycle, or receipt changes require a new version and migration evidence.

Verification

Each command passed 4/4 CTest tests:

  • PROTOCOL_STACK_PRESET=gcc-debug tools/verify.sh
  • PROTOCOL_STACK_PRESET=gcc-sanitizers tools/verify.sh
  • PROTOCOL_STACK_PRESET=clang-debug tools/verify.sh
  • PROTOCOL_STACK_PRESET=clang-sanitizers tools/verify.sh

The vector set covers success, replay, self-transfer, recipient creation, zero amount, low fee, expiry, absent sender, nonce mismatch/exhaustion, debit overflow, insufficient balance, invalid signature, wrong chain, truncation, unknown kind/unauthorized mint surface, ordered receipts, roots, header, and block ID. JSON, TOML, YAML, Python bytecode, shell syntax, Markdown links, and git diff --check also passed.

Risks and follow-up

The numerical values are M1 devnet parameters, not frozen production tokenomics. Issue #8 implements the production in-memory kernel, frozen-vector reuse, fuzz targets, invariant tests, and at least 10,000 seeded differential sequences.

Checklist

  • The change is focused and excludes unrelated workspace work.
  • Specifications and ADRs match consensus-visible behavior.
  • Negative, boundary, replay, overflow, and determinism checks were added.
  • All required verification passed in the current working state.
  • Documentation and current-state.md are accurate.
  • No AI author, committer, or co-author attribution was added.

@kaikisegfault
kaikisegfault merged commit 704493f into main Jul 23, 2026
4 checks passed
@kaikisegfault
kaikisegfault deleted the protocol/6-ledger-transition-v1 branch July 23, 2026 16:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Specify deterministic M1 ledger state transitions and devnet monetary constants

1 participant