add more detail to coin state machine

This commit is contained in:
Christian Grothoff 2020-07-13 19:03:05 +02:00
parent 5e5a15b01b
commit b89e433f4f
No known key found for this signature in database
GPG Key ID: 939E6BE1E29FC3CC
3 changed files with 7 additions and 4 deletions

View File

@ -6,7 +6,8 @@ digraph Coin {
partial [color=blue, label="dirty coin", shape="box"];
revoked [color=blue, label="revoked coin", shape="box"];
zombie [color=blue, label="zombie coin", shape="box"];
spent [color=blue, label="spent coin", shape="doublecircle"];
spent [color=blue, label="spent coin", shape="box"];
wired [color=blue, label="wired coin", shape="doublecircle"];
expired [color=blue, label="expired coin", shape="doublecircle"];
subgraph {
@ -36,6 +37,7 @@ digraph Coin {
melt->spent;
spent->refund;
refund->partial;
spent->wired [style=dotted];
partial->expired [style=dotted];
partial->melt;
partial->deposit [color=red];

Binary file not shown.

View File

@ -727,8 +727,9 @@ the {\em withdraw} protocol or the refresh protocol. The most common scenario
is that the {\em fresh coin} is {\em deposited}. This payment creates a
deposit (see Figure~\ref{fig:deposit:states}) and either a {\em dirty coin}
(if the payment was for a fraction of the coin's value) or a {\em spent coin}.
A spent coin can be {\em refunded} by the merchant (until the deposit is due),
creating a {\em dirty coin}.
A spent coin can be {\em refunded} by the merchant, creating a {\em dirty
coin}. Once the exchange has aggregated a coin and wired the amount to the
merchant, a coin can no longer be refunded.
A {\em fresh coin} may also be subject to key {\em revocation}, at which point
the wallet ends up with a {\em revoked coin}. At this point, the wallet can
@ -754,7 +755,7 @@ when the committment made for the {\em refresh session} is checked during the
\begin{figure}
\begin{center}
\includegraphics[scale=0.75]{taler/coin.pdf}
\includegraphics[scale=0.65]{taler/coin.pdf}
\end{center}
\caption{State machine of a coin.}
\label{fig:coin:states}