Skip to content

Rate limiting middleware #7975

Open
@gjermundgaraba

Description

@gjermundgaraba

The goal of this issue is to move the rate-limiting middleware module that currently resides at https://github.com/cosmos/ibc-apps/tree/main/modules/rate-limiting into the ibc-go repo to be maintained by the core IBC team.

Brief overview over things that need to be done

  • Set up the rate-limiting module as a separate go module under modules/apps and move and rename proto files to use the same structure and package names we use in the ibc-go repo for other middlewares
  • Move all the logic over to this repo
  • Refactor to follow the same structures and conventions used in the ibc-go repo
    • Including any tests, which should use the same integration test suite we use, and if any e2e tests, our e2e test setup
  • Write any missing unit and integration tests to at least cover the same type of scenarios as we do in callbacks and ics-29
  • Write e2e tests under e2e/
  • Write Eureka e2e tests in the solidity-ibc-eureka repo (this would mean adding the rate limiting middleware to the 08-wasm simapp, or creating a new simapp for testing in the solidity repo)

Things that are currently missing in the rate limiting middleware PR (some of which we can consider splitting into separate issues)

  • Merge in main, build, test and lint
  • Go over the current PR and compare with ibc-apps to see if anything is missing or logic change incorrectly
    • Remove client/tx.go (not necessary)
  • Address review comments
  • Finish unit tests (including any missing from ibc-apps in the PR)
  • Write e2e (from scratch) for IBC v1 in ibc-go repo
    • Define scenarios to test (can use gaia's e2es as a starting point)
  • Write e2e (from scratch) for IBC v2 in solidity-ibc-eureka repo
    • This means that Rate Limiting needs to be wired up in 08-wasm simapp (this is the image we use in solidity-ib-eureka)
    • Same scenarios and structure, but using IBC v2 transfers

👋 Note: we need to take notes on any missing information in the upgrade docs for middleware going from v8 to v10

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions