gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-marketing] branch master updated: Improvements to CoSin'24 wallet


From: gnunet
Subject: [taler-marketing] branch master updated: Improvements to CoSin'24 wallet slides
Date: Tue, 18 Jun 2024 18:25:20 +0200

This is an automated email from the git hooks/post-receive script.

ivan-avalos pushed a commit to branch master
in repository marketing.

The following commit(s) were added to refs/heads/master by this push:
     new e542986  Improvements to CoSin'24 wallet slides
e542986 is described below

commit e542986bc0fedb80f6b611a65a768cb0f6cdf1a5
Author: Iván Ávalos <avalos@disroot.org>
AuthorDate: Tue Jun 18 10:25:14 2024 -0600

    Improvements to CoSin'24 wallet slides
---
 workshops/wallet.tex | 145 ++++++++++++++++++++++++++++++++++-----------------
 1 file changed, 97 insertions(+), 48 deletions(-)

diff --git a/workshops/wallet.tex b/workshops/wallet.tex
index cb8cf48..287ae2c 100644
--- a/workshops/wallet.tex
+++ b/workshops/wallet.tex
@@ -3,7 +3,7 @@
 
 \newcommand{\TITLE}{NEXT \\ GENERATION \\ INTERNET}
 \newcommand{\SUB}{GNU Taler for Developers}
-\newcommand{\AUTHOR}{Christian Grothoff}
+\newcommand{\AUTHOR}{Iván Ávalos}
 \newcommand{\SPEAKER}{Christian Grothoff}
 \newcommand{\INST}{Bern University of Applied Sciences}
 \newcommand{\DATE}{COSIN'24}
@@ -29,8 +29,8 @@ Taler is
   \vfill
   \begin{itemize}
     \item a Free/Libre software \emph{payment system} infrastructure project
-    \item ... with a surrounding software ecosystem
-    \item ... and a company (Taler Systems S.A.) and community that wants to 
deploy it
+    \item \dots with a surrounding software ecosystem
+    \item \dots and a company (Taler Systems S.A.) and community that wants to 
deploy it
       as widely as possible.
   \end{itemize}
   \vfill
@@ -95,50 +95,44 @@ However, Taler is
 \end{center}
 \end{frame}
 
-\begin{frame}[fragile]{GNU Taler wallet}{qtart}
-  qtart (\textbf{Q}uickJS \textbf{TA}ler \textbf{R}un\textbf{T}ime) is a 
QuickJS-based runtime that embeds wallet-core into a native
-  library for usage outside of the browser, such as the mobile apps or any
-  future desktop app.
 
-  \begin{itemize}
-  \item Based on the reputable QuickJS JavaScript engine.
-  \item Implements native modules for cryptography.
-  \item Supports native HTTP networking (with multi-threading).
-  \item Provides access to the wallet-core API via a simple callback-based 
interface.
-  \item Keeps us from having to rewrite wallet-core!
-  \item Keeps us from having to deal with Big Node!
-  \end{itemize}
-\end{frame}
+\begin{frame}[fragile]{GNU Taler wallet}{wallet-core}
+  \vfill
 
-\begin{frame}[fragile]{GNU Taler wallet}{Android installation}
-  For Android, there are three main installation methods:
-  \begin{itemize}
-  \item Build from source code (with Android Studio)
-  \item Install from store
-    \begin {itemize}
-    \item From Google Play Store
-    \item From F-Droid (stable)
-    \item From F-Droid (nightly)
-    \end{itemize}
-  \item Manually install APK (\url{https://wallet.taler.net})
-  \end{itemize}
-\end{frame}
+  \textbf{wallet-core} is the component that powers the Taler wallets across
+  different platforms. It is written in TypeScript and it implements of all
+  the core functionality required by the wallets. It takes care of the
+  following:
 
-\begin{frame}[fragile]{GNU Taler wallet}{iOS installation}
-  For iOS, there are three main installation methods:
   \begin{itemize}
-  \item Build from source code (with Xcode)
-  \item Install from the App Store
-  \item Install from TestFlight (beta)
+  \item database management (SQLite3)
+  \item task shepherding
+  \item cryptography
+  \item wallet operations
+  \item communication with the exchange
   \end{itemize}
+
+  Most of its functionality is exposed via \textbf{requests}. Apps using
+  wallet-core can interact with it by calling different request methods,
+  passing parameters, and then e.g.\ rendering in the UI the data contained in
+  the response or showing an error message.
+
+  \vfill
 \end{frame}
 
-\begin{frame}[fragile]{GNU Taler wallet}{WebEx installation}
-  For the web extension, there are three installation methods:
+
+\begin{frame}[fragile]{GNU Taler wallet}{qtart}
+  qtart (\textbf{Q}uickJS \textbf{TA}ler \textbf{R}un\textbf{T}ime) is a
+  QuickJS-based runtime that embeds wallet-core into a native library for
+  usage outside of the browser, such as the mobile apps or any future desktop
+  app.
+
   \begin{itemize}
-  \item Build from source code (with pnpm)
-  \item Install from \url{https://addons.mozilla.org}
-  \item Install from \url{https://wallet.taler.net/}
+  \item Based on the acclaimed QuickJS JavaScript engine.
+  \item Implements native modules for cryptography.
+  \item Supports native HTTP networking (with multi-threading).
+  \item Provides access to the wallet-core API via a simple callback-based 
interface.
+  \item Keeps us from having to rewrite wallet-core for every platform!
   \end{itemize}
 \end{frame}
 
@@ -164,6 +158,35 @@ $ make
   created under 
\texttt{packages/taler-wallet-embedded/dist/taler-wallet-core-qjs.mjs}.
 \end{frame}
 
+
+\begin{frame}[fragile]{GNU Taler wallet}{Building web extension}
+  In order to build the web extension, please follow the steps in the previous
+  slide, and then run the following command:
+
+\begin{verbatim}
+$ make webextension
+\end{verbatim}
+
+  This will generate two files under 
\texttt{packages/taler-wallet-webextension}:
+
+  \begin{itemize}
+  \item \texttt{extension/v2/taler-wallet-webextension-\$VERSION.zip}
+  \item \texttt{extension/v3/taler-wallet-webextension-\$VERSION.zip}
+  \end{itemize}
+
+  Those files are the final packaged extensions. Depending on the manifest
+  version supported by your browser, you should install either \texttt{v2}
+  (e.g. Firefox) and \texttt{v3} (e.g. Chromium/Chrome).
+
+  %% This will generate an extension package under
+  %% \texttt{packages/taler-wallet-webextension/extension/v2} and another one
+  %% under \texttt{packages/taler-wallet-webextension/extension/v3}, both of 
them
+  %% called \texttt{taler-wallet-webextension-\$VERSION.zip}. Depending on the
+  %% manifest supported by your browser, you should install either the package 
in
+  %% \texttt{v2} (e.g. Firefox) or the one in \texttt{v3} (e.g. Chrome).
+\end{frame}
+
+
 \begin{frame}[fragile]{GNU Taler wallet}{Building qtart (Android)}
   \begin{enumerate}
   \item Install Docker and Docker Compose
@@ -184,6 +207,7 @@ $ docker-compose run --rm quickjs
   \texttt{allprojects/repositories}.
 \end{frame}
 
+
 \begin{frame}[fragile]{GNU Taler wallet}{Building Android app}
   \begin{enumerate}
   \item Install Android Studio.
@@ -200,6 +224,7 @@ $ docker-compose run --rm quickjs
   \end{enumerate}
 \end{frame}
 
+
 \begin{frame}[fragile]{GNU Taler wallet}{Building iOS app}
   \begin{enumerate}
   \item Install Xcode (in macOS).
@@ -215,8 +240,6 @@ $ docker-compose run --rm quickjs
   \end{enumerate}
 \end{frame}
 
-\begin{frame}[fragile]{GNU Taler wallet}{Building web extension}
-\end{frame}
 
 \begin{frame}{Wallet-core API}{Introduction}
   \begin{center}
@@ -237,6 +260,7 @@ $ docker-compose run --rm quickjs
 
 \end{frame}
 
+
 \begin{frame}[fragile]{Wallet-core API}{Request structure}
   \begin{center}
     \begin{tabular}{c c c}
@@ -255,13 +279,12 @@ $ docker-compose run --rm quickjs
 {
   "id": 0,
   "operation": "init",
-  "args": {
-    "logLevel": "INFO"
-  }
+  "args": { "logLevel": "INFO" }
 }
 \end{verbatim}
 \end{frame}
 
+
 \begin{frame}[fragile]{Wallet-core API}{Response structure}
   \begin{center}
     \begin{tabular}{c c c}
@@ -278,15 +301,14 @@ $ docker-compose run --rm quickjs
   Example
 
 \begin{verbatim}
-{
-  "type": "response",
+{ "type": "response",
   "id": 0,
   "operation": "init",
-  "result": {...}
-}
+  "result": {...} }
 \end{verbatim}
 \end{frame}
 
+
 \begin{frame}[fragile]{Wallet-core API}{Notification structure}
   \begin{center}
     \begin{tabular}{c c c}
@@ -310,9 +332,36 @@ $ docker-compose run --rm quickjs
 \end{verbatim}
 \end{frame}
 
+
+\begin{frame}[fragile]{Wallet-core API}{Error structure}
+  An error can be contained inside a response or a notification, and includes
+  the following data, in some cases along with extra fields:
+
+  \begin{center}
+    \begin{tabular}{c c c}
+      \hline
+      Field & Type & Description \\
+      \hline
+      \texttt{code} & integer & GANA error code \\
+      \texttt{when} & timestamp? & time when it occurred \\
+      \texttt{hint} & string? & error message \\
+    \end{tabular}
+  \end{center}
+
+  Example
+
+\begin{verbatim}
+{ "code": 7001,
+  "hint": "could not resolve host: demo.taler.net",
+  "when": { "t_ms": 1718726899827 } }
+\end{verbatim}
+\end{frame}
+
+
 \begin{frame}{Wallet-core CLI}
 \end{frame}
 
+
 \begin{frame}{Other components}
   \begin{itemize}
   \item Merchant

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]