[PASS] membership: 4 members, f=1, quorum 3 (n=4 f=1 quorum=3) [PASS] membership: configuration_hash recomputed (9ad62c270187b9e16d2938370457ddc257cdf9849be61253f4319a5738387fd2) [PASS] cain-mr2-node-1: reports the same configuration_hash [PASS] cain-mr2-node-1: 341 COMMIT_QC + 341 PREPARE_QC verified, chain contiguous from genesis (head f5fd7655fbeb063a) [PASS] cain-mr2-node-1: stated head_decision_hash matches the folded chain [PASS] cain-mr2-node-2: reports the same configuration_hash [PASS] cain-mr2-node-2: 341 COMMIT_QC + 341 PREPARE_QC verified, chain contiguous from genesis (head f5fd7655fbeb063a) [PASS] cain-mr2-node-2: stated head_decision_hash matches the folded chain [PASS] cain-mr2-node-3: reports the same configuration_hash [PASS] cain-mr2-node-3: 341 COMMIT_QC + 341 PREPARE_QC verified, chain contiguous from genesis (head f5fd7655fbeb063a) [PASS] cain-mr2-node-3: stated head_decision_hash matches the folded chain [PASS] cain-mr2-node-4: reports the same configuration_hash [PASS] cain-mr2-node-4: 341 COMMIT_QC + 341 PREPARE_QC verified, chain contiguous from genesis (head f5fd7655fbeb063a) [PASS] cain-mr2-node-4: stated head_decision_hash matches the folded chain [PASS] all nodes: identical decision chain (same sequence -> same digest -> same decision_hash) (341 decisions) [PASS] all nodes: identical application state hash after the run (5325705fe5330197) [PASS] run spans a view change (decisions committed in more than one view) (views [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 15, 16, 18, 19, 21, 22]) [PASS] VIEW_CHANGE_QC for view 4: signatures + quorum [PASS] VIEW_CHANGE_QC for view 8: signatures + quorum [PASS] VIEW_CHANGE_QC for view 12: signatures + quorum [PASS] VIEW_CHANGE_QC for view 16: signatures + quorum [PASS] VIEW_CHANGE_QC for view 20: signatures + quorum [PASS] AuthorizationCertificate seq 341 issued by cain-mr2-node-1 [PASS] AuthorizationCertificate seq 341 issued by cain-mr2-node-2 [PASS] AuthorizationCertificate seq 341 issued by cain-mr2-node-3 [PASS] AuthorizationCertificate seq 341 issued by cain-mr2-node-4 [PASS] negative control: forged signature -> rejected (signature of 'cain-mr2-node-1' does not verify) [PASS] negative control: below quorum (hash recomputed) -> rejected (2 distinct signers, need 3) [PASS] negative control: COMMIT votes presented as PREPARE (domain separation) -> rejected (vote from 'cain-mr2-node-1' is a COMMIT by 'cain-mr2-node-1', need PREPARE) [PASS] negative control: different decision digest (hash recomputed) -> rejected (vote from 'cain-mr2-node-1' is for another (sequence, digest)) [PASS] negative control: cross-cluster replay -> rejected (wrong cluster or epoch) [PASS] negative control: cross-view replay (hash recomputed) -> rejected (vote from 'cain-mr2-node-1' is for view 22) [PASS] negative control: vote content altered after signing -> rejected (signature of 'cain-mr2-node-1' does not verify) ALL_CHECKS_PASSED: 33/33 checks, 2728 certificates verified