From 68bac32836ccdd43e8165f53047539f4f55f73cb Mon Sep 17 00:00:00 2001 From: Albin Coquereau Date: Mon, 27 May 2024 08:48:24 +0200 Subject: [PATCH 1/7] lib_shell_services/block_services: remove RPC version 0 --- src/lib_shell_services/block_services.ml | 81 ++++++----------------- src/lib_shell_services/block_services.mli | 2 +- 2 files changed, 23 insertions(+), 60 deletions(-) diff --git a/src/lib_shell_services/block_services.ml b/src/lib_shell_services/block_services.ml index 7da589828196..9f03d9eee758 100644 --- a/src/lib_shell_services/block_services.ml +++ b/src/lib_shell_services/block_services.ml @@ -27,12 +27,9 @@ open Data_encoding module Proof = Tezos_context_sigs.Context.Proof_types -type version = Version_0 | Version_1 | Version_2 +type version = Version_1 | Version_2 -let string_of_version = function - | Version_0 -> "0" - | Version_1 -> "1" - | Version_2 -> "2" +let string_of_version = function Version_1 -> "1" | Version_2 -> "2" type supported_version = {version : version; use_legacy_attestation_name : bool} @@ -56,8 +53,6 @@ let mk_version_informations ~supported ~(latest : version) ~(default : version) (List.map (fun supported -> supported.version) supported)) ; {supported; latest; default} -let version_0 = {version = Version_0; use_legacy_attestation_name = true} - let version_1 = {version = Version_1; use_legacy_attestation_name = false} let pp_supported_version fmt ~complete {supported; latest; default} = @@ -98,7 +93,6 @@ let version_of_string version_informations version = let open Result_syntax in let* version_t = match version with - | "0" -> Ok Version_0 | "1" -> Ok Version_1 | "2" -> Ok Version_2 | _ -> Error (unsupported_version_msg version version_informations) @@ -755,8 +749,7 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct ~encoding_name:"block_info" ~latest_encoding: (Version_1, block_info_encoding ~use_legacy_attestation_name:false) - ~old_encodings: - [(Version_0, block_info_encoding ~use_legacy_attestation_name:true)] + ~old_encodings:[] module S = struct let path : prefix Tezos_rpc.Path.context = Tezos_rpc.Path.open_root @@ -787,15 +780,11 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct ~encoding_name:"block_metadata_encoding" ~latest_encoding: (Version_1, block_metadata_encoding ~use_legacy_attestation_name:false) - ~old_encodings: - [ - ( Version_0, - block_metadata_encoding ~use_legacy_attestation_name:true ); - ] + ~old_encodings:[] let metadata_versions = mk_version_informations - ~supported:[version_0; version_1] + ~supported:[version_1] ~latest:Version_1 ~default:Version_1 () @@ -877,7 +866,7 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct let operations_versions = mk_version_informations - ~supported:[version_0; version_1] + ~supported:[version_1] ~latest:Version_1 ~default:Version_1 () @@ -924,14 +913,7 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct ~encoding_name:"operations" ~latest_encoding: (Version_1, list (dynamic_size (list operation_encoding))) - ~old_encodings: - [ - ( Version_0, - list - (dynamic_size - (list operation_encoding_with_legacy_attestation_name)) - ); - ] + ~old_encodings:[] in Tezos_rpc.Service.get_service ~description:"All the operations included in the block." @@ -966,10 +948,7 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct encoding_versioning ~encoding_name:"operations_in_pass" ~latest_encoding:(Version_1, list operation_encoding) - ~old_encodings: - [ - (Version_0, list operation_encoding_with_legacy_attestation_name); - ] + ~old_encodings:[] in Tezos_rpc.Service.get_service ~description: @@ -984,8 +963,7 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct encoding_versioning ~encoding_name:"operation" ~latest_encoding:(Version_1, operation_encoding) - ~old_encodings: - [(Version_0, operation_encoding_with_legacy_attestation_name)] + ~old_encodings:[] in Tezos_rpc.Service.get_service ~description: @@ -1152,7 +1130,7 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct let preapply_versions = mk_version_informations - ~supported:[version_0; version_1] + ~supported:[version_1] ~latest:Version_1 ~default:Version_1 () @@ -1178,15 +1156,7 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct list (dynamic_size Next_proto.operation_data_and_receipt_encoding) ) - ~old_encodings: - [ - ( Version_0, - list - (dynamic_size - Next_proto - .operation_data_and_receipt_encoding_with_legacy_attestation_name) - ); - ] + ~old_encodings:[] let operations = Tezos_rpc.Service.post_service @@ -1401,10 +1371,7 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct let pending_operations_versions = mk_version_informations ~supported: - [ - {version = Version_1; use_legacy_attestation_name = true}; - {version = Version_2; use_legacy_attestation_name = false}; - ] + [{version = Version_2; use_legacy_attestation_name = false}] ~latest:Version_2 ~default:Version_2 () @@ -1491,7 +1458,7 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct encoding_versioning ~encoding_name:"pending_operations" ~latest_encoding:(Version_2, version_2_encoding) - ~old_encodings:[(Version_1, version_1_encoding)] + ~old_encodings:[] let pending_operations path = Tezos_rpc.Service.get_service @@ -1533,7 +1500,7 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct let monitor_operations_versions = mk_version_informations - ~supported:[version_0; version_1] + ~supported:[version_1] ~latest:Version_1 ~default:Version_1 () @@ -1626,11 +1593,7 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct ~latest_encoding: ( Version_1, list (monitor_operations_encoding ~use_legacy_name:false) ) - ~old_encodings: - [ - ( Version_0, - list (monitor_operations_encoding ~use_legacy_name:true) ); - ] + ~old_encodings:[] let monitor_operations path = Tezos_rpc.Service.get_service @@ -1734,7 +1697,7 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct let open Lwt_result_syntax in let f = make_call0 S.metadata ctxt in fun ?(chain = `Main) ?(block = `Head 0) () -> - let* (Version_0 | Version_1 | Version_2), res = + let* (Version_1 | Version_2), res = f chain block @@ -1779,7 +1742,7 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct let open Lwt_result_syntax in let f = make_call0 S.Operations.operations ctxt in fun ?(chain = `Main) ?(block = `Head 0) () -> - let* (Version_0 | Version_1 | Version_2), operations = + let* (Version_1 | Version_2), operations = f chain block @@ -1799,7 +1762,7 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct let open Lwt_result_syntax in let f = make_call1 S.Operations.operations_in_pass ctxt in fun ?(chain = `Main) ?(block = `Head 0) n -> - let* (Version_0 | Version_1 | Version_2), operations = + let* (Version_1 | Version_2), operations = f chain block @@ -1820,7 +1783,7 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct let open Lwt_result_syntax in let f = make_call2 S.Operations.operation ctxt in fun ?(chain = `Main) ?(block = `Head 0) n m -> - let* (Version_0 | Version_1 | Version_2), operation = + let* (Version_1 | Version_2), operation = f chain block @@ -1938,7 +1901,7 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct let operations ctxt ?(chain = `Main) ?(block = `Head 0) ?(version = S.preapply_versions.default) operations = let open Lwt_result_syntax in - let* (Version_0 | Version_1 | Version_2), preapply_operations = + let* (Version_1 | Version_2), preapply_operations = make_call0 S.operations ctxt @@ -1962,7 +1925,7 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct let open Lwt_result_syntax in let f = make_call0 S.info ctxt in fun ?(chain = `Main) ?(block = `Head 0) () -> - let* (Version_0 | Version_1 | Version_2), infos = + let* (Version_1 | Version_2), infos = f chain block @@ -2061,7 +2024,7 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct in return ( Lwt_stream.map - (fun ( ( Version_0 | Version_1 + (fun ( ( Version_1 | Version_2 (* The same [version] type is used for versioning all the RPC. Even though this version is not supported for this diff --git a/src/lib_shell_services/block_services.mli b/src/lib_shell_services/block_services.mli index 5e8f34849ee8..73d7ddc797d0 100644 --- a/src/lib_shell_services/block_services.mli +++ b/src/lib_shell_services/block_services.mli @@ -26,7 +26,7 @@ module Proof = Tezos_context_sigs.Context.Proof_types -type version = Version_0 | Version_1 | Version_2 +type version = Version_1 | Version_2 type chain = [`Main | `Test | `Hash of Chain_id.t] -- GitLab From bad1bd49e47c3b06efb6b970c19cec3967b2268e Mon Sep 17 00:00:00 2001 From: Albin Coquereau Date: Fri, 31 May 2024 09:22:05 +0200 Subject: [PATCH 2/7] lib_shell_services/block_services: remove legacy attestation related code --- src/lib_shell/block_directory.ml | 17 +- src/lib_shell/shell_operation.ml | 4 +- src/lib_shell_services/block_services.ml | 234 +++++----------------- src/lib_shell_services/block_services.mli | 14 -- 4 files changed, 55 insertions(+), 214 deletions(-) diff --git a/src/lib_shell/block_directory.ml b/src/lib_shell/block_directory.ml index 557b9b66d2af..ccef3e831c40 100644 --- a/src/lib_shell/block_directory.ml +++ b/src/lib_shell/block_directory.ml @@ -197,8 +197,7 @@ let build_raw_rpc_directory_with_validator (module Proto : Block_services.PROTO) (fun op -> let proto = Data_encoding.Binary.to_bytes_exn - Next_proto - .operation_data_encoding_with_legacy_attestation_name + Next_proto.operation_data_encoding op.Next_proto.protocol_data in (op, {Operation.shell = op.shell; proto})) @@ -272,7 +271,7 @@ let build_raw_rpc_directory_without_validator let* metadata = Store.Block.get_block_metadata chain_store block in let protocol_data = Data_encoding.Binary.of_bytes_exn - Proto.block_header_metadata_encoding_with_legacy_attestation_name + Proto.block_header_metadata_encoding (Store.Block.block_metadata metadata) in let* test_chain_status, _ = @@ -303,16 +302,14 @@ let build_raw_rpc_directory_without_validator let convert_with_metadata chain_id (op : Operation.t) metadata : Block_services.operation = let protocol_data = - Data_encoding.Binary.of_bytes_exn - Proto.operation_data_encoding_with_legacy_attestation_name - op.proto + Data_encoding.Binary.of_bytes_exn Proto.operation_data_encoding op.proto in let receipt = match metadata with | Block_validation.Metadata bytes -> Block_services.Receipt (Data_encoding.Binary.of_bytes_exn - Proto.operation_receipt_encoding_with_legacy_attestation_name + Proto.operation_receipt_encoding bytes) | Too_large_metadata -> Too_large in @@ -326,9 +323,7 @@ let build_raw_rpc_directory_without_validator in let convert_without_metadata chain_id (op : Operation.t) = let protocol_data = - Data_encoding.Binary.of_bytes_exn - Proto.operation_data_encoding_with_legacy_attestation_name - op.proto + Data_encoding.Binary.of_bytes_exn Proto.operation_data_encoding op.proto in { Block_services.chain_id; @@ -767,7 +762,7 @@ let build_raw_rpc_directory_without_validator (fun op -> match Data_encoding.Binary.to_bytes - Next_proto.operation_data_encoding_with_legacy_attestation_name + Next_proto.operation_data_encoding op.Next_proto.protocol_data with | Error _ -> diff --git a/src/lib_shell/shell_operation.ml b/src/lib_shell/shell_operation.ml index a9b398650b41..4c5c126658b9 100644 --- a/src/lib_shell/shell_operation.ml +++ b/src/lib_shell/shell_operation.ml @@ -55,9 +55,7 @@ module MakeParser (Proto : Tezos_protocol_environment.PROTOCOL) : type protocol_operation = Proto.operation let parse_unsafe (proto : bytes) : Proto.operation_data tzresult = - safe_binary_of_bytes - Proto.operation_data_encoding_with_legacy_attestation_name - proto + safe_binary_of_bytes Proto.operation_data_encoding proto let parse hash (raw : Operation.t) = let open Result_syntax in diff --git a/src/lib_shell_services/block_services.ml b/src/lib_shell_services/block_services.ml index 9f03d9eee758..15c823a38953 100644 --- a/src/lib_shell_services/block_services.ml +++ b/src/lib_shell_services/block_services.ml @@ -31,50 +31,44 @@ type version = Version_1 | Version_2 let string_of_version = function Version_1 -> "1" | Version_2 -> "2" -type supported_version = {version : version; use_legacy_attestation_name : bool} - type version_informations = { - supported : supported_version list; + supported : version list; latest : version; default : version; } let mk_version_informations ~supported ~(latest : version) ~(default : version) () = - assert ( - List.mem - ~equal:( == ) - latest - (List.map (fun supported -> supported.version) supported)) ; - assert ( - List.mem - ~equal:( == ) - default - (List.map (fun supported -> supported.version) supported)) ; + assert (List.mem ~equal:( == ) latest supported) ; + assert (List.mem ~equal:( == ) default supported) ; {supported; latest; default} -let version_1 = {version = Version_1; use_legacy_attestation_name = false} +let mk_version_1_informations = + mk_version_informations + ~supported:[Version_1] + ~latest:Version_1 + ~default:Version_1 + +let mk_version_2_informations = + mk_version_informations + ~supported:[Version_2] + ~latest:Version_2 + ~default:Version_2 -let pp_supported_version fmt ~complete {supported; latest; default} = +let pp_supported_version fmt {supported; latest; default} = let open Format in (pp_print_list ~pp_sep:(fun fmt () -> fprintf fmt ",") - (fun fmt {version; use_legacy_attestation_name} -> + (fun fmt version -> fprintf fmt - " version %S %s%s" + " version %S %s" (string_of_version version) (match (version = default, not (version = latest)) with | true, true -> "(default but deprecated)" | true, false -> "(default)" | false, true -> "(deprecated)" - | false, false -> "") - (if complete then - if use_legacy_attestation_name then - " that will output attestation operations as \"endorsement\" in \ - the \"kind\" field" - else " that will output \"attestation\" in the \"kind\" field" - else ""))) + | false, false -> ""))) fmt supported @@ -82,12 +76,11 @@ let unsupported_version_msg version supported = Format.asprintf "Unsupported version %s (supported versions %a)" version - (pp_supported_version ~complete:false) + pp_supported_version supported -let is_supported_version (version : version) - (supported : supported_version list) = - List.exists (fun supported -> version == supported.version) supported +let is_supported_version (version : version) (supported : version list) = + List.exists (fun supported -> version == supported) supported let version_of_string version_informations version = let open Result_syntax in @@ -107,7 +100,7 @@ let version_arg supported = ~descr: (Format.asprintf "Supported RPC versions are%a" - (pp_supported_version ~complete:true) + pp_supported_version supported) ~name:"version" ~destruct:(version_of_string supported) @@ -460,9 +453,6 @@ module type PROTO = sig type block_header_metadata - val block_header_metadata_encoding_with_legacy_attestation_name : - block_header_metadata Data_encoding.t - val block_header_metadata_encoding : block_header_metadata Data_encoding.t type operation_data @@ -476,19 +466,10 @@ module type PROTO = sig val operation_data_encoding : operation_data Data_encoding.t - val operation_data_encoding_with_legacy_attestation_name : - operation_data Data_encoding.t - val operation_receipt_encoding : operation_receipt Data_encoding.t - val operation_receipt_encoding_with_legacy_attestation_name : - operation_receipt Data_encoding.t - val operation_data_and_receipt_encoding : (operation_data * operation_receipt) Data_encoding.t - - val operation_data_and_receipt_encoding_with_legacy_attestation_name : - (operation_data * operation_receipt) Data_encoding.t end type protocols = { @@ -554,11 +535,8 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct operation_list_quota : operation_list_quota list; } - let block_metadata_encoding ~use_legacy_attestation_name = - def - (if use_legacy_attestation_name then - "block_header_metadata_with_legacy_attestation_name" - else "block_header_metadata") + let block_metadata_encoding = + def "block_header_metadata" @@ conv (fun { protocol_data; @@ -603,23 +581,7 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct (req "max_operation_list_length" (dynamic_size (list operation_list_quota_encoding)))) - (if use_legacy_attestation_name then - Proto.block_header_metadata_encoding_with_legacy_attestation_name - else Proto.block_header_metadata_encoding)) - - let next_operation_encoding_with_legacy_attestation_name = - let open Data_encoding in - def "next_operation_with_legacy_attestation_name" - @@ conv - (fun Next_proto.{shell; protocol_data} -> ((), (shell, protocol_data))) - (fun ((), (shell, protocol_data)) -> {shell; protocol_data}) - (merge_objs - (obj1 (req "protocol" (constant next_protocol_hash))) - (merge_objs - (dynamic_size Operation.shell_header_encoding) - (dynamic_size - Next_proto - .operation_data_encoding_with_legacy_attestation_name))) + Proto.block_header_metadata_encoding) let next_operation_encoding = let open Data_encoding in @@ -646,16 +608,10 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct receipt : operation_receipt; } - let operation_data_encoding ~use_legacy_attestation_name = - let operation_data_encoding = - if use_legacy_attestation_name then - Proto.operation_data_encoding_with_legacy_attestation_name - else Proto.operation_data_encoding - in + let operation_data_encoding = + let operation_data_encoding = Proto.operation_data_encoding in let operation_data_and_receipt_encoding = - if use_legacy_attestation_name then - Proto.operation_data_and_receipt_encoding_with_legacy_attestation_name - else Proto.operation_data_and_receipt_encoding + Proto.operation_data_and_receipt_encoding in let open Data_encoding in union @@ -687,11 +643,8 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct | operation_data, receipt -> (operation_data, Receipt receipt)); ] - let operation_encoding ~use_legacy_attestation_name = - def - (if use_legacy_attestation_name then - "operation_with_legacy_attestation_name" - else "operation") + let operation_encoding = + def "operation" @@ let open Data_encoding in conv @@ -706,13 +659,7 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct (req "hash" Operation_hash.encoding)) (merge_objs (dynamic_size Operation.shell_header_encoding) - (dynamic_size - (operation_data_encoding ~use_legacy_attestation_name)))) - - let operation_encoding_with_legacy_attestation_name = - operation_encoding ~use_legacy_attestation_name:true - - let operation_encoding = operation_encoding ~use_legacy_attestation_name:false + (dynamic_size operation_data_encoding))) type block_info = { chain_id : Chain_id.t; @@ -722,12 +669,7 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct operations : operation list list; } - let block_info_encoding ~use_legacy_attestation_name = - let operation_encoding = - if use_legacy_attestation_name then - operation_encoding_with_legacy_attestation_name - else operation_encoding - in + let block_info_encoding = conv (fun {chain_id; hash; header; metadata; operations} -> ((), chain_id, hash, header, metadata, operations)) @@ -738,17 +680,13 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct (req "chain_id" Chain_id.encoding) (req "hash" Block_hash.encoding) (req "header" (dynamic_size raw_block_header_encoding)) - (opt - "metadata" - (dynamic_size - (block_metadata_encoding ~use_legacy_attestation_name))) + (opt "metadata" (dynamic_size block_metadata_encoding)) (req "operations" (list (dynamic_size (list operation_encoding))))) let block_info_encoding = encoding_versioning ~encoding_name:"block_info" - ~latest_encoding: - (Version_1, block_info_encoding ~use_legacy_attestation_name:false) + ~latest_encoding:(Version_1, block_info_encoding) ~old_encodings:[] module S = struct @@ -778,16 +716,10 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct let block_metadata_encoding = encoding_versioning ~encoding_name:"block_metadata_encoding" - ~latest_encoding: - (Version_1, block_metadata_encoding ~use_legacy_attestation_name:false) + ~latest_encoding:(Version_1, block_metadata_encoding) ~old_encodings:[] - let metadata_versions = - mk_version_informations - ~supported:[version_1] - ~latest:Version_1 - ~default:Version_1 - () + let metadata_versions = mk_version_1_informations () let metadata_query = let open Tezos_rpc.Query in @@ -864,12 +796,7 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct Tezos_rpc.Path.(path / "protocol_data" / "raw") end - let operations_versions = - mk_version_informations - ~supported:[version_1] - ~latest:Version_1 - ~default:Version_1 - () + let operations_versions = mk_version_1_informations () let force_operation_metadata_query = let open Tezos_rpc.Query in @@ -1060,22 +987,7 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct module Preapply = struct let path = Tezos_rpc.Path.(path / "preapply") - let preapply_operation_encoding = - union - [ - case - ~title:"operation_data_encoding" - (Tag 0) - next_operation_encoding - Option.some - Fun.id; - case - ~title:"operation_data_encoding_with_legacy_attestation_name" - Json_only - next_operation_encoding_with_legacy_attestation_name - Option.some - Fun.id; - ] + let preapply_operation_encoding = next_operation_encoding let block_result_encoding = obj2 @@ -1128,12 +1040,7 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct ~output:block_result_encoding Tezos_rpc.Path.(path / "block") - let preapply_versions = - mk_version_informations - ~supported:[version_1] - ~latest:Version_1 - ~default:Version_1 - () + let preapply_versions = mk_version_1_informations () let operations_query = let open Tezos_rpc.Query in @@ -1278,12 +1185,7 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct unprocessed : Next_proto.operation Operation_hash.Map.t; } - let pending_operations_encoding ~use_legacy_name ~use_validated = - let next_operation_encoding = - if use_legacy_name then - next_operation_encoding_with_legacy_attestation_name - else next_operation_encoding - in + let pending_operations_encoding = let operations_with_error_encoding kind = req kind @@ -1328,7 +1230,7 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct }) (obj6 (req - (if use_validated then "validated" else "applied") + "validated" (list (conv (fun (hash, (op : Next_proto.operation)) -> @@ -1339,11 +1241,7 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct (merge_objs (obj1 (req "hash" Operation_hash.encoding)) Operation.shell_header_encoding) - (dynamic_size - (if use_legacy_name then - Next_proto - .operation_data_encoding_with_legacy_attestation_name - else Next_proto.operation_data_encoding)))))) + (dynamic_size Next_proto.operation_data_encoding))))) (operations_with_error_encoding "refused") (operations_with_error_encoding "outdated") (operations_with_error_encoding "branch_refused") @@ -1359,22 +1257,7 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct (obj1 (req "hash" Operation_hash.encoding)) next_operation_encoding))))) - let version_2_encoding = - pending_operations_encoding ~use_legacy_name:false ~use_validated:true - - let version_1_encoding = - pending_operations_encoding ~use_legacy_name:true ~use_validated:false - - (* This encoding should be always the one by default. *) - let encoding = version_1_encoding - - let pending_operations_versions = - mk_version_informations - ~supported: - [{version = Version_2; use_legacy_attestation_name = false}] - ~latest:Version_2 - ~default:Version_2 - () + let pending_operations_versions = mk_version_2_informations () let pending_query = let open Tezos_rpc.Query in @@ -1457,7 +1340,7 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct let pending_operations_encoding = encoding_versioning ~encoding_name:"pending_operations" - ~latest_encoding:(Version_2, version_2_encoding) + ~latest_encoding:(Version_2, pending_operations_encoding) ~old_encodings:[] let pending_operations path = @@ -1498,12 +1381,7 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct ~output:unit Tezos_rpc.Path.(path / "unban_all_operations") - let monitor_operations_versions = - mk_version_informations - ~supported:[version_1] - ~latest:Version_1 - ~default:Version_1 - () + let monitor_operations_versions = mk_version_1_informations () let mempool_query = let open Tezos_rpc.Query in @@ -1578,21 +1456,17 @@ module Make (Proto : PROTO) (Next_proto : PROTO) = struct (* We extend the object so that the fields of 'next_operation' stay toplevel, for backward compatibility. *) - let monitor_operations_encoding ~use_legacy_name = + let monitor_operations_encoding = merge_objs (merge_objs (obj1 (req "hash" Operation_hash.encoding)) - (if use_legacy_name then - next_operation_encoding_with_legacy_attestation_name - else next_operation_encoding)) + next_operation_encoding) (obj1 (dft "error" Tezos_rpc.Error.opt_encoding None)) let processed_operation_encoding = encoding_versioning ~encoding_name:"monitor_operations" - ~latest_encoding: - ( Version_1, - list (monitor_operations_encoding ~use_legacy_name:false) ) + ~latest_encoding:(Version_1, list monitor_operations_encoding) ~old_encodings:[] let monitor_operations path = @@ -2060,9 +1934,6 @@ module Fake_protocol = struct type block_header_metadata = unit - let block_header_metadata_encoding_with_legacy_attestation_name = - Data_encoding.empty - let block_header_metadata_encoding = Data_encoding.empty type operation_data = unit @@ -2076,22 +1947,13 @@ module Fake_protocol = struct let operation_data_encoding = Data_encoding.empty - let operation_data_encoding_with_legacy_attestation_name = - operation_data_encoding - let operation_receipt_encoding = Data_encoding.empty - let operation_receipt_encoding_with_legacy_attestation_name = - operation_receipt_encoding - let operation_data_and_receipt_encoding = Data_encoding.conv (fun ((), ()) -> ()) (fun () -> ((), ())) Data_encoding.empty - - let operation_data_and_receipt_encoding_with_legacy_attestation_name = - operation_data_and_receipt_encoding end module Empty = Make (Fake_protocol) (Fake_protocol) diff --git a/src/lib_shell_services/block_services.mli b/src/lib_shell_services/block_services.mli index 73d7ddc797d0..166ac886deb2 100644 --- a/src/lib_shell_services/block_services.mli +++ b/src/lib_shell_services/block_services.mli @@ -101,9 +101,6 @@ module type PROTO = sig type block_header_metadata - val block_header_metadata_encoding_with_legacy_attestation_name : - block_header_metadata Data_encoding.t - val block_header_metadata_encoding : block_header_metadata Data_encoding.t type operation_data @@ -117,19 +114,10 @@ module type PROTO = sig val operation_data_encoding : operation_data Data_encoding.t - val operation_data_encoding_with_legacy_attestation_name : - operation_data Data_encoding.t - val operation_receipt_encoding : operation_receipt Data_encoding.t - val operation_receipt_encoding_with_legacy_attestation_name : - operation_receipt Data_encoding.t - val operation_data_and_receipt_encoding : (operation_data * operation_receipt) Data_encoding.t - - val operation_data_and_receipt_encoding_with_legacy_attestation_name : - (operation_data * operation_receipt) Data_encoding.t end type protocols = { @@ -745,8 +733,6 @@ module Make (Proto : PROTO) (Next_proto : PROTO) : sig end module Mempool : sig - val encoding : Mempool.t Data_encoding.t - (** Define RPC GET /chains/[chain]/mempool/pending_operations *) val pending_operations : ('a, 'b) Tezos_rpc.Path.t -> -- GitLab From b81a55e457946c417197916a3da883e07801cabf Mon Sep 17 00:00:00 2001 From: Albin Coquereau Date: Fri, 28 Jun 2024 09:40:29 +0200 Subject: [PATCH 3/7] tezt/tests: only test rpc versioning for Paris protocols --- tezt/tests/rpc_versioning_attestation.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tezt/tests/rpc_versioning_attestation.ml b/tezt/tests/rpc_versioning_attestation.ml index e8337239928e..67dbdda9ab96 100644 --- a/tezt/tests/rpc_versioning_attestation.ml +++ b/tezt/tests/rpc_versioning_attestation.ml @@ -37,7 +37,7 @@ let register_test ~title ?(additionnal_tags = []) ?uses f = Protocol.register_test ~__FILE__ ~title - ~supports:(Protocol.From_protocol 18) + ~supports:Protocol.(Between_protocols (number ParisC, number ParisC)) ~tags:([team; "rpc"; "versioning"] @ additionnal_tags) ?uses f -- GitLab From 05b224905aea614d21853cb6e4757477041c6acb Mon Sep 17 00:00:00 2001 From: Albin Coquereau Date: Mon, 27 May 2024 09:45:28 +0200 Subject: [PATCH 4/7] tezt/tests: remove monitor_mempool attestation test with version 0 --- tezt/tests/rpc_versioning_attestation.ml | 34 +++++------------------- 1 file changed, 6 insertions(+), 28 deletions(-) diff --git a/tezt/tests/rpc_versioning_attestation.ml b/tezt/tests/rpc_versioning_attestation.ml index 67dbdda9ab96..593314d9dc59 100644 --- a/tezt/tests/rpc_versioning_attestation.ml +++ b/tezt/tests/rpc_versioning_attestation.ml @@ -87,21 +87,8 @@ let check_unknown_version ~version ~rpc ~data client = let msg = rex "Failed to parse argument 'version'" in Process.check_error ~msg p -let check_rpc_versions ?(old = "0") ?(new_ = "1") ?(unknown = "2") ~check ~rpc - ~get_name ~data client = - Log.info - "Call the rpc with the old version and check that the operations returned \ - contain endorsement kinds" ; - let* () = - check_version - ~version:old - ~use_legacy_name:true - ~check - ~rpc - ~get_name - ~data - client - in +let check_rpc_versions ?(new_ = "1") ?(unknown = "2") ~check ~rpc ~get_name + ~data client = Log.info "Call the rpc with the new version and check that the operations returned \ contain attestation kinds" ; @@ -499,7 +486,6 @@ module Mempool = struct in let get_name = Operation.Consensus.kind_to_string kind in check_rpc_versions - ~old:"1" ~new_:"2" ~unknown:"3" ~check @@ -548,7 +534,6 @@ module Mempool = struct in let get_name = Operation.Anonymous.kind_to_string double_evidence_kind in check_rpc_versions - ~old:"1" ~new_:"2" ~unknown:"3" ~check @@ -585,14 +570,11 @@ module Mempool = struct Operation.Anonymous.Double_preattestation_evidence protocol - let monitor_mempool node ~use_legacy_name = + let monitor_mempool node = let monitor_operations_url = RPC_core.make_uri (Node.as_rpc_endpoint node) - (RPC.get_chain_mempool_monitor_operations - ~refused:true - ~version:(if use_legacy_name then "0" else "1") - ()) + (RPC.get_chain_mempool_monitor_operations ~refused:true ~version:"1" ()) |> Uri.to_string in Curl.get monitor_operations_url @@ -633,8 +615,7 @@ module Mempool = struct let* node, client = Client.init_with_protocol ~protocol `Client () in let signer = Constant.bootstrap1 in - let*? p_legacy = monitor_mempool node ~use_legacy_name:true in - let*? p = monitor_mempool node ~use_legacy_name:false in + let*? p = monitor_mempool node in let* consensus_op = create_consensus_op ~use_legacy_name:true ~signer ~kind client @@ -648,7 +629,6 @@ module Mempool = struct let name = Operation.Consensus.kind_to_string kind ~use_legacy_name in check_monitor_mempool p name in - let* () = check_monitor_mempool p_legacy ~use_legacy_name:true in let* () = check_monitor_mempool p ~use_legacy_name:false in check_invalid_monitor_mempool_version node @@ -673,8 +653,7 @@ module Mempool = struct let* node, client = Client.init_with_protocol ~protocol `Client () in let* () = Client.bake_for_and_wait ~node client in - let*? p_legacy = monitor_mempool node ~use_legacy_name:true in - let*? p = monitor_mempool node ~use_legacy_name:false in + let*? p = monitor_mempool node in let* consensus_op = create_double_consensus_evidence @@ -693,7 +672,6 @@ module Mempool = struct in check_monitor_mempool p name in - let* () = check_monitor_mempool p_legacy ~use_legacy_name:true in let* () = check_monitor_mempool p ~use_legacy_name:false in check_invalid_monitor_mempool_version node -- GitLab From 73ba9e9c2e3640aaf6322568b7905f8ce279d7ed Mon Sep 17 00:00:00 2001 From: Albin Coquereau Date: Mon, 27 May 2024 11:35:13 +0200 Subject: [PATCH 5/7] tezt/tests: remove preapply_operation attestation test with version 0 --- tezt/tests/rpc_versioning_attestation.ml | 32 ++++++++++++++++-------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/tezt/tests/rpc_versioning_attestation.ml b/tezt/tests/rpc_versioning_attestation.ml index 593314d9dc59..8f52dba4fcb0 100644 --- a/tezt/tests/rpc_versioning_attestation.ml +++ b/tezt/tests/rpc_versioning_attestation.ml @@ -893,13 +893,13 @@ module Preapply = struct get_consensus_info signer.public_key_hash client in - let preapply_op ~use_legacy_name = + let preapply_op () = let* consensus_op = create_consensus_op ~level ~slot:(List.hd slots) ~block_payload_hash - ~use_legacy_name + ~use_legacy_name:false ~signer ~kind client @@ -915,10 +915,16 @@ module Preapply = struct let check ~use_legacy_name:_ json = check_kind JSON.(json |> as_list |> List.hd) in - check_rpc_versions ~check ~rpc ~get_name ~data:consensus_json client + check_version + ~version:"1" + ~use_legacy_name:false + ~check + ~rpc + ~get_name + ~data:consensus_json + client in - let* () = preapply_op ~use_legacy_name:true in - preapply_op ~use_legacy_name:false + preapply_op () let test_preapply_consensus = register_test @@ -937,10 +943,10 @@ module Preapply = struct let* node, client = Client.init_with_protocol ~protocol `Client () in let* () = Client.bake_for_and_wait ~node client in - let preapply_op ~use_legacy_name = + let preapply_op () = let* double_consensus_evidence_op = create_double_consensus_evidence - ~use_legacy_name + ~use_legacy_name:false ~double_evidence_kind client in @@ -955,10 +961,16 @@ module Preapply = struct let check ~use_legacy_name:_ json = check_kind JSON.(json |> as_list |> List.hd) in - check_rpc_versions ~check ~rpc ~get_name ~data:consensus_json client + check_version + ~version:"1" + ~use_legacy_name:false + ~check + ~rpc + ~get_name + ~data:consensus_json + client in - let* () = preapply_op ~use_legacy_name:true in - preapply_op ~use_legacy_name:false + preapply_op () let test_preapply_double_consensus_evidence = register_test -- GitLab From ad653fab69d91a96ad682eeab407d63c8d97ba9e Mon Sep 17 00:00:00 2001 From: Albin Coquereau Date: Mon, 27 May 2024 11:44:07 +0200 Subject: [PATCH 6/7] tezt/tests: remove block operation attestation test with version 0 --- tezt/tests/rpc_versioning_attestation.ml | 38 ++++++++++++++++++++---- 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/tezt/tests/rpc_versioning_attestation.ml b/tezt/tests/rpc_versioning_attestation.ml index 8f52dba4fcb0..c775949027ce 100644 --- a/tezt/tests/rpc_versioning_attestation.ml +++ b/tezt/tests/rpc_versioning_attestation.ml @@ -1000,7 +1000,9 @@ end module Block = struct let call_and_check_operation ~validation_pass get_name client = Log.info "Check kind for operation rpc" ; - check_rpc_versions + check_version + ~version:"1" + ~use_legacy_name:false ~check:(fun ~use_legacy_name:_ -> check_kind) ~get_name ~rpc:(fun ~version () -> @@ -1016,7 +1018,9 @@ module Block = struct = Log.info "Check kind for operations_validation_pass rpc" ; let check ~use_legacy_name:_ json = check_kind JSON.(json |=> 0) in - check_rpc_versions + check_version + ~version:"1" + ~use_legacy_name:false ~check ~get_name ~rpc:(fun ~version () -> @@ -1032,7 +1036,9 @@ module Block = struct let check ~use_legacy_name:_ json = check_kind JSON.(json |=> validation_pass |=> 0) in - check_rpc_versions + check_version + ~version:"1" + ~use_legacy_name:false ~check ~get_name ~rpc:(fun ~version () -> RPC.get_chain_block_operations ~version ()) @@ -1044,7 +1050,9 @@ module Block = struct let check ~use_legacy_name:_ json = check_kind JSON.(json |-> "operations" |=> validation_pass |=> 0) in - check_rpc_versions + check_version + ~version:"1" + ~use_legacy_name:false ~check ~get_name ~rpc:(fun ~version () -> RPC.get_chain_block ~version ()) @@ -1170,7 +1178,16 @@ module Block = struct check_category (sf "lost %s rewards" name) in let rpc ~version _ = RPC.get_chain_block ~version () in - let* () = check_rpc_versions ~check ~rpc ~get_name ~data:() client in + let* () = + check_version + ~version:"1" + ~use_legacy_name:false + ~check + ~rpc + ~get_name + ~data:() + client + in Log.info "Check the block metadata RPC" ; let check ~use_legacy_name:_ (metadata : RPC.block_metadata) name = @@ -1193,7 +1210,16 @@ module Block = struct check_category (sf "lost %s rewards" name) in let rpc ~version data = RPC.get_chain_block_metadata ~version data in - let* () = check_rpc_versions ~check ~rpc ~get_name ~data:() client in + let* () = + check_version + ~version:"1" + ~use_legacy_name:false + ~check + ~rpc + ~get_name + ~data:() + client + in unit let register ~protocols = -- GitLab From a7576358fb41527c0da500b37a92bdba4ea10aad Mon Sep 17 00:00:00 2001 From: Albin Coquereau Date: Mon, 27 May 2024 11:48:44 +0200 Subject: [PATCH 7/7] changes: add entry for removal of RPC versions --- CHANGES.rst | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGES.rst b/CHANGES.rst index 7834e0db2418..0f21150b77bb 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -59,6 +59,14 @@ Node - Removed Oxford mempool plugin. (MR :gl:`!13798`) +- Remove support for deprecated version ``0`` for RPCs ``GET + ../mempool/monitor_operations``, ``POST ../helpers/preapply/operations``, + ``GET ../blocks/``, ``GET ../blocks//metadata``. and ``GET + ../blocks//operations``. (MR :gl:`!13449`) + +- Remove support for deprecated version ``1`` for RPC ``GET + ../mempool/pending_operations``. (MR :gl:`!13449`) + Client ------ -- GitLab