upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorBitflash <admin@bitflash.network>2026-08-12 09:08:14 -0300
committerBitflash <admin@bitflash.network>2026-08-12 09:08:14 -0300
commit5b2d9df37e33fcd17158b25cbd749372d59c18da (patch)
treece72921d72611dab1aafb78521b68da0fd11383d /docs
parenta83fae37099cb102beb5a4c174a4abe6ef3f24a4 (diff)
parentcaa6a9668fc2b2ed1192f7ebdc0b78621f45898d (diff)
Merge pull request 'tools: harden chain audit scripts' (#25) from tooling-hardening into main
Diffstat (limited to 'docs')
-rw-r--r--docs/fair-launch.md3
-rw-r--r--docs/utxo-commitment.md20
2 files changed, 21 insertions, 2 deletions
diff --git a/docs/fair-launch.md b/docs/fair-launch.md
index 79eca8e..9603910 100644
--- a/docs/fair-launch.md
+++ b/docs/fair-launch.md
@@ -8,7 +8,8 @@ python3 scripts/verify-fair-launch.py --max-blocks 1000 --out bitflash-fair-laun
8 8
9The verifier reads `blk*.dat` directly from the local Bitflash data directory. 9The verifier reads `blk*.dat` directly from the local Bitflash data directory.
10It does not use Berkeley DB, does not call the node binary, and does not need 10It does not use Berkeley DB, does not call the node binary, and does not need
11network access. 11network access. It uses the same shared Python chain parser as the UTXO
12commitment and proof tools, so block serialization fixes land in one place.
12 13
13The report proves the launch baseline that can be checked from the chain: 14The report proves the launch baseline that can be checked from the chain:
14 15
diff --git a/docs/utxo-commitment.md b/docs/utxo-commitment.md
index 991e5d9..ab43deb 100644
--- a/docs/utxo-commitment.md
+++ b/docs/utxo-commitment.md
@@ -21,7 +21,8 @@ python3 scripts/verify-utxo-set.py --out utxo-report.json --json
21 21
22The verifier: 22The verifier:
23 23
24- parses Bitflash block files directly; 24- parses Bitflash block files directly with the shared Python chain parser;
25- streams `blk*.dat` records instead of loading full block files into memory;
25- reconstructs the best chain rooted at the Bitflash genesis block; 26- reconstructs the best chain rooted at the Bitflash genesis block;
26- ignores side blocks that may also be present in `blk*.dat`; 27- ignores side blocks that may also be present in `blk*.dat`;
27- verifies every scanned block merkle root; 28- verifies every scanned block merkle root;
@@ -98,6 +99,23 @@ last-write-wins semantics for the UTXO map, matching the legacy index model.
98Those warnings are part of the report so auditors can see the historical debt 99Those warnings are part of the report so auditors can see the historical debt
99instead of relying on a polished summary. 100instead of relying on a polished summary.
100 101
102For synthetic chains or future clean consensus ranges, auditors can make
103duplicates a hard failure:
104
105```bash
106python3 scripts/verify-utxo-set.py --strict-duplicates
107```
108
109The default remains compatible with the current historical chain because it has
110known legacy duplicate-output overwrites.
111
112## Shared Parser
113
114The audit scripts share `scripts/bitflash_chain.py` for block parsing,
115main-chain selection, UTXO application, canonical JSON, and genesis
116reconstruction. That keeps `verify-utxo-set.py`, `verify-fair-launch.py`,
117`prove-utxo.py`, and the explorer on the same serialization rules.
118
101## Future Consensus Path 119## Future Consensus Path
102 120
103This tool is the low-risk first step toward consensus commitments. A future 121This tool is the low-risk first step toward consensus commitments. A future