open-autonomy icon indicating copy to clipboard operation
open-autonomy copied to clipboard

Tendermint RPC protocol + connection

Open marfvr opened this issue 4 years ago • 0 comments
trafficstars

Is your feature request related to a problem? Please describe. Currently, In order to interact with a Tendermint node, we use Tendermint RPC calls through HTTP. However, that requires encoding the Tendermint RPC requests into HTTP requests.

Describe the solution you'd like Two new AEA components that serve as an abstraction, from the skill perspective, to interact with the Tendermint node, based on Tendermint RPC protocols https://docs.tendermint.com/master/rpc/#/:

  • tendermint_rpc protocol, that represents all the Tendermint RPC requests and responses
  • tendermint_rpc connection, such that:
    • messages from a skill towards the Tendermint node are Tendermint RPC requests that are encoded into an HTTP request, and sends it using an HTTP connection;
    • messages from the Tendermint node towards a skill are HTTP responses that are decoded into Tendermint RPC message responses.

Potentially, the Tendermint RPC connection could support the three modes available:

Tendermint supports the following RPC protocols:

  1. URI over HTTP
  2. JSONRPC over HTTP
  3. JSONRPC over websockets

But as a first step, we can use the first one.

Describe alternatives you've considered n/a

Additional context n/a

marfvr avatar Sep 29 '21 20:09 marfvr