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

ABCI interface / socket for queries from application to Tendermint #7893

Closed
cwgoes opened this issue Dec 2, 2019 · 4 comments
Closed

ABCI interface / socket for queries from application to Tendermint #7893

cwgoes opened this issue Dec 2, 2019 · 4 comments
Labels
C:abci Component: Application Blockchain Interface S:proposal Status: Proposal stale for use by stalebot T:enhancement Type: Enhancement

Comments

@cwgoes
Copy link
Contributor

cwgoes commented Dec 2, 2019

As discussed re: cosmos/cosmos-sdk#5340.

At present, it is not possible for the application to query (deterministic) Tendermint state such as past headers, commits, etc. without using the HTTP RPC interface, which is a bit of an anti-pattern (if used for consensus-critical state machine logic). If this kind of query would be useful for several different application use-cases, it seems worthwhile to consider adding an ABCI interface / socket and request-response pattern for queries from the application to Tendermint, which would need to be handled by Tendermint in a deterministic fashion.

Ref #3480
Ref https://github.com/tendermint/tendermint/issues/3956

@tomtau
Copy link
Contributor

tomtau commented Dec 3, 2019

I'd be more in favour of extending https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-037-deliver-block.md to contain more information in the header that's currently only accessible via RPC

@melekes
Copy link
Contributor

melekes commented Dec 11, 2019

@tomtau what makes you prefer extending the ResponseBeginBlock/DeliverBlock approach?

@tomtau
Copy link
Contributor

tomtau commented Dec 11, 2019

@melekes I think it's easier, more streamlined approach in the spirit of the existing ABCI design.
In our use case, we'd want to process SignedHeader (Header+Commit info) on each block as soon as it arrives -- so if that's just another piece of information to grab in ResponseBeginBlock, it's convenient.
If an application doesn't need that information, they can just ignore it.
If an application needs that information, they can process and store that information in whichever way makes sense for them.

@tac0turtle tac0turtle transferred this issue from tendermint/tendermint Oct 26, 2020
@tac0turtle tac0turtle added C:abci Component: Application Blockchain Interface S:proposal Status: Proposal T:enhancement Type: Enhancement labels Oct 26, 2020
@aaronc
Copy link

aaronc commented Jan 14, 2021

It would be great to see something like this for the Cosmos SDK (see cosmos/cosmos-sdk#8272).

Seems like there's a few different ideas here, but specifically it would be ideal for any SDK module to be able to at a minimum query 1) historical blocks by height and hash and 2) transactions by hash.

It would also be nice if modules could search for indexed tx's by tag, but this needs to be deterministic so there need to be strong guarantees about what is and isn't indexed on all nodes. Anyway this seems a fair bit harder...

Any updates on where the Tendermint team is possibly seeing this in the roadmap @marbar3778 ?

@cmwaters cmwaters transferred this issue from tendermint/spec Feb 21, 2022
@github-actions github-actions bot added the stale for use by stalebot label Aug 29, 2023
@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Sep 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C:abci Component: Application Blockchain Interface S:proposal Status: Proposal stale for use by stalebot T:enhancement Type: Enhancement
Projects
None yet
Development

No branches or pull requests

5 participants