marketing

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

commit 7c23fe5e6313f4d293e7409030c9a0fcdb04889c
parent 70ab709faf8c380758b01208146e9aa835a42eab
Author: Christian Grothoff <grothoff@gnunet.org>
Date:   Sat, 25 Nov 2023 09:26:48 +0900

-update slides

Diffstat:
Mpresentations/comprehensive/main.tex | 349+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------
1 file changed, 314 insertions(+), 35 deletions(-)

diff --git a/presentations/comprehensive/main.tex b/presentations/comprehensive/main.tex @@ -550,32 +550,6 @@ GNU Taler must ... \end{center} \end{frame} -\begin{frame}{The Taler Software Ecosystem} - \framesubtitle{\url{https://taler.net/en/docs.html}} - Taler is based on modular components that work together to provide a - complete payment system: - \vfill - \begin{itemize} - \item {\bf Exchange:} Service provider for digital cash - \begin{itemize} - \item Core exchange software (cryptography, database) - \item Air-gapped key management, real-time {\bf auditing} - \item LibEuFin: Modular integration with banking systems - \end{itemize} - \item {\bf Merchant:} Integration service for existing businesses - \begin{itemize} - \item Core merchant backend software (cryptography, database) - \item Back-office interface for staff - \item Frontend integration (E-commerce, Point-of-sale) - \end{itemize} - \item {\bf Wallet:} Consumer-controlled applications for e-cash - \begin{itemize} - \item Multi-platform wallet software (for browsers \& mobile phones) - \item Wallet backup storage providers - \item {\bf Anastasis}: Recovery of lost wallets based on secret splitting - \end{itemize} - \end{itemize} -\end{frame} \begin{frame} @@ -2385,6 +2359,309 @@ Searching for functions \uncover<2->{with the following signatures} \end{frame} +\section{Software architecture} + +\begin{frame} + \vfill + \begin{center} + {\bf Software architecture} + \end{center} + \vfill +\end{frame} + + +\begin{frame}{The Taler Software Ecosystem} + \framesubtitle{\url{https://taler.net/en/docs.html}} + Taler is based on modular components that work together to provide a + complete payment system: + \vfill + \begin{itemize} + \item {\bf Exchange:} Service provider for digital cash + \begin{itemize} + \item Core exchange software (cryptography, database) + \item Air-gapped key management, real-time {\bf auditing} + \item LibEuFin: Modular integration with banking systems + \end{itemize} + \item {\bf Merchant:} Integration service for existing businesses + \begin{itemize} + \item Core merchant backend software (cryptography, database) + \item Back-office interface for staff + \item Frontend integration (E-commerce, Point-of-sale) + \end{itemize} + \item {\bf Wallet:} Consumer-controlled applications for e-cash + \begin{itemize} + \item Multi-platform wallet software (for browsers \& mobile phones) + \item Wallet backup storage providers + \item {\bf Anastasis}: Recovery of lost wallets based on secret splitting + \end{itemize} + \end{itemize} +\end{frame} + + +\begin{frame}{Taler Exchange} + The {\bf Exchange} is the core logic of the payment system. + + \begin{itemize} + \item One exchange at minimum must be operated per currency + \item Offers a REST API for merchants and customers + \item Uses several helper processes for configuration and to + interact with RTGS and cryptography + \item KYC support via OAuth 2.0, KycAID or Persona APIs + \item Implemented in C on top of GNU libmicrohttpd + \end{itemize} + Scalability: 28'500 transactions/second measured % in BS-thesis + in 2022 using two servers on Grid5000. Likely several times + higher today (but we did not re-measure recently). +\end{frame} + + +\begin{frame}{Taler Merchant} + The {\bf Merchant} is the software run by merchants to accept\\ + GNU Taler payments. + + \begin{minipage}{6cm} + \begin{itemize} + \item REST API for integration with e-commerce + \item SPA provides Web interface for administration + \item Features include: + \begin{itemize} + \item Multi-tenant support + \item Refunds + \item Tipping (Website pays visitor) + \item Webhooks + \item Inventory management (optional) + \end{itemize} + \item Implemented in C on top of GNU libmicrohttpd + \end{itemize} + \end{minipage} + \begin{minipage}{5cm} + \includegraphics[width=5cm]{screenshots/merchant-spa-settings} + \end{minipage} +\end{frame} + + +\begin{frame}{Taler Wallet} + The {\bf Wallet} is the software run by consumers to store + their digital cash and authorize transactions. + + \begin{minipage}{8cm} + \begin{itemize} + \item {\bf wallet-core} is the logic shared by all interfaces + \item Applications exist for Android, F-Droid, + WebExtension (Chrome, Chromium, Firefox, etc.), iOS ({\bf WiP}) + \item Features include: + \begin{itemize} + \item Multi-currency support + \item Wallet-to-wallet payments (NFC or QR code) + \item CRDT-like data model + \end{itemize} + \item {\bf wallet-core} implemented in TypeScript + \end{itemize} + Can be integrated into other Apps if desired. + \end{minipage} + \begin{minipage}{3cm} + \includegraphics[width=3cm]{screenshots/Screenshot_20230225-103520.png} + \end{minipage} +\end{frame} + + +\begin{frame}{Taler Auditor} + The {\bf Auditor} is the software run by an independent auditor + to validate the operation of an Exchange. + + \begin{itemize} + \item REST API for additional report inputs by merchants (optional) + \item Secure database replication logic + \item Implemented in C on top of GNU libmicrohttpd + \end{itemize} +\end{frame} + + +\begin{frame}{Pretix Taler payment plugin} +\begin{center} +\includegraphics[width=0.5\textwidth]{screenshots/pretix.png} +\end{center} + + Pretix is a ticket sales system. + + \begin{itemize} + \item Pretix payment plugin enables payments via GNU Taler + \item Developed by Pretix.eu for \EUR{3,000} on behalf of Taler Systems SA + \end{itemize} +\end{frame} + + +\begin{frame}{WooCommerce Taler payment plugin} +\begin{minipage}{6cm} + \begin{itemize} + \item WooCommerce is an e-commerce plugin for WordPress. + \item WooCommerce payment plugin enables payments via GNU Taler + \item Features include: + \begin{itemize} + \item Trivial configuration + \item Support for refunds + \item Full internationalization + \end{itemize} + \item WooCommerce and its plugins are implemented in PHP + \end{itemize} +\end{minipage} +\begin{minipage}{5cm} + \includegraphics[width=4cm]{screenshots/woocommerce-cart.png} + \includegraphics[width=4cm]{screenshots/woocommerce-settings.png} + \end{minipage} +\end{frame} + + +\begin{frame}{Point-of-Sale App for Android} + +\begin{minipage}{7cm} + \begin{itemize} + \item Allows merchant to generate orders against Taler backend + and display QR code to enable customer to pay in person + \item Patterned after ViewTouch restaurant UI + \item Features include: + \begin{itemize} + \item Internet-based configuration + \item Products sorted by categories + \item Easy undo of every operation + \item Manages multiple concurrent orders + \end{itemize} + \item The Point-of-Sale App is implemented in Kotlin + \end{itemize} +\end{minipage} +\begin{minipage}{4cm} + \includegraphics[width=4cm]{screenshots/Screenshot_20230224-194112.jpg} + \includegraphics[width=4cm]{screenshots/Screenshot_20230224-194119.jpg} + \includegraphics[width=4cm]{screenshots/Screenshot_20230224-195348.jpg} +\end{minipage} +\end{frame} + + +\begin{frame}{Cashier App for Android} +\begin{minipage}{4cm} + \begin{itemize} + \item Enables BFH staff to convert cash to e-cash + \item Staff has special bank accounts with limited funds + \item Students can pay staff in cash to receive e-cash + \item The Cashier App is implemented in Kotlin + \end{itemize} + \end{minipage} + \begin{minipage}{3cm} + \includegraphics[width=3cm]{screenshots/Screenshot_20230225-103315.png} + \end{minipage} + \begin{minipage}{3cm} + \includegraphics[width=3cm]{screenshots/Screenshot_20230225-103325.png} + \end{minipage} +\end{frame} + + +\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 Wire Gateway for the exchange + \item Supports EBICS 2.5 + \item other APIs such as FinTS or PSD2-style XS2A APIs can be added + without requiring changes to the Exchange + \item tested with German bank GLS business account and real Euros + \end{itemize} + \vfill + \begin{itemize} + \item \texttt{libeufin-nexus} is the main service + \item \texttt{libeufin-bank} implements a bank + (suitable for regional currencies) + \item \texttt{libeufin-sandbox} implements a toy EBICS host for protocol + testing + \end{itemize} +\end{frame} + + +\begin{frame}{Depolymerization} + Depolymerization is a bridge between GNU Taler and blockchains, + making Taler a layer 2 system for crypto-currencies (like Lightning). + + \begin{itemize} + \item Currently implemented for Bitcoin and Ethereum + crypto-currencies, with the DLTs as the ``RTGS'' + \item Provides same API to Exchange as LibEuFin +% \item Transaction rate and speed limited by the underlying blockchain + \item Implemented in Rust + \end{itemize} + \begin{center} + \url{https://bitcoin.ice.bfh.ch/} + \end{center} +\end{frame} + + +\begin{frame}{TalDir (WiP)} + TalDir is an extension to the existing + peer-to-peer payment functionality. + + \begin{itemize} + \item Registry to associate wallets with network addresses + \item Extensible to different types of network services: + \begin{itemize} + \item E-mail + \item SMS + \item Twitter + \item ... + \end{itemize} + \item Send payments or invoices to wallets associated with network address + \item Will {\bf not} require sending wallet to use same network service + \end{itemize} +\end{frame} + + +\begin{frame}<1-| handout:0>{Development Infrastructure} + \begin{itemize} + \item Borg: incremental backup + \item Buildbot: CI/CD ({\url https://buildbot.taler.net/}) + \item Davical: Caldav group calendar + \item Docker: virtualization, packaging + \item Git/Gitolite: distributed version control ({\url https://git.taler.net/}) + \item Mailman: public e-mail lists ({\url taler@gnu.org/}) + \item Mantis: bug tracker ({\url https://bugs.taler.net/}) + \item Mattermost: messaging, process management ({\url https://mattermost.taler.net/}) + \item Sphinx: documentation generation (HTML, PDF, info, man) ({\url https://docs.taler.net/}) + \item Weblate: collaborative AI-supported internationalization ({\url https://weblate.taler.net/}) + \end{itemize} +\end{frame} + + +\begin{frame}<1-| handout:0>{Development Tools} + \begin{itemize} + \item Coverity: static analysis (C/C++) ({\url https://scan.coverity.com/}) + \item GNU recutils: constant registration ({\url https://gana.gnunet.org/}) + \item Twister: fault injection + \item Valgrind: dynamic analysis (C/C++) + \item zzuf: fuzzing + \end{itemize} +\end{frame} + + +\begin{frame}<1-| handout:0>{Cryptographic dependencies} + \begin{itemize} + \item libargon2 + \item libgcrypt + \item libsodium + \end{itemize} +\end{frame} + + +\begin{frame}<1-| handout:0>{Additional dependencies} + \begin{itemize} + \item libsqlite3 + \item libpq / Postgres + \item libjansson + \item libcurl + \item libunistring + \item {\bf GNU libmicrohttpd} + \item {\bf GNUnet} + \end{itemize} +\end{frame} + \section{Bank integration and exchange administration} @@ -2616,15 +2893,6 @@ of the Taler Wire Gateway exist: \end{itemize} \end{frame} -\begin{frame}{LibEuFin Components} - \begin{itemize} - \item \texttt{libeufin-nexus} is the main service - \item \texttt{libeufin-bank} implements a bank - (suitable for regional currencies) - \item \texttt{libeufin-sandbox} implements a toy EBICS host for protocol - testing - \end{itemize} -\end{frame} \begin{frame}{LibEuFin Setup Overview} \framesubtitle{\url{https://docs.taler.net/libeufin/}} @@ -3663,6 +3931,17 @@ References: \end{frame} +\begin{frame}{Rights} + \begin{itemize} + \item GNUnet e.V. shared copyrights of their AGPLv3+ licensed code with Taler Systems SA + \item Taler Systems SA holds copyrights to entire GNU Taler code base (AGPLv3+, GPLv3+, + dual-licensing exclusive domain of Taler Systems SA) + \item Taler Systems SA applied for patent on offline payment solution + \item Taler Systems SA holds trademark on ``Taler''. + \item FSF holds trademark on ``GNU'', we are authorized to use ``GNU Taler''. + \item Taler Systems SA owns {\tt taler.net} and {\tt taler-systems.com}. + \end{itemize} +\end{frame} \end{document}