-
Notifications
You must be signed in to change notification settings - Fork 214
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
[Merged by Bors] - hare3 implementation #4765
Conversation
bors try |
Codecov Report
@@ Coverage Diff @@
## develop #4765 +/- ##
=========================================
+ Coverage 76.7% 77.0% +0.3%
=========================================
Files 256 263 +7
Lines 29665 30528 +863
=========================================
+ Hits 22772 23531 +759
- Misses 5423 5500 +77
- Partials 1470 1497 +27
|
tryBuild failed: |
bors try |
tryBuild failed: |
bors try |
tryBuild failed: |
bors try |
tryBuild failed: |
implementation is splitted into several files: #### protocol.go implements protocol execution logic close to the original paper, baring several differences in syntax and things that we need but are not covered in the paper. interface for interacting with protocol has two methods: - onMessage - next(active bool) only active nodes are publishing messages #### types.go types that go over the wire ```go type Message struct { Body Sender types.NodeID Signature types.EdSignature } type Body struct { Layer types.LayerID IterRound Value Value Eligibility types.HareEligibility } type Value struct { // Proposals is set in messages for preround and propose rounds. Proposals []types.ProposalID `scale:"max=200"` // Reference is set in messages for commit and notify rounds. Reference *types.Hash32 } ``` signature domain and malfeasance proof remains the same, as we don't intend to run more than one hare in parallel. #### hare.go integrates protocol with spacemesh data model, network, synchronization. manages multiple protocol instances (one per layer). #### legacy_oracle.go wrapper for oracle that uses active set in consensus, it outputs maximum grades for identities that are in consensus and 0 for everyone else. #### compat intergration for weakcoin and hare results to avoid changes across the app remaining: - [ ] test commit with different locked value in protocol_test.go (remaining for 100%)
Build failed:
|
bors try |
cluster was prematurely terminated. can't find any failures |
tryBuild succeeded! The publicly hosted instance of bors-ng is deprecated and will go away soon. If you want to self-host your own instance, instructions are here. If you want to switch to GitHub's built-in merge queue, visit their help page. |
bors merge |
implementation is splitted into several files: #### protocol.go implements protocol execution logic close to the original paper, baring several differences in syntax and things that we need but are not covered in the paper. interface for interacting with protocol has two methods: - onMessage - next(active bool) only active nodes are publishing messages #### types.go types that go over the wire ```go type Message struct { Body Sender types.NodeID Signature types.EdSignature } type Body struct { Layer types.LayerID IterRound Value Value Eligibility types.HareEligibility } type Value struct { // Proposals is set in messages for preround and propose rounds. Proposals []types.ProposalID `scale:"max=200"` // Reference is set in messages for commit and notify rounds. Reference *types.Hash32 } ``` signature domain and malfeasance proof remains the same, as we don't intend to run more than one hare in parallel. #### hare.go integrates protocol with spacemesh data model, network, synchronization. manages multiple protocol instances (one per layer). #### legacy_oracle.go wrapper for oracle that uses active set in consensus, it outputs maximum grades for identities that are in consensus and 0 for everyone else. #### compat intergration for weakcoin and hare results to avoid changes across the app remaining: - [ ] test commit with different locked value in protocol_test.go (remaining for 100%)
Build failed:
|
bors try |
tryBuild failed: |
bors try |
tryBuild succeeded! The publicly hosted instance of bors-ng is deprecated and will go away soon. If you want to self-host your own instance, instructions are here. If you want to switch to GitHub's built-in merge queue, visit their help page. |
bors try |
tryBuild failed: |
bors try |
tryBuild succeeded! The publicly hosted instance of bors-ng is deprecated and will go away soon. If you want to self-host your own instance, instructions are here. If you want to switch to GitHub's built-in merge queue, visit their help page. |
bors merge |
implementation is splitted into several files: #### protocol.go implements protocol execution logic close to the original paper, baring several differences in syntax and things that we need but are not covered in the paper. interface for interacting with protocol has two methods: - onMessage - next(active bool) only active nodes are publishing messages #### types.go types that go over the wire ```go type Message struct { Body Sender types.NodeID Signature types.EdSignature } type Body struct { Layer types.LayerID IterRound Value Value Eligibility types.HareEligibility } type Value struct { // Proposals is set in messages for preround and propose rounds. Proposals []types.ProposalID `scale:"max=200"` // Reference is set in messages for commit and notify rounds. Reference *types.Hash32 } ``` signature domain and malfeasance proof remains the same, as we don't intend to run more than one hare in parallel. #### hare.go integrates protocol with spacemesh data model, network, synchronization. manages multiple protocol instances (one per layer). #### legacy_oracle.go wrapper for oracle that uses active set in consensus, it outputs maximum grades for identities that are in consensus and 0 for everyone else. #### compat intergration for weakcoin and hare results to avoid changes across the app remaining: - [ ] test commit with different locked value in protocol_test.go (remaining for 100%)
Pull request successfully merged into develop. Build succeeded! The publicly hosted instance of bors-ng is deprecated and will go away soon. If you want to self-host your own instance, instructions are here. If you want to switch to GitHub's built-in merge queue, visit their help page. |
implementation is splitted into several files:
protocol.go
implements protocol execution logic close to the original paper, baring several differences in syntax and things that we need but are not covered in the paper. interface for interacting with protocol has two methods:
only active nodes are publishing messages
types.go
types that go over the wire
signature domain and malfeasance proof remains the same, as we don't intend to run more than one hare in parallel.
hare.go
integrates protocol with spacemesh data model, network, synchronization. manages multiple protocol instances (one per layer).
legacy_oracle.go
wrapper for oracle that uses active set in consensus, it outputs maximum grades for identities that are in consensus and 0 for everyone else.
compat
intergration for weakcoin and hare results to avoid changes across the app
remaining: