-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dynamic capability & routing implementation #5542
Comments
@alexanderbez Are you interested in working on this 🙏 ? |
@cwgoes yes. WRT to routing, is it enough to pass a router to the IBC module that handles package/msg route to module message handler? |
We could architect it that way, I don't have a strong preference. The important part is simply that IBC packets get routed to the module which owns the port to which the packet is addressed. |
After #5828 the next step is to update |
Basic routing mechanism:
If we do want to implement support for multi-owner capability routing, either the call pattern has to be reversed (modules have to call into the IBC handler, rather than vice versa), or we need to implement some way for a module which is one (of many) owners of a capability to claim the "routing slot", which is singular. I don't think present use cases require this, though (dynamic IBC does not require this, at least not at the moment). |
Can we go with the simpler approach of routing to a single module while we design a cleaner approach for multi-owner/module routing? |
I think that's fine for the time being. |
Currently because single owner ports can't be enforced at the capability level, unless we force modules to release after transfer. I am enforcing this property in the routing module. Even if port capabilities are owned by multiple modules. The router will only map portID to a single module name at any given point for now |
Closed by #5888. |
Apparently we assume that
ModuleName == PortName
inMsgPacket
, this is just wrong. Instead we need a routing table mapping port owners to module names.The text was updated successfully, but these errors were encountered: