-
Notifications
You must be signed in to change notification settings - Fork 676
grpc: BlockService and BlockResultsService backport to v0.38.x-experimental #1440
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
Merged
jmalicevic
merged 17 commits into
v0.38.x-experimental
from
cason/backport-pr1142-v0.38
Oct 10, 2023
Merged
grpc: BlockService and BlockResultsService backport to v0.38.x-experimental #1440
jmalicevic
merged 17 commits into
v0.38.x-experimental
from
cason/backport-pr1142-v0.38
Oct 10, 2023
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* proto: Add VersionService Signed-off-by: Thane Thomson <connect@thanethomson.com> * proto: make proto-gen Signed-off-by: Thane Thomson <connect@thanethomson.com> * config: Add gRPC server section Signed-off-by: Thane Thomson <connect@thanethomson.com> * rpc/grpc: Add server with support for version service Signed-off-by: Thane Thomson <connect@thanethomson.com> * node: Add gRPC server Signed-off-by: Thane Thomson <connect@thanethomson.com> * rpc/grpc: Add client with support for version service Signed-off-by: Thane Thomson <connect@thanethomson.com> * test/e2e: Add gRPC server test of version service Signed-off-by: Thane Thomson <connect@thanethomson.com> * Add changelog entries Signed-off-by: Thane Thomson <connect@thanethomson.com> * rpc: Fix test broken by introduction of gRPC service Some of the RPC tests run Comet nodes in goroutines, causing port conflicts. This randomizes the port assigned to the gRPC server, reducing the likelihood of port conflicts. Signed-off-by: Thane Thomson <connect@thanethomson.com> * rpc/grpc: Update log message format to conform to RPC log style Signed-off-by: Thane Thomson <connect@thanethomson.com> --------- Signed-off-by: Thane Thomson <connect@thanethomson.com>
* With conflicts to solve * initial logic for the gRPC block service (#1094) * initial logic for gRPC block client and test (#1094) * block response and request (#1094) * add configuration for block service (#1094) * use pointer for request parameter (#1094) * change block service GetBlock response (#1094) * return block information (#1094) * convert core type to proto type (#1094) * hookup server (#1094) * hooking directly to the BlockStore instead of Environment (#1094) * changing client return type, use core type (#1094) * convert from proto to core type (#1094) * implemented proper logic to test block service (#1094) * return the latest height if height is 0 (#1094) * adding proper grpc error handling and return (#1094) * rename rpc and message in proto to match ADR-101 spec (#1094) * renaming service and client methods structs to match ADR (#1094) * additional error handling (#1094) * rename get block request and response (#1094) * update method name in the client (#1094) * proto entries for GetLatestHeight logic (#1094) * added logic for streaming new blocks as part of GetLatestHeight (#1094) * ensure subcribers have their own unique id (#1094) * client logic to use a channel parameter (#1094) * added test for GetLatestHeight (#1094) * better streaming test to prevent error (#1094) * remove empty line Co-authored-by: Thane Thomson <connect@thanethomson.com> * removing UNARY_RPC to prevent lint on server streaming (#1094) * remove server reflection, doesn't work well with gogoproto (#1094) * handle negative height parameter (#1094) * remove `Block` from `GetBlockLatestHeight` Co-authored-by: Thane Thomson <connect@thanethomson.com> * changed method name and fixes to test (#1094) * fixes from PR feedback (#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 (#1094) * more fixs based on PR feedback (#1094) * generated new protos (#1094) * remove else logic to allow compilation (#1094) * added logging capabilities to the block service and added log messages (#1094) * ensure node is a valid testing node (#1094) * added more conditions to handle subscription cancel (#1094) * use break in the for loop (#1094) * renamed ResultBlock to Block (#1094) * refactored the client logic use a channel for errors (#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 (#1094) * added logic to drop the height publish if channel full (#194) * improved test to ensure is not light or seed node (#1094) * refactored block service to use one channel with result type (#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>
* Add block results grpc endpoint * Make requested changes * Fix linting * Lint proto * Fix test race condition * Update test order * Update rpc/grpc/server/services/blockresultservice/service.go Co-authored-by: Thane Thomson <connect@thanethomson.com> * Update rpc/grpc/server/services/blockresultservice/service.go Co-authored-by: Thane Thomson <connect@thanethomson.com> * Update config/toml.go Co-authored-by: Thane Thomson <connect@thanethomson.com> * Update rpc/grpc/server/services/blockresultservice/service.go Co-authored-by: Thane Thomson <connect@thanethomson.com> * Update rpc/grpc/server/services/blockresultservice/service.go Co-authored-by: Thane Thomson <connect@thanethomson.com> * Format protos * Format upstream changes * Test height for failing grpc call * Test w additional logging * Remove accidental formal * Revert "Remove accidental formal" This reverts commit 81cb702. * Make additional req changes * Requested changes for formatting/client signature * Add changelog entry * Add separate endpoint for latest BlockResults * Fix linting * Clean * Update changelog * Update rpc/grpc/server/services/blockresultservice/service.go Co-authored-by: Thane Thomson <connect@thanethomson.com> * Update test --------- Co-authored-by: Thane Thomson <connect@thanethomson.com>
3 tasks
jmalicevic
reviewed
Oct 8, 2023
jmalicevic
reviewed
Oct 8, 2023
jmalicevic
approved these changes
Oct 8, 2023
Base automatically changed from
jasmina-1421-backport-pr818-version2
to
v0.38.x-experimental
October 10, 2023 13:23
cason
commented
Oct 10, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Double-check after merging #1437. No relevant changes found.
cason
commented
Oct 10, 2023
hvanz
approved these changes
Oct 10, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
jmalicevic
approved these changes
Oct 10, 2023
lasarojc
pushed a commit
that referenced
this pull request
Nov 13, 2023
…mental (#1440) * grpc: Add base gRPC server with version service (#818) * proto: Add VersionService Signed-off-by: Thane Thomson <connect@thanethomson.com> * proto: make proto-gen Signed-off-by: Thane Thomson <connect@thanethomson.com> * config: Add gRPC server section Signed-off-by: Thane Thomson <connect@thanethomson.com> * rpc/grpc: Add server with support for version service Signed-off-by: Thane Thomson <connect@thanethomson.com> * node: Add gRPC server Signed-off-by: Thane Thomson <connect@thanethomson.com> * rpc/grpc: Add client with support for version service Signed-off-by: Thane Thomson <connect@thanethomson.com> * test/e2e: Add gRPC server test of version service Signed-off-by: Thane Thomson <connect@thanethomson.com> * Add changelog entries Signed-off-by: Thane Thomson <connect@thanethomson.com> * rpc: Fix test broken by introduction of gRPC service Some of the RPC tests run Comet nodes in goroutines, causing port conflicts. This randomizes the port assigned to the gRPC server, reducing the likelihood of port conflicts. Signed-off-by: Thane Thomson <connect@thanethomson.com> * rpc/grpc: Update log message format to conform to RPC log style Signed-off-by: Thane Thomson <connect@thanethomson.com> --------- Signed-off-by: Thane Thomson <connect@thanethomson.com> * Resolved cherry pick conflicts * grpcs: adding legacy gRPC to e2e test suite * grpc: added legacy gRPC ping test to e2e test suite * grpc: fix lint check, used of deprecated method * Add gRPC block service (#1142) * With conflicts to solve * initial logic for the gRPC block service (#1094) * initial logic for gRPC block client and test (#1094) * block response and request (#1094) * add configuration for block service (#1094) * use pointer for request parameter (#1094) * change block service GetBlock response (#1094) * return block information (#1094) * convert core type to proto type (#1094) * hookup server (#1094) * hooking directly to the BlockStore instead of Environment (#1094) * changing client return type, use core type (#1094) * convert from proto to core type (#1094) * implemented proper logic to test block service (#1094) * return the latest height if height is 0 (#1094) * adding proper grpc error handling and return (#1094) * rename rpc and message in proto to match ADR-101 spec (#1094) * renaming service and client methods structs to match ADR (#1094) * additional error handling (#1094) * rename get block request and response (#1094) * update method name in the client (#1094) * proto entries for GetLatestHeight logic (#1094) * added logic for streaming new blocks as part of GetLatestHeight (#1094) * ensure subcribers have their own unique id (#1094) * client logic to use a channel parameter (#1094) * added test for GetLatestHeight (#1094) * better streaming test to prevent error (#1094) * remove empty line Co-authored-by: Thane Thomson <connect@thanethomson.com> * removing UNARY_RPC to prevent lint on server streaming (#1094) * remove server reflection, doesn't work well with gogoproto (#1094) * handle negative height parameter (#1094) * remove `Block` from `GetBlockLatestHeight` Co-authored-by: Thane Thomson <connect@thanethomson.com> * changed method name and fixes to test (#1094) * fixes from PR feedback (#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 (#1094) * more fixs based on PR feedback (#1094) * generated new protos (#1094) * remove else logic to allow compilation (#1094) * added logging capabilities to the block service and added log messages (#1094) * ensure node is a valid testing node (#1094) * added more conditions to handle subscription cancel (#1094) * use break in the for loop (#1094) * renamed ResultBlock to Block (#1094) * refactored the client logic use a channel for errors (#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 (#1094) * added logic to drop the height publish if channel full (#194) * improved test to ensure is not light or seed node (#1094) * refactored block service to use one channel with result type (#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> * grpc: docs conflicts, preserving most of original * grpc: fixing conflicts, preserving both test units * ADR 101: Add GetLatest method to block service (#1209) * Add BlockResults gRPC service (#1168) * Add block results grpc endpoint * Make requested changes * Fix linting * Lint proto * Fix test race condition * Update test order * Update rpc/grpc/server/services/blockresultservice/service.go Co-authored-by: Thane Thomson <connect@thanethomson.com> * Update rpc/grpc/server/services/blockresultservice/service.go Co-authored-by: Thane Thomson <connect@thanethomson.com> * Update config/toml.go Co-authored-by: Thane Thomson <connect@thanethomson.com> * Update rpc/grpc/server/services/blockresultservice/service.go Co-authored-by: Thane Thomson <connect@thanethomson.com> * Update rpc/grpc/server/services/blockresultservice/service.go Co-authored-by: Thane Thomson <connect@thanethomson.com> * Format protos * Format upstream changes * Test height for failing grpc call * Test w additional logging * Remove accidental formal * Revert "Remove accidental formal" This reverts commit 81cb702. * Make additional req changes * Requested changes for formatting/client signature * Add changelog entry * Add separate endpoint for latest BlockResults * Fix linting * Clean * Update changelog * Update rpc/grpc/server/services/blockresultservice/service.go Co-authored-by: Thane Thomson <connect@thanethomson.com> * Update test --------- Co-authored-by: Thane Thomson <connect@thanethomson.com> * Reverting changes with no effect in proto files * Reverted the change in doc that should not be part of this PR * fixed docs * Apply suggestions from code review * gprc: reverting wrong backport changes * grpc: re-introducing this change for linter --------- Signed-off-by: Thane Thomson <connect@thanethomson.com> Co-authored-by: Thane Thomson <connect@thanethomson.com> Co-authored-by: Jasmina Malicevic <jasmina.dustinac@gmail.com> Co-authored-by: Andy Nogueira <me@andynogueira.dev> Co-authored-by: lg <8335464+glnro@users.noreply.github.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Addresses part of the tasks in #1419:
Depends on #1437.
Once it #1437 merged, the destination branch should be updated to
v0.38.x-experimental
.PR checklist
.changelog
(we use unclog to manage our changelog)docs/
orspec/
) and code comments