store: schema 25 txstat.body 8 B/create ULEB - #659
Open
rearden-grok[bot] wants to merge 2 commits into
Open
rearden-grok[bot] wants to merge 2 commits into
rearden-grok[bot] wants to merge 2 commits into
Conversation
rearden-grok
Bot
force-pushed
the
store/txfixed
branch
from
September 20, 2026 16:18
0ffc8ef to
c0612ad
Compare
rearden-grok
Bot
force-pushed
the
store/inwit-prune
branch
from
September 20, 2026 21:15
d34c0f5 to
dcc12d4
Compare
rearden-grok
Bot
force-pushed
the
store/txfixed
branch
from
September 20, 2026 21:15
fe02750 to
b9ad5f3
Compare
rearden-grok
Bot
force-pushed
the
store/inwit-prune
branch
from
September 20, 2026 21:38
dcc12d4 to
11d543b
Compare
rearden-grok
Bot
force-pushed
the
store/txfixed
branch
from
September 20, 2026 21:38
b9ad5f3 to
8129c47
Compare
rearden-grok
Bot
force-pushed
the
store/inwit-prune
branch
from
September 20, 2026 22:09
11d543b to
badd49c
Compare
rearden-grok
Bot
force-pushed
the
store/txfixed
branch
from
September 20, 2026 22:09
8129c47 to
464985c
Compare
rearden-grok
Bot
force-pushed
the
store/inwit-prune
branch
from
September 20, 2026 22:31
badd49c to
0cbf383
Compare
rearden-grok
Bot
force-pushed
the
store/txfixed
branch
from
September 20, 2026 22:31
464985c to
7cd2349
Compare
This was referenced Sep 20, 2026
Replace packing n_in into txout leftover with a dense 8 B/create txstat cell (fee/size/weight/n_in/sigops). Class A append publishes txstat.body with txid.body; leftover 24 B occupied rows still decode. Confirm, reconstruct, getblockstats, and pruned esplora JSON read the cells. Leftover txfixed.body is unlinked. Co-authored-by: Cursor <cursoragent@cursor.com>
rearden-grok
Bot
force-pushed
the
store/inwit-prune
branch
from
September 21, 2026 06:23
0cbf383 to
f9d64c3
Compare
rearden-grok
Bot
force-pushed
the
store/txfixed
branch
from
September 21, 2026 06:23
7cd2349 to
be17fab
Compare
txstat truncate left repair_class_a_count_skew at CRAP 31.9. Target count, stem ends, truncate, and align-check are separate fns. Co-authored-by: Cursor <cursoragent@cursor.com>
rearden-grok
Bot
force-pushed
the
store/txfixed
branch
from
September 21, 2026 06:36
c985c60 to
02ce85e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Schema 25 dense
txstat.body(8 B/create canonical ULEB) stacked on #654 (store/inwit-prune). Occupied 24 zero-extends the file;txout.bodyis not rewritten. Unreleased leftovertxfixed.bodyis unlinked.n_in/fee_sat/base/wit_extra. Size and weight are derived (size = base + wit_extra,weight = 4×base + wit_extra). No sigops field. Overflow remaining-bytes live in per-headertxstat.ovf+txstat.blk(not a global fk map).n_inuleb; leftover 24 rows still decode. Overlay readsn_infrom the first ULEB even when the cell needs a tail.getblockstatsreads stamped rows (no inwit reconstruct). JSON keepsutxo_increaseasouts − insand omits Core coins-DButxo_size_*/utxo_increase_actual./txkeeps emptyvin; stampedtxstatfillsfee/size/weight(nosigops). Named disk ~11.3 GiB, not process-resident.Test plan
cargo test -p rbitcoin-store --lib txstatcargo test -p rbitcoin-store --lib open_schema24_occupied_creates_zero_txstatcargo test -p rbitcoin-store --lib -- --skip sp_tweaks --skip pool_rmwcargo test -p rbitcoin-rpc --lib getblockstats_uses_txstatcargo test -p rbitcoin-rpc --lib getblockstats_reconstructs_when_txstat_unstampedcargo test -p rbitcoin-esplora --lib pruned_tx_json_has_fee_from_txstatcargo test -p rbitcoin-consensus --lib confirm_write_stamps_txstatcargo test -p rbitcoin-query --lib stamp_txstat_from_blockcargo test -p rbitcoin-query --lib txstat_row_merges_overflowcargo fmt --all -- --checkcargo clippy --workspace --all-targets -- -D warnings./scripts/ast-grep.shDo not merge unless asked.