-
Notifications
You must be signed in to change notification settings - Fork 760
BLS Components for Simplex #3993
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
Conversation
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.
Pull Request Overview
Adds BLS signing and verification to the new simplex
package by defining configuration, signer/verifier types, and tests.
- Introduces
Config
,ValidatorInfo
, andSimplexChainContext
for engine setup - Implements
BLSSigner
/BLSVerifier
with ASN.1–encoded messages - Provides unit tests in
bls_test.go
and updatesgo.mod
for local module replacement
Reviewed Changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.
File | Description |
---|---|
simplex/config.go | Define Config , ValidatorInfo , and chain context |
simplex/bls.go | Implement BLS signer/verifier and message encoding |
simplex/bls_test.go | Add tests for signing, valid/invalid signer and messages |
go.mod | Add replace directive for simplex module |
Comments suppressed due to low confidence (1)
simplex/bls.go:23
- The comment refers to 'NetworkID' but the field is named
SubnetID
. Update the comment to avoid confusion.
// BLSSigner signs messages encoded with the provided ChainID and NetworkID
What about the QC stuff? Is that a future PR? |
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.
LGTM modulo two comments above
Yep! |
Signed-off-by: Sam Liokumovich <65994425+samliok@users.noreply.github.com>
Why this should be merged
Introduces
BLSSigner
andBLSVerifier
in the newsimplex
package for signing and verifying messages (e.g., votes) in Simplex consensus.BLSVerifier
will be extended in future PRs to support quorum certificate verification and additional functionality.The newly created
Config
struct is provided during simplex engine initialization and contains only the fields necessary for the current functionality of the simplex package.How this works
In future PRs, the simplex package will be expanded to integrate simplex into AvalancheGo.
How this was tested
Add unit tests in
bls_test.go
Need to be documented in RELEASES.md?
No