val split_key : Tezos_proxy.Proxy.mode -> 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):
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. When the proxy server was introduced, this function was generalized to split differently according to the mode.
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
true for some keys will reduce the number of RPC calls.