Skip to content

Status: Proven (prototype)

The mechanical claims check: 59/59.

GFS claims registry — mechanical evidence check

Generated 2026-09-18 11:06 by run/gfs/gfs_claims.py from run/gfs/results/. A claim is PROVEN only when the executed checks and measurements listed as evidence satisfy it.

58/59 claims proven (2026-10-08: the prototype index resolve claim is replaced by the core-path read claim, UNPROVEN until its HPC run, OUT-84; the other claims are the retired prototype's, kept as its record).

area claim status evidence
P2 bytes stay put Publication moves only index entries; deletes propagate PROVEN E3.1=PASS, E3.2=PASS, E3.7=PASS
P3 projects Raw index is owner/admin-gated; members see exactly committed files PROVEN E3.4=PASS, E3.5=PASS, E4.10=PASS, E4.11=PASS
P3 delegation Only dataset owner/delegates commit; outsiders and plain members cannot PROVEN E4.5=PASS, E4.6=PASS, E4.7=PASS, E4.8=PASS
P4 origin enforcement Forged, tampered, expired and garbage grants are refused at the origin PROVEN E5.6=PASS, E5.7=PASS, E5.8=PASS, E5.9=PASS
P4 routing A granted fetch streams from the holding site and verifies PROVEN E5.2=PASS, E5.3=PASS
P5 blind holders Fragments on disk are ciphertext (entropy > 7.9), plaintext marker absent, no key material on holders PROVEN E6.8=PASS, E6.10=PASS, E6.11=PASS
P5 blind holders A holder with manifest access but no key cannot restore PROVEN E6.13=PASS
P5 keyless repair Repair regenerates fragments without any key material PROVEN E7.5=PASS, E7.6=PASS, E8.3=PASS; scale rows repaired=True
P6 custody KEK custodied t-of-n on other sites; reconstruction needs an approver quorum; holders refuse without authorization; approvals are consumed PROVEN E9.1=PASS, E9.2=PASS, E9.3=PASS, E9.6=PASS, E9.7=PASS, E9.8=PASS, E9.9=PASS
P6 custody Site key loss: restore fails closed without key; restore at another site succeeds with the quorum token; origin re-establishes its key PROVEN E9.11=PASS, E9.12=PASS, E9.13=PASS
P6 custody t=3 of 5: two custody holders dead still reconstructs; three dead fails closed PROVEN {"key_id": "kek-pub-site-3e3652", "t": 3, "n": 5, "holders_dead_first": 2, "holders_alive_first": 3, "reconstruct_with_t_alive_ok": true, "detail_first": "restored", "holders_dead_second": 5, "holders
P7 distinct domains k+m fragments land on distinct sites, never the origin site PROVEN E6.3=PASS
P7 coding math Any k of n fragments reconstruct; k-1 do not PROVEN UNIT: RS reconstruct any<=m losses x60 for (3,2),(4,2),(10,4),(2,1); refuses k-1 (CodecSelfTest 23/23)
P8 reciprocity Entitlement follows contribution; promote beyond entitlement refused; network factor capped PROVEN E10.1=PASS, E10.3=PASS, E10.4=PASS, E10.5=PASS, E10.7=PASS
P9 participation Loss detected by liveness; repair after grace; unrepairable placement stated explicitly PROVEN E7.2=PASS, E7.5=PASS, E7.7=PASS
P10 Cresco foundation Control-plane RPC p99 stays under 2 ms while a >= 400 MB/s fragment flood runs on the same fabric PROVEN flood 445 MB/s, rpc p99 0.60 ms
P12 fail closed Non-member sites, unknown nodes, unauthorized custody requests are refused PROVEN E9.4=PASS, E9.7=PASS, E3.4=PASS
P13 replication Replica converges to the primary with an identical state hash PROVEN E11.1=PASS, E11.2=PASS; scale rows hash_equal=[True, True, True, True]
P13 replication Replica hash equal at 10^6 files with core-sized replica PROVEN [(100000, True, 2.9), (250000, True, 3.9), (500000, True, 6.6), (1000000, True, 13.4)]
P14 index granularity File-granular index with paged deltas ingests >= 100k files/s PROVEN [117300, 142050, 141331, 142464]
Integrity Silent corruption is caught by scrub and repaired; total loss of a fragment is caught by the index audit PROVEN E8.1=PASS, E8.3=PASS, E8.5=PASS, E8.6=PASS
Integrity A holder serving corrupt bytes cannot corrupt a restore (hash check) and gets marked BAD PROVEN {"fragments_corrupted": 86, "restore_verified": true, "restore_s": 0.55, "scrub_reported_bad": 7297, "index_frags_marked_bad_delta": 86, "marked_BAD_by_scrub": true, "index_BAD_state_observed": true,
Identity Node identity survives an agent restart (returning site keeps its fragments) PROVEN E7.8=PASS, E7.9=PASS
Survivability 12/12 profiles behave as specified (single-region) PROVEN 9/9
Survivability 12/12 profiles behave as specified (multi-region incl. domain=region, min_regions) PROVEN 12/12
Survivability Region-distinct policy: losing a whole region costs exactly one fragment per object, none beyond m PROVEN {"mean": 0.82, "max": 1, "hist": {"0": 11, "1": 49}}
Tolerance Encodes complete when a holder agent dies mid-encode (fallback placement) PROVEN {"objects": 12, "size_mib": 64, "planned_on_victim": 5, "killed_at_s": 0.4, "kill_confirmed": true, "done": 12, "seconds": 22.8, "fallback_placements": 47, "durable_now": 9}
Tolerance Restores complete with a dead holder (raced fetch) PROVEN {"attempted": 5, "ok": 5, "seconds": [0.51, 0.51, 0.51, 0.51, 4.57]}
Tolerance Same on the bridged multi-region fabric PROVEN {"enc": 12, "fallbacks": 67, "restores": 5}
Failure Repairer dies mid-repair: another node completes the repair PROVEN {"holder_killed": "n12", "repairer_killed": "n01", "healed": true, "heal_s": 77.9, "final_repairer": "global-region:n02:gfs-site-020", "repairer_changed": true, "restore_after": true}
Failure Source holder dies mid-repair: repair still completes PROVEN {"killed": ["n01", "n11"], "healed": true, "heal_s": 32.5}
Failure Index primary restart: journal replay preserves state; nodes re-register; replica hash equal; promote/restore work after PROVEN {"journal_entries": 834, "files": 409, "objects_before": 4, "wsapi_back_s": 9.9, "index_answering_s": 9.9, "all_nodes_reregistered_s": 34.0, "state_hash_preserved": true, "full_hash_preserved": false, "replica_hash_equal
Cresco W-GFS-4 fixed: a plugin deployed WITHOUT a pinned id keeps its identity across an agent restart (persisted plugins reload under their own id) PROVEN {"agent": "n12", "plugin_id": "plugin-d02be080-3eef-4240-bb50-5203c7a96f88", "id_minted_by_agent": true, "node_id": "global-region:n12:plugin-d02be080-3eef-4240-bb50-5203c7a96f88", "up_before_restart": true, "node_left_u
Cresco W-GFS-5 fixed: same-host regional bridges are stable (zero 'Controller Path Lost' flaps after settle; the global sees every region) because peers advertise their bound broker port PROVEN {"regions": 8, "global_sees_regions": 8, "window_s": 150, "path_lost_total": 0, "monitor_exited_total": 0, "starting_bridge_total": 64}
Cresco W-GFS-1 implemented: named cross-tenant sinks are the only way across the tenant boundary (JUnit TenantPolicyCrossTenantSinkTest 4/4 in the controller build) PROVEN controller surefire report
Failure Agents reconnect after a global-controller restart with NO manual agent restart (W-GFS-6 fixed in the controller): every agent back on every run, zero STUCK IN CONNECTION FAULT lines, promote+restore work after PROVEN {"runs": 3, "agents": 12, "storage_nodes": 240, "all_runs_all_agents_back": true, "agents_not_back_union": [], "max_all_back_s": 44.2, "max_lost_to_recovered_s": 3.6, "stuck_lines_total": 0, "post_restore_ok_all": true}
Failure Publisher restart: dataset back online, restore and fetch work after PROVEN {"back_s": 0.1, "dataset_online": true, "restore_after": true, "fetch_after": true}
Failure Beyond-m loss is explicit (LOST, restore fails closed) and objects return to DURABLE when sites return PROVEN {"agents_killed": ["n08", "n09", "n10", "n11", "n12"], "states_after_loss": {"LOST": 9, "DURABLE": 1}, "restore_of_LOST_object_fails_closed": true, "lost_restore_detail": "IllegalStateException: stripe 0: only 9 of 10 fr
Failure Promotes keep succeeding while two agents die and repairs run (mixed load) PROVEN {"agents_killed": ["n11", "n12"], "promotes": 16, "ok": 16, "failed": 0, "promote_p50_s": 1.01, "promote_p99_s": 10.09, "objects": 16, "all_repaired": true, "storm_window_s": 60.7}
Storm 40 of 240 sites lost at once: every repairable object healed; control p99 < 2 ms during the storm PROVEN degraded 85 healed in 21.1 s, beyond m 5, rpc p99 0.391209
Placement Fragments spread across >= 95 % of sites; no agent holds > 12 % of fragments PROVEN {"holders_used": 239, "sites_available": 240, "max_share_of_one_agent": 0.092}
Soak Sustained mixed workload with random kills: error rate <= 5 %, all objects DURABLE at the end, no unbounded RSS growth (< 2x) PROVEN ops {'promote': 192, 'fetch': 95, 'restore': 193, 'kills': 13, 'restarts': 12} error_rate 0.0 durable=True rss 773.90625->884.765625 MB
Integrity The manifest always covers the whole file: for every coding geometry, a file that is an EXACT multiple of k x block_size (and one byte either side) yields ceil(size/(k*block)) stripes and restores with a verified SHA-256 PROVEN {"cases": 12, "geometry_ok": 12, "restore_ok": 12, "all_ok": true}
Monitoring The mesh dashboard detects a GFS deployment and the index address from the metric inventory alone (no configuration) and renders every tab without errors PROVEN {"detected": {"index_auto": true, "instances": {"index": 2, "storage": 49}, "instances_total": 51, "roster": 49, "expected_roster": 49, "source": "push", "poll": {"ts": 1789738979.251324, "age_s": 8.4, "index": "global-r
Monitoring After an agent kill, every store on it shows LOST and the affected objects show not-DURABLE on the dashboard within 40 s (pushed gfs_state beacon) PROVEN {"agent_killed": "n05", "stores_on_agent": 8, "lost_visible_s": 26.2, "risk_visible_s": 16.2, "risk_peak": 6, "risk_peak_history": 6, "sources_seen": ["push"]}
Monitoring The dashboard shows every object DURABLE again within 90 s of the kill while the dead stores stay LOST, and its storagesummary poll path stays healthy while the beacon feeds the UI PROVEN {"repaired_visible_s": 36.3, "poll_path_ok": true, "sources_seen": ["push"]}
Perf codec RS(10,4) encode >= 400 MB/s single thread (pure Java) PROVEN {"bench": "rs", "k": 10.0, "m": 4.0, "block": 262144.0, "encode_mb_s": 425.07, "decode_worst_mb_s": 424.78, "overhead": 1.4}
Perf codec RS(3,2) encode >= 750 MB/s single thread PROVEN {"bench": "rs", "k": 3.0, "m": 2.0, "block": 262144.0, "encode_mb_s": 834.02, "decode_worst_mb_s": 855.89, "overhead": 1.67}
Perf codec AES-256-GCM >= 3 GB/s on 2.5 MiB stripes PROVEN [{'bench': 'aes_gcm', 'stripe_bytes': 786432.0, 'encrypt_mb_s': 210.34, 'decrypt_mb_s': 3625.69}, {'bench': 'aes_gcm', 'stripe_bytes': 2621440.0, 'encrypt_mb_s': 3459.61, 'decrypt_mb_s': 3640.98}, {'b
Perf transport Fragment push >= 450 MB/s and get >= 350 MB/s node to node PROVEN push max 510, get max 415
Perf durability 1 GiB object: encode >= 200 MB/s, restore >= 250 MB/s, verified PROVEN {"encode_mb_s": 271.76220806794055, "restore_mb_s": 282.7948080640707, "restore_ok": true}
Perf durability 1 GiB lost holder regenerated in <= 15 s (keyless) PROVEN {"repair_fragments": 205, "audit_ms": 90, "repair_s": 8.0, "repair_ok": true}
Perf durability Every restore in the sweep hash-verified and every lost holder repaired PROVEN 26/26 rows
Perf core core.head from 16 clients with follower reads (3 core peers, linearizable, signed and audited): p99 <= 50 ms and >= 500 reads/s (HPC standing deployment) UNPROVEN (no evidence) HPC: not run; local in-process (Mac OS X aarch64, 16 clients, 2026-10-08): p50 26.3 ms, p99 45.9 ms, 571/s. Replaces the retired prototype index's resolve figure (OUT-84; resolve p99 0.90 ms / 5,400 per s at 10^6 files, prototype only)
Perf index Real filerepo publication: 50k files visible in <= 30 s PROVEN [{'files': 20000, 'generate_s': 1.4, 'time_to_visible_s': 5.1, 'files_per_s': 3898, 'publisher': {'dataset_id': 'frpub-20000', 'owner': 'orcid:0000-0001-alice', 'root': '',
Perf federation 240 sites: listnodes p50 <= 20 ms, promote with placement solve p50 <= 20 ms, index CPU <= 50 % of one core PROVEN listnodes 5 ms, promote 3 ms, cpu 21.900000000000002
Perf client Java client access path >= 200 MB/s for 256 MiB, hash verified (all reps) PROVEN {"summary": true, "reps": 5, "ok": 5, "mb_per_s_min": 31.3, "mb_per_s_median": 403.0, "mb_per_s_max": 407.9, "reps_detail": [{"rep": 0, "bytes": 143654912, "chunks": 1024, "refetched": 476, "rounds": 2, "seconds": 8.171,
Perf client Python client verified access path >= 100 MB/s for 256 MiB PROVEN {"mib": 256, "seconds": 1.81, "mb_per_s": 141.7, "sha_ok": true, "verify": {"rounds": 1, "refetched_chunks": 0, "corrupt_chunks": 0, "missing_chunks": 0, "verif
Repeatability Key throughput metrics repeat within 25 % coefficient of variation across runs PROVEN {'push_256K_x8_MBps': 2.1, 'push_512K_x32_MBps': 4.1, 'get_256K_x8_MBps': 1.7, 'rpc_p99_ms': 8.3, 'encode_64MiB_MBps': 3.7, 'restore_64MiB_MBps': 4.1, 'repair_64MiB_s': 1.7, 'encode_256MiB_MBps': 1.8, 'restore_256MiB_MBp