Integrate ouroboros-network
and cardano-ledger
#1314
+1,455
−564
Draft
IOG Hydra / ci/hydra-build:aarch64-darwin.native.haskell96.checks.ouroboros-consensus-diffusion.consensus-test
failed
Dec 18, 2024 in 10m 46s
Build failed
1 failed steps
Details
Failed Steps
Step 1
Derivation
/nix/store/vsl1xpqzq6pncpvd56wmkndbrfdvrfzp-ouroboros-consensus-diffusion-test-consensus-test-0.18.0.0-check.drv
Log
Running phase: unpackPhase
unpacking source archive /nix/store/3lxsaqd1pkrkfq22hdjj5rxf70hx1lij-source-root-ouroboros-consensus-diffusion-test-consensus-test-root
source root is source-root-ouroboros-consensus-diffusion-test-consensus-test-root
Running phase: patchPhase
Running phase: buildPhase
/nix/store/235vskillgvrva3r40yry505myhk9kr6-ouroboros-consensus-diffusion-test-consensus-test-0.18.0.0/bin:
patching script interpreter paths in /private/tmp/nix-build-ouroboros-consensus-diffusion-test-consensus-test-0.18.0.0-check.drv-0/tmp.tMlz1Hb6LN/bin
ouroboros-consensus
Node
checkDbMarker
match: OK
mismatch: OK
empty folder: OK
missing: OK
corrupt: OK
empty: OK
lockDb
reacquire a released lock: OK
+++ OK, passed 100 tests (61% timed out).
acquire a held lock: OK
wait to acquire a held lock: OK
+++ OK, passed 100 tests.
HardFork
Combinator
Consensus
simple convergence: OK (34.05s)
+++ OK, passed 100 tests.
average #txs/block (100 in total):
100% R_Btwn (0.0,1.0)
consensus expected (100 in total):
100% True
epochs in era A (100 in total):
26% 2
20% 3
14% >=10
13% 4
10% 5
6% 6
4% 8
3% 1
3% 7
1% 9
floor(4 * lastJoinSlot / numSlots) (100 in total):
100% Just 0
involves >=1 re-delegation (100 in total):
100% False
k (100 in total):
18% 6
13% 3
12% 9
10% 10
10% 4
10% 7
10% 8
9% 2
8% 5
minimumDegreeNodeTopology (100 in total):
100% Just 1
shortestLength (k = 10) (10 in total):
90% ≈ (k = 10) << 42
10% ≈ (k = 10) << 74
shortestLength (k = 2) (9 in total):
67% ≈ (k = 2) << 18
33% ≈ (k = 2) << 34
shortestLength (k = 3) (13 in total):
54% ≈ (k = 3) << 35
38% ≈ (k = 3) << 19
8% ≈ (k = 3) << 11
shortestLength (k = 4) (10 in total):
50% ≈ (k = 4) << 20
50% ≈ (k = 4) << 36
shortestLength (k = 5) (8 in total):
62% ≈ (k = 5) << 37
38% ≈ (k = 5) << 21
shortestLength (k = 6) (18 in total):
78% ≈ (k = 6) << 38
22% ≈ (k = 6) << 22
shortestLength (k = 7) (10 in total):
70% ≈ (k = 7) << 39
20% ≈ (k = 7) << 23
10% ≈ (k = 7) << 71
shortestLength (k = 8) (10 in total):
80% ≈ (k = 8) << 40
20% ≈ (k = 8) << 24
shortestLength (k = 9) (12 in total):
100% ≈ (k = 9) << 41
updates (100 in total):
26%
(c0,[ProposalSubmitted,ProposalStable,confirmed (A,B,2),done (A,B,2)])
(c1,[ProposalSubmitted,ProposalStable,confirmed (A,B,2),done (A,B,2)])
20%
(c0,[ProposalSubmitted,ProposalStable,confirmed (A,B,3),done (A,B,3)])
(c1,[ProposalSubmitted,ProposalStable,confirmed (A,B,3),done (A,B,3)])
13%
(c0,[ProposalSubmitted,ProposalStable,confirmed (A,B,4),done (A,B,4)])
(c1,[ProposalSubmitted,ProposalStable,confirmed (A,B,4),done (A,B,4)])
10%
(c0,[ProposalSubmitted,ProposalStable,confirmed (A,B,5),done (A,B,5)])
(c1,[ProposalSubmitted,ProposalStable,confirmed (A,B,5),done (A,B,5)])
6%
(c0,[ProposalSubmitted,ProposalStable,confirmed (A,B,6),done (A,B,6)])
(c1,[ProposalSubmitted,ProposalStable,confirmed (A,B,6),done (A,B,6)])
4%
(c0,[ProposalSubmitted,ProposalStable,confirmed (A,B,10),done (A,B,10)])
(c1,[ProposalSubmitted,ProposalStable,confirmed (A,B,10),done (A,B,10)])
4%
(c0,[ProposalSubmitted,ProposalStable,confirmed (A,B,8),done (A,B,8)])
(c1,[ProposalSubmitted,ProposalStable,confirmed (A,B,8),done (A,B,8)])
3%
(c0,[ProposalSubmitted,ProposalStable,confirmed (A,B,1),done (A,B,1)])
(c1,[ProposalSubmitted,ProposalStable,confirmed (A,B,1),done (A,B,1)])
3%
(c0,[ProposalSubmitted,ProposalStable,confirmed (A,B,11),done (A,B,11)])
(c1,[ProposalSubmitted,ProposalStable,confirmed (A,B,11),done (A,B,11)])
3%
(c0,[ProposalSubmitted,ProposalStable,confirmed (A,B,7),done (A,B,7)])
(c1,[ProposalSubmitted,ProposalStable,confirmed (A,B,7),done (A,B,7)])
2%
(c0,[ProposalSubmitted,ProposalStable,confirmed (A,B,18),done (A,B,18)])
(c1,[ProposalSubmitted,ProposalStable,confirmed (A,B,18),done (A,B,18)])
1%
(c0,[ProposalSubmitted,ProposalStable,confirmed (A,B,12),done (A,B,12)])
(c1,[ProposalSubmitted,ProposalStable,confirmed (A,B,12),done (A,B,12)])
1%
(c0,[ProposalSubmitted,ProposalStable,confirmed (A,B,13),done (A,B,13)])
(c1,[ProposalSubmitted,ProposalStable,confirmed (A,B,13),done (A,B,13)])
1%
(c0,[ProposalSubmitted,ProposalStable,confirmed (A,B,19),done (A,B,19)])
(c1,[ProposalSubmitted,ProposalStable,confirmed (A,B,19),done (A,B,19)])
1%
(c0,[ProposalSubmitted,ProposalStable,confirmed (A,B,21),done (A,B,21)])
(c1,[ProposalSubmitted,ProposalStable,confirmed (A,B,21),done (A,B,21)])
1%
(c0,[ProposalSubmitted,ProposalStable,confirmed (A,B,28),done (A,B,28)])
(c1,[ProposalSubmitted,ProposalStable,confirmed (A,B,28),done (A,B,28)])
1%
(c0,[ProposalSubmitted,ProposalStable,confirmed (A,B,9),done (A,B,9)])
(c1,[ProposalSubmitted,ProposalStable,confirmed (A,B,9),done (A,B,9)])
Genesis tests
CSJ
Happy Path
honest peers are synchronised: OK (47.55s)
+++ OK, passed 1000 tests:
100.0% All adversaries have at least 1 forecastable block after intersection
100.0% All adversaries have empty schedules
100.0% All adversaries have k+1 blocks in forecast window after intersection
100.0% All adversaries have more than k blocks after intersection
100.0% All adversaries have trivial schedules
0.0% An adversary did a rollback
0.0% Full genesis window after intersection
0.0% The honest peer did a rollback
(1000 in total):
99.5% There exist headers that have to be downloaded exactly once
0.5% All headers are within the last jump window
Adversaries killed by GDD (1000 in total):
100.0% 0.0%
Adversaries killed by LoP (1000 in total):
100.0% 0.0%
Adversaries killed by Timeout (1000 in total):
100.0% 0.0%
Surviving adversaries (1000 in total):
100.0% 0.0%
honest peers do their own thing: OK (67.36s)
+++ OK, passed 1000 tests:
100.0% All adversaries have at least 1 forecastable block after intersection
100.0% All adversaries have empty schedules
100.0% All adversaries have k+1 blocks in forecast window after intersection
100.0% All adversaries have more than k blocks after intersection
100.0% All adversaries have trivial schedules
0.0% An adversary did a rollback
0.0% Full genesis window after intersection
0.0% The honest peer did a rollback
(1000 in total):
99.1% There exist headers that have to be downloaded exactly once
0.9% All headers are within the last jump window
Adversaries killed by GDD (1000 in total):
100.0% 0.0%
Adversaries killed by LoP (1000 in total):
100.0% 0.0%
Adversaries killed by Timeout (1000 in total):
100.0% 0.0%
Surviving adversaries (1000 in total):
100.0% 0.0%
With some adversaries
honest peers are synchronised: OK (59.85s)
+++ OK, passed 1000 tests:
100.0% All adversaries have more than k blocks after intersection
99.8% Full genesis window after intersection
67.4% All adversaries have at least 1 forecastable block after intersection
33.3% An adversary did a rollback
13.9% All adversaries have k+1 blocks in forecast window after intersection
0.0% All adversaries have empty schedules
0.0% All adversaries have trivial schedules
0.0% The honest peer did a rollback
(1000 in total):
98.6% There exist headers that have to be downloaded exactly once
1.4% All headers are within the last jump window
Adversaries killed by GDD (1000 in total):
84.7% 100.0%
5.5% 66.7%
5.0% 50.0%
3.0% 75.0%
1.2% 0.0%
0.6% 33.3%
Adversaries killed by LoP (1000 in total):
100.0% 0.0%
Adversaries killed by Timeout (1000 in total):
100.0% 0.0%
Surviving adversaries (1000 in total):
100.0% 0.0%
honest peers do their own thing: OK (92.16s)
+++ OK, passed 1000 tests:
100.0% All adversaries have more than k blocks after intersection
99.5% Full genesis window after intersection
68.8% All adversaries have at least 1 forecastable block after intersection
33.5% An adversary did a rollback
15.7% All adversaries have k+1 blocks in forecast window after intersection
0.0% All adversaries have empty schedules
0.0% All adversaries have trivial schedules
0.0% The honest peer did a rollback
(1000 in total):
99.3% There exist headers that have to be downloaded exactly once
0.7% All headers are within the last jump window
Adversaries killed by GDD (1000 in total):
81.5% 100.0%
6.4% 50.0%
5.6% 66.7%
4.0% 75.0%
1.3% 33.3%
1.0% 0.0%
0.2% 25.0%
Adversaries killed by LoP (1000 in total):
100.0% 0.0%
Adversaries killed by Timeout (1000 in total):
100.0% 0.0%
Surviving adversaries (1000 in total):
100.0% 0.0%
gdd
basic: OK (0.47s)
+++ OK, passed 1000 tests.
monotonicity: OK (2.22s)
+++ OK, passed 1000 tests.
re-triggers chain selection on disconnection: OK (28.39s)
+++ OK, passed 1000 tests; 13 discarded:
100.0% All adversaries have more than k blocks after intersection
100.0% Full genesis window after intersection
84.9% All adversaries have at least 1 forecastable block after intersection
27.4% All adversaries have k+1 blocks in forecast window after intersection
0.0% All adversaries have empty schedules
0.0% All adversaries have trivial schedules
0.0% An adversary did a rollback
0.0% The honest peer did a rollback
Adversaries killed by GDD (1000 in total):
70.6% 0.0%
29.4% 100.0%
Adversaries killed by LoP (1000 in total):
100.0% 0.0%
Adversaries killed by Timeout (1000 in total):
100.0% 0.0%
Surviving adversaries (1000 in total):
100.0% 0.0%
long range attack
one adversary: OK (1.73s)
+++ OK, passed 10 tests:
100% All adversaries have at least 1 forecastable block after intersection
100% All adversaries have more than k blocks after intersection
100% Full genesis window after intersection
60% All adversaries have k+1 blocks in forecast window after intersection
0% All adversaries have empty schedules
0% All adversaries have trivial schedules
0% An adversary did a rollback
0% The honest peer did a rollback
Adversaries killed by GDD (10 in total):
100% 0.0%
Adversaries killed by LoP (10 in total):
100% 0.0%
Adversaries killed by Timeout (10 in total):
90% 0.0%
10% 100.0%
Surviving adversaries (10 in total):
90% 100.0%
10% 0.0%
LoE
adversary does not hit timeouts: OK (17.19s)
+++ OK, passed 1000 tests:
100.0% All adversaries have more than k blocks after intersection
100.0% All adversaries have trivial schedules
99.3% Full genesis window after intersection
85.7% All adversaries have at least 1 forecastable block after intersection
28.0% All adversaries have k+1 blocks in forecast window after intersection
0.0% All adversaries have empty schedules
0.0% An adversary did a rollback
0.0% The honest peer did a rollback
Adversaries killed by GDD (1000 in total):
100.0% 0.0%
Adversaries killed by LoP (1000 in total):
100.0% 0.0%
Adversaries killed by Timeout (1000 in total):
100.0% 0.0%
Surviving adversaries (1000 in total):
100.0% 100.0%
adversary hits timeouts: OK (19.78s)
+++ OK, passed 1000 tests:
100.0% All adversaries have more than k blocks after intersection
100.0% All adversaries have trivial schedules
98.7% Full genesis window after intersection
84.6% All adversaries have at least 1 forecastable block after intersection
28.3% All adversaries have k+1 blocks in forecast window after intersection
0.0% All adversaries have empty schedules
0.0% An adversary did a rollback
0.0% The honest peer did a rollback
Adversaries killed by GDD (1000 in total):
100.0% 0.0%
Adversaries killed by LoP (1000 in total):
100.0% 0.0%
Adversaries killed by Timeout (1000 in total):
100.0% 100.0%
Surviving adversaries (1000 in total):
100.0% 0.0%
LoP
wait just enough: OK (1.02s)
+++ OK, passed 1000 tests:
100.0% All adversaries have at least 1 forecastable block after intersection
100.0% All adversaries have empty schedules
100.0% All adversaries have k+1 blocks in forecast window after intersection
100.0% All adversaries have more than k blocks after intersection
100.0% All adversaries have trivial schedules
0.0% An adversary did a rollback
0.0% Full genesis window after intersection
0.0% The honest peer did a rollback
Adversaries killed by GDD (1000 in total):
100.0% 0.0%
Adversaries killed by LoP (1000 in total):
100.0% 0.0%
Adversaries killed by Timeout (1000 in total):
100.0% 0.0%
Surviving adversaries (1000 in total):
100.0% 0.0%
wait too much: OK (1.21s)
+++ OK, passed 1000 tests:
100.0% All adversaries have at least 1 forecastable block after intersection
100.0% All adversaries have k+1 blocks in forecast window after intersection
100.0% All adversaries have more than k blocks after intersection
100.0% All adversaries have trivial schedules
0.0% All adversaries have empty schedules
0.0% An adversary did a rollback
0.0% Full genesis window after intersection
0.0% The honest peer did a rollback
Adversaries killed by GDD (1000 in total):
100.0% 0.0%
Adversaries killed by LoP (1000 in total):
100.0% 100.0%
Adversaries killed by Timeout (1000 in total):
100.0% 0.0%
Surviving adversaries (1000 in total):
100.0% 0.0%
wait behind forecast horizon: OK (2.71s)
+++ OK, passed 1000 tests:
100.0% All adversaries have at least 1 forecastable block after intersection
100.0% All adversaries have empty schedules
100.0% All adversaries have k+1 blocks in forecast window after intersection
100.0% All adversaries have more than k blocks after intersection
100.0% All adversaries have trivial schedules
0.0% An adversary did a rollback
0.0% Full genesis window after intersection
0.0% The honest peer did a rollback
Adversaries killed by GDD (1000 in total):
100.0% 0.0%
Adversaries killed by LoP (1000 in total):
100.0% 0.0%
Adversaries killed by Timeout (1000 in total):
100.0% 0.0%
Surviving adversaries (1000 in total):
100.0% 0.0%
serve just fast enough: OK (33.52s)
+++ OK, passed 1000 tests:
100.0% All adversaries have at least 1 forecastable block after intersection
100.0% All adversaries have empty schedules
100.0% All adversaries have k+1 blocks in forecast window after intersection
100.0% All adversaries have more than k blocks after intersection
100.0% All adversaries have trivial schedules
0.0% An adversary did a rollback
0.0% Full genesis window after intersection
0.0% The honest peer did a rollback
Adversaries killed by GDD (1000 in total):
100.0% 0.0%
Adversaries killed by LoP (1000 in total):
100.0% 0.0%
Adversaries killed by Timeout (1000 in total):
100.0% 0.0%
Surviving adversaries (1000 in total):
100.0% 0.0%
serve too slow: OK (16.69s)
+++ OK, passed 1000 tests:
100.0% All adversaries have at least 1 forecastable block after intersection
100.0% All adversaries have k+1 blocks in forecast window after intersection
100.0% All adversaries have more than k blocks after intersection
0.0% All adversaries have empty schedules
0.0% All adversaries have trivial schedules
0.0% An adversary did a rollback
0.0% Full genesis window after intersection
0.0% The honest peer did a rollback
Adversaries killed by GDD (1000 in total):
100.0% 0.0%
Adversaries killed by LoP (1000 in total):
100.0% 100.0%
Adversaries killed by Timeout (1000 in total):
100.0% 0.0%
Surviving adversaries (1000 in total):
100.0% 0.0%
delaying attack succeeds without LoP: OK (13.29s)
+++ OK, passed 1000 tests:
100.0% All adversaries have more than k blocks after intersection
100.0% All adversaries have trivial schedules
99.8% Full genesis window after intersection
83.5% All adversaries have at least 1 forecastable block after intersection
25.3% All adversaries have k+1 blocks in forecast window after intersection
0.0% All adversaries have empty schedules
0.0% An adversary did a rollback
0.0% The honest peer did a rollback
Adversaries killed by GDD (1000 in total):
100.0% 0.0%
Adversaries killed by LoP (1000 in total):
100.0% 0.0%
Adversaries killed by Timeout (1000 in total):
100.0% 0.0%
Surviving adversaries (1000 in total):
100.0% 100.0%
delaying attack fails with LoP: OK (17.47s)
+++ OK, passed 1000 tests:
100.0% All adversaries have more than k blocks after intersection
100.0% All adversaries have trivial schedules
99.0% Full genesis window after intersection
85.3% All adversaries have at least 1 forecastable block after intersection
28.6% All adversaries have k+1 blocks in forecast window after intersection
0.0% All adversaries have empty schedules
0.0% An adversary did a rollback
0.0% The honest peer did a rollback
Adversaries killed by GDD (1000 in total):
100.0% 0.0%
Adversaries killed by LoP (1000 in total):
100.0% 100.0%
Adversaries killed by Timeout (1000 in total):
100.0% 0.0%
Surviving adversaries (1000 in total):
100.0% 0.0%
uniform
stalling leashing attack: OK (32.08s)
+++ OK, passed 1000 tests; 3 discarded:
100.0% All adversaries have more than k blocks after intersection
99.7% Full genesis window after intersection
70.5% All adversaries have at least 1 forecastable block after intersection
25.6% Some adversaries performed rollbacks
25.4% An adversary did a rollback
16.9% All adversaries have k+1 blocks in forecast window after intersection
0.0% All adversaries have empty schedules
0.0% All adversaries have trivial schedules
0.0% Immutable tip is Origin
0.0% The honest peer did a rollback
100.0% disconnected 100.0% of adversaries
Adversaries killed by GDD (1000 in total):
81.9% 100.0%
5.9% 66.7%
5.2% 50.0%
3.1% 0.0%
2.9% 75.0%
0.9% 33.3%
0.1% 25.0%
Adversaries killed by LoP (1000 in total):
96.0% 0.0%
1.1% 25.0%
1.1% 33.3%
0.8% 100.0%
0.8% 50.0%
0.2% 66.7%
Adversaries killed by Timeout (1000 in total):
100.0% 0.0%
Surviving adversaries (1000 in total):
100.0% 0.0%
time limited leashing attack: FAIL (3.48s)
*** Failed! Falsified (after 83 tests and 22 shrinks):
GenesisTest:
gtSecurityParam: 2
gtGenesisWindow: 8
gtForecastRange: 8
gtDelay: 0
gtSlotLength: SlotLength 20s
gtCSJParams: CSJParams {csjpJumpSize = SlotNo 8}
gtChainSyncTimeouts:
canAwait = Nothing
intersect = Just 10s
mustReply = Nothing
idle = Nothing
gtBlockFetchTimeouts:
busy = Just 60s
streaming = Just 60s
gtLoPBucketParams:
lbpCapacity = 50 tokens
lbpRate = 10 % 1 ≅ 10.00 tokens per second
gtBlockTree:
G | 1-1 2-5 3-7 4-9 5-13 6-14 7-17 8-21 9-22 10-23
G | 1-1 2-5 3-7 4-9 5-13 6-14[1] 7-18 8-22 9-24 10-25
slots: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
trunk: ─────1───────────2─────3─────4───────────5──6────────7───────────8──9─10
╰──6───────────7───────────8─────9─10
gtSchedule:
psSchedule =
0: honest : TP 10-23 | HP G | BP G @ 0.000000
1: honest : TP 10-23 | HP 10-23 | BP G @ 0.023778
2: honest : TP 10-23 | HP 10-23 | BP 10-23 @ 0.070434
3: adversary: TP 10-25[5x0,1,4x0] | HP G | BP G @ 4.859018
4: adversary: TP 10-25[5x0,1,4x0] | HP 7-18[5x0,1,0] | BP G @ 4.918406
psStartOrder = []
psMinEndTime = Time 32s
SelectedChain: 5-13 | 6-14 7-17
TipBlock: 7-17
PeerSimulatorResults:
No peers were disconnected
The immutable tip is too old: 10
10 > 9
Use --quickcheck-replay="(SMGen 17670168689226985155 16504008571739013505,2)" to reproduce.
Use -p '/time limited leashing attack/' to rerun this test only.
serve adversarial branches: OK (32.07s)
+++ OK, passed 1000 tests:
100.0% All adversaries have more than k blocks after intersection
99.3% Full genesis window after intersection
71.0% All adversaries have at least 1 forecastable block after intersection
26.3% An adversary did a rollback
26.3% Some adversaries performed rollbacks
18.6% All adversaries have k+1 blocks in forecast window after intersection
0.0% All adversaries have empty schedules
0.0% All adversaries have trivial schedules
0.0% Immutable tip is Origin
0.0% The honest peer did a rollback
100.0% disconnected 100.0% of adversaries
Adversaries killed by GDD (1000 in total):
87.0% 100.0%
4.2% 66.7%
4.0% 50.0%
2.1% 0.0%
1.9% 75.0%
0.7% 33.3%
0.1% 25.0%
Adversaries killed by LoP (1000 in total):
100.0% 0.0%
Adversaries killed by Timeout (1000 in total):
100.0% 0.0%
Surviving adversaries (1000 in total):
100.0% 0.0%
the LoE stalls the chain, but the immutable tip is honest: OK (34.18s)
+++ OK, passed 1000 tests:
100.0% All adversaries have more than k blocks after intersection
100.0% The selection is at a branch tip
99.6% Full genesis window after intersection
70.6% All adversaries have at least 1 forecastable block after intersection
27.5% An adversary did a rollback
17.7% All adversaries have k+1 blocks in forecast window after intersection
0.0% All adversaries have empty schedules
0.0% All adversaries have trivial schedules
0.0% The honest peer did a rollback
0.0% The immutable tip is at a fork intersection
Adversaries killed by GDD (1000 in total):
85.7% 100.0%
5.3% 66.7%
2.9% 50.0%
2.8% 75.0%
2.4% 0.0%
0.9% 33.3%
Adversaries killed by LoP (1000 in total):
100.0% 0.0%
Adversaries killed by Timeout (1000 in total):
100.0% 0.0%
Surviving adversaries (1000 in total):
100.0% 0.0%
the node is shut down and restarted after some time: OK (35.37s)
+++ OK, passed 1000 tests; 1 discarded:
100.0% All adversaries have more than k blocks after intersection
99.5% Full genesis window after intersection
60.9% All adversaries have at least 1 forecastable block after intersection
25.0% An adversary did a rollback
25.0% Some adversaries performed rollbacks
11.8% All adversaries have k+1 blocks in forecast window after intersection
0.0% All adversaries have empty schedules
0.0% All adversaries have trivial schedules
0.0% Immutable tip is Origin
0.0% The honest peer did a rollback
100.0% disconnected 100.0% of adversaries
Adversaries killed by GDD (1000 in total):
78.7% 100.0%
6.3% 50.0%
5.8% 66.7%
3.9% 75.0%
3.6% 0.0%
1.5% 33.3%
0.2% 25.0%
Adversaries killed by LoP (1000 in total):
100.0% 0.0%
Adversaries killed by Timeout (1000 in total):
100.0% 0.0%
Surviving adversaries (1000 in total):
100.0% 0.0%
block fetch leashing attack: OK (23.00s)
+++ OK, passed 1000 tests; 4 discarded:
100.0% All adversaries have at least 1 forecastable block after intersection
100.0% All adversaries have k+1 blocks in forecast window after intersection
100.0% All adversaries have more than k blocks after intersection
0.0% All adversaries have empty schedules
0.0% All adversaries have trivial schedules
0.0% An adversary did a rollback
0.0% Full genesis window after intersection
0.0% Immutable tip is Origin
0.0% Some adversaries performed rollbacks
0.0% The honest peer did a rollback
100.0% disconnected 0.0% of adversaries
Adversaries killed by GDD (1000 in total):
100.0% 0.0%
Adversaries killed by LoP (1000 in total):
100.0% 0.0%
Adversaries killed by Timeout (1000 in total):
100.0% 0.0%
Surviving adversaries (1000 in total):
100.0% 100.0%
GSM
GSM yield regression: OK
+++ OK, passed 1 test.
Commands (5 in total):
20% ExtendSelection
20% NewCandidate
20% ReadMarker
20% StartIdling
20% TimePasses
Notables (2 in total):
50% FlickerN
50% TooOldN
GSM (no peers): OK (0.36s)
+++ OK, passed 1000 tests.
Commands (3000 in total):
33.33% ReadGsmState
33.33% ReadMarker
33.33% TimePasses
Notables (1410 in total):
36.38% FellBehindN
34.54% <none>
18.44% PreSyncingToSyncingN
10.64% BigDurN
GSM (at most 1 peer): OK (0.46s)
+++ OK, passed 1000 tests.
Commands (7347 in total):
13.61% NewCandidate
13.61% StartIdling
13.61% TimePasses
13.47% ReadGsmState
13.46% ReadMarker
13.39% ModifyCandidate
10.43% Disconnect
8.41% ExtendSelection
Notables (3425 in total):
20.79% FellBehindN
19.50% PreSyncingToSyncingN
13.66% TooOldN
13.17% CaughtUpN
10.16% BigDurN
9.81% FlickerN
9.64% SyncingToPreSyncingN
3.27% <none>
GSM (at most 2 peers): OK (0.44s)
+++ OK, passed 1000 tests.
Commands (7438 in total):
13.44% NewCandidate
13.44% TimePasses
13.43% StartIdling
13.24% ModifyCandidate
13.23% ReadGsmState
13.20% ReadMarker
10.16% ExtendSelection
9.84% Disconnect
Notables (3351 in total):
21.07% FellBehindN
20.89% PreSyncingToSyncingN
14.50% TooOldN
14.41% CaughtUpN
12.56% SyncingToPreSyncingN
8.06% BigDurN
6.45% FlickerN
2.03% <none>
0.03% NotThrashingN
GSM (at most 3 peers): OK (0.52s)
+++ OK, passed 1000 tests.
Commands (7396 in total):
13.52% NewCandidate
13.52% StartIdling
13.52% TimePasses
13.29% ReadMarker
13.24% ModifyCandidate
13.21% ReadGsmState
10.44% ExtendSelection
9.26% Disconnect
Notables (3062 in total):
24.72% PreSyncingToSyncingN
20.90% FellBehindN
17.15% SyncingToPreSyncingN
11.82% CaughtUpN
11.63% TooOldN
7.74% BigDurN
4.70% FlickerN
1.34% <none>
GSM (at most 4 peers): OK (0.44s)
+++ OK, passed 1000 tests.
Commands (7354 in total):
13.60% NewCandidate
13.60% TimePasses
13.58% StartIdling
13.30% ReadGsmState
13.30% ReadMarker
13.20% ModifyCandidate
10.76% ExtendSelection
8.66% Disconnect
Notables (2924 in total):
28.56% PreSyncingToSyncingN
22.06% SyncingToPreSyncingN
20.38% FellBehindN
9.20% CaughtUpN
8.99% TooOldN
7.39% BigDurN
2.67% FlickerN
0.75% <none>
GSM (at most 5 peers): OK (0.58s)
+++ OK, passed 1000 tests.
Commands (7316 in total):
13.67% NewCandidate
13.67% TimePasses
13.63% StartIdling
13.26% ReadMarker
13.11% ReadGsmState
13.07% ModifyCandidate
10.72% ExtendSelection
8.88% Disconnect
Notables (2849 in total):
30.50% PreSyncingToSyncingN
24.29% SyncingToPreSyncingN
20.78% FellBehindN
7.97% BigDurN
7.16% CaughtUpN
7.16% TooOldN
1.72% FlickerN
0.39% <none>
0.04% NotThrashingN
PeerSimulator
rollback
can rollback: OK (7.59s)
+++ OK, passed 50 tests; 54 discarded:
100% All adversaries have at least 1 forecastable block after intersection
100% All adversaries have empty schedules
100% All adversaries have k+1 blocks in forecast window after intersection
100% All adversaries have more than k blocks after intersection
100% All adversaries have trivial schedules
100% The honest peer did a rollback
98% Full genesis window after intersection
0% An adversary did a rollback
Adversaries killed by GDD (50 in total):
100% 0.0%
Adversaries killed by LoP (50 in total):
100% 0.0%
Adversaries killed by Timeout (50 in total):
100% 0.0%
Surviving adversaries (50 in total):
100% 0.0%
cannot rollback: OK (2.33s)
+++ OK, passed 50 tests:
100% All adversaries have empty schedules
100% All adversaries have more than k blocks after intersection
100% All adversaries have trivial schedules
100% The honest peer did a rollback
98% Full genesis window after intersection
94% All adversaries have at least 1 forecastable block after intersection
26% All adversaries have k+1 blocks in forecast window after intersection
0% An adversary did a rollback
Adversaries killed by GDD (50 in total):
100% 0.0%
Adversaries killed by LoP (50 in total):
100% 0.0%
Adversaries killed by Timeout (50 in total):
100% 0.0%
Surviving adversaries (50 in total):
100% 0.0%
timeouts
does time out: OK (0.59s)
+++ OK, passed 10 tests:
100% All adversaries have at least 1 forecastable block after intersection
100% All adversaries have k+1 blocks in forecast window after intersection
100% All adversaries have more than k blocks after intersection
100% All adversaries have trivial schedules
0% All adversaries have empty schedules
0% An adversary did a rollback
0% Full genesis window after intersection
0% The honest peer did a rollback
Adversaries killed by GDD (10 in total):
100% 0.0%
Adversaries killed by LoP (10 in total):
100% 0.0%
Adversaries killed by Timeout (10 in total):
100% 100.0%
Surviving adversaries (10 in total):
100% 0.0%
does not time out: OK (0.51s)
+++ OK, passed 10 tests:
100% All adversaries have at least 1 forecastable block after intersection
100% All adversaries have empty schedules
100% All adversaries have k+1 blocks in forecast window after intersection
100% All adversaries have more than k blocks after intersection
100% All adversaries have trivial schedules
0% An adversary did a rollback
0% Full genesis window after intersection
0% The honest peer did a rollback
Adversaries killed by GDD (10 in total):
100% 0.0%
Adversaries killed by LoP (10 in total):
100% 0.0%
Adversaries killed by Timeout (10 in total):
100% 0.0%
Surviving adversaries (10 in total):
100% 0.0%
ChainSync kills BlockFetch: OK (0.23s)
+++ OK, passed 100 tests:
100% All adversaries have at least 1 forecastable block after intersection
100% All adversaries have empty schedules
100% All adversaries have k+1 blocks in forecast window after intersection
100% All adversaries have more than k blocks after intersection
100% All adversaries have trivial schedules
0% An adversary did a rollback
0% Full genesis window after intersection
0% The honest peer did a rollback
Adversaries killed by GDD (100 in total):
100% 0.0%
Adversaries killed by LoP (100 in total):
100% 0.0%
Adversaries killed by Timeout (100 in total):
100% 0.0%
Surviving adversaries (100 in total):
100% 0.0%
shrinking functions
honest peer shrinking
actually shortens the schedule: OK (1.94s)
+++ OK, passed 100 tests.
preserves the final state all peers: OK (4.66s)
+++ OK, passed 100 tests.
PointSchedule
zipMany: OK
+++ OK, passed 10000 tests.
singleJumpTipPoints: OK (0.03s)
+++ OK, passed 10000 tests.
tipPointSchedule: OK (0.07s)
+++ OK, passed 10000 tests.
headerPointSchedule: OK (0.35s)
+++ OK, passed 10000 tests.
peerScheduleFromTipPoints: OK (2.21s)
+++ OK, passed 10000 tests.
1 out of 52 tests failed (640.46s)
Loading