mirror of
https://github.com/tendermint/tendermint.git
synced 2026-09-19 22:44:24 +00:00
* rpc: Add caching support (#9650)
* Set cache control in the HTTP-RPC response header
* Add a simply cache policy to the RPC routes
* add a condition to check the RPC request has default height settings
* fix cherry pick error
* update pending log
* use options struct intead of single parameter
* refacor FuncOptions to functional options
* add functional options in WebSocket RPC function
* revert doc
* replace deprecated function call
* revise functional options
* remove unuse comment
* fix revised error
* adjust cache-control settings
* Update rpc/jsonrpc/server/http_json_handler.go
Co-authored-by: Thane Thomson <connect@thanethomson.com>
* linter: Fix false positive
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* rpc: Separate cacheable and non-cacheable HTTP response writers
Allows us to roll this change out in a non-API-breaking way, since this
is an additive change.
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* rpc: Ensure consistent caching strategy
Ensure a consistent caching strategy across both JSONRPC- and URI-based
requests.
This requires a bit of a refactor of the previous caching logic, which
is complicated a little by the complex reflection-based approach taken
in the Tendermint RPC.
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* rpc: Add more tests for caching
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Update CHANGELOG_PENDING
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* light: Sync routes config with RPC core
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* rpc: Update OpenAPI docs
Signed-off-by: Thane Thomson <connect@thanethomson.com>
Signed-off-by: Thane Thomson <connect@thanethomson.com>
Co-authored-by: jayt106 <jaytseng106@gmail.com>
Co-authored-by: jay tseng <jay.tseng@crypto.com>
Co-authored-by: JayT106 <JayT106@users.noreply.github.com>
(cherry picked from commit 816c6bac00)
# Conflicts:
# CHANGELOG_PENDING.md
# light/proxy/routes.go
# rpc/core/routes.go
# rpc/openapi/openapi.yaml
# test/fuzz/tests/rpc_jsonrpc_server_test.go
* Fix conflict in CHANGELOG_PENDING
Signed-off-by: Thane Thomson <connect@thanethomson.com>
* Resolve remaining conflicts
Signed-off-by: Thane Thomson <connect@thanethomson.com>
Signed-off-by: Thane Thomson <connect@thanethomson.com>
Co-authored-by: Thane Thomson <connect@thanethomson.com>
This commit is contained in:
co-authored by
Thane Thomson
parent
e7b9ee7cef
commit
7917485bc7
@@ -216,6 +216,9 @@ paths:
|
||||
Please refer to
|
||||
https://docs.tendermint.com/v0.34/tendermint-core/using-tendermint.html#formatting
|
||||
for formatting/encoding rules.
|
||||
|
||||
Upon success, the `Cache-Control` header will be set with the default
|
||||
maximum age.
|
||||
parameters:
|
||||
- in: query
|
||||
name: tx
|
||||
@@ -623,9 +626,12 @@ paths:
|
||||
tags:
|
||||
- Info
|
||||
description: |
|
||||
Get block headers for minHeight <= height maxHeight.
|
||||
Get block headers for minHeight <= height <= maxHeight.
|
||||
|
||||
At most 20 items will be returned.
|
||||
|
||||
Upon success, the `Cache-Control` header will be set with the default
|
||||
maximum age.
|
||||
responses:
|
||||
"200":
|
||||
description: Block headers, returned in descending order (highest first).
|
||||
@@ -655,6 +661,9 @@ paths:
|
||||
- Info
|
||||
description: |
|
||||
Get Block.
|
||||
|
||||
If the `height` field is set to a non-default value, upon success, the
|
||||
`Cache-Control` header will be set with the default maximum age.
|
||||
responses:
|
||||
"200":
|
||||
description: Block informations.
|
||||
@@ -684,6 +693,9 @@ paths:
|
||||
- Info
|
||||
description: |
|
||||
Get Block By Hash.
|
||||
|
||||
Upon success, the `Cache-Control` header will be set with the default
|
||||
maximum age.
|
||||
responses:
|
||||
"200":
|
||||
description: Block informations.
|
||||
@@ -704,7 +716,7 @@ paths:
|
||||
parameters:
|
||||
- in: query
|
||||
name: height
|
||||
description: height to return. If no height is provided, it will fetch informations regarding the latest block.
|
||||
description: height to return. If no height is provided, it will fetch information regarding the latest block.
|
||||
schema:
|
||||
type: integer
|
||||
default: 0
|
||||
@@ -714,6 +726,9 @@ paths:
|
||||
description: |
|
||||
Get block_results. When the `discard_abci_responses` storage flag is
|
||||
enabled, this endpoint will return an error.
|
||||
|
||||
If the `height` field is set to a non-default value, upon success, the
|
||||
`Cache-Control` header will be set with the default maximum age.
|
||||
responses:
|
||||
"200":
|
||||
description: Block results.
|
||||
@@ -743,6 +758,9 @@ paths:
|
||||
- Info
|
||||
description: |
|
||||
Get Commit.
|
||||
|
||||
If the `height` field is set to a non-default value, upon success, the
|
||||
`Cache-Control` header will be set with the default maximum age.
|
||||
responses:
|
||||
"200":
|
||||
description: |
|
||||
@@ -791,6 +809,9 @@ paths:
|
||||
- Info
|
||||
description: |
|
||||
Get Validators. Validators are sorted by voting power.
|
||||
|
||||
If the `height` field is set to a non-default value, upon success, the
|
||||
`Cache-Control` header will be set with the default maximum age.
|
||||
responses:
|
||||
"200":
|
||||
description: Commit results.
|
||||
@@ -812,6 +833,9 @@ paths:
|
||||
- Info
|
||||
description: |
|
||||
Get genesis.
|
||||
|
||||
Upon success, the `Cache-Control` header will be set with the default
|
||||
maximum age.
|
||||
responses:
|
||||
"200":
|
||||
description: Genesis results.
|
||||
@@ -890,6 +914,9 @@ paths:
|
||||
- Info
|
||||
description: |
|
||||
Get consensus parameters.
|
||||
|
||||
If the `height` field is set to a non-default value, upon success, the
|
||||
`Cache-Control` header will be set with the default maximum age.
|
||||
responses:
|
||||
"200":
|
||||
description: consensus parameters results.
|
||||
@@ -1080,14 +1107,14 @@ paths:
|
||||
parameters:
|
||||
- in: query
|
||||
name: hash
|
||||
description: transaction Hash to retrive
|
||||
description: hash of transaction to retrieve
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
example: "0xD70952032620CC4E2737EB8AC379806359D8E0B17B0488F627997A0B043ABDED"
|
||||
- in: query
|
||||
name: prove
|
||||
description: Include proofs of the transactions inclusion in the block
|
||||
description: Include proofs of the transaction's inclusion in the block
|
||||
required: false
|
||||
schema:
|
||||
type: boolean
|
||||
@@ -1096,7 +1123,10 @@ paths:
|
||||
tags:
|
||||
- Info
|
||||
description: |
|
||||
Get a trasasction
|
||||
Get a transaction
|
||||
|
||||
Upon success, the `Cache-Control` header will be set with the default
|
||||
maximum age.
|
||||
responses:
|
||||
"200":
|
||||
description: Get a transaction`
|
||||
@@ -1112,12 +1142,15 @@ paths:
|
||||
$ref: "#/components/schemas/ErrorResponse"
|
||||
/abci_info:
|
||||
get:
|
||||
summary: Get some info about the application.
|
||||
summary: Get info about the application.
|
||||
operationId: abci_info
|
||||
tags:
|
||||
- ABCI
|
||||
description: |
|
||||
Get some info about the application.
|
||||
Get info about the application.
|
||||
|
||||
Upon success, the `Cache-Control` header will be set with the default
|
||||
maximum age.
|
||||
responses:
|
||||
"200":
|
||||
description: Get some info about the application.
|
||||
|
||||
Reference in New Issue
Block a user