upleb.uk

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

summaryrefslogtreecommitdiff
path: root/docs/pool-directory.md
blob: 76269b9f06fb5f5af7905797b82af30159fea4c5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# Public Pool Directory

`pool.bitflash.network` should be a public directory, not a network dependency.
Nodes discover pools through Nostr and `.btf`; the website only helps humans
compare operators.

Operators can publish the `pool_status.json` and `pool_rounds.json` files
produced by:

```bash
bitflash -nogui -gen -operator \
  -poolstatusfile=/var/www/pool_status.json \
  -poolroundsfile=/var/www/pool_rounds.json
```

Build a static directory from one or more status files:

```bash
python3 scripts/build-pool-index.py --out-dir public/pool \
  https://operator-one.example/pool_status.json \
  https://operator-two.example/pool_status.json
```

The generated output contains:

- `index.html`: human-readable ranking page.
- `pools.json`: machine-readable API for `api.bitflash.network/pools.json`.

When a source is an HTTP(S) `pool_status.json`, the directory links to a
`pool_rounds.json` proof file next to it. That file records the block height,
block hash, coinbase txid, coinbase value, pool fee, total shares, per-address
share counts, computed payouts, and payout txids once paid.

Ranking order is intentionally simple:

1. online pools first;
2. higher reported hashrate;
3. more authorized miners;
4. lower fee;
5. name as a stable tie-breaker.

An entry is considered online when the source says the pool is running and its
status file is no more than 120 seconds old.