[
 {
  "actual_result": {
   "replies": [
    "ALLOW",
    "ALLOW",
    "ALLOW"
   ]
  },
  "cleanroom": "SAFE",
  "configuration_hash": "143ae8f14ab3a151246a664208137ea27c505280ea18683eed5ac51cce3b8048",
  "elapsed_ms": 311.4,
  "expected_result": "all 4 replicas commit seq 1..3; replies ALLOW",
  "fault_injection": "none",
  "messages": 90,
  "name": "normal consensus",
  "status": "PASS",
  "vector_id": "BFT-TV-01"
 },
 {
  "actual_result": {
   "first": "COMMITTED",
   "second": "CACHED_IDEMPOTENT"
  },
  "cleanroom": "SAFE",
  "configuration_hash": "2b8ce1280d7429efbc2d6974bf684f065c7e17ad73d6b911aa5780667d23cc2d",
  "elapsed_ms": 88.7,
  "expected_result": "executed once (commit_index 1); second reply idempotent",
  "fault_injection": "same request_id twice",
  "messages": 30,
  "name": "duplicate requests",
  "status": "PASS",
  "vector_id": "BFT-TV-02"
 },
 {
  "actual_result": {
   "decisions": [
    "ALLOW",
    "ALLOW"
   ],
   "sequences": [
    1,
    2
   ]
  },
  "cleanroom": "SAFE",
  "configuration_hash": "78e767836dc77beab96e2ec45700850d324723ede9c1c44a784459380031f2b0",
  "elapsed_ms": 129.3,
  "expected_result": "both ordered at distinct sequences; identical state on all replicas",
  "fault_injection": "two writes to one key concurrently",
  "messages": 60,
  "name": "conflicting requests",
  "status": "PASS",
  "vector_id": "BFT-TV-03"
 },
 {
  "actual_result": {
   "accepted": false,
   "n2_verdict": "Authentication failed: Ed25519 signature does not verify against pinned key for sender n4"
  },
  "cleanroom": "SAFE",
  "configuration_hash": "708745ba40825b7e2030bf993209179e56642055088d4f08d1042ca35baf4581",
  "elapsed_ms": 1.2,
  "expected_result": "rejected",
  "fault_injection": "PREPARE with corrupted signature",
  "messages": 0,
  "name": "invalid signature",
  "status": "PASS",
  "vector_id": "BFT-TV-04"
 },
 {
  "actual_result": {
   "accepted": false
  },
  "cleanroom": "SAFE",
  "configuration_hash": "4b55230e0948506d5bacfe5754a3f34cd1dbc08468bd640c670b5e848dd1e7fe",
  "elapsed_ms": 1.8,
  "expected_result": "rejected",
  "fault_injection": "PRE_PREPARE digest not bound to operation",
  "messages": 0,
  "name": "invalid digest",
  "status": "PASS",
  "vector_id": "BFT-TV-05"
 },
 {
  "actual_result": {
   "prepare_replies": {
    "n2": true,
    "n3": true,
    "n4": true
   }
  },
  "cleanroom": "SAFE",
  "configuration_hash": "0ff083d2e35ace0c1783fc2479fa8693fb65f84e3c0aadaf01f8981f3e9777e9",
  "elapsed_ms": 66.0,
  "expected_result": "no two honest replicas commit different operations at seq 1",
  "fault_injection": "primary sends op A to n2 and op B to n3/n4 at seq 1",
  "messages": 6,
  "name": "Byzantine primary (equivocating PRE_PREPARE)",
  "status": "PASS",
  "vector_id": "BFT-TV-06"
 },
 {
  "actual_result": {
   "honest_round": "ALLOW",
   "honest_signed_commit_for_unproposed": false
  },
  "cleanroom": "SAFE",
  "configuration_hash": "6110373b8058765013a813f92b25359452d5959863750966a89a2556b0e856e5",
  "elapsed_ms": 112.0,
  "expected_result": "no honest replica signs a COMMIT for it; honest round still commits",
  "fault_injection": "n4 sends COMMIT for a digest nobody proposed",
  "messages": 30,
  "name": "Byzantine replica (COMMIT for unproposed digest)",
  "status": "PASS",
  "vector_id": "BFT-TV-07"
 },
 {
  "actual_result": {
   "evidence_records": 1,
   "n4_quarantined_by_n2": true
  },
  "cleanroom": "SAFE",
  "configuration_hash": "725f5ea3327d80bbf2000ffbef1c75d44eb40062cca846170759cbc3c2b1b712",
  "elapsed_ms": 7.3,
  "expected_result": "no commit of the bogus digest; evidence recorded",
  "fault_injection": "n4 PREPAREs two digests for (0,1)",
  "messages": 0,
  "name": "equivocation (two PREPAREs, same view/seq)",
  "status": "PASS",
  "vector_id": "BFT-TV-08"
 },
 {
  "actual_result": {
   "commit_index_after": 1,
   "commit_index_before": 1,
   "state_k1": {
    "v": 1
   }
  },
  "cleanroom": "SAFE",
  "configuration_hash": "a1513b3c09659fc90da0bdec5c36adbb67f8a157f8ac67c4408c20bf081f8126",
  "elapsed_ms": 84.2,
  "expected_result": "no re-execution (commit_index unchanged, state unchanged)",
  "fault_injection": "re-deliver a full commit certificate",
  "messages": 30,
  "name": "message replay",
  "status": "PASS",
  "vector_id": "BFT-TV-09"
 },
 {
  "actual_result": {
   "held_delivered_late": 12
  },
  "cleanroom": "SAFE",
  "configuration_hash": "7f865e2d864a5c1387f35fd23e2068051870aec8db357701090a1024cc53561b",
  "elapsed_ms": 7237.5,
  "expected_result": "safety holds; no divergence",
  "fault_injection": "50% of messages held then delivered late",
  "messages": 86,
  "name": "message delay",
  "status": "PASS",
  "vector_id": "BFT-TV-10"
 },
 {
  "actual_result": {
   "reordered_delivered": 28
  },
  "cleanroom": "SAFE",
  "configuration_hash": "2947657e7b7dfc816d7ab6ac0eec443ef6eb01df03c7f2dea84c94cc3f537c4d",
  "elapsed_ms": 11372.7,
  "expected_result": "safety holds",
  "fault_injection": "60% of messages held then delivered in shuffled order",
  "messages": 128,
  "name": "message reorder",
  "status": "PASS",
  "vector_id": "BFT-TV-11"
 },
 {
  "actual_result": {
   "replies": [
    "ALLOW",
    "ALLOW",
    "ALLOW",
    "ALLOW"
   ]
  },
  "cleanroom": "SAFE",
  "configuration_hash": "51557f0e40d53bcdbf19fd3bb37ee263b0ae18cde0e6dc1eb8906d23b3bd0d50",
  "elapsed_ms": 283.8,
  "expected_result": "each request executed once; all commit 1..4",
  "fault_injection": "40% of messages delivered twice",
  "messages": 151,
  "name": "message duplication",
  "status": "PASS",
  "vector_id": "BFT-TV-12"
 },
 {
  "actual_result": {
   "majority_replies": [
    "ALLOW",
    "ALLOW"
   ],
   "n4_after_heal": 2,
   "n4_during_partition": 0
  },
  "cleanroom": "SAFE",
  "configuration_hash": "b60a930002c8935ee59cff29807864ad72e50403954c3a1a48b287b8e8ec2bb3",
  "elapsed_ms": 131.8,
  "expected_result": "majority commits 1..2; n4 commits nothing while isolated; catches up to 2 after heal",
  "fault_injection": "n4 isolated, then healed",
  "messages": 42,
  "name": "network partition (1|3)",
  "status": "PASS",
  "vector_id": "BFT-TV-13"
 },
 {
  "actual_result": {
   "new_primary_reply": "ALLOW",
   "views_after": {
    "n2": 1,
    "n3": 1,
    "n4": 1
   }
  },
  "cleanroom": "SAFE",
  "configuration_hash": "778318b83d8482afeff59ed28748d8438823055609a2d77ec478d46825c7d0c0",
  "elapsed_ms": 183.5,
  "expected_result": "n2..n4 move to view 1; new primary commits seq 2",
  "fault_injection": "primary n1 crashes after seq 1",
  "messages": 64,
  "name": "view change (primary crash)",
  "status": "PASS",
  "vector_id": "BFT-TV-14"
 },
 {
  "actual_result": {
   "stable_checkpoint_or_low_watermark": 10,
   "submitted": 11
  },
  "cleanroom": "SAFE",
  "configuration_hash": "82326394a2d8d654ad396ff842bb0e5a3e52a4d63ce55657b663a0d225fd42c4",
  "elapsed_ms": 709.9,
  "expected_result": "all commit interval+1; a checkpoint/watermark advances",
  "fault_injection": "none (interval+1 commits)",
  "messages": 342,
  "name": "checkpoint",
  "status": "PASS",
  "vector_id": "BFT-TV-15"
 },
 {
  "actual_result": {
   "commit_index_after": 3,
   "same_state_after_restart": true
  },
  "cleanroom": "SAFE",
  "configuration_hash": "5beb8b76ec3f09c9caa12121c054ff920bbb84cb7539f91275b8e31d20f8c689",
  "elapsed_ms": 450.5,
  "expected_result": "same application state and commit_index 3 after restart",
  "fault_injection": "crash-restart n3 from disk",
  "messages": 90,
  "name": "state recovery (WAL)",
  "status": "PASS",
  "vector_id": "BFT-TV-16"
 },
 {
  "actual_result": {
   "n4_commit_index": 4
  },
  "cleanroom": "SAFE",
  "configuration_hash": "eddc3c273dea41d6ed715ca321b6c6fc03469c2a015320687044710fffd8bf81",
  "elapsed_ms": 616.8,
  "expected_result": "n4 reaches commit_index 4",
  "fault_injection": "n4 down for seq 2..3, restarted",
  "messages": 102,
  "name": "replica restart + catch-up",
  "status": "PASS",
  "vector_id": "BFT-TV-17"
 },
 {
  "actual_result": {
   "dynamic_membership": "NOT_IMPLEMENTED",
   "non_member_accepted": false
  },
  "cleanroom": "SAFE",
  "configuration_hash": "71003dfa73f4ed2bac8270cf00660fc474476d085cc7f56860867c2bc3309dba",
  "elapsed_ms": 2220.6,
  "expected_result": "rejected; dynamic membership NOT_IMPLEMENTED",
  "fault_injection": "self-signed PREPARE from non-member n9",
  "messages": 0,
  "name": "membership change / non-member",
  "status": "PASS",
  "vector_id": "BFT-TV-18"
 },
 {
  "actual_result": {
   "old_view_preprepare_accepted": {
    "n2": false,
    "n3": false,
    "n4": false
   }
  },
  "cleanroom": "SAFE",
  "configuration_hash": "311269f0287f9b96f1fd88e935cca73b378ff6428ce04f7758a71d0dc580ab8b",
  "elapsed_ms": 100.5,
  "expected_result": "rejected by every replica in view 1",
  "fault_injection": "ex-primary sends view-0 PRE_PREPARE after view change",
  "messages": 43,
  "name": "stale state (old-view proposal)",
  "status": "PASS",
  "vector_id": "BFT-TV-19"
 },
 {
  "actual_result": {
   "forged_payload_applied": 0,
   "gap_applied": 0,
   "prepared_only_applied": 0,
   "valid_applied": 2
  },
  "cleanroom": "SAFE",
  "configuration_hash": "9996909f24d8668cc96c5fbb67f1c59e9056dd84ab8965f5f2faa65d3921eefd",
  "elapsed_ms": 80.1,
  "expected_result": "only the complete certified prefix is applied (2)",
  "fault_injection": "prepared-only, gapped and payload-forged certificates offered to a lagging replica",
  "messages": 42,
  "name": "conflicting state (state transfer)",
  "status": "PASS",
  "vector_id": "BFT-TV-20"
 }
]
