merchant.tex (7434B)
1 \documentclass[aspectratio=169,t]{beamer} 2 \input taler-macros 3 4 \newcommand{\TITLE}{NEXT \\ GENERATION \\ INTERNET} 5 \newcommand{\SUB}{GNU Taler for Developers} 6 \newcommand{\AUTHOR}{Christian Grothoff} 7 \newcommand{\SPEAKER}{Christian Grothoff} 8 \newcommand{\INST}{Bern University of Applied Sciences} 9 \newcommand{\DATE}{COSIN'24} 10 11 % Do not edit this part 12 \title{\TITLE} 13 \subtitle{\SUB} 14 \date{\DATE} 15 \author[\SPEAKER]{\AUTHOR} 16 \institute{\INST} 17 18 \begin{document} 19 20 \begin{frame}[plain] 21 \maketitle 22 \end{frame} 23 24 25 \begin{frame}{What is Taler?} 26 \framesubtitle{\url{https://taler.net/en/features.html}} 27 \noindent 28 Taler is 29 \vfill 30 \begin{itemize} 31 \item a Free/Libre software \emph{payment system} infrastructure project 32 \item ... with a surrounding software ecosystem 33 \item ... and a company (Taler Systems S.A.) and community that wants to deploy it 34 as widely as possible. 35 \end{itemize} 36 \vfill 37 \noindent 38 However, Taler is 39 \begin{itemize} 40 \item \emph{not} a currency 41 \item \emph{not} a long-term store of value 42 \item \emph{not} a network or instance of a system 43 \item \emph{not} decentralized 44 \item \emph{not} based on proof-of-work or proof-of-stake 45 \item \emph{not} a speculative asset / ``get-rich-quick scheme'' 46 \end{itemize} 47 \vfill 48 \end{frame} 49 50 51 \begin{frame}{Taler overview} 52 \begin{center} 53 \begin{tikzpicture} 54 \tikzstyle{def} = [node distance= 4em and 7em, inner sep=1em, outer sep=.3em]; 55 \node (origin) at (0,0) {}; 56 \node (exchange) [def,above=of origin,draw]{Exchange}; 57 \node (customer) [def, draw, below left=of origin] {Customer}; 58 \node (merchant) [def, draw, below right=of origin] {Merchant}; 59 \node (auditor) [def, draw, above right=of origin]{Auditor}; 60 \tikzstyle{C} = [color=black, line width=1pt] 61 \draw [<-, C] (customer) -- (exchange) node [midway, above, sloped] (TextNode) {withdraw coins}; 62 \draw [<-, C] (exchange) -- (merchant) node [midway, above, sloped] (TextNode) {deposit coins}; 63 \draw [<-, C] (merchant) -- (customer) node [midway, above, sloped] (TextNode) {spend coins}; 64 \draw [<-, C] (exchange) -- (auditor) node [midway, above, sloped] (TextNode) {verify}; 65 \end{tikzpicture} 66 \end{center} 67 \end{frame} 68 69 70 \begin{frame}{Architecture of Taler} 71 \begin{center} 72 \includegraphics[width=0.8\textwidth]{operations.png} 73 \end{center} 74 \end{frame} 75 76 77 \begin{frame}{Merchant architecture} 78 \begin{center} 79 \begin{tikzpicture} 80 \tikzstyle{def} = [node distance= 3.5em and 2em, inner sep=1em, outer sep=.3em]; 81 \node (origin) at (0,0) {}; 82 \node (backend) [def,above=of origin,draw]{{\tiny taler-merchant-httpd}}; 83 \node (frontend) [def,above left=of backend,draw]{{\tiny E-commerce Frontend}}; 84 \node (backoffice) [def,above right=of backend,draw]{Backoffice}; 85 \node (postgres) [def, draw, below=of backend] {Postgres}; 86 87 \tikzstyle{C} = [color=black, line width=1pt] 88 \draw [->, C] (frontend) -- (backend) node [midway, above, sloped] (TextNode) {REST API}; 89 \draw [->, C] (backoffice) -- (backend) node [midway, above, sloped] (TextNode) {REST API}; 90 \draw [<->, C] (backend) -- (postgres) node [midway, right] (TextNode) {SQL}; 91 \end{tikzpicture} 92 \end{center} 93 \end{frame} 94 95 96 \begin{frame}[fragile]{GNU Taler Merchant Backend}{Installation} 97 Add a file {\tt /etc/apt/sources.list.d/taler.list}: 98 \begin{verbatim} 99 deb [signed-by=/etc/apt/keyrings/taler-systems.gpg] \ 100 https://deb.taler.net/apt/debian bookworm main 101 deb [signed-by=/etc/apt/keyrings/taler-systems.gpg] \ 102 https://deb.taler.net/apt/ubuntu/ noble taler-noble 103 \end{verbatim} 104 And import the key and install the package: 105 \begin{verbatim} 106 # wget -O /etc/apt/keyrings/taler-systems.gpg \ 107 https://taler.net/taler-systems.gpg 108 # apt update; apt install taler-merchant 109 \end{verbatim} 110 \end{frame} 111 112 113 \begin{frame}[fragile]{GNU Taler Merchant Backend}{Configuration} 114 Setup database and start the service: 115 \begin{verbatim} 116 # taler-merchant-dbconfig 117 # systemctl enable --now taler-merchant.target 118 \end{verbatim} 119 \begin{itemize} 120 \item Listens by default on 9966 121 \item Change ``[merchant] SERVE=unix'' to listen on 122 UNIX domain socket 123 \item Reverse proxy configuration templates are in 124 {\tt /etc/\{nginx,apache\}/sites-available/}. 125 \end{itemize} 126 \end{frame} 127 128 129 \begin{frame}[fragile]{GNU Taler Merchant Backend}{Authentication} 130 Initially, the service will have no password! 131 \begin{itemize} 132 \item Visit {\tt http://localhost:9966/} with a browser. 133 \item Setup default (admin) account and credentials! 134 \end{itemize} 135 In the REST API, the bearer token is always sent as: 136 \begin{verbatim} 137 Authorization: Bearer secret-token:$TOKEN 138 \end{verbatim} 139 See also: 140 \begin{center} 141 \url{https://www.rfc-editor.org/rfc/rfc8959.pdf} 142 \end{center} 143 \end{frame} 144 145 146 \begin{frame}[fragile]{GNU Taler Merchant Backend}{Test} 147 \vfill 148 \begin{verbatim} 149 $ wget http://localhost:9966/config 150 \end{verbatim} 151 \vfill 152 \end{frame} 153 154 155 \begin{frame}{GNU Taler Merchant Backend}{REST API} 156 \vfill 157 \begin{center} 158 \url{https://docs.taler.net/core/api-merchant.html} 159 \end{center} 160 \vfill 161 \end{frame} 162 163 164 \begin{frame}{GNU Taler Merchant Backend}{Key concepts} 165 \begin{itemize} 166 \item Instances 167 \item Orders 168 \item Inventory 169 \item Templates 170 \item Bank accounts 171 \item OTP devices 172 \item Webhooks 173 \end{itemize} 174 \end{frame} 175 176 177 \begin{frame}{GNU Taler Merchant Backend}{Ongoing developments} 178 \begin{itemize} 179 \item Token families 180 \begin{itemize} 181 \item Subscription 182 \item Discount 183 \end{itemize} 184 \item Donation receipts 185 \end{itemize} 186 \end{frame} 187 188 189 \begin{frame}{Other components for merchants} 190 \begin{itemize} 191 \item Point of sale app 192 \item {\tt taler-mdb} 193 \item WooCommerce (WordPress) plugin 194 \item Joomla! plugin 195 \item Adobe E-commerce (Magento) plugin 196 \end{itemize} 197 \end{frame} 198 199 200 \begin{frame}{Other components} 201 \begin{itemize} 202 \item Wallet app(s) 203 \item Auditor 204 \item Challenger 205 \item Sync 206 \item GNU Anastasis 207 \item Twister 208 \item libeufin 209 \end{itemize} 210 \end{frame} 211 212 213 \begin{frame}{Tutorials} 214 \begin{itemize} 215 \item Merchant payment processing: \url{https://docs.taler.net/taler-merchant-api-tutorial.html} 216 \item Regional/event currency setup: \url{https://docs.taler.net/libeufin/regional-automated-manual.html} 217 \item Video tutorials: \url{https://tutorials.taler.net/} 218 \item Support forum: \url{https://ich.taler.net/} 219 \end{itemize} 220 \end{frame} 221 222 223 \begin{frame}{Funding} 224 \vfill 225 \begin{center} 226 \url{https://nlnet.nl/propose} 227 \end{center} 228 \vfill 229 Candidates that passed 1st round from April 1st submission proposed: 230 \begin{itemize} 231 \item Some more integrations (frameworks, ERP) 232 \item Merchant implementation (?) 233 \item Improvements to wallet usability 234 \end{itemize} 235 \vfill 236 \end{frame} 237 238 239 240 % This should be last... 241 \begin{frame}{Acknowledgements} 242 243 \begin{minipage}{0.45\textwidth} \ \\ 244 {\tiny Funded by the European Union (Project 101135475).} 245 246 \begin{center} 247 \includegraphics[width=0.5\textwidth]{bandera.jpg} 248 \end{center} 249 \end{minipage} 250 \hfill 251 \begin{minipage}{0.45\textwidth} 252 {\tiny Funded by SERI (HEU-Projekt 101135475-TALER).} 253 254 \begin{center} 255 \includegraphics[width=0.65\textwidth]{sbfi.jpg} 256 \end{center} 257 \end{minipage} 258 259 \vfill 260 261 {\tiny 262 263 Views and opinions expressed are however those of the author(s) only 264 and do not necessarily reflect those of the European Union. Neither the 265 European Union nor the granting authority can be held responsible for 266 them. 267 268 } 269 \end{frame} 270 271 \end{document}