katzenpost / docs

specification and design documents
Creative Commons Attribution Share Alike 4.0 International
53 stars 14 forks source link

capabilities on kaetzchen #12

Closed kalikaneko closed 6 years ago

Yawning commented 6 years ago

I was going to add something similar, but I think the proposed map is backwards.

The server can and will (trivially) build an internal map of endpoint -> plugin, and beyond checking for collisions, the server does relatively little past that point, beyond shuffling packets to the correct location, and publishing the descriptor once in a while.

On the other hand, all plugin clients need to know the capability before the endpoint (Eg: To actually use the keyserver, the client needs to know if it's supported, before knowing where to send queries.).

I think it should be a map from the capability to a map, containing say.... endpoint, because this simplifies implementation.

While you're thinking about this, neither proposed mapping has a solution for "multiple plugins implementing the identical capability". I would be ok with forbidding such silliness, but if people think this should be supported, someone needs to come up with a clear cut way to disambiguate multiple entries.