The 2.0.3 reruns of rows 1b and 1c on the fixed node (finality-2.0.3-kind-and-conflict c8d22a85, 9 October 2026, 01:27 to 01:45 UK): the lock kind reads recovery on every node, two valid certificates at one index pause finality with reason conflict and no new lock above it; rows, files and the registry batch
Three runs on real nodes (igneumd a37f4b63 built from c8d22a85's code, build-5 and build-6, lease pool, pid watchers, zero restarts): 1b with e at 0.20 (A recovered at index 10 at 55.46 percent; that certificate reads lockKind recovery on A's, B's and C's nodes; 0 conflicts, 0 disagreement, all three at 24), 1b with e at 0.30 (the same at index 11, all three at 27), 1c (A and B recovered at index 11, two recovery certificates; after the heal both holders read "conflict: two valid certificates at index 11", finalityActive false, no lock installed above it; C followed A's chain, B's never reached it). Finding 1 and finding 2 of the native runs closed on the node. Batch fin-203-20261009T0127Z recorded (FIN-02, FIN-07 PASS on node:finality-realnode, manifest c8d22a85). Harness: v4.mjs records finalityActive per node; run-row.sh takes PAIR. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
32e2311057
commit
4e1eae54e1
17 changed files with 1313 additions and 28 deletions
|
|
@ -7524,21 +7524,21 @@
|
|||
"manual_page": 48,
|
||||
"owner_lane": "finality lane (aca0f5ed924a2a99b)",
|
||||
"run_status": "PASS",
|
||||
"evidence_path": "sim/finality-attacks-results/native-2026-10-09/s1b2.md",
|
||||
"run_id": "fin-native-20261008T2300Z",
|
||||
"updated": "2026-10-09T00:03:48.070Z",
|
||||
"evidence_path": "sim/finality-attacks-results/native-2026-10-09/s203-1c.md",
|
||||
"run_id": "fin-203-20261009T0127Z",
|
||||
"updated": "2026-10-09T00:47:15.723Z",
|
||||
"evidence_record": {
|
||||
"requirement_id": "FIN-02",
|
||||
"decision": "PASS",
|
||||
"method": "native",
|
||||
"cell": "node:finality-realnode",
|
||||
"manifest_sha": "e189afb4",
|
||||
"run_id": "fin-native-20261008T2300Z",
|
||||
"evidence": "sim/finality-attacks-results/native-2026-10-09/s1b2.md",
|
||||
"manifest_sha": "c8d22a85",
|
||||
"run_id": "fin-203-20261009T0127Z",
|
||||
"evidence": "sim/finality-attacks-results/native-2026-10-09/s203-1c.md",
|
||||
"in_progress": false,
|
||||
"coverage": "partial: the real-node half; independent operators and the review remain",
|
||||
"release_identity": {
|
||||
"commit": "e189afb4",
|
||||
"commit": "c8d22a85",
|
||||
"lockfile": "",
|
||||
"binary": "",
|
||||
"network_object": "",
|
||||
|
|
@ -7547,7 +7547,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-09T00:03:48.070Z"
|
||||
"at": "2026-10-09T00:47:15.723Z"
|
||||
},
|
||||
"approvals": {
|
||||
"scope_approved": null,
|
||||
|
|
@ -7561,13 +7561,13 @@
|
|||
"decision": "PASS",
|
||||
"method": "native",
|
||||
"cell": "node:finality-realnode",
|
||||
"manifest_sha": "e189afb4",
|
||||
"run_id": "fin-native-20261008T2300Z",
|
||||
"evidence": "sim/finality-attacks-results/native-2026-10-09/s1b2.md",
|
||||
"manifest_sha": "c8d22a85",
|
||||
"run_id": "fin-203-20261009T0127Z",
|
||||
"evidence": "sim/finality-attacks-results/native-2026-10-09/s203-1c.md",
|
||||
"in_progress": false,
|
||||
"coverage": "partial: the real-node half; independent operators and the review remain",
|
||||
"release_identity": {
|
||||
"commit": "e189afb4",
|
||||
"commit": "c8d22a85",
|
||||
"lockfile": "",
|
||||
"binary": "",
|
||||
"network_object": "",
|
||||
|
|
@ -7576,7 +7576,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-09T00:03:48.070Z"
|
||||
"at": "2026-10-09T00:47:15.723Z"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
@ -7938,21 +7938,21 @@
|
|||
"manual_page": 50,
|
||||
"owner_lane": "finality lane (aca0f5ed924a2a99b)",
|
||||
"run_status": "NOT RUN",
|
||||
"evidence_path": "sim/finality-attacks-results/native-2026-10-09/s1b2.md; build-1:/srv/artefacts/tas/202-490ebcfe-5db25637/node-490ebcfe/box4-consensus.log",
|
||||
"run_id": "fin-native-20261008T2300Z",
|
||||
"updated": "2026-10-09T00:03:48.070Z",
|
||||
"evidence_path": "sim/finality-attacks-results/native-2026-10-09/s203-1c.md; build-1:/srv/artefacts/tas/202-490ebcfe-5db25637/node-490ebcfe/box4-consensus.log",
|
||||
"run_id": "fin-203-20261009T0127Z",
|
||||
"updated": "2026-10-09T00:47:15.723Z",
|
||||
"evidence_record": {
|
||||
"requirement_id": "FIN-07",
|
||||
"decision": "PASS",
|
||||
"method": "native",
|
||||
"cell": "node:finality-realnode",
|
||||
"manifest_sha": "e189afb4",
|
||||
"run_id": "fin-native-20261008T2300Z",
|
||||
"evidence": "sim/finality-attacks-results/native-2026-10-09/s1b2.md",
|
||||
"manifest_sha": "c8d22a85",
|
||||
"run_id": "fin-203-20261009T0127Z",
|
||||
"evidence": "sim/finality-attacks-results/native-2026-10-09/s203-1c.md",
|
||||
"in_progress": false,
|
||||
"coverage": "partial: deterministic recovery after reconnection and crash on real nodes (the HEAL reruns)",
|
||||
"release_identity": {
|
||||
"commit": "e189afb4",
|
||||
"commit": "c8d22a85",
|
||||
"lockfile": "",
|
||||
"binary": "",
|
||||
"network_object": "",
|
||||
|
|
@ -7961,7 +7961,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-09T00:03:48.070Z"
|
||||
"at": "2026-10-09T00:47:15.723Z"
|
||||
},
|
||||
"approvals": {
|
||||
"scope_approved": null,
|
||||
|
|
@ -7975,13 +7975,13 @@
|
|||
"decision": "PASS",
|
||||
"method": "native",
|
||||
"cell": "node:finality-realnode",
|
||||
"manifest_sha": "e189afb4",
|
||||
"run_id": "fin-native-20261008T2300Z",
|
||||
"evidence": "sim/finality-attacks-results/native-2026-10-09/s1b2.md",
|
||||
"manifest_sha": "c8d22a85",
|
||||
"run_id": "fin-203-20261009T0127Z",
|
||||
"evidence": "sim/finality-attacks-results/native-2026-10-09/s203-1c.md",
|
||||
"in_progress": false,
|
||||
"coverage": "partial: deterministic recovery after reconnection and crash on real nodes (the HEAL reruns)",
|
||||
"release_identity": {
|
||||
"commit": "e189afb4",
|
||||
"commit": "c8d22a85",
|
||||
"lockfile": "",
|
||||
"binary": "",
|
||||
"network_object": "",
|
||||
|
|
@ -7990,7 +7990,7 @@
|
|||
},
|
||||
"claim_impact": "",
|
||||
"reviewer": "",
|
||||
"at": "2026-10-09T00:03:48.070Z"
|
||||
"at": "2026-10-09T00:47:15.723Z"
|
||||
},
|
||||
"suite:consensus": {
|
||||
"requirement_id": "FIN-07",
|
||||
|
|
|
|||
326
sim/finality-attacks-results/native-2026-10-09/s203-1b2.json
Normal file
326
sim/finality-attacks-results/native-2026-10-09/s203-1b2.json
Normal file
|
|
@ -0,0 +1,326 @@
|
|||
{
|
||||
"results": [
|
||||
{
|
||||
"name": "1b-v4-recovery",
|
||||
"pass": true
|
||||
}
|
||||
],
|
||||
"facts": {
|
||||
"1b-v4-recovery": {
|
||||
"row": "b",
|
||||
"rule": "v4-recovery",
|
||||
"eShareAsked": 0.2,
|
||||
"box": "igneum-build-5",
|
||||
"node": "/srv/builds/_scratch/fin-runs/pair-203-wip/igneumd",
|
||||
"uk": "09/10/2026, 01:45:07",
|
||||
"windows": {
|
||||
"WARM": 230,
|
||||
"SPLIT": 420,
|
||||
"HEAL": 400,
|
||||
"BPS": 1,
|
||||
"DELAY_MS": 300
|
||||
},
|
||||
"beforeMax": [
|
||||
6,
|
||||
6,
|
||||
6
|
||||
],
|
||||
"preMax": 6,
|
||||
"newLocks": [
|
||||
7,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"firstNew": [
|
||||
220,
|
||||
null,
|
||||
null
|
||||
],
|
||||
"splitRecovery": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"recoveryIdx": [
|
||||
[
|
||||
10
|
||||
],
|
||||
[
|
||||
15,
|
||||
10
|
||||
],
|
||||
[
|
||||
15,
|
||||
10
|
||||
]
|
||||
],
|
||||
"splitKinds": [
|
||||
{
|
||||
"5": "final",
|
||||
"6": "final",
|
||||
"10": "recovery",
|
||||
"11": "final",
|
||||
"12": "final",
|
||||
"13": "final"
|
||||
},
|
||||
{
|
||||
"5": "final",
|
||||
"6": "final"
|
||||
},
|
||||
{
|
||||
"5": "final",
|
||||
"6": "final"
|
||||
}
|
||||
],
|
||||
"afterKinds": [
|
||||
{
|
||||
"5": "final",
|
||||
"6": "final",
|
||||
"10": "recovery",
|
||||
"11": "final",
|
||||
"12": "final",
|
||||
"13": "final",
|
||||
"14": "final",
|
||||
"15": "final",
|
||||
"16": "final",
|
||||
"17": "final",
|
||||
"18": "final",
|
||||
"19": "final",
|
||||
"20": "final",
|
||||
"21": "final",
|
||||
"22": "final",
|
||||
"23": "final",
|
||||
"24": "final"
|
||||
},
|
||||
{
|
||||
"5": "final",
|
||||
"6": "final",
|
||||
"10": "recovery",
|
||||
"11": "final",
|
||||
"12": "final",
|
||||
"13": "final",
|
||||
"14": "final",
|
||||
"15": "recovery",
|
||||
"16": "final",
|
||||
"17": "final",
|
||||
"18": "final",
|
||||
"19": "final",
|
||||
"20": "final",
|
||||
"21": "final",
|
||||
"22": "final",
|
||||
"23": "final",
|
||||
"24": "final"
|
||||
},
|
||||
{
|
||||
"5": "final",
|
||||
"6": "final",
|
||||
"10": "recovery",
|
||||
"11": "final",
|
||||
"12": "final",
|
||||
"13": "final",
|
||||
"14": "final",
|
||||
"15": "recovery",
|
||||
"16": "final",
|
||||
"17": "final",
|
||||
"18": "final",
|
||||
"19": "final",
|
||||
"20": "final",
|
||||
"21": "final",
|
||||
"22": "final",
|
||||
"23": "final",
|
||||
"24": "final"
|
||||
}
|
||||
],
|
||||
"latestKind": [
|
||||
"final",
|
||||
"final",
|
||||
"final"
|
||||
],
|
||||
"afterMax": [
|
||||
24,
|
||||
24,
|
||||
24
|
||||
],
|
||||
"lost": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"splitConflicts": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"conflicts": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"strips": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"reasons": [
|
||||
"active",
|
||||
"active",
|
||||
"active"
|
||||
],
|
||||
"splitReason": [
|
||||
"recovered: recovery lock at index 10 with 55.46% of the old anchored table (rule v4), active since; the table re-anchored there",
|
||||
"paused: held by weight table 6 past its window, 29.41% of it signing; a recovery lock needs more than half (rule v4)",
|
||||
"paused: under two thirds of the weight is signing (31.93%; the table frozen at lock 6 has 15.12% signing)"
|
||||
],
|
||||
"reconnected": [
|
||||
99,
|
||||
72
|
||||
],
|
||||
"firstLockAfterHeal": 33,
|
||||
"disagree": 0,
|
||||
"twoAtOne": [],
|
||||
"equivocatorHash": "6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437",
|
||||
"eShare": 0.25210084033613445,
|
||||
"tableAtCut": [
|
||||
{
|
||||
"keyHash": "6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437",
|
||||
"blocks": 30
|
||||
},
|
||||
{
|
||||
"keyHash": "dfdcbf58e8dcc22bc6a9a237a4154e922c0c2775fa2603f7884c0bbc7066b0ae",
|
||||
"blocks": 20
|
||||
},
|
||||
{
|
||||
"keyHash": "e2230237a914db9a8f44978fb0b3b95ea362e4283ea3cf713e43476bfa845e1d",
|
||||
"blocks": 19
|
||||
},
|
||||
{
|
||||
"keyHash": "e3b7bd178e7744facca424e712d8d08148e957ce3a1ae3e5b7930e16fe6d9ca3",
|
||||
"blocks": 18
|
||||
},
|
||||
{
|
||||
"keyHash": "f2f3cc846420ed9121642ccf07f03f7b435f2e8afcf90af5bac32518d287d19c",
|
||||
"blocks": 16
|
||||
},
|
||||
{
|
||||
"keyHash": "f3b6639d043bbec3aa72e1ebec902777bdd50a31d4f54cd323c2f96888daf32d",
|
||||
"blocks": 16
|
||||
}
|
||||
],
|
||||
"activeAtEnd": [
|
||||
true,
|
||||
true,
|
||||
true
|
||||
],
|
||||
"certificates": {
|
||||
"n0": {
|
||||
"5": {
|
||||
"index": 5,
|
||||
"checkpoint": "fb037c103a33c6e2b3a16635bfce62bbe39283c0fc9f2587d020d179b5575fa7",
|
||||
"voterCount": 6,
|
||||
"bitmap": "3f",
|
||||
"signature": "b9ccff9d77bd27dea9a5a62aee611765d59cbb0d1e9e2c9d1e3eac2b71776a6209eb2d635b792b34a0c0af26d5c17db80d805f562e239ef19b4158e8bd0c5d41db269dd9ea75a3632d7160805e724a016ba81f1a5a6416810b3e2fae61561b85",
|
||||
"aggregator": "6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437",
|
||||
"bytes": "0500000000000000fb037c103a33c6e2b3a16635bfce62bbe39283c0fc9f2587d020d179b5575fa706000000010000003fb9ccff9d77bd27dea9a5a62aee611765d59cbb0d1e9e2c9d1e3eac2b71776a6209eb2d635b792b34a0c0af26d5c17db80d805f562e239ef19b4158e8bd0c5d41db269dd9ea75a3632d7160805e724a016ba81f1a5a6416810b3e2fae61561b856b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437ad88c4ee385577533fc2e7158fa6b53ef927098f114af13483be680b36a525d97aa36a92fd97b1b03ba4cb609eea8be602462b7095bad8520a23eeb57dd92a334ef7962303686b02679c6805ae0488c4798c8177311ffee59ad1de750db6dc57",
|
||||
"carrier": "3f2ad16824c2692a4284c5f69fa68db2c6222ac9434935e62174d805c1647510"
|
||||
},
|
||||
"6": {
|
||||
"index": 6,
|
||||
"checkpoint": "666a3ff4b2718fdb22f276e13de44e7348cbb9daae360f28acdbee1cf94e75c6",
|
||||
"voterCount": 6,
|
||||
"bitmap": "33",
|
||||
"signature": "b2651acc11077a4ade78378176b1c0906d02f0c096d20b48a95740a368b5573efcdaf1e9df736c473264ea20144b531100d4d564b19b5f2b5a2870139ffd80dc16dba9edfc84357fc669bc37a520ea801c4bad3cecf097020f4211512b2d1d6f",
|
||||
"aggregator": "f3b6639d043bbec3aa72e1ebec902777bdd50a31d4f54cd323c2f96888daf32d",
|
||||
"bytes": "0600000000000000666a3ff4b2718fdb22f276e13de44e7348cbb9daae360f28acdbee1cf94e75c6060000000100000033b2651acc11077a4ade78378176b1c0906d02f0c096d20b48a95740a368b5573efcdaf1e9df736c473264ea20144b531100d4d564b19b5f2b5a2870139ffd80dc16dba9edfc84357fc669bc37a520ea801c4bad3cecf097020f4211512b2d1d6ff3b6639d043bbec3aa72e1ebec902777bdd50a31d4f54cd323c2f96888daf32d8e1be23fbc481e178d211e992efe473dc1a22b62c97a91e45aaaa6fcad6e1c114b40a2036201c00e15e9dfdc3822954918e33de40989bcc5735a166765db19ff08f0cf8653fe4251cb5be6fc4dd67923e066d050b64acec5bae0fab164dd4210",
|
||||
"carrier": "adfc651c6ed5c4bb968e78cfcd8e3579e588fc735df5f1c3d0d1fd54820e6c90"
|
||||
},
|
||||
"10": {
|
||||
"index": 10,
|
||||
"checkpoint": "d04cfbe5d8f3507f6dc5b8da66db6f501c94e37f39bee155445b4ce67bfe9eed",
|
||||
"voterCount": 5,
|
||||
"bitmap": "0b",
|
||||
"signature": "8d41fa16459c38c995ed28e7dd1e0b254faa0ae211f2d2697899b98797c3618f24e26880da94f34cddc1240f0639f49e15db480707343b27b971fd6ea4ecf9640cb7439d7d9757a10d80facefa7add52b4c68a14c2a470fc8db193f50f086ba0",
|
||||
"aggregator": "6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437",
|
||||
"bytes": "0a00000000000000d04cfbe5d8f3507f6dc5b8da66db6f501c94e37f39bee155445b4ce67bfe9eed05000000010000000b8d41fa16459c38c995ed28e7dd1e0b254faa0ae211f2d2697899b98797c3618f24e26880da94f34cddc1240f0639f49e15db480707343b27b971fd6ea4ecf9640cb7439d7d9757a10d80facefa7add52b4c68a14c2a470fc8db193f50f086ba06b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437ac3a6af52798b8030cd94af4c6e8d022bad3c1eea38e0391f2fb98b179ce406bb8ae30fd9d0000e4738d35cd7634d3ed12e157b10440f4de8632787236c7e465ffabcbc3218a94bd4f5c491fa24bd890ab1e4b0f3fd1e8fe60176622e44f1250",
|
||||
"carrier": "ee220905bb74c8f7d6bd3335fb8f5c945576242f421af25f05c6b216744c1b08"
|
||||
},
|
||||
"11": {
|
||||
"index": 11,
|
||||
"checkpoint": "aac8b03b5d8d2fb29026e9f63c1f87f1901b4533ed2c03732dacf1c63d2f1b03",
|
||||
"voterCount": 3,
|
||||
"bitmap": "07",
|
||||
"signature": "85a1b8fc21afcd2183bc95048ada238318ffe1f9964d5ece16312a413c6c74c55d8d8fd8546a557706230cd7c5bd58c50c148a6eeb9fbac66bc81b43828d84d67d4595d467d2a99e0383763d0ca686e535ffc7cb2a6f12ea0ef1285d1bc9ece6",
|
||||
"aggregator": "6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437",
|
||||
"bytes": "0b00000000000000aac8b03b5d8d2fb29026e9f63c1f87f1901b4533ed2c03732dacf1c63d2f1b0303000000010000000785a1b8fc21afcd2183bc95048ada238318ffe1f9964d5ece16312a413c6c74c55d8d8fd8546a557706230cd7c5bd58c50c148a6eeb9fbac66bc81b43828d84d67d4595d467d2a99e0383763d0ca686e535ffc7cb2a6f12ea0ef1285d1bc9ece66b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe143788b11bba426a65b25cbc1e4b90fe0c83ecb2ff434d1505c06ff3908119dcea0ba2bd214ba5a7b3ac1fc069e5da72d7e719bae7d179ac1b8ea3b18faf738a3c30a865f2f014fa8eda83e6ae17ab427bc48ba9bd093aecd90fd3613a885c04be34",
|
||||
"carrier": "abc0f6cf2523567ece6607cbd4937bcfb973180975503ba9e459c45801001c27"
|
||||
},
|
||||
"12": {
|
||||
"index": 12,
|
||||
"checkpoint": "0af9b432b64277bbba18f6985efc6b02f88d22f7215e30a2f73df78a79af9e38",
|
||||
"voterCount": 3,
|
||||
"bitmap": "07",
|
||||
"signature": "a5e3b2ec1e585558bdad9d54bff9d8a2e08398a1624ef3eea55eeba52cfd1ea2c4ba184cbdaba6a8d8cf47bf695eae7d0a7e5219de9ac9f75a88a0b9a186e791d20fdc0151f3875b726bb11944c7326ad359d4508221a53f5264f6a9d06c9075",
|
||||
"aggregator": "6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437",
|
||||
"bytes": "0c000000000000000af9b432b64277bbba18f6985efc6b02f88d22f7215e30a2f73df78a79af9e38030000000100000007a5e3b2ec1e585558bdad9d54bff9d8a2e08398a1624ef3eea55eeba52cfd1ea2c4ba184cbdaba6a8d8cf47bf695eae7d0a7e5219de9ac9f75a88a0b9a186e791d20fdc0151f3875b726bb11944c7326ad359d4508221a53f5264f6a9d06c90756b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437a0e33f7ca88f2b4ae130e9cfd3eafabe9b1569c06382039d3d4f7a7d35117360a8c08a765eb7747d2f614e63327724bb0a517513b35cb2432ff1f92fef9a98e8b3518278120c30f5d29c0ad73fb16c607493530a522a377a5d4bcb6d56d2c738",
|
||||
"carrier": "cfe32e8fd116fca11fe51e830ed8d5606a77fbc5cfb00eb93319a5c2bb67154b"
|
||||
},
|
||||
"13": {
|
||||
"index": 13,
|
||||
"checkpoint": "98ea43915e49a3ecfdaff6c1104e2e0121f1df06eb2db660cb875dfd2cad3edd",
|
||||
"voterCount": 3,
|
||||
"bitmap": "07",
|
||||
"signature": "8ae058f7b5834fd1254e23728dd2a8ebab8c0aaa65169fb8b2cc654c11472f05b19f9f48ac3f78bb6d0e095a2f691b550d71f05c3f18e3e4a344e5fdea36baabe0087995a6573832043ad8f06262c30c607cd431879acad98282b1290416b654",
|
||||
"aggregator": "6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437",
|
||||
"bytes": "0d0000000000000098ea43915e49a3ecfdaff6c1104e2e0121f1df06eb2db660cb875dfd2cad3edd0300000001000000078ae058f7b5834fd1254e23728dd2a8ebab8c0aaa65169fb8b2cc654c11472f05b19f9f48ac3f78bb6d0e095a2f691b550d71f05c3f18e3e4a344e5fdea36baabe0087995a6573832043ad8f06262c30c607cd431879acad98282b1290416b6546b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe14378543cc77214884f271856b41b80e68cb57484b972ef7341daf322bba940e1a8c02a709cf50ca32a77384c6e6ceef322e009e9861fffbe52b190c6331b421f0f5a0589e49e8e7c4bb4daf8d584b31ec0d7dbf9ebdfb7cda4728b0dcb83cd2dd02",
|
||||
"carrier": "5e2c89cff3a003332aaac9b8d1fe7e110903cce4ca7660d7ddd79241806988fb"
|
||||
}
|
||||
},
|
||||
"n1": {
|
||||
"5": {
|
||||
"index": 5,
|
||||
"checkpoint": "fb037c103a33c6e2b3a16635bfce62bbe39283c0fc9f2587d020d179b5575fa7",
|
||||
"voterCount": 6,
|
||||
"bitmap": "3f",
|
||||
"signature": "b9ccff9d77bd27dea9a5a62aee611765d59cbb0d1e9e2c9d1e3eac2b71776a6209eb2d635b792b34a0c0af26d5c17db80d805f562e239ef19b4158e8bd0c5d41db269dd9ea75a3632d7160805e724a016ba81f1a5a6416810b3e2fae61561b85",
|
||||
"aggregator": "6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437",
|
||||
"bytes": "0500000000000000fb037c103a33c6e2b3a16635bfce62bbe39283c0fc9f2587d020d179b5575fa706000000010000003fb9ccff9d77bd27dea9a5a62aee611765d59cbb0d1e9e2c9d1e3eac2b71776a6209eb2d635b792b34a0c0af26d5c17db80d805f562e239ef19b4158e8bd0c5d41db269dd9ea75a3632d7160805e724a016ba81f1a5a6416810b3e2fae61561b856b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437ad88c4ee385577533fc2e7158fa6b53ef927098f114af13483be680b36a525d97aa36a92fd97b1b03ba4cb609eea8be602462b7095bad8520a23eeb57dd92a334ef7962303686b02679c6805ae0488c4798c8177311ffee59ad1de750db6dc57",
|
||||
"carrier": "3f2ad16824c2692a4284c5f69fa68db2c6222ac9434935e62174d805c1647510"
|
||||
},
|
||||
"6": {
|
||||
"index": 6,
|
||||
"checkpoint": "666a3ff4b2718fdb22f276e13de44e7348cbb9daae360f28acdbee1cf94e75c6",
|
||||
"voterCount": 6,
|
||||
"bitmap": "33",
|
||||
"signature": "b2651acc11077a4ade78378176b1c0906d02f0c096d20b48a95740a368b5573efcdaf1e9df736c473264ea20144b531100d4d564b19b5f2b5a2870139ffd80dc16dba9edfc84357fc669bc37a520ea801c4bad3cecf097020f4211512b2d1d6f",
|
||||
"aggregator": "f3b6639d043bbec3aa72e1ebec902777bdd50a31d4f54cd323c2f96888daf32d",
|
||||
"bytes": "0600000000000000666a3ff4b2718fdb22f276e13de44e7348cbb9daae360f28acdbee1cf94e75c6060000000100000033b2651acc11077a4ade78378176b1c0906d02f0c096d20b48a95740a368b5573efcdaf1e9df736c473264ea20144b531100d4d564b19b5f2b5a2870139ffd80dc16dba9edfc84357fc669bc37a520ea801c4bad3cecf097020f4211512b2d1d6ff3b6639d043bbec3aa72e1ebec902777bdd50a31d4f54cd323c2f96888daf32d8e1be23fbc481e178d211e992efe473dc1a22b62c97a91e45aaaa6fcad6e1c114b40a2036201c00e15e9dfdc3822954918e33de40989bcc5735a166765db19ff08f0cf8653fe4251cb5be6fc4dd67923e066d050b64acec5bae0fab164dd4210",
|
||||
"carrier": "adfc651c6ed5c4bb968e78cfcd8e3579e588fc735df5f1c3d0d1fd54820e6c90"
|
||||
}
|
||||
},
|
||||
"n2": {
|
||||
"5": {
|
||||
"index": 5,
|
||||
"checkpoint": "fb037c103a33c6e2b3a16635bfce62bbe39283c0fc9f2587d020d179b5575fa7",
|
||||
"voterCount": 6,
|
||||
"bitmap": "3f",
|
||||
"signature": "b9ccff9d77bd27dea9a5a62aee611765d59cbb0d1e9e2c9d1e3eac2b71776a6209eb2d635b792b34a0c0af26d5c17db80d805f562e239ef19b4158e8bd0c5d41db269dd9ea75a3632d7160805e724a016ba81f1a5a6416810b3e2fae61561b85",
|
||||
"aggregator": "6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437",
|
||||
"bytes": "0500000000000000fb037c103a33c6e2b3a16635bfce62bbe39283c0fc9f2587d020d179b5575fa706000000010000003fb9ccff9d77bd27dea9a5a62aee611765d59cbb0d1e9e2c9d1e3eac2b71776a6209eb2d635b792b34a0c0af26d5c17db80d805f562e239ef19b4158e8bd0c5d41db269dd9ea75a3632d7160805e724a016ba81f1a5a6416810b3e2fae61561b856b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437ad88c4ee385577533fc2e7158fa6b53ef927098f114af13483be680b36a525d97aa36a92fd97b1b03ba4cb609eea8be602462b7095bad8520a23eeb57dd92a334ef7962303686b02679c6805ae0488c4798c8177311ffee59ad1de750db6dc57",
|
||||
"carrier": "3f2ad16824c2692a4284c5f69fa68db2c6222ac9434935e62174d805c1647510"
|
||||
},
|
||||
"6": {
|
||||
"index": 6,
|
||||
"checkpoint": "666a3ff4b2718fdb22f276e13de44e7348cbb9daae360f28acdbee1cf94e75c6",
|
||||
"voterCount": 6,
|
||||
"bitmap": "33",
|
||||
"signature": "b2651acc11077a4ade78378176b1c0906d02f0c096d20b48a95740a368b5573efcdaf1e9df736c473264ea20144b531100d4d564b19b5f2b5a2870139ffd80dc16dba9edfc84357fc669bc37a520ea801c4bad3cecf097020f4211512b2d1d6f",
|
||||
"aggregator": "f3b6639d043bbec3aa72e1ebec902777bdd50a31d4f54cd323c2f96888daf32d",
|
||||
"bytes": "0600000000000000666a3ff4b2718fdb22f276e13de44e7348cbb9daae360f28acdbee1cf94e75c6060000000100000033b2651acc11077a4ade78378176b1c0906d02f0c096d20b48a95740a368b5573efcdaf1e9df736c473264ea20144b531100d4d564b19b5f2b5a2870139ffd80dc16dba9edfc84357fc669bc37a520ea801c4bad3cecf097020f4211512b2d1d6ff3b6639d043bbec3aa72e1ebec902777bdd50a31d4f54cd323c2f96888daf32d8e1be23fbc481e178d211e992efe473dc1a22b62c97a91e45aaaa6fcad6e1c114b40a2036201c00e15e9dfdc3822954918e33de40989bcc5735a166765db19ff08f0cf8653fe4251cb5be6fc4dd67923e066d050b64acec5bae0fab164dd4210",
|
||||
"carrier": "adfc651c6ed5c4bb968e78cfcd8e3579e588fc735df5f1c3d0d1fd54820e6c90"
|
||||
}
|
||||
}
|
||||
},
|
||||
"expect": "A recovers after a full window (lockKind recovery), B and C pause, the heal brings B and C onto A, 0 conflicts",
|
||||
"pass": true
|
||||
}
|
||||
}
|
||||
}
|
||||
35
sim/finality-attacks-results/native-2026-10-09/s203-1b2.log
Normal file
35
sim/finality-attacks-results/native-2026-10-09/s203-1b2.log
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
lease: holding 8 pool cores (16,17,18,19,20,21,22,23, waited 0 s, class measure, mem 8 GB): finality native runs s203-1b2 (measurement rows, plan finality-native-runs-2026-10-09)
|
||||
00:27:28.452 rule v4-recovery; node /srv/builds/_scratch/fin-runs/pair-203-wip/igneumd; miner /srv/builds/_scratch/fin-runs/pair-203-wip/igneum-miner; delay 300 ms; 1 blocks/s; override {"finality_v3_activation_daa":0,"finality_v4_activation_daa":0,"finality_v4_recovery":true}; box igneum-build-5; 09/10/2026, 01:27:28 UK
|
||||
00:27:28.453 === 1b (v4-recovery) starting ===
|
||||
00:27:29.304 n1 up pid 321600 json ws://127.0.0.1:29712 p2p 127.0.0.1:29711
|
||||
00:27:30.117 n0 up pid 321788 json ws://127.0.0.1:29702 p2p 127.0.0.1:29701
|
||||
00:27:30.928 n2 up pid 321974 json ws://127.0.0.1:29722 p2p 127.0.0.1:29721
|
||||
00:31:20.959 1b-v4-recovery: cut at warm 230 s: window daa ~179, voters 6, max locked 6/6/6, e holds 25.2% of the sliding table at the cut
|
||||
|
||||
### 1b-v4-recovery: three islands A = n0 (p0 p1), B = n1 (p2 p3), C = n2 (q0), honest 32/32/16 + e 20 at share 0.2 (e mines on A only); warm 230 s, split 420 s (both proxies cut), heal 400 s, 1 blocks/s in all, delay 300 ms, rule v4-recovery; real nodes on igneum-build-5, /srv/builds/_scratch/fin-runs/pair-203-wip/igneumd; 09/10/2026, 01:45:07 UK
|
||||
|
||||
expected: A recovers after a full window (lockKind recovery), B and C pause, the heal brings B and C onto A, 0 conflicts
|
||||
|
||||
| measure | n0 (A) | n1 (B) | n2 (C) |
|
||||
|---|---|---|---|
|
||||
| max locked index at the cut | 6 | 6 | 6 |
|
||||
| new locks during the split (index above 6) | 7 | 0 | 0 |
|
||||
| first new lock, s after the cut | 220 | none | none |
|
||||
| RECOVERY lock lines during the split (index) | 1 (10) | 0 | 0 |
|
||||
| finality reason at the end of the split | recovered: recovery lock at index 10 with 55.46% of the old anchored table (rule v4), acti | paused: held by weight table 6 past its window, 29.41% of it signing; a recovery lock need | paused: under two thirds of the weight is signing (31.93%; the table frozen at lock 6 has |
|
||||
| lock kinds above 6 at the end (igneum_getFinalityCheckpoints lockKind) | 10:recovery 11:final 12:final 13:final 14:final 15:final 16:final 17:final 18:final 19:final 20:final 21:final 22:final 23:final 24:final | 10:recovery 11:final 12:final 13:final 14:final 15:recovery 16:final 17:final 18:final 19:final 20:final 21:final 22:final 23:final 24:final | 10:recovery 11:final 12:final 13:final 14:final 15:recovery 16:final 17:final 18:final 19:final 20:final 21:final 22:final 23:final 24:final |
|
||||
| latestLockKind at the end | final | final | final |
|
||||
| max locked index at the end of the heal window | 24 | 24 | 24 |
|
||||
| pre-heal locks lost or moved after the heal | 0 | 0 | 0 |
|
||||
| conflicting certificates logged (split / end) | 0 / 0 | 0 / 0 | 0 / 0 |
|
||||
| EQUIVOCATION (strip) lines for e at the end | 0 | 0 | 0 |
|
||||
| finality reason at the end | active | active | active |
|
||||
| finalityActive at the end | true | true | true |
|
||||
|
||||
n0 reconnected 99 s after the gates reopened, n2 72 s; first lock after the heal 33 s after the gates reopened; locked indices disagreeing across the three nodes at the end: 0; two certificates at one index during the split: none; weights at the cut: window daa 179, voters 6, e 25.2% of the sliding table
|
||||
|
||||
[PASS] 1b-v4-recovery
|
||||
00:45:07.493 === 1b done ===
|
||||
|
||||
[PASS] 1b-v4-recovery
|
||||
lease: released 8 pool cores after 1059 s, exit 0
|
||||
26
sim/finality-attacks-results/native-2026-10-09/s203-1b2.md
Normal file
26
sim/finality-attacks-results/native-2026-10-09/s203-1b2.md
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
|
||||
### 1b-v4-recovery: three islands A = n0 (p0 p1), B = n1 (p2 p3), C = n2 (q0), honest 32/32/16 + e 20 at share 0.2 (e mines on A only); warm 230 s, split 420 s (both proxies cut), heal 400 s, 1 blocks/s in all, delay 300 ms, rule v4-recovery; real nodes on igneum-build-5, /srv/builds/_scratch/fin-runs/pair-203-wip/igneumd; 09/10/2026, 01:45:07 UK
|
||||
|
||||
expected: A recovers after a full window (lockKind recovery), B and C pause, the heal brings B and C onto A, 0 conflicts
|
||||
|
||||
| measure | n0 (A) | n1 (B) | n2 (C) |
|
||||
|---|---|---|---|
|
||||
| max locked index at the cut | 6 | 6 | 6 |
|
||||
| new locks during the split (index above 6) | 7 | 0 | 0 |
|
||||
| first new lock, s after the cut | 220 | none | none |
|
||||
| RECOVERY lock lines during the split (index) | 1 (10) | 0 | 0 |
|
||||
| finality reason at the end of the split | recovered: recovery lock at index 10 with 55.46% of the old anchored table (rule v4), acti | paused: held by weight table 6 past its window, 29.41% of it signing; a recovery lock need | paused: under two thirds of the weight is signing (31.93%; the table frozen at lock 6 has |
|
||||
| lock kinds above 6 at the end (igneum_getFinalityCheckpoints lockKind) | 10:recovery 11:final 12:final 13:final 14:final 15:final 16:final 17:final 18:final 19:final 20:final 21:final 22:final 23:final 24:final | 10:recovery 11:final 12:final 13:final 14:final 15:recovery 16:final 17:final 18:final 19:final 20:final 21:final 22:final 23:final 24:final | 10:recovery 11:final 12:final 13:final 14:final 15:recovery 16:final 17:final 18:final 19:final 20:final 21:final 22:final 23:final 24:final |
|
||||
| latestLockKind at the end | final | final | final |
|
||||
| max locked index at the end of the heal window | 24 | 24 | 24 |
|
||||
| pre-heal locks lost or moved after the heal | 0 | 0 | 0 |
|
||||
| conflicting certificates logged (split / end) | 0 / 0 | 0 / 0 | 0 / 0 |
|
||||
| EQUIVOCATION (strip) lines for e at the end | 0 | 0 | 0 |
|
||||
| finality reason at the end | active | active | active |
|
||||
| finalityActive at the end | true | true | true |
|
||||
|
||||
n0 reconnected 99 s after the gates reopened, n2 72 s; first lock after the heal 33 s after the gates reopened; locked indices disagreeing across the three nodes at the end: 0; two certificates at one index during the split: none; weights at the cut: window daa 179, voters 6, e 25.2% of the sliding table
|
||||
|
||||
[PASS] 1b-v4-recovery
|
||||
|
||||
[PASS] 1b-v4-recovery
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
#### 00:27:28Z s203-1b2: rows 1b port 29700 suffix 970 recovery 1 WARM=230 SPLIT=420 HEAL=400 BPS=1 node /srv/builds/_scratch/fin-runs/pair-203-wip/igneumd (a37f4b6324af0243)
|
||||
rc=0
|
||||
results -> /srv/builds/_scratch/fin-runs/results/s203-1b2.md
|
||||
#### 00:45:07Z s203-1b2 done rc=0
|
||||
00:45:07Z watcher of s203-1b2 exiting after 0 restart(s)
|
||||
377
sim/finality-attacks-results/native-2026-10-09/s203-1b3.json
Normal file
377
sim/finality-attacks-results/native-2026-10-09/s203-1b3.json
Normal file
|
|
@ -0,0 +1,377 @@
|
|||
{
|
||||
"results": [
|
||||
{
|
||||
"name": "1b-v4-recovery",
|
||||
"pass": true
|
||||
}
|
||||
],
|
||||
"facts": {
|
||||
"1b-v4-recovery": {
|
||||
"row": "b",
|
||||
"rule": "v4-recovery",
|
||||
"eShareAsked": 0.3,
|
||||
"box": "igneum-build-6",
|
||||
"node": "/srv/builds/_scratch/fin-runs/pair-203-wip/igneumd",
|
||||
"uk": "09/10/2026, 01:45:16",
|
||||
"windows": {
|
||||
"WARM": 230,
|
||||
"SPLIT": 420,
|
||||
"HEAL": 400,
|
||||
"BPS": 1,
|
||||
"DELAY_MS": 300
|
||||
},
|
||||
"beforeMax": [
|
||||
7,
|
||||
7,
|
||||
7
|
||||
],
|
||||
"preMax": 7,
|
||||
"newLocks": [
|
||||
8,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"firstNew": [
|
||||
187,
|
||||
null,
|
||||
null
|
||||
],
|
||||
"splitRecovery": [
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"recoveryIdx": [
|
||||
[
|
||||
11
|
||||
],
|
||||
[
|
||||
11
|
||||
],
|
||||
[
|
||||
11
|
||||
]
|
||||
],
|
||||
"splitKinds": [
|
||||
{
|
||||
"5": "final",
|
||||
"6": "final",
|
||||
"7": "final",
|
||||
"11": "recovery",
|
||||
"12": "final",
|
||||
"13": "final",
|
||||
"14": "final",
|
||||
"15": "final"
|
||||
},
|
||||
{
|
||||
"5": "final",
|
||||
"6": "final",
|
||||
"7": "final"
|
||||
},
|
||||
{
|
||||
"5": "final",
|
||||
"6": "final",
|
||||
"7": "final"
|
||||
}
|
||||
],
|
||||
"afterKinds": [
|
||||
{
|
||||
"5": "final",
|
||||
"6": "final",
|
||||
"7": "final",
|
||||
"11": "recovery",
|
||||
"12": "final",
|
||||
"13": "final",
|
||||
"14": "final",
|
||||
"15": "final",
|
||||
"16": "final",
|
||||
"17": "final",
|
||||
"18": "final",
|
||||
"19": "final",
|
||||
"20": "final",
|
||||
"21": "final",
|
||||
"22": "final",
|
||||
"23": "final",
|
||||
"24": "final",
|
||||
"25": "final",
|
||||
"26": "final",
|
||||
"27": "final"
|
||||
},
|
||||
{
|
||||
"5": "final",
|
||||
"6": "final",
|
||||
"7": "final",
|
||||
"11": "recovery",
|
||||
"12": "final",
|
||||
"13": "final",
|
||||
"14": "final",
|
||||
"15": "final",
|
||||
"16": "final",
|
||||
"17": "final",
|
||||
"18": "final",
|
||||
"19": "final",
|
||||
"20": "final",
|
||||
"21": "final",
|
||||
"22": "final",
|
||||
"23": "final",
|
||||
"24": "final",
|
||||
"25": "final",
|
||||
"26": "final",
|
||||
"27": "final"
|
||||
},
|
||||
{
|
||||
"5": "final",
|
||||
"6": "final",
|
||||
"7": "final",
|
||||
"11": "recovery",
|
||||
"12": "final",
|
||||
"13": "final",
|
||||
"14": "final",
|
||||
"15": "final",
|
||||
"16": "final",
|
||||
"17": "final",
|
||||
"18": "final",
|
||||
"19": "final",
|
||||
"20": "final",
|
||||
"21": "final",
|
||||
"22": "final",
|
||||
"23": "final",
|
||||
"24": "final",
|
||||
"25": "final",
|
||||
"26": "final",
|
||||
"27": "final"
|
||||
}
|
||||
],
|
||||
"latestKind": [
|
||||
"final",
|
||||
"final",
|
||||
"final"
|
||||
],
|
||||
"afterMax": [
|
||||
27,
|
||||
27,
|
||||
27
|
||||
],
|
||||
"lost": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"splitConflicts": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"conflicts": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"strips": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"reasons": [
|
||||
"active",
|
||||
"active",
|
||||
"active"
|
||||
],
|
||||
"splitReason": [
|
||||
"active",
|
||||
"paused: held by weight table 7, 33.61% of it signing, the window ends at DAA 329 (rule v4: the table never expires)",
|
||||
"paused: under two thirds of the weight is signing (34.45%; the table frozen at lock 7 has 11.76% signing)"
|
||||
],
|
||||
"reconnected": [
|
||||
99,
|
||||
102
|
||||
],
|
||||
"firstLockAfterHeal": 18,
|
||||
"disagree": 0,
|
||||
"twoAtOne": [],
|
||||
"equivocatorHash": "6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437",
|
||||
"eShare": 0.24369747899159663,
|
||||
"tableAtCut": [
|
||||
{
|
||||
"keyHash": "6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437",
|
||||
"blocks": 29
|
||||
},
|
||||
{
|
||||
"keyHash": "e2230237a914db9a8f44978fb0b3b95ea362e4283ea3cf713e43476bfa845e1d",
|
||||
"blocks": 21
|
||||
},
|
||||
{
|
||||
"keyHash": "f3b6639d043bbec3aa72e1ebec902777bdd50a31d4f54cd323c2f96888daf32d",
|
||||
"blocks": 19
|
||||
},
|
||||
{
|
||||
"keyHash": "dfdcbf58e8dcc22bc6a9a237a4154e922c0c2775fa2603f7884c0bbc7066b0ae",
|
||||
"blocks": 18
|
||||
},
|
||||
{
|
||||
"keyHash": "f2f3cc846420ed9121642ccf07f03f7b435f2e8afcf90af5bac32518d287d19c",
|
||||
"blocks": 18
|
||||
},
|
||||
{
|
||||
"keyHash": "e3b7bd178e7744facca424e712d8d08148e957ce3a1ae3e5b7930e16fe6d9ca3",
|
||||
"blocks": 14
|
||||
}
|
||||
],
|
||||
"activeAtEnd": [
|
||||
true,
|
||||
true,
|
||||
true
|
||||
],
|
||||
"certificates": {
|
||||
"n0": {
|
||||
"5": {
|
||||
"index": 5,
|
||||
"checkpoint": "d7da14c201e0ac8823cb1147324e25c2a45141fda1e86e0ceb8a1f306d57d672",
|
||||
"voterCount": 6,
|
||||
"bitmap": "37",
|
||||
"signature": "8cc1d45c346875d50e6ed976073515063e64296bc36598e6df47466f4d2dfc346beaf689e26b5973afc1e564cf5306010d33fe8604cc714e33a9cee7f4a91bece4cf820510eaaf81cbdb6fd837c2c7d1c19a6d37f2b577983e144ad7498a94e2",
|
||||
"aggregator": "e2230237a914db9a8f44978fb0b3b95ea362e4283ea3cf713e43476bfa845e1d",
|
||||
"bytes": "0500000000000000d7da14c201e0ac8823cb1147324e25c2a45141fda1e86e0ceb8a1f306d57d6720600000001000000378cc1d45c346875d50e6ed976073515063e64296bc36598e6df47466f4d2dfc346beaf689e26b5973afc1e564cf5306010d33fe8604cc714e33a9cee7f4a91bece4cf820510eaaf81cbdb6fd837c2c7d1c19a6d37f2b577983e144ad7498a94e2e2230237a914db9a8f44978fb0b3b95ea362e4283ea3cf713e43476bfa845e1da8fcbc703ec32172bdc53e6e448e62dd655cf428e5d18a8eafa414b9abfbd495b627a1e9cbd1adbdbbd5e6f2e12ace0514fafabde714e7151d1049d65549253a9b75c71154dc9911307d6f78ec0131e596a74e115cc526c0b91070d12708b2ec",
|
||||
"carrier": "8e0330874efd90cf3920ab39449a48a39f4eb4d99fd36a444819688a50eaf70b"
|
||||
},
|
||||
"6": {
|
||||
"index": 6,
|
||||
"checkpoint": "bc089f4e6c62edbaeef3ae9a7c94a8db4f187d9de9d89ba44bd1a15013a61a9b",
|
||||
"voterCount": 6,
|
||||
"bitmap": "3f",
|
||||
"signature": "823f26e50fb8d8d8c4339ee860c30838ebc8240b296fa2774bcc1a24b01be4545596eff9ea86ec68ea6d4f96553f0a48051874e81e1e33c4111a3cfafe7c7b073bfcb8b0a1c22265679925507b1cc201defd8df7580296c1302883705df81ebd",
|
||||
"aggregator": "e2230237a914db9a8f44978fb0b3b95ea362e4283ea3cf713e43476bfa845e1d",
|
||||
"bytes": "0600000000000000bc089f4e6c62edbaeef3ae9a7c94a8db4f187d9de9d89ba44bd1a15013a61a9b06000000010000003f823f26e50fb8d8d8c4339ee860c30838ebc8240b296fa2774bcc1a24b01be4545596eff9ea86ec68ea6d4f96553f0a48051874e81e1e33c4111a3cfafe7c7b073bfcb8b0a1c22265679925507b1cc201defd8df7580296c1302883705df81ebde2230237a914db9a8f44978fb0b3b95ea362e4283ea3cf713e43476bfa845e1d80ba1afe1bdf476fe797e5dd6e18f39807d6fa38accd85a957b4d232a69b0286fd2c28305e2f7834a9c490a10274435d0441cc57bc9114e134e94b7845e356e5b1504cbc53fe62cac3393f8190fceb3e838d4506b5c938edc0cc55aef5931fce",
|
||||
"carrier": "b390e1ee40bc6cddbd7dbcaaee4d075a0f5c21267710c07a4ded59c6ad2f4788"
|
||||
},
|
||||
"7": {
|
||||
"index": 7,
|
||||
"checkpoint": "04065ec36d3b91de98c3ab06f6eb3d9437ed8481fd879fe163db9bb318a152c8",
|
||||
"voterCount": 6,
|
||||
"bitmap": "3f",
|
||||
"signature": "b4323851a78a0e19d3feef302b4b2ff538bb6506d1c4a03b20fcbd51697444bd65c3f54adce501e0a2c6a000a06c3ac2010e9f86e1b93cc742a0a5299016593f327ba82c9e984486d4584abba722e73266f87bb5e4d83488cb60d875fedcdcfc",
|
||||
"aggregator": "e2230237a914db9a8f44978fb0b3b95ea362e4283ea3cf713e43476bfa845e1d",
|
||||
"bytes": "070000000000000004065ec36d3b91de98c3ab06f6eb3d9437ed8481fd879fe163db9bb318a152c806000000010000003fb4323851a78a0e19d3feef302b4b2ff538bb6506d1c4a03b20fcbd51697444bd65c3f54adce501e0a2c6a000a06c3ac2010e9f86e1b93cc742a0a5299016593f327ba82c9e984486d4584abba722e73266f87bb5e4d83488cb60d875fedcdcfce2230237a914db9a8f44978fb0b3b95ea362e4283ea3cf713e43476bfa845e1da61cf2e97ad1e8fd02d83599e3f0dd79eca86028a7d260cf1d504fd8a9f025f7b177db01fcb7630163668752142cafe21254dafb3b6d218c804a3b988c36806cacc967709e06624fafe50d0df2440ccf74d2ed0c4f610cdbba1aea6e3beab1df",
|
||||
"carrier": "a1cc2b9e13b2a4a9e2ce749f4e7b798958c1873b4228774181ddc42b77c5c4f6"
|
||||
},
|
||||
"11": {
|
||||
"index": 11,
|
||||
"checkpoint": "e065b2d820305f25825538bcec2e60fc97880a311e5ee0051feca21b5e012993",
|
||||
"voterCount": 4,
|
||||
"bitmap": "07",
|
||||
"signature": "ab8b0b0669da4a6f5ca6e16ea760b582f8d4814f3dd260ebc2e245a000493009fb02ff04c908f608bffd0055d37ce0c116f25e2fb64edcb3375b45020e72dda42ecbf6fe249707decc7ea1234091eff301f9af143d22bf53ff422ac7c55c9cad",
|
||||
"aggregator": "6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437",
|
||||
"bytes": "0b00000000000000e065b2d820305f25825538bcec2e60fc97880a311e5ee0051feca21b5e012993040000000100000007ab8b0b0669da4a6f5ca6e16ea760b582f8d4814f3dd260ebc2e245a000493009fb02ff04c908f608bffd0055d37ce0c116f25e2fb64edcb3375b45020e72dda42ecbf6fe249707decc7ea1234091eff301f9af143d22bf53ff422ac7c55c9cad6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437a11a001620b5b00b06fd3e81e0f68db8ba5682fe9957348c10935f09551c66da271c99a3dcd6a3d1609470fae0daf3c0024282c19ed926b5b35b98523fe884360927ab2e9b5728e01a13b43fa5d6d8a1e89e76568759919be267b4099665b124",
|
||||
"carrier": "63ad781bab44ac98942905150d8edae72e9fd06ad75a3f9c98586fd9cb80d8c6"
|
||||
},
|
||||
"12": {
|
||||
"index": 12,
|
||||
"checkpoint": "a12c76c9b3e1b459bcfe7081459a466468cd3efb53a5c6c14863b89c4d62a8b2",
|
||||
"voterCount": 3,
|
||||
"bitmap": "07",
|
||||
"signature": "a1cf4031376007918c8324df720758445acebf6b9e98c8bd8131cb104480cc075fdd525cf6ac39b4d0359437bba4c10d157f49f26e828baae3532af2302be7a2acc630daa3427dc512266d49eea7970990f338b439c1f9874c3be6e582141d57",
|
||||
"aggregator": "6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437",
|
||||
"bytes": "0c00000000000000a12c76c9b3e1b459bcfe7081459a466468cd3efb53a5c6c14863b89c4d62a8b2030000000100000007a1cf4031376007918c8324df720758445acebf6b9e98c8bd8131cb104480cc075fdd525cf6ac39b4d0359437bba4c10d157f49f26e828baae3532af2302be7a2acc630daa3427dc512266d49eea7970990f338b439c1f9874c3be6e582141d576b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437acd3d0ba3114c76ccd98504fb241b39216bca76018fe2927eb2c6060f63ee164a558bbdcf767699159dd5468a1ca157102903ec8758fc40a5fcd649cd830b434ba5dcec854c77e767f404ef1feb364ba62570061abe8a57a6da4e110233984f0",
|
||||
"carrier": "e5a8e759df96a46e21f926a0a752a09218be496ef87c1e571eaa1aa043ff1488"
|
||||
},
|
||||
"13": {
|
||||
"index": 13,
|
||||
"checkpoint": "f9a68a93b1dbc630d010619327dbdf1a095dd8ce0174360072b691fdb7fc7a14",
|
||||
"voterCount": 3,
|
||||
"bitmap": "07",
|
||||
"signature": "a620cd2a910870799ee41bf1c2d849b39344a1a31f5f2e6ddc9f93d4785ca040cab943e31bcd8bc3b5d5a2d9979687820399986cf6cbc7f84260bd2506e8c4e03ebcefd164be75347394222ac9111e6364f5ea205574993f8d616132dab5ef37",
|
||||
"aggregator": "6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437",
|
||||
"bytes": "0d00000000000000f9a68a93b1dbc630d010619327dbdf1a095dd8ce0174360072b691fdb7fc7a14030000000100000007a620cd2a910870799ee41bf1c2d849b39344a1a31f5f2e6ddc9f93d4785ca040cab943e31bcd8bc3b5d5a2d9979687820399986cf6cbc7f84260bd2506e8c4e03ebcefd164be75347394222ac9111e6364f5ea205574993f8d616132dab5ef376b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437af7ed6a32c14b9654841a72dbd9a7fb3ab1aa73b0c0db2b4af81095819da2532b7250accc255cca68bd1873fef97ebf603f296a91d354ab3b0d5a76e609b654364a3366375a96613864082561699ded4832ee8b88e7eed01f33b242d5969b9bc",
|
||||
"carrier": "32454747e51bbec8fb11ad655a825ae8be1ad551e626471c5fd76784de686ff1"
|
||||
},
|
||||
"14": {
|
||||
"index": 14,
|
||||
"checkpoint": "757ee426f73bab46938684d358d09de2e9b4c906598bb548c13cd3aee2a7e9c0",
|
||||
"voterCount": 3,
|
||||
"bitmap": "07",
|
||||
"signature": "8b351d911b279c012dbb7c532789d1d73e62baf15ff9a91e0464e601a036cda82ad775aed772050bbb6f1a5a3893393307aff111946124ef90c8b508a76f7bbc84cc05158e6e957180cef81979eb78fcca08700b7191a12f4d747956d18bc778",
|
||||
"aggregator": "6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437",
|
||||
"bytes": "0e00000000000000757ee426f73bab46938684d358d09de2e9b4c906598bb548c13cd3aee2a7e9c00300000001000000078b351d911b279c012dbb7c532789d1d73e62baf15ff9a91e0464e601a036cda82ad775aed772050bbb6f1a5a3893393307aff111946124ef90c8b508a76f7bbc84cc05158e6e957180cef81979eb78fcca08700b7191a12f4d747956d18bc7786b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437a0f1f5761bd3c1110c562bbf68fa9b66c9d462d2dc102b15e474d40541003ba90a940f4e64e0c415d393608205d77a9a0faf1b349e6fc2b98468b67141026f06a6c4c12c636d807f7c7fc548dba1b8e4882f29e14000f6cc13f3991d91300082",
|
||||
"carrier": "de82c7df20049ec541ff90b8d37bac5134207e3a653354e6f640fef8e9b501a8"
|
||||
},
|
||||
"15": {
|
||||
"index": 15,
|
||||
"checkpoint": "72ed7a7c535f85659920e2312df84c03ebace65493e3b1f72cab1ee652e701df",
|
||||
"voterCount": 3,
|
||||
"bitmap": "07",
|
||||
"signature": "98c20a46ad2014dd384895715e742137cb844c92335085cc9a5037e01d7e42c1ef0b9effdc71b6f6d58b0da32282d2af02e754f042b7806562b15c5cbacb2bb62938bd681e5927121f67daf24ba337d214933290782e7bbfe49a911e1927b5e2",
|
||||
"aggregator": "6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437",
|
||||
"bytes": "0f0000000000000072ed7a7c535f85659920e2312df84c03ebace65493e3b1f72cab1ee652e701df03000000010000000798c20a46ad2014dd384895715e742137cb844c92335085cc9a5037e01d7e42c1ef0b9effdc71b6f6d58b0da32282d2af02e754f042b7806562b15c5cbacb2bb62938bd681e5927121f67daf24ba337d214933290782e7bbfe49a911e1927b5e26b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437b1b36b3cdbd5316fd53d6e0927b23a0af621387cdaec0b21c2bd51f23cf4f95b9a32e126a8eee4bab35f7369155bfee50c142f4364d7075eeaa1c75fd9df31919dc3d7a22b47621d024b3f54973ddc23b0250e9028cdf822a84f3d751dfb5ca0",
|
||||
"carrier": "d7d4aaeb950e257ff1afaff7661c48edc28f0f866d5d65404ab8a7985af74f95"
|
||||
}
|
||||
},
|
||||
"n1": {
|
||||
"5": {
|
||||
"index": 5,
|
||||
"checkpoint": "d7da14c201e0ac8823cb1147324e25c2a45141fda1e86e0ceb8a1f306d57d672",
|
||||
"voterCount": 6,
|
||||
"bitmap": "37",
|
||||
"signature": "8cc1d45c346875d50e6ed976073515063e64296bc36598e6df47466f4d2dfc346beaf689e26b5973afc1e564cf5306010d33fe8604cc714e33a9cee7f4a91bece4cf820510eaaf81cbdb6fd837c2c7d1c19a6d37f2b577983e144ad7498a94e2",
|
||||
"aggregator": "e2230237a914db9a8f44978fb0b3b95ea362e4283ea3cf713e43476bfa845e1d",
|
||||
"bytes": "0500000000000000d7da14c201e0ac8823cb1147324e25c2a45141fda1e86e0ceb8a1f306d57d6720600000001000000378cc1d45c346875d50e6ed976073515063e64296bc36598e6df47466f4d2dfc346beaf689e26b5973afc1e564cf5306010d33fe8604cc714e33a9cee7f4a91bece4cf820510eaaf81cbdb6fd837c2c7d1c19a6d37f2b577983e144ad7498a94e2e2230237a914db9a8f44978fb0b3b95ea362e4283ea3cf713e43476bfa845e1da8fcbc703ec32172bdc53e6e448e62dd655cf428e5d18a8eafa414b9abfbd495b627a1e9cbd1adbdbbd5e6f2e12ace0514fafabde714e7151d1049d65549253a9b75c71154dc9911307d6f78ec0131e596a74e115cc526c0b91070d12708b2ec",
|
||||
"carrier": "8e0330874efd90cf3920ab39449a48a39f4eb4d99fd36a444819688a50eaf70b"
|
||||
},
|
||||
"6": {
|
||||
"index": 6,
|
||||
"checkpoint": "bc089f4e6c62edbaeef3ae9a7c94a8db4f187d9de9d89ba44bd1a15013a61a9b",
|
||||
"voterCount": 6,
|
||||
"bitmap": "3f",
|
||||
"signature": "823f26e50fb8d8d8c4339ee860c30838ebc8240b296fa2774bcc1a24b01be4545596eff9ea86ec68ea6d4f96553f0a48051874e81e1e33c4111a3cfafe7c7b073bfcb8b0a1c22265679925507b1cc201defd8df7580296c1302883705df81ebd",
|
||||
"aggregator": "e2230237a914db9a8f44978fb0b3b95ea362e4283ea3cf713e43476bfa845e1d",
|
||||
"bytes": "0600000000000000bc089f4e6c62edbaeef3ae9a7c94a8db4f187d9de9d89ba44bd1a15013a61a9b06000000010000003f823f26e50fb8d8d8c4339ee860c30838ebc8240b296fa2774bcc1a24b01be4545596eff9ea86ec68ea6d4f96553f0a48051874e81e1e33c4111a3cfafe7c7b073bfcb8b0a1c22265679925507b1cc201defd8df7580296c1302883705df81ebde2230237a914db9a8f44978fb0b3b95ea362e4283ea3cf713e43476bfa845e1d80ba1afe1bdf476fe797e5dd6e18f39807d6fa38accd85a957b4d232a69b0286fd2c28305e2f7834a9c490a10274435d0441cc57bc9114e134e94b7845e356e5b1504cbc53fe62cac3393f8190fceb3e838d4506b5c938edc0cc55aef5931fce",
|
||||
"carrier": "b390e1ee40bc6cddbd7dbcaaee4d075a0f5c21267710c07a4ded59c6ad2f4788"
|
||||
},
|
||||
"7": {
|
||||
"index": 7,
|
||||
"checkpoint": "04065ec36d3b91de98c3ab06f6eb3d9437ed8481fd879fe163db9bb318a152c8",
|
||||
"voterCount": 6,
|
||||
"bitmap": "3f",
|
||||
"signature": "b4323851a78a0e19d3feef302b4b2ff538bb6506d1c4a03b20fcbd51697444bd65c3f54adce501e0a2c6a000a06c3ac2010e9f86e1b93cc742a0a5299016593f327ba82c9e984486d4584abba722e73266f87bb5e4d83488cb60d875fedcdcfc",
|
||||
"aggregator": "e2230237a914db9a8f44978fb0b3b95ea362e4283ea3cf713e43476bfa845e1d",
|
||||
"bytes": "070000000000000004065ec36d3b91de98c3ab06f6eb3d9437ed8481fd879fe163db9bb318a152c806000000010000003fb4323851a78a0e19d3feef302b4b2ff538bb6506d1c4a03b20fcbd51697444bd65c3f54adce501e0a2c6a000a06c3ac2010e9f86e1b93cc742a0a5299016593f327ba82c9e984486d4584abba722e73266f87bb5e4d83488cb60d875fedcdcfce2230237a914db9a8f44978fb0b3b95ea362e4283ea3cf713e43476bfa845e1da61cf2e97ad1e8fd02d83599e3f0dd79eca86028a7d260cf1d504fd8a9f025f7b177db01fcb7630163668752142cafe21254dafb3b6d218c804a3b988c36806cacc967709e06624fafe50d0df2440ccf74d2ed0c4f610cdbba1aea6e3beab1df",
|
||||
"carrier": "a1cc2b9e13b2a4a9e2ce749f4e7b798958c1873b4228774181ddc42b77c5c4f6"
|
||||
}
|
||||
},
|
||||
"n2": {
|
||||
"5": {
|
||||
"index": 5,
|
||||
"checkpoint": "d7da14c201e0ac8823cb1147324e25c2a45141fda1e86e0ceb8a1f306d57d672",
|
||||
"voterCount": 6,
|
||||
"bitmap": "37",
|
||||
"signature": "8cc1d45c346875d50e6ed976073515063e64296bc36598e6df47466f4d2dfc346beaf689e26b5973afc1e564cf5306010d33fe8604cc714e33a9cee7f4a91bece4cf820510eaaf81cbdb6fd837c2c7d1c19a6d37f2b577983e144ad7498a94e2",
|
||||
"aggregator": "e2230237a914db9a8f44978fb0b3b95ea362e4283ea3cf713e43476bfa845e1d",
|
||||
"bytes": "0500000000000000d7da14c201e0ac8823cb1147324e25c2a45141fda1e86e0ceb8a1f306d57d6720600000001000000378cc1d45c346875d50e6ed976073515063e64296bc36598e6df47466f4d2dfc346beaf689e26b5973afc1e564cf5306010d33fe8604cc714e33a9cee7f4a91bece4cf820510eaaf81cbdb6fd837c2c7d1c19a6d37f2b577983e144ad7498a94e2e2230237a914db9a8f44978fb0b3b95ea362e4283ea3cf713e43476bfa845e1da8fcbc703ec32172bdc53e6e448e62dd655cf428e5d18a8eafa414b9abfbd495b627a1e9cbd1adbdbbd5e6f2e12ace0514fafabde714e7151d1049d65549253a9b75c71154dc9911307d6f78ec0131e596a74e115cc526c0b91070d12708b2ec",
|
||||
"carrier": "8e0330874efd90cf3920ab39449a48a39f4eb4d99fd36a444819688a50eaf70b"
|
||||
},
|
||||
"6": {
|
||||
"index": 6,
|
||||
"checkpoint": "bc089f4e6c62edbaeef3ae9a7c94a8db4f187d9de9d89ba44bd1a15013a61a9b",
|
||||
"voterCount": 6,
|
||||
"bitmap": "3f",
|
||||
"signature": "823f26e50fb8d8d8c4339ee860c30838ebc8240b296fa2774bcc1a24b01be4545596eff9ea86ec68ea6d4f96553f0a48051874e81e1e33c4111a3cfafe7c7b073bfcb8b0a1c22265679925507b1cc201defd8df7580296c1302883705df81ebd",
|
||||
"aggregator": "e2230237a914db9a8f44978fb0b3b95ea362e4283ea3cf713e43476bfa845e1d",
|
||||
"bytes": "0600000000000000bc089f4e6c62edbaeef3ae9a7c94a8db4f187d9de9d89ba44bd1a15013a61a9b06000000010000003f823f26e50fb8d8d8c4339ee860c30838ebc8240b296fa2774bcc1a24b01be4545596eff9ea86ec68ea6d4f96553f0a48051874e81e1e33c4111a3cfafe7c7b073bfcb8b0a1c22265679925507b1cc201defd8df7580296c1302883705df81ebde2230237a914db9a8f44978fb0b3b95ea362e4283ea3cf713e43476bfa845e1d80ba1afe1bdf476fe797e5dd6e18f39807d6fa38accd85a957b4d232a69b0286fd2c28305e2f7834a9c490a10274435d0441cc57bc9114e134e94b7845e356e5b1504cbc53fe62cac3393f8190fceb3e838d4506b5c938edc0cc55aef5931fce",
|
||||
"carrier": "b390e1ee40bc6cddbd7dbcaaee4d075a0f5c21267710c07a4ded59c6ad2f4788"
|
||||
},
|
||||
"7": {
|
||||
"index": 7,
|
||||
"checkpoint": "04065ec36d3b91de98c3ab06f6eb3d9437ed8481fd879fe163db9bb318a152c8",
|
||||
"voterCount": 6,
|
||||
"bitmap": "3f",
|
||||
"signature": "b4323851a78a0e19d3feef302b4b2ff538bb6506d1c4a03b20fcbd51697444bd65c3f54adce501e0a2c6a000a06c3ac2010e9f86e1b93cc742a0a5299016593f327ba82c9e984486d4584abba722e73266f87bb5e4d83488cb60d875fedcdcfc",
|
||||
"aggregator": "e2230237a914db9a8f44978fb0b3b95ea362e4283ea3cf713e43476bfa845e1d",
|
||||
"bytes": "070000000000000004065ec36d3b91de98c3ab06f6eb3d9437ed8481fd879fe163db9bb318a152c806000000010000003fb4323851a78a0e19d3feef302b4b2ff538bb6506d1c4a03b20fcbd51697444bd65c3f54adce501e0a2c6a000a06c3ac2010e9f86e1b93cc742a0a5299016593f327ba82c9e984486d4584abba722e73266f87bb5e4d83488cb60d875fedcdcfce2230237a914db9a8f44978fb0b3b95ea362e4283ea3cf713e43476bfa845e1da61cf2e97ad1e8fd02d83599e3f0dd79eca86028a7d260cf1d504fd8a9f025f7b177db01fcb7630163668752142cafe21254dafb3b6d218c804a3b988c36806cacc967709e06624fafe50d0df2440ccf74d2ed0c4f610cdbba1aea6e3beab1df",
|
||||
"carrier": "a1cc2b9e13b2a4a9e2ce749f4e7b798958c1873b4228774181ddc42b77c5c4f6"
|
||||
}
|
||||
}
|
||||
},
|
||||
"expect": "A recovers after a full window (lockKind recovery), B and C pause, the heal brings B and C onto A, 0 conflicts",
|
||||
"pass": true
|
||||
}
|
||||
}
|
||||
}
|
||||
36
sim/finality-attacks-results/native-2026-10-09/s203-1b3.log
Normal file
36
sim/finality-attacks-results/native-2026-10-09/s203-1b3.log
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
lease: holding 8 pool cores (8,9,10,11,12,13,14,15, waited 0 s, class measure, mem 8 GB): finality native runs s203-1b3 (measurement rows, plan finality-native-runs-2026-10-09)
|
||||
00:27:37.021 rule v4-recovery; node /srv/builds/_scratch/fin-runs/pair-203-wip/igneumd; miner /srv/builds/_scratch/fin-runs/pair-203-wip/igneum-miner; delay 300 ms; 1 blocks/s; override {"finality_v3_activation_daa":0,"finality_v4_activation_daa":0,"finality_v4_recovery":true}; box igneum-build-6; 09/10/2026, 01:27:37 UK
|
||||
00:27:37.022 === 1b (v4-recovery) starting ===
|
||||
00:27:37.902 n1 up pid 306382 json ws://127.0.0.1:29712 p2p 127.0.0.1:29711
|
||||
00:27:38.721 n0 up pid 306478 json ws://127.0.0.1:29702 p2p 127.0.0.1:29701
|
||||
00:27:39.531 n2 up pid 306571 json ws://127.0.0.1:29722 p2p 127.0.0.1:29721
|
||||
00:31:29.570 1b-v4-recovery: cut at warm 230 s: window daa ~209, voters 6, max locked 7/7/7, e holds 24.4% of the sliding table at the cut
|
||||
|
||||
### 1b-v4-recovery: three islands A = n0 (p0 p1), B = n1 (p2 p3), C = n2 (q0), honest 32/32/16 + e 30 at share 0.3 (e mines on A only); warm 230 s, split 420 s (both proxies cut), heal 400 s, 1 blocks/s in all, delay 300 ms, rule v4-recovery; real nodes on igneum-build-6, /srv/builds/_scratch/fin-runs/pair-203-wip/igneumd; 09/10/2026, 01:45:16 UK
|
||||
|
||||
expected: A recovers after a full window (lockKind recovery), B and C pause, the heal brings B and C onto A, 0 conflicts
|
||||
|
||||
| measure | n0 (A) | n1 (B) | n2 (C) |
|
||||
|---|---|---|---|
|
||||
| max locked index at the cut | 7 | 7 | 7 |
|
||||
| new locks during the split (index above 7) | 8 | 0 | 0 |
|
||||
| first new lock, s after the cut | 187 | none | none |
|
||||
| RECOVERY lock lines during the split (index) | 1 (11) | 0 | 0 |
|
||||
| finality reason at the end of the split | active | paused: held by weight table 7, 33.61% of it signing, the window ends at DAA 329 (rule v4: | paused: under two thirds of the weight is signing (34.45%; the table frozen at lock 7 has |
|
||||
| lock kinds above 7 at the end (igneum_getFinalityCheckpoints lockKind) | 11:recovery 12:final 13:final 14:final 15:final 16:final 17:final 18:final 19:final 20:final 21:final 22:final 23:final 24:final 25:final 26:final 27:final | 11:recovery 12:final 13:final 14:final 15:final 16:final 17:final 18:final 19:final 20:final 21:final 22:final 23:final 24:final 25:final 26:final 27:final | 11:recovery 12:final 13:final 14:final 15:final 16:final 17:final 18:final 19:final 20:final 21:final 22:final 23:final 24:final 25:final 26:final 27:final |
|
||||
| latestLockKind at the end | final | final | final |
|
||||
| max locked index at the end of the heal window | 27 | 27 | 27 |
|
||||
| pre-heal locks lost or moved after the heal | 0 | 0 | 0 |
|
||||
| conflicting certificates logged (split / end) | 0 / 0 | 0 / 0 | 0 / 0 |
|
||||
| EQUIVOCATION (strip) lines for e at the end | 0 | 0 | 0 |
|
||||
| finality reason at the end | active | active | active |
|
||||
| finalityActive at the end | true | true | true |
|
||||
|
||||
n0 reconnected 99 s after the gates reopened, n2 102 s; first lock after the heal 18 s after the gates reopened; locked indices disagreeing across the three nodes at the end: 0; two certificates at one index during the split: none; weights at the cut: window daa 209, voters 6, e 24.4% of the sliding table
|
||||
|
||||
[PASS] 1b-v4-recovery
|
||||
00:45:16.258 === 1b done ===
|
||||
|
||||
[PASS] 1b-v4-recovery
|
||||
Terminated
|
||||
lease: released 8 pool cores after 1060 s, exit 0
|
||||
26
sim/finality-attacks-results/native-2026-10-09/s203-1b3.md
Normal file
26
sim/finality-attacks-results/native-2026-10-09/s203-1b3.md
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
|
||||
### 1b-v4-recovery: three islands A = n0 (p0 p1), B = n1 (p2 p3), C = n2 (q0), honest 32/32/16 + e 30 at share 0.3 (e mines on A only); warm 230 s, split 420 s (both proxies cut), heal 400 s, 1 blocks/s in all, delay 300 ms, rule v4-recovery; real nodes on igneum-build-6, /srv/builds/_scratch/fin-runs/pair-203-wip/igneumd; 09/10/2026, 01:45:16 UK
|
||||
|
||||
expected: A recovers after a full window (lockKind recovery), B and C pause, the heal brings B and C onto A, 0 conflicts
|
||||
|
||||
| measure | n0 (A) | n1 (B) | n2 (C) |
|
||||
|---|---|---|---|
|
||||
| max locked index at the cut | 7 | 7 | 7 |
|
||||
| new locks during the split (index above 7) | 8 | 0 | 0 |
|
||||
| first new lock, s after the cut | 187 | none | none |
|
||||
| RECOVERY lock lines during the split (index) | 1 (11) | 0 | 0 |
|
||||
| finality reason at the end of the split | active | paused: held by weight table 7, 33.61% of it signing, the window ends at DAA 329 (rule v4: | paused: under two thirds of the weight is signing (34.45%; the table frozen at lock 7 has |
|
||||
| lock kinds above 7 at the end (igneum_getFinalityCheckpoints lockKind) | 11:recovery 12:final 13:final 14:final 15:final 16:final 17:final 18:final 19:final 20:final 21:final 22:final 23:final 24:final 25:final 26:final 27:final | 11:recovery 12:final 13:final 14:final 15:final 16:final 17:final 18:final 19:final 20:final 21:final 22:final 23:final 24:final 25:final 26:final 27:final | 11:recovery 12:final 13:final 14:final 15:final 16:final 17:final 18:final 19:final 20:final 21:final 22:final 23:final 24:final 25:final 26:final 27:final |
|
||||
| latestLockKind at the end | final | final | final |
|
||||
| max locked index at the end of the heal window | 27 | 27 | 27 |
|
||||
| pre-heal locks lost or moved after the heal | 0 | 0 | 0 |
|
||||
| conflicting certificates logged (split / end) | 0 / 0 | 0 / 0 | 0 / 0 |
|
||||
| EQUIVOCATION (strip) lines for e at the end | 0 | 0 | 0 |
|
||||
| finality reason at the end | active | active | active |
|
||||
| finalityActive at the end | true | true | true |
|
||||
|
||||
n0 reconnected 99 s after the gates reopened, n2 102 s; first lock after the heal 18 s after the gates reopened; locked indices disagreeing across the three nodes at the end: 0; two certificates at one index during the split: none; weights at the cut: window daa 209, voters 6, e 24.4% of the sliding table
|
||||
|
||||
[PASS] 1b-v4-recovery
|
||||
|
||||
[PASS] 1b-v4-recovery
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
#### 00:27:36Z s203-1b3: rows 1b port 29700 suffix 970 recovery 1 WARM=230 SPLIT=420 HEAL=400 BPS=1 node /srv/builds/_scratch/fin-runs/pair-203-wip/igneumd (a37f4b6324af0243)
|
||||
rc=0
|
||||
results -> /srv/builds/_scratch/fin-runs/results/s203-1b3.md
|
||||
#### 00:45:16Z s203-1b3 done rc=0
|
||||
00:45:16Z watcher of s203-1b3 exiting after 0 restart(s)
|
||||
349
sim/finality-attacks-results/native-2026-10-09/s203-1c.json
Normal file
349
sim/finality-attacks-results/native-2026-10-09/s203-1c.json
Normal file
|
|
@ -0,0 +1,349 @@
|
|||
{
|
||||
"results": [
|
||||
{
|
||||
"name": "1c-v4-recovery",
|
||||
"pass": true
|
||||
}
|
||||
],
|
||||
"facts": {
|
||||
"1c-v4-recovery": {
|
||||
"row": "c",
|
||||
"rule": "v4-recovery",
|
||||
"eShareAsked": 0.2,
|
||||
"box": "igneum-build-5",
|
||||
"node": "/srv/builds/_scratch/fin-runs/pair-203-wip/igneumd",
|
||||
"uk": "09/10/2026, 01:45:07",
|
||||
"windows": {
|
||||
"WARM": 230,
|
||||
"SPLIT": 420,
|
||||
"HEAL": 400,
|
||||
"BPS": 1,
|
||||
"DELAY_MS": 300
|
||||
},
|
||||
"beforeMax": [
|
||||
7,
|
||||
7,
|
||||
7
|
||||
],
|
||||
"preMax": 7,
|
||||
"newLocks": [
|
||||
6,
|
||||
5,
|
||||
0
|
||||
],
|
||||
"firstNew": [
|
||||
241,
|
||||
301,
|
||||
null
|
||||
],
|
||||
"splitRecovery": [
|
||||
1,
|
||||
1,
|
||||
0
|
||||
],
|
||||
"recoveryIdx": [
|
||||
[
|
||||
11
|
||||
],
|
||||
[
|
||||
11
|
||||
],
|
||||
[
|
||||
14,
|
||||
11
|
||||
]
|
||||
],
|
||||
"splitKinds": [
|
||||
{
|
||||
"5": "final",
|
||||
"6": "final",
|
||||
"7": "final",
|
||||
"11": "recovery",
|
||||
"12": "final",
|
||||
"13": "final"
|
||||
},
|
||||
{
|
||||
"5": "final",
|
||||
"6": "final",
|
||||
"7": "final",
|
||||
"11": "recovery",
|
||||
"12": "final"
|
||||
},
|
||||
{
|
||||
"5": "final",
|
||||
"6": "final",
|
||||
"7": "final"
|
||||
}
|
||||
],
|
||||
"afterKinds": [
|
||||
{
|
||||
"5": "final",
|
||||
"6": "final",
|
||||
"7": "final",
|
||||
"11": "recovery",
|
||||
"12": "final",
|
||||
"13": "final",
|
||||
"14": "final",
|
||||
"15": "final"
|
||||
},
|
||||
{
|
||||
"5": "final",
|
||||
"6": "final",
|
||||
"7": "final",
|
||||
"11": "recovery",
|
||||
"12": "final",
|
||||
"13": "final",
|
||||
"14": "final"
|
||||
},
|
||||
{
|
||||
"5": "final",
|
||||
"6": "final",
|
||||
"7": "final",
|
||||
"11": "recovery",
|
||||
"12": "final",
|
||||
"13": "final",
|
||||
"14": "recovery",
|
||||
"15": "final",
|
||||
"16": "final",
|
||||
"17": "final",
|
||||
"18": "final",
|
||||
"19": "final",
|
||||
"20": "final"
|
||||
}
|
||||
],
|
||||
"latestKind": [
|
||||
"final",
|
||||
"final",
|
||||
"final"
|
||||
],
|
||||
"afterMax": [
|
||||
15,
|
||||
14,
|
||||
20
|
||||
],
|
||||
"lost": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"splitConflicts": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"conflicts": [
|
||||
4,
|
||||
6,
|
||||
0
|
||||
],
|
||||
"strips": [
|
||||
14,
|
||||
18,
|
||||
9
|
||||
],
|
||||
"reasons": [
|
||||
"conflict: two valid certificates at index 11; this node keeps 6be45c66bf1fa60984da74401794645391dbf6cf364c26bc915d6c5f50dc56f6, the one it verified first, and installs no new lock above index 11 until the conflict resolves (spec 3.11.4: the operator's trusted certificate, or the other certificate's block proven off every chain)",
|
||||
"conflict: two valid certificates at index 11; this node keeps 21931651d900af6ff4bdefca2a0a3fae9d4442dbfad43c28036a4ee9edb6e4ff, the one it verified first, and installs no new lock above index 11 until the conflict resolves (spec 3.11.4: the operator's trusted certificate, or the other certificate's block proven off every chain)",
|
||||
"active"
|
||||
],
|
||||
"splitReason": [
|
||||
"recovered: recovery lock at index 11 with 55.83% of the old anchored table (rule v4), active since; the table re-anchored there",
|
||||
"recovered: recovery lock at index 11 with 55.00% of the old anchored table (rule v4), active since; the table re-anchored there",
|
||||
"paused: under two thirds of the weight is signing (34.45%; the table frozen at lock 7 has 14.16% signing)"
|
||||
],
|
||||
"reconnected": [
|
||||
99,
|
||||
102
|
||||
],
|
||||
"firstLockAfterHeal": 24,
|
||||
"disagree": 4,
|
||||
"twoAtOne": [
|
||||
"11: 6be45c66bf1f@n0 21931651d900@n1",
|
||||
"12: 12b478144e14@n0 db53da0157dd@n1"
|
||||
],
|
||||
"equivocatorHash": "6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437",
|
||||
"eShare": 0.25,
|
||||
"tableAtCut": [
|
||||
{
|
||||
"keyHash": "6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437",
|
||||
"blocks": 30
|
||||
},
|
||||
{
|
||||
"keyHash": "e2230237a914db9a8f44978fb0b3b95ea362e4283ea3cf713e43476bfa845e1d",
|
||||
"blocks": 20
|
||||
},
|
||||
{
|
||||
"keyHash": "f2f3cc846420ed9121642ccf07f03f7b435f2e8afcf90af5bac32518d287d19c",
|
||||
"blocks": 19
|
||||
},
|
||||
{
|
||||
"keyHash": "dfdcbf58e8dcc22bc6a9a237a4154e922c0c2775fa2603f7884c0bbc7066b0ae",
|
||||
"blocks": 18
|
||||
},
|
||||
{
|
||||
"keyHash": "e3b7bd178e7744facca424e712d8d08148e957ce3a1ae3e5b7930e16fe6d9ca3",
|
||||
"blocks": 17
|
||||
},
|
||||
{
|
||||
"keyHash": "f3b6639d043bbec3aa72e1ebec902777bdd50a31d4f54cd323c2f96888daf32d",
|
||||
"blocks": 16
|
||||
}
|
||||
],
|
||||
"activeAtEnd": [
|
||||
false,
|
||||
false,
|
||||
true
|
||||
],
|
||||
"certificates": {
|
||||
"n0": {
|
||||
"5": {
|
||||
"index": 5,
|
||||
"checkpoint": "4d56e7989501952fbef1ec52db685093e6abe7d84aa0067b6f5bcfd051c7be82",
|
||||
"voterCount": 6,
|
||||
"bitmap": "3f",
|
||||
"signature": "b2b632c98f338c3d4f79f465daa73d39144b89013592d33e6f3f967bcb8b82c1d3a0e8cfd9e3c58f30fc32bcc407019a140668d9601e2493cd31032980f68303e28f5f34224d37987c01d01b78cc6c911e8a89fbef0c4ea8acfc87c4a1f0818c",
|
||||
"aggregator": "6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437",
|
||||
"bytes": "05000000000000004d56e7989501952fbef1ec52db685093e6abe7d84aa0067b6f5bcfd051c7be8206000000010000003fb2b632c98f338c3d4f79f465daa73d39144b89013592d33e6f3f967bcb8b82c1d3a0e8cfd9e3c58f30fc32bcc407019a140668d9601e2493cd31032980f68303e28f5f34224d37987c01d01b78cc6c911e8a89fbef0c4ea8acfc87c4a1f0818c6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe143793fd11be5dbb123b2f2aee56d0d029a4f77026a0bcba299c41ba3c62c1cb63be261b1fb6410523ce1f0951785da2f38f16516231763ee7e3c1c3e18adab14ed3577de72d591359614a1a5ef2ca869fa7a6089763bc8ae17eddbb00cc7c32f6da",
|
||||
"carrier": "c678533c7d8280324bae09c7ea13fbaaf15713fd0b119aa22144883e61c7cb76"
|
||||
},
|
||||
"6": {
|
||||
"index": 6,
|
||||
"checkpoint": "65cbf81efed9e3e7a0a7b8326f34fed9ac9f5a27fdae0306eece025b8808b32d",
|
||||
"voterCount": 6,
|
||||
"bitmap": "3f",
|
||||
"signature": "84a16dc5fd7e8b032df5153ac5f9f4c75e041b88d68550404a6217249e345c2df9db187f89a0711969ecd0224bfebccc011a12ef151220703ec179fb09ec477cd1f09067c58048ad63403180a036760e5d14e81fa0d7d6843638b51d53b7f4ed",
|
||||
"aggregator": "dfdcbf58e8dcc22bc6a9a237a4154e922c0c2775fa2603f7884c0bbc7066b0ae",
|
||||
"bytes": "060000000000000065cbf81efed9e3e7a0a7b8326f34fed9ac9f5a27fdae0306eece025b8808b32d06000000010000003f84a16dc5fd7e8b032df5153ac5f9f4c75e041b88d68550404a6217249e345c2df9db187f89a0711969ecd0224bfebccc011a12ef151220703ec179fb09ec477cd1f09067c58048ad63403180a036760e5d14e81fa0d7d6843638b51d53b7f4eddfdcbf58e8dcc22bc6a9a237a4154e922c0c2775fa2603f7884c0bbc7066b0ae9588b5e2a79c70baa27fe95d696ecadfb34567f6d12446076094565ceea9d999e1255dbc41e05fbd41428a0c1aa6c40f031bde2f1765c4ca6eff9f6ad9c8c3b5421f46712f54ef10f13d3df4e37561678b4a85302e6f7c64b62e904a37f78cb8",
|
||||
"carrier": "7d1e9ab0338e321bfcf62d73ac6447e425a5616f8e3914edbb080bf219971e7e"
|
||||
},
|
||||
"7": {
|
||||
"index": 7,
|
||||
"checkpoint": "5f8d371f0d8a1dc08ce730230d6ee325478bf816ccba5d710947f44feae5f2bb",
|
||||
"voterCount": 6,
|
||||
"bitmap": "27",
|
||||
"signature": "a4077893a14593f99dee082c29943e34c4546865f78c2259851d6b94b796f6e7ee4c022f482787d4ddcbccc8f7d887a81898cc68b6ec84d2d2ee298063f2a076b0a498e7c9e2624a6cae33fe8fcded664f3b84bc3ff3d4b5e541be57d98fa73f",
|
||||
"aggregator": "6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437",
|
||||
"bytes": "07000000000000005f8d371f0d8a1dc08ce730230d6ee325478bf816ccba5d710947f44feae5f2bb060000000100000027a4077893a14593f99dee082c29943e34c4546865f78c2259851d6b94b796f6e7ee4c022f482787d4ddcbccc8f7d887a81898cc68b6ec84d2d2ee298063f2a076b0a498e7c9e2624a6cae33fe8fcded664f3b84bc3ff3d4b5e541be57d98fa73f6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe14378f46f6e938d605228048683618bb17289368d970784dbd7427762c666bfdaefea2137d479082de98549aa5c9edddf2c00544ee087fbbb1db49f1fcb39692c9200b551e4716d9e51f56a72b3e43ffb0d2c6aa5a26270d6d51085dc2b317df93a7",
|
||||
"carrier": "44e19e74fa0f15f8c8a3cc65ddeb283756570fa1c836b27891f72297146de93a"
|
||||
},
|
||||
"11": {
|
||||
"index": 11,
|
||||
"checkpoint": "6be45c66bf1fa60984da74401794645391dbf6cf364c26bc915d6c5f50dc56f6",
|
||||
"voterCount": 5,
|
||||
"bitmap": "0b",
|
||||
"signature": "8841a52fbe582d8a939601e74c6c6d8440908757850d7a09f84f5ebc09f8d39d2a86ec808f7097cc5a8717b4d0d965e618ef12afb58f9fa01203f2425d0767b03bf22aaa53f8bb9909ee5d1a24bcd992d0bc8a769c4c69fbdfed850b2b56b789",
|
||||
"aggregator": "6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437",
|
||||
"bytes": "0b000000000000006be45c66bf1fa60984da74401794645391dbf6cf364c26bc915d6c5f50dc56f605000000010000000b8841a52fbe582d8a939601e74c6c6d8440908757850d7a09f84f5ebc09f8d39d2a86ec808f7097cc5a8717b4d0d965e618ef12afb58f9fa01203f2425d0767b03bf22aaa53f8bb9909ee5d1a24bcd992d0bc8a769c4c69fbdfed850b2b56b7896b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437967dce2be9a838c5fc2a082a26cceded5ce033b1595883e179d04f378fb3a2c6b9eb1f038cbaf796d66b0bbba0fa04b2170a10571264c15ba019a06c424b4ca2916e10992aaa4a41ebccb5f587cd6c74012106533185b7a4a0b4a178960c7b93",
|
||||
"carrier": "51775e48889e9941948420afe8f4c910d44e954a0356ee8f059aca4f0cf41244"
|
||||
},
|
||||
"12": {
|
||||
"index": 12,
|
||||
"checkpoint": "12b478144e1419421bf88701a4ccf40f911147dba5ed595cb97f083f1e0e76a4",
|
||||
"voterCount": 3,
|
||||
"bitmap": "07",
|
||||
"signature": "9117794407de25b10fa4d3e95671b9d7752829889e27ad3b1f7d00a72398374d1030e0ce16bf3eb2af86c63b14a33250071fed8926c87b83bfbc383db726360c8d3c6851cf5d850cddd7c396b970ae1c788b40cdf117a2e4ace40e2a9ca833d9",
|
||||
"aggregator": "6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437",
|
||||
"bytes": "0c0000000000000012b478144e1419421bf88701a4ccf40f911147dba5ed595cb97f083f1e0e76a40300000001000000079117794407de25b10fa4d3e95671b9d7752829889e27ad3b1f7d00a72398374d1030e0ce16bf3eb2af86c63b14a33250071fed8926c87b83bfbc383db726360c8d3c6851cf5d850cddd7c396b970ae1c788b40cdf117a2e4ace40e2a9ca833d96b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437a07057801bef03d91b873d5b08508025c97163d9c97c7f8db1d03b0134868538a0612521f7d65f474a4371fbe1193c950a3d6c2f7fb65fa3b527947b5056e465e3194cd309d172a0bada92ae2824295d43b99923559328138dfa4b7f682cbb5f",
|
||||
"carrier": "79989bec093c0bedeb3fdf8265f1c426878eefd7eca023093efc3be25ecb782d"
|
||||
},
|
||||
"13": {
|
||||
"index": 13,
|
||||
"checkpoint": "4b5cc820954dedffdbbf44641f5269ae0773fd7fdf7d1bd4b6d8e6504a426680",
|
||||
"voterCount": 3,
|
||||
"bitmap": "07",
|
||||
"signature": "a50d650041e6a7df9d129a94c1a2acdf1648019f9b2f7deb7affbe86414a35f1514953d3990593affe71fe2a57b4c3761741659aa00b1b71daf8be8fb1b186608c684900c2ce8feb5ec2a6b9b6f7ca1134b2dac57ec2cfb697e156b4dedd03ee",
|
||||
"aggregator": "6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437",
|
||||
"bytes": "0d000000000000004b5cc820954dedffdbbf44641f5269ae0773fd7fdf7d1bd4b6d8e6504a426680030000000100000007a50d650041e6a7df9d129a94c1a2acdf1648019f9b2f7deb7affbe86414a35f1514953d3990593affe71fe2a57b4c3761741659aa00b1b71daf8be8fb1b186608c684900c2ce8feb5ec2a6b9b6f7ca1134b2dac57ec2cfb697e156b4dedd03ee6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437ad8d1500bc651b36e550797c6a269d7cec4411dd4d2654c1ba3e5c60b0eb2c99a99fa11ca6128661dad9c1fbe8753c361599c548def8aa9592153c7694b070287c21b0e6a4e2cea8815ef1a018cb6b3c30c8c11820144288241d2ef02dce4e65",
|
||||
"carrier": "9ecabf4cfab4f992112b31dfd6278a27ae0e32c694aa6eb06d7db0cba5708ea4"
|
||||
}
|
||||
},
|
||||
"n1": {
|
||||
"5": {
|
||||
"index": 5,
|
||||
"checkpoint": "4d56e7989501952fbef1ec52db685093e6abe7d84aa0067b6f5bcfd051c7be82",
|
||||
"voterCount": 6,
|
||||
"bitmap": "3f",
|
||||
"signature": "b2b632c98f338c3d4f79f465daa73d39144b89013592d33e6f3f967bcb8b82c1d3a0e8cfd9e3c58f30fc32bcc407019a140668d9601e2493cd31032980f68303e28f5f34224d37987c01d01b78cc6c911e8a89fbef0c4ea8acfc87c4a1f0818c",
|
||||
"aggregator": "6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437",
|
||||
"bytes": "05000000000000004d56e7989501952fbef1ec52db685093e6abe7d84aa0067b6f5bcfd051c7be8206000000010000003fb2b632c98f338c3d4f79f465daa73d39144b89013592d33e6f3f967bcb8b82c1d3a0e8cfd9e3c58f30fc32bcc407019a140668d9601e2493cd31032980f68303e28f5f34224d37987c01d01b78cc6c911e8a89fbef0c4ea8acfc87c4a1f0818c6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe143793fd11be5dbb123b2f2aee56d0d029a4f77026a0bcba299c41ba3c62c1cb63be261b1fb6410523ce1f0951785da2f38f16516231763ee7e3c1c3e18adab14ed3577de72d591359614a1a5ef2ca869fa7a6089763bc8ae17eddbb00cc7c32f6da",
|
||||
"carrier": "c678533c7d8280324bae09c7ea13fbaaf15713fd0b119aa22144883e61c7cb76"
|
||||
},
|
||||
"6": {
|
||||
"index": 6,
|
||||
"checkpoint": "65cbf81efed9e3e7a0a7b8326f34fed9ac9f5a27fdae0306eece025b8808b32d",
|
||||
"voterCount": 6,
|
||||
"bitmap": "3f",
|
||||
"signature": "84a16dc5fd7e8b032df5153ac5f9f4c75e041b88d68550404a6217249e345c2df9db187f89a0711969ecd0224bfebccc011a12ef151220703ec179fb09ec477cd1f09067c58048ad63403180a036760e5d14e81fa0d7d6843638b51d53b7f4ed",
|
||||
"aggregator": "dfdcbf58e8dcc22bc6a9a237a4154e922c0c2775fa2603f7884c0bbc7066b0ae",
|
||||
"bytes": "060000000000000065cbf81efed9e3e7a0a7b8326f34fed9ac9f5a27fdae0306eece025b8808b32d06000000010000003f84a16dc5fd7e8b032df5153ac5f9f4c75e041b88d68550404a6217249e345c2df9db187f89a0711969ecd0224bfebccc011a12ef151220703ec179fb09ec477cd1f09067c58048ad63403180a036760e5d14e81fa0d7d6843638b51d53b7f4eddfdcbf58e8dcc22bc6a9a237a4154e922c0c2775fa2603f7884c0bbc7066b0ae9588b5e2a79c70baa27fe95d696ecadfb34567f6d12446076094565ceea9d999e1255dbc41e05fbd41428a0c1aa6c40f031bde2f1765c4ca6eff9f6ad9c8c3b5421f46712f54ef10f13d3df4e37561678b4a85302e6f7c64b62e904a37f78cb8",
|
||||
"carrier": "7d1e9ab0338e321bfcf62d73ac6447e425a5616f8e3914edbb080bf219971e7e"
|
||||
},
|
||||
"7": {
|
||||
"index": 7,
|
||||
"checkpoint": "5f8d371f0d8a1dc08ce730230d6ee325478bf816ccba5d710947f44feae5f2bb",
|
||||
"voterCount": 6,
|
||||
"bitmap": "27",
|
||||
"signature": "a4077893a14593f99dee082c29943e34c4546865f78c2259851d6b94b796f6e7ee4c022f482787d4ddcbccc8f7d887a81898cc68b6ec84d2d2ee298063f2a076b0a498e7c9e2624a6cae33fe8fcded664f3b84bc3ff3d4b5e541be57d98fa73f",
|
||||
"aggregator": "6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437",
|
||||
"bytes": "07000000000000005f8d371f0d8a1dc08ce730230d6ee325478bf816ccba5d710947f44feae5f2bb060000000100000027a4077893a14593f99dee082c29943e34c4546865f78c2259851d6b94b796f6e7ee4c022f482787d4ddcbccc8f7d887a81898cc68b6ec84d2d2ee298063f2a076b0a498e7c9e2624a6cae33fe8fcded664f3b84bc3ff3d4b5e541be57d98fa73f6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe14378f46f6e938d605228048683618bb17289368d970784dbd7427762c666bfdaefea2137d479082de98549aa5c9edddf2c00544ee087fbbb1db49f1fcb39692c9200b551e4716d9e51f56a72b3e43ffb0d2c6aa5a26270d6d51085dc2b317df93a7",
|
||||
"carrier": "44e19e74fa0f15f8c8a3cc65ddeb283756570fa1c836b27891f72297146de93a"
|
||||
},
|
||||
"11": {
|
||||
"index": 11,
|
||||
"checkpoint": "21931651d900af6ff4bdefca2a0a3fae9d4442dbfad43c28036a4ee9edb6e4ff",
|
||||
"voterCount": 3,
|
||||
"bitmap": "07",
|
||||
"signature": "ad1fd70b2a92340deaaa9b392538f76bb938482527e19e36d147290721e88a5d534e5f794edcbb3639af3eccb6d72f7404d1f6bf37a6d63c8b496eb3a2aae4bfb401cde2b20070f75565c0fdfa4fcd27bc48347d61c111f556bcdebd6c5f5484",
|
||||
"aggregator": "6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437",
|
||||
"bytes": "0b0000000000000021931651d900af6ff4bdefca2a0a3fae9d4442dbfad43c28036a4ee9edb6e4ff030000000100000007ad1fd70b2a92340deaaa9b392538f76bb938482527e19e36d147290721e88a5d534e5f794edcbb3639af3eccb6d72f7404d1f6bf37a6d63c8b496eb3a2aae4bfb401cde2b20070f75565c0fdfa4fcd27bc48347d61c111f556bcdebd6c5f54846b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe14378fb9d9653efe79574098842a9aed229e645d2708d7498d2fa37a0d29491c0d8ca7cf244540333a475c68da3c883053c9047e87354cfd6c3a0baa01347243b1d9cc1ac397ae4f123cf271872988e50eb5b84081fe820c286cb37dd7f5e07d2c58",
|
||||
"carrier": "85301559377a2c055c92ccba976664c35197afd73476b3760d64bbc1dd1a203c"
|
||||
},
|
||||
"12": {
|
||||
"index": 12,
|
||||
"checkpoint": "db53da0157dd9cd00ca4804eb855f4b134cdae2ff8e648a95d13fed83f17fa92",
|
||||
"voterCount": 3,
|
||||
"bitmap": "07",
|
||||
"signature": "b3b5eae6719ec1a6be0061fcbe0adb24e7ccf7cadab140bc931e0412da5eeaa9f01e00beb7aa67ecab10cabfe4a2dc1e18727684b4b61309c7d9b107423ba1dab2d7c1926afe993b7b23101affc1f8012729ce0431f8a4316972bb9899a5e58e",
|
||||
"aggregator": "6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437",
|
||||
"bytes": "0c00000000000000db53da0157dd9cd00ca4804eb855f4b134cdae2ff8e648a95d13fed83f17fa92030000000100000007b3b5eae6719ec1a6be0061fcbe0adb24e7ccf7cadab140bc931e0412da5eeaa9f01e00beb7aa67ecab10cabfe4a2dc1e18727684b4b61309c7d9b107423ba1dab2d7c1926afe993b7b23101affc1f8012729ce0431f8a4316972bb9899a5e58e6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437a48a342bbad0cd1dac64e2acb682430090c9d2cf1641045728e19b5afe5b63de564e51eae3e057f0f86baa9621b5db92150f4da14930b57d6f4f299c1ce6764f8ac375623973e9ab200f2d12b76c5e6bd029e50866dab0b25fe27ac9929a6d74",
|
||||
"carrier": "a0eb88cff88068176eb06407492a4986ec2125307bbc0230595d694ccbdd896b"
|
||||
}
|
||||
},
|
||||
"n2": {
|
||||
"5": {
|
||||
"index": 5,
|
||||
"checkpoint": "4d56e7989501952fbef1ec52db685093e6abe7d84aa0067b6f5bcfd051c7be82",
|
||||
"voterCount": 6,
|
||||
"bitmap": "3f",
|
||||
"signature": "b2b632c98f338c3d4f79f465daa73d39144b89013592d33e6f3f967bcb8b82c1d3a0e8cfd9e3c58f30fc32bcc407019a140668d9601e2493cd31032980f68303e28f5f34224d37987c01d01b78cc6c911e8a89fbef0c4ea8acfc87c4a1f0818c",
|
||||
"aggregator": "6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437",
|
||||
"bytes": "05000000000000004d56e7989501952fbef1ec52db685093e6abe7d84aa0067b6f5bcfd051c7be8206000000010000003fb2b632c98f338c3d4f79f465daa73d39144b89013592d33e6f3f967bcb8b82c1d3a0e8cfd9e3c58f30fc32bcc407019a140668d9601e2493cd31032980f68303e28f5f34224d37987c01d01b78cc6c911e8a89fbef0c4ea8acfc87c4a1f0818c6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe143793fd11be5dbb123b2f2aee56d0d029a4f77026a0bcba299c41ba3c62c1cb63be261b1fb6410523ce1f0951785da2f38f16516231763ee7e3c1c3e18adab14ed3577de72d591359614a1a5ef2ca869fa7a6089763bc8ae17eddbb00cc7c32f6da",
|
||||
"carrier": "c678533c7d8280324bae09c7ea13fbaaf15713fd0b119aa22144883e61c7cb76"
|
||||
},
|
||||
"6": {
|
||||
"index": 6,
|
||||
"checkpoint": "65cbf81efed9e3e7a0a7b8326f34fed9ac9f5a27fdae0306eece025b8808b32d",
|
||||
"voterCount": 6,
|
||||
"bitmap": "3f",
|
||||
"signature": "84a16dc5fd7e8b032df5153ac5f9f4c75e041b88d68550404a6217249e345c2df9db187f89a0711969ecd0224bfebccc011a12ef151220703ec179fb09ec477cd1f09067c58048ad63403180a036760e5d14e81fa0d7d6843638b51d53b7f4ed",
|
||||
"aggregator": "dfdcbf58e8dcc22bc6a9a237a4154e922c0c2775fa2603f7884c0bbc7066b0ae",
|
||||
"bytes": "060000000000000065cbf81efed9e3e7a0a7b8326f34fed9ac9f5a27fdae0306eece025b8808b32d06000000010000003f84a16dc5fd7e8b032df5153ac5f9f4c75e041b88d68550404a6217249e345c2df9db187f89a0711969ecd0224bfebccc011a12ef151220703ec179fb09ec477cd1f09067c58048ad63403180a036760e5d14e81fa0d7d6843638b51d53b7f4eddfdcbf58e8dcc22bc6a9a237a4154e922c0c2775fa2603f7884c0bbc7066b0ae9588b5e2a79c70baa27fe95d696ecadfb34567f6d12446076094565ceea9d999e1255dbc41e05fbd41428a0c1aa6c40f031bde2f1765c4ca6eff9f6ad9c8c3b5421f46712f54ef10f13d3df4e37561678b4a85302e6f7c64b62e904a37f78cb8",
|
||||
"carrier": "7d1e9ab0338e321bfcf62d73ac6447e425a5616f8e3914edbb080bf219971e7e"
|
||||
},
|
||||
"7": {
|
||||
"index": 7,
|
||||
"checkpoint": "5f8d371f0d8a1dc08ce730230d6ee325478bf816ccba5d710947f44feae5f2bb",
|
||||
"voterCount": 6,
|
||||
"bitmap": "27",
|
||||
"signature": "a4077893a14593f99dee082c29943e34c4546865f78c2259851d6b94b796f6e7ee4c022f482787d4ddcbccc8f7d887a81898cc68b6ec84d2d2ee298063f2a076b0a498e7c9e2624a6cae33fe8fcded664f3b84bc3ff3d4b5e541be57d98fa73f",
|
||||
"aggregator": "6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe1437",
|
||||
"bytes": "07000000000000005f8d371f0d8a1dc08ce730230d6ee325478bf816ccba5d710947f44feae5f2bb060000000100000027a4077893a14593f99dee082c29943e34c4546865f78c2259851d6b94b796f6e7ee4c022f482787d4ddcbccc8f7d887a81898cc68b6ec84d2d2ee298063f2a076b0a498e7c9e2624a6cae33fe8fcded664f3b84bc3ff3d4b5e541be57d98fa73f6b586fd91961c5cd90fd2e4197ae81b8ff399fca30566103d7f9d43789fe14378f46f6e938d605228048683618bb17289368d970784dbd7427762c666bfdaefea2137d479082de98549aa5c9edddf2c00544ee087fbbb1db49f1fcb39692c9200b551e4716d9e51f56a72b3e43ffb0d2c6aa5a26270d6d51085dc2b317df93a7",
|
||||
"carrier": "44e19e74fa0f15f8c8a3cc65ddeb283756570fa1c836b27891f72297146de93a"
|
||||
}
|
||||
}
|
||||
},
|
||||
"expect": "BOTH A and B recover (two recovery certificates at one index, the measured conflict of 6.5); lockKind recovery on both; the heal strips e; the anchored history untouched",
|
||||
"pass": true
|
||||
}
|
||||
}
|
||||
}
|
||||
35
sim/finality-attacks-results/native-2026-10-09/s203-1c.log
Normal file
35
sim/finality-attacks-results/native-2026-10-09/s203-1c.log
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
lease: holding 8 pool cores (8,9,10,11,12,13,14,15, waited 0 s, class measure, mem 8 GB): finality native runs s203-1c (measurement rows, plan finality-native-runs-2026-10-09)
|
||||
00:27:28.317 rule v4-recovery; node /srv/builds/_scratch/fin-runs/pair-203-wip/igneumd; miner /srv/builds/_scratch/fin-runs/pair-203-wip/igneum-miner; delay 300 ms; 1 blocks/s; override {"finality_v3_activation_daa":0,"finality_v4_activation_daa":0,"finality_v4_recovery":true}; box igneum-build-5; 09/10/2026, 01:27:28 UK
|
||||
00:27:28.318 === 1c (v4-recovery) starting ===
|
||||
00:27:29.169 n1 up pid 321482 json ws://127.0.0.1:29812 p2p 127.0.0.1:29811
|
||||
00:27:29.982 n0 up pid 321694 json ws://127.0.0.1:29802 p2p 127.0.0.1:29801
|
||||
00:27:30.791 n2 up pid 321881 json ws://127.0.0.1:29822 p2p 127.0.0.1:29821
|
||||
00:31:20.816 1c-v4-recovery: cut at warm 230 s: window daa ~209, voters 6, max locked 7/7/7, e holds 25.0% of the sliding table at the cut
|
||||
|
||||
### 1c-v4-recovery: three islands A = n0 (p0 p1), B = n1 (p2 p3), C = n2 (q0), honest 32/32/16 + e 20 at share 0.2 (e mines on A and B, one key); warm 230 s, split 420 s (both proxies cut), heal 400 s, 1 blocks/s in all, delay 300 ms, rule v4-recovery; real nodes on igneum-build-5, /srv/builds/_scratch/fin-runs/pair-203-wip/igneumd; 09/10/2026, 01:45:07 UK
|
||||
|
||||
expected: BOTH A and B recover (two recovery certificates at one index, the measured conflict of 6.5); lockKind recovery on both; the heal strips e; the anchored history untouched
|
||||
|
||||
| measure | n0 (A) | n1 (B) | n2 (C) |
|
||||
|---|---|---|---|
|
||||
| max locked index at the cut | 7 | 7 | 7 |
|
||||
| new locks during the split (index above 7) | 6 | 5 | 0 |
|
||||
| first new lock, s after the cut | 241 | 301 | none |
|
||||
| RECOVERY lock lines during the split (index) | 1 (11) | 1 (11) | 0 |
|
||||
| finality reason at the end of the split | recovered: recovery lock at index 11 with 55.83% of the old anchored table (rule v4), acti | recovered: recovery lock at index 11 with 55.00% of the old anchored table (rule v4), acti | paused: under two thirds of the weight is signing (34.45%; the table frozen at lock 7 has |
|
||||
| lock kinds above 7 at the end (igneum_getFinalityCheckpoints lockKind) | 11:recovery 12:final 13:final 14:final 15:final | 11:recovery 12:final 13:final 14:final | 11:recovery 12:final 13:final 14:recovery 15:final 16:final 17:final 18:final 19:final 20:final |
|
||||
| latestLockKind at the end | final | final | final |
|
||||
| max locked index at the end of the heal window | 15 | 14 | 20 |
|
||||
| pre-heal locks lost or moved after the heal | 0 | 0 | 0 |
|
||||
| conflicting certificates logged (split / end) | 0 / 4 | 0 / 6 | 0 / 0 |
|
||||
| EQUIVOCATION (strip) lines for e at the end | 14 | 18 | 9 |
|
||||
| finality reason at the end | conflict: two valid certificates at index 11; this node keeps 6be45c66bf1fa60984da74401794 | conflict: two valid certificates at index 11; this node keeps 21931651d900af6ff4bdefca2a0a | active |
|
||||
| finalityActive at the end | false | false | true |
|
||||
|
||||
n0 reconnected 99 s after the gates reopened, n2 102 s; first lock after the heal 24 s after the gates reopened; locked indices disagreeing across the three nodes at the end: 4; two certificates at one index during the split: 11: 6be45c66bf1f@n0 21931651d900@n1; 12: 12b478144e14@n0 db53da0157dd@n1; weights at the cut: window daa 209, voters 6, e 25.0% of the sliding table
|
||||
|
||||
[PASS] 1c-v4-recovery
|
||||
00:45:07.528 === 1c done ===
|
||||
|
||||
[PASS] 1c-v4-recovery
|
||||
lease: released 8 pool cores after 1059 s, exit 0
|
||||
26
sim/finality-attacks-results/native-2026-10-09/s203-1c.md
Normal file
26
sim/finality-attacks-results/native-2026-10-09/s203-1c.md
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
|
||||
### 1c-v4-recovery: three islands A = n0 (p0 p1), B = n1 (p2 p3), C = n2 (q0), honest 32/32/16 + e 20 at share 0.2 (e mines on A and B, one key); warm 230 s, split 420 s (both proxies cut), heal 400 s, 1 blocks/s in all, delay 300 ms, rule v4-recovery; real nodes on igneum-build-5, /srv/builds/_scratch/fin-runs/pair-203-wip/igneumd; 09/10/2026, 01:45:07 UK
|
||||
|
||||
expected: BOTH A and B recover (two recovery certificates at one index, the measured conflict of 6.5); lockKind recovery on both; the heal strips e; the anchored history untouched
|
||||
|
||||
| measure | n0 (A) | n1 (B) | n2 (C) |
|
||||
|---|---|---|---|
|
||||
| max locked index at the cut | 7 | 7 | 7 |
|
||||
| new locks during the split (index above 7) | 6 | 5 | 0 |
|
||||
| first new lock, s after the cut | 241 | 301 | none |
|
||||
| RECOVERY lock lines during the split (index) | 1 (11) | 1 (11) | 0 |
|
||||
| finality reason at the end of the split | recovered: recovery lock at index 11 with 55.83% of the old anchored table (rule v4), acti | recovered: recovery lock at index 11 with 55.00% of the old anchored table (rule v4), acti | paused: under two thirds of the weight is signing (34.45%; the table frozen at lock 7 has |
|
||||
| lock kinds above 7 at the end (igneum_getFinalityCheckpoints lockKind) | 11:recovery 12:final 13:final 14:final 15:final | 11:recovery 12:final 13:final 14:final | 11:recovery 12:final 13:final 14:recovery 15:final 16:final 17:final 18:final 19:final 20:final |
|
||||
| latestLockKind at the end | final | final | final |
|
||||
| max locked index at the end of the heal window | 15 | 14 | 20 |
|
||||
| pre-heal locks lost or moved after the heal | 0 | 0 | 0 |
|
||||
| conflicting certificates logged (split / end) | 0 / 4 | 0 / 6 | 0 / 0 |
|
||||
| EQUIVOCATION (strip) lines for e at the end | 14 | 18 | 9 |
|
||||
| finality reason at the end | conflict: two valid certificates at index 11; this node keeps 6be45c66bf1fa60984da74401794 | conflict: two valid certificates at index 11; this node keeps 21931651d900af6ff4bdefca2a0a | active |
|
||||
| finalityActive at the end | false | false | true |
|
||||
|
||||
n0 reconnected 99 s after the gates reopened, n2 102 s; first lock after the heal 24 s after the gates reopened; locked indices disagreeing across the three nodes at the end: 4; two certificates at one index during the split: 11: 6be45c66bf1f@n0 21931651d900@n1; 12: 12b478144e14@n0 db53da0157dd@n1; weights at the cut: window daa 209, voters 6, e 25.0% of the sliding table
|
||||
|
||||
[PASS] 1c-v4-recovery
|
||||
|
||||
[PASS] 1c-v4-recovery
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
#### 00:27:28Z s203-1c: rows 1c port 29800 suffix 971 recovery 1 WARM=230 SPLIT=420 HEAL=400 BPS=1 node /srv/builds/_scratch/fin-runs/pair-203-wip/igneumd (a37f4b6324af0243)
|
||||
rc=0
|
||||
results -> /srv/builds/_scratch/fin-runs/results/s203-1c.md
|
||||
#### 00:45:07Z s203-1c done rc=0
|
||||
00:45:07Z watcher of s203-1c exiting after 0 restart(s)
|
||||
|
|
@ -902,3 +902,15 @@ The `verifies` counters the harness reads (`calls`, `sp1`, `contextRefusals`, `c
|
|||
| 6 (23:29 to 23:41Z, 00:29 to 00:41 UK) | the same pair (c591e63b + harness-unsafe, 0x51cd8cba pin, `igneumd` f6e67c31a02747d5…), the matching manifest beside the harness, 24 leased cores, the exec pool verifier Off (the body rule verifies in consensus), zero restarts | phase 1: the real proof's bytes under another block's statement (block 232) refused by H1 and H2 as a cheap context refusal (`calls` 1, `contextRefusals` 1, `sp1` 0: no verifier run, nothing cached); phase 2: the same bytes under the honest record (block 92) verified once in consensus (H1 0.259 s, H2 0.244 s; `sp1` 1) and paid exactly once, on both honest nodes at the same chain block 374 the same 633964200000000000 wei to 0xc3c3…; phase 3: the invalid bytes verified once at their first carrier (`sp1` 2) and refused again at a later carrier from the cache (`cacheAnswers` 1 to 2, `sp1` unchanged, refusals 2 then 3). H1's and H2's verdicts identical for all three records (232 refused, 92 verified, 481 refused) and their paid maps identical (one payout) | PASS: F01 on real nodes: a verdict is a fact record, never a cached refusal; the two honest nodes agree block for block and payout for payout |
|
||||
|
||||
Summary of section 6: the F01 case passes on the cache-history-node line (c591e63b, the 2.0.2 line ab489403 plus the verify counters) built with `kaspa-consensus/harness-unsafe` for the carrier node, on the pin the host embeds; the five earlier runs are the record of each setup fault (the exec pool verifier Off on a node without the counters, a host pin that was not the node's, the harness-unsafe feature missing, the 8-core lease against the 600-block record window, a stale manifest beside the harness), none a node fault. The plan's "known-failed shape first" (the pre-fix node's cached context refusal replayed under a later carrier) is not run here: it is the enforced lane's own known-failed line on its branch (its row), and the refusal path on this line is the cheap pre-check that caches nothing.
|
||||
|
||||
#### The 2.0.3 reruns (9 October 2026, 01:27 UK onward): rows 1b and 1c on the fixed node, finality-2.0.3-kind-and-conflict c8d22a85 (off kit2b-line 5d53a591), the lock kind read on every node and the conflict status on both nodes of 1c
|
||||
|
||||
The fix (c8d22a85, the node lane's ruling of 01:0x UK on the two findings above): `recovery_stamp` over `frozen_reading` decides a lock's kind from the chain on every node (`ingest_off_chain` stamps a received recovery certificate and prints the RECOVERY line; `evaluate` reads the kind from the held certificate's signers); `record_conflict` records only a VALID second certificate at a locked index, the status reads `finality_active` false with reason "conflict: two valid certificates at index N …", and no new lock is installed above N until `clear_conflicts` (the operator) or `resolve_conflicts` (the chain). Six suites green on build-4 (kaspa-consensus lib 143 serial, its two test targets, consensus-core 178 + 7, p2p-flows, igneum-exec 95, igneum-miner 33, kaspa-pow 7). The pair: `igneumd` a37f4b6324af0243… built on build-4 from c8d22a85's code (the commit's later edits are tests only), on build-5 and build-6, the same harness, windows and watchers as the native runs above (`tools/finality-attacks/v4.mjs`, WARM 230 SPLIT 420 HEAL 400 BPS 1, lease pool class measure, pid watchers). Result files: `sim/finality-attacks-results/native-2026-10-09/s203-*.{md,json}`.
|
||||
|
||||
| row | shape | during the split | after the heal: the lock kinds on every node (`lockKind`) | the conflict status | verdict |
|
||||
|---|---|---|---|---|---|
|
||||
| 1b, e at 0.20 (build-5, 01:27 to 01:45 UK) | 32/32/16 + e 20 on A only, recovery on | A recovered at index 10 (220 s after the cut, 55.46% of table 6: "recovered: recovery lock at index 10 …"), 7 locks on A; B paused ("held by weight table 6 past its window, 29.41% of it signing; a recovery lock needs more than half"), C paused | index 10 reads `recovery` on A's, B's AND C's nodes (the 2.0.2 line read "final" on B's); 11 to 14 `final` on all three; all three at 24, 0 conflicts, 0 disagreement, 0 pre-heal locks moved, `finalityActive` true on all three, first lock after the heal 18 to 33 s after the gates reopened | none (0 / 0 / 0 conflicting certificates) | PASS: finding 1 closed on the node (the kind is the chain's on every node) |
|
||||
| 1b, e at 0.30 (build-6, 01:27 to 01:45 UK) | 32/32/16 + e 30 on A only | A recovered at index 11 (187 s), 8 locks; B and C paused | index 11 `recovery` on all three nodes, 12 to 27 `final`, all three at 27, 0 conflicts, 0 disagreement, active on all three | none | PASS |
|
||||
| 1c (build-5, 01:27 to 01:45 UK) | 32/32/16 + e 20 mining on A AND B (one key) | A recovered at index 11 (241 s, 55.83% of table 7), B recovered at index 11 (301 s, 55.00%): two recovery certificates at indices 11 and 12 (`6be45c66…@A` against `21931651…@B`), C paused at 34.45% | A's node: 11 `recovery`, 12 to 15 `final`, max 15; B's node: 11 `recovery`, 12 to 14 `final`, max 14; 0 pre-heal locks moved; e stripped on all three (14 / 18 / 9 EQUIVOCATION lines) | A's node: "conflict: two valid certificates at index 11; this node keeps 6be45c66…" and `finalityActive` false, 4 CONFLICTING lines (B's valid certificates at 11 and 14, "valid at its block, 3 of 3 voters"), 21 certificates refused as not a conflict (B's chain's later certificates that do not meet the test from A's view), 6 "no new lock above" lines, no lock after the heal; B's node the mirror: "conflict … index 11; this node keeps 21931651…", false, 6 CONFLICTING, 7 refused, 8 freeze lines, no lock after the heal; C's node: A's chain to 20, active, 0 conflicts (B's chain never reached it: the relay skips blocks below the merge-depth root, so B's certificates at 11 stay unverifiable there, pending and bounded) | PASS on both findings: the recovery certificates read `recovery` on the nodes that formed them and on C (which took A's); the two nodes holding two valid certificates report `conflict` with the index, keep the lock they verified first, and install no new lock above it (the 2.0.2 line went on to 18 and 21 reporting "active") |
|
||||
|
||||
One residue for the reader: the kind read at ingest uses the locks the receiving node holds at that moment. A certificate that arrives ahead of the ones below it (index 15 reaching B's and C's nodes before 10 to 14 in the e-at-0.20 row, index 14 on C in 1c) is tested against the older anchored table, reads `recovery` where the forming node reads `final`: an over-label in the safe direction, re-read once the chain fills in is owed. The e-at-0.20 and 1c rows were run in parallel on build-5 (two networks on their own ports), the e-at-0.30 row on build-6.
|
||||
|
|
|
|||
19
tools/ci/batches/fin-203-20261009T0127Z.json
Normal file
19
tools/ci/batches/fin-203-20261009T0127Z.json
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"run_id": "fin-203-20261009T0127Z",
|
||||
"manifest_sha": "c8d22a85",
|
||||
"method": "native",
|
||||
"evidence_dir": "sim/finality-attacks-results/native-2026-10-09",
|
||||
"boxes": [
|
||||
"build-5",
|
||||
"build-6"
|
||||
],
|
||||
"cells": [
|
||||
{
|
||||
"cell": "node:finality-realnode",
|
||||
"status": "PASS",
|
||||
"method": "native",
|
||||
"evidence": "sim/finality-attacks-results/native-2026-10-09/s203-1c.md",
|
||||
"note": "the 2.0.3 reruns of rows 1b (e at 0.20 and 0.30) and 1c on finality-2.0.3-kind-and-conflict c8d22a85 (igneumd a37f4b63, build-5 and build-6, 01:27 to 01:45 UK 9 October, lease pool, pid watchers, zero restarts): a received recovery certificate reads lockKind recovery on every node (1b: index 10 recovery on A's, B's and C's nodes; the 2.0.2 line read final on B's), and two valid certificates at one index pause finality on both holders with reason conflict naming the index and no new lock above it (1c: A's and B's nodes at index 11, finalityActive false, no lock after the heal; the 2.0.2 line went on locking reporting active); 0 pre-heal locks moved in every row. Rows: sim/results_v2.md, the 2.0.3 reruns subsection. FIN-02 and FIN-07's real-node half on the fixed node; the independent review remains."
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -7,7 +7,8 @@ NAME=$1; PORT=$2; SUFFIX=$3; REC=$4; shift 4
|
|||
mkdir -p $R/results $R/pids
|
||||
echo $$ > $R/pids/$NAME.pid
|
||||
export PATH=$HOME/.cargo/bin:/usr/local/bin:$PATH
|
||||
export IGNEUMD=$R/pair-fin-e189afb4/igneumd IGNEUM_MINER=$R/pair-fin-e189afb4/igneum-miner
|
||||
PAIR=${PAIR:-pair-fin-e189afb4}
|
||||
export IGNEUMD=$R/$PAIR/igneumd IGNEUM_MINER=$R/$PAIR/igneum-miner
|
||||
export IGNEUM_FIN_BASE_PORT=$PORT IGNEUM_FIN_SUFFIX=$SUFFIX IGNEUM_FIN_TMP=/tmp/igneum-fin-v4-$NAME RECOVERY=$REC
|
||||
export WARM=${WARM:-230} SPLIT=${SPLIT:-420} HEAL=${HEAL:-400} BPS=${BPS:-1}
|
||||
rm -rf $IGNEUM_FIN_TMP
|
||||
|
|
|
|||
|
|
@ -209,6 +209,7 @@ async function section1(row) {
|
|||
const conflicts = conflictsOf(nodes);
|
||||
const strips = nodes.map(n => stripLines(n).filter(l => !eKey || l.includes(eKey)).length);
|
||||
const reasons = after.map(cp => cp?.finalityReason || '');
|
||||
const activeAtEnd = after.map(cp => cp?.finalityActive ?? null);
|
||||
const recovery = nodes.map(n => recoveryLines(n).length);
|
||||
const recoveryIdx = nodes.map(n => recoveryLines(n).map(l => +(l.match(/index (\d+)/) || [])[1]));
|
||||
// "a recovery lock presented as final on any surface": every locked index above preMax whose kind is not "recovery"
|
||||
|
|
@ -244,9 +245,10 @@ async function section1(row) {
|
|||
out(`| conflicting certificates logged (split / end) | ${splitConflicts.map((c, i) => `${c} / ${conflicts[i]}`).join(' | ')} |`);
|
||||
out(`| EQUIVOCATION (strip) lines${eKey ? ' for e' : ''} at the end | ${strips.join(' | ')} |`);
|
||||
out(`| finality reason at the end | ${reasons.map(r => r.replace(/\|/g, '/').slice(0, 90)).join(' | ')} |`);
|
||||
out(`| finalityActive at the end | ${activeAtEnd.join(' | ')} |`);
|
||||
out(`\nn0 reconnected ${reconnected[0] == null ? 'not within the heal window' : reconnected[0] + ' s after the gates reopened'}, n2 ${reconnected[1] == null ? 'not' : reconnected[1] + ' s'}; first lock after the heal ${firstLockAfterHeal == null ? 'none within the heal window' : firstLockAfterHeal + ' s after the gates reopened'}; locked indices disagreeing across the three nodes at the end: ${disagree}; two certificates at one index during the split: ${twoAtOne.length ? twoAtOne.join('; ') : 'none'}; weights at the cut: window daa ${w.daaScore}, voters ${w.voters}${eKey ? `, e ${(100 * eShare).toFixed(1)}% of the sliding table` : ''}`);
|
||||
out(`\n[${pass ? 'PASS' : 'FAIL'}] ${name}`);
|
||||
facts[name] = { row, rule: RULE, eShareAsked: E_SHARE, box, node: IGNEUMD, uk: uk(), windows: { WARM, SPLIT, HEAL, BPS, DELAY_MS }, beforeMax, preMax, newLocks, firstNew, splitRecovery, recoveryIdx, splitKinds, afterKinds, latestKind, afterMax, lost, splitConflicts, conflicts, strips, reasons, splitReason, reconnected, firstLockAfterHeal, disagree, twoAtOne, equivocatorHash: eKey, eShare, tableAtCut,
|
||||
facts[name] = { row, rule: RULE, eShareAsked: E_SHARE, box, node: IGNEUMD, uk: uk(), windows: { WARM, SPLIT, HEAL, BPS, DELAY_MS }, beforeMax, preMax, newLocks, firstNew, splitRecovery, recoveryIdx, splitKinds, afterKinds, latestKind, afterMax, lost, splitConflicts, conflicts, strips, reasons, splitReason, reconnected, firstLockAfterHeal, disagree, twoAtOne, equivocatorHash: eKey, eShare, tableAtCut, activeAtEnd,
|
||||
certificates: Object.fromEntries(splitCerts.map((m, i) => [`n${i}`, Object.fromEntries([...m].map(([k, c]) => [k, c]))])), expect, pass };
|
||||
results.push({ name, pass });
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue