Documentation
¶
Overview ¶
Package consensus provides node-side consensus integration for the Lux node.
The canonical consensus protocol implementation lives in the github.com/luxfi/consensus module. This package only contains the node-side glue (Acceptor callbacks, Quasar wiring) needed to wire the consensus engine into the node's chain manager and indexer.
Components ¶
Acceptor: Callback interface invoked before blocks are committed as accepted. Multiple acceptors can be registered per chain via AcceptorGroup. This is the node-side hook that adapts consensus acceptance to chain-ID-keyed runtime contexts (indexer, warp, IPC).
Quasar: Node-side wiring around github.com/luxfi/consensus/protocol/quasar. The quasar subpackage adapts P-Chain validator state, BLS signers, and the Ringtail threshold coordinator into the canonical consensus engine.
Quasar Integration ¶
The Quasar engine achieves hybrid finality by running two signature paths in parallel:
- BLS Path: Fast aggregate signatures from 2/3+ validators
- Ringtail Path: Post-quantum threshold signatures (t-of-n)
Blocks achieve quantum finality only when both paths complete successfully.
See github.com/luxfi/consensus for the canonical protocol implementation.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Acceptor ¶
type Acceptor interface {
// Accept must be called before [containerID] is committed to the VM as
// accepted.
//
// If the returned error is non-nil, the chain associated with [ctx] should
// shut down and not commit [container] or any other container to its
// database as accepted.
Accept(rt *runtime.Runtime, containerID ids.ID, container []byte) error
}
Acceptor is implemented when a struct is monitoring if a message is accepted
type AcceptorGroup ¶
type AcceptorGroup interface {
// Calling Accept() calls all of the registered acceptors for the relevant
// chain.
Acceptor
// RegisterAcceptor causes [acceptor] to be called every time an operation
// is accepted on chain [chainID].
// If [dieOnError], chain [chainID] stops if Accept returns a non-nil error.
RegisterAcceptor(chainID ids.ID, acceptorName string, acceptor Acceptor, dieOnError bool) error
// DeregisterAcceptor removes an acceptor from the group.
DeregisterAcceptor(chainID ids.ID, acceptorName string) error
}
func NewAcceptorGroup ¶
func NewAcceptorGroup(log log.Logger) AcceptorGroup
Directories
¶
| Path | Synopsis |
|---|---|
|
Package quasar provides hybrid quantum-safe consensus finality.
|
Package quasar provides hybrid quantum-safe consensus finality. |
|
Package zap provides ZAP (Zero-copy Agent Protocol) integration for Lux consensus.
|
Package zap provides ZAP (Zero-copy Agent Protocol) integration for Lux consensus. |