Files
zeekay c41bef8abe quasar: drop dead GPUNTTAccelerator copies in favor of lattice/ring dispatch
vm/consensus/quasar/{gpu_ntt.go, gpu_ntt_c.go} had zero consumers. The
canonical NTT accelerator interface is ring.SetGPUDispatchers (lattice/
ring/subring_ops.go) installed by the lattice/gpu package; corona opts
in via corona/gpu.UseAccelerator(). Two parallel accelerator surfaces
were always one too many.
2026-05-21 13:42:09 -07:00
..
2026-01-08 22:09:59 -08:00
2026-01-08 22:09:59 -08:00

Consensus Package

This package provides consensus infrastructure for the Lux node.

Overview

The consensus package contains:

  • Acceptor: Callback mechanism for accepted blocks/vertices
  • Quasar: Hybrid quantum-safe finality engine (BLS + Ringtail)
  • Engine: Chain and DAG consensus engine interfaces

Vote Terminology

This package uses "Vote" as the semantic name for validator responses to block proposals.

Vote (wire format: Chits): A validator's agreement or preference for a specific block. On the network wire, votes are transmitted using the "Chits" message format for backwards compatibility with existing protocols.

// VoteMessage represents a vote for a specific block.
// This is a semantic wrapper - the wire format remains Chits.
type VoteMessage struct {
    BlockID   ids.ID
    RequestID uint32
}

The UnsolicitedVoteRequestID constant (value 0) indicates a vote sent without a prior request, used in fast-follow scenarios.

Package Structure

consensus/
  acceptor.go     # Acceptor interface and group management
  engine/
    chain/
      vote.go     # Vote message types (wire format: Chits)
  quasar/
    quasar.go     # Hybrid BLS + Ringtail finality
    types.go      # Signature types and interfaces
    config.go     # Configuration
    gpu_ntt.go    # GPU acceleration for NTT operations

Acceptor

The Acceptor interface is called before containers are committed as accepted:

type Acceptor interface {
    Accept(ctx *consensuscontext.Context, containerID ids.ID, container []byte) error
}

Multiple acceptors can be registered per chain via AcceptorGroup.

Quasar Consensus

Quasar provides hybrid quantum-safe finality by combining:

  1. BLS Aggregate Signatures - Fast classical signatures (96 bytes)
  2. Ringtail Threshold Signatures - Post-quantum threshold signatures (t-of-n)

Both signature paths run in parallel, and blocks achieve finality only when both complete with sufficient weight.

See quasar/README.md for detailed documentation.