Skip to content
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

Tracking: inbound message handling. #889

Closed
11 tasks done
hdevalence opened this issue Aug 12, 2020 · 11 comments
Closed
11 tasks done

Tracking: inbound message handling. #889

hdevalence opened this issue Aug 12, 2020 · 11 comments
Labels
C-tracking-issue Category: This is a tracking issue for other tasks Epic Zenhub Label. Denotes a theme of work under which related issues will be grouped

Comments

@hdevalence
Copy link
Contributor

hdevalence commented Aug 12, 2020

The zebra-network API is designed so that on init, the user passes in a Service whose job it is to respond to network requests from other peers. Currently, the only existing implementation of this is the SeedService, which responds to address requests from peers.

This code should be refactored into a general-purpose Inbound service that handles all requests from peers.

We need to implement an inbound network service with the following behaviors:

Other work:

@hdevalence hdevalence added the C-tracking-issue Category: This is a tracking issue for other tasks label Aug 12, 2020
@teor2345
Copy link
Contributor

teor2345 commented Aug 13, 2020

  • observing new transaction advertisements, downloading those transactions if unknown, and adding them to the mempool;

Should we perform transaction verification before adding to the mempool?

@hdevalence
Copy link
Contributor Author

Yes, there are different transaction verification rules for mempool transactions, I'll clarify the line to reflect that.

@hdevalence
Copy link
Contributor Author

#878 is unmergeable (the way it used Abscissa components didn't work out) but it has some code that could be extracted to implement the inbound network service. One thing we need to decide (cc @ZcashFoundation/zebra-team) is whether we want to continue to provide a special-case seed command, or drop it and power the DNS seeders from full nodes that validate the chain.

My position is that we should drop it, since eliminating that distinction will simplify the implementation. We will want to run full nodes anyways (in order to be able to supply blocks to other peers), so I don't think that there's much benefit to making a special seed mode.

@teor2345
Copy link
Contributor

Is writing a full node a post-alpha task?
Or is it important to do it before the alpha?

@hdevalence
Copy link
Contributor Author

hdevalence commented Aug 25, 2020

Yes, we need to do this before, because it's part of what's required to participate in the network (altruistically, if we don't do this, we'll be draining bandwidth from the network and providing none, selfishly, we need to do this to learn about gossiped blocks).

That said, the work here mostly consists of wiring things together, rather than implementing a ton of new functionality, the bulk of the work left to do remains in implementing all the validation and state handling.

@hdevalence
Copy link
Contributor Author

#960 is a prerequisite to this issue. Linking it here in a comment in advance of restructuring the list above as a list of sub-issues, which I'd like to do after resolving #878 .

@mpguerra
Copy link
Contributor

mpguerra commented Jan 5, 2021

Adding #1027 to this Epic

@teor2345
Copy link
Contributor

teor2345 commented Jan 5, 2021

Adding #1027 to this Epic

We usually edit the description and add a checkbox for new tasks.

Is there an automatic way to see when tickets are completed?

@mpguerra
Copy link
Contributor

mpguerra commented Jan 7, 2021

We usually edit the description and add a checkbox for new tasks.

Will do that

Is there an automatic way to see when tickets are completed?

We can also just do this in Zenhub in addition to or instead of the checkbox. This is some extra info you can see if you are using Zenhub:

Screenshot 2021-01-07 at 11 56 33

@mpguerra
Copy link
Contributor

mpguerra commented Sep 8, 2021

I think we're almost done here!

@mpguerra
Copy link
Contributor

mpguerra commented Sep 9, 2021

All done with this Epic

@mpguerra mpguerra closed this as completed Sep 9, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-tracking-issue Category: This is a tracking issue for other tasks Epic Zenhub Label. Denotes a theme of work under which related issues will be grouped
Projects
None yet
Development

No branches or pull requests

4 participants