Why does Hermes need both rpc_addr
and websocket_addr
?
#2685
-
Summary
After some exploration, I found rpc_addr is related to check the latest status of a chain for relayer. Is there any Problem DefinitionProposalAcceptance CriteriaFor Admin Use
|
Beta Was this translation helpful? Give feedback.
Replies: 7 comments
-
Hermes depends on both the gRPC endpoints exposed by the Cosmos SDK as well as the JSON-RPC and WebSocket endpoints exposed by Tendermint. As such you currently need to specify all three of Can you get into more details as to what is the problem with the RPC endpoint? Is the chain you are working with not Tendermint-based? |
Beta Was this translation helpful? Give feedback.
-
As per your original question: at the moment there is no way to mock just the light client, but you can either: a) write your own implementation of the As for the WebSocket endpoint, you may not need it if you go with option (a) but you will still need to implement the |
Beta Was this translation helpful? Give feedback.
-
Thank you for your reply. |
Beta Was this translation helpful? Give feedback.
-
At the moment, yes. Many teams are working on forks to support non-SDK, eg Composable Finance to support Substrate (Polkadot ecosystem) networks: https://github.com/ComposableFi/ibc-rs/commits/master. This module captures all the relayer dependencies towards a network (eg Cosmos SDK networks) including Tendermint-level dependencies: https://github.com/informalsystems/ibc-rs/blob/1d56e6db85a25f0c14dd80a6336266118d4c0ead/crates/relayer/src/chain/cosmos.rs#L1 The trait What is the network you're looking to support? |
Beta Was this translation helpful? Give feedback.
-
Technically your chain doesn't need to be built on the Cosmos SDK to work with hermes; it only needs to expose the same gRPC endpoints as the SDK. You can look at basecoin for an example of how that might be implemented. |
Beta Was this translation helpful? Give feedback.
-
basecoin is the application built on tendermint. Hermes needs rpc_addr which is exposed by tendermint. |
Beta Was this translation helpful? Give feedback.
-
That's right.
That's correct, but insufficient. It also needs some gRPC endpoints, which are exposed by the application (e.g. basecoin). So essentially you will need to implement the rpc endpoints coming from tendermint as well as some additional gRPC endpoints exposed directly by the application. |
Beta Was this translation helpful? Give feedback.
That's right.
That's correct, but insufficient. It also needs some gRPC endpoints, which are exposed by the application (e.g. basecoin). So essentially you will need to implement the rpc endpoints coming from tendermint as well as some additional gRPC endpoints exposed directly by the application.