ibc-go icon indicating copy to clipboard operation
ibc-go copied to clipboard

Add Ability to Specify A Relayer to Relay Your Packet

Open schnetzlerjoe opened this issue 2 years ago • 3 comments

Summary

Hello! I am starting to build a high-power IBC relayer in Julia using Julia's task system and multi-threading architecture (https://github.com/schnetzlerjoe/julia-relayer). I am doing so for two projects I am working on that focus on institutions. In the relayer, I am adding support for specifying the accounts you would like to relay for.

I was then thinking why that does not happen on the packet creation side, where you can specify a relayer you would like to relay the packet for you and that packet then could only be submitted based on a specific relayer account specified.

Not sure of the drawbacks here but I can see it being super useful for an institution who would prefer to just run their own relayer in-house and run their packets through that relayer only.

Problem Definition

It could help bring better use cases and adoption on the institutional side. Also could support faster relaying theoretically if someone wants to run one process that solely runs for themselves.

Proposal

The way I think it could work would be a param in the packet that specifies the relayer account that can relay for you. If that relayer account is empty, proceed as normal with any relayer but if not a check occurs on the submission of the packet that ensures the submitted packet is being submitted by the right relayer.


For Admin Use

  • [ ] Not duplicate issue
  • [ ] Appropriate labels applied
  • [ ] Appropriate contributors tagged/assigned

schnetzlerjoe avatar Jul 30 '22 23:07 schnetzlerjoe

Hi @schnetzlerjoe, thanks for opening an issue with this idea.

I think the use case is not completely clear to me yet... Some initial questions that popped up:

  • What would be the reasons for the institutional user to make sure that their relayer is the only one allowed to relay the packet?
  • What would be the problem for the institutional user if their packets are relayed by any other relayer?

crodriguezvega avatar Aug 03 '22 20:08 crodriguezvega

@crodriguezvega Of course!

  • What would be the reasons for the institutional user to make sure that their relayer is the only one allowed to relay the packet?

It would be the same reasons that institutions tend to favor private cloud over public or a combo of the two. Security, reliability and in this case, speed. Of course the software is built soundly, audited and all but bugs happen and things occur and if institutions flood in and are sending $10M tx's on the regular, it would be a major layor of comfort to run your own relayer that relays your packets.

On top of that, if I'm someone that wants to run a relayer to relay tx's, maybe I do not want to run other people's tx's (and pay for them) but would rather just to run my tx's.

-What would be the problem for the institutional user if their packets are relayed by any other relayer? I kinda mentioned this above, but it wouldn't be a problem I would say. It just comes down to preference, use case and functionality which by adding this feature allows.

schnetzlerjoe avatar Aug 03 '22 21:08 schnetzlerjoe

@schnetzlerjoe if you're still interested in this feature, you might want to check out https://github.com/cosmos/ibc/issues/1099. Thanks!

crodriguezvega avatar Apr 30 '24 15:04 crodriguezvega