Q2 Contributor Showcase: Dev Ojha, Osmosis
Introduction
Following the success of our Q1 Contributor Showcase, we're excited to announce the winner for Q2 2024. The Contributor Showcase initiative continues to recognize outstanding contributions to the IBC protocol from our robust developer community.
We are thrilled to announce Dev, co-founder and core contributor to Osmosis, as the winner of the Q2 2024 Contributor Showcase! Dev's invaluable contributions have considerably improved IBC’s performance and addressed important issues within the protocol.
While we recognize Dev specifically for his Q2 contributions, it's important to note that he has been a long-time contributor to IBC and other parts of the Intercain stack. As a co-founder of Osmosis, one of the first projects to adopt and implement IBC, Dev has been at the forefront of IBC’s development since its early days.
Dev's Contributions
Dev was selected for his outstanding work on two critical issues:
- Speeding up the RedundantRelayDecorator for Check and RecheckTx (#6232)
- Achieving constant-sized state bloat for unordered channels (#1100)
- Let's dive into these two issues and their impact on IBC.
1. Speeding up RedundantRelayDecorator
In issue #6232, Dev identified a performance bottleneck in the RedundantRelayDecorator
, which was causing slowdowns in CheckTx
and RecheckTx
operations. This issue was particularly impactful for RecheckTx due to its consensus-blocking nature.
Dev proposed the following solutions to optimize the RedundantRelay
logic:
- Limit
ClientUpdate
checks toCheckTx
only, excludingRecheckTx
. - Simplify other operations to perform state reads and writes only when necessary, avoiding full logic execution.
These optimizations were crucial for reducing mempool overhead and minimizing the consensus delay introduced by IBC transactions in the mempool. His suggestions were implemented in ibc-go v7.4.1, v7.5.1 and v8.3.1.
2. Constant Sized State Bloat for Unordered Channels
In issue #1100, Dev brought to light the problem of linear state growth in IBC packet acknowledgements. Currently, chains store acknowledgements indefinitely, leading to state size that grows linearly with the total number of IBC packets successfully sent.
The solution to this problem proposed by Dev was the following:
- Introduce parameters to limit how long acknowledgements are stored and how long timeouts can be set for.
- Modify the timeout logic to check block headers within a specific range, bounded by the timeout timestamp and a "max ACK storage period."
This approach ensures that chains no longer need to store all old acknowledgements, effectively achieving constant-sized state bloat for unordered channels. While the exact solution is still under discussion, Dev's innovative ideas continue to add immense value to the ongoing development of IBC.
Impact of Dev's Contributions
Dev's work addresses important performance and scalability issues in the IBC protocol.
By optimizing the RedundantRelayDecorator, Dev's work reduces the consensus-blocking impact of IBC transactions, which translates into lower latency for end users.
Additionally, the solution outlined in #1100 can prevent linear state growth, ensuring that chains can handle a growing number of IBC transactions without unbounded state expansion.
Both contributions help make IBC faster and scalable for the long term, paving the way for increased adoption and more robust applications.
Looking Ahead
Dev's contributions showcase the kind of innovative thinking and problem-solving that drives the IBC ecosystem forward. At Interchain GmbH, we are actively working on implementing these improvements and are extremely grateful for Dev's invaluable insight and contributions.
The nomination phase for the 2024 Q3 Contributor Showcase is now open. We strongly encourage the community to nominate individuals they think are making significant contributions to IBC.