Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add gRPC block service (cometbft#1142)
* initial logic for the gRPC block service (cometbft#1094) * initial logic for gRPC block client and test (cometbft#1094) * block response and request (cometbft#1094) * add configuration for block service (cometbft#1094) * use pointer for request parameter (cometbft#1094) * change block service GetBlock response (cometbft#1094) * return block information (cometbft#1094) * convert core type to proto type (cometbft#1094) * hookup server (cometbft#1094) * hooking directly to the BlockStore instead of Environment (cometbft#1094) * changing client return type, use core type (cometbft#1094) * convert from proto to core type (cometbft#1094) * implemented proper logic to test block service (cometbft#1094) * return the latest height if height is 0 (cometbft#1094) * adding proper grpc error handling and return (cometbft#1094) * rename rpc and message in proto to match ADR-101 spec (cometbft#1094) * renaming service and client methods structs to match ADR (cometbft#1094) * additional error handling (cometbft#1094) * rename get block request and response (cometbft#1094) * update method name in the client (cometbft#1094) * proto entries for GetLatestHeight logic (cometbft#1094) * added logic for streaming new blocks as part of GetLatestHeight (cometbft#1094) * ensure subcribers have their own unique id (cometbft#1094) * client logic to use a channel parameter (cometbft#1094) * added test for GetLatestHeight (cometbft#1094) * better streaming test to prevent error (cometbft#1094) * remove empty line Co-authored-by: Thane Thomson <connect@thanethomson.com> * removing UNARY_RPC to prevent lint on server streaming (cometbft#1094) * remove server reflection, doesn't work well with gogoproto (cometbft#1094) * handle negative height parameter (cometbft#1094) * remove `Block` from `GetBlockLatestHeight` Co-authored-by: Thane Thomson <connect@thanethomson.com> * changed method name and fixes to test (cometbft#1094) * fixes from PR feedback (cometbft#1094) * remove vars Co-authored-by: Thane Thomson <connect@thanethomson.com> * fix declaration Co-authored-by: Thane Thomson <connect@thanethomson.com> * simplify error return Co-authored-by: Thane Thomson <connect@thanethomson.com> * simplest error return Co-authored-by: Thane Thomson <connect@thanethomson.com> * remove line Co-authored-by: Thane Thomson <connect@thanethomson.com> * remove var declaration, not needed Co-authored-by: Thane Thomson <connect@thanethomson.com> * use simplest error return Co-authored-by: Thane Thomson <connect@thanethomson.com> * simplest error return Co-authored-by: Thane Thomson <connect@thanethomson.com> * simplest error return Co-authored-by: Thane Thomson <connect@thanethomson.com> * simplify error handling Co-authored-by: Thane Thomson <connect@thanethomson.com> * simplified the logic for subscriber id (cometbft#1094) * more fixs based on PR feedback (cometbft#1094) * generated new protos (cometbft#1094) * remove else logic to allow compilation (cometbft#1094) * added logging capabilities to the block service and added log messages (cometbft#1094) * ensure node is a valid testing node (cometbft#1094) * added more conditions to handle subscription cancel (cometbft#1094) * use break in the for loop (cometbft#1094) * renamed ResultBlock to Block (cometbft#1094) * refactored the client logic use a channel for errors (cometbft#1094) * simplify subscriber name Co-authored-by: Thane Thomson <connect@thanethomson.com> * adding error to log Co-authored-by: Thane Thomson <connect@thanethomson.com> * update logging Co-authored-by: Thane Thomson <connect@thanethomson.com> * Simplified and improved logging (cometbft#1094) * added logic to drop the height publish if channel full (cometbft#194) * improved test to ensure is not light or seed node (cometbft#1094) * refactored block service to use one channel with result type (cometbft#1094) * blockservice: Apply service name to all logs Signed-off-by: Thane Thomson <connect@thanethomson.com> * blockservice: Capitalize start of all log messages Signed-off-by: Thane Thomson <connect@thanethomson.com> * blockservice: Remove unnecessary logs Signed-off-by: Thane Thomson <connect@thanethomson.com> * blockservice: Add trivial RPC error response tracing mechanism for easier debugging Signed-off-by: Thane Thomson <connect@thanethomson.com> * blockservice: Simplify constructor Signed-off-by: Thane Thomson <connect@thanethomson.com> * blockservice: Extract type assertion Signed-off-by: Thane Thomson <connect@thanethomson.com> * Add changelog entries Signed-off-by: Thane Thomson <connect@thanethomson.com> * docs: Update configuration-related content Signed-off-by: Thane Thomson <connect@thanethomson.com> * grpc/client: Format Signed-off-by: Thane Thomson <connect@thanethomson.com> * grpc: Extract function to validate or update block height from request Signed-off-by: Thane Thomson <connect@thanethomson.com> --------- Signed-off-by: Thane Thomson <connect@thanethomson.com> Co-authored-by: Thane Thomson <connect@thanethomson.com>
- Loading branch information