Parameter Make.X

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. 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 : Mavryk_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.