-
Notifications
You must be signed in to change notification settings - Fork 96
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
Optimization: output early from Subset? #170
Comments
I will take this one. |
I am slightly confused: if I return from Lines 255 to 257 in 422d8ef
(Sorry, I know very little about the codebase) |
Could you clarify your question please and give an example of exactly what you're trying to do? |
@DemiMarie, if you return from the |
How confident is everyone that this doesn't hurt censorship resistance? But the fact that I can't imagine a problem doesn't mean there is none. |
I can't think of a problem either but since this change may not be that much of an optimization anyway I think keeping it an option or build feature is best. |
As discussed let's make it a runtime option. This will need to be passed through from the |
Subset could output multiple times: Once for each accepted contribution, and then once more when it terminates, to say that the remaining contributions have been rejected. That way, Honey Badger can start exchanging decryption shares sooner, and by the time the agreement instances for lagging nodes' contributions finally output
false
, the accepted ones will already be decrypted and ready to be output.(We should measure, of course, whether it actually improves performance and whether it's worth it.)
What needs to be changed
The Subset output needs to be an enum with two variants, e.g.
Contribution(Vec<u8>)
andDone
.Instead of outputting all accepted contributions when all have been decided, we should output a single
Contribution(_)
as soon as it gets accepted, and then only output an emptyDone
once all have been decided.In Honey Badger, we wouldn't set the
SubsetState
toComplete
on aContribution(_)
output, but only onDone
.The simulation example should be run a few times with and without the change, and maybe with different parameters, to test whether it improves performance.
The text was updated successfully, but these errors were encountered: