v3.0.0-rc.22
Four production failures found and fixed, each one measured on the live chain.
A wallet that could not scan printed 0 TSN. A miner with 759 unclaimed
coinbases read "you own nothing" and concluded the rewards were lost. Three
defects behind one symptom: the scan reported success as a bare bool; a miner
and a service node answer /health but 404 every scan route, so pointing
balance at your own node gave a permanent silent zero; and the first scan of
a fresh wallet took 112 s against a 120 s budget. balance now falls back to
the public indexer on its own, and says so when it could not look.
Coinbase rewards are claimed automatically. No claim-coinbase to type.
Nodes stacked one new connection per re-dial. A dial by multiaddr carries no
PeerCondition, so libp2p cannot deduplicate it, and the 45 s self-heal loop
opened a fresh connection every tick to whichever peer answered. One host held
850 established connections to a single peer, still open 1 h 48 after the last
dial. Fixed in three layers: the driver skips an address it already holds, a
per-peer connection limit makes the pathological case impossible on every path
including inbound, and identify returns to its 5 min default so the idle
timeout can reclaim duplicates. Measured on the fleet afterwards: one connection
per peer, and an operator's internet link went from 25.5 Mbit/s of TSN traffic
to 3.3.
A soak certificate expired onto the binary it attests. Four public seeds
crash-looped about 6 200 times each over thirteen hours because the calendar
moved seven days past a certificate for the build they were still running. The
expiry now applies only when the certificate names a different build.
Also in this release: HTTP responses are gzipped (a block is 20 383 bytes of
JSON carrying 5 453 bytes of payload); the bootstrap snapshot is downloaded once
per machine instead of once per role, and no longer fills the disk it caches to;
a failed snapshot restore no longer discards the chain the node already had; and
peers below 3.0.0-rc.18 are refused.
tar xzf tsn-3.0.0-rc.22-linux-x86_64.tar.gz
./tsn new-wallet # note the Address it prints
./tsn miner-v2 --miner-pk-hash <64-hex> --data-dir ./tsn-data -t <threads>