CAKE Network Information Protocol
This is a protocol by which CAKE entities request and exchange information about public keys. The information includes anything that be be in an AssertionMessage.
CAKE entities keep track of eachother's TopologicalAddresses using this protocol. Also, when a CAKE entity gets a message from a PublicKeyID that it doesn't know about, it can use this protocol to request the PublicKey.
There is only one message in this protocol and it is relatively simple. It is a (possibly empty) list of questions, and a (possibly empty) list of responses. This means that messages in this protocol can both ask and answer questions.
- A question consists of these things:
- A key the question is being asked about
- Whether responses must be about that key, or signed by that key.
- The maximize size of a response to this question
A list of which AssertionMessage types are valid responses (empty for any).
If responses must be about the first key, a list of which keys the messages may be signed by (empty for any), else a list of which keys the messages must be about (empty for any). This is a list of 32 byte PublicKeyIDs.
A response is just an AssertionMessage.
