Files
zooqueen a1f77cacc9 papers: retire boschini2024corona key -> ringtail (third-party prior art); fix Pulsar/Corona/Ringtail provenance + lattice labels
Ringtail (Boschini et al., ePrint 2024/1113) is third-party prior art; Lux's
Corona (Ring-LWE = Module-LWE rank-1) builds on it; Pulsar is Module-LWE rank-k.
Retired the conflated boschini2024corona/corona2024/coronago/... bib keys to the
single canonical ringtail/corona/pulsar/magnetar keys, rewrote \cite + \bibitem
by context, and fixed 'Pulsar (Ring-LWE)' mislabels (Corona where corona.metal/
single-ring/Ringtail-derived; Pulsar where Module-LWE rank-k/ML-DSA). Cryptographer-led.
2026-06-19 22:33:10 -07:00

122 lines
4.2 KiB
TeX

\section{A/B/M/F drain services}
\label{sec:abmf}
%% ============================================================================
\subsection{Service set growth}
LP-132~\cite{lp132-quasarexec} (3.0 substrate) defined 12 GPU services.
QuasarSTM~4.0 grows the set to 16 by adding four new drains, each with
a dedicated device-resident ring and the same wave-tick budget contract
as the 3.0 services. The 16-service enum is the single normative source:
\begin{lstlisting}[language=C++]
enum class ServiceId : uint32_t {
// 3.0 substrate (12)
Ingress = 0,
Decode = 1,
Crypto = 2,
DagReady = 3,
Exec = 4,
Validate = 5,
Repair = 6,
Commit = 7,
StateRequest = 8,
StateResp = 9,
CertLane = 10,
CertOut = 11,
// 4.0 production (4 new) -- A/B/M/F
AdaptiveSchedule = 12,
BridgeAttest = 13,
MarketAuction = 14,
FiberCheckpoint = 15,
Count = 16,
};
\end{lstlisting}
\subsection{AdaptiveSchedule (A)}
\textbf{Inputs:} ConflictSpec records (\S\ref{sec:conflictspec}),
LaneClass classifications (\S\ref{sec:laneclass}), predictor entries.
\textbf{Outputs:} per-tx scheduling decision routed to
\texttt{Exec} (with declared lane sets attached) or to the speculative
fallback path.
The drain consults the source-priority order
(\S\ref{sec:conflictspec}) and emits the highest-priority
\texttt{ConflictSpec} per transaction. It also publishes the per-tx
predictor confidence so the validator can attribute later repair
events to predictor mis-prediction.
\subsection{BridgeAttest (B)}
\textbf{Inputs:} cross-chain attestation messages from the omnichain
bridge (LP-016 / LP-017). \textbf{Outputs:} per-message verifier
result onto the \texttt{Commit} ring.
BridgeAttest is the GPU-side termination of the cross-chain attestation
path: messages arrive as bundles of source-chain commitments and
threshold signatures, and the drain runs the same on-device BLS /
Corona / Groth16 verifiers (\S\ref{sec:verifiers}) against the
cross-chain VK published in the BridgeRoundDescriptor extension.
This is what makes 4.0 capable of executing bridge commits in the same
wave-tick budget as ordinary EVM, rather than spilling them to a
separate host-side path.
\subsection{MarketAuction (M)}
\textbf{Inputs:} order-append \texttt{DeferredOp}s
(\S\ref{sec:tier3}) and cancel ops within an auction batch window.
\textbf{Outputs:} \texttt{AuctionMatch} entries that reduce to the
batch-cleared book state at horizon time.
MarketAuction is the precompile-level batched matching path for hot
DEX lanes. It reduces an entire batch of order/cancel events into a
single match-and-clear transformation, eliminating the storm of
SSTORE conflicts that would otherwise hit the order book level lanes.
The output is a single \texttt{AuctionMatch} reducer entry per market
per round.
\subsection{FiberCheckpoint (F)}
\textbf{Inputs:} fiber state at \texttt{CALL}-frame return,
explicit checkpoint opcode, or cold-state suspend
(\S\ref{sec:checkpoints}). \textbf{Outputs:}
\texttt{FiberCheckpoint} records into the fiber's per-fiber checkpoint
ring.
This drain owns checkpoint emission and GC. It runs at
\texttt{CALL}-frame boundaries and at end-of-round to recycle older
checkpoints back into the per-round arena.
\subsection{Wave-tick budget}
Each new drain has a fixed per-tick budget enforced by the wave-tick
kernel. The budgets are tuned per backend; the cross-backend
determinism harness (\S\ref{sec:determinism}) verifies that any
budget setting that produces output also produces byte-identical
outputs across Metal and CUDA.
\begin{table}[ht]
\centering
\small
\caption{Per-tick budgets for the four new 4.0 services
(default; tunable).}
\label{tab:abmf-budgets}
\begin{tabular}{ll}
\toprule
\textbf{Service} & \textbf{Budget per tick} \\
\midrule
\texttt{AdaptiveSchedule} & 4096 ConflictSpec admissions \\
\texttt{BridgeAttest} & 256 attestation verifications \\
\texttt{MarketAuction} & 64 markets per auction tick \\
\texttt{FiberCheckpoint} & 4096 checkpoint emits + GC events \\
\bottomrule
\end{tabular}
\end{table}
%% ============================================================================