0.0.2 configure update
This commit is contained in:
parent
0fb17e2b70
commit
a8412268c0
@ -17,7 +17,7 @@
|
|||||||
#
|
#
|
||||||
#
|
#
|
||||||
AC_PREREQ([2.69])
|
AC_PREREQ([2.69])
|
||||||
AC_INIT([taler-exchange], [0.0.1], [taler-bug@gnunet.org])
|
AC_INIT([taler-exchange], [0.0.2], [taler-bug@gnunet.org])
|
||||||
AC_CONFIG_SRCDIR([src/util/util.c])
|
AC_CONFIG_SRCDIR([src/util/util.c])
|
||||||
AC_CONFIG_HEADERS([taler_config.h])
|
AC_CONFIG_HEADERS([taler_config.h])
|
||||||
# support for non-recursive builds
|
# support for non-recursive builds
|
||||||
|
BIN
doc/paper/bw_in.png
Normal file
BIN
doc/paper/bw_in.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.2 KiB |
BIN
doc/paper/bw_out.png
Normal file
BIN
doc/paper/bw_out.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.4 KiB |
BIN
doc/paper/cpu_balance.png
Normal file
BIN
doc/paper/cpu_balance.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
BIN
doc/paper/cpu_usage.png
Normal file
BIN
doc/paper/cpu_usage.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.3 KiB |
BIN
doc/paper/db_read.png
Normal file
BIN
doc/paper/db_read.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
BIN
doc/paper/db_write.png
Normal file
BIN
doc/paper/db_write.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
@ -32,6 +32,9 @@
|
|||||||
\usetikzlibrary{shapes,arrows}
|
\usetikzlibrary{shapes,arrows}
|
||||||
\usetikzlibrary{positioning}
|
\usetikzlibrary{positioning}
|
||||||
\usetikzlibrary{calc}
|
\usetikzlibrary{calc}
|
||||||
|
\usepackage{caption}
|
||||||
|
\usepackage{subcaption}
|
||||||
|
\usepackage{subfig}
|
||||||
|
|
||||||
% Relate to:
|
% Relate to:
|
||||||
% http://fc14.ifca.ai/papers/fc14_submission_124.pdf
|
% http://fc14.ifca.ai/papers/fc14_submission_124.pdf
|
||||||
@ -661,7 +664,7 @@ merchant trusts the exchange that issued the coin.
|
|||||||
Merchants are identified by their public key $M_p = m_s G$ which the
|
Merchants are identified by their public key $M_p = m_s G$ which the
|
||||||
customer's wallet learns through the merchant's webpage, which itself
|
customer's wallet learns through the merchant's webpage, which itself
|
||||||
must be authenticated with X.509c.
|
must be authenticated with X.509c.
|
||||||
% FIXME: Is this correct?
|
% FIXME: Is this correct?
|
||||||
|
|
||||||
We now describe the protocol between the customer, merchant, and exchange
|
We now describe the protocol between the customer, merchant, and exchange
|
||||||
for a transaction in which the customer spends a coin $C := (c_s, C_p)$
|
for a transaction in which the customer spends a coin $C := (c_s, C_p)$
|
||||||
@ -928,6 +931,83 @@ can then use the refresh protocol to anonymously melt the refunded
|
|||||||
coin and create a fresh coin that is unlinkable to the refunded
|
coin and create a fresh coin that is unlinkable to the refunded
|
||||||
transaction.
|
transaction.
|
||||||
|
|
||||||
|
\section{Experimental results}
|
||||||
|
|
||||||
|
\begin{figure}[b!]
|
||||||
|
\begin{subfigure}{0.45\columnwidth}
|
||||||
|
\includegraphics[width=\columnwidth]{bw_in.png}
|
||||||
|
\caption{Incoming traffic at the exchange, in bytes per 5 minutes.}
|
||||||
|
\label{fig:in}
|
||||||
|
\end{subfigure}\hfill
|
||||||
|
\begin{subfigure}{0.45\columnwidth}
|
||||||
|
\includegraphics[width=\columnwidth]{bw_out.png}
|
||||||
|
\caption{Outgoing traffic from the exchange, in bytes per 5 minutes.}
|
||||||
|
\label{fig:out}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{0.45\columnwidth}
|
||||||
|
\includegraphics[width=\columnwidth]{db_read.png}
|
||||||
|
\caption{DB read operations per second.}
|
||||||
|
\label{fig:read}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{0.45\columnwidth}
|
||||||
|
\includegraphics[width=\columnwidth]{db_write.png}
|
||||||
|
\caption{DB write operations per second.}
|
||||||
|
\label{fig:write}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{0.45\columnwidth}
|
||||||
|
\includegraphics[width=\columnwidth]{cpu_balance.png}
|
||||||
|
\caption{CPU credit balance. Hitting a balance of 0 shows the CPU is
|
||||||
|
the limiting factor.}
|
||||||
|
\label{fig:cpu}
|
||||||
|
\end{subfigure}\hfill
|
||||||
|
\begin{subfigure}{0.45\columnwidth}
|
||||||
|
\includegraphics[width=\columnwidth]{cpu_usage.png}
|
||||||
|
\caption{CPU utilization. The t2.micro instance is allowed to use 10\% of
|
||||||
|
one CPU.}
|
||||||
|
\label{fig:usage}
|
||||||
|
\end{subfigure}
|
||||||
|
\caption{Selected EC2 performance monitors for the experiment in the EC2
|
||||||
|
(after several hours, once the system was ``warm'').}
|
||||||
|
\label{fig:ec2}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
We ran the Taler exchange v0.0.2 on an Amazon EC2 t2.micro instance
|
||||||
|
(10\% of a Xeon E5-2676 at 2.4 GHz) based on Ubuntu 14.04.4 LTS, using
|
||||||
|
a db.t2.micro instance with Postgres 9.5 for the database. Using 16
|
||||||
|
concurrent clients performing withdraw, deposit and refresh operations
|
||||||
|
we then pushed the t2.micro instance to the resource limit
|
||||||
|
(Figure~\ref{fig:cpu}) from a network with $\approx$ 160 ms latency to
|
||||||
|
the EC2 instance. At that point, the instance managed about 8 HTTP
|
||||||
|
requests per second, which roughly corresponds to one full business
|
||||||
|
transaction (as a full business transaction is expected to involve
|
||||||
|
withdrawing and depositing several coins). The network traffic was
|
||||||
|
modest at approximately 50 kbit/sec from the exchange
|
||||||
|
(Figure~\ref{fig:out}) and 160 kbit/sec to the exchange
|
||||||
|
(Figure~\ref{fig:in}). At network latencies above 10 ms, the delay
|
||||||
|
for executing a transaction is dominated by the network latency, as
|
||||||
|
local processing virtually always takes less than 10 ms.
|
||||||
|
|
||||||
|
Database transactions are dominated by writes (Figure~\ref{fig:read}
|
||||||
|
vs. Figure~\ref{fig:write}), as Taler mostly needs to log
|
||||||
|
transactions and occasionally needs to read to guard against
|
||||||
|
double-spending. Given a database capacity of 2 TB---which should
|
||||||
|
suffice for more than one year of full transaction logs---the
|
||||||
|
described setup has a hosting cost within EC2 of approximately USD 252
|
||||||
|
per month, or roughly 0.0001 USD per full business transaction. This
|
||||||
|
compares favorably to the $\approx$ USD 10 per business transaction
|
||||||
|
for Bitcoin and the \EUR{0.35} plus 1.9\% charged by Paypal for
|
||||||
|
domestic transfers within Germany.
|
||||||
|
|
||||||
|
In the Amazon EC2 billing, the cost for the database (using SSD
|
||||||
|
storage) dominates the cost with more than USD 243 per month. We note
|
||||||
|
that these numbers are approximate, as the frontend and backend in our
|
||||||
|
configuration uses systems from the AWS Free Usage Tier and is not
|
||||||
|
perfectly balanced in between frontend and backend. Nevertheless,
|
||||||
|
these experimental results show that computing-related business costs
|
||||||
|
will only marginally contribute to the operational costs of the Taler
|
||||||
|
payment system.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
\section{Discussion}
|
\section{Discussion}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user