From 8e97d91c48c41f6beca050e64942316dec8f9270 Mon Sep 17 00:00:00 2001 From: "iguerNL@Functori" Date: Wed, 4 Jan 2023 16:36:37 +0100 Subject: [PATCH 1/5] Dal/Node: rename RPC POST /slots to POST /commitments --- src/bin_dal_node/RPC_server.ml | 8 ++++---- src/bin_dal_node/slot_manager.ml | 2 +- src/bin_dal_node/slot_manager.mli | 8 ++++---- src/lib_dal_node_services/services.ml | 4 ++-- src/lib_dal_node_services/services.mli | 4 ++-- tezt/lib_tezos/rollup.ml | 6 +++--- tezt/lib_tezos/rollup.mli | 6 +++--- tezt/tests/dal.ml | 26 ++++++++++++++++---------- 8 files changed, 35 insertions(+), 29 deletions(-) diff --git a/src/bin_dal_node/RPC_server.ml b/src/bin_dal_node/RPC_server.ml index 6988c994b760..527141c59a47 100644 --- a/src/bin_dal_node/RPC_server.ml +++ b/src/bin_dal_node/RPC_server.ml @@ -34,8 +34,8 @@ module Slots_handlers = struct let store = Node_context.get_store ctxt in handler store cryptobox - let post_slots ctxt () slot = - call_handler (fun store -> Slot_manager.add_slots store slot) ctxt + let post_commitment ctxt () slot = + call_handler (fun store -> Slot_manager.add_commitment store slot) ctxt let patch_slot ctxt commitment () slot_id = call_handler @@ -120,8 +120,8 @@ let register_new : directory |> add_service Tezos_rpc.Directory.register0 - Services.post_slots - (Slots_handlers.post_slots ctxt) + Services.post_commitment + (Slots_handlers.post_commitment ctxt) |> add_service Tezos_rpc.Directory.opt_register1 Services.patch_slot diff --git a/src/bin_dal_node/slot_manager.ml b/src/bin_dal_node/slot_manager.ml index 3c677c05b29d..1eb4a1bf1a7b 100644 --- a/src/bin_dal_node/slot_manager.ml +++ b/src/bin_dal_node/slot_manager.ml @@ -66,7 +66,7 @@ let commitment_should_exist node_store cryptobox commitment = (* Main functions *) -let add_slots node_store slot cryptobox = +let add_commitment node_store slot cryptobox = let open Lwt_result_syntax in let*? polynomial = polynomial_from_slot cryptobox slot in let commitment = Cryptobox.commit cryptobox polynomial in diff --git a/src/bin_dal_node/slot_manager.mli b/src/bin_dal_node/slot_manager.mli index 2e2015fb9b0e..384ac3c3609e 100644 --- a/src/bin_dal_node/slot_manager.mli +++ b/src/bin_dal_node/slot_manager.mli @@ -31,15 +31,15 @@ include module type of Slot_manager_legacy type error += Invalid_slot_size of {provided : int; expected : int} -(** [add_slots node_store slot cryptobox] computes the given [slot]'s commitment - and adds the association "commitment -> slot" in the DAL's [node_store] if - the commitment is not already bound to some data. +(** [add_commitment node_store slot cryptobox] computes the given [slot]'s + commitment and adds the association "commitment -> slot" in the DAL's + [node_store] if the commitment is not already bound to some data. The function returns an error {!ref:Invalid_slot_size} if the [slot]'s size doesn't match the expected slots' size given in [cryptobox], or the [slot]'s commitment otherwise. *) -val add_slots : +val add_commitment : Store.node_store -> Cryptobox.slot -> Cryptobox.t -> diff --git a/src/lib_dal_node_services/services.ml b/src/lib_dal_node_services/services.ml index 477f2c75c805..436d0663c3f4 100644 --- a/src/lib_dal_node_services/services.ml +++ b/src/lib_dal_node_services/services.ml @@ -150,7 +150,7 @@ module Types = struct |> seal end -let post_slots : +let post_commitment : < meth : [`POST] ; input : Cryptobox.slot ; output : Cryptobox.commitment @@ -165,7 +165,7 @@ let post_slots : ~query:Tezos_rpc.Query.empty ~input:Types.slot_encoding ~output:Cryptobox.Commitment.encoding - Tezos_rpc.Path.(open_root / "slots") + Tezos_rpc.Path.(open_root / "commitments") let patch_slot : < meth : [`PATCH] diff --git a/src/lib_dal_node_services/services.mli b/src/lib_dal_node_services/services.mli index 0d066c8a1c0e..423991a18ae9 100644 --- a/src/lib_dal_node_services/services.mli +++ b/src/lib_dal_node_services/services.mli @@ -92,8 +92,8 @@ end (** Add the given slot in the node if not already present. The corresponding commitment is returned. See {!val: - Slot_manager.add_slot} for more details. *) -val post_slots : + Slot_manager.add_commitments} for more details. *) +val post_commitment : < meth : [`POST] ; input : Cryptobox.slot ; output : Cryptobox.commitment diff --git a/tezt/lib_tezos/rollup.ml b/tezt/lib_tezos/rollup.ml index 82b7857df072..c9bfaf6232ef 100644 --- a/tezt/lib_tezos/rollup.ml +++ b/tezt/lib_tezos/rollup.ml @@ -707,14 +707,14 @@ module Dal = struct | [] -> () | _ -> JSON.error t "Not an empty object" - let post_slot slot = + let post_commitment slot = let slot = JSON.parse - ~origin:"Rollup.RPC.post_slots" + ~origin:"Rollup.RPC.post_commitments" (encode_bytes_to_hex_string slot) in let data : RPC_core.data = Data (JSON.unannotate slot) in - make ~data POST ["slots"] JSON.as_string + make ~data POST ["commitments"] JSON.as_string let patch_slot commitment ~slot_level ~slot_index = let data : RPC_core.data = diff --git a/tezt/lib_tezos/rollup.mli b/tezt/lib_tezos/rollup.mli index 245d443499f9..9fe819d0e54b 100644 --- a/tezt/lib_tezos/rollup.mli +++ b/tezt/lib_tezos/rollup.mli @@ -313,9 +313,9 @@ module Dal : sig the input (and output) is expected to be a list. *) val slot_headers_of_json : JSON.t -> slot_header list - (** Call RPC "POST /slots" to store a slot and retrun the commitment in case - of success. *) - val post_slot : slot -> (Dal_node.t, commitment) RPC_core.t + (** Call RPC "POST /commitments" to store a slot and retrun the commitment + in case of success. *) + val post_commitment : slot -> (Dal_node.t, commitment) RPC_core.t (** Call RPC "PATCH /slots" to associate the given level and index to the slot whose commitment is given. *) diff --git a/tezt/tests/dal.ml b/tezt/tests/dal.ml index 851e6d897c0a..f3d0299fa9d4 100644 --- a/tezt/tests/dal.ml +++ b/tezt/tests/dal.ml @@ -1151,13 +1151,15 @@ let commitment_of_slot cryptobox slot = in Cryptobox.commit cryptobox polynomial -let test_dal_node_test_post_slots _protocol parameters cryptobox _node client - dal_node = +let test_dal_node_test_post_commitments _protocol parameters cryptobox _node + client dal_node = let mk_slot size = Rollup.Dal.make_slot ~padding:false (generate_dummy_slot size) client in let failing_post_slot_rpc slot = - let* response = RPC.call_raw dal_node @@ Rollup.Dal.RPC.post_slot slot in + let* response = + RPC.call_raw dal_node @@ Rollup.Dal.RPC.post_commitment slot + in return @@ RPC.check_string_response ~body_rex:"dal.node.invalid_slot_size" @@ -1170,8 +1172,12 @@ let test_dal_node_test_post_slots _protocol parameters cryptobox _node client let* slot_ok = mk_slot size in let* () = failing_post_slot_rpc slot_big in let* () = failing_post_slot_rpc slot_small in - let* commitment1 = RPC.call dal_node (Rollup.Dal.RPC.post_slot slot_ok) in - let* commitment2 = RPC.call dal_node (Rollup.Dal.RPC.post_slot slot_ok) in + let* commitment1 = + RPC.call dal_node (Rollup.Dal.RPC.post_commitment slot_ok) + in + let* commitment2 = + RPC.call dal_node (Rollup.Dal.RPC.post_commitment slot_ok) + in (* TODO/DAL: https://gitlab.com/tezos/tezos/-/issues/4250 The second RPC call above succeeeds, but the (untested) returned HTTP status should likely be 200 and 201 in the first similar RPC call. @@ -1206,7 +1212,7 @@ let test_dal_node_test_patch_slots _protocol parameters cryptobox _node client Cryptobox.Commitment.to_b58check @@ commitment_of_slot cryptobox slot in let* () = failing_patch_slot_rpc commitment ~slot_level:0 ~slot_index:0 in - let* commitment' = RPC.call dal_node (Rollup.Dal.RPC.post_slot slot) in + let* commitment' = RPC.call dal_node (Rollup.Dal.RPC.post_commitment slot) in Check.(commitment' = commitment) Check.string ~error_msg: @@ -1233,7 +1239,7 @@ let test_dal_node_test_get_slots _protocol parameters cryptobox _node client let* response = RPC.call_raw dal_node @@ Rollup.Dal.RPC.get_slot commit in return @@ RPC.check_string_response ~code:404 response in - let* _commitment = RPC.call dal_node (Rollup.Dal.RPC.post_slot slot) in + let* _commitment = RPC.call dal_node (Rollup.Dal.RPC.post_commitment slot) in (* commit = _commitment already test in /POST test. *) let* got_slot = RPC.call dal_node (Rollup.Dal.RPC.get_slot commit) in Check.(Rollup.Dal.content_of_slot slot = Rollup.Dal.content_of_slot got_slot) @@ -1247,7 +1253,7 @@ let test_dal_node_test_get_slot_proof _protocol parameters cryptobox _node client dal_node = let size = parameters.Rollup.Dal.Parameters.cryptobox.slot_size in let* slot = Rollup.Dal.make_slot (generate_dummy_slot size) client in - let* commitment = RPC.call dal_node (Rollup.Dal.RPC.post_slot slot) in + let* commitment = RPC.call dal_node (Rollup.Dal.RPC.post_commitment slot) in let* proof = RPC.call dal_node (Rollup.Dal.RPC.get_slot_proof commitment) in let _, expected_proof = Rollup.Dal.Commitment.dummy_commitment cryptobox (generate_dummy_slot size) @@ -1904,8 +1910,8 @@ let register ~protocols = test_dal_node_test_slots_propagation protocols ; scenario_with_layer1_and_dal_nodes - "dal node POST /slots" - test_dal_node_test_post_slots + "dal node POST /commitments" + test_dal_node_test_post_commitments protocols ; scenario_with_layer1_and_dal_nodes "dal node PATCH /slots" -- GitLab From 3ba44d51cda681d17fa9c805f77cd50ecc8ecd38 Mon Sep 17 00:00:00 2001 From: "iguerNL@Functori" Date: Wed, 4 Jan 2023 16:56:01 +0100 Subject: [PATCH 2/5] Dal/Node: rename RPC PATCH /slots to PATCH /commitments --- src/bin_dal_node/RPC_server.ml | 14 ++++++++++---- src/bin_dal_node/slot_manager.ml | 2 +- src/bin_dal_node/slot_manager.mli | 10 +++++----- src/lib_dal_node_services/services.ml | 4 ++-- src/lib_dal_node_services/services.mli | 6 +++--- tezt/lib_tezos/rollup.ml | 4 ++-- tezt/lib_tezos/rollup.mli | 4 ++-- tezt/tests/dal.ml | 12 ++++++------ 8 files changed, 31 insertions(+), 25 deletions(-) diff --git a/src/bin_dal_node/RPC_server.ml b/src/bin_dal_node/RPC_server.ml index 527141c59a47..f494d41cb8fe 100644 --- a/src/bin_dal_node/RPC_server.ml +++ b/src/bin_dal_node/RPC_server.ml @@ -37,11 +37,17 @@ module Slots_handlers = struct let post_commitment ctxt () slot = call_handler (fun store -> Slot_manager.add_commitment store slot) ctxt - let patch_slot ctxt commitment () slot_id = + let patch_commitment ctxt commitment () slot_id = call_handler (fun store cryptobox -> let open Lwt_result_syntax in - let*! r = Slot_manager.add_slot_id store cryptobox commitment slot_id in + let*! r = + Slot_manager.associate_slot_id_with_commitment + store + cryptobox + commitment + slot_id + in match r with Ok () -> return_some () | Error `Not_found -> return_none) ctxt @@ -124,8 +130,8 @@ let register_new : (Slots_handlers.post_commitment ctxt) |> add_service Tezos_rpc.Directory.opt_register1 - Services.patch_slot - (Slots_handlers.patch_slot ctxt) + Services.patch_commitment + (Slots_handlers.patch_commitment ctxt) |> add_service Tezos_rpc.Directory.opt_register1 Services.get_slot diff --git a/src/bin_dal_node/slot_manager.ml b/src/bin_dal_node/slot_manager.ml index 1eb4a1bf1a7b..95f557fe58cb 100644 --- a/src/bin_dal_node/slot_manager.ml +++ b/src/bin_dal_node/slot_manager.ml @@ -80,7 +80,7 @@ let add_commitment node_store slot cryptobox = in return commitment -let add_slot_id node_store cryptobox commitment slot_id = +let associate_slot_id_with_commitment node_store cryptobox commitment slot_id = let open Lwt_result_syntax in let* () = commitment_should_exist node_store cryptobox commitment in let*! () = diff --git a/src/bin_dal_node/slot_manager.mli b/src/bin_dal_node/slot_manager.mli index 384ac3c3609e..3fb454f536c9 100644 --- a/src/bin_dal_node/slot_manager.mli +++ b/src/bin_dal_node/slot_manager.mli @@ -45,12 +45,12 @@ val add_commitment : Cryptobox.t -> Cryptobox.commitment tzresult Lwt.t -(** [add_slot_id node_tore cryptobox commitment slot_id] associates a [slot_id] to a - [commitment] in [node_store]. The function returns [Error `Not_found] if - there is no entry for [commitment] in [node_store]. Otherwise, [Ok ()] is - returned. +(** [associate_slot_id_with_commitment node_store cryptobox commitment slot_id] + associates a [slot_id] to a [commitment] in [node_store]. The function + returns [Error `Not_found] if there is no entry for [commitment] in + [node_store]. Otherwise, [Ok ()] is returned. *) -val add_slot_id : +val associate_slot_id_with_commitment : Store.node_store -> Cryptobox.t -> Cryptobox.commitment -> diff --git a/src/lib_dal_node_services/services.ml b/src/lib_dal_node_services/services.ml index 436d0663c3f4..17cbe1f2ae98 100644 --- a/src/lib_dal_node_services/services.ml +++ b/src/lib_dal_node_services/services.ml @@ -167,7 +167,7 @@ let post_commitment : ~output:Cryptobox.Commitment.encoding Tezos_rpc.Path.(open_root / "commitments") -let patch_slot : +let patch_commitment : < meth : [`PATCH] ; input : Types.slot_id ; output : unit @@ -180,7 +180,7 @@ let patch_slot : ~query:Tezos_rpc.Query.empty ~input:Types.slot_id_encoding ~output:Data_encoding.unit - Tezos_rpc.Path.(open_root / "slots" /: Cryptobox.Commitment.rpc_arg) + Tezos_rpc.Path.(open_root / "commitments" /: Cryptobox.Commitment.rpc_arg) let get_slot : < meth : [`GET] diff --git a/src/lib_dal_node_services/services.mli b/src/lib_dal_node_services/services.mli index 423991a18ae9..29ecbb0c2457 100644 --- a/src/lib_dal_node_services/services.mli +++ b/src/lib_dal_node_services/services.mli @@ -92,7 +92,7 @@ end (** Add the given slot in the node if not already present. The corresponding commitment is returned. See {!val: - Slot_manager.add_commitments} for more details. *) + Slot_manager.add_commitment} for more details. *) val post_commitment : < meth : [`POST] ; input : Cryptobox.slot @@ -103,8 +103,8 @@ val post_commitment : service (** Associate a commitment to a level and a slot index. See {!val: - Slot_manager.add_slot_id} for more details. *) -val patch_slot : + Slot_manager.associate_slot_id_with_commitment} for more details. *) +val patch_commitment : < meth : [`PATCH] ; input : Types.slot_id ; output : unit diff --git a/tezt/lib_tezos/rollup.ml b/tezt/lib_tezos/rollup.ml index c9bfaf6232ef..e3761ce83a5b 100644 --- a/tezt/lib_tezos/rollup.ml +++ b/tezt/lib_tezos/rollup.ml @@ -716,7 +716,7 @@ module Dal = struct let data : RPC_core.data = Data (JSON.unannotate slot) in make ~data POST ["commitments"] JSON.as_string - let patch_slot commitment ~slot_level ~slot_index = + let patch_commitment commitment ~slot_level ~slot_index = let data : RPC_core.data = Data (`O @@ -725,7 +725,7 @@ module Dal = struct ("slot_index", `Float (float_of_int slot_index)); ]) in - make ~data PATCH ["slots"; commitment] as_empty_object_or_fail + make ~data PATCH ["commitments"; commitment] as_empty_object_or_fail let get_slot commitment = make GET ["slots"; commitment] get_bytes_from_json_string_node diff --git a/tezt/lib_tezos/rollup.mli b/tezt/lib_tezos/rollup.mli index 9fe819d0e54b..b14b4d7ee4c2 100644 --- a/tezt/lib_tezos/rollup.mli +++ b/tezt/lib_tezos/rollup.mli @@ -317,9 +317,9 @@ module Dal : sig in case of success. *) val post_commitment : slot -> (Dal_node.t, commitment) RPC_core.t - (** Call RPC "PATCH /slots" to associate the given level and index to the slot + (** Call RPC "PATCH /commitments" to associate the given level and index to the slot whose commitment is given. *) - val patch_slot : + val patch_commitment : commitment -> slot_level:int -> slot_index:int -> diff --git a/tezt/tests/dal.ml b/tezt/tests/dal.ml index f3d0299fa9d4..9a14d18be63a 100644 --- a/tezt/tests/dal.ml +++ b/tezt/tests/dal.ml @@ -1197,12 +1197,12 @@ let test_dal_node_test_post_commitments _protocol parameters cryptobox _node locally (current = %L, expected = %R)" ; unit -let test_dal_node_test_patch_slots _protocol parameters cryptobox _node client - dal_node = +let test_dal_node_test_patch_commitments _protocol parameters cryptobox _node + client dal_node = let failing_patch_slot_rpc slot ~slot_level ~slot_index = let* response = RPC.call_raw dal_node - @@ Rollup.Dal.RPC.patch_slot slot ~slot_level ~slot_index + @@ Rollup.Dal.RPC.patch_commitment slot ~slot_level ~slot_index in return @@ RPC.check_string_response ~code:404 response in @@ -1221,7 +1221,7 @@ let test_dal_node_test_patch_slots _protocol parameters cryptobox _node client let patch_slot_rpc ~slot_level ~slot_index = RPC.call dal_node - (Rollup.Dal.RPC.patch_slot commitment ~slot_level ~slot_index) + (Rollup.Dal.RPC.patch_commitment commitment ~slot_level ~slot_index) in let* () = patch_slot_rpc ~slot_level:0 ~slot_index:0 in let* () = patch_slot_rpc ~slot_level:0 ~slot_index:0 in @@ -1914,8 +1914,8 @@ let register ~protocols = test_dal_node_test_post_commitments protocols ; scenario_with_layer1_and_dal_nodes - "dal node PATCH /slots" - test_dal_node_test_patch_slots + "dal node PATCH /commitments" + test_dal_node_test_patch_commitments protocols ; scenario_with_layer1_and_dal_nodes "dal node GET /slots" -- GitLab From 5fff3695fefe67cb60eca6c3526e42562ed70aeb Mon Sep 17 00:00:00 2001 From: "iguerNL@Functori" Date: Thu, 5 Jan 2023 07:58:29 +0100 Subject: [PATCH 3/5] Dal/Node: moving encoders/decoders --- src/bin_dal_node/store.ml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/bin_dal_node/store.ml b/src/bin_dal_node/store.ml index 10e4ad99accd..d695ef72823f 100644 --- a/src/bin_dal_node/store.ml +++ b/src/bin_dal_node/store.ml @@ -199,6 +199,19 @@ module Legacy = struct let decode encoding string = Data_encoding.Binary.of_string_opt encoding string + let encode_commitment = Cryptobox.Commitment.to_b58check + + let decode_commitment = Cryptobox.Commitment.of_b58check_opt + + let encode_header_status = + Data_encoding.Binary.to_string_exn Services.Types.header_status_encoding + + let decode_header_status = + Data_encoding.Binary.of_string_opt Services.Types.header_status_encoding + + let decode_slot_id = + Data_encoding.Binary.of_string_exn Services.Types.slot_id_encoding + let add_slot_by_commitment node_store cryptobox slot commitment = let open Lwt_syntax in let Cryptobox.{slot_size; _} = Cryptobox.parameters cryptobox in @@ -250,19 +263,6 @@ module Legacy = struct Lwt.return_unit) slot_headers - let encode_commitment = Cryptobox.Commitment.to_b58check - - let decode_commitment = Cryptobox.Commitment.of_b58check_opt - - let encode_header_status = - Data_encoding.Binary.to_string_exn Services.Types.header_status_encoding - - let decode_header_status = - Data_encoding.Binary.of_string_opt Services.Types.header_status_encoding - - let decode_slot_id = - Data_encoding.Binary.of_string_exn Services.Types.slot_id_encoding - let add_slot_headers ~block_level ~block_hash slot_headers node_store = let open Lwt_syntax in let* () = legacy_add_slot_headers ~block_hash slot_headers node_store in -- GitLab From 4b73ddb2e7f47bf489dbdef7f0ce95eafd9fe2b9 Mon Sep 17 00:00:00 2001 From: "iguerNL@Functori" Date: Thu, 5 Jan 2023 08:09:42 +0100 Subject: [PATCH 4/5] DAL/API: missing update in store when associating commitment -> id --- src/bin_dal_node/store.ml | 39 +++++++++++++++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/src/bin_dal_node/store.ml b/src/bin_dal_node/store.ml index d695ef72823f..2cbb433d446b 100644 --- a/src/bin_dal_node/store.ml +++ b/src/bin_dal_node/store.ml @@ -223,11 +223,38 @@ module Legacy = struct return_unit let associate_slot_id_with_commitment node_store commitment slot_id = + (* TODO: https://gitlab.com/tezos/tezos/-/issues/4528 + Improve the implementation of this handler. + *) let open Lwt_syntax in - let path = Path.Commitment.header commitment slot_id in - (* The path allows to reconstruct the data. *) - let* () = set ~msg:"Slot id stored" node_store.store path "" in - return_unit + let store = node_store.store in + let header_path = Path.Commitment.header commitment slot_id in + let levels_path = Path.Level.other_header_status slot_id commitment in + let* known_levels = mem store levels_path in + let* known_header = mem store header_path in + (* An invariant that should hold for the storage. *) + assert (known_header = known_header) ; + if known_levels then return_unit + else + (* The path allows to reconstruct the data. *) + let* () = + set + ~msg: + (Path.to_string + ~prefix:"associate_slot_id_with_commitment:" + header_path) + store + header_path + "" + in + set + ~msg: + (Path.to_string + ~prefix:"associate_slot_id_with_commitment:" + levels_path) + store + levels_path + (encode_header_status `Unseen) let exists_slot_by_commitment node_store cryptobox commitment = let Cryptobox.{slot_size; _} = Cryptobox.parameters cryptobox in @@ -270,6 +297,7 @@ module Legacy = struct (* TODO: https://gitlab.com/tezos/tezos/-/issues/4388 Handle reorgs. *) (* TODO: https://gitlab.com/tezos/tezos/-/issues/4389 + https://gitlab.com/tezos/tezos/-/issues/4528 Handle statuses evolution. *) List.iter_s (fun (slot_header, status) -> @@ -442,6 +470,9 @@ module Legacy = struct indices let get_commitment_headers commitment ?slot_level ?slot_index node_store = + (* TODO: https://gitlab.com/tezos/tezos/-/issues/4528 + Improve the implementation of this handler. + *) let open Lwt_result_syntax in let store = node_store.store in (* Get the list of known slot identifiers for [commitment]. *) -- GitLab From 9eef268b3d8037ab58aa8b83ac6234a8de124eda Mon Sep 17 00:00:00 2001 From: Eugen Zalinescu Date: Thu, 5 Jan 2023 15:59:36 +0000 Subject: [PATCH 5/5] fixup --- src/bin_dal_node/store.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin_dal_node/store.ml b/src/bin_dal_node/store.ml index 2cbb433d446b..fa586b7ce30f 100644 --- a/src/bin_dal_node/store.ml +++ b/src/bin_dal_node/store.ml @@ -233,7 +233,7 @@ module Legacy = struct let* known_levels = mem store levels_path in let* known_header = mem store header_path in (* An invariant that should hold for the storage. *) - assert (known_header = known_header) ; + assert (known_levels = known_header) ; if known_levels then return_unit else (* The path allows to reconstruct the data. *) -- GitLab