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-11 09:22:23 -0300
committerbitflash <admin@bitflash.network>2026-08-11 09:22:23 -0300
commitb45909c90f246d32a96474a4710d8038b0f552f2 (patch)
treeccbe4f2403d212deeb6136aff4b9580bc56bb3be /docs
parent7265a381405125aad5d91c3a11e9b619c9518c10 (diff)
parent2482df9e1ac0706233e8e172dd68e6465db526c7 (diff)
Merge main into mining-calculator (union README)
Diffstat (limited to 'docs')
-rw-r--r--docs/fair-launch.md69
1 files changed, 69 insertions, 0 deletions
diff --git a/docs/fair-launch.md b/docs/fair-launch.md
new file mode 100644
index 0000000..79eca8e
--- /dev/null
+++ b/docs/fair-launch.md
@@ -0,0 +1,69 @@
1# Bitflash fair-launch verifier
2
3Bitflash ships a deterministic fair-launch audit script:
4
5```bash
6python3 scripts/verify-fair-launch.py --max-blocks 1000 --out bitflash-fair-launch-report.json --json
7```
8
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
11network access.
12
13The report proves the launch baseline that can be checked from the chain:
14
15- the genesis block hash matches the source constant;
16- the genesis merkle root matches the source constant;
17- the genesis transaction is a single coinbase transaction;
18- the genesis output total is exactly `50.00000000 BTF`;
19- the scanned block range and mined coinbase total are reproducible.
20
21For machines that do not have a synced data directory yet, the source constants
22can be checked without disk blocks:
23
24```bash
25python3 scripts/verify-fair-launch.py --reconstruct-genesis
26```
27
28## Deterministic output
29
30Use `--json` or `--out` for canonical JSON. The JSON is written with sorted
31keys, fixed separators, ASCII escaping, and one trailing newline. It deliberately
32does not include local paths or wall-clock generation time, so two auditors
33scanning the same block range produce the same bytes.
34
35That makes the report shareable:
36
37```bash
38python3 scripts/verify-fair-launch.py --max-blocks 1000 --out report.json --json
39sha256sum report.json
40```
41
42If another auditor runs the same command against the same chain prefix, the
43`sha256sum` should match.
44
45## OpenTimestamps
46
47OpenTimestamps is optional and external. It anchors the report in Bitcoin
48without adding any bridge or dependency to Bitflash consensus.
49
50After generating a canonical JSON report:
51
52```bash
53ots stamp report.json
54ots verify report.json.ots
55```
56
57The `.ots` file proves that the exact report bytes existed no later than the
58Bitcoin block that confirms the timestamp.
59
60## What this does not claim
61
62This is not a retroactive genesis commitment. The Bitflash genesis block already
63exists, so adding a new on-chain commitment to genesis would create a different
64chain. This verifier instead audits the launch state that is already on-chain
65and makes the result reproducible and timestampable.
66
67It also does not prove real-world miner identity. It proves the genesis state,
68the absence of non-coinbase premine in genesis, and the deterministic coinbase
69totals over the scanned prefix.