diff --git a/.github/workflows/check-mainnet-config.yml b/.github/workflows/check-mainnet-config.yml index 98b6bcdc037..c52e012d69d 100644 --- a/.github/workflows/check-mainnet-config.yml +++ b/.github/workflows/check-mainnet-config.yml @@ -41,8 +41,6 @@ jobs: 'mainnet-alonzo-genesis.json' 'mainnet-byron-genesis.json' 'mainnet-checkpoints.json' - 'mainnet-config-bp.json' - 'mainnet-config-bp-legacy.json' 'mainnet-config.json' 'mainnet-config-legacy.json' 'mainnet-peer-snapshot.json' diff --git a/bench/cardano-profile/data/all-profiles-coay.json b/bench/cardano-profile/data/all-profiles-coay.json index 21128236b20..d0cfacd24cf 100644 --- a/bench/cardano-profile/data/all-profiles-coay.json +++ b/bench/cardano-profile/data/all-profiles-coay.json @@ -15,10 +15,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -120,7 +120,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -330,7 +330,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -353,7 +353,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -403,10 +403,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -508,7 +508,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -718,7 +718,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -741,7 +741,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -793,10 +793,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -901,7 +901,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -1111,7 +1111,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -1134,7 +1134,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -1187,10 +1187,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -1292,7 +1292,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -1482,11 +1482,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -1553,11 +1548,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -1947,7 +1937,7 @@ "blocksize64k" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -1970,7 +1960,7 @@ "major": 9, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -2023,10 +2013,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -2128,7 +2118,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -2318,11 +2308,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -2389,11 +2374,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -2783,7 +2763,7 @@ "blocksize64k" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -2806,7 +2786,7 @@ "major": 9, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -2859,10 +2839,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -2964,7 +2944,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -3154,11 +3134,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -3225,11 +3200,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -3619,7 +3589,7 @@ "blocksize64k" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -3642,7 +3612,7 @@ "major": 9, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -3698,10 +3668,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -3803,7 +3773,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -3993,11 +3963,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -4064,11 +4029,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -4458,7 +4418,7 @@ "blocksize64k" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -4481,7 +4441,7 @@ "major": 9, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -4534,10 +4494,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -4639,7 +4599,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -4829,11 +4789,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -4900,11 +4855,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -5294,7 +5244,7 @@ "blocksize64k" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -5317,7 +5267,7 @@ "major": 9, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -5373,10 +5323,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -5478,7 +5428,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -5668,11 +5618,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -5739,11 +5684,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -6133,7 +6073,7 @@ "blocksize64k" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -6156,7 +6096,7 @@ "major": 9, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -6201,10 +6141,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "performance" }, "chaindb": { @@ -6317,7 +6257,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -6527,7 +6467,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 432000, "protocolParams": { "a0": 0.3, @@ -6550,7 +6490,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 2160, @@ -6593,10 +6533,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "performance" }, "chaindb": { @@ -6709,7 +6649,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -6919,7 +6859,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 432000, "protocolParams": { "a0": 0.3, @@ -6942,7 +6882,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 2160, @@ -6985,10 +6925,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "performance" }, "chaindb": { @@ -7101,7 +7041,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -7311,7 +7251,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 432000, "protocolParams": { "a0": 0.3, @@ -7334,7 +7274,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 2160, @@ -7377,10 +7317,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "performance" }, "chaindb": { @@ -7493,7 +7433,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -7703,7 +7643,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 432000, "protocolParams": { "a0": 0.3, @@ -7726,7 +7666,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 2160, @@ -7769,10 +7709,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "performance" }, "chaindb": { @@ -7885,7 +7825,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -8095,7 +8035,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 432000, "protocolParams": { "a0": 0.3, @@ -8118,7 +8058,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 2160, @@ -8161,10 +8101,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "performance" }, "chaindb": { @@ -8277,7 +8217,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -8487,7 +8427,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 432000, "protocolParams": { "a0": 0.3, @@ -8510,7 +8450,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 2160, @@ -8561,10 +8501,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -8666,7 +8606,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -8876,7 +8816,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -8899,7 +8839,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -8949,10 +8889,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -9054,7 +8994,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -9264,7 +9204,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -9287,7 +9227,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -9337,10 +9277,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -9442,7 +9382,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -9652,7 +9592,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -9675,7 +9615,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -9725,10 +9665,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -9864,7 +9804,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -10074,7 +10014,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -10097,7 +10037,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -10147,10 +10087,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -10252,7 +10192,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -10462,7 +10402,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -10485,7 +10425,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -10535,10 +10475,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -10674,7 +10614,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -10884,7 +10824,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -10907,7 +10847,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -10959,10 +10899,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -11067,7 +11007,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -11257,11 +11197,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -11328,11 +11263,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -11466,7 +11396,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -11489,7 +11419,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -11541,10 +11471,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -11663,7 +11593,7 @@ "tx_fee": 1008000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -11853,11 +11783,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -11924,11 +11849,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -12062,7 +11982,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -12085,7 +12005,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -12137,10 +12057,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -12259,7 +12179,7 @@ "tx_fee": 1004000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -12449,11 +12369,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -12520,11 +12435,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -12658,7 +12568,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -12681,7 +12591,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -12733,10 +12643,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -12841,7 +12751,7 @@ "tx_fee": 1412000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -13031,11 +12941,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -13102,11 +13007,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -13240,7 +13140,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -13263,7 +13163,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -13315,10 +13215,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -13444,7 +13344,7 @@ "tx_fee": 940000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -13634,11 +13534,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -13705,11 +13600,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -14092,10 +13982,10 @@ "parameter_k": 3, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -14115,10 +14005,10 @@ "nOpt": 500, "poolDeposit": 500000000, "protocolVersion": { - "major": 9, + "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -14170,10 +14060,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -14286,7 +14176,7 @@ "tx_fee": 940000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -14476,11 +14366,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -14547,11 +14432,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -14920,53 +14800,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "delegator_coin": 1000000000000000, @@ -14980,12 +14814,10 @@ "parameter_k": 3, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, - "pparamsOverlays": [ - "v10-preview" - ], + "pparamsEpoch": 537, + "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -15008,7 +14840,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -15060,10 +14892,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -15176,7 +15008,7 @@ "tx_fee": 940000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -15366,11 +15198,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -15437,11 +15264,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -15810,53 +15632,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "delegator_coin": 1000000000000000, @@ -15870,13 +15646,12 @@ "parameter_k": 3, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [ - "budget/block/steps/double", - "v10-preview" + "budget/block/steps/double" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -15899,7 +15674,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -15949,10 +15724,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -16054,7 +15829,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -16264,7 +16039,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -16287,7 +16062,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -16337,10 +16112,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -16442,7 +16217,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -16652,7 +16427,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -16675,7 +16450,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -16725,10 +16500,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -16834,7 +16609,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -17044,7 +16819,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -17067,7 +16842,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -17119,10 +16894,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -17227,7 +17002,7 @@ "tx_fee": 1380000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -17417,11 +17192,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -17488,11 +17258,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -17627,7 +17392,7 @@ "blocksize64k" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -17650,7 +17415,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -17700,10 +17465,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -17839,7 +17604,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -18049,7 +17814,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -18072,7 +17837,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -18122,10 +17887,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -18227,7 +17992,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -18437,7 +18202,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -18460,7 +18225,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -18510,10 +18275,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -18649,7 +18414,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -18859,7 +18624,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -18882,7 +18647,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -18934,10 +18699,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -19042,7 +18807,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -19252,7 +19017,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -19275,7 +19040,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -19325,10 +19090,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -19430,7 +19195,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -19640,7 +19405,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -19663,7 +19428,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -19715,10 +19480,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -19819,7 +19584,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -20029,7 +19794,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -20052,7 +19817,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -20104,10 +19869,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -20242,7 +20007,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -20452,7 +20217,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -20475,7 +20240,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -20527,10 +20292,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.050, + "minimum_chain_density": 5.0e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": null }, "cli_args": { @@ -20864,7 +20629,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 10, @@ -20917,10 +20682,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -21021,7 +20786,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -21231,7 +20996,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -21254,7 +21019,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -21306,10 +21071,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -21410,7 +21175,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -21620,7 +21385,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -21643,7 +21408,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -21695,10 +21460,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -21802,7 +21567,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -22012,7 +21777,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -22035,7 +21800,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -22087,10 +21852,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -22194,7 +21959,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -22404,7 +22169,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -22427,7 +22192,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -22477,10 +22242,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -22582,7 +22347,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -22792,7 +22557,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -22815,7 +22580,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -22865,10 +22630,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -22970,7 +22735,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -23180,7 +22945,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -23203,7 +22968,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -23253,10 +23018,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -23392,7 +23157,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -23582,11 +23347,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -23653,11 +23413,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -23791,7 +23546,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -23814,7 +23569,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -23864,10 +23619,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -24025,7 +23780,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -24215,11 +23970,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -24286,11 +24036,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -24424,7 +24169,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -24447,7 +24192,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -24497,10 +24242,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -24602,7 +24347,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -24812,7 +24557,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -24835,7 +24580,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -24885,10 +24630,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -24990,7 +24735,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -25200,7 +24945,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -25223,7 +24968,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -25275,10 +25020,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -25383,7 +25128,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -25593,7 +25338,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -25616,7 +25361,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -25666,10 +25411,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -25771,7 +25516,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -25981,7 +25726,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -26004,7 +25749,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -26054,10 +25799,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -26159,7 +25904,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -26369,7 +26114,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -26392,7 +26137,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -26444,10 +26189,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -26548,7 +26293,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -26758,7 +26503,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -26781,7 +26526,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -26833,10 +26578,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -26937,7 +26682,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -27127,11 +26872,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -27198,11 +26938,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -27585,12 +27320,12 @@ "parameter_k": 3, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [ "blocksize64k" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -27610,10 +27345,10 @@ "nOpt": 500, "poolDeposit": 500000000, "protocolVersion": { - "major": 9, + "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -27665,10 +27400,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -27769,7 +27504,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -27979,7 +27714,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -28002,7 +27737,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -28054,10 +27789,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -28161,7 +27896,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -28371,7 +28106,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -28394,7 +28129,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -28446,10 +28181,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -28553,7 +28288,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -28743,11 +28478,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -28814,11 +28544,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -28952,7 +28677,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -28975,7 +28700,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -29027,10 +28752,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -29131,7 +28856,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -29341,7 +29066,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -29364,7 +29089,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -29416,10 +29141,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -29520,7 +29245,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -29710,11 +29435,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -29781,11 +29501,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -30168,12 +29883,12 @@ "parameter_k": 3, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [ "blocksize64k" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -30193,10 +29908,10 @@ "nOpt": 500, "poolDeposit": 500000000, "protocolVersion": { - "major": 9, + "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -30248,10 +29963,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -30352,7 +30067,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -30542,11 +30257,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -30613,11 +30323,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -31000,12 +30705,12 @@ "parameter_k": 3, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [ "blocksize64k" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -31025,10 +30730,10 @@ "nOpt": 500, "poolDeposit": 500000000, "protocolVersion": { - "major": 9, + "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -31082,10 +30787,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -31186,7 +30891,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -31376,11 +31081,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -31447,11 +31147,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -31834,12 +31529,12 @@ "parameter_k": 3, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [ "blocksize64k" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -31859,10 +31554,10 @@ "nOpt": 500, "poolDeposit": 500000000, "protocolVersion": { - "major": 9, + "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -31916,10 +31611,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -32020,7 +31715,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -32210,11 +31905,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -32281,11 +31971,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -32668,12 +32353,12 @@ "parameter_k": 3, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [ "blocksize64k" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -32693,10 +32378,10 @@ "nOpt": 500, "poolDeposit": 500000000, "protocolVersion": { - "major": 9, + "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -32751,10 +32436,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -32855,7 +32540,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -33045,11 +32730,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -33116,11 +32796,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -33503,12 +33178,12 @@ "parameter_k": 3, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [ "blocksize64k" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -33528,10 +33203,10 @@ "nOpt": 500, "poolDeposit": 500000000, "protocolVersion": { - "major": 9, + "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -33587,10 +33262,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -33691,7 +33366,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -33901,7 +33576,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -33924,7 +33599,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -33976,10 +33651,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -34083,7 +33758,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -34293,7 +33968,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -34316,7 +33991,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -34368,10 +34043,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -34472,7 +34147,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -34682,7 +34357,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -34705,7 +34380,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -34759,10 +34434,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -34863,7 +34538,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -35073,7 +34748,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -35096,7 +34771,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -35151,10 +34826,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -35255,7 +34930,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -35465,7 +35140,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -35488,7 +35163,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -35542,10 +35217,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -35646,7 +35321,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -35856,7 +35531,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -35879,7 +35554,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -35934,10 +35609,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -36038,7 +35713,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -36248,7 +35923,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -36271,7 +35946,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -36325,10 +36000,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -36429,7 +36104,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -36639,7 +36314,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -36662,7 +36337,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -36716,10 +36391,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -36820,7 +36495,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -37010,11 +36685,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -37081,11 +36751,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -37219,7 +36884,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -37242,7 +36907,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -37294,10 +36959,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -37398,7 +37063,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -37588,11 +37253,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -37659,11 +37319,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -37797,7 +37452,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -37820,7 +37475,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -37872,10 +37527,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -37976,7 +37631,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -38166,11 +37821,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -38237,11 +37887,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -38375,7 +38020,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -38398,7 +38043,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -38450,10 +38095,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -38554,7 +38199,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -38744,11 +38389,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -38815,11 +38455,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -38953,7 +38588,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -38976,7 +38611,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -39028,10 +38663,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -39132,7 +38767,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -39322,11 +38957,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -39393,11 +39023,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -39531,7 +39156,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -39554,7 +39179,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -39606,10 +39231,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -39711,7 +39336,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -39921,7 +39546,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -39944,7 +39569,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -39996,10 +39621,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -40100,7 +39725,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -40310,7 +39935,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -40333,7 +39958,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -40385,10 +40010,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -40489,7 +40114,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -40699,7 +40324,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -40722,7 +40347,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -40774,10 +40399,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -40878,7 +40503,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -41088,7 +40713,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -41111,7 +40736,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -41161,10 +40786,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -41300,7 +40925,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -41490,11 +41115,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -41561,11 +41181,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -41699,7 +41314,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -41722,7 +41337,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -41756,13 +41371,13 @@ }, "workloads": [ { + "before_nodes": false, "entrypoints": { "pre_generator": null, "producers": "latency" }, "name": "latency", "parameters": {}, - "before_nodes": false, "wait_pools": false } ] @@ -41783,10 +41398,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -41944,7 +41559,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -42134,11 +41749,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -42205,11 +41815,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -42343,7 +41948,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -42366,7 +41971,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -42400,13 +42005,13 @@ }, "workloads": [ { + "before_nodes": false, "entrypoints": { "pre_generator": null, "producers": "latency" }, "name": "latency", "parameters": {}, - "before_nodes": false, "wait_pools": false } ] @@ -42430,10 +42035,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -42552,7 +42157,7 @@ "tx_fee": 1008000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -42742,11 +42347,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -42813,11 +42413,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -43186,53 +42781,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "delegator_coin": 1000000000000000, @@ -43246,12 +42795,10 @@ "parameter_k": 40, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, - "pparamsOverlays": [ - "v10-preview" - ], + "pparamsEpoch": 537, + "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -43274,7 +42821,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -43327,10 +42874,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -43449,7 +42996,7 @@ "tx_fee": 1008000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -43639,11 +43186,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -43710,11 +43252,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -44083,53 +43620,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "delegator_coin": 1000000000000000, @@ -44143,13 +43634,12 @@ "parameter_k": 40, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [ - "budget/block/steps/double", - "v10-preview" + "budget/block/steps/double" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -44172,7 +43662,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -44225,10 +43715,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -44330,7 +43820,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -44520,11 +44010,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -44591,11 +44076,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -44964,53 +44444,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "delegator_coin": 1000000000000000, @@ -45024,12 +44458,10 @@ "parameter_k": 40, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, - "pparamsOverlays": [ - "v10-preview" - ], + "pparamsEpoch": 537, + "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -45052,7 +44484,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -45105,10 +44537,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -45210,7 +44642,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -45400,11 +44832,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -45471,11 +44898,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -45844,53 +45266,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "delegator_coin": 1000000000000000, @@ -45904,12 +45280,10 @@ "parameter_k": 40, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, - "pparamsOverlays": [ - "v10-preview" - ], + "pparamsEpoch": 537, + "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -45932,7 +45306,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -45984,10 +45358,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -46088,7 +45462,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -46298,7 +45672,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -46321,7 +45695,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -46373,10 +45747,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -46511,7 +45885,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -46721,7 +46095,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -46744,7 +46118,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -46796,10 +46170,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -46903,7 +46277,7 @@ "tx_fee": 1380000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -47093,11 +46467,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -47164,11 +46533,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -47302,7 +46666,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -47325,7 +46689,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -47378,10 +46742,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -47520,7 +46884,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -47710,11 +47074,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -47781,11 +47140,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -47919,7 +47273,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -47942,7 +47296,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -47995,10 +47349,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -48137,7 +47491,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -48327,11 +47681,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -48398,11 +47747,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -48536,7 +47880,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -48559,7 +47903,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -48612,10 +47956,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -48754,7 +48098,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -48944,11 +48288,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -49015,11 +48354,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -49153,7 +48487,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -49176,7 +48510,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -49229,10 +48563,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -49371,7 +48705,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -49561,11 +48895,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -49632,11 +48961,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -49770,7 +49094,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -49793,7 +49117,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -49845,10 +49169,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -49966,7 +49290,7 @@ "tx_fee": 1008000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -50156,11 +49480,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -50227,11 +49546,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -50365,7 +49679,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -50388,7 +49702,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -50441,10 +49755,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -50597,7 +49911,7 @@ "tx_fee": 1008000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -50787,11 +50101,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -50858,11 +50167,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -50996,7 +50300,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -51019,7 +50323,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -51071,10 +50375,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -51192,7 +50496,7 @@ "tx_fee": 1004000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -51382,11 +50686,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -51453,11 +50752,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -51591,7 +50885,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -51614,7 +50908,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -51667,10 +50961,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -51823,7 +51117,7 @@ "tx_fee": 1004000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -52013,11 +51307,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -52084,11 +51373,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -52222,7 +51506,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -52245,7 +51529,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -52298,10 +51582,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -52449,7 +51733,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -52639,11 +51923,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -52710,11 +51989,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -53097,10 +52371,10 @@ "parameter_k": 40, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -53120,10 +52394,10 @@ "nOpt": 500, "poolDeposit": 500000000, "protocolVersion": { - "major": 9, + "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -53176,10 +52450,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -53318,7 +52592,7 @@ "tx_fee": 1892175 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -53508,11 +52782,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -53579,11 +52848,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -53966,12 +53230,12 @@ "parameter_k": 40, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [ "budget/block/memory/oneandahalf" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -53991,10 +53255,10 @@ "nOpt": 500, "poolDeposit": 500000000, "protocolVersion": { - "major": 9, + "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -54061,10 +53325,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -54203,7 +53467,7 @@ "tx_fee": 2463246 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -54393,11 +53657,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -54464,11 +53723,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -54851,12 +54105,12 @@ "parameter_k": 40, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [ "budget/block/memory/double" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -54876,10 +54130,10 @@ "nOpt": 500, "poolDeposit": 500000000, "protocolVersion": { - "major": 9, + "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -54946,10 +54200,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -55088,7 +54342,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -55278,11 +54532,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -55349,11 +54598,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -55736,10 +54980,10 @@ "parameter_k": 40, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -55759,10 +55003,10 @@ "nOpt": 500, "poolDeposit": 500000000, "protocolVersion": { - "major": 9, + "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -55815,10 +55059,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -55957,7 +55201,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -56147,11 +55391,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -56218,11 +55457,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -56605,10 +55839,10 @@ "parameter_k": 40, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -56628,10 +55862,10 @@ "nOpt": 500, "poolDeposit": 500000000, "protocolVersion": { - "major": 9, + "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -56687,10 +55921,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -56829,7 +56063,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -57019,11 +56253,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -57090,11 +56319,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -57486,53 +56710,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "delegator_coin": 1000000000000000, @@ -57546,13 +56724,12 @@ "parameter_k": 40, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [ - "v10-preview", "voting" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -57575,7 +56752,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -57609,6 +56786,7 @@ }, "workloads": [ { + "before_nodes": false, "entrypoints": { "pre_generator": "workflow_generator", "producers": "workflow_producer" @@ -57619,7 +56797,6 @@ "submit_vote": true, "votes_per_tx": 2 }, - "before_nodes": false, "wait_pools": true } ] @@ -57643,10 +56820,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -57785,7 +56962,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -57975,11 +57152,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -58046,11 +57218,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -58442,53 +57609,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "delegator_coin": 1000000000000000, @@ -58502,13 +57623,12 @@ "parameter_k": 40, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [ - "v10-preview", "voting" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -58531,7 +57651,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -58565,6 +57685,7 @@ }, "workloads": [ { + "before_nodes": false, "entrypoints": { "pre_generator": "workflow_generator", "producers": "workflow_producer" @@ -58574,7 +57695,6 @@ "outs_per_split_transaction": 193, "submit_vote": false }, - "before_nodes": false, "wait_pools": true } ] @@ -58598,10 +57718,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -58740,7 +57860,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -58930,11 +58050,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -59001,11 +58116,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -59397,53 +58507,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "delegator_coin": 1000000000000000, @@ -59457,13 +58521,12 @@ "parameter_k": 40, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [ - "v10-preview", "voting" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -59486,7 +58549,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -59520,6 +58583,7 @@ }, "workloads": [ { + "before_nodes": false, "entrypoints": { "pre_generator": "workflow_generator", "producers": "workflow_producer" @@ -59530,7 +58594,6 @@ "submit_vote": true, "votes_per_tx": 1 }, - "before_nodes": false, "wait_pools": true } ] @@ -59554,10 +58617,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -59696,7 +58759,7 @@ "tx_fee": 1412000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -59886,11 +58949,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -59957,11 +59015,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -60095,7 +59148,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -60118,7 +59171,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -60171,10 +59224,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -60279,7 +59332,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -60469,11 +59522,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -60540,11 +59588,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -60913,53 +59956,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "delegator_coin": 1000000000000000, @@ -60973,12 +59970,10 @@ "parameter_k": 3, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, - "pparamsOverlays": [ - "v10-preview" - ], + "pparamsEpoch": 537, + "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -61001,7 +59996,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -61054,10 +60049,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -61162,7 +60157,7 @@ "tx_fee": 2463246 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -61352,11 +60347,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -61423,11 +60413,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -61796,53 +60781,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "delegator_coin": 1000000000000000, @@ -61856,13 +60795,12 @@ "parameter_k": 3, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [ - "budget/block/memory/double", - "v10-preview" + "budget/block/memory/double" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -61885,7 +60823,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -61952,10 +60890,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -62074,7 +61012,7 @@ "tx_fee": 1008000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -62264,11 +61202,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -62335,11 +61268,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -62708,53 +61636,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "delegator_coin": 1000000000000000, @@ -62768,12 +61650,10 @@ "parameter_k": 3, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, - "pparamsOverlays": [ - "v10-preview" - ], + "pparamsEpoch": 537, + "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -62796,7 +61676,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -62849,10 +61729,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -62971,7 +61851,7 @@ "tx_fee": 1008000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -63161,11 +62041,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -63232,11 +62107,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -63605,53 +62475,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "delegator_coin": 1000000000000000, @@ -63665,13 +62489,12 @@ "parameter_k": 3, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [ - "budget/block/steps/double", - "v10-preview" + "budget/block/steps/double" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -63694,7 +62517,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -63747,10 +62570,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -63869,7 +62692,7 @@ "tx_fee": 1004000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -64059,11 +62882,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -64130,11 +62948,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -64503,53 +63316,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "delegator_coin": 1000000000000000, @@ -64563,12 +63330,10 @@ "parameter_k": 3, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, - "pparamsOverlays": [ - "v10-preview" - ], + "pparamsEpoch": 537, + "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -64591,7 +63356,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -64644,10 +63409,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -64766,7 +63531,7 @@ "tx_fee": 1004000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -64956,11 +63721,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -65027,11 +63787,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -65400,53 +64155,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "delegator_coin": 1000000000000000, @@ -65460,13 +64169,12 @@ "parameter_k": 3, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [ - "budget/block/steps/double", - "v10-preview" + "budget/block/steps/double" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -65489,7 +64197,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -65541,10 +64249,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -65670,7 +64378,7 @@ "tx_fee": 940000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -65860,11 +64568,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -65931,11 +64634,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -66304,53 +65002,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "delegator_coin": 1000000000000000, @@ -66364,12 +65016,10 @@ "parameter_k": 3, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, - "pparamsOverlays": [ - "v10-preview" - ], + "pparamsEpoch": 537, + "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -66392,7 +65042,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -66444,10 +65094,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -66552,7 +65202,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -66742,11 +65392,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -66813,11 +65458,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -67186,53 +65826,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "delegator_coin": 1000000000000000, @@ -67246,12 +65840,10 @@ "parameter_k": 3, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, - "pparamsOverlays": [ - "v10-preview" - ], + "pparamsEpoch": 537, + "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -67274,7 +65866,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -67326,10 +65918,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -67442,7 +66034,7 @@ "tx_fee": 940000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -67632,11 +66224,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -67703,11 +66290,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -68076,53 +66658,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "delegator_coin": 1000000000000000, @@ -68136,12 +66672,10 @@ "parameter_k": 3, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, - "pparamsOverlays": [ - "v10-preview" - ], + "pparamsEpoch": 537, + "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -68164,7 +66698,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -68217,10 +66751,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -68380,7 +66914,7 @@ "tx_fee": 940000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -68570,11 +67104,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -68641,11 +67170,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -69014,53 +67538,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "delegator_coin": 1000000000000000, @@ -69074,12 +67552,10 @@ "parameter_k": 40, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, - "pparamsOverlays": [ - "v10-preview" - ], + "pparamsEpoch": 537, + "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -69102,7 +67578,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -69155,10 +67631,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -69318,7 +67794,7 @@ "tx_fee": 940000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -69508,11 +67984,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -69579,11 +68050,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -69952,53 +68418,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "delegator_coin": 1000000000000000, @@ -70012,13 +68432,12 @@ "parameter_k": 40, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [ - "budget/block/steps/oneandahalf", - "v10-preview" + "budget/block/steps/oneandahalf" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -70041,7 +68460,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -70094,10 +68513,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -70257,7 +68676,7 @@ "tx_fee": 940000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -70447,11 +68866,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -70518,11 +68932,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -70891,53 +69300,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "delegator_coin": 1000000000000000, @@ -70951,13 +69314,12 @@ "parameter_k": 40, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [ - "budget/block/steps/double", - "v10-preview" + "budget/block/steps/double" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -70980,7 +69342,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -71033,10 +69395,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -71183,7 +69545,7 @@ "tx_fee": 940000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -71373,11 +69735,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -71444,11 +69801,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -71817,53 +70169,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "delegator_coin": 1000000000000000, @@ -71877,12 +70183,10 @@ "parameter_k": 40, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, - "pparamsOverlays": [ - "v10-preview" - ], + "pparamsEpoch": 537, + "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -71905,7 +70209,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -71958,10 +70262,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -72108,7 +70412,7 @@ "tx_fee": 940000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -72298,11 +70602,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -72369,11 +70668,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -72742,53 +71036,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "delegator_coin": 1000000000000000, @@ -72802,13 +71050,12 @@ "parameter_k": 40, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [ - "budget/block/steps/oneandahalf", - "v10-preview" + "budget/block/steps/oneandahalf" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -72831,7 +71078,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -72884,10 +71131,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -73034,7 +71281,7 @@ "tx_fee": 940000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -73224,11 +71471,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -73295,11 +71537,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -73668,53 +71905,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "delegator_coin": 1000000000000000, @@ -73728,13 +71919,12 @@ "parameter_k": 40, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [ - "budget/block/steps/double", - "v10-preview" + "budget/block/steps/double" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -73757,7 +71947,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -73810,10 +72000,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -73952,7 +72142,7 @@ "tx_fee": 1412000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -74142,11 +72332,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -74213,11 +72398,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -74600,10 +72780,10 @@ "parameter_k": 40, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -74623,10 +72803,10 @@ "nOpt": 500, "poolDeposit": 500000000, "protocolVersion": { - "major": 9, + "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -74676,10 +72856,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -74781,7 +72961,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -74991,7 +73171,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -75014,7 +73194,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -75064,10 +73244,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -75169,7 +73349,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -75379,7 +73559,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -75402,7 +73582,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -75452,10 +73632,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -75557,7 +73737,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -75767,7 +73947,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -75790,7 +73970,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -75840,10 +74020,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -75945,7 +74125,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -76155,7 +74335,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -76178,7 +74358,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -76228,10 +74408,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -76333,7 +74513,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -76543,7 +74723,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -76566,7 +74746,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -76616,10 +74796,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -76721,7 +74901,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -76931,7 +75111,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -76954,7 +75134,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -77006,10 +75186,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -77111,7 +75291,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -77321,7 +75501,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -77344,7 +75524,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 3, @@ -77397,10 +75577,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -77555,7 +75735,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -77745,11 +75925,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -77816,11 +75991,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -77954,7 +76124,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 1200, "protocolParams": { "a0": 0.3, @@ -77977,7 +76147,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 6, @@ -78032,10 +76202,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -78190,7 +76360,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -78380,11 +76550,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -78451,11 +76616,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -78589,7 +76749,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 1200, "protocolParams": { "a0": 0.3, @@ -78612,7 +76772,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 6, @@ -78665,10 +76825,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -78823,7 +76983,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -79013,11 +77173,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -79084,11 +77239,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -79222,7 +77372,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 1200, "protocolParams": { "a0": 0.3, @@ -79245,7 +77395,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 6, @@ -79298,10 +77448,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -79437,7 +77587,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -79627,11 +77777,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -79698,11 +77843,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -79836,7 +77976,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -79859,7 +77999,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -79912,10 +78052,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -80051,7 +78191,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -80241,11 +78381,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -80312,11 +78447,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -80450,7 +78580,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -80473,7 +78603,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -80526,10 +78656,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -80665,7 +78795,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -80855,11 +78985,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -80926,11 +79051,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -81064,7 +79184,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -81087,7 +79207,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -81140,10 +79260,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -81279,7 +79399,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -81469,11 +79589,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -81540,11 +79655,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -81678,7 +79788,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -81701,7 +79811,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -81754,10 +79864,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -81914,7 +80024,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -82104,11 +80214,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -82175,11 +80280,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -82313,7 +80413,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -82336,7 +80436,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -82389,10 +80489,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -82528,7 +80628,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -82718,11 +80818,6 @@ "blake2b_256-cpu-arguments-intercept": 117366, "blake2b_256-cpu-arguments-slope": 10475, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 23000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 23000, @@ -82789,11 +80884,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 57667, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 1000, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 197145, @@ -82927,7 +81017,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -82950,7 +81040,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -83003,10 +81093,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -83151,7 +81241,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -83341,11 +81431,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -83412,11 +81497,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -83799,10 +81879,10 @@ "parameter_k": 40, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -83822,10 +81902,10 @@ "nOpt": 500, "poolDeposit": 500000000, "protocolVersion": { - "major": 9, + "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -83859,13 +81939,13 @@ }, "workloads": [ { + "before_nodes": true, "entrypoints": { "pre_generator": null, "producers": "cgroup_memory" }, "name": "cgroup_memory", "parameters": {}, - "before_nodes": true, "wait_pools": true } ] @@ -83889,10 +81969,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -84042,7 +82122,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -84232,11 +82312,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -84303,11 +82378,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -84690,10 +82760,10 @@ "parameter_k": 40, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -84713,10 +82783,10 @@ "nOpt": 500, "poolDeposit": 500000000, "protocolVersion": { - "major": 9, + "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -84750,13 +82820,13 @@ }, "workloads": [ { + "before_nodes": true, "entrypoints": { "pre_generator": null, "producers": "cgroup_memory" }, "name": "cgroup_memory", "parameters": {}, - "before_nodes": true, "wait_pools": true } ] @@ -84780,10 +82850,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -84928,7 +82998,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -85118,11 +83188,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -85189,11 +83254,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -85576,10 +83636,10 @@ "parameter_k": 40, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -85599,10 +83659,10 @@ "nOpt": 500, "poolDeposit": 500000000, "protocolVersion": { - "major": 9, + "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -85655,10 +83715,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -85794,7 +83854,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -85984,11 +84044,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -86055,11 +84110,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -86442,10 +84492,10 @@ "parameter_k": 40, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -86465,10 +84515,10 @@ "nOpt": 500, "poolDeposit": 500000000, "protocolVersion": { - "major": 9, + "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -86521,10 +84571,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -86660,7 +84710,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -86850,11 +84900,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -86921,11 +84966,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -87308,10 +85348,10 @@ "parameter_k": 40, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -87331,10 +85371,10 @@ "nOpt": 500, "poolDeposit": 500000000, "protocolVersion": { - "major": 9, + "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -87390,10 +85430,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -87529,7 +85569,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -87719,11 +85759,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -87790,11 +85825,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -88186,53 +86216,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "delegator_coin": 1000000000000000, @@ -88246,13 +86230,12 @@ "parameter_k": 40, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [ - "v10-preview", "voting" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -88275,7 +86258,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -88309,6 +86292,7 @@ }, "workloads": [ { + "before_nodes": false, "entrypoints": { "pre_generator": "workflow_generator", "producers": "workflow_producer" @@ -88319,7 +86303,6 @@ "submit_vote": true, "votes_per_tx": 2 }, - "before_nodes": false, "wait_pools": true } ] @@ -88343,10 +86326,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -88482,7 +86465,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -88672,11 +86655,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -88743,11 +86721,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -89139,53 +87112,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "delegator_coin": 1000000000000000, @@ -89199,13 +87126,12 @@ "parameter_k": 40, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [ - "v10-preview", "voting" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -89228,7 +87154,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -89262,6 +87188,7 @@ }, "workloads": [ { + "before_nodes": false, "entrypoints": { "pre_generator": "workflow_generator", "producers": "workflow_producer" @@ -89271,7 +87198,6 @@ "outs_per_split_transaction": 193, "submit_vote": false }, - "before_nodes": false, "wait_pools": true } ] @@ -89295,10 +87221,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.025, + "minimum_chain_density": 2.5e-2, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 2.0e-2, "type": "standard" }, "cli_args": { @@ -89434,7 +87360,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 5.0e-2, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -89624,11 +87550,6 @@ "blake2b_256-cpu-arguments-intercept": 201305, "blake2b_256-cpu-arguments-slope": 8356, "blake2b_256-memory-arguments": 4, - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, "cekApplyCost-exBudgetCPU": 16000, "cekApplyCost-exBudgetMemory": 100, "cekBuiltinCost-exBudgetCPU": 16000, @@ -89695,11 +87616,6 @@ "ifThenElse-memory-arguments": 1, "indexByteString-cpu-arguments": 13169, "indexByteString-memory-arguments": 4, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1, "lengthOfByteString-cpu-arguments": 22100, "lengthOfByteString-memory-arguments": 10, "lessThanByteString-cpu-arguments-intercept": 28999, @@ -90091,53 +88007,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "delegator_coin": 1000000000000000, @@ -90151,13 +88021,12 @@ "parameter_k": 40, "per_pool_balance": 1000000000000000, "pool_coin": 1000000000000000, - "pparamsEpoch": 507, + "pparamsEpoch": 537, "pparamsOverlays": [ - "v10-preview", "voting" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 5.0e-2, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -90180,7 +88049,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 3.0e-3, "tau": 0.2 }, "securityParam": 40, @@ -90214,6 +88083,7 @@ }, "workloads": [ { + "before_nodes": false, "entrypoints": { "pre_generator": "workflow_generator", "producers": "workflow_producer" @@ -90224,9 +88094,9 @@ "submit_vote": true, "votes_per_tx": 1 }, - "before_nodes": false, "wait_pools": true } ] } } + diff --git a/bench/cardano-profile/data/genesis/epoch-timeline.json b/bench/cardano-profile/data/genesis/epoch-timeline.json index 3b48f25fb5e..ff25b13a90d 100644 --- a/bench/cardano-profile/data/genesis/epoch-timeline.json +++ b/bench/cardano-profile/data/genesis/epoch-timeline.json @@ -932,26 +932,6 @@ "minPoolCost": 170000000 } }, - "492": { - "epoch": 492, - "description": "V2 Cost Model - new mandatory parameters - speculative/not yet deployed", - "alonzo": { - "costModels": { - "PlutusV2": { - "byteStringToInteger-cpu-arguments-c0": 1006041, - "byteStringToInteger-cpu-arguments-c1": 43623, - "byteStringToInteger-cpu-arguments-c2": 251, - "byteStringToInteger-memory-arguments-intercept": 0, - "byteStringToInteger-memory-arguments-slope": 1, - "integerToByteString-cpu-arguments-c0": 1293828, - "integerToByteString-cpu-arguments-c1": 28716, - "integerToByteString-cpu-arguments-c2": 63, - "integerToByteString-memory-arguments-intercept": 0, - "integerToByteString-memory-arguments-slope": 1 - } - } - } - }, "507": { "epoch": 507, "description": "Conway era / Chang HF (protocol version 9.0)", @@ -1399,60 +1379,6 @@ } } }, - "526": { - "epoch": 526, - "description": "Plutus V3 Cost Model", - "conway": { - "plutusV3CostModel": { - "andByteString-cpu-arguments-intercept": 100181, - "andByteString-cpu-arguments-slope1": 726, - "andByteString-cpu-arguments-slope2": 719, - "andByteString-memory-arguments-intercept": 0, - "andByteString-memory-arguments-slope": 1, - "complementByteString-cpu-arguments-intercept": 107878, - "complementByteString-cpu-arguments-slope": 680, - "complementByteString-memory-arguments-intercept": 0, - "complementByteString-memory-arguments-slope": 1, - "countSetBits-cpu-arguments-intercept": 107490, - "countSetBits-cpu-arguments-slope": 3298, - "countSetBits-memory-arguments": 1, - "findFirstSetBit-cpu-arguments-intercept": 106057, - "findFirstSetBit-cpu-arguments-slope": 655, - "findFirstSetBit-memory-arguments": 1, - "orByteString-cpu-arguments-intercept": 100181, - "orByteString-cpu-arguments-slope1": 726, - "orByteString-cpu-arguments-slope2": 719, - "orByteString-memory-arguments-intercept": 0, - "orByteString-memory-arguments-slope": 1, - "readBit-cpu-arguments": 95336, - "readBit-memory-arguments": 1, - "replicateByte-cpu-arguments-intercept": 180194, - "replicateByte-cpu-arguments-slope": 159, - "replicateByte-memory-arguments-intercept": 1, - "replicateByte-memory-arguments-slope": 1, - "ripemd_160-cpu-arguments-intercept": 1964219, - "ripemd_160-cpu-arguments-slope": 24520, - "ripemd_160-memory-arguments": 3, - "rotateByteString-cpu-arguments-intercept": 159378, - "rotateByteString-cpu-arguments-slope": 8813, - "rotateByteString-memory-arguments-intercept": 0, - "rotateByteString-memory-arguments-slope": 1, - "shiftByteString-cpu-arguments-intercept": 158519, - "shiftByteString-cpu-arguments-slope": 8942, - "shiftByteString-memory-arguments-intercept": 0, - "shiftByteString-memory-arguments-slope": 1, - "writeBits-cpu-arguments-intercept": 281145, - "writeBits-cpu-arguments-slope": 18848, - "writeBits-memory-arguments-intercept": 0, - "writeBits-memory-arguments-slope": 1, - "xorByteString-cpu-arguments-intercept": 100181, - "xorByteString-cpu-arguments-slope1": 726, - "xorByteString-cpu-arguments-slope2": 719, - "xorByteString-memory-arguments-intercept": 0, - "xorByteString-memory-arguments-slope": 1 - } - } - }, "537": { "epoch": 537, "description": "Plomin HF (protocol version 10.0)", diff --git a/bench/cardano-profile/data/genesis/overlays/v10-preview.json b/bench/cardano-profile/data/genesis/overlays/v10-preview.json deleted file mode 100644 index 29318e52287..00000000000 --- a/bench/cardano-profile/data/genesis/overlays/v10-preview.json +++ /dev/null @@ -1,311 +0,0 @@ -{ - "shelley": { - "protocolParams": { - "protocolVersion": { - "major": 10 - } - } - }, - "conway": { - "plutusV3CostModel": - [ - 100788, - 420, - 1, - 1, - 1000, - 173, - 0, - 1, - 1000, - 59957, - 4, - 1, - 11183, - 32, - 201305, - 8356, - 4, - 16000, - 100, - 16000, - 100, - 16000, - 100, - 16000, - 100, - 16000, - 100, - 16000, - 100, - 100, - 100, - 16000, - 100, - 94375, - 32, - 132994, - 32, - 61462, - 4, - 72010, - 178, - 0, - 1, - 22151, - 32, - 91189, - 769, - 4, - 2, - 85848, - 123203, - 7305, - -900, - 1716, - 549, - 57, - 85848, - 0, - 1, - 1, - 1000, - 42921, - 4, - 2, - 24548, - 29498, - 38, - 1, - 898148, - 27279, - 1, - 51775, - 558, - 1, - 39184, - 1000, - 60594, - 1, - 141895, - 32, - 83150, - 32, - 15299, - 32, - 76049, - 1, - 13169, - 4, - 22100, - 10, - 28999, - 74, - 1, - 28999, - 74, - 1, - 43285, - 552, - 1, - 44749, - 541, - 1, - 33852, - 32, - 68246, - 32, - 72362, - 32, - 7243, - 32, - 7391, - 32, - 11546, - 32, - 85848, - 123203, - 7305, - -900, - 1716, - 549, - 57, - 85848, - 0, - 1, - 90434, - 519, - 0, - 1, - 74433, - 32, - 85848, - 123203, - 7305, - -900, - 1716, - 549, - 57, - 85848, - 0, - 1, - 1, - 85848, - 123203, - 7305, - -900, - 1716, - 549, - 57, - 85848, - 0, - 1, - 955506, - 213312, - 0, - 2, - 270652, - 22588, - 4, - 1457325, - 64566, - 4, - 20467, - 1, - 4, - 0, - 141992, - 32, - 100788, - 420, - 1, - 1, - 81663, - 32, - 59498, - 32, - 20142, - 32, - 24588, - 32, - 20744, - 32, - 25933, - 32, - 24623, - 32, - 43053543, - 10, - 53384111, - 14333, - 10, - 43574283, - 26308, - 10, - 16000, - 100, - 16000, - 100, - 962335, - 18, - 2780678, - 6, - 442008, - 1, - 52538055, - 3756, - 18, - 267929, - 18, - 76433006, - 8868, - 18, - 52948122, - 18, - 1995836, - 36, - 3227919, - 12, - 901022, - 1, - 166917843, - 4307, - 36, - 284546, - 36, - 158221314, - 26549, - 36, - 74698472, - 36, - 333849714, - 1, - 254006273, - 72, - 2174038, - 72, - 2261318, - 64571, - 4, - 207616, - 8310, - 4, - 1293828, - 28716, - 63, - 0, - 1, - 1006041, - 43623, - 251, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 - ] - } -} diff --git a/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Builtin/Cloud.hs b/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Builtin/Cloud.hs index a477e917704..4880ebaf3e1 100644 --- a/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Builtin/Cloud.hs +++ b/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Builtin/Cloud.hs @@ -54,7 +54,7 @@ baseVoltaire = baseVoting :: Types.Profile -> Types.Profile baseVoting = baseVoltaire - . P.voting . P.v10Preview + . P.voting -------------------------------------------------------------------------------- @@ -187,12 +187,12 @@ profilesNoEraCloud = , loopVolt & P.name "plutus-volt-rtsqg1-nomadperf" . P.dreps 10000 . P.newTracing . P.rtsGcParallel . P.rtsGcLoadBalance , loopVolt & P.name "plutus-volt-lmdb-nomadperf" . P.dreps 10000 . P.newTracing . lmdb -- TODO: scaling the BLST workload only works well for 4 txns/block instead of 8. However, comparing it to other steps-constrained workloads, requires 8txns/block (like all of those). - , blst & P.name "plutusv3-blst-nomadperf" . P.dreps 10000 . P.newTracing . P.v10Preview - , blst & P.name "plutusv3-blst-stepx15-nomadperf" . P.dreps 10000 . P.newTracing . P.v10Preview . P.budgetBlockStepsOneAndAHalf - , blst & P.name "plutusv3-blst-stepx2-nomadperf" . P.dreps 10000 . P.newTracing . P.v10Preview . P.budgetBlockStepsDouble - , ripemd & P.name "plutusv3-ripemd-nomadperf" . P.dreps 10000 . P.newTracing . P.v10Preview - , ripemd & P.name "plutusv3-ripemd-stepx15-nomadperf" . P.dreps 10000 . P.newTracing . P.v10Preview . P.budgetBlockStepsOneAndAHalf - , ripemd & P.name "plutusv3-ripemd-stepx2-nomadperf" . P.dreps 10000 . P.newTracing . P.v10Preview . P.budgetBlockStepsDouble + , blst & P.name "plutusv3-blst-nomadperf" . P.dreps 10000 . P.newTracing + , blst & P.name "plutusv3-blst-stepx15-nomadperf" . P.dreps 10000 . P.newTracing . P.budgetBlockStepsOneAndAHalf + , blst & P.name "plutusv3-blst-stepx2-nomadperf" . P.dreps 10000 . P.newTracing . P.budgetBlockStepsDouble + , ripemd & P.name "plutusv3-ripemd-nomadperf" . P.dreps 10000 . P.newTracing + , ripemd & P.name "plutusv3-ripemd-stepx15-nomadperf" . P.dreps 10000 . P.newTracing . P.budgetBlockStepsOneAndAHalf + , ripemd & P.name "plutusv3-ripemd-stepx2-nomadperf" . P.dreps 10000 . P.newTracing . P.budgetBlockStepsDouble ] ---------- -- Voting. diff --git a/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Builtin/Miniature.hs b/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Builtin/Miniature.hs index 88f2c06d041..8a102868e0b 100644 --- a/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Builtin/Miniature.hs +++ b/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Builtin/Miniature.hs @@ -91,8 +91,8 @@ profilesNoEraMiniature = , ciBench02Plutus & P.name "ci-bench-plutus-secp-ecdsa" . ecdsa . P.dreps 0 . P.traceForwardingOn . P.newTracing , ciBench02Plutus & P.name "ci-bench-plutus-secp-schnorr" . schnorr . P.dreps 0 . P.traceForwardingOn . P.newTracing , ciBench02PlutusV3 & P.name "ci-bench-plutusv3-blst" . blst . P.dreps 0 . P.traceForwardingOn . P.newTracing - , ciBench02PlutusV3 & P.name "ci-bench-plutusv3-ripemd" . ripemd . P.dreps 0 . P.traceForwardingOn . P.newTracing . P.v10Preview - , ciBench02PlutusV3 & P.name "ci-bench-plutusv3-ripemd-step2x" . ripemd . P.dreps 0 . P.traceForwardingOn . P.newTracing . P.v10Preview . P.budgetBlockStepsDouble + , ciBench02PlutusV3 & P.name "ci-bench-plutusv3-ripemd" . ripemd . P.dreps 0 . P.traceForwardingOn . P.newTracing + , ciBench02PlutusV3 & P.name "ci-bench-plutusv3-ripemd-step2x" . ripemd . P.dreps 0 . P.traceForwardingOn . P.newTracing . P.budgetBlockStepsDouble -- 10 nodes, local , ciBench10Value & P.name "10" . V.valueLocal . P.dreps 0 . P.traceForwardingOn . P.newTracing , ciBench10Value & P.name "10-notracer" . V.valueLocal . P.dreps 0 . P.traceForwardingOff . P.newTracing diff --git a/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Builtin/Model.hs b/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Builtin/Model.hs index 12f3b43019d..c32bdcfe327 100644 --- a/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Builtin/Model.hs +++ b/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Builtin/Model.hs @@ -43,7 +43,7 @@ profilesNoEraModel = . P.desc "Status-quo dataset, 7 epochs" secp = V.plutusDoubleSaturation . V.plutusTypeECDSA . P.analysisSizeModerate value = V.valueBase . P.tps 9 -- "value" with the Plutus `txFee`. - postPlomin = V.genesisVariantVoltaire . P.v10Preview + postPlomin = V.genesisVariantVoltaire in [ model & P.name "model-secp-ecdsa-stepx2" . secp . postPlomin . P.budgetBlockStepsDouble . V.datasetCurrent , model & P.name "model-secp-ecdsa" . secp . postPlomin . V.datasetCurrent diff --git a/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Builtin/Plutuscall.hs b/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Builtin/Plutuscall.hs index 2f4ba803fc0..1cebf2290fa 100644 --- a/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Builtin/Plutuscall.hs +++ b/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Builtin/Plutuscall.hs @@ -52,7 +52,7 @@ profilesNoEraPlutuscall = blstVolt = plutusCall & V.plutusTypeBLST . V.plutusDoublePlusSaturation . P.analysisSizeModerate2 ripemdVolt = plutusCall & V.plutusTypeRIPEMD . V.plutusDoublePlusSaturation . P.analysisSizeSmall - postPlomin = V.genesisVariantVoltaire . P.v10Preview + postPlomin = V.genesisVariantVoltaire in [ loop & P.name "plutuscall-loop" . postPlomin , loop & P.name "plutuscall-loop-memx2" . postPlomin . P.budgetBlockMemoryDouble . P.overlay Pl.calibrateLoopBlockMemx2 diff --git a/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Playground.hs b/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Playground.hs index 91a433d04b7..7fd8a68f46f 100644 --- a/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Playground.hs +++ b/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Playground.hs @@ -91,7 +91,7 @@ profilesNoEraPlayground = P.empty & P.fixedLoaded . P.uniCircle . V.hosts 2 . P.loopback - . V.genesisVariantVoltaire . P.voting . P.v10Preview + . V.genesisVariantVoltaire . P.voting . V.datasetMiniature . V.fundsVoting . compressedFor3Epochs diff --git a/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Primitives.hs b/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Primitives.hs index 677837fd33d..dcbc2535f6f 100644 --- a/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Primitives.hs +++ b/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Primitives.hs @@ -41,7 +41,7 @@ module Cardano.Benchmarking.Profile.Primitives ( -- Set the epoch number from the "epoch-timeline". , pparamsEpoch -- Overlays to use. - , v8Preview, v9Preview, v10Preview + , v8Preview, v9Preview -- Budget overlays: -- -- Block: -- -- -- Steps: @@ -418,9 +418,6 @@ v8Preview = helper_addOverlayOrDie "v8-preview" v9Preview :: HasCallStack => Types.Profile -> Types.Profile v9Preview = helper_addOverlayOrDie "v9-preview" -v10Preview :: HasCallStack => Types.Profile -> Types.Profile -v10Preview = helper_addOverlayOrDie "v10-preview" - -- Budget: -- Steps: diff --git a/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Vocabulary.hs b/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Vocabulary.hs index 5f540f5cde8..f9aa0f2af83 100644 --- a/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Vocabulary.hs +++ b/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Vocabulary.hs @@ -97,7 +97,7 @@ genesisVariant300 = P.pparamsEpoch 300 -- should always reference the latest entry in data/genesis/epoch-timeline.json genesisVariantLatest :: Types.Profile -> Types.Profile -genesisVariantLatest = P.pparamsEpoch 507 +genesisVariantLatest = P.pparamsEpoch 537 -- references the latest Babbage epoch in data/genesis/epoch-timeline.json genesisVariantBabbageLatest :: Types.Profile -> Types.Profile diff --git a/bench/locli/locli.cabal b/bench/locli/locli.cabal index 336d0186b4d..46c7cbafa8f 100644 --- a/bench/locli/locli.cabal +++ b/bench/locli/locli.cabal @@ -126,7 +126,7 @@ library , hashable , optparse-applicative-fork >= 0.18.1 , ouroboros-consensus - , ouroboros-network-api ^>= 0.14 + , ouroboros-network-api ^>= 0.16 , sop-core , split , sqlite-easy >= 1.1.0.1 @@ -212,7 +212,7 @@ test-suite test-locli build-depends: cardano-prelude , containers , hedgehog - , hedgehog-extras ^>= 0.8 + , hedgehog-extras ^>= 0.10 , locli , text diff --git a/bench/plutus-scripts-bench/plutus-scripts-bench.cabal b/bench/plutus-scripts-bench/plutus-scripts-bench.cabal index 13f42124d15..f01eb46d08e 100644 --- a/bench/plutus-scripts-bench/plutus-scripts-bench.cabal +++ b/bench/plutus-scripts-bench/plutus-scripts-bench.cabal @@ -82,10 +82,10 @@ library -- IOG dependencies -------------------------- build-depends: - , cardano-api ^>=10.18 - , plutus-ledger-api ^>=1.45 - , plutus-tx ^>=1.45 - , plutus-tx-plugin ^>=1.45 + , cardano-api ^>=10.19 + , plutus-ledger-api ^>=1.53 + , plutus-tx ^>=1.53 + , plutus-tx-plugin ^>=1.53 ------------------------ -- Non-IOG dependencies diff --git a/bench/tx-generator/app/calibrate-script.hs b/bench/tx-generator/app/calibrate-script.hs index 3130b1d06a1..209a5415771 100644 --- a/bench/tx-generator/app/calibrate-script.hs +++ b/bench/tx-generator/app/calibrate-script.hs @@ -531,7 +531,7 @@ approximateTxProperties script protocolParameters (summary, redeemer) = do where txbody = either (error . docToString . prettyError) id - $ createAndValidateTransactionBody era content + $ createTransactionBody era content content = defaultTxBodyContent era diff --git a/bench/tx-generator/src/Cardano/Benchmarking/GeneratorTx/NodeToNode.hs b/bench/tx-generator/src/Cardano/Benchmarking/GeneratorTx/NodeToNode.hs index b17e44eefdf..d15da29a231 100644 --- a/bench/tx-generator/src/Cardano/Benchmarking/GeneratorTx/NodeToNode.hs +++ b/bench/tx-generator/src/Cardano/Benchmarking/GeneratorTx/NodeToNode.hs @@ -89,7 +89,7 @@ benchmarkConnectTxSubmit EnvConsts { .. } handshakeTracer submissionTracer codec done <- NtN.connectTo (socketSnocket envIOManager) NetworkConnectTracers { - nctMuxTracer = mempty, + nctMuxTracers = Mux.nullTracers, nctHandshakeTracer = handshakeTracer } peerMultiplex diff --git a/bench/tx-generator/src/Cardano/Benchmarking/GeneratorTx/SizedMetadata.hs b/bench/tx-generator/src/Cardano/Benchmarking/GeneratorTx/SizedMetadata.hs index 1def6769604..768081fcaf0 100644 --- a/bench/tx-generator/src/Cardano/Benchmarking/GeneratorTx/SizedMetadata.hs +++ b/bench/tx-generator/src/Cardano/Benchmarking/GeneratorTx/SizedMetadata.hs @@ -40,18 +40,20 @@ assume_cbor_properties -- The cost of map entries in metadata follows a step function. -- This assumes the map indices are [0..n]. -prop_mapCostsShelley :: Bool -prop_mapCostsAllegra :: Bool -prop_mapCostsMary :: Bool -prop_mapCostsAlonzo :: Bool -prop_mapCostsBabbage :: Bool -prop_mapCostsConway :: Bool -prop_mapCostsShelley = measureMapCosts AsShelleyEra == assumeMapCosts AsShelleyEra -prop_mapCostsAllegra = measureMapCosts AsAllegraEra == assumeMapCosts AsAllegraEra -prop_mapCostsMary = measureMapCosts AsMaryEra == assumeMapCosts AsMaryEra -prop_mapCostsAlonzo = measureMapCosts AsAlonzoEra == assumeMapCosts AsAlonzoEra -prop_mapCostsBabbage = measureMapCosts AsBabbageEra == assumeMapCosts AsBabbageEra -prop_mapCostsConway = measureMapCosts AsConwayEra == assumeMapCosts AsConwayEra +prop_mapCostsShelley :: Bool +prop_mapCostsAllegra :: Bool +prop_mapCostsMary :: Bool +prop_mapCostsAlonzo :: Bool +prop_mapCostsBabbage :: Bool +prop_mapCostsConway :: Bool +prop_mapCostsDijkstra :: Bool +prop_mapCostsShelley = measureMapCosts AsShelleyEra == assumeMapCosts AsShelleyEra +prop_mapCostsAllegra = measureMapCosts AsAllegraEra == assumeMapCosts AsAllegraEra +prop_mapCostsMary = measureMapCosts AsMaryEra == assumeMapCosts AsMaryEra +prop_mapCostsAlonzo = measureMapCosts AsAlonzoEra == assumeMapCosts AsAlonzoEra +prop_mapCostsBabbage = measureMapCosts AsBabbageEra == assumeMapCosts AsBabbageEra +prop_mapCostsConway = measureMapCosts AsConwayEra == assumeMapCosts AsConwayEra +prop_mapCostsDijkstra = measureMapCosts AsDijkstraEra == assumeMapCosts AsDijkstraEra assumeMapCosts :: forall era . IsShelleyBasedEra era => AsType era -> [Int] assumeMapCosts _proxy = stepFunction [ @@ -63,27 +65,30 @@ assumeMapCosts _proxy = stepFunction [ ] where firstEntry = case shelleyBasedEra @era of - ShelleyBasedEraShelley -> 37 - ShelleyBasedEraAllegra -> 39 - ShelleyBasedEraMary -> 39 - ShelleyBasedEraAlonzo -> 42 - ShelleyBasedEraBabbage -> 42 - ShelleyBasedEraConway -> 42 + ShelleyBasedEraShelley -> 37 + ShelleyBasedEraAllegra -> 39 + ShelleyBasedEraMary -> 39 + ShelleyBasedEraAlonzo -> 42 + ShelleyBasedEraBabbage -> 42 + ShelleyBasedEraConway -> 42 + ShelleyBasedEraDijkstra -> 42 -- Bytestring costs are not LINEAR !! -- Costs are piecewise linear for payload sizes [0..23] and [24..64]. prop_bsCostsShelley :: Bool -prop_bsCostsAllegra :: Bool -prop_bsCostsMary :: Bool -prop_bsCostsAlonzo :: Bool -prop_bsCostsBabbage :: Bool -prop_bsCostsConway :: Bool -prop_bsCostsShelley = measureBSCosts AsShelleyEra == [37..60] ++ [62..102] -prop_bsCostsAllegra = measureBSCosts AsAllegraEra == [39..62] ++ [64..104] -prop_bsCostsMary = measureBSCosts AsMaryEra == [39..62] ++ [64..104] -prop_bsCostsAlonzo = measureBSCosts AsAlonzoEra == [42..65] ++ [67..107] -prop_bsCostsBabbage = measureBSCosts AsBabbageEra == [42..65] ++ [67..107] -prop_bsCostsConway = measureBSCosts AsConwayEra == [42..65] ++ [67..107] +prop_bsCostsAllegra :: Bool +prop_bsCostsMary :: Bool +prop_bsCostsAlonzo :: Bool +prop_bsCostsBabbage :: Bool +prop_bsCostsConway :: Bool +prop_bsCostsDijkstra :: Bool +prop_bsCostsShelley = measureBSCosts AsShelleyEra == [37..60] ++ [62..102] +prop_bsCostsAllegra = measureBSCosts AsAllegraEra == [39..62] ++ [64..104] +prop_bsCostsMary = measureBSCosts AsMaryEra == [39..62] ++ [64..104] +prop_bsCostsAlonzo = measureBSCosts AsAlonzoEra == [42..65] ++ [67..107] +prop_bsCostsBabbage = measureBSCosts AsBabbageEra == [42..65] ++ [67..107] +prop_bsCostsConway = measureBSCosts AsConwayEra == [42..65] ++ [67..107] +prop_bsCostsDijkstra = measureBSCosts AsDijkstraEra == [42..65] ++ [67..107] stepFunction :: [(Int, Int)] -> [Int] stepFunction f = scanl1 (+) steps @@ -109,7 +114,7 @@ metadataSize :: forall era . IsShelleyBasedEra era => AsType era -> Maybe TxMeta metadataSize p m = dummyTxSize p m - dummyTxSize p Nothing dummyTxSizeInEra :: IsShelleyBasedEra era => TxMetadataInEra era -> Int -dummyTxSizeInEra metadata = case createAndValidateTransactionBody shelleyBasedEra dummyTx of +dummyTxSizeInEra metadata = case createTransactionBody shelleyBasedEra dummyTx of Right b -> BS.length $ serialiseToCBOR b Left err -> error $ "metaDataSize " ++ show err where @@ -141,12 +146,13 @@ mkMetadata size else Right $ metadataInEra $ Just metadata where minSize = case shelleyBasedEra @era of - ShelleyBasedEraShelley -> 37 - ShelleyBasedEraAllegra -> 39 - ShelleyBasedEraMary -> 39 - ShelleyBasedEraAlonzo -> 39 -- TODO: check minSize for Alonzo - ShelleyBasedEraBabbage -> 39 -- TODO: check minSize for Babbage - ShelleyBasedEraConway -> 39 -- TODO: check minSize for Conway + ShelleyBasedEraShelley -> 37 + ShelleyBasedEraAllegra -> 39 + ShelleyBasedEraMary -> 39 + ShelleyBasedEraAlonzo -> 39 + ShelleyBasedEraBabbage -> 39 + ShelleyBasedEraConway -> 39 + ShelleyBasedEraDijkstra -> 39 nettoSize = size - minSize -- At 24 the CBOR representation changes. diff --git a/bench/tx-generator/src/Cardano/Benchmarking/GeneratorTx/SubmissionClient.hs b/bench/tx-generator/src/Cardano/Benchmarking/GeneratorTx/SubmissionClient.hs index 1dd655b6ee9..b7bf32fd6ba 100644 --- a/bench/tx-generator/src/Cardano/Benchmarking/GeneratorTx/SubmissionClient.hs +++ b/bench/tx-generator/src/Cardano/Benchmarking/GeneratorTx/SubmissionClient.hs @@ -181,7 +181,7 @@ txSubmissionClient tr bmtr initialTxSource endOfProtocolCallback = where getTxSize :: Tx era -> Integer getTxSize (ShelleyTx sbe tx) = - shelleyBasedEraConstraints sbe $ tx ^. Ledger.sizeTxF + shelleyBasedEraConstraints sbe $ toInteger (tx ^. Ledger.sizeTxF) toGenTx :: Tx era -> GenTx CardanoBlock toGenTx tx = toConsensusGenTx $ TxInMode shelleyBasedEra tx diff --git a/bench/tx-generator/src/Cardano/Benchmarking/OuroborosImports.hs b/bench/tx-generator/src/Cardano/Benchmarking/OuroborosImports.hs index 05205c07292..38bbb53d0cf 100644 --- a/bench/tx-generator/src/Cardano/Benchmarking/OuroborosImports.hs +++ b/bench/tx-generator/src/Cardano/Benchmarking/OuroborosImports.hs @@ -12,7 +12,6 @@ module Cardano.Benchmarking.OuroborosImports , ShelleyGenesis , SigningKey , SigningKeyFile - , StandardShelley , NetworkId -- , getGenesis , makeLocalConnectInfo @@ -35,7 +34,7 @@ import qualified Ouroboros.Consensus.Cardano as Consensus import Ouroboros.Consensus.Config (TopLevelConfig, configBlock, configCodec) import Ouroboros.Consensus.Config.SupportsNode (ConfigSupportsNode (..), getNetworkMagic) import Ouroboros.Consensus.Node (ProtocolInfo (..)) -import Ouroboros.Consensus.Shelley.Eras (StandardCrypto, StandardShelley) +import Ouroboros.Consensus.Shelley.Eras (StandardCrypto) import Ouroboros.Network.Protocol.LocalTxSubmission.Type (SubmitResult (..)) import Prelude diff --git a/bench/tx-generator/src/Cardano/Benchmarking/Script/Core.hs b/bench/tx-generator/src/Cardano/Benchmarking/Script/Core.hs index 8a452ff07a9..291be5f4b85 100644 --- a/bench/tx-generator/src/Cardano/Benchmarking/Script/Core.hs +++ b/bench/tx-generator/src/Cardano/Benchmarking/Script/Core.hs @@ -70,13 +70,14 @@ liftCoreWithEra era coreCall = withEra era ( liftIO . runExceptT . coreCall) withEra :: AnyCardanoEra -> (forall era. IsShelleyBasedEra era => AsType era -> ActionM x) -> ActionM x withEra era action = do case era of - AnyCardanoEra ConwayEra -> action AsConwayEra - AnyCardanoEra BabbageEra -> action AsBabbageEra - AnyCardanoEra AlonzoEra -> action AsAlonzoEra - AnyCardanoEra MaryEra -> action AsMaryEra - AnyCardanoEra AllegraEra -> action AsAllegraEra - AnyCardanoEra ShelleyEra -> action AsShelleyEra - AnyCardanoEra ByronEra -> error "byron not supported" + AnyCardanoEra ConwayEra -> action AsConwayEra + AnyCardanoEra BabbageEra -> action AsBabbageEra + AnyCardanoEra AlonzoEra -> action AsAlonzoEra + AnyCardanoEra MaryEra -> action AsMaryEra + AnyCardanoEra AllegraEra -> action AsAllegraEra + AnyCardanoEra ShelleyEra -> action AsShelleyEra + AnyCardanoEra ByronEra -> error "byron not supported" + AnyCardanoEra DijkstraEra -> action AsDijkstraEra setProtocolParameters :: ProtocolParametersSource -> ActionM () setProtocolParameters s = case s of diff --git a/bench/tx-generator/src/Cardano/TxGenerator/Genesis.hs b/bench/tx-generator/src/Cardano/TxGenerator/Genesis.hs index 5a9e15c2fe5..6ab5e091806 100644 --- a/bench/tx-generator/src/Cardano/TxGenerator/Genesis.hs +++ b/bench/tx-generator/src/Cardano/TxGenerator/Genesis.hs @@ -123,7 +123,7 @@ mkGenesisTransaction key ttl fee txins txouts = bimap ApiError (\b -> signShelleyTransaction (shelleyBasedEra @era) b [WitnessGenesisUTxOKey key]) - (createAndValidateTransactionBody (shelleyBasedEra @era) txBodyContent) + (createTransactionBody (shelleyBasedEra @era) txBodyContent) where txBodyContent = defaultTxBodyContent shelleyBasedEra & setTxIns (zip txins $ repeat $ BuildTxWith $ KeyWitness KeyWitnessForSpending) diff --git a/bench/tx-generator/src/Cardano/TxGenerator/ProtocolParameters.hs b/bench/tx-generator/src/Cardano/TxGenerator/ProtocolParameters.hs index b307f4913bc..2ed26726be7 100644 --- a/bench/tx-generator/src/Cardano/TxGenerator/ProtocolParameters.hs +++ b/bench/tx-generator/src/Cardano/TxGenerator/ProtocolParameters.hs @@ -2,6 +2,7 @@ {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TypeFamilies #-} +{-# LANGUAGE DataKinds #-} {-- Due to the changes to "cardano-api" listed below it was decided to move @@ -32,9 +33,9 @@ where import Cardano.Api (AnyPlutusScriptVersion (..), CostModel, ExecutionUnitPrices (..), ExecutionUnits, LedgerProtocolParameters (..), - PlutusScriptVersion (PlutusScriptV1, PlutusScriptV2, PlutusScriptV3), PraosNonce, + PlutusScriptVersion (PlutusScriptV1, PlutusScriptV2, PlutusScriptV3, PlutusScriptV4), PraosNonce, ProtocolParametersConversionError (..), - ShelleyBasedEra (ShelleyBasedEraAllegra, ShelleyBasedEraAlonzo, ShelleyBasedEraBabbage, ShelleyBasedEraConway, ShelleyBasedEraMary, ShelleyBasedEraShelley), + ShelleyBasedEra (ShelleyBasedEraAllegra, ShelleyBasedEraAlonzo, ShelleyBasedEraBabbage, ShelleyBasedEraConway, ShelleyBasedEraMary, ShelleyBasedEraShelley, ShelleyBasedEraDijkstra), ShelleyLedgerEra, fromAlonzoCostModels, fromAlonzoExUnits, fromAlonzoPrices, makePraosNonce, toAlonzoCostModels, toAlonzoExUnits, toAlonzoPrices, toLedgerNonce) @@ -64,7 +65,6 @@ import Numeric.Natural (Natural) -- Era based ledger protocol parameters. -------------------------------------------------------------------------------- --- TODO: Use the ledger's PParams (from module Cardano.Api.Ledger) type instead. convertToLedgerProtocolParameters :: ShelleyBasedEra era -> ProtocolParameters @@ -80,7 +80,6 @@ convertToLedgerProtocolParameters sbe pp = -- -- There are also parameters fixed in the Genesis file. See 'GenesisParameters'. --- TODO: Use the ledger's PParams (from module Cardano.Api.Ledger) type instead. data ProtocolParameters = ProtocolParameters { protocolParamProtocolVersion :: (Natural, Natural) @@ -242,6 +241,7 @@ fromPlutusLanguageName :: Plutus.Language -> AnyPlutusScriptVersion fromPlutusLanguageName Plutus.PlutusV1 = AnyPlutusScriptVersion PlutusScriptV1 fromPlutusLanguageName Plutus.PlutusV2 = AnyPlutusScriptVersion PlutusScriptV2 fromPlutusLanguageName Plutus.PlutusV3 = AnyPlutusScriptVersion PlutusScriptV3 +fromPlutusLanguageName Plutus.PlutusV4 = AnyPlutusScriptVersion PlutusScriptV4 instance Aeson.ToJSON ProtocolParameters where toJSON ProtocolParameters{..} = @@ -296,6 +296,7 @@ toPlutusLanguageName :: AnyPlutusScriptVersion -> Plutus.Language toPlutusLanguageName (AnyPlutusScriptVersion PlutusScriptV1) = Plutus.PlutusV1 toPlutusLanguageName (AnyPlutusScriptVersion PlutusScriptV2) = Plutus.PlutusV2 toPlutusLanguageName (AnyPlutusScriptVersion PlutusScriptV3) = Plutus.PlutusV3 +toPlutusLanguageName (AnyPlutusScriptVersion PlutusScriptV4) = Plutus.PlutusV4 -- Praos nonce. -------------------------------------------------------------------------------- @@ -348,6 +349,7 @@ toLedgerPParams ShelleyBasedEraMary = toShelleyPParams toLedgerPParams ShelleyBasedEraAlonzo = toAlonzoPParams toLedgerPParams ShelleyBasedEraBabbage = toBabbagePParams toLedgerPParams ShelleyBasedEraConway = toConwayPParams +toLedgerPParams ShelleyBasedEraDijkstra = toConwayPParams -- Was removed in "cardano-api" module "Cardano.Api.Internal.ProtocolParameters" toShelleyCommonPParams @@ -396,8 +398,8 @@ toShelleyCommonPParams -- Was removed in "cardano-api" module "Cardano.Api.Internal.ProtocolParameters" toShelleyPParams :: ( EraPParams ledgerera - , Ledger.AtMostEra Ledger.MaryEra ledgerera - , Ledger.AtMostEra Ledger.AlonzoEra ledgerera + , Ledger.AtMostEra "Mary" ledgerera + , Ledger.AtMostEra "Alonzo" ledgerera ) => ProtocolParameters -> Either ProtocolParametersConversionError (PParams ledgerera) @@ -506,7 +508,6 @@ toConwayPParams = toBabbagePParams -- Conversion functions: protocol parameters from ledger types. -------------------------------------------------------------------------------- --- TODO: Use the ledger's PParams (from module Cardano.Api.Ledger) type instead. fromLedgerPParams :: ShelleyBasedEra era -> Ledger.PParams (ShelleyLedgerEra era) @@ -517,8 +518,8 @@ fromLedgerPParams ShelleyBasedEraMary = fromShelleyPParams fromLedgerPParams ShelleyBasedEraAlonzo = fromExactlyAlonzoPParams fromLedgerPParams ShelleyBasedEraBabbage = fromBabbagePParams fromLedgerPParams ShelleyBasedEraConway = fromConwayPParams +fromLedgerPParams ShelleyBasedEraDijkstra = fromConwayPParams --- TODO: Use the ledger's PParams (from module Cardano.Api.Ledger) type instead. fromShelleyCommonPParams :: EraPParams ledgerera => PParams ledgerera @@ -553,11 +554,10 @@ fromShelleyCommonPParams pp = , protocolParamMinUTxOValue = Nothing -- Obsolete from Alonzo onwards } --- TODO: Use the ledger's PParams (from module Cardano.Api.Ledger) type instead. fromShelleyPParams :: ( EraPParams ledgerera - , Ledger.AtMostEra Ledger.MaryEra ledgerera - , Ledger.AtMostEra Ledger.AlonzoEra ledgerera + , Ledger.AtMostEra "Mary" ledgerera + , Ledger.AtMostEra "Alonzo" ledgerera ) => PParams ledgerera -> ProtocolParameters @@ -568,7 +568,6 @@ fromShelleyPParams pp = , protocolParamMinUTxOValue = Just $ pp ^. ppMinUTxOValueL } --- TODO: Use the ledger's PParams (from module Cardano.Api.Ledger) type instead. fromAlonzoPParams :: AlonzoEraPParams ledgerera => PParams ledgerera @@ -585,7 +584,6 @@ fromAlonzoPParams pp = , protocolParamMaxCollateralInputs = Just $ pp ^. ppMaxCollateralInputsL } --- TODO: Use the ledger's PParams (from module Cardano.Api.Ledger) type instead. fromExactlyAlonzoPParams :: (AlonzoEraPParams ledgerera, Ledger.ExactEra Ledger.AlonzoEra ledgerera) => PParams ledgerera @@ -595,7 +593,6 @@ fromExactlyAlonzoPParams pp = { protocolParamUTxOCostPerByte = Just . unCoinPerWord $ pp ^. ppCoinsPerUTxOWordL } --- TODO: Use the ledger's PParams (from module Cardano.Api.Ledger) type instead. fromBabbagePParams :: BabbageEraPParams ledgerera => PParams ledgerera @@ -606,7 +603,6 @@ fromBabbagePParams pp = , protocolParamDecentralization = Nothing } --- TODO: Use the ledger's PParams (from module Cardano.Api.Ledger) type instead. fromConwayPParams :: BabbageEraPParams ledgerera => PParams ledgerera diff --git a/bench/tx-generator/src/Cardano/TxGenerator/Setup/NodeConfig.hs b/bench/tx-generator/src/Cardano/TxGenerator/Setup/NodeConfig.hs index ee62e2aa914..bb1e80d8751 100644 --- a/bench/tx-generator/src/Cardano/TxGenerator/Setup/NodeConfig.hs +++ b/bench/tx-generator/src/Cardano/TxGenerator/Setup/NodeConfig.hs @@ -42,15 +42,15 @@ getGenesis (SomeConsensusProtocol CardanoBlockType proto) getGenesisPath :: NodeConfiguration -> Maybe GenesisFile getGenesisPath nodeConfig = case ncProtocolConfig nodeConfig of - NodeProtocolConfigurationCardano _ shelleyConfig _ _ _ _ -> + NodeProtocolConfigurationCardano _ shelleyConfig _ _ _ _ _ -> Just $ npcShelleyGenesisFile shelleyConfig mkConsensusProtocol :: NodeConfiguration -> IO (Either TxGenError SomeConsensusProtocol) mkConsensusProtocol nodeConfig = case ncProtocolConfig nodeConfig of - NodeProtocolConfigurationCardano byronConfig shelleyConfig alonzoConfig conwayConfig hardforkConfig checkpointsConfig -> + NodeProtocolConfigurationCardano byronConfig shelleyConfig alonzoConfig conwayConfig dijkstraConfig hardforkConfig checkpointsConfig -> first ProtocolError - <$> runExceptT (mkSomeConsensusProtocolCardano byronConfig shelleyConfig alonzoConfig conwayConfig hardforkConfig checkpointsConfig Nothing) + <$> runExceptT (mkSomeConsensusProtocolCardano byronConfig shelleyConfig alonzoConfig conwayConfig dijkstraConfig hardforkConfig checkpointsConfig Nothing) -- | Creates a NodeConfiguration from a config file; -- the result is devoid of any keys/credentials diff --git a/bench/tx-generator/src/Cardano/TxGenerator/Setup/Plutus.hs b/bench/tx-generator/src/Cardano/TxGenerator/Setup/Plutus.hs index e07a895c10b..22e40dd9432 100644 --- a/bench/tx-generator/src/Cardano/TxGenerator/Setup/Plutus.hs +++ b/bench/tx-generator/src/Cardano/TxGenerator/Setup/Plutus.hs @@ -3,7 +3,6 @@ {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} -{-# LANGUAGE TypeApplications #-} {-| Module : Cardano.TxGenerator.Setup.Plutus @@ -24,7 +23,7 @@ import Control.Monad.Trans.Except import Control.Monad.Trans.Except.Extra import Control.Monad.Writer (runWriter) -import Cardano.CLI.Read (readFileScriptInAnyLang, ScriptDecodeError) +import Cardano.CLI.Read (readFileScriptInAnyLang) import Cardano.Api import Cardano.Ledger.Plutus.TxInfo (exBudgetToExUnits) @@ -36,11 +35,11 @@ import qualified PlutusTx.AssocMap as AssocMap (empty) import Cardano.TxGenerator.ProtocolParameters (ProtocolParameters(..)) import Cardano.TxGenerator.Types (TxGenError (..), TxGenPlutusResolvedTo (..)) +import Control.Exception (SomeException (..), try, displayException) +import System.FilePath ((<.>), ()) #ifdef WITH_LIBRARY import Cardano.Benchmarking.PlutusScripts (findPlutusScript) #endif -import Control.Exception (SomeException (..), try) -import System.FilePath ((<.>), ()) import Paths_tx_generator @@ -72,8 +71,8 @@ readPlutusScript (Left s) doLoad fp = second (second (const $ ResolvedToFallback asFileName)) <$> readPlutusScript (Right fp) readPlutusScript (Right fp) = runExceptT $ do - script <- firstExceptT (ApiError @ScriptDecodeError) $ - readFileScriptInAnyLang fp + script <- + handleExceptT (\(e :: SomeException) -> ApiError $ displayException e) (readFileScriptInAnyLang fp) case script of ScriptInAnyLang (PlutusScriptLanguage _) _ -> pure (script, ResolvedToFileName fp) ScriptInAnyLang lang _ -> throwE $ TxGenError $ "readPlutusScript: only PlutusScript supported, found: " ++ show lang diff --git a/bench/tx-generator/src/Cardano/TxGenerator/Tx.hs b/bench/tx-generator/src/Cardano/TxGenerator/Tx.hs index 3f845f33ead..d1431f4ae9d 100644 --- a/bench/tx-generator/src/Cardano/TxGenerator/Tx.hs +++ b/bench/tx-generator/src/Cardano/TxGenerator/Tx.hs @@ -147,7 +147,7 @@ sourceTransactionPreview txGenerator inputFunds valueSplitter toStore = (outputs, _) = toStore split -- | 'genTx' seems to mostly be a wrapper for --- 'Cardano.Api.TxBody.createAndValidateTransactionBody', which uses +-- 'Cardano.Api.TxBody.createTransactionBody', which uses -- the 'Either' convention in lieu of e.g. -- 'Control.Monad.Trans.Except.ExceptT'. Then the pure function -- 'Cardano.Api.Tx.makeSignedTransaction' is composed with it and @@ -169,7 +169,7 @@ genTx sbe ledgerParameters (collateral, collFunds) fee metadata inFunds outputs = bimap ApiError (\b -> (signShelleyTransaction (shelleyBasedEra @era) b $ map WitnessPaymentKey allKeys, getTxId b)) - (createAndValidateTransactionBody (shelleyBasedEra @era) txBodyContent) + (createTransactionBody (shelleyBasedEra @era) txBodyContent) where allKeys = mapMaybe getFundKey $ inFunds ++ collFunds txBodyContent = defaultTxBodyContent sbe diff --git a/bench/tx-generator/src/Cardano/TxGenerator/Utils.hs b/bench/tx-generator/src/Cardano/TxGenerator/Utils.hs index 8ff31f546ad..a739808bccd 100644 --- a/bench/tx-generator/src/Cardano/TxGenerator/Utils.hs +++ b/bench/tx-generator/src/Cardano/TxGenerator/Utils.hs @@ -26,13 +26,14 @@ import GHC.Stack -- regardless of which particular era. liftAnyEra :: ( forall era. IsCardanoEra era => f1 era -> f2 era ) -> InAnyCardanoEra f1 -> InAnyCardanoEra f2 liftAnyEra f x = case x of - InAnyCardanoEra ByronEra a -> InAnyCardanoEra ByronEra $ f a - InAnyCardanoEra ShelleyEra a -> InAnyCardanoEra ShelleyEra $ f a - InAnyCardanoEra AllegraEra a -> InAnyCardanoEra AllegraEra $ f a - InAnyCardanoEra MaryEra a -> InAnyCardanoEra MaryEra $ f a - InAnyCardanoEra AlonzoEra a -> InAnyCardanoEra AlonzoEra $ f a - InAnyCardanoEra BabbageEra a -> InAnyCardanoEra BabbageEra $ f a - InAnyCardanoEra ConwayEra a -> InAnyCardanoEra ConwayEra $ f a + InAnyCardanoEra ByronEra a -> InAnyCardanoEra ByronEra $ f a + InAnyCardanoEra ShelleyEra a -> InAnyCardanoEra ShelleyEra $ f a + InAnyCardanoEra AllegraEra a -> InAnyCardanoEra AllegraEra $ f a + InAnyCardanoEra MaryEra a -> InAnyCardanoEra MaryEra $ f a + InAnyCardanoEra AlonzoEra a -> InAnyCardanoEra AlonzoEra $ f a + InAnyCardanoEra BabbageEra a -> InAnyCardanoEra BabbageEra $ f a + InAnyCardanoEra ConwayEra a -> InAnyCardanoEra ConwayEra $ f a + InAnyCardanoEra DijkstraEra a -> InAnyCardanoEra DijkstraEra $ f a -- | `keyAddress` determines an address for the relevant era. keyAddress :: forall era. IsShelleyBasedEra era => NetworkId -> SigningKey PaymentKey -> AddressInEra era diff --git a/bench/tx-generator/test/Main.hs b/bench/tx-generator/test/Main.hs index 2d117778730..73fde7371f7 100644 --- a/bench/tx-generator/test/Main.hs +++ b/bench/tx-generator/test/Main.hs @@ -28,7 +28,8 @@ sizedMetadata = testGroup "properties of the CBOR encoding relevant for generati , testCase "Mary metadata ByteString costs" $ assertBool "metadata ByteString costs" prop_bsCostsMary , testCase "Alonzo metadata map costs" $ assertBool "metadata map costs" prop_mapCostsAlonzo , testCase "Alonzo metadata ByteString costs" $ assertBool "metadata ByteString costs" prop_bsCostsAlonzo - , testCase "Babbage metadata map costs" $ assertBool "metadata map costs" prop_mapCostsBabbage - , testCase "Babbage metadata ByteString costs" $ assertBool "metadata ByteString costs" prop_bsCostsBabbage - , testCase "Test mkMetadata" $ assertBool "" True --WIP + , testCase "Babbage metadata map costs" $ assertBool "metadata map costs" prop_mapCostsBabbage + , testCase "Babbage metadata ByteString costs" $ assertBool "metadata ByteString costs" prop_bsCostsBabbage + , testCase "Conway metadata map costs" $ assertBool "metadata map costs" prop_mapCostsConway + , testCase "Conway metadata ByteString costs" $ assertBool "metadata ByteString costs" prop_bsCostsConway ] diff --git a/bench/tx-generator/tx-generator.cabal b/bench/tx-generator/tx-generator.cabal index 282e8bb4908..5beffe64a9d 100644 --- a/bench/tx-generator/tx-generator.cabal +++ b/bench/tx-generator/tx-generator.cabal @@ -58,8 +58,6 @@ library -fno-warn-missing-import-lists -fobject-code -fno-ignore-interface-pragmas -fno-omit-interface-pragmas - -- TODO: switch back to -Wwarn=deprecations having removed createAndValidateTransactionBody in favour of createTransactionBody (Cardano.Api deprecation) - -Wno-deprecations exposed-modules: Cardano.Benchmarking.Command Cardano.Benchmarking.Compiler @@ -113,9 +111,9 @@ library , attoparsec-aeson , base16-bytestring , bytestring - , cardano-api ^>= 10.18 + , cardano-api ^>= 10.19 , cardano-binary - , cardano-cli ^>= 10.12 + , cardano-cli ^>= 10.13 , cardano-crypto-class , cardano-crypto-wrapper , cardano-data @@ -136,7 +134,7 @@ library , formatting , generic-monoid , ghc-prim - , io-classes + , io-classes:{io-classes, strict-stm} , microlens , mtl , network @@ -154,7 +152,6 @@ library , random , serialise , streaming - , strict-stm , cardano-ledger-shelley , prettyprinter , stm diff --git a/cabal.project b/cabal.project index 25874410b4e..df45776227b 100644 --- a/cabal.project +++ b/cabal.project @@ -13,8 +13,8 @@ repository cardano-haskell-packages -- See CONTRIBUTING for information about these, including some Nix commands -- you need to run if you change them index-state: - , hackage.haskell.org 2025-06-24T21:06:59Z - , cardano-haskell-packages 2025-09-18T12:21:32Z + , hackage.haskell.org 2025-10-17T00:26:22Z + , cardano-haskell-packages 2025-10-24T13:50:12Z packages: cardano-node diff --git a/cardano-node-chairman/cardano-node-chairman.cabal b/cardano-node-chairman/cardano-node-chairman.cabal index 22cd7bdeb4a..9a6afabb3d8 100644 --- a/cardano-node-chairman/cardano-node-chairman.cabal +++ b/cardano-node-chairman/cardano-node-chairman.cabal @@ -44,19 +44,17 @@ executable cardano-node-chairman build-depends: cardano-api , cardano-crypto-class , cardano-git-rev ^>= 0.2.2 - , cardano-ledger-core ^>= 1.17 + , cardano-ledger-core ^>= 1.18 , cardano-node ^>= 10.5 , cardano-prelude , containers , contra-tracer - , io-classes + , io-classes:{io-classes, strict-stm, si-timers} , optparse-applicative-fork , ouroboros-consensus , ouroboros-consensus-cardano , ouroboros-network-api , ouroboros-network-protocols - , strict-stm - , si-timers , text , time @@ -75,7 +73,7 @@ test-suite chairman-tests , data-default-class , filepath , hedgehog - , hedgehog-extras ^>= 0.8 + , hedgehog-extras ^>= 0.10 , network , process , random @@ -90,5 +88,5 @@ test-suite chairman-tests ghc-options: -threaded -rtsopts "-with-rtsopts=-N -T" build-tool-depends: cardano-node:cardano-node - , cardano-cli:cardano-cli ^>= 10.12 + , cardano-cli:cardano-cli ^>= 10.13 , cardano-node-chairman:cardano-node-chairman diff --git a/cardano-node-chairman/test/Spec/Chairman/Cardano.hs b/cardano-node-chairman/test/Spec/Chairman/Cardano.hs index 6f19de5b07d..654c0f17816 100644 --- a/cardano-node-chairman/test/Spec/Chairman/Cardano.hs +++ b/cardano-node-chairman/test/Spec/Chairman/Cardano.hs @@ -1,10 +1,11 @@ {-# LANGUAGE OverloadedStrings #-} {-# OPTIONS_GHC -Wno-unrecognised-pragmas #-} + {-# HLINT ignore "Use camelCase" #-} module Spec.Chairman.Cardano where -import Cardano.Testnet (createAndRunTestnet, mkConf, testnetNodes) +import Cardano.Testnet import Data.Default.Class @@ -19,6 +20,7 @@ hprop_chairman :: H.Property hprop_chairman = integrationRetryWorkspace 2 "cardano-chairman" $ \tempAbsPath' -> H.runWithDefaultWatchdog_ $ do conf <- mkConf tempAbsPath' - allNodes <- testnetNodes <$> createAndRunTestnet def def conf + let testnetOptions = def{ cardanoNodes = [SpoNodeOptions [], RelayNodeOptions [], RelayNodeOptions []] } + allNodes <- testnetNodes <$> createAndRunTestnet testnetOptions def conf chairmanOver 120 50 conf allNodes diff --git a/cardano-node/cardano-node.cabal b/cardano-node/cardano-node.cabal index e4618effea2..03dea7075e6 100644 --- a/cardano-node/cardano-node.cabal +++ b/cardano-node/cardano-node.cabal @@ -65,7 +65,6 @@ library Cardano.Node.Configuration.POM Cardano.Node.Configuration.LedgerDB Cardano.Node.Configuration.Socket - Cardano.Node.Configuration.Topology Cardano.Node.Configuration.TopologyP2P Cardano.Node.Handlers.Shutdown Cardano.Node.Handlers.TopLevel @@ -78,6 +77,7 @@ library Cardano.Node.Protocol.Cardano Cardano.Node.Protocol.Checkpoints Cardano.Node.Protocol.Conway + Cardano.Node.Protocol.Dijkstra Cardano.Node.Protocol.Shelley Cardano.Node.Protocol.Types Cardano.Node.Queries @@ -112,7 +112,6 @@ library Cardano.Node.Tracing.Tracers.NodeToClient Cardano.Node.Tracing.Tracers.NodeToNode Cardano.Node.Tracing.Tracers.NodeVersion - Cardano.Node.Tracing.Tracers.NonP2P Cardano.Node.Tracing.Tracers.P2P Cardano.Node.Tracing.Tracers.Peer Cardano.Node.Tracing.Tracers.Resources @@ -142,7 +141,7 @@ library , async , base16-bytestring , bytestring - , cardano-api ^>= 10.18 + , cardano-api ^>= 10.19 , cardano-crypto-class , cardano-crypto-wrapper , cardano-git-rev ^>=0.2.2 @@ -154,6 +153,7 @@ library , cardano-ledger-byron , cardano-ledger-conway , cardano-ledger-core + , cardano-ledger-dijkstra , cardano-ledger-shelley , cardano-prelude , cardano-protocol-tpraos >= 1.4 @@ -172,8 +172,9 @@ library , generic-data , hashable , hostname - , io-classes >= 1.5 + , io-classes:{io-classes,strict-stm,si-timers} >= 1.5 , iohk-monitoring ^>= 0.2 + , kes-agent ^>=0.2 , microlens , mmap , network-mux @@ -187,14 +188,14 @@ library , network-mux >= 0.8 , nothunks , optparse-applicative-fork >= 0.18.1 - , ouroboros-consensus ^>= 0.27 - , ouroboros-consensus-cardano ^>= 0.25 - , ouroboros-consensus-diffusion ^>= 0.23 + , ouroboros-consensus ^>= 0.28 + , ouroboros-consensus-cardano ^>= 0.26 + , ouroboros-consensus-diffusion ^>= 0.24 , ouroboros-consensus-protocol - , ouroboros-network-api ^>= 0.14 - , ouroboros-network ^>= 0.21.2 - , ouroboros-network-framework ^>= 0.18.0.1 - , ouroboros-network-protocols ^>= 0.14 + , ouroboros-network-api ^>= 0.16 + , ouroboros-network:{ouroboros-network, cardano-diffusion, orphan-instances} ^>= 0.22.3 + , ouroboros-network-framework ^>= 0.19.2 + , ouroboros-network-protocols ^>= 0.15 , prettyprinter , prettyprinter-ansi-terminal , psqueues @@ -202,12 +203,10 @@ library , resource-registry , safe-exceptions , scientific - , si-timers , sop-core -- avoid stm-2.5.2 https://github.com/haskell/stm/issues/76 , stm <2.5.2 || >=2.5.3 , strict-sop-core - , strict-stm , sop-core , sop-extras , text >= 2.0 @@ -218,8 +217,7 @@ library , tracer-transformers , transformers , transformers-except - , typed-protocols >= 0.3 - , typed-protocols-stateful >= 0.3 + , typed-protocols:{typed-protocols, stateful} >= 1.0 , yaml executable cardano-node @@ -265,13 +263,13 @@ test-suite cardano-node-test , filepath , hedgehog , hedgehog-corpus - , hedgehog-extras ^>= 0.8 + , hedgehog-extras ^>= 0.10 , iproute , mtl , ouroboros-consensus , ouroboros-consensus-cardano , ouroboros-consensus-diffusion - , ouroboros-network + , ouroboros-network:{ouroboros-network, cardano-diffusion} , ouroboros-network-api , strict-sop-core , text diff --git a/cardano-node/src/Cardano/Node/Configuration/Logging.hs b/cardano-node/src/Cardano/Node/Configuration/Logging.hs index 8accffc3679..065f7d379f1 100644 --- a/cardano-node/src/Cardano/Node/Configuration/Logging.hs +++ b/cardano-node/src/Cardano/Node/Configuration/Logging.hs @@ -344,7 +344,7 @@ nodeBasicInfo nc (SomeConsensusProtocol whichP pForInfo) nodeStartTime' = do in getGenesisValues "Shelley" cfgShelley Api.CardanoBlockType -> let CardanoLedgerConfig cfgByron cfgShelley cfgAllegra cfgMary cfgAlonzo - cfgBabbage cfgConway = Consensus.configLedger cfg + cfgBabbage cfgConway cfgDjikstra = Consensus.configLedger cfg in getGenesisValuesByron cfg cfgByron ++ getGenesisValues "Shelley" cfgShelley ++ getGenesisValues "Allegra" cfgAllegra @@ -352,6 +352,7 @@ nodeBasicInfo nc (SomeConsensusProtocol whichP pForInfo) nodeStartTime' = do ++ getGenesisValues "Alonzo" cfgAlonzo ++ getGenesisValues "Babbage" cfgBabbage ++ getGenesisValues "Conway" cfgConway + ++ getGenesisValues "Djikstra" cfgDjikstra items = nub $ [ ("protocol", pack . show $ ncProtocol nc) , ("version", pack . showVersion $ version) diff --git a/cardano-node/src/Cardano/Node/Configuration/NodeAddress.hs b/cardano-node/src/Cardano/Node/Configuration/NodeAddress.hs index a252d7b644e..afdadaa5dd3 100644 --- a/cardano-node/src/Cardano/Node/Configuration/NodeAddress.hs +++ b/cardano-node/src/Cardano/Node/Configuration/NodeAddress.hs @@ -16,7 +16,7 @@ module Cardano.Node.Configuration.NodeAddress , NodeDnsAddress , nodeIPv4ToIPAddress , nodeIPv6ToIPAddress - , nodeDnsAddressToDomainAddress + , nodeDnsAddressToRelayAccessPoint , NodeHostIPAddress (..) , nodeHostIPAddressToSockAddr , NodeHostIPv4Address (..) @@ -32,7 +32,7 @@ module Cardano.Node.Configuration.NodeAddress import Cardano.Api -import Ouroboros.Network.PeerSelection.RelayAccessPoint (DomainAccessPoint (..)) +import Ouroboros.Network.PeerSelection.RelayAccessPoint (RelayAccessPoint (..)) import Data.Aeson (Value (..), object, withObject, (.:), (.=)) import Data.IP (IP (..), IPv4, IPv6) @@ -76,9 +76,9 @@ nodeIPv4ToIPAddress = fmap nodeHostIPv4AddressToIPAddress nodeIPv6ToIPAddress :: NodeIPv6Address -> NodeIPAddress nodeIPv6ToIPAddress = fmap nodeHostIPv6AddressToIPAddress -nodeDnsAddressToDomainAddress :: NodeDnsAddress -> DomainAccessPoint -nodeDnsAddressToDomainAddress NodeAddress { naHostAddress = NodeHostDnsAddress dns, naPort } - = DomainAccessPoint (Text.encodeUtf8 dns) naPort +nodeDnsAddressToRelayAccessPoint :: NodeDnsAddress -> RelayAccessPoint +nodeDnsAddressToRelayAccessPoint NodeAddress { naHostAddress = NodeHostDnsAddress dns, naPort } + = RelayAccessDomain (Text.encodeUtf8 dns) naPort nodeAddressToSockAddr :: NodeIPAddress -> SockAddr nodeAddressToSockAddr (NodeAddress addr port) = diff --git a/cardano-node/src/Cardano/Node/Configuration/POM.hs b/cardano-node/src/Cardano/Node/Configuration/POM.hs index 7091e9b2e62..4255c77d775 100644 --- a/cardano-node/src/Cardano/Node/Configuration/POM.hs +++ b/cardano-node/src/Cardano/Node/Configuration/POM.hs @@ -13,8 +13,6 @@ module Cardano.Node.Configuration.POM ( NodeConfiguration (..) , ResponderCoreAffinityPolicy (..) - , NetworkP2PMode (..) - , SomeNetworkP2PMode (..) , PartialNodeConfiguration(..) , TimeoutOverride (..) , defaultPartialNodeConfiguration @@ -29,6 +27,7 @@ where import Cardano.Crypto (RequiresNetworkMagic (..)) import Cardano.Logging.Types +import qualified Cardano.Network.Diffusion.Configuration as Cardano import Cardano.Network.Types (NumberOfBigLedgerPeers (..)) import Cardano.Node.Configuration.LedgerDB import Cardano.Node.Configuration.Socket (SocketConfig (..)) @@ -37,11 +36,9 @@ import Cardano.Node.Protocol.Types (Protocol (..)) import Cardano.Node.Types import Cardano.Tracing.Config import Cardano.Tracing.OrphanInstances.Network () -import qualified Ouroboros.Cardano.Network.Diffusion.Configuration as Cardano import Ouroboros.Consensus.Ledger.SupportsMempool import Ouroboros.Consensus.Mempool (MempoolCapacityBytesOverride (..)) import Ouroboros.Consensus.Node (NodeDatabasePaths (..)) -import qualified Ouroboros.Consensus.Node as Consensus (NetworkP2PMode (..)) import Ouroboros.Consensus.Node.Genesis (GenesisConfig, GenesisConfigFlags, defaultGenesisConfigFlags, mkGenesisConfig) import Ouroboros.Consensus.Storage.LedgerDB.Args (QueryBatchSize (..)) @@ -73,28 +70,6 @@ import System.Random (randomIO) import Generic.Data (gmappend) import Generic.Data.Orphans () -data NetworkP2PMode = EnabledP2PMode | DisabledP2PMode - deriving (Eq, Show, Generic) - -data SomeNetworkP2PMode where - SomeNetworkP2PMode :: forall p2p. - Consensus.NetworkP2PMode p2p - -> SomeNetworkP2PMode - -instance Eq SomeNetworkP2PMode where - (==) (SomeNetworkP2PMode Consensus.EnabledP2PMode) - (SomeNetworkP2PMode Consensus.EnabledP2PMode) - = True - (==) (SomeNetworkP2PMode Consensus.DisabledP2PMode) - (SomeNetworkP2PMode Consensus.DisabledP2PMode) - = True - (==) _ _ - = False - -instance Show SomeNetworkP2PMode where - show (SomeNetworkP2PMode mode@Consensus.EnabledP2PMode) = show mode - show (SomeNetworkP2PMode mode@Consensus.DisabledP2PMode) = show mode - -- | Isomorphic to a `Maybe DiffTime`, but expresses what `Nothing` means, in -- this case that we want to /NOT/ override the default timeout. data TimeoutOverride = NoTimeoutOverride | TimeoutOverride DiffTime @@ -192,9 +167,6 @@ data NodeConfiguration -- in Genesis mode , ncMinBigLedgerPeersForTrustedState :: NumberOfBigLedgerPeers - -- Enable experimental P2P mode - , ncEnableP2P :: SomeNetworkP2PMode - -- Enable Peer Sharing , ncPeerSharing :: PeerSharing @@ -290,9 +262,6 @@ data PartialNodeConfiguration -- Consensus mode for diffusion layer , pncConsensusMode :: !(Last ConsensusMode) - -- Network P2P mode - , pncEnableP2P :: !(Last NetworkP2PMode) - -- Peer Sharing , pncPeerSharing :: !(Last PeerSharing) @@ -352,14 +321,16 @@ instance FromJSON PartialNodeConfiguration where protocol <- v .:? "Protocol" .!= CardanoProtocol pncProtocolConfig <- case protocol of - CardanoProtocol -> + CardanoProtocol -> do + hfp <- parseHardForkProtocol v fmap (Last . Just) $ NodeProtocolConfigurationCardano <$> parseByronProtocol v <*> parseShelleyProtocol v <*> parseAlonzoProtocol v <*> parseConwayProtocol v - <*> parseHardForkProtocol v + <*> (if npcExperimentalHardForksEnabled hfp then Just <$> parseDijkstraProtocol v else pure Nothing) + <*> pure hfp <*> parseCheckpoints v pncMaybeMempoolCapacityOverride <- Last <$> parseMempoolCapacityBytesOverride v @@ -399,14 +370,6 @@ instance FromJSON PartialNodeConfiguration where pncChainSyncIdleTimeout <- Last <$> v .:? "ChainSyncIdleTimeout" - -- Enable P2P switch - p2pSwitch <- v .:? "EnableP2P" .!= Just False - let pncEnableP2P = - case p2pSwitch of - Nothing -> mempty - Just False -> Last $ Just DisabledP2PMode - Just True -> Last $ Just EnabledP2PMode - -- Peer Sharing pncPeerSharing <- Last <$> v .:? "PeerSharing" @@ -459,7 +422,6 @@ instance FromJSON PartialNodeConfiguration where , pncSyncTargetOfActiveBigLedgerPeers , pncMinBigLedgerPeersForTrustedState , pncConsensusMode - , pncEnableP2P , pncPeerSharing , pncGenesisConfigFlags , pncResponderCoreAffinityPolicy @@ -581,6 +543,14 @@ instance FromJSON PartialNodeConfiguration where , npcConwayGenesisFileHash } + parseDijkstraProtocol v = do + npcDijkstraGenesisFile <- v .: "DijkstraGenesisFile" + npcDijkstraGenesisFileHash <- v .:? "DijkstraGenesisHash" + pure NodeDijkstraProtocolConfiguration { + npcDijkstraGenesisFile + , npcDijkstraGenesisFileHash + } + parseHardForkProtocol v = do npcExperimentalHardForksEnabled <- do @@ -612,6 +582,10 @@ instance FromJSON PartialNodeConfiguration where npcTestConwayHardForkAtEpoch <- v .:? "TestConwayHardForkAtEpoch" npcTestConwayHardForkAtVersion <- v .:? "TestConwayHardForkAtVersion" + (npcTestDijkstraHardForkAtEpoch, npcTestDijkstraHardForkAtVersion) <- if npcExperimentalHardForksEnabled + then (,) <$> v .:? "TestDijkstraHardForkAtEpoch" <*> v .:? "TestDijkstraHardForkAtVersion" + else pure (Nothing, Nothing) + pure NodeHardForkProtocolConfiguration { npcExperimentalHardForksEnabled @@ -632,6 +606,9 @@ instance FromJSON PartialNodeConfiguration where , npcTestConwayHardForkAtEpoch , npcTestConwayHardForkAtVersion + + , npcTestDijkstraHardForkAtEpoch + , npcTestDijkstraHardForkAtVersion } parseCheckpoints v = do @@ -682,13 +659,14 @@ defaultPartialNodeConfiguration = -- https://ouroboros-network.cardano.intersectmbo.org/ouroboros-network/Ouroboros-Network-Diffusion-Configuration.html#v:defaultAcceptedConnectionsLimit , pncChainSyncIdleTimeout = mempty - , pncDeadlineTargetOfRootPeers = Last (Just $ targetNumberOfRootPeers Ouroboros.defaultDeadlineTargets) - , pncDeadlineTargetOfKnownPeers = Last (Just $ targetNumberOfKnownPeers Ouroboros.defaultDeadlineTargets) - , pncDeadlineTargetOfEstablishedPeers = Last (Just $ targetNumberOfEstablishedPeers Ouroboros.defaultDeadlineTargets) - , pncDeadlineTargetOfActivePeers = Last (Just $ targetNumberOfActivePeers Ouroboros.defaultDeadlineTargets) - , pncDeadlineTargetOfKnownBigLedgerPeers = Last (Just $ targetNumberOfKnownBigLedgerPeers Ouroboros.defaultDeadlineTargets) - , pncDeadlineTargetOfEstablishedBigLedgerPeers = Last (Just $ targetNumberOfEstablishedBigLedgerPeers Ouroboros.defaultDeadlineTargets) - , pncDeadlineTargetOfActiveBigLedgerPeers = Last (Just $ targetNumberOfActiveBigLedgerPeers Ouroboros.defaultDeadlineTargets) + -- these targets are set properly in makeNodeConfiguration below + , pncDeadlineTargetOfRootPeers = mempty + , pncDeadlineTargetOfKnownPeers = mempty + , pncDeadlineTargetOfEstablishedPeers = mempty + , pncDeadlineTargetOfActivePeers = mempty + , pncDeadlineTargetOfKnownBigLedgerPeers = mempty + , pncDeadlineTargetOfEstablishedBigLedgerPeers = mempty + , pncDeadlineTargetOfActiveBigLedgerPeers = mempty -- https://ouroboros-network.cardano.intersectmbo.org/ouroboros-network/Ouroboros-Network-Diffusion-Configuration.html#v:defaultDeadlineTargets , pncSyncTargetOfRootPeers = Last (Just $ targetNumberOfRootPeers Cardano.defaultSyncTargets) @@ -696,7 +674,7 @@ defaultPartialNodeConfiguration = , pncSyncTargetOfEstablishedPeers = Last (Just $ targetNumberOfEstablishedPeers Cardano.defaultSyncTargets) , pncSyncTargetOfActivePeers = Last (Just $ targetNumberOfActivePeers Cardano.defaultSyncTargets) , pncSyncTargetOfKnownBigLedgerPeers = Last (Just $ targetNumberOfKnownBigLedgerPeers Cardano.defaultSyncTargets) - , pncSyncTargetOfEstablishedBigLedgerPeers = Last (Just $ targetNumberOfEstablishedBigLedgerPeers Cardano.defaultSyncTargets) + , pncSyncTargetOfEstablishedBigLedgerPeers = Last (Just $ targetNumberOfEstablishedBigLedgerPeers Cardano.defaultSyncTargets) , pncSyncTargetOfActiveBigLedgerPeers = Last (Just $ targetNumberOfActiveBigLedgerPeers Cardano.defaultSyncTargets) -- https://ouroboros-network.cardano.intersectmbo.org/ouroboros-network/cardano-diffusion/Cardano-Network-Diffusion-Configuration.html#v:defaultSyncTargets @@ -704,7 +682,6 @@ defaultPartialNodeConfiguration = -- https://ouroboros-network.cardano.intersectmbo.org/ouroboros-network/cardano-diffusion/Cardano-Network-Diffusion-Configuration.html#v:defaultNumberOfBigLedgerPeers , pncConsensusMode = Last (Just Ouroboros.defaultConsensusMode) -- https://ouroboros-network.cardano.intersectmbo.org/ouroboros-network/Ouroboros-Network-Diffusion-Configuration.html#v:defaultConsensusMode - , pncEnableP2P = Last (Just EnabledP2PMode) , pncPeerSharing = mempty -- the default is defined in `makeNodeConfiguration` , pncGenesisConfigFlags = Last (Just defaultGenesisConfigFlags) @@ -731,27 +708,30 @@ makeNodeConfiguration pnc = do shutdownConfig <- lastToEither "Missing ShutdownConfig" $ pncShutdownConfig pnc socketConfig <- lastToEither "Missing SocketConfig" $ pncSocketConfig pnc - ncDeadlineTargetOfRootPeers <- - lastToEither "Missing TargetNumberOfRootPeers" - $ pncDeadlineTargetOfRootPeers pnc - ncDeadlineTargetOfKnownPeers <- - lastToEither "Missing TargetNumberOfKnownPeers" - $ pncDeadlineTargetOfKnownPeers pnc - ncDeadlineTargetOfEstablishedPeers <- - lastToEither "Missing TargetNumberOfEstablishedPeers" - $ pncDeadlineTargetOfEstablishedPeers pnc - ncDeadlineTargetOfActivePeers <- - lastToEither "Missing TargetNumberOfActivePeers" - $ pncDeadlineTargetOfActivePeers pnc - ncDeadlineTargetOfKnownBigLedgerPeers <- - lastToEither "Missing TargetNumberOfKnownBigLedgerPeers" - $ pncDeadlineTargetOfKnownBigLedgerPeers pnc - ncDeadlineTargetOfEstablishedBigLedgerPeers <- - lastToEither "Missing TargetNumberOfEstablishedBigLedgerPeers" - $ pncDeadlineTargetOfEstablishedBigLedgerPeers pnc - ncDeadlineTargetOfActiveBigLedgerPeers <- - lastToEither "Missing TargetNumberOfActiveBigLedgerPeers" - $ pncDeadlineTargetOfActiveBigLedgerPeers pnc + let PeerSelectionTargets { + targetNumberOfRootPeers, targetNumberOfKnownPeers, + targetNumberOfEstablishedPeers, targetNumberOfActivePeers, + targetNumberOfKnownBigLedgerPeers, targetNumberOfEstablishedBigLedgerPeers, + targetNumberOfActiveBigLedgerPeers + } = Ouroboros.defaultDeadlineTargets $ if hasProtocolFile protocolFiles + then BlockProducer else Relay + (<>!) defaults override = fromJust . getLast $ pure defaults <> override + + ncDeadlineTargetOfRootPeers = + targetNumberOfRootPeers <>! pncDeadlineTargetOfRootPeers pnc + ncDeadlineTargetOfKnownPeers = + targetNumberOfKnownPeers <>! pncDeadlineTargetOfKnownPeers pnc + ncDeadlineTargetOfEstablishedPeers = + targetNumberOfEstablishedPeers <>! pncDeadlineTargetOfEstablishedPeers pnc + ncDeadlineTargetOfActivePeers = + targetNumberOfActivePeers <>! pncDeadlineTargetOfActivePeers pnc + ncDeadlineTargetOfKnownBigLedgerPeers = + targetNumberOfKnownBigLedgerPeers <>! pncDeadlineTargetOfKnownBigLedgerPeers pnc + ncDeadlineTargetOfEstablishedBigLedgerPeers = + targetNumberOfEstablishedBigLedgerPeers <>! pncDeadlineTargetOfEstablishedBigLedgerPeers pnc + ncDeadlineTargetOfActiveBigLedgerPeers = + targetNumberOfActiveBigLedgerPeers <>! pncDeadlineTargetOfActiveBigLedgerPeers pnc + ncSyncTargetOfRootPeers <- lastToEither "Missing SyncTargetNumberOfRootPeers" $ pncSyncTargetOfRootPeers pnc @@ -794,9 +774,6 @@ makeNodeConfiguration pnc = do ncAcceptedConnectionsLimit <- lastToEither "Missing AcceptedConnectionsLimit" $ pncAcceptedConnectionsLimit pnc - enableP2P <- - lastToEither "Missing EnableP2P" - $ pncEnableP2P pnc ncChainSyncIdleTimeout <- Right $ maybe NoTimeoutOverride TimeoutOverride @@ -891,9 +868,6 @@ makeNodeConfiguration pnc = do , ncSyncTargetOfEstablishedBigLedgerPeers , ncSyncTargetOfActiveBigLedgerPeers , ncMinBigLedgerPeersForTrustedState - , ncEnableP2P = case enableP2P of - EnabledP2PMode -> SomeNetworkP2PMode Consensus.EnabledP2PMode - DisabledP2PMode -> SomeNetworkP2PMode Consensus.DisabledP2PMode , ncPeerSharing , ncConsensusMode , ncGenesisConfig diff --git a/cardano-node/src/Cardano/Node/Configuration/Socket.hs b/cardano-node/src/Cardano/Node/Configuration/Socket.hs index c35c78fee7d..f0de1bbb3f2 100644 --- a/cardano-node/src/Cardano/Node/Configuration/Socket.hs +++ b/cardano-node/src/Cardano/Node/Configuration/Socket.hs @@ -195,7 +195,7 @@ gatherConfiguredSockets SocketConfig { ncNodeIPv4Addr, let firstUnixSocket :: Maybe LocalSocket firstUnixSocket = join $ listToMaybe . (\(_, _, a) -> a) <$> systemDSockets - -- only when 'ncSocketpath' is specified or a unix socket is passed through + -- only when 'ncSocketPath' is specified or a UNIX socket is passed through -- socket activation local <- case (getLast ncSocketPath, firstUnixSocket) of (Nothing, Nothing) -> return Nothing diff --git a/cardano-node/src/Cardano/Node/Configuration/Topology.hs b/cardano-node/src/Cardano/Node/Configuration/Topology.hs deleted file mode 100644 index f08ffd12e91..00000000000 --- a/cardano-node/src/Cardano/Node/Configuration/Topology.hs +++ /dev/null @@ -1,178 +0,0 @@ -{-# LANGUAGE DeriveGeneric #-} -{-# LANGUAGE DeriveTraversable #-} -{-# LANGUAGE FlexibleContexts #-} -{-# LANGUAGE FlexibleInstances #-} -{-# LANGUAGE OverloadedStrings #-} - -module Cardano.Node.Configuration.Topology - ( TopologyError(..) - , NetworkTopology(..) - , NodeHostIPAddress(..) - , NodeHostIPv4Address(..) - , NodeHostIPv6Address(..) - , NodeSetup(..) - , RemoteAddress(..) - , nodeAddressToSockAddr - , readTopologyFile - , readTopologyFileOrError - , remoteAddressToNodeAddress - ) -where - -import Cardano.Node.Configuration.NodeAddress -import Cardano.Node.Configuration.POM (NodeConfiguration (..)) -import Cardano.Node.Types -import Ouroboros.Consensus.Util.Condense (Condense (..)) - -import Control.Exception (Exception (..), IOException) -import qualified Control.Exception as Exception -import Data.Aeson -import Data.Bifunctor (Bifunctor (..)) -import qualified Data.ByteString as BS -import qualified Data.ByteString.Lazy.Char8 as LBS -import Data.Foldable -import Data.Text (Text) -import qualified Data.Text as Text -import Data.Word (Word64) -import GHC.Generics (Generic) -import Text.Read (readMaybe) - - -newtype TopologyError - = NodeIdNotFoundInToplogyFile FilePath - deriving Show - --- | Domain name with port number --- -data RemoteAddress = RemoteAddress - { raAddress :: !Text - -- ^ Either a dns address or an ip address. - , raPort :: !PortNumber - -- ^ Port number of the destination. - , raValency :: !Int - -- ^ If a DNS address is given valency governs - -- to how many resolved IP addresses - -- should we maintain active (hot) connection; - -- if an IP address is given valency is used as - -- a Boolean value, @0@ means to ignore the address; - } deriving (Eq, Ord, Show) - --- | Parse 'raAddress' field as an IP address; if it parses and the valency is --- non zero return corresponding NodeAddress. --- -remoteAddressToNodeAddress - :: RemoteAddress - -> Maybe (Either NodeIPAddress - (NodeDnsAddress, Int)) -remoteAddressToNodeAddress (RemoteAddress _addrText _port 0) = - Nothing -remoteAddressToNodeAddress (RemoteAddress addrText port valency) = - case readMaybe (Text.unpack addrText) of - Nothing -> Just $ Right (NodeAddress (NodeHostDnsAddress addrText) port - , valency) - Just addr -> Just $ Left (NodeAddress (NodeHostIPAddress addr) port) - - -instance Condense RemoteAddress where - condense (RemoteAddress addr port val) = - Text.unpack addr ++ ":" ++ show port ++ " (" ++ show val ++ ")" - -instance FromJSON RemoteAddress where - parseJSON = withObject "RemoteAddress" $ \v -> - RemoteAddress - <$> v .: "addr" - <*> ((fromIntegral :: Int -> PortNumber) <$> v .: "port") - <*> v .: "valency" - -instance ToJSON RemoteAddress where - toJSON ra = - object - [ "addr" .= raAddress ra - , "port" .= (fromIntegral (raPort ra) :: Int) - , "valency" .= raValency ra - ] - -data NodeSetup adr = NodeSetup - { nodeId :: !Word64 - , nodeIPv4Address :: !(Maybe NodeIPv4Address) - , nodeIPv6Address :: !(Maybe NodeIPv6Address) - , producers :: ![adr] - } deriving (Eq, Show, Generic, Functor, Foldable, Traversable) - -instance (FromJSON adr) => FromJSON (NodeSetup adr) where - parseJSON = withObject "NodeSetup" $ \o -> - NodeSetup - <$> o .: "nodeId" - <*> o .: "nodeIPv4Address" - <*> o .: "nodeIPv6Address" - <*> o .: "producers" - -instance (ToJSON adr) => ToJSON (NodeSetup adr) where - toJSON ns = - object - [ "nodeId" .= nodeId ns - , "nodeIPv4Address" .= nodeIPv4Address ns - , "nodeIPv6Address" .= nodeIPv6Address ns - , "producers" .= producers ns - ] - --- | Describes the non-P2P topology of a node. Whenever the node actually runs, --- the type parameter `adr` should be `RemoteAddress`. However, we might want to --- use and serialize this type with `adr` being `NodeId`, or another placeholder --- type, if we want the user to be able to edit the topology without knowing the --- actual addresses of the nodes: those might only be knowable at runtime. -data NetworkTopology adr - = MockNodeTopology ![NodeSetup adr] - | RealNodeTopology ![adr] - deriving (Eq, Show, Generic, Functor, Foldable, Traversable) - -instance (FromJSON adr) => FromJSON (NetworkTopology adr) where - parseJSON = withObject "NetworkTopology" $ \o -> asum - [ MockNodeTopology <$> o .: "MockProducers" - , RealNodeTopology <$> o .: "Producers" - ] - -instance (ToJSON adr) => ToJSON (NetworkTopology adr) where - toJSON top = - case top of - MockNodeTopology nss -> object [ "MockProducers" .= toJSON nss ] - RealNodeTopology ras -> object [ "Producers" .= toJSON ras ] - --- | Read the `NetworkTopology` configuration from the specified file. --- While running a real protocol, this gives your node its own address and --- other remote peers it will attempt to connect to. -readTopologyFile :: () - => (FromJSON adr) - => NodeConfiguration - -> IO (Either Text (NetworkTopology adr)) -readTopologyFile nc = do - eBs <- Exception.try $ BS.readFile (unTopology $ ncTopologyFile nc) - - case eBs of - Left e -> return . Left $ handler e - Right bs -> return . first handlerJSON . eitherDecode $ LBS.fromStrict bs - - where - handler :: IOException -> Text - handler e = Text.pack $ "Cardano.Node.Configuration.Topology.readTopologyFile: " - ++ displayException e - handlerJSON :: String -> Text - handlerJSON err = mconcat - [ "Is your topology file formatted correctly? " - , "Expecting Non-P2P Topology file format. " - , "The port and valency fields should be numerical. " - , "If you specified the correct topology file " - , "make sure that you correctly setup EnableP2P " - , "configuration flag. " - , Text.pack err - ] - -readTopologyFileOrError :: () - => (FromJSON adr) - => NodeConfiguration - -> IO (NetworkTopology adr) -readTopologyFileOrError nc = - readTopologyFile nc - >>= either (\err -> error $ "Cardano.Node.Configuration.Topology.readTopologyFile: " - <> Text.unpack err) - pure diff --git a/cardano-node/src/Cardano/Node/Configuration/TopologyP2P.hs b/cardano-node/src/Cardano/Node/Configuration/TopologyP2P.hs index 99bce93c958..201c3aa499b 100644 --- a/cardano-node/src/Cardano/Node/Configuration/TopologyP2P.hs +++ b/cardano-node/src/Cardano/Node/Configuration/TopologyP2P.hs @@ -7,6 +7,10 @@ {-# LANGUAGE PackageImports #-} {-# LANGUAGE RankNTypes #-} +-- TODO: We need `2a89d89775 orphan-instances: more flexible NetworkTopology +-- JSON encoding` in `ouroboros-network-0.23` for `networkTopologyFromJSON` in +-- `Ouroboros.Network.OrphanInstances` to implement a drop in replacement using +-- `Ouroboros.Network.Diffusion.Topology` API. module Cardano.Node.Configuration.TopologyP2P ( TopologyError(..) , NetworkTopology(..) @@ -18,12 +22,18 @@ module Cardano.Node.Configuration.TopologyP2P , NodeHostIPv4Address(..) , NodeHostIPv6Address(..) , NodeSetup(..) - , PeerAdvertise(..) , nodeAddressToSockAddr , readTopologyFile , readPeerSnapshotFile , readTopologyFileOrError , rootConfigToRelayAccessPoint + -- * Re-exports + , DiffusionMode(..) + , PeerAdvertise(..) + , PeerTrustable(..) + , RelayAccessPoint(..) + , UseBootstrapPeers(..) + , UseLedgerPeers(..) ) where @@ -34,13 +44,12 @@ import Cardano.Network.PeerSelection.Bootstrap (UseBootstrapPeers (..) import Cardano.Network.PeerSelection.PeerTrustable (PeerTrustable (..)) import Cardano.Node.Configuration.NodeAddress import Cardano.Node.Configuration.POM (NodeConfiguration (..)) -import Cardano.Node.Configuration.Topology (TopologyError (..)) import Cardano.Node.Startup (StartupTrace (..)) import Cardano.Node.Types import Cardano.Tracing.OrphanInstances.Network () import Ouroboros.Network.NodeToNode (DiffusionMode (..), PeerAdvertise (..)) import Ouroboros.Network.PeerSelection.LedgerPeers.Type (LedgerPeerSnapshot (..), - UseLedgerPeers (..)) + UseLedgerPeers (..), RelayAccessPoint (..)) import Ouroboros.Network.PeerSelection.State.LocalRootPeers (HotValency (..), WarmValency (..)) @@ -60,6 +69,11 @@ import Data.Word (Word64) import GHC.Generics (Generic) import System.FilePath (takeDirectory, ()) +newtype TopologyError + = NodeIdNotFoundInToplogyFile FilePath + deriving Show + + data NodeSetup adr = NodeSetup { nodeId :: !Word64 , nodeIPv4Address :: !(Maybe NodeIPv4Address) @@ -232,7 +246,8 @@ instance ToJSON adr => ToJSON (NetworkTopology adr) where -- | Read the `NetworkTopology` configuration from the specified file. readTopologyFile :: () => forall adr. FromJSON adr - => NodeConfiguration -> CT.Tracer IO (StartupTrace blk) -> IO (Either Text (NetworkTopology adr)) + => NodeConfiguration + -> CT.Tracer IO (StartupTrace blk) -> IO (Either Text (NetworkTopology adr)) readTopologyFile NodeConfiguration{ncTopologyFile=TopologyFile topologyFilePath, ncConsensusMode, ncProtocolFiles} tracer = runExceptT $ do bs <- handleIOExceptionsLiftWith handler $ BS.readFile topologyFilePath topology@RealNodeTopology{ntUseLedgerPeers, ntUseBootstrapPeers, ntPeerSnapshotPath} <- diff --git a/cardano-node/src/Cardano/Node/Handlers/Shutdown.hs b/cardano-node/src/Cardano/Node/Handlers/Shutdown.hs index 11c8ad9f845..55feeae1c7f 100644 --- a/cardano-node/src/Cardano/Node/Handlers/Shutdown.hs +++ b/cardano-node/src/Cardano/Node/Handlers/Shutdown.hs @@ -3,6 +3,7 @@ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE LambdaCase #-} +{-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE PackageImports #-} {-# LANGUAGE ScopedTypeVariables #-} @@ -53,7 +54,6 @@ import qualified System.IO.Error as IO import System.Posix.Types (Fd (Fd)) import qualified Text.Read as Read - import Generic.Data.Orphans () data ShutdownOn @@ -156,12 +156,12 @@ maybeSpawnOnSlotSyncedShutdownHandler -> ResourceRegistry IO -> ChainDB.ChainDB IO blk -> IO () -maybeSpawnOnSlotSyncedShutdownHandler sc tr registry chaindb = - case scOnSyncLimit sc of - Nothing -> pure () - Just lim -> do +maybeSpawnOnSlotSyncedShutdownHandler ShutdownConfig{scOnSyncLimit} tr registry chaindb = + case scOnSyncLimit of + Just lim | lim /= NoShutdown -> do traceWith tr (ShutdownArmedAt lim) spawnLimitTerminator lim + _ -> pure () where spawnLimitTerminator :: ShutdownOn -> IO () spawnLimitTerminator limit = diff --git a/cardano-node/src/Cardano/Node/Handlers/TopLevel.hs b/cardano-node/src/Cardano/Node/Handlers/TopLevel.hs index e8260ef3474..ca13e80574f 100644 --- a/cardano-node/src/Cardano/Node/Handlers/TopLevel.hs +++ b/cardano-node/src/Cardano/Node/Handlers/TopLevel.hs @@ -46,7 +46,7 @@ module Cardano.Node.Handlers.TopLevel -- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -import qualified Ouroboros.Network.Diffusion.Common as Network +import qualified Ouroboros.Network.Diffusion.Types as Network import Prelude diff --git a/cardano-node/src/Cardano/Node/Orphans.hs b/cardano-node/src/Cardano/Node/Orphans.hs index 9b1c747fa60..beee7e97337 100644 --- a/cardano-node/src/Cardano/Node/Orphans.hs +++ b/cardano-node/src/Cardano/Node/Orphans.hs @@ -1,7 +1,6 @@ {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} -{-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE StandaloneDeriving #-} {-# OPTIONS_GHC -Wno-orphans #-} @@ -13,7 +12,6 @@ import Cardano.Api () import Ouroboros.Consensus.Node import Ouroboros.Consensus.Node.Genesis (GenesisConfigFlags (..)) import Ouroboros.Consensus.Storage.LedgerDB.Snapshots (Flag(..)) -import Ouroboros.Network.NodeToNode (AcceptedConnectionsLimit (..)) import Ouroboros.Network.SizeInBytes (SizeInBytes (..)) import Data.Aeson.Types @@ -26,29 +24,6 @@ deriving instance Show NodeDatabasePaths instance PrintfArg SizeInBytes where formatArg (SizeInBytes s) = formatArg s -instance ToJSON AcceptedConnectionsLimit where - toJSON AcceptedConnectionsLimit - { acceptedConnectionsHardLimit - , acceptedConnectionsSoftLimit - , acceptedConnectionsDelay - } = - object [ "AcceptedConnectionsLimit" .= - object [ "hardLimit" .= - toJSON acceptedConnectionsHardLimit - , "softLimit" .= - toJSON acceptedConnectionsSoftLimit - , "delay" .= - toJSON acceptedConnectionsDelay - ] - ] - -instance FromJSON AcceptedConnectionsLimit where - parseJSON = withObject "AcceptedConnectionsLimit" $ \v -> - AcceptedConnectionsLimit - <$> v .: "hardLimit" - <*> v .: "softLimit" - <*> v .: "delay" - instance FromJSON NodeDatabasePaths where parseJSON o@(Object{})= withObject "NodeDatabasePaths" diff --git a/cardano-node/src/Cardano/Node/Parsers.hs b/cardano-node/src/Cardano/Node/Parsers.hs index 39f997e0c5c..86773d3726c 100644 --- a/cardano-node/src/Cardano/Node/Parsers.hs +++ b/cardano-node/src/Cardano/Node/Parsers.hs @@ -137,7 +137,6 @@ nodeRunParser = do , pncSyncTargetOfActiveBigLedgerPeers = mempty , pncMinBigLedgerPeersForTrustedState = mempty , pncConsensusMode = mempty - , pncEnableP2P = mempty , pncPeerSharing = mempty , pncGenesisConfigFlags = mempty , pncResponderCoreAffinityPolicy = mempty diff --git a/cardano-node/src/Cardano/Node/Protocol.hs b/cardano-node/src/Cardano/Node/Protocol.hs index 8fff29fdad0..b77d2a7db2e 100644 --- a/cardano-node/src/Cardano/Node/Protocol.hs +++ b/cardano-node/src/Cardano/Node/Protocol.hs @@ -30,6 +30,7 @@ mkConsensusProtocol ncProtocolConfig mProtocolFiles = shelleyConfig alonzoConfig conwayConfig + dijkstraConfig hardForkConfig checkpointsConfig -> firstExceptT CardanoProtocolInstantiationError $ @@ -38,6 +39,7 @@ mkConsensusProtocol ncProtocolConfig mProtocolFiles = shelleyConfig alonzoConfig conwayConfig + dijkstraConfig hardForkConfig checkpointsConfig mProtocolFiles diff --git a/cardano-node/src/Cardano/Node/Protocol/Alonzo.hs b/cardano-node/src/Cardano/Node/Protocol/Alonzo.hs index 9376f53a607..04c063471fc 100644 --- a/cardano-node/src/Cardano/Node/Protocol/Alonzo.hs +++ b/cardano-node/src/Cardano/Node/Protocol/Alonzo.hs @@ -12,28 +12,20 @@ import Cardano.Api import qualified Cardano.Ledger.Alonzo.Genesis as Alonzo import Cardano.Node.Orphans () -import Cardano.Node.Protocol.Shelley (GenesisReadError (..), checkExpectedGenesisHash) +import Cardano.Node.Protocol.Shelley (GenesisReadError, readGenesisAny) import Cardano.Node.Types import Cardano.Tracing.OrphanInstances.HardFork () import Cardano.Tracing.OrphanInstances.Shelley () -import qualified Data.ByteString.Lazy as LBS - - -- -- Alonzo genesis -- -readGenesis :: Maybe (CardanoEra era) - -> GenesisFile +readGenesis :: GenesisFile -> Maybe GenesisHash -> ExceptT GenesisReadError IO (Alonzo.AlonzoGenesis, GenesisHash) -readGenesis mEra (GenesisFile file) mGenesisHash = do - content <- handleIOExceptT (GenesisReadFileError file) $ LBS.readFile file - genesisHash <- checkExpectedGenesisHash (LBS.toStrict content) mGenesisHash - genesis <- modifyError (GenesisDecodeError file) $ decodeAlonzoGenesis mEra content - pure (genesis, genesisHash) +readGenesis = readGenesisAny validateGenesis :: Alonzo.AlonzoGenesis -> ExceptT AlonzoProtocolInstantiationError IO () diff --git a/cardano-node/src/Cardano/Node/Protocol/Cardano.hs b/cardano-node/src/Cardano/Node/Protocol/Cardano.hs index d720c816d73..d5bfa546fd9 100644 --- a/cardano-node/src/Cardano/Node/Protocol/Cardano.hs +++ b/cardano-node/src/Cardano/Node/Protocol/Cardano.hs @@ -26,6 +26,7 @@ import qualified Cardano.Node.Protocol.Byron as Byron import Cardano.Node.Protocol.Checkpoints import qualified Cardano.Node.Protocol.Conway as Conway import qualified Cardano.Node.Protocol.Shelley as Shelley +import qualified Cardano.Node.Protocol.Dijkstra as Dijkstra import Cardano.Node.Protocol.Types import Cardano.Node.Types import Cardano.Tracing.OrphanInstances.Byron () @@ -60,6 +61,7 @@ mkSomeConsensusProtocolCardano -> NodeShelleyProtocolConfiguration -> NodeAlonzoProtocolConfiguration -> NodeConwayProtocolConfiguration + -> Maybe NodeDijkstraProtocolConfiguration -> NodeHardForkProtocolConfiguration -> NodeCheckpointsConfiguration -> Maybe ProtocolFilepaths @@ -85,7 +87,8 @@ mkSomeConsensusProtocolCardano NodeByronProtocolConfiguration { npcConwayGenesisFile, npcConwayGenesisFileHash } - npc@NodeHardForkProtocolConfiguration { + ndpc + NodeHardForkProtocolConfiguration { -- During testing of the Alonzo era, we conditionally declared that we -- knew about the Alonzo era. We do so only when a config option for -- testing development/unstable eras is used. This lets us include @@ -96,7 +99,8 @@ mkSomeConsensusProtocolCardano NodeByronProtocolConfiguration { npcTestMaryHardForkAtEpoch, npcTestAlonzoHardForkAtEpoch, npcTestBabbageHardForkAtEpoch, - npcTestConwayHardForkAtEpoch + npcTestConwayHardForkAtEpoch, + npcTestDijkstraHardForkAtEpoch } checkpointsConfiguration files = do @@ -117,14 +121,7 @@ mkSomeConsensusProtocolCardano NodeByronProtocolConfiguration { (alonzoGenesis, _alonzoGenesisHash) <- firstExceptT CardanoProtocolInstantiationAlonzoGenesisReadError $ - case npcTestStartingEra npc of - Nothing -> - Alonzo.readGenesis Nothing - npcAlonzoGenesisFile - npcAlonzoGenesisFileHash - Just (AnyShelleyBasedEra sbe) -> do - Alonzo.readGenesis (Just $ toCardanoEra sbe) - npcAlonzoGenesisFile + Alonzo.readGenesis npcAlonzoGenesisFile npcAlonzoGenesisFileHash (conwayGenesis, _conwayGenesisHash) <- @@ -132,6 +129,15 @@ mkSomeConsensusProtocolCardano NodeByronProtocolConfiguration { Conway.readGenesis npcConwayGenesisFile npcConwayGenesisFileHash + dijkstraGenesis <- + case ndpc of + Nothing -> pure Dijkstra.emptyDijkstraGenesis + Just (NodeDijkstraProtocolConfiguration npcDijkstraGenesisFile npcDijkstraGenesisFileHash) -> do + (dijkstraGenesis, _dijkstraGenesisHash) <- firstExceptT CardanoProtocolInstantiationDijkstraGenesisReadError $ + Dijkstra.readGenesis npcDijkstraGenesisFile + npcDijkstraGenesisFileHash + pure dijkstraGenesis + shelleyLeaderCredentials <- firstExceptT CardanoProtocolInstantiationPraosLeaderCredentialsError $ Shelley.readLeaderCredentials files @@ -178,6 +184,7 @@ mkSomeConsensusProtocolCardano NodeByronProtocolConfiguration { shelleyGenesis alonzoGenesis conwayGenesis + dijkstraGenesis , Consensus.cardanoHardForkTriggers = Consensus.CardanoHardForkTriggers' { triggerHardForkShelley = @@ -232,6 +239,11 @@ mkSomeConsensusProtocolCardano NodeByronProtocolConfiguration { maybe Consensus.CardanoTriggerHardForkAtDefaultVersion Consensus.CardanoTriggerHardForkAtEpoch + , triggerHardForkDijkstra = + npcTestDijkstraHardForkAtEpoch & + maybe + Consensus.CardanoTriggerHardForkAtDefaultVersion + Consensus.CardanoTriggerHardForkAtEpoch } , Consensus.cardanoCheckpoints = checkpointsMap } @@ -258,6 +270,9 @@ data CardanoProtocolInstantiationError = | CardanoProtocolInstantiationConwayGenesisReadError Shelley.GenesisReadError + | CardanoProtocolInstantiationDijkstraGenesisReadError + Shelley.GenesisReadError + | CardanoProtocolInstantiationPraosLeaderCredentialsError Shelley.PraosLeaderCredentialsError @@ -277,6 +292,8 @@ instance Error CardanoProtocolInstantiationError where "Alonzo related: " <> prettyError err prettyError (CardanoProtocolInstantiationConwayGenesisReadError err) = "Conway related : " <> prettyError err + prettyError (CardanoProtocolInstantiationDijkstraGenesisReadError err) = + "Dijkstra related : " <> prettyError err prettyError (CardanoProtocolInstantiationPraosLeaderCredentialsError err) = prettyError err prettyError (CardanoProtocolInstantiationErrorAlonzo err) = diff --git a/cardano-node/src/Cardano/Node/Protocol/Dijkstra.hs b/cardano-node/src/Cardano/Node/Protocol/Dijkstra.hs new file mode 100644 index 00000000000..7650371bc8a --- /dev/null +++ b/cardano-node/src/Cardano/Node/Protocol/Dijkstra.hs @@ -0,0 +1,55 @@ +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE FlexibleContexts #-} +{-# LANGUAGE ScopedTypeVariables #-} +{-# LANGUAGE TypeApplications #-} + +module Cardano.Node.Protocol.Dijkstra + ( readGenesis + , readGenesisMaybe + , emptyDijkstraGenesis + ) where + +import Cardano.Api + +import qualified Cardano.Crypto.Hash.Class as Crypto +import Cardano.Ledger.BaseTypes +import qualified Cardano.Ledger.Binary as L +import Cardano.Ledger.Dijkstra.Genesis (DijkstraGenesis (..)) +import qualified Cardano.Ledger.Dijkstra.Genesis as Dijkstra +import Cardano.Ledger.Dijkstra.PParams +import Cardano.Node.Orphans () +import Cardano.Node.Protocol.Shelley (GenesisReadError, readGenesisAny) +import Cardano.Node.Types +import Cardano.Tracing.OrphanInstances.HardFork () +import Cardano.Tracing.OrphanInstances.Shelley () + +import qualified Data.ByteString.Lazy as LB + +import Data.Maybe (fromMaybe) + +readGenesisMaybe :: Maybe GenesisFile + -> Maybe GenesisHash + -> ExceptT GenesisReadError IO + (Dijkstra.DijkstraGenesis, GenesisHash) +readGenesisMaybe (Just genFp) mHash = readGenesis genFp mHash +readGenesisMaybe Nothing _ = do + let dijkstraGenesis = emptyDijkstraGenesis + genesisHash = GenesisHash (Crypto.hashWith id $ LB.toStrict $ L.serialize (L.natVersion @11) emptyDijkstraGenesis) + return (dijkstraGenesis, genesisHash) + +emptyDijkstraGenesis :: DijkstraGenesis +emptyDijkstraGenesis = + let upgradePParamsDef = UpgradeDijkstraPParams + { udppMaxRefScriptSizePerBlock = 1048576 + , udppMaxRefScriptSizePerTx = 204800 + , udppRefScriptCostStride = unsafeNonZero 25600 + , udppRefScriptCostMultiplier = fromMaybe (error "impossible") $ boundRational 1.2 + } + in DijkstraGenesis { dgUpgradePParams = upgradePParamsDef } + + +readGenesis :: GenesisFile + -> Maybe GenesisHash + -> ExceptT GenesisReadError IO + (Dijkstra.DijkstraGenesis, GenesisHash) +readGenesis = readGenesisAny diff --git a/cardano-node/src/Cardano/Node/Protocol/Shelley.hs b/cardano-node/src/Cardano/Node/Protocol/Shelley.hs index 63371c48259..4cec1a0f8e3 100644 --- a/cardano-node/src/Cardano/Node/Protocol/Shelley.hs +++ b/cardano-node/src/Cardano/Node/Protocol/Shelley.hs @@ -39,7 +39,7 @@ import Cardano.Protocol.Crypto (StandardCrypto) import Cardano.Tracing.OrphanInstances.HardFork () import Cardano.Tracing.OrphanInstances.Shelley () import qualified Ouroboros.Consensus.Cardano as Consensus -import Ouroboros.Consensus.Protocol.Praos.Common (PraosCanBeLeader (..)) +import Ouroboros.Consensus.Protocol.Praos.Common (PraosCanBeLeader (..), PraosCredentialsSource (..)) import Ouroboros.Consensus.Shelley.Node (Nonce (..), ProtocolParamsShelleyBased (..), ShelleyLeaderCredentials (..)) @@ -259,11 +259,10 @@ mkPraosLeaderCredentials ShelleyLeaderCredentials { shelleyLeaderCredentialsCanBeLeader = PraosCanBeLeader { - praosCanBeLeaderOpCert = opcert, praosCanBeLeaderColdVerKey = coerceKeyRole vkey, - praosCanBeLeaderSignKeyVRF = vrfKey + praosCanBeLeaderSignKeyVRF = vrfKey, + praosCanBeLeaderCredentialsSource = PraosCredentialsUnsound opcert kesKey }, - shelleyLeaderCredentialsInitSignKey = kesKey, shelleyLeaderCredentialsLabel = "Shelley" } diff --git a/cardano-node/src/Cardano/Node/Queries.hs b/cardano-node/src/Cardano/Node/Queries.hs index 6575bf34ec0..7bb1c364f3e 100644 --- a/cardano-node/src/Cardano/Node/Queries.hs +++ b/cardano-node/src/Cardano/Node/Queries.hs @@ -42,10 +42,11 @@ import qualified Cardano.Crypto.Hash as Crypto import qualified Cardano.Crypto.Hashing as Byron.Crypto import Cardano.Crypto.KES.Class (Period) import Cardano.Ledger.BaseTypes (StrictMaybe (..), fromSMaybe) +import qualified Cardano.Ledger.Conway.State as Conway import qualified Cardano.Ledger.Hashes as Ledger import qualified Cardano.Ledger.Shelley.LedgerState as Shelley +import qualified Cardano.Ledger.State as Ledger import qualified Cardano.Ledger.TxIn as Ledger -import qualified Cardano.Ledger.UMap as UM import Cardano.Protocol.TPraos.OCert (KESPeriod (..)) import Ouroboros.Consensus.Block (ForgeStateInfo, ForgeStateUpdateError) import Ouroboros.Consensus.Byron.Ledger.Block (ByronBlock) @@ -232,66 +233,77 @@ instance All GetKESInfo xs => GetKESInfo (HardForkBlock xs) where class LedgerQueries blk where ledgerUtxoSize :: LedgerState blk EmptyMK -> Int ledgerDelegMapSize :: LedgerState blk EmptyMK -> Int + +class LedgerConwayQueries blk where ledgerDRepCount :: LedgerState blk EmptyMK -> Int ledgerDRepMapSize :: LedgerState blk EmptyMK -> Int instance LedgerQueries Byron.ByronBlock where ledgerUtxoSize = Map.size . Byron.unUTxO . Byron.cvsUtxo . Byron.byronLedgerState ledgerDelegMapSize _ = 0 - ledgerDRepCount _ = 0 - ledgerDRepMapSize _ = 0 -instance Shelley.EraCertState era => LedgerQueries (Shelley.ShelleyBlock protocol era) where +instance (Ledger.EraAccounts era, Shelley.EraCertState era) => LedgerQueries (Shelley.ShelleyBlock protocol era) where ledgerUtxoSize = - (\(Shelley.UTxO xs)-> Map.size xs) - . Shelley.utxosUtxo - . Shelley.lsUTxOState - . Shelley.esLState - . Shelley.nesEs + Map.size + . Ledger.unUTxO + . (^. Shelley.nesEsL + . Shelley.esLStateL + . Shelley.lsUTxOStateL + . Shelley.utxoL + ) . Shelley.shelleyLedgerState ledgerDelegMapSize = - UM.size - . UM.SPoolUView - . Shelley.dsUnified - . (^. Shelley.certDStateL) - . Shelley.lsCertState - . Shelley.esLState - . Shelley.nesEs + Map.foldl' (\acc -> maybe acc (const $ 1 + acc) . (^. Ledger.stakePoolDelegationAccountStateL)) 0 + . (^. Shelley.nesEsL + . Shelley.esLStateL + . Shelley.lsCertStateL + . Shelley.certDStateL + . Ledger.accountsL + . Ledger.accountsMapL + ) . Shelley.shelleyLedgerState + +instance Conway.ConwayEraCertState era => LedgerConwayQueries (Shelley.ShelleyBlock protocol era) where ledgerDRepCount = Map.size - . Shelley.vsDReps - . (^. Shelley.certVStateL) - . Shelley.lsCertState - . Shelley.esLState - . Shelley.nesEs + . (^. Shelley.nesEsL + . Shelley.esLStateL + . Shelley.lsCertStateL + . Conway.certVStateL + . Conway.vsDRepsL + ) . Shelley.shelleyLedgerState ledgerDRepMapSize = - UM.size - . UM.DRepUView - . Shelley.dsUnified - . (^. Shelley.certDStateL) - . Shelley.lsCertState - . Shelley.esLState - . Shelley.nesEs + Map.foldl' (\acc -> maybe acc (const $ 1 + acc) . (^. Conway.dRepDelegationAccountStateL)) 0 + . (^. Shelley.nesEsL + . Shelley.esLStateL + . Shelley.lsCertStateL + . Shelley.certDStateL + . Ledger.accountsL + . Ledger.accountsMapL + ) . Shelley.shelleyLedgerState instance (LedgerQueries x, NoHardForks x) => LedgerQueries (HardForkBlock '[x]) where ledgerUtxoSize = ledgerUtxoSize . unFlip . project . Flip ledgerDelegMapSize = ledgerDelegMapSize . unFlip . project . Flip + +instance (LedgerConwayQueries x, NoHardForks x) + => LedgerConwayQueries (HardForkBlock '[x]) where ledgerDRepCount = ledgerDRepCount . unFlip . project . Flip ledgerDRepMapSize = ledgerDRepMapSize . unFlip . project . Flip instance LedgerQueries (Cardano.CardanoBlock c) where ledgerUtxoSize = \case - Cardano.LedgerStateByron ledgerByron -> ledgerUtxoSize ledgerByron - Cardano.LedgerStateShelley ledgerShelley -> ledgerUtxoSize ledgerShelley - Cardano.LedgerStateAllegra ledgerAllegra -> ledgerUtxoSize ledgerAllegra - Cardano.LedgerStateMary ledgerMary -> ledgerUtxoSize ledgerMary - Cardano.LedgerStateAlonzo ledgerAlonzo -> ledgerUtxoSize ledgerAlonzo - Cardano.LedgerStateBabbage ledgerBabbage -> ledgerUtxoSize ledgerBabbage - Cardano.LedgerStateConway ledgerConway -> ledgerUtxoSize ledgerConway + Cardano.LedgerStateByron ledgerByron -> ledgerUtxoSize ledgerByron + Cardano.LedgerStateShelley ledgerShelley -> ledgerUtxoSize ledgerShelley + Cardano.LedgerStateAllegra ledgerAllegra -> ledgerUtxoSize ledgerAllegra + Cardano.LedgerStateMary ledgerMary -> ledgerUtxoSize ledgerMary + Cardano.LedgerStateAlonzo ledgerAlonzo -> ledgerUtxoSize ledgerAlonzo + Cardano.LedgerStateBabbage ledgerBabbage -> ledgerUtxoSize ledgerBabbage + Cardano.LedgerStateConway ledgerConway -> ledgerUtxoSize ledgerConway + Cardano.LedgerStateDijkstra ledgerDijkstra -> ledgerUtxoSize ledgerDijkstra ledgerDelegMapSize = \case Cardano.LedgerStateByron ledgerByron -> ledgerDelegMapSize ledgerByron Cardano.LedgerStateShelley ledgerShelley -> ledgerDelegMapSize ledgerShelley @@ -300,22 +312,27 @@ instance LedgerQueries (Cardano.CardanoBlock c) where Cardano.LedgerStateAlonzo ledgerAlonzo -> ledgerDelegMapSize ledgerAlonzo Cardano.LedgerStateBabbage ledgerBabbage -> ledgerDelegMapSize ledgerBabbage Cardano.LedgerStateConway ledgerConway -> ledgerDelegMapSize ledgerConway + Cardano.LedgerStateDijkstra ledgerDijkstra -> ledgerDelegMapSize ledgerDijkstra + +instance LedgerConwayQueries (Cardano.CardanoBlock c) where ledgerDRepCount = \case - Cardano.LedgerStateByron ledgerByron -> ledgerDRepCount ledgerByron - Cardano.LedgerStateShelley ledgerShelley -> ledgerDRepCount ledgerShelley - Cardano.LedgerStateAllegra ledgerAllegra -> ledgerDRepCount ledgerAllegra - Cardano.LedgerStateMary ledgerMary -> ledgerDRepCount ledgerMary - Cardano.LedgerStateAlonzo ledgerAlonzo -> ledgerDRepCount ledgerAlonzo - Cardano.LedgerStateBabbage ledgerBabbage -> ledgerDRepCount ledgerBabbage + Cardano.LedgerStateByron _ledgerByron -> 0 + Cardano.LedgerStateShelley _ledgerShelley -> 0 + Cardano.LedgerStateAllegra _ledgerAllegra -> 0 + Cardano.LedgerStateMary _ledgerMary -> 0 + Cardano.LedgerStateAlonzo _ledgerAlonzo -> 0 + Cardano.LedgerStateBabbage _ledgerBabbage -> 0 Cardano.LedgerStateConway ledgerConway -> ledgerDRepCount ledgerConway + Cardano.LedgerStateDijkstra ledgerDijkstra -> ledgerDRepCount ledgerDijkstra ledgerDRepMapSize = \case - Cardano.LedgerStateByron ledgerByron -> ledgerDRepMapSize ledgerByron - Cardano.LedgerStateShelley ledgerShelley -> ledgerDRepMapSize ledgerShelley - Cardano.LedgerStateAllegra ledgerAllegra -> ledgerDRepMapSize ledgerAllegra - Cardano.LedgerStateMary ledgerMary -> ledgerDRepMapSize ledgerMary - Cardano.LedgerStateAlonzo ledgerAlonzo -> ledgerDRepMapSize ledgerAlonzo - Cardano.LedgerStateBabbage ledgerBabbage -> ledgerDRepMapSize ledgerBabbage + Cardano.LedgerStateByron _ledgerByron -> 0 + Cardano.LedgerStateShelley _ledgerShelley -> 0 + Cardano.LedgerStateAllegra _ledgerAllegra -> 0 + Cardano.LedgerStateMary _ledgerMary -> 0 + Cardano.LedgerStateAlonzo _ledgerAlonzo -> 0 + Cardano.LedgerStateBabbage _ledgerBabbage -> 0 Cardano.LedgerStateConway ledgerConway -> ledgerDRepMapSize ledgerConway + Cardano.LedgerStateDijkstra ledgerDijkstra -> ledgerDRepMapSize ledgerDijkstra -- -- * Node kernel diff --git a/cardano-node/src/Cardano/Node/Run.hs b/cardano-node/src/Cardano/Node/Run.hs index 18a83515fd8..d16f4003986 100644 --- a/cardano-node/src/Cardano/Node/Run.hs +++ b/cardano-node/src/Cardano/Node/Run.hs @@ -37,11 +37,12 @@ import Cardano.Node.Configuration.Logging (LoggingLayer (..), createLo nodeBasicInfo, shutdownLoggingLayer) import Cardano.Node.Configuration.NodeAddress import Cardano.Node.Configuration.POM (NodeConfiguration (..), - PartialNodeConfiguration (..), SomeNetworkP2PMode (..), TimeoutOverride (..), - defaultPartialNodeConfiguration, makeNodeConfiguration, parseNodeConfigurationFP, getForkPolicy) -import Cardano.Node.Configuration.Socket (SocketOrSocketInfo' (..), + PartialNodeConfiguration (..), TimeoutOverride (..), + defaultPartialNodeConfiguration, makeNodeConfiguration, + parseNodeConfigurationFP, getForkPolicy) +import Cardano.Node.Configuration.Socket (LocalSocketOrSocketInfo, + SocketOrSocketInfo, SocketOrSocketInfo' (..), gatherConfiguredSockets, getSocketOrSocketInfoAddr) -import qualified Cardano.Node.Configuration.Topology as TopologyNonP2P import Cardano.Node.Configuration.TopologyP2P import qualified Cardano.Node.Configuration.TopologyP2P as TopologyP2P import Cardano.Node.Handlers.Shutdown @@ -66,10 +67,11 @@ import Cardano.Tracing.Tracers import qualified Ouroboros.Consensus.Config as Consensus import Ouroboros.Consensus.Config.SupportsNode (ConfigSupportsNode (..)) -import Ouroboros.Consensus.Node (SnapshotPolicyArgs (..), NetworkP2PMode (..), +import Ouroboros.Consensus.Node (SnapshotPolicyArgs (..), NodeDatabasePaths (..), RunNodeArgs (..), StdRunNodeArgs (..)) +import Ouroboros.Consensus.Protocol.Praos.AgentClient (KESAgentClientTrace) import Ouroboros.Consensus.Ledger.SupportsMempool (GenTxId) -import Ouroboros.Consensus.Node (NetworkP2PMode (..), RunNodeArgs (..), +import Ouroboros.Consensus.Node (RunNodeArgs (..), SnapshotPolicyArgs (..), StdRunNodeArgs (..)) import qualified Ouroboros.Consensus.Node as Node (NodeDatabasePaths (..), getChainDB, run) import Ouroboros.Consensus.Node.Genesis @@ -81,49 +83,42 @@ import Ouroboros.Consensus.Storage.LedgerDB.V2.Args import Ouroboros.Consensus.Util.Args import Ouroboros.Consensus.Util.Orphans () +import Cardano.Network.ConsensusMode +import qualified Cardano.Network.Diffusion as Cardano.Diffusion +import qualified Cardano.Network.Diffusion.Configuration as Configuration import Cardano.Network.PeerSelection.Bootstrap (UseBootstrapPeers (..)) import Cardano.Network.PeerSelection.PeerTrustable (PeerTrustable) +import qualified Cardano.Network.PeerSelection.PeerSelectionActions as Cardano +import Cardano.Network.PeerSelection.Churn (ChurnMode (..), peerChurnGovernor) +import qualified Cardano.Network.PeerSelection.Governor.PeerSelectionActions as Cardano.PeerSelection +import qualified Cardano.Network.PeerSelection.Governor.PeerSelectionState as Cardano.PeerSelection +import qualified Cardano.Network.PeerSelection.Governor.PeerSelectionState as CPST +import qualified Cardano.Network.PeerSelection.Governor.Types as Cardano +import qualified Cardano.Network.PeerSelection.Governor.Types as CPSV +import qualified Cardano.Network.PeerSelection.PublicRootPeers as Cardano.PublicRoots +import qualified Cardano.Network.PeerSelection.Governor.PeerSelectionActions as Cardano.PeerSelection +import qualified Cardano.Network.LedgerPeerConsensusInterface as Cardano +import qualified Cardano.Network.PeerSelection.PeerSelectionActions as Cardano +import qualified Cardano.Network.PeerSelection.Churn as Cardano.Churn import Cardano.Network.Types (NumberOfBigLedgerPeers (..)) -import Cardano.Network.ConsensusMode (ConsensusMode (..)) -import qualified Ouroboros.Cardano.PeerSelection.PeerSelectionActions as Cardano -import Ouroboros.Cardano.PeerSelection.Churn (peerChurnGovernor) -import Ouroboros.Cardano.Network.Types (ChurnMode (..)) -import Ouroboros.Cardano.Network.Diffusion.Handlers (sigUSR1Handler) -import qualified Ouroboros.Cardano.Network.ArgumentsExtra as Cardano -import qualified Ouroboros.Cardano.Network.PeerSelection.Governor.PeerSelectionActions as Cardano.PeerSelection -import qualified Ouroboros.Cardano.Network.PeerSelection.Governor.PeerSelectionState as Cardano.PeerSelection -import qualified Ouroboros.Cardano.Network.PeerSelection.Governor.PeerSelectionState as CPST -import qualified Ouroboros.Cardano.Network.PeerSelection.Governor.Types as Cardano -import qualified Ouroboros.Cardano.Network.PeerSelection.Governor.Types as CPSV -import qualified Ouroboros.Cardano.Network.PublicRootPeers as Cardano.PublicRoots -import qualified Ouroboros.Cardano.Network.PeerSelection.Governor.PeerSelectionActions as Cardano.PeerSelection -import qualified Ouroboros.Cardano.Network.LedgerPeerConsensusInterface as Cardano -import qualified Ouroboros.Cardano.PeerSelection.PeerSelectionActions as Cardano -import qualified Ouroboros.Cardano.Network.PeerSelection.Churn.ExtraArguments as Cardano.Churn -import qualified Ouroboros.Cardano.Network.Diffusion.Configuration as Configuration import Ouroboros.Network.BlockFetch (FetchMode) import qualified Ouroboros.Network.Diffusion as Diffusion -import qualified Ouroboros.Network.Diffusion.Common as Diffusion +import qualified Ouroboros.Network.Diffusion.Types as Diffusion import qualified Ouroboros.Network.Diffusion.Configuration as Configuration -import qualified Ouroboros.Network.Diffusion.NonP2P as NonP2P -import qualified Ouroboros.Network.Diffusion.P2P as P2P import Ouroboros.Network.Mux (noBindForkPolicy, responderForkPolicy, ForkPolicy) import Ouroboros.Network.NodeToClient (LocalAddress (..), LocalSocket (..)) import Ouroboros.Network.NodeToNode (AcceptedConnectionsLimit (..), ConnectionId, PeerSelectionTargets (..), RemoteAddress) -import Ouroboros.Network.PeerSelection.Governor.Types (BootstrapPeersCriticalTimeoutError, - PeerSelectionState, PeerSelectionTargets (..), PublicPeerSelectionState, - makePublicPeerSelectionStateVar) -import Ouroboros.Network.PeerSelection.LedgerPeers.Type (AfterSlot (..), - LedgerPeerSnapshot (..), UseLedgerPeers (..)) +import Ouroboros.Network.PeerSelection.Governor.Types (PeerSelectionState, + PublicPeerSelectionState, makePublicPeerSelectionStateVar, BootstrapPeersCriticalTimeoutError) +import Ouroboros.Network.PeerSelection.LedgerPeers.Type (LedgerPeerSnapshot (..), + UseLedgerPeers (..), AfterSlot (..)) import Ouroboros.Network.PeerSelection.PeerSharing (PeerSharing (..)) import Ouroboros.Network.PeerSelection.RelayAccessPoint (RelayAccessPoint (..)) import Ouroboros.Network.PeerSelection.RootPeersDNS.PublicRootPeers (TracePublicRootPeers) import Ouroboros.Network.PeerSelection.State.LocalRootPeers (HotValency, LocalRootConfig (..), WarmValency) import Ouroboros.Network.Protocol.ChainSync.Codec -import Ouroboros.Network.Subscription (DnsSubscriptionTarget (..), - IPSubscriptionTarget (..)) import Control.Applicative (empty) import Control.Concurrent (killThread, mkWeakThreadId, myThreadId, getNumCapabilities) @@ -234,98 +229,90 @@ handleNodeWithTracers -> NodeConfiguration -> SomeConsensusProtocol -> IO () -handleNodeWithTracers cmdPc nc0 p@(SomeConsensusProtocol blockType runP) = do +handleNodeWithTracers cmdPc nc p@(SomeConsensusProtocol blockType runP) = do let ProtocolInfo{pInfoConfig} = fst $ Api.protocolInfo @IO runP networkMagic :: Api.NetworkMagic = getNetworkMagic $ Consensus.configBlock pInfoConfig -- This IORef contains node kernel structure which holds node kernel. -- Used for ledger queries and peer connection status. nodeKernelData <- mkNodeKernelData let ProtocolInfo { pInfoConfig = cfg } = fst $ Api.protocolInfo @IO runP - case ncEnableP2P nc0 of - SomeNetworkP2PMode p2pMode -> do - let fp = maybe "No file path found!" - unConfigPath - (getLast (pncConfigFile cmdPc)) - -- Overwrite configured peer sharing mode if p2p is not enabled - nc = case p2pMode of - DisabledP2PMode -> nc0 { ncPeerSharing = PeerSharingDisabled } - EnabledP2PMode -> nc0 - case ncTraceConfig nc of - TraceDispatcher{} -> do - blockForging <- snd (Api.protocolInfo runP) - tracers <- - initTraceDispatcher - nc - p - networkMagic - nodeKernelData - p2pMode - (null blockForging) - - startupInfo <- getStartupInfo nc p fp - mapM_ (traceWith $ startupTracer tracers) startupInfo - traceNodeStartupInfo (nodeStartupInfoTracer tracers) startupInfo - -- sends initial BlockForgingUpdate - let isNonProducing = ncStartAsNonProducingNode nc - traceWith (startupTracer tracers) - (BlockForgingUpdate (if isNonProducing || null blockForging - then DisabledBlockForging - else EnabledBlockForging)) - - handleSimpleNode blockType runP p2pMode tracers nc - (\nk -> do - setNodeKernel nodeKernelData nk - traceWith (nodeStateTracer tracers) NodeKernelOnline) - - _ -> do - eLoggingLayer <- runExceptT $ createLoggingLayer - (Text.pack (showVersion version)) - nc - p - - loggingLayer <- case eLoggingLayer of - Left err -> Exception.throwIO err - Right res -> return res - !trace <- setupTrace loggingLayer - let tracer = contramap pack $ toLogObject trace - logTracingVerbosity nc tracer - - -- Legacy logging infrastructure must trace 'nodeStartTime' and 'nodeBasicInfo'. - startTime <- getCurrentTime - traceCounter "nodeStartTime" trace (ceiling $ utcTimeToPOSIXSeconds startTime) - nbi <- nodeBasicInfo nc p startTime - forM_ nbi $ \(LogObject nm mt content) -> - traceNamedObject (appendName nm trace) (mt, content) - - tracers <- - mkTracers - (Consensus.configBlock cfg) - (ncTraceConfig nc) - trace - nodeKernelData - (llEKGDirect loggingLayer) - p2pMode - - getStartupInfo nc p fp - >>= mapM_ (traceWith $ startupTracer tracers) - - traceWith (nodeVersionTracer tracers) getNodeVersion - let isNonProducing = ncStartAsNonProducingNode nc - blockForging <- snd (Api.protocolInfo runP) - traceWith (startupTracer tracers) - (BlockForgingUpdate (if isNonProducing || null blockForging - then DisabledBlockForging - else EnabledBlockForging)) - - -- We ignore peer logging thread if it dies, but it will be killed - -- when 'handleSimpleNode' terminates. - handleSimpleNode blockType runP p2pMode tracers nc - (\nk -> do - setNodeKernel nodeKernelData nk - traceWith (nodeStateTracer tracers) NodeKernelOnline) - `finally` do - forM_ eLoggingLayer - shutdownLoggingLayer + let fp = maybe "No file path found!" + unConfigPath + (getLast (pncConfigFile cmdPc)) + case ncTraceConfig nc of + TraceDispatcher{} -> do + blockForging <- snd (Api.protocolInfo runP) nullTracer + tracers <- + initTraceDispatcher + nc + p + networkMagic + nodeKernelData + (null blockForging) + + startupInfo <- getStartupInfo nc p fp + mapM_ (traceWith $ startupTracer tracers) startupInfo + traceNodeStartupInfo (nodeStartupInfoTracer tracers) startupInfo + -- sends initial BlockForgingUpdate + let isNonProducing = ncStartAsNonProducingNode nc + traceWith (startupTracer tracers) + (BlockForgingUpdate (if isNonProducing || null blockForging + then DisabledBlockForging + else EnabledBlockForging)) + + handleSimpleNode blockType runP tracers nc + (\nk -> do + setNodeKernel nodeKernelData nk + traceWith (nodeStateTracer tracers) NodeKernelOnline) + + _ -> do + eLoggingLayer <- runExceptT $ createLoggingLayer + (Text.pack (showVersion version)) + nc + p + + loggingLayer <- case eLoggingLayer of + Left err -> Exception.throwIO err + Right res -> return res + !trace <- setupTrace loggingLayer + let tracer = contramap pack $ toLogObject trace + logTracingVerbosity nc tracer + + -- Legacy logging infrastructure must trace 'nodeStartTime' and 'nodeBasicInfo'. + startTime <- getCurrentTime + traceCounter "nodeStartTime" trace (ceiling $ utcTimeToPOSIXSeconds startTime) + nbi <- nodeBasicInfo nc p startTime + forM_ nbi $ \(LogObject nm mt content) -> + traceNamedObject (appendName nm trace) (mt, content) + + tracers <- + mkTracers + (Consensus.configBlock cfg) + (ncTraceConfig nc) + trace + nodeKernelData + (llEKGDirect loggingLayer) + + getStartupInfo nc p fp + >>= mapM_ (traceWith $ startupTracer tracers) + + traceWith (nodeVersionTracer tracers) getNodeVersion + let isNonProducing = ncStartAsNonProducingNode nc + blockForging <- snd (Api.protocolInfo runP) nullTracer + traceWith (startupTracer tracers) + (BlockForgingUpdate (if isNonProducing || null blockForging + then DisabledBlockForging + else EnabledBlockForging)) + + -- We ignore peer logging thread if it dies, but it will be killed + -- when 'handleSimpleNode' terminates. + handleSimpleNode blockType runP tracers nc + (\nk -> do + setNodeKernel nodeKernelData nk + traceWith (nodeStateTracer tracers) NodeKernelOnline) + `finally` do + forM_ eLoggingLayer + shutdownLoggingLayer -- | Currently, we trace only 'ShelleyBased'-info which will be asked -- by 'cardano-tracer' service as a datapoint. It can be extended in the future. @@ -385,29 +372,19 @@ handlePeersListSimple tr nodeKern = forever $ do -- create a new block. handleSimpleNode - :: forall blk p2p . + :: forall blk . ( Api.Protocol IO blk ) => Api.BlockType blk -> Api.ProtocolInfoArgs blk - -> NetworkP2PMode p2p - -> Tracers - RemoteAddress - LocalAddress - blk p2p - Cardano.PeerSelection.ExtraState - Cardano.PeerSelection.DebugPeerSelectionState - PeerTrustable - (Cardano.PublicRoots.ExtraPeers RemoteAddress) - (Cardano.ExtraPeerSelectionSetsWithSizes RemoteAddress) - IO + -> Tracers RemoteAddress LocalAddress blk IO -> NodeConfiguration -> (NodeKernel IO RemoteAddress LocalConnectionId blk -> IO ()) -- ^ Called on the 'NodeKernel' after creating it, but before the network -- layer is initialised. This implies this function must not block, -- otherwise the node won't actually start. -> IO () -handleSimpleNode blockType runP p2pMode tracers nc onKernel = do +handleSimpleNode blockType runP tracers nc onKernel = do logStartupWarnings logDeprecatedLedgerDBOptions @@ -432,31 +409,8 @@ handleSimpleNode blockType runP p2pMode tracers nc onKernel = do dbPath <- canonDbPath nc - publicPeerSelectionVar <- makePublicPeerSelectionStateVar - let diffusionArguments :: Diffusion.Arguments IO Socket RemoteAddress - LocalSocket LocalAddress - diffusionArguments = - Diffusion.Arguments { - Diffusion.daIPv4Address = - case publicIPv4SocketOrAddr of - Just (ActualSocket socket) -> Just (Left socket) - Just (SocketInfo addr) -> Just (Right addr) - Nothing -> Nothing - , Diffusion.daIPv6Address = - case publicIPv6SocketOrAddr of - Just (ActualSocket socket) -> Just (Left socket) - Just (SocketInfo addr) -> Just (Right addr) - Nothing -> Nothing - , Diffusion.daLocalAddress = - case localSocketOrPath of -- TODO allow expressing the Nothing case in the config - Just (ActualSocket localSocket) -> Just (Left localSocket) - Just (SocketInfo localAddr) -> Just (Right localAddr) - Nothing -> Nothing - , Diffusion.daAcceptedConnectionsLimit = ncAcceptedConnectionsLimit nc - , Diffusion.daMode = ncDiffusionMode nc - , Diffusion.daPublicPeerSelectionVar = publicPeerSelectionVar - , Diffusion.daEgressPollInterval = ncEgressPollInterval nc - } + (publicPeerSelectionVar :: StrictTVar IO (PublicPeerSelectionState RemoteAddress)) + <- makePublicPeerSelectionStateVar ipv4 <- traverse getSocketOrSocketInfoAddr publicIPv4SocketOrAddr ipv6 <- traverse getSocketOrSocketInfoAddr publicIPv6SocketOrAddr @@ -473,222 +427,150 @@ handleSimpleNode blockType runP p2pMode tracers nc onKernel = do $ Proxy @blk )) - withShutdownHandling (ncShutdownConfig nc) (shutdownTracer tracers) $ - case p2pMode of - EnabledP2PMode -> do - traceWith (startupTracer tracers) - (StartupP2PInfo (ncDiffusionMode nc)) - nt@TopologyP2P.RealNodeTopology - { ntUseLedgerPeers - , ntUseBootstrapPeers - , ntPeerSnapshotPath - } <- TopologyP2P.readTopologyFileOrError nc (startupTracer tracers) - let (localRoots, publicRoots) = producerAddresses nt - traceWith (startupTracer tracers) - $ NetworkConfig localRoots - publicRoots - ntUseLedgerPeers - ntPeerSnapshotPath - case ncPeerSharing nc of - PeerSharingEnabled - | hasProtocolFile (ncProtocolFiles nc) -> - traceWith (startupTracer tracers) . NetworkConfigUpdateWarning . Text.pack $ - "Mainnet block producers may not meet the Praos performance guarantees " - <> "and host IP address will be leaked since peer sharing is enabled." - _otherwise -> pure () - localRootsVar <- newTVarIO localRoots - publicRootsVar <- newTVarIO publicRoots - useLedgerVar <- newTVarIO ntUseLedgerPeers - useBootstrapVar <- newTVarIO ntUseBootstrapPeers - ledgerPeerSnapshotPathVar <- newTVarIO ntPeerSnapshotPath - ledgerPeerSnapshotVar <- newTVarIO =<< updateLedgerPeerSnapshot - (startupTracer tracers) - nc - (readTVar ledgerPeerSnapshotPathVar) - (readTVar useLedgerVar) - (const . pure $ ()) - - churnModeVar <- newTVarIO ChurnModeNormal - let nodeArgs = RunNodeArgs - { rnGenesisConfig = ncGenesisConfig nc - , rnTraceConsensus = consensusTracers tracers - , rnTraceNTN = nodeToNodeTracers tracers - , rnTraceNTC = nodeToClientTracers tracers - , rnProtocolInfo = pInfo - , rnNodeKernelHook = \registry nodeKernel -> do - -- set the initial block forging - blockForging <- snd (Api.protocolInfo runP) - - unless (ncStartAsNonProducingNode nc) $ - setBlockForging nodeKernel blockForging - - maybeSpawnOnSlotSyncedShutdownHandler - (ncShutdownConfig nc) - (shutdownTracer tracers) - registry - (Node.getChainDB nodeKernel) - onKernel nodeKernel - , rnEnableP2P = p2pMode - , rnPeerSharing = ncPeerSharing nc - , rnGetUseBootstrapPeers = readTVar useBootstrapVar - } -#ifdef UNIX - -- initial `SIGHUP` handler, which only rereads the topology file but - -- doesn't update block forging. The latter is only possible once - -- consensus initialised (e.g. reapplied all blocks). - _ <- Signals.installHandler - Signals.sigHUP - (Signals.Catch $ do - updateTopologyConfiguration - (startupTracer tracers) nc - localRootsVar publicRootsVar useLedgerVar useBootstrapVar - ledgerPeerSnapshotPathVar - void $ updateLedgerPeerSnapshot - (startupTracer tracers) - nc - (readTVar ledgerPeerSnapshotPathVar) - (readTVar useLedgerVar) - (writeTVar ledgerPeerSnapshotVar) - traceWith (startupTracer tracers) (BlockForgingUpdate NotEffective) - ) - Nothing -#endif - nForkPolicy <- getForkPolicy $ ncResponderCoreAffinityPolicy nc - cForkPolicy <- getForkPolicy $ ncResponderCoreAffinityPolicy nc - void $ - let diffusionArgumentsExtra = - mkP2PArguments nForkPolicy cForkPolicy nc - (readTVar localRootsVar) - (readTVar publicRootsVar) - (readTVar useLedgerVar) - (readTVar useBootstrapVar) - (readTVar ledgerPeerSnapshotVar) - churnModeVar - in - Node.run - nodeArgs { - rnNodeKernelHook = \registry nodeKernel -> do - -- reinstall `SIGHUP` handler - installP2PSigHUPHandler (startupTracer tracers) blockType nc nodeKernel - localRootsVar publicRootsVar useLedgerVar useBootstrapVar - ledgerPeerSnapshotPathVar ledgerPeerSnapshotVar - rnNodeKernelHook nodeArgs registry nodeKernel - } - StdRunNodeArgs - { srnBfcMaxConcurrencyBulkSync = unMaxConcurrencyBulkSync <$> ncMaxConcurrencyBulkSync nc - , srnBfcMaxConcurrencyDeadline = unMaxConcurrencyDeadline <$> ncMaxConcurrencyDeadline nc - , srnChainDbValidateOverride = ncValidateDB nc - , srnDatabasePath = dbPath - , srnDiffusionArguments = diffusionArguments - , srnDiffusionArgumentsExtra = diffusionArgumentsExtra - , srnDiffusionTracers = diffusionTracers tracers - , srnDiffusionTracersExtra = diffusionTracersExtra tracers - , srnEnableInDevelopmentVersions = ncExperimentalProtocolsEnabled nc - , srnTraceChainDB = chainDBTracer tracers - , srnMaybeMempoolCapacityOverride = ncMaybeMempoolCapacityOverride nc - , srnChainSyncTimeout = customizeChainSyncTimeout - , srnSigUSR1SignalHandler = \(Diffusion.P2PTracers p2ptracers) -> sigUSR1Handler p2ptracers - , srnSnapshotPolicyArgs = snapshotPolicyArgs - , srnQueryBatchSize = queryBatchSize - , srnLdbFlavorArgs = selectorToArgs ldbBackend - } - DisabledP2PMode -> do - nt <- TopologyNonP2P.readTopologyFileOrError nc - let (ipProducerAddrs, dnsProducerAddrs) = producerAddressesNonP2P nt - - dnsProducers :: [DnsSubscriptionTarget] - dnsProducers = [ DnsSubscriptionTarget (Text.encodeUtf8 addr) port v - | (NodeAddress (NodeHostDnsAddress addr) port, v) <- dnsProducerAddrs - ] - - ipProducers :: IPSubscriptionTarget - ipProducers = IPSubscriptionTarget - [ toSockAddr (addr, port) - | (NodeAddress (NodeHostIPAddress addr) port) <- ipProducerAddrs - ] - (length ipProducerAddrs) - - nodeArgs = RunNodeArgs - { rnGenesisConfig = ncGenesisConfig nc - , rnTraceConsensus = consensusTracers tracers - , rnTraceNTN = nodeToNodeTracers tracers - , rnTraceNTC = nodeToClientTracers tracers - , rnProtocolInfo = pInfo - , rnNodeKernelHook = \registry nodeKernel -> do - -- set the initial block forging - blockForging <- snd (Api.protocolInfo runP) - - unless (ncStartAsNonProducingNode nc) $ - setBlockForging nodeKernel blockForging - - maybeSpawnOnSlotSyncedShutdownHandler - (ncShutdownConfig nc) - (shutdownTracer tracers) - registry - (Node.getChainDB nodeKernel) - onKernel nodeKernel - , rnEnableP2P = p2pMode - , rnPeerSharing = ncPeerSharing nc - , rnGetUseBootstrapPeers = pure DontUseBootstrapPeers - } + withShutdownHandling (ncShutdownConfig nc) (shutdownTracer tracers) $ do + traceWith (startupTracer tracers) + (StartupP2PInfo (ncDiffusionMode nc)) + nt@TopologyP2P.RealNodeTopology + { ntUseLedgerPeers + , ntUseBootstrapPeers + , ntPeerSnapshotPath + } <- TopologyP2P.readTopologyFileOrError nc (startupTracer tracers) + let (localRoots, publicRoots) = producerAddresses nt + traceWith (startupTracer tracers) + $ NetworkConfig localRoots + publicRoots + ntUseLedgerPeers + ntPeerSnapshotPath + case ncPeerSharing nc of + PeerSharingEnabled + | hasProtocolFile (ncProtocolFiles nc) -> + traceWith (startupTracer tracers) . NetworkConfigUpdateWarning . Text.pack $ + "Mainnet block producers may not meet the Praos performance guarantees " + <> "and host IP address will be leaked since peer sharing is enabled." + _otherwise -> pure () + localRootsVar <- newTVarIO localRoots + publicRootsVar <- newTVarIO publicRoots + useLedgerVar <- newTVarIO ntUseLedgerPeers + useBootstrapVar <- newTVarIO ntUseBootstrapPeers + ledgerPeerSnapshotPathVar <- newTVarIO ntPeerSnapshotPath + ledgerPeerSnapshotVar <- newTVarIO =<< updateLedgerPeerSnapshot + (startupTracer tracers) + nc + (readTVar ledgerPeerSnapshotPathVar) + (readTVar useLedgerVar) + (const . pure $ ()) + + let nodeArgs = RunNodeArgs + { rnGenesisConfig = ncGenesisConfig nc + , rnTraceConsensus = consensusTracers tracers + , rnTraceNTN = nodeToNodeTracers tracers + , rnTraceNTC = nodeToClientTracers tracers + , rnProtocolInfo = pInfo + , rnNodeKernelHook = \registry nodeKernel -> do + -- set the initial block forging + blockForging <- snd (Api.protocolInfo runP) (Consensus.kesAgentTracer $ consensusTracers tracers) + + unless (ncStartAsNonProducingNode nc) $ + setBlockForging nodeKernel blockForging + + maybeSpawnOnSlotSyncedShutdownHandler + (ncShutdownConfig nc) + (shutdownTracer tracers) + registry + (Node.getChainDB nodeKernel) + onKernel nodeKernel + , rnPeerSharing = ncPeerSharing nc + , rnGetUseBootstrapPeers = readTVar useBootstrapVar + } #ifdef UNIX - -- initial `SIGHUP` handler; it only warns that neither updating of - -- topology is supported nor updating block forging is yet possible. - -- It is still useful, without it the node would terminate when - -- receiving `SIGHUP`. - _ <- Signals.installHandler - Signals.sigHUP - (Signals.Catch $ do - traceWith (startupTracer tracers) NetworkConfigUpdateUnsupported - traceWith (startupTracer tracers) (BlockForgingUpdate NotEffective)) - Nothing + -- initial `SIGHUP` handler, which only rereads the topology file but + -- doesn't update block forging. The latter is only possible once + -- consensus initialised (e.g. reapplied all blocks). + _ <- Signals.installHandler + Signals.sigHUP + (Signals.Catch $ do + updateTopologyConfiguration + (startupTracer tracers) nc + localRootsVar publicRootsVar useLedgerVar useBootstrapVar + ledgerPeerSnapshotPathVar + void $ updateLedgerPeerSnapshot + (startupTracer tracers) + nc + (readTVar ledgerPeerSnapshotPathVar) + (readTVar useLedgerVar) + (writeTVar ledgerPeerSnapshotVar) + traceWith (startupTracer tracers) (BlockForgingUpdate NotEffective) + ) + Nothing #endif - void $ - Node.run - nodeArgs { - rnNodeKernelHook = \registry nodeKernel -> do - -- reinstall `SIGHUP` handler - installNonP2PSigHUPHandler (startupTracer tracers) blockType nc nodeKernel - rnNodeKernelHook nodeArgs registry nodeKernel + nForkPolicy <- getForkPolicy $ ncResponderCoreAffinityPolicy nc + cForkPolicy <- getForkPolicy $ ncResponderCoreAffinityPolicy nc + void $ + let diffusionNodeArguments :: Cardano.Diffusion.CardanoNodeArguments IO + diffusionNodeArguments = Cardano.Diffusion.CardanoNodeArguments { + Cardano.Diffusion.consensusMode = ncConsensusMode nc, + Cardano.Diffusion.genesisPeerTargets = + PeerSelectionTargets { + targetNumberOfRootPeers = ncSyncTargetOfRootPeers nc, + targetNumberOfKnownPeers = ncSyncTargetOfKnownPeers nc, + targetNumberOfEstablishedPeers = ncSyncTargetOfEstablishedPeers nc, + targetNumberOfActivePeers = ncSyncTargetOfActivePeers nc, + targetNumberOfKnownBigLedgerPeers = ncSyncTargetOfKnownBigLedgerPeers nc, + targetNumberOfEstablishedBigLedgerPeers = ncSyncTargetOfEstablishedBigLedgerPeers nc, + targetNumberOfActiveBigLedgerPeers = ncSyncTargetOfActiveBigLedgerPeers nc + }, + Cardano.Diffusion.minNumOfBigLedgerPeers = ncMinBigLedgerPeersForTrustedState nc, + Cardano.Diffusion.tracerChurnMode = churnModeTracer tracers } - StdRunNodeArgs - { srnBfcMaxConcurrencyBulkSync = unMaxConcurrencyBulkSync <$> ncMaxConcurrencyBulkSync nc - , srnBfcMaxConcurrencyDeadline = unMaxConcurrencyDeadline <$> ncMaxConcurrencyDeadline nc - , srnChainDbValidateOverride = ncValidateDB nc - , srnDatabasePath = dbPath - , srnDiffusionArguments = diffusionArguments - , srnDiffusionArgumentsExtra = \_ _ _ -> mkNonP2PArguments ipProducers dnsProducers - , srnDiffusionTracers = diffusionTracers tracers - , srnDiffusionTracersExtra = diffusionTracersExtra tracers - , srnEnableInDevelopmentVersions = ncExperimentalProtocolsEnabled nc - , srnTraceChainDB = chainDBTracer tracers - , srnChainSyncTimeout = customizeChainSyncTimeout - , srnMaybeMempoolCapacityOverride = ncMaybeMempoolCapacityOverride nc - , srnSigUSR1SignalHandler = mempty - , srnSnapshotPolicyArgs = snapshotPolicyArgs - , srnQueryBatchSize = queryBatchSize - , srnLdbFlavorArgs = selectorToArgs ldbBackend - } - where - customizeChainSyncTimeout :: Maybe (IO ChainSyncTimeout) + diffusionConfiguration :: Cardano.Diffusion.CardanoConfiguration IO + diffusionConfiguration = + mkDiffusionConfiguration + publicIPv4SocketOrAddr + publicIPv6SocketOrAddr + localSocketOrPath + publicPeerSelectionVar + nForkPolicy cForkPolicy + (readTVar localRootsVar) + (readTVar publicRootsVar) + (readTVar useLedgerVar) + (readTVar ledgerPeerSnapshotVar) + nc + in + Node.run + nodeArgs { + rnNodeKernelHook = \registry nodeKernel -> do + -- reinstall `SIGHUP` handler + installSigHUPHandler (startupTracer tracers) (Consensus.kesAgentTracer $ consensusTracers tracers) blockType nc nodeKernel + localRootsVar publicRootsVar useLedgerVar useBootstrapVar + ledgerPeerSnapshotPathVar ledgerPeerSnapshotVar + rnNodeKernelHook nodeArgs registry nodeKernel + } + StdRunNodeArgs + { srnBfcMaxConcurrencyBulkSync = unMaxConcurrencyBulkSync <$> ncMaxConcurrencyBulkSync nc + , srnBfcMaxConcurrencyDeadline = unMaxConcurrencyDeadline <$> ncMaxConcurrencyDeadline nc + , srnChainDbValidateOverride = ncValidateDB nc + , srnDatabasePath = dbPath + , srnDiffusionConfiguration = diffusionConfiguration + , srnDiffusionArguments = diffusionNodeArguments + , srnDiffusionTracers = diffusionTracers tracers + , srnEnableInDevelopmentVersions = ncExperimentalProtocolsEnabled nc + , srnTraceChainDB = chainDBTracer tracers + , srnMaybeMempoolCapacityOverride = ncMaybeMempoolCapacityOverride nc + , srnChainSyncIdleTimeout = customizeChainSyncTimeout + , srnSnapshotPolicyArgs = snapshotPolicyArgs + , srnQueryBatchSize = queryBatchSize + , srnLdbFlavorArgs = selectorToArgs ldbBackend + } + where + customizeChainSyncTimeout :: ChainSyncIdleTimeout customizeChainSyncTimeout = case ncChainSyncIdleTimeout nc of - NoTimeoutOverride -> Nothing - TimeoutOverride t -> Just $ do - cst <- Configuration.defaultChainSyncTimeout - pure $ case t of - 0 -> - cst { idleTimeout = Nothing } - _ -> - cst { idleTimeout = Just t } + NoTimeoutOverride -> Configuration.defaultChainSyncIdleTimeout + TimeoutOverride t | t == 0 -> ChainSyncNoIdleTimeout + | otherwise -> ChainSyncIdleTimeout t logStartupWarnings :: IO () logStartupWarnings = do - (case p2pMode of - EnabledP2PMode -> return () - DisabledP2PMode -> traceWith (startupTracer tracers) NonP2PWarning - ) :: IO () -- annoying, but unavoidable for GADT type inference - let developmentNtnVersions = case latestReleasedNodeVersion (Proxy @blk) of (Just ntnVersion, _) -> filter (> ntnVersion) @@ -751,26 +633,27 @@ handleSimpleNode blockType runP p2pMode tracers nc onKernel = do -- | The P2P SIGHUP handler can update block forging & reconfigure network topology. -- -installP2PSigHUPHandler :: Tracer IO (StartupTrace blk) - -> Api.BlockType blk - -> NodeConfiguration - -> NodeKernel IO RemoteAddress (ConnectionId LocalAddress) blk - -> StrictTVar IO [(HotValency, WarmValency, Map RelayAccessPoint (LocalRootConfig PeerTrustable))] - -> StrictTVar IO (Map RelayAccessPoint PeerAdvertise) - -> StrictTVar IO UseLedgerPeers - -> StrictTVar IO UseBootstrapPeers - -> StrictTVar IO (Maybe PeerSnapshotFile) - -> StrictTVar IO (Maybe LedgerPeerSnapshot) - -> IO () +installSigHUPHandler :: Tracer IO (StartupTrace blk) + -> Tracer IO KESAgentClientTrace + -> Api.BlockType blk + -> NodeConfiguration + -> NodeKernel IO RemoteAddress (ConnectionId LocalAddress) blk + -> StrictTVar IO [(HotValency, WarmValency, Map RelayAccessPoint (LocalRootConfig PeerTrustable))] + -> StrictTVar IO (Map RelayAccessPoint PeerAdvertise) + -> StrictTVar IO UseLedgerPeers + -> StrictTVar IO UseBootstrapPeers + -> StrictTVar IO (Maybe PeerSnapshotFile) + -> StrictTVar IO (Maybe LedgerPeerSnapshot) + -> IO () #ifndef UNIX -installP2PSigHUPHandler _ _ _ _ _ _ _ _ _ _ = return () +installSigHUPHandler _ _ _ _ _ _ _ _ _ _ _ = return () #else -installP2PSigHUPHandler startupTracer blockType nc nodeKernel localRootsVar publicRootsVar useLedgerVar +installSigHUPHandler startupTracer kesAgentTracer blockType nc nodeKernel localRootsVar publicRootsVar useLedgerVar useBootstrapPeersVar ledgerPeerSnapshotPathVar ledgerPeerSnapshotVar = void $ Signals.installHandler Signals.sigHUP (Signals.Catch $ do - updateBlockForging startupTracer blockType nodeKernel nc + updateBlockForging startupTracer kesAgentTracer blockType nodeKernel nc updateTopologyConfiguration startupTracer nc localRootsVar publicRootsVar useLedgerVar useBootstrapPeersVar ledgerPeerSnapshotPathVar void $ updateLedgerPeerSnapshot @@ -783,34 +666,15 @@ installP2PSigHUPHandler startupTracer blockType nc nodeKernel localRootsVar publ Nothing #endif --- | The NonP2P SIGHUP handler can only update block forging. --- -installNonP2PSigHUPHandler :: Tracer IO (StartupTrace blk) - -> Api.BlockType blk - -> NodeConfiguration - -> NodeKernel IO RemoteAddress (ConnectionId LocalAddress) blk - -> IO () -#ifndef UNIX -installNonP2PSigHUPHandler _ _ _ _ = return () -#else -installNonP2PSigHUPHandler startupTracer blockType nc nodeKernel = - void $ Signals.installHandler - Signals.sigHUP - (Signals.Catch $ do - updateBlockForging startupTracer blockType nodeKernel nc - traceWith startupTracer NetworkConfigUpdateUnsupported - ) - Nothing -#endif - #ifdef UNIX updateBlockForging :: Tracer IO (StartupTrace blk) + -> Tracer IO KESAgentClientTrace -> Api.BlockType blk -> NodeKernel IO RemoteAddress (ConnectionId LocalAddress) blk -> NodeConfiguration -> IO () -updateBlockForging startupTracer blockType nodeKernel nc = do +updateBlockForging startupTracer kesAgentTracer blockType nodeKernel nc = do eitherSomeProtocol <- runExceptT $ mkConsensusProtocol (ncProtocolConfig nc) (Just (ncProtocolFiles nc)) @@ -826,7 +690,7 @@ updateBlockForging startupTracer blockType nodeKernel nc = do case Api.reflBlockType blockType blockType' of Just Refl -> do -- TODO: check if runP' has changed - blockForging <- snd (Api.protocolInfo runP') + blockForging <- snd (Api.protocolInfo runP') kesAgentTracer traceWith startupTracer (BlockForgingUpdate (if null blockForging then DisabledBlockForging @@ -955,10 +819,10 @@ checkVRFFilePermissions :: Tracer IO String -> File content direction -> ExceptT checkVRFFilePermissions tracer (File vrfPrivKey) = do fs <- liftIO $ getFileStatus vrfPrivKey let fm = fileMode fs - -- Check the the VRF private key file does not give read/write/exec permissions to others. + -- Check the VRF private key file does not give read/write/exec permissions to others. when (hasOtherPermissions fm) $ left $ OtherPermissionsExist vrfPrivKey - -- Check the the VRF private key file does not give read/write/exec permissions to any group. + -- Check the VRF private key file does not give read/write/exec permissions to any group. when (hasGroupPermissions fm) $ liftIO $ traceWith tracer $ ("WARNING: " <>) . displayError $ GroupPermissionsExist vrfPrivKey where @@ -986,178 +850,77 @@ checkVRFFilePermissions _ (File vrfPrivKey) = do #endif -mkP2PArguments - :: Ord ntnAddr - => ForkPolicy ntnAddr - -> ForkPolicy ntcAddr - -> NodeConfiguration +mkDiffusionConfiguration + :: Maybe SocketOrSocketInfo -- ^ ipv4 + -> Maybe SocketOrSocketInfo -- ^ ipv6 + -> Maybe LocalSocketOrSocketInfo -- ^ unix socket or a named pipe (Windows) + -> StrictTVar IO (PublicPeerSelectionState RemoteAddress) + -> ForkPolicy RemoteAddress + -> ForkPolicy LocalAddress -> STM IO [(HotValency, WarmValency, Map RelayAccessPoint (LocalRootConfig PeerTrustable))] -- ^ non-overlapping local root peers groups; the 'Int' denotes the -- valency of its group. -> STM IO (Map RelayAccessPoint PeerAdvertise) -> STM IO UseLedgerPeers - -> STM IO UseBootstrapPeers -> STM IO (Maybe LedgerPeerSnapshot) - -> StrictTVar IO ChurnMode - -> Diffusion.P2PDecision 'Diffusion.P2P (Tracer IO TracePublicRootPeers) () - -> Diffusion.P2PDecision 'Diffusion.P2P (STM IO FetchMode) () - -> Diffusion.P2PDecision 'Diffusion.P2P (Cardano.LedgerPeersConsensusInterface IO) () - -> Diffusion.ArgumentsExtra 'Diffusion.P2P - (Cardano.ExtraArguments IO) - Cardano.PeerSelection.ExtraState - extraDebugState - PeerTrustable - (Cardano.PublicRoots.ExtraPeers ntnAddr) - (Cardano.LedgerPeersConsensusInterface IO) - (Cardano.Churn.ExtraArguments IO) - (Cardano.ExtraPeerSelectionSetsWithSizes ntnAddr) - BootstrapPeersCriticalTimeoutError - ntnAddr - ntcAddr - Resolver - IOException - IO -mkP2PArguments nForkPolicy cForkPolicy NodeConfiguration { - ncDeadlineTargetOfRootPeers, - ncDeadlineTargetOfKnownPeers, - ncDeadlineTargetOfEstablishedPeers, - ncDeadlineTargetOfActivePeers, - ncDeadlineTargetOfKnownBigLedgerPeers, - ncDeadlineTargetOfEstablishedBigLedgerPeers, - ncDeadlineTargetOfActiveBigLedgerPeers, - ncSyncTargetOfRootPeers, - ncSyncTargetOfKnownPeers, - ncSyncTargetOfEstablishedPeers, - ncSyncTargetOfActivePeers, - ncSyncTargetOfKnownBigLedgerPeers, - ncSyncTargetOfEstablishedBigLedgerPeers, - ncSyncTargetOfActiveBigLedgerPeers, - ncMinBigLedgerPeersForTrustedState, - ncProtocolIdleTimeout, - ncTimeWaitTimeout, - ncPeerSharing, - ncConsensusMode - } - daReadLocalRootPeers - daReadPublicRootPeers - daReadUseLedgerPeers - daReadUseBootstrapPeers - daReadLedgerPeerSnapshot - churnModeVar - (Diffusion.P2PDecision tracer) - (Diffusion.P2PDecision getFetchMode) - (Diffusion.P2PDecision ledgerPeersConsensusInterface) = - Diffusion.P2PArguments P2P.ArgumentsExtra - { P2P.daReadLocalRootPeers - , P2P.daReadPublicRootPeers - , P2P.daReadUseLedgerPeers - , P2P.daReadLedgerPeerSnapshot - , P2P.daPeerSelectionTargets = peerSelectionTargets - , P2P.daProtocolIdleTimeout = ncProtocolIdleTimeout - , P2P.daTimeWaitTimeout = ncTimeWaitTimeout - , P2P.daDeadlineChurnInterval = Configuration.defaultDeadlineChurnInterval - , P2P.daBulkChurnInterval = Configuration.defaultBulkChurnInterval - , P2P.daEmptyExtraState = CPST.empty ncConsensusMode ncMinBigLedgerPeersForTrustedState - , P2P.daEmptyExtraCounters = CPSV.empty - , P2P.daExtraPeersAPI = Cardano.PublicRoots.cardanoPublicRootPeersAPI - , P2P.daPeerChurnGovernor = peerChurnGovernor - , P2P.daExtraChurnArgs = cardanoPeerChurnArgs - , P2P.daOwnPeerSharing = ncPeerSharing - , P2P.daPeerSelectionStateToExtraCounters = CPSV.cardanoPeerSelectionStatetoCounters - , P2P.daPeerSelectionGovernorArgs = Cardano.cardanoPeerSelectionGovernorArgs extraActions - , P2P.daRequestPublicRootPeers = Just $ Cardano.requestPublicRootPeers - tracer - daReadUseBootstrapPeers - (Cardano.getLedgerStateJudgement - ledgerPeersConsensusInterface) - daReadPublicRootPeers - , P2P.daToExtraPeers = - \publicRoots -> Cardano.PublicRoots.ExtraPeers { - Cardano.PublicRoots.getPublicConfigPeers = publicRoots, - Cardano.PublicRoots.getBootstrapPeers = Set.empty - } - , P2P.daMuxForkPolicy = nForkPolicy - , P2P.daLocalMuxForkPolicy = cForkPolicy - } + -> NodeConfiguration + -> Cardano.Diffusion.CardanoConfiguration IO +mkDiffusionConfiguration + publicIPv4SocketOrAddr + publicIPv6SocketOrAddr + localSocketOrPath + dcPublicPeerSelectionVar + dcMuxForkPolicy dcLocalMuxForkPolicy + dcReadLocalRootPeers + dcReadPublicRootPeers + dcReadUseLedgerPeers + dcReadLedgerPeerSnapshot + nc + = + Diffusion.Configuration + { Diffusion.dcIPv4Address = + case publicIPv4SocketOrAddr of + Just (ActualSocket socket) -> Just (Left socket) + Just (SocketInfo addr) -> Just (Right addr) + Nothing -> Nothing + , Diffusion.dcIPv6Address = + case publicIPv6SocketOrAddr of + Just (ActualSocket socket) -> Just (Left socket) + Just (SocketInfo addr) -> Just (Right addr) + Nothing -> Nothing + , Diffusion.dcLocalAddress = + case localSocketOrPath of + Just (ActualSocket localSocket) -> Just (Left localSocket) + Just (SocketInfo localAddr) -> Just (Right localAddr) + Nothing -> Nothing + , Diffusion.dcAcceptedConnectionsLimit = ncAcceptedConnectionsLimit nc + , Diffusion.dcMode = ncDiffusionMode nc + , Diffusion.dcPublicPeerSelectionVar + , Diffusion.dcPeerSelectionTargets + , Diffusion.dcReadLocalRootPeers + , Diffusion.dcReadPublicRootPeers + , Diffusion.dcReadLedgerPeerSnapshot + , Diffusion.dcReadUseLedgerPeers + , Diffusion.dcPeerSharing = ncPeerSharing nc + , Diffusion.dcProtocolIdleTimeout = ncProtocolIdleTimeout nc + , Diffusion.dcTimeWaitTimeout = ncTimeWaitTimeout nc + , Diffusion.dcDeadlineChurnInterval = Configuration.defaultDeadlineChurnInterval + , Diffusion.dcBulkChurnInterval = Configuration.defaultBulkChurnInterval + , Diffusion.dcMuxForkPolicy + , Diffusion.dcLocalMuxForkPolicy + , Diffusion.dcEgressPollInterval = ncEgressPollInterval nc + } where - peerSelectionTargets = PeerSelectionTargets { - targetNumberOfRootPeers = ncDeadlineTargetOfRootPeers, - targetNumberOfKnownPeers = ncDeadlineTargetOfKnownPeers, - targetNumberOfEstablishedPeers = ncDeadlineTargetOfEstablishedPeers, - targetNumberOfActivePeers = ncDeadlineTargetOfActivePeers, - targetNumberOfKnownBigLedgerPeers = ncDeadlineTargetOfKnownBigLedgerPeers, - targetNumberOfEstablishedBigLedgerPeers = ncDeadlineTargetOfEstablishedBigLedgerPeers, - targetNumberOfActiveBigLedgerPeers = ncDeadlineTargetOfActiveBigLedgerPeers + dcPeerSelectionTargets = PeerSelectionTargets { + targetNumberOfRootPeers = ncDeadlineTargetOfRootPeers nc, + targetNumberOfKnownPeers = ncDeadlineTargetOfKnownPeers nc, + targetNumberOfEstablishedPeers = ncDeadlineTargetOfEstablishedPeers nc, + targetNumberOfActivePeers = ncDeadlineTargetOfActivePeers nc, + targetNumberOfKnownBigLedgerPeers = ncDeadlineTargetOfKnownBigLedgerPeers nc, + targetNumberOfEstablishedBigLedgerPeers = ncDeadlineTargetOfEstablishedBigLedgerPeers nc, + targetNumberOfActiveBigLedgerPeers = ncDeadlineTargetOfActiveBigLedgerPeers nc } - genesisSelectionTargets = PeerSelectionTargets { - targetNumberOfRootPeers = ncSyncTargetOfRootPeers, - targetNumberOfKnownPeers = ncSyncTargetOfKnownPeers, - targetNumberOfEstablishedPeers = ncSyncTargetOfEstablishedPeers, - targetNumberOfActivePeers = ncSyncTargetOfActivePeers, - targetNumberOfKnownBigLedgerPeers = ncSyncTargetOfKnownBigLedgerPeers, - targetNumberOfEstablishedBigLedgerPeers = ncSyncTargetOfEstablishedBigLedgerPeers, - targetNumberOfActiveBigLedgerPeers = ncSyncTargetOfActiveBigLedgerPeers } - - cardanoPeerChurnArgs = - Cardano.Churn.ExtraArguments { - Cardano.Churn.modeVar = churnModeVar - , Cardano.Churn.readFetchMode = getFetchMode - , Cardano.Churn.genesisPeerTargets = genesisSelectionTargets - , Cardano.Churn.readUseBootstrap = daReadUseBootstrapPeers - , Cardano.Churn.consensusMode = ncConsensusMode - } - - extraActions :: Cardano.PeerSelection.ExtraPeerSelectionActions IO - extraActions = Cardano.PeerSelection.ExtraPeerSelectionActions { - Cardano.PeerSelection.genesisPeerTargets = genesisSelectionTargets, - Cardano.PeerSelection.readUseBootstrapPeers = daReadUseBootstrapPeers - } - -mkNonP2PArguments - :: IPSubscriptionTarget - -> [DnsSubscriptionTarget] - -> Diffusion.ArgumentsExtra - 'Diffusion.NonP2P - extraArgs - extraState - extraDebugState - extraAPI - extraPeers - extraFlags - extraChurnArgs - extraCounters - BootstrapPeersCriticalTimeoutError - ntnAddr - ntcAddr - Resolver - IOException - IO -mkNonP2PArguments daIpProducers daDnsProducers = - Diffusion.NonP2PArguments NonP2P.ArgumentsExtra - { NonP2P.daIpProducers - , NonP2P.daDnsProducers - } - --- | TODO: Only needed for enabling P2P switch --- -producerAddressesNonP2P - :: TopologyNonP2P.NetworkTopology TopologyNonP2P.RemoteAddress - -> ( [NodeIPAddress] - , [(NodeDnsAddress, Int)]) -producerAddressesNonP2P nt = - case nt of - TopologyNonP2P.RealNodeTopology producers' -> - partitionEithers - . mapMaybe TopologyNonP2P.remoteAddressToNodeAddress - $ producers' - TopologyNonP2P.MockNodeTopology nodeSetup -> - partitionEithers - . concatMap - ( mapMaybe TopologyNonP2P.remoteAddressToNodeAddress - . TopologyNonP2P.producers - ) - $ nodeSetup producerAddresses :: NetworkTopology RelayAccessPoint diff --git a/cardano-node/src/Cardano/Node/Startup.hs b/cardano-node/src/Cardano/Node/Startup.hs index d656a03747a..ad291082a41 100644 --- a/cardano-node/src/Cardano/Node/Startup.hs +++ b/cardano-node/src/Cardano/Node/Startup.hs @@ -22,7 +22,7 @@ import Cardano.Ledger.Shelley.Genesis (sgSystemStart) import Cardano.Logging import Cardano.Logging.Types.NodeInfo (NodeInfo (..)) import Cardano.Logging.Types.NodeStartupInfo (NodeStartupInfo (..)) -import Cardano.Network.PeerSelection.PeerTrustable (PeerTrustable (..)) +import Cardano.Network.Diffusion (CardanoLocalRootConfig) import Cardano.Node.Configuration.POM (NodeConfiguration (..), ncProtocol) import Cardano.Node.Configuration.Socket import Cardano.Node.Protocol (ProtocolInstantiationError) @@ -44,9 +44,7 @@ import Ouroboros.Network.NodeToClient (NodeToClientVersion) import Ouroboros.Network.NodeToNode (DiffusionMode (..), NodeToNodeVersion, PeerAdvertise) import Ouroboros.Network.PeerSelection.LedgerPeers.Type (UseLedgerPeers) import Ouroboros.Network.PeerSelection.RelayAccessPoint (RelayAccessPoint) -import Ouroboros.Network.PeerSelection.State.LocalRootPeers (HotValency, LocalRootConfig, WarmValency) -import Ouroboros.Network.Subscription.Dns (DnsSubscriptionTarget (..)) -import Ouroboros.Network.Subscription.Ip (IPSubscriptionTarget (..)) +import Ouroboros.Network.PeerSelection.State.LocalRootPeers (HotValency, WarmValency) import Prelude @@ -119,7 +117,7 @@ data StartupTrace blk = -- | Log peer-to-peer network configuration, either on startup or when its -- updated. -- - | NetworkConfig [(HotValency, WarmValency, Map RelayAccessPoint (LocalRootConfig PeerTrustable))] + | NetworkConfig [(HotValency, WarmValency, Map RelayAccessPoint CardanoLocalRootConfig)] (Map RelayAccessPoint PeerAdvertise) UseLedgerPeers (Maybe PeerSnapshotFile) @@ -181,8 +179,6 @@ data BasicInfoByron = BasicInfoByron { data BasicInfoNetwork = BasicInfoNetwork { niAddresses :: [SocketOrSocketInfo] , niDiffusionMode :: DiffusionMode - , niDnsProducers :: [DnsSubscriptionTarget] - , niIpProducers :: IPSubscriptionTarget } -- | Prepare basic info about the node. This info will be sent to 'cardano-tracer'. @@ -214,7 +210,7 @@ prepareNodeInfo nc (SomeConsensusProtocol whichP pForInfo) tc nodeStartTime = do let DegenLedgerConfig cfgShelley = configLedger cfg in getSystemStartShelley cfgShelley Api.CardanoBlockType -> - let CardanoLedgerConfig _ cfgShelley cfgAllegra cfgMary cfgAlonzo cfgBabbage cfgConway = configLedger cfg + let CardanoLedgerConfig _ cfgShelley cfgAllegra cfgMary cfgAlonzo cfgBabbage cfgConway cfgDijkstra = configLedger cfg in minimum [ getSystemStartByron , getSystemStartShelley cfgShelley , getSystemStartShelley cfgAllegra @@ -222,6 +218,7 @@ prepareNodeInfo nc (SomeConsensusProtocol whichP pForInfo) tc nodeStartTime = do , getSystemStartShelley cfgAlonzo , getSystemStartShelley cfgBabbage , getSystemStartShelley cfgConway + , getSystemStartShelley cfgDijkstra ] getSystemStartByron = WCT.getSystemStart . getSystemStart . configBlock $ cfg diff --git a/cardano-node/src/Cardano/Node/Tracing.hs b/cardano-node/src/Cardano/Node/Tracing.hs index ef25940209b..a79a3620cdf 100644 --- a/cardano-node/src/Cardano/Node/Tracing.hs +++ b/cardano-node/src/Cardano/Node/Tracing.hs @@ -23,17 +23,14 @@ import qualified Ouroboros.Consensus.Network.NodeToNode as NodeToNode import qualified Ouroboros.Consensus.Node.Tracers as Consensus import qualified Ouroboros.Consensus.Storage.ChainDB as ChainDB import Ouroboros.Network.ConnectionId -import qualified Ouroboros.Network.Diffusion as Diffusion -import qualified Ouroboros.Network.Diffusion.Common as Diffusion -import Ouroboros.Network.NodeToClient (LocalAddress, NodeToClientVersion) -import Ouroboros.Network.NodeToNode (NodeToNodeVersion, RemoteAddress) +import qualified Cardano.Network.Diffusion as Cardano.Diffusion import Prelude (IO) import Codec.CBOR.Read (DeserialiseFailure) import "contra-tracer" Control.Tracer (Tracer (..)) -data Tracers peer localPeer blk p2p extraState extraDebugState extraFlags extraPeers extraCounters m = Tracers +data Tracers peer localPeer blk m = Tracers { -- | Trace the ChainDB chainDBTracer :: !(Tracer IO (ChainDB.TraceEvent blk)) -- | Consensus-specific tracers. @@ -44,11 +41,8 @@ data Tracers peer localPeer blk p2p extraState extraDebugState extraFlags extraP -- | Tracers for the node-to-client protocols , nodeToClientTracers :: !(NodeToClient.Tracers IO (ConnectionId localPeer) blk DeserialiseFailure) -- | Diffusion tracers - , diffusionTracers :: !(Diffusion.Tracers RemoteAddress NodeToNodeVersion - LocalAddress NodeToClientVersion - IO) - , diffusionTracersExtra :: !(Diffusion.ExtraTracers p2p extraState extraDebugState extraFlags extraPeers extraCounters m) - + , diffusionTracers :: !(Cardano.Diffusion.CardanoTracers m) + , churnModeTracer :: !(Tracer IO Cardano.Diffusion.TraceChurnMode) , startupTracer :: !(Tracer IO (StartupTrace blk)) , shutdownTracer :: !(Tracer IO ShutdownTrace) , nodeInfoTracer :: !(Tracer IO NodeInfo) diff --git a/cardano-node/src/Cardano/Node/Tracing/API.hs b/cardano-node/src/Cardano/Node/Tracing/API.hs index 30c983ab942..d18ee73e9f7 100644 --- a/cardano-node/src/Cardano/Node/Tracing/API.hs +++ b/cardano-node/src/Cardano/Node/Tracing/API.hs @@ -10,8 +10,6 @@ module Cardano.Node.Tracing.API import Cardano.Logging hiding (traceWith) import Cardano.Logging.Prometheus.TCPServer (runPrometheusSimple) -import qualified Cardano.Logging.Types as Net -import Cardano.Network.PeerSelection.PeerTrustable (PeerTrustable) import Cardano.Node.Configuration.NodeAddress (PortNumber) import Cardano.Node.Configuration.POM (NodeConfiguration (..)) import Cardano.Node.Protocol.Types @@ -26,12 +24,8 @@ import Cardano.Node.Tracing.Tracers.LedgerMetrics import Cardano.Node.Tracing.Tracers.Peer (startPeerTracer) import Cardano.Node.Tracing.Tracers.Resources (startResourceTracer) import Cardano.Node.Types -import qualified Ouroboros.Cardano.Network.PeerSelection.Governor.PeerSelectionState as Cardano -import qualified Ouroboros.Cardano.Network.PeerSelection.Governor.Types as Cardano -import qualified Ouroboros.Cardano.Network.PublicRootPeers as Cardano.PublicRootPeers import Ouroboros.Consensus.Ledger.Inspect (LedgerEvent) import Ouroboros.Consensus.MiniProtocol.ChainSync.Client (TraceChainSyncClientEvent) -import Ouroboros.Consensus.Node (NetworkP2PMode) import Ouroboros.Consensus.Node.GSM import Ouroboros.Network.Block import Ouroboros.Network.ConnectionId (ConnectionId) @@ -57,7 +51,7 @@ import Trace.Forward.Utils.TraceObject (writeToSink) initTraceDispatcher :: - forall blk p2p. + forall blk. ( TraceConstraints blk , LogFormatting (LedgerEvent blk) , LogFormatting @@ -68,10 +62,9 @@ initTraceDispatcher :: -> SomeConsensusProtocol -> NetworkMagic -> NodeKernelData blk - -> NetworkP2PMode p2p -> Bool - -> IO (Tracers RemoteAddress LocalAddress blk p2p Cardano.ExtraState Cardano.DebugPeerSelectionState PeerTrustable (Cardano.PublicRootPeers.ExtraPeers RemoteAddress) (Cardano.ExtraPeerSelectionSetsWithSizes RemoteAddress) IO) -initTraceDispatcher nc p networkMagic nodeKernel p2pMode noBlockForging = do + -> IO (Tracers RemoteAddress LocalAddress blk IO) +initTraceDispatcher nc p networkMagic nodeKernel noBlockForging = do trConfig <- readConfigurationWithDefault (unConfigPath $ ncConfigFile nc) defaultCardanoConfig @@ -116,7 +109,7 @@ initTraceDispatcher nc p networkMagic nodeKernel p2pMode noBlockForging = do :: TraceConfig -> IO ( IO () , IO (Maybe String) - , Tracers RemoteAddress LocalAddress blk p2p Cardano.ExtraState Cardano.DebugPeerSelectionState PeerTrustable (Cardano.PublicRootPeers.ExtraPeers RemoteAddress) (Cardano.ExtraPeerSelectionSetsWithSizes RemoteAddress) IO + , Tracers RemoteAddress LocalAddress blk IO ) mkTracers trConfig = do ekgStore <- EKG.newStore @@ -134,7 +127,7 @@ initTraceDispatcher nc p networkMagic nodeKernel p2pMode noBlockForging = do then do -- TODO: check if this is the correct way to use withIOManager (forwardSink, dpStore, kickoffForwarder) <- withIOManager $ \iomgr -> do - let tracerSocketMode :: Maybe (Net.HowToConnect, ForwarderMode) + let tracerSocketMode :: Maybe (HowToConnect, ForwarderMode) tracerSocketMode = ncTraceForwardSocket nc forwardingConf :: TraceOptionForwarder @@ -154,7 +147,6 @@ initTraceDispatcher nc p networkMagic nodeKernel p2pMode noBlockForging = do (Just ekgTrace) dpTracer trConfig - p2pMode p where diff --git a/cardano-node/src/Cardano/Node/Tracing/Consistency.hs b/cardano-node/src/Cardano/Node/Tracing/Consistency.hs index 42732499ae1..463d774f702 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Consistency.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Consistency.hs @@ -31,14 +31,13 @@ import Cardano.Node.Tracing.Tracers.LedgerMetrics (LedgerMetrics) import Cardano.Node.Tracing.Tracers.NodeToClient () import Cardano.Node.Tracing.Tracers.NodeToNode () import Cardano.Node.Tracing.Tracers.NodeVersion (NodeVersionTrace) -import Cardano.Node.Tracing.Tracers.NonP2P () import Cardano.Node.Tracing.Tracers.P2P () import Cardano.Node.Tracing.Tracers.Peer import Cardano.Node.Tracing.Tracers.Shutdown () import Cardano.Node.Tracing.Tracers.Startup () -import qualified Ouroboros.Cardano.Network.PeerSelection.Governor.PeerSelectionState as Cardano -import qualified Ouroboros.Cardano.Network.PeerSelection.Governor.Types as Cardano -import qualified Ouroboros.Cardano.Network.PublicRootPeers as Cardano.PublicRootPeers +import qualified Cardano.Network.PeerSelection.Governor.PeerSelectionState as Cardano +import qualified Cardano.Network.PeerSelection.Governor.Types as Cardano +import qualified Cardano.Network.PeerSelection.ExtraRootPeers as Cardano.PublicRootPeers import Ouroboros.Consensus.Block.SupportsSanityCheck (SanityCheckIssue) import Ouroboros.Consensus.BlockchainTime.WallClock.Types (RelativeTime) import Ouroboros.Consensus.BlockchainTime.WallClock.Util (TraceBlockchainTimeEvent (..)) @@ -65,12 +64,12 @@ import Ouroboros.Network.ConnectionHandler (ConnectionHandlerTrace (.. import Ouroboros.Network.ConnectionId (ConnectionId) import qualified Ouroboros.Network.ConnectionManager.Core as ConnectionManager import qualified Ouroboros.Network.ConnectionManager.Types as ConnectionManager -import qualified Ouroboros.Network.Diffusion.Common as Common +import Ouroboros.Network.Diffusion (DiffusionTracer) import Ouroboros.Network.Driver.Simple (TraceSendRecv) import qualified Ouroboros.Network.InboundGovernor as InboundGovernor import Ouroboros.Network.KeepAlive (TraceKeepAliveClient (..)) import qualified Ouroboros.Network.NodeToClient as NtC -import Ouroboros.Network.NodeToNode (ErrorPolicyTrace (..), RemoteAddress, WithAddr (..)) +import Ouroboros.Network.NodeToNode (RemoteAddress) import qualified Ouroboros.Network.NodeToNode as NtN import Ouroboros.Network.PeerSelection.Churn (ChurnCounters) import Ouroboros.Network.PeerSelection.Governor (DebugPeerSelection (..), @@ -79,6 +78,7 @@ import Ouroboros.Network.PeerSelection.LedgerPeers (TraceLedgerPeers) import Ouroboros.Network.PeerSelection.PeerStateActions (PeerSelectionActionsTrace (..)) import Ouroboros.Network.PeerSelection.RootPeersDNS.LocalRootPeers (TraceLocalRootPeers (..)) +import Ouroboros.Network.PeerSelection.RootPeersDNS.DNSActions (DNSTrace (..)) import Ouroboros.Network.PeerSelection.RootPeersDNS.PublicRootPeers (TracePublicRootPeers (..)) import Ouroboros.Network.Protocol.BlockFetch.Type (BlockFetch) @@ -89,14 +89,11 @@ import Ouroboros.Network.Protocol.LocalStateQuery.Type (LocalStateQuer import qualified Ouroboros.Network.Protocol.LocalTxMonitor.Type as LTM import qualified Ouroboros.Network.Protocol.LocalTxSubmission.Type as LTS import Ouroboros.Network.Protocol.TxSubmission2.Type (TxSubmission2) -import qualified Ouroboros.Network.Server2 as Server (Trace (..)) +import qualified Ouroboros.Network.Server as Server (Trace (..)) import Ouroboros.Network.Snocket (LocalAddress (..)) -import Ouroboros.Network.Subscription.Dns (DnsTrace (..), WithDomainName (..)) -import Ouroboros.Network.Subscription.Worker (SubscriptionTrace (..)) import Ouroboros.Network.TxSubmission.Inbound (TraceTxSubmissionInbound) import Ouroboros.Network.TxSubmission.Outbound (TraceTxSubmissionOutbound) -import Control.Exception (SomeException) import qualified Data.Text as T import qualified Network.Mux as Mux import qualified Network.Socket as Socket @@ -268,9 +265,21 @@ getAllNamespaces = dtMuxNS = map (nsGetTuple . nsReplacePrefix ["Net", "Mux", "Remote"]) (allNamespaces :: [Namespace (Mux.WithBearer (ConnectionId RemoteAddress) Mux.Trace)]) + dtMuxBearerNS = map (nsGetTuple . nsReplacePrefix ["Net", "Mux", "Remote", "Bearer"]) + (allNamespaces :: [Namespace + (Mux.WithBearer (ConnectionId RemoteAddress) Mux.BearerTrace)]) + dtMuxChannelNS = map (nsGetTuple . nsReplacePrefix ["Net", "Mux", "Remote", "Channel"]) + (allNamespaces :: [Namespace + (Mux.WithBearer (ConnectionId RemoteAddress) Mux.ChannelTrace)]) dtLocalMuxNS = map (nsGetTuple . nsReplacePrefix ["Net", "Mux", "Local"]) (allNamespaces :: [Namespace (Mux.WithBearer (ConnectionId LocalAddress) Mux.Trace)]) + dtLocalMuxBearerNS = map (nsGetTuple . nsReplacePrefix ["Net", "Mux", "Local", "Bearer"]) + (allNamespaces :: [Namespace + (Mux.WithBearer (ConnectionId RemoteAddress) Mux.BearerTrace)]) + dtLocalMuxChannelNS = map (nsGetTuple . nsReplacePrefix ["Net", "Mux", "Local", "Channel"]) + (allNamespaces :: [Namespace + (Mux.WithBearer (ConnectionId RemoteAddress) Mux.ChannelTrace)]) dtHandshakeNS = map (nsGetTuple . nsReplacePrefix ["Net", "Handshake", "Remote"]) (allNamespaces :: [Namespace @@ -283,7 +292,7 @@ getAllNamespaces = dtDiffusionInitializationNS = map (nsGetTuple . nsReplacePrefix ["Startup", "DiffusionInit"]) (allNamespaces :: [Namespace - (Common.DiffusionTracer Socket.SockAddr + (DiffusionTracer Socket.SockAddr LocalAddress)]) dtLedgerPeersNS = map (nsGetTuple . nsReplacePrefix ["Net", "Peers", "Ledger"]) @@ -294,7 +303,7 @@ getAllNamespaces = localRootPeersNS = map (nsGetTuple . nsReplacePrefix ["Net", "Peers", "LocalRoot"]) (allNamespaces :: [Namespace - (TraceLocalRootPeers PeerTrustable RemoteAddress SomeException)]) + (TraceLocalRootPeers PeerTrustable RemoteAddress)]) publicRootPeersNS = map (nsGetTuple . nsReplacePrefix ["Net", "Peers", "PublicRoot"]) (allNamespaces :: [Namespace TracePublicRootPeers]) @@ -363,28 +372,9 @@ getAllNamespaces = (InboundGovernor.Trace LocalAddress)]) --- -- DiffusionTracersExtra nonP2P - - dtIpSubscriptionNS = map (nsGetTuple . nsReplacePrefix - ["Net", "Subscription", "IP"]) - (allNamespaces :: [Namespace - (SubscriptionTrace Socket.SockAddr)]) - dtDnsSubscriptionNS = map (nsGetTuple . nsReplacePrefix - ["Net", "Subscription", "DNS"]) - (allNamespaces :: [Namespace - (WithDomainName (SubscriptionTrace Socket.SockAddr))]) dtDnsResolverNS = map (nsGetTuple . nsReplacePrefix ["Net", "DNSResolver"]) - (allNamespaces :: [Namespace - (WithDomainName DnsTrace)]) - dtErrorPolicyNS = map (nsGetTuple . nsReplacePrefix - ["Net", "ErrorPolicy", "Remote"]) - (allNamespaces :: [Namespace - (WithAddr Socket.SockAddr ErrorPolicyTrace)]) - dtLocalErrorPolicyNS = map (nsGetTuple . nsReplacePrefix - ["Net", "ErrorPolicy", "Local"]) - (allNamespaces :: [Namespace - (WithAddr LocalAddress ErrorPolicyTrace)]) + (allNamespaces :: [Namespace DNSTrace]) dtAcceptPolicyNS = map (nsGetTuple . nsReplacePrefix ["Net", "AcceptPolicy"]) (allNamespaces :: [Namespace @@ -434,7 +424,11 @@ getAllNamespaces = <> txSubmission2NS -- Diffusion <> dtMuxNS + <> dtMuxBearerNS + <> dtMuxChannelNS <> dtLocalMuxNS + <> dtLocalMuxBearerNS + <> dtLocalMuxChannelNS <> dtHandshakeNS <> dtLocalHandshakeNS <> dtDiffusionInitializationNS @@ -457,12 +451,6 @@ getAllNamespaces = <> localConnectionManagerNS <> localServerNS <> localInboundGovernorNS - --- DiffusionTracersExtra nonP2P - <> dtIpSubscriptionNS - <> dtDnsSubscriptionNS <> dtDnsResolverNS - <> dtErrorPolicyNS - <> dtLocalErrorPolicyNS <> dtAcceptPolicyNS in allNamespaces' diff --git a/cardano-node/src/Cardano/Node/Tracing/Documentation.hs b/cardano-node/src/Cardano/Node/Tracing/Documentation.hs index 6263ad40ba6..2002b7c00f2 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Documentation.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Documentation.hs @@ -44,14 +44,14 @@ import Cardano.Node.Tracing.Tracers.LedgerMetrics (LedgerMetrics) import Cardano.Node.Tracing.Tracers.NodeToClient () import Cardano.Node.Tracing.Tracers.NodeToNode () import Cardano.Node.Tracing.Tracers.NodeVersion (NodeVersionTrace) -import Cardano.Node.Tracing.Tracers.NonP2P () import Cardano.Node.Tracing.Tracers.P2P () import Cardano.Node.Tracing.Tracers.Peer import Cardano.Node.Tracing.Tracers.Shutdown () import Cardano.Node.Tracing.Tracers.Startup () -import qualified Ouroboros.Cardano.Network.PeerSelection.Governor.PeerSelectionState as Cardano -import qualified Ouroboros.Cardano.Network.PeerSelection.Governor.Types as Cardano -import qualified Ouroboros.Cardano.Network.PublicRootPeers as Cardano.PublicRootPeers +import qualified Cardano.Network.PeerSelection.Governor.PeerSelectionState as Cardano +import qualified Cardano.Network.PeerSelection.Governor.Types as Cardano +import qualified Cardano.Network.PeerSelection.ExtraRootPeers as Cardano.PublicRootPeers +import Cardano.Tracing.OrphanInstances.Network () import Ouroboros.Consensus.Block.SupportsSanityCheck (SanityCheckIssue) import Ouroboros.Consensus.BlockchainTime.WallClock.Types (RelativeTime) import Ouroboros.Consensus.BlockchainTime.WallClock.Util (TraceBlockchainTimeEvent (..)) @@ -78,12 +78,11 @@ import Ouroboros.Network.ConnectionHandler (ConnectionHandlerTrace (.. import Ouroboros.Network.ConnectionId (ConnectionId) import qualified Ouroboros.Network.ConnectionManager.Core as ConnectionManager import qualified Ouroboros.Network.ConnectionManager.Types as ConnectionManager -import qualified Ouroboros.Network.Diffusion.Common as Common +import Ouroboros.Network.Diffusion.Types (DiffusionTracer) import Ouroboros.Network.Driver.Simple (TraceSendRecv) import qualified Ouroboros.Network.InboundGovernor as InboundGovernor import Ouroboros.Network.KeepAlive (TraceKeepAliveClient (..)) -import qualified Ouroboros.Network.NodeToClient as NtC -import Ouroboros.Network.NodeToNode (ErrorPolicyTrace (..), RemoteAddress, WithAddr (..)) +import Ouroboros.Network.NodeToNode (RemoteAddress) import qualified Ouroboros.Network.NodeToNode as NtN import Ouroboros.Network.PeerSelection.Churn (ChurnCounters (..)) import Ouroboros.Network.PeerSelection.Governor (DebugPeerSelection (..), @@ -102,15 +101,11 @@ import Ouroboros.Network.Protocol.LocalStateQuery.Type (LocalStateQuer import qualified Ouroboros.Network.Protocol.LocalTxMonitor.Type as LTM import qualified Ouroboros.Network.Protocol.LocalTxSubmission.Type as LTS import Ouroboros.Network.Protocol.TxSubmission2.Type (TxSubmission2) -import qualified Ouroboros.Network.Server2 as Server (Trace (..)) +import qualified Ouroboros.Network.Server as Server (Trace (..)) import Ouroboros.Network.Snocket (LocalAddress (..)) -import Ouroboros.Network.Subscription.Dns (DnsTrace (..), WithDomainName (..)) -import Ouroboros.Network.Subscription.Ip (WithIPList (..)) -import Ouroboros.Network.Subscription.Worker (SubscriptionTrace (..)) import Ouroboros.Network.TxSubmission.Inbound (TraceTxSubmissionInbound) import Ouroboros.Network.TxSubmission.Outbound (TraceTxSubmissionOutbound) -import Control.Exception (SomeException) import Control.Monad (forM_) import Data.Aeson.Types (ToJSON) import Data.Proxy (Proxy (..)) @@ -560,27 +555,12 @@ docTracersFirstPhase condConfigFileName = do dtLocalMuxTrDoc <- documentTracer (dtLocalMuxTr :: Logging.Trace IO (Mux.WithBearer (ConnectionId LocalAddress) Mux.Trace)) - dtHandshakeTr <- mkCardanoTracer - trBase trForward mbTrEKG - ["Net", "Handshake", "Remote"] - configureTracers configReflection trConfig [dtHandshakeTr] - dtHandshakeTrDoc <- documentTracer (dtHandshakeTr :: - Logging.Trace IO (NtN.HandshakeTr NtN.RemoteAddress NtN.NodeToNodeVersion)) - - dtLocalHandshakeTr <- mkCardanoTracer - trBase trForward mbTrEKG - ["Net", "Handshake", "Local"] - configureTracers configReflection trConfig [dtLocalHandshakeTr] - dtLocalHandshakeTrDoc <- documentTracer (dtLocalHandshakeTr :: - Logging.Trace IO - (NtC.HandshakeTr LocalAddress NtC.NodeToClientVersion)) - dtDiffusionInitializationTr <- mkCardanoTracer trBase trForward mbTrEKG ["Startup", "DiffusionInit"] configureTracers configReflection trConfig [dtDiffusionInitializationTr] dtDiffusionInitializationTrDoc <- documentTracer (dtDiffusionInitializationTr :: - Logging.Trace IO (Common.DiffusionTracer Socket.SockAddr LocalAddress)) + Logging.Trace IO (DiffusionTracer Socket.SockAddr LocalAddress)) dtLedgerPeersTr <- mkCardanoTracer trBase trForward mbTrEKG @@ -595,7 +575,7 @@ docTracersFirstPhase condConfigFileName = do ["Net", "Peers", "LocalRoot"] configureTracers configReflection trConfig [localRootPeersTr] localRootPeersTrDoc <- documentTracer (localRootPeersTr :: - Logging.Trace IO (TraceLocalRootPeers PeerTrustable RemoteAddress SomeException)) + Logging.Trace IO (TraceLocalRootPeers PeerTrustable RemoteAddress)) publicRootPeersTr <- mkCardanoTracer trBase trForward mbTrEKG @@ -709,44 +689,6 @@ docTracersFirstPhase condConfigFileName = do localInboundGovernorTrDoc <- documentTracer (localInboundGovernorTr :: Logging.Trace IO (InboundGovernor.Trace LocalAddress)) - --- -- DiffusionTracersExtra nonP2P - - dtIpSubscriptionTr <- mkCardanoTracer - trBase trForward mbTrEKG - ["Net", "Subscription", "IP"] - configureTracers configReflection trConfig [dtIpSubscriptionTr] - dtIpSubscriptionTrDoc <- documentTracer (dtIpSubscriptionTr :: - Logging.Trace IO (WithIPList (SubscriptionTrace Socket.SockAddr))) - - dtDnsSubscriptionTr <- mkCardanoTracer - trBase trForward mbTrEKG - ["Net", "Subscription", "DNS"] - configureTracers configReflection trConfig [dtDnsSubscriptionTr] - dtDnsSubscriptionTrDoc <- documentTracer (dtDnsSubscriptionTr :: - Logging.Trace IO (WithDomainName (SubscriptionTrace Socket.SockAddr))) - - dtDnsResolverTr <- mkCardanoTracer - trBase trForward mbTrEKG - ["Net", "DNSResolver"] - configureTracers configReflection trConfig [dtDnsResolverTr] - dtDnsResolverTrDoc <- documentTracer (dtDnsResolverTr :: - Logging.Trace IO (WithDomainName DnsTrace)) - - dtErrorPolicyTr <- mkCardanoTracer - trBase trForward mbTrEKG - ["Net", "ErrorPolicy", "Remote"] - configureTracers configReflection trConfig [dtErrorPolicyTr] - dtErrorPolicyTrDoc <- documentTracer (dtErrorPolicyTr :: - Logging.Trace IO (WithAddr Socket.SockAddr ErrorPolicyTrace)) - - dtLocalErrorPolicyTr <- mkCardanoTracer - trBase trForward mbTrEKG - ["Net", "ErrorPolicy", "Local"] - configureTracers configReflection trConfig [dtLocalErrorPolicyTr] - dtLocalErrorPolicyTrDoc <- documentTracer (dtLocalErrorPolicyTr :: - Logging.Trace IO (WithAddr LocalAddress ErrorPolicyTrace)) - dtAcceptPolicyTr <- mkCardanoTracer trBase trForward mbTrEKG ["Net", "AcceptPolicy"] @@ -810,8 +752,6 @@ docTracersFirstPhase condConfigFileName = do -- Diffusion <> dtMuxTrDoc <> dtLocalMuxTrDoc - <> dtHandshakeTrDoc - <> dtLocalHandshakeTrDoc <> dtDiffusionInitializationTrDoc <> dtLedgerPeersTrDoc -- DiffusionTracersExtra P2P @@ -831,12 +771,6 @@ docTracersFirstPhase condConfigFileName = do <> localConnectionManagerTrDoc <> localServerTrDoc <> localInboundGovernorTrDoc --- DiffusionTracersExtra nonP2P - <> dtIpSubscriptionTrDoc - <> dtDnsSubscriptionTrDoc - <> dtDnsResolverTrDoc - <> dtErrorPolicyTrDoc - <> dtLocalErrorPolicyTrDoc <> dtAcceptPolicyTrDoc -- Internal tracer <> internalTrDoc diff --git a/cardano-node/src/Cardano/Node/Tracing/Era/Byron.hs b/cardano-node/src/Cardano/Node/Tracing/Era/Byron.hs index ef3d1eb3729..95e290c8553 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Era/Byron.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Era/Byron.hs @@ -17,6 +17,7 @@ import Cardano.Api (textShow) import Cardano.Chain.Block (ABlockOrBoundaryHdr (..), AHeader (..), ChainValidationError (..), delegationCertificate) +import Ouroboros.Consensus.Protocol.PBFT (PBft, PBftTiebreakerView(..)) import Cardano.Chain.Byron.API (ApplyMempoolPayloadErr (..)) import Cardano.Chain.Delegation (delegateVK) import Cardano.Crypto.Signing (VerificationKey) @@ -29,7 +30,6 @@ import Ouroboros.Consensus.Byron.Ledger (ByronBlock (..), import Ouroboros.Consensus.Byron.Ledger.Inspect (ByronLedgerUpdate (..), ProtocolUpdate (..), UpdateState (..)) import Ouroboros.Consensus.Ledger.SupportsMempool (GenTx, txId) -import Ouroboros.Consensus.Protocol.PBFT (PBftSelectView (..)) import Ouroboros.Consensus.Util.Condense (condense) import Ouroboros.Network.Block (blockHash, blockNo, blockSlot) @@ -213,10 +213,9 @@ instance LogFormatting ByronOtherHeaderEnvelopeError where , "slot" .= slot ] -instance LogFormatting PBftSelectView where - forMachine _dtal (PBftSelectView blkNo isEBB) = +instance LogFormatting PBftTiebreakerView where + forMachine _dtal (PBftTiebreakerView isEBB) = mconcat [ "kind" .= String "PBftSelectView" - , "blockNo" .= blkNo , "isEBB" .= fromIsEBB isEBB ] diff --git a/cardano-node/src/Cardano/Node/Tracing/Era/HardFork.hs b/cardano-node/src/Cardano/Node/Tracing/Era/HardFork.hs index 51f4eceb83f..7e528ba3c2f 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Era/HardFork.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Era/HardFork.hs @@ -23,10 +23,10 @@ import Ouroboros.Consensus.Block (BlockProtocol, CannotForge, ForgeSta import Ouroboros.Consensus.BlockchainTime (getSlotLength) import Ouroboros.Consensus.Cardano.Condense () import Ouroboros.Consensus.HardFork.Combinator -import Ouroboros.Consensus.HardFork.Combinator.AcrossEras (EraMismatch (..), +import Ouroboros.Consensus.HardFork.Combinator.AcrossEras (EraMismatch (..), OneEraTiebreakerView (..), OneEraCannotForge (..), OneEraEnvelopeErr (..), OneEraForgeStateInfo (..), OneEraForgeStateUpdateError (..), OneEraLedgerError (..), - OneEraLedgerUpdate (..), OneEraLedgerWarning (..), OneEraSelectView (..), + OneEraLedgerUpdate (..), OneEraLedgerWarning (..), OneEraValidationErr (..), mkEraMismatch) import Ouroboros.Consensus.HardFork.Combinator.Condense () import Ouroboros.Consensus.HardFork.History @@ -36,7 +36,7 @@ import Ouroboros.Consensus.HeaderValidation (OtherHeaderEnvelopeError) import Ouroboros.Consensus.Ledger.Abstract (LedgerError) import Ouroboros.Consensus.Ledger.Inspect (LedgerUpdate, LedgerWarning) import Ouroboros.Consensus.Ledger.SupportsMempool (ApplyTxErr) -import Ouroboros.Consensus.Protocol.Abstract (SelectView, ValidationErr) +import Ouroboros.Consensus.Protocol.Abstract (ValidationErr, TiebreakerView, SelectView(..)) import Ouroboros.Consensus.TypeFamilyWrappers import Ouroboros.Consensus.Util.Condense (Condense (..)) @@ -349,19 +349,21 @@ instance LogFormatting (ForgeStateUpdateError blk) => LogFormatting (WrapForgeSt -- instances for HardForkSelectView -- -instance All (LogFormatting `Compose` WrapSelectView) xs => LogFormatting (HardForkSelectView xs) where - -- elide BlockNo as it is already contained in every per-era SelectView - -- TODO: use level DMinimal for a textual representation without the block number, - -- like this: `forMachine DMinimal . getHardForkSelectView`, and update the different SelectView instances - -- to not print the blockNr - forMachine dtal = forMachine dtal . dropBlockNo . getHardForkSelectView +instance All (LogFormatting `Compose` WrapTiebreakerView) xs => LogFormatting (HardForkTiebreakerView xs) where + forMachine dtal = forMachine dtal . getHardForkTiebreakerView -instance All (LogFormatting `Compose` WrapSelectView) xs => LogFormatting (OneEraSelectView xs) where +instance LogFormatting (TiebreakerView protocol) => LogFormatting (SelectView protocol) where + forMachine dtal sv = mconcat + [ "blockNo" .= svBlockNo sv + , forMachine dtal (svTiebreakerView sv) + ] + +instance All (LogFormatting `Compose` WrapTiebreakerView) xs => LogFormatting (OneEraTiebreakerView xs) where forMachine dtal = hcollapse - . hcmap (Proxy @(LogFormatting `Compose` WrapSelectView)) + . hcmap (Proxy @(LogFormatting `Compose` WrapTiebreakerView)) (K . forMachine dtal) - . getOneEraSelectView + . getOneEraTiebreakerView -instance LogFormatting (SelectView (BlockProtocol blk)) => LogFormatting (WrapSelectView blk) where - forMachine dtal = forMachine dtal . unwrapSelectView +instance LogFormatting (TiebreakerView (BlockProtocol blk)) => LogFormatting (WrapTiebreakerView blk) where + forMachine dtal = forMachine dtal . unwrapTiebreakerView diff --git a/cardano-node/src/Cardano/Node/Tracing/Era/Shelley.hs b/cardano-node/src/Cardano/Node/Tracing/Era/Shelley.hs index 02637b1baeb..0f76c298ab1 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Era/Shelley.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Era/Shelley.hs @@ -59,7 +59,7 @@ import Cardano.Tracing.OrphanInstances.Shelley () import Ouroboros.Consensus.Ledger.SupportsMempool (txId) import qualified Ouroboros.Consensus.Ledger.SupportsMempool as SupportsMempool import qualified Ouroboros.Consensus.Protocol.Praos as Praos -import Ouroboros.Consensus.Protocol.Praos.Common (PraosChainSelectView (..)) +import qualified Ouroboros.Consensus.Protocol.Praos.Common as Praos import Ouroboros.Consensus.Protocol.TPraos (TPraosCannotForge (..)) import Ouroboros.Consensus.Shelley.Ledger hiding (TxId) import qualified Ouroboros.Consensus.Shelley.Ledger as Consensus @@ -186,6 +186,18 @@ instance LogFormatting (Conway.ConwayDelegPredFailure era) where , "credential" .= String (textShow credential) , "error" .= String "Delegated rep is not registered for provided stake key" ] + Conway.DepositIncorrectDELEG Mismatch {mismatchSupplied, mismatchExpected} -> + [ "kind" .= String "DepositIncorrectDELEG" + , "givenRefund" .= mismatchSupplied + , "expectedRefund" .= mismatchExpected + , "error" .= String "Deposit mismatch" + ] + Conway.RefundIncorrectDELEG Mismatch {mismatchSupplied, mismatchExpected} -> + [ "kind" .= String "RefundIncorrectDELEG" + , "givenRefund" .= mismatchSupplied + , "expectedRefund" .= mismatchExpected + , "error" .= String "Refund mismatch" + ] instance ( ShelleyCompatible protocol era @@ -361,10 +373,6 @@ instance , "fromTxBody" .= renderScriptIntegrityHash (strictMaybeToMaybe mismatchSupplied) , "fromPParams" .= renderScriptIntegrityHash (strictMaybeToMaybe mismatchExpected) ] - forMachine _ (MissingRequiredSigners missingKeyWitnesses) = - mconcat [ "kind" .= String "MissingRequiredSigners" - , "witnesses" .= Set.toList missingKeyWitnesses - ] forMachine _ (UnspendableUTxONoDatumHash txins) = mconcat [ "kind" .= String "MissingRequiredSigners" , "txins" .= Set.toList txins @@ -384,6 +392,16 @@ instance ] ) (Api.shelleyBasedEra :: Api.ShelleyBasedEra era) + forMachine _ (ScriptIntegrityHashMismatch Mismatch {mismatchSupplied, mismatchExpected} mBytes) = + mconcat [ "kind" .= String "ScriptIntegrityHashMismatch" + , "supplied" .= renderScriptIntegrityHash (strictMaybeToMaybe mismatchSupplied) + , "expected" .= renderScriptIntegrityHash (strictMaybeToMaybe mismatchExpected) + , "hashHexPreimage" .= formatAsHex (strictMaybeToMaybe mBytes) + ] + +formatAsHex :: Maybe Crypto.ByteString -> String +formatAsHex Nothing = "" +formatAsHex (Just bs) = show bs instance ( Consensus.ShelleyBasedEra era @@ -551,8 +569,6 @@ instance , "outputs" .= badOutputs , "error" .= String "The Byron address attributes are too big" ] - forMachine _dtal Allegra.TriesToForgeADA = - mconcat [ "kind" .= String "TriesToForgeADA" ] forMachine _dtal (Allegra.OutputTooBigUTxO badOutputs) = mconcat [ "kind" .= String "OutputTooBigUTxO" , "outputs" .= badOutputs @@ -596,7 +612,7 @@ instance ] forMachine _dtal (WithdrawalsNotInRewardsDELEGS incorrectWithdrawals) = mconcat [ "kind" .= String "WithdrawalsNotInRewardsCERTS" - , "incorrectWithdrawals" .= incorrectWithdrawals + , "incorrectWithdrawals" .= unWithdrawals incorrectWithdrawals ] forMachine dtal (DelplFailure f) = forMachine dtal f @@ -722,51 +738,17 @@ instance LogFormatting (ShelleyPoolPredFailure era) where , "poolId" .= String (textShow poolId) , "error" .= String "Wrong network ID in pool registration certificate" ] + forMachine _dtal (VRFKeyHashAlreadyRegistered poolId vrfKeyHash) = + mconcat [ "kind" .= String "VRFKeyHashAlreadyRegistered" + , "poolId" .= String (textShow poolId) + , "vrfKeyHash" .= String (textShow vrfKeyHash) + , "error" .= String "Pool with the same VRF Key Hash is already registered" + ] -instance - ( LogFormatting (PredicateFailure (Ledger.EraRule "NEWEPOCH" era)) - , LogFormatting (PredicateFailure (Ledger.EraRule "RUPD" era)) - ) => LogFormatting (ShelleyTickPredFailure era) where - forMachine dtal (NewEpochFailure f) = forMachine dtal f - forMachine dtal (RupdFailure f) = forMachine dtal f - instance LogFormatting TicknPredicateFailure where forMachine _dtal x = case x of {} -- no constructors -instance - ( LogFormatting (PredicateFailure (Ledger.EraRule "EPOCH" era)) - , LogFormatting (PredicateFailure (Ledger.EraRule "MIR" era)) - ) => LogFormatting (ShelleyNewEpochPredFailure era) where - forMachine dtal (EpochFailure f) = forMachine dtal f - forMachine dtal (MirFailure f) = forMachine dtal f - forMachine _dtal (CorruptRewardUpdate update) = - mconcat [ "kind" .= String "CorruptRewardUpdate" - , "update" .= String (textShow update) ] - - -instance - ( LogFormatting (PredicateFailure (Ledger.EraRule "POOLREAP" era)) - , LogFormatting (PredicateFailure (Ledger.EraRule "SNAP" era)) - , LogFormatting (UpecPredFailure era) - ) => LogFormatting (ShelleyEpochPredFailure era) where - forMachine dtal (PoolReapFailure f) = forMachine dtal f - forMachine dtal (SnapFailure f) = forMachine dtal f - forMachine dtal (UpecFailure f) = forMachine dtal f - - -instance LogFormatting (ShelleyPoolreapPredFailure era) where - forMachine _dtal x = case x of {} -- no constructors - -instance LogFormatting (ShelleySnapPredFailure era) where - forMachine _dtal x = case x of {} -- no constructors - -instance LogFormatting (ShelleyMirPredFailure era) where - forMachine _dtal x = case x of {} -- no constructors - -instance LogFormatting (ShelleyRupdPredFailure era) where - forMachine _dtal x = case x of {} -- no constructors - instance ( Ledger.Crypto crypto @@ -948,8 +930,6 @@ instance , "outputs" .= txouts , "error" .= String "The Byron address attributes are too big" ] - forMachine _dtal Alonzo.TriesToForgeADA = - mconcat [ "kind" .= String "TriesToForgeADA" ] forMachine _dtal (Alonzo.OutputTooBigUTxO badOutputs) = mconcat [ "kind" .= String "OutputTooBigUTxO" , "outputs" .= badOutputs @@ -1068,6 +1048,12 @@ instance mconcat [ "kind" .= String "MalformedReferenceScripts" , "scripts" .= s ] + Babbage.ScriptIntegrityHashMismatch Mismatch {mismatchSupplied, mismatchExpected} mBytes -> + mconcat [ "kind" .= String "ScriptIntegrityHashMismatch" + , "supplied" .= renderScriptIntegrityHash (strictMaybeToMaybe mismatchSupplied) + , "expected" .= renderScriptIntegrityHash (strictMaybeToMaybe mismatchExpected) + , "hashHexPreimage" .= formatAsHex (strictMaybeToMaybe mBytes) + ] -------------------------------------------------------------------------------- -- Conway related -------------------------------------------------------------------------------- @@ -1187,13 +1173,18 @@ instance , "invalidAccounts" .= accounts ] + forMachine _ (Conway.UnelectedCommitteeVoters voters) = + mconcat [ "kind" .= String "UnelectedCommitteeVoters" + , "unelectedCommitteeVoters" .= voters + ] + instance ( Consensus.ShelleyBasedEra era , LogFormatting (PredicateFailure (Ledger.EraRule "CERT" era)) ) => LogFormatting (Conway.ConwayCertsPredFailure era) where forMachine _ (Conway.WithdrawalsNotInRewardsCERTS rs) = mconcat [ "kind" .= String "WithdrawalsNotInRewardsCERTS" - , "rewardAccounts" .= rs + , "rewardAccounts" .= unWithdrawals rs ] forMachine dtal (Conway.CertFailure certFailure) = forMachine dtal certFailure @@ -1292,24 +1283,6 @@ instance LogFormatting Praos.PraosEnvelopeError where , "blockSize" .= blockSize ] -instance Ledger.Crypto c => LogFormatting (PraosChainSelectView c) where - forMachine _ PraosChainSelectView { - csvChainLength - , csvSlotNo - , csvIssuer - , csvIssueNo - , csvTieBreakVRF - } = - mconcat [ "kind" .= String "PraosChainSelectView" - , "chainLength" .= csvChainLength - , "slotNo" .= csvSlotNo - , "issuerHash" .= hashKey csvIssuer - , "issueNo" .= csvIssueNo - , "tieBreakVRF" .= renderVRF csvTieBreakVRF - ] - where - renderVRF = Text.decodeUtf8 . B16.encode . Crypto.getOutputVRFBytes - instance ( ToJSON (Alonzo.CollectError ledgerera) ) => LogFormatting (Conway.ConwayUtxosPredFailure ledgerera) where @@ -1530,6 +1503,28 @@ instance mconcat [ "kind" .= String "MalformedReferenceScripts" , "scripts" .= scripts ] + Conway.ScriptIntegrityHashMismatch Mismatch {mismatchSupplied, mismatchExpected} mBytes -> + mconcat [ "kind" .= String "ScriptIntegrityHashMismatch" + , "supplied" .= renderScriptIntegrityHash (strictMaybeToMaybe mismatchSupplied) + , "expected" .= renderScriptIntegrityHash (strictMaybeToMaybe mismatchExpected) + , "hashHexPreimage" .= formatAsHex (strictMaybeToMaybe mBytes) + ] + +instance LogFormatting (Praos.PraosTiebreakerView crypto) where + forMachine _dtal Praos.PraosTiebreakerView { + ptvSlotNo + , ptvIssuer + , ptvIssueNo + , ptvTieBreakVRF + } = + mconcat [ "kind" .= String "PraosTiebreakerView" + , "slotNo" .= ptvSlotNo + , "issuerHash" .= hashKey ptvIssuer + , "issueNo" .= ptvIssueNo + , "tieBreakVRF" .= renderVRF ptvTieBreakVRF + ] + where + renderVRF = Text.decodeUtf8 . B16.encode . Crypto.getOutputVRFBytes -------------------------------------------------------------------------------- -- Helper functions diff --git a/cardano-node/src/Cardano/Node/Tracing/Render.hs b/cardano-node/src/Cardano/Node/Tracing/Render.hs index 21eb099be60..0c84e550b4b 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Render.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Render.hs @@ -208,6 +208,8 @@ renderScriptPurpose = Api.AlonzoEraOnwardsAlonzo -> renderAlonzoPlutusPurpose Api.AlonzoEraOnwardsBabbage -> renderAlonzoPlutusPurpose Api.AlonzoEraOnwardsConway -> renderConwayPlutusPurpose + -- TODO: fix + Api.AlonzoEraOnwardsDijkstra -> undefined ) renderAlonzoPlutusPurpose :: () diff --git a/cardano-node/src/Cardano/Node/Tracing/StateRep.hs b/cardano-node/src/Cardano/Node/Tracing/StateRep.hs index 1b23d42805f..7b65e9e17ab 100644 --- a/cardano-node/src/Cardano/Node/Tracing/StateRep.hs +++ b/cardano-node/src/Cardano/Node/Tracing/StateRep.hs @@ -36,7 +36,7 @@ import qualified Ouroboros.Consensus.Storage.LedgerDB as LgrDb import Ouroboros.Network.Block (pointSlot) import Control.DeepSeq (NFData) -import Data.Aeson hiding (Result(..)) +import Data.Aeson hiding (Result (..)) import Data.Text as T (Text, pack) import Data.Time.Clock import Data.Time.Clock.POSIX @@ -112,6 +112,8 @@ deriving instance (NFData NodeState) instance LogFormatting NodeState where forMachine _ = \case + NodeTracingOnlineConfiguring -> mconcat + [ "kind" .= String "NodeTracingOnlineConfiguring" ] NodeOpeningDbs x -> mconcat [ "kind" .= String "NodeOpeningDbs", "openingDb" .= toJSON x] NodeReplays x -> mconcat @@ -119,7 +121,7 @@ instance LogFormatting NodeState where NodeInitChainSelection x -> mconcat [ "kind" .= String "NodeInitChainSelection", "chainSel" .= toJSON x] NodeKernelOnline -> mconcat - [ "kind" .= String "NodeInitChainSelection"] + [ "kind" .= String "NodeKernelOnline"] NodeAddBlock x -> mconcat [ "kind" .= String "NodeAddBlock", "addBlock" .= toJSON x] NodeStartup x -> mconcat @@ -128,7 +130,6 @@ instance LogFormatting NodeState where [ "kind" .= String "NodeShutdown", "shutdown" .= toJSON x] NodeTracingFailure x -> mconcat [ "kind" .= String "NodeTracingFailure", "message" .= toJSON x] - _ -> mempty forHuman (NodeTracingFailure errMsg) = T.pack errMsg forHuman _ = "" @@ -186,9 +187,9 @@ instance MetaTrace NodeState where documentFor (Namespace _ ["NodeInitChainSelection"]) = Just "Performing initial chain selection" documentFor (Namespace _ ["NodeKernelOnline"]) = Just - "" + "Tracing system configured and node kernel is online" documentFor (Namespace _ ["NodeAddBlock"]) = Just - "Applying block" + "Applying block" documentFor (Namespace _ ["NodeStartup"]) = Just "Node startup" documentFor (Namespace _ ["NodeShutdown"]) = Just diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers.hs index 9182fbb0842..12736ccda66 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers.hs @@ -17,7 +17,7 @@ module Cardano.Node.Tracing.Tracers ) where import Cardano.Logging -import Cardano.Network.PeerSelection.PeerTrustable (PeerTrustable) +import qualified Cardano.Network.Diffusion as Cardano.Diffusion import Cardano.Node.Protocol.Types (SomeConsensusProtocol) import Cardano.Node.Queries (NodeKernelData) import Cardano.Node.TraceConstraints @@ -36,22 +36,16 @@ import Cardano.Node.Tracing.Tracers.LedgerMetrics () import Cardano.Node.Tracing.Tracers.NodeToClient () import Cardano.Node.Tracing.Tracers.NodeToNode () import Cardano.Node.Tracing.Tracers.NodeVersion (getNodeVersion) -import Cardano.Node.Tracing.Tracers.NonP2P () import Cardano.Node.Tracing.Tracers.P2P () import Cardano.Node.Tracing.Tracers.Shutdown () import Cardano.Node.Tracing.Tracers.Startup () -import qualified Ouroboros.Cardano.Network.PeerSelection.Governor.PeerSelectionState as Cardano -import qualified Ouroboros.Cardano.Network.PeerSelection.Governor.Types as Cardano -import qualified Ouroboros.Cardano.Network.PublicRootPeers as Cardano.PublicRootPeers import Ouroboros.Consensus.Ledger.Inspect (LedgerEvent) import Ouroboros.Consensus.MiniProtocol.ChainSync.Client (TraceChainSyncClientEvent) import qualified Ouroboros.Consensus.Network.NodeToClient as NodeToClient import qualified Ouroboros.Consensus.Network.NodeToClient as NtC import qualified Ouroboros.Consensus.Network.NodeToNode as NodeToNode import qualified Ouroboros.Consensus.Network.NodeToNode as NtN -import Ouroboros.Consensus.Node (NetworkP2PMode (..)) import Ouroboros.Consensus.Node.GSM -import Ouroboros.Consensus.Node.NetworkProtocolVersion import qualified Ouroboros.Consensus.Node.Run as Consensus import qualified Ouroboros.Consensus.Node.Tracers as Consensus import qualified Ouroboros.Consensus.Storage.ChainDB as ChainDB @@ -60,9 +54,6 @@ import Ouroboros.Network.Block import qualified Ouroboros.Network.BlockFetch.ClientState as BlockFetch import Ouroboros.Network.ConnectionId (ConnectionId) import qualified Ouroboros.Network.Diffusion as Diffusion -import qualified Ouroboros.Network.Diffusion.Common as Diffusion -import qualified Ouroboros.Network.Diffusion.NonP2P as NonP2P -import qualified Ouroboros.Network.Diffusion.P2P as P2P import Ouroboros.Network.NodeToClient (LocalAddress) import Ouroboros.Network.NodeToNode (RemoteAddress) @@ -71,12 +62,11 @@ import Control.Monad (unless) import "contra-tracer" Control.Tracer (Tracer (..)) import Data.Proxy (Proxy (..)) import Network.Mux.Trace (TraceLabelPeer (..)) -import Network.Socket (SockAddr) -- | Construct tracers for all system components. -- mkDispatchTracers - :: forall blk p2p . + :: forall blk . ( Consensus.RunNode blk , TraceConstraints blk , LogFormatting (LedgerEvent blk) @@ -92,17 +82,10 @@ mkDispatchTracers -> Maybe (Trace IO FormattedMessage) -> Trace IO DataPoint -> TraceConfig - -> NetworkP2PMode p2p -> SomeConsensusProtocol - -> IO (Tracers RemoteAddress LocalAddress blk p2p - Cardano.ExtraState - Cardano.DebugPeerSelectionState - PeerTrustable - (Cardano.PublicRootPeers.ExtraPeers RemoteAddress) - (Cardano.ExtraPeerSelectionSetsWithSizes RemoteAddress) - IO) + -> IO (Tracers RemoteAddress LocalAddress blk IO) -mkDispatchTracers nodeKernel trBase trForward mbTrEKG trDataPoint trConfig enableP2P p = do +mkDispatchTracers nodeKernel trBase trForward mbTrEKG trDataPoint trConfig p = do configReflection <- emptyConfigReflection @@ -171,16 +154,11 @@ mkDispatchTracers nodeKernel trBase trForward mbTrEKG trDataPoint trConfig enabl !nodeToNodeTr <- mkNodeToNodeTracers configReflection trBase trForward mbTrEKG trDataPoint trConfig - !(diffusionTr :: Diffusion.Tracers - RemoteAddress - NodeToNodeVersion - LocalAddress - NodeToClientVersion - IO) <- + !(diffusionTr :: Cardano.Diffusion.CardanoTracers IO) <- mkDiffusionTracers configReflection trBase trForward mbTrEKG trDataPoint trConfig - !diffusionTrExtra <- - mkDiffusionTracersExtra configReflection trBase trForward mbTrEKG trDataPoint trConfig enableP2P + !churnModeTr <- mkCardanoTracer trBase trForward mbTrEKG ["Net", "PeerSelection", "ChurnMode"] + configureTracers configReflection trConfig [churnModeTr] traceTracerInfo trBase trForward configReflection @@ -198,10 +176,10 @@ mkDispatchTracers nodeKernel trBase trForward mbTrEKG trDataPoint trConfig enabl <> Tracer (traceWith replayBlockTr') <> Tracer (SR.traceNodeStateChainDB p nodeStateDP) , consensusTracers = consensusTr + , churnModeTracer = Tracer (traceWith churnModeTr) , nodeToClientTracers = nodeToClientTr , nodeToNodeTracers = nodeToNodeTr , diffusionTracers = diffusionTr - , diffusionTracersExtra = diffusionTrExtra , startupTracer = Tracer (traceWith startupTr) <> Tracer (SR.traceNodeStateStartup nodeStateDP) , shutdownTracer = Tracer (traceWith shutdownTr) @@ -355,6 +333,11 @@ mkConsensusTracers configReflection trBase trForward mbTrEKG _trDataPoint trConf ["Consensus", "CSJ"] configureTracers configReflection trConfig [consensusCsjTr] + !consensusKesAgentTr <- mkCardanoTracer + trBase trForward mbTrEKG + ["Consensus", "KESAgent"] + configureTracers configReflection trConfig [consensusKesAgentTr] + !consensusDbfTr <- mkCardanoTracer trBase trForward mbTrEKG ["Consensus", "DevotedBlockFetch"] @@ -406,6 +389,8 @@ mkConsensusTracers configReflection trBase trForward mbTrEKG _trDataPoint trConf traceWith consensusCsjTr , Consensus.dbfTracer = Tracer $ traceWith consensusDbfTr + , Consensus.kesAgentTracer = Tracer $ + traceWith consensusKesAgentTr } mkNodeToClientTracers :: forall blk. @@ -524,8 +509,7 @@ mkDiffusionTracers -> Maybe (Trace IO FormattedMessage) -> Trace IO DataPoint -> TraceConfig - -> IO (Diffusion.Tracers RemoteAddress NodeToNodeVersion - LocalAddress NodeToClientVersion IO) + -> IO (Cardano.Diffusion.CardanoTracers IO) mkDiffusionTracers configReflection trBase trForward mbTrEKG _trDataPoint trConfig = do !dtMuxTr <- mkCardanoTracer @@ -533,57 +517,46 @@ mkDiffusionTracers configReflection trBase trForward mbTrEKG _trDataPoint trConf ["Net", "Mux", "Remote"] configureTracers configReflection trConfig [dtMuxTr] + !dtChannelTracer <- mkCardanoTracer + trBase trForward mbTrEKG + ["Net", "Mux", "Remote", "Channel"] + configureTracers configReflection trConfig [dtChannelTracer] + + !dtBearerTracer <- mkCardanoTracer + trBase trForward mbTrEKG + ["Net", "Mux", "Remote", "Bearer"] + configureTracers configReflection trConfig [dtBearerTracer] + + !dtHandshakeTracer <- mkCardanoTracer + trBase trForward mbTrEKG + ["Net", "Handshake", "Remote"] + configureTracers configReflection trConfig [dtHandshakeTracer] + !dtLocalMuxTr <- mkCardanoTracer trBase trForward mbTrEKG ["Net", "Mux", "Local"] configureTracers configReflection trConfig [dtLocalMuxTr] - !dtHandshakeTr <- mkCardanoTracer + !dtLocalChannelTracer <- mkCardanoTracer trBase trForward mbTrEKG - ["Net", "Handshake", "Remote"] - configureTracers configReflection trConfig [dtHandshakeTr] + ["Net", "Mux", "Local", "Channel"] + configureTracers configReflection trConfig [dtLocalChannelTracer] + + !dtLocalBearerTracer <- mkCardanoTracer + trBase trForward mbTrEKG + ["Net", "Mux", "Local", "Bearer"] + configureTracers configReflection trConfig [dtLocalBearerTracer] - !dtLocalHandshakeTr <- mkCardanoTracer + !dtLocalHandshakeTracer <- mkCardanoTracer trBase trForward mbTrEKG ["Net", "Handshake", "Local"] - configureTracers configReflection trConfig [dtLocalHandshakeTr] + configureTracers configReflection trConfig [dtLocalHandshakeTracer] !dtDiffusionInitializationTr <- mkCardanoTracer trBase trForward mbTrEKG ["Startup", "DiffusionInit"] configureTracers configReflection trConfig [dtDiffusionInitializationTr] - pure $ Diffusion.Tracers - { Diffusion.dtMuxTracer = Tracer $ - traceWith dtMuxTr - , Diffusion.dtLocalMuxTracer = Tracer $ - traceWith dtLocalMuxTr - , Diffusion.dtHandshakeTracer = Tracer $ - traceWith dtHandshakeTr - , Diffusion.dtLocalHandshakeTracer = Tracer $ - traceWith dtLocalHandshakeTr - , Diffusion.dtDiffusionTracer = Tracer $ - traceWith dtDiffusionInitializationTr - } - -mkDiffusionTracersExtra :: forall p2p . - ConfigReflection - -> Trace IO FormattedMessage - -> Trace IO FormattedMessage - -> Maybe (Trace IO FormattedMessage) - -> Trace IO DataPoint - -> TraceConfig - -> NetworkP2PMode p2p - -> IO (Diffusion.ExtraTracers - p2p - Cardano.ExtraState - Cardano.DebugPeerSelectionState - PeerTrustable - (Cardano.PublicRootPeers.ExtraPeers SockAddr) - (Cardano.ExtraPeerSelectionSetsWithSizes SockAddr) - IO) -mkDiffusionTracersExtra configReflection trBase trForward mbTrEKG _trDataPoint trConfig EnabledP2PMode = do - !localRootPeersTr <- mkCardanoTracer trBase trForward mbTrEKG ["Net", "Peers", "LocalRoot"] @@ -669,86 +642,64 @@ mkDiffusionTracersExtra configReflection trBase trForward mbTrEKG _trDataPoint t ["Net", "Peers", "Ledger"] configureTracers configReflection trConfig [dtLedgerPeersTr] - pure $ Diffusion.P2PTracers P2P.TracersExtra - { P2P.dtTraceLocalRootPeersTracer = Tracer $ - traceWith localRootPeersTr - , P2P.dtTracePublicRootPeersTracer = Tracer $ - traceWith publicRootPeersTr - , P2P.dtTracePeerSelectionTracer = Tracer $ - traceWith peerSelectionTr - , P2P.dtDebugPeerSelectionInitiatorTracer = Tracer $ - traceWith debugPeerSelectionTr - , P2P.dtDebugPeerSelectionInitiatorResponderTracer = Tracer $ - traceWith debugPeerSelectionResponderTr - , P2P.dtTracePeerSelectionCounters = Tracer $ - traceWith peerSelectionCountersTr - , P2P.dtTraceChurnCounters = Tracer $ - traceWith churnCountersTr - , P2P.dtPeerSelectionActionsTracer = Tracer $ - traceWith peerSelectionActionsTr - , P2P.dtConnectionManagerTracer = Tracer $ - traceWith connectionManagerTr - , P2P.dtConnectionManagerTransitionTracer = Tracer $ - traceWith connectionManagerTransitionsTr - , P2P.dtServerTracer = Tracer $ - traceWith serverTr - , P2P.dtInboundGovernorTracer = Tracer $ - traceWith inboundGovernorTr - , P2P.dtLocalInboundGovernorTracer = Tracer $ - traceWith localInboundGovernorTr - , P2P.dtInboundGovernorTransitionTracer = Tracer $ - traceWith inboundGovernorTransitionsTr - , P2P.dtLocalConnectionManagerTracer = Tracer $ - traceWith localConnectionManagerTr - , P2P.dtLocalServerTracer = Tracer $ - traceWith localServerTr - , P2P.dtTraceLedgerPeersTracer = Tracer $ - traceWith dtLedgerPeersTr - } - -mkDiffusionTracersExtra configReflection trBase trForward mbTrEKG _trDataPoint trConfig DisabledP2PMode = do - - !dtIpSubscriptionTr <- mkCardanoTracer - trBase trForward mbTrEKG - ["Net", "Subscription", "IP"] - configureTracers configReflection trConfig [dtIpSubscriptionTr] - - !dtDnsSubscriptionTr <- mkCardanoTracer - trBase trForward mbTrEKG - ["Net", "Subscription", "DNS"] - configureTracers configReflection trConfig [dtDnsSubscriptionTr] - - !dtDnsResolverTr <- mkCardanoTracer - trBase trForward mbTrEKG - ["Net", "DNSResolver"] - configureTracers configReflection trConfig [dtDnsResolverTr] - - !dtErrorPolicyTr <- mkCardanoTracer - trBase trForward mbTrEKG - ["Net", "ErrorPolicy", "Remote"] - configureTracers configReflection trConfig [dtErrorPolicyTr] - - !dtLocalErrorPolicyTr <- mkCardanoTracer - trBase trForward mbTrEKG - ["Net", "ErrorPolicy", "Local"] - configureTracers configReflection trConfig [dtLocalErrorPolicyTr] - - !dtAcceptPolicyTr <- mkCardanoTracer - trBase trForward mbTrEKG - ["Net", "AcceptPolicy"] - configureTracers configReflection trConfig [dtAcceptPolicyTr] - - pure $ Diffusion.NonP2PTracers NonP2P.TracersExtra - { NonP2P.dtIpSubscriptionTracer = Tracer $ - traceWith dtIpSubscriptionTr - , NonP2P.dtDnsSubscriptionTracer = Tracer $ - traceWith dtDnsSubscriptionTr - , NonP2P.dtDnsResolverTracer = Tracer $ - traceWith dtDnsResolverTr - , NonP2P.dtErrorPolicyTracer = Tracer $ - traceWith dtErrorPolicyTr - , NonP2P.dtLocalErrorPolicyTracer = Tracer $ - traceWith dtLocalErrorPolicyTr - , NonP2P.dtAcceptPolicyTracer = Tracer $ - traceWith dtAcceptPolicyTr + !dtDnsTr <- mkCardanoTracer + trBase trForward mbTrEKG + ["Net", "DNS"] + configureTracers configReflection trConfig [dtDnsTr] + + pure $ Diffusion.Tracers + { Diffusion.dtMuxTracer = Tracer $ + traceWith dtMuxTr + , Diffusion.dtChannelTracer = Tracer $ + traceWith dtChannelTracer + , Diffusion.dtBearerTracer = Tracer $ + traceWith dtBearerTracer + , Diffusion.dtHandshakeTracer = Tracer $ + traceWith dtHandshakeTracer + , Diffusion.dtLocalMuxTracer = Tracer $ + traceWith dtLocalMuxTr + , Diffusion.dtLocalChannelTracer = Tracer $ + traceWith dtLocalChannelTracer + , Diffusion.dtLocalBearerTracer = Tracer $ + traceWith dtLocalBearerTracer + , Diffusion.dtLocalHandshakeTracer = Tracer $ + traceWith dtLocalHandshakeTracer + , Diffusion.dtDiffusionTracer = Tracer $ + traceWith dtDiffusionInitializationTr + , Diffusion.dtTraceLocalRootPeersTracer = Tracer $ + traceWith localRootPeersTr + , Diffusion.dtTracePublicRootPeersTracer = Tracer $ + traceWith publicRootPeersTr + , Diffusion.dtTracePeerSelectionTracer = Tracer $ + traceWith peerSelectionTr + , Diffusion.dtDebugPeerSelectionInitiatorTracer = Tracer $ + traceWith debugPeerSelectionTr + , Diffusion.dtDebugPeerSelectionInitiatorResponderTracer = Tracer $ + traceWith debugPeerSelectionResponderTr + , Diffusion.dtTracePeerSelectionCounters = Tracer $ + traceWith peerSelectionCountersTr + , Diffusion.dtTraceChurnCounters = Tracer $ + traceWith churnCountersTr + , Diffusion.dtPeerSelectionActionsTracer = Tracer $ + traceWith peerSelectionActionsTr + , Diffusion.dtConnectionManagerTracer = Tracer $ + traceWith connectionManagerTr + , Diffusion.dtConnectionManagerTransitionTracer = Tracer $ + traceWith connectionManagerTransitionsTr + , Diffusion.dtServerTracer = Tracer $ + traceWith serverTr + , Diffusion.dtInboundGovernorTracer = Tracer $ + traceWith inboundGovernorTr + , Diffusion.dtLocalInboundGovernorTracer = Tracer $ + traceWith localInboundGovernorTr + , Diffusion.dtInboundGovernorTransitionTracer = Tracer $ + traceWith inboundGovernorTransitionsTr + , Diffusion.dtLocalConnectionManagerTracer = Tracer $ + traceWith localConnectionManagerTr + , Diffusion.dtLocalServerTracer = Tracer $ + traceWith localServerTr + , Diffusion.dtTraceLedgerPeersTracer = Tracer $ + traceWith dtLedgerPeersTr + , Diffusion.dtDnsTracer = Tracer $ + traceWith dtDnsTr } diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/ChainDB.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/ChainDB.hs index 1bf1c7a1284..e41a61bdf98 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/ChainDB.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/ChainDB.hs @@ -399,8 +399,8 @@ instance ( LogFormatting (Header blk) , InspectLedger blk , HasIssuer blk ) => LogFormatting (ChainDB.TraceAddBlockEvent blk) where - forHuman (ChainDB.IgnoreBlockOlderThanK pt) = - "Ignoring block older than K: " <> renderRealPointAsPhrase pt + forHuman (ChainDB.IgnoreBlockOlderThanImmTip pt) = + "Ignoring block older than ImmTip: " <> renderRealPointAsPhrase pt forHuman (ChainDB.IgnoreBlockAlreadyInVolatileDB pt) = "Ignoring block already in DB: " <> renderRealPointAsPhrase pt forHuman (ChainDB.IgnoreInvalidBlock pt _reason) = @@ -411,12 +411,10 @@ instance ( LogFormatting (Header blk) "About to add block to queue: " <> renderRealPointAsPhrase pt FallingEdgeWith sz -> "Block added to queue: " <> renderRealPointAsPhrase pt <> ", queue size " <> condenseT sz - forHuman (ChainDB.PoppedBlockFromQueue edgePt) = - case edgePt of - RisingEdge -> - "Popping block from queue" - FallingEdgeWith pt -> - "Popped block from queue: " <> renderRealPointAsPhrase pt + forHuman ChainDB.PoppingFromQueue = + "Popping block from queue" + forHuman (ChainDB.PoppedBlockFromQueue pt) = + "Popped block from queue: " <> renderRealPointAsPhrase pt forHuman (ChainDB.StoreButDontChange pt) = "Ignoring block: " <> renderRealPointAsPhrase pt forHuman (ChainDB.TryAddToCurrentChain pt) = @@ -437,14 +435,18 @@ instance ( LogFormatting (Header blk) RisingEdge -> "Chain about to add block " <> renderRealPointAsPhrase pt FallingEdge -> "Chain added block " <> renderRealPointAsPhrase pt forHuman (ChainDB.PipeliningEvent ev') = forHumanOrMachine ev' - forHuman ChainDB.AddedReprocessLoEBlocksToQueue = - "Added request to queue to reprocess blocks postponed by LoE." + forHuman (ChainDB.AddedReprocessLoEBlocksToQueue edgeSz) = + case edgeSz of + RisingEdge -> + "About to add request to queue to reprocess blocks postponed by LoE." + FallingEdgeWith sz -> + "Added request to queue to reprocess blocks postponed by LoE" <> ", queue size " <> condenseT sz forHuman ChainDB.PoppedReprocessLoEBlocksFromQueue = "Poppped request from queue to reprocess blocks postponed by LoE." forHuman ChainDB.ChainSelectionLoEDebug{} = "ChainDB LoE debug event" - forMachine dtal (ChainDB.IgnoreBlockOlderThanK pt) = - mconcat [ "kind" .= String "IgnoreBlockOlderThanK" + forMachine dtal (ChainDB.IgnoreBlockOlderThanImmTip pt) = + mconcat [ "kind" .= String "IgnoreBlockOlderThanImmTip" , "block" .= forMachine dtal pt ] forMachine dtal (ChainDB.IgnoreBlockAlreadyInVolatileDB pt) = mconcat [ "kind" .= String "IgnoreBlockAlreadyInVolatileDB" @@ -459,11 +461,12 @@ instance ( LogFormatting (Header blk) , case edgeSz of RisingEdge -> "risingEdge" .= True FallingEdgeWith sz -> "queueSize" .= toJSON sz ] - forMachine dtal (ChainDB.PoppedBlockFromQueue edgePt) = + forMachine _dtal ChainDB.PoppingFromQueue = + mconcat [ "kind" .= String "PoppingFromQueue" + ] + forMachine dtal (ChainDB.PoppedBlockFromQueue pt) = mconcat [ "kind" .= String "TraceAddBlockEvent.PoppedBlockFromQueue" - , case edgePt of - RisingEdge -> "risingEdge" .= True - FallingEdgeWith pt -> "block" .= forMachine dtal pt ] + , "block" .= forMachine dtal pt ] forMachine dtal (ChainDB.StoreButDontChange pt) = mconcat [ "kind" .= String "StoreButDontChange" , "block" .= forMachine dtal pt ] @@ -556,8 +559,11 @@ instance ( LogFormatting (Header blk) <> [ "risingEdge" .= True | RisingEdge <- [enclosing] ] forMachine dtal (ChainDB.PipeliningEvent ev') = forMachine dtal ev' - forMachine _dtal ChainDB.AddedReprocessLoEBlocksToQueue = - mconcat [ "kind" .= String "AddedReprocessLoEBlocksToQueue" ] + forMachine _dtal (ChainDB.AddedReprocessLoEBlocksToQueue edgeSz) = + mconcat [ "kind" .= String "AddedReprocessLoEBlocksToQueue" + , case edgeSz of + RisingEdge -> "risingEdge" .= True + FallingEdgeWith sz -> "queueSize" .= toJSON sz ] forMachine _dtal ChainDB.PoppedReprocessLoEBlocksFromQueue = mconcat [ "kind" .= String "PoppedReprocessLoEBlocksFromQueue" ] forMachine dtal (ChainDB.ChainSelectionLoEDebug curChain loeFrag) = @@ -619,14 +625,16 @@ instance ( LogFormatting (Header blk) instance MetaTrace (ChainDB.TraceAddBlockEvent blk) where - namespaceFor ChainDB.IgnoreBlockOlderThanK {} = - Namespace [] ["IgnoreBlockOlderThanK"] + namespaceFor ChainDB.IgnoreBlockOlderThanImmTip {} = + Namespace [] ["IgnoreBlockOlderThanImmTip"] namespaceFor ChainDB.IgnoreBlockAlreadyInVolatileDB {} = Namespace [] ["IgnoreBlockAlreadyInVolatileDB"] namespaceFor ChainDB.IgnoreInvalidBlock {} = Namespace [] ["IgnoreInvalidBlock"] namespaceFor ChainDB.AddedBlockToQueue {} = Namespace [] ["AddedBlockToQueue"] + namespaceFor ChainDB.PoppingFromQueue {} = + Namespace [] ["PoppingFromQueue"] namespaceFor ChainDB.PoppedBlockFromQueue {} = Namespace [] ["PoppedBlockFromQueue"] namespaceFor ChainDB.AddedBlockToVolatileDB {} = @@ -647,7 +655,7 @@ instance MetaTrace (ChainDB.TraceAddBlockEvent blk) where nsPrependInner "AddBlockValidation" (namespaceFor ev') namespaceFor (ChainDB.PipeliningEvent ev') = nsPrependInner "PipeliningEvent" (namespaceFor ev') - namespaceFor ChainDB.AddedReprocessLoEBlocksToQueue = + namespaceFor ChainDB.AddedReprocessLoEBlocksToQueue {} = Namespace [] ["AddedReprocessLoEBlocksToQueue"] namespaceFor ChainDB.PoppedReprocessLoEBlocksFromQueue = Namespace [] ["PoppedReprocessLoEBlocksFromQueue"] @@ -659,6 +667,7 @@ instance MetaTrace (ChainDB.TraceAddBlockEvent blk) where severityFor (Namespace _ ["IgnoreInvalidBlock"]) _ = Just Info severityFor (Namespace _ ["AddedBlockToQueue"]) _ = Just Debug severityFor (Namespace _ ["AddedBlockToVolatileDB"]) _ = Just Debug + severityFor (Namespace _ ["PoppingFromQueue"]) _ = Just Debug severityFor (Namespace _ ["PoppedBlockFromQueue"]) _ = Just Debug severityFor (Namespace _ ["TryAddToCurrentChain"]) _ = Just Debug severityFor (Namespace _ ["TrySwitchToAFork"]) _ = Just Info @@ -778,6 +787,7 @@ instance MetaTrace (ChainDB.TraceAddBlockEvent blk) where ] documentFor (Namespace _ ["AddedBlockToVolatileDB"]) = Just "A block was added to the Volatile DB" + documentFor (Namespace _ ["PoppingFromQueue"]) = Just "" documentFor (Namespace _ ["PoppedBlockFromQueue"]) = Just "" documentFor (Namespace _ ["TryAddToCurrentChain"]) = Just $ mconcat [ "The block fits onto the current chain, we'll try to use it to extend" @@ -819,6 +829,7 @@ instance MetaTrace (ChainDB.TraceAddBlockEvent blk) where , Namespace [] ["IgnoreInvalidBlock"] , Namespace [] ["AddedBlockToQueue"] , Namespace [] ["AddedBlockToVolatileDB"] + , Namespace [] ["PoppingFromQueue"] , Namespace [] ["PoppedBlockFromQueue"] , Namespace [] ["TryAddToCurrentChain"] , Namespace [] ["TrySwitchToAFork"] @@ -1821,6 +1832,7 @@ instance LogFormatting LedgerDB.TraceForkerEvent where forMachine _dtals LedgerDB.ForkerReadStatistics = mempty forMachine _dtals LedgerDB.ForkerPushStart = mempty forMachine _dtals LedgerDB.ForkerPushEnd = mempty + forMachine _dtals LedgerDB.DanglingForkerClosed = mempty forHuman LedgerDB.ForkerOpen = "Opened forker" forHuman LedgerDB.ForkerCloseUncommitted = "Forker closed without committing" @@ -1832,6 +1844,7 @@ instance LogFormatting LedgerDB.TraceForkerEvent where forHuman LedgerDB.ForkerReadStatistics = "Gathering statistics" forHuman LedgerDB.ForkerPushStart = "Started to push" forHuman LedgerDB.ForkerPushEnd = "Pushed" + forHuman LedgerDB.DanglingForkerClosed = "Closed dangling forker" instance MetaTrace LedgerDB.TraceForkerEventWithKey where namespaceFor (LedgerDB.TraceForkerEventWithKey _ ev) = @@ -1854,6 +1867,7 @@ instance MetaTrace LedgerDB.TraceForkerEvent where namespaceFor LedgerDB.ForkerReadStatistics = Namespace [] ["Statistics"] namespaceFor LedgerDB.ForkerPushStart = Namespace [] ["StartPush"] namespaceFor LedgerDB.ForkerPushEnd = Namespace [] ["FinishPush"] + namespaceFor LedgerDB.DanglingForkerClosed = Namespace [] ["DanglingForkerClosed"] severityFor _ _ = Just Debug @@ -1871,6 +1885,7 @@ instance MetaTrace LedgerDB.TraceForkerEvent where documentFor (Namespace _ ("Statistics" : _tl)) = Just "Statistics were gathered from the forker" documentFor (Namespace _ ("StartPush" : _tl)) = Just "A ledger state is going to be pushed to the forker" documentFor (Namespace _ ("FinishPush" : _tl)) = Just "A ledger state was pushed to the forker" + documentFor (Namespace _ ("DanglingForkerClosed" : _tl)) = Just "A dangling forker was closed" documentFor _ = Nothing allNamespaces = [ @@ -1884,6 +1899,7 @@ instance MetaTrace LedgerDB.TraceForkerEvent where , Namespace [] ["Statistics"] , Namespace [] ["StartPush"] , Namespace [] ["FinishPush"] + , Namespace [] ["DanglingForkerClosed"] ] -------------------------------------------------------------------------------- @@ -2223,40 +2239,40 @@ instance MetaTrace V1.BackingStoreValueHandleTrace where ] instance LogFormatting V2.FlavorImplSpecificTrace where - forMachine _dtal V2.FlavorImplSpecificTraceInMemory = - mconcat [ "kind" .= String "InMemory" ] - forMachine _dtal V2.FlavorImplSpecificTraceOnDisk = - mconcat [ "kind" .= String "OnDisk" ] + forMachine _dtal V2.TraceLedgerTablesHandleCreate = + mconcat [ "kind" .= String "LedgerTablesHandleCreate" ] + forMachine _dtal V2.TraceLedgerTablesHandleClose = + mconcat [ "kind" .= String "LedgerTablesHandleClose" ] - forHuman V2.FlavorImplSpecificTraceInMemory = - "An in-memory backing store event was traced" - forHuman V2.FlavorImplSpecificTraceOnDisk = - "An on-disk backing store event was traced" + forHuman V2.TraceLedgerTablesHandleCreate = + "Created a new 'LedgerTablesHandle', potentially by duplicating an existing one" + forHuman V2.TraceLedgerTablesHandleClose = + "Closed a 'LedgerTablesHandle'" instance MetaTrace V2.FlavorImplSpecificTrace where - namespaceFor V2.FlavorImplSpecificTraceInMemory = - Namespace [] ["InMemory"] - namespaceFor V2.FlavorImplSpecificTraceOnDisk = - Namespace [] ["OnDisk"] + namespaceFor V2.TraceLedgerTablesHandleCreate = + Namespace [] ["LedgerTablesHandleCreate"] + namespaceFor V2.TraceLedgerTablesHandleClose = + Namespace [] ["LedgerTablesHandleClose"] - severityFor (Namespace _ ["InMemory"]) _ = Just Info - severityFor (Namespace _ ["OnDisk"]) _ = Just Info + severityFor (Namespace _ ["LedgerTablesHandleCreate"]) _ = Just Debug + severityFor (Namespace _ ["LedgerTablesHandleClose"]) _ = Just Debug severityFor _ _ = Nothing -- suspicious - privacyFor (Namespace _ ["InMemory"]) _ = Just Public - privacyFor (Namespace _ ["OnDisk"]) _ = Just Public + privacyFor (Namespace _ ["LedgerTablesHandleCreate"]) _ = Just Public + privacyFor (Namespace _ ["LedgerTablesHandleClose"]) _ = Just Public privacyFor _ _ = Just Public - documentFor (Namespace _ ["InMemory"]) = + documentFor (Namespace _ ["LedgerTablesHandleCreate"]) = Just "An in-memory backing store event" - documentFor (Namespace _ ["OnDisk"]) = + documentFor (Namespace _ ["LedgerTablesHandleClose"]) = Just "An on-disk backing store event" documentFor _ = Nothing allNamespaces = - [ Namespace [] ["InMemory"] - , Namespace [] ["OnDisk"] + [ Namespace [] ["LedgerTablesHandleCreate"] + , Namespace [] ["LedgerTablesHandleClose"] ] -------------------------------------------------------------------------------- diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs index 9d978244a14..5d76470c82a 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs @@ -21,6 +21,7 @@ module Cardano.Node.Tracing.Tracers.Consensus ) where +import qualified Cardano.KESAgent.Processes.ServiceClient as Agent import Cardano.Logging import Cardano.Node.Queries (HasKESInfo (..)) import Cardano.Node.Tracing.Era.Byron () @@ -55,6 +56,7 @@ import Ouroboros.Consensus.Node.GSM import Ouroboros.Consensus.Node.Run (SerialiseNodeToNodeConstraints, estimateBlockSize) import Ouroboros.Consensus.Node.Tracers import qualified Ouroboros.Consensus.Protocol.Ledger.HotKey as HotKey +import Ouroboros.Consensus.Protocol.Praos.AgentClient import Ouroboros.Consensus.Util.Enclose import qualified Ouroboros.Network.AnchoredFragment as AF import qualified Ouroboros.Network.AnchoredSeq as AS @@ -1293,22 +1295,16 @@ instance [ "kind" .= String "TraceMempoolAttemptingAdd" , "tx" .= forMachine dtal tx ] - forMachine dtal (TraceMempoolLedgerFound p) = - mconcat - [ "kind" .= String "TraceMempoolLedgerFound" - , "tip" .= forMachine dtal p - ] - forMachine dtal (TraceMempoolLedgerNotFound p) = - mconcat - [ "kind" .= String "TraceMempoolLedgerNotFound" - , "tip" .= forMachine dtal p - ] forMachine _dtal (TraceMempoolSynced et) = mconcat [ "kind" .= String "TraceMempoolSynced" , "enclosingTime" .= et ] + forMachine _dtal TraceMempoolTipMovedBetweenSTMBlocks = + mconcat + [ "kind" .= String "TraceMempoolTipMovedBetweenSTMBlocks" + ] asMetrics (TraceMempoolAddedTx _tx _mpSzBefore mpSz) = [ IntM "txsInMempool" (fromIntegral $ msNumTxs mpSz) @@ -1334,8 +1330,8 @@ instance asMetrics TraceMempoolSyncNotNeeded {} = [] asMetrics TraceMempoolAttemptingAdd {} = [] - asMetrics TraceMempoolLedgerFound {} = [] - asMetrics TraceMempoolLedgerNotFound {} = [] + + asMetrics TraceMempoolTipMovedBetweenSTMBlocks {} = [] instance LogFormatting MempoolSize where forMachine _dtal MempoolSize{msNumTxs, msNumBytes} = @@ -1353,8 +1349,8 @@ instance MetaTrace (TraceEventMempool blk) where namespaceFor TraceMempoolSynced {} = Namespace [] ["Synced"] namespaceFor TraceMempoolSyncNotNeeded {} = Namespace [] ["SyncNotNeeded"] namespaceFor TraceMempoolAttemptingAdd {} = Namespace [] ["AttemptAdd"] - namespaceFor TraceMempoolLedgerFound {} = Namespace [] ["LedgerFound"] - namespaceFor TraceMempoolLedgerNotFound {} = Namespace [] ["LedgerNotFound"] + namespaceFor TraceMempoolTipMovedBetweenSTMBlocks {} = Namespace [] ["TipMovedBetweenSTMBlocks"] + severityFor (Namespace _ ["AddedTx"]) _ = Just Info severityFor (Namespace _ ["RejectedTx"]) _ = Just Info @@ -1363,8 +1359,7 @@ instance MetaTrace (TraceEventMempool blk) where severityFor (Namespace _ ["ManuallyRemovedTxs"]) _ = Just Warning severityFor (Namespace _ ["SyncNotNeeded"]) _ = Just Debug severityFor (Namespace _ ["AttemptAdd"]) _ = Just Debug - severityFor (Namespace _ ["LedgerFound"]) _ = Just Debug - severityFor (Namespace _ ["LedgerNotFound"]) _ = Just Debug + severityFor (Namespace [] ["TipMovedBetweenSTMBlocks"]) _ = Just Debug severityFor _ _ = Nothing metricsDocFor (Namespace _ ["AddedTx"]) = @@ -1408,12 +1403,8 @@ instance MetaTrace (TraceEventMempool blk) where "The mempool and the LedgerDB are syncing or in sync depending on the argument on the trace." documentFor (Namespace _ ["AttemptAdd"]) = Just "Mempool is about to try to validate and add a transaction." - documentFor (Namespace _ ["LedgerNotFound"]) = Just $ mconcat - [ "Ledger state requested by the mempool no longer in LedgerDB." - , " Will have to re-sync." - ] - documentFor (Namespace _ ["LedgerFound"]) = Just - "Ledger state requested by the mempool is in the LedgerDB." + documentFor (Namespace _ ["TipMovedBetweenSTMBlocks"]) = Just + "LedgerDB moved to an alternative fork between two reads during re-sync." documentFor _ = Nothing allNamespaces = @@ -1424,8 +1415,7 @@ instance MetaTrace (TraceEventMempool blk) where , Namespace [] ["Synced"] , Namespace [] ["SyncNotNeeded"] , Namespace [] ["AttemptAdd"] - , Namespace [] ["LedgerNotFound"] - , Namespace [] ["LedgerFound"] + , Namespace [] ["TipMovedBetweenSTMBlocks"] ] -------------------------------------------------------------------------------- @@ -2072,6 +2062,14 @@ instance ( LogFormatting selection ) => LogFormatting (TraceGsmEvent selection) where forMachine dtal = \case + GsmEventInitializedInCaughtUp -> + mconcat + [ "kind" .= String "GsmEventInitializedInCaughtUp" + ] + GsmEventInitializedInPreSyncing -> + mconcat + [ "kind" .= String "GsmEventInitializedInPreSyncing" + ] GsmEventEnterCaughtUp i s -> mconcat [ "kind" .= String "GsmEventEnterCaughtUp" @@ -2101,6 +2099,8 @@ instance ( LogFormatting selection GsmEventLeaveCaughtUp {} -> [preSyncing] GsmEventPreSyncingToSyncing {} -> [syncing] GsmEventSyncingToPreSyncing {} -> [preSyncing] + GsmEventInitializedInCaughtUp {} -> [caughtUp] + GsmEventInitializedInPreSyncing {} -> [preSyncing] where preSyncing = IntM "GSM.state" 0 syncing = IntM "GSM.state" 1 @@ -2109,6 +2109,8 @@ instance ( LogFormatting selection instance MetaTrace (TraceGsmEvent selection) where namespaceFor = \case + GsmEventInitializedInCaughtUp -> Namespace [] ["InitializedInCaughtUp"] + GsmEventInitializedInPreSyncing -> Namespace [] ["InitializedInPreSyncing"] GsmEventEnterCaughtUp {} -> Namespace [] ["EnterCaughtUp"] GsmEventLeaveCaughtUp {} -> Namespace [] ["LeaveCaughtUp"] GsmEventPreSyncingToSyncing {} -> Namespace [] ["PreSyncingToSyncing"] @@ -2116,13 +2118,18 @@ instance MetaTrace (TraceGsmEvent selection) where severityFor ns _ = case ns of - Namespace _ ["EnterCaughtUp"] -> Just Notice - Namespace _ ["LeaveCaughtUp"] -> Just Warning - Namespace _ ["PreSyncingToSyncing"] -> Just Notice - Namespace _ ["SyncingToPreSyncing"] -> Just Notice - Namespace _ _ -> Nothing + Namespace _ ["InitializedInCaughtUp"] -> Just Notice + Namespace _ ["InitializedInPreSyncing"] -> Just Notice + Namespace _ ["EnterCaughtUp"] -> Just Notice + Namespace _ ["LeaveCaughtUp"] -> Just Warning + Namespace _ ["PreSyncingToSyncing"] -> Just Notice + Namespace _ ["SyncingToPreSyncing"] -> Just Notice + Namespace _ _ -> Nothing documentFor = \case + Namespace _ ["InitializedInCaughtUp"] -> Just "The GSM was initialized in the 'CaughtUp' state" + Namespace _ ["InitializedInPreSyncing"] -> Just "The GSM was initialized in the 'PreSyncing' state" + Namespace _ ["EnterCaughtUp"] -> Just "Node is caught up" Namespace _ ["LeaveCaughtUp"] -> @@ -2137,11 +2144,13 @@ instance MetaTrace (TraceGsmEvent selection) where Nothing metricsDocFor = \case - Namespace _ ["EnterCaughtUp"] -> doc - Namespace _ ["LeaveCaughtUp"] -> doc - Namespace _ ["PreSyncingToSyncing"] -> doc - Namespace _ ["SyncingToPreSyncing"] -> doc - Namespace _ _ -> [] + Namespace _ ["InitializedInCaughtUp"] -> doc + Namespace _ ["InitializedInPreSyncing"] -> doc + Namespace _ ["EnterCaughtUp"] -> doc + Namespace _ ["LeaveCaughtUp"] -> doc + Namespace _ ["PreSyncingToSyncing"] -> doc + Namespace _ ["SyncingToPreSyncing"] -> doc + Namespace _ _ -> [] where doc = [ ("GSM.state" @@ -2150,7 +2159,9 @@ instance MetaTrace (TraceGsmEvent selection) where ] allNamespaces = - [ Namespace [] ["EnterCaughtUp"] + [ Namespace [] ["InitializedInCaughtUp"] + , Namespace [] ["InitializedInPreSyncing"] + , Namespace [] ["EnterCaughtUp"] , Namespace [] ["LeaveCaughtUp"] , Namespace [] ["PreSyncingToSyncing"] , Namespace [] ["SyncingToPreSyncing"] @@ -2291,3 +2302,140 @@ instance ( StandardHash blk ] forHuman = showT + +{------------------------------------------------------------------------------- + KES-agent +-------------------------------------------------------------------------------} + +-------------------------------------------------------------------------------- +-- KES Agent tracer +-------------------------------------------------------------------------------- + +instance LogFormatting Agent.ServiceClientTrace where + forMachine _dtal = \case + Agent.ServiceClientVersionHandshakeTrace _vhdt -> + mconcat [ "kind" .= String "ServiceClientVersionHandshakeTrace" ] + Agent.ServiceClientVersionHandshakeFailed -> + mconcat [ "kind" .= String "ServiceClientVersionHandshakeFailed" ] + Agent.ServiceClientDriverTrace _sdt -> + mconcat [ "kind" .= String "ServiceClientDriverTrace" ] + Agent.ServiceClientSocketClosed -> + mconcat [ "kind" .= String "ServiceClientSocketClosed" ] + Agent.ServiceClientConnected _s -> + mconcat [ "kind" .= String "ServiceClientConnected" ] + Agent.ServiceClientAttemptReconnect{} -> + mconcat [ "kind" .= String "ServiceClientAttemptReconnect" ] + Agent.ServiceClientReceivedKey _tbt -> + mconcat [ "kind" .= String "ServiceClientReceivedKey" ] + Agent.ServiceClientDeclinedKey _tbt -> + mconcat [ "kind" .= String "ServiceClientDeclinedKey" ] + Agent.ServiceClientDroppedKey -> + mconcat [ "kind" .= String "ServiceClientDroppedKey" ] + Agent.ServiceClientOpCertNumberCheck _ _ -> + mconcat [ "kind" .= String "ServiceClientOpCertNumberCheck" ] + Agent.ServiceClientAbnormalTermination _s -> + mconcat [ "kind" .= String "ServiceClientAbnormalTermination" ] + Agent.ServiceClientStopped -> + mconcat [ "kind" .= String "ServiceClientStopped" ] + + forHuman = showT + +instance MetaTrace Agent.ServiceClientTrace where + namespaceFor = \case + Agent.ServiceClientVersionHandshakeTrace _vhdt -> + Namespace [] ["ServiceClientVersionHandshakeTrace"] + Agent.ServiceClientVersionHandshakeFailed -> + Namespace [] ["ServiceClientVersionHandshakeFailed"] + Agent.ServiceClientDriverTrace _sdt -> + Namespace [] ["ServiceClientDriverTrace"] + Agent.ServiceClientSocketClosed -> + Namespace [] ["ServiceClientSocketClosed"] + Agent.ServiceClientConnected _s -> + Namespace [] ["ServiceClientConnected"] + Agent.ServiceClientAttemptReconnect{} -> + Namespace [] ["ServiceClientAttemptReconnect"] + Agent.ServiceClientReceivedKey _tbt -> + Namespace [] ["ServiceClientReceivedKey"] + Agent.ServiceClientDeclinedKey _tbt -> + Namespace [] ["ServiceClientDeclinedKey"] + Agent.ServiceClientDroppedKey -> + Namespace [] ["ServiceClientDroppedKey"] + Agent.ServiceClientOpCertNumberCheck _ _ -> + Namespace [] ["ServiceClientOpCertNumberCheck"] + Agent.ServiceClientAbnormalTermination _s -> + Namespace [] ["ServiceClientAbnormalTermination"] + Agent.ServiceClientStopped -> + Namespace [] ["ServiceClientStopped"] + + severityFor ns _ = case ns of + Namespace [] ["ServiceClientVersionHandshakeTrace"] -> + Just Debug + Namespace [] ["ServiceClientVersionHandshakeFailed"] -> + Just Error + Namespace [] ["ServiceClientDriverTrace"] -> + Just Debug + Namespace [] ["ServiceClientSocketClosed"] -> + Just Info + Namespace [] ["ServiceClientConnected"] -> + Just Info + Namespace [] ["ServiceClientAttemptReconnect"] -> + Just Info + Namespace [] ["ServiceClientReceivedKey"] -> + Just Info + Namespace [] ["ServiceClientDeclinedKey"] -> + Just Info + Namespace [] ["ServiceClientDroppedKey"] -> + Just Info + Namespace [] ["ServiceClientOpCertNumberCheck"] -> + Just Debug + Namespace [] ["ServiceClientAbnormalTermination"] -> + Just Error + Namespace [] ["ServiceClientStopped"] -> + Just Info + Namespace _ _ -> Nothing + + documentFor _ = Nothing + allNamespaces = + [ Namespace [] ["ServiceClientVersionHandshakeTrace"] + , Namespace [] ["ServiceClientVersionHandshakeFailed"] + , Namespace [] ["ServiceClientDriverTrace"] + , Namespace [] ["ServiceClientSocketClosed"] + , Namespace [] ["ServiceClientConnected"] + , Namespace [] ["ServiceClientAttemptReconnect"] + , Namespace [] ["ServiceClientReceivedKey"] + , Namespace [] ["ServiceClientDeclinedKey"] + , Namespace [] ["ServiceClientDroppedKey"] + , Namespace [] ["ServiceClientOpCertNumberCheck"] + , Namespace [] ["ServiceClientAbnormalTermination"] + , Namespace [] ["ServiceClientStopped"] + ] + +instance LogFormatting KESAgentClientTrace where + forMachine dtal = \case + KESAgentClientException ex -> mconcat + [ "kind" .= String "KESAgentClientException" + , "exception" .= String (Text.pack $ show ex) + ] + KESAgentClientTrace t -> mconcat + [ "kind" .= String "KESAgentClientTrace" + , "trace" .= forMachine dtal t + ] + + forHuman = showT + + +instance MetaTrace KESAgentClientTrace where + namespaceFor = \case + KESAgentClientException _ -> + Namespace [] ["KESAgentClientException"] + KESAgentClientTrace t -> nsCast $ namespaceFor t + + severityFor (Namespace [] ["KESAgentClientException"]) _ = Just Error + severityFor (Namespace [] ["KESAgentClientTrace"]) _ = Just Info + severityFor _ _ = Nothing + + documentFor _ = Nothing + + allNamespaces = + Namespace [] ["KESAgentClientException"] : + fmap nsCast (allNamespaces :: [Namespace Agent.ServiceClientTrace]) diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/Diffusion.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/Diffusion.hs index 9230da8c202..51fba51b8d0 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/Diffusion.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/Diffusion.hs @@ -17,32 +17,32 @@ module Cardano.Node.Tracing.Tracers.Diffusion import Cardano.Logging import Cardano.Node.Configuration.TopologyP2P () - -#ifdef linux_HOST_OS -import Network.Mux.TCPInfo (StructTCPInfo (..)) -#endif -import qualified Ouroboros.Network.Diffusion.Common as Common -import qualified Ouroboros.Network.NodeToNode as NtN +import qualified Ouroboros.Network.Diffusion.Types as Diff import Ouroboros.Network.PeerSelection.LedgerPeers (NumberOfPeers (..), PoolStake (..), TraceLedgerPeers (..)) import qualified Ouroboros.Network.Protocol.Handshake.Type as HS -import qualified Network.Mux as Mux -import Network.Mux.Types (SDUHeader (..), unRemoteClockModel) -import Network.TypedProtocol.Codec (AnyMessage (AnyMessageAndAgency)) import Data.Aeson (Value (String), (.=)) import qualified Data.List as List -import Data.Text (pack) +import Data.Text (Text, pack) +import Data.Typeable import Formatting +import qualified Network.Mux as Mux +#ifdef linux_HOST_OS +import Network.Mux.TCPInfo (StructTCPInfo (..)) +#endif +import Network.Mux.Types (SDUHeader (..), unRemoteClockModel) +import Network.TypedProtocol.Codec (AnyMessage (..)) + -------------------------------------------------------------------------------- -- Mux Tracer -------------------------------------------------------------------------------- -instance (LogFormatting peer, LogFormatting Mux.Trace) => - LogFormatting (Mux.WithBearer peer Mux.Trace) where +instance (LogFormatting peer, LogFormatting tr, Typeable tr) => + LogFormatting (Mux.WithBearer peer tr) where forMachine dtal (Mux.WithBearer b ev) = - mconcat [ "kind" .= String "Mux.Trace" + mconcat [ "kind" .= (show . typeOf $ ev) , "bearer" .= forMachine dtal b , "event" .= forMachine dtal ev ] forHuman (Mux.WithBearer b ev) = "With mux bearer " <> forHumanOrMachine b @@ -63,7 +63,7 @@ instance MetaTrace tr => MetaTrace (Mux.WithBearer peer tr) where metricsDocFor ns = metricsDocFor (nsCast ns :: Namespace tr) allNamespaces = map nsCast (allNamespaces :: [Namespace tr]) -instance LogFormatting Mux.Trace where +instance LogFormatting Mux.BearerTrace where forMachine _dtal Mux.TraceRecvHeaderStart = mconcat [ "kind" .= String "Mux.TraceRecvHeaderStart" , "msg" .= String "Bearer Receive Header Start" @@ -122,75 +122,6 @@ instance LogFormatting Mux.Trace where [ "kind" .= String "Mux.TraceSendEnd" , "msg" .= String "Bearer Send End" ] - forMachine _dtal (Mux.TraceState new) = mconcat - [ "kind" .= String "Mux.TraceState" - , "msg" .= String "MuxState" - , "state" .= String (showT new) - ] - forMachine _dtal (Mux.TraceCleanExit mid dir) = mconcat - [ "kind" .= String "Mux.TraceCleanExit" - , "msg" .= String "Miniprotocol terminated cleanly" - , "miniProtocolNum" .= String (showT mid) - , "miniProtocolDir" .= String (showT dir) - ] - forMachine _dtal (Mux.TraceExceptionExit mid dir exc) = mconcat - [ "kind" .= String "Mux.TraceExceptionExit" - , "msg" .= String "Miniprotocol terminated with exception" - , "miniProtocolNum" .= String (showT mid) - , "miniProtocolDir" .= String (showT dir) - , "exception" .= String (showT exc) - ] - forMachine _dtal (Mux.TraceChannelRecvStart mid) = mconcat - [ "kind" .= String "Mux.TraceChannelRecvStart" - , "msg" .= String "Channel Receive Start" - , "miniProtocolNum" .= String (showT mid) - ] - forMachine _dtal (Mux.TraceChannelRecvEnd mid len) = mconcat - [ "kind" .= String "Mux.TraceChannelRecvEnd" - , "msg" .= String "Channel Receive End" - , "miniProtocolNum" .= String (showT mid) - , "length" .= String (showT len) - ] - forMachine _dtal (Mux.TraceChannelSendStart mid len) = mconcat - [ "kind" .= String "Mux.TraceChannelSendStart" - , "msg" .= String "Channel Send Start" - , "miniProtocolNum" .= String (showT mid) - , "length" .= String (showT len) - ] - forMachine _dtal (Mux.TraceChannelSendEnd mid) = mconcat - [ "kind" .= String "Mux.TraceChannelSendEnd" - , "msg" .= String "Channel Send End" - , "miniProtocolNum" .= String (showT mid) - ] - forMachine _dtal Mux.TraceHandshakeStart = mconcat - [ "kind" .= String "Mux.TraceHandshakeStart" - , "msg" .= String "Handshake start" - ] - forMachine _dtal (Mux.TraceHandshakeClientEnd duration) = mconcat - [ "kind" .= String "Mux.TraceHandshakeClientEnd" - , "msg" .= String "Handshake Client end" - , "duration" .= String (showT duration) - ] - forMachine _dtal Mux.TraceHandshakeServerEnd = mconcat - [ "kind" .= String "Mux.TraceHandshakeServerEnd" - , "msg" .= String "Handshake Server end" - ] - forMachine dtal (Mux.TraceHandshakeClientError e duration) = mconcat - [ "kind" .= String "Mux.TraceHandshakeClientError" - , "msg" .= String "Handshake Client Error" - , "duration" .= String (showT duration) - -- Client Error can include an error string from the peer which could be very large. - , "error" .= if dtal >= DDetailed - then show e - else take 256 $ show e - ] - forMachine dtal (Mux.TraceHandshakeServerError e) = mconcat - [ "kind" .= String "Mux.TraceHandshakeServerError" - , "msg" .= String "Handshake Server Error" - , "error" .= if dtal >= DDetailed - then show e - else take 256 $ show e - ] forMachine _dtal Mux.TraceSDUReadTimeoutException = mconcat [ "kind" .= String "Mux.TraceSDUReadTimeoutException" , "msg" .= String "Timed out reading SDU" @@ -199,44 +130,7 @@ instance LogFormatting Mux.Trace where [ "kind" .= String "Mux.TraceSDUWriteTimeoutException" , "msg" .= String "Timed out writing SDU" ] - forMachine _dtal (Mux.TraceStartEagerly mid dir) = mconcat - [ "kind" .= String "Mux.TraceStartEagerly" - , "msg" .= String "Eagerly started" - , "miniProtocolNum" .= String (showT mid) - , "miniProtocolDir" .= String (showT dir) - ] - forMachine _dtal (Mux.TraceStartOnDemand mid dir) = mconcat - [ "kind" .= String "Mux.TraceStartOnDemand" - , "msg" .= String "Preparing to start" - , "miniProtocolNum" .= String (showT mid) - , "miniProtocolDir" .= String (showT dir) - ] - forMachine _dtal (Mux.TraceStartOnDemandAny mid dir) = mconcat - [ "kind" .= String "Mux.TraceStartOnDemandAny" - , "msg" .= String "Preparing to start" - , "miniProtocolNum" .= String (showT mid) - , "miniProtocolDir" .= String (showT dir) - ] - forMachine _dtal (Mux.TraceStartedOnDemand mid dir) = mconcat - [ "kind" .= String "Mux.TraceStartedOnDemand" - , "msg" .= String "Started on demand" - , "miniProtocolNum" .= String (showT mid) - , "miniProtocolDir" .= String (showT dir) - ] - forMachine _dtal (Mux.TraceTerminating mid dir) = mconcat - [ "kind" .= String "Mux.TraceTerminating" - , "msg" .= String "Terminating" - , "miniProtocolNum" .= String (showT mid) - , "miniProtocolDir" .= String (showT dir) - ] - forMachine _dtal Mux.TraceStopping = mconcat - [ "kind" .= String "Mux.TraceStopping" - , "msg" .= String "Mux stopping" - ] - forMachine _dtal Mux.TraceStopped = mconcat - [ "kind" .= String "Mux.TraceStopped" - , "msg" .= String "Mux stoppped" - ] + forMachine _dtal Mux.TraceEmitDeltaQ = mempty #ifdef linux_HOST_OS forMachine _dtal (Mux.TraceTCPInfo StructTCPInfo { tcpi_snd_mss, tcpi_rcv_mss, tcpi_lost, tcpi_retrans @@ -285,50 +179,11 @@ instance LogFormatting Mux.Trace where (unRemoteClockModel mhTimestamp) mhNum mhDir mhLength forHuman Mux.TraceSendEnd = "Bearer Send End" - forHuman (Mux.TraceState new) = - sformat ("State: " % shown) new - forHuman (Mux.TraceCleanExit mid dir) = - sformat ("Miniprotocol (" % shown % ") " % shown % " terminated cleanly") - mid dir - forHuman (Mux.TraceExceptionExit mid dir e) = - sformat ("Miniprotocol (" % shown % ") " % shown % - " terminated with exception " % shown) mid dir e - forHuman (Mux.TraceChannelRecvStart mid) = - sformat ("Channel Receive Start on " % shown) mid - forHuman (Mux.TraceChannelRecvEnd mid len) = - sformat ("Channel Receive End on (" % shown % ") " % int) mid len - forHuman (Mux.TraceChannelSendStart mid len) = - sformat ("Channel Send Start on (" % shown % ") " % int) mid len - forHuman (Mux.TraceChannelSendEnd mid) = - sformat ("Channel Send End on " % shown) mid - forHuman Mux.TraceHandshakeStart = - "Handshake start" - forHuman (Mux.TraceHandshakeClientEnd duration) = - sformat ("Handshake Client end, duration " % shown) duration - forHuman Mux.TraceHandshakeServerEnd = - "Handshake Server end" - forHuman (Mux.TraceHandshakeClientError e duration) = - -- Client Error can include an error string from the peer which could be very large. - sformat ("Handshake Client Error " % string % " duration " % shown) - (take 256 $ show e) duration - forHuman (Mux.TraceHandshakeServerError e) = - sformat ("Handshake Server Error " % shown) e forHuman Mux.TraceSDUReadTimeoutException = "Timed out reading SDU" forHuman Mux.TraceSDUWriteTimeoutException = "Timed out writing SDU" - forHuman (Mux.TraceStartEagerly mid dir) = - sformat ("Eagerly started (" % shown % ") in " % shown) mid dir - forHuman (Mux.TraceStartOnDemand mid dir) = - sformat ("Preparing to start (" % shown % ") in " % shown) mid dir - forHuman (Mux.TraceStartOnDemandAny mid dir) = - sformat ("Preparing to start (" % shown % ") in " % shown) mid dir - forHuman (Mux.TraceStartedOnDemand mid dir) = - sformat ("Started on demand (" % shown % ") in " % shown) mid dir - forHuman (Mux.TraceTerminating mid dir) = - sformat ("Terminating (" % shown % ") in " % shown) mid dir - forHuman Mux.TraceStopping = "Mux stopping" - forHuman Mux.TraceStopped = "Mux stoppped" + forHuman Mux.TraceEmitDeltaQ = mempty #ifdef linux_HOST_OS forHuman (Mux.TraceTCPInfo StructTCPInfo { tcpi_snd_mss, tcpi_rcv_mss, tcpi_lost, tcpi_retrans @@ -349,14 +204,14 @@ instance LogFormatting Mux.Trace where forHuman (Mux.TraceTCPInfo _ len) = sformat ("TCPInfo len " % int) len #endif -instance MetaTrace Mux.Trace where +instance MetaTrace Mux.BearerTrace where namespaceFor Mux.TraceRecvHeaderStart {} = Namespace [] ["RecvHeaderStart"] namespaceFor Mux.TraceRecvHeaderEnd {} = Namespace [] ["RecvHeaderEnd"] namespaceFor Mux.TraceRecvStart {} = Namespace [] ["RecvStart"] - namespaceFor Mux.TraceRecvRaw {} = + namespaceFor Mux.TraceRecvRaw {} = Namespace [] ["RecvRaw"] namespaceFor Mux.TraceRecvEnd {} = Namespace [] ["RecvEnd"] @@ -364,30 +219,6 @@ instance MetaTrace Mux.Trace where Namespace [] ["SendStart"] namespaceFor Mux.TraceSendEnd = Namespace [] ["SendEnd"] - namespaceFor Mux.TraceState {} = - Namespace [] ["State"] - namespaceFor Mux.TraceCleanExit {} = - Namespace [] ["CleanExit"] - namespaceFor Mux.TraceExceptionExit {} = - Namespace [] ["ExceptionExit"] - namespaceFor Mux.TraceChannelRecvStart {} = - Namespace [] ["ChannelRecvStart"] - namespaceFor Mux.TraceChannelRecvEnd {} = - Namespace [] ["ChannelRecvEnd"] - namespaceFor Mux.TraceChannelSendStart {} = - Namespace [] ["ChannelSendStart"] - namespaceFor Mux.TraceChannelSendEnd {} = - Namespace [] ["ChannelSendEnd"] - namespaceFor Mux.TraceHandshakeStart = - Namespace [] ["HandshakeStart"] - namespaceFor Mux.TraceHandshakeClientEnd {} = - Namespace [] ["HandshakeClientEnd"] - namespaceFor Mux.TraceHandshakeServerEnd = - Namespace [] ["HandshakeServerEnd"] - namespaceFor Mux.TraceHandshakeClientError {} = - Namespace [] ["HandshakeClientError"] - namespaceFor Mux.TraceHandshakeServerError {} = - Namespace [] ["HandshakeServerError"] namespaceFor Mux.TraceRecvDeltaQObservation {} = Namespace [] ["RecvDeltaQObservation"] namespaceFor Mux.TraceRecvDeltaQSample {} = @@ -396,20 +227,8 @@ instance MetaTrace Mux.Trace where Namespace [] ["SDUReadTimeoutException"] namespaceFor Mux.TraceSDUWriteTimeoutException = Namespace [] ["SDUWriteTimeoutException"] - namespaceFor Mux.TraceStartEagerly {} = - Namespace [] ["StartEagerly"] - namespaceFor Mux.TraceStartOnDemand {} = - Namespace [] ["StartOnDemand"] - namespaceFor Mux.TraceStartOnDemandAny {} = - Namespace [] ["StartOnDemandAny"] - namespaceFor Mux.TraceStartedOnDemand {} = - Namespace [] ["StartedOnDemand"] - namespaceFor Mux.TraceTerminating {} = - Namespace [] ["Terminating"] - namespaceFor Mux.TraceStopping = - Namespace [] ["Stopping"] - namespaceFor Mux.TraceStopped = - Namespace [] ["Stopped"] + namespaceFor Mux.TraceEmitDeltaQ = + Namespace [] ["TraceEmitDeltaQ"] namespaceFor Mux.TraceTCPInfo {} = Namespace [] ["TCPInfo"] @@ -420,32 +239,13 @@ instance MetaTrace Mux.Trace where severityFor (Namespace _ ["RecvEnd"]) _ = Just Debug severityFor (Namespace _ ["SendStart"]) _ = Just Debug severityFor (Namespace _ ["SendEnd"]) _ = Just Debug - severityFor (Namespace _ ["State"]) _ = Just Info - severityFor (Namespace _ ["CleanExit"]) _ = Just Notice - severityFor (Namespace _ ["ExceptionExit"]) _ = Just Notice - severityFor (Namespace _ ["ChannelRecvStart"]) _ = Just Debug - severityFor (Namespace _ ["ChannelRecvEnd"]) _ = Just Debug - severityFor (Namespace _ ["ChannelSendStart"]) _ = Just Debug - severityFor (Namespace _ ["ChannelSendEnd"]) _ = Just Debug - severityFor (Namespace _ ["HandshakeStart"]) _ = Just Debug - severityFor (Namespace _ ["HandshakeClientEnd"]) _ = Just Info - severityFor (Namespace _ ["HandshakeServerEnd"]) _ = Just Debug - severityFor (Namespace _ ["HandshakeClientError"]) _ = Just Error - severityFor (Namespace _ ["HandshakeServerError"]) _ = Just Error severityFor (Namespace _ ["RecvDeltaQObservation"]) _ = Just Debug severityFor (Namespace _ ["RecvDeltaQSample"]) _ = Just Debug severityFor (Namespace _ ["SDUReadTimeoutException"]) _ = Just Notice severityFor (Namespace _ ["SDUWriteTimeoutException"]) _ = Just Notice - severityFor (Namespace _ ["StartEagerly"]) _ = Just Debug - severityFor (Namespace _ ["StartOnDemand"]) _ = Just Debug - severityFor (Namespace _ ["StartOnDemandAny"]) _ = Just Debug - severityFor (Namespace _ ["StartedOnDemand"]) _ = Just Debug - severityFor (Namespace _ ["Terminating"]) _ = Just Debug - severityFor (Namespace _ ["Shutdown"]) _ = Just Debug - severityFor (Namespace _ ["Stopping"]) _ = Just Debug - severityFor (Namespace _ ["Stopped"]) _ = Just Debug severityFor (Namespace _ ["TCPInfo"]) _ = Just Debug - severityFor _ _ = Nothing + severityFor (Namespace _ ["TraceEmitDeltaQ"]) _ = Nothing + severityFor _ _ = Nothing documentFor (Namespace _ ["RecvHeaderStart"]) = Just "Bearer receive header start." @@ -461,30 +261,6 @@ instance MetaTrace Mux.Trace where "Bearer send start." documentFor (Namespace _ ["SendEnd"]) = Just "Bearer send end." - documentFor (Namespace _ ["State"]) = Just - "State." - documentFor (Namespace _ ["CleanExit"]) = Just - "Miniprotocol terminated cleanly." - documentFor (Namespace _ ["ExceptionExit"]) = Just - "Miniprotocol terminated with exception." - documentFor (Namespace _ ["ChannelRecvStart"]) = Just - "Channel receive start." - documentFor (Namespace _ ["ChannelRecvEnd"]) = Just - "Channel receive end." - documentFor (Namespace _ ["ChannelSendStart"]) = Just - "Channel send start." - documentFor (Namespace _ ["ChannelSendEnd"]) = Just - "Channel send end." - documentFor (Namespace _ ["HandshakeStart"]) = Just - "Handshake start." - documentFor (Namespace _ ["HandshakeClientEnd"]) = Just - "Handshake client end." - documentFor (Namespace _ ["HandshakeServerEnd"]) = Just - "Handshake server end." - documentFor (Namespace _ ["HandshakeClientError"]) = Just - "Handshake client error." - documentFor (Namespace _ ["HandshakeServerError"]) = Just - "Handshake server error." documentFor (Namespace _ ["RecvDeltaQObservation"]) = Just "Bearer DeltaQ observation." documentFor (Namespace _ ["RecvDeltaQSample"]) = Just @@ -493,6 +269,212 @@ instance MetaTrace Mux.Trace where "Timed out reading SDU." documentFor (Namespace _ ["SDUWriteTimeoutException"]) = Just "Timed out writing SDU." + documentFor (Namespace _ ["TraceEmitDeltaQ"]) = Nothing + documentFor (Namespace _ ["TCPInfo"]) = Just + "TCPInfo." + documentFor _ = Nothing + + allNamespaces = [ + Namespace [] ["RecvHeaderStart"] + , Namespace [] ["RecvRaw"] + , Namespace [] ["RecvHeaderEnd"] + , Namespace [] ["RecvStart"] + , Namespace [] ["RecvEnd"] + , Namespace [] ["SendStart"] + , Namespace [] ["SendEnd"] + , Namespace [] ["RecvDeltaQObservation"] + , Namespace [] ["RecvDeltaQSample"] + , Namespace [] ["SDUReadTimeoutException"] + , Namespace [] ["SDUWriteTimeoutException"] + , Namespace [] ["TraceEmitDeltaQ"] + , Namespace [] ["TCPInfo"] + ] + +instance LogFormatting Mux.ChannelTrace where + forMachine _dtal (Mux.TraceChannelRecvStart mid) = mconcat + [ "kind" .= String "Mux.TraceChannelRecvStart" + , "msg" .= String "Channel Receive Start" + , "miniProtocolNum" .= String (showT mid) + ] + forMachine _dtal (Mux.TraceChannelRecvEnd mid len) = mconcat + [ "kind" .= String "Mux.TraceChannelRecvEnd" + , "msg" .= String "Channel Receive End" + , "miniProtocolNum" .= String (showT mid) + , "length" .= String (showT len) + ] + forMachine _dtal (Mux.TraceChannelSendStart mid len) = mconcat + [ "kind" .= String "Mux.TraceChannelSendStart" + , "msg" .= String "Channel Send Start" + , "miniProtocolNum" .= String (showT mid) + , "length" .= String (showT len) + ] + forMachine _dtal (Mux.TraceChannelSendEnd mid) = mconcat + [ "kind" .= String "Mux.TraceChannelSendEnd" + , "msg" .= String "Channel Send End" + , "miniProtocolNum" .= String (showT mid) + ] + + forHuman (Mux.TraceChannelRecvStart mid) = + sformat ("Channel Receive Start on " % shown) mid + forHuman (Mux.TraceChannelRecvEnd mid len) = + sformat ("Channel Receive End on (" % shown % ") " % int) mid len + forHuman (Mux.TraceChannelSendStart mid len) = + sformat ("Channel Send Start on (" % shown % ") " % int) mid len + forHuman (Mux.TraceChannelSendEnd mid) = + sformat ("Channel Send End on " % shown) mid + +instance MetaTrace Mux.ChannelTrace where + namespaceFor Mux.TraceChannelRecvStart {} = + Namespace [] ["ChannelRecvStart"] + namespaceFor Mux.TraceChannelRecvEnd {} = + Namespace [] ["ChannelRecvEnd"] + namespaceFor Mux.TraceChannelSendStart {} = + Namespace [] ["ChannelSendStart"] + namespaceFor Mux.TraceChannelSendEnd {} = + Namespace [] ["ChannelSendEnd"] + + severityFor (Namespace _ ["ChannelRecvStart"]) _ = Just Debug + severityFor (Namespace _ ["ChannelRecvEnd"]) _ = Just Debug + severityFor (Namespace _ ["ChannelSendStart"]) _ = Just Debug + severityFor (Namespace _ ["ChannelSendEnd"]) _ = Just Debug + severityFor _ _ = Nothing + + documentFor (Namespace _ ["ChannelRecvStart"]) = Just + "Channel receive start." + documentFor (Namespace _ ["ChannelRecvEnd"]) = Just + "Channel receive end." + documentFor (Namespace _ ["ChannelSendStart"]) = Just + "Channel send start." + documentFor (Namespace _ ["ChannelSendEnd"]) = Just + "Channel send end." + documentFor _ = Nothing + + allNamespaces = [ + Namespace [] ["ChannelRecvStart"] + , Namespace [] ["ChannelRecvEnd"] + , Namespace [] ["ChannelSendStart"] + , Namespace [] ["ChannelSendEnd"] + ] + +instance LogFormatting Mux.Trace where + forMachine _dtal (Mux.TraceState new) = mconcat + [ "kind" .= String "Mux.TraceState" + , "msg" .= String "MuxState" + , "state" .= String (showT new) + ] + forMachine _dtal (Mux.TraceCleanExit mid dir) = mconcat + [ "kind" .= String "Mux.TraceCleanExit" + , "msg" .= String "Miniprotocol terminated cleanly" + , "miniProtocolNum" .= String (showT mid) + , "miniProtocolDir" .= String (showT dir) + ] + forMachine _dtal (Mux.TraceExceptionExit mid dir exc) = mconcat + [ "kind" .= String "Mux.TraceExceptionExit" + , "msg" .= String "Miniprotocol terminated with exception" + , "miniProtocolNum" .= String (showT mid) + , "miniProtocolDir" .= String (showT dir) + , "exception" .= String (showT exc) + ] + forMachine _dtal (Mux.TraceStartEagerly mid dir) = mconcat + [ "kind" .= String "Mux.TraceStartEagerly" + , "msg" .= String "Eagerly started" + , "miniProtocolNum" .= String (showT mid) + , "miniProtocolDir" .= String (showT dir) + ] + forMachine _dtal (Mux.TraceStartOnDemand mid dir) = mconcat + [ "kind" .= String "Mux.TraceStartOnDemand" + , "msg" .= String "Preparing to start" + , "miniProtocolNum" .= String (showT mid) + , "miniProtocolDir" .= String (showT dir) + ] + forMachine _dtal (Mux.TraceStartOnDemandAny mid dir) = mconcat + [ "kind" .= String "Mux.TraceStartOnDemandAny" + , "msg" .= String "Preparing to start" + , "miniProtocolNum" .= String (showT mid) + , "miniProtocolDir" .= String (showT dir) + ] + forMachine _dtal (Mux.TraceStartedOnDemand mid dir) = mconcat + [ "kind" .= String "Mux.TraceStartedOnDemand" + , "msg" .= String "Started on demand" + , "miniProtocolNum" .= String (showT mid) + , "miniProtocolDir" .= String (showT dir) + ] + forMachine _dtal (Mux.TraceTerminating mid dir) = mconcat + [ "kind" .= String "Mux.TraceTerminating" + , "msg" .= String "Terminating" + , "miniProtocolNum" .= String (showT mid) + , "miniProtocolDir" .= String (showT dir) + ] + forMachine _dtal Mux.TraceStopping = mconcat + [ "kind" .= String "Mux.TraceStopping" + , "msg" .= String "Mux stopping" + ] + forMachine _dtal Mux.TraceStopped = mconcat + [ "kind" .= String "Mux.TraceStopped" + , "msg" .= String "Mux stoppped" + ] + + forHuman (Mux.TraceState new) = + sformat ("State: " % shown) new + forHuman (Mux.TraceCleanExit mid dir) = + sformat ("Miniprotocol (" % shown % ") " % shown % " terminated cleanly") + mid dir + forHuman (Mux.TraceExceptionExit mid dir e) = + sformat ("Miniprotocol (" % shown % ") " % shown % + " terminated with exception " % shown) mid dir e + forHuman (Mux.TraceStartEagerly mid dir) = + sformat ("Eagerly started (" % shown % ") in " % shown) mid dir + forHuman (Mux.TraceStartOnDemand mid dir) = + sformat ("Preparing to start (" % shown % ") in " % shown) mid dir + forHuman (Mux.TraceStartOnDemandAny mid dir) = + sformat ("Preparing to start (" % shown % ") in " % shown) mid dir + forHuman (Mux.TraceStartedOnDemand mid dir) = + sformat ("Started on demand (" % shown % ") in " % shown) mid dir + forHuman (Mux.TraceTerminating mid dir) = + sformat ("Terminating (" % shown % ") in " % shown) mid dir + forHuman Mux.TraceStopping = "Mux stopping" + forHuman Mux.TraceStopped = "Mux stoppped" + +instance MetaTrace Mux.Trace where + namespaceFor Mux.TraceState {} = + Namespace [] ["State"] + namespaceFor Mux.TraceCleanExit {} = + Namespace [] ["CleanExit"] + namespaceFor Mux.TraceExceptionExit {} = + Namespace [] ["ExceptionExit"] + namespaceFor Mux.TraceStartEagerly {} = + Namespace [] ["StartEagerly"] + namespaceFor Mux.TraceStartOnDemand {} = + Namespace [] ["StartOnDemand"] + namespaceFor Mux.TraceStartOnDemandAny {} = + Namespace [] ["StartOnDemandAny"] + namespaceFor Mux.TraceStartedOnDemand {} = + Namespace [] ["StartedOnDemand"] + namespaceFor Mux.TraceTerminating {} = + Namespace [] ["Terminating"] + namespaceFor Mux.TraceStopping = + Namespace [] ["Stopping"] + namespaceFor Mux.TraceStopped = + Namespace [] ["Stopped"] + + severityFor (Namespace _ ["State"]) _ = Just Info + severityFor (Namespace _ ["CleanExit"]) _ = Just Notice + severityFor (Namespace _ ["ExceptionExit"]) _ = Just Notice + severityFor (Namespace _ ["StartEagerly"]) _ = Just Debug + severityFor (Namespace _ ["StartOnDemand"]) _ = Just Debug + severityFor (Namespace _ ["StartOnDemandAny"]) _ = Just Debug + severityFor (Namespace _ ["StartedOnDemand"]) _ = Just Debug + severityFor (Namespace _ ["Terminating"]) _ = Just Debug + severityFor (Namespace _ ["Stopping"]) _ = Just Debug + severityFor (Namespace _ ["Stopped"]) _ = Just Debug + severityFor _ _ = Nothing + + documentFor (Namespace _ ["State"]) = Just + "State." + documentFor (Namespace _ ["CleanExit"]) = Just + "Miniprotocol terminated cleanly." + documentFor (Namespace _ ["ExceptionExit"]) = Just + "Miniprotocol terminated with exception." documentFor (Namespace _ ["StartEagerly"]) = Just "Eagerly started." documentFor (Namespace _ ["StartOnDemand"]) = Just @@ -507,36 +489,12 @@ instance MetaTrace Mux.Trace where "Mux shutdown." documentFor (Namespace _ ["Stopped"]) = Just "Mux shutdown." - documentFor (Namespace _ ["Shutdown"]) = Just - "Mux shutdown." - documentFor (Namespace _ ["TCPInfo"]) = Just - "TCPInfo." documentFor _ = Nothing allNamespaces = [ - Namespace [] ["RecvHeaderStart"] - , Namespace [] ["RecvRaw"] - , Namespace [] ["RecvHeaderEnd"] - , Namespace [] ["RecvStart"] - , Namespace [] ["RecvEnd"] - , Namespace [] ["SendStart"] - , Namespace [] ["SendEnd"] - , Namespace [] ["State"] + Namespace [] ["State"] , Namespace [] ["CleanExit"] , Namespace [] ["ExceptionExit"] - , Namespace [] ["ChannelRecvStart"] - , Namespace [] ["ChannelRecvEnd"] - , Namespace [] ["ChannelSendStart"] - , Namespace [] ["ChannelSendEnd"] - , Namespace [] ["HandshakeStart"] - , Namespace [] ["HandshakeClientEnd"] - , Namespace [] ["HandshakeServerEnd"] - , Namespace [] ["HandshakeClientError"] - , Namespace [] ["HandshakeServerError"] - , Namespace [] ["RecvDeltaQObservation"] - , Namespace [] ["RecvDeltaQSample"] - , Namespace [] ["SDUReadTimeoutException"] - , Namespace [] ["SDUWriteTimeoutException"] , Namespace [] ["StartEagerly"] , Namespace [] ["StartOnDemand"] , Namespace [] ["StartOnDemandAny"] @@ -544,70 +502,81 @@ instance MetaTrace Mux.Trace where , Namespace [] ["Terminating"] , Namespace [] ["Stopping"] , Namespace [] ["Stopped"] - , Namespace [] ["Shutdown"] - , Namespace [] ["TCPInfo"] ] + -------------------------------------------------------------------------------- -- Handshake Tracer -------------------------------------------------------------------------------- -instance (Show adr, Show ver) => LogFormatting (NtN.HandshakeTr adr ver) where - forMachine _dtal (Mux.WithBearer b ev) = - mconcat [ "kind" .= String "HandshakeTrace" - , "bearer" .= show b - , "event" .= show ev ] - forHuman (Mux.WithBearer b ev) = "With mux bearer " <> showT b - <> ". " <> showT ev - -instance MetaTrace (AnyMessage (HS.Handshake nt term)) where - namespaceFor (AnyMessageAndAgency _stok HS.MsgProposeVersions {}) = - Namespace [] ["ProposeVersions"] - namespaceFor (AnyMessageAndAgency _stok HS.MsgReplyVersions {}) = - Namespace [] ["ReplyVersions"] - namespaceFor (AnyMessageAndAgency _stok HS.MsgQueryReply {}) = - Namespace [] ["MsgQueryReply"] - namespaceFor (AnyMessageAndAgency _stok HS.MsgAcceptVersion {}) = - Namespace [] ["AcceptVersion"] - namespaceFor (AnyMessageAndAgency _stok HS.MsgRefuse {}) = - Namespace [] ["Refuse"] - - severityFor (Namespace _ ["ProposeVersions"]) _ = Just Info - severityFor (Namespace _ ["ReplyVersions"]) _ = Just Info - severityFor (Namespace _ ["MsgQueryReply"]) _ = Just Info - severityFor (Namespace _ ["AcceptVersion"]) _ = Just Info - severityFor (Namespace _ ["Refuse"]) _ = Just Info - severityFor _ _ = Nothing - - documentFor (Namespace _ ["ProposeVersions"]) = Just $ mconcat +instance (Show term, Show ntcVersion) => + LogFormatting (AnyMessage (HS.Handshake ntcVersion term)) where + forMachine _dtal (AnyMessageAndAgency stok msg) = + mconcat [ "kind" .= String kind + , "msg" .= (String . showT $ msg) + , "agency" .= String (pack $ show stok) + ] + where + kind = case msg of + HS.MsgProposeVersions {} -> "ProposeVersions" + HS.MsgReplyVersions {} -> "ReplyVersions" + HS.MsgQueryReply {} -> "QueryReply" + HS.MsgAcceptVersion {} -> "AcceptVersion" + HS.MsgRefuse {} -> "Refuse" + + forHuman (AnyMessageAndAgency stok msg) = + "Handshake (agency, message) = " <> "(" <> showT stok <> "," <> showT msg <> ")" + +instance MetaTrace (AnyMessage (HS.Handshake a b)) where + namespaceFor (AnyMessage msg) = Namespace [] $ case msg of + HS.MsgProposeVersions {} -> ["ProposeVersions"] + HS.MsgReplyVersions {} -> ["ReplyVersions"] + HS.MsgQueryReply {} -> ["QueryReply"] + HS.MsgAcceptVersion {} -> ["AcceptVersion"] + HS.MsgRefuse {} -> ["Refuse"] + + severityFor (Namespace _ [sym]) _ = case sym of + "ProposeVersions" -> Just Info + "ReplyVersions" -> Just Info + "QueryReply" -> Just Info + "AcceptVersion" -> Just Info + "Refuse" -> Just Info + _otherwise -> Nothing + severityFor _ _ = Nothing + + documentFor (Namespace _ sym) = wrap . mconcat $ case sym of + ["ProposeVersions"] -> [ "Propose versions together with version parameters. It must be" , " encoded to a sorted list.." ] - documentFor (Namespace _ ["ReplyVersions"]) = Just $ mconcat + ["ReplyVersions"] -> [ "`MsgReplyVersions` received as a response to 'MsgProposeVersions'. It" , " is not supported to explicitly send this message. It can only be" , " received as a copy of 'MsgProposeVersions' in a simultaneous open" , " scenario." ] - documentFor (Namespace _ ["MsgQueryReply"]) = Just $ mconcat + ["QueryReply"] -> [ "`MsgQueryReply` received as a response to a handshake query in " , " 'MsgProposeVersions' and lists the supported versions." ] - documentFor (Namespace _ ["AcceptVersion"]) = Just $ mconcat + ["AcceptVersion"] -> [ "The remote end decides which version to use and sends chosen version." , "The server is allowed to modify version parameters." ] - documentFor (Namespace _ ["Refuse"]) = Just - "It refuses to run any version." - documentFor _ = Nothing + ["Refuse"] -> ["It refuses to run any version."] + _otherwise -> [] :: [Text] + where + wrap it = case it of + "" -> Nothing + it' -> Just it' - allNamespaces = [ - Namespace [] ["ProposeVersions"] - , Namespace [] ["ReplyVersions"] - , Namespace [] ["MsgQueryReply"] - , Namespace [] ["AcceptVersion"] - , Namespace [] ["Refuse"] - ] + allNamespaces = [ + Namespace [] ["ProposeVersions"] + , Namespace [] ["ReplyVersions"] + , Namespace [] ["QueryReply"] + , Namespace [] ["AcceptVersion"] + , Namespace [] ["Refuse"] + ] -------------------------------------------------------------------------------- @@ -615,108 +584,108 @@ instance MetaTrace (AnyMessage (HS.Handshake nt term)) where -------------------------------------------------------------------------------- instance (Show ntnAddr, Show ntcAddr) => - LogFormatting (Common.DiffusionTracer ntnAddr ntcAddr) where - forMachine _dtal (Common.RunServer sockAddr) = mconcat + LogFormatting (Diff.DiffusionTracer ntnAddr ntcAddr) where + forMachine _dtal (Diff.RunServer sockAddr) = mconcat [ "kind" .= String "RunServer" , "socketAddress" .= String (pack (show sockAddr)) ] - forMachine _dtal (Common.RunLocalServer localAddress) = mconcat + forMachine _dtal (Diff.RunLocalServer localAddress) = mconcat [ "kind" .= String "RunLocalServer" , "localAddress" .= String (pack (show localAddress)) ] - forMachine _dtal (Common.UsingSystemdSocket localAddress) = mconcat + forMachine _dtal (Diff.UsingSystemdSocket localAddress) = mconcat [ "kind" .= String "UsingSystemdSocket" , "path" .= String (pack . show $ localAddress) ] - forMachine _dtal (Common.CreateSystemdSocketForSnocketPath localAddress) = mconcat + forMachine _dtal (Diff.CreateSystemdSocketForSnocketPath localAddress) = mconcat [ "kind" .= String "CreateSystemdSocketForSnocketPath" , "path" .= String (pack . show $ localAddress) ] - forMachine _dtal (Common.CreatedLocalSocket localAddress) = mconcat + forMachine _dtal (Diff.CreatedLocalSocket localAddress) = mconcat [ "kind" .= String "CreatedLocalSocket" , "path" .= String (pack . show $ localAddress) ] - forMachine _dtal (Common.ConfiguringLocalSocket localAddress socket) = mconcat + forMachine _dtal (Diff.ConfiguringLocalSocket localAddress socket) = mconcat [ "kind" .= String "ConfiguringLocalSocket" , "path" .= String (pack . show $ localAddress) , "socket" .= String (pack (show socket)) ] - forMachine _dtal (Common.ListeningLocalSocket localAddress socket) = mconcat + forMachine _dtal (Diff.ListeningLocalSocket localAddress socket) = mconcat [ "kind" .= String "ListeningLocalSocket" , "path" .= String (pack . show $ localAddress) , "socket" .= String (pack (show socket)) ] - forMachine _dtal (Common.LocalSocketUp localAddress fd) = mconcat + forMachine _dtal (Diff.LocalSocketUp localAddress fd) = mconcat [ "kind" .= String "LocalSocketUp" , "path" .= String (pack . show $ localAddress) , "socket" .= String (pack (show fd)) ] - forMachine _dtal (Common.CreatingServerSocket socket) = mconcat + forMachine _dtal (Diff.CreatingServerSocket socket) = mconcat [ "kind" .= String "CreatingServerSocket" , "socket" .= String (pack (show socket)) ] - forMachine _dtal (Common.ListeningServerSocket socket) = mconcat + forMachine _dtal (Diff.ListeningServerSocket socket) = mconcat [ "kind" .= String "ListeningServerSocket" , "socket" .= String (pack (show socket)) ] - forMachine _dtal (Common.ServerSocketUp socket) = mconcat + forMachine _dtal (Diff.ServerSocketUp socket) = mconcat [ "kind" .= String "ServerSocketUp" , "socket" .= String (pack (show socket)) ] - forMachine _dtal (Common.ConfiguringServerSocket socket) = mconcat + forMachine _dtal (Diff.ConfiguringServerSocket socket) = mconcat [ "kind" .= String "ConfiguringServerSocket" , "socket" .= String (pack (show socket)) ] - forMachine _dtal (Common.UnsupportedLocalSystemdSocket path) = mconcat + forMachine _dtal (Diff.UnsupportedLocalSystemdSocket path) = mconcat [ "kind" .= String "UnsupportedLocalSystemdSocket" , "path" .= String (pack (show path)) ] - forMachine _dtal Common.UnsupportedReadySocketCase = mconcat + forMachine _dtal Diff.UnsupportedReadySocketCase = mconcat [ "kind" .= String "UnsupportedReadySocketCase" ] - forMachine _dtal (Common.DiffusionErrored exception) = mconcat + forMachine _dtal (Diff.DiffusionErrored exception) = mconcat [ "kind" .= String "DiffusionErrored" , "error" .= String (pack (show exception)) ] - forMachine _dtal (Common.SystemdSocketConfiguration config) = mconcat + forMachine _dtal (Diff.SystemdSocketConfiguration config) = mconcat [ "kind" .= String "SystemdSocketConfiguration" , "path" .= String (pack (show config)) ] -instance MetaTrace (Common.DiffusionTracer ntnAddr ntcAddr) where - namespaceFor Common.RunServer {} = +instance MetaTrace (Diff.DiffusionTracer ntnAddr ntcAddr) where + namespaceFor Diff.RunServer {} = Namespace [] ["RunServer"] - namespaceFor Common.RunLocalServer {} = + namespaceFor Diff.RunLocalServer {} = Namespace [] ["RunLocalServer"] - namespaceFor Common.UsingSystemdSocket {} = + namespaceFor Diff.UsingSystemdSocket {} = Namespace [] ["UsingSystemdSocket"] - namespaceFor Common.CreateSystemdSocketForSnocketPath {} = + namespaceFor Diff.CreateSystemdSocketForSnocketPath {} = Namespace [] ["CreateSystemdSocketForSnocketPath"] - namespaceFor Common.CreatedLocalSocket {} = + namespaceFor Diff.CreatedLocalSocket {} = Namespace [] ["CreatedLocalSocket"] - namespaceFor Common.ConfiguringLocalSocket {} = + namespaceFor Diff.ConfiguringLocalSocket {} = Namespace [] ["ConfiguringLocalSocket"] - namespaceFor Common.ListeningLocalSocket {} = + namespaceFor Diff.ListeningLocalSocket {} = Namespace [] ["ListeningLocalSocket"] - namespaceFor Common.LocalSocketUp {} = + namespaceFor Diff.LocalSocketUp {} = Namespace [] ["LocalSocketUp"] - namespaceFor Common.CreatingServerSocket {} = + namespaceFor Diff.CreatingServerSocket {} = Namespace [] ["CreatingServerSocket"] - namespaceFor Common.ListeningServerSocket {} = + namespaceFor Diff.ListeningServerSocket {} = Namespace [] ["ListeningServerSocket"] - namespaceFor Common.ServerSocketUp {} = + namespaceFor Diff.ServerSocketUp {} = Namespace [] ["ServerSocketUp"] - namespaceFor Common.ConfiguringServerSocket {} = + namespaceFor Diff.ConfiguringServerSocket {} = Namespace [] ["ConfiguringServerSocket"] - namespaceFor Common.UnsupportedLocalSystemdSocket {} = + namespaceFor Diff.UnsupportedLocalSystemdSocket {} = Namespace [] ["UnsupportedLocalSystemdSocket"] - namespaceFor Common.UnsupportedReadySocketCase {} = + namespaceFor Diff.UnsupportedReadySocketCase {} = Namespace [] ["UnsupportedReadySocketCase"] - namespaceFor Common.DiffusionErrored {} = + namespaceFor Diff.DiffusionErrored {} = Namespace [] ["DiffusionErrored"] - namespaceFor Common.SystemdSocketConfiguration {} = + namespaceFor Diff.SystemdSocketConfiguration {} = Namespace [] ["SystemdSocketConfiguration"] severityFor (Namespace _ ["RunServer"]) _ = Just Info @@ -872,18 +841,6 @@ instance LogFormatting TraceLedgerPeers where [ "kind" .= String "TraceLedgerPeersDomains" , "domainAccessPoints" .= daps ] - forMachine _dtal (TraceLedgerPeersResult dap ips) = - mconcat - [ "kind" .= String "TraceLedgerPeersResult" - , "domainAccessPoint" .= show dap - , "ips" .= map show ips - ] - forMachine _dtal (TraceLedgerPeersFailure dap reason) = - mconcat - [ "kind" .= String "TraceLedgerPeersFailure" - , "domainAccessPoint" .= show dap - , "error" .= show reason - ] forMachine _dtal UsingBigLedgerPeerSnapshot = mconcat [ "kind" .= String "UsingBigLedgerPeerSnapshot" @@ -918,10 +875,6 @@ instance MetaTrace TraceLedgerPeers where Namespace [] ["NotEnoughBigLedgerPeers"] namespaceFor TraceLedgerPeersDomains {} = Namespace [] ["TraceLedgerPeersDomains"] - namespaceFor TraceLedgerPeersResult {} = - Namespace [] ["TraceLedgerPeersResult"] - namespaceFor TraceLedgerPeersFailure {} = - Namespace [] ["TraceLedgerPeersFailure"] namespaceFor UsingBigLedgerPeerSnapshot {} = Namespace [] ["UsingBigLedgerPeerSnapshot"] @@ -937,8 +890,6 @@ instance MetaTrace TraceLedgerPeers where severityFor (Namespace _ ["NotEnoughLedgerPeers"]) _ = Just Warning severityFor (Namespace _ ["NotEnoughBigLedgerPeers"]) _ = Just Warning severityFor (Namespace _ ["TraceLedgerPeersDomains"]) _ = Just Debug - severityFor (Namespace _ ["TraceLedgerPeersResult"]) _ = Just Debug - severityFor (Namespace _ ["TraceLedgerPeersFailure"]) _ = Just Debug severityFor (Namespace _ ["UsingBigLedgerPeerSnapshot"]) _ = Just Debug severityFor _ _ = Nothing @@ -964,10 +915,6 @@ instance MetaTrace TraceLedgerPeers where "" documentFor (Namespace _ ["TraceLedgerPeersDomains"]) = Just "" - documentFor (Namespace _ ["TraceLedgerPeersResult"]) = Just - "" - documentFor (Namespace _ ["TraceLedgerPeersFailure"]) = Just - "" documentFor (Namespace _ ["UsingBigLedgerPeerSnapshot"]) = Just $ mconcat [ "Trace for when a request for big ledger peers is fulfilled from the snapshot file" , " defined in the topology configuration file."] @@ -984,7 +931,5 @@ instance MetaTrace TraceLedgerPeers where , Namespace [] ["ReusingLedgerState"] , Namespace [] ["FallingBackToPublicRootPeers"] , Namespace [] ["TraceLedgerPeersDomains"] - , Namespace [] ["TraceLedgerPeersResult"] - , Namespace [] ["TraceLedgerPeersFailure"] , Namespace [] ["UsingBigLedgerPeerSnapshot"] ] diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/NonP2P.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/NonP2P.hs deleted file mode 100644 index 618f5ed61a0..00000000000 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/NonP2P.hs +++ /dev/null @@ -1,407 +0,0 @@ -{-# LANGUAGE AllowAmbiguousTypes #-} -{-# LANGUAGE FlexibleContexts #-} -{-# LANGUAGE FlexibleInstances #-} -{-# LANGUAGE GADTs #-} -{-# LANGUAGE ScopedTypeVariables #-} - -{-# OPTIONS_GHC -Wno-orphans #-} - -module Cardano.Node.Tracing.Tracers.NonP2P - () where - -import Cardano.Logging -import Ouroboros.Network.NodeToNode (ErrorPolicyTrace (..)) -import qualified Ouroboros.Network.NodeToNode as NtN -import Ouroboros.Network.Snocket (LocalAddress (..)) -import Ouroboros.Network.Subscription.Dns (DnsTrace (..), WithDomainName (..)) -import Ouroboros.Network.Subscription.Ip (SubscriptionTrace, WithIPList (..)) -import Ouroboros.Network.Subscription.Worker (ConnectResult (..), SubscriberError, - SubscriptionTrace (..)) - -import Control.Exception (Exception (..), SomeException (..)) -import Data.Aeson (Value (String), (.=)) -import qualified Data.IP as IP -import Data.Text (pack) -import qualified Network.Socket as Socket - - --------------------------------------------------------------------------------- --- Addresses --------------------------------------------------------------------------------- - -instance LogFormatting LocalAddress where - forMachine _dtal (LocalAddress path) = - mconcat ["path" .= path] - -instance LogFormatting NtN.RemoteAddress where - forMachine _dtal (Socket.SockAddrInet port addr) = - let ip = IP.fromHostAddress addr in - mconcat [ "addr" .= show ip - , "port" .= show port - ] - forMachine _dtal (Socket.SockAddrInet6 port _ addr _) = - let ip = IP.fromHostAddress6 addr in - mconcat [ "addr" .= show ip - , "port" .= show port - ] - forMachine _dtal (Socket.SockAddrUnix path) = - mconcat [ "path" .= show path ] - --------------------------------------------------------------------------------- --- Subscription Tracer --------------------------------------------------------------------------------- - -instance LogFormatting (WithIPList (SubscriptionTrace Socket.SockAddr)) where - forMachine _dtal (WithIPList localAddresses dests ev) = - mconcat [ "kind" .= String "IP SubscriptionTrace" - , "localAddresses" .= String (pack $ show localAddresses) - , "dests" .= String (pack $ show dests) - , "event" .= String (pack $ show ev)] - forHuman (WithIPList localAddresses dests ev) = - pack (show ev) - <> ". Local addresses are " - <> pack (show localAddresses) - <> ". Destinations are " - <> pack (show dests) - <> "." - -instance LogFormatting (WithDomainName (SubscriptionTrace Socket.SockAddr)) where - forMachine _dtal (WithDomainName dom ev) = - mconcat [ "kind" .= String "DNS SubscriptionTrace" - , "domain" .= String (pack $ show dom) - , "event" .= String (pack $ show ev)] - forHuman (WithDomainName dom ev) = - pack (show ev) - <> ". Domain is " - <> pack (show dom) - <> "." - -instance MetaTrace tr => MetaTrace (WithIPList tr) where - namespaceFor (WithIPList _ _ ev) = nsCast (namespaceFor ev) - severityFor ns Nothing = severityFor (nsCast ns :: Namespace tr) Nothing - severityFor ns (Just (WithIPList _ _ ev)) = - severityFor (nsCast ns) (Just ev) - detailsFor ns Nothing = detailsFor (nsCast ns :: Namespace tr) Nothing - detailsFor ns (Just (WithIPList _ _ ev)) = - detailsFor (nsCast ns) (Just ev) - privacyFor ns Nothing = privacyFor (nsCast ns :: Namespace tr) Nothing - privacyFor ns (Just (WithIPList _ _ ev)) = - privacyFor (nsCast ns) (Just ev) - documentFor ns = documentFor (nsCast ns :: Namespace tr) - allNamespaces = fmap nsCast - (allNamespaces :: [Namespace tr]) - -instance MetaTrace tr => MetaTrace (WithDomainName tr) where - namespaceFor (WithDomainName _ ev) = nsCast (namespaceFor ev) - severityFor ns Nothing = severityFor (nsCast ns :: Namespace tr) Nothing - severityFor ns (Just (WithDomainName _ ev)) = - severityFor (nsCast ns) (Just ev) - detailsFor ns Nothing = detailsFor (nsCast ns :: Namespace tr) Nothing - detailsFor ns (Just (WithDomainName _ ev)) = - detailsFor (nsCast ns) (Just ev) - privacyFor ns Nothing = privacyFor (nsCast ns :: Namespace tr) Nothing - privacyFor ns (Just (WithDomainName _ ev)) = - privacyFor (nsCast ns) (Just ev) - documentFor ns = documentFor (nsCast ns :: Namespace tr) - allNamespaces = fmap nsCast - (allNamespaces :: [Namespace tr]) - -instance MetaTrace (SubscriptionTrace adr) where - namespaceFor SubscriptionTraceConnectStart {} = - Namespace [] ["ConnectStart"] - namespaceFor SubscriptionTraceConnectEnd {} = - Namespace [] ["ConnectEnd"] - namespaceFor SubscriptionTraceConnectException {} = - Namespace [] ["ConnectException"] - namespaceFor SubscriptionTraceSocketAllocationException {} = - Namespace [] ["SocketAllocationException"] - namespaceFor SubscriptionTraceTryConnectToPeer {} = - Namespace [] ["TryConnectToPeer"] - namespaceFor SubscriptionTraceSkippingPeer {} = - Namespace [] ["SkippingPeer"] - namespaceFor SubscriptionTraceSubscriptionRunning = - Namespace [] ["SubscriptionRunning"] - namespaceFor SubscriptionTraceSubscriptionWaiting {} = - Namespace [] ["SubscriptionWaiting"] - namespaceFor SubscriptionTraceSubscriptionFailed = - Namespace [] ["SubscriptionFailed"] - namespaceFor SubscriptionTraceSubscriptionWaitingNewConnection {} = - Namespace [] ["SubscriptionWaitingNewConnection"] - namespaceFor SubscriptionTraceStart {} = - Namespace [] ["Start"] - namespaceFor SubscriptionTraceRestart {} = - Namespace [] ["Restart"] - namespaceFor SubscriptionTraceConnectionExist {} = - Namespace [] ["ConnectionExist"] - namespaceFor SubscriptionTraceUnsupportedRemoteAddr {} = - Namespace [] ["UnsupportedRemoteAddr"] - namespaceFor SubscriptionTraceMissingLocalAddress = - Namespace [] ["MissingLocalAddress"] - namespaceFor SubscriptionTraceApplicationException {} = - Namespace [] ["ApplicationException"] - namespaceFor SubscriptionTraceAllocateSocket {} = - Namespace [] ["AllocateSocket"] - namespaceFor SubscriptionTraceCloseSocket {} = - Namespace [] ["CloseSocket"] - - severityFor (Namespace _ ["ConnectStart"]) _ = Just Info - severityFor (Namespace _ ["ConnectEnd"]) - (Just (SubscriptionTraceConnectEnd _ connectResult)) = - case connectResult of - ConnectSuccess -> Just Info - ConnectSuccessLast -> Just Notice - ConnectValencyExceeded -> Just Warning - severityFor (Namespace _ ["ConnectEnd"]) Nothing = Just Info - severityFor (Namespace _ ["ConnectException"]) - (Just (SubscriptionTraceConnectException _ e)) = - case fromException $ SomeException e of - Just (_::SubscriberError) -> Just Debug - _ -> Just Info - severityFor (Namespace _ ["ConnectException"]) Nothing = Just Info - severityFor (Namespace _ ["SocketAllocationException"]) _ = Just Error - severityFor (Namespace _ ["TryConnectToPeer"]) _ = Just Info - severityFor (Namespace _ ["SkippingPeer"]) _ = Just Info - severityFor (Namespace _ ["SubscriptionRunning"]) _ = Just Debug - severityFor (Namespace _ ["SubscriptionWaiting"]) _ = Just Debug - severityFor (Namespace _ ["SubscriptionFailed"]) _ = Just Error - severityFor (Namespace _ ["SubscriptionWaitingNewConnection"]) _ = Just Notice - severityFor (Namespace _ ["Start"]) _ = Just Debug - severityFor (Namespace _ ["Restart"]) _ = Just Info - severityFor (Namespace _ ["ConnectionExist"]) _ = Just Notice - severityFor (Namespace _ ["UnsupportedRemoteAddr"]) _ = Just Error - severityFor (Namespace _ ["MissingLocalAddress"]) _ = Just Warning - severityFor (Namespace _ ["ApplicationException"]) - (Just (SubscriptionTraceApplicationException _ e)) = - case fromException $ SomeException e of - Just (_::SubscriberError) -> Just Debug - _ -> Just Error - severityFor (Namespace _ ["ApplicationException"]) Nothing = Just Error - severityFor (Namespace _ ["AllocateSocket"]) _ = Just Debug - severityFor (Namespace _ ["CloseSocket"]) _ = Just Info - severityFor _ _ = Nothing - - documentFor (Namespace _ ["ConnectStart"]) = Just - "Connection Attempt Start with destination." - documentFor (Namespace _ ["ConnectEnd"]) = Just - "Connection Attempt end with destination and outcome." - documentFor (Namespace _ ["ConnectException"]) = Just - "Socket Allocation Exception with destination and the exception." - documentFor (Namespace _ ["SocketAllocationException"]) = Just - "Socket Allocation Exception with destination and the exception." - documentFor (Namespace _ ["TryConnectToPeer"]) = Just - "Trying to connect to peer with address." - documentFor (Namespace _ ["SkippingPeer"]) = Just - "Skipping peer with address." - documentFor (Namespace _ ["SubscriptionRunning"]) = Just - "Required subscriptions started." - documentFor (Namespace _ ["SubscriptionWaiting"]) = Just - "Waiting on address with active connections." - documentFor (Namespace _ ["SubscriptionFailed"]) = Just - "Failed to start all required subscriptions." - documentFor (Namespace _ ["SubscriptionWaitingNewConnection"]) = Just - "Waiting delay time before attempting a new connection." - documentFor (Namespace _ ["Start"]) = Just - "Starting Subscription Worker with a valency." - documentFor (Namespace _ ["Restart"]) = Just $ mconcat - [ "Restarting Subscription after duration with desired valency and" - , " current valency." - ] - documentFor (Namespace _ ["ConnectionExist"]) = Just - "Connection exists to destination." - documentFor (Namespace _ ["UnsupportedRemoteAddr"]) = Just - "Unsupported remote target address." - documentFor (Namespace _ ["MissingLocalAddress"]) = Just - "Missing local address." - documentFor (Namespace _ ["ApplicationException"]) = Just - "Application Exception occurred." - documentFor (Namespace _ ["AllocateSocket"]) = Just - "Allocate socket to address." - documentFor (Namespace _ ["CloseSocket"]) = Just - "Closed socket to address." - documentFor _ = Nothing - - allNamespaces = [ - Namespace [] ["ConnectStart"] - , Namespace [] ["ConnectEnd"] - , Namespace [] ["ConnectException"] - , Namespace [] ["SocketAllocationException"] - , Namespace [] ["TryConnectToPeer"] - , Namespace [] ["SkippingPeer"] - , Namespace [] ["SubscriptionRunning"] - , Namespace [] ["SubscriptionWaiting"] - , Namespace [] ["SubscriptionFailed"] - , Namespace [] ["SubscriptionWaitingNewConnection"] - , Namespace [] ["Start"] - , Namespace [] ["Restart"] - , Namespace [] ["ConnectionExist"] - , Namespace [] ["UnsupportedRemoteAddr"] - , Namespace [] ["MissingLocalAddress"] - , Namespace [] ["ApplicationException"] - , Namespace [] ["AllocateSocket"] - , Namespace [] ["CloseSocket"] - ] - - - - --------------------------------------------------------------------------------- --- DNSResolver Tracer --------------------------------------------------------------------------------- - -instance LogFormatting (WithDomainName DnsTrace) where - forMachine _dtal (WithDomainName dom ev) = - mconcat [ "kind" .= String "DnsTrace" - , "domain" .= String (pack $ show dom) - , "event" .= String (pack $ show ev)] - forHuman (WithDomainName dom ev) = - pack (show ev) - <> ". Domain is " - <> pack (show dom) - <> "." - -instance MetaTrace DnsTrace where - namespaceFor DnsTraceLookupException {} = - Namespace [] ["LookupException"] - namespaceFor DnsTraceLookupAError {} = - Namespace [] ["LookupAError"] - namespaceFor DnsTraceLookupAAAAError {} = - Namespace [] ["LookupAAAAError"] - namespaceFor DnsTraceLookupIPv6First = - Namespace [] ["LookupIPv6First"] - namespaceFor DnsTraceLookupIPv4First = - Namespace [] ["LookupIPv4First"] - namespaceFor DnsTraceLookupAResult {} = - Namespace [] ["LookupAResult"] - namespaceFor DnsTraceLookupAAAAResult {} = - Namespace [] ["LookupAAAAResult"] - - severityFor (Namespace _ ["LookupException"]) _ = Just Error - severityFor (Namespace _ ["LookupAError"]) _ = Just Error - severityFor (Namespace _ ["LookupAAAAError"]) _ = Just Error - severityFor (Namespace _ ["LookupIPv6First"]) _ = Just Debug - severityFor (Namespace _ ["LookupIPv4First"]) _ = Just Debug - severityFor (Namespace _ ["LookupAResult"]) _ = Just Debug - severityFor (Namespace _ ["LookupAAAAResult"]) _ = Just Debug - severityFor _ _ = Nothing - - documentFor (Namespace _ ["LookupException"]) = Just - "A DNS lookup exception occurred." - documentFor (Namespace _ ["LookupAError"]) = Just - "A lookup failed with an error." - documentFor (Namespace _ ["LookupAAAAError"]) = Just - "AAAA lookup failed with an error." - documentFor (Namespace _ ["LookupIPv6First"]) = Just - "Returning IPv6 address first." - documentFor (Namespace _ ["LookupIPv4First"]) = Just - "Returning IPv4 address first." - documentFor (Namespace _ ["LookupAResult"]) = Just - "Lookup A result." - documentFor (Namespace _ ["LookupAAAAResult"]) = Just - "Lookup AAAA result." - documentFor _ = Nothing - - allNamespaces = [ - Namespace [] ["LookupException"] - , Namespace [] ["LookupAError"] - , Namespace [] ["LookupAAAAError"] - , Namespace [] ["LookupIPv6First"] - , Namespace [] ["LookupIPv4First"] - , Namespace [] ["LookupAResult"] - , Namespace [] ["LookupAAAAResult"] - ] - - --------------------------------------------------------------------------------- --- ErrorPolicy Tracer --------------------------------------------------------------------------------- - -instance Show addr => LogFormatting (NtN.WithAddr addr NtN.ErrorPolicyTrace) where - forMachine _dtal (NtN.WithAddr addr ev) = - mconcat [ "kind" .= String "ErrorPolicyTrace" - , "address" .= show addr - , "event" .= show ev ] - forHuman (NtN.WithAddr addr ev) = "With address " <> showT addr <> ". " <> showT ev - -instance MetaTrace tr => MetaTrace (NtN.WithAddr addr tr) where - namespaceFor (NtN.WithAddr _ ev) = nsCast (namespaceFor ev) - severityFor ns Nothing = severityFor (nsCast ns :: Namespace tr) Nothing - severityFor ns (Just (NtN.WithAddr _ ev)) = - severityFor (nsCast ns) (Just ev) - detailsFor ns Nothing = detailsFor (nsCast ns :: Namespace tr) Nothing - detailsFor ns (Just (NtN.WithAddr _ ev)) = - detailsFor (nsCast ns) (Just ev) - privacyFor ns Nothing = privacyFor (nsCast ns :: Namespace tr) Nothing - privacyFor ns (Just (NtN.WithAddr _ ev)) = - privacyFor (nsCast ns) (Just ev) - documentFor ns = documentFor (nsCast ns :: Namespace tr) - allNamespaces = fmap nsCast - (allNamespaces :: [Namespace tr]) - -instance MetaTrace NtN.ErrorPolicyTrace where - namespaceFor ErrorPolicySuspendPeer {} = - Namespace [] ["SuspendPeer"] - namespaceFor ErrorPolicySuspendConsumer {} = - Namespace [] ["SuspendConsumer"] - namespaceFor ErrorPolicyLocalNodeError {} = - Namespace [] ["LocalNodeError"] - namespaceFor ErrorPolicyResumePeer {} = - Namespace [] ["ResumePeer"] - namespaceFor ErrorPolicyKeepSuspended {} = - Namespace [] ["KeepSuspended"] - namespaceFor ErrorPolicyResumeConsumer {} = - Namespace [] ["ResumeConsumer"] - namespaceFor ErrorPolicyResumeProducer {} = - Namespace [] ["ResumeProducer"] - namespaceFor ErrorPolicyUnhandledApplicationException {} = - Namespace [] ["UnhandledApplicationException"] - namespaceFor ErrorPolicyUnhandledConnectionException {} = - Namespace [] ["UnhandledConnectionException"] - namespaceFor ErrorPolicyAcceptException {} = - Namespace [] ["AcceptException"] - - severityFor (Namespace _ ["SuspendPeer"]) _ = Just Warning - severityFor (Namespace _ ["SuspendConsumer"]) _ = Just Notice - severityFor (Namespace _ ["LocalNodeError"]) _ = Just Error - severityFor (Namespace _ ["ResumePeer"]) _ = Just Debug - severityFor (Namespace _ ["KeepSuspended"]) _ = Just Debug - severityFor (Namespace _ ["ResumeConsumer"]) _ = Just Debug - severityFor (Namespace _ ["ResumeProducer"]) _ = Just Debug - severityFor (Namespace _ ["UnhandledApplicationException"]) _ = Just Error - severityFor (Namespace _ ["UnhandledConnectionException"]) _ = Just Error - severityFor (Namespace _ ["AcceptException"]) _ = Just Error - severityFor _ _ = Nothing - - documentFor (Namespace _ ["SuspendPeer"]) = Just - "Suspending peer with a given exception." - documentFor (Namespace _ ["SuspendConsumer"]) = Just - "Suspending consumer." - documentFor (Namespace _ ["LocalNodeError"]) = Just - "Caught a local exception." - documentFor (Namespace _ ["ResumePeer"]) = Just - "Resume a peer (both consumer and producer)." - documentFor (Namespace _ ["KeepSuspended"]) = Just - "Consumer was suspended until producer will resume." - documentFor (Namespace _ ["ResumeConsumer"]) = Just - "Resume consumer." - documentFor (Namespace _ ["ResumeProducer"]) = Just - "Resume producer." - documentFor (Namespace _ ["UnhandledApplicationException"]) = Just - "An application threw an exception, which was not handled." - documentFor (Namespace _ ["UnhandledConnectionException"]) = Just - "" - documentFor (Namespace _ ["AcceptException"]) = Just - "'accept' threw an exception." - documentFor _ = Nothing - - allNamespaces = [ - Namespace [] ["SuspendPeer"] - , Namespace [] ["SuspendConsumer"] - , Namespace [] ["LocalNodeError"] - , Namespace [] ["ResumePeer"] - , Namespace [] ["KeepSuspended"] - , Namespace [] ["ResumeConsumer"] - , Namespace [] ["ResumeProducer"] - , Namespace [] ["UnhandledApplicationException"] - , Namespace [] ["UnhandledConnectionException"] - , Namespace [] ["AcceptException"] - ] diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/P2P.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/P2P.hs index 6f8ff8de124..d53a977643c 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/P2P.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/P2P.hs @@ -13,14 +13,14 @@ module Cardano.Node.Tracing.Tracers.P2P () where import Cardano.Logging +import Cardano.Network.Diffusion (TraceChurnMode (..)) +import qualified Cardano.Network.PeerSelection.ExtraRootPeers as Cardano.PublicRootPeers +import qualified Cardano.Network.PeerSelection.Governor.PeerSelectionState as Cardano +import qualified Cardano.Network.PeerSelection.Governor.Types as Cardano import Cardano.Network.PeerSelection.PeerTrustable (PeerTrustable) import Cardano.Node.Configuration.TopologyP2P () import Cardano.Node.Tracing.Tracers.NodeToNode () -import Cardano.Node.Tracing.Tracers.NonP2P () import Cardano.Tracing.OrphanInstances.Network () -import qualified Ouroboros.Cardano.Network.PeerSelection.Governor.PeerSelectionState as Cardano -import qualified Ouroboros.Cardano.Network.PeerSelection.Governor.Types as Cardano -import qualified Ouroboros.Cardano.Network.PublicRootPeers as Cardano.PublicRootPeers import Ouroboros.Network.ConnectionHandler (ConnectionHandlerTrace (..)) import Ouroboros.Network.ConnectionId (ConnectionId (..)) import Ouroboros.Network.ConnectionManager.ConnMap (ConnMap (..)) @@ -31,6 +31,7 @@ import Ouroboros.Network.InboundGovernor as InboundGovernor (Trace (.. import qualified Ouroboros.Network.InboundGovernor as InboundGovernor import Ouroboros.Network.InboundGovernor.State as InboundGovernor (Counters (..)) import qualified Ouroboros.Network.NodeToNode as NtN +import Ouroboros.Network.OrphanInstances () import Ouroboros.Network.PeerSelection.Churn (ChurnCounters (..)) import Ouroboros.Network.PeerSelection.Governor (DebugPeerSelection (..), DebugPeerSelectionState (..), PeerSelectionCounters, PeerSelectionState (..), @@ -39,6 +40,7 @@ import Ouroboros.Network.PeerSelection.Governor (DebugPeerSelection (. import Ouroboros.Network.PeerSelection.Governor.Types (DemotionTimeoutException) import Ouroboros.Network.PeerSelection.PeerStateActions (PeerSelectionActionsTrace (..)) import Ouroboros.Network.PeerSelection.RelayAccessPoint (RelayAccessPoint) +import Ouroboros.Network.PeerSelection.RootPeersDNS.DNSActions (DNSTrace (..)) import Ouroboros.Network.PeerSelection.RootPeersDNS.LocalRootPeers (TraceLocalRootPeers (..)) import Ouroboros.Network.PeerSelection.RootPeersDNS.PublicRootPeers @@ -47,7 +49,7 @@ import qualified Ouroboros.Network.PeerSelection.State.KnownPeers as KnownPeers import Ouroboros.Network.PeerSelection.Types () import Ouroboros.Network.Protocol.PeerSharing.Type (PeerSharingAmount (..)) import Ouroboros.Network.RethrowPolicy (ErrorCommand (..)) -import Ouroboros.Network.Server2 as Server +import Ouroboros.Network.Server as Server import Ouroboros.Network.Snocket (LocalAddress (..)) import Control.Exception (displayException, fromException) @@ -56,12 +58,34 @@ import Data.Aeson (Object, ToJSON, ToJSONKey, Value (..), object, toJS import Data.Aeson.Types (listValue) import Data.Bifunctor (Bifunctor (..)) import Data.Foldable (Foldable (..)) +import qualified Data.IP as IP import qualified Data.Map.Strict as Map import qualified Data.Set as Set import Data.Text (pack) import Network.Socket (SockAddr (..)) +-------------------------------------------------------------------------------- +-- Addresses +-------------------------------------------------------------------------------- + +instance LogFormatting LocalAddress where + forMachine _dtal (LocalAddress path) = + mconcat ["path" .= path] + +instance LogFormatting NtN.RemoteAddress where + forMachine _dtal (SockAddrInet port addr) = + let ip = IP.fromHostAddress addr in + mconcat [ "addr" .= show ip + , "port" .= show port + ] + forMachine _dtal (SockAddrInet6 port _ addr _) = + let ip = IP.fromHostAddress6 addr in + mconcat [ "addr" .= show ip + , "port" .= show port + ] + forMachine _dtal (SockAddrUnix path) = + mconcat [ "path" .= show path ] -------------------------------------------------------------------------------- -- LocalRootPeers Tracer @@ -72,35 +96,32 @@ instance , ToJSON ntnAddr , ToJSONKey RelayAccessPoint , Show ntnAddr - , Show exception - ) => LogFormatting (TraceLocalRootPeers PeerTrustable ntnAddr exception) where + ) => LogFormatting (TraceLocalRootPeers PeerTrustable ntnAddr) where forMachine _dtal (TraceLocalRootDomains groups) = mconcat [ "kind" .= String "LocalRootDomains" , "localRootDomains" .= toJSON groups ] forMachine _dtal (TraceLocalRootWaiting d dt) = mconcat [ "kind" .= String "LocalRootWaiting" + -- TODO: `domainAddress` -> `accessPoint` , "domainAddress" .= toJSON d , "diffTime" .= show dt ] - forMachine _dtal (TraceLocalRootResult d res) = - mconcat [ "kind" .= String "LocalRootResult" - , "domainAddress" .= toJSON d - , "result" .= toJSONList res - ] forMachine _dtal (TraceLocalRootGroups groups) = mconcat [ "kind" .= String "LocalRootGroups" , "localRootGroups" .= toJSON groups ] forMachine _dtal (TraceLocalRootFailure d exception) = mconcat [ "kind" .= String "LocalRootFailure" + -- TODO: `domainAddress` -> `accessPoint` , "domainAddress" .= toJSON d - , "reason" .= show exception + , "reason" .= displayException exception ] forMachine _dtal (TraceLocalRootError d exception) = mconcat [ "kind" .= String "LocalRootError" - , "domainAddress" .= toJSON d - , "reason" .= show exception + -- TODO: `domainAddress` -> `domain` + , "domainAddress" .= String (pack . show $ d) + , "reason" .= displayException exception ] forMachine _dtal (TraceLocalRootReconfigured d exception) = mconcat [ "kind" .= String "LocalRootReconfigured" @@ -114,11 +135,10 @@ instance ] forHuman = pack . show -instance MetaTrace (TraceLocalRootPeers ntnAddr extraFlags exception) where +instance MetaTrace (TraceLocalRootPeers ntnAddr extraFlags) where namespaceFor = \case TraceLocalRootDomains {} -> Namespace [] ["LocalRootDomains"] TraceLocalRootWaiting {} -> Namespace [] ["LocalRootWaiting"] - TraceLocalRootResult {} -> Namespace [] ["LocalRootResult"] TraceLocalRootGroups {} -> Namespace [] ["LocalRootGroups"] TraceLocalRootFailure {} -> Namespace [] ["LocalRootFailure"] TraceLocalRootError {} -> Namespace [] ["LocalRootError"] @@ -177,23 +197,11 @@ instance LogFormatting TracePublicRootPeers where mconcat [ "kind" .= String "PublicRootDomains" , "domainAddresses" .= toJSONList domains ] - forMachine _dtal (TracePublicRootResult b res) = - mconcat [ "kind" .= String "PublicRootResult" - , "domain" .= show b - , "result" .= toJSONList res - ] - forMachine _dtal (TracePublicRootFailure b d) = - mconcat [ "kind" .= String "PublicRootFailure" - , "domain" .= show b - , "reason" .= show d - ] forHuman = pack . show instance MetaTrace TracePublicRootPeers where namespaceFor TracePublicRootRelayAccessPoint {} = Namespace [] ["PublicRootRelayAccessPoint"] namespaceFor TracePublicRootDomains {} = Namespace [] ["PublicRootDomains"] - namespaceFor TracePublicRootResult {} = Namespace [] ["PublicRootResult"] - namespaceFor TracePublicRootFailure {} = Namespace [] ["PublicRootFailure"] severityFor (Namespace [] ["PublicRootRelayAccessPoint"]) _ = Just Info severityFor (Namespace [] ["PublicRootDomains"]) _ = Just Info @@ -495,9 +503,6 @@ instance LogFormatting (TracePeerSelection Cardano.DebugPeerSelectionState PeerT mconcat [ "kind" .= String "ChurnWait" , "diffTime" .= toJSON dt ] - forMachine _dtal (TraceChurnMode c) = - mconcat [ "kind" .= String "ChurnMode" - , "event" .= show c ] forMachine _dtal (TracePickInboundPeers targetNumberOfKnownPeers numberOfKnownPeers selected available) = mconcat [ "kind" .= String "PickInboundPeers" , "targetKnown" .= targetNumberOfKnownPeers @@ -670,8 +675,6 @@ instance MetaTrace (TracePeerSelection extraDebugState extraFlags extraPeers Soc Namespace [] ["GovernorWakeup"] namespaceFor TraceChurnWait {} = Namespace [] ["ChurnWait"] - namespaceFor TraceChurnMode {} = - Namespace [] ["ChurnMode"] namespaceFor TracePickInboundPeers {} = Namespace [] ["PickInboundPeers"] namespaceFor TraceLedgerStateJudgementChanged {} = @@ -1223,6 +1226,10 @@ instance Show lAddr => LogFormatting (PeerSelectionActionsTrace SockAddr lAddr) mconcat [ "kind" .= String "AcquireConnectionError" , "error" .= displayException exception ] + forMachine _dtal (PeerHotDuration connId dt) = + mconcat [ "kind" .= String "PeerHotDuration" + , "connectionId" .= toJSON connId + , "time" .= show dt] forHuman = pack . show instance MetaTrace (PeerSelectionActionsTrace SockAddr lAddr) where @@ -1231,12 +1238,14 @@ instance MetaTrace (PeerSelectionActionsTrace SockAddr lAddr) where namespaceFor PeerMonitoringError {} = Namespace [] ["MonitoringError"] namespaceFor PeerMonitoringResult {} = Namespace [] ["MonitoringResult"] namespaceFor AcquireConnectionError {} = Namespace [] ["ConnectionError"] + namespaceFor PeerHotDuration {} = Namespace [] ["PeerHotDuration"] severityFor (Namespace _ ["StatusChanged"]) _ = Just Info severityFor (Namespace _ ["StatusChangeFailure"]) _ = Just Error severityFor (Namespace _ ["MonitoringError"]) _ = Just Error severityFor (Namespace _ ["MonitoringResult"]) _ = Just Debug severityFor (Namespace _ ["ConnectionError"]) _ = Just Error + severityFor (Namespace _ ["PeerHotDuration"]) _ = Just Info severityFor _ _ = Nothing documentFor (Namespace _ ["StatusChanged"]) = Just @@ -1249,6 +1258,8 @@ instance MetaTrace (PeerSelectionActionsTrace SockAddr lAddr) where "" documentFor (Namespace _ ["ConnectionError"]) = Just "" + documentFor (Namespace _ ["PeerHotDuration"]) = Just + "Reports how long the outbound connection was in hot state" documentFor _ = Nothing allNamespaces = [ @@ -1257,6 +1268,7 @@ instance MetaTrace (PeerSelectionActionsTrace SockAddr lAddr) where , Namespace [] ["MonitoringError"] , Namespace [] ["MonitoringResult"] , Namespace [] ["ConnectionError"] + , Namespace [] ["PeerHotDuration"] ] -------------------------------------------------------------------------------- @@ -1705,7 +1717,7 @@ instance LogFormatting (InboundGovernor.Trace LocalAddress) where asMetrics _ = [] -forMachineGov :: (ToJSON adr, Show adr) => DetailLevel -> InboundGovernor.Trace adr -> Object +forMachineGov :: (ToJSON adr, Show adr, ToJSONKey adr) => DetailLevel -> InboundGovernor.Trace adr -> Object forMachineGov _dtal (TrNewConnection p connId) = mconcat [ "kind" .= String "NewConnection" , "provenance" .= show p @@ -2001,3 +2013,88 @@ instance MetaTrace NtN.AcceptConnectionsPolicyTrace where , Namespace [] ["ConnectionHardLimit"] , Namespace [] ["ConnectionLimitResume"] ] + +-------------------------------------------------------------------------------- +-- DNSTrace Tracer +-------------------------------------------------------------------------------- + +instance LogFormatting DNSTrace where + forMachine _dtal (DNSLookupResult peerKind domain Nothing results) = + mconcat [ "kind" .= String "DNSLookupResult" + , "peerKind" .= String (pack . show $ peerKind) + , "domain" .= String (pack . show $ domain) + , "results" .= results + ] + forMachine _dtal (DNSLookupResult peerKind domain (Just srv) results) = + mconcat [ "kind" .= String "DNSLookupResult" + , "peerKind" .= String (pack . show $ peerKind) + , "domain" .= String (pack . show $ domain) + , "srv" .= String (pack . show $ srv) + , "results" .= results + ] + forMachine _dtal (DNSLookupError peerKind lookupType domain dnsError) = + mconcat [ "kind" .= String "DNSLookupError" + , "peerKind" .= String (pack . show $ peerKind) + , "lookupKind" .= String (pack . show $ lookupType) + , "domain" .= String (pack . show $ domain) + , "dnsError" .= String (pack . show $ dnsError) + ] + forMachine _dtal (SRVLookupResult peerKind domain results) = + mconcat [ "kind" .= String "SRVLookupResult" + , "peerKind" .= String (pack . show $ peerKind) + , "domain" .= String (pack . show $ domain) + , "results" .= [ (show a, b, c, d, e) + | (a, b, c, d, e) <- results + ] + ] + forMachine _dtal (SRVLookupError peerKind domain) = + mconcat [ "kind" .= String "SRVLookupError" + , "peerKind" .= String (pack . show $ peerKind) + , "domain" .= String (pack . show $ domain) + ] + +instance MetaTrace DNSTrace where + namespaceFor DNSLookupResult {} = + Namespace [] ["DNSLookupResult"] + namespaceFor DNSLookupError {} = + Namespace [] ["DNSLookupError"] + namespaceFor SRVLookupResult {} = + Namespace [] ["SRVLookupResult"] + namespaceFor SRVLookupError {} = + Namespace [] ["SRVLookupError"] + + severityFor _ (Just DNSLookupResult {}) = Just Info + severityFor _ (Just DNSLookupError {}) = Just Info + severityFor _ (Just SRVLookupResult{}) = Just Info + severityFor _ (Just SRVLookupError{}) = Just Info + severityFor _ Nothing = Nothing + + documentFor _ = Nothing + + allNamespaces = [ + Namespace [] ["DNSLookupResult"] + , Namespace [] ["DNSLookupError"] + , Namespace [] ["SRVLookupResult"] + , Namespace [] ["SRVLookupError"] + ] + +-------------------------------------------------------------------------------- +-- ChurnMode Tracer +-------------------------------------------------------------------------------- + +instance LogFormatting TraceChurnMode where + forMachine _dtal (TraceChurnMode mode) = + mconcat [ "kind" .= String "ChurnMode" + , "churnMode" .= String (pack . show $ mode) + ] +instance MetaTrace TraceChurnMode where + namespaceFor TraceChurnMode {} = + Namespace [] ["PeerSelection", "ChurnMode"] + severityFor _ (Just TraceChurnMode {}) = Just Info + severityFor _ Nothing = Nothing + + documentFor _ = Nothing + + allNamespaces = [ + Namespace [] ["PeerSelection", "ChurnMode"] + ] diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/Startup.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/Startup.hs index f12b7de13d0..0ec1b4cdfc3 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/Startup.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/Startup.hs @@ -85,14 +85,15 @@ getStartupInfo nc (SomeConsensusProtocol whichP pForInfo) fp = do in [getGenesisValues "Shelley" cfgShelley] Api.CardanoBlockType -> let CardanoLedgerConfig cfgByron cfgShelley cfgAllegra cfgMary cfgAlonzo - cfgBabbage cfgConway = Consensus.configLedger cfg + cfgBabbage cfgConway cfgDijkstra = Consensus.configLedger cfg in [ getGenesisValuesByron cfg cfgByron - , getGenesisValues "Shelley" cfgShelley - , getGenesisValues "Allegra" cfgAllegra - , getGenesisValues "Mary" cfgMary - , getGenesisValues "Alonzo" cfgAlonzo - , getGenesisValues "Babbage" cfgBabbage - , getGenesisValues "Conway" cfgConway + , getGenesisValues "Shelley" cfgShelley + , getGenesisValues "Allegra" cfgAllegra + , getGenesisValues "Mary" cfgMary + , getGenesisValues "Alonzo" cfgAlonzo + , getGenesisValues "Babbage" cfgBabbage + , getGenesisValues "Conway" cfgConway + , getGenesisValues "Dijkstra" cfgDijkstra ] pure (basicInfoCommon : protocolDependentItems) where @@ -222,8 +223,8 @@ instance ( Show (BlockNodeToNodeVersion blk) mconcat [ "kind" .= String "LedgerPeerSnapshot" , "message" .= String ( mconcat [ - "Topology file misconfiguration: loaded but ignoring ", - "input recorded ", showT wOrigin, " but topology specifies ", + "Topology file misconfiguration: peer snapshot recorded ", + showT wOrigin, " but topology specifies ", "to use ledger peers: ", showT useLedgerPeers, ". Possible fix: update your big ledger peer snapshot ", "or enable the use of ledger peers in the topology file."])] @@ -266,8 +267,6 @@ instance ( Show (BlockNodeToNodeVersion blk) mconcat [ "kind" .= String "BasicInfoNetwork" , "addresses" .= String (showT niAddresses) , "diffusionMode" .= String (showT niDiffusionMode) - , "dnsProducers" .= String (showT niDnsProducers) - , "ipProducers" .= String (showT niIpProducers) ] forMachine _dtal (BIByron BasicInfoByron {..}) = mconcat [ "kind" .= String "BasicInfoByron" @@ -374,6 +373,7 @@ instance MetaTrace (StartupTrace blk) where severityFor (Namespace _ ["BlockForgingUpdateError"]) _ = Just Error severityFor (Namespace _ ["BlockForgingBlockTypeMismatch"]) _ = Just Error severityFor (Namespace _ ["MovedTopLevelOption"]) _ = Just Warning + severityFor (Namespace _ ["LedgerPeerSnapshot"]) _ = Just Notice severityFor (Namespace _ ["LedgerPeerSnapshot", "Incompatible"]) _ = Just Warning severityFor _ _ = Just Info @@ -487,10 +487,13 @@ nodeToClientVersionToInt = \case NodeToClientV_18 -> 18 NodeToClientV_19 -> 19 NodeToClientV_20 -> 20 + NodeToClientV_21 -> 21 + NodeToClientV_22 -> 22 nodeToNodeVersionToInt :: NodeToNodeVersion -> Int nodeToNodeVersionToInt = \case NodeToNodeV_14 -> 14 + NodeToNodeV_15 -> 15 -- | Pretty print 'StartupInfoTrace' -- @@ -604,8 +607,6 @@ ppStartupInfoTrace (WarningDevelopmentNodeToClientVersions ntcVersions) = ppStartupInfoTrace (BINetwork BasicInfoNetwork {..}) = "Addresses " <> showT niAddresses <> ", DiffusionMode " <> showT niDiffusionMode - <> ", DnsProducers " <> showT niDnsProducers - <> ", IpProducers " <> showT niIpProducers ppStartupInfoTrace (BIByron BasicInfoByron {..}) = "Era Byron" diff --git a/cardano-node/src/Cardano/Node/Types.hs b/cardano-node/src/Cardano/Node/Types.hs index cd2efbffe75..b3c9109cb4c 100644 --- a/cardano-node/src/Cardano/Node/Types.hs +++ b/cardano-node/src/Cardano/Node/Types.hs @@ -34,6 +34,7 @@ module Cardano.Node.Types , NodeShelleyProtocolConfiguration(..) , NodeAlonzoProtocolConfiguration(..) , NodeConwayProtocolConfiguration(..) + , NodeDijkstraProtocolConfiguration(..) , NodeCheckpointsConfiguration(..) , VRFPrivateKeyFilePermissionError(..) , renderVRFPrivateKeyFilePermissionError @@ -207,6 +208,7 @@ data NodeProtocolConfiguration = NodeShelleyProtocolConfiguration NodeAlonzoProtocolConfiguration NodeConwayProtocolConfiguration + (Maybe NodeDijkstraProtocolConfiguration) NodeHardForkProtocolConfiguration NodeCheckpointsConfiguration deriving (Eq, Show) @@ -235,6 +237,13 @@ data NodeConwayProtocolConfiguration = } deriving (Eq, Show) +data NodeDijkstraProtocolConfiguration = + NodeDijkstraProtocolConfiguration { + npcDijkstraGenesisFile :: !GenesisFile + , npcDijkstraGenesisFileHash :: !(Maybe GenesisHash) + } + deriving (Eq, Show) + data NodeByronProtocolConfiguration = NodeByronProtocolConfiguration { npcByronGenesisFile :: !GenesisFile @@ -357,6 +366,9 @@ data NodeHardForkProtocolConfiguration = , npcTestConwayHardForkAtEpoch :: Maybe EpochNo , npcTestConwayHardForkAtVersion :: Maybe Word + + , npcTestDijkstraHardForkAtEpoch :: Maybe EpochNo + , npcTestDijkstraHardForkAtVersion :: Maybe Word } deriving (Eq, Show) @@ -425,12 +437,13 @@ newtype TopologyFile = TopologyFile deriving newtype (Show, Eq) instance AdjustFilePaths NodeProtocolConfiguration where - adjustFilePaths f (NodeProtocolConfigurationCardano pcb pcs pca pcc pch pccp) = + adjustFilePaths f (NodeProtocolConfigurationCardano pcb pcs pca pcc pcd pch pccp) = NodeProtocolConfigurationCardano (adjustFilePaths f pcb) (adjustFilePaths f pcs) (adjustFilePaths f pca) (adjustFilePaths f pcc) + (adjustFilePaths f <$> pcd) pch (adjustFilePaths f pccp) @@ -458,6 +471,12 @@ instance AdjustFilePaths NodeConwayProtocolConfiguration where } = x { npcConwayGenesisFile = adjustFilePaths f npcConwayGenesisFile } +instance AdjustFilePaths NodeDijkstraProtocolConfiguration where + adjustFilePaths f x@NodeDijkstraProtocolConfiguration { + npcDijkstraGenesisFile + } = + x { npcDijkstraGenesisFile = adjustFilePaths f npcDijkstraGenesisFile } + instance AdjustFilePaths NodeCheckpointsConfiguration where adjustFilePaths f x@NodeCheckpointsConfiguration { npcCheckpointsFile diff --git a/cardano-node/src/Cardano/Tracing/Config.hs b/cardano-node/src/Cardano/Tracing/Config.hs index 279c7442400..43b7e1cb07e 100644 --- a/cardano-node/src/Cardano/Tracing/Config.hs +++ b/cardano-node/src/Cardano/Tracing/Config.hs @@ -1,6 +1,7 @@ {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE KindSignatures #-} +{-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE ScopedTypeVariables #-} @@ -59,7 +60,11 @@ module Cardano.Tracing.Config , TraceLocalTxSubmissionServer , TraceMempool , TraceMux + , TraceMuxBearer + , TraceMuxChannel , TraceLocalMux + , TraceLocalMuxBearer + , TraceLocalMuxChannel , TracePeerSelection , TracePeerSelectionCounters , TracePeerSelectionActions @@ -166,7 +171,11 @@ type TraceLocalTxSubmissionServer = ("TraceLocalTxSubmissionServer" :: Symbol) type TraceMempool = ("TraceMempool" :: Symbol) type TraceBackingStore = ("TraceBackingStore" :: Symbol) type TraceMux = ("TraceMux" :: Symbol) +type TraceMuxBearer = ("TraceMuxBearer" :: Symbol) +type TraceMuxChannel = ("TraceMuxChannel" :: Symbol) type TraceLocalMux = ("TraceLocalMux" :: Symbol) +type TraceLocalMuxBearer = ("TraceLocalMuxBearer" :: Symbol) +type TraceLocalMuxChannel = ("TraceLocalMuxChannel" :: Symbol) type TracePeerSelection = ("TracePeerSelection" :: Symbol) type TracePeerSelectionCounters = ("TracePeerSelectionCounters" :: Symbol) type TracePeerSelectionActions = ("TracePeerSelectionActions" :: Symbol) @@ -184,7 +193,10 @@ type TraceKeepAliveProtocol = ("TraceKeepAliveProtocol" :: Symbol) type TracePeerSharingProtocol = ("TracePeerSharingProtocol" :: Symbol) type TraceGsm = ("TraceGsm" :: Symbol) type TraceCsj = ("TraceCsj" :: Symbol) +type TraceKesAgent = ("TraceKesAgent" :: Symbol) type TraceDevotedBlockFetch = ("TraceDevotedBlockFetch" :: Symbol) +type TraceChurnMode = ("TraceChurnMode" :: Symbol) +type TraceDNS = ("TraceDNS" :: Symbol) newtype OnOff (name :: Symbol) = OnOff { isOn :: Bool } deriving (Eq, Show) @@ -237,6 +249,8 @@ data TraceSelection , traceLocalHandshake :: OnOff TraceLocalHandshake , traceLocalInboundGovernor :: OnOff TraceLocalInboundGovernor , traceLocalMux :: OnOff TraceLocalMux + , traceLocalMuxBearer :: OnOff TraceLocalMuxBearer + , traceLocalMuxChannel :: OnOff TraceLocalMuxChannel , traceLocalRootPeers :: OnOff TraceLocalRootPeers , traceLocalServer :: OnOff TraceLocalServer , traceLocalStateQueryProtocol :: OnOff TraceLocalStateQueryProtocol @@ -246,6 +260,8 @@ data TraceSelection , traceMempool :: OnOff TraceMempool , traceBackingStore :: OnOff TraceBackingStore , traceMux :: OnOff TraceMux + , traceMuxBearer :: OnOff TraceMuxBearer + , traceMuxChannel :: OnOff TraceMuxChannel , tracePeerSelection :: OnOff TracePeerSelection , tracePeerSelectionCounters :: OnOff TracePeerSelectionCounters , tracePeerSelectionActions :: OnOff TracePeerSelectionActions @@ -260,7 +276,10 @@ data TraceSelection , tracePeerSharingProtocol :: OnOff TracePeerSharingProtocol , traceGsm :: OnOff TraceGsm , traceCsj :: OnOff TraceCsj + , traceKesAgent :: OnOff TraceKesAgent , traceDevotedBlockFetch :: OnOff TraceDevotedBlockFetch + , traceChurnMode :: OnOff TraceChurnMode + , traceDNS :: OnOff TraceDNS } deriving (Eq, Show) @@ -307,6 +326,8 @@ data PartialTraceSelection , pTraceLocalHandshake :: Last (OnOff TraceLocalHandshake) , pTraceLocalInboundGovernor :: Last (OnOff TraceLocalInboundGovernor) , pTraceLocalMux :: Last (OnOff TraceLocalMux) + , pTraceLocalMuxBearer :: Last (OnOff TraceLocalMuxBearer) + , pTraceLocalMuxChannel :: Last (OnOff TraceLocalMuxChannel) , pTraceLocalRootPeers :: Last (OnOff TraceLocalRootPeers) , pTraceLocalServer :: Last (OnOff TraceLocalServer) , pTraceLocalStateQueryProtocol :: Last (OnOff TraceLocalStateQueryProtocol) @@ -316,6 +337,8 @@ data PartialTraceSelection , pTraceMempool :: Last (OnOff TraceMempool) , pTraceBackingStore :: Last (OnOff TraceBackingStore) , pTraceMux :: Last (OnOff TraceMux) + , pTraceMuxBearer :: Last (OnOff TraceMuxBearer) + , pTraceMuxChannel :: Last (OnOff TraceMuxChannel) , pTracePeerSelection :: Last (OnOff TracePeerSelection) , pTracePeerSelectionCounters :: Last (OnOff TracePeerSelectionCounters) , pTracePeerSelectionActions :: Last (OnOff TracePeerSelectionActions) @@ -331,6 +354,9 @@ data PartialTraceSelection , pTraceGsm :: Last (OnOff TraceGsm) , pTraceCsj :: Last (OnOff TraceCsj) , pTraceDevotedBlockFetch :: Last (OnOff TraceDevotedBlockFetch) + , pTraceChurnMode :: Last (OnOff TraceChurnMode) + , pTraceDNS :: Last (OnOff TraceDNS) + , pTraceKesAgent :: Last (OnOff TraceKesAgent) } deriving (Eq, Generic, Show) @@ -378,6 +404,8 @@ instance FromJSON PartialTraceSelection where <*> parseTracer (Proxy @TraceLocalHandshake) v <*> parseTracer (Proxy @TraceLocalInboundGovernor) v <*> parseTracer (Proxy @TraceLocalMux) v + <*> parseTracer (Proxy @TraceLocalMuxBearer) v + <*> parseTracer (Proxy @TraceLocalMuxChannel) v <*> parseTracer (Proxy @TraceLocalRootPeers) v <*> parseTracer (Proxy @TraceLocalServer) v <*> parseTracer (Proxy @TraceLocalStateQueryProtocol) v @@ -387,6 +415,8 @@ instance FromJSON PartialTraceSelection where <*> parseTracer (Proxy @TraceMempool) v <*> parseTracer (Proxy @TraceBackingStore) v <*> parseTracer (Proxy @TraceMux) v + <*> parseTracer (Proxy @TraceMuxBearer) v + <*> parseTracer (Proxy @TraceMuxChannel) v <*> parseTracer (Proxy @TracePeerSelection) v <*> parseTracer (Proxy @TracePeerSelectionCounters) v <*> parseTracer (Proxy @TracePeerSelectionActions) v @@ -402,6 +432,9 @@ instance FromJSON PartialTraceSelection where <*> parseTracer (Proxy @TraceGsm) v <*> parseTracer (Proxy @TraceCsj) v <*> parseTracer (Proxy @TraceDevotedBlockFetch) v + <*> parseTracer (Proxy @TraceChurnMode) v + <*> parseTracer (Proxy @TraceDNS) v + <*> parseTracer (Proxy @TraceKesAgent) v defaultPartialTraceConfiguration :: PartialTraceSelection @@ -446,6 +479,8 @@ defaultPartialTraceConfiguration = , pTraceLocalHandshake = pure $ OnOff True , pTraceLocalInboundGovernor = pure $ OnOff True , pTraceLocalMux = pure $ OnOff False + , pTraceLocalMuxBearer = pure $ OnOff False + , pTraceLocalMuxChannel = pure $ OnOff False , pTraceLocalTxMonitorProtocol = pure $ OnOff False , pTraceLocalRootPeers = pure $ OnOff False , pTraceLocalServer = pure $ OnOff True @@ -454,7 +489,9 @@ defaultPartialTraceConfiguration = , pTraceLocalTxSubmissionServer = pure $ OnOff False , pTraceMempool = pure $ OnOff True , pTraceBackingStore = pure $ OnOff False - , pTraceMux = pure $ OnOff True + , pTraceMux = pure $ OnOff False + , pTraceMuxBearer = pure $ OnOff False + , pTraceMuxChannel = pure $ OnOff False , pTracePeerSelection = pure $ OnOff True , pTracePeerSelectionCounters = pure $ OnOff True , pTracePeerSelectionActions = pure $ OnOff True @@ -470,6 +507,9 @@ defaultPartialTraceConfiguration = , pTraceGsm = pure $ OnOff True , pTraceCsj = pure $ OnOff True , pTraceDevotedBlockFetch = pure $ OnOff True + , pTraceChurnMode = pure $ OnOff True + , pTraceDNS = pure $ OnOff True + , pTraceKesAgent = pure $ OnOff False } @@ -516,6 +556,8 @@ partialTraceSelectionToEither (Last (Just (PartialTraceDispatcher pTraceSelectio traceLocalHandshake <- proxyLastToEither (Proxy @TraceLocalHandshake) pTraceLocalHandshake traceLocalInboundGovernor <- proxyLastToEither (Proxy @TraceLocalInboundGovernor) pTraceLocalInboundGovernor traceLocalMux <- proxyLastToEither (Proxy @TraceLocalMux) pTraceLocalMux + traceLocalMuxBearer <- proxyLastToEither (Proxy @TraceLocalMuxBearer) pTraceLocalMuxBearer + traceLocalMuxChannel <- proxyLastToEither (Proxy @TraceLocalMuxChannel) pTraceLocalMuxChannel traceLocalTxMonitorProtocol <- proxyLastToEither (Proxy @TraceLocalTxMonitorProtocol) pTraceLocalTxMonitorProtocol traceLocalRootPeers <- proxyLastToEither (Proxy @TraceLocalRootPeers) pTraceLocalRootPeers traceLocalServer <- proxyLastToEither (Proxy @TraceLocalServer) pTraceLocalServer @@ -525,6 +567,8 @@ partialTraceSelectionToEither (Last (Just (PartialTraceDispatcher pTraceSelectio traceMempool <- proxyLastToEither (Proxy @TraceMempool) pTraceMempool traceBackingStore <- proxyLastToEither (Proxy @TraceBackingStore) pTraceBackingStore traceMux <- proxyLastToEither (Proxy @TraceMux) pTraceMux + traceMuxBearer <- proxyLastToEither (Proxy @TraceMuxBearer) pTraceMuxBearer + traceMuxChannel <- proxyLastToEither (Proxy @TraceMuxChannel) pTraceMuxChannel tracePeerSelection <- proxyLastToEither (Proxy @TracePeerSelection) pTracePeerSelection tracePeerSelectionCounters <- proxyLastToEither (Proxy @TracePeerSelectionCounters) pTracePeerSelectionCounters tracePeerSelectionActions <- proxyLastToEither (Proxy @TracePeerSelectionActions) pTracePeerSelectionActions @@ -539,7 +583,10 @@ partialTraceSelectionToEither (Last (Just (PartialTraceDispatcher pTraceSelectio tracePeerSharingProtocol <- proxyLastToEither (Proxy @TracePeerSharingProtocol) pTracePeerSharingProtocol traceGsm <- proxyLastToEither (Proxy @TraceGsm) pTraceGsm traceCsj <- proxyLastToEither (Proxy @TraceCsj) pTraceCsj + traceKesAgent <- proxyLastToEither (Proxy @TraceKesAgent) pTraceKesAgent traceDevotedBlockFetch <- proxyLastToEither (Proxy @TraceDevotedBlockFetch) pTraceDevotedBlockFetch + traceChurnMode <- proxyLastToEither (Proxy @TraceChurnMode) pTraceChurnMode + traceDNS <- proxyLastToEither (Proxy @TraceDNS) pTraceDNS Right $ TraceDispatcher $ TraceSelection { traceVerbosity = traceVerbosity , traceAcceptPolicy = traceAcceptPolicy @@ -579,6 +626,8 @@ partialTraceSelectionToEither (Last (Just (PartialTraceDispatcher pTraceSelectio , traceLocalHandshake = traceLocalHandshake , traceLocalInboundGovernor = traceLocalInboundGovernor , traceLocalMux = traceLocalMux + , traceLocalMuxBearer = traceLocalMuxBearer + , traceLocalMuxChannel = traceLocalMuxChannel , traceLocalTxMonitorProtocol = traceLocalTxMonitorProtocol , traceLocalRootPeers = traceLocalRootPeers , traceLocalServer = traceLocalServer @@ -588,6 +637,8 @@ partialTraceSelectionToEither (Last (Just (PartialTraceDispatcher pTraceSelectio , traceMempool = traceMempool , traceBackingStore = traceBackingStore , traceMux = traceMux + , traceMuxBearer = traceMuxBearer + , traceMuxChannel = traceMuxChannel , tracePeerSelection = tracePeerSelection , tracePeerSelectionCounters = tracePeerSelectionCounters , tracePeerSelectionActions = tracePeerSelectionActions @@ -603,6 +654,9 @@ partialTraceSelectionToEither (Last (Just (PartialTraceDispatcher pTraceSelectio , traceGsm = traceGsm , traceCsj = traceCsj , traceDevotedBlockFetch = traceDevotedBlockFetch + , traceChurnMode + , traceDNS + , traceKesAgent = traceKesAgent } partialTraceSelectionToEither (Last (Just (PartialTracingOnLegacy pTraceSelection))) = do @@ -646,6 +700,8 @@ partialTraceSelectionToEither (Last (Just (PartialTracingOnLegacy pTraceSelectio traceLocalHandshake <- proxyLastToEither (Proxy @TraceLocalHandshake) pTraceLocalHandshake traceLocalInboundGovernor <- proxyLastToEither (Proxy @TraceLocalInboundGovernor) pTraceLocalInboundGovernor traceLocalMux <- proxyLastToEither (Proxy @TraceLocalMux) pTraceLocalMux + traceLocalMuxBearer <- proxyLastToEither (Proxy @TraceLocalMuxBearer) pTraceLocalMuxBearer + traceLocalMuxChannel <- proxyLastToEither (Proxy @TraceLocalMuxChannel) pTraceLocalMuxChannel traceLocalRootPeers <- proxyLastToEither (Proxy @TraceLocalRootPeers) pTraceLocalRootPeers traceLocalServer <- proxyLastToEither (Proxy @TraceLocalServer) pTraceLocalServer traceLocalTxMonitorProtocol <- proxyLastToEither (Proxy @TraceLocalTxMonitorProtocol) pTraceLocalTxMonitorProtocol @@ -655,6 +711,8 @@ partialTraceSelectionToEither (Last (Just (PartialTracingOnLegacy pTraceSelectio traceMempool <- proxyLastToEither (Proxy @TraceMempool) pTraceMempool traceBackingStore <- proxyLastToEither (Proxy @TraceBackingStore) pTraceBackingStore traceMux <- proxyLastToEither (Proxy @TraceMux) pTraceMux + traceMuxBearer <- proxyLastToEither (Proxy @TraceMuxBearer) pTraceMuxBearer + traceMuxChannel <- proxyLastToEither (Proxy @TraceMuxChannel) pTraceMuxChannel tracePeerSelection <- proxyLastToEither (Proxy @TracePeerSelection) pTracePeerSelection tracePeerSelectionCounters <- proxyLastToEither (Proxy @TracePeerSelectionCounters) pTracePeerSelectionCounters tracePeerSelectionActions <- proxyLastToEither (Proxy @TracePeerSelectionActions) pTracePeerSelectionActions @@ -669,7 +727,10 @@ partialTraceSelectionToEither (Last (Just (PartialTracingOnLegacy pTraceSelectio tracePeerSharingProtocol <- proxyLastToEither (Proxy @TracePeerSharingProtocol) pTracePeerSharingProtocol traceGsm <- proxyLastToEither (Proxy @TraceGsm) pTraceGsm traceCsj <- proxyLastToEither (Proxy @TraceCsj) pTraceCsj + traceKesAgent <- proxyLastToEither (Proxy @TraceKesAgent) pTraceKesAgent traceDevotedBlockFetch <- proxyLastToEither (Proxy @TraceDevotedBlockFetch) pTraceDevotedBlockFetch + traceChurnMode <- proxyLastToEither (Proxy @TraceChurnMode) pTraceChurnMode + traceDNS <- proxyLastToEither (Proxy @TraceDNS) pTraceDNS Right $ TracingOnLegacy $ TraceSelection { traceVerbosity = traceVerbosity , traceAcceptPolicy = traceAcceptPolicy @@ -709,6 +770,8 @@ partialTraceSelectionToEither (Last (Just (PartialTracingOnLegacy pTraceSelectio , traceLocalHandshake = traceLocalHandshake , traceLocalInboundGovernor = traceLocalInboundGovernor , traceLocalMux = traceLocalMux + , traceLocalMuxBearer = traceLocalMuxBearer + , traceLocalMuxChannel = traceLocalMuxChannel , traceLocalRootPeers = traceLocalRootPeers , traceLocalServer = traceLocalServer , traceLocalStateQueryProtocol = traceLocalStateQueryProtocol @@ -718,6 +781,8 @@ partialTraceSelectionToEither (Last (Just (PartialTracingOnLegacy pTraceSelectio , traceMempool = traceMempool , traceBackingStore = traceBackingStore , traceMux = traceMux + , traceMuxBearer = traceMuxBearer + , traceMuxChannel = traceMuxChannel , tracePeerSelection = tracePeerSelection , tracePeerSelectionCounters = tracePeerSelectionCounters , tracePeerSelectionActions = tracePeerSelectionActions @@ -733,6 +798,9 @@ partialTraceSelectionToEither (Last (Just (PartialTracingOnLegacy pTraceSelectio , traceGsm = traceGsm , traceCsj = traceCsj , traceDevotedBlockFetch = traceDevotedBlockFetch + , traceChurnMode + , traceDNS + , traceKesAgent = traceKesAgent } proxyLastToEither :: KnownSymbol name => Proxy name -> Last (OnOff name) -> Either Text (OnOff name) diff --git a/cardano-node/src/Cardano/Tracing/OrphanInstances/Byron.hs b/cardano-node/src/Cardano/Tracing/OrphanInstances/Byron.hs index 5112a7e3891..b0c53901553 100644 --- a/cardano-node/src/Cardano/Tracing/OrphanInstances/Byron.hs +++ b/cardano-node/src/Cardano/Tracing/OrphanInstances/Byron.hs @@ -12,6 +12,8 @@ module Cardano.Tracing.OrphanInstances.Byron () where import Cardano.Api (textShow) +import Ouroboros.Consensus.Protocol.PBFT (PBftTiebreakerView(..)) +import Ouroboros.Consensus.Block.EBB (fromIsEBB) import Cardano.Chain.Block (ABlockOrBoundaryHdr (..), AHeader (..), ChainValidationError (..), delegationCertificate) import Cardano.Chain.Byron.API (ApplyMempoolPayloadErr (..)) @@ -21,14 +23,12 @@ import Cardano.Tracing.OrphanInstances.Common import Cardano.Tracing.OrphanInstances.Consensus () import Cardano.Tracing.Render (renderTxId) import Ouroboros.Consensus.Block (Header) -import Ouroboros.Consensus.Block.EBB (fromIsEBB) import Ouroboros.Consensus.Byron.Ledger (ByronBlock (..), ByronNodeToClientVersion (..), ByronNodeToNodeVersion (..), ByronOtherHeaderEnvelopeError (..), TxId (..), byronHeaderRaw) import Ouroboros.Consensus.Byron.Ledger.Inspect (ByronLedgerUpdate (..), ProtocolUpdate (..), UpdateState (..)) import Ouroboros.Consensus.Ledger.SupportsMempool (GenTx, txId) -import Ouroboros.Consensus.Protocol.PBFT (PBftSelectView (..)) import Ouroboros.Consensus.Util.Condense (condense) import Ouroboros.Network.Block (blockHash, blockNo, blockSlot) @@ -221,10 +221,9 @@ instance ToJSON ByronNodeToNodeVersion where toJSON ByronNodeToNodeVersion1 = String "ByronNodeToNodeVersion1" toJSON ByronNodeToNodeVersion2 = String "ByronNodeToNodeVersion2" -instance ToObject PBftSelectView where - toObject _verb (PBftSelectView blkNo isEBB) = +instance ToObject PBftTiebreakerView where + toObject _verb (PBftTiebreakerView isEBB) = mconcat - [ "kind" .= String "PBftSelectView" - , "blockNo" .= blkNo + [ "kind" .= String "PBftTiebreakerView" , "isEBB" .= fromIsEBB isEBB ] diff --git a/cardano-node/src/Cardano/Tracing/OrphanInstances/Consensus.hs b/cardano-node/src/Cardano/Tracing/OrphanInstances/Consensus.hs index d75a38541a9..e22cf83c3b7 100644 --- a/cardano-node/src/Cardano/Tracing/OrphanInstances/Consensus.hs +++ b/cardano-node/src/Cardano/Tracing/OrphanInstances/Consensus.hs @@ -31,7 +31,7 @@ import Cardano.Tracing.Render (renderChainHash, renderChunkNo, renderH renderWithOrigin) import Ouroboros.Consensus.Block (BlockProtocol, BlockSupportsProtocol, CannotForge, ConvertRawHash (..), ForgeStateUpdateError, GenesisWindow (..), GetHeader (..), - Header, RealPoint, blockNo, blockPoint, blockPrevHash, getHeader, pointHash, + Header, RealPoint (..), blockNo, blockPoint, blockPrevHash, getHeader, pointHash, realPointHash, realPointSlot, withOriginToMaybe) import Ouroboros.Consensus.Block.SupportsSanityCheck import Ouroboros.Consensus.Genesis.Governor (DensityBounds (..), GDDDebugInfo (..), @@ -61,6 +61,7 @@ import qualified Ouroboros.Consensus.Node.Tracers as Consensus import Ouroboros.Consensus.Protocol.Abstract import qualified Ouroboros.Consensus.Protocol.BFT as BFT import qualified Ouroboros.Consensus.Protocol.PBFT as PBFT +import Ouroboros.Consensus.Protocol.Praos.AgentClient import qualified Ouroboros.Consensus.Storage.ChainDB as ChainDB import qualified Ouroboros.Consensus.Storage.ImmutableDB.API as ImmDB import Ouroboros.Consensus.Storage.ImmutableDB.Chunks.Internal (ChunkNo (..), @@ -81,6 +82,7 @@ import Ouroboros.Network.Point (withOrigin) import Ouroboros.Network.SizeInBytes (SizeInBytes (..)) import Control.Monad (guard) +import Control.Exception import Data.Aeson (Value (..)) import qualified Data.Aeson as Aeson import Data.Foldable (Foldable (..)) @@ -93,6 +95,7 @@ import Data.Word (Word32) import GHC.Generics (Generic) import Network.TypedProtocol.Core import Numeric (showFFloat) +import qualified Cardano.KESAgent.Processes.ServiceClient as Agent {- HLINT ignore "Use const" -} @@ -147,11 +150,12 @@ instance ConvertRawHash blk => ConvertRawHash (HeaderWithTime blk) where instance HasPrivacyAnnotation (ChainDB.TraceEvent blk) instance HasSeverityAnnotation (ChainDB.TraceEvent blk) where getSeverityAnnotation (ChainDB.TraceAddBlockEvent ev) = case ev of - ChainDB.IgnoreBlockOlderThanK {} -> Info + ChainDB.IgnoreBlockOlderThanImmTip {} -> Info ChainDB.IgnoreBlockAlreadyInVolatileDB {} -> Info ChainDB.IgnoreInvalidBlock {} -> Info ChainDB.AddedBlockToQueue {} -> Debug ChainDB.PoppedBlockFromQueue {} -> Debug + ChainDB.PoppingFromQueue {} -> Debug ChainDB.AddedBlockToVolatileDB {} -> Debug ChainDB.TryAddToCurrentChain {} -> Debug ChainDB.TrySwitchToAFork {} -> Info @@ -166,7 +170,7 @@ instance HasSeverityAnnotation (ChainDB.TraceEvent blk) where ChainDB.ValidCandidate {} -> Info ChainDB.UpdateLedgerDbTraceEvent {} -> Debug ChainDB.PipeliningEvent {} -> Debug - ChainDB.AddedReprocessLoEBlocksToQueue -> Debug + ChainDB.AddedReprocessLoEBlocksToQueue {} -> Debug ChainDB.PoppedReprocessLoEBlocksFromQueue -> Debug ChainDB.ChainSelectionLoEDebug _ _ -> Debug @@ -289,14 +293,13 @@ instance HasSeverityAnnotation (TraceChainSyncServerEvent blk) where instance HasPrivacyAnnotation (TraceEventMempool blk) instance HasSeverityAnnotation (TraceEventMempool blk) where getSeverityAnnotation TraceMempoolAddedTx{} = Info + getSeverityAnnotation TraceMempoolTipMovedBetweenSTMBlocks{} = Info getSeverityAnnotation TraceMempoolRejectedTx{} = Info getSeverityAnnotation TraceMempoolRemoveTxs{} = Debug getSeverityAnnotation TraceMempoolManuallyRemovedTxs{} = Warning getSeverityAnnotation TraceMempoolSyncNotNeeded{} = Debug getSeverityAnnotation TraceMempoolSynced{} = Debug getSeverityAnnotation TraceMempoolAttemptingAdd{} = Debug - getSeverityAnnotation TraceMempoolLedgerFound{} = Debug - getSeverityAnnotation TraceMempoolLedgerNotFound{} = Debug instance HasPrivacyAnnotation () instance HasSeverityAnnotation () where @@ -528,8 +531,8 @@ instance ( ConvertRawHash blk formatText tev _obj = case tev of ChainDB.TraceLastShutdownUnclean -> "ChainDB is not clean. Validating all immutable chunks" ChainDB.TraceAddBlockEvent ev -> case ev of - ChainDB.IgnoreBlockOlderThanK pt -> - "Ignoring block older than K: " <> renderRealPointAsPhrase pt + ChainDB.IgnoreBlockOlderThanImmTip pt -> + "Ignoring block older than ImmTip: " <> renderRealPointAsPhrase pt ChainDB.IgnoreBlockAlreadyInVolatileDB pt -> "Ignoring block already in DB: " <> renderRealPointAsPhrase pt ChainDB.IgnoreInvalidBlock pt _reason -> @@ -540,19 +543,16 @@ instance ( ConvertRawHash blk "About to add block to queue: " <> renderRealPointAsPhrase pt FallingEdgeWith sz -> "Block added to queue: " <> renderRealPointAsPhrase pt <> " queue size " <> condenseT sz - ChainDB.AddedReprocessLoEBlocksToQueue -> + ChainDB.AddedReprocessLoEBlocksToQueue {} -> "Added request to queue to reprocess blocks postponed by LoE." ChainDB.PoppedReprocessLoEBlocksFromQueue -> "Poppped request from queue to reprocess blocks postponed by LoE." ChainDB.ChainSelectionLoEDebug {} -> "ChainDB LoE debug event" - - ChainDB.PoppedBlockFromQueue edgePt -> - case edgePt of - RisingEdge -> - "Popping block from queue" - FallingEdgeWith pt -> - "Popped block from queue: " <> renderRealPointAsPhrase pt + ChainDB.PoppingFromQueue -> + "Popping block from queue" + ChainDB.PoppedBlockFromQueue pt -> + "Popped block from queue: " <> renderRealPointAsPhrase pt ChainDB.StoreButDontChange pt -> "Ignoring block: " <> renderRealPointAsPhrase pt ChainDB.TryAddToCurrentChain pt -> @@ -931,8 +931,8 @@ instance ( ConvertRawHash blk toObject _verb ChainDB.TraceLastShutdownUnclean = mconcat [ "kind" .= String "TraceLastShutdownUnclean" ] toObject verb (ChainDB.TraceAddBlockEvent ev) = case ev of - ChainDB.IgnoreBlockOlderThanK pt -> - mconcat [ "kind" .= String "TraceAddBlockEvent.IgnoreBlockOlderThanK" + ChainDB.IgnoreBlockOlderThanImmTip pt -> + mconcat [ "kind" .= String "TraceAddBlockEvent.IgnoreBlockOlderThanImmTip" , "block" .= toObject verb pt ] ChainDB.IgnoreBlockAlreadyInVolatileDB pt -> mconcat [ "kind" .= String "TraceAddBlockEvent.IgnoreBlockAlreadyInVolatileDB" @@ -947,11 +947,13 @@ instance ( ConvertRawHash blk , case edgeSz of RisingEdge -> "risingEdge" .= True FallingEdgeWith sz -> "queueSize" .= toJSON sz ] - ChainDB.PoppedBlockFromQueue edgePt -> + ChainDB.PoppingFromQueue -> + mconcat [ "kind" .= String "TraceAddBlockEvent.PoppingFromQueue" + ] + ChainDB.PoppedBlockFromQueue pt -> mconcat [ "kind" .= String "TraceAddBlockEvent.PoppedBlockFromQueue" - , case edgePt of - RisingEdge -> "risingEdge" .= True - FallingEdgeWith pt -> "block" .= toObject verb pt ] + , "block" .= toObject verb pt + ] ChainDB.StoreButDontChange pt -> mconcat [ "kind" .= String "TraceAddBlockEvent.StoreButDontChange" , "block" .= toObject verb pt ] @@ -1027,8 +1029,10 @@ instance ( ConvertRawHash blk mconcat [ "kind" .= String "TraceAddBlockEvent.PipeliningEvent.OutdatedTentativeHeader" , "block" .= renderPointForVerbosity verb (blockPoint hdr) ] - ChainDB.AddedReprocessLoEBlocksToQueue -> + ChainDB.AddedReprocessLoEBlocksToQueue RisingEdge -> mconcat [ "kind" .= String "AddedReprocessLoEBlocksToQueue" ] + ChainDB.AddedReprocessLoEBlocksToQueue (FallingEdgeWith _) -> + mconcat [ "kind" .= String "AddedReprocessLoEBlocksToQueue TODO" ] ChainDB.PoppedReprocessLoEBlocksFromQueue -> mconcat [ "kind" .= String "PoppedReprocessLoEBlocksFromQueue" ] ChainDB.ChainSelectionLoEDebug curChain loeFrag -> @@ -1586,15 +1590,10 @@ instance ( ToObject (ApplyTxErr blk), ToObject (GenTx blk), [ "kind" .= String "TraceMempoolAttemptingAdd" , "tx" .= toObject verb tx ] - toObject verb (TraceMempoolLedgerFound p) = - mconcat - [ "kind" .= String "TraceMempoolLedgerFound" - , "tip" .= toObject verb p - ] - toObject verb (TraceMempoolLedgerNotFound p) = + + toObject _verb TraceMempoolTipMovedBetweenSTMBlocks = mconcat - [ "kind" .= String "TraceMempoolLedgerNotFound" - , "tip" .= toObject verb p + [ "kind" .= String "TraceMempoolTipMovedBetweenSTMBlocks" ] instance ToObject MempoolSize where @@ -1763,6 +1762,8 @@ instance HasSeverityAnnotation (TraceGsmEvent selection) where GsmEventLeaveCaughtUp{} -> Warning GsmEventPreSyncingToSyncing{} -> Notice GsmEventSyncingToPreSyncing{} -> Notice + GsmEventInitializedInCaughtUp{} -> Notice + GsmEventInitializedInPreSyncing{} -> Notice instance ToObject selection => Transformable Text IO (TraceGsmEvent selection) where trTransformer = trStructured @@ -1788,6 +1789,14 @@ instance ToObject selection => ToObject (TraceGsmEvent selection) where mconcat [ "kind" .= String "GsmEventSyncingToPreSyncing" ] + toObject _verb GsmEventInitializedInCaughtUp = + mconcat + [ "kind" .= String "GsmEventInitializedInCaughtUp" + ] + toObject _verb GsmEventInitializedInPreSyncing = + mconcat + [ "kind" .= String "GsmEventInitializedInPreSyncing" + ] instance HasPrivacyAnnotation (TraceGDDEvent peer blk) where instance HasSeverityAnnotation (TraceGDDEvent peer blk) where @@ -1862,3 +1871,67 @@ instance ConvertRawHash blk => ToObject (Tip blk) where , "tipHash" .= renderHeaderHash (Proxy @blk) hash , "tipBlockNo" .= toJSON bNo ] + +instance ToObject KESAgentClientTrace where + toObject _verb (KESAgentClientException exc) = + mconcat [ "kind" .= String "KESAgentClientException" + , "exception" .= String (pack $ displayException exc) + ] + toObject verb (KESAgentClientTrace trc) = + mconcat [ "kind" .= String "KESAgentClientTrace" + , "trace" .= toObject verb trc + ] + +instance HasPrivacyAnnotation KESAgentClientTrace where + +instance HasSeverityAnnotation KESAgentClientTrace where + getSeverityAnnotation = \case + KESAgentClientException{} -> Error + KESAgentClientTrace{} -> Info + +instance Transformable Text IO KESAgentClientTrace where + trTransformer = trStructured + +instance ToObject Agent.ServiceClientTrace where + toObject _dtal = \case + Agent.ServiceClientVersionHandshakeTrace _vhdt -> + mconcat [ "kind" .= String "ServiceClientVersionHandshakeTrace" ] + Agent.ServiceClientVersionHandshakeFailed -> + mconcat [ "kind" .= String "ServiceClientVersionHandshakeFailed" ] + Agent.ServiceClientDriverTrace _sdt -> + mconcat [ "kind" .= String "ServiceClientDriverTrace" ] + Agent.ServiceClientSocketClosed -> + mconcat [ "kind" .= String "ServiceClientSocketClosed" ] + Agent.ServiceClientConnected _s -> + mconcat [ "kind" .= String "ServiceClientConnected" ] + Agent.ServiceClientAttemptReconnect _ _ _ _ -> + mconcat [ "kind" .= String "ServiceClientAttemptReconnect" ] + Agent.ServiceClientReceivedKey _tbt -> + mconcat [ "kind" .= String "ServiceClientReceivedKey" ] + Agent.ServiceClientDeclinedKey _tbt -> + mconcat [ "kind" .= String "ServiceClientDeclinedKey" ] + Agent.ServiceClientDroppedKey -> + mconcat [ "kind" .= String "ServiceClientDroppedKey" ] + Agent.ServiceClientOpCertNumberCheck _ _ -> + mconcat [ "kind" .= String "ServiceClientOpCertNumberCheck" ] + Agent.ServiceClientAbnormalTermination _s -> + mconcat [ "kind" .= String "ServiceClientAbnormalTermination" ] + Agent.ServiceClientStopped -> + mconcat [ "kind" .= String "ServiceClientStopped" ] + +instance HasPrivacyAnnotation Agent.ServiceClientTrace where + +instance HasSeverityAnnotation Agent.ServiceClientTrace where + getSeverityAnnotation = \case + Agent.ServiceClientVersionHandshakeTrace{} -> Debug + Agent.ServiceClientVersionHandshakeFailed{} -> Error + Agent.ServiceClientDriverTrace{} -> Debug + Agent.ServiceClientSocketClosed{} -> Info + Agent.ServiceClientConnected{} -> Info + Agent.ServiceClientAttemptReconnect{} -> Info + Agent.ServiceClientReceivedKey{} -> Info + Agent.ServiceClientDeclinedKey{} -> Info + Agent.ServiceClientDroppedKey{} -> Info + Agent.ServiceClientOpCertNumberCheck{} -> Debug + Agent.ServiceClientAbnormalTermination{} -> Error + Agent.ServiceClientStopped{} -> Info diff --git a/cardano-node/src/Cardano/Tracing/OrphanInstances/HardFork.hs b/cardano-node/src/Cardano/Tracing/OrphanInstances/HardFork.hs index 6b625395fd8..8c75604c5cb 100644 --- a/cardano-node/src/Cardano/Tracing/OrphanInstances/HardFork.hs +++ b/cardano-node/src/Cardano/Tracing/OrphanInstances/HardFork.hs @@ -28,8 +28,8 @@ import Ouroboros.Consensus.Cardano.Condense () import Ouroboros.Consensus.HardFork.Combinator import Ouroboros.Consensus.HardFork.Combinator.AcrossEras (EraMismatch (..), OneEraCannotForge (..), OneEraEnvelopeErr (..), OneEraForgeStateInfo (..), - OneEraForgeStateUpdateError (..), OneEraLedgerError (..), - OneEraLedgerUpdate (..), OneEraLedgerWarning (..), OneEraSelectView (..), + OneEraForgeStateUpdateError (..), OneEraLedgerError (..), OneEraTiebreakerView (..), + OneEraLedgerUpdate (..), OneEraLedgerWarning (..), OneEraValidationErr (..), mkEraMismatch) import Ouroboros.Consensus.HardFork.Combinator.Condense () import Ouroboros.Consensus.HardFork.Combinator.Serialisation.Common @@ -43,7 +43,7 @@ import Ouroboros.Consensus.Ledger.Inspect (LedgerUpdate, LedgerWarning import Ouroboros.Consensus.Ledger.SupportsMempool (ApplyTxErr) import Ouroboros.Consensus.Node.NetworkProtocolVersion (BlockNodeToClientVersion, BlockNodeToNodeVersion) -import Ouroboros.Consensus.Protocol.Abstract (SelectView, ValidationErr) +import Ouroboros.Consensus.Protocol.Abstract (ValidationErr, SelectView (svTiebreakerView, svBlockNo), ConsensusProtocol (TiebreakerView)) import Ouroboros.Consensus.TypeFamilyWrappers import Ouroboros.Consensus.Util.Condense (Condense (..)) @@ -431,16 +431,21 @@ instance (ToJSON (BlockNodeToNodeVersion blk)) => ToJSON (WrapNodeToNodeVersion -- instances for HardForkSelectView -- -instance All (ToObject `Compose` WrapSelectView) xs => ToObject (HardForkSelectView xs) where - -- elide BlockNo as it is already contained in every per-era SelectView - toObject verb = toObject verb . dropBlockNo . getHardForkSelectView +instance All (ToObject `Compose` WrapTiebreakerView) xs => ToObject (HardForkTiebreakerView xs) where + toObject verb = toObject verb . getHardForkTiebreakerView -instance All (ToObject `Compose` WrapSelectView) xs => ToObject (OneEraSelectView xs) where +instance ToObject (TiebreakerView protocol) => ToObject (SelectView protocol) where + toObject verb sv = mconcat + [ "blockNo" .= svBlockNo sv + , toObject verb (svTiebreakerView sv) + ] + +instance All (ToObject `Compose` WrapTiebreakerView) xs => ToObject (OneEraTiebreakerView xs) where toObject verb = hcollapse - . hcmap (Proxy @(ToObject `Compose` WrapSelectView)) + . hcmap (Proxy @(ToObject `Compose` WrapTiebreakerView)) (K . toObject verb) - . getOneEraSelectView + . getOneEraTiebreakerView -instance ToObject (SelectView (BlockProtocol blk)) => ToObject (WrapSelectView blk) where - toObject verb = toObject verb . unwrapSelectView +instance ToObject (TiebreakerView (BlockProtocol blk)) => ToObject (WrapTiebreakerView blk) where + toObject verb = toObject verb . unwrapTiebreakerView diff --git a/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs b/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs index 5451af4ba91..f77dc4092aa 100644 --- a/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs +++ b/cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs @@ -21,6 +21,12 @@ module Cardano.Tracing.OrphanInstances.Network , FetchDecisionToJSON (..) ) where +import Cardano.Network.Diffusion (CardanoDebugPeerSelection, CardanoPeerSelectionCounters, + CardanoTraceLocalRootPeers, CardanoTracePeerSelection, TraceChurnMode (..)) +import Cardano.Network.OrphanInstances () +import qualified Cardano.Network.PeerSelection.ExtraRootPeers as Cardano.PublicRootPeers +import qualified Cardano.Network.PeerSelection.Governor.PeerSelectionState as Cardano +import qualified Cardano.Network.PeerSelection.Governor.Types as Cardano import Cardano.Node.Queries (ConvertTxId) import Cardano.Tracing.OrphanInstances.Common import Cardano.Tracing.Render @@ -29,12 +35,6 @@ import Ouroboros.Consensus.Ledger.Query (BlockQuery, Query) import Ouroboros.Consensus.Ledger.SupportsMempool (ApplyTxErr, GenTx, GenTxId, HasTxs (..), TxId, txId) import Ouroboros.Consensus.Node.Run (RunNode, estimateBlockSize) -import Cardano.Network.PeerSelection.Bootstrap (UseBootstrapPeers(..)) -import Cardano.Network.PeerSelection.PeerTrustable (PeerTrustable(..)) -import Cardano.Network.Types (LedgerStateJudgement(..)) -import qualified Ouroboros.Cardano.Network.PeerSelection.Governor.PeerSelectionState as Cardano -import qualified Ouroboros.Cardano.Network.PeerSelection.Governor.Types as Cardano -import qualified Ouroboros.Cardano.Network.PublicRootPeers as Cardano.PublicRootPeers import qualified Ouroboros.Network.AnchoredFragment as AF import qualified Ouroboros.Network.AnchoredSeq as AS import Ouroboros.Network.Block @@ -45,52 +45,37 @@ import Ouroboros.Network.BlockFetch.Decision (FetchDecision, FetchDecl import qualified Ouroboros.Network.BlockFetch.Decision.Trace as BlockFetch import Ouroboros.Network.ConnectionHandler (ConnectionHandlerTrace (..)) import Ouroboros.Network.ConnectionId (ConnectionId (..)) +import Ouroboros.Network.ConnectionManager.ConnMap (ConnMap (..)) import Ouroboros.Network.ConnectionManager.Core as ConnMgr (Trace (..)) -import Ouroboros.Network.ConnectionManager.ConnMap (ConnMap (..), LocalAddr (..)) import Ouroboros.Network.ConnectionManager.State (ConnStateId (..)) -import Ouroboros.Network.ConnectionManager.Types (AbstractState (..), - ConnectionManagerCounters (..), - OperationResult (..)) import qualified Ouroboros.Network.ConnectionManager.Types as ConnMgr -import qualified Ouroboros.Network.Diffusion.Common as Diffusion import Ouroboros.Network.DeltaQ (GSV (..), PeerGSV (..)) -import Ouroboros.Network.Driver.Limits (ProtocolLimitFailure (..)) +import qualified Ouroboros.Network.Diffusion.Types as Diffusion import qualified Ouroboros.Network.Driver.Stateful as Stateful -import Ouroboros.Network.ExitPolicy (RepromoteDelay (..)) import qualified Ouroboros.Network.InboundGovernor as InboundGovernor import qualified Ouroboros.Network.InboundGovernor.State as InboundGovernor import Ouroboros.Network.KeepAlive (TraceKeepAliveClient (..)) -import Ouroboros.Network.Magic (NetworkMagic (..)) -import Ouroboros.Network.NodeToClient (NodeToClientVersion (..), - NodeToClientVersionData (..)) +import Ouroboros.Network.NodeToClient (NodeToClientVersion (..)) import qualified Ouroboros.Network.NodeToClient as NtC -import Ouroboros.Network.NodeToNode (ErrorPolicyTrace (..), NodeToNodeVersion (..), - NodeToNodeVersionData (..), RemoteAddress, TraceSendRecv (..), WithAddr (..)) +import Ouroboros.Network.NodeToNode (NodeToNodeVersion (..), RemoteAddress, + TraceSendRecv (..)) import qualified Ouroboros.Network.NodeToNode as NtN -import Ouroboros.Network.PeerSelection.Governor (AssociationMode (..), DebugPeerSelection (..), +import Ouroboros.Network.OrphanInstances () +import Ouroboros.Network.PeerSelection.Governor (DebugPeerSelection (..), DebugPeerSelectionState (..), PeerSelectionCounters, PeerSelectionState (..), PeerSelectionTargets (..), PeerSelectionView (..), TracePeerSelection (..), peerSelectionStateToCounters) import Ouroboros.Network.PeerSelection.LedgerPeers -import Ouroboros.Network.PeerSelection.PeerSharing (PeerSharing (..)) import Ouroboros.Network.PeerSelection.PeerStateActions (PeerSelectionActionsTrace (..)) -import Ouroboros.Network.PeerSelection.PublicRootPeers (PublicRootPeers) -import qualified Ouroboros.Network.PeerSelection.PublicRootPeers as PublicRootPeers +import Ouroboros.Network.PeerSelection.RootPeersDNS.DNSActions (DNSTrace (..)) import Ouroboros.Network.PeerSelection.RootPeersDNS.LocalRootPeers (TraceLocalRootPeers (..)) import Ouroboros.Network.PeerSelection.RootPeersDNS.PublicRootPeers (TracePublicRootPeers (..)) -import Ouroboros.Network.PeerSelection.State.KnownPeers (KnownPeerInfo (..)) import qualified Ouroboros.Network.PeerSelection.State.KnownPeers as KnownPeers -import Ouroboros.Network.PeerSelection.State.LocalRootPeers (HotValency (..), - LocalRootPeers, WarmValency (..), LocalRootConfig (..)) -import qualified Ouroboros.Network.PeerSelection.State.LocalRootPeers as LocalRootPeers -import Ouroboros.Network.PeerSelection.Types (PeerStatus (..)) import Ouroboros.Network.Protocol.BlockFetch.Type (BlockFetch, Message (..)) import Ouroboros.Network.Protocol.ChainSync.Type (ChainSync) import qualified Ouroboros.Network.Protocol.ChainSync.Type as ChainSync -import Ouroboros.Network.Protocol.Handshake (HandshakeException (..), - HandshakeProtocolError (..), RefuseReason (..)) import qualified Ouroboros.Network.Protocol.KeepAlive.Type as KA import Ouroboros.Network.Protocol.LocalStateQuery.Type (LocalStateQuery) import qualified Ouroboros.Network.Protocol.LocalStateQuery.Type as LocalStateQuery @@ -98,37 +83,28 @@ import Ouroboros.Network.Protocol.LocalTxMonitor.Type (LocalTxMonitor) import qualified Ouroboros.Network.Protocol.LocalTxMonitor.Type as LocalTxMonitor import Ouroboros.Network.Protocol.LocalTxSubmission.Type (LocalTxSubmission) import qualified Ouroboros.Network.Protocol.LocalTxSubmission.Type as LocalTxSub -import Ouroboros.Network.Protocol.PeerSharing.Type (PeerSharingAmount (..), - PeerSharingResult (..)) +import Ouroboros.Network.Protocol.PeerSharing.Type (PeerSharingAmount (..)) import qualified Ouroboros.Network.Protocol.PeerSharing.Type as PeerSharing import Ouroboros.Network.Protocol.TxSubmission2.Type as TxSubmission2 import Ouroboros.Network.RethrowPolicy (ErrorCommand (..)) -import Ouroboros.Network.Server2 as Server +import Ouroboros.Network.Server as Server import Ouroboros.Network.Snocket (LocalAddress (..)) -import Ouroboros.Network.Subscription (ConnectResult (..), DnsTrace (..), - SubscriberError (..), SubscriptionTrace (..), WithDomainName (..), - WithIPList (..)) import Ouroboros.Network.TxSubmission.Inbound (ProcessedTxCount (..), TraceTxSubmissionInbound (..)) import Ouroboros.Network.TxSubmission.Outbound (TraceTxSubmissionOutbound (..)) -import Control.Exception (Exception (..), SomeException (..)) +import Control.Exception (Exception (..)) import Control.Monad.Class.MonadTime.SI (DiffTime, Time (..)) -import Data.Aeson (FromJSON (..), Value (..)) +import Data.Aeson (Value (..)) import qualified Data.Aeson as Aeson import Data.Aeson.Types (listValue) -import qualified Data.Aeson.Types as Aeson import Data.Bifunctor (Bifunctor (first)) -import Data.Data (Proxy (..)) import Data.Foldable (Foldable (..)) -import Data.Functor.Identity (Identity (..)) import qualified Data.IP as IP import qualified Data.Map.Strict as Map import qualified Data.Set as Set import Data.Text (Text, pack) -import qualified Data.Text as Text -import qualified Data.Text.Encoding as Text -import Network.Mux (MiniProtocolNum (..)) +import Data.Typeable import qualified Network.Mux as Mux import Network.Socket (SockAddr (..)) import Network.TypedProtocol.Codec (AnyMessage (AnyMessageAndAgency)) @@ -259,137 +235,34 @@ instance HasSeverityAnnotation TraceLedgerPeers where NotEnoughLedgerPeers {} -> Warning NotEnoughBigLedgerPeers {} -> Warning TraceLedgerPeersDomains {} -> Debug - TraceLedgerPeersResult {} -> Debug - TraceLedgerPeersFailure {} -> Debug - UsingBigLedgerPeerSnapshot {} -> Debug - - -instance HasPrivacyAnnotation (WithAddr addr ErrorPolicyTrace) -instance HasSeverityAnnotation (WithAddr addr ErrorPolicyTrace) where - getSeverityAnnotation (WithAddr _ ev) = case ev of - ErrorPolicySuspendPeer {} -> Warning -- peer misbehaved - ErrorPolicySuspendConsumer {} -> Notice -- peer temporarily not useful - ErrorPolicyLocalNodeError {} -> Error - ErrorPolicyResumePeer {} -> Debug - ErrorPolicyKeepSuspended {} -> Debug - ErrorPolicyResumeConsumer {} -> Debug - ErrorPolicyResumeProducer {} -> Debug - ErrorPolicyUnhandledApplicationException {} -> Error - ErrorPolicyUnhandledConnectionException {} -> Error - ErrorPolicyAcceptException {} -> Error - - -instance HasPrivacyAnnotation (WithDomainName DnsTrace) -instance HasSeverityAnnotation (WithDomainName DnsTrace) where - getSeverityAnnotation (WithDomainName _ ev) = case ev of - DnsTraceLookupException {} -> Error - DnsTraceLookupAError {} -> Error - DnsTraceLookupAAAAError {} -> Error - DnsTraceLookupIPv6First -> Debug - DnsTraceLookupIPv4First -> Debug - DnsTraceLookupAResult {} -> Debug - DnsTraceLookupAAAAResult {} -> Debug - - -instance HasPrivacyAnnotation (WithDomainName (SubscriptionTrace SockAddr)) -instance HasSeverityAnnotation (WithDomainName (SubscriptionTrace SockAddr)) where - getSeverityAnnotation (WithDomainName _ ev) = case ev of - SubscriptionTraceConnectStart {} -> Notice - SubscriptionTraceConnectEnd {} -> Notice - SubscriptionTraceConnectException _ e -> - case fromException $ SomeException e of - Just (_::SubscriberError) -> Debug - Nothing -> Error - SubscriptionTraceSocketAllocationException {} -> Error - SubscriptionTraceTryConnectToPeer {} -> Info - SubscriptionTraceSkippingPeer {} -> Info - SubscriptionTraceSubscriptionRunning -> Debug - SubscriptionTraceSubscriptionWaiting {} -> Debug - SubscriptionTraceSubscriptionFailed -> Warning - SubscriptionTraceSubscriptionWaitingNewConnection {} -> Debug - SubscriptionTraceStart {} -> Debug - SubscriptionTraceRestart {} -> Debug - SubscriptionTraceConnectionExist {} -> Info - SubscriptionTraceUnsupportedRemoteAddr {} -> Warning - SubscriptionTraceMissingLocalAddress -> Warning - SubscriptionTraceApplicationException _ e -> - case fromException $ SomeException e of - Just (_::SubscriberError) -> Debug - Nothing -> Error - SubscriptionTraceAllocateSocket {} -> Debug - SubscriptionTraceCloseSocket {} -> Debug - - -instance HasPrivacyAnnotation (WithIPList (SubscriptionTrace SockAddr)) -instance HasSeverityAnnotation (WithIPList (SubscriptionTrace SockAddr)) where - getSeverityAnnotation (WithIPList _ _ ev) = case ev of - SubscriptionTraceConnectStart _ -> Info - SubscriptionTraceConnectEnd _ connectResult -> case connectResult of - ConnectSuccess -> Info - ConnectSuccessLast -> Notice - ConnectValencyExceeded -> Warning - SubscriptionTraceConnectException _ e -> - case fromException $ SomeException e of - Just (_::SubscriberError) -> Debug - Nothing -> Error - SubscriptionTraceSocketAllocationException {} -> Error - SubscriptionTraceTryConnectToPeer {} -> Info - SubscriptionTraceSkippingPeer {} -> Info - SubscriptionTraceSubscriptionRunning -> Debug - SubscriptionTraceSubscriptionWaiting {} -> Debug - SubscriptionTraceSubscriptionFailed -> Error - SubscriptionTraceSubscriptionWaitingNewConnection {} -> Notice - SubscriptionTraceStart {} -> Debug - SubscriptionTraceRestart {} -> Info - SubscriptionTraceConnectionExist {} -> Notice - SubscriptionTraceUnsupportedRemoteAddr {} -> Error - SubscriptionTraceMissingLocalAddress -> Warning - SubscriptionTraceApplicationException _ e -> - case fromException $ SomeException e of - Just (_::SubscriberError) -> Debug - Nothing -> Error - SubscriptionTraceAllocateSocket {} -> Debug - SubscriptionTraceCloseSocket {} -> Info - - -instance HasPrivacyAnnotation (Identity (SubscriptionTrace LocalAddress)) -instance HasSeverityAnnotation (Identity (SubscriptionTrace LocalAddress)) where - getSeverityAnnotation (Identity ev) = case ev of - SubscriptionTraceConnectStart {} -> Notice - SubscriptionTraceConnectEnd {} -> Notice - SubscriptionTraceConnectException {} -> Error - SubscriptionTraceSocketAllocationException {} -> Error - SubscriptionTraceTryConnectToPeer {} -> Notice - SubscriptionTraceSkippingPeer {} -> Info - SubscriptionTraceSubscriptionRunning -> Notice - SubscriptionTraceSubscriptionWaiting {} -> Debug - SubscriptionTraceSubscriptionFailed -> Warning - SubscriptionTraceSubscriptionWaitingNewConnection {} -> Debug - SubscriptionTraceStart {} -> Notice - SubscriptionTraceRestart {} -> Notice - SubscriptionTraceConnectionExist {} -> Debug - SubscriptionTraceUnsupportedRemoteAddr {} -> Warning - SubscriptionTraceMissingLocalAddress -> Warning - SubscriptionTraceApplicationException {} -> Error - SubscriptionTraceAllocateSocket {} -> Debug - SubscriptionTraceCloseSocket {} -> Debug - - -instance Transformable Text IO (Identity (SubscriptionTrace LocalAddress)) where - trTransformer = trStructuredText -instance HasTextFormatter (Identity (SubscriptionTrace LocalAddress)) where - formatText a _ = pack (show a) - -instance ToObject (Identity (SubscriptionTrace LocalAddress)) where - toObject _verb (Identity ev) = - mconcat [ "kind" .= ("SubscriptionTrace" :: String) - , "event" .= show ev - ] + UsingBigLedgerPeerSnapshot {} -> Debug instance HasPrivacyAnnotation (Mux.WithBearer peer Mux.Trace) instance HasSeverityAnnotation (Mux.WithBearer peer Mux.Trace) where + getSeverityAnnotation (Mux.WithBearer _ ev) = case ev of + Mux.TraceState {} -> Info + Mux.TraceCleanExit {} -> Notice + Mux.TraceExceptionExit {} -> Notice + Mux.TraceStartEagerly _ _ -> Info + Mux.TraceStartOnDemand _ _ -> Info + Mux.TraceStartedOnDemand _ _ -> Info + Mux.TraceStartOnDemandAny {} -> Info + Mux.TraceTerminating {} -> Debug + Mux.TraceStopping -> Debug + Mux.TraceStopped -> Debug + +instance HasPrivacyAnnotation (Mux.WithBearer peer Mux.ChannelTrace) +instance HasSeverityAnnotation (Mux.WithBearer peer Mux.ChannelTrace) where + getSeverityAnnotation (Mux.WithBearer _ ev) = case ev of + Mux.TraceChannelRecvStart {} -> Debug + Mux.TraceChannelRecvEnd {} -> Debug + Mux.TraceChannelSendStart {} -> Debug + Mux.TraceChannelSendEnd {} -> Debug + +instance HasPrivacyAnnotation (Mux.WithBearer peer Mux.BearerTrace) +instance HasSeverityAnnotation (Mux.WithBearer peer Mux.BearerTrace) where getSeverityAnnotation (Mux.WithBearer _ ev) = case ev of Mux.TraceRecvHeaderStart -> Debug Mux.TraceRecvHeaderEnd {} -> Debug @@ -398,41 +271,24 @@ instance HasSeverityAnnotation (Mux.WithBearer peer Mux.Trace) where Mux.TraceRecvEnd {} -> Debug Mux.TraceSendStart {} -> Debug Mux.TraceSendEnd -> Debug - Mux.TraceState {} -> Info - Mux.TraceCleanExit {} -> Notice - Mux.TraceExceptionExit {} -> Notice - Mux.TraceChannelRecvStart {} -> Debug - Mux.TraceChannelRecvEnd {} -> Debug - Mux.TraceChannelSendStart {} -> Debug - Mux.TraceChannelSendEnd {} -> Debug - Mux.TraceHandshakeStart -> Debug - Mux.TraceHandshakeClientEnd {} -> Info - Mux.TraceHandshakeServerEnd -> Debug - Mux.TraceHandshakeClientError {} -> Error - Mux.TraceHandshakeServerError {} -> Error + Mux.TraceEmitDeltaQ -> Debug Mux.TraceRecvDeltaQObservation {} -> Debug Mux.TraceRecvDeltaQSample {} -> Debug Mux.TraceSDUReadTimeoutException -> Notice Mux.TraceSDUWriteTimeoutException -> Notice - Mux.TraceStartEagerly _ _ -> Info - Mux.TraceStartOnDemand _ _ -> Info - Mux.TraceStartedOnDemand _ _ -> Info - Mux.TraceStartOnDemandAny {} -> Info - Mux.TraceTerminating {} -> Debug - Mux.TraceStopping -> Debug - Mux.TraceStopped -> Debug Mux.TraceTCPInfo {} -> Debug -instance HasPrivacyAnnotation (TraceLocalRootPeers extraFlags RemoteAddress exception) -instance HasSeverityAnnotation (TraceLocalRootPeers extraFlags RemoteAddress exception) where + +instance HasPrivacyAnnotation CardanoTraceLocalRootPeers +instance HasSeverityAnnotation CardanoTraceLocalRootPeers where getSeverityAnnotation _ = Info instance HasPrivacyAnnotation TracePublicRootPeers instance HasSeverityAnnotation TracePublicRootPeers where getSeverityAnnotation _ = Info -instance HasPrivacyAnnotation (TracePeerSelection extraDebugState extraFlags (Cardano.PublicRootPeers.ExtraPeers addr) addr) -instance HasSeverityAnnotation (TracePeerSelection extraDebugState extraFlags (Cardano.PublicRootPeers.ExtraPeers addr) addr) where +instance HasPrivacyAnnotation CardanoTracePeerSelection +instance HasSeverityAnnotation CardanoTracePeerSelection where getSeverityAnnotation ev = case ev of TraceLocalRootPeersChanged {} -> Notice @@ -465,7 +321,7 @@ instance HasSeverityAnnotation (TracePeerSelection extraDebugState extraFlags (C TraceDemoteLocalAsynchronous {} -> Warning TraceGovernorWakeup {} -> Info TraceChurnWait {} -> Info - TraceChurnMode {} -> Info + -- TraceChurnMode {} -> Info TraceForgetBigLedgerPeers {} -> Info @@ -508,8 +364,8 @@ instance HasSeverityAnnotation (TracePeerSelection extraDebugState extraFlags (C TraceVerifyPeerSnapshot True -> Info TraceVerifyPeerSnapshot False -> Error -instance HasPrivacyAnnotation (DebugPeerSelection extraState extraFlags (Cardano.PublicRootPeers.ExtraPeers addr) addr) -instance HasSeverityAnnotation (DebugPeerSelection extraState extraFlags (Cardano.PublicRootPeers.ExtraPeers addr) addr) where +instance HasPrivacyAnnotation CardanoDebugPeerSelection +instance HasSeverityAnnotation CardanoDebugPeerSelection where getSeverityAnnotation _ = Debug instance HasPrivacyAnnotation (PeerSelectionActionsTrace SockAddr lAddr) @@ -517,6 +373,7 @@ instance HasSeverityAnnotation (PeerSelectionActionsTrace SockAddr lAddr) where getSeverityAnnotation ev = case ev of PeerStatusChanged {} -> Info + PeerHotDuration {} -> Info PeerStatusChangeFailure {} -> Error PeerMonitoringError {} -> Error PeerMonitoringResult {} -> Debug @@ -614,17 +471,6 @@ instance Transformable Text IO (Diffusion.DiffusionTracer RemoteAddress LocalAdd instance HasTextFormatter (Diffusion.DiffusionTracer RemoteAddress LocalAddress) where formatText a _ = pack (show a) -instance Transformable Text IO (NtN.HandshakeTr RemoteAddress NodeToNodeVersion) where - trTransformer = trStructuredText -instance HasTextFormatter (NtN.HandshakeTr RemoteAddress NodeToNodeVersion) where - formatText a _ = pack (show a) - - -instance Transformable Text IO (NtC.HandshakeTr LocalAddress NodeToClientVersion) where - trTransformer = trStructuredText -instance HasTextFormatter (NtC.HandshakeTr LocalAddress NodeToClientVersion) where - formatText a _ = pack (show a) - instance Transformable Text IO NtN.AcceptConnectionsPolicyTrace where trTransformer = trStructuredText @@ -739,43 +585,23 @@ instance HasTextFormatter TraceLedgerPeers where formatText _ = pack . show . toList -instance Show addr => Transformable Text IO (WithAddr addr ErrorPolicyTrace) where - trTransformer = trStructuredText -instance Show addr => HasTextFormatter (WithAddr addr ErrorPolicyTrace) where - formatText a _ = pack (show a) - - -instance Transformable Text IO (WithDomainName (SubscriptionTrace SockAddr)) where +instance ( Show peer + , Show tr + , HasPrivacyAnnotation (Mux.WithBearer peer tr) + , HasSeverityAnnotation (Mux.WithBearer peer tr) + , ToObject (Mux.WithBearer peer tr)) + => Transformable Text IO (Mux.WithBearer peer tr) where trTransformer = trStructuredText -instance HasTextFormatter (WithDomainName (SubscriptionTrace SockAddr)) where - formatText a _ = pack (show a) - - -instance Transformable Text IO (WithDomainName DnsTrace) where - trTransformer = trStructuredText -instance HasTextFormatter (WithDomainName DnsTrace) where - formatText a _ = pack (show a) - - -instance Transformable Text IO (WithIPList (SubscriptionTrace SockAddr)) where - trTransformer = trStructuredText -instance HasTextFormatter (WithIPList (SubscriptionTrace SockAddr)) where - formatText a _ = pack (show a) - - -instance (Show peer, ToObject peer) - => Transformable Text IO (Mux.WithBearer peer Mux.Trace) where - trTransformer = trStructuredText -instance (Show peer) - => HasTextFormatter (Mux.WithBearer peer Mux.Trace) where +instance (Show peer, Show tr) + => HasTextFormatter (Mux.WithBearer peer tr) where formatText (Mux.WithBearer peer ev) _o = "Bearer on " <> pack (show peer) <> " event: " <> pack (show ev) -instance Show exception => Transformable Text IO (TraceLocalRootPeers PeerTrustable RemoteAddress exception) where +instance Transformable Text IO CardanoTraceLocalRootPeers where trTransformer = trStructuredText -instance Show exception => HasTextFormatter (TraceLocalRootPeers PeerTrustable RemoteAddress exception) where +instance HasTextFormatter CardanoTraceLocalRootPeers where formatText a _ = pack (show a) instance Transformable Text IO TracePublicRootPeers where @@ -783,14 +609,14 @@ instance Transformable Text IO TracePublicRootPeers where instance HasTextFormatter TracePublicRootPeers where formatText a _ = pack (show a) -instance Transformable Text IO (TracePeerSelection Cardano.DebugPeerSelectionState PeerTrustable (Cardano.PublicRootPeers.ExtraPeers SockAddr) SockAddr) where +instance Transformable Text IO CardanoTracePeerSelection where trTransformer = trStructuredText -instance (Show extraDebugState, Show extraFlags, Show (Cardano.PublicRootPeers.ExtraPeers addr)) => HasTextFormatter (TracePeerSelection extraDebugState extraFlags (Cardano.PublicRootPeers.ExtraPeers addr) SockAddr) where +instance HasTextFormatter CardanoTracePeerSelection where formatText a _ = pack (show a) -instance Transformable Text IO (DebugPeerSelection Cardano.ExtraState PeerTrustable (Cardano.PublicRootPeers.ExtraPeers SockAddr) SockAddr) where +instance Transformable Text IO CardanoDebugPeerSelection where trTransformer = trStructuredText -instance HasTextFormatter (DebugPeerSelection extraDebugState extraFlags (Cardano.PublicRootPeers.ExtraPeers SockAddr) SockAddr) where +instance HasTextFormatter CardanoDebugPeerSelection where -- One can only change what is logged with respect to verbosity using json -- format. formatText _ obj = pack (show obj) @@ -800,7 +626,7 @@ instance Show lAddr => Transformable Text IO (PeerSelectionActionsTrace SockAddr instance Show lAddr => HasTextFormatter (PeerSelectionActionsTrace SockAddr lAddr) where formatText a _ = pack (show a) -instance (ToJSON addr, Show addr) => Transformable Text IO (PeerSelectionCounters (Cardano.ExtraPeerSelectionSetsWithSizes addr)) where +instance Transformable Text IO CardanoPeerSelectionCounters where trTransformer = trStructuredText instance Show extraCounters => HasTextFormatter (PeerSelectionCounters extraCounters) where formatText a _ = pack (show a) @@ -832,7 +658,7 @@ instance Show addr => HasTextFormatter (Server.Trace addr) where formatText a _ = pack (show a) -instance (ToJSON addr, Show addr) +instance (ToJSON addr, Show addr, Aeson.ToJSONKey addr) => Transformable Text IO (InboundGovernor.Trace addr) where trTransformer = trStructuredText instance Show addr @@ -1143,26 +969,6 @@ instance ToJSON peerAddr => ToObject (AnyMessage (PeerSharing.PeerSharing peerAd ] -instance ToJSON peerAddr => ToJSON (ConnectionId peerAddr) where - toJSON ConnectionId { localAddress, remoteAddress } = - Aeson.object [ "localAddress" .= toJSON localAddress - , "remoteAddress" .= toJSON remoteAddress - ] - -instance Aeson.ToJSON ConnectionManagerCounters where - toJSON ConnectionManagerCounters { fullDuplexConns - , duplexConns - , unidirectionalConns - , inboundConns - , outboundConns - } = - Aeson.object [ "fullDuplex" .= toJSON fullDuplexConns - , "duplex" .= toJSON duplexConns - , "unidirectional" .= toJSON unidirectionalConns - , "inbound" .= inboundConns - , "outbound" .= outboundConns - ] - -- TODO: use 'ToJSON' constraints instance (Show ntnAddr, Show ntcAddr) => ToObject (Diffusion.DiffusionTracer ntnAddr ntcAddr) where toObject _verb (Diffusion.RunServer sockAddr) = mconcat @@ -1234,23 +1040,6 @@ instance (Show ntnAddr, Show ntcAddr) => ToObject (Diffusion.DiffusionTracer ntn , "message" .= String (pack (show config)) ] -instance ToObject (NtC.HandshakeTr LocalAddress NodeToClientVersion) where - toObject _verb (Mux.WithBearer b ev) = - mconcat [ "kind" .= String "LocalHandshakeTrace" - , "bearer" .= show b - , "event" .= show ev ] - - -instance ToObject (NtN.HandshakeTr RemoteAddress NodeToNodeVersion) where - toObject _verb (Mux.WithBearer b ev) = - mconcat [ "kind" .= String "HandshakeTrace" - , "bearer" .= show b - , "event" .= show ev ] - -instance ToJSON LocalAddress where - toJSON (LocalAddress path) = String (pack path) - -instance Aeson.ToJSONKey LocalAddress where instance ToObject NtN.AcceptConnectionsPolicyTrace where toObject _verb (NtN.ServerTraceAcceptConnectionRateLimiting delay numOfConnections) = @@ -1333,12 +1122,6 @@ instance (ConvertRawHash blk, HasHeader blk) => ToObject (AF.AnchoredFragment bl , "length" .= toJSON (AF.length frag) ] -instance ToJSON PeerGSV where - toJSON PeerGSV { outboundGSV = GSV outboundG _ _ - , inboundGSV = GSV inboundG _ _ - } = - Aeson.object ["G" .= (realToFrac (outboundG + inboundG) :: Double)] - instance (HasHeader header, ConvertRawHash header) => ToObject (TraceFetchClientState header) where toObject _verb BlockFetch.AddedFetchRequest {} = @@ -1395,14 +1178,6 @@ instance (ToObject peer, ToObject a) => ToObject (TraceLabelPeer peer a) where toObject verb (TraceLabelPeer peerid a) = mconcat [ "peer" .= toObject verb peerid ] <> toObject verb a -instance (ToJSON peer, ToJSON point) - => ToJSON (TraceLabelPeer peer (FetchDecision [point])) where - toJSON (TraceLabelPeer peer decision) = - Aeson.object - [ "peer" .= toJSON peer - , "decision" .= toJSON (FetchDecisionToJSON decision) - ] - instance (ToJSON peer, ToJSON (Verbose point)) => ToJSON (Verbose (TraceLabelPeer peer (FetchDecision [point]))) where toJSON (Verbose (TraceLabelPeer peer decision)) = @@ -1472,24 +1247,6 @@ instance ToObject (TraceTxSubmissionInbound txid tx) where , "count" .= toJSON count ] -instance Aeson.ToJSONKey PeerTrustable where - -instance Aeson.ToJSONKey SockAddr where - -instance Aeson.ToJSON SockAddr where - toJSON (SockAddrInet port addr) = - let ip = IP.fromHostAddress addr in - Aeson.object [ "address" .= toJSON ip - , "port" .= show port - ] - toJSON (SockAddrInet6 port _ addr _) = - let ip = IP.fromHostAddress6 addr in - Aeson.object [ "address" .= toJSON ip - , "port" .= show port - ] - toJSON (SockAddrUnix path) = - Aeson.object [ "socketPath" .= show path ] - -- TODO: use the json encoding of transactions instance (Show txid, Show tx) => ToObject (TraceTxSubmissionOutbound txid tx) where @@ -1614,110 +1371,44 @@ instance ToObject TraceLedgerPeers where [ "kind" .= String "TraceLedgerPeersDomains" , "domainAccessPoints" .= daps ] - toObject _verb (TraceLedgerPeersResult dap ips) = - mconcat - [ "kind" .= String "TraceLedgerPeersResult" - , "domainAccessPoint" .= show dap - , "ips" .= map show ips - ] - toObject _verb (TraceLedgerPeersFailure dap reason) = - mconcat - [ "kind" .= String "TraceLedgerPeersFailure" - , "domainAccessPoint" .= show dap - , "error" .= show reason - ] toObject _verb UsingBigLedgerPeerSnapshot = mconcat [ "kind" .= String "UsingBigLedgerPeerSnapshot" ] -instance Show addr => ToObject (WithAddr addr ErrorPolicyTrace) where - toObject _verb (WithAddr addr ev) = - mconcat [ "kind" .= String "ErrorPolicyTrace" - , "address" .= show addr - , "event" .= show ev ] - - -instance ToObject (WithIPList (SubscriptionTrace SockAddr)) where - toObject _verb (WithIPList localAddresses dests ev) = - mconcat [ "kind" .= String "WithIPList SubscriptionTrace" - , "localAddresses" .= show localAddresses - , "dests" .= show dests - , "event" .= show ev ] - - -instance ToObject (WithDomainName DnsTrace) where - toObject _verb (WithDomainName dom ev) = - mconcat [ "kind" .= String "DnsTrace" - , "domain" .= show dom - , "event" .= show ev ] - - -instance ToObject (WithDomainName (SubscriptionTrace SockAddr)) where - toObject _verb (WithDomainName dom ev) = - mconcat [ "kind" .= String "SubscriptionTrace" - , "domain" .= show dom - , "event" .= show ev ] - - -instance ToObject peer => ToObject (Mux.WithBearer peer Mux.Trace) where +instance (Typeable tr, ToObject peer, Show tr) => ToObject (Mux.WithBearer peer tr) where toObject verb (Mux.WithBearer b ev) = - mconcat [ "kind" .= String "Mux.Trace" + mconcat [ "kind" .= (show . typeOf $ ev) , "bearer" .= toObject verb b , "event" .= show ev ] -instance Aeson.ToJSONKey RelayAccessPoint where - -instance ToJSON HotValency where - toJSON (HotValency v) = toJSON v -instance ToJSON WarmValency where - toJSON (WarmValency v) = toJSON v - -instance FromJSON HotValency where - parseJSON v = HotValency <$> parseJSON v - -instance FromJSON WarmValency where - parseJSON v = WarmValency <$> parseJSON v - -instance ToJSON (LocalRootConfig PeerTrustable) where - toJSON LocalRootConfig { peerAdvertise, - extraFlags = peerTrustable, - diffusionMode } = - Aeson.object - [ "peerAdvertise" .= peerAdvertise - , "diffusionMode" .= show diffusionMode - , "extraFlags" .= show peerTrustable - ] - -instance Show exception => ToObject (TraceLocalRootPeers PeerTrustable RemoteAddress exception) where +instance ToObject CardanoTraceLocalRootPeers where toObject _verb (TraceLocalRootDomains groups) = mconcat [ "kind" .= String "LocalRootDomains" , "localRootDomains" .= toJSON groups ] toObject _verb (TraceLocalRootWaiting d dt) = mconcat [ "kind" .= String "LocalRootWaiting" + -- TODO: `domainAddress` -> `accessPoint` , "domainAddress" .= toJSON d , "diffTime" .= show dt ] - toObject _verb (TraceLocalRootResult d res) = - mconcat [ "kind" .= String "LocalRootResult" - , "domainAddress" .= toJSON d - , "result" .= Aeson.toJSONList res - ] toObject _verb (TraceLocalRootGroups groups) = mconcat [ "kind" .= String "LocalRootGroups" , "localRootGroups" .= toJSON groups ] toObject _verb (TraceLocalRootFailure d dexception) = mconcat [ "kind" .= String "LocalRootFailure" + -- TODO: `domainAddress` -> `accessPoint` , "domainAddress" .= toJSON d - , "reason" .= show dexception + , "reason" .= displayException dexception ] toObject _verb (TraceLocalRootError d dexception) = mconcat [ "kind" .= String "LocalRootError" - , "domainAddress" .= toJSON d - , "reason" .= show dexception + -- TODO: `domainAddress` -> `domain` + , "domainAddress" .= String (pack $ show d) + , "reason" .= displayException dexception ] toObject _verb (TraceLocalRootReconfigured _ _) = mconcat [ "kind" .= String "LocalRootReconfigured" @@ -1728,15 +1419,6 @@ instance Show exception => ToObject (TraceLocalRootPeers PeerTrustable RemoteAdd , "dnsMap" .= dnsMap ] -instance Aeson.ToJSONKey DomainAccessPoint where - toJSONKey = Aeson.toJSONKeyText render - where - render da = mconcat - [ Text.decodeUtf8 (dapDomain da) - , ":" - , Text.pack $ show @Int (fromIntegral (dapPortNumber da)) - ] - instance ToJSON IP where toJSON ip = String (pack . show $ ip) @@ -1749,81 +1431,9 @@ instance ToObject TracePublicRootPeers where mconcat [ "kind" .= String "PublicRootDomains" , "domainAddresses" .= Aeson.toJSONList domains ] - toObject _verb (TracePublicRootResult b res) = - mconcat [ "kind" .= String "PublicRootResult" - , "domain" .= show b - , "result" .= Aeson.toJSONList res - ] - toObject _verb (TracePublicRootFailure b d) = - mconcat [ "kind" .= String "PublicRootFailure" - , "domain" .= show b - , "reason" .= show d - ] - -instance ToJSON KnownPeerInfo where - toJSON (KnownPeerInfo - nKnownPeerFailCount - nKnownPeerTepid - nKnownPeerSharing - nKnownPeerAdvertise - nKnownSuccessfulConnection - ) = - Aeson.object [ "kind" .= String "KnownPeerInfo" - , "failCount" .= nKnownPeerFailCount - , "tepid" .= nKnownPeerTepid - , "peerSharing" .= nKnownPeerSharing - , "peerAdvertise" .= nKnownPeerAdvertise - , "successfulConnection" .= nKnownSuccessfulConnection - ] - -instance ToJSON PeerStatus where - toJSON = String . pack . show - -instance (Aeson.ToJSONKey peerAddr, ToJSON peerAddr, Ord peerAddr, Show peerAddr) - => ToJSON (LocalRootPeers PeerTrustable peerAddr) where - toJSON lrp = - Aeson.object [ "kind" .= String "LocalRootPeers" - , "groups" .= Aeson.toJSONList (LocalRootPeers.toGroups lrp) - ] - -instance ToJSON PeerSelectionTargets where - toJSON (PeerSelectionTargets - nRootPeers - nKnownPeers - nEstablishedPeers - nActivePeers - nKnownBigLedgerPeers - nEstablishedBigLedgerPeers - nActiveBigLedgerPeers - ) = - Aeson.object [ "kind" .= String "PeerSelectionTargets" - , "targetRootPeers" .= nRootPeers - , "targetKnownPeers" .= nKnownPeers - , "targetEstablishedPeers" .= nEstablishedPeers - , "targetActivePeers" .= nActivePeers - - , "targetKnownBigLedgerPeers" .= nKnownBigLedgerPeers - , "targetEstablishedBigLedgerPeers" .= nEstablishedBigLedgerPeers - , "targetActiveBigLedgerPeers" .= nActiveBigLedgerPeers - ] - -instance ToJSON peerAddr => ToJSON (PublicRootPeers (Cardano.PublicRootPeers.ExtraPeers peerAddr) peerAddr) where - toJSON prp = - Aeson.object [ "kind" .= String "PublicRootPeers" - , "bootstrapPeers" .= PublicRootPeers.getBootstrapPeers prp - , "ledgerPeers" .= PublicRootPeers.getLedgerPeers prp - , "bigLedgerPeers" .= PublicRootPeers.getBigLedgerPeers prp - , "publicConfigPeers" .= Map.keysSet (PublicRootPeers.getPublicConfigPeers prp) - ] -instance ToJSON RepromoteDelay where - toJSON = toJSON . repromoteDelay -instance ToJSON addr => ToJSON (PeerSharingResult addr) where - toJSON (PeerSharingResult addrs) = Aeson.toJSONList addrs - toJSON PeerSharingNotRegisteredYet = String "PeerSharingNotRegisteredYet" - -instance ToObject (TracePeerSelection Cardano.DebugPeerSelectionState PeerTrustable (Cardano.PublicRootPeers.ExtraPeers SockAddr) SockAddr) where +instance ToObject CardanoTracePeerSelection where toObject _verb (TraceLocalRootPeersChanged lrp lrp') = mconcat [ "kind" .= String "LocalRootPeersChanged" , "previous" .= toJSON lrp @@ -2096,9 +1706,9 @@ instance ToObject (TracePeerSelection Cardano.DebugPeerSelectionState PeerTrusta mconcat [ "kind" .= String "ChurnWait" , "diffTime" .= toJSON dt ] - toObject _verb (TraceChurnMode c) = - mconcat [ "kind" .= String "ChurnMode" - , "event" .= show c ] + -- toObject _verb (TraceChurnMode c) = + -- mconcat [ "kind" .= String "ChurnMode" + -- , "event" .= show c ] toObject _verb (TracePickInboundPeers targetNumberOfKnownPeers numberOfKnownPeers selected available) = mconcat [ "kind" .= String "PickInboundPeers" , "targetKnown" .= targetNumberOfKnownPeers @@ -2162,45 +1772,6 @@ instance ToObject (TracePeerSelection Cardano.DebugPeerSelectionState PeerTrusta , "associationMode" .= dpssAssociationMode ds ] --- Connection manager abstract state. For explanation of each state see --- -instance Aeson.ToJSON AbstractState where - toJSON UnknownConnectionSt = - Aeson.object [ "kind" .= String "UnknownConnectionSt" ] - toJSON ReservedOutboundSt = - Aeson.object [ "kind" .= String "ReservedOutboundSt" ] - toJSON (UnnegotiatedSt provenance) = - Aeson.object [ "kind" .= String "UnnegotiatedSt" - , "provenance" .= String (pack . show $ provenance) - ] - toJSON (InboundIdleSt dataFlow) = - Aeson.object [ "kind" .= String "InboundIdleSt" - , "dataFlow" .= String (pack . show $ dataFlow) - ] - toJSON (InboundSt dataFlow) = - Aeson.object [ "kind" .= String "InboundSt" - , "dataFlow" .= String (pack . show $ dataFlow) - ] - toJSON OutboundUniSt = - Aeson.object [ "kind" .= String "OutboundUniSt" ] - toJSON (OutboundDupSt timeoutExpired) = - Aeson.object [ "kind" .= String "OutboundDupSt" - , "timeoutState" .= String (pack . show $ timeoutExpired) - ] - toJSON (OutboundIdleSt dataFlow) = - Aeson.object [ "kind" .= String "OutboundIdleSt" - , "dataFlow" .= String (pack . show $ dataFlow) - ] - toJSON DuplexSt = - Aeson.object [ "kind" .= String "DuplexSt" ] - toJSON WaitRemoteIdleSt = - Aeson.object [ "kind" .= String "WaitRemoteIdleSt" ] - toJSON TerminatingSt = - Aeson.object [ "kind" .= String "TerminatingSt" ] - toJSON TerminatedSt = - Aeson.object [ "kind" .= String "TerminatedSt" ] - - peerSelectionTargetsToObject :: PeerSelectionTargets -> Value peerSelectionTargetsToObject PeerSelectionTargets { targetNumberOfRootPeers, @@ -2221,7 +1792,7 @@ peerSelectionTargetsToObject , "activeBigLedgerPeers" .= targetNumberOfActiveBigLedgerPeers ] -instance ToObject (DebugPeerSelection Cardano.ExtraState PeerTrustable (Cardano.PublicRootPeers.ExtraPeers SockAddr) SockAddr) where +instance ToObject CardanoDebugPeerSelection where toObject verb (TraceGovernorState blockedAt wakeupAfter st@PeerSelectionState { targets }) | verb <= NormalVerbosity = @@ -2249,6 +1820,11 @@ instance Show lAddr => ToObject (PeerSelectionActionsTrace SockAddr lAddr) where mconcat [ "kind" .= String "PeerStatusChanged" , "peerStatusChangeType" .= show ps ] + toObject _verb (PeerHotDuration connId dur) = + mconcat [ "kind" .= String "PeerHotDuration" + , "connectionId" .= connId + , "duration" .= show dur + ] toObject _verb (PeerStatusChangeFailure ps f) = mconcat [ "kind" .= String "PeerStatusChangeFailure" , "peerStatusChangeType" .= show ps @@ -2269,7 +1845,7 @@ instance Show lAddr => ToObject (PeerSelectionActionsTrace SockAddr lAddr) where , "error" .= displayException exception ] -instance ToJSON peeraddr => ToObject (PeerSelectionCounters (Cardano.ExtraPeerSelectionSetsWithSizes peeraddr)) where +instance ToObject CardanoPeerSelectionCounters where toObject _verb PeerSelectionCounters {..} = mconcat [ "kind" .= String "PeerSelectionCounters" @@ -2313,99 +1889,6 @@ instance ToJSON peeraddr => ToObject (PeerSelectionCounters (Cardano.ExtraPeerSe , "activeBootstrapPeersDemotions" .= snd (Cardano.viewActiveBootstrapPeersDemotions extraCounters) ] -instance ToJSON ProtocolLimitFailure where - toJSON (ExceededSizeLimit tok) = - Aeson.object [ "kind" .= String "ProtocolLimitFailure" - , "agency" .= show tok - ] - toJSON (ExceededTimeLimit tok) = - Aeson.object [ "kind" .= String "ProtocolLimitFailure" - , "agency" .= show tok - ] - -instance Show vNumber => ToJSON (RefuseReason vNumber) where - toJSON (VersionMismatch vNumber tags) = - Aeson.object [ "kind" .= String "VersionMismatch" - , "versionNumber" .= show vNumber - , "tags" .= Aeson.toJSONList tags - ] - toJSON (HandshakeDecodeError vNumber t) = - Aeson.object [ "kind" .= String "HandshakeDecodeError" - , "versionNumber" .= show vNumber - , "text" .= String (pack $ show t) - ] - toJSON (Refused vNumber t) = - Aeson.object [ "kind" .= String "Refused" - , "versionNumber" .= show vNumber - , "text" .= String (pack $ show t) - ] - -instance Show vNumber => ToJSON (HandshakeProtocolError vNumber) where - toJSON (HandshakeError rvNumber) = - Aeson.object [ "kind" .= String "HandshakeError" - , "reason" .= toJSON rvNumber - ] - toJSON (NotRecognisedVersion vNumber) = - Aeson.object [ "kind" .= String "NotRecognisedVersion" - , "versionNumber" .= show vNumber - ] - toJSON (InvalidServerSelection vNumber t) = - Aeson.object [ "kind" .= String "InvalidServerSelection" - , "versionNumber" .= show vNumber - , "reason" .= String (pack $ show t) - ] - toJSON QueryNotSupported = - Aeson.object [ "kind" .= String "QueryNotSupported" - ] - -instance Show vNumber => ToJSON (HandshakeException vNumber) where - toJSON (HandshakeProtocolLimit plf) = - Aeson.object [ "kind" .= String "HandshakeProtocolLimit" - , "handshakeProtocolLimit" .= toJSON plf - ] - toJSON (HandshakeProtocolError err) = - Aeson.object [ "kind" .= String "HandshakeProtocolError" - , "reason" .= show err - ] - -instance ToJSON NodeToNodeVersion where - toJSON NodeToNodeV_14 = Number 14 - -instance FromJSON NodeToNodeVersion where - parseJSON (Number 14) = return NodeToNodeV_14 - parseJSON (Number x) = fail ("FromJSON.NodeToNodeVersion: unsupported node-to-node protocol version " ++ show x) - parseJSON x = fail ("FromJSON.NodeToNodeVersion: error parsing NodeToNodeVersion: " ++ show x) - -instance ToJSON NodeToClientVersion where - toJSON NodeToClientV_16 = Number 16 - toJSON NodeToClientV_17 = Number 17 - toJSON NodeToClientV_18 = Number 18 - toJSON NodeToClientV_19 = Number 19 - toJSON NodeToClientV_20 = Number 20 - -- NB: When adding a new version here, update FromJSON below as well! - -instance FromJSON NodeToClientVersion where - parseJSON (Number 16) = return NodeToClientV_16 - parseJSON (Number 17) = return NodeToClientV_17 - parseJSON (Number 18) = return NodeToClientV_18 - parseJSON (Number 19) = return NodeToClientV_19 - parseJSON (Number x) = fail ("FromJSON.NodeToClientVersion: unsupported node-to-client protocol version " ++ show x) - parseJSON x = fail ("FromJSON.NodeToClientVersion: error parsing NodeToClientVersion: " ++ show x) - -instance ToJSON NodeToNodeVersionData where - toJSON (NodeToNodeVersionData (NetworkMagic m) dm ps q) = - Aeson.object [ "networkMagic" .= toJSON m - , "diffusionMode" .= show dm - , "peerSharing" .= show ps - , "query" .= toJSON q - ] - -instance ToJSON NodeToClientVersionData where - toJSON (NodeToClientVersionData (NetworkMagic m) q) = - Aeson.object [ "networkMagic" .= toJSON m - , "query" .= toJSON q - ] - instance (Show versionNumber, ToJSON versionNumber, ToJSON agreedOptions) => ToObject (ConnectionHandlerTrace versionNumber agreedOptions) where toObject _verb (TrHandshakeSuccess versionNumber agreedOptions) = @@ -2440,16 +1923,6 @@ instance (Show versionNumber, ToJSON versionNumber, ToJSON agreedOptions) , "command" .= show cerr ] -instance ToJSON addr => ToJSON (LocalAddr addr) where - toJSON (LocalAddr addr) = toJSON addr - toJSON UnknownLocalAddr = Null - -instance ToJSON NtN.DiffusionMode where - toJSON = String . pack . show - -instance ToJSON ConnStateId where - toJSON (ConnStateId connStateId) = toJSON connStateId - instance ToObject ConnStateId where toObject _ connStateId = mconcat [ "connStateId" .= toJSON connStateId ] @@ -2596,22 +2069,6 @@ instance (Show addr, Show versionNumber, Show agreedOptions, ToObject addr, , "info" .= String (pack . show $ info) ] -instance ToJSON state => ToJSON (ConnMgr.MaybeUnknown state) where - toJSON (ConnMgr.Known st) = - Aeson.object - [ "state" .= toJSON st - , "type" .= String "known" - ] - toJSON (ConnMgr.Race st) = - Aeson.object - [ "state" .= toJSON st - , "type" .= String "race" - ] - toJSON ConnMgr.Unknown = - Aeson.object - [ "type" .= String "unknown" ] - - instance (Show addr, ToObject addr, ToJSON addr) => ToObject (ConnMgr.AbstractTransitionTrace addr) where toObject _verb (ConnMgr.TransitionTrace addr tr) = @@ -2647,31 +2104,6 @@ instance (Show addr, ToObject addr, ToJSON addr) , "reason" .= show exception ] -instance ToJSON MiniProtocolNum where - toJSON (MiniProtocolNum w) = - Aeson.object [ "kind" .= String "MiniProtocolNum" - , "num" .= w - ] - -instance ToJSON addr => ToJSON (OperationResult addr) where - toJSON (UnsupportedState as) = - Aeson.object [ "kind" .= String "UnsupportedState" - , "unsupportedState" .= toJSON as - ] - toJSON (OperationSuccess addr) = - Aeson.object [ "kind" .= String "OperationSuccess" - , "operationSuccess" .= toJSON addr - ] - toJSON (TerminatedConnection as) = - Aeson.object [ "kind" .= String "TerminatedConnection" - , "terminatedConnection" .= toJSON as - ] - -instance ToJSON RemoteSt where - toJSON = String . pack . show - -instance ToJSON addr => Aeson.ToJSONKey (ConnectionId addr) where - instance ToObject NtN.RemoteAddress where toObject _verb (SockAddrInet port addr) = let ip = IP.fromHostAddress addr in @@ -2704,7 +2136,7 @@ instance ToObject NtC.LocalConnectionId where mconcat [ "local" .= toObject verb l , "remote" .= toObject verb r ] -instance (ToJSON addr, Show addr) +instance (ToJSON addr, Show addr, Aeson.ToJSONKey addr) => ToObject (InboundGovernor.Trace addr) where toObject _verb (InboundGovernor.TrNewConnection p connId) = mconcat [ "kind" .= String "NewConnection" @@ -2808,60 +2240,57 @@ instance ToJSON addr , "to" .= toJSON (ConnMgr.toState tr) ] -instance FromJSON PeerSharing where - parseJSON = Aeson.withBool "PeerSharing" $ \b -> - pure $ if b then PeerSharingEnabled - else PeerSharingDisabled - -instance ToJSON PeerSharing where - toJSON PeerSharingEnabled = Bool True - toJSON PeerSharingDisabled = Bool False - -instance FromJSON UseLedgerPeers where - parseJSON (Number slot) = return $ - case compare slot 0 of - GT -> UseLedgerPeers (After (SlotNo (floor slot))) - EQ -> UseLedgerPeers Always - LT -> DontUseLedgerPeers - parseJSON invalid = fail $ "Parsing of slot number failed due to type mismatch. " - <> "Encountered: " <> show invalid - -instance ToJSON LedgerStateJudgement where - toJSON YoungEnough = String "YoungEnough" - toJSON TooOld = String "TooOld" - -instance FromJSON LedgerStateJudgement where - parseJSON (String "YoungEnough") = pure YoungEnough - parseJSON (String "TooOld") = pure TooOld - parseJSON _ = fail "Invalid JSON for LedgerStateJudgement" - -instance ToJSON AssociationMode where - toJSON LocalRootsOnly = String "LocalRootsOnly" - toJSON Unrestricted = String "Unrestricted" - -instance FromJSON AssociationMode where - parseJSON (String "LocalRootsOnly") = pure LocalRootsOnly - parseJSON (String "Unrestricted") = pure Unrestricted - parseJSON _ = fail "Invalid JSON for AssociationMode" - -instance ToJSON UseLedgerPeers where - toJSON DontUseLedgerPeers = Number (-1) - toJSON (UseLedgerPeers Always) = Number 0 - toJSON (UseLedgerPeers (After (SlotNo s))) = Number (fromIntegral s) - -instance ToJSON UseBootstrapPeers where - toJSON DontUseBootstrapPeers = Null - toJSON (UseBootstrapPeers dps) = toJSON dps - -instance FromJSON UseBootstrapPeers where - parseJSON Null = pure DontUseBootstrapPeers - parseJSON v = UseBootstrapPeers <$> parseJSON v - -instance FromJSON PeerTrustable where - parseJSON = Aeson.withBool "PeerTrustable" $ \b -> - pure $ if b then IsTrustable - else IsNotTrustable - -instance ToJSON PeerTrustable where - toJSON IsTrustable = Bool True - toJSON IsNotTrustable = Bool False +instance HasPrivacyAnnotation TraceChurnMode where +instance HasSeverityAnnotation TraceChurnMode where + getSeverityAnnotation TraceChurnMode {} = Info +instance Transformable Text IO TraceChurnMode where + trTransformer = trStructuredText +instance HasTextFormatter TraceChurnMode where + formatText a _ = pack (show a) +instance ToObject TraceChurnMode where + toObject _verb (TraceChurnMode churnMode) = + mconcat [ "kind" .= String "ChurnMode" + , "churnMode" .= String (pack . show $ churnMode) + ] + +instance HasPrivacyAnnotation DNSTrace where +instance HasSeverityAnnotation DNSTrace where + getSeverityAnnotation _ = Info +instance Transformable Text IO DNSTrace where + trTransformer = trStructuredText +instance HasTextFormatter DNSTrace where + formatText a _ = pack (show a) +instance ToObject DNSTrace where + toObject _verb (DNSLookupResult peerKind domain Nothing results) = + mconcat [ "kind" .= String "DNSLookupResult" + , "peerKind" .= String (pack . show $ peerKind) + , "domain" .= String (pack . show $ domain) + , "results" .= results + ] + toObject _verb (DNSLookupResult peerKind domain (Just srv) results) = + mconcat [ "kind" .= String "DNSLookupResult" + , "peerKind" .= String (pack . show $ peerKind) + , "domain" .= String (pack . show $ domain) + , "srv" .= String (pack . show $ srv) + , "results" .= results + ] + toObject _verb (DNSLookupError peerKind lookupType domain dnsError) = + mconcat [ "kind" .= String "DNSLookupError" + , "peerKind" .= String (pack . show $ peerKind) + , "lookupKind" .= String (pack . show $ lookupType) + , "domain" .= String (pack . show $ domain) + , "dnsError" .= String (pack . show $ dnsError) + ] + toObject _verb (SRVLookupResult peerKind domain results) = + mconcat [ "kind" .= String "SRVLookupResult" + , "peerKind" .= String (pack . show $ peerKind) + , "domain" .= String (pack . show $ domain) + , "results" .= [ (show a, b, c, d, e) + | (a, b, c, d, e) <- results + ] + ] + toObject _verb (SRVLookupError peerKind domain) = + mconcat [ "kind" .= String "SRVLookupError" + , "peerKind" .= String (pack . show $ peerKind) + , "domain" .= String (pack . show $ domain) + ] diff --git a/cardano-node/src/Cardano/Tracing/OrphanInstances/Shelley.hs b/cardano-node/src/Cardano/Tracing/OrphanInstances/Shelley.hs index 19539f9807e..d8645b49170 100644 --- a/cardano-node/src/Cardano/Tracing/OrphanInstances/Shelley.hs +++ b/cardano-node/src/Cardano/Tracing/OrphanInstances/Shelley.hs @@ -64,7 +64,7 @@ import Ouroboros.Consensus.Ledger.SupportsMempool (txId) import qualified Ouroboros.Consensus.Ledger.SupportsMempool as SupportsMempool import qualified Ouroboros.Consensus.Protocol.Ledger.HotKey as HotKey import qualified Ouroboros.Consensus.Protocol.Praos as Praos -import Ouroboros.Consensus.Protocol.Praos.Common (PraosChainSelectView (..)) +import qualified Ouroboros.Consensus.Protocol.Praos.Common as Praos import Ouroboros.Consensus.Protocol.TPraos (TPraosCannotForge (..)) import Ouroboros.Consensus.Shelley.Ledger hiding (TxId) import Ouroboros.Consensus.Shelley.Ledger.Inspect @@ -224,6 +224,18 @@ instance ToObject (Conway.ConwayDelegPredFailure era) where , "credential" .= String (textShow credential) , "error" .= String "Delegated rep is not registered for provided stake key" ] + Conway.DepositIncorrectDELEG Mismatch {mismatchSupplied, mismatchExpected} -> + [ "kind" .= String "DepositIncorrectDELEG" + , "givenRefund" .= mismatchSupplied + , "expectedRefund" .= mismatchExpected + , "error" .= String "Deposit mismatch" + ] + Conway.RefundIncorrectDELEG Mismatch {mismatchSupplied, mismatchExpected} -> + [ "kind" .= String "RefundIncorrectDELEG" + , "givenRefund" .= mismatchSupplied + , "expectedRefund" .= mismatchExpected + , "error" .= String "Refund mismatch" + ] instance ToObject (Set (Credential 'Staking)) where toObject _verb creds = @@ -424,13 +436,18 @@ instance Ledger.EraPParams era => ToObject (Conway.ConwayGovPredFailure era) whe mconcat [ "kind" .= String "TreasuryWithdrawalReturnAccountsDoNotExist" , "invalidAccounts" .= accounts ] + toObject _ (Conway.UnelectedCommitteeVoters creds) = + mconcat [ "kind" .= String "UnelectedCommitteeVoters" + , "unelectedCommitteeVoters" .= creds + ] + instance ( ToObject (PredicateFailure (Ledger.EraRule "CERT" era)) ) => ToObject (Conway.ConwayCertsPredFailure era) where toObject verb = \case Conway.WithdrawalsNotInRewardsCERTS incorrectWithdrawals -> - mconcat [ "kind" .= String "WithdrawalsNotInRewardsCERTS" , "incorrectWithdrawals" .= incorrectWithdrawals ] + mconcat [ "kind" .= String "WithdrawalsNotInRewardsCERTS" , "incorrectWithdrawals" .= unWithdrawals incorrectWithdrawals ] Conway.CertFailure f -> toObject verb f @@ -461,10 +478,6 @@ instance , "fromTxBody" .= renderScriptIntegrityHash (strictMaybeToMaybe mismatchSupplied) , "fromPParams" .= renderScriptIntegrityHash (strictMaybeToMaybe mismatchExpected) ] - toObject _ (MissingRequiredSigners missingKeyWitnesses) = - mconcat [ "kind" .= String "MissingRequiredSigners" - , "witnesses" .= Set.toList missingKeyWitnesses - ] toObject _ (UnspendableUTxONoDatumHash txins) = mconcat [ "kind" .= String "MissingRequiredSigners" , "txins" .= Set.toList txins @@ -484,6 +497,12 @@ instance ] ) (Api.shelleyBasedEra :: Api.ShelleyBasedEra era) + toObject _ (ScriptIntegrityHashMismatch poolId vrfKeyHash) = + mconcat [ "kind" .= String "VRFKeyHashAlreadyRegistered" + , "poolId" .= String (textShow poolId) + , "vrfKeyHash" .= String (textShow vrfKeyHash) + , "error" .= String "Pool with the same VRF Key Hash is already registered" + ] instance ( ToObject (PredicateFailure (Core.EraRule "UTXO" ledgerera)) @@ -652,8 +671,6 @@ instance , "outputs" .= badOutputs , "error" .= String "The Byron address attributes are too big" ] - toObject _verb Allegra.TriesToForgeADA = - mconcat [ "kind" .= String "TriesToForgeADA" ] toObject _verb (Allegra.OutputTooBigUTxO badOutputs) = mconcat [ "kind" .= String "OutputTooBigUTxO" , "outputs" .= badOutputs @@ -695,7 +712,7 @@ instance ] toObject _verb (WithdrawalsNotInRewardsDELEGS incorrectWithdrawals) = mconcat [ "kind" .= String "WithdrawalsNotInRewardsCERTS" - , "incorrectWithdrawals" .= incorrectWithdrawals + , "incorrectWithdrawals" .= unWithdrawals incorrectWithdrawals ] toObject verb (DelplFailure f) = toObject verb f @@ -814,6 +831,12 @@ instance ToObject (ShelleyPoolPredFailure era) where , "hashSize" .= String (textShow hashSize) , "error" .= String "The stake pool metadata hash is too large" ] + toObject _ (VRFKeyHashAlreadyRegistered poolId vrfKeyHash) = + mconcat [ "kind" .= String "VRFKeyHashAlreadyRegistered" + , "poolId" .= String (textShow poolId) + , "vrfKeyHash" .= String (textShow vrfKeyHash) + , "error" .= String "Pool with the same VRF Key Hash is already registered" + ] -- Apparently this should never happen according to the Shelley exec spec -- toObject _verb (WrongCertificateTypePOOL index) = @@ -843,52 +866,9 @@ instance ToObject (ShelleyPoolPredFailure era) where , "error" .= String "Wrong network ID in pool registration certificate" ] -instance - ( ToObject (PredicateFailure (Core.EraRule "NEWEPOCH" ledgerera)) - , ToObject (PredicateFailure (Core.EraRule "RUPD" ledgerera)) - ) => ToObject (ShelleyTickPredFailure ledgerera) where - toObject verb (NewEpochFailure f) = toObject verb f - toObject verb (RupdFailure f) = toObject verb f - instance ToObject TicknPredicateFailure where toObject _verb x = case x of {} -- no constructors -instance - ( ToObject (PredicateFailure (Core.EraRule "EPOCH" ledgerera)) - , ToObject (PredicateFailure (Core.EraRule "MIR" ledgerera)) - ) => ToObject (ShelleyNewEpochPredFailure ledgerera) where - toObject verb (EpochFailure f) = toObject verb f - toObject verb (MirFailure f) = toObject verb f - toObject _verb (CorruptRewardUpdate update) = - mconcat [ "kind" .= String "CorruptRewardUpdate" - , "update" .= String (textShow update) ] - - -instance - ( ToObject (PredicateFailure (Core.EraRule "POOLREAP" ledgerera)) - , ToObject (PredicateFailure (Core.EraRule "SNAP" ledgerera)) - , ToObject (UpecPredFailure ledgerera) - ) => ToObject (ShelleyEpochPredFailure ledgerera) where - toObject verb (PoolReapFailure f) = toObject verb f - toObject verb (SnapFailure f) = toObject verb f - toObject verb (UpecFailure f) = toObject verb f - - -instance ToObject (ShelleyPoolreapPredFailure ledgerera) where - toObject _verb x = case x of {} -- no constructors - - -instance ToObject (ShelleySnapPredFailure ledgerera) where - toObject _verb x = case x of {} -- no constructors - -instance ToObject (ShelleyMirPredFailure ledgerera) where - toObject _verb x = case x of {} -- no constructors - - -instance ToObject (ShelleyRupdPredFailure ledgerera) where - toObject _verb x = case x of {} -- no constructors - - instance Core.Crypto crypto => ToObject (PrtclPredicateFailure crypto) where toObject verb (OverlayFailure f) = toObject verb f toObject verb (UpdnFailure f) = toObject verb f @@ -1101,8 +1081,6 @@ instance , "outputs" .= txouts , "error" .= String "The Byron address attributes are too big" ] - toObject _verb Alonzo.TriesToForgeADA = - mconcat [ "kind" .= String "TriesToForgeADA" ] toObject _verb (Alonzo.OutputTooBigUTxO badOutputs) = mconcat [ "kind" .= String "OutputTooBigUTxO" , "outputs" .= badOutputs @@ -1225,6 +1203,16 @@ instance mconcat [ "kind" .= String "MalformedReferenceScripts" , "scripts" .= s ] + Babbage.ScriptIntegrityHashMismatch Mismatch {mismatchSupplied, mismatchExpected} mBytes -> + mconcat [ "kind" .= String "ScriptIntegrityHashMismatch" + , "supplied" .= renderScriptIntegrityHash (strictMaybeToMaybe mismatchSupplied) + , "expected" .= renderScriptIntegrityHash (strictMaybeToMaybe mismatchExpected) + , "hashHexPreimage" .= formatAsHex (strictMaybeToMaybe mBytes) + ] + +formatAsHex :: Maybe Crypto.ByteString -> String +formatAsHex Nothing = "" +formatAsHex (Just bs) = show bs instance Core.Crypto crypto => ToObject (Praos.PraosValidationErr crypto) where toObject _ err' = @@ -1326,24 +1314,8 @@ instance ToJSON ShelleyNodeToClientVersion where toJSON ShelleyNodeToClientVersion10 = String "ShelleyNodeToClientVersion10" toJSON ShelleyNodeToClientVersion11 = String "ShelleyNodeToClientVersion11" toJSON ShelleyNodeToClientVersion12 = String "ShelleyNodeToClientVersion12" - -instance Core.Crypto c => ToObject (PraosChainSelectView c) where - toObject _ PraosChainSelectView { - csvChainLength - , csvSlotNo - , csvIssuer - , csvIssueNo - , csvTieBreakVRF - } = - mconcat [ "kind" .= String "PraosChainSelectView" - , "chainLength" .= csvChainLength - , "slotNo" .= csvSlotNo - , "issuerHash" .= hashKey csvIssuer - , "issueNo" .= csvIssueNo - , "tieBreakVRF" .= renderVRF csvTieBreakVRF - ] - where - renderVRF = Text.decodeUtf8 . B16.encode . Crypto.getOutputVRFBytes + toJSON ShelleyNodeToClientVersion13 = String "ShelleyNodeToClientVersion13" + toJSON ShelleyNodeToClientVersion14 = String "ShelleyNodeToClientVersion14" -------------------------------------------------------------------------------- -- Conway related @@ -1581,6 +1553,28 @@ instance mconcat [ "kind" .= String "MalformedReferenceScripts" , "scripts" .= scripts ] + Conway.ScriptIntegrityHashMismatch Mismatch {mismatchSupplied, mismatchExpected} mBytes -> + mconcat [ "kind" .= String "ScriptIntegrityHashMismatch" + , "supplied" .= renderScriptIntegrityHash (strictMaybeToMaybe mismatchSupplied) + , "expected" .= renderScriptIntegrityHash (strictMaybeToMaybe mismatchExpected) + , "hashHexPreimage" .= formatAsHex (strictMaybeToMaybe mBytes) + ] + +instance Core.Crypto c => ToObject (Praos.PraosTiebreakerView c) where + toObject _v Praos.PraosTiebreakerView { + ptvSlotNo + , ptvIssuer + , ptvIssueNo + , ptvTieBreakVRF + } = + mconcat [ "kind" .= String "PraosTiebreakerView" + , "slotNo" .= ptvSlotNo + , "issuerHash" .= hashKey ptvIssuer + , "issueNo" .= ptvIssueNo + , "tieBreakVRF" .= renderVRF ptvTieBreakVRF + ] + where + renderVRF = Text.decodeUtf8 . B16.encode . Crypto.getOutputVRFBytes -------------------------------------------------------------------------------- -- Helper functions diff --git a/cardano-node/src/Cardano/Tracing/Tracers.hs b/cardano-node/src/Cardano/Tracing/Tracers.hs index 62bb30a4e3d..8300aa9db8c 100644 --- a/cardano-node/src/Cardano/Tracing/Tracers.hs +++ b/cardano-node/src/Cardano/Tracing/Tracers.hs @@ -25,8 +25,7 @@ module Cardano.Tracing.Tracers ( Tracers (..) , TraceOptions , mkTracers - , nullTracersP2P - , nullTracersNonP2P + , nullDiffusionTracers , traceCounter ) where @@ -45,6 +44,7 @@ import qualified Cardano.Node.STM as STM import Cardano.Node.TraceConstraints import Cardano.Node.Tracing import Cardano.Node.Tracing.Tracers.NodeVersion +import Cardano.Network.Diffusion (CardanoPeerSelectionCounters) import Cardano.Protocol.TPraos.OCert (KESPeriod (..)) import Cardano.Slotting.Slot (EpochNo (..), SlotNo (..), WithOrigin (..)) import Cardano.Tracing.Config @@ -72,7 +72,6 @@ import Ouroboros.Consensus.MiniProtocol.BlockFetch.Server import Ouroboros.Consensus.MiniProtocol.ChainSync.Server import qualified Ouroboros.Consensus.Network.NodeToClient as NodeToClient import qualified Ouroboros.Consensus.Network.NodeToNode as NodeToNode -import Ouroboros.Consensus.Node (NetworkP2PMode (..)) import qualified Ouroboros.Consensus.Node.Run as Consensus (RunNode) import qualified Ouroboros.Consensus.Node.Tracers as Consensus import Ouroboros.Consensus.Protocol.Abstract (SelectView, ValidationErr) @@ -81,10 +80,8 @@ import qualified Ouroboros.Consensus.Storage.ChainDB as ChainDB import qualified Ouroboros.Consensus.Storage.LedgerDB as LedgerDB import Ouroboros.Consensus.Util.Enclose -import Cardano.Network.PeerSelection.PeerTrustable (PeerTrustable) -import qualified Ouroboros.Cardano.Network.PeerSelection.Governor.PeerSelectionState as Cardano -import qualified Ouroboros.Cardano.Network.PeerSelection.Governor.Types as Cardano -import qualified Ouroboros.Cardano.Network.PublicRootPeers as Cardano.PublicRootPeers +import qualified Cardano.Network.Diffusion.Types as Cardano.Diffusion +import qualified Cardano.Network.PeerSelection.Governor.Types as Cardano import qualified Ouroboros.Network.AnchoredFragment as AF import Ouroboros.Network.Block (BlockNo (..), ChainUpdate (..), HasHeader (..), Point, @@ -97,9 +94,6 @@ import Ouroboros.Network.ConnectionId (ConnectionId) import qualified Ouroboros.Network.ConnectionManager.Core as ConnectionManager import Ouroboros.Network.ConnectionManager.Types (ConnectionManagerCounters (..)) import qualified Ouroboros.Network.Diffusion as Diffusion -import qualified Ouroboros.Network.Diffusion.Common as Diffusion -import qualified Ouroboros.Network.Diffusion.NonP2P as NonP2P -import qualified Ouroboros.Network.Diffusion.P2P as P2P import qualified Ouroboros.Network.Driver.Stateful as Stateful import qualified Ouroboros.Network.InboundGovernor as InboundGovernor import Ouroboros.Network.InboundGovernor.State as InboundGovernor @@ -107,7 +101,7 @@ import Ouroboros.Network.NodeToClient (LocalAddress) import Ouroboros.Network.NodeToNode (RemoteAddress) import Ouroboros.Network.PeerSelection.Churn (ChurnCounters (..)) import Ouroboros.Network.PeerSelection.Governor ( - PeerSelectionCounters, PeerSelectionView (..)) + PeerSelectionView (..)) import qualified Ouroboros.Network.PeerSelection.Governor as Governor import Ouroboros.Network.Point (fromWithOrigin) import Ouroboros.Network.Protocol.LocalStateQuery.Type (LocalStateQuery, ShowQuery) @@ -166,43 +160,8 @@ data ForgeTracers = ForgeTracers , ftTraceAdoptionThreadDied :: Trace IO Text } -nullTracersP2P :: Applicative m => Tracers peer localPeer blk 'Diffusion.P2P extraState extraDebugState extraFlags extraPeers extraCounters m -nullTracersP2P = Tracers - { chainDBTracer = nullTracer - , consensusTracers = Consensus.nullTracers - , nodeToClientTracers = NodeToClient.nullTracers - , nodeToNodeTracers = NodeToNode.nullTracers - , diffusionTracers = Diffusion.nullTracers - , diffusionTracersExtra = Diffusion.P2PTracers P2P.nullTracersExtra - , startupTracer = nullTracer - , shutdownTracer = nullTracer - , nodeInfoTracer = nullTracer - , nodeStartupInfoTracer = nullTracer - , nodeStateTracer = nullTracer - , nodeVersionTracer = nullTracer - , resourcesTracer = nullTracer - , peersTracer = nullTracer - , ledgerMetricsTracer = nullTracer - } - -nullTracersNonP2P :: Tracers peer localPeer blk 'Diffusion.NonP2P extraState extraDebugState extraFlags extraPeers extraCounters m -nullTracersNonP2P = Tracers - { chainDBTracer = nullTracer - , consensusTracers = Consensus.nullTracers - , nodeToClientTracers = NodeToClient.nullTracers - , nodeToNodeTracers = NodeToNode.nullTracers - , diffusionTracers = Diffusion.nullTracers - , diffusionTracersExtra = Diffusion.NonP2PTracers NonP2P.nullTracers - , startupTracer = nullTracer - , shutdownTracer = nullTracer - , nodeInfoTracer = nullTracer - , nodeStartupInfoTracer = nullTracer - , nodeStateTracer = nullTracer - , nodeVersionTracer = nullTracer - , resourcesTracer = nullTracer - , peersTracer = nullTracer - , ledgerMetricsTracer = nullTracer - } +nullDiffusionTracers :: Applicative m => Cardano.Diffusion.CardanoTracers m +nullDiffusionTracers = Cardano.Diffusion.nullTracers indexGCType :: ChainDB.TraceGCEvent a -> Int indexGCType ChainDB.ScheduledGC{} = 1 @@ -264,7 +223,7 @@ instance ElidingTracer (WithSeverity (ChainDB.TraceEvent blk)) where doelide (WithSeverity _ (ChainDB.TraceLedgerDBEvent LedgerDB.LedgerDBFlavorImplEvent{})) = True doelide (WithSeverity _ (ChainDB.TraceGCEvent _)) = True - doelide (WithSeverity _ (ChainDB.TraceAddBlockEvent (ChainDB.IgnoreBlockOlderThanK _))) = False + doelide (WithSeverity _ (ChainDB.TraceAddBlockEvent (ChainDB.IgnoreBlockOlderThanImmTip _))) = False doelide (WithSeverity _ (ChainDB.TraceAddBlockEvent (ChainDB.IgnoreInvalidBlock _ _))) = False doelide (WithSeverity _ (ChainDB.TraceAddBlockEvent (ChainDB.StoreButDontChange _))) = False doelide (WithSeverity _ (ChainDB.TraceAddBlockEvent (ChainDB.TrySwitchToAFork _ _))) = False @@ -342,7 +301,7 @@ instance (StandardHash header, Eq peer) => ElidingTracer -- | Tracers for all system components. -- mkTracers - :: forall blk p2p . + :: forall blk. ( Consensus.RunNode blk , TraceConstraints blk ) @@ -351,20 +310,12 @@ mkTracers -> Trace IO Text -> NodeKernelData blk -> Maybe EKGDirect - -> NetworkP2PMode p2p - -> IO (Tracers RemoteAddress - LocalAddress - blk p2p - Cardano.ExtraState - Cardano.DebugPeerSelectionState - PeerTrustable - (Cardano.PublicRootPeers.ExtraPeers RemoteAddress) - (Cardano.ExtraPeerSelectionSetsWithSizes RemoteAddress) - IO) -mkTracers blockConfig tOpts@(TracingOnLegacy trSel) tr nodeKern ekgDirect enableP2P = do + -> IO (Tracers RemoteAddress LocalAddress blk IO) +mkTracers blockConfig tOpts@(TracingOnLegacy trSel) tr nodeKern ekgDirect = do fStats <- mkForgingStats consensusTracers <- mkConsensusTracers ekgDirect trSel verb tr nodeKern fStats elidedChainDB <- newstate -- for eliding messages in ChainDB tracer + let churnModeTracer = tracerOnOff (traceChurnMode trSel) verb "Churn" tr tForks <- STM.newTVarIO 0 pure Tracers @@ -381,7 +332,7 @@ mkTracers blockConfig tOpts@(TracingOnLegacy trSel) tr nodeKern ekgDirect enable , nodeToClientTracers = nodeToClientTracers' trSel verb tr , nodeToNodeTracers = nodeToNodeTracers' trSel verb tr , diffusionTracers - , diffusionTracersExtra = diffusionTracersExtra' enableP2P + , churnModeTracer -- TODO: startupTracer should ignore severity level (i.e. it should always -- be printed)! , startupTracer = toLogObject' verb (appendName "startup" tr) @@ -422,101 +373,96 @@ mkTracers blockConfig tOpts@(TracingOnLegacy trSel) tr nodeKern ekgDirect enable (getCardanoBuildInfo ev) Nothing -> pure () - diffusionTracers = Diffusion.Tracers + diffusionTracers :: Cardano.Diffusion.CardanoTracers IO + diffusionTracers = Cardano.Diffusion.Tracers { Diffusion.dtMuxTracer = muxTracer + , Diffusion.dtChannelTracer = channelTracer + , Diffusion.dtBearerTracer = bearerTracer , Diffusion.dtHandshakeTracer = handshakeTracer , Diffusion.dtLocalMuxTracer = localMuxTracer + , Diffusion.dtLocalChannelTracer = localChannelTracer + , Diffusion.dtLocalBearerTracer = localBearerTracer , Diffusion.dtLocalHandshakeTracer = localHandshakeTracer , Diffusion.dtDiffusionTracer = initializationTracer + , Diffusion.dtTraceLocalRootPeersTracer = + tracerOnOff (traceLocalRootPeers trSel) + verb "LocalRootPeers" tr + , Diffusion.dtTracePublicRootPeersTracer = + tracerOnOff (tracePublicRootPeers trSel) + verb "PublicRootPeers" tr + , Diffusion.dtTracePeerSelectionTracer = + tracerOnOff (tracePeerSelection trSel) + verb "PeerSelection" tr + <> tracePeerSelectionTracerMetrics + (tracePeerSelection trSel) + ekgDirect + , Diffusion.dtTraceChurnCounters = + traceChurnCountersMetrics + ekgDirect + , Diffusion.dtDebugPeerSelectionInitiatorTracer = + tracerOnOff (traceDebugPeerSelectionInitiatorTracer trSel) + verb "DebugPeerSelection" tr + , Diffusion.dtDebugPeerSelectionInitiatorResponderTracer = + tracerOnOff (traceDebugPeerSelectionInitiatorResponderTracer trSel) + verb "DebugPeerSelection" tr + , Diffusion.dtTracePeerSelectionCounters = + tracePeerSelectionCountersMetrics + (tracePeerSelectionCounters trSel) + ekgDirect + <> tracerOnOff (tracePeerSelectionCounters trSel) + verb "PeerSelectionCounters" tr + , Diffusion.dtPeerSelectionActionsTracer = + tracerOnOff (tracePeerSelectionActions trSel) + verb "PeerSelectionActions" tr + , Diffusion.dtConnectionManagerTracer = + traceConnectionManagerTraceMetrics + (traceConnectionManagerCounters trSel) + ekgDirect + <> tracerOnOff (traceConnectionManager trSel) + verb "ConnectionManager" tr + , Diffusion.dtConnectionManagerTransitionTracer = + tracerOnOff (traceConnectionManagerTransitions trSel) + verb "ConnectionManagerTransition" tr + , Diffusion.dtServerTracer = + tracerOnOff (traceServer trSel) verb "Server" tr + , Diffusion.dtInboundGovernorTracer = + traceInboundGovernorCountersMetrics + (traceInboundGovernorCounters trSel) + ekgDirect + <> tracerOnOff (traceInboundGovernor trSel) + verb "InboundGovernor" tr + , Diffusion.dtInboundGovernorTransitionTracer = + tracerOnOff (traceInboundGovernorTransitions trSel) + verb "InboundGovernorTransition" tr + , Diffusion.dtLocalConnectionManagerTracer = + tracerOnOff (traceLocalConnectionManager trSel) + verb "LocalConnectionManager" tr + , Diffusion.dtLocalServerTracer = + tracerOnOff (traceLocalServer trSel) + verb "LocalServer" tr + , Diffusion.dtLocalInboundGovernorTracer = + tracerOnOff (traceLocalInboundGovernor trSel) + verb "LocalInboundGovernor" tr + , Diffusion.dtTraceLedgerPeersTracer = + tracerOnOff (traceLedgerPeers trSel) + verb "LedgerPeers" tr + , Diffusion.dtDnsTracer = + tracerOnOff (traceDNS trSel) verb "DNS" tr } - diffusionTracersExtra' enP2P = - case enP2P of - EnabledP2PMode -> - Diffusion.P2PTracers P2P.TracersExtra - { P2P.dtTraceLocalRootPeersTracer = - tracerOnOff (traceLocalRootPeers trSel) - verb "LocalRootPeers" tr - , P2P.dtTracePublicRootPeersTracer = - tracerOnOff (tracePublicRootPeers trSel) - verb "PublicRootPeers" tr - , P2P.dtTracePeerSelectionTracer = - tracerOnOff (tracePeerSelection trSel) - verb "PeerSelection" tr - <> tracePeerSelectionTracerMetrics - (tracePeerSelection trSel) - ekgDirect - , P2P.dtTraceChurnCounters = - traceChurnCountersMetrics - ekgDirect - , P2P.dtDebugPeerSelectionInitiatorTracer = - tracerOnOff (traceDebugPeerSelectionInitiatorTracer trSel) - verb "DebugPeerSelection" tr - , P2P.dtDebugPeerSelectionInitiatorResponderTracer = - tracerOnOff (traceDebugPeerSelectionInitiatorResponderTracer trSel) - verb "DebugPeerSelection" tr - , P2P.dtTracePeerSelectionCounters = - tracePeerSelectionCountersMetrics - (tracePeerSelectionCounters trSel) - ekgDirect - <> tracerOnOff (tracePeerSelectionCounters trSel) - verb "PeerSelectionCounters" tr - , P2P.dtPeerSelectionActionsTracer = - tracerOnOff (tracePeerSelectionActions trSel) - verb "PeerSelectionActions" tr - , P2P.dtConnectionManagerTracer = - traceConnectionManagerTraceMetrics - (traceConnectionManagerCounters trSel) - ekgDirect - <> tracerOnOff (traceConnectionManager trSel) - verb "ConnectionManager" tr - , P2P.dtConnectionManagerTransitionTracer = - tracerOnOff (traceConnectionManagerTransitions trSel) - verb "ConnectionManagerTransition" tr - , P2P.dtServerTracer = - tracerOnOff (traceServer trSel) verb "Server" tr - , P2P.dtInboundGovernorTracer = - traceInboundGovernorCountersMetrics - (traceInboundGovernorCounters trSel) - ekgDirect - <> tracerOnOff (traceInboundGovernor trSel) - verb "InboundGovernor" tr - , P2P.dtInboundGovernorTransitionTracer = - tracerOnOff (traceInboundGovernorTransitions trSel) - verb "InboundGovernorTransition" tr - , P2P.dtLocalConnectionManagerTracer = - tracerOnOff (traceLocalConnectionManager trSel) - verb "LocalConnectionManager" tr - , P2P.dtLocalServerTracer = - tracerOnOff (traceLocalServer trSel) - verb "LocalServer" tr - , P2P.dtLocalInboundGovernorTracer = - tracerOnOff (traceLocalInboundGovernor trSel) - verb "LocalInboundGovernor" tr - , P2P.dtTraceLedgerPeersTracer = - tracerOnOff (traceLedgerPeers trSel) - verb "LedgerPeers" tr - } - DisabledP2PMode -> - Diffusion.NonP2PTracers NonP2P.TracersExtra - { NonP2P.dtIpSubscriptionTracer = - tracerOnOff (traceIpSubscription trSel) verb "IpSubscription" tr - , NonP2P.dtDnsSubscriptionTracer = - tracerOnOff (traceDnsSubscription trSel) verb "DnsSubscription" tr - , NonP2P.dtDnsResolverTracer = - tracerOnOff (traceDnsResolver trSel) verb "DnsResolver" tr - , NonP2P.dtErrorPolicyTracer = - tracerOnOff (traceErrorPolicy trSel) verb "ErrorPolicy" tr - , NonP2P.dtLocalErrorPolicyTracer = - tracerOnOff (traceLocalErrorPolicy trSel) verb "LocalErrorPolicy" tr - , NonP2P.dtAcceptPolicyTracer = - tracerOnOff (traceAcceptPolicy trSel) verb "AcceptPolicy" tr - } verb :: TracingVerbosity verb = traceVerbosity trSel muxTracer = tracerOnOff (traceMux trSel) verb "Mux" tr + channelTracer = + tracerOnOff (traceMux trSel) verb "MuxChannel" tr + bearerTracer = + tracerOnOff (traceMux trSel) verb "MuxBearerTracer" tr localMuxTracer = tracerOnOff (traceLocalMux trSel) verb "MuxLocal" tr + localChannelTracer = + tracerOnOff (traceMux trSel) verb "LocalMuxChannel" tr + localBearerTracer = + tracerOnOff (traceMux trSel) verb "LocalMuxBearerTracer" tr localHandshakeTracer = tracerOnOff (traceLocalHandshake trSel) verb "LocalHandshake" tr handshakeTracer = @@ -525,7 +471,7 @@ mkTracers blockConfig tOpts@(TracingOnLegacy trSel) tr nodeKern ekgDirect enable tracerOnOff (traceDiffusionInitialization trSel) verb "DiffusionInitializationTracer" tr -mkTracers _ _ _ _ _ enableP2P = +mkTracers _ _ _ _ _ = pure Tracers { chainDBTracer = nullTracer , consensusTracers = Consensus.Tracers @@ -549,6 +495,7 @@ mkTracers _ _ _ _ _ enableP2P = , Consensus.gsmTracer = nullTracer , Consensus.csjTracer = nullTracer , Consensus.dbfTracer = nullTracer + , Consensus.kesAgentTracer = nullTracer } , nodeToClientTracers = NodeToClient.Tracers { NodeToClient.tChainSyncTracer = nullTracer @@ -566,10 +513,7 @@ mkTracers _ _ _ _ _ enableP2P = , NodeToNode.tPeerSharingTracer = nullTracer } , diffusionTracers = Diffusion.nullTracers - , diffusionTracersExtra = - case enableP2P of - EnabledP2PMode -> Diffusion.P2PTracers P2P.nullTracersExtra - DisabledP2PMode -> Diffusion.NonP2PTracers NonP2P.nullTracers + , churnModeTracer = nullTracer , startupTracer = nullTracer , shutdownTracer = nullTracer , nodeInfoTracer = nullTracer @@ -855,6 +799,7 @@ mkConsensusTracers mbEKGDirect trSel verb tr nodeKern fStats = do , Consensus.gsmTracer = tracerOnOff (traceGsm trSel) verb "GSM" tr , Consensus.csjTracer = tracerOnOff (traceCsj trSel) verb "CSJ" tr , Consensus.dbfTracer = tracerOnOff (traceDevotedBlockFetch trSel) verb "DevotedBlockFetch" tr + , Consensus.kesAgentTracer = tracerOnOff (traceKesAgent trSel) verb "kesAgent" tr } where mkForgeTracers :: IO ForgeTracers @@ -1616,12 +1561,12 @@ tracePeerSelectionTracerMetrics (OnOff True) (Just ekgDirect) = pstTracer tracePeerSelectionCountersMetrics :: OnOff TracePeerSelectionCounters -> Maybe EKGDirect - -> Tracer IO (PeerSelectionCounters (Cardano.ExtraPeerSelectionSetsWithSizes addr)) + -> Tracer IO CardanoPeerSelectionCounters tracePeerSelectionCountersMetrics _ Nothing = nullTracer tracePeerSelectionCountersMetrics (OnOff False) _ = nullTracer tracePeerSelectionCountersMetrics (OnOff True) (Just ekgDirect) = pscTracer where - pscTracer :: Tracer IO (PeerSelectionCounters (Cardano.ExtraPeerSelectionSetsWithSizes addr)) + pscTracer :: Tracer IO CardanoPeerSelectionCounters pscTracer = Tracer $ \psc -> do let PeerSelectionCountersHWC {..} = psc -- Deprecated counters; they will be removed in a future version diff --git a/cardano-node/test/Test/Cardano/Node/Gen.hs b/cardano-node/test/Test/Cardano/Node/Gen.hs index f042fc74206..d2fd8220b49 100644 --- a/cardano-node/test/Test/Cardano/Node/Gen.hs +++ b/cardano-node/test/Test/Cardano/Node/Gen.hs @@ -32,8 +32,7 @@ import Cardano.Slotting.Slot (SlotNo (..)) import Ouroboros.Network.NodeToNode.Version import Ouroboros.Network.PeerSelection.LedgerPeers.Type (AfterSlot (..), UseLedgerPeers (..)) -import Ouroboros.Network.PeerSelection.RelayAccessPoint (DomainAccessPoint (..), - RelayAccessPoint (..)) +import Ouroboros.Network.PeerSelection.RelayAccessPoint (RelayAccessPoint (..)) import Ouroboros.Network.PeerSelection.State.LocalRootPeers (HotValency (..), WarmValency (..)) @@ -155,23 +154,23 @@ genNodeSetup = <*> Gen.list (Range.linear 0 6) genRootConfig <*> genUseLedgerPeers -genDomainAddress :: Gen DomainAccessPoint -genDomainAddress = - DomainAccessPoint - <$> Gen.element cooking - <*> (fromIntegral <$> Gen.int (Range.linear 1000 9000)) - +-- Generates only fully qualified domain names. +-- genRelayAddress :: Gen RelayAccessPoint -genRelayAddress = do - isDomain <- Gen.bool - if isDomain - then RelayDomainAccessPoint <$> genDomainAddress - else RelayAccessAddress - <$> Gen.choice - [ IP.IPv4 . unNodeHostIPv4Address <$> genNodeHostIPv4Address - , IP.IPv6 . unNodeHostIPv6Address <$> genNodeHostIPv6Address - ] - <*> (fromIntegral <$> Gen.int (Range.linear 1000 9000)) +genRelayAddress = + Gen.choice + [ RelayAccessDomain + . (<> ".") + <$> Gen.element cooking + <*> (fromIntegral <$> Gen.int (Range.linear 1000 9000)) + , RelayAccessSRVDomain . (<> ".") <$> Gen.element cooking + , RelayAccessAddress + <$> Gen.choice + [ IP.IPv4 . unNodeHostIPv4Address <$> genNodeHostIPv4Address + , IP.IPv6 . unNodeHostIPv6Address <$> genNodeHostIPv6Address + ] + <*> (fromIntegral <$> Gen.int (Range.linear 1000 9000)) + ] genRootConfig :: Gen (RootConfig RelayAccessPoint) genRootConfig = do diff --git a/cardano-node/test/Test/Cardano/Node/POM.hs b/cardano-node/test/Test/Cardano/Node/POM.hs index ff996959fc2..cfe7fd8be2a 100644 --- a/cardano-node/test/Test/Cardano/Node/POM.hs +++ b/cardano-node/test/Test/Cardano/Node/POM.hs @@ -8,6 +8,7 @@ module Test.Cardano.Node.POM import Cardano.Crypto.ProtocolMagic (RequiresNetworkMagic (..)) +import Cardano.Network.Diffusion.Configuration (defaultNumberOfBigLedgerPeers) import Cardano.Node.Configuration.LedgerDB import Cardano.Node.Configuration.POM import Cardano.Node.Configuration.Socket @@ -15,9 +16,7 @@ import Cardano.Node.Handlers.Shutdown import Cardano.Node.Types import Cardano.Tracing.Config (PartialTraceOptions (..), defaultPartialTraceConfiguration, partialTraceSelectionToEither) -import Ouroboros.Cardano.Network.Diffusion.Configuration (defaultNumberOfBigLedgerPeers) import Ouroboros.Consensus.Node (NodeDatabasePaths (..)) -import qualified Ouroboros.Consensus.Node as Consensus (NetworkP2PMode (..)) import Ouroboros.Consensus.Node.Genesis (disableGenesisConfig) import Ouroboros.Consensus.Storage.LedgerDB.Args import Ouroboros.Consensus.Storage.LedgerDB.Snapshots (NumOfDiskSnapshots (..), @@ -89,19 +88,21 @@ testNodeConwayProtocolConfiguration = testNodeHardForkProtocolConfiguration :: NodeHardForkProtocolConfiguration testNodeHardForkProtocolConfiguration = NodeHardForkProtocolConfiguration - { npcExperimentalHardForksEnabled = True - , npcTestShelleyHardForkAtEpoch = Nothing - , npcTestShelleyHardForkAtVersion = Nothing - , npcTestAllegraHardForkAtEpoch = Nothing - , npcTestAllegraHardForkAtVersion = Nothing - , npcTestMaryHardForkAtEpoch = Nothing - , npcTestMaryHardForkAtVersion = Nothing - , npcTestAlonzoHardForkAtEpoch = Nothing - , npcTestAlonzoHardForkAtVersion = Nothing - , npcTestBabbageHardForkAtEpoch = Nothing - , npcTestBabbageHardForkAtVersion = Nothing - , npcTestConwayHardForkAtEpoch = Nothing - , npcTestConwayHardForkAtVersion = Nothing + { npcExperimentalHardForksEnabled = True + , npcTestShelleyHardForkAtEpoch = Nothing + , npcTestShelleyHardForkAtVersion = Nothing + , npcTestAllegraHardForkAtEpoch = Nothing + , npcTestAllegraHardForkAtVersion = Nothing + , npcTestMaryHardForkAtEpoch = Nothing + , npcTestMaryHardForkAtVersion = Nothing + , npcTestAlonzoHardForkAtEpoch = Nothing + , npcTestAlonzoHardForkAtVersion = Nothing + , npcTestBabbageHardForkAtEpoch = Nothing + , npcTestBabbageHardForkAtVersion = Nothing + , npcTestConwayHardForkAtEpoch = Nothing + , npcTestConwayHardForkAtVersion = Nothing + , npcTestDijkstraHardForkAtEpoch = Nothing + , npcTestDijkstraHardForkAtVersion = Nothing } testNodeCheckpointsConfiguration :: NodeCheckpointsConfiguration @@ -118,6 +119,7 @@ testNodeProtocolConfiguration = testNodeShelleyProtocolConfiguration testNodeAlonzoProtocolConfiguration testNodeConwayProtocolConfiguration + Nothing -- Dijkstra configuration testNodeHardForkProtocolConfiguration testNodeCheckpointsConfiguration @@ -163,7 +165,6 @@ testPartialYamlConfig = , pncSyncTargetOfEstablishedBigLedgerPeers = mempty , pncSyncTargetOfActiveBigLedgerPeers = mempty , pncMinBigLedgerPeersForTrustedState = mempty - , pncEnableP2P = Last (Just DisabledP2PMode) , pncPeerSharing = Last (Just PeerSharingDisabled) , pncConsensusMode = mempty , pncGenesisConfigFlags = mempty @@ -214,7 +215,6 @@ testPartialCliConfig = , pncSyncTargetOfEstablishedBigLedgerPeers = mempty , pncSyncTargetOfActiveBigLedgerPeers = mempty , pncMinBigLedgerPeersForTrustedState = Last (Just defaultNumberOfBigLedgerPeers) - , pncEnableP2P = Last (Just DisabledP2PMode) , pncPeerSharing = Last (Just PeerSharingDisabled) , pncConsensusMode = Last (Just PraosMode) , pncGenesisConfigFlags = mempty @@ -272,7 +272,6 @@ eExpectedConfig = do , ncSyncTargetOfEstablishedBigLedgerPeers = 40 , ncSyncTargetOfActiveBigLedgerPeers = 30 , ncMinBigLedgerPeersForTrustedState = defaultNumberOfBigLedgerPeers - , ncEnableP2P = SomeNetworkP2PMode Consensus.DisabledP2PMode , ncPeerSharing = PeerSharingDisabled , ncConsensusMode = PraosMode , ncGenesisConfig = disableGenesisConfig diff --git a/cardano-node/test/Test/Cardano/Tracing/NewTracing/Consistency.hs b/cardano-node/test/Test/Cardano/Tracing/NewTracing/Consistency.hs index 9ce11415100..9e693c4c99b 100644 --- a/cardano-node/test/Test/Cardano/Tracing/NewTracing/Consistency.hs +++ b/cardano-node/test/Test/Cardano/Tracing/NewTracing/Consistency.hs @@ -33,8 +33,7 @@ tests = do , "goodConfig.yaml" ) , ( [ "Config namespace error: Illegal namespace ChainDB.CopyToImmutableDBEvent2.CopiedBlockToImmutableDB" - , "Config namespace error: Illegal namespace SubscriptionDNS" - ] + ] , testSubdir , "badConfig.yaml" ) diff --git a/cardano-node/test/Test/Cardano/Tracing/NewTracing/data/badConfig.yaml b/cardano-node/test/Test/Cardano/Tracing/NewTracing/data/badConfig.yaml index 1c0ebf78c09..0f23a53c33f 100644 --- a/cardano-node/test/Test/Cardano/Tracing/NewTracing/data/badConfig.yaml +++ b/cardano-node/test/Test/Cardano/Tracing/NewTracing/data/badConfig.yaml @@ -54,15 +54,6 @@ TraceOptions: Net.DNSResolver: severity: Info - Net.ErrorPolicy: - severity: Info - - Net.Subscription.IP: - severity: Info - - SubscriptionDNS: - severity: Info - Resources: severity: Info @@ -74,4 +65,4 @@ TraceOptions: TraceOptionPeerFrequency: 2000 -TraceOptionResourceFrequency: 5000 \ No newline at end of file +TraceOptionResourceFrequency: 5000 diff --git a/cardano-node/test/Test/Cardano/Tracing/NewTracing/data/goodConfig.yaml b/cardano-node/test/Test/Cardano/Tracing/NewTracing/data/goodConfig.yaml index 558d186ae7f..bfc9b6be514 100644 --- a/cardano-node/test/Test/Cardano/Tracing/NewTracing/data/goodConfig.yaml +++ b/cardano-node/test/Test/Cardano/Tracing/NewTracing/data/goodConfig.yaml @@ -54,12 +54,6 @@ TraceOptions: Net.DNSResolver: severity: Info - Net.ErrorPolicy: - severity: Info - - Net.Subscription: - severity: Info - Resources: severity: Info @@ -71,4 +65,4 @@ TraceOptions: TraceOptionPeerFrequency: 2000 -TraceOptionResourceFrequency: 5000 \ No newline at end of file +TraceOptionResourceFrequency: 5000 diff --git a/cardano-node/test/Test/Cardano/Tracing/OrphanInstances/HardFork.hs b/cardano-node/test/Test/Cardano/Tracing/OrphanInstances/HardFork.hs index ff08f84509f..e85ba34cfe4 100644 --- a/cardano-node/test/Test/Cardano/Tracing/OrphanInstances/HardFork.hs +++ b/cardano-node/test/Test/Cardano/Tracing/OrphanInstances/HardFork.hs @@ -73,6 +73,7 @@ ntc_HFV3_allDisabled = :* Consensus.EraNodeToClientDisabled -- Alonzo :* Consensus.EraNodeToClientDisabled -- Babbage :* Consensus.EraNodeToClientDisabled -- Conway + :* Consensus.EraNodeToClientDisabled -- Dijkstra :* Nil ) @@ -89,6 +90,7 @@ ntc_HFV3_ByronV1 = :* Consensus.EraNodeToClientDisabled -- Alonzo :* Consensus.EraNodeToClientDisabled -- Babbage :* Consensus.EraNodeToClientDisabled -- Conway + :* Consensus.EraNodeToClientDisabled -- Dijkstra :* Nil ) @@ -105,6 +107,7 @@ ntc_HFV3_ByronV1_ShelleyV8 = :* Consensus.EraNodeToClientDisabled -- Alonzo :* Consensus.EraNodeToClientDisabled -- Babbage :* Consensus.EraNodeToClientDisabled -- Conway + :* Consensus.EraNodeToClientDisabled -- Dijkstra :* Nil ) @@ -121,6 +124,7 @@ ntc_HFV3_ByronV1_ShelleyV8_ConwayV2 = :* Consensus.EraNodeToClientDisabled -- Alonzo :* Consensus.EraNodeToClientDisabled -- Babbage :* Consensus.EraNodeToClientEnabled Consensus.Cardano.ShelleyNodeToClientVersion8 -- Conway + :* Consensus.EraNodeToClientEnabled Consensus.Cardano.ShelleyNodeToClientVersion8 -- Dijkstra :* Nil ) diff --git a/cardano-node/test/Test/Cardano/Tracing/OrphanInstances/data/ntc_HFV3_ByronV1.json b/cardano-node/test/Test/Cardano/Tracing/OrphanInstances/data/ntc_HFV3_ByronV1.json index eb74a30a9ac..ff309c6899f 100644 --- a/cardano-node/test/Test/Cardano/Tracing/OrphanInstances/data/ntc_HFV3_ByronV1.json +++ b/cardano-node/test/Test/Cardano/Tracing/OrphanInstances/data/ntc_HFV3_ByronV1.json @@ -1 +1 @@ -{"eraNodeToClientVersions":["ByronNodeToClientVersion1","EraNodeToClientDisabled","EraNodeToClientDisabled","EraNodeToClientDisabled","EraNodeToClientDisabled","EraNodeToClientDisabled","EraNodeToClientDisabled"],"hardForkSpecificNodeToClientVersion":"HardForkSpecificNodeToClientVersion3","tag":"HardForkNodeToClientEnabled"} \ No newline at end of file +{"eraNodeToClientVersions":["ByronNodeToClientVersion1","EraNodeToClientDisabled","EraNodeToClientDisabled","EraNodeToClientDisabled","EraNodeToClientDisabled","EraNodeToClientDisabled","EraNodeToClientDisabled","EraNodeToClientDisabled"],"hardForkSpecificNodeToClientVersion":"HardForkSpecificNodeToClientVersion3","tag":"HardForkNodeToClientEnabled"} \ No newline at end of file diff --git a/cardano-node/test/Test/Cardano/Tracing/OrphanInstances/data/ntc_HFV3_ByronV1_ShelleyV8.json b/cardano-node/test/Test/Cardano/Tracing/OrphanInstances/data/ntc_HFV3_ByronV1_ShelleyV8.json index e1b5a3dd005..398c7ce89b1 100644 --- a/cardano-node/test/Test/Cardano/Tracing/OrphanInstances/data/ntc_HFV3_ByronV1_ShelleyV8.json +++ b/cardano-node/test/Test/Cardano/Tracing/OrphanInstances/data/ntc_HFV3_ByronV1_ShelleyV8.json @@ -1 +1 @@ -{"eraNodeToClientVersions":["ByronNodeToClientVersion1","ShelleyNodeToClientVersion8","EraNodeToClientDisabled","EraNodeToClientDisabled","EraNodeToClientDisabled","EraNodeToClientDisabled","EraNodeToClientDisabled"],"hardForkSpecificNodeToClientVersion":"HardForkSpecificNodeToClientVersion3","tag":"HardForkNodeToClientEnabled"} \ No newline at end of file +{"eraNodeToClientVersions":["ByronNodeToClientVersion1","ShelleyNodeToClientVersion8","EraNodeToClientDisabled","EraNodeToClientDisabled","EraNodeToClientDisabled","EraNodeToClientDisabled","EraNodeToClientDisabled","EraNodeToClientDisabled"],"hardForkSpecificNodeToClientVersion":"HardForkSpecificNodeToClientVersion3","tag":"HardForkNodeToClientEnabled"} \ No newline at end of file diff --git a/cardano-node/test/Test/Cardano/Tracing/OrphanInstances/data/ntc_HFV3_ByronV1_ShelleyV8_ConwayV2.json b/cardano-node/test/Test/Cardano/Tracing/OrphanInstances/data/ntc_HFV3_ByronV1_ShelleyV8_ConwayV2.json index d95d2ecf1b0..7d41fd3fd9c 100644 --- a/cardano-node/test/Test/Cardano/Tracing/OrphanInstances/data/ntc_HFV3_ByronV1_ShelleyV8_ConwayV2.json +++ b/cardano-node/test/Test/Cardano/Tracing/OrphanInstances/data/ntc_HFV3_ByronV1_ShelleyV8_ConwayV2.json @@ -1 +1 @@ -{"eraNodeToClientVersions":["ByronNodeToClientVersion1","ShelleyNodeToClientVersion8","EraNodeToClientDisabled","EraNodeToClientDisabled","EraNodeToClientDisabled","EraNodeToClientDisabled","ShelleyNodeToClientVersion8"],"hardForkSpecificNodeToClientVersion":"HardForkSpecificNodeToClientVersion3","tag":"HardForkNodeToClientEnabled"} \ No newline at end of file +{"eraNodeToClientVersions":["ByronNodeToClientVersion1","ShelleyNodeToClientVersion8","EraNodeToClientDisabled","EraNodeToClientDisabled","EraNodeToClientDisabled","EraNodeToClientDisabled","ShelleyNodeToClientVersion8","ShelleyNodeToClientVersion8"],"hardForkSpecificNodeToClientVersion":"HardForkSpecificNodeToClientVersion3","tag":"HardForkNodeToClientEnabled"} \ No newline at end of file diff --git a/cardano-node/test/Test/Cardano/Tracing/OrphanInstances/data/ntc_HFV3_allDisabled.json b/cardano-node/test/Test/Cardano/Tracing/OrphanInstances/data/ntc_HFV3_allDisabled.json index d4093da0173..5795a2479aa 100644 --- a/cardano-node/test/Test/Cardano/Tracing/OrphanInstances/data/ntc_HFV3_allDisabled.json +++ b/cardano-node/test/Test/Cardano/Tracing/OrphanInstances/data/ntc_HFV3_allDisabled.json @@ -1 +1 @@ -{"eraNodeToClientVersions":["EraNodeToClientDisabled","EraNodeToClientDisabled","EraNodeToClientDisabled","EraNodeToClientDisabled","EraNodeToClientDisabled","EraNodeToClientDisabled","EraNodeToClientDisabled"],"hardForkSpecificNodeToClientVersion":"HardForkSpecificNodeToClientVersion3","tag":"HardForkNodeToClientEnabled"} \ No newline at end of file +{"eraNodeToClientVersions":["EraNodeToClientDisabled","EraNodeToClientDisabled","EraNodeToClientDisabled","EraNodeToClientDisabled","EraNodeToClientDisabled","EraNodeToClientDisabled","EraNodeToClientDisabled","EraNodeToClientDisabled"],"hardForkSpecificNodeToClientVersion":"HardForkSpecificNodeToClientVersion3","tag":"HardForkNodeToClientEnabled"} \ No newline at end of file diff --git a/cardano-submit-api/cardano-submit-api.cabal b/cardano-submit-api/cardano-submit-api.cabal index 5453d438669..fc79003264b 100644 --- a/cardano-submit-api/cardano-submit-api.cabal +++ b/cardano-submit-api/cardano-submit-api.cabal @@ -39,9 +39,9 @@ library , aeson , async , bytestring - , cardano-api ^>= 10.18 + , cardano-api ^>= 10.19 , cardano-binary - , cardano-cli ^>= 10.12 + , cardano-cli ^>= 10.13 , cardano-crypto-class ^>= 2.2 , http-media , iohk-monitoring @@ -49,7 +49,6 @@ library , network , optparse-applicative-fork , ouroboros-consensus-cardano - , ouroboros-network ^>= 0.21.2 , ouroboros-network-protocols , prometheus >= 2.2.4 , safe-exceptions @@ -73,7 +72,6 @@ library , Cardano.TxSubmit.Rest.Parsers , Cardano.TxSubmit.Rest.Types , Cardano.TxSubmit.Rest.Web - , Cardano.TxSubmit.Tracing.ToObjectOrphans , Cardano.TxSubmit.Types , Cardano.TxSubmit.Util , Cardano.TxSubmit.Web diff --git a/cardano-submit-api/src/Cardano/TxSubmit/Tracing/ToObjectOrphans.hs b/cardano-submit-api/src/Cardano/TxSubmit/Tracing/ToObjectOrphans.hs deleted file mode 100644 index 506825f80c8..00000000000 --- a/cardano-submit-api/src/Cardano/TxSubmit/Tracing/ToObjectOrphans.hs +++ /dev/null @@ -1,42 +0,0 @@ -{-# LANGUAGE FlexibleInstances #-} -{-# LANGUAGE MultiParamTypeClasses #-} -{-# LANGUAGE OverloadedStrings #-} - -{-# OPTIONS_GHC -fno-warn-orphans #-} - -module Cardano.TxSubmit.Tracing.ToObjectOrphans () where - -import Cardano.BM.Data.Severity (Severity (Debug, Error, Notice, Warning)) -import Cardano.BM.Data.Tracer (HasPrivacyAnnotation, HasSeverityAnnotation (..), - HasTextFormatter, ToObject (toObject), Transformable (..), trStructured) -import Ouroboros.Network.NodeToClient (ErrorPolicyTrace (..), WithAddr (..)) - -import Data.Aeson ((.=)) -import Data.Text (Text) -import qualified Network.Socket as Socket - -instance HasPrivacyAnnotation (WithAddr Socket.SockAddr ErrorPolicyTrace) -instance HasSeverityAnnotation (WithAddr Socket.SockAddr ErrorPolicyTrace) where - getSeverityAnnotation (WithAddr _ ev) = case ev of - ErrorPolicySuspendPeer {} -> Warning -- peer misbehaved - ErrorPolicySuspendConsumer {} -> Notice -- peer temporarily not useful - ErrorPolicyLocalNodeError {} -> Error - ErrorPolicyResumePeer {} -> Debug - ErrorPolicyKeepSuspended {} -> Debug - ErrorPolicyResumeConsumer {} -> Debug - ErrorPolicyResumeProducer {} -> Debug - ErrorPolicyUnhandledApplicationException {} -> Error - ErrorPolicyUnhandledConnectionException {} -> Error - ErrorPolicyAcceptException {} -> Error - -instance HasTextFormatter (WithAddr Socket.SockAddr ErrorPolicyTrace) where - --- transform @ErrorPolicyTrace@ -instance Transformable Text IO (WithAddr Socket.SockAddr ErrorPolicyTrace) where - trTransformer = trStructured - -instance ToObject (WithAddr Socket.SockAddr ErrorPolicyTrace) where - toObject _verb (WithAddr addr ev) = - mconcat [ "kind" .= ("ErrorPolicyTrace" :: String) - , "address" .= show addr - , "event" .= show ev ] diff --git a/cardano-testnet/cardano-testnet.cabal b/cardano-testnet/cardano-testnet.cabal index d81890ce526..e6fce15b5d1 100644 --- a/cardano-testnet/cardano-testnet.cabal +++ b/cardano-testnet/cardano-testnet.cabal @@ -40,8 +40,8 @@ library , aeson-pretty , ansi-terminal , bytestring - , cardano-api ^>= 10.18 - , cardano-cli:{cardano-cli, cardano-cli-test-lib} ^>= 10.12 + , cardano-api ^>= 10.19 + , cardano-cli:{cardano-cli, cardano-cli-test-lib} ^>= 10.13 , cardano-crypto-class , cardano-crypto-wrapper , cardano-git-rev ^>= 0.2.2 @@ -53,9 +53,10 @@ library , cardano-ledger-api , cardano-ledger-conway , cardano-ledger-core:{cardano-ledger-core, testlib} + , cardano-ledger-dijkstra , cardano-ledger-shelley , cardano-node - , cardano-ping ^>= 0.8 + , cardano-ping ^>= 0.9 , cardano-prelude , contra-tracer , containers @@ -70,8 +71,9 @@ library , extra , filepath , hedgehog - , hedgehog-extras ^>= 0.8 + , hedgehog-extras ^>= 0.10 , http-conduit + , io-classes:{si-timers} , lens-aeson , microlens , monad-control @@ -80,7 +82,7 @@ library , network , network-mux , optparse-applicative-fork - , ouroboros-network ^>= 0.21 + , ouroboros-network ^>= 0.22.3 , ouroboros-network-api , prettyprinter , process @@ -88,7 +90,6 @@ library , retry , safe-exceptions , scientific - , si-timers , stm , tasty ^>= 1.5 , tasty-expected-failure @@ -226,7 +227,6 @@ test-suite cardano-testnet-test Cardano.Testnet.Test.Misc Cardano.Testnet.Test.Node.Shutdown Cardano.Testnet.Test.MainnetParams - Cardano.Testnet.Test.P2PTopology Cardano.Testnet.Test.SanityCheck Cardano.Testnet.Test.RunTestnet Cardano.Testnet.Test.SubmitApi.Transaction @@ -259,6 +259,7 @@ test-suite cardano-testnet-test , hedgehog , hedgehog-extras , http-conduit + , iproute , lens , lens-aeson , microlens diff --git a/cardano-testnet/src/Parsers/Cardano.hs b/cardano-testnet/src/Parsers/Cardano.hs index f9c5e184fa4..607b5889759 100644 --- a/cardano-testnet/src/Parsers/Cardano.hs +++ b/cardano-testnet/src/Parsers/Cardano.hs @@ -5,14 +5,16 @@ module Parsers.Cardano , cmdCreateEnv ) where -import Cardano.Api (AnyShelleyBasedEra(..)) -import Cardano.CLI.EraBased.Common.Option (bounded, command') +import Cardano.Api (AnyShelleyBasedEra (..)) + +import Cardano.CLI.EraBased.Common.Option hiding (pNetworkId) + import Prelude -import Control.Applicative((<|>), optional) +import Control.Applicative (optional, (<|>)) import Data.Default.Class (def) import qualified Data.List as L -import Data.Maybe (fromMaybe) +import Data.Maybe import Data.Word (Word64) import Options.Applicative (CommandFields, Mod, Parser) import qualified Options.Applicative as OA @@ -22,7 +24,6 @@ import Testnet.Start.Cardano import Testnet.Start.Types import Testnet.Types (readNodeLoggingFormat) - optsTestnet :: Parser CardanoTestnetCliOptions optsTestnet = CardanoTestnetCliOptions <$> pCardanoTestnetCliOptions @@ -42,7 +43,6 @@ optsCreateTestnet = CardanoTestnetCreateEnvOptions pCreateEnvOptions :: Parser CreateEnvOptions pCreateEnvOptions = CreateEnvOptions <$> pOnChainParams - <*> pTopologyType pCardanoTestnetCliOptions :: Parser CardanoTestnetOptions pCardanoTestnetCliOptions = CardanoTestnetOptions @@ -112,13 +112,6 @@ pMainnetParams = OA.flag' OnChainParamsMainnet <> OA.help "Use mainnet on-chain parameters" ) -pTopologyType :: Parser TopologyType -pTopologyType = OA.flag DirectTopology P2PTopology - ( OA.long "p2p-topology" - <> OA.help "Use P2P topology files instead of \"direct\" topology files" - <> OA.showDefault - ) - pUpdateTimestamps :: Parser UpdateTimestamps pUpdateTimestamps = OA.flag DontUpdateTimestamps UpdateTimestamps ( OA.long "update-time" diff --git a/cardano-testnet/src/Testnet/Blockfrost.hs b/cardano-testnet/src/Testnet/Blockfrost.hs index 642838d102c..be8093d13f6 100644 --- a/cardano-testnet/src/Testnet/Blockfrost.hs +++ b/cardano-testnet/src/Testnet/Blockfrost.hs @@ -10,30 +10,32 @@ module Testnet.Blockfrost , blockfrostToGenesis ) where -import Cardano.Ledger.BaseTypes (EpochInterval, Nonce, NonNegativeInterval, - UnitInterval, ProtVer(..), Version) -import Cardano.Ledger.Coin (Coin) -import Cardano.Ledger.Core (PParams(..)) -import Cardano.Ledger.Shelley.Genesis (ShelleyGenesis(..)) -import Cardano.Ledger.Shelley.PParams (ShelleyPParams(..)) -import Cardano.Ledger.Alonzo.Genesis (AlonzoGenesis(..)) +import Cardano.Ledger.Alonzo.Genesis (AlonzoGenesis (..)) import Cardano.Ledger.Alonzo.PParams (CoinPerWord) -import Cardano.Ledger.Conway.Genesis (ConwayGenesis(..)) -import Cardano.Ledger.Conway.PParams (UpgradeConwayPParams(..), - PoolVotingThresholds(..), DRepVotingThresholds(..)) -import Cardano.Ledger.Plutus (CostModel, CostModels, ExUnits(..), - Language(..), Prices(..)) +import Cardano.Ledger.BaseTypes (EpochInterval, NonNegativeInterval, Nonce, ProtVer (..), + UnitInterval, Version) +import Cardano.Ledger.Coin (Coin) +import Cardano.Ledger.Compactible (toCompactPartial) +import Cardano.Ledger.Conway.Genesis (ConwayGenesis (..)) +import Cardano.Ledger.Conway.PParams (DRepVotingThresholds (..), + PoolVotingThresholds (..), UpgradeConwayPParams (..)) +import Cardano.Ledger.Core (PParams (..)) +import Cardano.Ledger.Dijkstra.Genesis (DijkstraGenesis) +import Cardano.Ledger.Plutus (CostModel, CostModels, ExUnits (..), Language (..), + Prices (..)) import qualified Cardano.Ledger.Plutus.CostModels as CostModels +import Cardano.Ledger.Shelley.Genesis (ShelleyGenesis (..)) +import Cardano.Ledger.Shelley.PParams (ShelleyPParams (..)) import Control.Applicative ((<|>)) +import Data.Aeson (FromJSON (..), withObject, (.:)) import qualified Data.Aeson as Aeson -import Data.Aeson (FromJSON(..), (.:), withObject) import qualified Data.Aeson.Types as Aeson import qualified Data.Map.Strict as Map -import Text.Read (readMaybe) import Data.Scientific (Scientific) import Data.Word (Word16, Word32) import Numeric.Natural (Natural) +import Text.Read (readMaybe) data BlockfrostParams = BlockfrostParams { -- Alonzo parameters @@ -181,11 +183,11 @@ instance FromJSON BlockfrostParams where -- Edit a set of Genesis files with data from Blockfrost parameters blockfrostToGenesis :: () - => (AlonzoGenesis, ConwayGenesis, ShelleyGenesis) + => (ShelleyGenesis, AlonzoGenesis, ConwayGenesis, DijkstraGenesis) -> BlockfrostParams - -> (AlonzoGenesis, ConwayGenesis, ShelleyGenesis) -blockfrostToGenesis (alonzoGenesis', conwayGenesis', shelleyGenesis') BlockfrostParams{..} = - (alonzoGenesis, conwayGenesis, shelleyGenesis) + -> (ShelleyGenesis, AlonzoGenesis, ConwayGenesis, DijkstraGenesis) +blockfrostToGenesis (shelleyGenesis', alonzoGenesis', conwayGenesis', dijkstraGenesis') BlockfrostParams{..} = + (shelleyGenesis, alonzoGenesis, conwayGenesis, dijkstraGenesis) where -- Alonzo params alonzoGenesis = alonzoGenesis' @@ -205,7 +207,7 @@ blockfrostToGenesis (alonzoGenesis', conwayGenesis', shelleyGenesis') Blockfrost { prMem = bfgPriceMem , prSteps = bfgPriceSteps } - , agCostModels = bfgAlonzoCostModels + , agCostModels = CostModels.mkCostModels . Map.mapWithKey trimCostModelToInitial $ CostModels.costModelsValid bfgAlonzoCostModels } -- Conway Params @@ -236,7 +238,7 @@ blockfrostToGenesis (alonzoGenesis', conwayGenesis', shelleyGenesis') Blockfrost , ucppDRepDeposit = bfgDRepDeposit , ucppDRepActivity = bfgDRepActivity , ucppMinFeeRefScriptCostPerByte = bfgMinFeeRevScriptCostPerByte - , ucppPlutusV3CostModel = bfgConwayCostModel + , ucppPlutusV3CostModel = trimCostModelToInitial PlutusV3 bfgConwayCostModel } conwayGenesis = conwayGenesis'{cgUpgradePParams=conwayParams} @@ -248,7 +250,7 @@ blockfrostToGenesis (alonzoGenesis', conwayGenesis', shelleyGenesis') Blockfrost , sppMaxTxSize = bfgMaxTxSize , sppMaxBHSize = bfgMaxBlockHeaderSize , sppKeyDeposit = bfgKeyDeposit - , sppPoolDeposit = bfgPoolDeposit + , sppPoolDeposit = toCompactPartial bfgPoolDeposit , sppEMax = bfgEMax , sppNOpt = bfgNOpt , sppA0 = bfgA0 @@ -264,3 +266,17 @@ blockfrostToGenesis (alonzoGenesis', conwayGenesis', shelleyGenesis') Blockfrost , sppMinPoolCost = bfgMinPoolCost } shelleyGenesis = shelleyGenesis'{sgProtocolParams=shelleyParams} + + -- TODO dijkstra: there are no dijkstra params on blockfrost + dijkstraGenesis = dijkstraGenesis' + +-- | Trims cost model to the initial number of parameters. The cost models in geneses can't +-- have more parameters than the initial number. +trimCostModelToInitial :: Language -> CostModel -> CostModel +trimCostModelToInitial lang cm = do + let paramsCount = CostModels.costModelInitParamCount lang + either (error . ("Testnet.Blockfrost: Cost model trimming failure: " <>) . show) id + . CostModels.mkCostModel lang + . take paramsCount + $ CostModels.getCostModelParams cm + diff --git a/cardano-testnet/src/Testnet/Components/Configuration.hs b/cardano-testnet/src/Testnet/Components/Configuration.hs index 200e67138b7..e917b705a2d 100644 --- a/cardano-testnet/src/Testnet/Components/Configuration.hs +++ b/cardano-testnet/src/Testnet/Components/Configuration.hs @@ -9,7 +9,6 @@ module Testnet.Components.Configuration ( createConfigJson , createConfigJsonNoHash , createSPOGenesisAndFiles - , mkTopologyConfig , numSeededUTxOKeys , getByronGenesisHash @@ -29,13 +28,7 @@ import Cardano.Chain.Genesis (GenesisHash (unGenesisHash), readGenesis import qualified Cardano.Crypto.Hash.Blake2b as Crypto import qualified Cardano.Crypto.Hash.Class as Crypto import Cardano.Ledger.BaseTypes (unsafeNonZero) -import Cardano.Network.PeerSelection.Bootstrap -import Cardano.Network.PeerSelection.PeerTrustable -import qualified Cardano.Node.Configuration.Topology as NonP2P -import qualified Cardano.Node.Configuration.TopologyP2P as P2P -import Ouroboros.Network.NodeToNode (DiffusionMode (..)) -import Ouroboros.Network.PeerSelection.LedgerPeers -import Ouroboros.Network.PeerSelection.State.LocalRootPeers +import Cardano.Ledger.Dijkstra.Genesis (DijkstraGenesis) import Control.Exception.Safe (MonadCatch) import Control.Monad @@ -47,9 +40,6 @@ import Data.Aeson.Key hiding (fromString) import Data.Aeson.KeyMap hiding (map) import Data.Bifunctor (first) import qualified Data.ByteString as BS -import qualified Data.ByteString.Lazy as LBS -import qualified Data.List as List -import Data.String import Data.Text (Text) import qualified Data.Text as Text import qualified Data.Time.Clock as DTC @@ -84,12 +74,14 @@ createConfigJson (TmpAbsolutePath tempAbsPath) sbe = GHC.withFrozenCallStack $ d shelleyGenesisHash <- getHash ShelleyEra "ShelleyGenesisHash" alonzoGenesisHash <- getHash AlonzoEra "AlonzoGenesisHash" conwayGenesisHash <- getHash ConwayEra "ConwayGenesisHash" + dijkstraGenesisHash <- getHash DijkstraEra "DijkstraGenesisHash" pure $ mconcat [ byronGenesisHash , shelleyGenesisHash , alonzoGenesisHash , conwayGenesisHash + , dijkstraGenesisHash , Defaults.defaultYamlHardforkViaConfig sbe ] where @@ -146,10 +138,9 @@ getDefaultShelleyGenesis asbe maxSupply opts = do getDefaultAlonzoGenesis :: () => HasCallStack => MonadTest m - => ShelleyBasedEra era - -> m AlonzoGenesis -getDefaultAlonzoGenesis sbe = - H.evalEither $ first prettyError (Defaults.defaultAlonzoGenesis sbe) + => m AlonzoGenesis +getDefaultAlonzoGenesis = + H.evalEither $ first prettyError Defaults.defaultAlonzoGenesis numSeededUTxOKeys :: Int numSeededUTxOKeys = 3 @@ -181,17 +172,18 @@ createSPOGenesisAndFiles { sgSecurityParam = unsafeNonZero 5 , sgUpdateQuorum = 2 } - alonzoGenesis' <- getDefaultAlonzoGenesis sbe + alonzoGenesis' <- getDefaultAlonzoGenesis let conwayGenesis' = Defaults.defaultConwayGenesis + dijkstraGenesis' = dijkstraGenesisDefaults - (alonzoGenesis, conwayGenesis, shelleyGenesis) <- resolveOnChainParams onChainParams - (alonzoGenesis', conwayGenesis', shelleyGenesis') + (shelleyGenesis, alonzoGenesis, conwayGenesis, dijkstraGenesis) <- resolveOnChainParams onChainParams + (shelleyGenesis', alonzoGenesis', conwayGenesis', dijkstraGenesis') -- Write Genesis files to disk, so they can be picked up by create-testnet-data - H.evalIO $ do - LBS.writeFile inputGenesisAlonzoFp $ A.encodePretty alonzoGenesis - LBS.writeFile inputGenesisConwayFp $ A.encodePretty conwayGenesis - LBS.writeFile inputGenesisShelleyFp $ A.encodePretty shelleyGenesis + H.lbsWriteFile inputGenesisAlonzoFp $ A.encodePretty alonzoGenesis + H.lbsWriteFile inputGenesisConwayFp $ A.encodePretty conwayGenesis + H.lbsWriteFile inputGenesisShelleyFp $ A.encodePretty shelleyGenesis + H.lbsWriteFile inputGenesisDijkstraFp $ A.encodePretty dijkstraGenesis H.note_ $ "Number of pools: " <> show nPoolNodes H.note_ $ "Number of stake delegators: " <> show numStakeDelegators @@ -207,6 +199,7 @@ createSPOGenesisAndFiles ++ createTestnetDataFlag ShelleyEra ++ createTestnetDataFlag AlonzoEra ++ createTestnetDataFlag ConwayEra + ++ createTestnetDataFlag DijkstraEra ++ [ "--testnet-magic", show genesisTestnetMagic , "--pools", show nPoolNodes @@ -233,6 +226,7 @@ createSPOGenesisAndFiles inputGenesisShelleyFp = genesisInputFilepath ShelleyEra inputGenesisAlonzoFp = genesisInputFilepath AlonzoEra inputGenesisConwayFp = genesisInputFilepath ConwayEra + inputGenesisDijkstraFp = genesisInputFilepath DijkstraEra nPoolNodes = cardanoNumPools testnetOptions CardanoTestnetOptions{cardanoNodeEra, cardanoMaxSupply, cardanoNumDReps} = testnetOptions genesisInputFilepath :: Pretty (eon era) => eon era -> FilePath @@ -241,60 +235,14 @@ createSPOGenesisAndFiles createTestnetDataFlag sbe = ["--spec-" ++ eraToString sbe, genesisInputFilepath sbe] -ifaceAddress :: String -ifaceAddress = "127.0.0.1" - --- TODO: Reconcile all other mkTopologyConfig functions. NB: We only intend --- to support current era on mainnet and the upcoming era. -mkTopologyConfig :: Int -> [Int] -> Int -> Bool -> LBS.ByteString -mkTopologyConfig numNodes allPorts port False = A.encodePretty topologyNonP2P - where - topologyNonP2P :: NonP2P.NetworkTopology NonP2P.RemoteAddress - topologyNonP2P = - NonP2P.RealNodeTopology - [ NonP2P.RemoteAddress (fromString ifaceAddress) - (fromIntegral peerPort) - (numNodes - 1) - | peerPort <- allPorts List.\\ [port] - ] -mkTopologyConfig numNodes allPorts port True = A.encodePretty topologyP2P - where - rootConfig :: P2P.RootConfig RelayAccessPoint - rootConfig = - P2P.RootConfig - [ RelayAccessAddress (fromString ifaceAddress) - (fromIntegral peerPort) - | peerPort <- allPorts List.\\ [port] - ] - P2P.DoNotAdvertisePeer - - localRootPeerGroups :: P2P.LocalRootPeersGroups RelayAccessPoint - localRootPeerGroups = - P2P.LocalRootPeersGroups - [ P2P.LocalRootPeersGroup rootConfig - (HotValency (numNodes - 1)) - (WarmValency (numNodes - 1)) - IsNotTrustable - InitiatorAndResponderDiffusionMode - ] - - topologyP2P :: P2P.NetworkTopology RelayAccessPoint - topologyP2P = - P2P.RealNodeTopology - localRootPeerGroups - [] - DontUseLedgerPeers - DontUseBootstrapPeers - Nothing - -- | Resolves different kinds of user-provided on-chain parameters -- into a unified, consistent set of Genesis files resolveOnChainParams :: () => (MonadTest m, MonadIO m) => HasCallStack => TestnetOnChainParams - -> (AlonzoGenesis, ConwayGenesis, ShelleyGenesis) - -> m (AlonzoGenesis, ConwayGenesis, ShelleyGenesis) + -> (ShelleyGenesis, AlonzoGenesis, ConwayGenesis, DijkstraGenesis) + -> m (ShelleyGenesis, AlonzoGenesis, ConwayGenesis, DijkstraGenesis) resolveOnChainParams onChainParams geneses = case onChainParams of DefaultParams -> pure geneses diff --git a/cardano-testnet/src/Testnet/Components/Query.hs b/cardano-testnet/src/Testnet/Components/Query.hs index d3c75246318..005e99ac7f1 100644 --- a/cardano-testnet/src/Testnet/Components/Query.hs +++ b/cardano-testnet/src/Testnet/Components/Query.hs @@ -39,7 +39,7 @@ module Testnet.Components.Query , getProtocolParams , getGovActionLifetime , getKeyDeposit - , getDelegationState + , getAccountsStates , getTxIx ) where @@ -50,10 +50,11 @@ import qualified Cardano.Api.UTxO as Utxo import Cardano.Ledger.Api (ConwayGovState) import qualified Cardano.Ledger.Api as L +import qualified Cardano.Ledger.Api.State.Query as SQ import qualified Cardano.Ledger.Conway.Governance as L import qualified Cardano.Ledger.Conway.PParams as L import qualified Cardano.Ledger.Shelley.LedgerState as L -import qualified Cardano.Ledger.UMap as L +import qualified Cardano.Ledger.State as L import Prelude @@ -67,6 +68,7 @@ import qualified Data.Map as Map import Data.Map.Strict (Map) import Data.Maybe import Data.Ord (Down (..)) +import qualified Data.Set as Set import Data.Text (Text) import qualified Data.Text as T import Data.Type.Equality @@ -409,12 +411,9 @@ checkDRepState epochStateView@EpochStateView{nodeConfigPath, socketPath} sbe f = result <- H.evalIO . runExceptT $ foldEpochState nodeConfigPath socketPath QuickValidation terminationEpoch Nothing $ \(AnyNewEpochState actualEra newEpochState _) _slotNumber _blockNumber -> do Refl <- either error pure $ assertErasEqual sbe actualEra - let dreps = shelleyBasedEraConstraints sbe newEpochState - ^. L.nesEsL - . L.esLStateL - . L.lsCertStateL - . L.certVStateL - . L.vsDRepsL + let dreps = + shelleyBasedEraConstraints sbe + $ SQ.queryDRepState newEpochState Set.empty case f dreps of Nothing -> pure ConditionNotMet Just a -> do put $ Just a @@ -468,7 +467,7 @@ getTreasuryValue -> m L.Coin -- ^ The current value of the treasury getTreasuryValue epochStateView = withFrozenCallStack $ do AnyNewEpochState _ newEpochState _ <- getEpochState epochStateView - pure $ newEpochState ^. L.nesEpochStateL . L.epochStateTreasuryL + pure $ newEpochState ^. L.nesEpochStateL . L.treasuryL -- | Obtain minimum deposit amount for governance action from node getMinGovActionDeposit @@ -591,20 +590,21 @@ getKeyDeposit epochStateView ceo = conwayEraOnwardsConstraints ceo $ do . L.ppKeyDepositL --- | Returns delegation state from the epoch state. -getDelegationState :: (H.MonadAssertion m, MonadTest m, MonadIO m) +-- | Returns staking accounts state +getAccountsStates :: (H.MonadAssertion m, MonadTest m, MonadIO m) => EpochStateView - -> m L.StakeCredentials -getDelegationState epochStateView = do + -> ShelleyBasedEra era + -> m (Map (L.Credential L.Staking) (L.AccountState (ShelleyLedgerEra era))) +getAccountsStates epochStateView sbe' = shelleyBasedEraConstraints sbe' $ do AnyNewEpochState sbe newEpochState _ <- getEpochState epochStateView - let pools = shelleyBasedEraConstraints sbe $ newEpochState - ^. L.nesEsL - . L.esLStateL - . L.lsCertStateL - . L.certDStateL - . L.dsUnifiedL - - pure $ L.toStakeCredentials pools + Refl <- H.nothingFail $ testEquality sbe sbe' + pure $ newEpochState + ^. L.nesEsL + . L.esLStateL + . L.lsCertStateL + . L.certDStateL + . L.accountsL + . L.accountsMapL -- | Returns the transaction index of a transaction with a given amount and ID. getTxIx :: forall m era. HasCallStack diff --git a/cardano-testnet/src/Testnet/Defaults.hs b/cardano-testnet/src/Testnet/Defaults.hs index d8e74829c58..4a3bffc76b9 100644 --- a/cardano-testnet/src/Testnet/Defaults.hs +++ b/cardano-testnet/src/Testnet/Defaults.hs @@ -42,7 +42,7 @@ module Testnet.Defaults ) where import Cardano.Api (AnyShelleyBasedEra (..), CardanoEra (..), File (..), - ShelleyBasedEra (..), pshow, toCardanoEra, unsafeBoundedRational) + ShelleyBasedEra (..), pshow, unsafeBoundedRational) import qualified Cardano.Api as Api import Cardano.Ledger.Alonzo.Core (PParams (..)) @@ -53,22 +53,24 @@ import qualified Cardano.Ledger.BaseTypes as Ledger import Cardano.Ledger.Binary.Version () import Cardano.Ledger.Coin import Cardano.Ledger.Conway.Genesis +import qualified Cardano.Ledger.Conway.Genesis as Ledger import Cardano.Ledger.Conway.PParams +import qualified Cardano.Ledger.Conway.PParams as Ledger import qualified Cardano.Ledger.Core as Ledger import qualified Cardano.Ledger.Plutus as Ledger import qualified Cardano.Ledger.Shelley as Ledger import Cardano.Ledger.Shelley.Genesis import Cardano.Network.PeerSelection.Bootstrap (UseBootstrapPeers (..)) import Cardano.Network.PeerSelection.PeerTrustable (PeerTrustable (..)) -import qualified Cardano.Node.Configuration.Topology as Topology -import Cardano.Node.Configuration.Topology (RemoteAddress(..)) -import qualified Cardano.Node.Configuration.TopologyP2P as P2P -import Cardano.Node.Configuration.TopologyP2P (LocalRootPeersGroups (..), - LocalRootPeersGroup (..), NetworkTopology(..), PublicRootPeers (..), +import Cardano.Node.Configuration.TopologyP2P (LocalRootPeersGroup (..), + LocalRootPeersGroups (..), NetworkTopology (..), PublicRootPeers (..), RootConfig (..)) +import qualified Cardano.Node.Configuration.TopologyP2P as P2P +import qualified Cardano.Node.Configuration.TopologyP2P as Topology import Cardano.Tracing.Config -import Ouroboros.Network.NodeToNode (DiffusionMode (..), PeerAdvertise (..)) -import Ouroboros.Network.PeerSelection.LedgerPeers.Type (UseLedgerPeers (..)) +import Ouroboros.Network.NodeToNode (DiffusionMode (..)) +import Ouroboros.Network.PeerSelection (AfterSlot (..), PeerAdvertise (..), + RelayAccessPoint (..), UseLedgerPeers (..)) import Ouroboros.Network.PeerSelection.State.LocalRootPeers (HotValency (..), WarmValency (..)) @@ -95,7 +97,6 @@ import Numeric.Natural import System.FilePath (()) import Test.Cardano.Ledger.Core.Rational -import Test.Cardano.Ledger.Plutus (testingCostModelV3) import Testnet.Start.Types import Testnet.Types @@ -107,9 +108,9 @@ newtype AlonzoGenesisError = AlonzoGenErrTooMuchPrecision Rational deriving Show -defaultAlonzoGenesis :: ShelleyBasedEra era -> Either AlonzoGenesisError AlonzoGenesis -defaultAlonzoGenesis sbe = do - let genesis = Api.alonzoGenesisDefaults (toCardanoEra sbe) +defaultAlonzoGenesis :: Either AlonzoGenesisError AlonzoGenesis +defaultAlonzoGenesis = do + let genesis = Api.alonzoGenesisDefaults prices = Ledger.agPrices genesis -- double check that prices have correct values - they're set using unsafeBoundedRational in cardano-api @@ -126,7 +127,9 @@ defaultAlonzoGenesis sbe = do Just s -> return s defaultConwayGenesis :: ConwayGenesis -defaultConwayGenesis = +defaultConwayGenesis = do + -- use the cost model from cardano-api, which is trimmed to the correct number of parameters + let ucppPlutusV3CostModel = Ledger.ucppPlutusV3CostModel $ Ledger.cgUpgradePParams Api.conwayGenesisDefaults let upPParams :: UpgradeConwayPParams Identity upPParams = UpgradeConwayPParams { ucppPoolVotingThresholds = poolVotingThresholds @@ -137,8 +140,8 @@ defaultConwayGenesis = , ucppGovActionDeposit = Coin 1_000_000 , ucppDRepDeposit = Coin 1_000_000 , ucppDRepActivity = EpochInterval 100 - , ucppMinFeeRefScriptCostPerByte = 0 %! 1 -- FIXME GARBAGE VALUE - , ucppPlutusV3CostModel = testingCostModelV3 + , ucppMinFeeRefScriptCostPerByte = 15 %! 1 + , ucppPlutusV3CostModel } drepVotingThresholds = DRepVotingThresholds { dvtMotionNoConfidence = 0 %! 1 @@ -159,7 +162,7 @@ defaultConwayGenesis = , pvtHardForkInitiation = 1 %! 2 , pvtPPSecurityGroup = 1 %! 2 } - in ConwayGenesis + ConwayGenesis { cgUpgradePParams = upPParams , cgConstitution = DefaultClass.def , cgCommittee = DefaultClass.def @@ -197,6 +200,7 @@ defaultYamlHardforkViaConfig sbe = ShelleyBasedEraAlonzo -> ("LastKnownBlockVersion-Major", Aeson.Number 5) ShelleyBasedEraBabbage -> ("LastKnownBlockVersion-Major", Aeson.Number 8) ShelleyBasedEraConway -> ("LastKnownBlockVersion-Major", Aeson.Number 9) + ShelleyBasedEraDijkstra -> ("LastKnownBlockVersion-Major", Aeson.Number 10) , ("LastKnownBlockVersion-Minor", Aeson.Number 0) , ("LastKnownBlockVersion-Alt", Aeson.Number 0) ] @@ -241,7 +245,17 @@ defaultYamlHardforkViaConfig sbe = , ("TestAlonzoHardForkAtEpoch", Aeson.Number 0) , ("TestBabbageHardForkAtEpoch", Aeson.Number 0) , ("TestConwayHardForkAtEpoch", Aeson.Number 0) - ]) + ] + ShelleyBasedEraDijkstra -> + [ ("TestShelleyHardForkAtEpoch", Aeson.Number 0) + , ("TestAllegraHardForkAtEpoch", Aeson.Number 0) + , ("TestMaryHardForkAtEpoch", Aeson.Number 0) + , ("TestAlonzoHardForkAtEpoch", Aeson.Number 0) + , ("TestBabbageHardForkAtEpoch", Aeson.Number 0) + , ("TestConwayHardForkAtEpoch", Aeson.Number 0) + , ("TestDijkstraHardForkAtEpoch", Aeson.Number 0) + ] + ) -- | Various tracers we can turn on or off tracers :: Aeson.KeyMap Aeson.Value tracers = Aeson.fromList $ map (bimap Aeson.fromText Aeson.Bool) @@ -313,12 +327,14 @@ defaultYamlConfig = , ("ShelleyGenesisFile", genesisPath ShelleyEra) , ("AlonzoGenesisFile", genesisPath AlonzoEra) , ("ConwayGenesisFile", genesisPath ConwayEra) + , ("DijkstraGenesisFile", genesisPath DijkstraEra) -- See: https://github.com/input-output-hk/cardano-ledger/blob/master/eras/byron/ledger/impl/doc/network-magic.md , ("RequiresNetworkMagic", "RequiresMagic") - -- Enable peer to peer discovery - , ("EnableP2P", Aeson.Bool False) + -- Enable P2P, non-P2P is gone + , ("EnableP2P", Aeson.Bool True) + , ("PeerSharing", Aeson.Bool False) -- Logging related , ("setupScribes", setupScribes) @@ -434,6 +450,7 @@ eraToProtocolVersion = AnyShelleyBasedEra ShelleyBasedEraBabbage -> mkProtVer (8, 0) -- By default start after bootstrap (which is PV9) AnyShelleyBasedEra ShelleyBasedEraConway -> mkProtVer (10, 0) + AnyShelleyBasedEra ShelleyBasedEraDijkstra -> mkProtVer (12, 0) -- TODO: Expose from cardano-api mkProtVer :: (Natural, Natural) -> ProtVer @@ -443,16 +460,30 @@ mkProtVer (majorProtVer, minorProtVer) = Nothing -> error "mkProtVer: invalid protocol version" ppProtocolVersionL' :: Lens' (PParams Ledger.ShelleyEra) ProtVer -ppProtocolVersionL' = Ledger.ppLens . Ledger.hkdProtocolVersionL @Ledger.ShelleyEra @Identity +ppProtocolVersionL' = Ledger.ppLensHKD . Ledger.hkdProtocolVersionL @Ledger.ShelleyEra @Identity -defaultMainnetTopology :: Topology.NetworkTopology RemoteAddress +defaultMainnetTopology :: Topology.NetworkTopology RelayAccessPoint defaultMainnetTopology = - let single = RemoteAddress - { raAddress = "relays-new.cardano-mainnet.iohk.io" - , raPort = 3_001 - , raValency = 2 - } - in Topology.RealNodeTopology [single] + Topology.RealNodeTopology { + ntLocalRootPeersGroups = LocalRootPeersGroups [ + LocalRootPeersGroup { + localRoots = RootConfig { + rootAccessPoints = + [ RelayAccessDomain "relays-new.cardano-mainnet.iohk.io" 3_001 + ], + rootAdvertise = DoAdvertisePeer + }, + hotValency = 2, + warmValency = 2, + trustable = IsTrustable, + rootDiffusionMode = InitiatorAndResponderDiffusionMode + } + ], + ntPublicRootPeers = [], + ntUseLedgerPeers = UseLedgerPeers Always, + ntUseBootstrapPeers = DontUseBootstrapPeers, + ntPeerSnapshotPath = Nothing + } defaultGenesisFilepath :: CardanoEra a -> FilePath defaultGenesisFilepath era = @@ -583,8 +614,8 @@ defaultP2PTopology addresses = P2P.RealNodeTopology { rootAccessPoints = addresses , rootAdvertise = DoNotAdvertisePeer } - , hotValency = HotValency 1 - , warmValency = WarmValency 1 + , hotValency = HotValency $ length addresses + , warmValency = WarmValency $ length addresses , trustable = IsTrustable , rootDiffusionMode = InitiatorAndResponderDiffusionMode } diff --git a/cardano-testnet/src/Testnet/Ping.hs b/cardano-testnet/src/Testnet/Ping.hs index 5f54fb62e5a..331e04f9606 100644 --- a/cardano-testnet/src/Testnet/Ping.hs +++ b/cardano-testnet/src/Testnet/Ping.hs @@ -80,10 +80,10 @@ pingNode networkMagic sprocket = liftIO $ bracket Socket.connect sd (Socket.addrAddress peer) peerStr <- peerString - bearer <- getBearer makeSocketBearer sduTimeout nullTracer sd Nothing + bearer <- getBearer makeSocketBearer sduTimeout sd Nothing let versions = supportedNodeToClientVersions networkMagic - !_ <- Mux.write bearer timeoutfn $ wrap handshakeNum InitiatorDir (handshakeReq versions doHandshakeQuery) + !_ <- Mux.write bearer nullTracer timeoutfn $ wrap handshakeNum InitiatorDir (handshakeReq versions doHandshakeQuery) (msg, !_) <- nextMsg bearer timeoutfn handshakeNum pure $ case CBOR.deserialiseFromBytes handshakeDec msg of @@ -130,7 +130,7 @@ pingNode networkMagic sprocket = liftIO $ bracket -> MiniProtocolNum -- ^ handshake protocol number -> IO (LBS.ByteString, Time) -- ^ raw message and timestamp nextMsg bearer timeoutfn ptclNum = do - (sdu, t_e) <- Mux.read bearer timeoutfn + (sdu, t_e) <- Mux.read bearer nullTracer timeoutfn if mhNum (msHeader sdu) == ptclNum then pure (msBlob sdu, t_e) else nextMsg bearer timeoutfn ptclNum diff --git a/cardano-testnet/src/Testnet/Process/Cli/SPO.hs b/cardano-testnet/src/Testnet/Process/Cli/SPO.hs index fa96f010bd3..a5856dc6fc2 100644 --- a/cardano-testnet/src/Testnet/Process/Cli/SPO.hs +++ b/cardano-testnet/src/Testnet/Process/Cli/SPO.hs @@ -18,9 +18,8 @@ module Testnet.Process.Cli.SPO import Cardano.Api hiding (cardanoEra) import qualified Cardano.Api.Ledger as L -import qualified Cardano.Ledger.Api.State.Query as L import qualified Cardano.Ledger.Shelley.LedgerState as L -import qualified Cardano.Ledger.UMap as L +import qualified Cardano.Ledger.State as L import Control.Monad import Control.Monad.Catch (MonadCatch) @@ -130,30 +129,52 @@ checkStakeKeyRegistered tempAbsP nodeConfigFile sPath terminationEpoch execConfi ] where handler :: StakeAddress -> AnyNewEpochState -> SlotNo -> BlockNo -> StateT DelegationsAndRewards IO ConditionResult - handler (StakeAddress network sCred) (AnyNewEpochState sbe newEpochState _) _ _ = - let umap = shelleyBasedEraConstraints sbe $ newEpochState ^. L.nesEsL . L.epochStateUMapL - dag = L.filterStakePoolDelegsAndRewards umap $ Set.singleton sCred - allStakeCredentials = umap ^. L.umElemsL -- This does not include pointer addresses - delegsAndRewards = shelleyBasedEraConstraints sbe $ toDelegationsAndRewards network sbe dag - in case Map.lookup sCred allStakeCredentials of - Nothing -> return ConditionNotMet - Just _ -> StateT.put delegsAndRewards >> return ConditionMet + handler (StakeAddress network sCred) (AnyNewEpochState sbe newEpochState _) _ _ = shelleyBasedEraConstraints sbe $ do + let accountsMap = newEpochState + ^. L.nesEsL + . L.esLStateL + . L.lsCertStateL + . L.certDStateL + . L.accountsL + . L.accountsMapL + + case Map.lookup sCred accountsMap of + Nothing -> pure ConditionNotMet + Just _ -> do + StateT.put $ toDelegationsAndRewards sbe network accountsMap + pure ConditionMet toDelegationsAndRewards - :: L.Network - -> ShelleyBasedEra era - -> (Map (L.Credential L.Staking) (L.KeyHash L.StakePool), Map (L.Credential 'L.Staking) L.Coin) + :: ShelleyBasedEra era + -> L.Network + -> Map (L.Credential L.Staking) (L.AccountState (ShelleyLedgerEra era)) -> DelegationsAndRewards - toDelegationsAndRewards n _ (delegationMap, rewardsMap) = - let apiDelegationMap = Map.map toApiPoolId $ Map.mapKeys (toApiStakeAddress n) delegationMap - apiRewardsMap = Map.mapKeys (toApiStakeAddress n) rewardsMap - in DelegationsAndRewards (apiRewardsMap, apiDelegationMap) + toDelegationsAndRewards sbe n accountsMap = do + let accountsMap' = Map.mapKeys (toApiStakeAddress n) accountsMap + let apiDelegationMap = Map.mapMaybe (toApiPoolId sbe) accountsMap' + apiRewardsMap = Map.map (toBalance sbe) accountsMap' + DelegationsAndRewards (apiRewardsMap, apiDelegationMap) + + toApiPoolId :: ShelleyBasedEra era + -> L.AccountState (ShelleyLedgerEra era) + -> Maybe PoolId + toApiPoolId sbe accountState = + fmap StakePoolKeyHash $ + shelleyBasedEraConstraints sbe $ + accountState ^. L.stakePoolDelegationAccountStateL + + + toBalance :: ShelleyBasedEra era + -> L.AccountState (ShelleyLedgerEra era) + -> L.Coin + toBalance sbe accountState = + shelleyBasedEraConstraints sbe $ + accountState ^. L.balanceAccountStateL . to L.fromCompact + toApiStakeAddress :: L.Network -> L.Credential 'L.Staking -> StakeAddress toApiStakeAddress = StakeAddress -toApiPoolId :: L.KeyHash L.StakePool -> PoolId -toApiPoolId = StakePoolKeyHash createStakeDelegationCertificate :: (MonadTest m, MonadCatch m, MonadIO m, HasCallStack) @@ -397,7 +418,7 @@ registerSingleSpo asbe identifier tap@(TmpAbsolutePath tempAbsPath') nodeConfigF ] -- Check the pledger/owner stake key was registered - delegsAndRewards <- + _ <- checkStakeKeyRegistered tap nodeConfigFile @@ -407,10 +428,6 @@ registerSingleSpo asbe identifier tap@(TmpAbsolutePath tempAbsPath') nodeConfigF poolownerstakeaddr ("spo-"<> show identifier <> "-requirements" "pledger.stake.info") - (pledgerSAddr, _rewards, _poolId) <- H.headM $ mergeDelegsAndRewards delegsAndRewards - - -- Pledger and owner are and can be the same - Text.unpack (serialiseAddress pledgerSAddr) === poolownerstakeaddr let currentRegistedPoolsJson = workDir "current-registered.pools.json" poolId <- checkStakePoolRegistered diff --git a/cardano-testnet/src/Testnet/Property/Assert.hs b/cardano-testnet/src/Testnet/Property/Assert.hs index 37095dcb008..d0afb649daf 100644 --- a/cardano-testnet/src/Testnet/Property/Assert.hs +++ b/cardano-testnet/src/Testnet/Property/Assert.hs @@ -1,6 +1,7 @@ {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE GADTs #-} +{-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE NumericUnderscores #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeApplications #-} @@ -42,6 +43,7 @@ import GHC.Stack as GHC import Testnet.Process.Run import Testnet.Start.Types +import Testnet.Types import Hedgehog (MonadTest) import qualified Hedgehog as H @@ -110,13 +112,13 @@ assertChainExtended => MonadIO m => DTC.UTCTime -> NodeLoggingFormat - -> FilePath + -> TestnetNode -> m () -assertChainExtended deadline nodeLoggingFormat nodeStdoutFile = withFrozenCallStack $ - assertByDeadlineIOCustom "Chain not extended" deadline $ do +assertChainExtended deadline nodeLoggingFormat TestnetNode{nodeName, nodeStdout} = withFrozenCallStack $ + assertByDeadlineIOCustom ("Chain not extended in " <> nodeName) deadline $ do case nodeLoggingFormat of - NodeLoggingFormatAsText -> IO.fileContains "Chain extended, new tip" nodeStdoutFile - NodeLoggingFormatAsJson -> fileJsonGrep nodeStdoutFile $ \v -> + NodeLoggingFormatAsText -> IO.fileContains "Chain extended, new tip" nodeStdout + NodeLoggingFormatAsJson -> fileJsonGrep nodeStdout $ \v -> Aeson.parseMaybe (Aeson.parseJSON @(LogEntry Kind)) v == Just (LogEntry (Kind "AddedToCurrentChain")) newtype LogEntry a = LogEntry diff --git a/cardano-testnet/src/Testnet/Start/Cardano.hs b/cardano-testnet/src/Testnet/Start/Cardano.hs index bb3ddea34c9..75a013e7b15 100644 --- a/cardano-testnet/src/Testnet/Start/Cardano.hs +++ b/cardano-testnet/src/Testnet/Start/Cardano.hs @@ -30,11 +30,9 @@ import Cardano.Api import Cardano.Api.Byron (GenesisData (..)) import qualified Cardano.Api.Byron as Byron -import Cardano.Node.Configuration.Topology (RemoteAddress(..)) -import qualified Cardano.Node.Configuration.Topology as Direct import qualified Cardano.Node.Configuration.TopologyP2P as P2P import Cardano.Prelude (canonicalEncodePretty) -import Ouroboros.Network.PeerSelection.RelayAccessPoint (RelayAccessPoint(..)) +import Ouroboros.Network.PeerSelection.RelayAccessPoint (RelayAccessPoint (..)) import Prelude hiding (lines) @@ -42,7 +40,6 @@ import Control.Concurrent (threadDelay) import Control.Monad import Data.Aeson import qualified Data.Aeson.Encode.Pretty as A -import qualified Data.Aeson.KeyMap as A import qualified Data.ByteString.Lazy as LBS import Data.Default.Class (def) import Data.Either @@ -98,7 +95,6 @@ createTestnetEnv genesisOptions CreateEnvOptions { ceoOnChainParams=onChainParams - , ceoTopologyType=topologyType } Conf { genesisHashesPolicy @@ -114,14 +110,10 @@ createTestnetEnv configurationFile <- H.noteShow $ tmpAbsPath "configuration.yaml" -- Add Byron, Shelley and Alonzo genesis hashes to node configuration - config' <- case genesisHashesPolicy of + config <- case genesisHashesPolicy of WithHashes -> createConfigJson (TmpAbsolutePath tmpAbsPath) sbe WithoutHashes -> pure $ createConfigJsonNoHash sbe -- Setup P2P configuration value - let config = A.insert - "EnableP2P" - (Bool $ topologyType == P2PTopology) - config' H.evalIO $ LBS.writeFile configurationFile $ A.encodePretty $ Object config -- Create network topology, with abstract IDs in lieu of addresses @@ -131,13 +123,8 @@ createTestnetEnv H.evalIO $ IO.createDirectoryIfMissing True nodeDataDir let producers = NodeId <$> filter (/= i) nodeIds - case topologyType of - DirectTopology -> - let topology = Direct.RealNodeTopology producers - in H.lbsWriteFile (nodeDataDir "topology.json") $ A.encodePretty topology - P2PTopology -> - let topology = Defaults.defaultP2PTopology producers - in H.lbsWriteFile (nodeDataDir "topology.json") $ A.encodePretty topology + topology = Defaults.defaultP2PTopology producers + H.lbsWriteFile (nodeDataDir "topology.json") $ A.encodePretty topology -- | Starts a number of nodes, as configured by the value of the 'cardanoNodes' -- field in the 'CardanoTestnetOptions' argument. Regarding this field, you can either: @@ -260,19 +247,6 @@ cardanoTestnet H.writeFile (nodeDataDir "port") (show portNumber) let - idToRemoteAddressDirect :: () - => MonadTest m - => HasCallStack - => NodeId -> m RemoteAddress - idToRemoteAddressDirect (NodeId i) = case lookup i portNumbers of - Just port -> pure $ RemoteAddress - { raAddress = showIpv4Address testnetDefaultIpv4Address - , raPort = port - , raValency = 1 - } - Nothing -> do - H.note_ $ "Found node id that was unaccounted for: " ++ show i - H.failure idToRemoteAddressP2P :: () => MonadTest m => HasCallStack @@ -291,19 +265,14 @@ cardanoTestnet -- Try to decode either a direct topology file, or a P2P one H.readJsonFile topologyPath >>= \case - Right (abstractTopology :: Direct.NetworkTopology NodeId) -> do - topology <- mapM idToRemoteAddressDirect abstractTopology + Right (abstractTopology :: P2P.NetworkTopology NodeId) -> do + topology <- mapM idToRemoteAddressP2P abstractTopology H.lbsWriteFile topologyPath $ encode topology - Left _ -> - H.readJsonFile topologyPath >>= \case - Right (abstractTopology :: P2P.NetworkTopology NodeId) -> do - topology <- mapM idToRemoteAddressP2P abstractTopology - H.lbsWriteFile topologyPath $ encode topology - Left e -> - -- There can be multiple reasons for why both decodings have failed. - -- Here we assume, very optimistically, that the user has already - -- instantiated it with a concrete topology file. - H.note_ $ "Could not decode topology file. This may be okay. Reason for decoding failure is:\n" ++ e + Left e -> + -- There can be multiple reasons for why both decodings have failed. + -- Here we assume, very optimistically, that the user has already + -- instantiated it with a concrete topology file. + H.note_ $ "Could not decode topology file. This may be okay. Reason for decoding failure is:\n" ++ e -- If necessary, update the time stamps in Byron and Shelley Genesis files. -- This is a QoL feature so that users who edit their configuration files don't @@ -364,8 +333,8 @@ cardanoTestnet -- FIXME: use foldEpochState waiting for chain extensions now <- H.noteShowIO DTC.getCurrentTime deadline <- H.noteShow $ DTC.addUTCTime 45 now - forM_ (map nodeStdout testnetNodes') $ \nodeStdoutFile -> do - assertChainExtended deadline nodeLoggingFormat nodeStdoutFile + forM_ testnetNodes' $ \node -> do + assertChainExtended deadline nodeLoggingFormat node H.noteShowIO_ DTC.getCurrentTime diff --git a/cardano-testnet/src/Testnet/Start/Types.hs b/cardano-testnet/src/Testnet/Start/Types.hs index b9e557be742..38e10048787 100644 --- a/cardano-testnet/src/Testnet/Start/Types.hs +++ b/cardano-testnet/src/Testnet/Start/Types.hs @@ -30,7 +30,6 @@ module Testnet.Start.Types , isRelayNodeOptions , cardanoDefaultTestnetNodeOptions , GenesisOptions(..) - , TopologyType(..) , UserProvidedData(..) , UserProvidedEnv(..) , UserProvidedGeneses(..) @@ -44,6 +43,7 @@ module Testnet.Start.Types ) where import Cardano.Api hiding (cardanoEra) + import Cardano.Ledger.Alonzo.Genesis (AlonzoGenesis) import Cardano.Ledger.Conway.Genesis (ConwayGenesis) @@ -96,30 +96,18 @@ data UserProvidedEnv instance Default UserProvidedEnv where def = NoUserProvidedEnv -data TopologyType - = DirectTopology - | P2PTopology - deriving (Eq, Show) - -instance Default TopologyType where - def = DirectTopology - data UpdateTimestamps = UpdateTimestamps | DontUpdateTimestamps deriving (Eq, Show) instance Default UpdateTimestamps where def = DontUpdateTimestamps -data CreateEnvOptions = CreateEnvOptions +newtype CreateEnvOptions = CreateEnvOptions { ceoOnChainParams :: TestnetOnChainParams - , ceoTopologyType :: TopologyType } deriving (Eq, Show) instance Default CreateEnvOptions where - def = CreateEnvOptions - { ceoOnChainParams = def - , ceoTopologyType = def - } + def = CreateEnvOptions { ceoOnChainParams = def } data TestnetOnChainParams = DefaultParams diff --git a/cardano-testnet/src/Testnet/Types.hs b/cardano-testnet/src/Testnet/Types.hs index 1330b2e3dcb..700be30a088 100644 --- a/cardano-testnet/src/Testnet/Types.hs +++ b/cardano-testnet/src/Testnet/Types.hs @@ -209,7 +209,7 @@ getStartTime getStartTime tempRootPath TestnetRuntime{configurationFile} = withFrozenCallStack $ H.evalEither <=< H.evalIO . runExceptT $ do byronGenesisFile <- decodeNodeConfiguration configurationFile >>= \case - NodeProtocolConfigurationCardano NodeByronProtocolConfiguration{npcByronGenesisFile} _ _ _ _ _ -> + NodeProtocolConfigurationCardano NodeByronProtocolConfiguration{npcByronGenesisFile} _ _ _ _ _ _ -> pure $ unGenesisFile npcByronGenesisFile let byronGenesisFilePath = tempRootPath byronGenesisFile SystemStart . G.gdStartTime . G.configGenesisData <$> decodeGenesisFile byronGenesisFilePath diff --git a/cardano-testnet/test/cardano-testnet-golden/files/golden/help.cli b/cardano-testnet/test/cardano-testnet-golden/files/golden/help.cli index 860ba57b619..3df7e1f1741 100644 --- a/cardano-testnet/test/cardano-testnet-golden/files/golden/help.cli +++ b/cardano-testnet/test/cardano-testnet-golden/files/golden/help.cli @@ -27,7 +27,6 @@ Usage: cardano-testnet create-env [--num-pool-nodes COUNT] [--active-slots-coeff DOUBLE] --output DIRECTORY [--params-file FILEPATH | --params-mainnet] - [--p2p-topology] Create a sandbox for Cardano testnet diff --git a/cardano-testnet/test/cardano-testnet-golden/files/golden/help/create-env.cli b/cardano-testnet/test/cardano-testnet-golden/files/golden/help/create-env.cli index 312f6c5e18c..19b49cfa444 100644 --- a/cardano-testnet/test/cardano-testnet-golden/files/golden/help/create-env.cli +++ b/cardano-testnet/test/cardano-testnet-golden/files/golden/help/create-env.cli @@ -10,7 +10,6 @@ Usage: cardano-testnet create-env [--num-pool-nodes COUNT] [--active-slots-coeff DOUBLE] --output DIRECTORY [--params-file FILEPATH | --params-mainnet] - [--p2p-topology] Create a sandbox for Cardano testnet @@ -46,6 +45,4 @@ Available options: Blockfrost format: https://docs.blockfrost.io/#tag/cardano--epochs/GET/epochs/latest/parameters --params-mainnet Use mainnet on-chain parameters - --p2p-topology Use P2P topology files instead of "direct" topology - files -h,--help Show this help text diff --git a/cardano-testnet/test/cardano-testnet-golden/files/golden/node_default_config.json b/cardano-testnet/test/cardano-testnet-golden/files/golden/node_default_config.json index 6da59b1b9e5..f13a6d46616 100644 --- a/cardano-testnet/test/cardano-testnet-golden/files/golden/node_default_config.json +++ b/cardano-testnet/test/cardano-testnet-golden/files/golden/node_default_config.json @@ -2,9 +2,10 @@ "AlonzoGenesisFile": "alonzo-genesis.json", "ByronGenesisFile": "byron-genesis.json", "ConwayGenesisFile": "conway-genesis.json", + "DijkstraGenesisFile": "dijkstra-genesis.json", "EnableLogMetrics": false, "EnableLogging": true, - "EnableP2P": false, + "EnableP2P": true, "ExperimentalHardForksEnabled": true, "ExperimentalProtocolsEnabled": true, "LastKnownBlockVersion-Alt": 0, @@ -13,6 +14,7 @@ "MaxConcurrencyBulkSync": 1, "MaxConcurrencyDeadline": 2, "PBftSignatureThreshold": 0.6, + "PeerSharing": false, "Protocol": "Cardano", "RequiresNetworkMagic": "RequiresMagic", "ShelleyGenesisFile": "shelley-genesis.json", diff --git a/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Api/TxReferenceInputDatum.hs b/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Api/TxReferenceInputDatum.hs index 6b937ec4cf3..3aa0e5b1a3b 100644 --- a/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Api/TxReferenceInputDatum.hs +++ b/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Api/TxReferenceInputDatum.hs @@ -131,7 +131,7 @@ hprop_tx_refin_datum = integrationRetryWorkspace 2 "api-tx-refin-dat" $ \tempAbs utxo <- findAllUtxos epochStateView sbe - BalancedTxBody _ txBody@(ShelleyTxBody _ lbody _ (TxBodyScriptData _ (L.TxDats' datums) _) _ _) _ fee <- + BalancedTxBody _ txBody@(ShelleyTxBody _ lbody _ (TxBodyScriptData _ (L.TxDats datums) _) _ _) _ fee <- H.leftFail $ makeTransactionBodyAutoBalance sbe @@ -210,7 +210,7 @@ hprop_tx_refin_datum = integrationRetryWorkspace 2 "api-tx-refin-dat" $ \tempAbs & setTxOuts [txOut] & setTxProtocolParams (pure $ pure pparams) - txBody@(ShelleyTxBody _ lbody _ (TxBodyScriptData _ (L.TxDats' datums) _) _ _) <- + txBody@(ShelleyTxBody _ lbody _ (TxBodyScriptData _ (L.TxDats datums) _) _ _) <- H.leftFail $ createTransactionBody sbe content let bodyScriptData = fromList . map fromAlonzoData $ M.elems datums :: Set HashableScriptData @@ -257,7 +257,7 @@ hprop_tx_refin_datum = integrationRetryWorkspace 2 "api-tx-refin-dat" $ \tempAbs & setTxOuts [txOut] & setTxProtocolParams (pure $ pure pparams) - txBody@(ShelleyTxBody _ lbody _ (TxBodyScriptData _ (L.TxDats' datums) _) _ _) <- + txBody@(ShelleyTxBody _ lbody _ (TxBodyScriptData _ (L.TxDats datums) _) _ _) <- H.leftFail $ createTransactionBody sbe content let bodyScriptData = fromList . map fromAlonzoData $ M.elems datums :: Set HashableScriptData diff --git a/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Cli/KesPeriodInfo.hs b/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Cli/KesPeriodInfo.hs index 1b565c3112c..130f311b9df 100644 --- a/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Cli/KesPeriodInfo.hs +++ b/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Cli/KesPeriodInfo.hs @@ -14,7 +14,7 @@ module Cardano.Testnet.Test.Cli.KesPeriodInfo import Cardano.Api as Api import Cardano.CLI.Type.Output -import Cardano.Node.Configuration.Topology +import Cardano.Node.Configuration.TopologyP2P import Cardano.Testnet import Cardano.Testnet.Test.Misc @@ -26,6 +26,7 @@ import qualified Data.Aeson as J import qualified Data.Aeson.Encode.Pretty as Aeson import Data.Default.Class import Data.Function +import qualified Data.IP as IP import qualified Data.Map.Strict as Map import qualified Data.Text as Text import GHC.Stack (callStack) @@ -34,6 +35,7 @@ import qualified System.Info as SYS import Testnet.Components.Configuration import Testnet.Components.Query +import Testnet.Defaults import Testnet.Process.Cli.Keys import Testnet.Process.Cli.SPO import Testnet.Process.Run (execCli, execCli', mkExecConfig) @@ -221,10 +223,10 @@ hprop_kes_period_info = integrationRetryWorkspace 2 "kes-period-info" $ \tempAbs let testSpoDir = work "test-spo" topologyFile = testSpoDir "topology.json" H.createDirectoryIfMissing_ testSpoDir - let valency = 1 - topology = RealNodeTopology $ - flip map testnetNodes $ \TestnetNode{nodeIpv4,nodePort} -> - RemoteAddress (showIpv4Address nodeIpv4) nodePort valency + let topology = defaultP2PTopology + [ RelayAccessAddress (IP.IPv4 $ IP.fromHostAddress nodeIpv4) nodePort + | TestnetNode{nodeIpv4,nodePort} <- testnetNodes + ] H.lbsWriteFile topologyFile $ Aeson.encode topology let testSpoVrfVKey = work "vrf.vkey" diff --git a/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Cli/LeadershipSchedule.hs b/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Cli/LeadershipSchedule.hs index fe9d5d5be13..b8a631fda8a 100644 --- a/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Cli/LeadershipSchedule.hs +++ b/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Cli/LeadershipSchedule.hs @@ -16,7 +16,7 @@ module Cardano.Testnet.Test.Cli.LeadershipSchedule import Cardano.Api import qualified Cardano.Api as Api -import Cardano.Node.Configuration.Topology +import Cardano.Node.Configuration.TopologyP2P import Cardano.Testnet import Prelude @@ -27,6 +27,7 @@ import qualified Data.Aeson as J import qualified Data.Aeson.Encode.Pretty as Aeson import qualified Data.Aeson.Types as J import Data.Default.Class +import qualified Data.IP as IP import Data.List ((\\)) import qualified Data.List as L import qualified Data.Map.Strict as Map @@ -39,6 +40,7 @@ import qualified System.Info as SYS import Testnet.Components.Configuration import Testnet.Components.Query +import Testnet.Defaults import Testnet.Process.Cli.Keys import Testnet.Process.Cli.SPO import Testnet.Process.Run (execCli, execCli', mkExecConfig) @@ -228,10 +230,10 @@ hprop_leadershipSchedule = integrationRetryWorkspace 2 "leadership-schedule" $ \ let testSpoDir = work "test-spo" topologyFile = testSpoDir "topology.json" H.createDirectoryIfMissing_ testSpoDir - let valency = 1 - topology = RealNodeTopology $ - flip map testnetNodes $ \TestnetNode{nodeIpv4,nodePort} -> - RemoteAddress (showIpv4Address nodeIpv4) nodePort valency + let topology = defaultP2PTopology + [ RelayAccessAddress (IP.IPv4 $ IP.fromHostAddress nodeIpv4) nodePort + | TestnetNode{nodeIpv4,nodePort} <- testnetNodes + ] H.lbsWriteFile topologyFile $ Aeson.encode topology let testSpoKesVKey = work "kes.vkey" testSpoKesSKey = work "kes.skey" diff --git a/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Cli/Plutus/CostCalculation.hs b/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Cli/Plutus/CostCalculation.hs index dce3a27407a..bd89f6c28b4 100644 --- a/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Cli/Plutus/CostCalculation.hs +++ b/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Cli/Plutus/CostCalculation.hs @@ -54,7 +54,7 @@ import qualified Hedgehog.Extras.Test.TestWatchdog as H -- @DISABLE_RETRIES=1 cabal run cardano-testnet-test -- -p "/Spec.hs.Spec.Ledger Events.Plutus.Cost Calc.Ref Script/"@ hprop_ref_plutus_cost_calculation :: Property -hprop_ref_plutus_cost_calculation = integrationRetryWorkspace 2 "ref plutus script" $ \tempAbsBasePath' -> H.runWithDefaultWatchdog_ $ do +hprop_ref_plutus_cost_calculation = integrationRetryWorkspace 2 "ref-plutus-script" $ \tempAbsBasePath' -> H.runWithDefaultWatchdog_ $ do H.note_ SYS.os conf@Conf{tempAbsPath} <- mkConf tempAbsBasePath' let tempAbsPath' = unTmpAbsPath tempAbsPath @@ -202,7 +202,7 @@ hprop_ref_plutus_cost_calculation = integrationRetryWorkspace 2 "ref plutus scri -- @DISABLE_RETRIES=1 cabal run cardano-testnet-test -- -p "/Spec.hs.Spec.Ledger Events.Plutus.Cost Calc.Normal Script/"@ hprop_included_plutus_cost_calculation :: Property -hprop_included_plutus_cost_calculation = integrationRetryWorkspace 2 "included plutus script" $ \tempAbsBasePath' -> H.runWithDefaultWatchdog_ $ do +hprop_included_plutus_cost_calculation = integrationRetryWorkspace 2 "included-plutus-script" $ \tempAbsBasePath' -> H.runWithDefaultWatchdog_ $ do H.note_ SYS.os conf@Conf{tempAbsPath} <- mkConf tempAbsBasePath' let tempAbsPath' = unTmpAbsPath tempAbsPath @@ -312,7 +312,7 @@ hprop_included_plutus_cost_calculation = integrationRetryWorkspace 2 "included p -- @DISABLE_RETRIES=1 cabal run cardano-testnet-test -- -p "/Spec.hs.Spec.Ledger Events.Plutus.Cost Calc.Simple Script/"@ hprop_included_simple_script_cost_calculation :: Property -hprop_included_simple_script_cost_calculation = integrationRetryWorkspace 2 "included simple script" $ \tempAbsBasePath' -> H.runWithDefaultWatchdog_ $ do +hprop_included_simple_script_cost_calculation = integrationRetryWorkspace 2 "included-simple-script" $ \tempAbsBasePath' -> H.runWithDefaultWatchdog_ $ do H.note_ SYS.os conf@Conf{tempAbsPath} <- mkConf tempAbsBasePath' let tempAbsPath' = unTmpAbsPath tempAbsPath diff --git a/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Cli/Query.hs b/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Cli/Query.hs index d1e10d11df7..7bde9dedec7 100644 --- a/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Cli/Query.hs +++ b/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Cli/Query.hs @@ -62,13 +62,14 @@ import Testnet.Property.Util (integrationWorkspace) import Testnet.Start.Types (GenesisOptions (..), NumPools (..), cardanoNumPools) import Testnet.TestQueryCmds (TestQueryCmds (..), forallQueryCommands) import Testnet.Types -import RIO (runRIO) import Hedgehog import qualified Hedgehog as H import Hedgehog.Extras (MonadAssertion, readJsonFile) import qualified Hedgehog.Extras as H +import RIO (runRIO) + -- | Test CLI queries -- Execute me with: -- @DISABLE_RETRIES=1 cabal test cardano-testnet-test --test-options '-p "/CliQueries/"'@ diff --git a/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Cli/Transaction/RegisterDeregisterStakeAddress.hs b/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Cli/Transaction/RegisterDeregisterStakeAddress.hs index 7d3367772da..3b4e7ff5e9d 100644 --- a/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Cli/Transaction/RegisterDeregisterStakeAddress.hs +++ b/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Cli/Transaction/RegisterDeregisterStakeAddress.hs @@ -11,7 +11,6 @@ module Cardano.Testnet.Test.Cli.Transaction.RegisterDeregisterStakeAddress import Cardano.Api as Api import Cardano.CLI.Type.Key (SomeSigningKey (AStakeSigningKey)) -import qualified Cardano.Ledger.UMap as L import Cardano.Testnet import Prelude @@ -19,6 +18,7 @@ import Prelude import Control.Monad import Data.Default.Class import qualified Data.Map as M +import Data.Maybe import qualified Data.Text as Text import System.FilePath (()) @@ -119,9 +119,9 @@ hprop_tx_register_deregister_stake_address = integrationWorkspace "register-dere ] H.note_ "Check that stake address isn't registered yet" - getDelegationState epochStateView >>= + getAccountsStates epochStateView sbe >>= flip H.assertWith - (M.notMember stakeKeyHash . L.scDeposits) + (isNothing . M.lookup stakeKeyHash) void $ execCli' execConfig [ eraName, "transaction", "submit" @@ -132,9 +132,12 @@ hprop_tx_register_deregister_stake_address = integrationWorkspace "register-dere _ <- waitForBlocks epochStateView 1 H.note_ "Check that stake address is registered" - getDelegationState epochStateView >>= + getAccountsStates epochStateView sbe >>= flip H.assertWith - (M.member stakeKeyHash . L.scDeposits) + (\accountsStates -> isJust $ do + _state <- M.lookup stakeKeyHash accountsStates + pure () -- TODO: should we check for balance? + ) -- deregister stake address createStakeKeyDeregistrationCertificate @@ -173,7 +176,7 @@ hprop_tx_register_deregister_stake_address = integrationWorkspace "register-dere _ <- waitForBlocks epochStateView 1 H.note_ "Check that stake address is deregistered" - getDelegationState epochStateView >>= + getAccountsStates epochStateView sbe >>= flip H.assertWith - (M.notMember stakeKeyHash . L.scDeposits) + (isNothing . M.lookup stakeKeyHash) diff --git a/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Gov/DRepDeposit.hs b/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Gov/DRepDeposit.hs index 127c8697ca9..64db499e67a 100644 --- a/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Gov/DRepDeposit.hs +++ b/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Gov/DRepDeposit.hs @@ -94,7 +94,7 @@ hprop_ledger_events_drep_deposits = integrationWorkspace "drep-deposits" $ \temp void $ registerDRep execConfig epochStateView ceo work "drep2" wallet1 checkDRepState epochStateView sbe $ \m -> - if map L.drepDeposit (Map.elems m) == [L.Coin minDRepDeposit] + if map (L.fromCompact . L.drepDeposit) (Map.elems m) == [L.Coin minDRepDeposit] then Just () else Nothing diff --git a/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Gov/TreasuryGrowth.hs b/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Gov/TreasuryGrowth.hs index 781ecaea1c0..45513002dfa 100644 --- a/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Gov/TreasuryGrowth.hs +++ b/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Gov/TreasuryGrowth.hs @@ -9,6 +9,7 @@ import Cardano.Api hiding (cardanoEra) import qualified Cardano.Api as Api import qualified Cardano.Ledger.Shelley.LedgerState as L +import qualified Cardano.Ledger.State as L import Cardano.Testnet as TN import Prelude @@ -77,7 +78,7 @@ prop_check_if_treasury_is_growing = integrationRetryWorkspace 2 "growing-treasur where handler :: AnyNewEpochState -> SlotNo -> BlockNo -> StateT (Map EpochNo Integer) IO ConditionResult handler (AnyNewEpochState _ newEpochState _) _slotNo _blockNo = do - let (Coin coin) = newEpochState ^. L.nesEsL . L.esAccountStateL . L.asTreasuryL + let (Coin coin) = newEpochState ^. L.nesEsL . L.chainAccountStateL . L.casTreasuryL epochNo = newEpochState ^. L.nesELL -- handler is executed multiple times per epoch, so we keep only the latest treasury value modify $ M.insert epochNo coin diff --git a/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Node/Shutdown.hs b/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Node/Shutdown.hs index 3a3416820b6..75fec55b0f0 100644 --- a/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Node/Shutdown.hs +++ b/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Node/Shutdown.hs @@ -106,7 +106,7 @@ hprop_shutdown = integrationRetryWorkspace 2 "shutdown" $ \tempAbsBasePath' -> H -- 2. Create Alonzo genesis alonzoBabbageTestGenesisJsonTargetFile <- H.noteShow $ tempAbsPath' shelleyDir "genesis.alonzo.spec.json" - gen <- Testnet.getDefaultAlonzoGenesis sbe + gen <- Testnet.getDefaultAlonzoGenesis H.evalIO $ LBS.writeFile alonzoBabbageTestGenesisJsonTargetFile $ encode gen -- 2. Create Conway genesis @@ -127,6 +127,8 @@ hprop_shutdown = integrationRetryWorkspace 2 "shutdown" $ \tempAbsBasePath' -> H H.renameFile (tempAbsPath' "shelley/genesis.json") (tempAbsPath' defaultGenesisFilepath ShelleyEra) H.renameFile (tempAbsPath' "shelley/genesis.alonzo.json") (tempAbsPath' defaultGenesisFilepath AlonzoEra) H.renameFile (tempAbsPath' "shelley/genesis.conway.json") (tempAbsPath' defaultGenesisFilepath ConwayEra) + -- TODO: once 'cardano-cli latest genesis create' supports dijkstra, make this a copy instead of writing a default + H.writeFile (tempAbsPath' defaultGenesisFilepath DijkstraEra) . LBS.unpack $ encode dijkstraGenesisDefaults shelleyGenesisHash <- getShelleyGenesisHash (tempAbsPath' defaultGenesisFilepath ShelleyEra) "ShelleyGenesisHash" alonzoGenesisHash <- getShelleyGenesisHash (tempAbsPath' defaultGenesisFilepath AlonzoEra) "AlonzoGenesisHash" diff --git a/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/P2PTopology.hs b/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/P2PTopology.hs deleted file mode 100644 index 236eaa3556c..00000000000 --- a/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/P2PTopology.hs +++ /dev/null @@ -1,48 +0,0 @@ -{-# LANGUAGE DataKinds #-} -{-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE ScopedTypeVariables #-} - -module Cardano.Testnet.Test.P2PTopology - ( hprop_p2p_topology - ) where - -import qualified Cardano.Node.Configuration.TopologyP2P as P2P -import Cardano.Testnet (CardanoTestnetOptions (..), cardanoTestnet, - createTestnetEnv, mkConf) -import Cardano.Testnet.Test.Utils (nodesProduceBlocks) - -import Prelude - -import Data.Default.Class (def) -import System.FilePath (()) - -import Testnet.Property.Util (integrationRetryWorkspace) -import Testnet.Start.Types (CreateEnvOptions (..), GenesisOptions (..), NodeId, - UserProvidedEnv (..), TopologyType (..)) - -import qualified Hedgehog as H -import qualified Hedgehog.Extras as H - - --- | Execute me with: --- @DISABLE_RETRIES=1 cabal test cardano-testnet-test --test-options '-p "/Can be started with P2P topology file/"'@ -hprop_p2p_topology :: H.Property -hprop_p2p_topology = integrationRetryWorkspace 2 "p2p-topology" $ \tmpDir -> H.runWithDefaultWatchdog_ $ do - - let testnetOptions = def { cardanoOutputDir = UserProvidedEnv tmpDir } - genesisOptions = def { genesisEpochLength = 200 } - createEnvOptions = def { ceoTopologyType = P2PTopology } - someTopologyFile = tmpDir "node-data" "node1" "topology.json" - - -- Generate the sandbox - conf <- mkConf tmpDir - createTestnetEnv testnetOptions genesisOptions createEnvOptions conf - - -- Check that the topology is indeed P2P - eTopology <- H.readJsonFile someTopologyFile - (_topology :: P2P.NetworkTopology NodeId) <- H.leftFail eTopology - - -- Run testnet with generated config - runtime <- cardanoTestnet testnetOptions conf - - nodesProduceBlocks tmpDir runtime diff --git a/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Utils.hs b/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Utils.hs index a9338d2d47b..9e38632d2e1 100644 --- a/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Utils.hs +++ b/cardano-testnet/test/cardano-testnet-test/Cardano/Testnet/Test/Utils.hs @@ -8,6 +8,7 @@ module Cardano.Testnet.Test.Utils ) where import Cardano.Api (BlockNo (..), ChainTip (..), MonadIO) + import Cardano.CLI.Type.Output (QueryTipLocalStateOutput (..)) import Prelude @@ -20,7 +21,7 @@ import System.Exit (ExitCode (..)) import qualified System.Process as IO import Testnet.Process.Run (execCli', mkExecConfig) -import Testnet.Types (TestnetNode(..), TestnetRuntime (..), isTestnetNodeSpo) +import Testnet.Types (TestnetNode (..), TestnetRuntime (..), isTestnetNodeSpo) import Hedgehog ((===)) import qualified Hedgehog as H @@ -42,11 +43,11 @@ nodesProduceBlocks envDir TestnetRuntime{testnetNodes, testnetMagic} = do TestnetNode { nodeProcessHandle , nodeSprocket - } <- case testnetNodes of - [spoNode, _relayNode1, _relayNode2] -> do - (isTestnetNodeSpo <$> testnetNodes) === [True, False, False] - pure spoNode - _ -> H.failure + } <- case filter isTestnetNodeSpo testnetNodes of + [spoNode] -> pure spoNode + spoNodes -> do + H.note_ $ "Number of SPO nodes different than 1. SPO nodes: " <> show (nodeName <$> spoNodes) + H.failure -- Check that blocks have been produced on the chain after 2 minutes at most H.byDurationM 5 120 "Expected blocks to be minted" $ do diff --git a/cardano-testnet/test/cardano-testnet-test/cardano-testnet-test.hs b/cardano-testnet/test/cardano-testnet-test/cardano-testnet-test.hs index fb74ff0ff81..40e09fc3bab 100644 --- a/cardano-testnet/test/cardano-testnet-test/cardano-testnet-test.hs +++ b/cardano-testnet/test/cardano-testnet-test/cardano-testnet-test.hs @@ -26,9 +26,8 @@ import qualified Cardano.Testnet.Test.Gov.ProposeNewConstitution as Gov import qualified Cardano.Testnet.Test.Gov.Transaction.HashMismatch as WrongHash import qualified Cardano.Testnet.Test.Gov.TreasuryDonation as Gov import qualified Cardano.Testnet.Test.Gov.TreasuryWithdrawal as Gov -import qualified Cardano.Testnet.Test.Node.Shutdown import qualified Cardano.Testnet.Test.MainnetParams -import qualified Cardano.Testnet.Test.P2PTopology +import qualified Cardano.Testnet.Test.Node.Shutdown import qualified Cardano.Testnet.Test.RunTestnet import qualified Cardano.Testnet.Test.SanityCheck as LedgerEvents import qualified Cardano.Testnet.Test.SubmitApi.Transaction @@ -117,7 +116,6 @@ tests = do , T.testGroup "Cardano-testnet" [ ignoreOnWindows "Produces blocks" Cardano.Testnet.Test.RunTestnet.hprop_run_testnet , ignoreOnMacAndWindows "Supports dumping/loading config files" Cardano.Testnet.Test.DumpConfig.hprop_dump_config - , ignoreOnMacAndWindows "Can be started with P2P topology file" Cardano.Testnet.Test.P2PTopology.hprop_p2p_topology , ignoreOnMacAndWindows "Can have its start time modified" Cardano.Testnet.Test.UpdateTimeStamps.hprop_update_time_stamps , ignoreOnMacAndWindows "Can get on-chain parameters from blockfrost files" Cardano.Testnet.Test.MainnetParams.hprop_mainnet_params ] diff --git a/cardano-testnet/test/cardano-testnet-test/files/golden/queries/govStateOut.json b/cardano-testnet/test/cardano-testnet-test/files/golden/queries/govStateOut.json index a91b4167457..8984e8ce8d2 100644 --- a/cardano-testnet/test/cardano-testnet-test/files/golden/queries/govStateOut.json +++ b/cardano-testnet/test/cardano-testnet-test/files/golden/queries/govStateOut.json @@ -357,17 +357,7 @@ 10, 38887044, 32947, - 10, - 1292075, - 24469, - 74, - 0, - 1, - 936157, - 49601, - 237, - 0, - 1 + 10 ], "PlutusV3": [ 100788, @@ -620,53 +610,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "dRepActivity": 100, @@ -702,7 +646,7 @@ }, "maxTxSize": 16384, "maxValueSize": 5000, - "minFeeRefScriptCostPerByte": 0, + "minFeeRefScriptCostPerByte": 15, "minPoolCost": 0, "monetaryExpansion": 0.1, "poolPledgeInfluence": 0, @@ -1091,17 +1035,7 @@ 10, 38887044, 32947, - 10, - 1292075, - 24469, - 74, - 0, - 1, - 936157, - 49601, - 237, - 0, - 1 + 10 ], "PlutusV3": [ 100788, @@ -1354,53 +1288,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "dRepActivity": 100, @@ -1436,7 +1324,7 @@ }, "maxTxSize": 16384, "maxValueSize": 5000, - "minFeeRefScriptCostPerByte": 0, + "minFeeRefScriptCostPerByte": 15, "minPoolCost": 0, "monetaryExpansion": 0.1, "poolPledgeInfluence": 0, @@ -1814,17 +1702,7 @@ 10, 38887044, 32947, - 10, - 1292075, - 24469, - 74, - 0, - 1, - 936157, - 49601, - 237, - 0, - 1 + 10 ], "PlutusV3": [ 100788, @@ -2077,53 +1955,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "dRepActivity": 100, @@ -2159,7 +1991,7 @@ }, "maxTxSize": 16384, "maxValueSize": 5000, - "minFeeRefScriptCostPerByte": 0, + "minFeeRefScriptCostPerByte": 15, "minPoolCost": 0, "monetaryExpansion": 0.1, "poolPledgeInfluence": 0, @@ -2534,17 +2366,7 @@ 10, 38887044, 32947, - 10, - 1292075, - 24469, - 74, - 0, - 1, - 936157, - 49601, - 237, - 0, - 1 + 10 ], "PlutusV3": [ 100788, @@ -2797,53 +2619,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "dRepActivity": 100, @@ -2879,7 +2655,7 @@ }, "maxTxSize": 16384, "maxValueSize": 5000, - "minFeeRefScriptCostPerByte": 0, + "minFeeRefScriptCostPerByte": 15, "minPoolCost": 0, "monetaryExpansion": 0.1, "poolPledgeInfluence": 0, diff --git a/cardano-testnet/test/cardano-testnet-test/files/golden/queries/protocolParametersFileOut.json b/cardano-testnet/test/cardano-testnet-test/files/golden/queries/protocolParametersFileOut.json index f5a86e40d9f..f8156095026 100644 --- a/cardano-testnet/test/cardano-testnet-test/files/golden/queries/protocolParametersFileOut.json +++ b/cardano-testnet/test/cardano-testnet-test/files/golden/queries/protocolParametersFileOut.json @@ -346,17 +346,7 @@ 10, 38887044, 32947, - 10, - 1292075, - 24469, - 74, - 0, - 1, - 936157, - 49601, - 237, - 0, - 1 + 10 ], "PlutusV3": [ 100788, @@ -609,53 +599,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "dRepActivity": 100, @@ -691,7 +635,7 @@ }, "maxTxSize": 16384, "maxValueSize": 5000, - "minFeeRefScriptCostPerByte": 0, + "minFeeRefScriptCostPerByte": 15, "minPoolCost": 0, "monetaryExpansion": 0.1, "poolPledgeInfluence": 0, diff --git a/cardano-testnet/test/cardano-testnet-test/files/golden/queries/protocolParametersOut.txt b/cardano-testnet/test/cardano-testnet-test/files/golden/queries/protocolParametersOut.txt index f5a86e40d9f..f8156095026 100644 --- a/cardano-testnet/test/cardano-testnet-test/files/golden/queries/protocolParametersOut.txt +++ b/cardano-testnet/test/cardano-testnet-test/files/golden/queries/protocolParametersOut.txt @@ -346,17 +346,7 @@ 10, 38887044, 32947, - 10, - 1292075, - 24469, - 74, - 0, - 1, - 936157, - 49601, - 237, - 0, - 1 + 10 ], "PlutusV3": [ 100788, @@ -609,53 +599,7 @@ 43623, 251, 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 100181, - 726, - 719, - 0, - 1, - 107878, - 680, - 0, - 1, - 95336, - 1, - 281145, - 18848, - 0, - 1, - 180194, - 159, - 1, - 1, - 158519, - 8942, - 0, - 1, - 159378, - 8813, - 0, - 1, - 107490, - 3298, - 1, - 106057, - 655, - 1, - 1964219, - 24520, - 3 + 1 ] }, "dRepActivity": 100, @@ -691,7 +635,7 @@ }, "maxTxSize": 16384, "maxValueSize": 5000, - "minFeeRefScriptCostPerByte": 0, + "minFeeRefScriptCostPerByte": 15, "minPoolCost": 0, "monetaryExpansion": 0.1, "poolPledgeInfluence": 0, diff --git a/cardano-testnet/test/cardano-testnet-test/files/golden/tx.failed.response.json.golden b/cardano-testnet/test/cardano-testnet-test/files/golden/tx.failed.response.json.golden index 39f8465fbe3..3c72bfbe68c 100644 --- a/cardano-testnet/test/cardano-testnet-test/files/golden/tx.failed.response.json.golden +++ b/cardano-testnet/test/cardano-testnet-test/files/golden/tx.failed.response.json.golden @@ -4,8 +4,7 @@ "contents": { "era": "ShelleyBasedEraConway", "error": [ - "ConwayUtxowFailure (UtxoFailure (BadInputsUTxO (fromList [TxIn (TxId {unTxId = SafeHash \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"}) (TxIx {unTxIx = 0})])))", - "ConwayUtxowFailure (UtxoFailure (ValueNotConservedUTxO (Mismatch {mismatchSupplied = MaryValue (Coin 0) (MultiAsset (fromList [])), mismatchExpected = MaryValue (Coin 15000003000000) (MultiAsset (fromList []))})))" + "ConwayMempoolFailure \"All inputs are spent. Transaction has probably already been included\"" ], "kind": "ShelleyTxValidationError" }, diff --git a/cardano-tracer/CHANGELOG.md b/cardano-tracer/CHANGELOG.md index 97d0629b8d3..ea06d6f89a5 100644 --- a/cardano-tracer/CHANGELOG.md +++ b/cardano-tracer/CHANGELOG.md @@ -1,5 +1,8 @@ # ChangeLog +## 0.3.5 (October, 2025) +* Updated to `ekg-forward-1.0`, `ouroboros-network-0.22.3`, `ouroboros-network-api-0.16`. + ## 0.3.4 (July, 2025) * Forwarding protocol supports connections over TCP socket, in addition to Unix domain sockets. diff --git a/cardano-tracer/cardano-tracer.cabal b/cardano-tracer/cardano-tracer.cabal index e60e54546a6..9897a4d219e 100644 --- a/cardano-tracer/cardano-tracer.cabal +++ b/cardano-tracer/cardano-tracer.cabal @@ -1,7 +1,7 @@ cabal-version: 3.0 name: cardano-tracer -version: 0.3.4 +version: 0.3.5 synopsis: A service for logging and monitoring over Cardano nodes description: A service for logging and monitoring over Cardano nodes. category: Cardano, @@ -178,7 +178,7 @@ library , contra-tracer , directory , ekg-core - , ekg-forward >= 0.9 + , ekg-forward >= 1.0 , ekg-wai , extra , filepath @@ -187,8 +187,8 @@ library , network , network-mux >= 0.8 , optparse-applicative - , ouroboros-network ^>= 0.21.2 - , ouroboros-network-api ^>= 0.14 + , ouroboros-network ^>= 0.22.3 + , ouroboros-network-api ^>= 0.16 , ouroboros-network-framework , signal , slugify @@ -421,7 +421,7 @@ test-suite cardano-tracer-test-ext , network , network-mux , optparse-applicative-fork >= 0.18.1 - , ouroboros-network ^>= 0.21.2 + , ouroboros-network ^>= 0.22.3 , ouroboros-network-api , ouroboros-network-framework , process diff --git a/cardano-tracer/src/Cardano/Tracer/Acceptors/Server.hs b/cardano-tracer/src/Cardano/Tracer/Acceptors/Server.hs index 98b3ab10f14..e30de1fd18b 100644 --- a/cardano-tracer/src/Cardano/Tracer/Acceptors/Server.hs +++ b/cardano-tracer/src/Cardano/Tracer/Acceptors/Server.hs @@ -1,9 +1,12 @@ {-# LANGUAGE DataKinds #-} +{-# LANGUAGE PackageImports #-} module Cardano.Tracer.Acceptors.Server ( runAcceptorsServer ) where +import "contra-tracer" Control.Tracer (nullTracer) + import Cardano.Logging (TraceObject) import qualified Cardano.Logging.Types as Net import Cardano.Tracer.Acceptors.Utils @@ -12,32 +15,29 @@ import Cardano.Tracer.Environment import Cardano.Tracer.Handlers.Logs.TraceObjects (deregisterNodeId, traceObjectsHandler) import Cardano.Tracer.MetaTrace import Cardano.Tracer.Utils (connIdToNodeId) -import Ouroboros.Network.Context (MinimalInitiatorContext (..), ResponderContext (..)) +import Ouroboros.Network.Context (ResponderContext (..)) import Ouroboros.Network.Driver.Limits (ProtocolTimeLimits) -import Ouroboros.Network.ErrorPolicy (nullErrorPolicies) import Ouroboros.Network.IOManager (withIOManager) import Ouroboros.Network.Magic (NetworkMagic (..)) import Ouroboros.Network.Mux (MiniProtocol (..), MiniProtocolLimits (..), MiniProtocolNum (..), OuroborosApplication (..), OuroborosApplicationWithMinimalCtx, RunMiniProtocol (..), miniProtocolLimits, miniProtocolNum, miniProtocolRun) -import Ouroboros.Network.Protocol.Handshake.Codec (cborTermVersionDataCodec, - codecHandshake, noTimeLimitsHandshake, timeLimitsHandshake) -import Ouroboros.Network.Protocol.Handshake.Type (Handshake) -import Ouroboros.Network.Protocol.Handshake.Version (acceptableVersion, queryVersion, - simpleSingletonVersions) +import Ouroboros.Network.Protocol.Handshake (Handshake, HandshakeArguments (..)) +import qualified Ouroboros.Network.Protocol.Handshake as Handshake import Ouroboros.Network.Snocket (LocalAddress, LocalSocket, Snocket, localAddressFromPath, localSnocket, makeLocalBearer, makeSocketBearer, socketSnocket) -import Ouroboros.Network.Socket (AcceptedConnectionsLimit (..), ConnectionId (..), - HandshakeCallbacks (..), SomeResponderApplication (..), cleanNetworkMutableState, - newNetworkMutableState, nullNetworkServerTracers, withServerNode) +import Ouroboros.Network.Socket (ConnectionId (..), + SomeResponderApplication (..)) +import qualified Ouroboros.Network.Server.Simple as Server import Codec.CBOR.Term (Term) -import Control.Concurrent.Async (race_, wait) +import Control.Concurrent.Async (wait) import qualified Data.ByteString.Lazy as LBS import Data.List.NonEmpty (NonEmpty ((:|))) import qualified Data.Text as Text +import Data.Functor (void) import Data.Void (Void) import Data.Word (Word32) import qualified Network.Mux as Mux @@ -71,7 +71,7 @@ runAcceptorsServer tracerEnv tracerEnvRTView howToConnect ( ekgConfig, tfConfig, (localSnocket iocp) (localAddressFromPath p) (TC.networkMagic $ teConfig tracerEnv) - noTimeLimitsHandshake $ + Handshake.noTimeLimitsHandshake $ -- Please note that we always run all the supported protocols, -- there is no mechanism to disable some of them. appResponder @@ -86,7 +86,7 @@ runAcceptorsServer tracerEnv tracerEnvRTView howToConnect ( ekgConfig, tfConfig, (socketSnocket iocp) (Socket.addrAddress listenAddress) (TC.networkMagic $ teConfig tracerEnv) - timeLimitsHandshake $ + Handshake.timeLimitsHandshake $ -- Please note that we always run all the supported protocols, -- there is no mechanism to disable some of them. appResponder @@ -118,34 +118,31 @@ doListenToForwarderLocal -> LocalAddress -> Word32 -> ProtocolTimeLimits (Handshake ForwardingVersion Term) - -> OuroborosApplication 'Mux.ResponderMode - (MinimalInitiatorContext LocalAddress) - (ResponderContext LocalAddress) - LBS.ByteString IO Void () + -> OuroborosApplicationWithMinimalCtx Mux.ResponderMode LocalAddress LBS.ByteString IO Void () -> IO () doListenToForwarderLocal snocket address netMagic timeLimits app = do - networkState <- newNetworkMutableState - race_ (cleanNetworkMutableState networkState) do - withServerNode + void $ Server.with snocket makeLocalBearer mempty -- LocalSocket does not need to be configured - nullNetworkServerTracers - networkState - (AcceptedConnectionsLimit maxBound maxBound 0) address - (codecHandshake forwardingVersionCodec) - timeLimits - (cborTermVersionDataCodec forwardingCodecCBORTerm) - (HandshakeCallbacks acceptableVersion queryVersion) - (simpleSingletonVersions + HandshakeArguments { + haHandshakeTracer = nullTracer, + haBearerTracer = nullTracer, + haHandshakeCodec = Handshake.codecHandshake forwardingVersionCodec, + haVersionDataCodec = Handshake.cborTermVersionDataCodec forwardingCodecCBORTerm, + haAcceptVersion = Handshake.acceptableVersion, + haQueryVersion = Handshake.queryVersion, + haTimeLimits = timeLimits + } + (Handshake.simpleSingletonVersions ForwardingV_1 (ForwardingVersionData $ NetworkMagic netMagic) (\_ -> SomeResponderApplication app) ) - nullErrorPolicies $ \_ serverAsync -> wait serverAsync -- Block until async exception. + doListenToForwarderSocket :: Snocket IO Socket.Socket Socket.SockAddr -> Socket.SockAddr @@ -154,28 +151,28 @@ doListenToForwarderSocket -> OuroborosApplicationWithMinimalCtx Mux.ResponderMode Socket.SockAddr LBS.ByteString IO Void () -> IO () doListenToForwarderSocket snocket address netMagic timeLimits app = do - networkState <- newNetworkMutableState - race_ (cleanNetworkMutableState networkState) do - withServerNode + void $ Server.with snocket makeSocketBearer mempty -- LocalSocket does not need to be configured - nullNetworkServerTracers - networkState - (AcceptedConnectionsLimit maxBound maxBound 0) address - (codecHandshake forwardingVersionCodec) - timeLimits - (cborTermVersionDataCodec forwardingCodecCBORTerm) - (HandshakeCallbacks acceptableVersion queryVersion) - (simpleSingletonVersions + HandshakeArguments { + haHandshakeTracer = nullTracer, + haBearerTracer = nullTracer, + haHandshakeCodec = Handshake.codecHandshake forwardingVersionCodec, + haVersionDataCodec = Handshake.cborTermVersionDataCodec forwardingCodecCBORTerm, + haAcceptVersion = Handshake.acceptableVersion, + haQueryVersion = Handshake.queryVersion, + haTimeLimits = timeLimits + } + (Handshake.simpleSingletonVersions ForwardingV_1 (ForwardingVersionData $ NetworkMagic netMagic) (\_ -> SomeResponderApplication app) ) - nullErrorPolicies $ \_ serverAsync -> wait serverAsync -- Block until async exception. + runEKGAcceptor :: Show addr => TracerEnv diff --git a/cardano-tracer/test/Cardano/Tracer/Test/Forwarder.hs b/cardano-tracer/test/Cardano/Tracer/Test/Forwarder.hs index e16cf5b73c9..244a01cbf19 100644 --- a/cardano-tracer/test/Cardano/Tracer/Test/Forwarder.hs +++ b/cardano-tracer/test/Cardano/Tracer/Test/Forwarder.hs @@ -23,22 +23,19 @@ import Cardano.Tracer.Test.TestSetup import Cardano.Tracer.Test.Utils import Cardano.Tracer.Utils import Ouroboros.Network.Driver.Limits (ProtocolTimeLimits) -import Ouroboros.Network.ErrorPolicy (nullErrorPolicies) import Ouroboros.Network.IOManager (IOManager, withIOManager) import Ouroboros.Network.Mux (MiniProtocol (..), MiniProtocolLimits (..), MiniProtocolNum (..), OuroborosApplication (..), RunMiniProtocol (..), miniProtocolLimits, miniProtocolNum, miniProtocolRun) +import Ouroboros.Network.Protocol.Handshake (Handshake, HandshakeArguments (..)) +import qualified Ouroboros.Network.Protocol.Handshake as Handshake import Ouroboros.Network.Protocol.Handshake.Codec (cborTermVersionDataCodec, - codecHandshake, noTimeLimitsHandshake, timeLimitsHandshake) -import Ouroboros.Network.Protocol.Handshake.Type (Handshake) -import Ouroboros.Network.Protocol.Handshake.Version (acceptableVersion, queryVersion, - simpleSingletonVersions) + codecHandshake, noTimeLimitsHandshake) +import qualified Ouroboros.Network.Server.Simple as Server import Ouroboros.Network.Snocket (MakeBearer, Snocket, localAddressFromPath, localSnocket, makeLocalBearer, makeSocketBearer, socketSnocket) -import Ouroboros.Network.Socket (AcceptedConnectionsLimit (..), ConnectToArgs (..), - HandshakeCallbacks (..), SomeResponderApplication (..), cleanNetworkMutableState, - connectToNode, newNetworkMutableState, nullNetworkConnectTracers, - nullNetworkServerTracers, withServerNode) +import Ouroboros.Network.Socket (ConnectToArgs (..), HandshakeCallbacks (..), + SomeResponderApplication (..), connectToNode, nullNetworkConnectTracers) import Codec.CBOR.Term (Term) import Control.Concurrent (threadDelay) @@ -49,7 +46,7 @@ import Control.Monad (forever) import "contra-tracer" Control.Tracer (contramap, nullTracer, stdoutTracer) import Data.Aeson (FromJSON, ToJSON) import qualified Data.ByteString.Lazy as LBS -import Data.Foldable (for_) +import Data.Functor (void) import Data.List.NonEmpty (NonEmpty ((:|))) import qualified Data.Text as Text import Data.Time.Clock (getCurrentTime) @@ -73,6 +70,7 @@ import Trace.Forward.Utils.TraceObject import Trace.Forward.Utils.Version (ForwardingVersion (..), ForwardingVersionData (..), forwardingCodecCBORTerm, forwardingVersionCodec) + data ForwardersMode = Initiator | Responder data TestDataPoint = TestDataPoint @@ -122,7 +120,7 @@ launchForwardersSimple' ts iomgr mode howToConnect connSize disconnSize = (socketSnocket iomgr) makeSocketBearer (Socket.addrAddress listenAddress) - timeLimitsHandshake + Handshake.timeLimitsHandshake (ekgConfig, tfConfig, dpfConfig) do \(exception :: SomeException) -> do logTrace $ "launchForwardersSimple': doConnectToAcceptor failure: " ++ show exception @@ -141,7 +139,7 @@ launchForwardersSimple' ts iomgr mode howToConnect connSize disconnSize = (socketSnocket iomgr) makeSocketBearer (Socket.addrAddress listenAddress) - timeLimitsHandshake + Handshake.timeLimitsHandshake (ekgConfig, tfConfig, dpfConfig) do \(exception :: SomeException) -> do logTrace $ "launchForwardersSimple': doListenToAcceptor failure: " ++ show exception @@ -213,7 +211,7 @@ doConnectToAcceptor TestSetup{..} snocket muxBearer address timeLimits (ekgConfi muxBearer args mempty - (simpleSingletonVersions + (Handshake.simpleSingletonVersions ForwardingV_1 (ForwardingVersionData $ unI tsNetworkMagic) (const $ forwarderApp [ (forwardEKGMetrics ekgConfig store, 1) @@ -228,14 +226,14 @@ doConnectToAcceptor TestSetup{..} snocket muxBearer address timeLimits (ekgConfi Left err -> throwIO err Right choice -> case choice of Left () -> return () - Right void -> absurd void + Right void_ -> absurd void_ where args = ConnectToArgs { ctaHandshakeCodec = codecHandshake forwardingVersionCodec, ctaHandshakeTimeLimits = timeLimits, ctaVersionDataCodec = cborTermVersionDataCodec forwardingCodecCBORTerm, ctaConnectTracers = nullNetworkConnectTracers, - ctaHandshakeCallbacks = HandshakeCallbacks acceptableVersion queryVersion } + ctaHandshakeCallbacks = HandshakeCallbacks Handshake.acceptableVersion Handshake.queryVersion } forwarderApp :: [(RunMiniProtocol 'Mux.InitiatorMode initCtx respCtx LBS.ByteString IO () Void, Word16)] @@ -252,8 +250,7 @@ doConnectToAcceptor TestSetup{..} snocket muxBearer address timeLimits (ekgConfi ] doListenToAcceptor - :: Ord addr - => TestSetup Identity + :: TestSetup Identity -> Snocket IO fd addr -> MakeBearer IO fd -> addr @@ -271,33 +268,32 @@ doListenToAcceptor TestSetup{..} sink <- initForwardSink tfConfig (\ _ -> pure ()) dpStore <- initDataPointStore writeToStore dpStore "test.data.point" $ DataPoint mkTestDataPoint - withAsync (traceObjectsWriter sink) \_ -> do - networkState <- newNetworkMutableState - race_ (cleanNetworkMutableState networkState) - $ withServerNode - snocket - muxBearer - mempty - nullNetworkServerTracers - networkState - (AcceptedConnectionsLimit maxBound maxBound 0) - address - (codecHandshake forwardingVersionCodec) - timeLimits - (cborTermVersionDataCodec forwardingCodecCBORTerm) - (HandshakeCallbacks acceptableVersion queryVersion) - (simpleSingletonVersions - ForwardingV_1 - (ForwardingVersionData $ unI tsNetworkMagic) - (const $ SomeResponderApplication $ - forwarderApp [ (forwardEKGMetricsResp ekgConfig store, 1) - , (forwardTraceObjectsResp tfConfig sink, 2) - , (forwardDataPointsResp dpfConfig dpStore, 3) - ] - ) - ) - nullErrorPolicies - $ \_ serverAsync -> wait serverAsync -- Block until async exception. + withAsync (traceObjectsWriter sink) $ \_ -> + void $ Server.with + snocket + muxBearer + mempty + address + HandshakeArguments { + haHandshakeTracer = nullTracer, + haBearerTracer = nullTracer, + haHandshakeCodec = codecHandshake forwardingVersionCodec, + haVersionDataCodec = cborTermVersionDataCodec forwardingCodecCBORTerm, + haAcceptVersion = Handshake.acceptableVersion, + haQueryVersion = Handshake.queryVersion, + haTimeLimits = timeLimits + } + (Handshake.simpleSingletonVersions + ForwardingV_1 + (ForwardingVersionData $ unI tsNetworkMagic) + (const $ SomeResponderApplication $ + forwarderApp [ (forwardEKGMetricsResp ekgConfig store, 1) + , (forwardTraceObjectsResp tfConfig sink, 2) + , (forwardDataPointsResp dpfConfig dpStore, 3) + ] + ) + ) + $ \_ serverAsync -> wait serverAsync -- Block until async exception. where forwarderApp :: [(RunMiniProtocol 'Mux.ResponderMode initCtx respCtx LBS.ByteString IO Void (), Word16)] diff --git a/configuration/cardano/mainnet-config-bp.json b/configuration/cardano/mainnet-config-bp.json deleted file mode 100644 index dcbdcd1aff7..00000000000 --- a/configuration/cardano/mainnet-config-bp.json +++ /dev/null @@ -1,146 +0,0 @@ -{ - "AlonzoGenesisFile": "mainnet-alonzo-genesis.json", - "AlonzoGenesisHash": "7e94a15f55d1e82d10f09203fa1d40f8eede58fd8066542cf6566008068ed874", - "ByronGenesisFile": "mainnet-byron-genesis.json", - "ByronGenesisHash": "5f20df933584822601f9e3f8c024eb5eb252fe8cefb24d1317dc3d432e940ebb", - "CheckpointsFile": "mainnet-checkpoints.json", - "CheckpointsFileHash": "3e6dee5bae7acc6d870187e72674b37c929be8c66e62a552cf6a876b1af31ade", - "ConsensusMode": "PraosMode", - "ConwayGenesisFile": "mainnet-conway-genesis.json", - "ConwayGenesisHash": "15a199f895e461ec0ffc6dd4e4028af28a492ab4e806d39cb674c88f7643ef62", - "EnableP2P": true, - "LastKnownBlockVersion-Alt": 0, - "LastKnownBlockVersion-Major": 3, - "LastKnownBlockVersion-Minor": 0, - "LedgerDB": { - "Backend": "V2InMemory", - "NumOfDiskSnapshots": 2, - "QueryBatchSize": 100000, - "SnapshotInterval": 4320 - }, - "MaxKnownMajorProtocolVersion": 2, - "MinNodeVersion": "10.4.0", - "PeerSharing": false, - "Protocol": "Cardano", - "RequiresNetworkMagic": "RequiresNoMagic", - "ShelleyGenesisFile": "mainnet-shelley-genesis.json", - "ShelleyGenesisHash": "1a3be38bcbb7911969283716ad7aa550250226b76a61fc51cc9a9a35d9276d81", - "TargetNumberOfKnownPeers": 100, - "TargetNumberOfRootPeers": 100, - "TraceOptionForwarder": { - "connQueueSize": 64, - "disconnQueueSize": 128, - "maxReconnectDelay": 30 - }, - "TraceOptionMetricsPrefix": "cardano.node.metrics.", - "TraceOptionPeerFrequency": 2000, - "TraceOptionResourceFrequency": 1000, - "TraceOptions": { - "": { - "backends": [ - "EKGBackend", - "Forwarder", - "PrometheusSimple suffix 127.0.0.1 12798", - "Stdout HumanFormatColoured" - ], - "detail": "DNormal", - "severity": "Notice" - }, - "BlockFetch.Client.CompletedBlockFetch": { - "maxFrequency": 2.0 - }, - "BlockFetch.Decision": { - "severity": "Silence" - }, - "ChainDB": { - "severity": "Info" - }, - "ChainDB.AddBlockEvent.AddBlockValidation": { - "severity": "Silence" - }, - "ChainDB.AddBlockEvent.AddBlockValidation.ValidCandidate": { - "maxFrequency": 2.0 - }, - "ChainDB.AddBlockEvent.AddedBlockToQueue": { - "maxFrequency": 2.0 - }, - "ChainDB.AddBlockEvent.AddedBlockToVolatileDB": { - "maxFrequency": 2.0 - }, - "ChainDB.CopyToImmutableDBEvent.CopiedBlockToImmutableDB": { - "maxFrequency": 2.0 - }, - "ChainDB.LedgerEvent.Forker": { - "severity": "Silence" - }, - "ChainSync.Client": { - "severity": "Warning" - }, - "Forge.Loop": { - "severity": "Info" - }, - "Forge.StateInfo": { - "severity": "Info" - }, - "Mempool": { - "severity": "Silence" - }, - "Mempool.AttemptAdd": { - "severity": "Silence" - }, - "Mempool.LedgerFound": { - "severity": "Silence" - }, - "Mempool.LedgerNotFound": { - "severity": "Silence" - }, - "Mempool.SyncNotNeeded": { - "severity": "Silence" - }, - "Net.ConnectionManager.Remote": { - "severity": "Info" - }, - "Net.ConnectionManager.Remote.ConnectionManagerCounters": { - "severity": "Silence" - }, - "Net.ErrorPolicy": { - "severity": "Info" - }, - "Net.ErrorPolicy.Local": { - "severity": "Info" - }, - "Net.InboundGovernor": { - "severity": "Warning" - }, - "Net.InboundGovernor.Remote": { - "severity": "Info" - }, - "Net.Mux.Remote": { - "severity": "Info" - }, - "Net.PeerSelection": { - "severity": "Silence" - }, - "Net.Subscription.DNS": { - "severity": "Info" - }, - "Net.Subscription.IP": { - "severity": "Info" - }, - "Resources": { - "severity": "Silence" - }, - "Startup.DiffusionInit": { - "severity": "Info" - } - }, - "TurnOnLogMetrics": true, - "TurnOnLogging": true, - "UseTraceDispatcher": true, - "defaultBackends": [], - "defaultScribes": [], - "minSeverity": "Critical", - "options": {}, - "setupBackends": [], - "setupScribes": [] -} diff --git a/configuration/cardano/mainnet-config-legacy.json b/configuration/cardano/mainnet-config-legacy.json index c863b9c07bc..4efc9b34be3 100644 --- a/configuration/cardano/mainnet-config-legacy.json +++ b/configuration/cardano/mainnet-config-legacy.json @@ -8,7 +8,6 @@ "ConsensusMode": "PraosMode", "ConwayGenesisFile": "mainnet-conway-genesis.json", "ConwayGenesisHash": "15a199f895e461ec0ffc6dd4e4028af28a492ab4e806d39cb674c88f7643ef62", - "EnableP2P": true, "LastKnownBlockVersion-Alt": 0, "LastKnownBlockVersion-Major": 3, "LastKnownBlockVersion-Minor": 0, @@ -19,8 +18,7 @@ "SnapshotInterval": 4320 }, "MaxKnownMajorProtocolVersion": 2, - "MinNodeVersion": "10.4.0", - "PeerSharing": true, + "MinNodeVersion": "10.6.0", "Protocol": "Cardano", "RequiresNetworkMagic": "RequiresNoMagic", "ShelleyGenesisFile": "mainnet-shelley-genesis.json", diff --git a/configuration/cardano/mainnet-config-new-tracing.json b/configuration/cardano/mainnet-config-new-tracing.json index ed9b5164375..38ac230c175 100644 --- a/configuration/cardano/mainnet-config-new-tracing.json +++ b/configuration/cardano/mainnet-config-new-tracing.json @@ -51,15 +51,9 @@ "Net.ConnectionManager.Remote": { "severity": "Info" }, - "Net.Subscription.DNS": { - "severity": "Info" - }, "Startup.DiffusionInit": { "severity": "Info" }, - "Net.ErrorPolicy": { - "severity": "Info" - }, "Forge.Loop": { "severity": "Info" }, @@ -69,12 +63,6 @@ "Net.InboundGovernor.Remote": { "severity": "Info" }, - "Net.Subscription.IP": { - "severity": "Info" - }, - "Net.ErrorPolicy.Local": { - "severity": "Info" - }, "Mempool": { "severity": "Info" }, diff --git a/configuration/cardano/mainnet-config.json b/configuration/cardano/mainnet-config.json index eeb676748ab..addca215601 100644 --- a/configuration/cardano/mainnet-config.json +++ b/configuration/cardano/mainnet-config.json @@ -8,7 +8,6 @@ "ConsensusMode": "PraosMode", "ConwayGenesisFile": "mainnet-conway-genesis.json", "ConwayGenesisHash": "15a199f895e461ec0ffc6dd4e4028af28a492ab4e806d39cb674c88f7643ef62", - "EnableP2P": true, "LastKnownBlockVersion-Alt": 0, "LastKnownBlockVersion-Major": 3, "LastKnownBlockVersion-Minor": 0, @@ -19,8 +18,7 @@ "SnapshotInterval": 4320 }, "MaxKnownMajorProtocolVersion": 2, - "MinNodeVersion": "10.4.0", - "PeerSharing": true, + "MinNodeVersion": "10.6.0", "Protocol": "Cardano", "RequiresNetworkMagic": "RequiresNoMagic", "ShelleyGenesisFile": "mainnet-shelley-genesis.json", @@ -86,12 +84,6 @@ "Mempool.AttemptAdd": { "severity": "Silence" }, - "Mempool.LedgerFound": { - "severity": "Silence" - }, - "Mempool.LedgerNotFound": { - "severity": "Silence" - }, "Mempool.SyncNotNeeded": { "severity": "Silence" }, @@ -101,12 +93,6 @@ "Net.ConnectionManager.Remote.ConnectionManagerCounters": { "severity": "Silence" }, - "Net.ErrorPolicy": { - "severity": "Info" - }, - "Net.ErrorPolicy.Local": { - "severity": "Info" - }, "Net.InboundGovernor": { "severity": "Warning" }, @@ -119,12 +105,6 @@ "Net.PeerSelection": { "severity": "Silence" }, - "Net.Subscription.DNS": { - "severity": "Info" - }, - "Net.Subscription.IP": { - "severity": "Info" - }, "Resources": { "severity": "Silence" }, diff --git a/configuration/cardano/mainnet-config.yaml b/configuration/cardano/mainnet-config.yaml index 11bab7f5f06..78a3df39c47 100644 --- a/configuration/cardano/mainnet-config.yaml +++ b/configuration/cardano/mainnet-config.yaml @@ -14,8 +14,6 @@ ShelleyGenesisHash: 1a3be38bcbb7911969283716ad7aa550250226b76a61fc51cc9a9a35d927 CheckpointsFile: mainnet-checkpoints.json CheckpointsFileHash: 3e6dee5bae7acc6d870187e72674b37c929be8c66e62a552cf6a876b1af31ade -EnableP2P: True - ##### Core protocol parameters ##### Protocol: Cardano @@ -36,11 +34,10 @@ MaxKnownMajorProtocolVersion: 2 ##### Network Configuration ##### -PeerSharing: True - # The following control the number of outbound connections to strictly our upstream peers # cf. https://developers.cardano.org/docs/operate-a-stake-pool/node-operations/topology -# defaults are provided by ouroboros-network, but can be overridden by uncommenting below: +# +# Defaults are provided by ouroboros-network, but can be overridden by uncommenting below: # SyncTargetNumberOfActiveBigLedgerPeers: 30 # SyncTargetNumberOfActivePeers: 5 # SyncTargetNumberOfEstablishedBigLedgerPeers: 40 @@ -53,8 +50,15 @@ PeerSharing: True # TargetNumberOfEstablishedBigLedgerPeers: 10 # TargetNumberOfEstablishedPeers: 30 # TargetNumberOfKnownBigLedgerPeers: 15 -# TargetNumberOfKnownPeers: 150 -# TargetNumberOfRootPeers: 60 +# +# Additionally, as of ouroboros-network `0.22.2` with cardano-node `10.6.0`, +# the following three node config parameters which previously required +# explicit configuration depending on whether the node is a forger are now +# handled automatically. +# +# PeerSharing: false for forgers, true for non-forgers +# TargetNumberOfKnownPeers: set according to forging status +# TargetNumberOfRootPeers: set according to forging status # When syncing in Genesis mode, this is the minimum number of active connections # to big ledger peers needed to continue: @@ -85,7 +89,11 @@ LedgerDB: ##### Version Information ##### -MinNodeVersion: 10.4.0 +# Min is currently 10.6.0 for proper default handling of PeerSharing, +# TargetNumberOfKnownPeers and TargetNumberOfRootPeers parameters depending +# on whether node is a forger or not, as well as removal of legacy +# networking mode. +MinNodeVersion: 10.6.0 ##### Logging configuration ##### @@ -216,12 +224,6 @@ TraceOptions: Net.ConnectionManager.Remote.ConnectionManagerCounters: severity: Silence - Net.ErrorPolicy: - severity: Info - - Net.ErrorPolicy.Local: - severity: Info - Net.InboundGovernor: severity: Warning @@ -234,12 +236,6 @@ TraceOptions: Net.PeerSelection: severity: Silence - Net.Subscription.DNS: - severity: Info - - Net.Subscription.IP: - severity: Info - Resources: severity: Silence @@ -257,12 +253,6 @@ TraceOptions: Mempool.AttemptAdd: severity: Silence - Mempool.LedgerFound: - severity: Silence - - Mempool.LedgerNotFound: - severity: Silence - Mempool.SyncNotNeeded: severity: Silence diff --git a/configuration/cardano/mainnet-peer-snapshot.json b/configuration/cardano/mainnet-peer-snapshot.json index b8af6640ce3..c8d9580b8da 100644 --- a/configuration/cardano/mainnet-peer-snapshot.json +++ b/configuration/cardano/mainnet-peer-snapshot.json @@ -1,172 +1,252 @@ { "bigLedgerPools": [ { - "accumulatedStake": 0.0046978803796026095, - "relativeStake": 0.0046978803796026095, + "accumulatedStake": 0.004980791062469443, + "relativeStake": 0.004980791062469443, "relays": [ { - "domain": "relays-2a.cardano.figment.io", - "port": 3001 + "address": "relay-pool-ledger-2-mainnet.cardano.aeq5f.com" + } + ] + }, + { + "accumulatedStake": 0.009780309925426122, + "relativeStake": 0.004799518862956679, + "relays": [ + { + "address": "relay1.p2p.mainnet.cardano.p2p.org", + "port": 6001 }, { - "domain": "relays-2b.cardano.figment.io", - "port": 3001 + "address": "relay2.p2p.mainnet.cardano.p2p.org", + "port": 6001 } ] }, { - "accumulatedStake": 0.008308890001152286, - "relativeStake": 0.0036110096215496755, + "accumulatedStake": 0.014123042765455349, + "relativeStake": 0.004342732840029226, "relays": [ { - "domain": "Relay1.NordicPool.org", - "port": 3005 - }, + "address": "relay-pool-figment-3-mainnet.cardano.aeq5f.com" + } + ] + }, + { + "accumulatedStake": 0.0180934542357895, + "relativeStake": 0.0039704114703341545, + "relays": [ { - "domain": "Relay2.NordicPool.org", - "port": 3005 + "address": "57.128.184.27", + "port": 3001 }, { - "domain": "Relay3.NordicPool.org", + "address": "57.128.184.86", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.021982802338109605, + "relativeStake": 0.003889348102320103, + "relays": [ + { + "address": "92a8429c.cardano-relay.herd.run", + "port": 1338 + } + ] + }, + { + "accumulatedStake": 0.025685528610362586, + "relativeStake": 0.003702726272252979, + "relays": [ + { + "address": "Relay1.NordicPool.org", "port": 3005 }, { - "domain": "Relay4.NordicPool.org", + "address": "Relay2.NordicPool.org", "port": 3005 }, { - "domain": "Relay5.NordicPool.org", + "address": "Relay3.NordicPool.org", "port": 3005 }, { - "domain": "Relay6.NordicPool.org", + "address": "Relay4.NordicPool.org", "port": 3005 } ] }, { - "accumulatedStake": 0.01182528197666577, - "relativeStake": 0.0035163919755134858, + "accumulatedStake": 0.029270784349754213, + "relativeStake": 0.003585255739391627, "relays": [ { - "domain": "cardanosuisse.com", + "address": "cardanosuisse.com", "port": 170 }, { - "domain": "cardanosuisse.com", + "address": "cardanosuisse.com", "port": 171 }, { - "domain": "cardanosuisse.com", + "address": "cardanosuisse.com", "port": 172 } ] }, { - "accumulatedStake": 0.015340230483269391, - "relativeStake": 0.003514948506603621, + "accumulatedStake": 0.03283115960998117, + "relativeStake": 0.0035603752602269586, "relays": [ { - "address": "148.113.17.23", - "port": 6000 + "address": "relay1.mainnet.pool.cardano.services", + "port": 3001 }, { - "address": "158.69.25.103", - "port": 6000 - }, + "address": "relay2.mainnet.pool.cardano.services", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.03638630709380288, + "relativeStake": 0.0035551474838217143, + "relays": [ { - "address": "95.216.4.252", + "address": "95.154.235.142", "port": 6000 }, { - "address": "178.18.250.204", - "port": 6000 + "address": "217.155.18.115", + "port": 6003 }, { - "address": "148.113.17.23", - "port": 6000 + "address": "217.155.18.115", + "port": 6001 + } + ] + }, + { + "accumulatedStake": 0.039936510682677534, + "relativeStake": 0.0035502035888746483, + "relays": [ + { + "address": "relays.bladepool.com", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.04348206920420425, + "relativeStake": 0.0035455585215267197, + "relays": [ + { + "address": "relay-kiln-7-0.cardano.mainnet.kiln.fi", + "port": 3001 }, { - "address": "158.69.25.103", - "port": 6000 + "address": "relay-kiln-7-1.cardano.mainnet.kiln.fi", + "port": 3001 }, { - "address": "95.216.4.252", + "address": "relay-kiln-7-2.cardano.mainnet.kiln.fi", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.04702685515508765, + "relativeStake": 0.003544785950883395, + "relays": [ + { + "address": "bd-cardano-main-relay-12-a.bdnodes.net", "port": 6000 }, { - "address": "178.18.250.204", + "address": "bd-cardano-main-relay-12-b.bdnodes.net", "port": 6000 } ] }, { - "accumulatedStake": 0.01885343599649912, - "relativeStake": 0.00351320551322973, + "accumulatedStake": 0.050567858155431585, + "relativeStake": 0.0035410030003439363, "relays": [ { - "domain": "relay-kiln-0-0.cardano.mainnet.kiln.fi", - "port": 3001 + "address": "Relay1.NordicPool.org", + "port": 3005 }, { - "domain": "relay-kiln-0-1.cardano.mainnet.kiln.fi", - "port": 3001 + "address": "Relay2.NordicPool.org", + "port": 3005 }, { - "domain": "relay-kiln-0-2.cardano.mainnet.kiln.fi", - "port": 3001 + "address": "Relay3.NordicPool.org", + "port": 3005 + }, + { + "address": "Relay4.NordicPool.org", + "port": 3005 } ] }, { - "accumulatedStake": 0.022365636418634382, - "relativeStake": 0.003512200422135261, + "accumulatedStake": 0.054095284876277176, + "relativeStake": 0.0035274267208455896, "relays": [ { - "address": "95.154.235.142", - "port": 6000 + "address": "relay1.snakepool.link", + "port": 3001 }, { - "address": "217.155.18.115", - "port": 6003 - }, + "address": "relay2.snakepool.link", + "port": 3002 + } + ] + }, + { + "accumulatedStake": 0.05761214723288437, + "relativeStake": 0.003516862356607194, + "relays": [ { - "address": "217.155.18.115", - "port": 6001 + "address": "13.236.12.204", + "port": 8332 } ] }, { - "accumulatedStake": 0.025864893089216537, - "relativeStake": 0.0034992566705821537, + "accumulatedStake": 0.061125219782237436, + "relativeStake": 0.0035130725493530703, "relays": [ { - "domain": "relays.bladepool.com", - "port": 3001 + "address": "13.211.73.179", + "port": 8332 } ] }, { - "accumulatedStake": 0.029347783867888434, - "relativeStake": 0.0034828907786718963, + "accumulatedStake": 0.06462920767021461, + "relativeStake": 0.003503987887977179, "relays": [ { - "domain": "relay-kiln-1-0.cardano.mainnet.kiln.fi", + "address": "relay-kiln-2-0.cardano.mainnet.kiln.fi", "port": 3001 }, { - "domain": "relay-kiln-1-1.cardano.mainnet.kiln.fi", + "address": "relay-kiln-2-1.cardano.mainnet.kiln.fi", "port": 3001 }, { - "domain": "relay-kiln-1-2.cardano.mainnet.kiln.fi", + "address": "relay-kiln-2-2.cardano.mainnet.kiln.fi", "port": 3001 } ] }, { - "accumulatedStake": 0.03283052233192693, - "relativeStake": 0.003482738464038498, + "accumulatedStake": 0.06813192233169214, + "relativeStake": 0.003502714661477528, "relays": [ { "address": "178.128.79.219", @@ -179,496 +259,510 @@ ] }, { - "accumulatedStake": 0.036312159384212894, - "relativeStake": 0.003481637052285964, + "accumulatedStake": 0.07163205943071657, + "relativeStake": 0.003500137099024428, "relays": [ { - "domain": "eu.relays.cardanians.io", - "port": 1000 - }, - { - "domain": "ca.relays.cardanians.io", - "port": 1000 + "address": "relays.wavepool.digital", + "port": 3001 } ] }, { - "accumulatedStake": 0.03979038026577972, - "relativeStake": 0.003478220881566825, + "accumulatedStake": 0.07513063848830215, + "relativeStake": 0.003498579057585582, "relays": [ { - "domain": "relay-kiln-3-0.cardano.mainnet.kiln.fi", + "address": "relay-kiln-3-0.cardano.mainnet.kiln.fi", "port": 3001 }, { - "domain": "relay-kiln-3-1.cardano.mainnet.kiln.fi", + "address": "relay-kiln-3-1.cardano.mainnet.kiln.fi", "port": 3001 }, { - "domain": "relay-kiln-3-2.cardano.mainnet.kiln.fi", + "address": "relay-kiln-3-2.cardano.mainnet.kiln.fi", "port": 3001 } ] }, { - "accumulatedStake": 0.043268156058601966, - "relativeStake": 0.003477775792822244, + "accumulatedStake": 0.0786211564320899, + "relativeStake": 0.0034905179437877422, "relays": [ { - "address": "13.236.12.204", - "port": 8332 + "address": "relays.wavepool.digital", + "port": 3001 } ] }, { - "accumulatedStake": 0.04674447033680533, - "relativeStake": 0.0034763142782033673, + "accumulatedStake": 0.08209839306444489, + "relativeStake": 0.0034772366323549873, "relays": [ { - "domain": "Relay1.NordicPool.org", - "port": 3005 - }, - { - "domain": "Relay2.NordicPool.org", - "port": 3005 - }, + "address": "162.120.71.180", + "port": 6000 + } + ] + }, + { + "accumulatedStake": 0.0855723191352537, + "relativeStake": 0.0034739260708088237, + "relays": [ { - "domain": "Relay3.NordicPool.org", - "port": 3005 + "address": "relay01.ca.lovelace.community", + "port": 3001 }, { - "domain": "Relay4.NordicPool.org", - "port": 3005 + "address": "relay02.ca.lovelace.community", + "port": 3001 }, { - "domain": "Relay5.NordicPool.org", - "port": 3005 + "address": "relay01.fr.lovelace.community", + "port": 3001 }, { - "domain": "Relay6.NordicPool.org", - "port": 3005 + "address": "relay01.de.lovelace.community", + "port": 3001 } ] }, { - "accumulatedStake": 0.05021870195645891, - "relativeStake": 0.0034742316196535753, + "accumulatedStake": 0.08903802648545098, + "relativeStake": 0.0034657073501972654, "relays": [ { - "address": "13.211.73.179", - "port": 8332 + "address": "relays.wavepool.digital", + "port": 3001 } ] }, { - "accumulatedStake": 0.05369207526902389, - "relativeStake": 0.0034733733125649835, + "accumulatedStake": 0.09250244574770124, + "relativeStake": 0.00346441926225026, "relays": [ { - "domain": "relays.wavepool.digital", + "address": "r1.spirestaking.com", "port": 3001 } ] }, { - "accumulatedStake": 0.057146855572210775, - "relativeStake": 0.003454780303186885, + "accumulatedStake": 0.09595608511376956, + "relativeStake": 0.003453639366068327, "relays": [ { - "domain": "relays.wavepool.digital", + "address": "42.cardano.staked.cloud", "port": 3001 } ] }, { - "accumulatedStake": 0.06060086867045238, - "relativeStake": 0.003454013098241609, + "accumulatedStake": 0.09940956545443323, + "relativeStake": 0.003453480340663678, "relays": [ { - "domain": "46.cardano.staked.cloud", + "address": "41.cardano.staked.cloud", "port": 3001 } ] }, { - "accumulatedStake": 0.06405474776099919, - "relativeStake": 0.0034538790905468027, + "accumulatedStake": 0.10286301601577802, + "relativeStake": 0.0034534505613447843, "relays": [ { - "domain": "45.cardano.staked.cloud", + "address": "46.cardano.staked.cloud", "port": 3001 } ] }, { - "accumulatedStake": 0.06750857979672732, - "relativeStake": 0.0034538320357281388, + "accumulatedStake": 0.10631642117651682, + "relativeStake": 0.003453405160738806, "relays": [ { - "domain": "44.cardano.staked.cloud", + "address": "45.cardano.staked.cloud", "port": 3001 } ] }, { - "accumulatedStake": 0.07096230480200535, - "relativeStake": 0.0034537250052780323, + "accumulatedStake": 0.10976974906066364, + "relativeStake": 0.00345332788414682, "relays": [ { - "domain": "41.cardano.staked.cloud", + "address": "47.cardano.staked.cloud", "port": 3001 } ] }, { - "accumulatedStake": 0.0744156177667713, - "relativeStake": 0.0034533129647659434, + "accumulatedStake": 0.11322295063832859, + "relativeStake": 0.0034532015776649414, "relays": [ { - "domain": "r1.spirestaking.com", + "address": "44.cardano.staked.cloud", "port": 3001 } ] }, { - "accumulatedStake": 0.07786273025503154, - "relativeStake": 0.0034471124882602413, + "accumulatedStake": 0.11667214889034645, + "relativeStake": 0.0034491982520178637, "relays": [ { - "address": "173.15.110.154", - "port": 6000 + "address": "relay.cardano.securestaking.io", + "port": 3000 }, { - "address": "173.15.110.155", - "port": 6000 + "address": "secur2.cardano.securestaking.io", + "port": 3000 } ] }, { - "accumulatedStake": 0.08129878739236472, - "relativeStake": 0.0034360571373331823, + "accumulatedStake": 0.12011295730801268, + "relativeStake": 0.003440808417666229, "relays": [ { - "domain": "relay-kiln-2-0.cardano.mainnet.kiln.fi", - "port": 3001 + "address": "gateway.adavault.com", + "port": 4021 }, { - "domain": "relay-kiln-2-1.cardano.mainnet.kiln.fi", - "port": 3001 + "address": "gateway.adavault.com", + "port": 4022 }, { - "domain": "relay-kiln-2-2.cardano.mainnet.kiln.fi", - "port": 3001 + "address": "gateway.adavault.com", + "port": 4026 + }, + { + "address": "gateway.adavault.com", + "port": 4027 } ] }, { - "accumulatedStake": 0.08472578516713812, - "relativeStake": 0.0034269977747733984, + "accumulatedStake": 0.1235519484378119, + "relativeStake": 0.003438991129799226, "relays": [ { - "domain": "Relay1.NordicPool.org", - "port": 3005 - }, - { - "domain": "Relay2.NordicPool.org", - "port": 3005 - }, - { - "domain": "Relay3.NordicPool.org", - "port": 3005 - }, - { - "domain": "Relay4.NordicPool.org", - "port": 3005 + "address": "85.215.129.208", + "port": 3001 }, { - "domain": "Relay5.NordicPool.org", - "port": 3005 + "address": "154.26.158.189", + "port": 3001 }, { - "domain": "Relay6.NordicPool.org", - "port": 3005 + "address": "5.104.83.174", + "port": 3001 } ] }, { - "accumulatedStake": 0.08815131217546857, - "relativeStake": 0.003425527008330439, + "accumulatedStake": 0.12698850566654024, + "relativeStake": 0.0034365572287283234, "relays": [ { - "domain": "relays.wavepool.digital", - "port": 3001 + "address": "173.15.110.154", + "port": 6000 + }, + { + "address": "173.15.110.155", + "port": 6000 } ] }, { - "accumulatedStake": 0.09157475084216306, - "relativeStake": 0.0034234386666945, + "accumulatedStake": 0.13042090834496015, + "relativeStake": 0.0034324026784199133, "relays": [ { - "domain": "Relay1.NordicPool.org", - "port": 3005 - }, - { - "domain": "Relay2.NordicPool.org", - "port": 3005 + "address": "eu.relays.cardanians.io", + "port": 1000 }, { - "domain": "Relay3.NordicPool.org", - "port": 3005 - }, + "address": "ca.relays.cardanians.io", + "port": 1000 + } + ] + }, + { + "accumulatedStake": 0.13384894703634345, + "relativeStake": 0.0034280386913833074, + "relays": [ { - "domain": "Relay4.NordicPool.org", - "port": 3005 + "address": "r1.adastat.net", + "port": 3333 }, { - "domain": "Relay5.NordicPool.org", - "port": 3005 + "address": "r2.adastat.net", + "port": 3333 }, { - "domain": "Relay6.NordicPool.org", - "port": 3005 + "address": "r3.adastat.net", + "port": 3333 } ] }, { - "accumulatedStake": 0.09499798841344878, - "relativeStake": 0.0034232375712857145, + "accumulatedStake": 0.13727506571116588, + "relativeStake": 0.003426118674822417, "relays": [ { - "domain": "relays-8a.cardano.2k2aa.com", - "port": 3001 - }, + "address": "26e894b1.cardano-relay.herd.run", + "port": 1338 + } + ] + }, + { + "accumulatedStake": 0.1406981551763655, + "relativeStake": 0.0034230894651996278, + "relays": [ { - "domain": "relays-8b.cardano.aeq5f.com", + "address": "relays.wavepool.digital", "port": 3001 } ] }, { - "accumulatedStake": 0.09842028878924473, - "relativeStake": 0.003422300375795954, + "accumulatedStake": 0.14411698300628184, + "relativeStake": 0.003418827829916339, "relays": [ { - "domain": "gateway.adavault.com", + "address": "gateway.adavault.com", "port": 4021 }, { - "domain": "gateway.adavault.com", + "address": "gateway.adavault.com", "port": 4022 }, { - "domain": "gateway.adavault.com", + "address": "gateway.adavault.com", "port": 4026 }, { - "domain": "gateway.adavault.com", + "address": "gateway.adavault.com", "port": 4027 } ] }, { - "accumulatedStake": 0.10183491045921002, - "relativeStake": 0.0034146216699652843, + "accumulatedStake": 0.1475173514198773, + "relativeStake": 0.003400368413595468, "relays": [ { - "domain": "relay.cardano.securestaking.io", - "port": 3000 + "address": "Relay1.NordicPool.org", + "port": 3005 }, { - "domain": "secur2.cardano.securestaking.io", - "port": 3000 + "address": "Relay2.NordicPool.org", + "port": 3005 + }, + { + "address": "Relay3.NordicPool.org", + "port": 3005 + }, + { + "address": "Relay4.NordicPool.org", + "port": 3005 } ] }, { - "accumulatedStake": 0.10524843836042695, - "relativeStake": 0.0034135279012169326, + "accumulatedStake": 0.15091674155598128, + "relativeStake": 0.00339939013610399, "relays": [ { - "domain": "f9395b98.cardano-relay.herd.run", - "port": 1338 + "address": "Relay1.NordicPool.org", + "port": 3005 + }, + { + "address": "Relay2.NordicPool.org", + "port": 3005 + }, + { + "address": "Relay3.NordicPool.org", + "port": 3005 + }, + { + "address": "Relay4.NordicPool.org", + "port": 3005 } ] }, { - "accumulatedStake": 0.10865759018392875, - "relativeStake": 0.003409151823501796, + "accumulatedStake": 0.154313197439802, + "relativeStake": 0.0033964558838207115, "relays": [ { - "domain": "gateway.adavault.com", + "address": "gateway.adavault.com", "port": 4021 }, { - "domain": "gateway.adavault.com", + "address": "gateway.adavault.com", "port": 4022 }, { - "domain": "gateway.adavault.com", + "address": "gateway.adavault.com", "port": 4026 }, { - "domain": "gateway.adavault.com", + "address": "gateway.adavault.com", "port": 4027 } ] }, { - "accumulatedStake": 0.11206174014319631, - "relativeStake": 0.003404149959267572, + "accumulatedStake": 0.15770136923025543, + "relativeStake": 0.0033881717904534273, "relays": [ { - "domain": "relays.wavepool.digital", + "address": "relay-kiln-1-0.cardano.mainnet.kiln.fi", "port": 3001 - } - ] - }, - { - "accumulatedStake": 0.11546298519133957, - "relativeStake": 0.0034012450481432613, - "relays": [ + }, { - "domain": "r-eu-1.polypool.io", - "port": 4001 + "address": "relay-kiln-1-1.cardano.mainnet.kiln.fi", + "port": 3001 }, { - "domain": "r-sg-1.polypool.io", - "port": 4001 + "address": "relay-kiln-1-2.cardano.mainnet.kiln.fi", + "port": 3001 } ] }, { - "accumulatedStake": 0.11882618906256656, - "relativeStake": 0.00336320387122698, + "accumulatedStake": 0.16108445422172407, + "relativeStake": 0.003383084991468628, "relays": [ { - "domain": "relays.wavepool.digital", + "address": "relays.wavepool.digital", "port": 3001 } ] }, { - "accumulatedStake": 0.12218762934596275, - "relativeStake": 0.0033614402833961996, + "accumulatedStake": 0.16446373215427043, + "relativeStake": 0.0033792779325463596, "relays": [ { - "domain": "Relay1.NordicPool.org", + "address": "cof-1.cardanocafe.org", "port": 3005 }, { - "domain": "Relay2.NordicPool.org", - "port": 3005 + "address": "cof-2.cardanocafe.org", + "port": 3010 }, { - "domain": "Relay3.NordicPool.org", - "port": 3005 + "address": "cap-1.cardanocafe.org", + "port": 4000 }, { - "domain": "Relay4.NordicPool.org", - "port": 3005 + "address": "cap-2.cardanocafe.org", + "port": 4005 }, { - "domain": "Relay5.NordicPool.org", - "port": 3005 + "address": "lat-1.cardanocafe.org", + "port": 5001 }, { - "domain": "Relay6.NordicPool.org", - "port": 3005 + "address": "lat-2.cardanocafe.org", + "port": 5002 } ] }, { - "accumulatedStake": 0.12554629884932592, - "relativeStake": 0.003358669503363155, + "accumulatedStake": 0.16783247657109632, + "relativeStake": 0.003368744416825902, "relays": [ { - "address": "162.120.71.180", + "address": "relay1.nihaocardano.com", + "port": 6000 + }, + { + "address": "relay2.nihaocardano.com", "port": 6000 } ] }, { - "accumulatedStake": 0.12890295022719228, - "relativeStake": 0.0033566513778663567, + "accumulatedStake": 0.17119924948978285, + "relativeStake": 0.0033667729186865284, "relays": [ { - "domain": "27.cardano.staked.cloud", - "port": 3001 - } + "address": "olive-geonosis-edffc.cardano.bdnodes.net", + "port": 6000 + }, + { + "address": "violet-kingston-8d67e.cardano.bdnodes.net", + "port": 6000 + } ] }, { - "accumulatedStake": 0.1322572147303395, - "relativeStake": 0.0033542645031472244, + "accumulatedStake": 0.17455542935184426, + "relativeStake": 0.0033561798620614053, "relays": [ { - "domain": "28.cardano.staked.cloud", + "address": "27.cardano.staked.cloud", "port": 3001 } ] }, { - "accumulatedStake": 0.13560918004133332, - "relativeStake": 0.003351965310993821, + "accumulatedStake": 0.17790910445564442, + "relativeStake": 0.0033536751038001655, "relays": [ { - "domain": "26.cardano.staked.cloud", + "address": "28.cardano.staked.cloud", "port": 3001 } ] }, { - "accumulatedStake": 0.138936216084602, - "relativeStake": 0.0033270360432686922, + "accumulatedStake": 0.18126044175527092, + "relativeStake": 0.0033513372996265057, "relays": [ { - "domain": "gateway.adavault.com", - "port": 4021 - }, - { - "domain": "gateway.adavault.com", - "port": 4022 - }, - { - "domain": "gateway.adavault.com", - "port": 4026 - }, - { - "domain": "gateway.adavault.com", - "port": 4027 + "address": "26.cardano.staked.cloud", + "port": 3001 } ] }, { - "accumulatedStake": 0.14226067052620014, - "relativeStake": 0.0033244544415981505, + "accumulatedStake": 0.18460601933114365, + "relativeStake": 0.0033455775758727178, "relays": [ { - "domain": "cardano-main.everstake.one", + "address": "cardano-relays.autostake.com", "port": 3001 - }, - { - "domain": "cardano-main2.everstake.one", - "port": 3001 - }, + } + ] + }, + { + "accumulatedStake": 0.18794504549740018, + "relativeStake": 0.003339026166256551, + "relays": [ { - "domain": "cardano-relay.everstake.one", + "address": "relay-kiln-4-0.cardano.mainnet.kiln.fi", "port": 3001 }, { - "domain": "cardano-relay1.everstake.one", + "address": "relay-kiln-4-1.cardano.mainnet.kiln.fi", "port": 3001 }, { - "domain": "cardano-relay2.everstake.one", + "address": "relay-kiln-4-2.cardano.mainnet.kiln.fi", "port": 3001 } ] }, { - "accumulatedStake": 0.1455759481250578, - "relativeStake": 0.0033152775988576394, + "accumulatedStake": 0.191261693517827, + "relativeStake": 0.003316648020426801, "relays": [ { "address": "46.101.9.225", @@ -681,562 +775,496 @@ ] }, { - "accumulatedStake": 0.14886746469591533, - "relativeStake": 0.003291516570857541, + "accumulatedStake": 0.19456904447796664, + "relativeStake": 0.003307350960139647, "relays": [ { - "domain": "relay-kiln-4-0.cardano.mainnet.kiln.fi", - "port": 3001 + "address": "r-eu-0.titanstaking.io", + "port": 4321 }, { - "domain": "relay-kiln-4-1.cardano.mainnet.kiln.fi", - "port": 3001 + "address": "r-eu-1.titanstaking.io", + "port": 4321 }, { - "domain": "relay-kiln-4-2.cardano.mainnet.kiln.fi", - "port": 3001 + "address": "r-eu-2.titanstaking.io", + "port": 4321 } ] }, { - "accumulatedStake": 0.15214756214472466, - "relativeStake": 0.0032800974488093222, + "accumulatedStake": 0.19785923596622487, + "relativeStake": 0.003290191488258223, "relays": [ { - "domain": "8d6f8de4.cardano-relay.herd.run", + "address": "7ddb9c28.cardano-relay.bison.run", "port": 1338 } ] }, { - "accumulatedStake": 0.15542652835251475, - "relativeStake": 0.003278966207790078, - "relays": [ - { - "address": "148.113.17.23", - "port": 6000 - }, - { - "address": "158.69.25.103", - "port": 6000 - }, - { - "address": "95.216.70.238", - "port": 6000 - }, - { - "address": "149.102.140.234", - "port": 6000 - } - ] - }, - { - "accumulatedStake": 0.15870311957183245, - "relativeStake": 0.003276591219317704, + "accumulatedStake": 0.20114878937404432, + "relativeStake": 0.003289553407819438, "relays": [ { - "domain": "b3e201f4.cardano-relay.bison.run", - "port": 1338 + "address": "43.cardano.staked.cloud", + "port": 3001 } ] }, { - "accumulatedStake": 0.161978512274644, - "relativeStake": 0.003275392702811561, + "accumulatedStake": 0.20442965052919274, + "relativeStake": 0.0032808611551484223, "relays": [ { - "domain": "b3bbbcac.cardano-relay.bison.run", + "address": "8d6f8de4.cardano-relay.herd.run", "port": 1338 } ] }, { - "accumulatedStake": 0.16525309433447344, - "relativeStake": 0.0032745820598294286, + "accumulatedStake": 0.20771041785959402, + "relativeStake": 0.003280767330401282, "relays": [ { - "domain": "ddbb5a06.cardano-relay.herd.run", + "address": "b3e201f4.cardano-relay.bison.run", "port": 1338 } ] }, { - "accumulatedStake": 0.16852262307909663, - "relativeStake": 0.00326952874462319, + "accumulatedStake": 0.21098739533982844, + "relativeStake": 0.003276977480234439, "relays": [ { - "domain": "r1.adastat.net", - "port": 3333 + "address": "r-eu-0.titanstaking.io", + "port": 4321 }, { - "domain": "r2.adastat.net", - "port": 3333 + "address": "r-eu-1.titanstaking.io", + "port": 4321 }, { - "domain": "r3.adastat.net", - "port": 3333 + "address": "r-eu-2.titanstaking.io", + "port": 4321 } ] }, { - "accumulatedStake": 0.17179213325223466, - "relativeStake": 0.0032695101731380328, + "accumulatedStake": 0.21426201323419086, + "relativeStake": 0.003274617894362416, "relays": [ { - "domain": "7ddb9c28.cardano-relay.bison.run", + "address": "b3bbbcac.cardano-relay.bison.run", "port": 1338 } ] }, { - "accumulatedStake": 0.17506140238411041, - "relativeStake": 0.0032692691318757577, + "accumulatedStake": 0.21753622553354907, + "relativeStake": 0.0032742122993582134, "relays": [ { - "domain": "e4527900.cardano-relay.herd.run", + "address": "ddbb5a06.cardano-relay.herd.run", "port": 1338 } ] }, { - "accumulatedStake": 0.17832941439312058, - "relativeStake": 0.0032680120090101674, + "accumulatedStake": 0.22080519997119835, + "relativeStake": 0.003268974437649272, "relays": [ { - "domain": "9a956262.cardano-relay.bison.run", - "port": 1338 + "address": "35.75.32.253", + "port": 6000 } ] }, { - "accumulatedStake": 0.18159715496236528, - "relativeStake": 0.0032677405692446973, + "accumulatedStake": 0.22407390252619233, + "relativeStake": 0.0032687025549939853, "relays": [ { - "domain": "f84db19f.cardano-relay.bison.run", + "address": "e4527900.cardano-relay.herd.run", "port": 1338 } ] }, { - "accumulatedStake": 0.18486457885097138, - "relativeStake": 0.0032674238886061034, + "accumulatedStake": 0.22734149294049574, + "relativeStake": 0.0032675904143034096, "relays": [ { - "domain": "778cb679.cardano-relay.bison.run", + "address": "9a956262.cardano-relay.bison.run", "port": 1338 } ] }, { - "accumulatedStake": 0.1881319680698661, - "relativeStake": 0.0032673892188947156, + "accumulatedStake": 0.23060874306283463, + "relativeStake": 0.0032672501223388957, "relays": [ { - "address": "35.75.32.253", - "port": 6000 + "address": "9dc533bf.cardano-relay.herd.run", + "port": 1338 } ] }, { - "accumulatedStake": 0.19139930273504197, - "relativeStake": 0.003267334665175869, + "accumulatedStake": 0.23387587968076132, + "relativeStake": 0.0032671366179266833, "relays": [ { - "domain": "fdd5329e.cardano-relay.bison.run", + "address": "f84db19f.cardano-relay.bison.run", "port": 1338 } ] }, { - "accumulatedStake": 0.19466649685629442, - "relativeStake": 0.0032671941212524666, + "accumulatedStake": 0.23714294592932728, + "relativeStake": 0.0032670662485659425, "relays": [ { - "domain": "bb78d57d.cardano-relay.bison.run", + "address": "fdd5329e.cardano-relay.bison.run", "port": 1338 } ] }, { - "accumulatedStake": 0.1979334652471549, - "relativeStake": 0.0032669683908604814, + "accumulatedStake": 0.24040980483071697, + "relativeStake": 0.0032668589013897164, "relays": [ { - "domain": "07f6ea55.cardano-relay.herd.run", + "address": "778cb679.cardano-relay.bison.run", "port": 1338 } ] }, { - "accumulatedStake": 0.20120039105944518, - "relativeStake": 0.0032669258122902775, + "accumulatedStake": 0.24367656112291008, + "relativeStake": 0.0032667562921931104, "relays": [ { - "domain": "72e508af.cardano-relay.herd.run", + "address": "bb78d57d.cardano-relay.bison.run", "port": 1338 } ] }, { - "accumulatedStake": 0.20446730532400423, - "relativeStake": 0.0032669142645590284, + "accumulatedStake": 0.24694310856623164, + "relativeStake": 0.003266547443321551, "relays": [ { - "domain": "9dc533bf.cardano-relay.herd.run", + "address": "dbe22510.cardano-relay.bison.run", "port": 1338 } ] }, { - "accumulatedStake": 0.2077341713256115, - "relativeStake": 0.0032668660016072987, + "accumulatedStake": 0.25020962277916053, + "relativeStake": 0.003266514212928878, "relays": [ { - "domain": "d489c136.cardano-relay.bison.run", + "address": "94cc7304.cardano-relay.bison.run", "port": 1338 } ] }, { - "accumulatedStake": 0.21100093854958324, - "relativeStake": 0.0032667672239717165, + "accumulatedStake": 0.25347612777567413, + "relativeStake": 0.003266504996513588, "relays": [ { - "domain": "a5f2af9f.cardano-relay.bison.run", + "address": "a94da6a8.cardano-relay.bison.run", "port": 1338 } ] }, { - "accumulatedStake": 0.21426768194062845, - "relativeStake": 0.0032667433910452126, + "accumulatedStake": 0.2567425847333821, + "relativeStake": 0.003266456957707937, "relays": [ { - "domain": "d89eeea0.cardano-relay.herd.run", + "address": "72e508af.cardano-relay.herd.run", "port": 1338 } ] }, { - "accumulatedStake": 0.21753440233580013, - "relativeStake": 0.003266720395171673, + "accumulatedStake": 0.2600089596742066, + "relativeStake": 0.003266374940824585, "relays": [ { - "domain": "dbe22510.cardano-relay.bison.run", + "address": "07f6ea55.cardano-relay.herd.run", "port": 1338 } ] }, { - "accumulatedStake": 0.22080111159559357, - "relativeStake": 0.0032667092597934585, + "accumulatedStake": 0.2632752435647216, + "relativeStake": 0.003266283890514974, "relays": [ { - "domain": "e646e266.cardano-relay.bison.run", + "address": "d89eeea0.cardano-relay.herd.run", "port": 1338 } ] }, { - "accumulatedStake": 0.22406771768431633, - "relativeStake": 0.003266606088722736, + "accumulatedStake": 0.2665414787900672, + "relativeStake": 0.0032662352253455982, "relays": [ { - "domain": "94cc7304.cardano-relay.bison.run", + "address": "d489c136.cardano-relay.bison.run", "port": 1338 } ] }, { - "accumulatedStake": 0.2273342733420951, - "relativeStake": 0.0032665556577788006, + "accumulatedStake": 0.2698077137359669, + "relativeStake": 0.0032662349458997173, "relays": [ { - "domain": "a94da6a8.cardano-relay.bison.run", + "address": "e646e266.cardano-relay.bison.run", "port": 1338 } ] }, { - "accumulatedStake": 0.23059546721538804, - "relativeStake": 0.0032611938732929184, + "accumulatedStake": 0.2730739006026576, + "relativeStake": 0.0032661868666907005, "relays": [ { - "domain": "relay-kiln-7-0.cardano.mainnet.kiln.fi", - "port": 3001 - }, - { - "domain": "relay-kiln-7-1.cardano.mainnet.kiln.fi", - "port": 3001 - }, - { - "domain": "relay-kiln-7-2.cardano.mainnet.kiln.fi", - "port": 3001 + "address": "a5f2af9f.cardano-relay.bison.run", + "port": 1338 } ] }, { - "accumulatedStake": 0.2338564222087215, - "relativeStake": 0.003260954993333456, + "accumulatedStake": 0.2763271121060471, + "relativeStake": 0.003253211503389481, "relays": [ { - "domain": "relay1-dl.aichi-stakepool.com", - "port": 6000 - }, - { - "domain": "relay2-jp.aichi-stakepool.com", + "address": "54.37.87.63", "port": 6000 }, { - "domain": "relay3-li.aichi-stakepool.com", + "address": "54.36.178.85", "port": 6000 } ] }, { - "accumulatedStake": 0.23708813070193557, - "relativeStake": 0.003231708493214084, + "accumulatedStake": 0.279579834167172, + "relativeStake": 0.003252722061124908, "relays": [ { - "address": "152.53.21.151", + "address": "relay1-dl.aichi-stakepool.com", "port": 6000 }, { - "address": "149.102.152.63", + "address": "relay2-jp.aichi-stakepool.com", "port": 6000 - } - ] - }, - { - "accumulatedStake": 0.2403171596005932, - "relativeStake": 0.003229028898657608, - "relays": [ + }, { - "domain": "relays.wavepool.digital", - "port": 3001 + "address": "relay3-li.aichi-stakepool.com", + "port": 6000 } ] }, { - "accumulatedStake": 0.24353370284349904, - "relativeStake": 0.0032165432429058552, + "accumulatedStake": 0.2828111405485743, + "relativeStake": 0.0032313063814022793, "relays": [ { - "domain": "relaynode1.bravostakepool.nl", + "address": "relay-kiln-6-0.cardano.mainnet.kiln.fi", "port": 3001 }, { - "domain": "relaynode2.bravostakepool.nl", + "address": "relay-kiln-6-1.cardano.mainnet.kiln.fi", "port": 3001 }, { - "domain": "relaynode3.bravostakepool.nl", + "address": "relay-kiln-6-2.cardano.mainnet.kiln.fi", "port": 3001 } ] }, { - "accumulatedStake": 0.24671189308961208, - "relativeStake": 0.0031781902461130492, + "accumulatedStake": 0.28602650399488966, + "relativeStake": 0.0032153634463153763, "relays": [ { - "domain": "relay1.str8pool.com", - "port": 7421 + "address": "relay.cardano.securestaking.io", + "port": 3000 }, { - "domain": "relay2.str8pool.com", - "port": 3611 - } - ] - }, - { - "accumulatedStake": 0.2498873671289386, - "relativeStake": 0.0031754740393265223, - "relays": [ - { - "domain": "cardano.staking.copper.co", - "port": 3001 + "address": "secur2.cardano.securestaking.io", + "port": 3000 } ] }, { - "accumulatedStake": 0.25305832024496844, - "relativeStake": 0.003170953116029828, + "accumulatedStake": 0.2892253084793785, + "relativeStake": 0.003198804484488856, "relays": [ { - "domain": "bd-cardano-main-relay-12-a.bdnodes.net", + "address": "relay1.clovernodes.io", "port": 6000 }, { - "domain": "bd-cardano-main-relay-12-b.bdnodes.net", + "address": "relay2.clovernodes.io", "port": 6000 } ] }, { - "accumulatedStake": 0.2562034593805283, - "relativeStake": 0.003145139135559887, + "accumulatedStake": 0.2924113606683101, + "relativeStake": 0.0031860521889315483, "relays": [ { - "domain": "relay1.clovernodes.io", - "port": 6000 - }, - { - "domain": "relay2.clovernodes.io", - "port": 6000 + "address": "cork.queenada.com", + "port": 7500 } ] }, { - "accumulatedStake": 0.25934542296172536, - "relativeStake": 0.0031419635811970317, + "accumulatedStake": 0.2955467603625135, + "relativeStake": 0.0031353996942033863, "relays": [ { - "domain": "cardano-relays.autostake.com", - "port": 3001 + "address": "rel01.fairpool.eu", + "port": 55001 + }, + { + "address": "rel02.fairpool.eu", + "port": 55002 + }, + { + "address": "rel03.fairpool.eu", + "port": 55003 + }, + { + "address": "rel04.fairpool.eu", + "port": 55004 } ] }, { - "accumulatedStake": 0.26248022372164254, - "relativeStake": 0.003134800759917198, + "accumulatedStake": 0.2986820441184428, + "relativeStake": 0.0031352837559293248, "relays": [ { - "address": "57.128.184.33", + "address": "relays.stakepool.at", "port": 3001 }, { - "address": "57.128.184.31", + "address": "relay-1.stakepool.at", "port": 3001 - } - ] - }, - { - "accumulatedStake": 0.26560819358463317, - "relativeStake": 0.0031279698629906043, - "relays": [ + }, { - "domain": "92a8429c.cardano-relay.herd.run", - "port": 1338 + "address": "relay-2.stakepool.at", + "port": 3001 } ] }, { - "accumulatedStake": 0.26873603422729603, - "relativeStake": 0.003127840642662881, + "accumulatedStake": 0.30179757426252324, + "relativeStake": 0.003115530144080468, "relays": [ { - "domain": "relay.cardano.securestaking.io", - "port": 3000 + "address": "157.173.120.233", + "port": 3001 }, { - "domain": "secur2.cardano.securestaking.io", - "port": 3000 + "address": "157.173.120.233", + "port": 3002 + }, + { + "address": "144.126.157.40", + "port": 3001 } ] }, { - "accumulatedStake": 0.27184949250348645, - "relativeStake": 0.003113458276190432, + "accumulatedStake": 0.3049011392995344, + "relativeStake": 0.003103565037011154, "relays": [ { - "domain": "cof-1.cardanocafe.org", + "address": "Relay1.NordicPool.org", "port": 3005 }, { - "domain": "cof-2.cardanocafe.org", - "port": 3010 - }, - { - "domain": "cap-1.cardanocafe.org", - "port": 4000 - }, - { - "domain": "cap-2.cardanocafe.org", - "port": 4005 + "address": "Relay2.NordicPool.org", + "port": 3005 }, { - "domain": "lat-1.cardanocafe.org", - "port": 5001 + "address": "Relay3.NordicPool.org", + "port": 3005 }, { - "domain": "lat-2.cardanocafe.org", - "port": 5002 + "address": "Relay4.NordicPool.org", + "port": 3005 } ] }, { - "accumulatedStake": 0.2749595741649345, - "relativeStake": 0.003110081661448043, + "accumulatedStake": 0.30800294237776754, + "relativeStake": 0.0031018030782331146, "relays": [ { - "domain": "relays-10a.cardano.2k2aa.com", - "port": 3001 + "address": "eu.relays.cardanians.io", + "port": 1000 }, { - "domain": "relays-10b.cardano.aeq5f.com", - "port": 3001 + "address": "ca.relays.cardanians.io", + "port": 1000 } ] }, { - "accumulatedStake": 0.2780586654798147, - "relativeStake": 0.0030990913148802065, + "accumulatedStake": 0.3110950871742053, + "relativeStake": 0.0030921447964377723, "relays": [ { - "address": "148.113.17.23", - "port": 6000 - }, - { - "address": "158.69.25.103", - "port": 6000 - }, - { - "address": "46.4.53.238", - "port": 6000 + "address": "r1.1percentpool.eu", + "port": 19001 }, { - "address": "149.102.140.164", - "port": 6000 + "address": "r2.1percentpool.eu", + "port": 19002 } ] }, { - "accumulatedStake": 0.2811403525886156, - "relativeStake": 0.003081687108800857, + "accumulatedStake": 0.31417053222433616, + "relativeStake": 0.003075445050130862, "relays": [ { - "domain": "r-eu-0.titanstaking.io", - "port": 4321 + "address": "norway.adanorthpool.com", + "port": 9011 }, { - "domain": "r-eu-1.titanstaking.io", - "port": 4321 + "address": "norway.adanorthpool.com", + "port": 9012 }, { - "domain": "r-eu-2.titanstaking.io", - "port": 4321 - } - ] - }, - { - "accumulatedStake": 0.28421628792530196, - "relativeStake": 0.0030759353366863673, - "relays": [ + "address": "norway.adanorthpool.com", + "port": 9014 + }, { - "address": "57.128.184.27", - "port": 3001 + "address": "norway2.adanorthpool.com", + "port": 9014 }, { - "address": "57.128.184.86", - "port": 3001 + "address": "norway2.adanorthpool.com", + "port": 9013 } ] }, { - "accumulatedStake": 0.2872904691762229, - "relativeStake": 0.003074181250920993, + "accumulatedStake": 0.31723737475826463, + "relativeStake": 0.003066842533928488, "relays": [ { "address": "109.123.231.213", @@ -1249,576 +1277,559 @@ ] }, { - "accumulatedStake": 0.29036144607785785, - "relativeStake": 0.0030709769016349195, + "accumulatedStake": 0.3202752699971051, + "relativeStake": 0.0030378952388404592, "relays": [ { - "domain": "cardano-main.everstake.one", + "address": "rockyrelay1.ddns.net", "port": 3001 }, { - "domain": "cardano-main2.everstake.one", - "port": 3001 - }, - { - "domain": "cardano-relay.everstake.one", - "port": 3001 - }, + "address": "rockyrelay2.ddns.net", + "port": 3002 + } + ] + }, + { + "accumulatedStake": 0.32330837980797034, + "relativeStake": 0.0030331098108652365, + "relays": [ { - "domain": "cardano-relay1.everstake.one", - "port": 3001 + "address": "relay1.able-pool.io", + "port": 4555 }, { - "domain": "cardano-relay2.everstake.one", - "port": 3001 + "address": "relay2.able-pool.io", + "port": 4419 } ] }, { - "accumulatedStake": 0.2934284701243953, - "relativeStake": 0.0030670240465374933, + "accumulatedStake": 0.3263413087554543, + "relativeStake": 0.00303292894748395, "relays": [ { - "domain": "relay.cardano.securestaking.io", - "port": 3000 - }, + "address": "relay-pool-ledger-3-mainnet.cardano.aeq5f.com" + } + ] + }, + { + "accumulatedStake": 0.32937277758529865, + "relativeStake": 0.003031468829844381, + "relays": [ { - "domain": "secur2.cardano.securestaking.io", - "port": 3000 + "address": "relays.onyxstakepool.com", + "port": 3001 } ] }, { - "accumulatedStake": 0.2964944628282982, - "relativeStake": 0.003065992703902873, + "accumulatedStake": 0.3323933273113732, + "relativeStake": 0.0030205497260745433, "relays": [ { - "domain": "relays.stakepool.at", + "address": "relay-kiln-0-0.cardano.mainnet.kiln.fi", "port": 3001 }, { - "domain": "relay-1.stakepool.at", + "address": "relay-kiln-0-1.cardano.mainnet.kiln.fi", "port": 3001 }, { - "domain": "relay-2.stakepool.at", + "address": "relay-kiln-0-2.cardano.mainnet.kiln.fi", "port": 3001 } ] }, { - "accumulatedStake": 0.29954908081583714, - "relativeStake": 0.0030546179875389247, + "accumulatedStake": 0.3354090156837964, + "relativeStake": 0.0030156883724231556, "relays": [ { - "address": "54.220.20.40", - "port": 3002 + "address": "r-eu-1.polypool.io", + "port": 4001 }, { - "domain": "octaluso.dyndns.org", - "port": 3002 + "address": "r-sg-1.polypool.io", + "port": 4001 } ] }, { - "accumulatedStake": 0.30260135406371763, - "relativeStake": 0.003052273247880506, + "accumulatedStake": 0.33841633588931075, + "relativeStake": 0.0030073202055143737, "relays": [ { - "address": "85.215.129.208", + "address": "lucerne.datadyne.earth", "port": 3001 }, { - "address": "154.26.158.189", - "port": 3001 + "address": "g5.datadyne.earth", + "port": 3002 }, { - "address": "5.104.83.174", - "port": 3001 + "address": "drcaroll.datadyne.earth", + "port": 3003 } ] }, { - "accumulatedStake": 0.30563905307521905, - "relativeStake": 0.0030376990115014175, + "accumulatedStake": 0.3414229136283157, + "relativeStake": 0.0030065777390049985, "relays": [ { - "domain": "relay.anonaf.com", - "port": 3333 - } - ] - }, - { - "accumulatedStake": 0.308667515357367, - "relativeStake": 0.003028462282147885, - "relays": [ + "address": "cardano-main.everstake.one", + "port": 3001 + }, { - "domain": "rockyrelay1.ddns.net", + "address": "cardano-main2.everstake.one", "port": 3001 }, { - "domain": "rockyrelay2.ddns.net", - "port": 3002 + "address": "cardano-relay.everstake.one", + "port": 3001 + }, + { + "address": "cardano-relay1.everstake.one", + "port": 3001 + }, + { + "address": "cardano-relay2.everstake.one", + "port": 3001 } ] }, { - "accumulatedStake": 0.311685174791887, - "relativeStake": 0.0030176594345200517, + "accumulatedStake": 0.34442481246572604, + "relativeStake": 0.0030018988374103115, "relays": [ { - "domain": "157.173.120.233", + "address": "relaynode1.bravostakepool.nl", "port": 3001 }, { - "domain": "157.173.120.233", - "port": 3002 + "address": "relaynode2.bravostakepool.nl", + "port": 3001 }, { - "domain": "144.126.157.40", + "address": "relaynode3.bravostakepool.nl", "port": 3001 } ] }, { - "accumulatedStake": 0.3146862739172632, - "relativeStake": 0.0030010991253761957, + "accumulatedStake": 0.3474258143725797, + "relativeStake": 0.0030010019068536574, "relays": [ { - "domain": "iogp3-relays.cardano.iog.io", + "address": "iogp2-relays.cardano.iog.io", "port": 3001 } ] }, { - "accumulatedStake": 0.3176873440878724, - "relativeStake": 0.0030010701706092405, + "accumulatedStake": 0.35042658245911934, + "relativeStake": 0.003000768086539652, "relays": [ { - "domain": "iogp4-relays.cardano.iog.io", + "address": "iogp3-relays.cardano.iog.io", "port": 3001 } ] }, { - "accumulatedStake": 0.3206883851219738, - "relativeStake": 0.0030010410341013423, + "accumulatedStake": 0.3534273107745076, + "relativeStake": 0.003000728315388249, "relays": [ { - "domain": "iogp2-relays.cardano.iog.io", + "address": "iogp4-relays.cardano.iog.io", "port": 3001 } ] }, { - "accumulatedStake": 0.32368799479127114, - "relativeStake": 0.0029996096692973735, + "accumulatedStake": 0.3564256764094287, + "relativeStake": 0.0029983656349210695, "relays": [ { - "domain": "relays-14a.cardano.2k2aa.com", - "port": 3001 - }, - { - "domain": "relays-14b.cardano.aeq5f.com", - "port": 3001 + "address": "relay.anonaf.com", + "port": 3333 } ] }, { - "accumulatedStake": 0.32668214032878223, - "relativeStake": 0.00299414553751105, + "accumulatedStake": 0.35939159589624664, + "relativeStake": 0.0029659194868179826, "relays": [ { - "domain": "relays.onyxstakepool.com", + "address": "52.6.109.221", "port": 3001 } ] }, { - "accumulatedStake": 0.3296744460716394, - "relativeStake": 0.0029923057428572126, + "accumulatedStake": 0.3623123371805754, + "relativeStake": 0.0029207412843287295, "relays": [ { - "address": "54.37.87.63", - "port": 6000 - }, - { - "address": "54.36.178.85", - "port": 6000 + "address": "octaluso.dyndns.org", + "port": 3002 } ] }, { - "accumulatedStake": 0.33265588958041203, - "relativeStake": 0.002981443508772629, + "accumulatedStake": 0.36522373626238047, + "relativeStake": 0.0029113990818051016, "relays": [ { - "domain": "cardano.staking.copper.co", - "port": 3001 + "address": "relay1.str8pool.com", + "port": 7421 + }, + { + "address": "relay2.str8pool.com", + "port": 3611 } ] }, { - "accumulatedStake": 0.3356265006105627, - "relativeStake": 0.002970611030150632, + "accumulatedStake": 0.36813333879128796, + "relativeStake": 0.002909602528907454, "relays": [ { - "domain": "25.cardano.staked.cloud", + "address": "91.242.214.33", + "port": 3001 + }, + { + "address": "186.233.187.33", "port": 3001 } ] }, { - "accumulatedStake": 0.3385845657778983, - "relativeStake": 0.002958065167335628, + "accumulatedStake": 0.37101641107427025, + "relativeStake": 0.0028830722829823133, "relays": [ { - "domain": "rel01.fairpool.eu", - "port": 55001 - }, - { - "domain": "rel02.fairpool.eu", - "port": 55002 + "address": "relays.stakepool.at", + "port": 3001 }, { - "domain": "rel03.fairpool.eu", - "port": 55003 + "address": "relay-1.stakepool.at", + "port": 3001 }, { - "domain": "rel04.fairpool.eu", - "port": 55004 + "address": "relay-2.stakepool.at", + "port": 3001 } ] }, { - "accumulatedStake": 0.3415404664285907, - "relativeStake": 0.002955900650692371, + "accumulatedStake": 0.37388399446118736, + "relativeStake": 0.002867583386917121, "relays": [ { - "domain": "relay1.adaocean.com", - "port": 6000 - }, - { - "domain": "relay2.adaocean.com", + "address": "ada-relay01.biglazycat.com", "port": 6000 - }, - { - "domain": "relay3.adaocean.com", - "port": 6000 - }, + } + ] + }, + { + "accumulatedStake": 0.37673443698260284, + "relativeStake": 0.0028504425214154363, + "relays": [ { - "domain": "relay4.adaocean.com", - "port": 6000 + "address": "relay1.apexfusionhosting.com", + "port": 3001 }, { - "domain": "relay5.adaocean.com", - "port": 6000 + "address": "relay2.apexfusionhosting.com", + "port": 3001 } ] }, { - "accumulatedStake": 0.3444900814245045, - "relativeStake": 0.0029496149959138164, + "accumulatedStake": 0.3795791921887536, + "relativeStake": 0.0028447552061507454, "relays": [ { - "domain": "relays.digi.pro", + "address": "52.6.109.221", "port": 3001 } ] }, { - "accumulatedStake": 0.34743953976999464, - "relativeStake": 0.002949458345490125, + "accumulatedStake": 0.38239636512073955, + "relativeStake": 0.0028171729319859764, + "relays": [ + { + "address": "6398a55d.cardano-relay.herd.run", + "port": 1338 + } + ] + }, + { + "accumulatedStake": 0.38520214478348086, + "relativeStake": 0.0028057796627413444, "relays": [ { - "domain": "relay1.snakerelays.link", + "address": "relay-trustwallet-5-0.cardano.mainnet.kiln.fi", "port": 3001 }, { - "domain": "relay2.snakerelays.link", - "port": 3002 + "address": "relay-trustwallet-5-1.cardano.mainnet.kiln.fi", + "port": 3001 + }, + { + "address": "relay-trustwallet-5-2.cardano.mainnet.kiln.fi", + "port": 3001 } ] }, { - "accumulatedStake": 0.3503640437931714, - "relativeStake": 0.0029245040231767492, + "accumulatedStake": 0.38799976400248076, + "relativeStake": 0.0027976192189998676, "relays": [ { - "domain": "r1.1percentpool.eu", - "port": 19001 - }, - { - "domain": "r2.1percentpool.eu", - "port": 19002 + "address": "relays.digi.pro", + "port": 3001 } ] }, { - "accumulatedStake": 0.3532732070832079, - "relativeStake": 0.002909163290036547, + "accumulatedStake": 0.39078399222144156, + "relativeStake": 0.0027842282189608114, "relays": [ { - "domain": "eu.relays.cardanians.io", - "port": 1000 + "address": "57.128.184.33", + "port": 3001 }, { - "domain": "ca.relays.cardanians.io", - "port": 1000 + "address": "57.128.184.31", + "port": 3001 } ] }, { - "accumulatedStake": 0.3561735522389771, - "relativeStake": 0.002900345155769215, + "accumulatedStake": 0.39353852409887974, + "relativeStake": 0.002754531877438193, "relays": [ { - "domain": "eu.relays.cardanians.io", + "address": "eu.relays.cardanians.io", "port": 1000 }, { - "domain": "ca.relays.cardanians.io", + "address": "ca.relays.cardanians.io", "port": 1000 } ] }, { - "accumulatedStake": 0.3590724670299164, - "relativeStake": 0.002898914790939283, + "accumulatedStake": 0.39625745560912473, + "relativeStake": 0.0027189315102450033, "relays": [ { - "domain": "relay1.adaocean.com", - "port": 6000 - }, - { - "domain": "relay2.adaocean.com", + "address": "148.113.17.23", "port": 6000 }, { - "domain": "relay3.adaocean.com", + "address": "158.69.25.103", "port": 6000 }, { - "domain": "relay4.adaocean.com", + "address": "46.4.53.238", "port": 6000 }, { - "domain": "relay5.adaocean.com", + "address": "149.102.140.164", "port": 6000 } ] }, { - "accumulatedStake": 0.3619357611926281, - "relativeStake": 0.002863294162711684, + "accumulatedStake": 0.39897409002135653, + "relativeStake": 0.002716634412231766, "relays": [ { - "domain": "relay1.mainnet.pool.cardano.services", - "port": 3001 + "address": "104.131.47.170", + "port": 6000 }, { - "domain": "relay2.mainnet.pool.cardano.services", - "port": 3001 + "address": "128.199.64.13", + "port": 6000 + }, + { + "address": "165.232.180.100", + "port": 6000 } ] }, { - "accumulatedStake": 0.3647895359090357, - "relativeStake": 0.0028537747164075985, + "accumulatedStake": 0.4016903060658087, + "relativeStake": 0.0027162160444521907, "relays": [ { - "domain": "r-eu-0.titanstaking.io", - "port": 4321 - }, - { - "domain": "r-eu-1.titanstaking.io", - "port": 4321 + "address": "r1.1percentpool.eu", + "port": 19001 }, { - "domain": "r-eu-2.titanstaking.io", - "port": 4321 + "address": "r2.1percentpool.eu", + "port": 19002 } ] }, { - "accumulatedStake": 0.36762474687947383, - "relativeStake": 0.0028352109704381035, + "accumulatedStake": 0.40436229093544623, + "relativeStake": 0.002671984869637523, "relays": [ { - "domain": "relays.stakepool.at", + "address": "cardano-main.everstake.one", "port": 3001 }, { - "domain": "relay-1.stakepool.at", + "address": "cardano-main2.everstake.one", "port": 3001 }, { - "domain": "relay-2.stakepool.at", - "port": 3001 - } - ] - }, - { - "accumulatedStake": 0.37044739110002345, - "relativeStake": 0.0028226442205496207, - "relays": [ - { - "address": "52.6.109.221", + "address": "cardano-relay.everstake.one", "port": 3001 - } - ] - }, - { - "accumulatedStake": 0.37326550932163427, - "relativeStake": 0.0028181182216108513, - "relays": [ - { - "address": "148.113.17.23", - "port": 6000 - }, - { - "address": "158.69.25.103", - "port": 6000 }, { - "address": "95.216.70.238", - "port": 6000 + "address": "cardano-relay1.everstake.one", + "port": 3001 }, { - "address": "149.102.140.196", - "port": 6000 + "address": "cardano-relay2.everstake.one", + "port": 3001 } ] }, { - "accumulatedStake": 0.37607004083289425, - "relativeStake": 0.0028045315112599557, + "accumulatedStake": 0.4070326234917032, + "relativeStake": 0.0026703325562569998, "relays": [ { - "address": "49.12.198.221", + "address": "st3ak.1337.cx", "port": 6000 }, { - "address": "89.58.18.51", + "address": "st3ak.mooo.com", "port": 6000 }, { - "address": "131.153.199.82", + "address": "st3ak.root.sx", "port": 6000 } ] }, { - "accumulatedStake": 0.3788385141159927, - "relativeStake": 0.002768473283098447, + "accumulatedStake": 0.409690951890238, + "relativeStake": 0.00265832839853479, "relays": [ { - "domain": "relay1-us.xstakepool.com", - "port": 3001 - }, - { - "domain": "relay2-eu.xstakepool.com", - "port": 3001 - }, - { - "domain": "relay3-sg.xstakepool.com", - "port": 3001 - }, - { - "domain": "relay4-ae.xstakepool.com", + "address": "129.80.153.243", "port": 3001 } ] }, { - "accumulatedStake": 0.381595559279801, - "relativeStake": 0.00275704516380832, + "accumulatedStake": 0.4123383166047779, + "relativeStake": 0.0026473647145398706, "relays": [ { - "domain": "relays.mainnet.pools.fivebinaries.com", + "address": "relays.smaug.pool.pm", "port": 3001 } ] }, { - "accumulatedStake": 0.3843277118645176, - "relativeStake": 0.0027321525847165667, + "accumulatedStake": 0.4149798835121191, + "relativeStake": 0.00264156690734123, "relays": [ { - "address": "91.242.214.33", + "address": "20.61.229.103", "port": 3001 }, { - "address": "186.233.187.33", + "address": "20.61.228.218", + "port": 3001 + }, + { + "address": "108.142.42.221", + "port": 3001 + }, + { + "address": "108.142.42.161", "port": 3001 } ] }, { - "accumulatedStake": 0.3870438364612258, - "relativeStake": 0.0027161245967082556, + "accumulatedStake": 0.4176043416184034, + "relativeStake": 0.0026244581062842233, "relays": [ { - "domain": "olive-geonosis-edffc.cardano.bdnodes.net", + "address": "relay1-dl.aichi-stakepool.com", + "port": 6000 + }, + { + "address": "relay2-jp.aichi-stakepool.com", "port": 6000 }, { - "domain": "violet-kingston-8d67e.cardano.bdnodes.net", + "address": "relay3-li.aichi-stakepool.com", "port": 6000 } ] }, { - "accumulatedStake": 0.38975034486362425, - "relativeStake": 0.0027065084023984555, + "accumulatedStake": 0.4201966345604372, + "relativeStake": 0.0025922929420338367, "relays": [ { - "domain": "r1.1percentpool.eu", - "port": 19001 + "address": "relay1.adaocean.com", + "port": 6000 }, { - "domain": "r2.1percentpool.eu", - "port": 19002 - } - ] - }, - { - "accumulatedStake": 0.39244785790434344, - "relativeStake": 0.0026975130407191467, - "relays": [ + "address": "relay2.adaocean.com", + "port": 6000 + }, { - "domain": "11.relays.happystaking.io", - "port": 3001 + "address": "relay3.adaocean.com", + "port": 6000 }, { - "domain": "12.relays.happystaking.io", - "port": 3001 + "address": "relay4.adaocean.com", + "port": 6000 + }, + { + "address": "relay5.adaocean.com", + "port": 6000 } ] }, { - "accumulatedStake": 0.395137196014782, - "relativeStake": 0.0026893381104385436, + "accumulatedStake": 0.4227830202620171, + "relativeStake": 0.002586385701579898, "relays": [ { - "domain": "relays.smaug.pool.pm", - "port": 3001 + "address": "77cb3f75.cardano-relay.herd.run", + "port": 1338 } ] }, { - "accumulatedStake": 0.3978228036156799, - "relativeStake": 0.0026856076008979516, + "accumulatedStake": 0.4253569799232601, + "relativeStake": 0.002573959661243013, "relays": [ { - "domain": "relays.cardanowithpaul.com", + "address": "relays.cardanowithpaul.com", "port": 1069 } ] }, { - "accumulatedStake": 0.40049295442762156, - "relativeStake": 0.0026701508119416407, + "accumulatedStake": 0.4279301917201518, + "relativeStake": 0.0025732117968916613, "relays": [ { "address": "35.211.17.86", @@ -1831,390 +1842,356 @@ ] }, { - "accumulatedStake": 0.4031567474043577, - "relativeStake": 0.002663792976736135, + "accumulatedStake": 0.430499569195212, + "relativeStake": 0.0025693774750602115, "relays": [ { - "domain": "relay1.apexfusionhosting.com", - "port": 3001 + "address": "sydney.cardanode.com.au", + "port": 6000 }, { - "domain": "relay2.apexfusionhosting.com", - "port": 3001 + "address": "singapore.cardanode.com.au", + "port": 6000 + }, + { + "address": "goldcoast.cardanode.com.au", + "port": 6000 + }, + { + "address": "europe.cardanode.com.au", + "port": 6000 } ] }, { - "accumulatedStake": 0.4057986057169931, - "relativeStake": 0.002641858312635436, + "accumulatedStake": 0.43302989353600646, + "relativeStake": 0.002530324340794481, "relays": [ { - "address": "20.61.229.103", - "port": 3001 - }, - { - "address": "20.61.228.218", - "port": 3001 - }, - { - "address": "108.142.42.221", - "port": 3001 - }, - { - "address": "108.142.42.161", + "address": "private-pools.fivebinaries.com", "port": 3001 } ] }, { - "accumulatedStake": 0.40843171431328684, - "relativeStake": 0.002633108596293698, + "accumulatedStake": 0.4355554982606311, + "relativeStake": 0.002525604724624653, "relays": [ { - "domain": "104.131.47.170", - "port": 6000 - }, - { - "domain": "128.199.64.13", - "port": 6000 + "address": "137.220.49.160", + "port": 6001 }, { - "domain": "165.232.180.100", - "port": 6000 + "address": "149.28.106.237", + "port": 6001 } ] }, { - "accumulatedStake": 0.4110485636201134, - "relativeStake": 0.0026168493068265686, + "accumulatedStake": 0.43807183740216443, + "relativeStake": 0.002516339141533346, "relays": [ { - "address": "198.71.57.191", + "address": "148.113.17.23", "port": 6000 }, { - "address": "154.12.240.223", + "address": "158.69.25.103", "port": 6000 }, { - "address": "94.16.113.130", + "address": "95.216.70.238", + "port": 6000 + }, + { + "address": "149.102.140.196", "port": 6000 } ] }, { - "accumulatedStake": 0.4136588289693021, - "relativeStake": 0.002610265349188723, + "accumulatedStake": 0.44057748828069304, + "relativeStake": 0.0025056508785285736, "relays": [ { - "address": "52.6.109.221", + "address": "40.cardano.staked.cloud", "port": 3001 } ] }, { - "accumulatedStake": 0.4162260108422686, - "relativeStake": 0.002567181872966517, + "accumulatedStake": 0.44307057931078714, + "relativeStake": 0.0024930910300941115, "relays": [ { - "domain": "relay1.adaocean.com", - "port": 6000 + "address": "fr.relays.cardanians.io", + "port": 1000 }, { - "domain": "relay2.adaocean.com", - "port": 6000 - }, + "address": "ca.relays.cardanians.io", + "port": 1000 + } + ] + }, + { + "accumulatedStake": 0.44556003446667036, + "relativeStake": 0.002489455155883217, + "relays": [ { - "domain": "relay3.adaocean.com", + "address": "49.12.198.221", "port": 6000 }, { - "domain": "relay4.adaocean.com", + "address": "89.58.18.51", "port": 6000 }, { - "domain": "relay5.adaocean.com", + "address": "131.153.199.82", "port": 6000 } ] }, { - "accumulatedStake": 0.41878471236144454, - "relativeStake": 0.002558701519175888, + "accumulatedStake": 0.4480131018297284, + "relativeStake": 0.002453067363058082, "relays": [ { - "domain": "relay.de.fikapool.com", + "address": "3.217.90.52", "port": 6000 }, { - "domain": "relay.sg.fikapool.com", + "address": "3.219.254.127", "port": 6000 - }, + } + ] + }, + { + "accumulatedStake": 0.4504606863720125, + "relativeStake": 0.0024475845422840146, + "relays": [ { - "domain": "relay.ca.fikapool.com", - "port": 6000 + "address": "a0e18895.cardano-relay.bison.run", + "port": 1338 } ] }, { - "accumulatedStake": 0.4213419890383342, - "relativeStake": 0.002557276676889663, + "accumulatedStake": 0.45290732742652096, + "relativeStake": 0.00244664105450849, "relays": [ { - "domain": "relay-kiln-6-0.cardano.mainnet.kiln.fi", + "address": "cardano-main.everstake.one", + "port": 3001 + }, + { + "address": "cardano-main2.everstake.one", "port": 3001 }, { - "domain": "relay-kiln-6-1.cardano.mainnet.kiln.fi", + "address": "cardano-relay.everstake.one", "port": 3001 }, { - "domain": "relay-kiln-6-2.cardano.mainnet.kiln.fi", + "address": "cardano-relay1.everstake.one", + "port": 3001 + }, + { + "address": "cardano-relay2.everstake.one", "port": 3001 } ] }, { - "accumulatedStake": 0.423894765942093, - "relativeStake": 0.002552776903758832, + "accumulatedStake": 0.45535006748921275, + "relativeStake": 0.002442740062691802, "relays": [ { - "domain": "77cb3f75.cardano-relay.herd.run", - "port": 1338 + "address": "25.cardano.staked.cloud", + "port": 3001 } ] }, { - "accumulatedStake": 0.42644041599312266, - "relativeStake": 0.0025456500510296393, + "accumulatedStake": 0.45779210083350746, + "relativeStake": 0.0024420333442947413, "relays": [ { - "domain": "sydney.cardanode.com.au", - "port": 6000 - }, - { - "domain": "singapore.cardanode.com.au", - "port": 6000 + "address": "86.80.128.65", + "port": 3001 }, { - "domain": "goldcoast.cardanode.com.au", - "port": 6000 + "address": "86.80.128.65", + "port": 3002 }, { - "domain": "europe.cardanode.com.au", - "port": 6000 + "address": "86.80.128.65", + "port": 3003 } ] }, { - "accumulatedStake": 0.42895854862135885, - "relativeStake": 0.0025181326282361803, + "accumulatedStake": 0.46022067574009196, + "relativeStake": 0.0024285749065844804, "relays": [ { - "domain": "st3ak.1337.cx", - "port": 6000 - }, - { - "domain": "st3ak.mooo.com", - "port": 6000 - }, - { - "domain": "st3ak.root.sx", - "port": 6000 + "address": "94c3c6d3.cardano-relay.herd.run", + "port": 1338 } ] }, { - "accumulatedStake": 0.4314732580770781, - "relativeStake": 0.0025147094557192596, + "accumulatedStake": 0.46264473878556195, + "relativeStake": 0.0024240630454699878, "relays": [ { - "address": "3.217.90.52", - "port": 6000 + "address": "relay1.0aaaa.org", + "port": 3001 }, { - "address": "3.219.254.127", - "port": 6000 + "address": "relay2.0aaaa.org", + "port": 3001 } ] }, { - "accumulatedStake": 0.4339692681478013, - "relativeStake": 0.0024960100707231694, + "accumulatedStake": 0.4650686918421195, + "relativeStake": 0.002423953056557543, "relays": [ { - "address": "35.156.192.95", - "port": 6000 - }, - { - "address": "18.197.51.215", - "port": 6000 + "address": "644dd09c.cardano-relay.herd.run", + "port": 1338 } ] }, { - "accumulatedStake": 0.43644736915153903, - "relativeStake": 0.002478101003737767, + "accumulatedStake": 0.46747388222939007, + "relativeStake": 0.002405190387270561, "relays": [ { - "domain": "fr.relays.cardanians.io", - "port": 1000 - }, - { - "domain": "ca.relays.cardanians.io", - "port": 1000 + "address": "f9395b98.cardano-relay.herd.run", + "port": 1338 } ] }, { - "accumulatedStake": 0.43892472274748584, - "relativeStake": 0.0024773535959468226, + "accumulatedStake": 0.46987410696318993, + "relativeStake": 0.0024002247337998584, "relays": [ { - "domain": "benitoite-rohan-d68b9.cardano.bdnodes.net", + "address": "35.156.192.95", "port": 6000 }, { - "domain": "brown-lagos-6a470.cardano.bdnodes.net", + "address": "18.197.51.215", "port": 6000 } ] }, { - "accumulatedStake": 0.4413942534665278, - "relativeStake": 0.002469530719041894, + "accumulatedStake": 0.4722629196972088, + "relativeStake": 0.002388812734018865, "relays": [ { - "domain": "lucerne.datadyne.earth", + "address": "private-pools.fivebinaries.com", "port": 3001 - }, - { - "domain": "g5.datadyne.earth", - "port": 3002 - }, - { - "domain": "drcaroll.datadyne.earth", - "port": 3003 } ] }, { - "accumulatedStake": 0.4438602765055538, - "relativeStake": 0.0024660230390260674, + "accumulatedStake": 0.4746423225914227, + "relativeStake": 0.0023794028942138875, "relays": [ { - "domain": "relays.wavepool.digital", - "port": 3001 + "address": "d699483e.cardano-relay.bison.run", + "port": 1338 } ] }, { - "accumulatedStake": 0.44632247093149024, - "relativeStake": 0.00246219442593644, + "accumulatedStake": 0.4770003691846536, + "relativeStake": 0.0023580465932309586, "relays": [ { - "address": "15.204.97.132", + "address": "cardano-main.everstake.one", "port": 3001 }, { - "address": "15.204.97.130", + "address": "cardano-main2.everstake.one", "port": 3001 - } - ] - }, - { - "accumulatedStake": 0.448774722609638, - "relativeStake": 0.0024522516781477813, - "relays": [ - { - "domain": "relay1-dl.aichi-stakepool.com", - "port": 6000 - }, - { - "domain": "relay2-jp.aichi-stakepool.com", - "port": 6000 }, { - "domain": "relay3-li.aichi-stakepool.com", - "port": 6000 - } - ] - }, - { - "accumulatedStake": 0.45121025636380585, - "relativeStake": 0.0024355337541677913, - "relays": [ - { - "domain": "relay-trustwallet-5-0.cardano.mainnet.kiln.fi", + "address": "cardano-relay.everstake.one", "port": 3001 }, { - "domain": "relay-trustwallet-5-1.cardano.mainnet.kiln.fi", + "address": "cardano-relay1.everstake.one", "port": 3001 }, { - "domain": "relay-trustwallet-5-2.cardano.mainnet.kiln.fi", + "address": "cardano-relay2.everstake.one", "port": 3001 } ] }, { - "accumulatedStake": 0.45363196111932574, - "relativeStake": 0.00242170475551993, + "accumulatedStake": 0.4793545299759012, + "relativeStake": 0.002354160791247618, "relays": [ { - "domain": "relay1.0aaaa.org", - "port": 3001 + "address": "relay.cardano.securestaking.io", + "port": 3000 }, { - "domain": "relay2.0aaaa.org", - "port": 3001 + "address": "secur2.cardano.securestaking.io", + "port": 3000 } ] }, { - "accumulatedStake": 0.45604498978225133, - "relativeStake": 0.0024130286629255758, + "accumulatedStake": 0.4817042229614421, + "relativeStake": 0.002349692985540848, "relays": [ { - "domain": "relay1.able-pool.io", - "port": 4555 - }, - { - "domain": "relay2.able-pool.io", - "port": 4419 + "address": "c61ace08.cardano-relay.herd.run", + "port": 1338 } ] }, { - "accumulatedStake": 0.4584471335018261, - "relativeStake": 0.0024021437195747386, + "accumulatedStake": 0.4840506895634887, + "relativeStake": 0.0023464666020466133, "relays": [ { - "domain": "cardano-main.everstake.one", + "address": "ada10753.allnodes.me", "port": 3001 }, { - "domain": "cardano-main2.everstake.one", + "address": "ada12179.allnodes.me", "port": 3001 }, { - "domain": "cardano-relay.everstake.one", + "address": "ada20364.allnodes.me", "port": 3001 }, { - "domain": "cardano-relay1.everstake.one", + "address": "ada21853.allnodes.me", "port": 3001 - }, + } + ] + }, + { + "accumulatedStake": 0.4863843615881083, + "relativeStake": 0.002333672024619635, + "relays": [ { - "domain": "cardano-relay2.everstake.one", - "port": 3001 + "address": "52.177.36.96", + "port": 3000 } ] }, { - "accumulatedStake": 0.4607802215576634, - "relativeStake": 0.002333088055837304, + "accumulatedStake": 0.488717017558169, + "relativeStake": 0.0023326559700606415, "relays": [ { "address": "20.61.229.103", @@ -2235,8 +2212,8 @@ ] }, { - "accumulatedStake": 0.4631133026655041, - "relativeStake": 0.002333081107840733, + "accumulatedStake": 0.4910493671478093, + "relativeStake": 0.002332349589640301, "relays": [ { "address": "20.61.229.103", @@ -2257,8 +2234,8 @@ ] }, { - "accumulatedStake": 0.4654462159632506, - "relativeStake": 0.002332913297746474, + "accumulatedStake": 0.4933817126149892, + "relativeStake": 0.0023323454671799254, "relays": [ { "address": "20.61.229.103", @@ -2279,8 +2256,8 @@ ] }, { - "accumulatedStake": 0.4677788187238631, - "relativeStake": 0.0023326027606125335, + "accumulatedStake": 0.4957140552573993, + "relativeStake": 0.0023323426424101163, "relays": [ { "address": "20.61.229.103", @@ -2301,8 +2278,8 @@ ] }, { - "accumulatedStake": 0.47011141071893686, - "relativeStake": 0.002332591995073764, + "accumulatedStake": 0.49804638996022793, + "relativeStake": 0.0023323347028286288, "relays": [ { "address": "20.61.229.103", @@ -2323,8 +2300,8 @@ ] }, { - "accumulatedStake": 0.47244399762773875, - "relativeStake": 0.0023325869088018573, + "accumulatedStake": 0.5003787195773457, + "relativeStake": 0.0023323296171177538, "relays": [ { "address": "20.61.229.103", @@ -2345,8 +2322,8 @@ ] }, { - "accumulatedStake": 0.4747765845365406, - "relativeStake": 0.0023325869088018573, + "accumulatedStake": 0.5027110491944634, + "relativeStake": 0.0023323296171177538, "relays": [ { "address": "20.61.229.103", @@ -2367,126 +2344,181 @@ ] }, { - "accumulatedStake": 0.4770801349270183, - "relativeStake": 0.002303550390477686, + "accumulatedStake": 0.5049680172248179, + "relativeStake": 0.0022569680303544276, "relays": [ { - "address": "52.177.36.96", + "address": "152.53.21.151", + "port": 6000 + }, + { + "address": "149.102.152.63", + "port": 6000 + } + ] + }, + { + "accumulatedStake": 0.5072093076422023, + "relativeStake": 0.0022412904173843866, + "relays": [ + { + "address": "11.relays.happystaking.io", + "port": 3001 + }, + { + "address": "12.relays.happystaking.io", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.5094318190474157, + "relativeStake": 0.002222511405213472, + "relays": [ + { + "address": "35.211.17.86", + "port": 3000 + }, + { + "address": "34.23.88.7", "port": 3000 } ] }, { - "accumulatedStake": 0.47938124775772684, - "relativeStake": 0.0023011128307085715, + "accumulatedStake": 0.5116400722951858, + "relativeStake": 0.002208253247770069, "relays": [ { - "address": "137.220.49.160", + "address": "89.58.38.12", "port": 6001 }, { - "address": "149.28.106.237", + "address": "94.23.40.22", + "port": 6001 + }, + { + "address": "37.120.189.7", "port": 6001 } ] }, { - "accumulatedStake": 0.4816677993368645, - "relativeStake": 0.0022865515791376232, + "accumulatedStake": 0.5138378163567584, + "relativeStake": 0.0021977440615725333, "relays": [ { - "domain": "eu-relay.hermes-stakepool.com", - "port": 1000 + "address": "188.165.236.202", + "port": 3001 }, { - "domain": "us-relay.hermes-stakepool.com", - "port": 1000 + "address": "195.201.107.114", + "port": 3001 } ] }, { - "accumulatedStake": 0.4839412784047188, - "relativeStake": 0.0022734790678543017, + "accumulatedStake": 0.5160170270185629, + "relativeStake": 0.002179210661804561, "relays": [ { - "address": "66.160.158.69", - "port": 6000 - }, - { - "address": "66.160.158.70", - "port": 6000 + "address": "relay0.viperstaking.com", + "port": 4444 } ] }, { - "accumulatedStake": 0.48620766643039487, - "relativeStake": 0.002266388025676063, + "accumulatedStake": 0.5181780865966096, + "relativeStake": 0.0021610595780467076, "relays": [ { - "address": "35.211.17.86", + "address": "relay0.fimi.vn", "port": 3000 }, { - "address": "34.23.88.7", + "address": "relay1.fimi.vn", + "port": 3000 + }, + { + "address": "relay2.fimi.vn", "port": 3000 } ] }, { - "accumulatedStake": 0.4884615832768297, - "relativeStake": 0.0022539168464348405, + "accumulatedStake": 0.5203391308152037, + "relativeStake": 0.0021610442185940825, "relays": [ { - "domain": "ACLrelay1.cardanoland.com", - "port": 6000 + "address": "relay-pool-bitvavo-1-mainnet.cardano.aeq5f.com" + } + ] + }, + { + "accumulatedStake": 0.5224576983563632, + "relativeStake": 0.002118567541159515, + "relays": [ + { + "address": "relay.azureada.com", + "port": 3001 }, { - "domain": "ACLrelay2.cardanoland.com", - "port": 7000 + "address": "relay.azureada.com", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.5245653450257427, + "relativeStake": 0.0021076466693794793, + "relays": [ + { + "address": "relay1.adaocean.com", + "port": 6000 }, { - "domain": "ACLrelay3.cardanoland.com", - "port": 8000 + "address": "relay2.adaocean.com", + "port": 6000 }, { - "domain": "ACLrelay4.cardanoland.com", + "address": "relay3.adaocean.com", "port": 6000 }, { - "domain": "ACLrelay5.cardanoland.com", - "port": 7000 + "address": "relay4.adaocean.com", + "port": 6000 }, { - "domain": "ACLrelay6.cardanoland.com", - "port": 8000 + "address": "relay5.adaocean.com", + "port": 6000 } ] }, { - "accumulatedStake": 0.4907118754562999, - "relativeStake": 0.002250292179470227, + "accumulatedStake": 0.526669575062155, + "relativeStake": 0.002104230036412248, "relays": [ { - "domain": "relay1-us.xstakepool.com", + "address": "relay1-us.xstakepool.com", "port": 3001 }, { - "domain": "relay2-eu.xstakepool.com", + "address": "relay2-eu.xstakepool.com", "port": 3001 }, { - "domain": "relay3-sg.xstakepool.com", + "address": "relay3-sg.xstakepool.com", "port": 3001 }, { - "domain": "relay4-ae.xstakepool.com", + "address": "relay4-ae.xstakepool.com", "port": 3001 } ] }, { - "accumulatedStake": 0.49293739765270245, - "relativeStake": 0.0022255221964025246, + "accumulatedStake": 0.5287678937740006, + "relativeStake": 0.0020983187118455843, "relays": [ { "address": "18.157.253.103", @@ -2495,96 +2527,114 @@ ] }, { - "accumulatedStake": 0.4951451643794488, - "relativeStake": 0.0022077667267463128, + "accumulatedStake": 0.5308648297162806, + "relativeStake": 0.002096935942280032, "relays": [ { - "address": "57.128.184.28", - "port": 3001 - }, - { - "address": "57.128.184.30", - "port": 3001 + "address": "relay-pool-bitvavo-2-mainnet.cardano.aeq5f.com" } ] }, { - "accumulatedStake": 0.4973459814151828, - "relativeStake": 0.0022008170357340727, + "accumulatedStake": 0.5329600914140269, + "relativeStake": 0.00209526169774635, "relays": [ { - "domain": "relay0.viperstaking.com", - "port": 4444 - } - ] - }, - { - "accumulatedStake": 0.4995173635268888, - "relativeStake": 0.0021713821117059734, - "relays": [ + "address": "ACLrelay1.cardanoland.com", + "port": 6000 + }, { - "domain": "relay.azureada.com", - "port": 3001 + "address": "ACLrelay2.cardanoland.com", + "port": 7000 }, { - "domain": "relay.azureada.com", - "port": 3001 + "address": "ACLrelay3.cardanoland.com", + "port": 8000 + }, + { + "address": "ACLrelay4.cardanoland.com", + "port": 6000 + }, + { + "address": "ACLrelay5.cardanoland.com", + "port": 7000 + }, + { + "address": "ACLrelay6.cardanoland.com", + "port": 8000 } ] }, { - "accumulatedStake": 0.5016723348319972, - "relativeStake": 0.0021549713051084193, + "accumulatedStake": 0.5350546563987809, + "relativeStake": 0.0020945649847539513, "relays": [ { - "domain": "eu1.stakecool.io", + "address": "eu1.stakecool.io", "port": 4001 }, { - "domain": "eu2.stakecool.io", + "address": "eu2.stakecool.io", "port": 4001 }, { - "domain": "ca1.stakecool.io", + "address": "ca1.stakecool.io", "port": 4001 } ] }, { - "accumulatedStake": 0.5038138341308888, - "relativeStake": 0.0021414992988915355, + "accumulatedStake": 0.5371411579765344, + "relativeStake": 0.0020865015777535626, "relays": [ { - "domain": "relays.digi.pro", - "port": 3001 + "address": "relay-pool-bitvavo-3-mainnet.cardano.aeq5f.com" } ] }, { - "accumulatedStake": 0.5059429535076853, - "relativeStake": 0.0021291193767964543, + "accumulatedStake": 0.539226598334027, + "relativeStake": 0.002085440357492527, "relays": [ { - "domain": "relay01.ca.lovelace.community", - "port": 3001 + "address": "relay1.adaocean.com", + "port": 6000 }, { - "domain": "relay02.ca.lovelace.community", - "port": 3001 + "address": "relay2.adaocean.com", + "port": 6000 }, { - "domain": "relay01.fr.lovelace.community", - "port": 3001 + "address": "relay3.adaocean.com", + "port": 6000 }, { - "domain": "relay01.de.lovelace.community", - "port": 3001 + "address": "relay4.adaocean.com", + "port": 6000 + }, + { + "address": "relay5.adaocean.com", + "port": 6000 + } + ] + }, + { + "accumulatedStake": 0.5412972169008907, + "relativeStake": 0.0020706185668638087, + "relays": [ + { + "address": "eu-relay.hermes-stakepool.com", + "port": 1000 + }, + { + "address": "us-relay.hermes-stakepool.com", + "port": 1000 } ] }, { - "accumulatedStake": 0.5080667476604476, - "relativeStake": 0.0021237941527623254, + "accumulatedStake": 0.5433536097617904, + "relativeStake": 0.0020563928608996035, "relays": [ { "address": "150.136.111.193", @@ -2601,486 +2651,394 @@ ] }, { - "accumulatedStake": 0.5101830422923245, - "relativeStake": 0.0021162946318769253, + "accumulatedStake": 0.5454083613320831, + "relativeStake": 0.0020547515702928247, "relays": [ { - "domain": "relay-1.minswap.org", - "port": 3001 + "address": "66.160.158.69", + "port": 6000 }, { - "domain": "relay-2.minswap.org", - "port": 3001 + "address": "66.160.158.70", + "port": 6000 } ] }, { - "accumulatedStake": 0.5122992660877903, - "relativeStake": 0.002116223795465884, + "accumulatedStake": 0.5474451165964308, + "relativeStake": 0.0020367552643476617, "relays": [ { - "address": "188.165.236.202", - "port": 3001 - }, - { - "address": "195.201.107.114", - "port": 3001 + "address": "c2504518.cardano-relay.bison.run", + "port": 1338 } ] }, { - "accumulatedStake": 0.5144086575573985, - "relativeStake": 0.002109391469608166, + "accumulatedStake": 0.5494609767971222, + "relativeStake": 0.002015860200691445, "relays": [ { - "domain": "relay.sunnyada.com", - "port": 5001 + "address": "102.130.127.242", + "port": 6000 + }, + { + "address": "94.16.106.16", + "port": 6000 } ] }, { - "accumulatedStake": 0.516514120877437, - "relativeStake": 0.0021054633200384594, + "accumulatedStake": 0.551466153039391, + "relativeStake": 0.0020051762422686396, "relays": [ { - "domain": "cardano-main.everstake.one", - "port": 3001 - }, - { - "domain": "cardano-main2.everstake.one", - "port": 3001 + "address": "germany.cardanode.io", + "port": 6000 }, { - "domain": "cardano-relay.everstake.one", - "port": 3001 + "address": "missouri.cardanode.io", + "port": 6000 }, { - "domain": "cardano-relay1.everstake.one", - "port": 3001 + "address": "la.cardanode.io", + "port": 6000 }, { - "domain": "cardano-relay2.everstake.one", - "port": 3001 + "address": "perth.cardanode.io", + "port": 6000 } ] }, { - "accumulatedStake": 0.5185919444611566, - "relativeStake": 0.00207782358371971, + "accumulatedStake": 0.5534554838069643, + "relativeStake": 0.00198933076757338, "relays": [ { - "domain": "adar1.stakit.io", - "port": 30500 + "address": "relay-pool-3-mainnet.cardano.aeq5f.com" } ] }, { - "accumulatedStake": 0.5206566902348788, - "relativeStake": 0.00206474577372217, + "accumulatedStake": 0.5554440891609937, + "relativeStake": 0.0019886053540294213, "relays": [ { - "address": "52.8.37.3", + "address": "relay1.nedscave.io", "port": 3001 }, { - "address": "3.125.252.182", + "address": "relay2.nedscave.io", "port": 3001 }, { - "address": "52.63.225.190", + "address": "relay3.nedscave.io", "port": 3001 - } - ] - }, - { - "accumulatedStake": 0.522713978141767, - "relativeStake": 0.002057287906888112, - "relays": [ + }, { - "domain": "ada-relay01.biglazycat.com", - "port": 6000 + "address": "relay4.nedscave.io", + "port": 3001 } ] }, { - "accumulatedStake": 0.5247708271373008, - "relativeStake": 0.0020568489955338615, + "accumulatedStake": 0.5573970550549652, + "relativeStake": 0.0019529658939714818, "relays": [ { - "domain": "cardano.staking.copper.co", + "address": "cardano-main.everstake.one", "port": 3001 - } - ] - }, - { - "accumulatedStake": 0.5268227808354382, - "relativeStake": 0.002051953698137413, - "relays": [ + }, + { + "address": "cardano-main2.everstake.one", + "port": 3001 + }, + { + "address": "cardano-relay.everstake.one", + "port": 3001 + }, { - "domain": "cardano.staking.copper.co", + "address": "cardano-relay1.everstake.one", + "port": 3001 + }, + { + "address": "cardano-relay2.everstake.one", "port": 3001 } ] }, { - "accumulatedStake": 0.5288740175825508, - "relativeStake": 0.0020512367471125998, + "accumulatedStake": 0.5593403669142257, + "relativeStake": 0.00194331185926049, "relays": [ { - "domain": "cardano-main.everstake.one", + "address": "cardano-main.everstake.one", "port": 3001 }, { - "domain": "cardano-main2.everstake.one", + "address": "cardano-main2.everstake.one", "port": 3001 }, { - "domain": "cardano-relay.everstake.one", + "address": "cardano-relay.everstake.one", "port": 3001 }, { - "domain": "cardano-relay1.everstake.one", + "address": "cardano-relay1.everstake.one", "port": 3001 }, { - "domain": "cardano-relay2.everstake.one", + "address": "cardano-relay2.everstake.one", "port": 3001 } ] }, { - "accumulatedStake": 0.5309192069486762, - "relativeStake": 0.002045189366125407, + "accumulatedStake": 0.5612770853535364, + "relativeStake": 0.0019367184393106244, "relays": [ { - "domain": "relay.cardano.securestaking.io", - "port": 3000 - }, - { - "domain": "secur2.cardano.securestaking.io", - "port": 3000 + "address": "adar1.stakit.io", + "port": 30500 } ] }, { - "accumulatedStake": 0.5329636344160245, - "relativeStake": 0.0020444274673482713, + "accumulatedStake": 0.56319501275033, + "relativeStake": 0.0019179273967936928, "relays": [ { - "domain": "relay1.nedscave.io", - "port": 3001 + "address": "cardano-relays-1.nu.fi", + "port": 3003 }, { - "domain": "relay2.nedscave.io", + "address": "cardano-relays-2.nu.fi", "port": 3001 - }, + } + ] + }, + { + "accumulatedStake": 0.5651106049087955, + "relativeStake": 0.0019155921584655233, + "relays": [ { - "domain": "relay3.nedscave.io", + "address": "relay-1.minswap.org", "port": 3001 }, { - "domain": "relay4.nedscave.io", + "address": "relay-2.minswap.org", "port": 3001 } ] }, { - "accumulatedStake": 0.5350032881514016, - "relativeStake": 0.0020396537353770706, + "accumulatedStake": 0.5670216020460184, + "relativeStake": 0.0019109971372228596, "relays": [ { - "address": "102.130.127.242", + "address": "cardano-relay1.nodes.lgns.xyz", "port": 6000 }, { - "address": "94.16.106.16", + "address": "cardano-relay2.nodes.lgns.xyz", "port": 6000 } ] }, { - "accumulatedStake": 0.5370373802481718, - "relativeStake": 0.002034092096770206, + "accumulatedStake": 0.5689226736596147, + "relativeStake": 0.0019010716135962693, "relays": [ { - "domain": "cardano.staking.copper.co", + "address": "cardano-main.everstake.one", "port": 3001 - } - ] - }, - { - "accumulatedStake": 0.5390434214882869, - "relativeStake": 0.0020060412401151392, - "relays": [ + }, { - "domain": "germany.cardanode.io", - "port": 6000 + "address": "cardano-main2.everstake.one", + "port": 3001 }, { - "domain": "missouri.cardanode.io", - "port": 6000 + "address": "cardano-relay.everstake.one", + "port": 3001 }, { - "domain": "la.cardanode.io", - "port": 6000 + "address": "cardano-relay1.everstake.one", + "port": 3001 }, { - "domain": "perth.cardanode.io", - "port": 6000 + "address": "cardano-relay2.everstake.one", + "port": 3001 } ] }, { - "accumulatedStake": 0.5410448537195168, - "relativeStake": 0.0020014322312299363, + "accumulatedStake": 0.5707991582993674, + "relativeStake": 0.0018764846397527437, "relays": [ { - "domain": "cardano.staking.copper.co", - "port": 3001 + "address": "52.177.36.96", + "port": 3000 } ] }, { - "accumulatedStake": 0.5430431700213111, - "relativeStake": 0.0019983163017942215, + "accumulatedStake": 0.5726739976418105, + "relativeStake": 0.001874839342443073, "relays": [ { - "domain": "relay0.fimi.vn", - "port": 3000 + "address": "relay1.blueocean.sg", + "port": 3001 }, { - "domain": "relay1.fimi.vn", - "port": 3000 + "address": "relay2.blueocean.sg", + "port": 3001 }, { - "domain": "relay2.fimi.vn", - "port": 3000 + "address": "hcm07xw90vx.sn.mynetname.net", + "port": 3001 } ] }, { - "accumulatedStake": 0.5450275657137983, - "relativeStake": 0.0019843956924872025, + "accumulatedStake": 0.5745317348409692, + "relativeStake": 0.0018577371991587524, "relays": [ { - "address": "57.129.28.179", - "port": 3001 - }, - { - "address": "57.129.28.180", - "port": 3001 + "address": "relay1.cardanotech.io", + "port": 6000 } ] }, { - "accumulatedStake": 0.5469652415581031, - "relativeStake": 0.0019376758443047715, + "accumulatedStake": 0.5763748194999557, + "relativeStake": 0.0018430846589864397, "relays": [ { - "address": "13.235.131.115", - "port": 3001 + "address": "relay-pool-ledger-1-mainnet.cardano.aeq5f.com" } ] }, { - "accumulatedStake": 0.5488962337399079, - "relativeStake": 0.0019309921818048152, + "accumulatedStake": 0.5782138827900442, + "relativeStake": 0.0018390632900884807, "relays": [ { - "address": "89.58.38.12", - "port": 6001 + "address": "157.245.228.134", + "port": 3001 }, { - "address": "94.23.40.22", - "port": 6001 + "address": "159.89.120.164", + "port": 3001 }, { - "address": "37.120.189.7", - "port": 6001 - } - ] - }, - { - "accumulatedStake": 0.550809944775785, - "relativeStake": 0.00191371103587721, - "relays": [ - { - "address": "20.69.213.207", - "port": 3000 - } - ] - }, - { - "accumulatedStake": 0.5527130230651345, - "relativeStake": 0.001903078289349384, - "relays": [ - { - "domain": "cardano-relays-1.nu.fi", - "port": 3003 + "address": "209.97.186.44", + "port": 3001 }, { - "domain": "cardano-relays-2.nu.fi", + "address": "na.bloompool.io", "port": 3001 } ] }, { - "accumulatedStake": 0.5546135290373576, - "relativeStake": 0.001900505972223148, + "accumulatedStake": 0.5800476627897704, + "relativeStake": 0.0018337799997262246, "relays": [ { - "domain": "relay1.adaocean.com", - "port": 6000 - }, - { - "domain": "relay2.adaocean.com", - "port": 6000 - }, - { - "domain": "relay3.adaocean.com", - "port": 6000 - }, - { - "domain": "relay4.adaocean.com", - "port": 6000 + "address": "relay.cardano.securestaking.io", + "port": 3000 }, { - "domain": "relay5.adaocean.com", - "port": 6000 + "address": "secur2.cardano.securestaking.io", + "port": 3000 } ] }, { - "accumulatedStake": 0.5565098670545642, - "relativeStake": 0.0018963380172065335, + "accumulatedStake": 0.5818658852363241, + "relativeStake": 0.0018182224465537245, "relays": [ { - "address": "129.80.153.243", - "port": 3001 + "address": "relay.sunnyada.com", + "port": 5001 } ] }, { - "accumulatedStake": 0.5584056355391591, - "relativeStake": 0.001895768484595022, + "accumulatedStake": 0.5836786460135789, + "relativeStake": 0.0018127607772547565, "relays": [ { - "domain": "cardano-relay1.nodes.lgns.xyz", - "port": 6000 - }, - { - "domain": "cardano-relay2.nodes.lgns.xyz", - "port": 6000 + "address": "20.69.213.207", + "port": 3000 } ] }, { - "accumulatedStake": 0.5602945554507932, - "relativeStake": 0.0018889199116340412, + "accumulatedStake": 0.5854896674750878, + "relativeStake": 0.001811021461508886, "relays": [ { - "domain": "cardano-main.everstake.one", - "port": 3001 - }, - { - "domain": "cardano-main2.everstake.one", - "port": 3001 - }, - { - "domain": "cardano-relay.everstake.one", + "address": "52.8.37.3", "port": 3001 }, { - "domain": "cardano-relay1.everstake.one", + "address": "3.125.252.182", "port": 3001 }, { - "domain": "cardano-relay2.everstake.one", + "address": "52.63.225.190", "port": 3001 } ] }, { - "accumulatedStake": 0.5621802725630959, - "relativeStake": 0.0018857171123027045, - "relays": [ - { - "address": "148.113.17.23", - "port": 6000 - }, - { - "address": "158.69.25.103", - "port": 6000 - }, - { - "address": "168.119.13.158", - "port": 6000 - }, - { - "address": "149.102.140.207", - "port": 6000 - } - ] - }, - { - "accumulatedStake": 0.5640630362264312, - "relativeStake": 0.001882763663335262, + "accumulatedStake": 0.5872931228873568, + "relativeStake": 0.0018034554122690098, "relays": [ { - "domain": "relay1.blueocean.sg", - "port": 3001 - }, - { - "domain": "relay2.blueocean.sg", - "port": 3001 - }, - { - "domain": "hcm07xw90vx.sn.mynetname.net", + "address": "relays.wavepool.digital", "port": 3001 } ] }, { - "accumulatedStake": 0.5659373833341351, - "relativeStake": 0.001874347107703991, + "accumulatedStake": 0.5890837993856356, + "relativeStake": 0.0017906764982788838, "relays": [ { - "address": "35.154.118.137", + "address": "benitoite-rohan-d68b9.cardano.bdnodes.net", "port": 6000 }, { - "address": "3.6.81.137", + "address": "brown-lagos-6a470.cardano.bdnodes.net", "port": 6000 } ] }, { - "accumulatedStake": 0.5677845050053439, - "relativeStake": 0.0018471216712087272, + "accumulatedStake": 0.5908699522202122, + "relativeStake": 0.001786152834576612, "relays": [ { - "domain": "relays-2a.cardano.2k2aa.com", - "port": 3001 - }, - { - "domain": "relays-2b.cardano.aeq5f.com", + "address": "relays.digi.pro", "port": 3001 } ] }, { - "accumulatedStake": 0.5696314395514714, - "relativeStake": 0.001846934546127497, + "accumulatedStake": 0.592643081557304, + "relativeStake": 0.0017731293370917807, "relays": [ { - "address": "52.177.36.96", - "port": 3000 + "address": "76cf1dd1.cardano-relay.bison.run", + "port": 1338 } ] }, { - "accumulatedStake": 0.571468613218451, - "relativeStake": 0.0018371736669795548, + "accumulatedStake": 0.5944090682431408, + "relativeStake": 0.0017659866858367817, "relays": [ { "address": "150.136.84.82", @@ -3097,596 +3055,402 @@ ] }, { - "accumulatedStake": 0.5733017386914739, - "relativeStake": 0.0018331254730229564, + "accumulatedStake": 0.5961661270524218, + "relativeStake": 0.0017570588092809527, "relays": [ { - "domain": "relays.mainnet.pools.fivebinaries.com", + "address": "13.235.131.115", "port": 3001 } ] }, { - "accumulatedStake": 0.5751151649685664, - "relativeStake": 0.0018134262770925194, + "accumulatedStake": 0.5979220519829462, + "relativeStake": 0.0017559249305244434, "relays": [ { - "domain": "relay1-pub.ahlnet.nu", - "port": 2111 - }, - { - "domain": "relay2-pub.ahlnet.nu", - "port": 2111 - }, - { - "domain": "relay3-pub.ahlnet.nu", - "port": 2111 + "address": "relay1.adaocean.com", + "port": 6000 }, { - "domain": "relay-fallback.ahlnet.nu", - "port": 55218 - } - ] - }, - { - "accumulatedStake": 0.5769212743357075, - "relativeStake": 0.0018061093671410905, - "relays": [ - { - "address": "157.245.228.134", - "port": 3001 + "address": "relay2.adaocean.com", + "port": 6000 }, { - "address": "159.89.120.164", - "port": 3001 + "address": "relay3.adaocean.com", + "port": 6000 }, { - "address": "209.97.186.44", - "port": 3001 + "address": "relay4.adaocean.com", + "port": 6000 }, { - "domain": "na.bloompool.io", - "port": 3001 + "address": "relay5.adaocean.com", + "port": 6000 } ] }, { - "accumulatedStake": 0.5787265647651884, - "relativeStake": 0.0018052904294808437, + "accumulatedStake": 0.5996754737596717, + "relativeStake": 0.0017534217767254578, "relays": [ { - "address": "139.180.198.13", + "address": "170.187.203.117", "port": 6000 }, { - "address": "207.148.77.122", + "address": "173.255.203.8", "port": 6000 } ] }, { - "accumulatedStake": 0.5805268161404772, - "relativeStake": 0.0018002513752888609, + "accumulatedStake": 0.6014278055739323, + "relativeStake": 0.001752331814260627, "relays": [ { - "address": "195.201.143.213", - "port": 3001 - }, - { - "address": "194.233.70.237", - "port": 3001 - }, - { - "address": "89.58.59.127", + "address": "europe-2.katanapool.net", "port": 3001 } ] }, { - "accumulatedStake": 0.5823142243308275, - "relativeStake": 0.0017874081903502652, + "accumulatedStake": 0.6031671670079359, + "relativeStake": 0.0017393614340036518, "relays": [ { - "address": "34.84.0.241", - "port": 3000 - }, - { - "address": "34.146.198.77", - "port": 3000 - } - ] - }, - { - "accumulatedStake": 0.5840962354265187, - "relativeStake": 0.001782011095691155, - "relays": [ - { - "domain": "cardano-main.everstake.one", - "port": 3001 - }, - { - "domain": "cardano-main2.everstake.one", - "port": 3001 - }, - { - "domain": "cardano-relay.everstake.one", - "port": 3001 - }, - { - "domain": "cardano-relay1.everstake.one", - "port": 3001 - }, - { - "domain": "cardano-relay2.everstake.one", + "address": "north-america-relay.jpn-sp.net", "port": 3001 } ] }, { - "accumulatedStake": 0.5858718366857708, - "relativeStake": 0.001775601259252184, + "accumulatedStake": 0.6049050454631398, + "relativeStake": 0.0017378784552038648, "relays": [ { - "domain": "europe-2.katanapool.net", + "address": "private-pools.fivebinaries.com", "port": 3001 } ] }, { - "accumulatedStake": 0.5876468228501628, - "relativeStake": 0.0017749861643919346, + "accumulatedStake": 0.6066130910357308, + "relativeStake": 0.0017080455725910304, "relays": [ { - "domain": "cardano-main.everstake.one", + "address": "cardano-main.everstake.one", "port": 3001 }, { - "domain": "cardano-main2.everstake.one", + "address": "cardano-main2.everstake.one", "port": 3001 }, { - "domain": "cardano-relay.everstake.one", + "address": "cardano-relay.everstake.one", "port": 3001 }, { - "domain": "cardano-relay1.everstake.one", + "address": "cardano-relay1.everstake.one", "port": 3001 }, { - "domain": "cardano-relay2.everstake.one", - "port": 3001 - } - ] - }, - { - "accumulatedStake": 0.5894144897922272, - "relativeStake": 0.0017676669420644828, - "relays": [ - { - "domain": "relays.mainnet.pools.fivebinaries.com", - "port": 3001 - } - ] - }, - { - "accumulatedStake": 0.5911819960857656, - "relativeStake": 0.0017675062935383586, - "relays": [ - { - "domain": "relays.digi.pro", + "address": "cardano-relay2.everstake.one", "port": 3001 } ] }, { - "accumulatedStake": 0.5929486941621144, - "relativeStake": 0.0017666980763487365, - "relays": [ - { - "domain": "r1.1percentpool.eu", - "port": 19001 - }, - { - "domain": "r2.1percentpool.eu", - "port": 19002 - } - ] - }, - { - "accumulatedStake": 0.5946935485629636, - "relativeStake": 0.0017448544008493265, + "accumulatedStake": 0.6083105739174439, + "relativeStake": 0.0016974828817130254, "relays": [ { - "address": "170.187.203.117", - "port": 6000 - }, - { - "address": "173.255.203.8", - "port": 6000 - } - ] - }, - { - "accumulatedStake": 0.5964334866797654, - "relativeStake": 0.00173993811680173, - "relays": [ - { - "address": "52.177.36.96", - "port": 3000 - } - ] - }, - { - "accumulatedStake": 0.5981726501263862, - "relativeStake": 0.0017391634466208188, - "relays": [ - { - "domain": "cardano-main.everstake.one", - "port": 3001 - }, - { - "domain": "cardano-main2.everstake.one", - "port": 3001 - }, - { - "domain": "cardano-relay.everstake.one", - "port": 3001 - }, - { - "domain": "cardano-relay1.everstake.one", + "address": "57.128.184.28", "port": 3001 }, { - "domain": "cardano-relay2.everstake.one", + "address": "57.128.184.30", "port": 3001 } ] }, { - "accumulatedStake": 0.5999062202786034, - "relativeStake": 0.0017335701522172113, + "accumulatedStake": 0.609987176323451, + "relativeStake": 0.0016766024060071228, "relays": [ { - "domain": "cardano-main.everstake.one", - "port": 3001 - }, - { - "domain": "cardano-main2.everstake.one", - "port": 3001 - }, - { - "domain": "cardano-relay.everstake.one", - "port": 3001 - }, - { - "domain": "cardano-relay1.everstake.one", - "port": 3001 + "address": "cardano-relays-1.nu.fi", + "port": 3003 }, { - "domain": "cardano-relay2.everstake.one", - "port": 3001 - } - ] - }, - { - "accumulatedStake": 0.6016313070153534, - "relativeStake": 0.001725086736749934, - "relays": [ - { - "address": "202.61.246.91", + "address": "cardano-relays-2.nu.fi", "port": 3001 } ] }, { - "accumulatedStake": 0.6033560376852862, - "relativeStake": 0.0017247306699329217, - "relays": [ - { - "address": "149.28.106.59", - "port": 6000 - } - ] - }, - { - "accumulatedStake": 0.6050787778258085, - "relativeStake": 0.001722740140522288, + "accumulatedStake": 0.6116608427359687, + "relativeStake": 0.0016736664125177108, "relays": [ { - "domain": "norway.adanorthpool.com", - "port": 9011 - }, - { - "domain": "norway.adanorthpool.com", - "port": 9012 - }, - { - "domain": "norway.adanorthpool.com", - "port": 9014 - }, - { - "domain": "norway2.adanorthpool.com", - "port": 9014 - }, - { - "domain": "norway2.adanorthpool.com", - "port": 9013 - } - ] - }, - { - "accumulatedStake": 0.6067913345072755, - "relativeStake": 0.0017125566814669955, - "relays": [ - { - "domain": "truth.kiwipool.org", - "port": 9630 + "address": "180.150.102.25", + "port": 8376 }, { - "domain": "love.kiwipool.org", - "port": 9630 + "address": "180.150.96.245", + "port": 8376 }, { - "domain": "liberty.kiwipool.org", - "port": 9630 + "address": "144.6.112.28", + "port": 8376 }, { - "domain": "freedom.kiwipool.org", - "port": 9630 + "address": "154.38.173.238", + "port": 8376 }, { - "domain": "peace.kiwipool.org", - "port": 9630 + "address": "152.53.55.29", + "port": 8376 }, { - "domain": "aspire.kiwipool.org", - "port": 9630 + "address": "relays.terminada.io", + "port": 8376 } ] }, { - "accumulatedStake": 0.6084825754246366, - "relativeStake": 0.0016912409173609688, + "accumulatedStake": 0.6133266388816149, + "relativeStake": 0.0016657961456461997, "relays": [ { - "domain": "btc-cardano-main-relay-00-a.bdnodes.net", + "address": "35.154.118.137", "port": 6000 }, { - "domain": "btc-cardano-main-relay-00-b.bdnodes.net", + "address": "3.6.81.137", "port": 6000 } ] }, { - "accumulatedStake": 0.6101632493575723, - "relativeStake": 0.001680673932935742, + "accumulatedStake": 0.6149873486721191, + "relativeStake": 0.0016607097905042396, "relays": [ { - "domain": "84cbba68.cardano-relay.herd.run", - "port": 1338 + "address": "52.177.36.96", + "port": 3000 } ] }, { - "accumulatedStake": 0.6118391569817888, - "relativeStake": 0.0016759076242165048, + "accumulatedStake": 0.6166209045761925, + "relativeStake": 0.001633555904073293, "relays": [ { - "domain": "cardano-relays-1.nu.fi", - "port": 3003 + "address": "truth.kiwipool.org", + "port": 9630 }, { - "domain": "cardano-relays-2.nu.fi", - "port": 3001 - } - ] - }, - { - "accumulatedStake": 0.6135014235881572, - "relativeStake": 0.001662266606368385, - "relays": [ - { - "domain": "cardano-relays-1.nu.fi", - "port": 3003 + "address": "love.kiwipool.org", + "port": 9630 }, { - "domain": "cardano-relays-2.nu.fi", - "port": 3001 - } - ] - }, - { - "accumulatedStake": 0.6151573633318277, - "relativeStake": 0.0016559397436705537, - "relays": [ + "address": "liberty.kiwipool.org", + "port": 9630 + }, { - "domain": "bra-relay.cardanistas.io", - "port": 8081 + "address": "freedom.kiwipool.org", + "port": 9630 }, { - "domain": "usa-relay.cardanistas.io", - "port": 8082 + "address": "peace.kiwipool.org", + "port": 9630 }, { - "domain": "de-relay.cardanistas.io", - "port": 8083 + "address": "aspire.kiwipool.org", + "port": 9630 } ] }, { - "accumulatedStake": 0.616792866026546, - "relativeStake": 0.0016355026947183064, + "accumulatedStake": 0.6182541340013298, + "relativeStake": 0.0016332294251373061, "relays": [ { - "domain": "53e378bf.cardano-relay.bison.run", + "address": "3ef2283d.cardano-relay.bison.run", "port": 1338 } ] }, { - "accumulatedStake": 0.6184265390244764, - "relativeStake": 0.0016336729979304194, + "accumulatedStake": 0.6198871648826587, + "relativeStake": 0.0016330308813289579, "relays": [ { - "domain": "c2504518.cardano-relay.bison.run", + "address": "84cbba68.cardano-relay.herd.run", "port": 1338 } ] }, { - "accumulatedStake": 0.6200598634339846, - "relativeStake": 0.0016333244095080978, + "accumulatedStake": 0.6215195929108989, + "relativeStake": 0.0016324280282401637, "relays": [ { - "domain": "d699483e.cardano-relay.bison.run", - "port": 1338 - } - ] - }, - { - "accumulatedStake": 0.6216931696701876, - "relativeStake": 0.00163330623620313, - "relays": [ + "address": "gateway.adavault.com", + "port": 4021 + }, { - "domain": "3ef2283d.cardano-relay.bison.run", - "port": 1338 - } - ] - }, - { - "accumulatedStake": 0.6233260246718206, - "relativeStake": 0.0016328550016329712, - "relays": [ + "address": "gateway.adavault.com", + "port": 4022 + }, { - "domain": "north-america-relay.jpn-sp.net", - "port": 3001 + "address": "gateway.adavault.com", + "port": 4026 + }, + { + "address": "gateway.adavault.com", + "port": 4027 + }, + { + "address": "gateway2.adavault.com", + "port": 4060 + }, + { + "address": "gateway2.adavault.com", + "port": 4061 } ] }, { - "accumulatedStake": 0.6249531764492667, - "relativeStake": 0.001627151777446133, + "accumulatedStake": 0.6231463962898557, + "relativeStake": 0.001626803378956837, "relays": [ { - "domain": "cork.queenada.com", - "port": 7500 + "address": "csn.relay1.cardanoscan.io", + "port": 3101 + }, + { + "address": "csn.relay2.cardanoscan.io", + "port": 3101 } ] }, { - "accumulatedStake": 0.6265641879210517, - "relativeStake": 0.0016110114717849998, + "accumulatedStake": 0.6247674749571529, + "relativeStake": 0.0016210786672971622, "relays": [ { - "address": "185.161.193.91", - "port": 6010 + "address": "cardano-main.everstake.one", + "port": 3001 }, { - "address": "185.161.193.92", - "port": 6010 + "address": "cardano-main2.everstake.one", + "port": 3001 }, { - "address": "2a07:c700:0:700::91", - "port": 6010 + "address": "cardano-relay.everstake.one", + "port": 3001 }, { - "address": "2a07:c700:0:700::92", - "port": 6010 + "address": "cardano-relay1.everstake.one", + "port": 3001 }, { - "address": "80.211.123.84", - "port": 6010 + "address": "cardano-relay2.everstake.one", + "port": 3001 } ] }, { - "accumulatedStake": 0.628163324642511, - "relativeStake": 0.001599136721459223, + "accumulatedStake": 0.6263856709490393, + "relativeStake": 0.0016181959918864103, "relays": [ { - "address": "199.247.23.219", + "address": "195.201.143.213", "port": 3001 - } - ] - }, - { - "accumulatedStake": 0.629754228610294, - "relativeStake": 0.0015909039677829452, - "relays": [ + }, + { + "address": "194.233.70.237", + "port": 3001 + }, { - "domain": "relays.mainnet.fortepool.io", + "address": "89.58.59.127", "port": 3001 } ] }, { - "accumulatedStake": 0.6313427022836657, - "relativeStake": 0.00158847367337182, + "accumulatedStake": 0.6279886833505964, + "relativeStake": 0.001603012401557155, "relays": [ { - "domain": "relays.staking4ada.org", - "port": 1818 + "address": "bra-relay.cardanistas.io", + "port": 8081 }, { - "domain": "globecast.staking4ada.org", - "port": 6061 + "address": "usa-relay.cardanistas.io", + "port": 8082 + }, + { + "address": "de-relay.cardanistas.io", + "port": 8083 } ] }, { - "accumulatedStake": 0.6329136897990634, - "relativeStake": 0.0015709875153975682, + "accumulatedStake": 0.6295875255456839, + "relativeStake": 0.0015988421950874547, "relays": [ { - "domain": "relay1.hyperlinkpool.kr", - "port": 3002 + "address": "cardano-main.everstake.one", + "port": 3001 }, { - "domain": "relay2.hyperlinkpool.kr", - "port": 3003 + "address": "cardano-main2.everstake.one", + "port": 3001 }, { - "domain": "relay3.hyperlinkpool.kr", - "port": 3004 + "address": "cardano-relay.everstake.one", + "port": 3001 + }, + { + "address": "cardano-relay1.everstake.one", + "port": 3001 + }, + { + "address": "cardano-relay2.everstake.one", + "port": 3001 } ] }, { - "accumulatedStake": 0.6344835668572193, - "relativeStake": 0.0015698770581559444, + "accumulatedStake": 0.63117801795306, + "relativeStake": 0.0015904924073761196, "relays": [ { - "address": "52.177.36.96", - "port": 3000 + "address": "202.61.246.91", + "port": 3001 } ] }, { - "accumulatedStake": 0.6360458663127326, - "relativeStake": 0.0015622994555133836, + "accumulatedStake": 0.6327638428124478, + "relativeStake": 0.0015858248593877372, "relays": [ { - "address": "157.245.228.134", - "port": 3001 - }, - { - "address": "159.89.120.164", - "port": 3001 - }, - { - "address": "209.97.186.44", - "port": 3001 + "address": "139.180.198.13", + "port": 6000 }, { - "domain": "eu.bloompool.io", - "port": 3001 + "address": "207.148.77.122", + "port": 6000 } ] }, { - "accumulatedStake": 0.6376074392763968, - "relativeStake": 0.0015615729636642005, + "accumulatedStake": 0.634342467558883, + "relativeStake": 0.0015786247464353211, "relays": [ { "address": "157.245.228.134", @@ -3701,152 +3465,186 @@ "port": 3001 }, { - "domain": "eu.bloompool.io", + "address": "eu.bloompool.io", "port": 3001 } ] }, { - "accumulatedStake": 0.6391593268791592, - "relativeStake": 0.0015518876027624127, + "accumulatedStake": 0.6359182325946054, + "relativeStake": 0.001575765035722403, "relays": [ { - "domain": "relays.cardanowithpaul.com", - "port": 1069 - } - ] - }, - { - "accumulatedStake": 0.6407105239085179, - "relativeStake": 0.0015511970293585976, - "relays": [ + "address": "64.176.49.224", + "port": 6000 + }, { - "domain": "r2.cosd.com", - "port": 5250 + "address": "149.28.161.63", + "port": 6000 } ] }, { - "accumulatedStake": 0.6422614114797845, - "relativeStake": 0.0015508875712667188, + "accumulatedStake": 0.6374939732236717, + "relativeStake": 0.0015757406290662149, "relays": [ { - "address": "52.8.37.3", - "port": 3001 + "address": "relay1-pub.ahlnet.nu", + "port": 2111 }, { - "address": "3.125.252.182", - "port": 3001 + "address": "relay2-pub.ahlnet.nu", + "port": 2111 }, { - "address": "52.63.225.190", - "port": 3001 + "address": "relay3-pub.ahlnet.nu", + "port": 2111 + }, + { + "address": "relay-fallback.ahlnet.nu", + "port": 55218 } ] }, { - "accumulatedStake": 0.6438105239822901, - "relativeStake": 0.0015491125025055468, + "accumulatedStake": 0.6390619507637664, + "relativeStake": 0.0015679775400947256, "relays": [ { - "domain": "relays.wavepool.digital", - "port": 3001 + "address": "relays.cardanowithpaul.com", + "port": 1069 } ] }, { - "accumulatedStake": 0.6453536803021004, - "relativeStake": 0.0015431563198102021, + "accumulatedStake": 0.6406288823794484, + "relativeStake": 0.0015669316156819602, "relays": [ { - "address": "3.231.140.4", + "address": "relays.digi.pro", "port": 3001 } ] }, { - "accumulatedStake": 0.646886285063726, - "relativeStake": 0.0015326047616257136, + "accumulatedStake": 0.6421929802392798, + "relativeStake": 0.0015640978598314608, "relays": [ { - "address": "3.234.66.234", - "port": 3001 + "address": "r1.cosd.com", + "port": 5250 + }, + { + "address": "r2.cosd.com", + "port": 5250 } ] }, { - "accumulatedStake": 0.6484177914492905, - "relativeStake": 0.0015315063855644358, + "accumulatedStake": 0.6437527846715495, + "relativeStake": 0.0015598044322697071, "relays": [ { - "address": "3.234.66.234", - "port": 3001 + "address": "148.113.17.23", + "port": 6000 + }, + { + "address": "158.69.25.103", + "port": 6000 + }, + { + "address": "95.216.4.252", + "port": 6000 + }, + { + "address": "178.18.250.204", + "port": 6000 } ] }, { - "accumulatedStake": 0.649948217154952, - "relativeStake": 0.0015304257056614722, + "accumulatedStake": 0.6453122036220938, + "relativeStake": 0.001559418950544331, "relays": [ { - "address": "3.234.185.23", - "port": 3001 + "address": "ada-relay02.biglazycat.com", + "port": 6000 } ] }, { - "accumulatedStake": 0.6514761546635223, - "relativeStake": 0.0015279375085702764, + "accumulatedStake": 0.6468557214921852, + "relativeStake": 0.0015435178700912858, "relays": [ { - "address": "3.231.62.160", + "address": "3.234.66.234", "port": 3001 } ] }, { - "accumulatedStake": 0.6530037696658524, - "relativeStake": 0.00152761500233012, + "accumulatedStake": 0.6483987824260913, + "relativeStake": 0.0015430609339061204, "relays": [ { - "address": "3.231.140.4", - "port": 3001 + "address": "52.177.36.96", + "port": 3000 } ] }, { - "accumulatedStake": 0.6545308048145604, - "relativeStake": 0.0015270351487080172, + "accumulatedStake": 0.6499401592759246, + "relativeStake": 0.0015413768498334026, "relays": [ { - "address": "3.221.94.137", - "port": 3001 + "address": "relays.staking4ada.org", + "port": 1818 + }, + { + "address": "globecast.staking4ada.org", + "port": 6061 } ] }, { - "accumulatedStake": 0.6560576882059364, - "relativeStake": 0.0015268833913760034, + "accumulatedStake": 0.6514813421151121, + "relativeStake": 0.0015411828391874514, "relays": [ { - "address": "3.231.62.160", + "address": "3.234.66.234", "port": 3001 } ] }, { - "accumulatedStake": 0.6575841943240397, - "relativeStake": 0.0015265061181033736, + "accumulatedStake": 0.6530216573219122, + "relativeStake": 0.0015403152068000268, "relays": [ { - "address": "3.228.183.84", - "port": 3001 + "address": "185.161.193.91", + "port": 6010 + }, + { + "address": "185.161.193.92", + "port": 6010 + }, + { + "address": "2a07:c700:0:700::91", + "port": 6010 + }, + { + "address": "2a07:c700:0:700::92", + "port": 6010 + }, + { + "address": "80.211.123.84", + "port": 6010 } ] }, { - "accumulatedStake": 0.6591105821541399, - "relativeStake": 0.0015263878301001682, + "accumulatedStake": 0.6545607505745317, + "relativeStake": 0.0015390932526194935, "relays": [ { "address": "3.221.94.137", @@ -3855,1282 +3653,1360 @@ ] }, { - "accumulatedStake": 0.6606369026303012, - "relativeStake": 0.0015263204761612806, + "accumulatedStake": 0.6560981698103063, + "relativeStake": 0.0015374192357747321, "relays": [ { - "address": "3.222.153.137", + "address": "3.231.62.160", "port": 3001 } ] }, { - "accumulatedStake": 0.6621629930374846, - "relativeStake": 0.0015260904071833967, + "accumulatedStake": 0.6576354413002292, + "relativeStake": 0.0015372714899228698, "relays": [ { - "address": "3.222.153.137", + "address": "relays.digi.pro", "port": 3001 } ] }, { - "accumulatedStake": 0.6636889682671108, - "relativeStake": 0.0015259752296261932, + "accumulatedStake": 0.6591726390756001, + "relativeStake": 0.001537197775370796, "relays": [ { - "address": "34.192.61.190", + "address": "3.228.183.84", "port": 3001 } ] }, { - "accumulatedStake": 0.6652149149028088, - "relativeStake": 0.00152594663569807, + "accumulatedStake": 0.6607098355111632, + "relativeStake": 0.001537196435563161, "relays": [ { - "address": "3.228.183.84", + "address": "3.222.153.137", "port": 3001 } ] }, { - "accumulatedStake": 0.6667406409777465, - "relativeStake": 0.0015257260749376965, + "accumulatedStake": 0.6622469969279579, + "relativeStake": 0.0015371614167946674, "relays": [ { - "address": "3.224.130.99", + "address": "relays.wavepool.digital", "port": 3001 } ] }, { - "accumulatedStake": 0.6682660935660731, - "relativeStake": 0.001525452588326561, + "accumulatedStake": 0.6637840495432282, + "relativeStake": 0.0015370526152702977, "relays": [ { - "address": "3.225.242.57", + "address": "3.231.62.160", "port": 3001 } ] }, { - "accumulatedStake": 0.6697905528257488, - "relativeStake": 0.0015244592596756793, + "accumulatedStake": 0.6653205173021108, + "relativeStake": 0.0015364677588826307, "relays": [ { - "address": "3.234.185.23", + "address": "3.221.94.137", "port": 3001 } ] }, { - "accumulatedStake": 0.6713146028959275, - "relativeStake": 0.0015240500701787165, + "accumulatedStake": 0.6668569295358634, + "relativeStake": 0.0015364122337526399, "relays": [ { - "domain": "cardano1.staked.cloud", - "port": 3001 - }, - { - "address": "44.242.70.220", + "address": "3.228.183.84", "port": 3001 } ] }, { - "accumulatedStake": 0.6728331665121237, - "relativeStake": 0.0015185636161961242, + "accumulatedStake": 0.6683933106136006, + "relativeStake": 0.0015363810777372401, "relays": [ { - "domain": "relays.digi.pro", + "address": "3.222.153.137", "port": 3001 } ] }, { - "accumulatedStake": 0.6743486437686587, - "relativeStake": 0.0015154772565349902, + "accumulatedStake": 0.6699296076097332, + "relativeStake": 0.0015362969961324592, "relays": [ { - "domain": "cardano2.staked.cloud", - "port": 3001 - }, - { - "address": "52.39.19.247", + "address": "34.192.61.190", "port": 3001 } ] }, { - "accumulatedStake": 0.6758533594519478, - "relativeStake": 0.001504715683289206, + "accumulatedStake": 0.6714658675140306, + "relativeStake": 0.0015362599042974144, "relays": [ { - "domain": "eu-de-blue-cdn-relays.cardano.fans", - "port": 3001 - }, - { - "domain": "us-us-red-cdn-relays.cardano.fans", - "port": 3002 - }, - { - "domain": "us-us-blue-cdn-relays.cardano.fans", - "port": 3002 - }, - { - "domain": "eu-de-blue-cdn-relays.cardano.fans", - "port": 3001 - }, - { - "domain": "eu-de-red-cdn-relays.cardano.fans", + "address": "3.224.130.99", "port": 3001 - }, - { - "domain": "us-us-red-cdn-relays.cardano.fans", - "port": 3002 - }, - { - "domain": "us-us-blue-cdn-relays.cardano.fans", - "port": 3002 } ] }, { - "accumulatedStake": 0.6773547070229083, - "relativeStake": 0.0015013475709605493, + "accumulatedStake": 0.6730014407394588, + "relativeStake": 0.0015355732254281656, "relays": [ { - "address": "23.21.195.62", + "address": "cardano1.staked.cloud", + "port": 3001 + }, + { + "address": "44.242.70.220", "port": 3001 } ] }, { - "accumulatedStake": 0.6788524609378679, - "relativeStake": 0.0014977539149594774, + "accumulatedStake": 0.674536845291657, + "relativeStake": 0.0015354045521982908, "relays": [ { - "address": "18.207.62.97", + "address": "3.225.242.57", "port": 3001 } ] }, { - "accumulatedStake": 0.6803494327782494, - "relativeStake": 0.0014969718403815562, + "accumulatedStake": 0.6760719818651898, + "relativeStake": 0.0015351365735328051, "relays": [ { - "domain": "csn.relay1.cardanoscan.io", - "port": 3101 - }, - { - "domain": "csn.relay2.cardanoscan.io", - "port": 3101 + "address": "3.234.185.23", + "port": 3001 } ] }, { - "accumulatedStake": 0.6818454197893031, - "relativeStake": 0.0014959870110536832, + "accumulatedStake": 0.6776063151360349, + "relativeStake": 0.0015343332708450048, "relays": [ { - "address": "18.207.62.97", + "address": "3.234.185.23", "port": 3001 } ] }, { - "accumulatedStake": 0.6833407122318088, - "relativeStake": 0.001495292442505762, + "accumulatedStake": 0.6791387904661428, + "relativeStake": 0.0015324753301079524, "relays": [ { - "domain": "relay1.cardanotech.io", - "port": 6000 + "address": "asia-pacific-zzzrelay.zzzpool.net", + "port": 3001 } ] }, { - "accumulatedStake": 0.6848329666355804, - "relativeStake": 0.0014922544037715459, + "accumulatedStake": 0.6806642419438313, + "relativeStake": 0.0015254514776886145, "relays": [ { - "address": "18.222.201.35", + "address": "cardano2.staked.cloud", + "port": 3001 + }, + { + "address": "52.39.19.247", "port": 3001 } ] }, { - "accumulatedStake": 0.6863074045383959, - "relativeStake": 0.0014744379028154705, + "accumulatedStake": 0.6821765687011576, + "relativeStake": 0.0015123267573262688, "relays": [ { - "address": "77.68.30.20", - "port": 6000 + "address": "cardano-relays-1.nu.fi", + "port": 3003 }, { - "address": "132.145.98.48", - "port": 6000 + "address": "cardano-relays-2.nu.fi", + "port": 3001 } ] }, { - "accumulatedStake": 0.687776124937336, - "relativeStake": 0.0014687203989400593, + "accumulatedStake": 0.6836834901551327, + "relativeStake": 0.0015069214539750863, "relays": [ { - "address": "3.224.130.99", - "port": 3001 + "address": "148.113.17.23", + "port": 6000 + }, + { + "address": "158.69.25.103", + "port": 6000 + }, + { + "address": "168.119.13.158", + "port": 6000 + }, + { + "address": "149.102.140.207", + "port": 6000 } ] }, { - "accumulatedStake": 0.6892357489424833, - "relativeStake": 0.001459624005147311, + "accumulatedStake": 0.685188163943921, + "relativeStake": 0.001504673788788271, "relays": [ { - "domain": "relay.pasklab.com", + "address": "52.8.37.3", "port": 3001 }, { - "domain": "relay.pasklab.com", - "port": 3002 + "address": "3.125.252.182", + "port": 3001 }, { - "domain": "relay.pasklab.com", - "port": 3003 + "address": "52.63.225.190", + "port": 3001 } ] }, { - "accumulatedStake": 0.6906924182901433, - "relativeStake": 0.0014566693476600599, + "accumulatedStake": 0.6866897497138388, + "relativeStake": 0.0015015857699177955, "relays": [ { - "domain": "asia-pacific-zzzrelay.zzzpool.net", + "address": "23.21.195.62", "port": 3001 } ] }, { - "accumulatedStake": 0.6921477402804613, - "relativeStake": 0.0014553219903180618, + "accumulatedStake": 0.688187597964374, + "relativeStake": 0.001497848250535221, "relays": [ { - "address": "52.177.36.96", - "port": 3000 + "address": "18.222.201.35", + "port": 3001 } ] }, { - "accumulatedStake": 0.6935930313263606, - "relativeStake": 0.0014452910458993067, + "accumulatedStake": 0.6896839575963678, + "relativeStake": 0.0014963596319937456, "relays": [ { - "address": "3.225.242.57", + "address": "18.207.62.97", "port": 3001 } ] }, { - "accumulatedStake": 0.6950316852546776, - "relativeStake": 0.001438653928316942, + "accumulatedStake": 0.691178948126994, + "relativeStake": 0.0014949905306262353, "relays": [ { - "domain": "relay1.zetetic.tech", - "port": 3001 - }, - { - "domain": "relay2.zetetic.tech", - "port": 3001 - }, - { - "domain": "relay3.zetetic.tech", - "port": 3001 - }, - { - "domain": "relay4.zetetic.tech", + "address": "18.207.62.97", "port": 3001 } ] }, { - "accumulatedStake": 0.6964702649394158, - "relativeStake": 0.0014385796847381429, + "accumulatedStake": 0.6926732988720624, + "relativeStake": 0.00149435074506838, "relays": [ { - "domain": "iog1-relays.cardano.iog.io", + "address": "private-pools.fivebinaries.com", "port": 3001 } ] }, { - "accumulatedStake": 0.6978911417729777, - "relativeStake": 0.0014208768335619779, + "accumulatedStake": 0.6941643105990434, + "relativeStake": 0.0014910117269809867, "relays": [ { - "domain": "cardano-relays-1.nu.fi", - "port": 3003 - }, - { - "domain": "cardano-relays-2.nu.fi", + "address": "private-pools.fivebinaries.com", "port": 3001 } ] }, { - "accumulatedStake": 0.6993057523367194, - "relativeStake": 0.0014146105637417507, + "accumulatedStake": 0.6956513842127626, + "relativeStake": 0.0014870736137192568, "relays": [ { - "address": "89.58.57.185", - "port": 4000 - }, - { - "address": "5.250.178.133", - "port": 4000 + "address": "217.160.14.223", + "port": 6000 } ] }, { - "accumulatedStake": 0.7007134405765344, - "relativeStake": 0.0014076882398148887, + "accumulatedStake": 0.6971381471235044, + "relativeStake": 0.0014867629107418255, "relays": [ { - "address": "35.211.17.86", - "port": 3000 + "address": "bd-cardano-main-relay-5-a.bdnodes.net", + "port": 6000 }, { - "address": "34.23.88.7", - "port": 3000 + "address": "bd-cardano-main-relay-5-b.bdnodes.net", + "port": 6000 } ] }, { - "accumulatedStake": 0.702118774624206, - "relativeStake": 0.0014053340476716915, + "accumulatedStake": 0.6986226932607553, + "relativeStake": 0.001484546137250853, "relays": [ { - "domain": "relay1.p2p.mainnet.cardano.p2p.org", + "address": "158.101.99.150", + "port": 6001 + }, + { + "address": "150.136.111.193", "port": 6001 }, { - "domain": "relay2.p2p.mainnet.cardano.p2p.org", + "address": "150.136.84.82", "port": 6001 } ] }, { - "accumulatedStake": 0.7035147780587323, - "relativeStake": 0.0013960034345262336, + "accumulatedStake": 0.7001069737931183, + "relativeStake": 0.0014842805323629542, "relays": [ { - "address": "94.130.191.208", - "port": 9630 + "address": "198.71.57.191", + "port": 6000 + }, + { + "address": "154.12.240.223", + "port": 6000 + }, + { + "address": "94.16.113.130", + "port": 6000 } ] }, { - "accumulatedStake": 0.7049083722370906, - "relativeStake": 0.0013935941783583203, + "accumulatedStake": 0.701585050979125, + "relativeStake": 0.0014780771860067176, "relays": [ { - "domain": "asia.jazzstakepool.net", + "address": "3.224.130.99", "port": 3001 } ] }, { - "accumulatedStake": 0.7063003146018905, - "relativeStake": 0.00139194236479981, + "accumulatedStake": 0.7030534616171544, + "relativeStake": 0.001468410638029387, "relays": [ { - "domain": "cardano-relays-1.nu.fi", - "port": 3003 - }, - { - "domain": "cardano-relays-2.nu.fi", + "address": "relays.wavepool.digital", "port": 3001 } ] }, { - "accumulatedStake": 0.7076871720358637, - "relativeStake": 0.001386857433973259, + "accumulatedStake": 0.7045083339477589, + "relativeStake": 0.0014548723306045883, "relays": [ { - "domain": "relay1.cerostakepool.com", + "address": "3.225.242.57", "port": 3001 - }, + } + ] + }, + { + "accumulatedStake": 0.7059540472031378, + "relativeStake": 0.0014457132553788517, + "relays": [ { - "domain": "relay2.cerostakepool.com", + "address": "relay.pasklab.com", "port": 3001 }, { - "domain": "relay3.cerostakepool.com", - "port": 3001 + "address": "relay.pasklab.com", + "port": 3002 }, { - "domain": "relay4.cerostakepool.com", - "port": 3001 + "address": "relay.pasklab.com", + "port": 3003 } ] }, { - "accumulatedStake": 0.7090726769491241, - "relativeStake": 0.0013855049132604055, + "accumulatedStake": 0.7073758389189363, + "relativeStake": 0.001421791715798528, "relays": [ { - "domain": "cardano-relay-1.upbit.com", - "port": 30800 - }, - { - "domain": "cardano-relay-2.upbit.com", - "port": 30800 - }, - { - "domain": "cardano-relay-3.upbit.com", - "port": 30800 + "address": "32.cardano.staked.cloud", + "port": 3001 } ] }, { - "accumulatedStake": 0.7104428797427549, - "relativeStake": 0.0013702027936307942, + "accumulatedStake": 0.7087869168173879, + "relativeStake": 0.0014110778984515267, "relays": [ { - "domain": "644dd09c.cardano-relay.herd.run", - "port": 1338 + "address": "35.211.17.86", + "port": 3000 + }, + { + "address": "34.23.88.7", + "port": 3000 } ] }, { - "accumulatedStake": 0.711799087277117, - "relativeStake": 0.0013562075343621044, + "accumulatedStake": 0.7101966333021645, + "relativeStake": 0.001409716484776657, "relays": [ { - "domain": "r1.21ada.ca", - "port": 6000 + "address": "57.129.24.185", + "port": 3001 }, { - "domain": "r2.21ada.ca", - "port": 6000 + "address": "57.129.28.178", + "port": 3001 } ] }, { - "accumulatedStake": 0.7131546114037457, - "relativeStake": 0.0013555241266286517, + "accumulatedStake": 0.7116031728354059, + "relativeStake": 0.0014065395332413572, "relays": [ { - "domain": "cardano-relay-2.upbit.com", + "address": "cardano-relay-1.upbit.com", "port": 30800 }, { - "domain": "cardano-relay-3.upbit.com", + "address": "cardano-relay-2.upbit.com", "port": 30800 }, { - "domain": "cardano-relay-1.upbit.com", + "address": "cardano-relay-3.upbit.com", "port": 30800 } ] }, { - "accumulatedStake": 0.714506540031625, - "relativeStake": 0.00135192862787935, + "accumulatedStake": 0.7130093572912326, + "relativeStake": 0.00140618445582677, "relays": [ { - "address": "34.146.212.90", - "port": 6000 + "address": "cardano-relay-1.upbit.com", + "port": 30800 }, { - "address": "34.175.85.49", - "port": 6000 + "address": "cardano-relay-2.upbit.com", + "port": 30800 + }, + { + "address": "cardano-relay-3.upbit.com", + "port": 30800 } ] }, { - "accumulatedStake": 0.7158509661167317, - "relativeStake": 0.0013444260851067562, + "accumulatedStake": 0.714415094627301, + "relativeStake": 0.0014057373360683728, "relays": [ { - "domain": "relays.eu-de.cardano24.net", - "port": 6000 - }, - { - "domain": "relays.ap-jp.cardano24.net", - "port": 6000 - }, - { - "domain": "relays.eu-ch.cardano24.net", - "port": 6000 - }, - { - "domain": "relays.na-us.cardano24.net", - "port": 6000 - }, - { - "domain": "relays.af-za.cardano24.net", - "port": 6000 - }, - { - "domain": "relays.ap-hk.cardano24.net", - "port": 6000 - }, - { - "domain": "relays.sa-cl.cardano24.net", - "port": 6000 + "address": "cardano-relay-2.upbit.com", + "port": 30800 }, { - "domain": "relays.ap-sg.cardano24.net", - "port": 6000 + "address": "cardano-relay-3.upbit.com", + "port": 30800 }, { - "domain": "relays.na-ca.cardano24.net", - "port": 6000 + "address": "cardano-relay-1.upbit.com", + "port": 30800 } ] }, { - "accumulatedStake": 0.7171905444548102, - "relativeStake": 0.00133957833807843, + "accumulatedStake": 0.7158187713944509, + "relativeStake": 0.0014036767671499588, "relays": [ { - "domain": "relay1.cardanesia.com", - "port": 3001 + "address": "cardano-relay-1.upbit.com", + "port": 30800 }, { - "domain": "relay2.cardanesia.com", - "port": 3001 - } - ] - }, - { - "accumulatedStake": 0.7185300572664645, - "relativeStake": 0.0013395128116542535, - "relays": [ - { - "address": "20.42.119.172", - "port": 6000 + "address": "cardano-relay-2.upbit.com", + "port": 30800 }, { - "address": "160.251.196.40", - "port": 6000 + "address": "cardano-relay-3.upbit.com", + "port": 30800 } ] }, { - "accumulatedStake": 0.7198672836654939, - "relativeStake": 0.0013372263990294457, + "accumulatedStake": 0.7172217671544283, + "relativeStake": 0.0014029957599773664, "relays": [ { - "domain": "ipclub29-1.relay.my-ip.at", - "port": 3001 + "address": "cardano-relay-2.upbit.com", + "port": 30800 }, { - "domain": "ipclub29-1.relay.my-ip.at", - "port": 3002 + "address": "cardano-relay-3.upbit.com", + "port": 30800 }, { - "domain": "ipclub29-2.relay.my-ip.at", - "port": 3001 + "address": "cardano-relay-1.upbit.com", + "port": 30800 } ] }, { - "accumulatedStake": 0.721199200333462, - "relativeStake": 0.0013319166679681004, + "accumulatedStake": 0.7186245364036219, + "relativeStake": 0.001402769249193524, "relays": [ { - "domain": "relay1.angelstakepool.net", - "port": 5001 + "address": "cardano-relay-1.upbit.com", + "port": 30800 }, { - "domain": "relay2.angelstakepool.net", - "port": 5002 + "address": "cardano-relay-2.upbit.com", + "port": 30800 + }, + { + "address": "cardano-relay-3.upbit.com", + "port": 30800 } ] }, { - "accumulatedStake": 0.722528653941868, - "relativeStake": 0.0013294536084061108, + "accumulatedStake": 0.7200259964357225, + "relativeStake": 0.0014014600321006765, "relays": [ { - "domain": "cardano-relay-1.upbit.com", + "address": "cardano-relay-1.upbit.com", "port": 30800 }, { - "domain": "cardano-relay-2.upbit.com", + "address": "cardano-relay-2.upbit.com", "port": 30800 }, { - "domain": "cardano-relay-3.upbit.com", + "address": "cardano-relay-3.upbit.com", "port": 30800 } ] }, { - "accumulatedStake": 0.7238572085876138, - "relativeStake": 0.0013285546457457715, + "accumulatedStake": 0.7214267044591269, + "relativeStake": 0.0014007080234043272, "relays": [ { - "domain": "cardano-relay-2.upbit.com", + "address": "cardano-relay-1.upbit.com", "port": 30800 }, { - "domain": "cardano-relay-3.upbit.com", + "address": "cardano-relay-2.upbit.com", "port": 30800 }, { - "domain": "cardano-relay-1.upbit.com", + "address": "cardano-relay-3.upbit.com", "port": 30800 } ] }, { - "accumulatedStake": 0.7251847831406248, - "relativeStake": 0.0013275745530109556, + "accumulatedStake": 0.722813569566881, + "relativeStake": 0.0013868651077540985, "relays": [ { - "address": "180.150.102.25", - "port": 8376 - }, - { - "address": "180.150.96.245", - "port": 8376 + "address": "89.58.57.185", + "port": 4000 }, { - "address": "144.6.112.28", - "port": 8376 - }, + "address": "5.250.178.133", + "port": 4000 + } + ] + }, + { + "accumulatedStake": 0.7241992720907641, + "relativeStake": 0.0013857025238830595, + "relays": [ { - "address": "154.38.173.238", - "port": 8376 + "address": "cardano-relay-1.upbit.com", + "port": 30800 }, { - "address": "152.53.55.29", - "port": 8376 + "address": "cardano-relay-2.upbit.com", + "port": 30800 }, { - "domain": "relays.terminada.io", - "port": 8376 + "address": "cardano-relay-3.upbit.com", + "port": 30800 } ] }, { - "accumulatedStake": 0.7265118065689359, - "relativeStake": 0.0013270234283110113, + "accumulatedStake": 0.7255763865902813, + "relativeStake": 0.0013771144995172813, "relays": [ { - "domain": "cardano-relay-1.upbit.com", + "address": "cardano-relay-2.upbit.com", "port": 30800 }, { - "domain": "cardano-relay-2.upbit.com", + "address": "cardano-relay-3.upbit.com", "port": 30800 }, { - "domain": "cardano-relay-3.upbit.com", + "address": "cardano-relay-1.upbit.com", "port": 30800 } ] }, { - "accumulatedStake": 0.7278379031862415, - "relativeStake": 0.00132609661730573, + "accumulatedStake": 0.7269525014055346, + "relativeStake": 0.001376114815253251, "relays": [ { - "domain": "cardano-relay-2.upbit.com", + "address": "cardano-relay-2.upbit.com", "port": 30800 }, { - "domain": "cardano-relay-3.upbit.com", + "address": "cardano-relay-3.upbit.com", "port": 30800 }, { - "domain": "cardano-relay-1.upbit.com", + "address": "cardano-relay-1.upbit.com", "port": 30800 } ] }, { - "accumulatedStake": 0.7291632318246054, - "relativeStake": 0.0013253286383637984, + "accumulatedStake": 0.7283283827510443, + "relativeStake": 0.0013758813455097515, "relays": [ { - "domain": "cardano-relay-1.upbit.com", + "address": "cardano-relay-1.upbit.com", "port": 30800 }, { - "domain": "cardano-relay-2.upbit.com", + "address": "cardano-relay-2.upbit.com", "port": 30800 }, { - "domain": "cardano-relay-3.upbit.com", + "address": "cardano-relay-3.upbit.com", "port": 30800 } ] }, { - "accumulatedStake": 0.7304876166552842, - "relativeStake": 0.0013243848306788242, + "accumulatedStake": 0.7297028499302617, + "relativeStake": 0.0013744671792173626, "relays": [ { - "domain": "cardano-relay-1.upbit.com", + "address": "cardano-relay-1.upbit.com", "port": 30800 }, { - "domain": "cardano-relay-2.upbit.com", + "address": "cardano-relay-2.upbit.com", "port": 30800 }, { - "domain": "cardano-relay-3.upbit.com", + "address": "cardano-relay-3.upbit.com", "port": 30800 } ] }, { - "accumulatedStake": 0.731810600527466, - "relativeStake": 0.001322983872181907, + "accumulatedStake": 0.7310768111114712, + "relativeStake": 0.001373961181209494, "relays": [ { - "domain": "cardano-relay-1.upbit.com", - "port": 30800 + "address": "157.245.228.134", + "port": 3001 }, { - "domain": "cardano-relay-2.upbit.com", - "port": 30800 + "address": "159.89.120.164", + "port": 3001 }, { - "domain": "cardano-relay-3.upbit.com", - "port": 30800 + "address": "209.97.186.44", + "port": 3001 + }, + { + "address": "eu.bloompool.io", + "port": 3001 } ] }, { - "accumulatedStake": 0.7331334967682769, - "relativeStake": 0.0013228962408107692, + "accumulatedStake": 0.7324360252948263, + "relativeStake": 0.0013592141833551172, "relays": [ { - "domain": "cardano-relay-1.upbit.com", - "port": 30800 + "address": "52.177.36.96", + "port": 3000 + } + ] + }, + { + "accumulatedStake": 0.7337942255214329, + "relativeStake": 0.0013582002266066394, + "relays": [ + { + "address": "cardano-relays-1.nu.fi", + "port": 3003 }, { - "domain": "cardano-relay-2.upbit.com", - "port": 30800 + "address": "cardano-relays-2.nu.fi", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.7351504988953373, + "relativeStake": 0.001356273373904377, + "relays": [ + { + "address": "3.139.50.19", + "port": 6000 }, { - "domain": "cardano-relay-3.upbit.com", - "port": 30800 + "address": "3.137.129.218", + "port": 6000 } ] }, { - "accumulatedStake": 0.7344484490424065, - "relativeStake": 0.001314952274129632, + "accumulatedStake": 0.7365055621041483, + "relativeStake": 0.001355063208811026, "relays": [ { - "domain": "cardano-relay-1.upbit.com", - "port": 30800 + "address": "relays.eu-de.cardano24.net", + "port": 6000 }, { - "domain": "cardano-relay-2.upbit.com", - "port": 30800 + "address": "relays.ap-jp.cardano24.net", + "port": 6000 }, { - "domain": "cardano-relay-3.upbit.com", - "port": 30800 + "address": "relays.eu-ch.cardano24.net", + "port": 6000 + }, + { + "address": "relays.na-us.cardano24.net", + "port": 6000 + }, + { + "address": "relays.af-za.cardano24.net", + "port": 6000 + }, + { + "address": "relays.ap-hk.cardano24.net", + "port": 6000 + }, + { + "address": "relays.sa-cl.cardano24.net", + "port": 6000 + }, + { + "address": "relays.ap-sg.cardano24.net", + "port": 6000 + }, + { + "address": "relays.na-ca.cardano24.net", + "port": 6000 } ] }, { - "accumulatedStake": 0.735752618610598, - "relativeStake": 0.0013041695681915797, + "accumulatedStake": 0.737846546025162, + "relativeStake": 0.0013409839210136584, "relays": [ { - "address": "20.69.213.207", - "port": 3000 + "address": "relays.mainnet.fortepool.io", + "port": 3001 } ] }, { - "accumulatedStake": 0.7370516189353179, - "relativeStake": 0.0012990003247198435, + "accumulatedStake": 0.7391810322082311, + "relativeStake": 0.0013344861830690302, "relays": [ { - "domain": "cardano-relay-1.upbit.com", + "address": "cardano-relay-1.upbit.com", "port": 30800 }, { - "domain": "cardano-relay-2.upbit.com", + "address": "cardano-relay-2.upbit.com", "port": 30800 }, { - "domain": "cardano-relay-3.upbit.com", + "address": "cardano-relay-3.upbit.com", "port": 30800 } ] }, { - "accumulatedStake": 0.7383505435318413, - "relativeStake": 0.0012989245965233265, + "accumulatedStake": 0.7405114926127884, + "relativeStake": 0.001330460404557305, "relays": [ { - "domain": "cardano-relay-1.upbit.com", - "port": 30800 + "address": "r1.1percentpool.eu", + "port": 19001 }, { - "domain": "cardano-relay-2.upbit.com", - "port": 30800 + "address": "r2.1percentpool.eu", + "port": 19002 + } + ] + }, + { + "accumulatedStake": 0.7418419323591813, + "relativeStake": 0.0013304397463929165, + "relays": [ + { + "address": "20.42.119.172", + "port": 6000 }, { - "domain": "cardano-relay-3.upbit.com", - "port": 30800 + "address": "160.251.196.40", + "port": 6000 } ] }, { - "accumulatedStake": 0.7396477053387878, - "relativeStake": 0.0012971618069465194, + "accumulatedStake": 0.7431691523317486, + "relativeStake": 0.0013272199725673488, "relays": [ { - "domain": "cardano-relay-1.upbit.com", + "address": "cardano-relay-1.upbit.com", "port": 30800 }, { - "domain": "cardano-relay-2.upbit.com", + "address": "cardano-relay-2.upbit.com", "port": 30800 }, { - "domain": "cardano-relay-3.upbit.com", + "address": "cardano-relay-3.upbit.com", "port": 30800 } ] }, { - "accumulatedStake": 0.7409433580834184, - "relativeStake": 0.0012956527446305658, + "accumulatedStake": 0.7444737941043755, + "relativeStake": 0.0013046417726269215, "relays": [ { - "domain": "relays.liqwid.finance", + "address": "ipclub29-1.relay.my-ip.at", "port": 3001 - } - ] - }, - { - "accumulatedStake": 0.7422370213974618, - "relativeStake": 0.0012936633140435434, - "relays": [ + }, { - "domain": "eu.relays.cardanians.io", - "port": 1000 + "address": "ipclub29-1.relay.my-ip.at", + "port": 3002 }, { - "domain": "ca.relays.cardanians.io", - "port": 1000 + "address": "ipclub29-2.relay.my-ip.at", + "port": 3001 } ] }, { - "accumulatedStake": 0.7435291197548964, - "relativeStake": 0.001292098357434518, + "accumulatedStake": 0.7457716469366389, + "relativeStake": 0.0012978528322633452, "relays": [ { - "domain": "94c3c6d3.cardano-relay.herd.run", - "port": 1338 + "address": "relays.liqwid.finance", + "port": 3001 } ] }, { - "accumulatedStake": 0.7448199659706413, - "relativeStake": 0.0012908462157448716, + "accumulatedStake": 0.7470675897077478, + "relativeStake": 0.0012959427711089666, "relays": [ { - "domain": "cardano-relay-2.upbit.com", - "port": 30800 + "address": "relay1.zetetic.tech", + "port": 3001 }, { - "domain": "cardano-relay-3.upbit.com", - "port": 30800 + "address": "relay2.zetetic.tech", + "port": 3001 }, { - "domain": "cardano-relay-1.upbit.com", - "port": 30800 + "address": "relay3.zetetic.tech", + "port": 3001 + }, + { + "address": "relay4.zetetic.tech", + "port": 3001 } ] }, { - "accumulatedStake": 0.7461096912678263, - "relativeStake": 0.0012897252971850349, + "accumulatedStake": 0.7483583047478902, + "relativeStake": 0.001290715040142355, "relays": [ { - "domain": "relays.liqwid.finance", + "address": "relay1.ada-stake.com", + "port": 3001 + }, + { + "address": "relay2.ada-stake.com", "port": 3001 } ] }, { - "accumulatedStake": 0.7473918462249856, - "relativeStake": 0.0012821549571593001, + "accumulatedStake": 0.749645792308007, + "relativeStake": 0.001287487560116831, "relays": [ { - "domain": "cardano-relays-1.nu.fi", + "address": "cardano-relays-1.nu.fi", "port": 3003 }, { - "domain": "cardano-relays-2.nu.fi", + "address": "cardano-relays-2.nu.fi", "port": 3001 } ] }, { - "accumulatedStake": 0.7486635438138449, - "relativeStake": 0.0012716975888592877, + "accumulatedStake": 0.7509311948795637, + "relativeStake": 0.0012854025715567507, "relays": [ { - "address": "67.205.138.106", + "address": "relay1.cardanesia.com", + "port": 3001 + }, + { + "address": "relay2.cardanesia.com", "port": 3001 } ] }, { - "accumulatedStake": 0.7499157364005385, - "relativeStake": 0.0012521925866936722, + "accumulatedStake": 0.7521995493902228, + "relativeStake": 0.001268354510659004, "relays": [ { - "domain": "32.cardano.staked.cloud", + "address": "relays.liqwid.finance", "port": 3001 } ] }, { - "accumulatedStake": 0.751162874783771, - "relativeStake": 0.0012471383832323676, + "accumulatedStake": 0.7534611737166905, + "relativeStake": 0.0012616243264677353, "relays": [ { - "address": "161.35.209.217", - "port": 6000 + "address": "relay1.angelstakepool.net", + "port": 5001 + }, + { + "address": "relay2.angelstakepool.net", + "port": 5002 } ] }, { - "accumulatedStake": 0.752409974071395, - "relativeStake": 0.0012470992876240674, + "accumulatedStake": 0.7547094105202503, + "relativeStake": 0.001248236803559805, "relays": [ { - "address": "206.81.3.194", + "address": "3.111.14.60", "port": 3001 } ] }, { - "accumulatedStake": 0.7536540080109772, - "relativeStake": 0.0012440339395821379, + "accumulatedStake": 0.7559539934730529, + "relativeStake": 0.0012445829528026102, "relays": [ { - "address": "65.109.12.161", - "port": 6001 + "address": "cardano-relays-1.nu.fi", + "port": 3003 }, { - "address": "116.203.131.106", - "port": 6002 + "address": "cardano-relays-2.nu.fi", + "port": 3001 } ] }, { - "accumulatedStake": 0.7548978856975099, - "relativeStake": 0.0012438776865328206, + "accumulatedStake": 0.7571948543030913, + "relativeStake": 0.0012408608300383797, "relays": [ { - "domain": "relay1.nedscave.io", + "address": "relay1.nedscave.io", "port": 3001 }, { - "domain": "relay2.nedscave.io", + "address": "relay2.nedscave.io", "port": 3001 }, { - "domain": "relay3.nedscave.io", + "address": "relay3.nedscave.io", "port": 3001 }, { - "domain": "relay4.nedscave.io", + "address": "relay4.nedscave.io", "port": 3001 } ] }, { - "accumulatedStake": 0.7561394794926226, - "relativeStake": 0.0012415937951127042, + "accumulatedStake": 0.7584322354444745, + "relativeStake": 0.0012373811413832077, "relays": [ { - "domain": "tadpole.adafrog.io", - "port": 3728 + "address": "34.146.212.90", + "port": 6000 + }, + { + "address": "34.175.85.49", + "port": 6000 } ] }, { - "accumulatedStake": 0.7573797693685244, - "relativeStake": 0.0012402898759017518, + "accumulatedStake": 0.7596695164904761, + "relativeStake": 0.0012372810460015964, "relays": [ { - "domain": "relays.planetstake.com", - "port": 3001 + "address": "btc-cardano-main-relay-00-a.bdnodes.net", + "port": 6000 }, { - "address": "161.97.90.20", - "port": 3001 + "address": "btc-cardano-main-relay-00-b.bdnodes.net", + "port": 6000 } ] }, { - "accumulatedStake": 0.7586180055308794, - "relativeStake": 0.0012382361623550797, + "accumulatedStake": 0.7609021468385405, + "relativeStake": 0.0012326303480643679, "relays": [ { - "address": "3.139.50.19", - "port": 6000 + "address": "relay1.hyperlinkpool.kr", + "port": 3002 }, { - "address": "3.137.129.218", - "port": 6000 + "address": "relay2.hyperlinkpool.kr", + "port": 3003 + }, + { + "address": "relay3.hyperlinkpool.kr", + "port": 3004 } ] }, { - "accumulatedStake": 0.759845160648273, - "relativeStake": 0.0012271551173934953, + "accumulatedStake": 0.7621304606446251, + "relativeStake": 0.0012283138060845658, "relays": [ { - "domain": "relay1.growpools.io", - "port": 4181 + "address": "89.58.11.57", + "port": 6000 }, { - "domain": "relay5.growpools.io", - "port": 4181 + "address": "185.207.104.130", + "port": 6000 } ] }, { - "accumulatedStake": 0.7610637523122337, - "relativeStake": 0.0012185916639607212, + "accumulatedStake": 0.763356178777361, + "relativeStake": 0.0012257181327359357, "relays": [ { - "address": "158.101.99.150", + "address": "tadpole.adafrog.io", + "port": 3728 + } + ] + }, + { + "accumulatedStake": 0.7645764655467998, + "relativeStake": 0.0012202867694388504, + "relays": [ + { + "address": "65.109.12.161", "port": 6001 }, { - "address": "150.136.111.193", - "port": 6001 + "address": "116.203.131.106", + "port": 6002 + } + ] + }, + { + "accumulatedStake": 0.7657933207114389, + "relativeStake": 0.0012168551646390693, + "relays": [ + { + "address": "relay1.apexpool.info", + "port": 5001 }, { - "address": "150.136.84.82", - "port": 6001 + "address": "relay2.apexpool.info", + "port": 5001 } ] }, { - "accumulatedStake": 0.7622741962264864, - "relativeStake": 0.001210443914252733, + "accumulatedStake": 0.7670085075204714, + "relativeStake": 0.0012151868090325183, "relays": [ { - "domain": "relay1.ada-stake.com", - "port": 3001 + "address": "34.84.0.241", + "port": 3000 }, { - "domain": "relay2.ada-stake.com", - "port": 3001 + "address": "34.146.198.77", + "port": 3000 } ] }, { - "accumulatedStake": 0.7634694133365939, - "relativeStake": 0.001195217110107479, + "accumulatedStake": 0.7682231473701113, + "relativeStake": 0.0012146398496399625, "relays": [ { - "domain": "europe1-zzz3relay.zzzpool.net", + "address": "eu-de-blue-cdn-relays.cardano.fans", + "port": 3001 + }, + { + "address": "us-us-blue-cdn-relays.cardano.fans", + "port": 3001 + }, + { + "address": "eu-fr-blue-cdn-relays.cardano.fans", "port": 3001 } ] }, { - "accumulatedStake": 0.7646534435166787, - "relativeStake": 0.0011840301800847856, + "accumulatedStake": 0.7694322000518076, + "relativeStake": 0.0012090526816961845, "relays": [ { - "domain": "relay.hazelpool.com", - "port": 39213 + "address": "135.181.194.233", + "port": 6000 }, { - "domain": "relay2.hazelpool.com", - "port": 39213 + "address": "168.119.101.200", + "port": 6000 + }, + { + "address": "5.161.59.12", + "port": 6000 } ] }, { - "accumulatedStake": 0.7658373666012991, - "relativeStake": 0.0011839230846203504, + "accumulatedStake": 0.7706368807017621, + "relativeStake": 0.0012046806499544445, "relays": [ { - "domain": "r1.isp-r1.wjg.jp", - "port": 3001 + "address": "148.113.17.23", + "port": 6000 }, { - "domain": "r2.isp-r1.wjg.jp", - "port": 3002 + "address": "158.69.25.103", + "port": 6000 + }, + { + "address": "95.216.70.238", + "port": 6000 + }, + { + "address": "149.102.140.234", + "port": 6000 } ] }, { - "accumulatedStake": 0.7670202712144274, - "relativeStake": 0.0011829046131283558, + "accumulatedStake": 0.7718377502720638, + "relativeStake": 0.0012008695703017676, "relays": [ { - "domain": "relay1.nedscave.io", + "address": "r1.isp-r1.wjg.jp", "port": 3001 }, { - "domain": "relay2.nedscave.io", - "port": 3001 - }, + "address": "r2.isp-r1.wjg.jp", + "port": 3002 + } + ] + }, + { + "accumulatedStake": 0.7730375543922601, + "relativeStake": 0.0011998041201962623, + "relays": [ { - "domain": "relay3.nedscave.io", - "port": 3001 + "address": "relay.hazelpool.com", + "port": 39213 }, { - "domain": "relay4.nedscave.io", - "port": 3001 + "address": "relay2.hazelpool.com", + "port": 39213 } ] }, { - "accumulatedStake": 0.768198111941672, - "relativeStake": 0.0011778407272445795, + "accumulatedStake": 0.7742186064578545, + "relativeStake": 0.0011810520655944254, "relays": [ { - "address": "57.129.24.185", + "address": "asia.jazzstakepool.net", "port": 3001 - }, + } + ] + }, + { + "accumulatedStake": 0.775391344212098, + "relativeStake": 0.0011727377542435533, + "relays": [ { - "address": "57.129.28.178", + "address": "206.81.3.194", "port": 3001 } ] }, { - "accumulatedStake": 0.7693758450789596, - "relativeStake": 0.0011777331372876743, + "accumulatedStake": 0.7765586411565051, + "relativeStake": 0.0011672969444071189, "relays": [ { - "domain": "relay01.nekota.work", + "address": "relay1-us.xstakepool.com", + "port": 3001 + }, + { + "address": "relay2-eu.xstakepool.com", "port": 3001 }, { - "domain": "relay02.nekota.work", + "address": "relay3-sg.xstakepool.com", "port": 3001 }, { - "domain": "relay03.nekota.work", + "address": "relay4-ae.xstakepool.com", "port": 3001 } ] }, { - "accumulatedStake": 0.7705408601981426, - "relativeStake": 0.0011650151191829878, + "accumulatedStake": 0.7777170128079218, + "relativeStake": 0.0011583716514166546, "relays": [ { - "address": "217.160.14.223", + "address": "77.68.30.20", + "port": 6000 + }, + { + "address": "132.145.98.48", "port": 6000 } ] }, { - "accumulatedStake": 0.7717035206631272, - "relativeStake": 0.0011626604649845544, + "accumulatedStake": 0.7788749043116555, + "relativeStake": 0.0011578915037337655, "relays": [ { - "address": "168.119.124.16", + "address": "relaynode1.kaldano.work", "port": 3001 }, { - "address": "202.61.246.91", + "address": "relaynode2.kaldano.work", "port": 3001 } ] }, { - "accumulatedStake": 0.7728654710314432, - "relativeStake": 0.0011619503683160566, + "accumulatedStake": 0.7800170292172672, + "relativeStake": 0.0011421249056116883, "relays": [ { - "domain": "a1666f4c.cardano-relay.herd.run", - "port": 1338 + "address": "20.69.213.207", + "port": 3000 } ] }, { - "accumulatedStake": 0.7740154778684655, - "relativeStake": 0.001150006837022213, + "accumulatedStake": 0.7811547593229162, + "relativeStake": 0.001137730105648961, "relays": [ { - "address": "212.103.79.154", + "address": "185.63.148.67", "port": 6002 }, { - "address": "212.103.79.154", + "address": "185.63.148.67", "port": 6003 } ] }, { - "accumulatedStake": 0.7751629978014842, - "relativeStake": 0.0011475199330187643, + "accumulatedStake": 0.782289761914707, + "relativeStake": 0.001135002591790817, "relays": [ { - "domain": "relaynode1.kaldano.work", + "address": "relay1.nedscave.io", "port": 3001 }, { - "domain": "relaynode2.kaldano.work", + "address": "relay2.nedscave.io", "port": 3001 - } - ] - }, - { - "accumulatedStake": 0.7762992908427646, - "relativeStake": 0.0011362930412804303, - "relays": [ + }, { - "address": "20.69.213.207", - "port": 3000 - } - ] - }, - { - "accumulatedStake": 0.7774337108011732, - "relativeStake": 0.0011344199584085559, - "relays": [ + "address": "relay3.nedscave.io", + "port": 3001 + }, { - "domain": "europe-de.popsp.net", + "address": "relay4.nedscave.io", "port": 3001 } ] }, { - "accumulatedStake": 0.7785674562132819, - "relativeStake": 0.0011337454121087634, + "accumulatedStake": 0.7834118523594701, + "relativeStake": 0.0011220904447630507, "relays": [ { - "domain": "relay1.bluecheesestakehouse.com", - "port": 5001 + "address": "168.119.124.16", + "port": 3001 + }, + { + "address": "202.61.246.91", + "port": 3001 } ] }, { - "accumulatedStake": 0.7796983355616632, - "relativeStake": 0.0011308793483812002, + "accumulatedStake": 0.7845305541169391, + "relativeStake": 0.0011187017574689814, "relays": [ { "address": "152.53.121.193", @@ -5143,60 +5019,48 @@ ] }, { - "accumulatedStake": 0.7808255476581487, - "relativeStake": 0.0011272120964855113, + "accumulatedStake": 0.7856487938578415, + "relativeStake": 0.001118239740902454, "relays": [ { - "address": "54.150.77.128", - "port": 6000 - }, - { - "address": "35.72.226.248", - "port": 6000 + "address": "relay1.bluecheesestakehouse.com", + "port": 5001 } ] }, { - "accumulatedStake": 0.7819527307359408, - "relativeStake": 0.0011271830777921923, + "accumulatedStake": 0.7867605142742948, + "relativeStake": 0.001111720416453341, "relays": [ { - "domain": "asia.jazzstakepool.net", + "address": "europe-de.popsp.net", "port": 3001 } ] }, { - "accumulatedStake": 0.7830790686842515, - "relativeStake": 0.0011263379483105916, + "accumulatedStake": 0.7878715560035089, + "relativeStake": 0.0011110417292140805, "relays": [ { - "address": "89.58.11.57", - "port": 6000 - }, - { - "address": "185.207.104.130", - "port": 6000 + "address": "20.69.213.207", + "port": 3000 } ] }, { - "accumulatedStake": 0.7842012384485496, - "relativeStake": 0.0011221697642981355, + "accumulatedStake": 0.7889821968843126, + "relativeStake": 0.0011106408808037118, "relays": [ { - "domain": "relay1.lidonation.com", - "port": 3011 - }, - { - "domain": "relay2.lidonation.com", - "port": 3012 + "address": "asia.jazzstakepool.net", + "port": 3001 } ] }, { - "accumulatedStake": 0.785317109215528, - "relativeStake": 0.0011158707669784022, + "accumulatedStake": 0.7900886450025172, + "relativeStake": 0.0011064481182044908, "relays": [ { "address": "20.91.236.57", @@ -5209,446 +5073,393 @@ ] }, { - "accumulatedStake": 0.786426157697636, - "relativeStake": 0.0011090484821079495, - "relays": [ - { - "address": "3.111.14.60", - "port": 3001 - } - ] - }, - { - "accumulatedStake": 0.7875292508576139, - "relativeStake": 0.001103093159977952, + "accumulatedStake": 0.7911908395010382, + "relativeStake": 0.0011021944985211013, "relays": [ { - "domain": "relay1.apexpool.info", - "port": 5001 + "address": "133.167.33.31", + "port": 6000 }, { - "domain": "relay2.apexpool.info", - "port": 5001 + "address": "162.43.71.205", + "port": 6000 } ] }, { - "accumulatedStake": 0.7886301915123389, - "relativeStake": 0.00110094065472502, + "accumulatedStake": 0.7922890498043875, + "relativeStake": 0.0010982103033492653, "relays": [ { - "domain": "asia.jazzstakepool.net", - "port": 3001 + "address": "52.167.20.127", + "port": 4000 } ] }, { - "accumulatedStake": 0.7897305615246434, - "relativeStake": 0.0011003700123043924, + "accumulatedStake": 0.7933831788912319, + "relativeStake": 0.0010941290868443636, "relays": [ { - "domain": "relay1.kaizn.kaizencrypto.com", - "port": 6000 + "address": "relay-kiln-8-0.cardano.mainnet.kiln.fi", + "port": 3001 }, { - "domain": "relay2.kaizn.kaizencrypto.com", - "port": 6000 + "address": "relay-kiln-8-1.cardano.mainnet.kiln.fi", + "port": 3001 + }, + { + "address": "relay-kiln-8-2.cardano.mainnet.kiln.fi", + "port": 3001 } ] }, { - "accumulatedStake": 0.7908259030787508, - "relativeStake": 0.0010953415541074727, + "accumulatedStake": 0.7944738325904411, + "relativeStake": 0.0010906536992093179, "relays": [ { - "address": "135.181.194.233", - "port": 6000 - }, - { - "address": "168.119.101.200", - "port": 6000 - }, - { - "address": "5.161.59.12", - "port": 6000 + "address": "relays.koralabs.io", + "port": 3001 } ] }, { - "accumulatedStake": 0.79192059886726, - "relativeStake": 0.0010946957885091162, + "accumulatedStake": 0.795564174383067, + "relativeStake": 0.0010903417926259105, "relays": [ { - "domain": "relay.azureada.com", + "address": "3.6.124.226", + "port": 3001 + }, + { + "address": "18.193.92.87", "port": 3001 }, { - "domain": "relay.azureada.com", + "address": "54.219.241.10", "port": 3001 } ] }, { - "accumulatedStake": 0.7930121034555301, - "relativeStake": 0.0010915045882702128, + "accumulatedStake": 0.7966515963480776, + "relativeStake": 0.001087421965010514, "relays": [ { - "domain": "europe3-zzz5relay.zzzpool.net", + "address": "relays.planetstake.com", + "port": 3001 + }, + { + "address": "161.97.90.20", "port": 3001 } ] }, { - "accumulatedStake": 0.794095362258198, - "relativeStake": 0.0010832588026678197, + "accumulatedStake": 0.7977348774193633, + "relativeStake": 0.0010832810712857036, "relays": [ { - "address": "133.167.33.31", + "address": "relay1.kaizn.kaizencrypto.com", "port": 6000 }, { - "address": "162.43.71.205", + "address": "relay2.kaizn.kaizencrypto.com", "port": 6000 } ] }, { - "accumulatedStake": 0.7951714189514759, - "relativeStake": 0.001076056693278006, + "accumulatedStake": 0.7988145374982797, + "relativeStake": 0.0010796600789164273, "relays": [ { - "domain": "relays.koralabs.io", + "address": "europe1-zzz3relay.zzzpool.net", "port": 3001 } ] }, { - "accumulatedStake": 0.7962456336729897, - "relativeStake": 0.0010742147215137875, + "accumulatedStake": 0.799891239744564, + "relativeStake": 0.00107670224628426, "relays": [ { - "address": "52.167.20.127", - "port": 4000 + "address": "relay1.viperstaking.com", + "port": 4444 } ] }, { - "accumulatedStake": 0.7973158744014817, - "relativeStake": 0.0010702407284919142, + "accumulatedStake": 0.8009489946032106, + "relativeStake": 0.001057754858646535, "relays": [ { - "address": "52.167.20.127", - "port": 4000 + "address": "relay-0-eu.junostakepool.com", + "port": 4321 + }, + { + "address": "relay-1-eu.junostakepool.com", + "port": 4321 + }, + { + "address": "relay-1-nuc.junostakepool.com", + "port": 17421 + }, + { + "address": "relay-2-nuc.junostakepool.com", + "port": 17431 } ] }, { - "accumulatedStake": 0.7983806289966155, - "relativeStake": 0.0010647545951339358, + "accumulatedStake": 0.8020013577279713, + "relativeStake": 0.0010523631247607503, "relays": [ { - "domain": "relay.azureada.com", - "port": 3001 - }, - { - "domain": "relay.azureada.com", + "address": "europe3-zzz5relay.zzzpool.net", "port": 3001 } ] }, { - "accumulatedStake": 0.7994376292817799, - "relativeStake": 0.0010570002851642646, + "accumulatedStake": 0.8030436510601686, + "relativeStake": 0.0010422933321973566, "relays": [ { - "domain": "adaboy-mainnet-2a.gleeze.com", + "address": "adaboy-mainnet-2a.gleeze.com", "port": 6000 }, { - "domain": "adaboy-mainnet-3a.gleeze.com", + "address": "adaboy-mainnet-3a.gleeze.com", "port": 6000 } ] }, { - "accumulatedStake": 0.8004945909225708, - "relativeStake": 0.0010569616407909363, + "accumulatedStake": 0.8040808934190314, + "relativeStake": 0.0010372423588628436, "relays": [ { - "domain": "relay1.nedscave.io", + "address": "relay1.cerostakepool.com", "port": 3001 }, { - "domain": "relay2.nedscave.io", + "address": "relay2.cerostakepool.com", "port": 3001 }, { - "domain": "relay3.nedscave.io", + "address": "relay3.cerostakepool.com", "port": 3001 }, { - "domain": "relay4.nedscave.io", + "address": "relay4.cerostakepool.com", "port": 3001 } ] }, { - "accumulatedStake": 0.8015466805858068, - "relativeStake": 0.0010520896632360312, + "accumulatedStake": 0.8051177037124355, + "relativeStake": 0.0010368102934040205, "relays": [ { - "domain": "relay0.bluecheesestakehouse.com", - "port": 5000 + "address": "relay-pool-2-mainnet.cardano.aeq5f.com" } ] }, { - "accumulatedStake": 0.8025946877989187, - "relativeStake": 0.0010480072131119115, + "accumulatedStake": 0.8061539964566468, + "relativeStake": 0.0010362927442113016, "relays": [ { - "address": "35.154.123.251", - "port": 3001 + "address": "relay01.lacepool.com", + "port": 3000 }, { - "address": "15.206.230.107", - "port": 3001 - } - ] - }, - { - "accumulatedStake": 0.8036408483298477, - "relativeStake": 0.0010461605309290136, - "relays": [ - { - "domain": "relay.gmbl.mainnet.cardano.gimbalabs.io", - "port": 30042 + "address": "relay02.lacepool.com", + "port": 3000 } ] }, { - "accumulatedStake": 0.8046798001936716, - "relativeStake": 0.0010389518638238395, + "accumulatedStake": 0.807188124364455, + "relativeStake": 0.001034127907808151, "relays": [ { - "domain": "relay1.viperstaking.com", - "port": 4444 - } - ] - }, - { - "accumulatedStake": 0.8057162884645793, - "relativeStake": 0.0010364882709076892, - "relays": [ + "address": "relay.azureada.com", + "port": 3001 + }, { - "domain": "asia.jazzstakepool.net", + "address": "relay.azureada.com", "port": 3001 } ] }, { - "accumulatedStake": 0.8067428716897067, - "relativeStake": 0.0010265832251274802, + "accumulatedStake": 0.808218064875627, + "relativeStake": 0.0010299405111720186, "relays": [ { - "domain": "relays.zw3rkpool.com", - "port": 3000 + "address": "asia.jazzstakepool.net", + "port": 3001 } ] }, { - "accumulatedStake": 0.807762819844467, - "relativeStake": 0.0010199481547602163, + "accumulatedStake": 0.8092470261850847, + "relativeStake": 0.0010289613094577525, "relays": [ { - "domain": "relay01.lacepool.com", + "address": "relays.zw3rkpool.com", "port": 3000 - }, - { - "domain": "relay02.lacepool.com", - "port": 3000 - } - ] - }, - { - "accumulatedStake": 0.8087824416792299, - "relativeStake": 0.0010196218347629032, - "relays": [ - { - "domain": "relay-0-eu.junostakepool.com", - "port": 4321 - }, - { - "domain": "relay-1-eu.junostakepool.com", - "port": 4321 - }, - { - "domain": "relay-1-nuc.junostakepool.com", - "port": 17421 - }, - { - "domain": "relay-2-nuc.junostakepool.com", - "port": 17431 } ] }, { - "accumulatedStake": 0.8097959822831037, - "relativeStake": 0.001013540603873825, + "accumulatedStake": 0.8102598716824787, + "relativeStake": 0.0010128454973939672, "relays": [ { - "domain": "relay1.squidpool.com", + "address": "relay.azureada.com", "port": 3001 }, { - "domain": "relay2.squidpool.com", + "address": "relay.azureada.com", "port": 3001 } ] }, { - "accumulatedStake": 0.8107882654847639, - "relativeStake": 0.0009922832016602413, + "accumulatedStake": 0.8112720121909691, + "relativeStake": 0.001012140508490407, "relays": [ { - "domain": "relays.banderini.net", + "address": "asia.jazzstakepool.net", "port": 3001 } ] }, { - "accumulatedStake": 0.8117799514647971, - "relativeStake": 0.000991685980033189, + "accumulatedStake": 0.8122793144365779, + "relativeStake": 0.0010073022456087847, "relays": [ { - "domain": "relay1.toiro.love", - "port": 6000 + "address": "34.46.125.13", + "port": 20151 }, { - "domain": "relay2.toiro.love", - "port": 6000 + "address": "34.142.28.176", + "port": 20152 } ] }, { - "accumulatedStake": 0.8127702640623852, - "relativeStake": 0.0009903125975880339, + "accumulatedStake": 0.8132849964915989, + "relativeStake": 0.0010056820550210625, "relays": [ { - "domain": "eu.relays.cardanians.io", + "address": "eu.relays.cardanians.io", "port": 1000 }, { - "domain": "ca.relays.cardanians.io", + "address": "ca.relays.cardanians.io", "port": 1000 } ] }, { - "accumulatedStake": 0.8137601810670403, - "relativeStake": 0.0009899170046550696, + "accumulatedStake": 0.8142905524654893, + "relativeStake": 0.0010055559738903646, "relays": [ { - "domain": "ipclub29-1.relay.my-ip.at", + "address": "15.204.97.132", "port": 3001 }, { - "domain": "ipclub29-1.relay.my-ip.at", - "port": 3002 - }, - { - "domain": "ipclub29-2.relay.my-ip.at", + "address": "15.204.97.130", "port": 3001 } ] }, { - "accumulatedStake": 0.8147488612165654, - "relativeStake": 0.0009886801495252123, + "accumulatedStake": 0.8152948076726853, + "relativeStake": 0.0010042552071959482, "relays": [ { - "domain": "north-america.katanapool.net", - "port": 3001 + "address": "relay.gmbl.mainnet.cardano.gimbalabs.io", + "port": 30042 } ] }, { - "accumulatedStake": 0.8157366887067982, - "relativeStake": 0.000987827490232734, + "accumulatedStake": 0.8162922689378777, + "relativeStake": 0.000997461265192417, "relays": [ { - "domain": "guru-relays.cloudpro.cl", - "port": 3001 + "address": "relay0.bluecheesestakehouse.com", + "port": 5000 } ] }, { - "accumulatedStake": 0.8167223771568466, - "relativeStake": 0.0009856884500483655, + "accumulatedStake": 0.817286806227548, + "relativeStake": 0.0009945372896703688, "relays": [ { - "domain": "relays.xray.app", - "port": 3000 + "address": "relay1.314pool.com", + "port": 31415 + }, + { + "address": "relay2.314pool.com", + "port": 31415 } ] }, { - "accumulatedStake": 0.8177074882916716, - "relativeStake": 0.0009851111348250588, + "accumulatedStake": 0.8182808541475545, + "relativeStake": 0.000994047920006412, "relays": [ { - "domain": "relay1.314pool.com", - "port": 31415 - }, - { - "domain": "relay2.314pool.com", - "port": 31415 + "address": "149.28.106.59", + "port": 6000 } ] }, { - "accumulatedStake": 0.8186880989966796, - "relativeStake": 0.000980610705008033, + "accumulatedStake": 0.8192684546872377, + "relativeStake": 0.0009876005396833012, "relays": [ { - "domain": "white-denver-a41cf.cardano.bdnodes.net", + "address": "relay1.toiro.love", "port": 6000 }, { - "domain": "cinnabar-prague-71400.cardano.bdnodes.net", + "address": "relay2.toiro.love", "port": 6000 } ] }, { - "accumulatedStake": 0.8196671139309005, - "relativeStake": 0.000979014934220895, + "accumulatedStake": 0.8202424730361982, + "relativeStake": 0.0009740183489604252, "relays": [ { - "domain": "relay-ca.ada.psiloblox.io", - "port": 3002 + "address": "ipclub29-1.relay.my-ip.at", + "port": 3001 }, { - "address": "2600:ac02:7c06:0:20c:29ff:fe01:4ff9", + "address": "ipclub29-1.relay.my-ip.at", "port": 3002 }, { - "address": "208.118.69.126", - "port": 3003 - }, - { - "domain": "relay-jp.ada.psiloblox.io", + "address": "ipclub29-2.relay.my-ip.at", "port": 3001 - }, - { - "domain": "relay-de.ada.psiloblox.io", - "port": 3002 } ] }, { - "accumulatedStake": 0.8206412121496943, - "relativeStake": 0.0009740982187938193, + "accumulatedStake": 0.8212136154652075, + "relativeStake": 0.0009711424290093733, "relays": [ { "address": "143.198.100.84", @@ -5661,234 +5472,228 @@ ] }, { - "accumulatedStake": 0.8216100583469406, - "relativeStake": 0.0009688461972462174, + "accumulatedStake": 0.8221763468724036, + "relativeStake": 0.0009627314071960526, "relays": [ { - "address": "168.119.124.16", - "port": 3001 + "address": "161.35.209.217", + "port": 6000 } ] }, { - "accumulatedStake": 0.8225747529814594, - "relativeStake": 0.0009646946345188136, + "accumulatedStake": 0.8231365045328364, + "relativeStake": 0.0009601576604328071, "relays": [ { - "address": "3.6.124.226", - "port": 3001 - }, - { - "address": "18.193.92.87", + "address": "57.129.28.179", "port": 3001 }, { - "address": "54.219.241.10", + "address": "57.129.28.180", "port": 3001 } ] }, { - "accumulatedStake": 0.823538777021341, - "relativeStake": 0.0009640240398816547, + "accumulatedStake": 0.8240931452620387, + "relativeStake": 0.0009566407292022615, "relays": [ { - "domain": "cardano-relays-1.nu.fi", - "port": 3003 + "address": "35.154.123.251", + "port": 3001 }, { - "domain": "cardano-relays-2.nu.fi", + "address": "15.206.230.107", "port": 3001 } ] }, { - "accumulatedStake": 0.8244854328910928, - "relativeStake": 0.000946655869751692, + "accumulatedStake": 0.8250413495514182, + "relativeStake": 0.0009482042893795412, "relays": [ { - "domain": "relays.xray.app", - "port": 3000 + "address": "relay-ca.ada.psiloblox.io", + "port": 3002 + }, + { + "address": "2600:ac02:7c06:0:20c:29ff:fe01:4ff9", + "port": 3002 + }, + { + "address": "208.118.69.126", + "port": 3003 + }, + { + "address": "relay-jp.ada.psiloblox.io", + "port": 3001 + }, + { + "address": "relay-de.ada.psiloblox.io", + "port": 3002 } ] }, { - "accumulatedStake": 0.8254314321842458, - "relativeStake": 0.0009459992931529606, + "accumulatedStake": 0.8259876258459096, + "relativeStake": 0.0009462762944913843, "relays": [ { - "domain": "relay.plushpool.com", - "port": 6000 + "address": "52.167.20.127", + "port": 4000 } ] }, { - "accumulatedStake": 0.8263725592435551, - "relativeStake": 0.0009411270593094074, + "accumulatedStake": 0.8269239447475745, + "relativeStake": 0.0009363189016648391, "relays": [ { - "domain": "relays.wavepool.digital", + "address": "relays.banderini.net", "port": 3001 } ] }, { - "accumulatedStake": 0.8273133889444957, - "relativeStake": 0.0009408297009405407, + "accumulatedStake": 0.8278570880706365, + "relativeStake": 0.0009331433230620388, "relays": [ { - "domain": "cardano-relay.atomicwallet.io", - "port": 6001 + "address": "cardano-relays.autostake.com", + "port": 3001 } ] }, { - "accumulatedStake": 0.8282482163898907, - "relativeStake": 0.0009348274453950501, + "accumulatedStake": 0.8287891569211778, + "relativeStake": 0.0009320688505413427, "relays": [ { - "address": "45.77.67.30", - "port": 3000 + "address": "relay1.nedscave.io", + "port": 3001 }, { - "address": "45.32.153.230", - "port": 3000 - } - ] - }, - { - "accumulatedStake": 0.8291763325329115, - "relativeStake": 0.0009281161430207212, - "relays": [ + "address": "relay2.nedscave.io", + "port": 3001 + }, { - "domain": "cardano-relays.atomicwallet.io", - "port": 6001 - } - ] - }, - { - "accumulatedStake": 0.830099281330375, - "relativeStake": 0.0009229487974635949, - "relays": [ + "address": "relay3.nedscave.io", + "port": 3001 + }, { - "domain": "43.cardano.staked.cloud", + "address": "relay4.nedscave.io", "port": 3001 } ] }, { - "accumulatedStake": 0.8310195479478176, - "relativeStake": 0.0009202666174426441, + "accumulatedStake": 0.8297132825929825, + "relativeStake": 0.0009241256718046222, "relays": [ { - "address": "168.119.124.16", + "address": "cardano-relays-1.nu.fi", + "port": 3003 + }, + { + "address": "cardano-relays-2.nu.fi", "port": 3001 } ] }, { - "accumulatedStake": 0.8319336309024211, - "relativeStake": 0.0009140829546034525, + "accumulatedStake": 0.8306312777144802, + "relativeStake": 0.0009179951214978029, "relays": [ { - "domain": "relays.wavepool.digital", - "port": 3001 + "address": "45.77.67.30", + "port": 3000 + }, + { + "address": "45.32.153.230", + "port": 3000 } ] }, { - "accumulatedStake": 0.8328438571712062, - "relativeStake": 0.0009102262687850789, + "accumulatedStake": 0.8315478139035583, + "relativeStake": 0.0009165361890779885, "relays": [ { - "address": "154.38.174.71", - "port": 6000 - }, - { - "address": "89.117.19.225", + "address": "relay.plushpool.com", "port": 6000 } ] }, { - "accumulatedStake": 0.8337513669728592, - "relativeStake": 0.0009075098016530688, + "accumulatedStake": 0.8324582262942483, + "relativeStake": 0.0009104123906900664, "relays": [ { - "domain": "germany.cardanode.io", - "port": 6000 - }, - { - "domain": "missouri.cardanode.io", + "address": "154.38.174.71", "port": 6000 }, { - "domain": "la.cardanode.io", - "port": 6000 + "address": "118.153.253.133", + "port": 57413 }, { - "domain": "perth.cardanode.io", - "port": 6000 + "address": "118.153.253.133", + "port": 57414 } ] }, { - "accumulatedStake": 0.8346584219080404, - "relativeStake": 0.0009070549351811337, + "accumulatedStake": 0.833366219586612, + "relativeStake": 0.0009079932923636478, "relays": [ { - "domain": "cpr1.sargatxet.cloud", - "port": 6001 - }, - { - "domain": "cpr2.sargatxet.cloud", - "port": 6001 + "address": "104.236.24.187", + "port": 5281 }, { - "domain": "cpr3.sargatxet.cloud", - "port": 6001 + "address": "23.24.140.149", + "port": 5282 } ] }, { - "accumulatedStake": 0.8355646959320158, - "relativeStake": 0.0009062740239754283, + "accumulatedStake": 0.8342652551276494, + "relativeStake": 0.0008990355410374494, "relays": [ { - "address": "157.245.228.134", - "port": 3001 - }, - { - "address": "159.89.120.164", - "port": 3001 - }, - { - "address": "209.97.186.44", + "address": "relays.wavepool.digital", "port": 3001 - }, + } + ] + }, + { + "accumulatedStake": 0.8351616264270152, + "relativeStake": 0.0008963712993657432, + "relays": [ { - "domain": "na.bloompool.io", + "address": "relays.wavepool.digital", "port": 3001 } ] }, { - "accumulatedStake": 0.8364699154740105, - "relativeStake": 0.000905219541994653, + "accumulatedStake": 0.8360549136232996, + "relativeStake": 0.0008932871962845109, "relays": [ { - "address": "64.176.49.224", + "address": "r1.21ada.ca", "port": 6000 }, { - "address": "149.28.161.63", + "address": "r2.21ada.ca", "port": 6000 } ] }, { - "accumulatedStake": 0.8373602544726341, - "relativeStake": 0.0008903389986235982, + "accumulatedStake": 0.8369456785992495, + "relativeStake": 0.0008907649759498407, "relays": [ { "address": "75.119.157.236", @@ -5901,8 +5706,8 @@ ] }, { - "accumulatedStake": 0.8382476437432743, - "relativeStake": 0.0008873892706402659, + "accumulatedStake": 0.8378320045382656, + "relativeStake": 0.0008863259390160657, "relays": [ { "address": "194.233.70.42", @@ -5915,116 +5720,112 @@ ] }, { - "accumulatedStake": 0.8391347643685418, - "relativeStake": 0.0008871206252675408, + "accumulatedStake": 0.8387127337052291, + "relativeStake": 0.0008807291669635948, "relays": [ { - "address": "54.228.75.154", - "port": 3003 - }, - { - "address": "54.228.75.154", - "port": 3001 + "address": "cpr1.sargatxet.cloud", + "port": 6001 }, { - "address": "34.249.11.89", - "port": 3003 + "address": "cpr2.sargatxet.cloud", + "port": 6001 }, { - "address": "34.249.11.89", - "port": 3001 - } - ] - }, - { - "accumulatedStake": 0.8400115930891544, - "relativeStake": 0.0008768287206125479, - "relays": [ - { - "domain": "cardano-relays.autostake.com", - "port": 3001 + "address": "cpr3.sargatxet.cloud", + "port": 6001 } ] }, { - "accumulatedStake": 0.8408844457354447, - "relativeStake": 0.0008728526462903211, + "accumulatedStake": 0.8395923096931068, + "relativeStake": 0.0008795759878776538, "relays": [ { - "address": "178.128.79.219", - "port": 3001 + "address": "relay1.alfa-pool.gr", + "port": 6001 }, { - "address": "104.131.122.73", - "port": 3001 - } - ] - }, - { - "accumulatedStake": 0.8417569201334576, - "relativeStake": 0.0008724743980128314, - "relays": [ - { - "address": "135.181.194.233", + "address": "relay2.alfa-pool.gr", "port": 6000 }, { - "address": "168.119.101.200", + "address": "relay3.alfa-pool.gr", "port": 6000 }, { - "address": "5.161.59.12", + "address": "relay4.alfa-pool.gr", "port": 6000 } ] }, { - "accumulatedStake": 0.8426236411552178, - "relativeStake": 0.0008667210217602237, + "accumulatedStake": 0.8404653552778297, + "relativeStake": 0.0008730455847228731, "relays": [ { - "address": "126.77.67.70", + "address": "144.126.145.189", "port": 6000 }, { - "address": "126.77.67.70", + "address": "144.126.145.190", "port": 7001 } ] }, { - "accumulatedStake": 0.8434879330711257, - "relativeStake": 0.0008642919159078414, + "accumulatedStake": 0.8413377293602058, + "relativeStake": 0.0008723740823760863, "relays": [ { - "domain": "ACLrelay1.cardanoland.com", - "port": 6000 + "address": "rho.relay.easy1staking.com", + "port": 30020 }, { - "domain": "ACLrelay2.cardanoland.com", - "port": 7000 + "address": "pi.relay.easy1staking.com", + "port": 30021 }, { - "domain": "ACLrelay3.cardanoland.com", - "port": 8000 + "address": "eu-central-1.relay.easy1staking.com", + "port": 30000 }, { - "domain": "ACLrelay4.cardanoland.com", - "port": 6000 + "address": "us-east-1.relay.easy1staking.com", + "port": 30000 + } + ] + }, + { + "accumulatedStake": 0.8422080462896172, + "relativeStake": 0.000870316929411466, + "relays": [ + { + "address": "relay01.nekota.work", + "port": 3001 }, { - "domain": "ACLrelay5.cardanoland.com", - "port": 7000 + "address": "relay02.nekota.work", + "port": 3001 }, { - "domain": "ACLrelay6.cardanoland.com", - "port": 8000 + "address": "relay03.nekota.work", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.8430739648890863, + "relativeStake": 0.000865918599469076, + "relays": [ + { + "address": "cardano-relay.atomicwallet.io", + "port": 6001 } ] }, { - "accumulatedStake": 0.844347083591148, - "relativeStake": 0.00085915052002235, + "accumulatedStake": 0.8439341976648492, + "relativeStake": 0.0008602327757629474, "relays": [ { "address": "13.208.79.46", @@ -6033,22 +5834,26 @@ ] }, { - "accumulatedStake": 0.845191831514431, - "relativeStake": 0.0008447479232829781, + "accumulatedStake": 0.8447919515797184, + "relativeStake": 0.000857753914869216, "relays": [ { - "address": "143.110.217.207", - "port": 6000 + "address": "relay0.crimsonpool.com", + "port": 5100 }, { - "address": "167.99.88.198", - "port": 6000 + "address": "relay1.crimsonpool.com", + "port": 5101 + }, + { + "address": "relay2.crimsonpool.com", + "port": 5102 } ] }, { - "accumulatedStake": 0.8460272679603437, - "relativeStake": 0.0008354364459127259, + "accumulatedStake": 0.8456273418594116, + "relativeStake": 0.000835390279693111, "relays": [ { "address": "85.215.147.174", @@ -6061,1008 +5866,1001 @@ ] }, { - "accumulatedStake": 0.8468613147493672, - "relativeStake": 0.0008340467890235434, + "accumulatedStake": 0.8464624153701981, + "relativeStake": 0.0008350735107864674, "relays": [ { - "domain": "adar2.stakit.io", - "port": 30501 + "address": "relays.xray.app", + "port": 3000 } ] }, { - "accumulatedStake": 0.8476914572816308, - "relativeStake": 0.000830142532263491, + "accumulatedStake": 0.8472967095975469, + "relativeStake": 0.0008342942273488415, "relays": [ { - "address": "157.245.228.134", - "port": 3001 - }, - { - "address": "159.89.120.164", - "port": 3001 - }, - { - "address": "209.97.186.44", + "address": "178.128.79.219", "port": 3001 }, { - "domain": "na.bloompool.io", + "address": "104.131.122.73", "port": 3001 } ] }, { - "accumulatedStake": 0.8485185763640175, - "relativeStake": 0.0008271190823867543, + "accumulatedStake": 0.8481260048280064, + "relativeStake": 0.0008292952304595129, "relays": [ { - "address": "3.125.129.213", + "address": "ACLrelay1.cardanoland.com", "port": 6000 - } - ] - }, - { - "accumulatedStake": 0.8493435436876215, - "relativeStake": 0.0008249673236040863, - "relays": [ + }, { - "domain": "relay1.powerstakepool.com", - "port": 6000 + "address": "ACLrelay2.cardanoland.com", + "port": 7000 + }, + { + "address": "ACLrelay3.cardanoland.com", + "port": 8000 }, { - "domain": "relay2.powerstakepool.com", + "address": "ACLrelay4.cardanoland.com", "port": 6000 - } - ] - }, - { - "accumulatedStake": 0.8501618118623958, - "relativeStake": 0.0008182681747742735, - "relays": [ + }, { - "domain": "europe1-relay.jpn-sp.net", - "port": 3001 + "address": "ACLrelay5.cardanoland.com", + "port": 7000 + }, + { + "address": "ACLrelay6.cardanoland.com", + "port": 8000 } ] }, { - "accumulatedStake": 0.8509790293142666, - "relativeStake": 0.0008172174518708055, + "accumulatedStake": 0.848953882402109, + "relativeStake": 0.0008278775741026239, "relays": [ { - "domain": "cardano-relays-1.nu.fi", - "port": 3003 + "address": "20.61.229.103", + "port": 3001 }, { - "domain": "cardano-relays-2.nu.fi", + "address": "20.61.228.218", "port": 3001 - } - ] - }, - { - "accumulatedStake": 0.8517953112737222, - "relativeStake": 0.0008162819594556032, - "relays": [ + }, { - "domain": "r1.1percentpool.eu", - "port": 19001 + "address": "108.142.42.221", + "port": 3001 }, { - "domain": "r2.1percentpool.eu", - "port": 19002 + "address": "108.142.42.161", + "port": 3001 } ] }, { - "accumulatedStake": 0.8526006245238439, - "relativeStake": 0.000805313250121616, + "accumulatedStake": 0.849781096553626, + "relativeStake": 0.0008272141515169583, "relays": [ { - "domain": "relay0.crimsonpool.com", - "port": 5100 - }, - { - "domain": "relay1.crimsonpool.com", - "port": 5101 + "address": "143.110.217.207", + "port": 6000 }, { - "domain": "relay2.crimsonpool.com", - "port": 5102 + "address": "167.99.88.198", + "port": 6000 } ] }, { - "accumulatedStake": 0.8534049537472949, - "relativeStake": 0.0008043292234509406, + "accumulatedStake": 0.8506049056534888, + "relativeStake": 0.0008238090998628185, "relays": [ { - "address": "157.245.228.134", - "port": 3001 + "address": "germany.cardanode.io", + "port": 6000 }, { - "address": "159.89.120.164", - "port": 3001 + "address": "missouri.cardanode.io", + "port": 6000 }, { - "address": "209.97.186.44", - "port": 3001 + "address": "la.cardanode.io", + "port": 6000 }, { - "domain": "eu.bloompool.io", - "port": 3001 + "address": "perth.cardanode.io", + "port": 6000 } ] }, { - "accumulatedStake": 0.8542090877263644, - "relativeStake": 0.0008041339790695681, + "accumulatedStake": 0.8514271190149276, + "relativeStake": 0.0008222133614388137, "relays": [ { - "domain": "LANDrelay1.cardanoland.com", + "address": "LANDrelay1.cardanoland.com", "port": 6000 }, { - "domain": "LANDrelay2.cardanoland.com", + "address": "LANDrelay2.cardanoland.com", "port": 7000 }, { - "domain": "LANDrelay3.cardanoland.com", + "address": "LANDrelay3.cardanoland.com", "port": 8000 }, { - "domain": "LANDrelay4.cardanoland.com", + "address": "LANDrelay4.cardanoland.com", "port": 6000 }, { - "domain": "LANDrelay5.cardanoland.com", + "address": "LANDrelay5.cardanoland.com", "port": 7000 }, { - "domain": "LANDrelay6.cardanoland.com", + "address": "LANDrelay6.cardanoland.com", "port": 8000 } ] }, { - "accumulatedStake": 0.8549994968867259, - "relativeStake": 0.0007904091603615992, - "relays": [ - { - "domain": "relay1.ppcx1.mainnet.cardano.p2p.org", - "port": 6001 - }, - { - "domain": "relay2.ppcx1.mainnet.cardano.p2p.org", - "port": 6001 - } - ] - }, - { - "accumulatedStake": 0.8557835684901874, - "relativeStake": 0.0007840716034614307, + "accumulatedStake": 0.8522488893803911, + "relativeStake": 0.0008217703654635498, "relays": [ { - "domain": "relay1.cashflowpool.com", - "port": 3001 + "address": "cardano-relays-1.nu.fi", + "port": 3003 }, { - "domain": "relay2.cashflowpool.com", + "address": "cardano-relays-2.nu.fi", "port": 3001 } ] }, { - "accumulatedStake": 0.8565666643521351, - "relativeStake": 0.0007830958619477167, + "accumulatedStake": 0.8530691194909643, + "relativeStake": 0.0008202301105731832, "relays": [ { - "domain": "relay1.astra-pool.com", + "address": "116.80.93.53", "port": 6000 }, { - "domain": "relay2.astra-pool.com", + "address": "5.104.85.79", "port": 6000 } ] }, { - "accumulatedStake": 0.8573478955218456, - "relativeStake": 0.0007812311697105177, + "accumulatedStake": 0.8538878507001547, + "relativeStake": 0.0008187312091903273, "relays": [ { - "domain": "relay1.thevikingpool.com", - "port": 6000 - }, - { - "domain": "relay2.thevikingpool.com", - "port": 6000 + "address": "cardano-relays.atomicwallet.io", + "port": 6001 } ] }, { - "accumulatedStake": 0.8581280363309487, - "relativeStake": 0.0007801408091030325, + "accumulatedStake": 0.8547025624681319, + "relativeStake": 0.0008147117679772108, "relays": [ { - "address": "20.61.229.103", - "port": 3001 - }, - { - "address": "20.61.228.218", - "port": 3001 - }, - { - "address": "108.142.42.221", - "port": 3001 - }, - { - "address": "108.142.42.161", - "port": 3001 + "address": "3.125.129.213", + "port": 6000 } ] }, { - "accumulatedStake": 0.8589011641546439, - "relativeStake": 0.0007731278236952369, + "accumulatedStake": 0.8555160737495003, + "relativeStake": 0.000813511281368445, "relays": [ { - "domain": "relay1.adaocean.com", - "port": 6000 - }, - { - "domain": "relay2.adaocean.com", - "port": 6000 - }, - { - "domain": "relay3.adaocean.com", + "address": "135.181.194.233", "port": 6000 }, { - "domain": "relay4.adaocean.com", + "address": "168.119.101.200", "port": 6000 }, { - "domain": "relay5.adaocean.com", + "address": "5.161.59.12", "port": 6000 } ] }, { - "accumulatedStake": 0.8596725037291842, - "relativeStake": 0.0007713395745403324, + "accumulatedStake": 0.8563256737815831, + "relativeStake": 0.0008096000320827642, "relays": [ { - "domain": "40.cardano.staked.cloud", + "address": "168.119.124.16", "port": 3001 } ] }, { - "accumulatedStake": 0.8604248183285333, - "relativeStake": 0.0007523145993490868, + "accumulatedStake": 0.857129372723877, + "relativeStake": 0.0008036989422939051, "relays": [ { - "domain": "relay.armadastakepool.com", - "port": 5100 + "address": "europe1-relay.jpn-sp.net", + "port": 3001 } ] }, { - "accumulatedStake": 0.8611712053179729, - "relativeStake": 0.0007463869894395776, + "accumulatedStake": 0.8579263551601454, + "relativeStake": 0.0007969824362684016, "relays": [ { - "domain": "cardano-relays-1.nu.fi", - "port": 3003 + "address": "white-denver-a41cf.cardano.bdnodes.net", + "port": 6000 }, { - "domain": "cardano-relays-2.nu.fi", - "port": 3001 + "address": "cinnabar-prague-71400.cardano.bdnodes.net", + "port": 6000 } ] }, { - "accumulatedStake": 0.8619041174787616, - "relativeStake": 0.0007329121607887086, + "accumulatedStake": 0.8587193474748108, + "relativeStake": 0.000792992314665434, "relays": [ { - "domain": "a-r1.elitestakepool.com", - "port": 7011 - }, - { - "domain": "a-r2.elitestakepool.com", - "port": 7012 - }, - { - "domain": "b-r3.elitestakepool.com", - "port": 7013 - }, - { - "domain": "b-r4.elitestakepool.com", - "port": 7014 + "address": "1f018fdb.cardano-relay.bison.run", + "port": 1338 } ] }, { - "accumulatedStake": 0.8626338030091271, - "relativeStake": 0.0007296855303654477, + "accumulatedStake": 0.8595059221871367, + "relativeStake": 0.0007865747123259112, "relays": [ { - "domain": "r1.1percentpool.eu", - "port": 19001 - }, - { - "domain": "r2.1percentpool.eu", - "port": 19002 + "address": "adar2.stakit.io", + "port": 30501 } ] }, { - "accumulatedStake": 0.863360805048507, - "relativeStake": 0.000727002039379897, + "accumulatedStake": 0.8602859925375468, + "relativeStake": 0.0007800703504100239, "relays": [ { - "domain": "otg-relay-1.adamantium.online", - "port": 6001 + "address": "relay1.cashflowpool.com", + "port": 3001 }, { - "domain": "otg-relay-2.adamantium.online", - "port": 6002 + "address": "relay2.cashflowpool.com", + "port": 3001 } ] }, { - "accumulatedStake": 0.8640852701754086, - "relativeStake": 0.0007244651269016502, + "accumulatedStake": 0.8610568411765651, + "relativeStake": 0.000770848639018352, "relays": [ { - "domain": "asia-pacific-japan.popsp.net", - "port": 3001 + "address": "r1.1percentpool.eu", + "port": 19001 + }, + { + "address": "r2.1percentpool.eu", + "port": 19002 } ] }, { - "accumulatedStake": 0.8648023798058669, - "relativeStake": 0.0007171096304583112, + "accumulatedStake": 0.8618257369013151, + "relativeStake": 0.0007688957247499642, "relays": [ { - "domain": "relays.cardaspians.io", + "address": "157.245.228.134", + "port": 3001 + }, + { + "address": "159.89.120.164", + "port": 3001 + }, + { + "address": "209.97.186.44", + "port": 3001 + }, + { + "address": "na.bloompool.io", "port": 3001 } ] }, { - "accumulatedStake": 0.8655173897047568, - "relativeStake": 0.000715009898889881, + "accumulatedStake": 0.862592091676965, + "relativeStake": 0.0007663547756499167, "relays": [ { - "domain": "cardano-relays-1.nu.fi", - "port": 3003 - }, - { - "domain": "cardano-relays-2.nu.fi", + "address": "168.119.124.16", "port": 3001 } ] }, { - "accumulatedStake": 0.8662299141286689, - "relativeStake": 0.000712524423912073, + "accumulatedStake": 0.8633549663528526, + "relativeStake": 0.0007628746758875512, "relays": [ { - "domain": "cardano1.vampyre.fund", + "address": "157.245.228.134", "port": 3001 }, { - "domain": "cardano2.vampyre.fund", + "address": "159.89.120.164", "port": 3001 }, { - "domain": "cardano3.vampyre.fund", + "address": "209.97.186.44", "port": 3001 }, { - "domain": "cardano4.vampyre.fund", + "address": "na.bloompool.io", "port": 3001 } ] }, { - "accumulatedStake": 0.8669358109756907, - "relativeStake": 0.0007058968470218203, + "accumulatedStake": 0.8641158495370479, + "relativeStake": 0.0007608831841952941, "relays": [ { - "address": "78.47.119.91", + "address": "iog1-relays.cardano.iog.io", "port": 3001 } ] }, { - "accumulatedStake": 0.8676385900004695, - "relativeStake": 0.0007027790247788347, + "accumulatedStake": 0.8648729105029606, + "relativeStake": 0.0007570609659126845, "relays": [ { - "domain": "relays.wavepool.digital", - "port": 3001 + "address": "r1.1percentpool.eu", + "port": 19001 + }, + { + "address": "r2.1percentpool.eu", + "port": 19002 } ] }, { - "accumulatedStake": 0.8683389427398432, - "relativeStake": 0.0007003527393737266, + "accumulatedStake": 0.8656290910158423, + "relativeStake": 0.0007561805128817602, "relays": [ { - "domain": "ram-relay1.irota.xyz", + "address": "54.150.77.128", "port": 6000 }, { - "domain": "kyu-relay2.irota.xyz", + "address": "35.72.226.248", "port": 6000 } ] }, { - "accumulatedStake": 0.8690390826469193, - "relativeStake": 0.0007001399070760094, + "accumulatedStake": 0.8663757643205606, + "relativeStake": 0.0007466733047183529, "relays": [ { - "address": "20.61.229.103", + "address": "relays.wavepool.digital", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.8671162990669238, + "relativeStake": 0.000740534746363111, + "relays": [ + { + "address": "relay.armadastakepool.com", + "port": 5100 + } + ] + }, + { + "accumulatedStake": 0.8678561231091168, + "relativeStake": 0.0007398240421929714, + "relays": [ + { + "address": "157.245.228.134", "port": 3001 }, { - "address": "20.61.228.218", + "address": "159.89.120.164", "port": 3001 }, { - "address": "108.142.42.221", + "address": "209.97.186.44", "port": 3001 }, { - "address": "108.142.42.161", + "address": "eu.bloompool.io", "port": 3001 } ] }, { - "accumulatedStake": 0.869738166390894, - "relativeStake": 0.0006990837439746569, + "accumulatedStake": 0.8685901446056253, + "relativeStake": 0.0007340214965085611, "relays": [ { - "address": "51.195.91.118", + "address": "relays.wavepool.digital", + "port": 3001 + } + ] + }, + { + "accumulatedStake": 0.8693139949400283, + "relativeStake": 0.0007238503344029769, + "relays": [ + { + "address": "cardano1.vampyre.fund", "port": 3001 }, { - "address": "51.161.35.246", + "address": "cardano2.vampyre.fund", "port": 3001 }, { - "address": "49.12.123.178", + "address": "cardano3.vampyre.fund", "port": 3001 }, { - "address": "95.217.58.124", + "address": "cardano4.vampyre.fund", "port": 3001 } ] }, { - "accumulatedStake": 0.8704357823737064, - "relativeStake": 0.000697615982812552, + "accumulatedStake": 0.8700325016841379, + "relativeStake": 0.0007185067441097017, "relays": [ { - "address": "13.215.210.113", - "port": 6000 + "address": "relay1.squidpool.com", + "port": 3001 }, { - "address": "13.211.72.184", - "port": 6000 + "address": "relay2.squidpool.com", + "port": 3001 } ] }, { - "accumulatedStake": 0.871129003894434, - "relativeStake": 0.0006932215207275278, + "accumulatedStake": 0.8707507102830504, + "relativeStake": 0.0007182085989124728, "relays": [ { - "address": "185.64.140.115", - "port": 6001 - }, - { - "address": "185.64.140.115", - "port": 6002 - }, - { - "address": "185.64.140.115", - "port": 6003 - }, - { - "address": "185.64.140.115", - "port": 6004 + "address": "relay1.thevikingpool.com", + "port": 6000 }, { - "address": "162.156.186.249", - "port": 6001 - }, + "address": "relay2.thevikingpool.com", + "port": 6000 + } + ] + }, + { + "accumulatedStake": 0.871466325435799, + "relativeStake": 0.0007156151527485889, + "relays": [ { - "address": "162.156.186.249", - "port": 6002 - }, + "address": "relay-pool-1-mainnet.cardano.aeq5f.com" + } + ] + }, + { + "accumulatedStake": 0.872180820977314, + "relativeStake": 0.0007144955415149157, + "relays": [ { - "address": "162.156.186.249", - "port": 6003 + "address": "eu.relays.cardanians.io", + "port": 1000 }, { - "address": "162.156.186.249", - "port": 6004 + "address": "ca.relays.cardanians.io", + "port": 1000 } ] }, { - "accumulatedStake": 0.8718201626427967, - "relativeStake": 0.0006911587483626646, + "accumulatedStake": 0.8728933422364966, + "relativeStake": 0.0007125212591826706, "relays": [ { - "domain": "relays.hypernerd.org", + "address": "cardano-relays-1.nu.fi", + "port": 3003 + }, + { + "address": "cardano-relays-2.nu.fi", "port": 3001 } ] }, { - "accumulatedStake": 0.8725060515920484, - "relativeStake": 0.000685888949251798, + "accumulatedStake": 0.8736034720832815, + "relativeStake": 0.0007101298467848144, "relays": [ { - "address": "223.25.73.249", - "port": 6452 + "address": "a-r1.elitestakepool.com", + "port": 7011 }, { - "address": "128.199.147.30", - "port": 6001 + "address": "a-r2.elitestakepool.com", + "port": 7012 }, { - "address": "158.140.141.199", - "port": 8082 + "address": "b-r3.elitestakepool.com", + "port": 7013 + }, + { + "address": "b-r4.elitestakepool.com", + "port": 7014 } ] }, { - "accumulatedStake": 0.8731914879740975, - "relativeStake": 0.0006854363820490332, + "accumulatedStake": 0.8743035921182585, + "relativeStake": 0.0007001200349770498, "relays": [ { - "domain": "ruby-cardano.rockx.com", - "port": 6000 + "address": "re1.reservoir.network", + "port": 3001 + }, + { + "address": "re2.reservoir.network", + "port": 3001 } ] }, { - "accumulatedStake": 0.8738729239838138, - "relativeStake": 0.0006814360097162957, + "accumulatedStake": 0.8750036547976972, + "relativeStake": 0.000700062679438694, "relays": [ { - "domain": "r1.1percentpool.eu", - "port": 19001 + "address": "20.61.229.103", + "port": 3001 }, { - "domain": "r2.1percentpool.eu", - "port": 19002 + "address": "20.61.228.218", + "port": 3001 + }, + { + "address": "108.142.42.221", + "port": 3001 + }, + { + "address": "108.142.42.161", + "port": 3001 } ] }, { - "accumulatedStake": 0.8745513886606715, - "relativeStake": 0.0006784646768577397, + "accumulatedStake": 0.8756977711109076, + "relativeStake": 0.0006941163132104149, "relays": [ { - "domain": "relay-dfm.cryptoblocks.pro", - "port": 3001 + "address": "94.130.191.208", + "port": 9630 } ] }, { - "accumulatedStake": 0.8752190206331278, - "relativeStake": 0.000667631972456352, + "accumulatedStake": 0.8763917313258442, + "relativeStake": 0.0006939602149366708, "relays": [ { - "address": "137.117.180.0", - "port": 16112 - }, - { - "address": "20.52.178.196", - "port": 16112 + "address": "relay1.powerstakepool.com", + "port": 6000 }, { - "address": "52.152.187.47", - "port": 16112 + "address": "relay2.powerstakepool.com", + "port": 6000 } ] }, { - "accumulatedStake": 0.8758803744215248, - "relativeStake": 0.000661353788396878, + "accumulatedStake": 0.8770831616713749, + "relativeStake": 0.0006914303455305925, "relays": [ { - "domain": "re1.reservoir.network", - "port": 3001 + "address": "125.250.255.197", + "port": 8000 }, { - "domain": "re2.reservoir.network", - "port": 3001 - } - ] - }, - { - "accumulatedStake": 0.8765365132843932, - "relativeStake": 0.0006561388628683956, - "relays": [ + "address": "142.132.189.114", + "port": 6000 + }, { - "address": "135.181.194.233", + "address": "75.119.158.164", "port": 6000 }, { - "address": "168.119.101.200", + "address": "125.250.255.197", + "port": 8000 + }, + { + "address": "142.132.189.114", "port": 6000 }, { - "address": "5.161.59.12", + "address": "75.119.158.164", "port": 6000 } ] }, { - "accumulatedStake": 0.8771897174783145, - "relativeStake": 0.0006532041939213395, + "accumulatedStake": 0.8777701690954546, + "relativeStake": 0.0006870074240796854, "relays": [ { - "domain": "r1.relaypool.online", - "port": 3000 + "address": "ram-relay1.irota.xyz", + "port": 6000 + }, + { + "address": "kyu-relay2.irota.xyz", + "port": 6000 } ] }, { - "accumulatedStake": 0.8778425234862447, - "relativeStake": 0.0006528060079302102, + "accumulatedStake": 0.878452736824804, + "relativeStake": 0.0006825677293494259, "relays": [ { - "address": "34.192.61.190", + "address": "cardano-relays-1.nu.fi", + "port": 3003 + }, + { + "address": "cardano-relays-2.nu.fi", "port": 3001 } ] }, { - "accumulatedStake": 0.8784918013677648, - "relativeStake": 0.0006492778815201279, + "accumulatedStake": 0.8791311640502133, + "relativeStake": 0.000678427225409372, "relays": [ { - "domain": "r1.isp-r1.wjg.jp", - "port": 3001 + "address": "relay1.adaverse.com", + "port": 5000 }, { - "domain": "r2.isp-r1.wjg.jp", - "port": 3002 + "address": "relay2.adaverse.com", + "port": 4000 } ] }, { - "accumulatedStake": 0.879139854250664, - "relativeStake": 0.0006480528828991111, + "accumulatedStake": 0.8798050306922695, + "relativeStake": 0.000673866642056103, "relays": [ { - "domain": "relays.onyxstakepool.com", + "address": "asia-pacific-japan.popsp.net", "port": 3001 } ] }, { - "accumulatedStake": 0.8797869807103357, - "relativeStake": 0.0006471264596717548, + "accumulatedStake": 0.8804744342488188, + "relativeStake": 0.0006694035565493592, "relays": [ { - "domain": "relays.wavepool.digital", + "address": "51.195.91.118", + "port": 3001 + }, + { + "address": "51.161.35.246", + "port": 3001 + }, + { + "address": "49.12.123.178", + "port": 3001 + }, + { + "address": "95.217.58.124", "port": 3001 } ] }, { - "accumulatedStake": 0.8804311819445598, - "relativeStake": 0.0006442012342241188, + "accumulatedStake": 0.8811419979796989, + "relativeStake": 0.0006675637308801416, "relays": [ { - "domain": "51.195.18.14", - "port": 6000 - }, - { - "domain": "87.98.245.66", - "port": 6000 + "address": "r1.relaypool.online", + "port": 3000 } ] }, { - "accumulatedStake": 0.8810746591016351, - "relativeStake": 0.0006434771570752952, + "accumulatedStake": 0.881807076549815, + "relativeStake": 0.0006650785701160477, "relays": [ { - "address": "104.236.24.187", - "port": 5281 + "address": "137.117.180.0", + "port": 16112 }, { - "address": "50.185.24.9", - "port": 5282 + "address": "20.52.178.196", + "port": 16112 + }, + { + "address": "52.152.187.47", + "port": 16112 } ] }, { - "accumulatedStake": 0.8817167858890983, - "relativeStake": 0.0006421267874632192, + "accumulatedStake": 0.8824707594421006, + "relativeStake": 0.0006636828922856638, "relays": [ { - "domain": "relay01.londonpool.co.uk", - "port": 3001 - }, - { - "domain": "relay02.londonpool.co.uk", + "address": "78.47.119.91", "port": 3001 } ] }, { - "accumulatedStake": 0.8823567567778461, - "relativeStake": 0.0006399708887477372, + "accumulatedStake": 0.8831286668926711, + "relativeStake": 0.000657907450570475, "relays": [ { - "domain": "mound.adastack.net", - "port": 3001 - }, + "address": "ruby-cardano.rockx.com", + "port": 6000 + } + ] + }, + { + "accumulatedStake": 0.8837847966305079, + "relativeStake": 0.0006561297378367513, + "relays": [ { - "domain": "pack.adastack.net", - "port": 3001 + "address": "otg-relay-1.adamantium.online", + "port": 6001 }, { - "domain": "heap.adastack.net", - "port": 3001 + "address": "otg-relay-2.adamantium.online", + "port": 6002 } ] }, { - "accumulatedStake": 0.8829929822565739, - "relativeStake": 0.0006362254787277647, + "accumulatedStake": 0.884440005574622, + "relativeStake": 0.0006552089441140853, "relays": [ { - "address": "194.163.168.97", - "port": 6001 + "address": "34.192.61.190", + "port": 3001 } ] }, { - "accumulatedStake": 0.8836265348274058, - "relativeStake": 0.0006335525708320069, + "accumulatedStake": 0.8850900282748584, + "relativeStake": 0.0006500227002364574, "relays": [ { - "address": "37.60.236.80", - "port": 6000 - }, - { - "address": "173.212.249.217", - "port": 6000 + "address": "relays.hypernerd.org", + "port": 3001 } ] }, { - "accumulatedStake": 0.8842594650447884, - "relativeStake": 0.0006329302173824691, + "accumulatedStake": 0.8857339581558641, + "relativeStake": 0.000643929881005666, "relays": [ { - "domain": "cardano-relays.atomicwallet.io", + "address": "223.25.73.249", + "port": 6452 + }, + { + "address": "128.199.147.30", "port": 6001 + }, + { + "address": "158.140.141.199", + "port": 8082 } ] }, { - "accumulatedStake": 0.8848909387788461, - "relativeStake": 0.0006314737340577787, + "accumulatedStake": 0.8863721762872958, + "relativeStake": 0.0006382181314317076, "relays": [ { - "domain": "cardano-relays-1.nu.fi", - "port": 3003 + "address": "mound.adastack.net", + "port": 3001 }, { - "domain": "cardano-relays-2.nu.fi", + "address": "pack.adastack.net", + "port": 3001 + }, + { + "address": "heap.adastack.net", "port": 3001 } ] }, { - "accumulatedStake": 0.8855220733358975, - "relativeStake": 0.0006311345570514505, + "accumulatedStake": 0.8870085121611511, + "relativeStake": 0.0006363358738553146, "relays": [ { - "domain": "relay1.pudim.cat", + "address": "relay1.pudim.cat", "port": 3002 }, { - "domain": "relay2.pudim.cat", + "address": "relay2.pudim.cat", "port": 3002 } ] }, { - "accumulatedStake": 0.8861479707644528, - "relativeStake": 0.0006258974285552466, + "accumulatedStake": 0.8876399659438822, + "relativeStake": 0.0006314537827310019, "relays": [ { - "domain": "15.237.92.158", - "port": 16661 + "address": "relays.cardaspians.io", + "port": 3001 } ] }, { - "accumulatedStake": 0.8867735354373502, - "relativeStake": 0.0006255646728973292, + "accumulatedStake": 0.8882654588879598, + "relativeStake": 0.0006254929440777328, "relays": [ { - "domain": "relays.ektrp.com", - "port": 5859 - } - ] - }, - { - "accumulatedStake": 0.8873941033542156, - "relativeStake": 0.000620567916865528, - "relays": [ + "address": "relay1.astra-pool.com", + "port": 6000 + }, { - "address": "54.150.197.196", + "address": "relay2.astra-pool.com", "port": 6000 } ] }, { - "accumulatedStake": 0.8880125674621712, - "relativeStake": 0.0006184641079554747, + "accumulatedStake": 0.8888884132214123, + "relativeStake": 0.0006229543334524314, "relays": [ { - "domain": "relay1-ada.cex.io", + "address": "relay1-ada.cex.io", "port": 3001 }, { - "domain": "relay2-ada.cex.io", + "address": "relay2-ada.cex.io", "port": 3002 }, { - "domain": "relay3-ada.cex.io", + "address": "relay3-ada.cex.io", "port": 3003 } ] }, { - "accumulatedStake": 0.8886197052756469, - "relativeStake": 0.0006071378134758381, + "accumulatedStake": 0.8895111468396794, + "relativeStake": 0.0006227336182670843, "relays": [ { - "domain": "rho.relay.easy1staking.com", - "port": 30020 - }, - { - "domain": "pi.relay.easy1staking.com", - "port": 30021 + "address": "135.181.194.233", + "port": 6000 }, { - "domain": "eu-central-1.relay.easy1staking.com", - "port": 30000 + "address": "168.119.101.200", + "port": 6000 }, { - "domain": "us-east-1.relay.easy1staking.com", - "port": 30000 + "address": "5.161.59.12", + "port": 6000 } ] }, { - "accumulatedStake": 0.8892255575542127, - "relativeStake": 0.0006058522785657288, + "accumulatedStake": 0.8901330258686716, + "relativeStake": 0.0006218790289922797, "relays": [ { - "domain": "relays.xray.app", - "port": 3000 + "address": "r1.isp-r1.wjg.jp", + "port": 3001 + }, + { + "address": "r2.isp-r1.wjg.jp", + "port": 3002 } ] }, { - "accumulatedStake": 0.8898272336485513, - "relativeStake": 0.0006016760943386435, + "accumulatedStake": 0.8907493775845723, + "relativeStake": 0.0006163517159006862, "relays": [ { - "domain": "relay1.adaverse.com", - "port": 5000 + "address": "relay1.ppcx1.mainnet.cardano.p2p.org", + "port": 6001 }, { - "domain": "relay2.adaverse.com", - "port": 4000 + "address": "relay2.ppcx1.mainnet.cardano.p2p.org", + "port": 6001 } ] }, { - "accumulatedStake": 0.890424420221485, - "relativeStake": 0.0005971865729337614, + "accumulatedStake": 0.8913643095397981, + "relativeStake": 0.000614931955225709, "relays": [ { - "domain": "relay2.bluecheesestakehouse.com", - "port": 5002 - } - ] - }, - { - "accumulatedStake": 0.8910190577251159, - "relativeStake": 0.0005946375036307746, - "relays": [ + "address": "relay1.adaocean.com", + "port": 6000 + }, { - "address": "34.175.101.127", + "address": "relay2.adaocean.com", "port": 6000 }, { - "address": "34.175.85.49", + "address": "relay3.adaocean.com", + "port": 6000 + }, + { + "address": "relay4.adaocean.com", + "port": 6000 + }, + { + "address": "relay5.adaocean.com", "port": 6000 } ] }, { - "accumulatedStake": 0.8916121292895752, - "relativeStake": 0.0005930715644594012, + "accumulatedStake": 0.8919667432131805, + "relativeStake": 0.0006024336733824461, "relays": [ { - "domain": "relaynode1.bravostakepool.nl", - "port": 3001 - }, - { - "domain": "relaynode2.bravostakepool.nl", - "port": 3001 - }, - { - "domain": "relaynode3.bravostakepool.nl", - "port": 3001 + "address": "15.237.92.158", + "port": 16661 } ] }, { - "accumulatedStake": 0.892204975972327, - "relativeStake": 0.0005928466827516849, + "accumulatedStake": 0.8925688688676702, + "relativeStake": 0.000602125654489681, "relays": [ { - "domain": "europe2-zzz4relay.zzzpool.net", + "address": "relays.wavepool.digital", "port": 3001 } ] }, { - "accumulatedStake": 0.8927946785891941, - "relativeStake": 0.0005897026168671545, + "accumulatedStake": 0.8931595572289286, + "relativeStake": 0.0005906883612584238, "relays": [ { - "domain": "relays.wavepool.digital", - "port": 3001 + "address": "relays.xray.app", + "port": 3000 } ] }, { - "accumulatedStake": 0.89338308800222, - "relativeStake": 0.0005884094130258789, + "accumulatedStake": 0.8937487671665986, + "relativeStake": 0.0005892099376699452, "relays": [ { - "address": "125.250.255.197", - "port": 8000 - }, - { - "address": "142.132.189.114", - "port": 6000 - }, - { - "address": "75.119.158.164", - "port": 6000 + "address": "cardano-relays.atomicwallet.io", + "port": 6001 } ] }, { - "accumulatedStake": 0.8939631544841781, - "relativeStake": 0.0005800664819581181, + "accumulatedStake": 0.8943327306887873, + "relativeStake": 0.0005839635221886862, "relays": [ { "address": "202.61.225.111", @@ -7075,140 +6873,130 @@ ] }, { - "accumulatedStake": 0.8945418986052868, - "relativeStake": 0.0005787441211086775, + "accumulatedStake": 0.8949161157954616, + "relativeStake": 0.0005833851066743276, "relays": [ { - "domain": "relays.wavepool.digital", - "port": 3001 + "address": "relay2.bluecheesestakehouse.com", + "port": 5002 } ] }, { - "accumulatedStake": 0.8951158432682106, - "relativeStake": 0.0005739446629238425, + "accumulatedStake": 0.8954988639227278, + "relativeStake": 0.0005827481272662214, "relays": [ { - "domain": "r1.adaism.uk", - "port": 8081 + "address": "34.175.101.127", + "port": 6000 }, { - "domain": "r2.adaism.uk", - "port": 8081 + "address": "34.175.85.49", + "port": 6000 } ] }, { - "accumulatedStake": 0.8956844821040901, - "relativeStake": 0.0005686388358794773, + "accumulatedStake": 0.8960805919451794, + "relativeStake": 0.0005817280224516724, "relays": [ { - "address": "3.111.14.60", + "address": "cardano-relays-1.nu.fi", + "port": 3003 + }, + { + "address": "cardano-relays-2.nu.fi", "port": 3001 } ] }, { - "accumulatedStake": 0.8962490246407491, - "relativeStake": 0.0005645425366589223, + "accumulatedStake": 0.8966561835268783, + "relativeStake": 0.000575591581698862, "relays": [ { - "address": "133.167.33.31", - "port": 6000 + "address": "r1.adaism.uk", + "port": 8081 }, { - "address": "162.43.71.205", - "port": 6000 + "address": "r2.adaism.uk", + "port": 8081 } ] }, { - "accumulatedStake": 0.8968127659327427, - "relativeStake": 0.0005637412919936754, + "accumulatedStake": 0.8972292878855554, + "relativeStake": 0.0005731043586771657, "relays": [ { - "address": "192.168.1.100", - "port": 3000 + "address": "194.163.156.209", + "port": 8281 + }, + { + "address": "194.163.150.58", + "port": 8281 } ] }, { - "accumulatedStake": 0.8973758941624818, - "relativeStake": 0.0005631282297390217, + "accumulatedStake": 0.897801506534257, + "relativeStake": 0.0005722186487016035, "relays": [ { - "domain": "cardano-relays-1.nu.fi", - "port": 3003 - }, - { - "domain": "cardano-relays-2.nu.fi", + "address": "europe2-zzz4relay.zzzpool.net", "port": 3001 } ] }, { - "accumulatedStake": 0.8979370431269504, - "relativeStake": 0.0005611489644687123, + "accumulatedStake": 0.8983675287409115, + "relativeStake": 0.0005660222066544362, "relays": [ { - "domain": "relays.digi.pro", + "address": "relays.onyxstakepool.com", "port": 3001 } ] }, { - "accumulatedStake": 0.8984973322750155, - "relativeStake": 0.0005602891480650193, + "accumulatedStake": 0.8989322273398918, + "relativeStake": 0.0005646985989802841, "relays": [ { - "address": "116.80.93.53", + "address": "133.167.33.31", "port": 6000 }, { - "address": "5.104.85.79", + "address": "162.43.71.205", "port": 6000 } ] }, { - "accumulatedStake": 0.8990485616940108, - "relativeStake": 0.0005512294189953247, + "accumulatedStake": 0.8994966312125945, + "relativeStake": 0.0005644038727027323, "relays": [ { - "domain": "cardano-relays-1.nu.fi", - "port": 3003 - }, - { - "domain": "cardano-relays-2.nu.fi", + "address": "north-america.katanapool.net", "port": 3001 } ] }, { - "accumulatedStake": 0.8995965128825384, - "relativeStake": 0.0005479511885275923, + "accumulatedStake": 0.9000477312606291, + "relativeStake": 0.0005511000480346104, "relays": [ { - "address": "202.61.207.98", - "port": 6000 + "address": "cardano-relays-1.nu.fi", + "port": 3003 }, { - "address": "86.106.182.81", - "port": 6000 - } - ] - }, - { - "accumulatedStake": 0.9001433144495904, - "relativeStake": 0.0005468015670519815, - "relays": [ - { - "domain": "ada-relay02.biglazycat.com", - "port": 6000 + "address": "cardano-relays-2.nu.fi", + "port": 3001 } ] } ], - "slotNo": 158260519, - "version": 1 + "slotNo": 169498784, + "version": 2 } diff --git a/configuration/cardano/mainnet-topology.json b/configuration/cardano/mainnet-topology.json index a7c7ecbfd00..1080c35505a 100644 --- a/configuration/cardano/mainnet-topology.json +++ b/configuration/cardano/mainnet-topology.json @@ -21,11 +21,12 @@ "valency": 1 } ], + "peerSnapshotFile": "mainnet-peer-snapshot.json", "publicRoots": [ { "accessPoints": [], "advertise": false } ], - "useLedgerAfterSlot": 157852837 + "useLedgerAfterSlot": 169084813 } diff --git a/configuration/cardano/mainnet-config-bp-legacy.json b/configuration/cardano/testnet-template-config-legacy.json similarity index 64% rename from configuration/cardano/mainnet-config-bp-legacy.json rename to configuration/cardano/testnet-template-config-legacy.json index c9ffc51d2fc..be97e52a9fe 100644 --- a/configuration/cardano/mainnet-config-bp-legacy.json +++ b/configuration/cardano/testnet-template-config-legacy.json @@ -1,32 +1,31 @@ { - "AlonzoGenesisFile": "mainnet-alonzo-genesis.json", - "AlonzoGenesisHash": "7e94a15f55d1e82d10f09203fa1d40f8eede58fd8066542cf6566008068ed874", - "ByronGenesisFile": "mainnet-byron-genesis.json", - "ByronGenesisHash": "5f20df933584822601f9e3f8c024eb5eb252fe8cefb24d1317dc3d432e940ebb", - "CheckpointsFile": "mainnet-checkpoints.json", - "CheckpointsFileHash": "3e6dee5bae7acc6d870187e72674b37c929be8c66e62a552cf6a876b1af31ade", - "ConsensusMode": "PraosMode", - "ConwayGenesisFile": "mainnet-conway-genesis.json", - "ConwayGenesisHash": "15a199f895e461ec0ffc6dd4e4028af28a492ab4e806d39cb674c88f7643ef62", - "EnableP2P": true, + "AlonzoGenesisFile": "alonzo-genesis.json", + "ApplicationName": "cardano-sl", + "ApplicationVersion": 0, + "ByronGenesisFile": "byron-genesis.json", + "ConwayGenesisFile": "conway-genesis.json", + "DijkstraGenesisFile": "dijkstra-genesis.json", + "ExperimentalHardForksEnabled": true, + "ExperimentalProtocolsEnabled": true, "LastKnownBlockVersion-Alt": 0, "LastKnownBlockVersion-Major": 3, - "LastKnownBlockVersion-Minor": 0, + "LastKnownBlockVersion-Minor": 1, "LedgerDB": { "Backend": "V2InMemory", "NumOfDiskSnapshots": 2, "QueryBatchSize": 100000, - "SnapshotInterval": 4320 + "SnapshotInterval": 216 }, + "MaxConcurrencyDeadline": 4, "MaxKnownMajorProtocolVersion": 2, - "MinNodeVersion": "10.4.0", - "PeerSharing": false, + "PBftSignatureThreshold": 1.1, "Protocol": "Cardano", - "RequiresNetworkMagic": "RequiresNoMagic", - "ShelleyGenesisFile": "mainnet-shelley-genesis.json", - "ShelleyGenesisHash": "1a3be38bcbb7911969283716ad7aa550250226b76a61fc51cc9a9a35d9276d81", - "TargetNumberOfKnownPeers": 100, - "TargetNumberOfRootPeers": 100, + "RequiresNetworkMagic": "RequiresMagic", + "ShelleyGenesisFile": "shelley-genesis.json", + "TestAllegraHardForkAtEpoch": 0, + "TestAlonzoHardForkAtEpoch": 0, + "TestMaryHardForkAtEpoch": 0, + "TestShelleyHardForkAtEpoch": 0, "TraceAcceptPolicy": true, "TraceBlockFetchClient": false, "TraceBlockFetchDecisions": false, @@ -44,14 +43,13 @@ "TraceDiffusionInitialization": true, "TraceErrorPolicy": true, "TraceForge": true, - "TraceHandshake": true, + "TraceHandshake": false, "TraceInboundGovernor": true, "TraceIpSubscription": true, "TraceLedgerPeers": true, "TraceLocalChainSyncProtocol": false, - "TraceLocalConnectionManager": true, "TraceLocalErrorPolicy": true, - "TraceLocalHandshake": true, + "TraceLocalHandshake": false, "TraceLocalRootPeers": true, "TraceLocalTxSubmissionProtocol": false, "TraceLocalTxSubmissionServer": false, @@ -74,7 +72,7 @@ "defaultScribes": [ [ "StdoutSK", - "stdout" + "cardano" ] ], "hasEKG": 12788, @@ -82,7 +80,7 @@ "127.0.0.1", 12798 ], - "minSeverity": "Info", + "minSeverity": "Debug", "options": { "mapBackends": { "cardano.node.metrics": [ @@ -110,8 +108,7 @@ { "scFormat": "ScText", "scKind": "StdoutSK", - "scName": "stdout", - "scRotation": null + "scName": "cardano" } ] } diff --git a/configuration/cardano/testnet-template-config.json b/configuration/cardano/testnet-template-config.json index 2ef1b3df5b4..02fd6c6ef4a 100644 --- a/configuration/cardano/testnet-template-config.json +++ b/configuration/cardano/testnet-template-config.json @@ -5,7 +5,7 @@ "ByronGenesisFile": "byron-genesis.json", "ConsensusMode": "PraosMode", "ConwayGenesisFile": "conway-genesis.json", - "EnableP2P": true, + "DijkstraGenesisFile": "dijkstra-genesis.json", "ExperimentalHardForksEnabled": true, "ExperimentalProtocolsEnabled": true, "LastKnownBlockVersion-Alt": 0, @@ -88,12 +88,6 @@ "Mempool.AttemptAdd": { "severity": "Silence" }, - "Mempool.LedgerFound": { - "severity": "Silence" - }, - "Mempool.LedgerNotFound": { - "severity": "Silence" - }, "Mempool.SyncNotNeeded": { "severity": "Silence" }, @@ -103,12 +97,6 @@ "Net.ConnectionManager.Remote.ConnectionManagerCounters": { "severity": "Silence" }, - "Net.ErrorPolicy": { - "severity": "Info" - }, - "Net.ErrorPolicy.Local": { - "severity": "Info" - }, "Net.InboundGovernor": { "severity": "Warning" }, @@ -121,12 +109,6 @@ "Net.PeerSelection": { "severity": "Silence" }, - "Net.Subscription.DNS": { - "severity": "Info" - }, - "Net.Subscription.IP": { - "severity": "Info" - }, "Resources": { "severity": "Silence" }, diff --git a/configuration/cardano/testnet-template-dijkstra.json b/configuration/cardano/testnet-template-dijkstra.json new file mode 100644 index 00000000000..c33c6755721 --- /dev/null +++ b/configuration/cardano/testnet-template-dijkstra.json @@ -0,0 +1,6 @@ +{ + "maxRefScriptSizePerBlock": 1048576, + "maxRefScriptSizePerTx": 204800, + "refScriptCostStride": 25600, + "refScriptCostMultiplier": 1.2 +} diff --git a/configuration/cardano/update-config-files.sh b/configuration/cardano/update-config-files.sh index 1d56f6cbcd1..28ca99ed46b 100755 --- a/configuration/cardano/update-config-files.sh +++ b/configuration/cardano/update-config-files.sh @@ -29,21 +29,20 @@ echo "################################" copyCfg "mainnet-alonzo-genesis.json" copyCfg "mainnet-byron-genesis.json" copyCfg "mainnet-checkpoints.json" -copyCfg "mainnet-config-bp.json" -copyCfg "mainnet-config-bp-legacy.json" copyCfg "mainnet-config.json" copyCfg "mainnet-config-legacy.json" copyCfg "mainnet-conway-genesis.json" copyCfg "mainnet-peer-snapshot.json" copyCfg "mainnet-shelley-genesis.json" copyCfg "mainnet-topology.json" -copyCfg "mainnet-topology.json" # Testnet-template copyTmplCfg "alonzo.json" copyTmplCfg "byron.json" copyTmplCfg "config.json" +copyTmplCfg "config-legacy.json" copyTmplCfg "conway.json" +copyTmplCfg "dijkstra.json" copyTmplCfg "shelley.json" copyTmplCfg "topology-empty-p2p.json" diff --git a/flake.lock b/flake.lock index 088771904d5..532daf6a484 100644 --- a/flake.lock +++ b/flake.lock @@ -3,11 +3,11 @@ "CHaP": { "flake": false, "locked": { - "lastModified": 1758727647, - "narHash": "sha256-J0PlznW05SByIJZvP90JvFMvnHsP+Rs/qwLogpConI4=", + "lastModified": 1761315163, + "narHash": "sha256-h+JPIMflNAOpY3XhZNcS5sUAOyO06499uWATj2j6P5Q=", "owner": "intersectmbo", "repo": "cardano-haskell-packages", - "rev": "bbf172e0d11e3842e543df101dee223f05a2332e", + "rev": "131bcd51c4869b191e8c3afbb9f3fd326cd6e5e1", "type": "github" }, "original": { @@ -256,11 +256,11 @@ "hackage-for-stackage": { "flake": false, "locked": { - "lastModified": 1750897618, - "narHash": "sha256-MgzSJDtk9qXf+OYjqaGX7zebArRS236tgFKDAxV3OXw=", + "lastModified": 1755649550, + "narHash": "sha256-YNKeqYIezur2MvPmfVI/aHjcVRwOdBW7Du3jg6iXjKs=", "owner": "input-output-hk", "repo": "hackage.nix", - "rev": "5ac996932a885bee0083893ba7a4727b654b7e8d", + "rev": "5e56db8bc478dfb7466ea83744c3ab928aff0329", "type": "github" }, "original": { @@ -289,11 +289,11 @@ "hackageNix": { "flake": false, "locked": { - "lastModified": 1750944318, - "narHash": "sha256-DwjXWJqd3+Uhvx1OewJDMGxtny20vQvRF4iB+H8a3fs=", + "lastModified": 1761265459, + "narHash": "sha256-7tsC/ZcNBJR1pXWdKsRoh/qlVDhCxb1Ukr7PVd2zieE=", "owner": "input-output-hk", "repo": "hackage.nix", - "rev": "1df55daef81b543cf3ccab4b1a5a536e32d8ce2a", + "rev": "eb8e4d02528b4973cd09450bb62cf34997777226", "type": "github" }, "original": { @@ -344,11 +344,11 @@ "stackage": "stackage" }, "locked": { - "lastModified": 1750899099, - "narHash": "sha256-8Wy0VIdPoGd7JqaHT4ehfS87kW+xRn9XwSiRxu0nD9g=", + "lastModified": 1755663895, + "narHash": "sha256-76Ns29GQsO5S5gPRcic+vagcJicOSvhA+oKQ9r9kjFE=", "owner": "input-output-hk", "repo": "haskell.nix", - "rev": "c16c3c648b3a2eef0cb1fb3706da801764d77565", + "rev": "71fcc9f531993aada52173fceb4ff4ce2148207d", "type": "github" }, "original": { @@ -621,15 +621,16 @@ "sodium": "sodium" }, "locked": { - "lastModified": 1751421193, - "narHash": "sha256-rklXDo12dfukaSqcEyiYbze3ffRtTl2/WAAQCWfkGiw=", + "lastModified": 1761066415, + "narHash": "sha256-jx83bMiZGw3ulkouzjLTcx6xtVI9GLoG6qBy/Oo3DPM=", "owner": "input-output-hk", "repo": "iohk-nix", - "rev": "64ca6f4c0c6db283e2ec457c775bce75173fb319", + "rev": "338ae551e1d1ae5dae72bbb335f8c3cd623fefee", "type": "github" }, "original": { "owner": "input-output-hk", + "ref": "jl/10.6.0-pre-updates", "repo": "iohk-nix", "type": "github" } @@ -637,11 +638,11 @@ "iserv-proxy": { "flake": false, "locked": { - "lastModified": 1750543273, - "narHash": "sha256-WaswH0Y+Fmupvv8AkIlQBlUy/IdD3Inx9PDuE+5iRYY=", + "lastModified": 1755040634, + "narHash": "sha256-8W7uHpAIG8HhO3ig5OGHqvwduoye6q6dlrea1IrP2eI=", "owner": "stable-haskell", "repo": "iserv-proxy", - "rev": "a53c57c9a8d22a66a2f0c4c969e806da03f08c28", + "rev": "1383d199a2c64f522979005d112b4fbdee38dd92", "type": "github" }, "original": { @@ -835,11 +836,11 @@ "stackage": { "flake": false, "locked": { - "lastModified": 1750292027, - "narHash": "sha256-rmEsCxLWS/rAdIzZPSi0XbrY2BOztBlSHQHgYoXyovU=", + "lastModified": 1755648773, + "narHash": "sha256-NhcOu6GwYal+awBQLoMT4vf7L7Ar1DectDjK2mF653I=", "owner": "input-output-hk", "repo": "stackage.nix", - "rev": "3f8c717e24953914821f1ddb4797dd768326faa6", + "rev": "1a0ea16d99761b93456460c255a8b723647b2c77", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 922bde27b5d..b73a008f524 100644 --- a/flake.nix +++ b/flake.nix @@ -53,7 +53,7 @@ incl.url = "github:divnix/incl"; iohkNix = { - url = "github:input-output-hk/iohk-nix"; + url = "github:input-output-hk/iohk-nix/jl/10.6.0-pre-updates"; inputs.nixpkgs.follows = "nixpkgs"; }; diff --git a/nix/binary-release.nix b/nix/binary-release.nix index 35abcf20024..e6309707d42 100644 --- a/nix/binary-release.nix +++ b/nix/binary-release.nix @@ -35,25 +35,20 @@ let } // lib.optionalAttrs (env.nodeConfig ? CheckpointsFile) { CheckpointsFile = "checkpoints.json"; }; + nodeConfig = pkgs.writeText "config.json" (builtins.toJSON (env.nodeConfig // genesisAttrs)); - nodeConfigBp = pkgs.writeText - "config-bp.json" - (builtins.toJSON - (env.nodeConfigBp // genesisAttrs)); - nodeConfigLegacy= pkgs.writeText "config-legacy.json" (builtins.toJSON (env.nodeConfigLegacy // genesisAttrs)); - nodeConfigBpLegacy= pkgs.writeText - "config-bp-legacy.json" - (builtins.toJSON - (env.nodeConfigBpLegacy // genesisAttrs)); + submitApiConfig = pkgs.writeText + "submit-api-config.json" + (builtins.toJSON env.submitApiConfig); tracerConfig = pkgs.writeText "tracer-config.json" @@ -65,20 +60,19 @@ let topologyConfig = pkgs.cardanoLib.mkTopology env; - # Genesis files are the same for env.nodeConfig and env.nodeConfigBp inherit (env.nodeConfig) ByronGenesisFile ShelleyGenesisFile AlonzoGenesisFile; in - # Format the node config file and copy the genesis files + # Format the node config file and copy the genesis files. Normalize the + # topology file peer snapshot ref for per env dir placement. '' mkdir -p "share/${name}" jq . < "${nodeConfig}" > share/${name}/config.json - jq . < "${nodeConfigBp}" > share/${name}/config-bp.json jq . < "${nodeConfigLegacy}" > share/${name}/config-legacy.json - jq . < "${nodeConfigBpLegacy}" > share/${name}/config-bp-legacy.json + jq . < "${submitApiConfig}" > share/${name}/submit-api-config.json jq . < "${tracerConfig}" > share/${name}/tracer-config.json jq . < "${peerSnapshot}" > share/${name}/peer-snapshot.json - jq . < "${topologyConfig}" > share/${name}/topology.json + jq '.peerSnapshotFile = "peer-snapshot.json"' < "${topologyConfig}" > share/${name}/topology.json cp -n --remove-destination -v \ "${ByronGenesisFile}" \ share/${name}/byron-genesis.json diff --git a/nix/docker/README.md b/nix/docker/README.md index 3510d6ca064..902fe87ac80 100644 --- a/nix/docker/README.md +++ b/nix/docker/README.md @@ -215,14 +215,14 @@ The snapshot-converter utility is included in the cardano-node image at path state types as needed, without relying on host level tooling or full chain ledger replays. -An example follows to convert preprod ledger state in a named docker volume in -snapshot `295420` from `Legacy` to `Mem` when node is not already -running: +An example follows to convert preprod ledger state in a named docker volume +from a memory based ledger snapshot to an LMDB snapshot when node is not +already running: ``` docker run -v preprod-data:/data --rm -it --entrypoint=bash ghcr.io/intersectmbo/cardano-node:dev -c ' mv /data/db/ledger /data/db/ledger-old \ && mkdir -p /data/db/ledger \ - && snapshot-converter Legacy /data/db/ledger-old/295420 Mem /data/db/ledger/295420 cardano --config /opt/cardano/config/preprod/config.json + && snapshot-converter --mem-in /data/db/ledger-old/20807240 --lmdb-out /data/db/ledger/20807240 --config /opt/cardano/config/preprod/config.json ' ``` @@ -240,7 +240,7 @@ above in "custom" mode whereby config is passed, and in this case, the config passed is the legacy style configuration. Legacy default configuration files are also available within the image at paths: -`/opt/cardano/config/$NETWORK/config[-bp]-legacy.json` +`/opt/cardano/config/$NETWORK/config-legacy.json` An example of legacy tracing system usage is: ``` diff --git a/nix/docker/default.nix b/nix/docker/default.nix index e9d3209afd3..195888246b7 100644 --- a/nix/docker/default.nix +++ b/nix/docker/default.nix @@ -43,6 +43,7 @@ }: let + inherit (lib) concatStringsSep escapeShellArgs getAttrs mapAttrsToList; # Layer of tools which aren't going to change much between versions. baseImage = dockerTools.buildImage { @@ -75,7 +76,7 @@ let # For "script" mode, generate scripts for iohk-nix networks which can be # utilized by setting the environment NETWORK variable to the desired # network in the docker command: `-e NETWORK ` - clusterStatements = lib.concatStringsSep "\n" (lib.mapAttrsToList (env: scripts: let + clusterStatements = concatStringsSep "\n" (mapAttrsToList (env: scripts: let scriptBin = scripts.${script}; in '' elif [[ "$NETWORK" == "${env}" ]]; then @@ -97,7 +98,7 @@ let context = ./context/node; genCfgs = let - environments' = lib.getAttrs [ "mainnet" "preprod" "preview" ] commonLib.environments; + environments' = getAttrs [ "mainnet" "preprod" "preview" ] commonLib.environments; cardano-deployment = commonLib.mkConfigHtml environments'; in pkgs.runCommand "cardano-html" {} '' @@ -105,7 +106,7 @@ let cp "${cardano-deployment}/index.html" "$out/" cp "${cardano-deployment}/rest-config.json" "$out/" - ENVS=(${lib.escapeShellArgs (builtins.attrNames environments')}) + ENVS=(${escapeShellArgs (builtins.attrNames environments')}) for ENV in "''${ENVS[@]}"; do # Migrate each env from a flat dir to an ENV subdir mkdir -p "$out/config/$ENV" @@ -113,13 +114,17 @@ let cp -v "${cardano-deployment}/$i" "$out/config/$ENV/''${i#"$ENV-"}" done - # Adjust genesis file, config and config-bp refs - for i in config config-bp config-legacy config-bp-legacy db-sync-config; do + # Adjust genesis file, config refs + for i in config config-legacy db-sync-config; do if [ -f "$out/config/$ENV/$i.json" ]; then sed -i "s|\"$ENV-|\"|g" "$out/config/$ENV/$i.json" fi done + # Normalize the topology file peer snapshot ref for per ENV dir placement + ${jq}/bin/jq '.peerSnapshotFile = "peer-snapshot.json"' < "$out/config/$ENV/topology.json" > "$ENV-topology.json" + mv -v "$ENV-topology.json" "$out/config/$ENV/topology.json" + # Adjust index.html file refs sed -i "s|$ENV-|config/$ENV/|g" "$out/index.html" done @@ -176,12 +181,6 @@ in # caused by broken symlinks as seen from the host. cp -R "$SRC"/* "$DST" find "$DST" -mindepth 1 -type d -exec bash -c "chmod 0755 {}" \; - - # Preserve legacy oci config and topo path for backwards compatibility. - pushd opt/cardano/config - ln -sv mainnet/config.json mainnet-config.json - ln -sv mainnet/topology.json mainnet-topology.json - popd ''; config = { diff --git a/nix/haskell.nix b/nix/haskell.nix index abc0b6b9036..1454f10ac57 100644 --- a/nix/haskell.nix +++ b/nix/haskell.nix @@ -352,8 +352,8 @@ let }; }) ({ lib, pkgs, ... }: lib.mkIf (pkgs.stdenv.hostPlatform != pkgs.stdenv.buildPlatform) { - # Remove hsc2hs build-tool dependencies (suitable version will be available as part of the ghc derivation) - packages.Win32.components.library.build-tools = lib.mkForce [ ]; + # TODO: error: The option `packages.Win32' does not exist. + # packages.Win32.components.library.build-tools = lib.mkForce [ ]; packages.terminal-size.components.library.build-tools = lib.mkForce [ ]; packages.network.components.library.build-tools = lib.mkForce [ ]; }) diff --git a/nix/nixos/cardano-node-service.nix b/nix/nixos/cardano-node-service.nix index d0c4fde19ac..40bfa7b9b78 100644 --- a/nix/nixos/cardano-node-service.nix +++ b/nix/nixos/cardano-node-service.nix @@ -58,7 +58,7 @@ let selectTopology = i: if cfg.topology != null then cfg.topology - else toFile "topology.json" (toJSON (if (cfg.useNewTopology) then assertNewTopology i else oldTopology i)); + else toFile "topology.json" (toJSON (if (cfg.useNewTopology != false) then assertNewTopology i else oldTopology i)); topology = i: if cfg.useSystemdReload @@ -72,10 +72,17 @@ let // (mapAttrs' (era: epoch: nameValuePair "Test${era}HardForkAtEpoch" epoch ) cfg.forceHardForks) - // (optionalAttrs cfg.useNewTopology ( + // (optionalAttrs (cfg.useNewTopology != false) ( { - EnableP2P = true; MaxConcurrencyBulkSync = 2; + } // optionalAttrs (cfg.useNewTopology == true) { + # Starting with node 10.6.0, p2p is the only network + # operating mode and EnableP2P becomes a no-op and is not + # declared by default. + # + # Older node versions which still require an explicit + # declaration can set useNewTopology true. + EnableP2P = true; } // optionalAttrs (cfg.targetNumberOfRootPeers != null) { TargetNumberOfRootPeers = cfg.targetNumberOfRootPeers; } // optionalAttrs (cfg.targetNumberOfKnownPeers != null) { @@ -164,6 +171,10 @@ let "--tracer-socket-path-accept ${cfg.tracerSocketPathAccept i}" ] ++ optionals (cfg.tracerSocketPathConnect i != null) [ "--tracer-socket-path-connect ${cfg.tracerSocketPathConnect i}" + ] ++ optionals (cfg.tracerSocketNetworkAccept i != null) [ + "--tracer-socket-network-accept ${cfg.tracerSocketNetworkAccept i}" + ] ++ optionals (cfg.tracerSocketNetworkConnect i != null) [ + "--tracer-socket-network-connect ${cfg.tracerSocketNetworkConnect i}" ] ++ consensusParams.${cfg.nodeConfig.Protocol} ++ cfg.extraArgs ++ cfg.rtsArgs; in '' echo "Starting: ${concatStringsSep "\"\n echo \"" cmd}" @@ -448,6 +459,26 @@ in { ''; }; + tracerSocketNetworkAccept = mkOption { + type = funcToOr nullOrStr; + default = null; + apply = x : if lib.isFunction x then x else _ : x; + description = '' + Listen for an incoming cardano-tracer connection at HOST:PORT, + for each instance. + ''; + }; + + tracerSocketNetworkConnect = mkOption { + type = funcToOr nullOrStr; + default = null; + apply = x : if lib.isFunction x then x else _ : x; + description = '' + Connect to a cardano-tracer listening at HOST:PORT, + for each instance. + ''; + }; + socketGroup = mkOption { type = str; default = "cardano-node"; @@ -545,6 +576,9 @@ in { description = '' Routes to public peers. Only used if slot is less than useLedgerAfterSlot. + + If an address is provided without a port or a port set to null within + the attrs, the address will be interpreted as an SRV record. ''; }; @@ -555,6 +589,9 @@ in { Routes to public peers. Only used if slot is less than useLedgerAfterSlot and specific to a given instance when multiple instances are used. + + If an address is provided without a port or a port set to null within + the attrs, the address will be interpreted as an SRV record. ''; }; @@ -569,7 +606,12 @@ in { advertise = false; valency = 1; }]; - description = ''Static routes to local peers.''; + description = '' + Static routes to local peers. + + If an address is provided without a port or a port set to null within + the attrs, the address will be interpreted as an SRV record. + ''; }; instanceProducers = mkOption { @@ -578,14 +620,34 @@ in { description = '' Static routes to local peers, specific to a given instance when multiple instances are used. + + If an address is provided without a port or a port set to null within + the attrs, the address will be interpreted as an SRV record. ''; }; useNewTopology = mkOption { - type = bool; - default = cfg.nodeConfig.EnableP2P or false; + type = nullOr bool; + default = cfg.nodeConfig.EnableP2P or null; description = '' - Use new, peer to peer and ledger peers compatible topology. + Use new, p2p and ledger peers compatible topology. + + The useNewTopology option is deprecated and will be removed in the + future. As of cardano-node 10.6.0, this option should remain null. + For older node versions, a bool value can be set, but this will only + be supported until the Dijkstra hard fork at which point all + cardano-node versions will be compelled to upgrade and the + useNewTopology option will be removed. + + For node version < 10.6.0, useNewTopology will need to be explicitly + declared true or false to behave accordingly. If left null while + also using the auto-generated p2p topology, node will fail to start. + + For node version >= 10.6.0, useNewTopology should be left as null + until the option is removed after the Dijkstra hard fork. If + explicitly declared true, node will continue to work, but if declared + false while using the auto-generated legacy topology, node will fail to + start. ''; }; @@ -611,11 +673,18 @@ in { bootstrapPeers = mkOption { type = nullOr (listOf attrs); - default = map (e: {address = e.addr; inherit (e) port;}) envConfig.edgeNodes; + default = + map (e: + {address = e.addr;} + // optionalAttrs (e ? port && e.port != null) {inherit (e) port;}) + envConfig.edgeNodes; description = '' If set, it will enable bootstrap peers. To disable, set this to null. To enable, set this to a list of attributes of address and port, example: [{ address = "addr"; port = 3001; }] + + If an address is provided without a port or a port set to null within + the attrs, the address will be interpreted as an SRV record. ''; }; @@ -775,8 +844,12 @@ in { peerSnapshotFile = mkOption { type = funcToOr nullOrStr; default = i: - # Node config in 10.5 will default to genesis mode for preview and preprod. - if cfg.useNewTopology && elem cfg.environment ["preview" "preprod"] + # As of node `10.5.0` preview and preprod will default to a + # `ConsensusMode` of `GenesisMode` and utilize a peer snapshot. + # + # Mainnet does not yet require it, but declaring it will also + # facilitate testing. + if (cfg.useNewTopology != false) then if cfg.useSystemdReload then "peer-snapshot-${toString i}.json" @@ -785,14 +858,20 @@ in { example = i: "/etc/cardano-node/peer-snapshot-${toString i}.json"; apply = x: if lib.isFunction x then x else _: x; description = '' - If set, cardano-node will load a peer snapshot file from the declared path which can - be absolute or relative. If a relative path is given, it will be interpreted relative - to the location of the topology file which it is declared in. + If set, the topology file will include a peer snapshot file from the + declared path which can be absolute or relative. If a relative path + is given, it will be interpreted relative to the location of the + topology file which it is declared in. - The peer snapshot file contains a snapshot of big ledger peers taken at some arbitrary slot. - These are the largest pools that cumulatively hold 90% of total stake. + The peer snapshot file contains a snapshot of big ledger peers taken + at some arbitrary slot. These are the largest pools that cumulatively + hold 90% of total stake. - A peer snapshot file can be generated with a `cardano-cli query ledger-peer-snapshot` command. + When cardano-node `ConsensusMode` configuration is set to + `GenesisMode` the peer snapshot file will be loaded and used. + + A peer snapshot file can be generated with a command: + `cardano-cli query ledger-peer-snapshot` ''; }; }; @@ -818,7 +897,7 @@ in { (acc: i: recursiveUpdate acc {"cardano-node/topology-${toString i}.json".source = selectTopology i;}) {} (range 0 (cfg.instances - 1))) ) - (mkIf (cfg.useNewTopology && cfg.useSystemdReload) + (mkIf ((cfg.useNewTopology != false) && cfg.useSystemdReload) (foldl' (acc: i: recursiveUpdate acc ( optionalAttrs (cfg.peerSnapshotFile i != null) { @@ -842,12 +921,12 @@ in { wants = [ "network-online.target" ]; wantedBy = [ "multi-user.target" ]; partOf = mkIf (cfg.instances > 1) ["cardano-node.service"]; - reloadTriggers = mkIf (cfg.useSystemdReload && cfg.useNewTopology) [ (selectTopology i) ]; + reloadTriggers = mkIf (cfg.useSystemdReload && (cfg.useNewTopology != false)) [ (selectTopology i) ]; script = mkScript cfg i; serviceConfig = { User = "cardano-node"; Group = "cardano-node"; - ExecReload = mkIf (cfg.useSystemdReload && cfg.useNewTopology) "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; + ExecReload = mkIf (cfg.useSystemdReload && (cfg.useNewTopology != false)) "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; Restart = "always"; RuntimeDirectory = mkIf (!cfg.systemdSocketActivation) (removePrefix cfg.runDirBase (runtimeDir i)); @@ -900,7 +979,7 @@ in { { assertions = [ { - assertion = all (i : hasPrefix cfg.stateDirBase (cfg.stateDir i)) + assertion = all (i: hasPrefix cfg.stateDirBase (cfg.stateDir i)) (genList trivial.id cfg.instances); message = "The option services.cardano-node.stateDir should have ${cfg.stateDirBase} as a prefix, for each instance!"; @@ -910,14 +989,30 @@ in { message = "Shelley Era: all of three [operationalCertificate kesKey vrfKey] options must be defined (or none of them)."; } { - assertion = !(cfg.systemdSocketActivation && cfg.useNewTopology); + assertion = !(cfg.systemdSocketActivation && (cfg.useNewTopology != false)); message = "Systemd socket activation cannot be used with p2p topology due to a systemd socket re-use issue."; } { assertion = (length lmdbPaths) == (length (lists.unique lmdbPaths)); message = "When configuring multiple LMDB enabled nodes on one instance, lmdbDatabasePath must be unique."; } + { + assertion = count (o: o != null) (with cfg; [ + (tracerSocketPathAccept i) + (tracerSocketPathConnect i) + (tracerSocketNetworkAccept i) + (tracerSocketNetworkConnect i) + ]) <= 1; + message = "Only one option of services.cardano-node.tracerSocket(PathAccept|PathConnect|NetworkAccept|NetworkConnect) can be declared."; + } ]; + + warnings = optional (cfg.useNewTopology != null) '' + The useNewTopology option is deprecated and will be removed in the future. As of cardano-node 10.6.0, this option should remain null. + For older node versions, a bool value can be set, but this will only be supported until the Dijkstra hard fork at which point all + cardano-node versions will be compelled to upgrade and the useNewTopology option will be removed. See the services.cardano-node.useNewTopology + option description for further details. + ''; } ]); } diff --git a/nix/nixos/cardano-tracer-service-workbench.nix b/nix/nixos/cardano-tracer-service-workbench.nix index 21f0c6c6d75..ae2fa10b14b 100644 --- a/nix/nixos/cardano-tracer-service-workbench.nix +++ b/nix/nixos/cardano-tracer-service-workbench.nix @@ -14,16 +14,16 @@ let serviceConfigToJSON = inherit (cfg) networkMagic resourceFreq metricsHelp; # loRequestNum = 100; network = - if cfg.acceptingSocket != null + if cfg.acceptAt != null then { tag = "AcceptAt"; - contents = cfg.acceptingSocket; - } else if cfg.connectToSocket != null + contents = cfg.acceptAt; + } else if cfg.connectTo != null then { tag = "ConnectTo"; - contents = cfg.connectToSocket; + contents = cfg.connectTo; } else - throw "cardano-tracer-service: either acceptingSocket or connectToSocket must be provided."; + throw "cardano-tracer-service: either 'acceptAt' or 'connectTo' options must be provided."; logging = [{ inherit (cfg) logRoot; @@ -75,8 +75,8 @@ in pkgs.commonLib.defServiceModule extraOptionDecls = { ### You can actually change those! networkMagic = opt int 764824073 "Network magic (764824073 for Cardano mainnet)."; - acceptingSocket = mayOpt str "Socket path: as acceptor."; - connectToSocket = mayOpt str "Socket path: connect to."; + acceptAt = mayOpt str "Socket path or HOST:PORT: as acceptor."; + connectTo = mayOpt str "Socket path or HOST:PORT: connect to."; logRoot = opt str null "Log storage root directory."; rotation = opt attrs {} "Log rotation overrides: see cardano-tracer documentation."; RTView = opt attrs {} "RTView config overrides: see cardano-tracer documentation."; diff --git a/nix/nixos/cardano-tracer-service.nix b/nix/nixos/cardano-tracer-service.nix index 90cdb409480..9c796eca4ac 100644 --- a/nix/nixos/cardano-tracer-service.nix +++ b/nix/nixos/cardano-tracer-service.nix @@ -33,13 +33,13 @@ with builtins; let ; network = - optionalAttrs (!isNull cfg.acceptingSocket) { + optionalAttrs (!isNull cfg.acceptAt) { tag = "AcceptAt"; - contents = cfg.acceptingSocket; + contents = cfg.acceptAt; } - // optionalAttrs (!isNull cfg.connectToSocket) { + // optionalAttrs (!isNull cfg.connectTo) { tag = "ConnectTo"; - contents = cfg.connectToSocket; + contents = cfg.connectTo; }; rotation = @@ -115,6 +115,11 @@ with builtins; let runtimeDir = if cfg.runtimeDir == null then cfg.stateDir else "${cfg.runDirBase}${removePrefix cfg.runDirBase cfg.runtimeDir}"; in { + imports = [ + (mkRenamedOptionModule [ "services" "cardano-tracer" "acceptingSocket" ] [ "services" "cardano-tracer" "acceptAt" ]) + (mkRenamedOptionModule [ "services" "cardano-tracer" "connectToSocket" ] [ "services" "cardano-tracer" "connectTo" ]) + ]; + options = { services.cardano-tracer = { enable = mkOption { @@ -132,21 +137,22 @@ in { # # ##################################### - acceptingSocket = mkOption { + acceptAt = mkOption { type = nullOr (either str path); default = "${runtimeDir}/tracer.socket"; description = '' Declaring this option means that cardano-tracer will operate in an `AcceptAt` tag mode where cardano-tracer works as a server: it receives network connections from providers such as node via a single - local socket provided by cardano-tracer. + local socket provided by cardano-tracer or by a network listener at + HOST:PORT. - Except for special use cases, declaring this `acceptingSocket` option - instead of the `connectToSocket` option is recommended, as the + Except for special use cases, declaring this `acceptAt` option + instead of the `connectTo` option is recommended, as the `AcceptAt` tag mode supports dynamic provider addition or removal without requiring cardano-tracer reconfiguration and restart. - Either this option, or the connectToSocket option must be declared. + Either this option, or the connectTo option must be declared. ''; }; @@ -194,21 +200,22 @@ in { ''; }; - connectToSocket = mkOption { + connectTo = mkOption { type = nullOr (listOf (either str path)); default = null; description = '' Declaring this option means that cardano-tracer will operate in a `ConnectTo` tag mode where cardano-tracer works as a client: it - establishes network connections to local socket(s) provided by the - provider(s). In this case a socket is used for each provider. + establishes network connections to local socket(s) or HOST(s):PORT(s) + provided by the provider(s). In this case a socket or HOST:PORT is + used for each provider. - Except for special use cases, declaring `acceptingSocket` instead of + Except for special use cases, declaring `acceptAt` instead of this option is recommended, as the `AcceptAt` tag mode supports dynamic provider addition or removal without requiring cardano-tracer reconfiguration and restart. - Either this option, or the acceptingSocket option must be declared. + Either this option, or the acceptAt option must be declared. ''; }; @@ -844,8 +851,8 @@ in { assertions = [ { - assertion = (!isNull cfg.acceptingSocket) != (!isNull cfg.connectToSocket); - message = "In services.cardano-tracer, exactly one of acceptingSocket or connectToSocket must be declared"; + assertion = (!isNull cfg.acceptAt) != (!isNull cfg.connectTo); + message = "In services.cardano-tracer, exactly one of acceptAt or connectTo must be declared"; } { assertion = isNull cfg.configFilePath || hasPrefix "/etc/" cfg.configFilePath; diff --git a/nix/pkgs.nix b/nix/pkgs.nix index 6f7993ce225..9e295536b6e 100644 --- a/nix/pkgs.nix +++ b/nix/pkgs.nix @@ -126,7 +126,7 @@ in with final; tracerDockerImage = let defaultConfig = rec { - acceptingSocket = "/ipc/tracer.socket"; + acceptAt = "/ipc/tracer.socket"; stateDir = "/logs"; logging = [ { diff --git a/nix/scripts-tracer.nix b/nix/scripts-tracer.nix index 513fbec8822..01f05f944ea 100644 --- a/nix/scripts-tracer.nix +++ b/nix/scripts-tracer.nix @@ -29,7 +29,7 @@ let #!${pkgs.runtimeShell} export PATH=$PATH:${makeBinPath [ pkgs.coreutils ]} set -euo pipefail - mkdir -p "$(dirname "${service.acceptingSocket or service.connectToSocket}")" + mkdir -p "$(dirname "${service.acceptAt or service.connectTo}")" ${service.script} $@ ''; in scriptBin // { diff --git a/nix/svclib.nix b/nix/svclib.nix index 40fbca793fc..578c30782c2 100644 --- a/nix/svclib.nix +++ b/nix/svclib.nix @@ -238,7 +238,8 @@ let }; systemdCompat.options = { systemd.services = mkOption {}; - assertions = []; + assertions = mkOption {}; + warnings = mkOption {}; users = mkOption {}; environment = mkOption {}; }; diff --git a/nix/workbench/genesis/genesis.sh b/nix/workbench/genesis/genesis.sh index c2d41c57789..15f4e09a165 100644 --- a/nix/workbench/genesis/genesis.sh +++ b/nix/workbench/genesis/genesis.sh @@ -1,6 +1,6 @@ # shellcheck shell=bash -global_genesis_format_version=September-01-2024 +global_genesis_format_version=October-13-2025 usage_genesis() { usage "genesis" "Genesis" <` and -one of `Stdout MachineFormat`, `Stdout HumanFormatColoured` and `Stdout HumanFormatUncoloured`. +one of `Stdout MachineFormat`, `Stdout HumanFormatColoured` and `Stdout HumanFormatUncoloured`. The connection for the `Forwarder` backend is provided on the application command line. It is a socket path over which applications like `cardano-node` connect with `cardano-tracer`. `--tracer-socket-path-connect /path/to/forward.sock` sets the backends's role to `Initiator`, whereas `--tracer-socket-path-accept /path/to/forward.sock` sets it to `Responder`. Except for debugging purposes, the former should be chosen: the application takes the `Initiator` role, and `cardano-tracer` is -in the `Responder` role, which means setting its network `tag` to `AcceptAt` in its config (see there). +in the `Responder` role, which means setting its network `tag` to `AcceptAt` in its config (see there). The `PrometheusSimple` backend provides Prometheus metrics _directly from the process_, without forwarding. It always applies to all tracers globally, and should only be configured once. Providing an available port number in the connection string is mandatory; this will bind to localhost only by default. By specifying a bind host, the metrics can be queried remotely, e.g. over IPv4 by -binding to `0.0.0.0`, or IPv6 by binding to `::`. Metrics will be available under the URL `/metrics`. +binding to `0.0.0.0`, or IPv6 by binding to `::`. Metrics will be available under the URL `/metrics`. The `nosuffix` modifier removes suffixes like `_int` from metrics names, making them more similar to those in the old system; `suffix` is the implicit default and can be omitted. *CAUTION*: Generally allowing remote queries of Prometheus metrics is risky and should only be done in an environment you control. @@ -691,6 +691,11 @@ The consistency checks cover the following aspects: - Any namespace in the configuration must be found by a hierarchical lookup in `all namespaces`. +If the checker encounters any problems it emits a `TracerConsistencyWarnings` message through the +`Cardano.Logging.TraceDispatcherMessage` type. The message is routed via the `Reflection` namespace +and carries `Warning` severity so that misconfigured namespaces are surfaced prominently in both the +logs and forwarded tracing output. + ## Trace Backends Overview As mentioned earlier, trace backends serve as the final destinations for all traces once they have undergone trace interpretation, resulting in metrics and messages. The system defines three trace backends: diff --git a/trace-dispatcher/src/Cardano/Logging/TraceDispatcherMessage.hs b/trace-dispatcher/src/Cardano/Logging/TraceDispatcherMessage.hs index 00584cd6705..f09a930bdc6 100644 --- a/trace-dispatcher/src/Cardano/Logging/TraceDispatcherMessage.hs +++ b/trace-dispatcher/src/Cardano/Logging/TraceDispatcherMessage.hs @@ -62,7 +62,7 @@ instance LogFormatting TraceDispatcherMessage where <> Text.intercalate (Text.singleton ' ') noMetrics <> ". Here is a complete list of all tracers: " <> Text.intercalate (Text.singleton ' ') allTracers <> "." forHuman (MetricsInfo mmap) = "Number of metrics delivered, " <> textShow mmap - forHuman (TracerConsistencyWarnings errs) = "Consistency check found error: " <> textShow errs + forHuman (TracerConsistencyWarnings errs) = "Consistency check found warnings: " <> textShow errs forHuman (TracerInfoConfig tc) = "Effective Tracer config is: " <> Text.decodeUtf8 (toStrict (encode tc)) @@ -134,7 +134,7 @@ instance MetaTrace TraceDispatcherMessage where severityFor (Namespace _ ["UnknownNamespace"]) _ = Just Error severityFor (Namespace _ ["TracerInfo"]) _ = Just Notice severityFor (Namespace _ ["MetricsInfo"]) _ = Just Debug - severityFor (Namespace _ ["TracerConsistencyWarnings"]) _ = Just Error + severityFor (Namespace _ ["TracerConsistencyWarnings"]) _ = Just Warning severityFor (Namespace _ ["TracerConfigInfo"]) _ = Just Notice severityFor _ _ = Nothing diff --git a/trace-forward/CHANGELOG.md b/trace-forward/CHANGELOG.md index 88674364b07..300973ac124 100644 --- a/trace-forward/CHANGELOG.md +++ b/trace-forward/CHANGELOG.md @@ -1,5 +1,8 @@ # ChangeLog +## 2.3.1 - Oct 2025 +* Updated to `ekg-forward-1.0`, `ouroboros-network-framework-0.19.2` and `typed-protocols-1.0`. + ## 2.3.0 - Jul 2025 * Remove unused `forwarderEndpoint` and `acceptorEndpoint` fields from forwarder / acceptor configuration types. diff --git a/trace-forward/src/Trace/Forward/Forwarding.hs b/trace-forward/src/Trace/Forward/Forwarding.hs index 363f258588b..0c7bbc6cf4a 100644 --- a/trace-forward/src/Trace/Forward/Forwarding.hs +++ b/trace-forward/src/Trace/Forward/Forwarding.hs @@ -8,40 +8,38 @@ {-# LANGUAGE ViewPatterns #-} module Trace.Forward.Forwarding - ( - initForwarding + ( initForwarding , initForwardingDelayed ) where import Cardano.Logging.Types import Cardano.Logging.Utils (runInLoop) import Ouroboros.Network.Driver.Limits (ProtocolTimeLimits) -import Ouroboros.Network.ErrorPolicy (nullErrorPolicies) import Ouroboros.Network.IOManager (IOManager) import Ouroboros.Network.Magic (NetworkMagic) import Ouroboros.Network.Mux (MiniProtocol (..), MiniProtocolLimits (..), MiniProtocolNum (..), OuroborosApplication (..), RunMiniProtocol (..), miniProtocolLimits, miniProtocolNum, miniProtocolRun) +import Ouroboros.Network.Protocol.Handshake (HandshakeArguments (..)) import Ouroboros.Network.Protocol.Handshake.Codec (cborTermVersionDataCodec, codecHandshake, noTimeLimitsHandshake, timeLimitsHandshake) import Ouroboros.Network.Protocol.Handshake.Type (Handshake) import Ouroboros.Network.Protocol.Handshake.Version (acceptableVersion, queryVersion, simpleSingletonVersions) -import Ouroboros.Network.Snocket (LocalAddress, LocalSocket, MakeBearer, Snocket, - localAddressFromPath, localSnocket, makeLocalBearer, makeSocketBearer, - socketSnocket) -import Ouroboros.Network.Socket (AcceptedConnectionsLimit (..), ConnectToArgs (..), - HandshakeCallbacks (..), SomeResponderApplication (..), cleanNetworkMutableState, - connectToNode, newNetworkMutableState, nullNetworkConnectTracers, - nullNetworkServerTracers, withServerNode) +import Ouroboros.Network.Snocket (MakeBearer, Snocket, localAddressFromPath, localSnocket, + makeLocalBearer, LocalAddress, socketSnocket, makeSocketBearer, LocalSocket) +import Ouroboros.Network.Socket (ConnectToArgs (..), + HandshakeCallbacks (..), SomeResponderApplication (..), + connectToNode, nullNetworkConnectTracers) +import qualified Ouroboros.Network.Server.Simple as Server import Codec.CBOR.Term (Term) -import Control.Concurrent.Async (async, race_, wait) +import Control.Concurrent.Async (async, wait) import Control.Exception (throwIO) -import Control.Monad (void) import Control.Monad.IO.Class import "contra-tracer" Control.Tracer (Tracer, contramap, nullTracer, stdoutTracer) import qualified Data.ByteString.Lazy as LBS +import Data.Functor import Data.List.NonEmpty (NonEmpty ((:|))) import Data.Maybe (isNothing) import qualified Data.Text as Text @@ -296,9 +294,7 @@ doConnectToAcceptor magic snocket makeBearer configureSocket address timeLimits Nothing -> forwardEKGMetricsDummy doListenToAcceptor - :: forall fd addr. () - => Ord addr - => NetworkMagic + :: NetworkMagic -> Snocket IO fd addr -> MakeBearer IO fd -> (fd -> addr -> IO ()) @@ -312,34 +308,33 @@ doListenToAcceptor -> DataPointStore -> IO () doListenToAcceptor magic snocket makeBearer configureSocket address timeLimits - ekgConfig tfConfig dpfConfig sink ekgStore dpStore = do - networkState <- newNetworkMutableState - race_ (cleanNetworkMutableState networkState) - $ withServerNode - snocket - makeBearer - configureSocket - nullNetworkServerTracers - networkState - (AcceptedConnectionsLimit maxBound maxBound 0) - address - (codecHandshake forwardingVersionCodec) - timeLimits - (cborTermVersionDataCodec forwardingCodecCBORTerm) - (HandshakeCallbacks acceptableVersion queryVersion) - (simpleSingletonVersions - ForwardingV_1 - (ForwardingVersionData magic) - (const $ SomeResponderApplication $ - forwarderApp [ (forwardEKGMetricsRespRun, 1) - , (forwardTraceObjectsResp tfConfig sink, 2) - , (forwardDataPointsResp dpfConfig dpStore, 3) - ] - ) - ) - nullErrorPolicies - $ \_ serverAsync -> - wait serverAsync -- Block until async exception. + ekgConfig tfConfig dpfConfig sink ekgStore dpStore = + void $ Server.with + snocket + makeBearer + configureSocket + address + HandshakeArguments { + haBearerTracer = nullTracer, + haHandshakeTracer = nullTracer, + haHandshakeCodec = codecHandshake forwardingVersionCodec, + haVersionDataCodec = cborTermVersionDataCodec forwardingCodecCBORTerm, + haAcceptVersion = acceptableVersion, + haQueryVersion = queryVersion, + haTimeLimits = timeLimits + } + (simpleSingletonVersions + ForwardingV_1 + (ForwardingVersionData magic) + (const $ SomeResponderApplication $ + forwarderApp [ (forwardEKGMetricsRespRun, 1) + , (forwardTraceObjectsResp tfConfig sink, 2) + , (forwardDataPointsResp dpfConfig dpStore, 3) + ] + ) + ) + $ \_ serverAsync -> + wait serverAsync -- Block until async exception. where forwarderApp :: [(RunMiniProtocol 'Mux.ResponderMode initiatorCtx responderCtx LBS.ByteString IO Void (), Word16)] diff --git a/trace-forward/trace-forward.cabal b/trace-forward/trace-forward.cabal index f94e72f1043..d37b2ff4112 100644 --- a/trace-forward/trace-forward.cabal +++ b/trace-forward/trace-forward.cabal @@ -1,7 +1,7 @@ cabal-version: 3.0 name: trace-forward -version: 2.3.0 +version: 2.3.1 synopsis: The forwarding protocols library for cardano node. description: The library providing typed protocols for forwarding different information from the cardano node to an external application. @@ -70,15 +70,14 @@ library , network-mux , ouroboros-network-api , ekg-core - , ekg-forward >= 0.9 + , ekg-forward >= 1.0 , singletons ^>= 3.0 - , ouroboros-network-framework ^>= 0.18.0.1 + , ouroboros-network-framework ^>= 0.19.2 , serialise , stm , text , trace-dispatcher - , typed-protocols ^>= 0.3 - , typed-protocols-cborg + , typed-protocols:{typed-protocols, cborg} ^>= 1.0 test-suite test import: project-config