logo

Q2 Contributor Showcase: Dev Ojha, Osmosis

avatar
Adi Ravi Raj
August 29, 2024
3 Min
article cover image

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:

  1. Speeding up the RedundantRelayDecorator for Check and RecheckTx (#6232)
  2. Achieving constant-sized state bloat for unordered channels (#1100)
  3. 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:

  1. Limit ClientUpdate checks to CheckTx only, excluding RecheckTx.
  2. 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:

  1. Introduce parameters to limit how long acknowledgements are stored and how long timeouts can be set for.
  2. 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.

avatar
Adi Ravi Raj
IBC Protocol analyst at ICF.
Adi Ravi Raj works at Interchain GmbH and is the protocol analyst for the IBC team.

Recent Articles

Cover for Getting Started With IBC: Understanding the Interchain Stack and the Main IBC ImplementationsGetting Started With IBC: Understanding the Interchain Stack and the Main IBC Implementations
This article aims to provide an overview of IBC and its main implementations, ibc-go and ibc-rs, as well as other components of the Interchain stack, namely CometBFT and the Cosmos SDK.
avatar
Adi Ravi Raj
October 16, 2023
5 Min
Cover for Winners of the IBC Ideathon, Ideahacker's Guide to IBCWinners of the IBC Ideathon, Ideahacker's Guide to IBC
Announcing the winners of the first-ever IBC Ideathon, Ideahacker's Guide to IBC!
avatar
IBC Protocol
November 15, 2024
4 Min
Head to our Github to begin.

Ready to get started?