-
Notifications
You must be signed in to change notification settings - Fork 399
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
ICS 18: Relayer algorithms #37
Conversation
Ready for review as a draft. Specific functions for calculating valid datagrams will need to be defined in individual ICSs as mentioned. Possibly this ICS could include more detail about relayer incentivization later, but I think that design discussion would be too early now (it doesn't seem particularly difficult, and is unlikely to require low-level protocol changes). I suggest reviewing the rendered Markdown. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Clear high-level description of the relayer algorithm. To be able to implement actual relayers implementers will need to know more internals of pendingDatagrams
and submitDatagram
. My understanding is that these will be part of separate ICSs.
Co-Authored-By: cwgoes <[email protected]>
Yes, that's right. I think that makes more sense because chains are likely to implement subsets of the IBC protocol - that way relayers can compose |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🥑
Question: Do we need to creation some notion of an The relayer algorithm would then be expected to insert any detected datagram if the id wasn't already in the mempool. |
This is expected to be included in I think usually we will (certainly for packets), but occasionally other state will be sufficient (connection state, for example, in the connection handshake). |
|
||
A *relayer* is an off-chain process with the ability to read the state of and submit transactions to some set of ledgers utilizing the IBC protocol. | ||
|
||
### Desired Properties |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These properties are not necessarily telling us what we expect from relayer. It's more telling us what other part don't expect from relayers.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, I suppose - these are desired properties of how we construct the relayer algorithm (e.g. permissionless - all datagrams are verified by the blockchain state machine itself). Some are a bit vague but I think still worth listing.
What properties do you think are in scope here?
Questions I have so far:
|
Merging to the "draft" stage, further comments always welcome. |
Closes #35.
This is a pretty minimal specification for now, since the details of
pendingDatagrams
will be defined in individual ICSs and I think it's too early to spend much time working out relayer fee reimbursement.