Skip to content

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

Merged
merged 20 commits into from
Jun 17, 2025
Merged

BLS Components for Simplex #3993

merged 20 commits into from
Jun 17, 2025

Conversation

samliok
Copy link
Contributor

@samliok samliok commented Jun 4, 2025

Why this should be merged

Introduces BLSSigner and BLSVerifier in the new simplex 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

@Copilot Copilot AI review requested due to automatic review settings June 4, 2025 21:56
@samliok samliok requested a review from StephenButtolph as a code owner June 4, 2025 21:56
Copy link
Contributor

@Copilot Copilot AI left a 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, and SimplexChainContext for engine setup
  • Implements BLSSigner/BLSVerifier with ASN.1–encoded messages
  • Provides unit tests in bls_test.go and updates go.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

@yacovm
Copy link
Contributor

yacovm commented Jun 5, 2025

What about the QC stuff? Is that a future PR?

Copy link
Contributor

@yacovm yacovm left a 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

@samliok
Copy link
Contributor Author

samliok commented Jun 5, 2025

What about the QC stuff? Is that a future PR?

Yep!

@samliok samliok self-assigned this Jun 6, 2025
@samliok samliok moved this to In Progress 🏗️ in avalanchego Jun 16, 2025
@StephenButtolph StephenButtolph added this pull request to the merge queue Jun 17, 2025
Merged via the queue into master with commit 0f05748 Jun 17, 2025
28 checks passed
@github-project-automation github-project-automation bot moved this from In Progress 🏗️ to Done 🎉 in avalanchego Jun 17, 2025
@StephenButtolph StephenButtolph deleted the simplex-bls branch June 17, 2025 17:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

3 participants