From ef5be5c6b6e9332604a45c530ffec415e461c7fb Mon Sep 17 00:00:00 2001 From: Valentin Chaboche Date: Mon, 4 Jul 2022 10:12:21 +0200 Subject: [PATCH 1/3] Scoru,Proto: introduce [timeout_period_in_blocks] --- src/proto_alpha/lib_client/mockup.ml | 75 +++++++++++-------- .../lib_parameters/default_parameters.ml | 8 ++ .../lib_protocol/alpha_context.mli | 1 + .../lib_protocol/constants_parametric_repr.ml | 68 +++++++++-------- .../constants_parametric_repr.mli | 2 + .../lib_protocol/constants_storage.ml | 4 + .../lib_protocol/constants_storage.mli | 2 + src/proto_alpha/lib_protocol/raw_context.ml | 3 + tests_python/tests_alpha/test_mockup.py | 1 + ...t) RPC regression tests- misc_protocol.out | 3 +- ...t) RPC regression tests- misc_protocol.out | 3 +- ...y) RPC regression tests- misc_protocol.out | 3 +- ...r) RPC regression tests- misc_protocol.out | 3 +- ...c) RPC regression tests- misc_protocol.out | 3 +- ...ommitments in the rollup node (no_comm.out | 6 +- 15 files changed, 116 insertions(+), 69 deletions(-) diff --git a/src/proto_alpha/lib_client/mockup.ml b/src/proto_alpha/lib_client/mockup.ml index b851e9a461ec..ab25cf4efe92 100644 --- a/src/proto_alpha/lib_client/mockup.ml +++ b/src/proto_alpha/lib_client/mockup.ml @@ -64,6 +64,7 @@ module Protocol_constants_overrides = struct max_active_outbox_levels : int32 option; max_outbox_messages_per_level : int option; number_of_sections_in_dissection : int option; + timeout_period_in_blocks : int option; } type t = { @@ -189,26 +190,28 @@ module Protocol_constants_overrides = struct let open Data_encoding in conv (fun (c : sc_rollup) -> - ( c.enable, - c.origination_size, - c.challenge_window_in_blocks, - c.max_number_of_messages_per_commitment_period, - c.stake_amount, - c.commitment_period_in_blocks, - c.max_lookahead_in_blocks, - c.max_active_outbox_levels, - c.max_outbox_messages_per_level, - c.number_of_sections_in_dissection )) - (fun ( sc_rollup_enable, - sc_rollup_origination_size, - sc_rollup_challenge_window_in_blocks, - sc_rollup_max_number_of_messages_per_commitment_period, - sc_rollup_stake_amount, - sc_rollup_commitment_period_in_blocks, - sc_rollup_max_lookahead_in_blocks, - sc_rollup_max_active_outbox_levels, - sc_rollup_max_outbox_messages_per_level, - sc_rollup_number_of_sections_in_dissection ) -> + ( ( c.enable, + c.origination_size, + c.challenge_window_in_blocks, + c.max_number_of_messages_per_commitment_period, + c.stake_amount, + c.commitment_period_in_blocks, + c.max_lookahead_in_blocks, + c.max_active_outbox_levels, + c.max_outbox_messages_per_level, + c.number_of_sections_in_dissection ), + c.timeout_period_in_blocks )) + (fun ( ( sc_rollup_enable, + sc_rollup_origination_size, + sc_rollup_challenge_window_in_blocks, + sc_rollup_max_number_of_messages_per_commitment_period, + sc_rollup_stake_amount, + sc_rollup_commitment_period_in_blocks, + sc_rollup_max_lookahead_in_blocks, + sc_rollup_max_active_outbox_levels, + sc_rollup_max_outbox_messages_per_level, + sc_rollup_number_of_sections_in_dissection ), + sc_rollup_timeout_period_in_blocks ) -> { enable = sc_rollup_enable; origination_size = sc_rollup_origination_size; @@ -223,18 +226,21 @@ module Protocol_constants_overrides = struct sc_rollup_max_outbox_messages_per_level; number_of_sections_in_dissection = sc_rollup_number_of_sections_in_dissection; + timeout_period_in_blocks = sc_rollup_timeout_period_in_blocks; }) - (obj10 - (opt "sc_rollup_enable" bool) - (opt "sc_rollup_origination_size" int31) - (opt "sc_rollup_challenge_window_in_blocks" int31) - (opt "sc_rollup_max_number_of_messages_per_commitment_period" int31) - (opt "sc_rollup_stake_amount" Tez.encoding) - (opt "sc_rollup_commitment_period_in_blocks" int31) - (opt "sc_rollup_max_lookahead_in_blocks" int32) - (opt "sc_rollup_max_active_outbox_levels" int32) - (opt "sc_rollup_max_outbox_messages_per_level" int31) - (opt "sc_rollup_number_of_sections_in_dissection" uint8)) + (merge_objs + (obj10 + (opt "sc_rollup_enable" bool) + (opt "sc_rollup_origination_size" int31) + (opt "sc_rollup_challenge_window_in_blocks" int31) + (opt "sc_rollup_max_number_of_messages_per_commitment_period" int31) + (opt "sc_rollup_stake_amount" Tez.encoding) + (opt "sc_rollup_commitment_period_in_blocks" int31) + (opt "sc_rollup_max_lookahead_in_blocks" int32) + (opt "sc_rollup_max_active_outbox_levels" int32) + (opt "sc_rollup_max_outbox_messages_per_level" int31) + (opt "sc_rollup_number_of_sections_in_dissection" uint8)) + (obj1 (opt "sc_rollup_timeout_period_in_blocks" int31))) let encoding = let open Data_encoding in @@ -519,6 +525,8 @@ module Protocol_constants_overrides = struct Some parametric.sc_rollup.max_outbox_messages_per_level; number_of_sections_in_dissection = Some parametric.sc_rollup.number_of_sections_in_dissection; + timeout_period_in_blocks = + Some parametric.sc_rollup.timeout_period_in_blocks; }; dal = Some parametric.dal; tx_rollup = @@ -607,6 +615,7 @@ module Protocol_constants_overrides = struct max_active_outbox_levels = None; max_outbox_messages_per_level = None; number_of_sections_in_dissection = None; + timeout_period_in_blocks = None; }; dal = None; tx_rollup = @@ -1103,6 +1112,10 @@ module Protocol_constants_overrides = struct Option.value ~default:c.sc_rollup.number_of_sections_in_dissection o.sc_rollup.number_of_sections_in_dissection; + timeout_period_in_blocks = + Option.value + ~default:c.sc_rollup.timeout_period_in_blocks + o.sc_rollup.timeout_period_in_blocks; }; dal = Option.value ~default:c.dal o.dal; tx_rollup = diff --git a/src/proto_alpha/lib_parameters/default_parameters.ml b/src/proto_alpha/lib_parameters/default_parameters.ml index 2873fa294e62..0de785fb3801 100644 --- a/src/proto_alpha/lib_parameters/default_parameters.ml +++ b/src/proto_alpha/lib_parameters/default_parameters.ml @@ -48,6 +48,13 @@ let sc_rollup_max_active_outbox_levels = pay for at origination time. *) let sc_rollup_max_outbox_messages_per_level = 100 +(** The timeout period in blocks is about 4h with 30s block-time (15000s / 30s). + + TODO: https://gitlab.com/tezos/tezos/-/issues/2902 + This constant needs to be refined. +*) +let sc_rollup_timeout_period_in_blocks = 500 + (* DAL/FIXME https://gitlab.com/tezos/tezos/-/issues/3177 Think harder about those values. *) @@ -212,6 +219,7 @@ let constants_mainnet = max_active_outbox_levels = sc_rollup_max_active_outbox_levels; max_outbox_messages_per_level = sc_rollup_max_outbox_messages_per_level; number_of_sections_in_dissection = 32; + timeout_period_in_blocks = sc_rollup_timeout_period_in_blocks; }; } diff --git a/src/proto_alpha/lib_protocol/alpha_context.mli b/src/proto_alpha/lib_protocol/alpha_context.mli index b3296fb5c60e..b4aa6f4b162c 100644 --- a/src/proto_alpha/lib_protocol/alpha_context.mli +++ b/src/proto_alpha/lib_protocol/alpha_context.mli @@ -808,6 +808,7 @@ module Constants : sig max_active_outbox_levels : int32; max_outbox_messages_per_level : int; number_of_sections_in_dissection : int; + timeout_period_in_blocks : int; } type t = { diff --git a/src/proto_alpha/lib_protocol/constants_parametric_repr.ml b/src/proto_alpha/lib_protocol/constants_parametric_repr.ml index 208eae3ed63d..5a5515761ba2 100644 --- a/src/proto_alpha/lib_protocol/constants_parametric_repr.ml +++ b/src/proto_alpha/lib_protocol/constants_parametric_repr.ml @@ -105,6 +105,7 @@ type sc_rollup = { max_active_outbox_levels : int32; max_outbox_messages_per_level : int; number_of_sections_in_dissection : int; + timeout_period_in_blocks : int; } type t = { @@ -228,26 +229,28 @@ let sc_rollup_encoding = let open Data_encoding in conv (fun (c : sc_rollup) -> - ( c.enable, - c.origination_size, - c.challenge_window_in_blocks, - c.max_number_of_messages_per_commitment_period, - c.stake_amount, - c.commitment_period_in_blocks, - c.max_lookahead_in_blocks, - c.max_active_outbox_levels, - c.max_outbox_messages_per_level, - c.number_of_sections_in_dissection )) - (fun ( sc_rollup_enable, - sc_rollup_origination_size, - sc_rollup_challenge_window_in_blocks, - sc_rollup_max_number_of_messages_per_commitment_period, - sc_rollup_stake_amount, - sc_rollup_commitment_period_in_blocks, - sc_rollup_max_lookahead_in_blocks, - sc_rollup_max_active_outbox_levels, - sc_rollup_max_outbox_messages_per_level, - sc_rollup_number_of_sections_in_dissection ) -> + ( ( c.enable, + c.origination_size, + c.challenge_window_in_blocks, + c.max_number_of_messages_per_commitment_period, + c.stake_amount, + c.commitment_period_in_blocks, + c.max_lookahead_in_blocks, + c.max_active_outbox_levels, + c.max_outbox_messages_per_level, + c.number_of_sections_in_dissection ), + c.timeout_period_in_blocks )) + (fun ( ( sc_rollup_enable, + sc_rollup_origination_size, + sc_rollup_challenge_window_in_blocks, + sc_rollup_max_number_of_messages_per_commitment_period, + sc_rollup_stake_amount, + sc_rollup_commitment_period_in_blocks, + sc_rollup_max_lookahead_in_blocks, + sc_rollup_max_active_outbox_levels, + sc_rollup_max_outbox_messages_per_level, + sc_rollup_number_of_sections_in_dissection ), + sc_rollup_timeout_period_in_blocks ) -> { enable = sc_rollup_enable; origination_size = sc_rollup_origination_size; @@ -261,18 +264,21 @@ let sc_rollup_encoding = max_outbox_messages_per_level = sc_rollup_max_outbox_messages_per_level; number_of_sections_in_dissection = sc_rollup_number_of_sections_in_dissection; + timeout_period_in_blocks = sc_rollup_timeout_period_in_blocks; }) - (obj10 - (req "sc_rollup_enable" bool) - (req "sc_rollup_origination_size" int31) - (req "sc_rollup_challenge_window_in_blocks" int31) - (req "sc_rollup_max_number_of_messages_per_commitment_period" int31) - (req "sc_rollup_stake_amount" Tez_repr.encoding) - (req "sc_rollup_commitment_period_in_blocks" int31) - (req "sc_rollup_max_lookahead_in_blocks" int32) - (req "sc_rollup_max_active_outbox_levels" int32) - (req "sc_rollup_max_outbox_messages_per_level" int31) - (req "sc_rollup_number_of_sections_in_dissection" uint8)) + (merge_objs + (obj10 + (req "sc_rollup_enable" bool) + (req "sc_rollup_origination_size" int31) + (req "sc_rollup_challenge_window_in_blocks" int31) + (req "sc_rollup_max_number_of_messages_per_commitment_period" int31) + (req "sc_rollup_stake_amount" Tez_repr.encoding) + (req "sc_rollup_commitment_period_in_blocks" int31) + (req "sc_rollup_max_lookahead_in_blocks" int32) + (req "sc_rollup_max_active_outbox_levels" int32) + (req "sc_rollup_max_outbox_messages_per_level" int31) + (req "sc_rollup_number_of_sections_in_dissection" uint8)) + (obj1 (req "sc_rollup_timeout_period_in_blocks" int31))) let encoding = let open Data_encoding in diff --git a/src/proto_alpha/lib_protocol/constants_parametric_repr.mli b/src/proto_alpha/lib_protocol/constants_parametric_repr.mli index fd84d92a3b28..20db61d4065f 100644 --- a/src/proto_alpha/lib_protocol/constants_parametric_repr.mli +++ b/src/proto_alpha/lib_protocol/constants_parametric_repr.mli @@ -102,6 +102,8 @@ type sc_rollup = { max_outbox_messages_per_level : int; (* The default number of required sections in a dissection *) number_of_sections_in_dissection : int; + (* The timeout period for a player in a refutation game. *) + timeout_period_in_blocks : int; } type t = { diff --git a/src/proto_alpha/lib_protocol/constants_storage.ml b/src/proto_alpha/lib_protocol/constants_storage.ml index a42b66b2d340..a96be08e0fdf 100644 --- a/src/proto_alpha/lib_protocol/constants_storage.ml +++ b/src/proto_alpha/lib_protocol/constants_storage.ml @@ -266,6 +266,10 @@ let sc_rollup_number_of_sections_in_dissection c = let sc_rollup = Raw_context.sc_rollup c in sc_rollup.number_of_sections_in_dissection +let sc_rollup_timeout_period_in_blocks c = + let sc_rollup = Raw_context.sc_rollup c in + sc_rollup.timeout_period_in_blocks + let dal_number_of_slots c = let constants = Raw_context.constants c in constants.dal.number_of_slots diff --git a/src/proto_alpha/lib_protocol/constants_storage.mli b/src/proto_alpha/lib_protocol/constants_storage.mli index e37e0c6c668c..c3a61e17b42b 100644 --- a/src/proto_alpha/lib_protocol/constants_storage.mli +++ b/src/proto_alpha/lib_protocol/constants_storage.mli @@ -156,6 +156,8 @@ val sc_rollup_max_outbox_messages_per_level : Raw_context.t -> int val sc_rollup_number_of_sections_in_dissection : Raw_context.t -> int +val sc_rollup_timeout_period_in_blocks : Raw_context.t -> int + val dal_number_of_slots : Raw_context.t -> int val dal_enable : Raw_context.t -> bool diff --git a/src/proto_alpha/lib_protocol/raw_context.ml b/src/proto_alpha/lib_protocol/raw_context.ml index d74517cc48f6..ea31adb4362a 100644 --- a/src/proto_alpha/lib_protocol/raw_context.ml +++ b/src/proto_alpha/lib_protocol/raw_context.ml @@ -1001,6 +1001,9 @@ let prepare_first_block ~level ~timestamp ctxt = max_outbox_messages_per_level = 100; (* The default number of required sections in a dissection *) number_of_sections_in_dissection = 32; + (* TODO: https://gitlab.com/tezos/tezos/-/issues/2902 + This constant needs to be refined. *) + timeout_period_in_blocks = 500; }; } in diff --git a/tests_python/tests_alpha/test_mockup.py b/tests_python/tests_alpha/test_mockup.py index a8d6250f1c38..8d044c9b6e2f 100644 --- a/tests_python/tests_alpha/test_mockup.py +++ b/tests_python/tests_alpha/test_mockup.py @@ -690,6 +690,7 @@ def _test_create_mockup_init_show_roundtrip( "sc_rollup_max_active_outbox_levels": 20_160, "sc_rollup_max_outbox_messages_per_level": 100, "sc_rollup_number_of_sections_in_dissection": 32, + "sc_rollup_timeout_period_in_blocks": 500, } ), ], 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 8bb06fa232e8..592204b4ab1b 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 @@ -56,7 +56,8 @@ "sc_rollup_max_lookahead_in_blocks": 30000, "sc_rollup_max_active_outbox_levels": 20160, "sc_rollup_max_outbox_messages_per_level": 100, - "sc_rollup_number_of_sections_in_dissection": 32 } + "sc_rollup_number_of_sections_in_dissection": 32, + "sc_rollup_timeout_period_in_blocks": 500 } ./tezos-client rpc get /chains/main/blocks/head/helpers/baking_rights [ { "level": 2, "delegate": "[PUBLIC_KEY_HASH]", 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 e79106ea10d7..ddc95657fe51 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 @@ -56,7 +56,8 @@ "sc_rollup_max_lookahead_in_blocks": 30000, "sc_rollup_max_active_outbox_levels": 20160, "sc_rollup_max_outbox_messages_per_level": 100, - "sc_rollup_number_of_sections_in_dissection": 32 } + "sc_rollup_number_of_sections_in_dissection": 32, + "sc_rollup_timeout_period_in_blocks": 500 } protocol of light mode unspecified, using the node's protocol: ProtoGenesisGenesisGenesisGenesisGenesisGenesk612im ./tezos-client --mode light rpc get /chains/main/blocks/head/helpers/baking_rights 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 60223bc48a6e..39218ad60032 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 @@ -56,7 +56,8 @@ "sc_rollup_max_lookahead_in_blocks": 30000, "sc_rollup_max_active_outbox_levels": 20160, "sc_rollup_max_outbox_messages_per_level": 100, - "sc_rollup_number_of_sections_in_dissection": 32 } + "sc_rollup_number_of_sections_in_dissection": 32, + "sc_rollup_timeout_period_in_blocks": 500 } protocol of proxy unspecified, using the node's protocol: ProtoGenesisGenesisGenesisGenesisGenesisGenesk612im ./tezos-client --mode proxy rpc get /chains/main/blocks/head/helpers/baking_rights 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 6c3c046402c0..93e40a2d8d1c 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 @@ -56,7 +56,8 @@ "sc_rollup_max_lookahead_in_blocks": 30000, "sc_rollup_max_active_outbox_levels": 20160, "sc_rollup_max_outbox_messages_per_level": 100, - "sc_rollup_number_of_sections_in_dissection": 32 } + "sc_rollup_number_of_sections_in_dissection": 32, + "sc_rollup_timeout_period_in_blocks": 500 } ./tezos-client rpc get /chains/main/blocks/head/helpers/baking_rights [ { "level": 3, "delegate": "[PUBLIC_KEY_HASH]", 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 6c3c046402c0..93e40a2d8d1c 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 @@ -56,7 +56,8 @@ "sc_rollup_max_lookahead_in_blocks": 30000, "sc_rollup_max_active_outbox_levels": 20160, "sc_rollup_max_outbox_messages_per_level": 100, - "sc_rollup_number_of_sections_in_dissection": 32 } + "sc_rollup_number_of_sections_in_dissection": 32, + "sc_rollup_timeout_period_in_blocks": 500 } ./tezos-client rpc get /chains/main/blocks/head/helpers/baking_rights [ { "level": 3, "delegate": "[PUBLIC_KEY_HASH]", diff --git a/tezt/tests/expected/sc_rollup.ml/Alpha- observing the correct handling of commitments in the rollup node (no_comm.out b/tezt/tests/expected/sc_rollup.ml/Alpha- observing the correct handling of commitments in the rollup node (no_comm.out index 457ef5dc9c0d..78a69672aeef 100644 --- a/tezt/tests/expected/sc_rollup.ml/Alpha- observing the correct handling of commitments in the rollup node (no_comm.out +++ b/tezt/tests/expected/sc_rollup.ml/Alpha- observing the correct handling of commitments in the rollup node (no_comm.out @@ -110,7 +110,8 @@ This sequence of operations was run: "sc_rollup_max_lookahead_in_blocks": 30000, "sc_rollup_max_active_outbox_levels": 20160, "sc_rollup_max_outbox_messages_per_level": 100, - "sc_rollup_number_of_sections_in_dissection": 32 } + "sc_rollup_number_of_sections_in_dissection": 32, + "sc_rollup_timeout_period_in_blocks": 500 } ./tezos-client --wait none recover bond of '[PUBLIC_KEY_HASH]' for sc rollup '[SC_ROLLUP_HASH]' --fee 1 Node is bootstrapped. @@ -213,7 +214,8 @@ This sequence of operations was run: "sc_rollup_max_lookahead_in_blocks": 30000, "sc_rollup_max_active_outbox_levels": 20160, "sc_rollup_max_outbox_messages_per_level": 100, - "sc_rollup_number_of_sections_in_dissection": 32 } + "sc_rollup_number_of_sections_in_dissection": 32, + "sc_rollup_timeout_period_in_blocks": 500 } ./tezos-client --wait none recover bond of '[PUBLIC_KEY_HASH]' for sc rollup '[SC_ROLLUP_HASH]' --fee 1 Node is bootstrapped. -- GitLab From 918159f8a9b761baa08df255a7e56bf8915e7714 Mon Sep 17 00:00:00 2001 From: Valentin Chaboche Date: Mon, 4 Jul 2022 10:26:38 +0200 Subject: [PATCH 2/3] Scoru,Proto: use protocol constant --- .../lib_protocol/sc_rollup_refutation_storage.ml | 6 +++--- .../lib_protocol/sc_rollup_refutation_storage.mli | 7 ++----- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/proto_alpha/lib_protocol/sc_rollup_refutation_storage.ml b/src/proto_alpha/lib_protocol/sc_rollup_refutation_storage.ml index 9f9e4570e575..39719aa13323 100644 --- a/src/proto_alpha/lib_protocol/sc_rollup_refutation_storage.ml +++ b/src/proto_alpha/lib_protocol/sc_rollup_refutation_storage.ml @@ -38,11 +38,11 @@ type point = { type conflict_point = point * point -(** TODO: #2902 replace with protocol constant and consider good value. *) -let timeout_period_in_blocks = 500 - let timeout_level ctxt = let level = Raw_context.current_level ctxt in + let timeout_period_in_blocks = + Constants_storage.sc_rollup_timeout_period_in_blocks ctxt + in Raw_level_repr.add level.level timeout_period_in_blocks let get_ongoing_game ctxt rollup staker1 staker2 = diff --git a/src/proto_alpha/lib_protocol/sc_rollup_refutation_storage.mli b/src/proto_alpha/lib_protocol/sc_rollup_refutation_storage.mli index 084dbe6a66d8..db19144362b6 100644 --- a/src/proto_alpha/lib_protocol/sc_rollup_refutation_storage.mli +++ b/src/proto_alpha/lib_protocol/sc_rollup_refutation_storage.mli @@ -122,15 +122,12 @@ val game_move : Sc_rollup_game_repr.refutation -> (Sc_rollup_game_repr.outcome option * Raw_context.t) tzresult Lwt.t -(* TODO: #2902 update reference to timeout period in doc-string *) - (** [timeout ctxt rollup stakers] checks that the timeout has elapsed and if this function returns a game outcome that punishes whichever of [stakers] is supposed to have played a move. - The timeout period is currently defined in - [timeout_period_in_blocks]. This should become a protocol constant - soon. + The timeout period is defined a protocol constant, see + {!Constants_storage.sc_rollup_timeout_period_in_blocks}. May fail with: {ul -- GitLab From b344012a4ae7c8c319caf03991af7d11f8787f30 Mon Sep 17 00:00:00 2001 From: Valentin Chaboche Date: Mon, 4 Jul 2022 10:30:46 +0200 Subject: [PATCH 3/3] Scoru,Proto: use same period for challenge window and timeout --- src/proto_alpha/lib_parameters/default_parameters.ml | 7 +++++-- src/proto_alpha/lib_protocol/raw_context.ml | 2 +- tests_python/tests_alpha/test_mockup.py | 2 +- ...- (mode client) RPC regression tests- misc_protocol.out | 2 +- ...a- (mode light) RPC regression tests- misc_protocol.out | 2 +- ...a- (mode proxy) RPC regression tests- misc_protocol.out | 2 +- ...erver_data_dir) RPC regression tests- misc_protocol.out | 2 +- ...oxy_server_rpc) RPC regression tests- misc_protocol.out | 2 +- ...handling of commitments in the rollup node (no_comm.out | 4 ++-- 9 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/proto_alpha/lib_parameters/default_parameters.ml b/src/proto_alpha/lib_parameters/default_parameters.ml index 0de785fb3801..458df999709a 100644 --- a/src/proto_alpha/lib_parameters/default_parameters.ml +++ b/src/proto_alpha/lib_parameters/default_parameters.ml @@ -48,12 +48,15 @@ let sc_rollup_max_active_outbox_levels = pay for at origination time. *) let sc_rollup_max_outbox_messages_per_level = 100 -(** The timeout period in blocks is about 4h with 30s block-time (15000s / 30s). +(** The timeout period is about a week with 30s block-time (604800s / 30s). + + It suffers from the same risk of censorship as + {!sc_rollup_challenge_windows_in_blocks} so we use the same value. TODO: https://gitlab.com/tezos/tezos/-/issues/2902 This constant needs to be refined. *) -let sc_rollup_timeout_period_in_blocks = 500 +let sc_rollup_timeout_period_in_blocks = 20_160 (* DAL/FIXME https://gitlab.com/tezos/tezos/-/issues/3177 diff --git a/src/proto_alpha/lib_protocol/raw_context.ml b/src/proto_alpha/lib_protocol/raw_context.ml index ea31adb4362a..28af84754b98 100644 --- a/src/proto_alpha/lib_protocol/raw_context.ml +++ b/src/proto_alpha/lib_protocol/raw_context.ml @@ -1003,7 +1003,7 @@ let prepare_first_block ~level ~timestamp ctxt = number_of_sections_in_dissection = 32; (* TODO: https://gitlab.com/tezos/tezos/-/issues/2902 This constant needs to be refined. *) - timeout_period_in_blocks = 500; + timeout_period_in_blocks = 20_160; }; } in diff --git a/tests_python/tests_alpha/test_mockup.py b/tests_python/tests_alpha/test_mockup.py index 8d044c9b6e2f..77081d14eef5 100644 --- a/tests_python/tests_alpha/test_mockup.py +++ b/tests_python/tests_alpha/test_mockup.py @@ -690,7 +690,7 @@ def _test_create_mockup_init_show_roundtrip( "sc_rollup_max_active_outbox_levels": 20_160, "sc_rollup_max_outbox_messages_per_level": 100, "sc_rollup_number_of_sections_in_dissection": 32, - "sc_rollup_timeout_period_in_blocks": 500, + "sc_rollup_timeout_period_in_blocks": 20_160, } ), ], 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 592204b4ab1b..b5678a51111b 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 @@ -57,7 +57,7 @@ "sc_rollup_max_active_outbox_levels": 20160, "sc_rollup_max_outbox_messages_per_level": 100, "sc_rollup_number_of_sections_in_dissection": 32, - "sc_rollup_timeout_period_in_blocks": 500 } + "sc_rollup_timeout_period_in_blocks": 20160 } ./tezos-client rpc get /chains/main/blocks/head/helpers/baking_rights [ { "level": 2, "delegate": "[PUBLIC_KEY_HASH]", 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 ddc95657fe51..bdc8e1ec5f6f 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 @@ -57,7 +57,7 @@ "sc_rollup_max_active_outbox_levels": 20160, "sc_rollup_max_outbox_messages_per_level": 100, "sc_rollup_number_of_sections_in_dissection": 32, - "sc_rollup_timeout_period_in_blocks": 500 } + "sc_rollup_timeout_period_in_blocks": 20160 } protocol of light mode unspecified, using the node's protocol: ProtoGenesisGenesisGenesisGenesisGenesisGenesk612im ./tezos-client --mode light rpc get /chains/main/blocks/head/helpers/baking_rights 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 39218ad60032..34da8ea04e0b 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 @@ -57,7 +57,7 @@ "sc_rollup_max_active_outbox_levels": 20160, "sc_rollup_max_outbox_messages_per_level": 100, "sc_rollup_number_of_sections_in_dissection": 32, - "sc_rollup_timeout_period_in_blocks": 500 } + "sc_rollup_timeout_period_in_blocks": 20160 } protocol of proxy unspecified, using the node's protocol: ProtoGenesisGenesisGenesisGenesisGenesisGenesk612im ./tezos-client --mode proxy rpc get /chains/main/blocks/head/helpers/baking_rights 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 93e40a2d8d1c..7bda44283143 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 @@ -57,7 +57,7 @@ "sc_rollup_max_active_outbox_levels": 20160, "sc_rollup_max_outbox_messages_per_level": 100, "sc_rollup_number_of_sections_in_dissection": 32, - "sc_rollup_timeout_period_in_blocks": 500 } + "sc_rollup_timeout_period_in_blocks": 20160 } ./tezos-client rpc get /chains/main/blocks/head/helpers/baking_rights [ { "level": 3, "delegate": "[PUBLIC_KEY_HASH]", 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 93e40a2d8d1c..7bda44283143 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 @@ -57,7 +57,7 @@ "sc_rollup_max_active_outbox_levels": 20160, "sc_rollup_max_outbox_messages_per_level": 100, "sc_rollup_number_of_sections_in_dissection": 32, - "sc_rollup_timeout_period_in_blocks": 500 } + "sc_rollup_timeout_period_in_blocks": 20160 } ./tezos-client rpc get /chains/main/blocks/head/helpers/baking_rights [ { "level": 3, "delegate": "[PUBLIC_KEY_HASH]", diff --git a/tezt/tests/expected/sc_rollup.ml/Alpha- observing the correct handling of commitments in the rollup node (no_comm.out b/tezt/tests/expected/sc_rollup.ml/Alpha- observing the correct handling of commitments in the rollup node (no_comm.out index 78a69672aeef..18695bb7f3bc 100644 --- a/tezt/tests/expected/sc_rollup.ml/Alpha- observing the correct handling of commitments in the rollup node (no_comm.out +++ b/tezt/tests/expected/sc_rollup.ml/Alpha- observing the correct handling of commitments in the rollup node (no_comm.out @@ -111,7 +111,7 @@ This sequence of operations was run: "sc_rollup_max_active_outbox_levels": 20160, "sc_rollup_max_outbox_messages_per_level": 100, "sc_rollup_number_of_sections_in_dissection": 32, - "sc_rollup_timeout_period_in_blocks": 500 } + "sc_rollup_timeout_period_in_blocks": 20160 } ./tezos-client --wait none recover bond of '[PUBLIC_KEY_HASH]' for sc rollup '[SC_ROLLUP_HASH]' --fee 1 Node is bootstrapped. @@ -215,7 +215,7 @@ This sequence of operations was run: "sc_rollup_max_active_outbox_levels": 20160, "sc_rollup_max_outbox_messages_per_level": 100, "sc_rollup_number_of_sections_in_dissection": 32, - "sc_rollup_timeout_period_in_blocks": 500 } + "sc_rollup_timeout_period_in_blocks": 20160 } ./tezos-client --wait none recover bond of '[PUBLIC_KEY_HASH]' for sc rollup '[SC_ROLLUP_HASH]' --fee 1 Node is bootstrapped. -- GitLab