mirror of
https://github.com/luxfi/consensus.git
synced 2026-09-24 00:26:58 +00:00
Followup to the QuasarCert field rename (commit 9b9bdda2). This sweeps
the remaining Ringtail identifiers and prose out of the consensus repo
entirely:
- Identifiers (Go code):
ringtailThreshold → coronaThreshold (import alias)
ringtailGroupKey → coronaGroupKey
ringtailSigners → coronaSigners
ringtailShares → coronaShares
ringtailGobEncode → coronaGobEncode
ringtailGobDecode → coronaGobDecode
decodeRingtailSig → decodeCoronaSig
EncodeRingtailSig → EncodeCoronaSig
RingtailRound1{,Data,State} → CoronaRound1{,Data,State}
RingtailGroupKey/Pub/Shares → Corona*
- File rename:
protocol/quasar/ringtail_gob.go → corona_gob.go
- PQMode constants:
PQModeRingtail → PQModeNasua
SigSchemeRingtailAcademic → SigSchemeNasua
"ringtail" / "ringtail-academic" string forms → "nasua"
- Prose & comments throughout the repo: "Ringtail" → "Corona" when
naming the production Ring-LWE library, "Nasua" when naming the
historical academic upstream (luxfi/nasua, formerly luxfi/ringtail).
Canonical Pulsar family taxonomy after this rename:
Nasua — academic R-LWE 2-round threshold sig (Boschini et al,
ePrint 2024/1113); trusted-dealer DKG; kept as historical
reference fork only. NOT for an open public chain.
Corona — production Ring-LWE threshold ML-DSA (Pedersen DKG over R_q
+ proactive resharing); `github.com/luxfi/corona`. The
Ring-LWE leg of QuasarCert.
Pulsar — production Module-LWE threshold ML-DSA (FIPS 204
byte-equal); `github.com/luxfi/pulsar`. The Module-LWE
leg of QuasarCert. Pure-PQ pair = Corona + Pulsar.
Wire-format unchanged. Tests: 28/28 packages green (-short suite,
quasar 29s, integration 58s, no regressions).
55 lines
1.7 KiB
Go
55 lines
1.7 KiB
Go
// Copyright (C) 2019-2025, Lux Industries Inc. All rights reserved.
|
|
// See the file LICENSE for licensing terms.
|
|
|
|
/*
|
|
Package consensus provides the Quasar family of consensus protocols for the
|
|
Lux blockchain network.
|
|
|
|
# Overview
|
|
|
|
The consensus system supports two modes -- linear chain (Nova, for P-Chain and
|
|
C-Chain) and DAG (Nebula, for X-Chain) -- with optional post-quantum finality
|
|
via BLS + Corona + ML-DSA threshold signing.
|
|
|
|
# Sub-Protocols
|
|
|
|
The Quasar family comprises:
|
|
|
|
- photon: K-of-N committee selection via Fisher-Yates with luminance weighting
|
|
- wave: Per-round threshold voting with FPC (Fast Probabilistic Consensus)
|
|
- focus: Confidence accumulation (beta consecutive successes = finality)
|
|
- nova: Linear chain consensus mode (wraps ray)
|
|
- nebula: DAG consensus mode (wraps field)
|
|
- prism: DAG geometry: frontiers, cuts, uniform peer sampling
|
|
- horizon: DAG order-theory: reachability, LCA, transitive closure
|
|
- flare: DAG certificate/skip detection (2f+1 quorum)
|
|
- ray: Linear chain finality driver
|
|
- field: DAG finality driver with safe-prefix commit
|
|
- quasar: BLS + Corona + ML-DSA parallel threshold signing
|
|
|
|
# Usage
|
|
|
|
import "github.com/luxfi/consensus"
|
|
|
|
chain := consensus.NewChain(consensus.DefaultConfig())
|
|
if err := chain.Start(ctx); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
defer chain.Stop()
|
|
|
|
# Signing Modes
|
|
|
|
Each cryptographic layer is independently toggleable:
|
|
|
|
- BLS-only: fastest classical consensus (BLS12-381 threshold)
|
|
- BLS + ML-DSA: dual with PQ identity proof (FIPS 204)
|
|
- BLS + Corona: dual with PQ threshold proof (Ring-LWE)
|
|
- BLS + Corona + ML-DSA: full Quasar (all three in parallel)
|
|
|
|
# Testing
|
|
|
|
go test ./...
|
|
go test -bench=. ./bench/
|
|
*/
|
|
package consensus
|