From 8c121d99425fd55a5912f6e7385a79fe106ef0a7 Mon Sep 17 00:00:00 2001 From: Julien Sagot Date: Wed, 13 Dec 2023 16:50:27 +0100 Subject: [PATCH 1/4] proto/constant_parametrics: add delegate_parameters_activation_delay --- .../lib_parameters/default_parameters.ml | 3 +++ src/proto_alpha/lib_protocol/alpha_context.mli | 3 +++ .../lib_protocol/constants_parametric_repr.ml | 13 +++++++++---- .../lib_protocol/constants_parametric_repr.mli | 3 +++ src/proto_alpha/lib_protocol/constants_storage.ml | 4 ++++ src/proto_alpha/lib_protocol/constants_storage.mli | 2 ++ src/proto_alpha/lib_protocol/raw_context.ml | 1 + 7 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/proto_alpha/lib_parameters/default_parameters.ml b/src/proto_alpha/lib_parameters/default_parameters.ml index a4526b223f66..7490c4fc16a4 100644 --- a/src/proto_alpha/lib_parameters/default_parameters.ml +++ b/src/proto_alpha/lib_parameters/default_parameters.ml @@ -131,6 +131,7 @@ let constants_mainnet = Constants.Parametric.preserved_cycles = 5; consensus_rights_delay = 5; blocks_preservation_cycles = 5; + delegate_parameters_activation_delay = 5; blocks_per_cycle = 16384l; blocks_per_commitment = 128l; nonce_revelation_threshold = 512l; @@ -323,6 +324,7 @@ let constants_sandbox = Constants.Parametric.preserved_cycles = 2; blocks_preservation_cycles = 2; consensus_rights_delay = 2; + delegate_parameters_activation_delay = 2; blocks_per_cycle = 8l; blocks_per_commitment = 4l; nonce_revelation_threshold = 4l; @@ -358,6 +360,7 @@ let constants_test = issuance_weights; Constants.Parametric.preserved_cycles = 3; consensus_rights_delay = 3; + delegate_parameters_activation_delay = 3; blocks_preservation_cycles = 3; blocks_per_cycle = 12l; blocks_per_commitment = 4l; diff --git a/src/proto_alpha/lib_protocol/alpha_context.mli b/src/proto_alpha/lib_protocol/alpha_context.mli index 4804b4d2af18..e3c6bf9522a1 100644 --- a/src/proto_alpha/lib_protocol/alpha_context.mli +++ b/src/proto_alpha/lib_protocol/alpha_context.mli @@ -885,6 +885,7 @@ module Constants : sig preserved_cycles : int; consensus_rights_delay : int; blocks_preservation_cycles : int; + delegate_parameters_activation_delay : int; blocks_per_cycle : int32; blocks_per_commitment : int32; nonce_revelation_threshold : int32; @@ -949,6 +950,8 @@ module Constants : sig val blocks_preservation_cycles : context -> int + val delegate_parameters_activation_delay : context -> int + val blocks_per_cycle : context -> int32 val blocks_per_commitment : context -> int32 diff --git a/src/proto_alpha/lib_protocol/constants_parametric_repr.ml b/src/proto_alpha/lib_protocol/constants_parametric_repr.ml index 9ffceb2a91c5..d2765ea3a0e5 100644 --- a/src/proto_alpha/lib_protocol/constants_parametric_repr.ml +++ b/src/proto_alpha/lib_protocol/constants_parametric_repr.ml @@ -169,6 +169,7 @@ type t = { preserved_cycles : int; consensus_rights_delay : int; blocks_preservation_cycles : int; + delegate_parameters_activation_delay : int; blocks_per_cycle : int32; blocks_per_commitment : int32; nonce_revelation_threshold : int32; @@ -486,7 +487,8 @@ let encoding = (fun c -> ( ( ( c.preserved_cycles, c.consensus_rights_delay, - c.blocks_preservation_cycles ), + c.blocks_preservation_cycles, + c.delegate_parameters_activation_delay ), ( c.blocks_per_cycle, c.blocks_per_commitment, c.nonce_revelation_threshold, @@ -526,7 +528,8 @@ let encoding = ) ) ) ) )) (fun ( ( ( preserved_cycles, consensus_rights_delay, - blocks_preservation_cycles ), + blocks_preservation_cycles, + delegate_parameters_activation_delay ), ( blocks_per_cycle, blocks_per_commitment, nonce_revelation_threshold, @@ -568,6 +571,7 @@ let encoding = preserved_cycles; consensus_rights_delay; blocks_preservation_cycles; + delegate_parameters_activation_delay; blocks_per_cycle; blocks_per_commitment; nonce_revelation_threshold; @@ -609,10 +613,11 @@ let encoding = }) (merge_objs (merge_objs - (obj3 + (obj4 (req "preserved_cycles" uint8) (req "consensus_rights_delay" uint8) - (req "blocks_preservation_cycles" uint8)) + (req "blocks_preservation_cycles" uint8) + (req "delegate_parameters_activation_delay" uint8)) (obj9 (req "blocks_per_cycle" int32) (req "blocks_per_commitment" int32) diff --git a/src/proto_alpha/lib_protocol/constants_parametric_repr.mli b/src/proto_alpha/lib_protocol/constants_parametric_repr.mli index bf1c6faa99aa..5f93956f4291 100644 --- a/src/proto_alpha/lib_protocol/constants_parametric_repr.mli +++ b/src/proto_alpha/lib_protocol/constants_parametric_repr.mli @@ -160,6 +160,9 @@ type t = { (* Number of past cycles about which the protocol hints the shell that it should keep them in its history. *) blocks_preservation_cycles : int; + (* Number of cycles after which submitted delegate parameters are being + used. *) + delegate_parameters_activation_delay : int; blocks_per_cycle : int32; blocks_per_commitment : int32; nonce_revelation_threshold : int32; diff --git a/src/proto_alpha/lib_protocol/constants_storage.ml b/src/proto_alpha/lib_protocol/constants_storage.ml index a41f82b93743..711381d2d5ed 100644 --- a/src/proto_alpha/lib_protocol/constants_storage.ml +++ b/src/proto_alpha/lib_protocol/constants_storage.ml @@ -36,6 +36,10 @@ let blocks_preservation_cycles c = let constants = Raw_context.constants c in constants.blocks_preservation_cycles +let delegate_parameters_activation_delay c = + let constants = Raw_context.constants c in + constants.delegate_parameters_activation_delay + let blocks_per_cycle c = let constants = Raw_context.constants c in constants.blocks_per_cycle diff --git a/src/proto_alpha/lib_protocol/constants_storage.mli b/src/proto_alpha/lib_protocol/constants_storage.mli index 881a99c9c5f5..da9f4be531f3 100644 --- a/src/proto_alpha/lib_protocol/constants_storage.mli +++ b/src/proto_alpha/lib_protocol/constants_storage.mli @@ -35,6 +35,8 @@ val consensus_rights_delay : Raw_context.t -> int val blocks_preservation_cycles : Raw_context.t -> int +val delegate_parameters_activation_delay : Raw_context.t -> int + val blocks_per_cycle : Raw_context.t -> int32 val blocks_per_commitment : Raw_context.t -> int32 diff --git a/src/proto_alpha/lib_protocol/raw_context.ml b/src/proto_alpha/lib_protocol/raw_context.ml index d3ef6ce0fd5e..c321b9370695 100644 --- a/src/proto_alpha/lib_protocol/raw_context.ml +++ b/src/proto_alpha/lib_protocol/raw_context.ml @@ -1125,6 +1125,7 @@ let prepare_first_block ~level ~timestamp _chain_id ctxt = preserved_cycles = c.preserved_cycles; consensus_rights_delay = c.preserved_cycles; blocks_preservation_cycles = c.preserved_cycles; + delegate_parameters_activation_delay = c.preserved_cycles; blocks_per_cycle = c.blocks_per_cycle; blocks_per_commitment = c.blocks_per_commitment; nonce_revelation_threshold = c.nonce_revelation_threshold; -- GitLab From bc74f7971a5e43ee008a12506852b4668aa067a9 Mon Sep 17 00:00:00 2001 From: Julien Sagot Date: Wed, 13 Dec 2023 16:54:07 +0100 Subject: [PATCH 2/4] tezt/RPC: reset regression traces for constants change --- ... (mode client) RPC regression tests- misc_protocol.out | 8 ++++---- ...- (mode light) RPC regression tests- misc_protocol.out | 8 ++++---- ...- (mode proxy) RPC regression tests- misc_protocol.out | 8 ++++---- ...rver_data_dir) RPC regression tests- misc_protocol.out | 8 ++++---- ...xy_server_rpc) RPC regression tests- misc_protocol.out | 8 ++++---- 5 files changed, 20 insertions(+), 20 deletions(-) diff --git a/tezt/tests/expected/RPC_test.ml/Alpha- (mode client) RPC regression tests- misc_protocol.out b/tezt/tests/expected/RPC_test.ml/Alpha- (mode client) RPC regression tests- misc_protocol.out index 6027868f0a7b..3447397a623f 100644 --- a/tezt/tests/expected/RPC_test.ml/Alpha- (mode client) RPC regression tests- misc_protocol.out +++ b/tezt/tests/expected/RPC_test.ml/Alpha- (mode client) RPC regression tests- misc_protocol.out @@ -10,10 +10,10 @@ "smart_rollup_message_size_limit": 4096, "smart_rollup_max_number_of_messages_per_level": "1000000", "preserved_cycles": 2, "consensus_rights_delay": 2, - "blocks_preservation_cycles": 2, "blocks_per_cycle": 8, - "blocks_per_commitment": 4, "nonce_revelation_threshold": 4, - "blocks_per_stake_snapshot": 4, "cycles_per_voting_period": 8, - "hard_gas_limit_per_operation": "1040000", + "blocks_preservation_cycles": 2, "delegate_parameters_activation_delay": 2, + "blocks_per_cycle": 8, "blocks_per_commitment": 4, + "nonce_revelation_threshold": 4, "blocks_per_stake_snapshot": 4, + "cycles_per_voting_period": 8, "hard_gas_limit_per_operation": "1040000", "hard_gas_limit_per_block": "2600000", "proof_of_work_threshold": "4611686018427387903", "minimal_stake": "6000000000", "minimal_frozen_stake": "600000000", diff --git a/tezt/tests/expected/RPC_test.ml/Alpha- (mode light) RPC regression tests- misc_protocol.out b/tezt/tests/expected/RPC_test.ml/Alpha- (mode light) RPC regression tests- misc_protocol.out index 5dfce17a75d5..a6aef8396a65 100644 --- a/tezt/tests/expected/RPC_test.ml/Alpha- (mode light) RPC regression tests- misc_protocol.out +++ b/tezt/tests/expected/RPC_test.ml/Alpha- (mode light) RPC regression tests- misc_protocol.out @@ -10,10 +10,10 @@ "smart_rollup_message_size_limit": 4096, "smart_rollup_max_number_of_messages_per_level": "1000000", "preserved_cycles": 2, "consensus_rights_delay": 2, - "blocks_preservation_cycles": 2, "blocks_per_cycle": 8, - "blocks_per_commitment": 4, "nonce_revelation_threshold": 4, - "blocks_per_stake_snapshot": 4, "cycles_per_voting_period": 8, - "hard_gas_limit_per_operation": "1040000", + "blocks_preservation_cycles": 2, "delegate_parameters_activation_delay": 2, + "blocks_per_cycle": 8, "blocks_per_commitment": 4, + "nonce_revelation_threshold": 4, "blocks_per_stake_snapshot": 4, + "cycles_per_voting_period": 8, "hard_gas_limit_per_operation": "1040000", "hard_gas_limit_per_block": "2600000", "proof_of_work_threshold": "4611686018427387903", "minimal_stake": "6000000000", "minimal_frozen_stake": "600000000", diff --git a/tezt/tests/expected/RPC_test.ml/Alpha- (mode proxy) RPC regression tests- misc_protocol.out b/tezt/tests/expected/RPC_test.ml/Alpha- (mode proxy) RPC regression tests- misc_protocol.out index 652c31fcd076..9df5cf1392c2 100644 --- a/tezt/tests/expected/RPC_test.ml/Alpha- (mode proxy) RPC regression tests- misc_protocol.out +++ b/tezt/tests/expected/RPC_test.ml/Alpha- (mode proxy) RPC regression tests- misc_protocol.out @@ -10,10 +10,10 @@ "smart_rollup_message_size_limit": 4096, "smart_rollup_max_number_of_messages_per_level": "1000000", "preserved_cycles": 2, "consensus_rights_delay": 2, - "blocks_preservation_cycles": 2, "blocks_per_cycle": 8, - "blocks_per_commitment": 4, "nonce_revelation_threshold": 4, - "blocks_per_stake_snapshot": 4, "cycles_per_voting_period": 8, - "hard_gas_limit_per_operation": "1040000", + "blocks_preservation_cycles": 2, "delegate_parameters_activation_delay": 2, + "blocks_per_cycle": 8, "blocks_per_commitment": 4, + "nonce_revelation_threshold": 4, "blocks_per_stake_snapshot": 4, + "cycles_per_voting_period": 8, "hard_gas_limit_per_operation": "1040000", "hard_gas_limit_per_block": "2600000", "proof_of_work_threshold": "4611686018427387903", "minimal_stake": "6000000000", "minimal_frozen_stake": "600000000", diff --git a/tezt/tests/expected/RPC_test.ml/Alpha- (mode proxy_server_data_dir) RPC regression tests- misc_protocol.out b/tezt/tests/expected/RPC_test.ml/Alpha- (mode proxy_server_data_dir) RPC regression tests- misc_protocol.out index 91c21ce9f320..afe3c6ed6326 100644 --- a/tezt/tests/expected/RPC_test.ml/Alpha- (mode proxy_server_data_dir) RPC regression tests- misc_protocol.out +++ b/tezt/tests/expected/RPC_test.ml/Alpha- (mode proxy_server_data_dir) RPC regression tests- misc_protocol.out @@ -10,10 +10,10 @@ "smart_rollup_message_size_limit": 4096, "smart_rollup_max_number_of_messages_per_level": "1000000", "preserved_cycles": 2, "consensus_rights_delay": 2, - "blocks_preservation_cycles": 2, "blocks_per_cycle": 8, - "blocks_per_commitment": 4, "nonce_revelation_threshold": 4, - "blocks_per_stake_snapshot": 4, "cycles_per_voting_period": 8, - "hard_gas_limit_per_operation": "1040000", + "blocks_preservation_cycles": 2, "delegate_parameters_activation_delay": 2, + "blocks_per_cycle": 8, "blocks_per_commitment": 4, + "nonce_revelation_threshold": 4, "blocks_per_stake_snapshot": 4, + "cycles_per_voting_period": 8, "hard_gas_limit_per_operation": "1040000", "hard_gas_limit_per_block": "2600000", "proof_of_work_threshold": "4611686018427387903", "minimal_stake": "6000000000", "minimal_frozen_stake": "600000000", diff --git a/tezt/tests/expected/RPC_test.ml/Alpha- (mode proxy_server_rpc) RPC regression tests- misc_protocol.out b/tezt/tests/expected/RPC_test.ml/Alpha- (mode proxy_server_rpc) RPC regression tests- misc_protocol.out index 91c21ce9f320..afe3c6ed6326 100644 --- a/tezt/tests/expected/RPC_test.ml/Alpha- (mode proxy_server_rpc) RPC regression tests- misc_protocol.out +++ b/tezt/tests/expected/RPC_test.ml/Alpha- (mode proxy_server_rpc) RPC regression tests- misc_protocol.out @@ -10,10 +10,10 @@ "smart_rollup_message_size_limit": 4096, "smart_rollup_max_number_of_messages_per_level": "1000000", "preserved_cycles": 2, "consensus_rights_delay": 2, - "blocks_preservation_cycles": 2, "blocks_per_cycle": 8, - "blocks_per_commitment": 4, "nonce_revelation_threshold": 4, - "blocks_per_stake_snapshot": 4, "cycles_per_voting_period": 8, - "hard_gas_limit_per_operation": "1040000", + "blocks_preservation_cycles": 2, "delegate_parameters_activation_delay": 2, + "blocks_per_cycle": 8, "blocks_per_commitment": 4, + "nonce_revelation_threshold": 4, "blocks_per_stake_snapshot": 4, + "cycles_per_voting_period": 8, "hard_gas_limit_per_operation": "1040000", "hard_gas_limit_per_block": "2600000", "proof_of_work_threshold": "4611686018427387903", "minimal_stake": "6000000000", "minimal_frozen_stake": "600000000", -- GitLab From b48db7ef17d9e146c204b788a2854ba2ee65be86 Mon Sep 17 00:00:00 2001 From: Julien Sagot Date: Wed, 13 Dec 2023 16:55:32 +0100 Subject: [PATCH 3/4] kaitai: adapt to new protocol constant --- contrib/kaitai-struct-files/files/alpha__constants.ksy | 2 ++ .../kaitai-struct-files/files/alpha__constants__parametric.ksy | 2 ++ contrib/kaitai-struct-files/files/alpha__parameters.ksy | 2 ++ 3 files changed, 6 insertions(+) diff --git a/contrib/kaitai-struct-files/files/alpha__constants.ksy b/contrib/kaitai-struct-files/files/alpha__constants.ksy index 5fb50b16d11c..2c9b1e99d619 100644 --- a/contrib/kaitai-struct-files/files/alpha__constants.ksy +++ b/contrib/kaitai-struct-files/files/alpha__constants.ksy @@ -197,6 +197,8 @@ seq: type: u1 - id: blocks_preservation_cycles type: u1 +- id: delegate_parameters_activation_delay + type: u1 - id: blocks_per_cycle type: s4 - id: blocks_per_commitment diff --git a/contrib/kaitai-struct-files/files/alpha__constants__parametric.ksy b/contrib/kaitai-struct-files/files/alpha__constants__parametric.ksy index 6b9c58387554..abe90ad71d20 100644 --- a/contrib/kaitai-struct-files/files/alpha__constants__parametric.ksy +++ b/contrib/kaitai-struct-files/files/alpha__constants__parametric.ksy @@ -169,6 +169,8 @@ seq: type: u1 - id: blocks_preservation_cycles type: u1 +- id: delegate_parameters_activation_delay + type: u1 - id: blocks_per_cycle type: s4 - id: blocks_per_commitment diff --git a/contrib/kaitai-struct-files/files/alpha__parameters.ksy b/contrib/kaitai-struct-files/files/alpha__parameters.ksy index 611c5a271d4a..bdc59b805a74 100644 --- a/contrib/kaitai-struct-files/files/alpha__parameters.ksy +++ b/contrib/kaitai-struct-files/files/alpha__parameters.ksy @@ -447,6 +447,8 @@ seq: type: u1 - id: blocks_preservation_cycles type: u1 +- id: delegate_parameters_activation_delay + type: u1 - id: blocks_per_cycle type: s4 - id: blocks_per_commitment -- GitLab From f65801fac3ba6956bc21ed8d2c0e4d19854f98b0 Mon Sep 17 00:00:00 2001 From: Julien Sagot Date: Wed, 13 Dec 2023 17:00:44 +0100 Subject: [PATCH 4/4] docs/proto/alpha: changelog entry for constant delegate_parameters_activation_delay --- docs/protocols/alpha.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/protocols/alpha.rst b/docs/protocols/alpha.rst index 91bd06fc606a..e2195f8c9328 100644 --- a/docs/protocols/alpha.rst +++ b/docs/protocols/alpha.rst @@ -49,6 +49,8 @@ Protocol parameters - Added ``blocks_preservation_cycles`` parametric constant. (MR :gl:`!11280`) +- Added ``delegate_parameters_activation_delay`` parametric constant. (MR :gl:`!11279`) + Bug Fixes --------- -- GitLab