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

Add interop framework #26

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open

Add interop framework #26

wants to merge 2 commits into from

Conversation

frangio
Copy link
Collaborator

@frangio frangio commented Feb 19, 2025

Documenting some of the design choices that have come up, and giving them names so we can discuss and decide.

Comment on lines +5 to +8
- **Data vs Value Transfer**
- A data-transfer protocol allows information in general to be transmitted cross-chain.
- A value-transfer protocol allows cross-chain transmission of fungible assets.
- Cross-chain value transfer is a form of exchange.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thinking about it, some might say that value transfer is actually a type of data transfer. What about defining data transfer as a "non-value" transfer or "generalized data transfer" and then mentioning that a value-transfer protocol is a "specialized" type of data transfer?

Comment on lines +13 to +15
- **Push vs Pull**
- A push protocol allows for the entire cross-chain transmission lifecycle, up to and including delivery to a receiver, to be arranged on the source chain without a user transaction on the destination chain. The protocol may rely on **third party relayers** to complete the lifecycle.
- A pull protocol requires a user (or application) to complete the lifecycle with a transaction on the destination chain. The protocol can be said to require **self-relaying**.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Genuinely curious about how to define push vs. pull in a way that accurately characterizes every existing protocol (I have proposed this one). As a general rule, I would say that a permissionless push-based protocol is actually a pull-based protocol. Third-party relayers could also be considered part of the users who seek to consume a message. In the other side, if the system itself—responsible for digesting and validating—is the only one that can execute the cross-chain operation, then we are entering push territory.

Let me know your thoughts

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 this pull request may close these issues.

2 participants