Skip to content
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

Feature gap between Hermes and Go relayer #837

Closed
10 tasks
ancazamfir opened this issue Apr 20, 2021 · 3 comments
Closed
10 tasks

Feature gap between Hermes and Go relayer #837

ancazamfir opened this issue Apr 20, 2021 · 3 comments
Assignees
Labels
A: admin Admin: general administrative & planning issue
Milestone

Comments

@ancazamfir
Copy link
Collaborator

ancazamfir commented Apr 20, 2021

Crate

relayer

Summary

This issue is to identify the missing features and guide hermes planning.
(cc @colin-axner)

Problem Definition

As support for Go relayer will be reduced over the next months/ year we should ensure we close the feature gap in hermes.

Proposal

  • REST server (see rly api) Hermes management, API specification and implementation (bootstrap) #843
  • manage chain configuration via CLI (see rly chains). Can query, remove and add (by specifying a file)
  • manage configuration file via CLI (see rly config). Can print, create a default, add chains, connections and paths to the configuration file.
  • join and run relayer testnets (see rly testnets). Listens for token requests (faucet) and requests tokens from faucets (request)
  • fetch the genesis file for a chain (see rly dev genesis)

(WIP)

Acceptance Criteria


For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate milestone (priority) applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned
@jackzampolin
Copy link

fwiw rly testnets was designed for the early IBC testnet era and may want redesign or scrapping. The facuet similar. The genesis command was for me testing how to pull consensus params out of the genesis file and doesn't have any special usage.

@romac romac changed the title Feature gap between hermes and Go relayer Feature gap between Hermes and Go relayer Apr 27, 2021
@ancazamfir ancazamfir modified the milestones: 04.2021, 05.2021 Apr 28, 2021
@adizere adizere self-assigned this Apr 29, 2021
@adizere adizere modified the milestones: 05.2021, 06.2021 Apr 29, 2021
@colin-axner
Copy link
Contributor

Two other features that I think are missing:

  • Updating config after successfully creating clients/connection/channels
  • Reusing existing clients/connection/channels

For the first feature, if I run hermes create client ibc-0 ibc-1, I'd expect the resulting client to be logged in my configuration file. This feature is primarily useful if hermes is being used as a standalone binary, so if the intended userbase is expected to write code to interact with hermes then I see this as less useful

For the second feature, if I run hermes create client ibc-0 ibc-1 twice, I'd expect the same client to be returned unless there is a long delay between the commands (the client becomes expired). This reuse prevents users from accidentally spamming chains when the client with their desired parameters already exist

A couple good points to keep in mind if implementing these features.

There are many times users may not want to reuse the same identifiers, an override option should be provided. I find a flag is not sufficiently explicit enough for this functionality. The override should likely be an argument. Users should be aware they are reusing or creating new clients/connections/channels but reusing should always be recommended as the default.

Ensure that clients without a Status of Active are not re-used. The go relayer didn't initially have this check which can be troubling to debug.

@ancazamfir ancazamfir modified the milestones: 06.2021, 07.2021 Jun 7, 2021
@adizere adizere modified the milestones: 07.2021, 08.2021 Jul 13, 2021
@adizere adizere added the A: admin Admin: general administrative & planning issue label Aug 3, 2021
@adizere adizere modified the milestones: 08.2021, Backlog Aug 3, 2021
@adizere
Copy link
Member

adizere commented Sep 9, 2021

Hermes dev is increasingly driven by relayer operators needs (Cephalopod, Gravity DeX).

@adizere adizere closed this as completed Sep 9, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A: admin Admin: general administrative & planning issue
Projects
None yet
Development

No branches or pull requests

4 participants