-
Notifications
You must be signed in to change notification settings - Fork 216
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
Bootstrap proxy for light-node API #329
Conversation
Introducing a proxy which serves the Tendermint RPC API with the help of connect rpc client. Later to be extended to add light client functionality. This is in nature equivalent to the Go proxy[0]. Instead of reaching for hyper this change introduces warp to build an http server. This decision should be evaluated very carefully, while warp is a thinly wrapper around hyper, it brings a lot of very important tooling (including websockets), it also has its own set of dependencies. Also currently unclear if the module that implements the rpc API with lite client functionality should live in the rpc source tree. Part of #219 [0] https://github.com/tendermint/tendermint/tree/master/light/proxy
Codecov Report
@@ Coverage Diff @@
## master #329 +/- ##
========================================
+ Coverage 28.2% 28.8% +0.6%
========================================
Files 130 131 +1
Lines 4880 4975 +95
Branches 1511 1561 +50
========================================
+ Hits 1378 1435 +57
+ Misses 2533 2500 -33
- Partials 969 1040 +71
Continue to review full report at Codecov.
|
Thanks @xla !! But see my comment #219 (comment) - not sure we want to go full proxy yet, probably best to just start with a simple RPC service with two methods and figure out from there how we really want to proceed |
@ebuchman Read all your comments thoroughly and promise to jump the shark here. Boostraping here means pretty much the two endpoints you mentioned. |
I had to google "jump the shark" and ended up watching this: https://www.youtube.com/watch?v=t4ZGKI8vpcg 😬 This PR, needs to be updated using the new rpc crate: #338 Now that I learned that tendermint (go) actually offers (98%) jsonrpc compatible endpoints, we could use a jsonrpc server crate to expose the endpoints instead. |
World-class entertainment.
Think I gonna ditch this one and start fresh on top of #338.
Agreed! |
Super-seeded by #363 |
Introducing a proxy which serves the Tendermint RPC API with the help of a connected RPC client. Later to be extended to add light client functionality. This is in nature equivalent to the Go proxy[0].
Instead of reaching for hyper this change introduces warp to build an HTTP server. This decision should be evaluated very carefully, while warp is a thinly wrapper around hyper, it brings a lot of very important tooling (including Websockets), it also has its own set of dependencies.
Also currently unclear if the module that implements the RPC API with lite client functionality should live in the RPC source tree.
Part of #219
[0] https://github.com/tendermint/tendermint/tree/master/light/proxy
Still under development, open this draft PR for early feedback and course corrections.