diff --git a/lib_node_shell/state.ml b/lib_node_shell/state.ml index 19aec3435..a18956079 100644 --- a/lib_node_shell/state.ml +++ b/lib_node_shell/state.ml @@ -150,7 +150,7 @@ type t = global_state module Locked_block = struct - let store_genesis store genesis commit = + let store_genesis store genesis context = let shell : Block_header.shell_header = { level = 0l ; proto_level = 0 ; @@ -162,8 +162,8 @@ module Locked_block = struct } in let header : Block_header.t = { shell ; proto = MBytes.create 0 } in Store.Block.Contents.store (store, genesis.block) - { Store.Block.header ; message = "Genesis" ; - max_operations_ttl = 0 ; context = commit ; + { Store.Block.header ; message = Some "Genesis" ; + max_operations_ttl = 0 ; context ; max_number_of_operations = []; max_operation_data_length = 0; } >>= fun () -> @@ -442,19 +442,11 @@ module Block = struct let store net_state block_header operations - { Updater.context ; fitness ; message ; max_operations_ttl ; + { Updater.context ; message ; max_operations_ttl ; max_number_of_operations ; max_operation_data_length } = let bytes = Block_header.to_bytes block_header in let hash = Block_header.hash_raw bytes in (* let's the validator check the consistency... of fitness, level, ... *) - let message = - match message with - | Some message -> message - | None -> - Format.asprintf "%a(%ld): %a" - Block_hash.pp_short hash - block_header.shell.level - Fitness.pp fitness in Shared.use net_state.block_store begin fun store -> Store.Block.Invalid_block.known store hash >>= fun known_invalid -> fail_when known_invalid (failure "Known invalid") >>=? fun () -> @@ -463,7 +455,7 @@ module Block = struct return None else begin Context.commit - ~time:block_header.shell.timestamp ~message context >>= fun commit -> + ~time:block_header.shell.timestamp ?message context >>= fun commit -> let contents = { Store.Block.header = block_header ; message ; diff --git a/lib_node_shell/state.mli b/lib_node_shell/state.mli index 24a28c80e..d341410fe 100644 --- a/lib_node_shell/state.mli +++ b/lib_node_shell/state.mli @@ -129,7 +129,7 @@ module Block : sig val net_id: t -> Net_id.t val net_state: t -> Net.t val level: t -> Int32.t - val message: t -> string + val message: t -> string option val max_operations_ttl: t -> int val max_number_of_operations: t -> int list val max_operation_data_length: t -> int diff --git a/lib_storage/context.ml b/lib_storage/context.ml index 087246dc7..20c9ebe20 100644 --- a/lib_storage/context.ml +++ b/lib_storage/context.ml @@ -111,14 +111,14 @@ let checkout_exn index key = | Some p -> Lwt.return p -let raw_commit ~time ~message context = +let raw_commit ~time ?(message = "") context = let info = Irmin.Info.v ~date:(Time.to_seconds time) ~author:"Tezos" message in GitStore.Commit.v context.index.repo ~info ~parents:context.parents context.tree -let commit ~time ~message context = - raw_commit ~time ~message context >>= fun commit -> +let commit ~time ?message context = + raw_commit ~time ?message context >>= fun commit -> Lwt.return (GitStore.Commit.hash commit) (*-- Generic Store Primitives ------------------------------------------------*) diff --git a/lib_storage/context.mli b/lib_storage/context.mli index a37a951c1..a7d9b1c4b 100644 --- a/lib_storage/context.mli +++ b/lib_storage/context.mli @@ -61,7 +61,7 @@ val checkout: index -> Context_hash.t -> context option Lwt.t val checkout_exn: index -> Context_hash.t -> context Lwt.t val commit: time:Time.t -> - message:string -> + ?message:string -> context -> Context_hash.t Lwt.t val set_head: index -> Net_id.t -> Context_hash.t -> unit Lwt.t diff --git a/lib_storage/store.ml b/lib_storage/store.ml index bec45061a..36eb6c6a9 100644 --- a/lib_storage/store.ml +++ b/lib_storage/store.ml @@ -82,7 +82,7 @@ module Block = struct type contents = { header: Block_header.t ; - message: string ; + message: string option ; max_operations_ttl: int ; max_number_of_operations: int list; max_operation_data_length: int; @@ -111,7 +111,7 @@ module Block = struct max_number_of_operations ; max_operation_data_length ; context }) (obj6 - (req "message" string) + (opt "message" string) (req "max_operations_ttl" uint16) (req "max_number_of_operations" (list uint16)) (req "max_operation_data_length" uint16) diff --git a/lib_storage/store.mli b/lib_storage/store.mli index f9209f0a3..2e7e6ad03 100644 --- a/lib_storage/store.mli +++ b/lib_storage/store.mli @@ -86,7 +86,7 @@ module Block : sig type contents = { header: Block_header.t ; - message: string ; + message: string option ; max_operations_ttl: int ; max_number_of_operations: int list; max_operation_data_length: int; diff --git a/test/shell/test_store.ml b/test/shell/test_store.ml index e4d25304b..4fc9cfadd 100644 --- a/test/shell/test_store.ml +++ b/test/shell/test_store.ml @@ -87,7 +87,7 @@ let lolblock ?(operations = []) header = proto = MBytes.of_string header ; } ; max_operations_ttl = 0 ; - message = "" ; + message = None ; context = Context_hash.zero ; max_number_of_operations = [] ; max_operation_data_length = 0 ;