Skip to content

Commit bb4bb37

Browse files
committed
simulation: network-spec: catch-up protocol
1 parent de7c01a commit bb4bb37

File tree

1 file changed

+40
-3
lines changed

1 file changed

+40
-3
lines changed

simulation/docs/network-spec/miniprotocols.tex

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ \subsubsection{Description}
7979
\item [\ann{} (If \Announcements)] Announcement representation.
8080
\end{description}
8181

82-
\paragraph{Instances} are listed in Table~\ref{table:relay-instances}.
82+
\paragraph{Instances} \relay{} protocol instances are listed in Table~\ref{table:relay-instances}.
8383
Tx-submission is further parameterized by the maximum window size
8484
allowed. IB-relay, EB-relay, and Vote-relay are each parametrized by
8585
the maximum age beyond which a datum is no longer
@@ -319,7 +319,7 @@ \subsection{Description}
319319
\item [\body{}] Block body itself.
320320
\end{description}
321321

322-
\paragraph{Instances} are listed in Table~{table:fetch-instances}. The \body{} descriptions included here are for illustration, in particular to clarify what we mean by \body{} of an Endorse block.
322+
\paragraph{Instances} \fetch{} instances are listed in Table~{table:fetch-instances}. The \body{} descriptions included here are for illustration, in particular to clarify what we mean by \body{} of an Endorse block.
323323
\begin{table}[h!]
324324
\begin{tabular}{l l l l l l l l}
325325
\header{instance} & \header{\id{}} & \header{\body{}} \\\hline
@@ -438,4 +438,41 @@ \subsection{Timeouts per state}
438438

439439
\section{\catchup{} mini-protocol}
440440
\label{ptcl:catch-up}
441-
TBD
441+
442+
\subsection{Description}
443+
The \catchup{} mini protocol allows for nodes to obtain IB and EB
444+
blocks referenced by the chain. These will typically be too old to be
445+
diffused by the \relay{} and \fetch{} mini protocols, but are still
446+
relevant to reconstruct the ledger state. Additionally it covers
447+
certified EBs which are still recent enough for inclusion in a future
448+
ranking block, and any blocks they reference. This data, together with
449+
the base chain, is what is needed for a node to participate in future
450+
pipelines.
451+
452+
The protocol should allow the consumer to divide the requests between
453+
different producers, and for the producer to have an efficient way to
454+
retrieve the requested blocks.
455+
456+
The consumer should be able to retrieve the base chain through the
457+
other mini protocols, and so the EB references within. However, the
458+
slots of those EBs are unknown, as well as any indirect references.
459+
460+
\paragraph{Requests}
461+
\begin{description}
462+
\item[EBs by RB range] given an RB range from its chain, the producer
463+
should reply with all EBs which are (i) transitively referenced by RBs in that
464+
range, (ii) not referenced by earlier RBs.
465+
\item[Recent certified EBs by slot range] given a slot range, the
466+
producer should reply with all certified EBs which are (i) generated
467+
in the slot range, (ii) not referenced by RBs\footnote{Restriction
468+
(ii) is to avoid overlap with an RB range query, but could be dropped to save on complexity if not worth the saved bandwidth}. The start of the
469+
slot range should be no earlier than the oldest slot an EB could be
470+
generated in and still referenced in a future RB.
471+
\item[IBs by EB \point{} and slot range] given a \point{} for a
472+
certified EB, the producer should reply with all the IBs which are (i)
473+
generated in the given slot range, (ii) directly referenced by
474+
the EB. The slot range allows for partitioning request about the
475+
same EB across different peers.
476+
\end{description}
477+
\todo{Another option for IBs could be a list of refs and a slot range. The refs come from EB bodies, and the slot range can be calculated from the slot of the EB.}
478+
\todo{The protocol itself could be another variation of \fetch{} where requests are one of the above, and replies contain full blocks rather than just bodies.}

0 commit comments

Comments
 (0)