Proxy.ProtoRpc
val split_key :
Tezos_protocol_environment.Proxy_context.M.key ->
(Tezos_protocol_environment.Proxy_context.M.key
* Tezos_protocol_environment.Proxy_context.M.key)
option
When about to do a RPC request, how to modify the request; to possibly request a parent tree of the key, to batch successive requests into one.
For example when requesting baking_rights, there's the following sequence of requests (for carthage):
v1;constants v1;first_level
To speed things up, this function returns "v1" on any of these keys, to do a single request instead of two. This list is arbitrary. It was built by initial input from @klakplok and by experimenting.
This function guarantees that if it returns Some(prefix, suffix) then prefix @@ suffix = key
.
val failure_is_permanent :
Tezos_protocol_environment.Proxy_context.M.key ->
bool
failure_is_permanent key
means that, if the request rpc get /chains/<chain_id>/blocks/<block_id>/context/raw/bytes/key
fails once, then it should not be retried; because this key is known to be missing all the time. It is safe to return always false
. Returning true
for some keys will reduce the number of RPC calls.