Skip to content

Do not compute hash for logging in RPC #16569

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/lib/mina_intf/transition_frontier_components_intf.ml
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,8 @@ module type Sync_handler_intf = sig
-> Mina_ledger.Sync_ledger.Answer.t Or_error.t Deferred.t

val get_staged_ledger_aux_and_pending_coinbases_at_hash :
frontier:transition_frontier
logger:Logger.t
-> frontier:transition_frontier
-> State_hash.t
-> ( Staged_ledger.Scan_state.t
* Ledger_hash.t
Expand Down
40 changes: 12 additions & 28 deletions src/lib/mina_networking/rpcs.ml
Original file line number Diff line number Diff line change
Expand Up @@ -293,35 +293,19 @@ module Get_staged_ledger_aux_and_pending_coinbases_at_hash = struct
let hash = Envelope.Incoming.data request in
let result =
let%bind.Option frontier = get_transition_frontier () in
Sync_handler.get_staged_ledger_aux_and_pending_coinbases_at_hash ~frontier
hash
Sync_handler.get_staged_ledger_aux_and_pending_coinbases_at_hash ~logger
~frontier hash
in
let%map () =
match result with
| Some
(scan_state, expected_merkle_root, pending_coinbases, _protocol_states)
->
let staged_ledger_hash =
Staged_ledger_hash.of_aux_ledger_and_coinbase_hash
(Staged_ledger.Scan_state.hash scan_state)
expected_merkle_root pending_coinbases
in
[%log debug]
~metadata:
[ ( "staged_ledger_hash"
, Staged_ledger_hash.to_yojson staged_ledger_hash )
]
"sending scan state and pending coinbase" ;
Deferred.unit
| None ->
Trust_system.(
record_envelope_sender trust_system logger
(Envelope.Incoming.sender request)
Actions.
( Requested_unknown_item
, Some (receipt_trust_action_message hash) ))
in
result
match result with
| None ->
Trust_system.(
record_envelope_sender trust_system logger
(Envelope.Incoming.sender request)
Actions.
(Requested_unknown_item, Some (receipt_trust_action_message hash)))
>>| const None
| _ ->
return result

let rate_limit_budget = (4, `Per Time.Span.minute)

Expand Down
15 changes: 10 additions & 5 deletions src/lib/sync_handler/sync_handler.ml
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,8 @@ module Make (Inputs : Inputs_intf) :
in
Sync_ledger.Any_ledger.Responder.answer_query responder query

let get_staged_ledger_aux_and_pending_coinbases_at_hash ~frontier state_hash =
let get_staged_ledger_aux_and_pending_coinbases_at_hash ~logger ~frontier
state_hash =
let open Option.Let_syntax in
let protocol_states scan_state =
Staged_ledger.Scan_state.required_state_hashes scan_state
Expand All @@ -138,14 +139,18 @@ module Make (Inputs : Inputs_intf) :
Transition_frontier.Breadcrumb.staged_ledger breadcrumb
in
let scan_state = Staged_ledger.scan_state staged_ledger in
let merkle_root =
Breadcrumb.staged_ledger_hash breadcrumb
|> Staged_ledger_hash.ledger_hash
in
let staged_ledger_hash = Breadcrumb.staged_ledger_hash breadcrumb in
let merkle_root = Staged_ledger_hash.ledger_hash staged_ledger_hash in
let%map scan_state_protocol_states = protocol_states scan_state in
let pending_coinbase =
Staged_ledger.pending_coinbase_collection staged_ledger
in
[%log debug]
~metadata:
[ ( "staged_ledger_hash"
, Staged_ledger_hash.to_yojson staged_ledger_hash )
]
"sending scan state and pending coinbase" ;
(scan_state, merkle_root, pending_coinbase, scan_state_protocol_states)
with
| Some res ->
Expand Down