|
@ -1,7 +1,53 @@ |
|
|
openapi: 3.0.0 |
|
|
openapi: 3.0.0 |
|
|
info: |
|
|
info: |
|
|
title: RPC client for Tendermint |
|
|
|
|
|
description: A REST interface for state queries, transaction generation and broadcasting. |
|
|
|
|
|
|
|
|
title: Tendermint RPC |
|
|
|
|
|
description: | |
|
|
|
|
|
Tendermint supports the following RPC protocols: |
|
|
|
|
|
|
|
|
|
|
|
* URI over HTTP |
|
|
|
|
|
* JSONRPC over HTTP |
|
|
|
|
|
* JSONRPC over websockets |
|
|
|
|
|
|
|
|
|
|
|
## Configuration |
|
|
|
|
|
|
|
|
|
|
|
RPC can be configured by tuning parameters under `[rpc]` table in the |
|
|
|
|
|
`$TMHOME/config/config.toml` file or by using the `--rpc.X` command-line |
|
|
|
|
|
flags. |
|
|
|
|
|
|
|
|
|
|
|
Default rpc listen address is `tcp://0.0.0.0:26657`. |
|
|
|
|
|
To set another address, set the `laddr` config parameter to desired value. |
|
|
|
|
|
CORS (Cross-Origin Resource Sharing) can be enabled by setting |
|
|
|
|
|
`cors_allowed_origins`, `cors_allowed_methods`, `cors_allowed_headers` |
|
|
|
|
|
config parameters. |
|
|
|
|
|
|
|
|
|
|
|
## Arguments |
|
|
|
|
|
|
|
|
|
|
|
Arguments which expect strings or byte arrays may be passed as quoted |
|
|
|
|
|
strings, like `"abc"` or as `0x`-prefixed strings, like `0x616263`. |
|
|
|
|
|
|
|
|
|
|
|
## URI/HTTP |
|
|
|
|
|
|
|
|
|
|
|
A REST like interface. |
|
|
|
|
|
|
|
|
|
|
|
curl localhost:26657/block?height=5 |
|
|
|
|
|
|
|
|
|
|
|
## JSONRPC/HTTP |
|
|
|
|
|
|
|
|
|
|
|
JSONRPC requests can be POST'd to the root RPC endpoint via HTTP. |
|
|
|
|
|
|
|
|
|
|
|
curl --header "Content-Type: application/json" --request POST --data '{"method": "block", "params": ["5"], "id": 1}' localhost:26657 |
|
|
|
|
|
|
|
|
|
|
|
## JSONRPC/websockets |
|
|
|
|
|
|
|
|
|
|
|
JSONRPC requests can be also made via websocket. |
|
|
|
|
|
The websocket endpoint is at `/websocket`, e.g. `localhost:26657/websocket`. |
|
|
|
|
|
Asynchronous RPC functions like event `subscribe` and `unsubscribe` are |
|
|
|
|
|
only available via websockets. |
|
|
|
|
|
|
|
|
|
|
|
Example using https://github.com/hashrocket/ws: |
|
|
|
|
|
|
|
|
|
|
|
ws ws://localhost:26657/websocket |
|
|
|
|
|
> { "jsonrpc": "2.0", "method": "subscribe", "params": ["tm.event='NewBlock'"], "id": 1 } |
|
|
version: "Master" |
|
|
version: "Master" |
|
|
license: |
|
|
license: |
|
|
name: Apache 2.0 |
|
|
name: Apache 2.0 |
|
@ -309,6 +355,9 @@ paths: |
|
|
} |
|
|
} |
|
|
}() |
|
|
}() |
|
|
``` |
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
NOTE: if you're not reading events fast enough, Tendermint might |
|
|
|
|
|
terminate the subscription. |
|
|
parameters: |
|
|
parameters: |
|
|
- in: query |
|
|
- in: query |
|
|
name: query |
|
|
name: query |
|
|