Skip to content
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

Relayer algorithm specification #84

Closed
milosevic opened this issue Jun 5, 2020 · 1 comment · Fixed by #110
Closed

Relayer algorithm specification #84

milosevic opened this issue Jun 5, 2020 · 1 comment · Fixed by #110
Assignees
Milestone

Comments

@milosevic
Copy link
Contributor

milosevic commented Jun 5, 2020

Write detailed technical specification of the relayer algorithm. The specification in ICS 18 (https://github.com/cosmos/ics/tree/master/spec/ics-018-relayer-algorithms) are not covering all details as it is meant to serve more as a relayer example. Protocol description from ADR (https://github.com/informalsystems/ibc-rs/blob/master/docs/architecture/adr-002-ibc-relayer.md) should be a starting point and it should be most probably moved to some extent outside ADR.

As part of this task we should understand what are the properties of IBC correct relayer(s) should provide. In ICS 18, the following sentence provides hints about expectations: "as long as each pair of chains has at least one correct & live relayer and the chains remain live, all packets flowing between chains in the network will eventually be relayed." We should formalise this property, and clarify the expectations in the presence of multiple correct relayers and some faulty relayers. Furthermore, More precisely, we should understand the relation with exactly-once property specified in the IBC specification. It seems that this property defines guarantees at the channel/packet level, but it does not specify what are guarantees IBC assumes at the level of a single IBC datagram.

Furthermore, we might want to separate the relayer algorithm that is responsible for establishing of connections/channels based on relayer configuration that initially takes place, from the algorithm for relaying IBC packets that happens after connections/channels are established.

@milosevic milosevic self-assigned this Jun 5, 2020
@ancazamfir ancazamfir added this to the 0.7-7mo milestone Jun 16, 2020
@ebuchman
Copy link
Member

Just a note this work should contribute directly to the ICS repo yes?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants