From d7741144691e5fa11e350ccc3bcdd3a8ff35f25a Mon Sep 17 00:00:00 2001 From: lin Date: Wed, 21 Jun 2023 01:47:33 +0900 Subject: [PATCH 01/13] Node/Dal: Move dal config into network definition --- src/bin_node/node_replay_command.ml | 2 +- src/bin_node/node_run_command.ml | 6 ++-- src/lib_node_config/config_file.ml | 45 +++++++++++++++-------------- src/lib_node_config/config_file.mli | 2 +- 4 files changed, 29 insertions(+), 26 deletions(-) diff --git a/src/bin_node/node_replay_command.ml b/src/bin_node/node_replay_command.ml index a9ece7b349ee..f02cfd19b54e 100644 --- a/src/bin_node/node_replay_command.ml +++ b/src/bin_node/node_replay_command.ml @@ -424,7 +424,7 @@ let replay ~internal_events ~singleprocess ~strict protocol_root; process_path = Sys.executable_name; sandbox_parameters = None; - dal_config = Tezos_crypto_dal.Cryptobox.Config.default; + dal_config = config.blockchain_network.dal; internal_events; }) in diff --git a/src/bin_node/node_run_command.ml b/src/bin_node/node_run_command.ml index 7c7b8be593ef..364427d0c553 100644 --- a/src/bin_node/node_run_command.ml +++ b/src/bin_node/node_run_command.ml @@ -315,7 +315,7 @@ let init_node ?sandbox ?target ~identity ~singleprocess ~internal_events target; enable_testchain = config.p2p.enable_testchain; disable_mempool = config.p2p.disable_mempool; - dal = config.dal; + dal = config.blockchain_network.dal; } in let* () = @@ -540,7 +540,9 @@ let run ?verbosity ?sandbox ?target ?(cli_warnings = []) let*! () = init_zcash () in let* () = let find_srs_files () = Tezos_base.Dal_srs.find_trusted_setup_files () in - Tezos_crypto_dal.Cryptobox.Config.init_dal ~find_srs_files config.dal + Tezos_crypto_dal.Cryptobox.Config.init_dal + ~find_srs_files + config.blockchain_network.dal in let*! node = init_node diff --git a/src/lib_node_config/config_file.ml b/src/lib_node_config/config_file.ml index 8478bbb3c51a..a2c9e3d67e09 100644 --- a/src/lib_node_config/config_file.ml +++ b/src/lib_node_config/config_file.ml @@ -53,12 +53,14 @@ type blockchain_network = { user_activated_upgrades : User_activated.upgrades; user_activated_protocol_overrides : User_activated.protocol_overrides; default_bootstrap_peers : string list; + dal : Tezos_crypto_dal.Cryptobox.Config.t; } let make_blockchain_network ~alias ~chain_name ?old_chain_name ?incompatible_chain_name ~sandboxed_chain_name ?(user_activated_upgrades = []) ?(user_activated_protocol_overrides = []) - ?(default_bootstrap_peers = []) ?genesis_parameters genesis = + ?(default_bootstrap_peers = []) ?genesis_parameters + ?(dal = Tezos_crypto_dal.Cryptobox.Config.default) genesis = let of_string = Distributed_db_version.Name.of_string in { alias = Some alias; @@ -78,6 +80,7 @@ let make_blockchain_network ~alias ~chain_name ?old_chain_name (Protocol_hash.of_b58check_exn a, Protocol_hash.of_b58check_exn b)) user_activated_protocol_overrides; default_bootstrap_peers; + dal; } (* The script in scripts/user_activated_upgrade.sh patches the following lines @@ -240,6 +243,7 @@ let blockchain_network_encoding : blockchain_network Data_encoding.t = user_activated_upgrades; user_activated_protocol_overrides; default_bootstrap_peers; + dal; } -> ( genesis, genesis_parameters, @@ -249,7 +253,8 @@ let blockchain_network_encoding : blockchain_network Data_encoding.t = sandboxed_chain_name, user_activated_upgrades, user_activated_protocol_overrides, - default_bootstrap_peers )) + default_bootstrap_peers, + dal )) (fun ( genesis, genesis_parameters, chain_name, @@ -258,7 +263,8 @@ let blockchain_network_encoding : blockchain_network Data_encoding.t = sandboxed_chain_name, user_activated_upgrades, user_activated_protocol_overrides, - default_bootstrap_peers ) -> + default_bootstrap_peers, + dal ) -> { alias = None; genesis; @@ -270,9 +276,10 @@ let blockchain_network_encoding : blockchain_network Data_encoding.t = user_activated_upgrades; user_activated_protocol_overrides; default_bootstrap_peers; + dal; }) (let chain = Distributed_db_version.Name.encoding in - obj9 + obj10 (req "genesis" Genesis.encoding) (opt "genesis_parameters" Genesis.Parameters.encoding) (req "chain_name" chain) @@ -289,7 +296,14 @@ let blockchain_network_encoding : blockchain_network Data_encoding.t = ~description: "List of hosts to use if p2p.bootstrap_peers is unspecified." (list string) - [])) + []) + (dft + "dal" + ~description: + "USE FOR TESTING PURPOSE ONLY. Configuration for the \ + data-availibility layer" + Tezos_crypto_dal.Cryptobox.Config.encoding + Tezos_crypto_dal.Cryptobox.Config.default)) let builtin_blockchain_networks_with_tags = [ @@ -350,7 +364,6 @@ type t = { shell : Shell_limits.limits; blockchain_network : blockchain_network; metrics_addr : string list; - dal : Tezos_crypto_dal.Cryptobox.Config.t; } and p2p = { @@ -416,7 +429,6 @@ let default_config = blockchain_network = blockchain_network_mainnet; disable_config_validation = default_disable_config_validation; metrics_addr = []; - dal = Tezos_crypto_dal.Cryptobox.Config.default; } let p2p = @@ -653,7 +665,6 @@ let encoding = shell; blockchain_network; metrics_addr; - dal; } -> ( data_dir, disable_config_validation, @@ -663,8 +674,7 @@ let encoding = internal_events, shell, blockchain_network, - metrics_addr, - dal )) + metrics_addr )) (fun ( data_dir, disable_config_validation, rpc, @@ -673,8 +683,7 @@ let encoding = internal_events, shell, blockchain_network, - metrics_addr, - dal ) -> + metrics_addr ) -> { disable_config_validation; data_dir; @@ -685,9 +694,8 @@ let encoding = shell; blockchain_network; metrics_addr; - dal; }) - (obj10 + (obj9 (dft "data-dir" ~description:"Location of the data dir on disk." @@ -732,14 +740,7 @@ let encoding = "metrics_addr" ~description:"Configuration of the Prometheus metrics endpoint" (list string) - default_config.metrics_addr) - (dft - "dal" - ~description: - "USE FOR TESTING PURPOSE ONLY. Configuration for the \ - data-availibility layer" - Tezos_crypto_dal.Cryptobox.Config.encoding - Tezos_crypto_dal.Cryptobox.Config.default)) + default_config.metrics_addr)) (* Abstract version of [Json_encoding.Cannot_destruct]: first argument is the string representation of the path, second argument is the error message diff --git a/src/lib_node_config/config_file.mli b/src/lib_node_config/config_file.mli index 1be757717eb6..146ee4a3402c 100644 --- a/src/lib_node_config/config_file.mli +++ b/src/lib_node_config/config_file.mli @@ -38,6 +38,7 @@ type blockchain_network = { user_activated_upgrades : User_activated.upgrades; user_activated_protocol_overrides : User_activated.protocol_overrides; default_bootstrap_peers : string list; + dal : Tezos_crypto_dal.Cryptobox.Config.t; } (** List of built-in networks with their alias. *) @@ -56,7 +57,6 @@ type t = { shell : Shell_limits.limits; blockchain_network : blockchain_network; metrics_addr : string list; - dal : Tezos_crypto_dal.Cryptobox.Config.t; } and p2p = { -- GitLab From 0fe1390cb5c1826654940e810b4e15f4df6c023c Mon Sep 17 00:00:00 2001 From: lin Date: Wed, 21 Jun 2023 15:56:24 +0900 Subject: [PATCH 02/13] Tezt: Add set_sandbox_network_with_dal_config function --- tezt/lib_tezos/node.ml | 32 ++++++++++++++++++++++++++++++++ tezt/lib_tezos/node.mli | 4 ++++ 2 files changed, 36 insertions(+) diff --git a/tezt/lib_tezos/node.ml b/tezt/lib_tezos/node.ml index c12bd5183c23..e39b7d5f16f6 100644 --- a/tezt/lib_tezos/node.ml +++ b/tezt/lib_tezos/node.ml @@ -414,6 +414,38 @@ module Config_file = struct in JSON.put ("network", network) old_config + let set_sandbox_network_with_dal_config + (dal_config : Tezos_crypto_dal.Cryptobox.Config.t) old_config = + let dal_config_json = + let parameters = + match dal_config.use_mock_srs_for_testing with + | Some parameters -> + `O + [ + ("slot_size", `Float (float_of_int parameters.slot_size)); + ("page_size", `Float (float_of_int parameters.page_size)); + ( "redundancy_factor", + `Float (float_of_int parameters.redundancy_factor) ); + ( "number_of_shards", + `Float (float_of_int parameters.number_of_shards) ); + ] + | None -> `Null + in + JSON.annotate + ~origin:"dal_initialisation" + (`O + [ + ("activated", `Bool dal_config.activated); + ("use_mock_srs_for_testing", parameters); + ]) + in + let network = + sandbox_network_config + |> JSON.annotate ~origin:"set_sandbox_network_with_dal_config" + |> JSON.put ("dal", dal_config_json) + in + JSON.put ("network", network) old_config + let set_ghostnet_sandbox_network ?user_activated_upgrades () old_config = let may_patch_user_activated_upgrades = match user_activated_upgrades with diff --git a/tezt/lib_tezos/node.mli b/tezt/lib_tezos/node.mli index 5f9ae2e0f2d4..18f5af8dcfa3 100644 --- a/tezt/lib_tezos/node.mli +++ b/tezt/lib_tezos/node.mli @@ -307,6 +307,10 @@ module Config_file : sig val set_sandbox_network_with_user_activated_overrides : (string * string) list -> JSON.t -> JSON.t + (** Set the network config to a sandbox with the given dal config. *) + val set_sandbox_network_with_dal_config : + Tezos_crypto_dal.Cryptobox.Config.t -> JSON.t -> JSON.t + (** Set the prevalidator configuration in the given configuration. *) val set_prevalidator : ?operations_request_timeout:float -> -- GitLab From 503f19d54f292755bfa81dc4c5bd90f8277e579c Mon Sep 17 00:00:00 2001 From: lin Date: Wed, 21 Jun 2023 15:56:49 +0900 Subject: [PATCH 03/13] Dal/Tezt: Use set_sandbox_network_with_dal_config --- tezt/tests/dal.ml | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/tezt/tests/dal.ml b/tezt/tests/dal.ml index 951cd78586e0..2cb51467d59f 100644 --- a/tezt/tests/dal.ml +++ b/tezt/tests/dal.ml @@ -81,16 +81,12 @@ let setup_node ?(custom_constants = None) ?(additional_bootstrap_accounts = 5) let node = Node.create nodes_args in let* () = Node.config_init node [] in let* dal_parameters = Rollup.Dal.Parameters.from_client client in - Node.Config_file.update node (fun json -> - let config : Cryptobox.Config.t = - { - activated = true; - use_mock_srs_for_testing = Some dal_parameters.cryptobox; - } - in - JSON.put - ("dal", Rollup.Dal.Parameters.cryptobox_config_to_json config) - json) ; + let config : Cryptobox.Config.t = + {activated = true; use_mock_srs_for_testing = Some dal_parameters.cryptobox} + in + Node.Config_file.update + node + (Node.Config_file.set_sandbox_network_with_dal_config config) ; let* () = Node.run node ~event_sections_levels node_arguments in let* () = Node.wait_for_ready node in let* client = Client.init ~endpoint:(Node node) () in -- GitLab From f0fed6669994917d520fbb4d57ba63dd0b4c879a Mon Sep 17 00:00:00 2001 From: lin Date: Thu, 22 Jun 2023 00:24:50 +0900 Subject: [PATCH 04/13] Tezt: Remove unused function --- tezt/lib_tezos/rollup.ml | 23 ----------------------- tezt/lib_tezos/rollup.mli | 4 ---- 2 files changed, 27 deletions(-) diff --git a/tezt/lib_tezos/rollup.ml b/tezt/lib_tezos/rollup.ml index c58992cf3a88..247d197728f6 100644 --- a/tezt/lib_tezos/rollup.ml +++ b/tezt/lib_tezos/rollup.ml @@ -68,29 +68,6 @@ module Dal = struct attestation_threshold; blocks_per_epoch; } - - let cryptobox_config_to_json (t : Cryptobox.Config.t) = - let parameters = - match t.use_mock_srs_for_testing with - | Some parameters -> - `O - [ - ("slot_size", `Float (float_of_int parameters.slot_size)); - ("page_size", `Float (float_of_int parameters.page_size)); - ( "redundancy_factor", - `Float (float_of_int parameters.redundancy_factor) ); - ( "number_of_shards", - `Float (float_of_int parameters.number_of_shards) ); - ] - | None -> `Null - in - JSON.annotate - ~origin:"dal_initialisation" - (`O - [ - ("activated", `Bool t.activated); - ("use_mock_srs_for_testing", parameters); - ]) end let endpoint dal_node = diff --git a/tezt/lib_tezos/rollup.mli b/tezt/lib_tezos/rollup.mli index 319f7285a92e..d53bfd189cd4 100644 --- a/tezt/lib_tezos/rollup.mli +++ b/tezt/lib_tezos/rollup.mli @@ -40,10 +40,6 @@ module Dal : sig val parameter_file : Protocol.t -> string Lwt.t val from_client : Client.t -> t Lwt.t - - (** [cryptobox_config_to_json config] returns the Json encoding of - the record {!type:Cryptobox.Config.t}. *) - val cryptobox_config_to_json : Cryptobox.Config.t -> JSON.t end val endpoint : Dal_node.t -> string -- GitLab From 4b3b68dba9fefad60c0c8438c607abbe061d0224 Mon Sep 17 00:00:00 2001 From: lin Date: Wed, 21 Jun 2023 21:41:01 +0900 Subject: [PATCH 05/13] Manifest: Introduce lib_dal_config Just run the manifest script. --- .gitlab/ci/jobs/packaging/opam_package.yml | 49 ++++++++++++---------- dune-project | 1 + manifest/main.ml | 14 +++++++ opam/octez-dal-node.opam | 1 + opam/tezos-crypto-dal.opam | 1 + opam/tezos-dal-config.opam | 20 +++++++++ opam/tezos-protocol-environment.opam | 1 + opam/tezos-shell-services.opam | 1 + opam/tezos-shell.opam | 1 + src/bin_dal_node/dune | 4 +- src/lib_crypto_dal/dune | 4 +- src/lib_crypto_dal/test/dune | 2 + src/lib_dal_config/dune | 13 ++++++ src/lib_protocol_environment/dune | 1 + src/lib_shell/dune | 4 +- src/lib_shell_services/dune | 6 ++- 16 files changed, 97 insertions(+), 26 deletions(-) create mode 100644 opam/tezos-dal-config.opam create mode 100644 src/lib_dal_config/dune diff --git a/.gitlab/ci/jobs/packaging/opam_package.yml b/.gitlab/ci/jobs/packaging/opam_package.yml index 7de8d20514d1..9f4849f4fa54 100644 --- a/.gitlab/ci/jobs/packaging/opam_package.yml +++ b/.gitlab/ci/jobs/packaging/opam_package.yml @@ -647,7 +647,7 @@ opam:octez-smart-rollup-node-PtNairob: opam:octez-smart-rollup-wasm-benchmark-lib: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_4 + - .rules_template__trigger_all_opam_batch_3 variables: package: octez-smart-rollup-wasm-benchmark-lib @@ -715,7 +715,7 @@ opam:tezos-baking-alpha-commands: opam:tezos-base: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_7 + - .rules_template__trigger_all_opam_batch_6 variables: package: tezos-base @@ -753,7 +753,7 @@ opam:tezos-base-test-helpers: opam:tezos-clic: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_7 + - .rules_template__trigger_all_opam_batch_6 variables: package: tezos-clic @@ -907,7 +907,7 @@ opam:tezos-client-base-unix: opam:tezos-client-commands: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_6 + - .rules_template__trigger_all_opam_batch_5 variables: package: tezos-client-commands @@ -921,7 +921,7 @@ opam:tezos-client-demo-counter: opam:tezos-client-genesis: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_3 + - .rules_template__trigger_all_opam_batch_2 variables: package: tezos-client-genesis @@ -942,14 +942,14 @@ opam:tezos-context-ops: opam:tezos-crypto: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_7 + - .rules_template__trigger_all_opam_batch_6 variables: package: tezos-crypto opam:tezos-crypto-dal: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_7 + - .rules_template__trigger_all_opam_batch_6 variables: package: tezos-crypto-dal @@ -973,6 +973,13 @@ opam:tezos-crypto-dal: # Ignoring unreleased package tezos-dal-alpha. +opam:tezos-dal-config: + extends: + - .opam_template + - .rules_template__trigger_all_opam_batch_7 + variables: + package: tezos-dal-config + opam:tezos-dal-node-lib: extends: - .opam_template @@ -990,7 +997,7 @@ opam:tezos-dal-node-services: opam:tezos-embedded-protocol-000-Ps9mPmXa: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_3 + - .rules_template__trigger_all_opam_batch_2 variables: package: tezos-embedded-protocol-000-Ps9mPmXa @@ -1259,14 +1266,14 @@ opam:tezos-mockup-commands: opam:tezos-mockup-proxy: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_5 + - .rules_template__trigger_all_opam_batch_4 variables: package: tezos-mockup-proxy opam:tezos-mockup-registration: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_5 + - .rules_template__trigger_all_opam_batch_4 variables: package: tezos-mockup-registration @@ -1289,14 +1296,14 @@ opam:tezos-p2p-services: opam:tezos-protocol-000-Ps9mPmXa: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_5 + - .rules_template__trigger_all_opam_batch_4 variables: package: tezos-protocol-000-Ps9mPmXa opam:tezos-protocol-001-PtCJ7pwo: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_5 + - .rules_template__trigger_all_opam_batch_4 variables: package: tezos-protocol-001-PtCJ7pwo @@ -1456,7 +1463,7 @@ opam:tezos-protocol-demo-noops: opam:tezos-protocol-environment: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_6 + - .rules_template__trigger_all_opam_batch_5 variables: package: tezos-protocol-environment @@ -1505,7 +1512,7 @@ opam:tezos-protocol-plugin-009-PsFLoren: opam:tezos-protocol-plugin-009-PsFLoren-registerer: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_2 + - .rules_template__trigger_all_opam_batch_1 variables: package: tezos-protocol-plugin-009-PsFLoren-registerer @@ -1628,7 +1635,7 @@ opam:tezos-protocol-plugin-017-PtNairob-registerer: opam:tezos-protocol-plugin-alpha: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_4 + - .rules_template__trigger_all_opam_batch_3 variables: package: tezos-protocol-plugin-alpha @@ -1707,7 +1714,7 @@ opam:tezos-rpc-http-server: opam:tezos-sapling: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_7 + - .rules_template__trigger_all_opam_batch_6 variables: package: tezos-sapling @@ -1716,7 +1723,7 @@ opam:tezos-sapling: opam:tezos-scoru-wasm: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_6 + - .rules_template__trigger_all_opam_batch_5 variables: package: tezos-scoru-wasm @@ -1725,7 +1732,7 @@ opam:tezos-scoru-wasm: opam:tezos-scoru-wasm-fast: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_6 + - .rules_template__trigger_all_opam_batch_5 variables: package: tezos-scoru-wasm-fast @@ -1772,7 +1779,7 @@ opam:tezos-shell-services: opam:tezos-signer-backends: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_6 + - .rules_template__trigger_all_opam_batch_5 variables: package: tezos-signer-backends @@ -1864,7 +1871,7 @@ opam:tezos-tree-encoding: opam:tezos-validation: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_4 + - .rules_template__trigger_all_opam_batch_3 variables: package: tezos-validation @@ -1915,6 +1922,6 @@ opam:tezt-performance-regression: opam:tezt-tezos: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_7 + - .rules_template__trigger_all_opam_batch_6 variables: package: tezt-tezos diff --git a/dune-project b/dune-project index 63cf1fe4f3f0..5511a5eb9016 100644 --- a/dune-project +++ b/dune-project @@ -115,6 +115,7 @@ (package (name tezos-dal-016-PtMumbai)) (package (name tezos-dal-017-PtNairob)) (package (name tezos-dal-alpha)) +(package (name tezos-dal-config)) (package (name tezos-dal-node-lib)) (package (name tezos-dal-node-services)) (package (name tezos-embedded-protocol-000-Ps9mPmXa)) diff --git a/manifest/main.ml b/manifest/main.ml index 40ca477bdb47..e085d5335bc1 100644 --- a/manifest/main.ml +++ b/manifest/main.ml @@ -1569,6 +1569,14 @@ let _octez_epoxy_tx_tests = ~deps:[octez_epoxy_tx; octez_plonk_test_helpers; octez_aplonk] ~dune:(make_plonk_runtest_invocation ~package:"octez-epoxy-tx") +let octez_dal_config = + public_lib + "tezos-dal-config" + ~path:"src/lib_dal_config" + ~synopsis:"Tezos: DAL configuration" + ~deps:[data_encoding |> open_] + ~js_compatible:true + let octez_crypto_dal = public_lib "tezos-crypto-dal" @@ -1580,6 +1588,7 @@ let octez_crypto_dal = octez_stdlib |> open_; octez_error_monad |> open_; data_encoding |> open_; + octez_dal_config |> open_; octez_crypto; octez_bls12_381_polynomial; lwt_unix; @@ -1595,6 +1604,7 @@ let _octez_crypto_dal_tests = [ octez_stdlib |> open_; octez_crypto_dal |> open_; + octez_dal_config |> open_; octez_error_monad |> open_; data_encoding |> open_; alcotezt; @@ -2115,6 +2125,7 @@ let octez_shell_services = octez_version |> open_; octez_context_sigs; octez_merkle_proof_encoding; + octez_dal_config |> open_; ] ~linkall:true ~js_compatible:true @@ -2726,6 +2737,7 @@ protocols.|} bls12_381; octez_plonk |> open_; octez_crypto_dal; + octez_dal_config; vdf; aches; aches_lwt; @@ -3184,6 +3196,7 @@ let octez_shell = octez_workers |> open_; octez_validation |> open_; octez_version |> open_; + octez_dal_config |> open_; lwt_exit; ] @@ -7274,6 +7287,7 @@ let _octez_dal_node = octez_p2p_services |> open_; octez_crypto |> open_; octez_base_p2p_identity_file |> open_; + octez_shell_services |> open_; irmin_pack; irmin_pack_unix; irmin; diff --git a/opam/octez-dal-node.opam b/opam/octez-dal-node.opam index cdd9beee0de0..1e4295b9e6e5 100644 --- a/opam/octez-dal-node.opam +++ b/opam/octez-dal-node.opam @@ -31,6 +31,7 @@ depends: [ "tezos-p2p" "tezos-p2p-services" "tezos-crypto" + "tezos-shell-services" "irmin-pack" { >= "3.7.2" & < "3.8.0" } "irmin" { >= "3.7.2" & < "3.8.0" } "tezos-dal-016-PtMumbai" diff --git a/opam/tezos-crypto-dal.opam b/opam/tezos-crypto-dal.opam index 9dd203fe79dc..9ca373fcbff2 100644 --- a/opam/tezos-crypto-dal.opam +++ b/opam/tezos-crypto-dal.opam @@ -13,6 +13,7 @@ depends: [ "tezos-stdlib" "tezos-error-monad" "data-encoding" { >= "0.7.1" & < "1.0.0" } + "tezos-dal-config" "tezos-crypto" "octez-bls12-381-polynomial" "lwt" { >= "5.6.0" } diff --git a/opam/tezos-dal-config.opam b/opam/tezos-dal-config.opam new file mode 100644 index 000000000000..c045a08f06fc --- /dev/null +++ b/opam/tezos-dal-config.opam @@ -0,0 +1,20 @@ +# This file was automatically generated, do not edit. +# Edit file manifest/main.ml instead. +opam-version: "2.0" +maintainer: "contact@tezos.com" +authors: ["Tezos devteam"] +homepage: "https://www.tezos.com/" +bug-reports: "https://gitlab.com/tezos/tezos/issues" +dev-repo: "git+https://gitlab.com/tezos/tezos.git" +license: "MIT" +depends: [ + "dune" { >= "3.0" } + "ocaml" { >= "4.14" } + "data-encoding" { >= "0.7.1" & < "1.0.0" } +] +build: [ + ["rm" "-r" "vendors" "contrib"] + ["dune" "build" "-p" name "-j" jobs] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] +synopsis: "Tezos: DAL configuration" diff --git a/opam/tezos-protocol-environment.opam b/opam/tezos-protocol-environment.opam index 68d6782c6d56..49f9457a490f 100644 --- a/opam/tezos-protocol-environment.opam +++ b/opam/tezos-protocol-environment.opam @@ -20,6 +20,7 @@ depends: [ "zarith" { >= "1.12" & < "1.13" } "zarith_stubs_js" "tezos-crypto-dal" + "tezos-dal-config" "class_group_vdf" { >= "0.0.4" } "aches" { >= "1.0.0" } "aches-lwt" { >= "1.0.0" } diff --git a/opam/tezos-shell-services.opam b/opam/tezos-shell-services.opam index 09d1576d074d..1dc51dd10379 100644 --- a/opam/tezos-shell-services.opam +++ b/opam/tezos-shell-services.opam @@ -15,6 +15,7 @@ depends: [ "tezos-p2p-services" "tezos-version" "tezos-context" + "tezos-dal-config" "tezt" { with-test & >= "3.1.1" } "octez-alcotezt" {with-test} ] diff --git a/opam/tezos-shell.opam b/opam/tezos-shell.opam index a9498715e89e..97cfd563c81c 100644 --- a/opam/tezos-shell.opam +++ b/opam/tezos-shell.opam @@ -30,6 +30,7 @@ depends: [ "tezos-workers" "tezos-validation" "tezos-version" + "tezos-dal-config" "lwt-exit" "tezt" { with-test & >= "3.1.1" } "tezos-base-test-helpers" {with-test} diff --git a/src/bin_dal_node/dune b/src/bin_dal_node/dune index 96086371655a..da63016f5260 100644 --- a/src/bin_dal_node/dune +++ b/src/bin_dal_node/dune @@ -32,6 +32,7 @@ tezos-p2p-services tezos-crypto tezos-base.p2p-identity-file + tezos-shell-services irmin-pack irmin-pack.unix irmin @@ -63,6 +64,7 @@ -open Tezos_p2p -open Tezos_p2p_services -open Tezos_crypto - -open Tezos_base_p2p_identity_file)) + -open Tezos_base_p2p_identity_file + -open Tezos_shell_services)) (rule (action (progn (write-file void_for_linking-tezos-dal-alpha.empty "")))) diff --git a/src/lib_crypto_dal/dune b/src/lib_crypto_dal/dune index ca02086f8cd2..89fdefec88d2 100644 --- a/src/lib_crypto_dal/dune +++ b/src/lib_crypto_dal/dune @@ -9,6 +9,7 @@ tezos-stdlib tezos-error-monad data-encoding + tezos-dal-config tezos-crypto octez-bls12-381-polynomial lwt.unix) @@ -16,4 +17,5 @@ (:standard) -open Tezos_stdlib -open Tezos_error_monad - -open Data_encoding)) + -open Data_encoding + -open Tezos_dal_config)) diff --git a/src/lib_crypto_dal/test/dune b/src/lib_crypto_dal/test/dune index 7b464a11c459..829f37ad729d 100644 --- a/src/lib_crypto_dal/test/dune +++ b/src/lib_crypto_dal/test/dune @@ -8,6 +8,7 @@ tezt.core tezos-stdlib tezos-crypto-dal + tezos-dal-config tezos-error-monad data-encoding octez-alcotezt @@ -21,6 +22,7 @@ -open Tezt_core.Base -open Tezos_stdlib -open Tezos_crypto_dal + -open Tezos_dal_config -open Tezos_error_monad -open Data_encoding -open Octez_alcotezt) diff --git a/src/lib_dal_config/dune b/src/lib_dal_config/dune new file mode 100644 index 000000000000..2ed8a72e7e02 --- /dev/null +++ b/src/lib_dal_config/dune @@ -0,0 +1,13 @@ +; This file was automatically generated, do not edit. +; Edit file manifest/main.ml instead. + +(library + (name tezos_dal_config) + (public_name tezos-dal-config) + (instrumentation (backend bisect_ppx)) + (libraries + data-encoding) + (js_of_ocaml) + (flags + (:standard) + -open Data_encoding)) diff --git a/src/lib_protocol_environment/dune b/src/lib_protocol_environment/dune index 8c95e6215a89..3f0869674d3e 100644 --- a/src/lib_protocol_environment/dune +++ b/src/lib_protocol_environment/dune @@ -11,6 +11,7 @@ bls12-381 octez-plonk tezos-crypto-dal + tezos-dal-config class_group_vdf aches aches-lwt diff --git a/src/lib_shell/dune b/src/lib_shell/dune index bb84cee488df..968d17dca36c 100644 --- a/src/lib_shell/dune +++ b/src/lib_shell/dune @@ -27,6 +27,7 @@ tezos-workers tezos-validation tezos-version + tezos-dal-config lwt-exit) (inline_tests (flags -verbose) (modes native)) (preprocess (pps ppx_expect)) @@ -49,6 +50,7 @@ -open Tezos_requester -open Tezos_workers -open Tezos_validation - -open Tezos_version)) + -open Tezos_version + -open Tezos_dal_config)) (documentation (package tezos-shell)) diff --git a/src/lib_shell_services/dune b/src/lib_shell_services/dune index 2c1f1eca35de..0ab7b7128053 100644 --- a/src/lib_shell_services/dune +++ b/src/lib_shell_services/dune @@ -13,7 +13,8 @@ tezos-p2p-services tezos-version tezos-context.sigs - tezos-context.merkle_proof_encoding) + tezos-context.merkle_proof_encoding + tezos-dal-config) (js_of_ocaml) (library_flags (:standard -linkall)) (flags @@ -21,4 +22,5 @@ -open Tezos_base.TzPervasives -open Tezos_base -open Tezos_p2p_services - -open Tezos_version)) + -open Tezos_version + -open Tezos_dal_config)) -- GitLab From 5597dc2697cfd891875562bec17642f283fce32d Mon Sep 17 00:00:00 2001 From: lin Date: Wed, 21 Jun 2023 21:43:10 +0900 Subject: [PATCH 06/13] Dal/Shell: Factor out dal config into dal_config We need to factor the config out so that the config can be referenced from lib_shell_services. Note that lib_crypto_dal cannot be referenced directly from lib_shell_services as lib_shell_services is JS compatible while lib_crypto_dal is not. --- src/lib_crypto_dal/cryptobox.ml | 49 ++++------------------ src/lib_crypto_dal/cryptobox.mli | 17 ++------ src/lib_crypto_dal/cryptobox_intf.ml | 2 +- src/lib_dal_config/dal_config.ml | 62 ++++++++++++++++++++++++++++ src/lib_dal_config/dal_config.mli | 56 +++++++++++++++++++++++++ 5 files changed, 130 insertions(+), 56 deletions(-) create mode 100644 src/lib_dal_config/dal_config.ml create mode 100644 src/lib_dal_config/dal_config.mli diff --git a/src/lib_crypto_dal/cryptobox.ml b/src/lib_crypto_dal/cryptobox.ml index fcf59e60fd7c..c3ce0c356ae5 100644 --- a/src/lib_crypto_dal/cryptobox.ml +++ b/src/lib_crypto_dal/cryptobox.ml @@ -623,26 +623,14 @@ module Inner = struct max_polynomial_length srs_g2_length) - type parameters = { + type parameters = Dal_config.parameters = { redundancy_factor : int; page_size : int; slot_size : int; number_of_shards : int; } - let parameters_encoding = - let open Data_encoding in - conv - (fun {redundancy_factor; page_size; slot_size; number_of_shards} -> - (redundancy_factor, page_size, slot_size, number_of_shards)) - (fun (redundancy_factor, page_size, slot_size, number_of_shards) -> - {redundancy_factor; page_size; slot_size; number_of_shards}) - (obj4 - (req "redundancy_factor" uint8) - (req "page_size" uint16) - (req "slot_size" int31) - (req "number_of_shards" uint16)) - [@@coverage off] + let parameters_encoding = Dal_config.parameters_encoding let pages_per_slot {slot_size; page_size; _} = slot_size / page_size @@ -1835,35 +1823,14 @@ module Internal_for_tests = struct end module Config = struct - type t = {activated : bool; use_mock_srs_for_testing : parameters option} - - let parameters_encoding : parameters Data_encoding.t = - let open Data_encoding in - conv - (fun {slot_size; page_size; redundancy_factor; number_of_shards} -> - (slot_size, page_size, redundancy_factor, number_of_shards)) - (fun (slot_size, page_size, redundancy_factor, number_of_shards) -> - {slot_size; page_size; redundancy_factor; number_of_shards}) - (obj4 - (req "slot_size" int31) - (req "page_size" int31) - (req "redundancy_factor" int31) - (req "number_of_shards" int31)) - [@@coverage off] + type t = Dal_config.t = { + activated : bool; + use_mock_srs_for_testing : parameters option; + } - let encoding : t Data_encoding.t = - let open Data_encoding in - conv - (fun {activated; use_mock_srs_for_testing} -> - (activated, use_mock_srs_for_testing)) - (fun (activated, use_mock_srs_for_testing) -> - {activated; use_mock_srs_for_testing}) - (obj2 - (req "activated" bool) - (req "use_mock_srs_for_testing" (option parameters_encoding))) - [@@coverage off] + let encoding : t Data_encoding.t = Dal_config.encoding - let default = {activated = false; use_mock_srs_for_testing = None} + let default = Dal_config.default let init_dal ~find_srs_files ?(srs_size_log2 = 21) dal_config = let open Lwt_result_syntax in diff --git a/src/lib_crypto_dal/cryptobox.mli b/src/lib_crypto_dal/cryptobox.mli index f269a3d9d72d..67fe6e84be71 100644 --- a/src/lib_crypto_dal/cryptobox.mli +++ b/src/lib_crypto_dal/cryptobox.mli @@ -63,7 +63,7 @@ open Cryptobox_intf (** Initial values for the parameters of the DAL cryptographic primitives. It used to build a value of type [t]. *) -type parameters = { +type parameters = Dal_config.parameters = { redundancy_factor : int; page_size : int; slot_size : int; @@ -117,7 +117,6 @@ type error += Invalid_precomputation_hash of (string, string) error_container module Verifier : VERIFIER with type t = t - and type parameters = parameters and type commitment = commitment and type commitment_proof = commitment_proof and type page_proof = page_proof @@ -126,7 +125,7 @@ module Verifier : include VERIFIER with type t := t - and type parameters := parameters + and type parameters := Dal_config.parameters and type commitment := commitment and type commitment_proof := commitment_proof and type page_proof := page_proof @@ -517,23 +516,13 @@ end (** node parameters for the DAL. *) module Config : sig - type t = { + type t = Dal_config.t = { activated : bool; - (** [true] if the DAL is activated. This may have - an impact on the loading time of the node. *) use_mock_srs_for_testing : parameters option; - (** If [None], the srs is read from the srs files. - This is the value expected for production. For testing - purposes, we may want to compute the srs instead but this is - not secure. In this case, the size of a slot, page, the - erasure code redundancy factor and number of shards must be - specified. *) } val encoding : t Data_encoding.t - (** The default configuration is - [{activated = false; use_mock_srs_for_testing = None}]. *) val default : t (** [init_dal find_trusted_setup_files ?(srs_size_log2=21) config] initializes the diff --git a/src/lib_crypto_dal/cryptobox_intf.ml b/src/lib_crypto_dal/cryptobox_intf.ml index 5438c9934caa..52014b8eab0e 100644 --- a/src/lib_crypto_dal/cryptobox_intf.ml +++ b/src/lib_crypto_dal/cryptobox_intf.ml @@ -67,7 +67,7 @@ module type VERIFIER = sig type t (** Parameters to build a value of type [t] *) - type parameters = { + type parameters = Dal_config.parameters = { redundancy_factor : int; page_size : int; slot_size : int; diff --git a/src/lib_dal_config/dal_config.ml b/src/lib_dal_config/dal_config.ml new file mode 100644 index 000000000000..53c058bc73c1 --- /dev/null +++ b/src/lib_dal_config/dal_config.ml @@ -0,0 +1,62 @@ +(*****************************************************************************) +(* *) +(* Open Source License *) +(* Copyright (c) 2023 Nomadic Labs *) +(* Copyright (c) 2023 Marigold *) +(* *) +(* Permission is hereby granted, free of charge, to any person obtaining a *) +(* copy of this software and associated documentation files (the "Software"),*) +(* to deal in the Software without restriction, including without limitation *) +(* the rights to use, copy, modify, merge, publish, distribute, sublicense, *) +(* and/or sell copies of the Software, and to permit persons to whom the *) +(* Software is furnished to do so, subject to the following conditions: *) +(* *) +(* The above copyright notice and this permission notice shall be included *) +(* in all copies or substantial portions of the Software. *) +(* *) +(* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR*) +(* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *) +(* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL *) +(* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER*) +(* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING *) +(* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER *) +(* DEALINGS IN THE SOFTWARE. *) +(* *) +(*****************************************************************************) + +type parameters = { + redundancy_factor : int; + page_size : int; + slot_size : int; + number_of_shards : int; +} + +let parameters_encoding = + let open Data_encoding in + conv + (fun {redundancy_factor; page_size; slot_size; number_of_shards} -> + (redundancy_factor, page_size, slot_size, number_of_shards)) + (fun (redundancy_factor, page_size, slot_size, number_of_shards) -> + {redundancy_factor; page_size; slot_size; number_of_shards}) + (obj4 + (req "redundancy_factor" uint8) + (req "page_size" uint16) + (req "slot_size" int31) + (req "number_of_shards" uint16)) + [@@coverage off] + +type t = {activated : bool; use_mock_srs_for_testing : parameters option} + +let encoding : t Data_encoding.t = + let open Data_encoding in + conv + (fun {activated; use_mock_srs_for_testing} -> + (activated, use_mock_srs_for_testing)) + (fun (activated, use_mock_srs_for_testing) -> + {activated; use_mock_srs_for_testing}) + (obj2 + (req "activated" bool) + (req "use_mock_srs_for_testing" (option parameters_encoding))) + [@@coverage off] + +let default = {activated = false; use_mock_srs_for_testing = None} diff --git a/src/lib_dal_config/dal_config.mli b/src/lib_dal_config/dal_config.mli new file mode 100644 index 000000000000..a4bee6037e03 --- /dev/null +++ b/src/lib_dal_config/dal_config.mli @@ -0,0 +1,56 @@ +(*****************************************************************************) +(* *) +(* Open Source License *) +(* Copyright (c) 2023 Nomadic Labs *) +(* Copyright (c) 2023 Marigold *) +(* *) +(* Permission is hereby granted, free of charge, to any person obtaining a *) +(* copy of this software and associated documentation files (the "Software"),*) +(* to deal in the Software without restriction, including without limitation *) +(* the rights to use, copy, modify, merge, publish, distribute, sublicense, *) +(* and/or sell copies of the Software, and to permit persons to whom the *) +(* Software is furnished to do so, subject to the following conditions: *) +(* *) +(* The above copyright notice and this permission notice shall be included *) +(* in all copies or substantial portions of the Software. *) +(* *) +(* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR*) +(* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *) +(* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL *) +(* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER*) +(* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING *) +(* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER *) +(* DEALINGS IN THE SOFTWARE. *) +(* *) +(*****************************************************************************) + +(** node parameters for the DAL. *) + +(* Parameters of the DAL cryptographic primitives. *) +type parameters = { + redundancy_factor : int; + page_size : int; + slot_size : int; + number_of_shards : int; +} + +val parameters_encoding : parameters Data_encoding.t + +type t = { + activated : bool; + (** [true] if the DAL is activated. This may have + an impact on the loading time of the node. *) + use_mock_srs_for_testing : parameters option; + (** If [None], the srs is read from the srs files. + This is the value expected for production. For testing + purposes, we may want to compute the srs instead but this is + not secure. In this case, the size of a slot, page, the + erasure code redundancy factor and number of shards must be + specified. *) +} + +val encoding : t Data_encoding.t + +(** The default configuration is + [{activated = false; use_mock_srs_for_testing = None}]. *) +val default : t -- GitLab From 95e88ffdc08134b7e01ee78f3c7caffa9fe90d4a Mon Sep 17 00:00:00 2001 From: lin Date: Thu, 22 Jun 2023 00:04:25 +0900 Subject: [PATCH 07/13] Shell/RPC: Implement /config/network/dal --- src/lib_rpc_http/RPC_server.ml | 1 + src/lib_shell/config_directory.ml | 3 ++- src/lib_shell/config_directory.mli | 1 + src/lib_shell/node.ml | 3 +++ src/lib_shell_services/config_services.ml | 9 +++++++++ src/lib_shell_services/config_services.mli | 4 ++++ 6 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/lib_rpc_http/RPC_server.ml b/src/lib_rpc_http/RPC_server.ml index 8ae370121b16..ebf9829f41f2 100644 --- a/src/lib_rpc_http/RPC_server.ml +++ b/src/lib_rpc_http/RPC_server.ml @@ -79,6 +79,7 @@ module Acl = struct "GET /chains/*/mempool/pending_operations"; "GET /config/network/user_activated_protocol_overrides"; "GET /config/network/user_activated_upgrades"; + "GET /config/network/dal"; "GET /describe/**"; "GET /errors"; "GET /monitor/**"; diff --git a/src/lib_shell/config_directory.ml b/src/lib_shell/config_directory.ml index 36738fc4d224..31c08e14ac03 100644 --- a/src/lib_shell/config_directory.ml +++ b/src/lib_shell/config_directory.ml @@ -24,7 +24,7 @@ (*****************************************************************************) let build_rpc_directory ~user_activated_upgrades - ~user_activated_protocol_overrides ~mainchain_validator store = + ~user_activated_protocol_overrides ~dal ~mainchain_validator store = let open Lwt_result_syntax in let register endpoint f directory = Tezos_rpc.Directory.register directory endpoint f @@ -35,6 +35,7 @@ let build_rpc_directory ~user_activated_upgrades |> register Config_services.Network.user_activated_protocol_overrides (fun () () () -> return user_activated_protocol_overrides) + |> register Config_services.Network.dal (fun () () () -> return dal) |> register Config_services.history_mode (fun () () () -> let chain_store = Store.main_chain_store store in return (Store.Chain.history_mode chain_store)) diff --git a/src/lib_shell/config_directory.mli b/src/lib_shell/config_directory.mli index fcd7f58241be..35066bffd97a 100644 --- a/src/lib_shell/config_directory.mli +++ b/src/lib_shell/config_directory.mli @@ -26,6 +26,7 @@ val build_rpc_directory : user_activated_upgrades:User_activated.upgrades -> user_activated_protocol_overrides:User_activated.protocol_overrides -> + dal:Dal_config.t -> mainchain_validator:Chain_validator.t -> Store.t -> unit Tezos_rpc.Directory.t diff --git a/src/lib_shell/node.ml b/src/lib_shell/node.ml index 58846d4b9b3c..a669660cc438 100644 --- a/src/lib_shell/node.ml +++ b/src/lib_shell/node.ml @@ -68,6 +68,7 @@ type t = { p2p : Distributed_db.p2p; user_activated_upgrades : User_activated.upgrades; user_activated_protocol_overrides : User_activated.protocol_overrides; + dal : Tezos_crypto_dal.Cryptobox.Config.t; operation_metadata_size_limit : Shell_limits.operation_metadata_size_limit; (* For P2P RPCs *) shutdown : unit -> unit Lwt.t; @@ -338,6 +339,7 @@ let create ?(sandboxed = false) ?sandbox_parameters ~singleprocess ~version p2p; user_activated_upgrades; user_activated_protocol_overrides; + dal; operation_metadata_size_limit; shutdown; } @@ -368,6 +370,7 @@ let build_rpc_directory ~version ~commit_info node = (Config_directory.build_rpc_directory ~user_activated_upgrades:node.user_activated_upgrades ~user_activated_protocol_overrides:node.user_activated_protocol_overrides + ~dal:node.dal ~mainchain_validator:node.mainchain_validator node.store) ; merge (Version_directory.rpc_directory ~version ~commit_info node.p2p) ; diff --git a/src/lib_shell_services/config_services.ml b/src/lib_shell_services/config_services.ml index 12d3f899f2cd..a00c5cbc7d34 100644 --- a/src/lib_shell_services/config_services.ml +++ b/src/lib_shell_services/config_services.ml @@ -39,6 +39,13 @@ module Network = struct ~query:Tezos_rpc.Query.empty ~output:User_activated.protocol_overrides_encoding Tezos_rpc.Path.(path / "network" / "user_activated_protocol_overrides") + + let dal = + Tezos_rpc.Service.get_service + ~description:"Configuration for the DAL." + ~query:Tezos_rpc.Query.empty + ~output:Dal_config.encoding + Tezos_rpc.Path.(path / "network" / "dal") end let history_mode_encoding = @@ -63,3 +70,5 @@ end let user_activated_upgrades cctxt = Tezos_rpc.Context.make_call Network.user_activated_upgrades cctxt () () () + +let dal cctxt = Tezos_rpc.Context.make_call Network.dal cctxt () () () diff --git a/src/lib_shell_services/config_services.mli b/src/lib_shell_services/config_services.mli index cb5f69f1cd9f..434c5093342b 100644 --- a/src/lib_shell_services/config_services.mli +++ b/src/lib_shell_services/config_services.mli @@ -41,6 +41,8 @@ module Network : sig unit, User_activated.protocol_overrides ) Tezos_rpc.Service.t + + val dal : ([`GET], unit, unit, unit, unit, Dal_config.t) Tezos_rpc.Service.t end val history_mode : @@ -66,3 +68,5 @@ end val user_activated_upgrades : #Tezos_rpc.Context.simple -> User_activated.upgrades tzresult Lwt.t + +val dal : #Tezos_rpc.Context.simple -> Dal_config.t tzresult Lwt.t -- GitLab From cd0de3f5f8e062a59d22d6dad085480734ba2aad Mon Sep 17 00:00:00 2001 From: lin Date: Wed, 21 Jun 2023 14:07:17 +0900 Subject: [PATCH 08/13] Dal/Node: Use dal_config fetched from octez-node --- src/bin_dal_node/daemon.ml | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/src/bin_dal_node/daemon.ml b/src/bin_dal_node/daemon.ml index ef87e4b182cf..f6b1c6fcfad4 100644 --- a/src/bin_dal_node/daemon.ml +++ b/src/bin_dal_node/daemon.ml @@ -75,16 +75,16 @@ let () = (function Cryptobox_initialisation_failed str -> Some str | _ -> None) (fun str -> Cryptobox_initialisation_failed str) -let init_cryptobox unsafe_srs (proto_parameters : Dal_plugin.proto_parameters) = +let fetch_dal_config cctxt = + let open Lwt_syntax in + let* r = Config_services.dal cctxt in + match r with Error e -> return_error e | Ok dal -> return_ok dal + +let init_cryptobox dal_config (proto_parameters : Dal_plugin.proto_parameters) = let open Lwt_result_syntax in let* () = - let use_mock_srs_for_testing : Cryptobox.parameters option = - if unsafe_srs then Some proto_parameters.cryptobox_parameters else None - in let find_srs_files () = Tezos_base.Dal_srs.find_trusted_setup_files () in - Cryptobox.Config.init_dal - ~find_srs_files - Cryptobox.Config.{activated = true; use_mock_srs_for_testing} + Cryptobox.Config.init_dal ~find_srs_files dal_config in match Cryptobox.make proto_parameters.cryptobox_parameters with | Ok cryptobox -> return cryptobox @@ -180,18 +180,15 @@ module Handler = struct let* proto_parameters = Dal_plugin.get_constants `Main (`Head 0) cctxt in - let* cryptobox = - init_cryptobox - config.Configuration_file.use_unsafe_srs - proto_parameters - in + let* dal_config = fetch_dal_config cctxt in + let* cryptobox = init_cryptobox dal_config proto_parameters in let* () = Option.iter_es (Profile_manager.add_profile proto_parameters (Node_context.get_store ctxt) (Node_context.get_gs_worker ctxt)) - config.profile + config.Configuration_file.profile in Node_context.set_ready ctxt -- GitLab From afeab5d676e8b33da2b95a743efcca23effd9869 Mon Sep 17 00:00:00 2001 From: lin Date: Wed, 21 Jun 2023 16:56:25 +0900 Subject: [PATCH 09/13] Dal/Node: Remove unused use_unsafe_srs_for_tests CLI arg --- src/bin_dal_node/cli.ml | 22 +++------------------- src/bin_dal_node/cli.mli | 1 - src/bin_dal_node/configuration_file.ml | 19 +++---------------- src/bin_dal_node/configuration_file.mli | 2 -- src/bin_dal_node/main.ml | 13 ++----------- tezt/lib_tezos/dal_node.ml | 10 +++------- tezt/lib_tezos/dal_node.mli | 13 ++----------- 7 files changed, 13 insertions(+), 67 deletions(-) diff --git a/src/bin_dal_node/cli.ml b/src/bin_dal_node/cli.ml index 35f3daf8d2f1..12b498c3b874 100644 --- a/src/bin_dal_node/cli.ml +++ b/src/bin_dal_node/cli.ml @@ -122,12 +122,6 @@ module Term = struct & opt (some profile_arg) None & info ~docs ~doc ~docv:"[PKH]" ["profile"]) - (* This is provided as a command line option for facility but - eventually it should not appear to the user. *) - let use_unsafe_srs_for_tests = - let open Cmdliner in - Arg.(value & flag & info ["use-unsafe-srs-for-tests"]) - let peers = let open Cmdliner in let default_list = Configuration_file.default.peers in @@ -142,7 +136,7 @@ module Term = struct Cmdliner.Term.( ret (const process $ data_dir $ rpc_addr $ expected_pow $ net_addr - $ endpoint $ profile $ use_unsafe_srs_for_tests $ peers)) + $ endpoint $ profile $ peers)) end module Run = struct @@ -202,7 +196,6 @@ type options = { listen_addr : P2p_point.Id.t option; endpoint : Uri.t option; profile : Services.Types.profile option; - use_unsafe_srs_for_tests : bool; peers : P2p_point.Id.t list; } @@ -210,19 +203,10 @@ type t = Run | Config_init let make ~run = let run subcommand data_dir rpc_addr expected_pow listen_addr endpoint profile - use_unsafe_srs_for_tests peers = + peers = run subcommand - { - data_dir; - rpc_addr; - expected_pow; - listen_addr; - endpoint; - profile; - use_unsafe_srs_for_tests; - peers; - } + {data_dir; rpc_addr; expected_pow; listen_addr; endpoint; profile; peers} |> function | Ok v -> `Ok v | Error error -> diff --git a/src/bin_dal_node/cli.mli b/src/bin_dal_node/cli.mli index c6d7747f2670..70bb9ed52fc3 100644 --- a/src/bin_dal_node/cli.mli +++ b/src/bin_dal_node/cli.mli @@ -42,7 +42,6 @@ type options = { endpoint : Uri.t option; (** The endpoint on which to contact the L1 node. *) profile : Services.Types.profile option; (** Profile of the DAL node used for tracking shards. *) - use_unsafe_srs_for_tests : bool; peers : P2p_point.Id.t list; (** DAL nodes to connect to. *) } diff --git a/src/bin_dal_node/configuration_file.ml b/src/bin_dal_node/configuration_file.ml index d9b3a1af8aac..e7489224ceb2 100644 --- a/src/bin_dal_node/configuration_file.ml +++ b/src/bin_dal_node/configuration_file.ml @@ -26,7 +26,6 @@ type neighbor = {addr : string; port : int} type t = { - use_unsafe_srs : bool; data_dir : string; rpc_addr : P2p_point.Id.t; neighbors : neighbor list; @@ -55,8 +54,6 @@ let default_neighbors = [] let default_peers = [] -let default_use_unsafe_srs = false - let default_expected_pow = Gossipsub.Transport_layer.Default_parameters.P2p_config.expected_pow @@ -66,7 +63,6 @@ let default_endpoint = Uri.of_string "http://localhost:9732" let default = { - use_unsafe_srs = false; data_dir = default_data_dir; rpc_addr = default_rpc_addr; neighbors = default_neighbors; @@ -103,7 +99,6 @@ let encoding : t Data_encoding.t = let open Data_encoding in conv (fun { - use_unsafe_srs; data_dir; rpc_addr; listen_addr; @@ -114,8 +109,7 @@ let encoding : t Data_encoding.t = endpoint; profile; } -> - ( use_unsafe_srs, - data_dir, + ( data_dir, rpc_addr, listen_addr, neighbors, @@ -124,8 +118,7 @@ let encoding : t Data_encoding.t = network_name, endpoint, profile )) - (fun ( use_unsafe_srs, - data_dir, + (fun ( data_dir, rpc_addr, listen_addr, neighbors, @@ -135,7 +128,6 @@ let encoding : t Data_encoding.t = endpoint, profile ) -> { - use_unsafe_srs; data_dir; rpc_addr; listen_addr; @@ -146,12 +138,7 @@ let encoding : t Data_encoding.t = endpoint; profile; }) - (obj10 - (dft - "use_unsafe_srs" - ~description:"use unsafe srs for tests" - bool - default_use_unsafe_srs) + (obj9 (dft "data-dir" ~description:"Location of the data dir" diff --git a/src/bin_dal_node/configuration_file.mli b/src/bin_dal_node/configuration_file.mli index 70271e5a1888..15ef1bbc5f5f 100644 --- a/src/bin_dal_node/configuration_file.mli +++ b/src/bin_dal_node/configuration_file.mli @@ -26,8 +26,6 @@ type neighbor = {addr : string; port : int} type t = { - use_unsafe_srs : bool; - (** Run dal-node in test mode with an unsafe SRS (Trusted setup) *) data_dir : string; (** The path to the DAL node data directory *) rpc_addr : P2p_point.Id.t; (** The address the DAL node listens to *) neighbors : neighbor list; (** List of neighbors to reach within the DAL *) diff --git a/src/bin_dal_node/main.ml b/src/bin_dal_node/main.ml index ffff7b26ba91..fe54210b9bca 100644 --- a/src/bin_dal_node/main.ml +++ b/src/bin_dal_node/main.ml @@ -25,22 +25,13 @@ let merge Cli. - { - data_dir; - rpc_addr; - expected_pow; - listen_addr; - endpoint; - profile; - use_unsafe_srs_for_tests; - peers; - } configuration = + {data_dir; rpc_addr; expected_pow; listen_addr; endpoint; profile; peers} + configuration = Configuration_file. { configuration with data_dir = Option.value ~default:configuration.data_dir data_dir; rpc_addr = Option.value ~default:configuration.rpc_addr rpc_addr; - use_unsafe_srs = use_unsafe_srs_for_tests || configuration.use_unsafe_srs; listen_addr = Option.value ~default:configuration.listen_addr listen_addr; expected_pow = Option.value ~default:configuration.expected_pow expected_pow; diff --git a/tezt/lib_tezos/dal_node.ml b/tezt/lib_tezos/dal_node.ml index ac9281389e5c..59c53ed8663c 100644 --- a/tezt/lib_tezos/dal_node.ml +++ b/tezt/lib_tezos/dal_node.ml @@ -78,8 +78,7 @@ let data_dir dal_node = dal_node.persistent_state.data_dir let spawn_command dal_node = Process.spawn ~name:dal_node.name ~color:dal_node.color dal_node.path -let spawn_config_init ?(use_unsafe_srs = true) ?(expected_pow = 0.) - ?(peers = []) dal_node = +let spawn_config_init ?(expected_pow = 0.) ?(peers = []) dal_node = spawn_command dal_node @@ List.filter_map Fun.id @@ -92,7 +91,6 @@ let spawn_config_init ?(use_unsafe_srs = true) ?(expected_pow = 0.) Some (Format.asprintf "%s:%d" (rpc_host dal_node) (rpc_port dal_node)); Some "--net-addr"; Some (listen_addr dal_node); - (if use_unsafe_srs then Some "--use-unsafe-srs-for-tests" else None); Some "--expected-pow"; Some (string_of_float expected_pow); Some "--peers"; @@ -109,10 +107,8 @@ module Config_file = struct let update dal_node update = read dal_node |> update |> write dal_node end -let init_config ?use_unsafe_srs ?expected_pow ?peers dal_node = - let process = - spawn_config_init ?use_unsafe_srs ?expected_pow ?peers dal_node - in +let init_config ?expected_pow ?peers dal_node = + let process = spawn_config_init ?expected_pow ?peers dal_node in Process.check process let read_identity dal_node = diff --git a/tezt/lib_tezos/dal_node.mli b/tezt/lib_tezos/dal_node.mli index 36d2251bed3a..e7cbbe3321de 100644 --- a/tezt/lib_tezos/dal_node.mli +++ b/tezt/lib_tezos/dal_node.mli @@ -94,18 +94,9 @@ val wait : t -> Unix.process_status Lwt.t (** Run [octez-dal-node config init]. - If [use_unsafe_srs] is [true], the dal node runs with unsafe computed SRS - allowing tests to run faster, without the need of large file. Default is - [true] in tezt. - [expected_pow] allows to change the PoW difficulty. Default value is 0. *) -val init_config : - ?use_unsafe_srs:bool -> - ?expected_pow:float -> - ?peers:string list -> - t -> - unit Lwt.t +val init_config : ?expected_pow:float -> ?peers:string list -> t -> unit Lwt.t module Config_file : sig (** DAL node configuration files. *) @@ -120,7 +111,7 @@ module Config_file : sig running, it needs to be restarted manually. Example: - [Node.Config_file.update node (JSON.put ("use_unsafe_srs", "true"))] *) + [Node.Config_file.update node (JSON.put ("expected_pow", "0.0"))] *) val update : t -> (JSON.t -> JSON.t) -> unit end -- GitLab From e442e642379eaed2ab1e6b4bb880d688f51a7498 Mon Sep 17 00:00:00 2001 From: lin Date: Thu, 22 Jun 2023 01:51:39 +0900 Subject: [PATCH 10/13] Shell/RPC: Add TODO for exposing whole network config --- src/lib_shell_services/config_services.mli | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/lib_shell_services/config_services.mli b/src/lib_shell_services/config_services.mli index 434c5093342b..926583c97c3a 100644 --- a/src/lib_shell_services/config_services.mli +++ b/src/lib_shell_services/config_services.mli @@ -42,6 +42,15 @@ module Network : sig User_activated.protocol_overrides ) Tezos_rpc.Service.t + (* TODO: https://gitlab.com/tezos/tezos/-/issues/5926 + + Consider exposing the whole network record via `config/network` + instead of exposing each field separately. Note that the + [Config_file.blockchain_network] lives in [lib_node_config], which isn't js_combatible, + so we can't reference it in [lib_shell_services], which is js_compatible. + Hence to do this we would need to extract [Config_file.blockchain_network] into a + separate directory, as done for [lib_dal_config]. *) + val dal : ([`GET], unit, unit, unit, unit, Dal_config.t) Tezos_rpc.Service.t end -- GitLab From ff3ca31b7ef298ac991f73b60006dd8c5ee2072b Mon Sep 17 00:00:00 2001 From: lin Date: Thu, 22 Jun 2023 16:41:41 +0900 Subject: [PATCH 11/13] Dal/Shell: Rename dal to dal_config in network config --- docs/doc_gen/node_helpers.ml | 2 +- src/bin_dal_node/daemon.ml | 6 ++++-- src/bin_node/node_replay_command.ml | 2 +- src/bin_node/node_run_command.ml | 4 ++-- src/lib_node_config/config_file.ml | 16 ++++++++-------- src/lib_node_config/config_file.mli | 2 +- src/lib_shell/config_directory.ml | 5 +++-- src/lib_shell/config_directory.mli | 2 +- src/lib_shell/node.ml | 12 ++++++------ src/lib_shell/node.mli | 2 +- src/lib_shell/test/test_node.ml | 2 +- src/lib_shell_services/config_services.ml | 7 ++++--- src/lib_shell_services/config_services.mli | 5 +++-- tezt/lib_tezos/node.ml | 2 +- 14 files changed, 37 insertions(+), 32 deletions(-) diff --git a/docs/doc_gen/node_helpers.ml b/docs/doc_gen/node_helpers.ml index da952f0ef1e6..7d916bdc37a9 100644 --- a/docs/doc_gen/node_helpers.ml +++ b/docs/doc_gen/node_helpers.ml @@ -57,7 +57,7 @@ let with_node f = target = None; disable_mempool = true; enable_testchain = false; - dal = Tezos_crypto_dal.Cryptobox.Config.default; + dal_config = Tezos_crypto_dal.Cryptobox.Config.default; } in let version = diff --git a/src/bin_dal_node/daemon.ml b/src/bin_dal_node/daemon.ml index f6b1c6fcfad4..3f8b16c6ae41 100644 --- a/src/bin_dal_node/daemon.ml +++ b/src/bin_dal_node/daemon.ml @@ -77,8 +77,10 @@ let () = let fetch_dal_config cctxt = let open Lwt_syntax in - let* r = Config_services.dal cctxt in - match r with Error e -> return_error e | Ok dal -> return_ok dal + let* r = Config_services.dal_config cctxt in + match r with + | Error e -> return_error e + | Ok dal_config -> return_ok dal_config let init_cryptobox dal_config (proto_parameters : Dal_plugin.proto_parameters) = let open Lwt_result_syntax in diff --git a/src/bin_node/node_replay_command.ml b/src/bin_node/node_replay_command.ml index f02cfd19b54e..fe8dd992eb04 100644 --- a/src/bin_node/node_replay_command.ml +++ b/src/bin_node/node_replay_command.ml @@ -424,7 +424,7 @@ let replay ~internal_events ~singleprocess ~strict protocol_root; process_path = Sys.executable_name; sandbox_parameters = None; - dal_config = config.blockchain_network.dal; + dal_config = config.blockchain_network.dal_config; internal_events; }) in diff --git a/src/bin_node/node_run_command.ml b/src/bin_node/node_run_command.ml index 364427d0c553..2b1ed52beef7 100644 --- a/src/bin_node/node_run_command.ml +++ b/src/bin_node/node_run_command.ml @@ -315,7 +315,7 @@ let init_node ?sandbox ?target ~identity ~singleprocess ~internal_events target; enable_testchain = config.p2p.enable_testchain; disable_mempool = config.p2p.disable_mempool; - dal = config.blockchain_network.dal; + dal_config = config.blockchain_network.dal_config; } in let* () = @@ -542,7 +542,7 @@ let run ?verbosity ?sandbox ?target ?(cli_warnings = []) let find_srs_files () = Tezos_base.Dal_srs.find_trusted_setup_files () in Tezos_crypto_dal.Cryptobox.Config.init_dal ~find_srs_files - config.blockchain_network.dal + config.blockchain_network.dal_config in let*! node = init_node diff --git a/src/lib_node_config/config_file.ml b/src/lib_node_config/config_file.ml index a2c9e3d67e09..57703ad29e7c 100644 --- a/src/lib_node_config/config_file.ml +++ b/src/lib_node_config/config_file.ml @@ -53,14 +53,14 @@ type blockchain_network = { user_activated_upgrades : User_activated.upgrades; user_activated_protocol_overrides : User_activated.protocol_overrides; default_bootstrap_peers : string list; - dal : Tezos_crypto_dal.Cryptobox.Config.t; + dal_config : Tezos_crypto_dal.Cryptobox.Config.t; } let make_blockchain_network ~alias ~chain_name ?old_chain_name ?incompatible_chain_name ~sandboxed_chain_name ?(user_activated_upgrades = []) ?(user_activated_protocol_overrides = []) ?(default_bootstrap_peers = []) ?genesis_parameters - ?(dal = Tezos_crypto_dal.Cryptobox.Config.default) genesis = + ?(dal_config = Tezos_crypto_dal.Cryptobox.Config.default) genesis = let of_string = Distributed_db_version.Name.of_string in { alias = Some alias; @@ -80,7 +80,7 @@ let make_blockchain_network ~alias ~chain_name ?old_chain_name (Protocol_hash.of_b58check_exn a, Protocol_hash.of_b58check_exn b)) user_activated_protocol_overrides; default_bootstrap_peers; - dal; + dal_config; } (* The script in scripts/user_activated_upgrade.sh patches the following lines @@ -243,7 +243,7 @@ let blockchain_network_encoding : blockchain_network Data_encoding.t = user_activated_upgrades; user_activated_protocol_overrides; default_bootstrap_peers; - dal; + dal_config; } -> ( genesis, genesis_parameters, @@ -254,7 +254,7 @@ let blockchain_network_encoding : blockchain_network Data_encoding.t = user_activated_upgrades, user_activated_protocol_overrides, default_bootstrap_peers, - dal )) + dal_config )) (fun ( genesis, genesis_parameters, chain_name, @@ -264,7 +264,7 @@ let blockchain_network_encoding : blockchain_network Data_encoding.t = user_activated_upgrades, user_activated_protocol_overrides, default_bootstrap_peers, - dal ) -> + dal_config ) -> { alias = None; genesis; @@ -276,7 +276,7 @@ let blockchain_network_encoding : blockchain_network Data_encoding.t = user_activated_upgrades; user_activated_protocol_overrides; default_bootstrap_peers; - dal; + dal_config; }) (let chain = Distributed_db_version.Name.encoding in obj10 @@ -298,7 +298,7 @@ let blockchain_network_encoding : blockchain_network Data_encoding.t = (list string) []) (dft - "dal" + "dal_config" ~description: "USE FOR TESTING PURPOSE ONLY. Configuration for the \ data-availibility layer" diff --git a/src/lib_node_config/config_file.mli b/src/lib_node_config/config_file.mli index 146ee4a3402c..861b3b1f078b 100644 --- a/src/lib_node_config/config_file.mli +++ b/src/lib_node_config/config_file.mli @@ -38,7 +38,7 @@ type blockchain_network = { user_activated_upgrades : User_activated.upgrades; user_activated_protocol_overrides : User_activated.protocol_overrides; default_bootstrap_peers : string list; - dal : Tezos_crypto_dal.Cryptobox.Config.t; + dal_config : Tezos_crypto_dal.Cryptobox.Config.t; } (** List of built-in networks with their alias. *) diff --git a/src/lib_shell/config_directory.ml b/src/lib_shell/config_directory.ml index 31c08e14ac03..8111aa5ea903 100644 --- a/src/lib_shell/config_directory.ml +++ b/src/lib_shell/config_directory.ml @@ -24,7 +24,7 @@ (*****************************************************************************) let build_rpc_directory ~user_activated_upgrades - ~user_activated_protocol_overrides ~dal ~mainchain_validator store = + ~user_activated_protocol_overrides ~dal_config ~mainchain_validator store = let open Lwt_result_syntax in let register endpoint f directory = Tezos_rpc.Directory.register directory endpoint f @@ -35,7 +35,8 @@ let build_rpc_directory ~user_activated_upgrades |> register Config_services.Network.user_activated_protocol_overrides (fun () () () -> return user_activated_protocol_overrides) - |> register Config_services.Network.dal (fun () () () -> return dal) + |> register Config_services.Network.dal_config (fun () () () -> + return dal_config) |> register Config_services.history_mode (fun () () () -> let chain_store = Store.main_chain_store store in return (Store.Chain.history_mode chain_store)) diff --git a/src/lib_shell/config_directory.mli b/src/lib_shell/config_directory.mli index 35066bffd97a..ec9a14966812 100644 --- a/src/lib_shell/config_directory.mli +++ b/src/lib_shell/config_directory.mli @@ -26,7 +26,7 @@ val build_rpc_directory : user_activated_upgrades:User_activated.upgrades -> user_activated_protocol_overrides:User_activated.protocol_overrides -> - dal:Dal_config.t -> + dal_config:Dal_config.t -> mainchain_validator:Chain_validator.t -> Store.t -> unit Tezos_rpc.Directory.t diff --git a/src/lib_shell/node.ml b/src/lib_shell/node.ml index a669660cc438..35543c6c0b0a 100644 --- a/src/lib_shell/node.ml +++ b/src/lib_shell/node.ml @@ -68,7 +68,7 @@ type t = { p2p : Distributed_db.p2p; user_activated_upgrades : User_activated.upgrades; user_activated_protocol_overrides : User_activated.protocol_overrides; - dal : Tezos_crypto_dal.Cryptobox.Config.t; + dal_config : Tezos_crypto_dal.Cryptobox.Config.t; operation_metadata_size_limit : Shell_limits.operation_metadata_size_limit; (* For P2P RPCs *) shutdown : unit -> unit Lwt.t; @@ -137,7 +137,7 @@ type config = { target : (Block_hash.t * int32) option; disable_mempool : bool; enable_testchain : bool; - dal : Tezos_crypto_dal.Cryptobox.Config.t; + dal_config : Tezos_crypto_dal.Cryptobox.Config.t; } (* These protocols are linked with the node and @@ -217,7 +217,7 @@ let create ?(sandboxed = false) ?sandbox_parameters ~singleprocess ~version target; disable_mempool; enable_testchain; - dal; + dal_config; } peer_validator_limits block_validator_limits prevalidator_limits chain_validator_limits history_mode = let open Lwt_result_syntax in @@ -271,7 +271,7 @@ let create ?(sandboxed = false) ?sandbox_parameters ~singleprocess ~version protocol_root; process_path = Sys.executable_name; sandbox_parameters; - dal_config = dal; + dal_config; internal_events; }) in @@ -339,7 +339,7 @@ let create ?(sandboxed = false) ?sandbox_parameters ~singleprocess ~version p2p; user_activated_upgrades; user_activated_protocol_overrides; - dal; + dal_config; operation_metadata_size_limit; shutdown; } @@ -370,7 +370,7 @@ let build_rpc_directory ~version ~commit_info node = (Config_directory.build_rpc_directory ~user_activated_upgrades:node.user_activated_upgrades ~user_activated_protocol_overrides:node.user_activated_protocol_overrides - ~dal:node.dal + ~dal_config:node.dal_config ~mainchain_validator:node.mainchain_validator node.store) ; merge (Version_directory.rpc_directory ~version ~commit_info node.p2p) ; diff --git a/src/lib_shell/node.mli b/src/lib_shell/node.mli index cb2489d880ae..9f154100514b 100644 --- a/src/lib_shell/node.mli +++ b/src/lib_shell/node.mli @@ -48,7 +48,7 @@ type config = { (** If [true], all non-empty mempools will be ignored. *) enable_testchain : bool; (** If [false], testchain related messages will be ignored. *) - dal : Tezos_crypto_dal.Cryptobox.Config.t; + dal_config : Tezos_crypto_dal.Cryptobox.Config.t; } val create : diff --git a/src/lib_shell/test/test_node.ml b/src/lib_shell/test/test_node.ml index f1cfbbb817ee..9c2f4aa8f867 100644 --- a/src/lib_shell/test/test_node.ml +++ b/src/lib_shell/test/test_node.ml @@ -59,7 +59,7 @@ let init_config (* (f : 'a -> unit -> unit Lwt.t) *) f test_dir switch () : target = None; disable_mempool = false; enable_testchain = true; - dal = Tezos_crypto_dal.Cryptobox.Config.default; + dal_config = Tezos_crypto_dal.Cryptobox.Config.default; } in f sandbox_parameters config switch () diff --git a/src/lib_shell_services/config_services.ml b/src/lib_shell_services/config_services.ml index a00c5cbc7d34..c6851e300454 100644 --- a/src/lib_shell_services/config_services.ml +++ b/src/lib_shell_services/config_services.ml @@ -40,9 +40,9 @@ module Network = struct ~output:User_activated.protocol_overrides_encoding Tezos_rpc.Path.(path / "network" / "user_activated_protocol_overrides") - let dal = + let dal_config = Tezos_rpc.Service.get_service - ~description:"Configuration for the DAL." + ~description:"Configuration for the DAL" ~query:Tezos_rpc.Query.empty ~output:Dal_config.encoding Tezos_rpc.Path.(path / "network" / "dal") @@ -71,4 +71,5 @@ end let user_activated_upgrades cctxt = Tezos_rpc.Context.make_call Network.user_activated_upgrades cctxt () () () -let dal cctxt = Tezos_rpc.Context.make_call Network.dal cctxt () () () +let dal_config cctxt = + Tezos_rpc.Context.make_call Network.dal_config cctxt () () () diff --git a/src/lib_shell_services/config_services.mli b/src/lib_shell_services/config_services.mli index 926583c97c3a..573bf3c3de5c 100644 --- a/src/lib_shell_services/config_services.mli +++ b/src/lib_shell_services/config_services.mli @@ -51,7 +51,8 @@ module Network : sig Hence to do this we would need to extract [Config_file.blockchain_network] into a separate directory, as done for [lib_dal_config]. *) - val dal : ([`GET], unit, unit, unit, unit, Dal_config.t) Tezos_rpc.Service.t + val dal_config : + ([`GET], unit, unit, unit, unit, Dal_config.t) Tezos_rpc.Service.t end val history_mode : @@ -78,4 +79,4 @@ end val user_activated_upgrades : #Tezos_rpc.Context.simple -> User_activated.upgrades tzresult Lwt.t -val dal : #Tezos_rpc.Context.simple -> Dal_config.t tzresult Lwt.t +val dal_config : #Tezos_rpc.Context.simple -> Dal_config.t tzresult Lwt.t diff --git a/tezt/lib_tezos/node.ml b/tezt/lib_tezos/node.ml index e39b7d5f16f6..4ffa4e501cb2 100644 --- a/tezt/lib_tezos/node.ml +++ b/tezt/lib_tezos/node.ml @@ -442,7 +442,7 @@ module Config_file = struct let network = sandbox_network_config |> JSON.annotate ~origin:"set_sandbox_network_with_dal_config" - |> JSON.put ("dal", dal_config_json) + |> JSON.put ("dal_config", dal_config_json) in JSON.put ("network", network) old_config -- GitLab From bbf1eb0f0c8911a3c9ee5d86a94f46064478120c Mon Sep 17 00:00:00 2001 From: lin Date: Thu, 22 Jun 2023 23:58:31 +0900 Subject: [PATCH 12/13] Node: Add comment for dal_config field --- src/lib_node_config/config_file.ml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib_node_config/config_file.ml b/src/lib_node_config/config_file.ml index 57703ad29e7c..04160b0db59e 100644 --- a/src/lib_node_config/config_file.ml +++ b/src/lib_node_config/config_file.ml @@ -303,6 +303,8 @@ let blockchain_network_encoding : blockchain_network Data_encoding.t = "USE FOR TESTING PURPOSE ONLY. Configuration for the \ data-availibility layer" Tezos_crypto_dal.Cryptobox.Config.encoding + (* We use default config unless explicitly overridden via the config file. + Note that such override is expected to only be used in test networks. *) Tezos_crypto_dal.Cryptobox.Config.default)) let builtin_blockchain_networks_with_tags = -- GitLab From 7f1bcb7bc1653ca8ad465c97b82a295f840178a6 Mon Sep 17 00:00:00 2001 From: lin Date: Thu, 22 Jun 2023 18:12:58 +0900 Subject: [PATCH 13/13] Manifest/Node: Make dal_config a sublib --- .gitlab/ci/jobs/packaging/opam_package.yml | 49 ++++++++----------- dune-project | 1 - manifest/main.ml | 6 +-- opam/tezos-crypto-dal.opam | 3 +- opam/tezos-dal-config.opam | 20 -------- opam/tezos-protocol-environment.opam | 1 - opam/tezos-shell-services.opam | 2 +- opam/tezos-shell.opam | 2 +- .../dal_config}/dal_config.ml | 0 .../dal_config}/dal_config.mli | 0 .../dal_config}/dune | 4 +- src/lib_crypto_dal/dune | 4 +- src/lib_crypto_dal/test/dune | 4 +- src/lib_protocol_environment/dune | 1 - src/lib_shell/dune | 4 +- src/lib_shell_services/dune | 4 +- 16 files changed, 36 insertions(+), 69 deletions(-) delete mode 100644 opam/tezos-dal-config.opam rename src/{lib_dal_config => lib_crypto_dal/dal_config}/dal_config.ml (100%) rename src/{lib_dal_config => lib_crypto_dal/dal_config}/dal_config.mli (100%) rename src/{lib_dal_config => lib_crypto_dal/dal_config}/dune (71%) diff --git a/.gitlab/ci/jobs/packaging/opam_package.yml b/.gitlab/ci/jobs/packaging/opam_package.yml index 9f4849f4fa54..7de8d20514d1 100644 --- a/.gitlab/ci/jobs/packaging/opam_package.yml +++ b/.gitlab/ci/jobs/packaging/opam_package.yml @@ -647,7 +647,7 @@ opam:octez-smart-rollup-node-PtNairob: opam:octez-smart-rollup-wasm-benchmark-lib: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_3 + - .rules_template__trigger_all_opam_batch_4 variables: package: octez-smart-rollup-wasm-benchmark-lib @@ -715,7 +715,7 @@ opam:tezos-baking-alpha-commands: opam:tezos-base: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_6 + - .rules_template__trigger_all_opam_batch_7 variables: package: tezos-base @@ -753,7 +753,7 @@ opam:tezos-base-test-helpers: opam:tezos-clic: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_6 + - .rules_template__trigger_all_opam_batch_7 variables: package: tezos-clic @@ -907,7 +907,7 @@ opam:tezos-client-base-unix: opam:tezos-client-commands: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_5 + - .rules_template__trigger_all_opam_batch_6 variables: package: tezos-client-commands @@ -921,7 +921,7 @@ opam:tezos-client-demo-counter: opam:tezos-client-genesis: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_2 + - .rules_template__trigger_all_opam_batch_3 variables: package: tezos-client-genesis @@ -942,14 +942,14 @@ opam:tezos-context-ops: opam:tezos-crypto: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_6 + - .rules_template__trigger_all_opam_batch_7 variables: package: tezos-crypto opam:tezos-crypto-dal: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_6 + - .rules_template__trigger_all_opam_batch_7 variables: package: tezos-crypto-dal @@ -973,13 +973,6 @@ opam:tezos-crypto-dal: # Ignoring unreleased package tezos-dal-alpha. -opam:tezos-dal-config: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_7 - variables: - package: tezos-dal-config - opam:tezos-dal-node-lib: extends: - .opam_template @@ -997,7 +990,7 @@ opam:tezos-dal-node-services: opam:tezos-embedded-protocol-000-Ps9mPmXa: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_2 + - .rules_template__trigger_all_opam_batch_3 variables: package: tezos-embedded-protocol-000-Ps9mPmXa @@ -1266,14 +1259,14 @@ opam:tezos-mockup-commands: opam:tezos-mockup-proxy: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_4 + - .rules_template__trigger_all_opam_batch_5 variables: package: tezos-mockup-proxy opam:tezos-mockup-registration: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_4 + - .rules_template__trigger_all_opam_batch_5 variables: package: tezos-mockup-registration @@ -1296,14 +1289,14 @@ opam:tezos-p2p-services: opam:tezos-protocol-000-Ps9mPmXa: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_4 + - .rules_template__trigger_all_opam_batch_5 variables: package: tezos-protocol-000-Ps9mPmXa opam:tezos-protocol-001-PtCJ7pwo: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_4 + - .rules_template__trigger_all_opam_batch_5 variables: package: tezos-protocol-001-PtCJ7pwo @@ -1463,7 +1456,7 @@ opam:tezos-protocol-demo-noops: opam:tezos-protocol-environment: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_5 + - .rules_template__trigger_all_opam_batch_6 variables: package: tezos-protocol-environment @@ -1512,7 +1505,7 @@ opam:tezos-protocol-plugin-009-PsFLoren: opam:tezos-protocol-plugin-009-PsFLoren-registerer: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_1 + - .rules_template__trigger_all_opam_batch_2 variables: package: tezos-protocol-plugin-009-PsFLoren-registerer @@ -1635,7 +1628,7 @@ opam:tezos-protocol-plugin-017-PtNairob-registerer: opam:tezos-protocol-plugin-alpha: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_3 + - .rules_template__trigger_all_opam_batch_4 variables: package: tezos-protocol-plugin-alpha @@ -1714,7 +1707,7 @@ opam:tezos-rpc-http-server: opam:tezos-sapling: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_6 + - .rules_template__trigger_all_opam_batch_7 variables: package: tezos-sapling @@ -1723,7 +1716,7 @@ opam:tezos-sapling: opam:tezos-scoru-wasm: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_5 + - .rules_template__trigger_all_opam_batch_6 variables: package: tezos-scoru-wasm @@ -1732,7 +1725,7 @@ opam:tezos-scoru-wasm: opam:tezos-scoru-wasm-fast: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_5 + - .rules_template__trigger_all_opam_batch_6 variables: package: tezos-scoru-wasm-fast @@ -1779,7 +1772,7 @@ opam:tezos-shell-services: opam:tezos-signer-backends: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_5 + - .rules_template__trigger_all_opam_batch_6 variables: package: tezos-signer-backends @@ -1871,7 +1864,7 @@ opam:tezos-tree-encoding: opam:tezos-validation: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_3 + - .rules_template__trigger_all_opam_batch_4 variables: package: tezos-validation @@ -1922,6 +1915,6 @@ opam:tezt-performance-regression: opam:tezt-tezos: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_6 + - .rules_template__trigger_all_opam_batch_7 variables: package: tezt-tezos diff --git a/dune-project b/dune-project index 5511a5eb9016..63cf1fe4f3f0 100644 --- a/dune-project +++ b/dune-project @@ -115,7 +115,6 @@ (package (name tezos-dal-016-PtMumbai)) (package (name tezos-dal-017-PtNairob)) (package (name tezos-dal-alpha)) -(package (name tezos-dal-config)) (package (name tezos-dal-node-lib)) (package (name tezos-dal-node-services)) (package (name tezos-embedded-protocol-000-Ps9mPmXa)) diff --git a/manifest/main.ml b/manifest/main.ml index e085d5335bc1..1d9f3774298f 100644 --- a/manifest/main.ml +++ b/manifest/main.ml @@ -1571,9 +1571,8 @@ let _octez_epoxy_tx_tests = let octez_dal_config = public_lib - "tezos-dal-config" - ~path:"src/lib_dal_config" - ~synopsis:"Tezos: DAL configuration" + "tezos-crypto-dal.octez-dal-config" + ~path:"src/lib_crypto_dal/dal_config" ~deps:[data_encoding |> open_] ~js_compatible:true @@ -2737,7 +2736,6 @@ protocols.|} bls12_381; octez_plonk |> open_; octez_crypto_dal; - octez_dal_config; vdf; aches; aches_lwt; diff --git a/opam/tezos-crypto-dal.opam b/opam/tezos-crypto-dal.opam index 9ca373fcbff2..78722761c6e5 100644 --- a/opam/tezos-crypto-dal.opam +++ b/opam/tezos-crypto-dal.opam @@ -10,10 +10,9 @@ license: "MIT" depends: [ "dune" { >= "3.0" } "ocaml" { >= "4.14" } + "data-encoding" { >= "0.7.1" & < "1.0.0" } "tezos-stdlib" "tezos-error-monad" - "data-encoding" { >= "0.7.1" & < "1.0.0" } - "tezos-dal-config" "tezos-crypto" "octez-bls12-381-polynomial" "lwt" { >= "5.6.0" } diff --git a/opam/tezos-dal-config.opam b/opam/tezos-dal-config.opam deleted file mode 100644 index c045a08f06fc..000000000000 --- a/opam/tezos-dal-config.opam +++ /dev/null @@ -1,20 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file manifest/main.ml instead. -opam-version: "2.0" -maintainer: "contact@tezos.com" -authors: ["Tezos devteam"] -homepage: "https://www.tezos.com/" -bug-reports: "https://gitlab.com/tezos/tezos/issues" -dev-repo: "git+https://gitlab.com/tezos/tezos.git" -license: "MIT" -depends: [ - "dune" { >= "3.0" } - "ocaml" { >= "4.14" } - "data-encoding" { >= "0.7.1" & < "1.0.0" } -] -build: [ - ["rm" "-r" "vendors" "contrib"] - ["dune" "build" "-p" name "-j" jobs] - ["dune" "runtest" "-p" name "-j" jobs] {with-test} -] -synopsis: "Tezos: DAL configuration" diff --git a/opam/tezos-protocol-environment.opam b/opam/tezos-protocol-environment.opam index 49f9457a490f..68d6782c6d56 100644 --- a/opam/tezos-protocol-environment.opam +++ b/opam/tezos-protocol-environment.opam @@ -20,7 +20,6 @@ depends: [ "zarith" { >= "1.12" & < "1.13" } "zarith_stubs_js" "tezos-crypto-dal" - "tezos-dal-config" "class_group_vdf" { >= "0.0.4" } "aches" { >= "1.0.0" } "aches-lwt" { >= "1.0.0" } diff --git a/opam/tezos-shell-services.opam b/opam/tezos-shell-services.opam index 1dc51dd10379..7d21f0fb3014 100644 --- a/opam/tezos-shell-services.opam +++ b/opam/tezos-shell-services.opam @@ -15,7 +15,7 @@ depends: [ "tezos-p2p-services" "tezos-version" "tezos-context" - "tezos-dal-config" + "tezos-crypto-dal" "tezt" { with-test & >= "3.1.1" } "octez-alcotezt" {with-test} ] diff --git a/opam/tezos-shell.opam b/opam/tezos-shell.opam index 97cfd563c81c..02191b089483 100644 --- a/opam/tezos-shell.opam +++ b/opam/tezos-shell.opam @@ -30,7 +30,7 @@ depends: [ "tezos-workers" "tezos-validation" "tezos-version" - "tezos-dal-config" + "tezos-crypto-dal" "lwt-exit" "tezt" { with-test & >= "3.1.1" } "tezos-base-test-helpers" {with-test} diff --git a/src/lib_dal_config/dal_config.ml b/src/lib_crypto_dal/dal_config/dal_config.ml similarity index 100% rename from src/lib_dal_config/dal_config.ml rename to src/lib_crypto_dal/dal_config/dal_config.ml diff --git a/src/lib_dal_config/dal_config.mli b/src/lib_crypto_dal/dal_config/dal_config.mli similarity index 100% rename from src/lib_dal_config/dal_config.mli rename to src/lib_crypto_dal/dal_config/dal_config.mli diff --git a/src/lib_dal_config/dune b/src/lib_crypto_dal/dal_config/dune similarity index 71% rename from src/lib_dal_config/dune rename to src/lib_crypto_dal/dal_config/dune index 2ed8a72e7e02..49e257187bb8 100644 --- a/src/lib_dal_config/dune +++ b/src/lib_crypto_dal/dal_config/dune @@ -2,8 +2,8 @@ ; Edit file manifest/main.ml instead. (library - (name tezos_dal_config) - (public_name tezos-dal-config) + (name tezos_crypto_dal_octez_dal_config) + (public_name tezos-crypto-dal.octez-dal-config) (instrumentation (backend bisect_ppx)) (libraries data-encoding) diff --git a/src/lib_crypto_dal/dune b/src/lib_crypto_dal/dune index 89fdefec88d2..7ae166d17896 100644 --- a/src/lib_crypto_dal/dune +++ b/src/lib_crypto_dal/dune @@ -9,7 +9,7 @@ tezos-stdlib tezos-error-monad data-encoding - tezos-dal-config + tezos-crypto-dal.octez-dal-config tezos-crypto octez-bls12-381-polynomial lwt.unix) @@ -18,4 +18,4 @@ -open Tezos_stdlib -open Tezos_error_monad -open Data_encoding - -open Tezos_dal_config)) + -open Tezos_crypto_dal_octez_dal_config)) diff --git a/src/lib_crypto_dal/test/dune b/src/lib_crypto_dal/test/dune index 829f37ad729d..33fb88622e44 100644 --- a/src/lib_crypto_dal/test/dune +++ b/src/lib_crypto_dal/test/dune @@ -8,7 +8,7 @@ tezt.core tezos-stdlib tezos-crypto-dal - tezos-dal-config + tezos-crypto-dal.octez-dal-config tezos-error-monad data-encoding octez-alcotezt @@ -22,7 +22,7 @@ -open Tezt_core.Base -open Tezos_stdlib -open Tezos_crypto_dal - -open Tezos_dal_config + -open Tezos_crypto_dal_octez_dal_config -open Tezos_error_monad -open Data_encoding -open Octez_alcotezt) diff --git a/src/lib_protocol_environment/dune b/src/lib_protocol_environment/dune index 3f0869674d3e..8c95e6215a89 100644 --- a/src/lib_protocol_environment/dune +++ b/src/lib_protocol_environment/dune @@ -11,7 +11,6 @@ bls12-381 octez-plonk tezos-crypto-dal - tezos-dal-config class_group_vdf aches aches-lwt diff --git a/src/lib_shell/dune b/src/lib_shell/dune index 968d17dca36c..e5d54e331de6 100644 --- a/src/lib_shell/dune +++ b/src/lib_shell/dune @@ -27,7 +27,7 @@ tezos-workers tezos-validation tezos-version - tezos-dal-config + tezos-crypto-dal.octez-dal-config lwt-exit) (inline_tests (flags -verbose) (modes native)) (preprocess (pps ppx_expect)) @@ -51,6 +51,6 @@ -open Tezos_workers -open Tezos_validation -open Tezos_version - -open Tezos_dal_config)) + -open Tezos_crypto_dal_octez_dal_config)) (documentation (package tezos-shell)) diff --git a/src/lib_shell_services/dune b/src/lib_shell_services/dune index 0ab7b7128053..8fd6fe09da75 100644 --- a/src/lib_shell_services/dune +++ b/src/lib_shell_services/dune @@ -14,7 +14,7 @@ tezos-version tezos-context.sigs tezos-context.merkle_proof_encoding - tezos-dal-config) + tezos-crypto-dal.octez-dal-config) (js_of_ocaml) (library_flags (:standard -linkall)) (flags @@ -23,4 +23,4 @@ -open Tezos_base -open Tezos_p2p_services -open Tezos_version - -open Tezos_dal_config)) + -open Tezos_crypto_dal_octez_dal_config)) -- GitLab