Uptime, fog and sinking

Probes

Every ten minutes the keeper (and, as they join, other islands) sends each island a random challenge. The island's probe service signs it with its probe key and returns its host fingerprint, a hash of the machine id that every island on the same machine shares. Each result is a signed record. Islands that report the same fingerprint count as one host, so islands on one machine can never form a continent alone.

PROBES EVERY 10 MIN, 4 HOURSH1 LITH2 LITH3 DARK (1, FREE)H4 LIT AGAINLIT = ANSWERED AT LEAST ONE PROBE AND THE LAST ONE

At the end of the hour the keeper builds a Merkle tree of the hour's records and calls Probes.postHour(hour, root, ids, lit, uptime, hosts). An island is lit for the hour if it answered at least one probe and the last one. The records are published at /api/state so anyone can recompute the root.

Fog

An island whose uptime over the last 24 hours is under 95% is fogged. It still sells single calls, but it carries a zero uptime share in any continent job for that day. It clears as soon as its 24 hour uptime is back at 95%.

Dark hours and sinking

The first dark hour costs nothing. Every consecutive dark hour after it burns 2% of the bond. At six dark hours in a row the island sinks: half of what is left burns, the island leaves its continent, and the rest can be withdrawn after seven days.

Consecutive dark hoursBurned this hourBond left (of 20,000)
1020,000
240019,600
339219,208
438418,824
537618,447
6 (sink)369 + 9,0399,039

Owners can dispute an hour within 24 hours with Probes.dispute(hour, id, evidence); disputes are recorded onchain next to the root.