mirror of
https://github.com/lux-apps/papers.git
synced 2026-10-30 18:15:21 +00:00
Bylines, paper authorship, correspondence addresses and the founder blurb under each post named an individual. They name the organisation that published the work instead: the brand on posts and pages, the research byline on papers, and research@ in place of a personal address. Both are what these repositories already used elsewhere — nothing new was coined. Co-authors are untouched. Where a paper named someone else alongside, they stay named; only the one byline changed. Bibliography entries, running heads, PDF metadata and affiliations move with it, so a citation still resolves to whoever the cited paper names. Sample and fixture data uses the placeholder name these tests already use elsewhere, so no assertion changed meaning.
71 lines
3.2 KiB
TeX
71 lines
3.2 KiB
TeX
\documentclass[11pt,a4paper]{article}
|
|
\usepackage{../shared/luxcover}
|
|
\usepackage[utf8]{inputenc}
|
|
\usepackage[T1]{fontenc}
|
|
\usepackage{amsmath,amssymb,amsfonts,amsthm}
|
|
\usepackage{graphicx}
|
|
\usepackage{hyperref}
|
|
\usepackage{algorithm}
|
|
\usepackage{algpseudocode}
|
|
\usepackage{booktabs}
|
|
\usepackage{multirow}
|
|
\usepackage{array}
|
|
\usepackage{xcolor}
|
|
\usepackage{float}
|
|
\usepackage{enumitem}
|
|
\usepackage{mathtools}
|
|
\usepackage{tikz}
|
|
\usetikzlibrary{trees,positioning}
|
|
|
|
\newtheorem{theorem}{Theorem}
|
|
\newtheorem{lemma}[theorem]{Lemma}
|
|
\newtheorem{proposition}[theorem]{Proposition}
|
|
\newtheorem{definition}{Definition}
|
|
\newtheorem{corollary}[theorem]{Corollary}
|
|
\newtheorem{remark}{Remark}
|
|
|
|
\hypersetup{
|
|
colorlinks=true,
|
|
linkcolor=blue,
|
|
citecolor=blue,
|
|
urlcolor=blue
|
|
}
|
|
|
|
\title{\textbf{Fast State Synchronization for Blockchain Nodes\\via Merkle Range Proofs}\\[6pt]
|
|
\large State Trie Snapshots, Range Proofs, Bandwidth Optimization,\\Incremental Sync, and Checkpoint Verification on Lux Network}
|
|
|
|
\author{
|
|
Lux Research\thanks{Corresponding author: [email protected]}\\
|
|
\textit{Lux Industries, Inc.}\\
|
|
\texttt{[email protected]}
|
|
}
|
|
|
|
\date{2020}
|
|
|
|
\begin{document}
|
|
|
|
\luxcoverpage
|
|
|
|
\begin{abstract}
|
|
We present Lux State Sync, a fast state synchronization protocol that enables new or recovering blockchain nodes to obtain a verified copy of the current state without replaying the entire transaction history. The protocol uses Merkle range proofs over the state trie to enable parallel, resumable downloads of state chunks, with each chunk independently verifiable against a committed state root. We introduce three key innovations: (i)~a hierarchical chunking strategy that partitions the state trie into variable-size segments aligned to trie node boundaries, achieving optimal parallelism without redundant transfers; (ii)~a range proof construction that proves the completeness of a key range using $O(\log n)$ proof nodes, enabling the receiver to verify that no state entries were omitted; and (iii)~an incremental sync mode that updates a previously synchronized state to a newer checkpoint using only the state delta, reducing bandwidth by 90--99\% for nodes that are hours or days behind. We prove that the protocol is correct (synchronized state matches the committed root), complete (no state entries are missing), and live (sync completes in bounded time under partial adversary). Benchmarks on Lux C-Chain show that full state sync of 50 million accounts completes in under 30 minutes at 100 Mbps, compared to 12+ hours for full historical replay. Incremental sync of 1 hour of state changes completes in under 10 seconds.
|
|
\end{abstract}
|
|
|
|
\input{sections/01-introduction}
|
|
\input{sections/02-state-trie-structure}
|
|
\input{sections/03-protocol-overview}
|
|
\input{sections/04-merkle-range-proofs}
|
|
\input{sections/05-hierarchical-chunking}
|
|
\input{sections/06-incremental-state-sync}
|
|
\input{sections/07-multi-source-download}
|
|
\input{sections/08-checkpoint-verification}
|
|
\input{sections/09-storage-layer-integration}
|
|
\input{sections/10-comparison-with-existing-protocols}
|
|
\input{sections/11-benchmarks}
|
|
\input{sections/12-security-analysis}
|
|
\input{sections/13-appchain-state-sync}
|
|
\input{sections/14-protocol-versioning}
|
|
\input{sections/15-related-work}
|
|
\input{sections/99-conclusion}
|
|
|
|
\end{document}
|