marketing

Marketing materials (presentations, posters, flyers)
Log | Files | Refs

commit 4525b5c5d0ce6607d2ee96b3f709ff68da3c70c3
parent 591181c9db2b43f38a1748c0d1a5493a66e4414c
Author: Christian Grothoff <christian@grothoff.org>
Date:   Fri, 15 Jan 2021 11:35:52 +0100

more slides

Diffstat:
Mpresentations/bank/bank.tex | 89+++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------
Apresentations/bank/db-full.pdf | 0
Apresentations/bank/db-full.svg | 594+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apresentations/bank/lunch.tex | 574+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apresentations/bank/replication.pdf | 0
Apresentations/bank/replication.svg | 427+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apresentations/bank/replication2.pdf | 0
Apresentations/bank/replication2.svg | 384+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
8 files changed, 2039 insertions(+), 29 deletions(-)

diff --git a/presentations/bank/bank.tex b/presentations/bank/bank.tex @@ -346,7 +346,7 @@ of the Taler Wire Gateway exist: \begin{frame}{LibEuFin} LibEuFin is a standalone project that provides adapters to bank account access APIs. - + \begin{itemize} \item LibEuFin provides both a generic access layer and an implementation of the Taler Wire Gateway API for the exchange @@ -709,43 +709,54 @@ Once everyone is happy with Beta, move to production. \begin{frame}[fragile]{Debian Installation Overview (1/3)} Recommended {\tt /etc/apt/preferences}: - \begin{verbatim} - Package: * - Pin: release a=stable - Pin-Priority: 700 - - Package: * - Pin: release a=testing - Pin-Priority: 650 - - Package: * - Pin: release a=unstable - Pin-Priority: 600 - Package: * - Pin: release l=Debian-Security - Pin-Priority: 1000 - \end{verbatim} +{\tiny +\begin{verbatim} +Package: * +Pin: release a=stable +Pin-Priority: 700 + +Package: * +Pin: release a=testing +Pin-Priority: 650 + +Package: * +Pin: release a=unstable +Pin-Priority: 600 + +Package: * +Pin: release l=Debian-Security +Pin-Priority: 1000 +\end{verbatim} +} \end{frame} \begin{frame}[fragile]{Debian Installation Overview (2/3)} +\noindent Recommended {\tt /etc/apt/sources.list}: - \begin{verbatim} - deb http://ftp.ch.debian.org/debian/ buster main - deb http://security.debian.org/debian-security buster/updates main - deb http://ftp.ch.debian.org/debian/ testing main - deb http://ftp.ch.debian.org/debian/ unstable main - deb https://deb.taler.net/apt/debian sid main - \end{verbatim} + +{\tiny +\begin{verbatim} +deb http://ftp.ch.debian.org/debian/ buster main +deb http://security.debian.org/debian-security buster/updates main +deb http://ftp.ch.debian.org/debian/ testing main +deb http://ftp.ch.debian.org/debian/ unstable main +deb https://deb.taler.net/apt/debian sid main +\end{verbatim} +} \end{frame} \begin{frame}[fragile]{Debian Installation Overview (3/3)} +\noindent Key import and installation: - \begin{verbatim} - # wget -O - https://taler.net/taler-systems.gpg.key | apt-sign add - - # apt update - # apt install taler-exchange - \end{verbatim} + +{\tiny +\begin{verbatim} +# wget -O - https://taler.net/taler-systems.gpg.key | apt-sign add - +# apt update +# apt install taler-exchange +\end{verbatim} +} \end{frame} @@ -758,6 +769,26 @@ Key import and installation: \end{frame} +\begin{frame}{Database setup} +\begin{center} +\includegraphics[width=\textwidth]{replication.pdf} +\end{center} +\end{frame} + +\begin{frame}{Simplified database setup} +\begin{center} +\includegraphics[width=\textwidth]{replication2.pdf} +\end{center} +\end{frame} + +\begin{frame}{Database setup with Nexus} +\begin{center} +\includegraphics[width=\textwidth]{db-full.pdf} +\end{center} +\end{frame} + + + \section{Integration} diff --git a/presentations/bank/db-full.pdf b/presentations/bank/db-full.pdf Binary files differ. diff --git a/presentations/bank/db-full.svg b/presentations/bank/db-full.svg @@ -0,0 +1,594 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + id="SVGRoot" + version="1.1" + viewBox="0 0 297.0 210.0" + height="210.0mm" + width="297.0mm" + inkscape:version="1.0 (4035a4fb49, 2020-05-01)" + sodipodi:docname="db-full.svg"> + <defs + id="defs1461"> + <marker + inkscape:isstock="true" + style="overflow:visible" + id="Arrow1Lstart" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Lstart"> + <path + transform="scale(0.8) translate(12.5,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path1435" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible;" + id="marker1355" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Lend"> + <path + transform="scale(0.8) rotate(180) translate(12.5,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path1353" /> + </marker> + <marker + inkscape:collect="always" + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker1285" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path1283" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8) rotate(180) translate(12.5,0)" /> + </marker> + <marker + inkscape:collect="always" + inkscape:isstock="true" + style="overflow:visible;" + id="marker1171" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Lend"> + <path + transform="scale(0.8) rotate(180) translate(12.5,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path1169" /> + </marker> + <marker + inkscape:collect="always" + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker2714" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path2712" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8) rotate(180) translate(12.5,0)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible;" + id="marker2662" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:collect="always"> + <path + transform="scale(0.8) rotate(180) translate(12.5,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path2660" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker2616" + style="overflow:visible;" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path2614" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8) rotate(180) translate(12.5,0)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible;" + id="marker2576" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:collect="always"> + <path + transform="scale(0.8) rotate(180) translate(12.5,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path2574" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker2542" + style="overflow:visible;" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path2540" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8) rotate(180) translate(12.5,0)" /> + </marker> + <marker + inkscape:isstock="true" + style="overflow:visible;" + id="marker2514" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:collect="always"> + <path + transform="scale(0.8) rotate(180) translate(12.5,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path2512" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow1Lend" + style="overflow:visible;" + inkscape:isstock="true" + inkscape:collect="always"> + <path + id="path2237" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8) rotate(180) translate(12.5,0)" /> + </marker> + <rect + x="264.57466" + y="120.19322" + width="4.5762249" + height="3.9007863" + id="rect2196" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1.979899" + inkscape:cx="593.09972" + inkscape:cy="322.52626" + inkscape:document-units="mm" + inkscape:current-layer="layer1" + inkscape:document-rotation="0" + showgrid="false" + inkscape:window-width="3840" + inkscape:window-height="2086" + inkscape:window-x="3840" + inkscape:window-y="0" + inkscape:window-maximized="1" /> + <metadata + id="metadata1464"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <g + id="g2110" + transform="translate(38.949627,46.304883)"> + <g + transform="matrix(0.07147522,0,0,0.07147522,41.870798,24.492858)" + id="g890"> + <path + id="path879" + d="m 448,73.143 v 45.714 C 448,159.143 347.667,192 224,192 100.333,192 0,159.143 0,118.857 V 73.143 C 0,32.857 100.333,0 224,0 347.667,0 448,32.857 448,73.143 Z M 448,176 V 278.857 C 448,319.143 347.667,352 224,352 100.333,352 0,319.143 0,278.857 V 176 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z m 0,160 V 438.857 C 448,479.143 347.667,512 224,512 100.333,512 0,479.143 0,438.857 V 336 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z" /> + </g> + <text + id="text2097" + y="69.701385" + x="36.053169" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + xml:space="preserve"><tspan + style="stroke-width:0.264583" + y="69.701385" + x="36.053169" + id="tspan2095" + sodipodi:role="line">Exchange production DB</tspan><tspan + id="tspan2099" + style="stroke-width:0.264583" + y="74.111099" + x="36.053169" + sodipodi:role="line" /></text> + </g> + <g + id="g2116" + transform="translate(62.918245,23.939865)"> + <g + id="g890-2" + transform="matrix(0.07147522,0,0,0.07147522,19.178235,121.17556)"> + <path + d="m 448,73.143 v 45.714 C 448,159.143 347.667,192 224,192 100.333,192 0,159.143 0,118.857 V 73.143 C 0,32.857 100.333,0 224,0 347.667,0 448,32.857 448,73.143 Z M 448,176 V 278.857 C 448,319.143 347.667,352 224,352 100.333,352 0,319.143 0,278.857 V 176 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z m 0,160 V 438.857 C 448,479.143 347.667,512 224,512 100.333,512 0,479.143 0,438.857 V 336 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z" + id="path879-1" /> + </g> + <text + id="text2103" + y="164.58421" + x="15.052144" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + xml:space="preserve"><tspan + style="stroke-width:0.264583" + y="164.58421" + x="15.052144" + id="tspan2101" + sodipodi:role="line">Exchange hotspare DB</tspan></text> + </g> + <g + id="g2134" + transform="translate(-20.100164,43.684438)"> + <g + id="g890-0" + transform="matrix(0.07147522,0,0,0.07147522,180.02977,23.090737)"> + <path + d="m 448,73.143 v 45.714 C 448,159.143 347.667,192 224,192 100.333,192 0,159.143 0,118.857 V 73.143 C 0,32.857 100.333,0 224,0 347.667,0 448,32.857 448,73.143 Z M 448,176 V 278.857 C 448,319.143 347.667,352 224,352 100.333,352 0,319.143 0,278.857 V 176 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z m 0,160 V 438.857 C 448,479.143 347.667,512 224,512 100.333,512 0,479.143 0,438.857 V 336 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z" + id="path879-5" /> + </g> + <text + id="text2120" + y="66.899231" + x="178.26529" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + xml:space="preserve"><tspan + style="stroke-width:0.264583" + y="66.899231" + x="178.26529" + id="tspan2118" + sodipodi:role="line">Exchange ingres DB</tspan></text> + </g> + <g + id="g2140" + transform="translate(-17.899392,49.181656)"> + <g + id="g890-1" + transform="matrix(0.07147522,0,0,0.07147522,177.66977,95.095201)"> + <path + d="m 448,73.143 v 45.714 C 448,159.143 347.667,192 224,192 100.333,192 0,159.143 0,118.857 V 73.143 C 0,32.857 100.333,0 224,0 347.667,0 448,32.857 448,73.143 Z M 448,176 V 278.857 C 448,319.143 347.667,352 224,352 100.333,352 0,319.143 0,278.857 V 176 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z m 0,160 V 438.857 C 448,479.143 347.667,512 224,512 100.333,512 0,479.143 0,438.857 V 336 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z" + id="path879-10" /> + </g> + <text + id="text2124" + y="140.82193" + x="175.99486" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + xml:space="preserve"><tspan + style="stroke-width:0.264583" + y="140.82193" + x="175.99486" + id="tspan2122" + sodipodi:role="line">Exchange &quot;safe&quot; DB</tspan></text> + </g> + <g + id="g2146" + transform="translate(-25.694345,-11.3694)"> + <g + id="g890-8" + transform="matrix(0.07147522,0,0,0.07147522,250.62455,153.8705)"> + <path + d="m 448,73.143 v 45.714 C 448,159.143 347.667,192 224,192 100.333,192 0,159.143 0,118.857 V 73.143 C 0,32.857 100.333,0 224,0 347.667,0 448,32.857 448,73.143 Z M 448,176 V 278.857 C 448,319.143 347.667,352 224,352 100.333,352 0,319.143 0,278.857 V 176 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z m 0,160 V 438.857 C 448,479.143 347.667,512 224,512 100.333,512 0,479.143 0,438.857 V 336 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z" + id="path879-50" /> + </g> + <text + id="text2128" + y="197.93983" + x="249.85829" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + xml:space="preserve"><tspan + style="stroke-width:0.264583" + y="197.93983" + x="249.85829" + id="tspan2126" + sodipodi:role="line">Auditor internal DB</tspan></text> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="63.354843" + y="130.198" + id="text2150"><tspan + sodipodi:role="line" + id="tspan2148" + x="63.354843" + y="130.198" + style="stroke-width:0.264583">Postgres replication</tspan></text> + <text + id="text2150-8" + y="87.403023" + x="116.87389" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + xml:space="preserve"><tspan + style="stroke-width:0.264583" + y="87.403023" + x="116.87389" + id="tspan2148-4" + sodipodi:role="line">Postgres replication</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="177.58916" + y="128.95174" + id="text2188"><tspan + sodipodi:role="line" + id="tspan2186" + x="177.58916" + y="128.95174" + style="stroke-width:0.264583">taler-auditor-sync</tspan></text> + <text + xml:space="preserve" + id="text2194" + style="fill:black;fill-opacity:1;stroke:none;font-family:sans-serif;font-style:normal;font-weight:normal;font-size:3.52777778px;line-height:1.25;letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect2196);" /> + <rect + style="fill:none;fill-opacity:1;stroke:#020000;stroke-width:0.314907;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect2204" + width="120.67498" + height="179.72961" + x="6.9242091" + y="16.182726" /> + <rect + style="fill:none;fill-opacity:1;stroke:#020000;stroke-width:0.275246;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect2206" + width="136.18742" + height="193.50241" + x="145.51649" + y="2.515445" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2514)" + d="M 98.94709,117.06425 V 143.9399" + id="path2216" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.188668px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2714)" + d="m 111.94204,89.559485 h 46.95374" + id="path2218" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2662)" + d="m 175.61312,111.01201 v 32.58586" + id="path2220" /> + <path + sodipodi:nodetypes="cc" + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2542)" + d="M 224.35274,116.19596 193.81399,163.7299" + id="path2222" /> + <path + sodipodi:nodetypes="cc" + style="fill:none;stroke:#000000;stroke-width:0.185737px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2576)" + d="m 224.35274,116.19596 17.17024,25.83941" + id="path2224" /> + <g + transform="translate(53.868709,27.270619)" + id="g957"> + <text + id="text2210" + y="27.13241" + x="26.070297" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + xml:space="preserve"><tspan + style="stroke-width:0.264583" + y="27.13241" + x="26.070297" + id="tspan2208" + sodipodi:role="line">taler-exchange-httpd</tspan></text> + <circle + r="0.025015881" + cy="30.470467" + cx="44.608482" + style="fill:#000000;stroke:#020000;stroke-width:0.264583" + id="path2212" /> + <path + sodipodi:nodetypes="cc" + id="path2214" + d="m 43.574858,30.96147 v 12.2565" + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)" /> + <ellipse + ry="5.0640941" + rx="26.22459" + cy="25.763792" + cx="45.386578" + id="path2228" + style="fill:none;fill-opacity:1;stroke:#020000;stroke-width:0.264999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> + <g + transform="translate(17.175264,85.978838)" + id="g1046"> + <path + sodipodi:nodetypes="cc" + id="path2226" + d="M 248.23207,28.995391 229.37574,55.894906" + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2616)" /> + <g + id="g997"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="230.1824" + y="24.976534" + id="text2192"><tspan + sodipodi:role="line" + id="tspan2190" + x="230.1824" + y="24.976534" + style="stroke-width:0.264583">taler-auditor-httpd</tspan></text> + <ellipse + style="fill:none;fill-opacity:1;stroke:#020000;stroke-width:0.264999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path2230" + cx="247.19611" + cy="24.075922" + rx="22.319004" + ry="4.3381324" /> + </g> + </g> + <g + transform="translate(-24.171449,-32.95247)" + id="g992"> + <text + id="text2202" + y="144.25079" + x="237.84789" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + xml:space="preserve"><tspan + style="stroke-width:0.264583" + y="144.25079" + x="237.84789" + id="tspan2200" + sodipodi:role="line">taler-auditor</tspan></text> + <ellipse + ry="4.9346147" + rx="13.054943" + cy="143.48093" + cx="248.29224" + id="path2232" + style="fill:none;fill-opacity:1;stroke:#020000;stroke-width:0.265;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> + <rect + style="fill:none;fill-opacity:1;stroke:#020000;stroke-width:0.264999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect2770" + width="51.529339" + height="59.034092" + x="145.6909" + y="57.411758" /> + <path + id="path1167" + d="M 224.53596,105.70138 239.36631,50.353769" + style="fill:none;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#marker1171)" /> + <g + id="g1265"> + <g + transform="matrix(0.07147522,0,0,0.07147522,224.75254,13.198362)" + id="g890-05-0"> + <path + id="path879-11-6" + d="m 448,73.143 v 45.714 C 448,159.143 347.667,192 224,192 100.333,192 0,159.143 0,118.857 V 73.143 C 0,32.857 100.333,0 224,0 347.667,0 448,32.857 448,73.143 Z M 448,176 V 278.857 C 448,319.143 347.667,352 224,352 100.333,352 0,319.143 0,278.857 V 176 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z m 0,160 V 438.857 C 448,479.143 347.667,512 224,512 100.333,512 0,479.143 0,438.857 V 336 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z" /> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="225.23546" + y="11.60587" + id="text1235"><tspan + sodipodi:role="line" + id="tspan1233" + x="225.23546" + y="11.60587" + style="stroke-width:0.264583">LibEuFin/Nexus</tspan></text> + </g> + <g + id="g1259"> + <g + id="g890-05" + transform="matrix(0.07147522,0,0,0.07147522,19.069133,22.979895)"> + <path + d="m 448,73.143 v 45.714 C 448,159.143 347.667,192 224,192 100.333,192 0,159.143 0,118.857 V 73.143 C 0,32.857 100.333,0 224,0 347.667,0 448,32.857 448,73.143 Z M 448,176 V 278.857 C 448,319.143 347.667,352 224,352 100.333,352 0,319.143 0,278.857 V 176 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z m 0,160 V 438.857 C 448,479.143 347.667,512 224,512 100.333,512 0,479.143 0,438.857 V 336 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z" + id="path879-11" /> + </g> + <text + id="text1235-4" + y="20.419903" + x="21.423883" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + xml:space="preserve"><tspan + style="stroke-width:0.264583" + y="20.419903" + x="21.423883" + id="tspan1233-6" + sodipodi:role="line">LibEuFin/Nexus</tspan></text> + </g> + <text + id="text1269" + y="91.990257" + x="23.534399" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + xml:space="preserve"><tspan + style="stroke-width:0.264583" + y="91.990257" + x="23.534399" + id="tspan1267" + sodipodi:role="line">taler-exchange-transfer</tspan></text> + <text + id="text1273" + y="68.563263" + x="42.095734" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + xml:space="preserve"><tspan + style="stroke-width:0.264583" + y="68.563263" + x="42.095734" + id="tspan1271" + sodipodi:role="line">taler-exchange-wirewatch</tspan></text> + <text + id="text1277" + y="80.975281" + x="233.62143" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + xml:space="preserve"><tspan + style="stroke-width:0.264583" + y="80.975281" + x="233.62143" + id="tspan1275" + sodipodi:role="line">taler-helper-auditor-wire</tspan></text> + <path + sodipodi:nodetypes="cc" + id="path1279" + d="m 32.960054,61.382727 c -47.138813,49.618583 31.76765,38.272783 46.81458,37.542428" + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Lstart)" /> + <path + sodipodi:nodetypes="cc" + id="path1281" + d="m 50.151339,58.352788 c 15.983641,9.115347 27.303503,-7.798757 41.5378,11.838353" + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1285)" /> + </g> +</svg> diff --git a/presentations/bank/lunch.tex b/presentations/bank/lunch.tex @@ -0,0 +1,574 @@ +\pdfminorversion=3 +\documentclass[fleqn,xcolor={usenames,dvipsnames}]{beamer} +\usepackage{amsmath} +\usepackage{multimedia} +\usepackage[utf8]{inputenc} +\usepackage{framed,color,ragged2e} +\usepackage[absolute,overlay]{textpos} +\definecolor{shadecolor}{rgb}{0.8,0.8,0.8} +\usetheme{boxes} +\setbeamertemplate{navigation symbols}{} +\usepackage{xcolor} +\usepackage{tikz,eurosym} +\usepackage[normalem]{ulem} +\usepackage{listings} + +% CSS +\lstdefinelanguage{CSS}{ + basicstyle=\ttfamily\scriptsize, + keywords={color,background-image:,margin,padding,font,weight,display,position,top,left,right,bottom,list,style,border,size,white,space,min,width, transition:, transform:, transition-property, transition-duration, transition-timing-function}, + sensitive=true, + morecomment=[l]{//}, + morecomment=[s]{/*}{*/}, + morestring=[b]', + morestring=[b]", + alsoletter={:}, + alsodigit={-} +} + +% JavaScript +\lstdefinelanguage{JavaScript}{ + basicstyle=\ttfamily\scriptsize, + morekeywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break}, + morecomment=[s]{/*}{*/}, + morecomment=[l]//, + morestring=[b]", + morestring=[b]' +} + +\lstdefinelanguage{HTML5}{ + basicstyle=\ttfamily\scriptsize, + language=html, + sensitive=true, + alsoletter={<>=-}, + morecomment=[s]{<!-}{-->}, + tag=[s], + otherkeywords={ + % General + >, + % Standard tags + <!DOCTYPE, + </html, <html, <head, <title, </title, <style, </style, <link, </head, <meta, />, + % body + </body, <body, + % Divs + </div, <div, </div>, + % Paragraphs + </p, <p, </p>, + % scripts + </script, <script, + % More tags... + <canvas, /canvas>, <svg, <rect, <animateTransform, </rect>, </svg>, <video, <source, <iframe, </iframe>, </video>, <image, </image> + }, + ndkeywords={ + % General + =, + % HTML attributes + charset=, src=, id=, width=, height=, style=, type=, rel=, href=, + % SVG attributes + fill=, attributeName=, begin=, dur=, from=, to=, poster=, controls=, x=, y=, repeatCount=, xlink:href=, + % CSS properties + margin:, padding:, background-image:, border:, top:, left:, position:, width:, height:, + % CSS3 properties + transform:, -moz-transform:, -webkit-transform:, + animation:, -webkit-animation:, + transition:, transition-duration:, transition-property:, transition-timing-function:, + } +} + +\lstdefinelanguage{JavaScript}{ + basicstyle=\ttfamily\scriptsize, + keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break, for}, + keywordstyle=\color{blue}\bfseries, + ndkeywords={class, export, boolean, throw, implements, import, this}, + ndkeywordstyle=\color{darkgray}\bfseries, + identifierstyle=\color{black}, + sensitive=false, + comment=[l]{//}, + morecomment=[s]{/*}{*/}, + commentstyle=\color{purple}\ttfamily, + stringstyle=\color{red}\ttfamily, + morestring=[b]', + morestring=[b]" +} + +\usetikzlibrary{shapes,arrows} +\usetikzlibrary{positioning} +\usetikzlibrary{calc} + +\title{GNU Taler} +\subtitle{Montag Mittag, 25.1.2021} + +\setbeamertemplate{navigation symbols}{\includegraphics[width=1cm]{inria.pdf} \includegraphics[width=0.5cm]{gnu.png} \includegraphics[width=0.5cm]{ashoka.png}\hfill} +%\setbeamercovered{transparent=1} + +\author{L. Wittmann, C. Grothoff} +\date{\today} +\institute{Taler Systems SA} + + +\begin{document} + +\justifying + +\begin{frame} + \begin{center} + \LARGE {\bf GNU} + + \vfill + \includegraphics[width=0.66\textwidth]{logo-2020.jpg} + \end{center} +\begin{textblock*}{4cm}(.5cm,7.7cm) % {block width} (coords) + {\Large {\bf \url{https://taler.net}} \\ + twitter@taler } +\end{textblock*} + +% Substitute based on who is giving the talk! + \begin{textblock*}{6cm}(6.7cm,7.7cm) % {block width} (coords) + {\hfill {\Large {\bf L. Wittmann \&} \\ + \hfill {\bf C. Grothoff}} } +\end{textblock*} + +\end{frame} + + +\begin{frame}{Design goals for the GNU Taler Payment System} +GNU Taler must ... +\begin{enumerate} + \item {... be implemented as {\bf free software}.} + \item {... protect the {\bf privacy of buyers}.} + \item {... must enable the state to {\bf tax income} and crack down on + illegal business activities.} + \item {... prevent payment fraud.} + \item {... only {\bf disclose the minimal amount of information + necessary}.} + \item {... be usable.} + \item {... be efficient.} + \item {... avoid single points of failure.} + \item {... foster {\bf competition}.} +\end{enumerate} +\end{frame} + + +\begin{frame}{How does Taler operate?} + \vfill +\begin{center} +\includegraphics[width=0.7\textwidth]{operations.png} +\end{center} +\end{frame} + + +\begin{frame} +\frametitle{Do you have any questions?} +\vfill +References: +{\tiny + \begin{enumerate} + \item{Christian Grothoff, Bart Polot and Carlo von Loesch. + {\em The Internet is broken: Idealistic Ideas for Building a GNU Network}. + {\bf W3C/IAB Workshop on Strengthening the Internet Against Pervasive Monitoring (STRINT)}, 2014.} + \item{Jeffrey Burdges, Florian Dold, Christian Grothoff and Marcello Stanisci. + {\em Enabling Secure Web Payments with GNU Taler}. + {\bf SPACE 2016}.} + \item{Florian Dold, Sree Harsha Totakura, Benedikt M\"uller, Jeffrey Burdges and Christian Grothoff. + {\em Taler: Taxable Anonymous Libre Electronic Reserves}. + Available upon request. 2016.} + \item{Eli Ben-Sasson, Alessandro Chiesa, Christina Garman, Matthew Green, Ian Miers, Eran Tromer and Madars Virza. + {\em Zerocash: Decentralized Anonymous Payments from Bitcoin}. + {\bf IEEE Symposium on Security \& Privacy, 2016}.} + \item{David Chaum, Amos Fiat and Moni Naor. + {\em Untraceable electronic cash}. + {\bf Proceedings on Advances in Cryptology, 1990}.} + \item{Phillip Rogaway. + {\em The Moral Character of Cryptographic Work}. + {\bf Asiacrypt}, 2015.} \label{bib:rogaway} +\end{enumerate} +} +\begin{center} + {\bf Let money facilitate trade; but ensure capital serves society.} +\end{center} +\end{frame} + + + + +\end{document} + + + + +\begin{frame}{Taler {\tt /withdraw/sign}} +% Customer withdrawing coins with blind signatures +% \bigskip + \begin{figure}[th] + \begin{minipage}[b]{0.45\linewidth} + \begin{center} + \begin{tikzpicture}[scale = 0.4, + transform shape, + msglabel/.style = { text = Black, yshift = .3cm, + sloped, midway }, + okmsg/.style = { ->, color = MidnightBlue, thick, + >=stealth }, + rstmsg/.style = { ->, color = BrickRed, thick, + >=stealth } + ] + \node[draw = MidnightBlue, + fill = CornflowerBlue, + minimum width = .3cm, + minimum height = 10cm + ] (h1) at (-4, 0) {}; + \node[draw = MidnightBlue, + fill = CornflowerBlue, + minimum width = .3cm, + minimum height = 10cm + ] (h2) at (4, 0) {}; + \node[above = 0cm of h1] {Wallet}; + \node[above = 0cm of h2] {Exchange}; + + \path[->, color = MidnightBlue, very thick, >=stealth] + (-5, 4.5) edge + node[rotate=90, text = Black, yshift = .3cm] {Time} + (-5, -4.5); + \path[okmsg, dashed] + ($(h1.east)+(0, 4.0)+(0, -1.0)$) edge + node[msglabel] {SEPA(RK,A)} + ($(h2.west)+(0, 3.5)+(0, -1.0)$); + \path[okmsg] + ($(h1.east)+(0, -1.0)$) edge + node[msglabel] {POST {\tt /withdraw/sign} $S_{RK}(DK, B_b(C))$} + ($(h2.west)+(0, -1.5)$); + \path[okmsg] + ($(h2.west)+(0, -2.0)$) edge + node[msglabel] {200 OK: $S_{DK}(B_b(C))$)} + ($(h1.east)+(0, -2.5)$); + \path[rstmsg] + ($(h2.west)+(0, -3.5)$) edge + node[msglabel] {402 PAYMENT REQUIRED: $S_{RK}(DK, B_b(C))$)} + ($(h1.east)+(0, -4)$); + \node at (5.3, 0) {}; + \end{tikzpicture} + \end{center} + Result: $\langle c, S_{DK}(C) \rangle$. + \end{minipage} + \hspace{0.5cm} + \begin{minipage}[b]{0.45\linewidth} + \tiny + \begin{description} + \item[$A$] Some amount, $A \ge A_{DK}$ + \item[$RK$] Reserve key + \item[$DK$] Denomination key + \item[$b$] Blinding factor + \item[$B_b()$] RSA-FDH blinding % DK supressed + \item[$C$] Coin public key $C := cG$ + \item[$S_{RK}()$] EdDSA signature + \item[$S_{DK}()$] RSA-FDH signature + \end{description} + \end{minipage} + \end{figure} +\end{frame} + + +\begin{frame}[t]{Taler {\tt /deposit}} +Merchant and exchange see only the public coin $\langle C, S_{DK}(C) \rangle$. +\bigskip + \begin{figure}[th] + \begin{minipage}[b]{0.45\linewidth} + \begin{center} + \begin{tikzpicture}[scale = 0.4, + transform shape, + msglabel/.style = { text = Black, yshift = .3cm, + sloped, midway }, + okmsg/.style = { ->, color = MidnightBlue, thick, + >=stealth }, + rstmsg/.style = { ->, color = BrickRed, thick, + >=stealth } + ] + \node[draw = MidnightBlue, + fill = CornflowerBlue, + minimum width = .3cm, + minimum height = 10cm + ] (h1) at (-4, 0) {}; + \node[draw = MidnightBlue, + fill = CornflowerBlue, + minimum width = .3cm, + minimum height = 10cm + ] (h2) at (4, 0) {}; + \node[above = 0cm of h1] {Merchant}; + \node[above = 0cm of h2] {Exchange}; + + \path[->, color = MidnightBlue, very thick, >=stealth] + (-5, 4.5) edge + node[rotate=90, text = Black, yshift = .3cm] {Time} + (-5, -4.5); + \path[->, color = MidnightBlue, thick, >=stealth] + ($(h1.east)+(0,3)$) edge + node[text = Black, yshift = .3cm, sloped] {POST {\tt /deposit} $S_{DK}(C), S_{c}(D)$} + ($(h2.west)+(0,2)$); + \path[->, color = MidnightBlue, thick, >=stealth] + ($(h2.west)+(0,0.5)$) edge + node[text = Black, yshift = .3cm, sloped] {200 OK: $S_{SK}(S_{c}(D))$} + ($(h1.east)+(0,-0.5)$); + \path[rstmsg] + ($(h2.west)+(0, -2.5)$) edge + node[msglabel] {409 CONFLICT: $S_{c}(D')$} + ($(h1.east)+(0, -3.5)$); + \node at (5.3, 0) {}; + \end{tikzpicture} + \end{center} + \end{minipage} + \hspace{0.5cm} + \begin{minipage}[b]{0.45\linewidth} + \tiny + \begin{description} + \item[$DK$] Denomination key + \item[$S_{DK}()$] RSA-FDH signature using $DK$ + \item[$c$] Private coin key, $C := cG$. + \item[$S_{C}()$] EdDSA signature using $c$ + \item[$D$] Deposit details + \item[$SK$] Exchange's signing key + \item[$S_{SK}()$] EdDSA signature using $SK$ + \item[$D'$] Conficting deposit details $D' \not= D$ + \end{description} + \end{minipage} + \end{figure} +\end{frame} + + +\begin{frame}{Taler {\tt /refresh/melt}} + \begin{figure}[th] + \begin{minipage}[b]{0.45\linewidth} + \begin{center} + \begin{tikzpicture}[scale = 0.4, + transform shape, + msglabel/.style = { text = Black, yshift = .3cm, + sloped, midway }, + okmsg/.style = { ->, color = MidnightBlue, thick, + >=stealth }, + rstmsg/.style = { ->, color = BrickRed, thick, + >=stealth } + ] + \node[draw = MidnightBlue, + fill = CornflowerBlue, + minimum width = .3cm, + minimum height = 10cm + ] (h1) at (-4, 0) {}; + \node[draw = MidnightBlue, + fill = CornflowerBlue, + minimum width = .3cm, + minimum height = 10cm + ] (h2) at (4, 0) {}; + \node[above = 0cm of h1] {Customer}; + \node[above = 0cm of h2] {Exchange}; + + \path[->, color = MidnightBlue, very thick, >=stealth] + (-5, 4.5) edge + node[rotate=90, text = Black, yshift = .3cm] {Time} + (-5, -4.5); + \path[->, color = MidnightBlue, thick, >=stealth] + ($(h1.east)+(0,3)$) edge + node[text = Black, yshift = .3cm, sloped] {POST {\tt /refresh/melt} $S_{DK}(C), S_c({\cal DK}, {\cal T},{\cal B})$} + ($(h2.west)+(0,2)$); + \path[->, color = MidnightBlue, thick, >=stealth] + ($(h2.west)+(0,0.5)$) edge + node[text = Black, yshift = .3cm, sloped] {200 OK: $S_{SK}(H({\cal T}, {\cal B}),\gamma)$} + ($(h1.east)+(0,-0.5)$); + \path[rstmsg] + ($(h2.west)+(0, -2.5)$) edge + node[msglabel] {409 CONFLICT: $S_{C}(X), \ldots$} + ($(h1.east)+(0, -3.5)$); + \node at (5.3, 0) {}; + \end{tikzpicture} + \end{center} + \end{minipage} + \hspace{0.5cm} + \begin{minipage}[b]{0.45\linewidth} + \tiny + \begin{description} + \item[$\kappa$] System-wide security parameter, usually 3. + \\ \smallskip + \item[$\cal DK$] $:= [DK^{(i)}]_i$ \\ List of denomination keys \\ + $D + \sum_i A_{DK^{(i)}} < A_{DK}$ + \item[$t_j$] Random scalar for $j<\kappa$ + \item[${\cal T}$] $:= [T_j]_\kappa$ where $T_j = t_j G$ + \item[$k_j$] $:= c T_j = t_j C$ is an ECDHE + \item[$b_j^{(i)}$] $:= KDF_b(k_j,i)$ % blinding factor + \item[$c_j^{(i)}$] $:= KDF_c(k_j,i)$ % coin secret keys + \item[$C_j^{(i)}$] $: = c_j^{(i)} G$ % new coin publics % keys + \item[${\cal B}$] $:= [H( \beta_j )]_\kappa$ where \\ + $\beta_j := \left[ B_{b_j^{(i)}}(C_j^{(i)}) \right]_i$ + \\ \smallskip + \item[$\gamma$] Random value in $[0,\kappa)$ +% \\ \smallskip +% \item[$X$] Deposit or refresh + \end{description} + \end{minipage} + \end{figure} +\end{frame} + + +\begin{frame}{Taler {\tt /refresh/reveal}} + \begin{figure}[th] + \begin{minipage}[b]{0.45\linewidth} + \begin{center} + \begin{tikzpicture}[scale = 0.4, + transform shape, + msglabel/.style = { text = Black, yshift = .3cm, + sloped, midway }, + okmsg/.style = { ->, color = MidnightBlue, thick, + >=stealth }, + rstmsg/.style = { ->, color = BrickRed, thick, + >=stealth } + ] + \node[draw = MidnightBlue, + fill = CornflowerBlue, + minimum width = .3cm, + minimum height = 10cm + ] (h1) at (-4, 0) {}; + \node[draw = MidnightBlue, + fill = CornflowerBlue, + minimum width = .3cm, + minimum height = 10cm + ] (h2) at (4, 0) {}; + \node[above = 0cm of h1] {Customer}; + \node[above = 0cm of h2] {Exchange}; + + \path[->, color = MidnightBlue, very thick, >=stealth] + (-5, 4.5) edge + node[rotate=90, text = Black, yshift = .3cm] {Time} + (-5, -4.5); + \path[->, color = MidnightBlue, thick, >=stealth] + ($(h1.east)+(0,3)$) edge + node[text = Black, yshift = .3cm, sloped] {POST {\tt /refresh/reveal} $H({\cal T}, {\cal B}), {\tilde{\cal T}}, \beta_\gamma$} + ($(h2.west)+(0,2)$); + \path[->, color = MidnightBlue, thick, >=stealth] + ($(h2.west)+(0,0.5)$) edge + node[text = Black, yshift = .3cm, sloped] {200 OK: $\cal S$} + ($(h1.east)+(0,-0.5)$); + \path[rstmsg] + ($(h2.west)+(0, -2.5)$) edge + node[msglabel] {400 BAD REQUEST: $Z$} + ($(h1.east)+(0, -3.5)$); + \node at (5.3, 0) {}; + \end{tikzpicture} + \end{center} + \end{minipage} + \hspace{0.5cm} + \begin{minipage}[b]{0.45\linewidth} + \tiny + \begin{description} + \item[$\cal DK$] $:= [DK^{(i)}]_i$ + \item[$t_j$] .. \\ \smallskip + + \item[$\tilde{\cal T}$] $:= [t_j | j \in \kappa, j \neq \gamma]$ \\ \smallskip + + \item[$k_\gamma$] $:= c T_\gamma = t_\gamma C$ + \item[$b_\gamma^{(i)}$] $:= KDF_b(k_\gamma,i)$ + \item[$c_\gamma^{(i)}$] $:= KDF_c(k_\gamma,i)$ + \item[$C_\gamma^{(i)}$] $: = c_\gamma^{(i)} G$ + + \item[$B_\gamma^{(i)}$] $:= B_{b_\gamma^{(i)}}(C_\gamma^{(i)})$ + \item[$\beta_\gamma$] $:= \big[ B_\gamma^{(i)} \big]_i$ + \item[$\cal S$] $:= \left[ S_{DK^{(i)}}( B_\gamma^{(i)} ) \right]_i$ \\ \smallskip + + \item[$Z$] Cut-and-choose missmatch information + \end{description} + \end{minipage} + \end{figure} +\end{frame} + + +\begin{frame}{Taler {\tt /refresh/link}} + \begin{figure}[th] + \begin{minipage}[b]{0.45\linewidth} + \begin{center} + \begin{tikzpicture}[scale = 0.4, + transform shape, + msglabel/.style = { text = Black, yshift = .3cm, + sloped, midway }, + okmsg/.style = { ->, color = MidnightBlue, thick, + >=stealth }, + rstmsg/.style = { ->, color = BrickRed, thick, + >=stealth } + ] + \node[draw = MidnightBlue, + fill = CornflowerBlue, + minimum width = .3cm, + minimum height = 10cm + ] (h1) at (-4, 0) {}; + \node[draw = MidnightBlue, + fill = CornflowerBlue, + minimum width = .3cm, + minimum height = 10cm + ] (h2) at (4, 0) {}; + \node[above = 0cm of h1] {Customer}; + \node[above = 0cm of h2] {Exchagne}; + + \path[->, color = MidnightBlue, very thick, >=stealth] + (-5, 4.5) edge + node[rotate=90, text = Black, yshift = .3cm] {Time} + (-5, -4.5); + \path[->, color = MidnightBlue, thick, >=stealth] + ($(h1.east)+(0,3)$) edge + node[text = Black, yshift = .3cm, sloped] {POST {\tt /refresh/link} $C$} + ($(h2.west)+(0,2)$); + \path[->, color = MidnightBlue, thick, >=stealth] + ($(h2.west)+(0,0.5)$) edge + node[text = Black, yshift = .3cm, sloped] {200 OK: $T_\gamma$} + ($(h1.east)+(0,-0.5)$); + \path[rstmsg] + ($(h2.west)+(0, -2.5)$) edge + node[msglabel] {404 NOT FOUND} + ($(h1.east)+(0, -3.5)$); + \node at (5.3, 0) {}; + \end{tikzpicture} + \end{center} + \end{minipage} + \hspace{0.5cm} + \begin{minipage}[b]{0.45\linewidth} + \tiny + \begin{description} + \item[$C$] Old coind public key \\ \smallskip + \item[$T_\gamma$] Linkage data $\cal L$ at $\gamma$ + \end{description} + \end{minipage} + \end{figure} +\end{frame} + + +\begin{frame}{Operational security} + \begin{center} + \resizebox{\textwidth}{!}{ +\begin{tikzpicture}[ + font=\sffamily, + every matrix/.style={ampersand replacement=\&,column sep=2cm,row sep=2cm}, + source/.style={draw,thick,rounded corners,fill=green!20,inner sep=.3cm}, + process/.style={draw,thick,circle,fill=blue!20}, + sink/.style={source,fill=green!20}, + datastore/.style={draw,very thick,shape=datastore,inner sep=.3cm}, + dots/.style={gray,scale=2}, + to/.style={->,>=stealth',shorten >=1pt,semithick,font=\sffamily\footnotesize}, + every node/.style={align=center}] + + % Position the nodes using a matrix layout + \matrix{ + \node[source] (wallet) {Wallet}; + \& \node[process] (browser) {Browser}; + \& \node[process] (shop) {Web shop}; + \& \node[sink] (backend) {Taler backend}; \\ + }; + + % Draw the arrows between the nodes and label them. + \draw[to] (browser) to[bend right=50] node[midway,above] {(4) signed contract} + node[midway,below] {(signal)} (wallet); + \draw[to] (wallet) to[bend right=50] node[midway,above] {(signal)} + node[midway,below] {(5) signed coins} (browser); + \draw[<->] (browser) -- node[midway,above] {(3,6) custom} + node[midway,below] {(HTTPS)} (shop); + \draw[to] (shop) to[bend right=50] node[midway,above] {(HTTPS)} + node[midway,below] {(1) proposed contract / (7) signed coins} (backend); + \draw[to] (backend) to[bend right=50] node[midway,above] {(2) signed contract / (8) confirmation} + node[midway,below] {(HTTPS)} (shop); +\end{tikzpicture} +} +\end{center} +\end{frame} diff --git a/presentations/bank/replication.pdf b/presentations/bank/replication.pdf Binary files differ. diff --git a/presentations/bank/replication.svg b/presentations/bank/replication.svg @@ -0,0 +1,427 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + sodipodi:docname="replication.svg" + inkscape:version="1.0 (4035a4fb49, 2020-05-01)" + width="297.0mm" + height="210.0mm" + viewBox="0 0 297.0 210.0" + version="1.1" + id="SVGRoot"> + <defs + id="defs1461"> + <marker + inkscape:isstock="true" + style="overflow:visible;" + id="marker2714" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Lend"> + <path + transform="scale(0.8) rotate(180) translate(12.5,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path2712" /> + </marker> + <marker + inkscape:collect="always" + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker2662" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path2660" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8) rotate(180) translate(12.5,0)" /> + </marker> + <marker + inkscape:collect="always" + inkscape:isstock="true" + style="overflow:visible;" + id="marker2616" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Lend"> + <path + transform="scale(0.8) rotate(180) translate(12.5,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path2614" /> + </marker> + <marker + inkscape:collect="always" + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker2576" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path2574" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8) rotate(180) translate(12.5,0)" /> + </marker> + <marker + inkscape:collect="always" + inkscape:isstock="true" + style="overflow:visible;" + id="marker2542" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Lend"> + <path + transform="scale(0.8) rotate(180) translate(12.5,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path2540" /> + </marker> + <marker + inkscape:collect="always" + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker2514" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path2512" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8) rotate(180) translate(12.5,0)" /> + </marker> + <marker + inkscape:collect="always" + inkscape:isstock="true" + style="overflow:visible;" + id="Arrow1Lend" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Lend"> + <path + transform="scale(0.8) rotate(180) translate(12.5,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path2237" /> + </marker> + <rect + id="rect2196" + height="3.9007863" + width="4.5762249" + y="120.19322" + x="264.57466" /> + </defs> + <sodipodi:namedview + inkscape:window-maximized="1" + inkscape:window-y="0" + inkscape:window-x="3840" + inkscape:window-height="2086" + inkscape:window-width="3840" + showgrid="false" + inkscape:document-rotation="0" + inkscape:current-layer="layer1" + inkscape:document-units="mm" + inkscape:cy="422.6026" + inkscape:cx="615.0082" + inkscape:zoom="1.4" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="base" /> + <metadata + id="metadata1464"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:groupmode="layer" + inkscape:label="Layer 1"> + <g + transform="translate(-11.221353,20.667147)" + id="g2110"> + <g + id="g890" + transform="matrix(0.07147522,0,0,0.07147522,41.870798,24.492858)"> + <path + d="m 448,73.143 v 45.714 C 448,159.143 347.667,192 224,192 100.333,192 0,159.143 0,118.857 V 73.143 C 0,32.857 100.333,0 224,0 347.667,0 448,32.857 448,73.143 Z M 448,176 V 278.857 C 448,319.143 347.667,352 224,352 100.333,352 0,319.143 0,278.857 V 176 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z m 0,160 V 438.857 C 448,479.143 347.667,512 224,512 100.333,512 0,479.143 0,438.857 V 336 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z" + id="path879" /> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="36.053169" + y="69.701385" + id="text2097"><tspan + sodipodi:role="line" + id="tspan2095" + x="36.053169" + y="69.701385" + style="stroke-width:0.264583">Exchange production DB</tspan><tspan + sodipodi:role="line" + x="36.053169" + y="74.111099" + style="stroke-width:0.264583" + id="tspan2099" /></text> + </g> + <g + transform="translate(11.47121,2.2482939)" + id="g2116"> + <g + transform="matrix(0.07147522,0,0,0.07147522,19.178235,121.17556)" + id="g890-2"> + <path + id="path879-1" + d="m 448,73.143 v 45.714 C 448,159.143 347.667,192 224,192 100.333,192 0,159.143 0,118.857 V 73.143 C 0,32.857 100.333,0 224,0 347.667,0 448,32.857 448,73.143 Z M 448,176 V 278.857 C 448,319.143 347.667,352 224,352 100.333,352 0,319.143 0,278.857 V 176 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z m 0,160 V 438.857 C 448,479.143 347.667,512 224,512 100.333,512 0,479.143 0,438.857 V 336 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z" /> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="15.052144" + y="164.58421" + id="text2103"><tspan + sodipodi:role="line" + id="tspan2101" + x="15.052144" + y="164.58421" + style="stroke-width:0.264583">Exchange hotspare DB</tspan></text> + </g> + <g + transform="translate(-18.449501,17.09634)" + id="g2134"> + <g + transform="matrix(0.07147522,0,0,0.07147522,180.02977,23.090737)" + id="g890-0"> + <path + id="path879-5" + d="m 448,73.143 v 45.714 C 448,159.143 347.667,192 224,192 100.333,192 0,159.143 0,118.857 V 73.143 C 0,32.857 100.333,0 224,0 347.667,0 448,32.857 448,73.143 Z M 448,176 V 278.857 C 448,319.143 347.667,352 224,352 100.333,352 0,319.143 0,278.857 V 176 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z m 0,160 V 438.857 C 448,479.143 347.667,512 224,512 100.333,512 0,479.143 0,438.857 V 336 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z" /> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="178.26529" + y="66.899231" + id="text2120"><tspan + sodipodi:role="line" + id="tspan2118" + x="178.26529" + y="66.899231" + style="stroke-width:0.264583">Exchange ingres DB</tspan></text> + </g> + <g + transform="translate(-16.648393,27.04463)" + id="g2140"> + <g + transform="matrix(0.07147522,0,0,0.07147522,177.66977,95.095201)" + id="g890-1"> + <path + id="path879-10" + d="m 448,73.143 v 45.714 C 448,159.143 347.667,192 224,192 100.333,192 0,159.143 0,118.857 V 73.143 C 0,32.857 100.333,0 224,0 347.667,0 448,32.857 448,73.143 Z M 448,176 V 278.857 C 448,319.143 347.667,352 224,352 100.333,352 0,319.143 0,278.857 V 176 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z m 0,160 V 438.857 C 448,479.143 347.667,512 224,512 100.333,512 0,479.143 0,438.857 V 336 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z" /> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="175.99486" + y="140.82193" + id="text2124"><tspan + sodipodi:role="line" + id="tspan2122" + x="175.99486" + y="140.82193" + style="stroke-width:0.264583">Exchange &quot;safe&quot; DB</tspan></text> + </g> + <g + transform="translate(-18.645502,-113.69651)" + id="g2146"> + <g + transform="matrix(0.07147522,0,0,0.07147522,250.62455,153.8705)" + id="g890-8"> + <path + id="path879-50" + d="m 448,73.143 v 45.714 C 448,159.143 347.667,192 224,192 100.333,192 0,159.143 0,118.857 V 73.143 C 0,32.857 100.333,0 224,0 347.667,0 448,32.857 448,73.143 Z M 448,176 V 278.857 C 448,319.143 347.667,352 224,352 100.333,352 0,319.143 0,278.857 V 176 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z m 0,160 V 438.857 C 448,479.143 347.667,512 224,512 100.333,512 0,479.143 0,438.857 V 336 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z" /> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="249.85829" + y="197.93983" + id="text2128"><tspan + sodipodi:role="line" + id="tspan2126" + x="249.85829" + y="197.93983" + style="stroke-width:0.264583">Auditor internal DB</tspan></text> + </g> + <text + id="text2150" + y="105.1814" + x="49.245609" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + xml:space="preserve"><tspan + style="stroke-width:0.264583" + y="105.1814" + x="49.245609" + id="tspan2148" + sodipodi:role="line">Postgres replication</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="102.65125" + y="62.550148" + id="text2150-8"><tspan + sodipodi:role="line" + id="tspan2148-4" + x="102.65125" + y="62.550148" + style="stroke-width:0.264583">Postgres replication</tspan></text> + <text + id="text2188" + y="103.76974" + x="176.0363" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + xml:space="preserve"><tspan + style="stroke-width:0.264583" + y="103.76974" + x="176.0363" + id="tspan2186" + sodipodi:role="line">taler-auditor-sync</tspan></text> + <text + id="text2192" + y="24.976534" + x="230.1824" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + xml:space="preserve"><tspan + style="stroke-width:0.264583" + y="24.976534" + x="230.1824" + id="tspan2190" + sodipodi:role="line">taler-auditor-httpd</tspan></text> + <text + style="fill:black;fill-opacity:1;stroke:none;font-family:sans-serif;font-style:normal;font-weight:normal;font-size:3.52777778px;line-height:1.25;letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect2196);" + id="text2194" + xml:space="preserve" /> + <text + id="text2202" + y="144.25079" + x="237.84789" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + xml:space="preserve"><tspan + style="stroke-width:0.264583" + y="144.25079" + x="237.84789" + id="tspan2200" + sodipodi:role="line">taler-auditor</tspan></text> + <rect + y="17.823223" + x="5.5189505" + height="179.76277" + width="85.439964" + id="rect2204" + style="fill:none;fill-opacity:1;stroke:#020000;stroke-width:0.264999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + y="16.654621" + x="145.51649" + height="179.36324" + width="136.18742" + id="rect2206" + style="fill:none;fill-opacity:1;stroke:#020000;stroke-width:0.264999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <text + id="text2210" + y="27.13241" + x="26.070297" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + xml:space="preserve"><tspan + style="stroke-width:0.264583" + y="27.13241" + x="26.070297" + id="tspan2208" + sodipodi:role="line">taler-exchange-httpd</tspan></text> + <circle + r="0.025015881" + cy="30.470467" + cx="44.608482" + style="fill:#000000;stroke:#020000;stroke-width:0.264583" + id="path2212" /> + <path + id="path2214" + d="M 43.574858,30.273831 V 43.21797" + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)" /> + <path + id="path2216" + d="M 46.56148,93.636877 V 120.51253" + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2514)" /> + <path + id="path2218" + d="M 65.551922,66.02918 H 157.89364" + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2714)" /> + <path + id="path2220" + d="M 175.61312,86.105081 V 118.69094" + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2662)" /> + <path + id="path2222" + d="M 234.62494,143.2384 H 197.9307" + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2542)" /> + <path + id="path2224" + d="M 248.98222,140.645 V 85.978695" + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2576)" /> + <path + id="path2226" + d="m 248.23207,28.995391 v 8.785561" + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2616)" /> + <ellipse + ry="5.0640941" + rx="26.22459" + cy="25.763792" + cx="45.386578" + id="path2228" + style="fill:none;fill-opacity:1;stroke:#020000;stroke-width:0.264999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <ellipse + ry="4.3381324" + rx="22.319004" + cy="24.075922" + cx="247.19611" + id="path2230" + style="fill:none;fill-opacity:1;stroke:#020000;stroke-width:0.264999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <ellipse + ry="4.9346147" + rx="13.054943" + cy="143.48093" + cx="248.29224" + id="path2232" + style="fill:none;fill-opacity:1;stroke:#020000;stroke-width:0.265;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + y="31.59581" + x="149.84781" + height="59.034092" + width="51.529339" + id="rect2770" + style="fill:none;fill-opacity:1;stroke:#020000;stroke-width:0.264999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> +</svg> diff --git a/presentations/bank/replication2.pdf b/presentations/bank/replication2.pdf Binary files differ. diff --git a/presentations/bank/replication2.svg b/presentations/bank/replication2.svg @@ -0,0 +1,384 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + sodipodi:docname="replication2.svg" + inkscape:version="1.0 (4035a4fb49, 2020-05-01)" + width="297.0mm" + height="210.0mm" + viewBox="0 0 297.0 210.0" + version="1.1" + id="SVGRoot"> + <defs + id="defs1461"> + <marker + inkscape:isstock="true" + style="overflow:visible;" + id="marker2714" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Lend"> + <path + transform="scale(0.8) rotate(180) translate(12.5,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path2712" /> + </marker> + <marker + inkscape:collect="always" + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker2662" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path2660" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8) rotate(180) translate(12.5,0)" /> + </marker> + <marker + inkscape:collect="always" + inkscape:isstock="true" + style="overflow:visible;" + id="marker2616" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Lend"> + <path + transform="scale(0.8) rotate(180) translate(12.5,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path2614" /> + </marker> + <marker + inkscape:collect="always" + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker2576" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path2574" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8) rotate(180) translate(12.5,0)" /> + </marker> + <marker + inkscape:collect="always" + inkscape:isstock="true" + style="overflow:visible;" + id="marker2542" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Lend"> + <path + transform="scale(0.8) rotate(180) translate(12.5,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path2540" /> + </marker> + <marker + inkscape:collect="always" + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker2514" + style="overflow:visible;" + inkscape:isstock="true"> + <path + id="path2512" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="scale(0.8) rotate(180) translate(12.5,0)" /> + </marker> + <marker + inkscape:collect="always" + inkscape:isstock="true" + style="overflow:visible;" + id="Arrow1Lend" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Lend"> + <path + transform="scale(0.8) rotate(180) translate(12.5,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path2237" /> + </marker> + <rect + id="rect2196" + height="3.9007863" + width="4.5762249" + y="120.19322" + x="264.57466" /> + </defs> + <sodipodi:namedview + inkscape:window-maximized="1" + inkscape:window-y="0" + inkscape:window-x="3840" + inkscape:window-height="2086" + inkscape:window-width="3840" + showgrid="false" + inkscape:document-rotation="0" + inkscape:current-layer="layer1" + inkscape:document-units="mm" + inkscape:cy="435.85652" + inkscape:cx="572.95084" + inkscape:zoom="2.8" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="base" /> + <metadata + id="metadata1464"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:groupmode="layer" + inkscape:label="Layer 1"> + <g + transform="translate(-11.221353,20.667147)" + id="g2110"> + <g + id="g890" + transform="matrix(0.07147522,0,0,0.07147522,41.870798,24.492858)"> + <path + d="m 448,73.143 v 45.714 C 448,159.143 347.667,192 224,192 100.333,192 0,159.143 0,118.857 V 73.143 C 0,32.857 100.333,0 224,0 347.667,0 448,32.857 448,73.143 Z M 448,176 V 278.857 C 448,319.143 347.667,352 224,352 100.333,352 0,319.143 0,278.857 V 176 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z m 0,160 V 438.857 C 448,479.143 347.667,512 224,512 100.333,512 0,479.143 0,438.857 V 336 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z" + id="path879" /> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="36.053169" + y="69.701385" + id="text2097"><tspan + sodipodi:role="line" + id="tspan2095" + x="36.053169" + y="69.701385" + style="stroke-width:0.264583">Exchange production DB</tspan><tspan + sodipodi:role="line" + x="36.053169" + y="74.111099" + style="stroke-width:0.264583" + id="tspan2099" /></text> + </g> + <g + transform="translate(11.47121,2.2482939)" + id="g2116"> + <g + transform="matrix(0.07147522,0,0,0.07147522,19.178235,121.17556)" + id="g890-2"> + <path + id="path879-1" + d="m 448,73.143 v 45.714 C 448,159.143 347.667,192 224,192 100.333,192 0,159.143 0,118.857 V 73.143 C 0,32.857 100.333,0 224,0 347.667,0 448,32.857 448,73.143 Z M 448,176 V 278.857 C 448,319.143 347.667,352 224,352 100.333,352 0,319.143 0,278.857 V 176 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z m 0,160 V 438.857 C 448,479.143 347.667,512 224,512 100.333,512 0,479.143 0,438.857 V 336 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z" /> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="15.052144" + y="164.58421" + id="text2103"><tspan + sodipodi:role="line" + id="tspan2101" + x="15.052144" + y="164.58421" + style="stroke-width:0.264583">Exchange hotspare DB</tspan></text> + </g> + <g + transform="translate(-16.648393,27.04463)" + id="g2140"> + <g + transform="matrix(0.07147522,0,0,0.07147522,177.66977,95.095201)" + id="g890-1"> + <path + id="path879-10" + d="m 448,73.143 v 45.714 C 448,159.143 347.667,192 224,192 100.333,192 0,159.143 0,118.857 V 73.143 C 0,32.857 100.333,0 224,0 347.667,0 448,32.857 448,73.143 Z M 448,176 V 278.857 C 448,319.143 347.667,352 224,352 100.333,352 0,319.143 0,278.857 V 176 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z m 0,160 V 438.857 C 448,479.143 347.667,512 224,512 100.333,512 0,479.143 0,438.857 V 336 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z" /> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="175.99486" + y="140.82193" + id="text2124"><tspan + sodipodi:role="line" + id="tspan2122" + x="175.99486" + y="140.82193" + style="stroke-width:0.264583">Exchange &quot;safe&quot; DB</tspan></text> + </g> + <g + transform="translate(-18.645502,-113.69651)" + id="g2146"> + <g + transform="matrix(0.07147522,0,0,0.07147522,250.62455,153.8705)" + id="g890-8"> + <path + id="path879-50" + d="m 448,73.143 v 45.714 C 448,159.143 347.667,192 224,192 100.333,192 0,159.143 0,118.857 V 73.143 C 0,32.857 100.333,0 224,0 347.667,0 448,32.857 448,73.143 Z M 448,176 V 278.857 C 448,319.143 347.667,352 224,352 100.333,352 0,319.143 0,278.857 V 176 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z m 0,160 V 438.857 C 448,479.143 347.667,512 224,512 100.333,512 0,479.143 0,438.857 V 336 c 48.125,33.143 136.208,48.572 224,48.572 87.792,0 175.874,-15.429 224,-48.572 z" /> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="249.85829" + y="197.93983" + id="text2128"><tspan + sodipodi:role="line" + id="tspan2126" + x="249.85829" + y="197.93983" + style="stroke-width:0.264583">Auditor internal DB</tspan></text> + </g> + <text + id="text2150" + y="105.1814" + x="49.245609" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + xml:space="preserve"><tspan + style="stroke-width:0.264583" + y="105.1814" + x="49.245609" + id="tspan2148" + sodipodi:role="line">Postgres replication</tspan></text> + <text + id="text2188" + y="83.958023" + x="109.38902" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + xml:space="preserve"><tspan + style="stroke-width:0.264583" + y="83.958023" + x="109.38902" + id="tspan2186" + sodipodi:role="line">taler-auditor-sync</tspan></text> + <text + id="text2192" + y="24.976534" + x="230.1824" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + xml:space="preserve"><tspan + style="stroke-width:0.264583" + y="24.976534" + x="230.1824" + id="tspan2190" + sodipodi:role="line">taler-auditor-httpd</tspan></text> + <text + style="fill:black;fill-opacity:1;stroke:none;font-family:sans-serif;font-style:normal;font-weight:normal;font-size:3.52777778px;line-height:1.25;letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect2196);" + id="text2194" + xml:space="preserve" /> + <text + id="text2202" + y="144.25079" + x="237.84789" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + xml:space="preserve"><tspan + style="stroke-width:0.264583" + y="144.25079" + x="237.84789" + id="tspan2200" + sodipodi:role="line">taler-auditor</tspan></text> + <rect + y="17.823223" + x="5.5189505" + height="179.76277" + width="85.439964" + id="rect2204" + style="fill:none;fill-opacity:1;stroke:#020000;stroke-width:0.264999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <rect + y="16.654621" + x="145.51649" + height="179.36324" + width="136.18742" + id="rect2206" + style="fill:none;fill-opacity:1;stroke:#020000;stroke-width:0.264999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <text + id="text2210" + y="27.13241" + x="26.070297" + style="font-style:normal;font-weight:normal;font-size:3.52777px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + xml:space="preserve"><tspan + style="stroke-width:0.264583" + y="27.13241" + x="26.070297" + id="tspan2208" + sodipodi:role="line">taler-exchange-httpd</tspan></text> + <circle + r="0.025015881" + cy="30.470467" + cx="44.608482" + style="fill:#000000;stroke:#020000;stroke-width:0.264583" + id="path2212" /> + <path + id="path2214" + d="M 43.574858,30.273831 V 43.21797" + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)" /> + <path + id="path2216" + d="M 46.56148,93.636877 V 120.51253" + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2514)" /> + <path + sodipodi:nodetypes="cc" + id="path2220" + d="M 65.551922,66.02918 175.61312,118.69094" + style="fill:none;stroke:#000000;stroke-width:0.273109px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2662)" /> + <path + id="path2222" + d="M 234.62494,143.2384 H 197.9307" + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2542)" /> + <path + id="path2224" + d="M 248.98222,140.645 V 85.978695" + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2576)" /> + <path + id="path2226" + d="m 248.23207,28.995391 v 8.785561" + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2616)" /> + <ellipse + ry="5.0640941" + rx="26.22459" + cy="25.763792" + cx="45.386578" + id="path2228" + style="fill:none;fill-opacity:1;stroke:#020000;stroke-width:0.264999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <ellipse + ry="4.3381324" + rx="22.319004" + cy="24.075922" + cx="247.19611" + id="path2230" + style="fill:none;fill-opacity:1;stroke:#020000;stroke-width:0.264999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + <ellipse + ry="4.9346147" + rx="13.054943" + cy="143.48093" + cx="248.29224" + id="path2232" + style="fill:none;fill-opacity:1;stroke:#020000;stroke-width:0.265;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + </g> +</svg>