mirror of
https://github.com/lux-apps/papers.git
synced 2026-10-30 18:15:21 +00:00
The seven engine specifications (lux-{photon,wave,nova,nebula,prism,ray,field}-protocol)
were fragmented short notes documenting layers of the same Quasar consensus stack.
This commit merges them into a single canonical reference, lux-consensus-engines.tex,
that uses one preamble, one set of theorems, one bibliography, and one composition
chapter showing how the engines layer into the LP-020 finality pipeline.
The seven originals are reduced to single-page breadcrumb stubs pointing at the
consolidated paper; their sections/ content is preserved on disk for git history.
- new: lux-consensus-engines/ (50 pages, 646KB PDF, ~2900 lines tex)
- breadcrumbs: each original keeps cover + title + stub paragraph naming its chapter
- composition: chapter 9 records the layered contract Photon < Wave < Nova < ...
- bibliography: consolidated from the seven original thebibliography blocks
63 lines
2.4 KiB
TeX
63 lines
2.4 KiB
TeX
\section{The Nova Protocol}
|
|
|
|
\label{sec:nova-protocol}
|
|
|
|
\subsection{Frontier Sampling}
|
|
|
|
Nova samples the frontier collectively: in each round, the validator queries $k$ peers
|
|
about their preferences for \emph{all} frontier vertices simultaneously.
|
|
|
|
\begin{algorithm}[H]
|
|
\caption{Nova Protocol --- Frontier-Based Burst Finalization}
|
|
\label{alg:nova-nova-core}
|
|
\begin{algorithmic}[1]
|
|
\Require Validator $v$, frontier $F$
|
|
\Require Parameters: $k$ (sample size), $\alpha$ (quorum), $\beta$ (threshold)
|
|
\While{$F \neq \emptyset$}
|
|
\State $S \gets \text{RandomSample}(V \setminus \{v\}, k)$
|
|
\State Query each $u \in S$ for preferences on all $w \in F$
|
|
\For{each frontier vertex $w \in F$}
|
|
\State Compute supermajority for $w$'s preferred conflict resolution
|
|
\If{supermajority $\geq \alpha k$}
|
|
\State $d[w] \gets d[w] + 1$
|
|
\EndIf
|
|
\If{$d[w] \geq \beta$}
|
|
\State $B \gets \text{burst}(w)$ \Comment{collect unfinalized ancestors}
|
|
\State \textbf{finalize all} $u \in B$ \Comment{supernova burst}
|
|
\State Update frontier: $F \gets F \setminus \{w\} \cup \text{NewFrontier}(B)$
|
|
\EndIf
|
|
\EndFor
|
|
\State Add new incoming vertices to $F$ as appropriate
|
|
\EndWhile
|
|
\end{algorithmic}
|
|
\end{algorithm}
|
|
|
|
\subsection{Conflict Resolution in Bursts}
|
|
|
|
\begin{algorithm}[H]
|
|
\caption{Nova Conflict Resolution During Burst}
|
|
\label{alg:nova-nova-conflict}
|
|
\begin{algorithmic}[1]
|
|
\Function{ResolveBurst}{burst $B$}
|
|
\State $\text{accepted} \gets \emptyset$
|
|
\For{each $v \in \text{TopologicalSort}(B)$} \Comment{process in dependency order}
|
|
\If{$\mathcal{C}(v) = \emptyset$ \textbf{or} $\mathcal{C}(v) \cap \text{accepted} = \emptyset$}
|
|
\State $\text{accepted} \gets \text{accepted} \cup \{v\}$
|
|
\Else
|
|
\State \Comment{Conflict: prefer $v$ if it has higher confidence}
|
|
\For{each $v' \in \mathcal{C}(v) \cap \text{accepted}$}
|
|
\If{$d[v] > d[v']$}
|
|
\State $\text{accepted} \gets (\text{accepted} \setminus \{v'\}) \cup \{v\}$
|
|
\EndIf
|
|
\EndFor
|
|
\EndIf
|
|
\EndFor
|
|
\Return $\text{accepted}$
|
|
\EndFunction
|
|
\end{algorithmic}
|
|
\end{algorithm}
|
|
|
|
%% -----------------------------------------------------------------------
|
|
%% 4. THROUGHPUT ANALYSIS
|
|
%% -----------------------------------------------------------------------
|