-
Notifications
You must be signed in to change notification settings - Fork 132
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
Move explorer to it's own binary crate #3227
Comments
I am not sure about that part. Just to make sure: you intend to use gRPC for explorer-to-node communications, right? |
Well, maybe you are right. It could be a different crate too. But overall I was speculating, maybe we don't need it.
Yeah, that's what we talked about with @mzabaluev last time, at least. It's already implemented, and websockets are more fit to more user-level clients (with graphql, probably). Although, nothing is done yet, so if you have any concerns or other ideas you can bring them up. |
I support using gRPC for inter-component subscription channels.
|
One thing that Previously, there were requests to accommodate thin clients via grpc-web and bidirectional subscription requests were a sticking point as they are not supported in grpc-web. |
This is calling for introducing some sort of filtering. Or at least we need to explicitly state in the documentation that we allow anonymous connections to |
partially replaces #2759 (bundling two things in one issue was a bad idea, existing discussion was on the other topic anyway).
About
Make the explorer a separate service instead of a mode of operation for the node (as it works right now per #694).
The idea is for this service to not be a participant on the p2p layer, but to hook to the node and receive messages in the same way that we do right now internally through the
intercom
.New blocks and tip changes are enough for the most part. Bootstrapping shouldn't differ much from the way the node does it, I think, except (probably) that we only have one node to pull blocks from.
Requirements
explorer
binary crate in this workspace (as in add separate explorer service #2467, but it's out of date and built on different assumptions, and just a PoC anyway).We may want to move some things to
jormungandr_lib
to keep some things consistent (logging setup, some settings, maybe some networking stuff or service stuff), but it's not needed from the beginning.As far as I can tell, the apis from the
BlockService
should be enough, but the explorer wouldn't be a full client, and I'm not sure how it will interact with the other stuff (will it get quarantined, for example?). May require a particularExplorerService
for the node?Other considerations
Per design, most of the explorer works independently from the
Blockchain
(basically the ledger), so migration shouldn't be a problem with just sending blocks (and tips).There are currently two things that need access to the blockchain (and I didn't add them myself, so I'm not sure what to do with them yet).
One of those is the
Block::treasury
query, which I think is used in tests at least.The other one is in the indexing part of the
VoteTally
certificate. I think this can be ignored for now, but we'll need to think if it needs something that should be provided through an api (I think it needs the tallies, basically), of if it is something that the explorer can keep up-to-date by itself.The text was updated successfully, but these errors were encountered: