Evidence
Distributed-systems benchmark tasks and execution semantics
This benchmark exercises the distributed-systems checker with implementation, diagnosis, property-review, deployment, authentication, and secrecy tasks. The tasks do not all use one file layout or ask for the same kind of answer.
Most implementation tasks separate a protocol.bosatsu,
checker.bosatsu, and reference/ variants.
Diagnosis tasks provide a system to judge. Property-review tasks provide
candidate properties and witnesses. The mixed-version task supplies old
and new deployments together, while the mutant task supplies several
adversarial variants of an earlier protocol.
The engine runs node starts, atomic message activations, network choices,
declared faults, and invariant checks under finite bounds.
holds means all allowed schedules were explored to completion
without a violation. violated includes a concrete
counterexample schedule. inconclusive means exploration was
truncated before a holding result could be certified. Read the
execution-semantics
reference for activation, network, fault, invariant, and adversary rules.
One recorded result: task 010 reflection counterexample
This is a measured run, separate from the task briefs below. In task 010,
the direction-bound reference answered with Mac(1,·), accepted
Mac(0,·), and held over a complete 13,641-schedule run. The
reflectable variant used Mac(0,·) in both directions and was
violated. Its counterexample has the attacker challenge the server with
the server's own nonce, receive Mac(0/10), and replay that tag
into a second session. The final state records session 2 as authenticated
while the honest client completed no session.
The served iteration-009 artifact contains
the exact task result, reviewer prompts and responses, labels, schedule
count, and token counts; the
task
010 source tree contains both variants.
Ten task briefs, sources, and expected failure modes
There are ten tasks so far, in three families: state under an unreliable network (001–005, 007), authentication against an active attacker (006, 008, 010), and secrecy (009). Each name links the task's sources in the repository. The description states what the task asks the checker or reviewer to distinguish. These briefs are task definitions and expected failure modes, not claims that every expected failure occurred in a recorded run.
001 idempotent-counter- Exactly-once apply when the network reorders and duplicates deliveries (duplicates model client retries). The naive server counts a retry twice.
002 lost-update- Two app servers increment a shared counter through a versioned store. Delivery order is the only adversary: read-modify-write loses an update; compare-and-swap with retry does not.
003 diagnosis-dedup-cache- A diagnosis task supplies the system under review: an LRU-1 dedup cache in task 001's world. The reviewer must judge it. The cache evicts the one id it needed to remember.
004 property-review-jobs- Property review rather than implementation: do the declared properties actually pin the English intent (“every queued job runs exactly once, and only fetched jobs run”), or do they pass a system that violates it?
005 adversarial-mutants- Three generator-produced mutants of task 002's CAS solution, each checker-verified defective but written to read as correct. They have no self-refuting comments, defects only in cross-handler logic under contended interleavings.
006 replay-auth- Challenge-response authentication that must not accept a replayed answer: the nonce exists so each proof is single-use, and the property catches servers that forget which nonce they issued.
007 mixed-version-deploy- Deploy safety asks whether a rolling upgrade remains safe while the old blind-write version runs beside the fixed CAS version. The checker also verifies the homogeneous new fleet.
008 forgery-auth- Authentication against an active man-in-the-middle that observes signatures, opens its own sessions, and replays what it learns across them. First task on the branching adversary node.
009 secrecy-transit- Confidential delivery over an eavesdropped network: the secret must reach the server without the wire-reading attacker ever holding its plaintext.
010 reflection-auth- Mutual authentication at protocol scale. The keyless attacker
reflects the server's own challenge back through a second interleaved
session, using the server as a MAC oracle. The
evidence index explains the three-cell reviewer
experiment, and
iteration-009.mdcontains its prompts, responses, labels, and token counts.
The committed results directory contains per-iteration benchmark records. The evidence index summarizes the recorded experiments and links the artifacts served on this site.
Where this fits
What this is about: Distributed Systems Checker