Alpha: move block_metadata from alpha_context to apply_result
This commit is contained in:
parent
91d497fd4a
commit
4b282ea8c5
@ -41,7 +41,7 @@ let create_state ~preserved_levels =
|
|||||||
(* get the delegate that had the right to bake for a specific level/slot *)
|
(* get the delegate that had the right to bake for a specific level/slot *)
|
||||||
let fetch_baker (cctxt : #Proto_alpha.full) ~chain ~block =
|
let fetch_baker (cctxt : #Proto_alpha.full) ~chain ~block =
|
||||||
Alpha_block_services.metadata cctxt ~chain ~block () >>=? fun
|
Alpha_block_services.metadata cctxt ~chain ~block () >>=? fun
|
||||||
{ protocol_data = { Alpha_context.Block_header.baker } } ->
|
{ protocol_data = { Apply_results.baker } } ->
|
||||||
return baker
|
return baker
|
||||||
|
|
||||||
(* We choose a previous offset (5 blocks from head) to ensure that the
|
(* We choose a previous offset (5 blocks from head) to ensure that the
|
||||||
|
@ -738,12 +738,6 @@ module Block_header : sig
|
|||||||
type raw = Block_header.t
|
type raw = Block_header.t
|
||||||
type shell_header = Block_header.shell_header
|
type shell_header = Block_header.shell_header
|
||||||
|
|
||||||
type metadata = {
|
|
||||||
baker: Signature.Public_key_hash.t ;
|
|
||||||
level: Level.t ;
|
|
||||||
voting_period_kind: Voting_period.kind ;
|
|
||||||
}
|
|
||||||
|
|
||||||
val raw: block_header -> raw
|
val raw: block_header -> raw
|
||||||
|
|
||||||
val hash: block_header -> Block_hash.t
|
val hash: block_header -> Block_hash.t
|
||||||
@ -755,7 +749,6 @@ module Block_header : sig
|
|||||||
val unsigned_encoding: (shell_header * contents) Data_encoding.t
|
val unsigned_encoding: (shell_header * contents) Data_encoding.t
|
||||||
val protocol_data_encoding: protocol_data Data_encoding.encoding
|
val protocol_data_encoding: protocol_data Data_encoding.encoding
|
||||||
val shell_header_encoding: shell_header Data_encoding.encoding
|
val shell_header_encoding: shell_header Data_encoding.encoding
|
||||||
val metadata_encoding: metadata Data_encoding.encoding
|
|
||||||
|
|
||||||
val max_header_length: int
|
val max_header_length: int
|
||||||
(** The maximum size of block headers in bytes *)
|
(** The maximum size of block headers in bytes *)
|
||||||
|
@ -987,3 +987,22 @@ let operation_data_and_metadata_encoding =
|
|||||||
(fun (Contents_list contents, signature) ->
|
(fun (Contents_list contents, signature) ->
|
||||||
(Operation_data { contents ; signature }, No_operation_metadata))
|
(Operation_data { contents ; signature }, No_operation_metadata))
|
||||||
]
|
]
|
||||||
|
|
||||||
|
type block_metadata = {
|
||||||
|
baker: Signature.Public_key_hash.t ;
|
||||||
|
level: Level.t ;
|
||||||
|
voting_period_kind: Voting_period.kind ;
|
||||||
|
}
|
||||||
|
|
||||||
|
let block_metadata_encoding =
|
||||||
|
let open Data_encoding in
|
||||||
|
def "block_header.alpha.metadata" @@
|
||||||
|
conv
|
||||||
|
(fun { baker ; level ; voting_period_kind} ->
|
||||||
|
(baker, level, voting_period_kind))
|
||||||
|
(fun (baker, level, voting_period_kind) ->
|
||||||
|
{ baker ; level ; voting_period_kind})
|
||||||
|
(obj3
|
||||||
|
(req "baker" Signature.Public_key_hash.encoding)
|
||||||
|
(req "level" Level.encoding)
|
||||||
|
(req "voting_period_kind" Voting_period.kind_encoding))
|
||||||
|
@ -144,3 +144,10 @@ val unpack_contents_list :
|
|||||||
type ('a, 'b) eq = Eq : ('a, 'a) eq
|
type ('a, 'b) eq = Eq : ('a, 'a) eq
|
||||||
val kind_equal_list :
|
val kind_equal_list :
|
||||||
'kind contents_list -> 'kind2 contents_result_list -> ('kind, 'kind2) eq option
|
'kind contents_list -> 'kind2 contents_result_list -> ('kind, 'kind2) eq option
|
||||||
|
|
||||||
|
type block_metadata = {
|
||||||
|
baker: Signature.Public_key_hash.t ;
|
||||||
|
level: Level.t ;
|
||||||
|
voting_period_kind: Voting_period.kind ;
|
||||||
|
}
|
||||||
|
val block_metadata_encoding: block_metadata Data_encoding.encoding
|
||||||
|
@ -82,24 +82,6 @@ let encoding =
|
|||||||
Block_header.shell_header_encoding
|
Block_header.shell_header_encoding
|
||||||
protocol_data_encoding)
|
protocol_data_encoding)
|
||||||
|
|
||||||
type metadata = {
|
|
||||||
baker: Signature.Public_key_hash.t ;
|
|
||||||
level: Level_repr.t ;
|
|
||||||
voting_period_kind: Voting_period_repr.kind ;
|
|
||||||
}
|
|
||||||
let metadata_encoding =
|
|
||||||
let open Data_encoding in
|
|
||||||
def "block_header.alpha.metadata" @@
|
|
||||||
conv
|
|
||||||
(fun { baker ; level ; voting_period_kind } ->
|
|
||||||
(baker, level, voting_period_kind))
|
|
||||||
(fun (baker, level, voting_period_kind) ->
|
|
||||||
{ baker ; level ; voting_period_kind })
|
|
||||||
(obj3
|
|
||||||
(req "baker" Signature.Public_key_hash.encoding)
|
|
||||||
(req "level" Level_repr.encoding)
|
|
||||||
(req "voting_period_kind" Voting_period_repr.kind_encoding))
|
|
||||||
|
|
||||||
(** Constants *)
|
(** Constants *)
|
||||||
|
|
||||||
let max_header_length =
|
let max_header_length =
|
||||||
|
@ -28,12 +28,6 @@ type block_header = t
|
|||||||
type raw = Block_header.t
|
type raw = Block_header.t
|
||||||
type shell_header = Block_header.shell_header
|
type shell_header = Block_header.shell_header
|
||||||
|
|
||||||
type metadata = {
|
|
||||||
baker: Signature.Public_key_hash.t ;
|
|
||||||
level: Level_repr.t ;
|
|
||||||
voting_period_kind: Voting_period_repr.kind ;
|
|
||||||
}
|
|
||||||
|
|
||||||
val raw: block_header -> raw
|
val raw: block_header -> raw
|
||||||
|
|
||||||
val encoding: block_header Data_encoding.encoding
|
val encoding: block_header Data_encoding.encoding
|
||||||
@ -42,7 +36,6 @@ val contents_encoding: contents Data_encoding.t
|
|||||||
val unsigned_encoding: (Block_header.shell_header * contents) Data_encoding.t
|
val unsigned_encoding: (Block_header.shell_header * contents) Data_encoding.t
|
||||||
val protocol_data_encoding: protocol_data Data_encoding.encoding
|
val protocol_data_encoding: protocol_data Data_encoding.encoding
|
||||||
val shell_header_encoding: shell_header Data_encoding.encoding
|
val shell_header_encoding: shell_header Data_encoding.encoding
|
||||||
val metadata_encoding: metadata Data_encoding.encoding
|
|
||||||
|
|
||||||
val max_header_length: int
|
val max_header_length: int
|
||||||
(** The maximum size of block headers in bytes *)
|
(** The maximum size of block headers in bytes *)
|
||||||
|
@ -17,8 +17,8 @@ type block_header = Alpha_context.Block_header.t = {
|
|||||||
|
|
||||||
let block_header_data_encoding = Alpha_context.Block_header.protocol_data_encoding
|
let block_header_data_encoding = Alpha_context.Block_header.protocol_data_encoding
|
||||||
|
|
||||||
type block_header_metadata = Alpha_context.Block_header.metadata
|
type block_header_metadata = Apply_results.block_metadata
|
||||||
let block_header_metadata_encoding = Alpha_context.Block_header.metadata_encoding
|
let block_header_metadata_encoding = Apply_results.block_metadata_encoding
|
||||||
|
|
||||||
type operation_data = Alpha_context.packed_protocol_data =
|
type operation_data = Alpha_context.packed_protocol_data =
|
||||||
| Operation_data : 'kind Alpha_context.Operation.protocol_data -> operation_data
|
| Operation_data : 'kind Alpha_context.Operation.protocol_data -> operation_data
|
||||||
@ -182,7 +182,7 @@ let apply_operation
|
|||||||
let finalize_block { mode ; ctxt ; op_count } =
|
let finalize_block { mode ; ctxt ; op_count } =
|
||||||
match mode with
|
match mode with
|
||||||
| Partial_construction _ ->
|
| Partial_construction _ ->
|
||||||
let level = Alpha_context. Level.current ctxt in
|
let level = Alpha_context.Level.current ctxt in
|
||||||
Alpha_context.Vote.get_current_period_kind ctxt >>=? fun voting_period_kind ->
|
Alpha_context.Vote.get_current_period_kind ctxt >>=? fun voting_period_kind ->
|
||||||
let baker = Signature.Public_key_hash.zero in
|
let baker = Signature.Public_key_hash.zero in
|
||||||
Signature.Public_key_hash.Map.fold
|
Signature.Public_key_hash.Map.fold
|
||||||
@ -192,14 +192,12 @@ let finalize_block { mode ; ctxt ; op_count } =
|
|||||||
(Alpha_context.get_deposits ctxt)
|
(Alpha_context.get_deposits ctxt)
|
||||||
(return ctxt) >>=? fun ctxt ->
|
(return ctxt) >>=? fun ctxt ->
|
||||||
let ctxt = Alpha_context.finalize ctxt in
|
let ctxt = Alpha_context.finalize ctxt in
|
||||||
return (ctxt, { Alpha_context.Block_header.baker ; level ;
|
return (ctxt, Apply_results.{ baker ; level ; voting_period_kind })
|
||||||
voting_period_kind })
|
|
||||||
| Partial_application { baker ; _ } ->
|
| Partial_application { baker ; _ } ->
|
||||||
let level = Alpha_context. Level.current ctxt in
|
let level = Alpha_context. Level.current ctxt in
|
||||||
Alpha_context.Vote.get_current_period_kind ctxt >>=? fun voting_period_kind ->
|
Alpha_context.Vote.get_current_period_kind ctxt >>=? fun voting_period_kind ->
|
||||||
let ctxt = Alpha_context.finalize ctxt in
|
let ctxt = Alpha_context.finalize ctxt in
|
||||||
return (ctxt, { Alpha_context.Block_header.baker ; level ;
|
return (ctxt, Apply_results.{ baker ; level ; voting_period_kind })
|
||||||
voting_period_kind })
|
|
||||||
| Application
|
| Application
|
||||||
{ baker ; block_header = { protocol_data = { contents = protocol_data ; _ } ; _ } }
|
{ baker ; block_header = { protocol_data = { contents = protocol_data ; _ } ; _ } }
|
||||||
| Full_construction { protocol_data ; baker ; _ } ->
|
| Full_construction { protocol_data ; baker ; _ } ->
|
||||||
@ -214,7 +212,7 @@ let finalize_block { mode ; ctxt ; op_count } =
|
|||||||
raw_level fitness priority op_count in
|
raw_level fitness priority op_count in
|
||||||
Alpha_context.Vote.get_current_period_kind ctxt >>=? fun voting_period_kind ->
|
Alpha_context.Vote.get_current_period_kind ctxt >>=? fun voting_period_kind ->
|
||||||
let ctxt = Alpha_context.finalize ~commit_message ctxt in
|
let ctxt = Alpha_context.finalize ~commit_message ctxt in
|
||||||
return (ctxt, { Alpha_context.Block_header.baker ; level ; voting_period_kind })
|
return (ctxt, Apply_results.{ baker ; level ; voting_period_kind })
|
||||||
|
|
||||||
let compare_operations op1 op2 =
|
let compare_operations op1 op2 =
|
||||||
let open Alpha_context in
|
let open Alpha_context in
|
||||||
|
@ -43,7 +43,7 @@ type operation = Alpha_context.packed_operation = {
|
|||||||
|
|
||||||
include Updater.PROTOCOL
|
include Updater.PROTOCOL
|
||||||
with type block_header_data = Alpha_context.Block_header.protocol_data
|
with type block_header_data = Alpha_context.Block_header.protocol_data
|
||||||
and type block_header_metadata = Alpha_context.Block_header.metadata
|
and type block_header_metadata = Apply_results.block_metadata
|
||||||
and type block_header = Alpha_context.Block_header.t
|
and type block_header = Alpha_context.Block_header.t
|
||||||
and type operation_data := operation_data
|
and type operation_data := operation_data
|
||||||
and type operation_receipt = Apply_results.packed_operation_metadata
|
and type operation_receipt = Apply_results.packed_operation_metadata
|
||||||
|
Loading…
Reference in New Issue
Block a user