diff --git a/src/proto_alpha/lib_client/mockup.ml b/src/proto_alpha/lib_client/mockup.ml index b851e9a461ecc28968d2e301f5e9ca74b6551185..ab25cf4efe92ad9ca6b15af7693a56173c931829 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 2873fa294e6227e6e25fc23e7d75cc2b5b34fb54..458df999709af3bd11428a1579868c2e078cb78d 100644 --- a/src/proto_alpha/lib_parameters/default_parameters.ml +++ b/src/proto_alpha/lib_parameters/default_parameters.ml @@ -48,6 +48,16 @@ let sc_rollup_max_active_outbox_levels = pay for at origination time. *) let sc_rollup_max_outbox_messages_per_level = 100 +(** 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 = 20_160 + (* DAL/FIXME https://gitlab.com/tezos/tezos/-/issues/3177 Think harder about those values. *) @@ -212,6 +222,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 b3296fb5c60e14828252b3b92ccfe5f3bf229ba5..b4aa6f4b162c8d7d834e8a6572340316c0fbd9cb 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 208eae3ed63ddd47871d11d35dbd7dbc2ca83dca..5a5515761ba283c88ae4097d840058ad28bbddb3 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 fd84d92a3b28e409a4215de51eefde01f2be6622..20db61d4065f4b3b59a739e2f81d83d402cd9173 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 a42b66b2d3408e9c18d5851dea3439c3e7cac1ed..a96be08e0fdfb653043af25ecd6ad120571c3998 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 e37e0c6c668c6f5fb16e50a1fd1cbca13fcd89c2..c3a61e17b42b671f67a335498e806feb6ca595e6 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 d74517cc48f6f6d99a325184b78b7473bb1c3c82..28af84754b98d8a202203a5a273bda68755ca7f4 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 = 20_160; }; } in 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 9f9e4570e5755d91636ac8e71b5f6dfcbe376b89..39719aa133231a439b1fdd4ce0ad602a2af766b5 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 084dbe6a66d84af5c58ec6f8ff17d23bb464c3e1..db19144362b6a371330898f14fe10501515b75f2 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 diff --git a/tests_python/tests_alpha/test_mockup.py b/tests_python/tests_alpha/test_mockup.py index a8d6250f1c38227d4da01d3a15c64d2f7b475019..77081d14eef53f387bedcb8b54e2ef1a4e81c59c 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": 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 8bb06fa232e8e219ede00be368966c1d83843e54..b5678a51111b6ae25b5eb0aeda8396971c5c3e78 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": 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 e79106ea10d75da72e15227961c0b0898ae83d67..bdc8e1ec5f6f246dede1f4cabc56964ebff9ca67 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": 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 60223bc48a6e0c6ed9489100d9cd6b1ba5c51bd1..34da8ea04e0b26949e489c90163bf69d92fa2514 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": 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 6c3c046402c099323426ba437ce31e8cb94af9ed..7bda4428314352016127a0556febe6348ee96c08 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": 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 6c3c046402c099323426ba437ce31e8cb94af9ed..7bda4428314352016127a0556febe6348ee96c08 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": 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 457ef5dc9c0d7e0c5e548afb36c4b954267b0e47..18695bb7f3bce050dba92913e8b8412916317127 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": 20160 } ./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": 20160 } ./tezos-client --wait none recover bond of '[PUBLIC_KEY_HASH]' for sc rollup '[SC_ROLLUP_HASH]' --fee 1 Node is bootstrapped.