Skip to content

primed: template budget — hold the split to the room a full template leaves - #84

Open
AwokenLazarus wants to merge 1 commit into
mainfrom
prime/template-budget
Open

AwokenLazarus wants to merge 1 commit into
mainfrom
prime/template-budget

Conversation

@AwokenLazarus

Copy link
Copy Markdown
Owner

CONVOY v0.5.0beta fits every coinbase size class to its template. When the mempool fills a block
to this chain's 800 000 weight units only the node's ~2 000-byte coinbase reserve is left and the
class keeps the first 50 or so of 100+ payees: blocks 977088, 977570, 977906, 977949, 977993 were
Partial that way (7 of 33 v0.5.0beta blocks and 65 of 179 v0.4.1-beta ones in the week to
2026-10-19), each owing the rest through a 6 480-block make-good.

template-budget = true (with class-budget-fee-wallet-reserves) sizes each reply to the payee room
the fullest template the session's shares cited in the last minute leaves, by CONVOY's own
formula (164-byte BLAKE2b header, 124+85+10 fixed bytes, pool output, 128-byte margin). The
list then fits, the block is a full split, and the rest waits in carry, under the class-budget
machinery (sessions, carry ceiling, carry_reserved_sats, counters). On the five blocks the budget
is 189-208 bytes under what CONVOY kept. template-weight-limit (default 800 000) also replaces
the 4 000 000 / 80-byte-header assumption in the class-budget room check.

Tests: workspace 242 pass, including a non-ignored e2e (a share citing a 795 664-WU template
holds the next list to 16 payees + pool; without the keys the list is whole) and unit tests on
the five real blocks. class_budget_e2e ignored test passes.

Off by default; turning it on is a prime.toml change plus a primed swap.

🤖 Generated with Claude Code

…leaves

CONVOY v0.5.0beta fits every coinbase size class to its template. When the mempool fills a block
to this chain's 800 000 weight units only the node's ~2 000-byte coinbase reserve is left and the
class keeps the first 50 or so of 100+ payees: blocks 977088, 977570, 977906, 977949, 977993 were
Partial that way (7 of 33 v0.5.0beta blocks and 65 of 179 v0.4.1-beta ones in the week to
2026-10-19), each owing the rest through a 6 480-block make-good.

template-budget = true (with class-budget-fee-wallet-reserves) sizes each reply to the payee room
the fullest template the session's shares cited in the last minute leaves, by CONVOY's own
formula (164-byte BLAKE2b header, 124+85+10 fixed bytes, pool output, 128-byte margin). The
list then fits, the block is a full split, and the rest waits in carry, under the class-budget
machinery (sessions, carry ceiling, carry_reserved_sats, counters). On the five blocks the budget
is 189-208 bytes under what CONVOY kept. template-weight-limit (default 800 000) also replaces
the 4 000 000 / 80-byte-header assumption in the class-budget room check.

Tests: workspace 242 pass, including a non-ignored e2e (a share citing a 795 664-WU template
holds the next list to 16 payees + pool; without the keys the list is whole) and unit tests on
the five real blocks. class_budget_e2e ignored test passes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.

1 participant