- start using `GET` and query parameters instead of `POST` when
meaningful
- inline parsed protocol data and metadata in block headers
- inline parsed protocol data and metadata in operations
- split the RPC in four categories:
- static data, available explicitly in block headers and operations
- static "metadata", information that were computed while validating
a block or an operation, but which are not explicit in the block
header (e.g. the baker of a block, the list of internal
transfer... (currently not implemented, but that's WIP))
- "context" all the static data we may read in the context
(contracts balance, list of delegates, ...)
- "helpers" are some RPC that may perform some computation.
This allows a node to specify that it doesn't want to receive operations
that are not included in a block. To do so, one should use the new
--disable-mempool option.
A disabled mempool node announce its configuration during the ACK exchange.
This configuration should be easily expandable with other options.
Node will keep track of the ack exchange configuration for each nodes it
is connected to and will not propagate its mempool to disabled mempool
nodes.
A disabled mempool node will ignore non-empty mempool received.
In the future, this incident should be punish by a decrement of its score
and / or ban.
Added a block_service and corresponding handler in the node to perform
queries of the form '/blocks/<id>/raw_context/<path>?depth=<n>'
returning the sub-tree corresponding to <path> inside the context of
block <id>. The parameter <depth> controls the size of the tree,
default is 1.