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

Optimize redundant proposal generation #590

Open
tsachiherman opened this issue Dec 3, 2019 · 0 comments
Open

Optimize redundant proposal generation #590

tsachiherman opened this issue Dec 3, 2019 · 0 comments

Comments

@tsachiherman
Copy link
Contributor

tsachiherman commented Dec 3, 2019

Summary

Currently, the agreement service is attempting to create a proposal if a node has participation keys.
Once a proposal is created and signed, it attempts to verify the signature on the proposal. If the signature is invalid ( i.e. the node was not elected to make the proposal ), the proposal is dropped.

Scope/Requirements:

The goal of this task is to perform the testing whether we need to make a proposal before attempting to make it. If we don't need to make a proposal, we should quit right away. The testing of whether we'd want to make a proposal should still be executed is a background go-routine, but no attempt to make a proposal should be made.
Relays can maintain a pool but shouldn't call generateBlock

Reason for priority

This issue could be part of the performance project that we're working on - and this is where its priority is. Past attempts shown that it gained up to 10% on payment transactions, but it's unknown if this still holds true.

tl;dr: NPNs and relays currently waste CPU trying to create proposals. Stop doing this.
Perf enhancement

Proposal generation should be conditional on if your node has online accounts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants