8000 feat: Implementation of the versioned gRPC API as specified in the ADR-106 · Issue #2693 · cometbft/cometbft · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
8000

feat: Implementation of the versioned gRPC API as specified in the ADR-106 #2693

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

Open
15 of 37 tasks
Tracked by #81
andynog opened this issue Mar 29, 2024 · 0 comments
Open
15 of 37 tasks
Tracked by #81
Assignees
Labels
grpc Anything relating to the gRPC API P:new-use-cases Priority: Enable new use cases for application developers tracking A complex issue broken down into sub-problems

Comments

@andynog
Copy link
Contributor
andynog commented Mar 29, 2024

Introduction

Now that the ADR-106 - gRPC API has been approved and merged, the next step is the implementation of the gRPC services outlined in the ADR.

This will be a master tracking issue for all the services that still need to be implemented.

Some gRPC services were fully or partially implemented as part of the ADR-101 - Data Companion Pull API effort, such as Block, BlockResults and Version service.

The remaining services don't need to be implemented all at once. The goal is to implement each individual service (and its methods) as part of a separate issue.

List of services to be implemented (and methods for each service)

  • VersionService - A simple service that aims to be quite stable over time in order to be utilized by clients to establish the version of the software with which they are interacting (e.g. to pre-emptively determine compatibility).
    • GetVersion - Query the version of the software and protocols employed by the node (e.g. CometBFT, ABCI, block, P2P and application version).


  • TransactionService - Facilitates broadcasting and querying of transactions.
    • BroadcastAsync - Broadcast a transaction asynchronously. Does not wait for the transaction to be validated via CheckTx, nor does it wait for the transaction to be committed.
    • BroadcastSync - Broadcast a transaction, but only return once CheckTx has been called on the transaction. Does not wait for the transaction to be committed.
    • GetByHash - Fetch a transaction by way of its hash.
    • Search - Search for transactions with their results.

  • ApplicationService - Provides a proxy interface through which to access the application being run by the node (via ABCI).
    • Query - Submit a query directly to the application via ABCI.

  • BlockService - Provides information about blocks.
    • GetLatestHeight - Return a stream of latest block heights as new blocks are committed to the blockchain.
    • GetByHeight - Fetch the block associated with a particular height.
    • GetHeaderByHeight - Fetch the heade 8000 r associated with the block at a particular height.
    • Search - Search for blocks by way of block events.

  • BlockResultsService - Provides information about block execution results.
    • GetBlockResults - Fetch the block results associated with a particular height.

  • ConsensusService - Provides information about consensus.
    • GetParams - Fetch the consensus parameters for a particular height.
    • GetCommit: Get commit results at the given height.
    • GetValidatorSet: Get validator set at the given height.

  • NetworkService - Provides information about the blockchain network.
    • GetGenesis - Fetch paginated genesis data.
    • GetPeers - Fetch information about the peers to which the node is connected.

The PruningService was not part of the ADR-106, but ADR-101. Since it is a gRPC service, it is included here for tracking purposes.

  • PruningService - provides privileged access to specialized pruning functionality on the CometBFT node to help control node storage.
    • SetBlockRetainHeight - Indicates to the node that it can safely prune all block data up to the specified retain height.
    • GetBlockRetainHeight - Returns information about the retain height parameters used by the node to influence block retention/pruning.
    • SetBlockResultsRetainHeight - Indicates to the node that it can safely prune all block results data up to the specified height.
    • GetBlockResultsRetainHeight - Returns information about the retain height parameters used by the node to influence block results retention/pruning.
    • SetTxIndexerRetainHeight - Indicates to the node that it can safely prune all tx indices up to the specified retain height.
    • GetTxIndexerRetainHeight - Returns information about the retain height parameters used by the node to influence TxIndexer pruning
    • SetBlockIndexerRetainHeight - Indicates to the node that it can safely prune all block indices up to the specified retain height.
    • GetBlockIndexerRetainHeight - Returns information about the retain height parameters used by the node to influence BlockIndexer pruning

  • PrivvalService -Allows communication with a signing backend

Definition of Done (DoD)

  • All services (and its methods) of the list have been implemented
@andynog andynog mentioned this issue Mar 29, 2024
3 tasks
@andynog andynog added this to CometBFT Mar 29, 2024
@andynog andynog self-assigned this Mar 29, 2024
@github-project-automation github-project-automation bot moved this to Todo in CometBFT Mar 29, 2024
@andynog andynog added grpc Anything relating to the gRPC API P:new-use-cases Priority: Enable new use cases for application developers tracking A complex issue broken down into sub-problems labels Mar 29, 2024
@andynog andynog changed the title Implementation of the versioned gRPC API as specified in the ADR on . feat: Implementation of the versioned gRPC API as specified in the ADR-106 Mar 29, 2024
@andynog andynog moved this from Todo to In Progress in CometBFT Mar 29, 2024
@alesforz alesforz self-assigned this Sep 25, 2024
@andynog andynog removed their assignment Dec 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
grpc Anything relating to the gRPC API P:new-use-cases Priority: Enable new use cases for application developers tracking A complex issue broken down into sub-problems
Projects
No open projects
Status: In Progress
Development

No branches or pull requests

2 participants
0