mirror of
https://github.com/luxfi/consensus.git
synced 2026-09-24 00:26:58 +00:00
- Rename quasar files to simpler names: - quasar_aggregator.go → core.go - quasar_impl.go → engine.go - quasar.go → bls.go - event_horizon.go → horizon.go - hybrid_consensus.go → hybrid.go - verkle_witness.go → witness.go - prism_dag.go → dag.go - Rename types for clarity: - PChain → BLS (BLS signature aggregation) - NewPChain → NewBLS - QuasarHybridConsensus alias added for backward compatibility - Add missing documentation: - protocol/nova/doc.go - linear blockchain consensus - protocol/nebula/doc.go - DAG consensus mode - protocol/chain/doc.go - blockchain primitives All tests pass. Backward-compatible aliases provided.
36 lines
1.3 KiB
Go
36 lines
1.3 KiB
Go
// Copyright (C) 2025, Lux Industries Inc All rights reserved.
|
|
|
|
// Package nebula provides DAG consensus mode.
|
|
//
|
|
// Nebula implements directed acyclic graph (DAG) consensus where vertices can
|
|
// have multiple parents and progress in parallel. It wraps the field engine
|
|
// to provide DAG-specific semantics: frontier tracking, vertex proposal, and
|
|
// parallel finality.
|
|
//
|
|
// In the cosmic metaphor, a nebula is a stellar nursery - a cloud of possibilities
|
|
// collapsing into ordered structure, representing parallel block creation that
|
|
// eventually achieves consensus ordering.
|
|
//
|
|
// Nebula is designed for high-throughput chains that benefit from parallel
|
|
// block production, such as the X-Chain for asset transfers.
|
|
//
|
|
// Key concepts:
|
|
// - DAG structure: vertices can have multiple parents
|
|
// - Parallel finality: multiple vertices can be finalized concurrently
|
|
// - Frontier tracking: maintains the DAG tips (unfinalized vertices)
|
|
// - Causal ordering: ensures consistent total ordering of finalized vertices
|
|
//
|
|
// Usage:
|
|
//
|
|
// cfg := nebula.Config{
|
|
// PollSize: 20,
|
|
// Alpha: 0.8,
|
|
// Beta: 15,
|
|
// RoundTO: 250 * time.Millisecond,
|
|
// }
|
|
// n := nebula.NewNebula(cfg, cut, transport, store, proposer, committer)
|
|
// n.Start(ctx)
|
|
//
|
|
// See also: field (underlying engine), wave (voting primitive), horizon (finality).
|
|
package nebula
|