ibc icon indicating copy to clipboard operation
ibc copied to clipboard

ICS25, ICS26: Review

Open ebuchman opened this issue 4 years ago • 1 comments

Surfaced from Informal Systems IBC Audit

ICS25:

  • [ ] By default, clients are unowned: any module may create a new client, query any existing client, update any existing client, and delete any existing client not in use. - What does not in use mean ? For instance, could a client that was just created in block X be deleted by a malicious module in the EndBlock of block X?
  • [ ] What does SHALL allow external calls mean? And could we call out explicitly for which methods external calls are not allowed?

ICS26:

  • [ ] Should callbackPath and authenticationPath be listed in ICS24? Are there other things in privateStore not listed in ICS24?
  • [ ] lookupModule function signature should return a Callback

Notes for refactor:

  • [ ] Can ICS25 be consolidated into 26? Not clear what value their separation brings.
  • [ ] All datagrams are actually defined in ICS26, rather than their respective ICS (eg. the ConnOpenInit datagram is defined in ICS26, but the handler for that datagram is defined in ICS03 and takes as arguments the individual fields). While this makes sense as ICS26 is the routing module that receives datagrams, unpacks them, and calls the respective handlers, this organization could be clarified

ebuchman avatar Nov 26 '20 01:11 ebuchman

I'm not entirely sure ICS 25 and 26 really need to exist, to be honest. They seem pretty inessential.

cwgoes avatar Nov 28 '20 00:11 cwgoes