-
Notifications
You must be signed in to change notification settings - Fork 969
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
[EPIC] Celestia-Node API #944
Comments
Added #709 after grooming |
Ok, so the main reason I would like to use JSON/Open RPC is the ability to do the following. Imagine we have a simplified DA interface:
and its implementation:
With Open/JSONRPC tooling we are aware of, we can do this:
This is almost all you need to do to set up your own RPC server. The tooling parses the given interface and automagically setups the endpoint for each existing method. Similarly on the client side:
Simple, powerful, and composable. With regular Rest APIs there is a lot of boilerplate code that you cannot avoid. GRPC is somewhat similar to RPC, but it generates interfaces for you, which I personally hate. Interfaces have to be handwritten with care and succinctness and cohesionin mind |
🚀 |
Context
This issue supersedes and encompasses #169, serving as the canonical tracking issue for work related to celestia-node API.
Current design
Simple HTTP server with endpoints accessing certain methods mounted on the servemux. See here.
Desired design
An RPC client that provides modules based on the services provided by the node.
Goals
Issue breakdown
Node
pkg refactoring #958fraud.Subscribe
should return a channel ofProof
s #1207fraud.Proof
andExtendedHeader
s #1208nodebuilder/<pkg>/service.go
files to respective package name #1278Config
usage pattern #1287log
loggers to$MODULENAME/constructor
instead of$MODULENAME-module
#1288Related issues
The text was updated successfully, but these errors were encountered: