-
Notifications
You must be signed in to change notification settings - Fork 14
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
QSC initial implementation #14
Conversation
@nkcr I had to change the address iterator thing as we need the length of the set in the Call functions. Let me know what you think about the Take function. |
mino/option.go
Outdated
} | ||
|
||
// ParseFilters applies the filters and return the result. | ||
func ParseFilters(filters []Filter) *Filters { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
func ParseFilters(filters []Filter) *Filters { | |
func ApplyFilters(filters []Filter) *Filters { |
mino/option.go
Outdated
) | ||
|
||
// Filters is a set of parameters for the Players.Take function. | ||
type Filters struct { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wondering if we should not call it "Filter" in singular. At the end this structure is providing one description of the elements we keep. We can see it as a single filter that is built with multiple updaters. Then the actual type Filter func(*Filters)
could be renamed to "FilterUpdater"
consensus/qsc/broadcast.go
Outdated
|
||
ms, ok := resp.(*MessageSet) | ||
if !ok { | ||
return nil, xerrors.Errorf("invalid message type: %T", resp) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
return nil, xerrors.Errorf("invalid message type: %T", resp) | |
return nil, xerrors.Errorf("invalid message type: Got '%T' but "+ | |
"expected '*MessageSet'", resp) |
Co-Authored-By: Noémien Kocher <nkcr.je@gmail.com>
@nkcr comments fixed. |
QSC initial implementation
This includes an initial implementation of the QSC algorithm. It does not support Byzantine behavior.