Mining epochs: per-epoch currency units and reward-triggered rotation (tracking) #13
Labels
No labels
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
vnprc/hashpool#13
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Complete hashpool's mining epoch mechanics: every epoch gets its own currency unit and keyset, and the mint closes the old epoch and opens a new one when a block reward lands at its receive address. This is the tracking issue for the milestone; the canonical design is
docs/EPOCH_DESIGN.md(PR #12), with the upstream CDK change designed indocs/pr/cdk-dynamic-payment-processors.md. Marked passages ofdocs/SETTLEMENT_DESIGN.mdare superseded by the same PR.Primary goals:
hash_<height>, named by the block height that opened the epoch; one epoch per height, ever; the mint owns epoch identity and the pool stays oblivious.Build order
Dependency spine: #15 gates #16; #16's first real rotation breaks the sweeper unless #17 lands with it; #18 turns on only once #16 and #17 hold; #14 lands first because everything is tested with it; #19 is parallel once the design doc merges.
Key decisions (recorded from the design session)
hash_<pool>_<height>— pool = full compressed pubkey, lowercase hex (anon set, self-authenticating, no truncation-grinding surface); deterministic suffix on derivation-index collisionHASH, mint stamps the current unit at quote creationBlockFounddemoted to future announce-then-verify; trigger is an abstraction so a lightning-paid upstream reward can slot in laterScope
In: the six child issues. Out (tracked by
docs/SETTLEMENT_DESIGN.mdand existing issues): settlement and redemption, old-unit expiry windows, epoch-aware wallet/UI display, authenticated quote and asset creation, pool→mint block announcement, keyset id in the coinbase, block template validation (#20) — noting that the deferred-pay hook built here is exactly where its result will plug in (pay = boundary final AND template valid).