Skip to content

Adds automated changelog, basic IBCv2 docs + small tweaks #21

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

Merged
merged 14 commits into from
Aug 1, 2025

Conversation

Cordtus
Copy link
Contributor

@Cordtus Cordtus commented Jul 25, 2025

New page /evm/changelog which should be generated by the github workflow from the cosmos/evm repo changelog on new releases.

New pages in /ibc created to summarize the ibcv2 spec docs

Rearranged sidebar and tabs bar. "Concepts" now lives under EVM. EVM Devnet is moved to the bottom of the EVM section. IBC is now a tab.

@Cordtus Cordtus marked this pull request as ready for review July 31, 2025 19:17
@Cordtus Cordtus merged commit 3d3d2a9 into main Aug 1, 2025
2 of 3 checks passed
Copy link

@gjermundgaraba gjermundgaraba left a comment

Choose a reason for hiding this comment

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

Sorry for the late review here - totally my bad. Mostly minor comments and nits anyway! Really great to have this written down 🙌


### Delivery and Acknowledgement

Once a packet is verified, its data is delivered to the destination application for processing. The destination chain then commits an Acknowledgement, recording the outcome of the transaction (either success or failure). This acknowledgement acts as a return receipt, which a relayer then delivers back to the source chain along with its own proof.

Choose a reason for hiding this comment

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

Nit: the applications can also return data in the ack

Suggested change
Once a packet is verified, its data is delivered to the destination application for processing. The destination chain then commits an Acknowledgement, recording the outcome of the transaction (either success or failure). This acknowledgement acts as a return receipt, which a relayer then delivers back to the source chain along with its own proof.
Once a packet is verified, its data is delivered to the destination application for processing. The destination chain then commits an Acknowledgement, recording the outcome of the transaction (either some application specific success data or a failure). This acknowledgement acts as a return receipt, which a relayer then delivers back to the source chain along with its own proof.

## Key Components

<Accordion title="Client (ICS‑02) – Light Client">
An on‑chain light client that verifies the state of a counter‑party chain using cryptographic proofs against a trusted consensus state.

Choose a reason for hiding this comment

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

Nit: ICS02 specifies how light clients should behave, as well as how the protocol itself should handle client creation (adding new light clients) and client routing (making sure updateClient, verify* goes to the correct light client).

1. Locates the correct light client via `destClientId`.
2. Verifies the proof.
3. Stores a **Receipt** at the **Packet Receipt** path.
4. Invokes the destination module’s `OnRecvPacket` callback.

Choose a reason for hiding this comment

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

Might be worth using a similar language to earlier and call this an "App"?

</Accordion>

<Accordion title="3. WriteAcknowledgement (Destination Chain)">
The destination application returns an **Acknowledgement** (success data or error) from `OnRecvPacket`. The IBC handler commits this acknowledgement at the **Acknowledgement** path, making it ava>

Choose a reason for hiding this comment

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

Missing something at the end of this sentence?

A relayer brings the acknowledgement and its proof back to the source chain. After proof verification, the source chain’s handler:

* Deletes the original packet commitment.
* Calls `OnAcknowledgePacket` on the sending application to finalize the cross‑chain operation.

Choose a reason for hiding this comment

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

Might be worth nothing that the ack is passed to the sending application so it can act on the information if that is desired.

</Accordion>

<Accordion title="5. TimeoutPacket (Source Chain)">
If no acknowledgement arrives before `timeout`, a relayer submits a non‑existence proof for the **Packet Receipt**. The source chain deletes the packet commitment and triggers `OnTimeoutPacket`, allowing the application to revert or refund the original transaction.

Choose a reason for hiding this comment

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

Nit: the word "arrives" here is a little ambiguous. If the no receipt been written before the timeout timestamp, the relayer would do this. It's not dependent on wether or not it arrived back at the source chain or not. Technically the acknowledgment can never arrive, if nobody bothers to relay it - many applications don't actually do anything with a success ack. With ICS20 Transfer for instance, the ack does nothing useful - and we don't really need to do it if the gas cost is very high for instance.

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