[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.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-marketing] branch master updated: Improvements to CoSin'24 wallet slides,
gnunet <=