mirror of
https://github.com/lux-apps/papers.git
synced 2026-11-02 11:39:52 +00:00
Restructured from flat .tex/.pdf files into per-paper subdirectories. Added Antje Worring as co-author on all papers. Synced PDFs to pdfs/ for download site.
79 lines
3.4 KiB
TeX
79 lines
3.4 KiB
TeX
\section{Benchmark 9: Pipelined Consensus}
|
|
|
|
\label{sec:pipelined}
|
|
%% ============================================================================
|
|
|
|
Recent optimizations to the Quasar consensus loop introduce block pipelining and
|
|
configurable timing parameters. This section reports measured results from these
|
|
changes on Apple M1 Max (single-node solo consensus, isolating consensus-layer
|
|
throughput from network and execution).
|
|
|
|
\subsection{Timing Optimizations}
|
|
|
|
Two key changes to the consensus hot loop:
|
|
|
|
\begin{enumerate}
|
|
\item \textbf{Configurable poll loop}: The poll interval now uses \texttt{BlockTime}
|
|
instead of a hardcoded 50\,ms delay. This allows sub-millisecond block production
|
|
when the execution engine can keep up.
|
|
\item \textbf{Pipeline goroutine}: Block $N{+}1$ is built concurrently while block $N$
|
|
finalizes. The build phase (transaction selection, mempool drainage) overlaps with
|
|
the finalization phase (BLS aggregation, certificate broadcast).
|
|
\end{enumerate}
|
|
|
|
\subsection{Parameter Configurations}
|
|
|
|
\begin{table}[h]
|
|
\centering
|
|
\small
|
|
\begin{tabular}{@{}llrrrl@{}}
|
|
\toprule
|
|
\textbf{Config} & \textbf{$K$} & \textbf{Block Time} & \textbf{Round Timeout} & \textbf{Gas Limit} & \textbf{Notes} \\
|
|
\midrule
|
|
LocalParams & varied & \SI{1}{ms} & \SI{5}{ms} & \SI{1}{B} & Local dev/test \\
|
|
BurstParams & varied & \SI{1}{ms} & \SI{5}{ms} & \SI{2.1}{B} & 100M TPS theoretical ceiling \\
|
|
SoloGPUParams & 1 & \SI{1}{ms} & \SI{5}{ms} & \SI{1}{B} & Tuned for Apple Silicon \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\caption{Pipelined consensus parameter configurations. $K$ is the Snow sample size
|
|
(1 for solo validator). BlockTime of \SI{1}{ms} enables the pipeline goroutine to
|
|
produce blocks at maximum rate. BurstParams uses a \SI{2.1}{B} gas limit to accommodate
|
|
100K transactions per block.}
|
|
\label{tab:pipeline_params}
|
|
\end{table}
|
|
|
|
\subsection{Measured Results}
|
|
|
|
\begin{table}[h]
|
|
\centering
|
|
\begin{tabular}{@{}lrrrr@{}}
|
|
\toprule
|
|
\textbf{Config} & \textbf{Blocks/sec} & \textbf{Txs/block} & \textbf{Theoretical TPS} & \textbf{Hardware} \\
|
|
\midrule
|
|
SoloGPUParams ($K{=}1$) & \num{107000} & \num{47000} & \SI{5.1e9}{} & M1 Max \\
|
|
BurstParams & \num{78000} & \num{100000} & \SI{7.8e9}{} & M1 Max \\
|
|
\bottomrule
|
|
\end{tabular}
|
|
\caption{Pipelined consensus throughput. These are consensus-layer-only measurements
|
|
(no EVM execution, no signature verification). SoloGPUParams achieves \num{107000}
|
|
blocks/sec with $K{=}1$ on Apple M1 Max. Theoretical TPS = blocks/sec $\times$ txs/block.}
|
|
\label{tab:pipeline_results}
|
|
\end{table}
|
|
|
|
At \num{107000} blocks/sec, the consensus layer alone can finalize 47K-transaction blocks
|
|
faster than any execution engine can produce them. \textbf{Consensus is no longer the
|
|
bottleneck}---the constraint has shifted entirely to EVM execution and signature recovery
|
|
(see Section~\ref{sec:throughput} for end-to-end numbers).
|
|
|
|
\subsection{Implications}
|
|
|
|
The pipelined consensus results invert the traditional blockchain performance model.
|
|
In most systems, consensus limits throughput: Tendermint at $\sim$1{,}200\,TPS
|
|
(Section~\ref{sec:throughput}), Ethereum at $\sim$30\,TPS. With Quasar's pipeline,
|
|
the execution engine becomes the binding constraint. This motivates the GPU EVM
|
|
work described in the cevm paper~\cite{quasar-paper}: if consensus can finalize
|
|
\num{107000} blocks/sec, the execution engine must match that rate to avoid
|
|
becoming the new bottleneck.
|
|
|
|
%% ============================================================================
|