summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <grothoff@gnunet.org>2024-02-10 17:06:16 +0100
committerChristian Grothoff <grothoff@gnunet.org>2024-02-10 17:06:16 +0100
commit300a469342ba879b16ff93aaaf170fa1b88e75fb (patch)
tree567f71d577ba34de87c1ecc46bc423fe9c20edce
parent14e26d5fe2c0ceed27e27d8c79db14775ddfd796 (diff)
downloaddocs-300a469342ba879b16ff93aaaf170fa1b88e75fb.tar.gz
docs-300a469342ba879b16ff93aaaf170fa1b88e75fb.tar.bz2
docs-300a469342ba879b16ff93aaaf170fa1b88e75fb.zip
-update prebuilt
-rw-r--r--man/challenger-admin.130
-rw-r--r--man/challenger-config.160
-rw-r--r--man/challenger-dbconfig.12
-rw-r--r--man/challenger-dbinit.128
-rw-r--r--man/challenger-httpd.124
-rw-r--r--man/challenger.conf.52
-rw-r--r--man/libeufin-nexus.175
-rw-r--r--man/libeufin-nexus.conf.531
-rw-r--r--man/libeufin-sandbox.140
-rw-r--r--man/sync-config.160
-rw-r--r--man/sync-dbconfig.12
-rw-r--r--man/sync-dbinit.128
-rw-r--r--man/sync-httpd.140
-rw-r--r--man/sync.conf.52
-rw-r--r--man/taler-aggregator-benchmark.134
-rw-r--r--man/taler-auditor-dbconfig.12
-rw-r--r--man/taler-auditor-dbinit.134
-rw-r--r--man/taler-auditor-exchange.126
-rw-r--r--man/taler-auditor-httpd.130
-rw-r--r--man/taler-auditor-offline.176
-rw-r--r--man/taler-auditor-sync.132
-rw-r--r--man/taler-auditor.140
-rw-r--r--man/taler-bank-benchmark.150
-rw-r--r--man/taler-config.12
-rw-r--r--man/taler-exchange-aggregator.136
-rw-r--r--man/taler-exchange-benchmark.150
-rw-r--r--man/taler-exchange-closer.130
-rw-r--r--man/taler-exchange-dbconfig.12
-rw-r--r--man/taler-exchange-dbinit.132
-rw-r--r--man/taler-exchange-drain.126
-rw-r--r--man/taler-exchange-expire.130
-rw-r--r--man/taler-exchange-httpd.150
-rw-r--r--man/taler-exchange-kyc-aml-pep-trigger.14
-rw-r--r--man/taler-exchange-kyc-tester.156
-rw-r--r--man/taler-exchange-offline.1172
-rw-r--r--man/taler-exchange-router.130
-rw-r--r--man/taler-exchange-secmod-cs.134
-rw-r--r--man/taler-exchange-secmod-eddsa.134
-rw-r--r--man/taler-exchange-secmod-rsa.134
-rw-r--r--man/taler-exchange-transfer.130
-rw-r--r--man/taler-exchange-wire-gateway-client.166
-rw-r--r--man/taler-exchange-wirewatch.140
-rw-r--r--man/taler-fakebank-run.134
-rw-r--r--man/taler-helper-auditor-aggregation.134
-rw-r--r--man/taler-helper-auditor-coins.134
-rw-r--r--man/taler-helper-auditor-deposits.134
-rw-r--r--man/taler-helper-auditor-purses.134
-rw-r--r--man/taler-helper-auditor-reserves.134
-rw-r--r--man/taler-helper-auditor-wire.136
-rw-r--r--man/taler-mdb.12
-rw-r--r--man/taler-merchant-benchmark.124
-rw-r--r--man/taler-merchant-dbconfig.12
-rw-r--r--man/taler-merchant-dbinit.124
-rw-r--r--man/taler-merchant-depositcheck.18
-rw-r--r--man/taler-merchant-exchange.18
-rw-r--r--man/taler-merchant-httpd.144
-rw-r--r--man/taler-merchant-passwd.126
-rw-r--r--man/taler-merchant-webhook.18
-rw-r--r--man/taler-merchant-wirewatch.112
-rw-r--r--man/taler-terms-generator.114
-rw-r--r--man/taler-unified-setup.16
-rw-r--r--man/taler.conf.513
-rw-r--r--texinfo/challenger.texi2
-rw-r--r--texinfo/taler-auditor.texi202
-rw-r--r--texinfo/taler-developer-manual-figures/arch-api.pngbin57007 -> 60110 bytes
-rw-r--r--texinfo/taler-developer-manual.texi485
-rw-r--r--texinfo/taler-exchange.texi535
-rw-r--r--texinfo/taler-merchant-api-tutorial-figures/arch-api.pngbin57007 -> 60110 bytes
-rw-r--r--texinfo/taler-merchant-api-tutorial.texi94
-rw-r--r--texinfo/taler-merchant-figures/arch-api.pngbin57007 -> 60110 bytes
-rw-r--r--texinfo/taler-merchant.texi680
71 files changed, 1825 insertions, 2110 deletions
diff --git a/man/challenger-admin.1 b/man/challenger-admin.1
index c2d75ab4..df3ab0a7 100644
--- a/man/challenger-admin.1
+++ b/man/challenger-admin.1
@@ -27,20 +27,20 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "CHALLENGER-ADMIN" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "CHALLENGER-ADMIN" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
challenger-admin \- manipulate list of authorized Challenger clients
.SH SYNOPSIS
.sp
\fBchallenger\-admin\fP
-[\fB\-a\fP \fICLIENT_SECRET\fP\ |\ \fB\-\-add=\fP\fICLIENT_SECRET\fP]
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-d\fP\ |\ \fB\-\-delete\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-log=\fP\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP\fIFILENAME\fP]
-[\fB\-q\fP\ |\ \fB\-\-quiet\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-a\fP \fICLIENT_SECRET\fP\ |\ \fB–add=\fP\fICLIENT_SECRET\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-d\fP\ |\ \fB–delete\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–log=\fP\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP\fIFILENAME\fP]
+[\fB\-q\fP\ |\ \fB–quiet\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
CLIENT_URL
.SH DESCRIPTION
.sp
@@ -49,23 +49,23 @@ CLIENT_URL
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-a\fP \fISECRET\fP | \fB\-\-add=\fP‌\fISECRET\fP
+\fB\-a\fP \fISECRET\fP | \fB–add=\fP‌\fISECRET\fP
Add the client with the given \fICLIENT_URL setting the client secret to *SECRET\fP\&. Prints the CLIENT_ID of the added client.
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the Challenger commands
to operate from \fIFILENAME\fP\&.
.TP
-\fB\-d\fP | \fB\-\-delete\fP
+\fB\-d\fP | \fB–delete\fP
Delete the client with the given \fICLIENT_URL\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-log=\fP\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–log=\fP\fILOGLEVEL\fP
Configure logging to use \fILOGLEVEL\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP\fIFILENAME\fP
Configure logging to write logs to \fIFILENAME\fP\&.
.TP
\fB\-q\fP | \fB–\-quiet\fP
diff --git a/man/challenger-config.1 b/man/challenger-config.1
index bc31f4a7..a03108d8 100644
--- a/man/challenger-config.1
+++ b/man/challenger-config.1
@@ -27,75 +27,75 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "CHALLENGER-CONFIG" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "CHALLENGER-CONFIG" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
challenger-config \- manipulate Challenger configuration files
.SH SYNOPSIS
.sp
\fBchallenger\-config\fP
-[\fB\-b\fP\ \fIbackend\fP\ |\ \fB\-\-supported\-backend=\fP\fIbackend\fP]
-[\fB\-c\fP\ \fIfilename\fP\ |\ \fB\-\-config=\fP\fIfilename\fP]
-[\fB\-f\fP\ |\ \fB\-\-filename\fP]
-[\fB\-F\fP\ |\ \fB\-\-full\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fIloglevel\fP\ |\ \fB\-\-loglevel=\fP\fIloglevel\fP]
-[\fB\-l\fP\ \fIfilename\fP\ |\ \fB\-\-logfile=\fP‌\fIfilename\fP]
-[\fB\-o\fP\ \fIoption\fP\ |\ \fB\-\-option=\fP\fIoption\fP]
-[\fB\-r\fP\ |\ \fB\-\-rewrite\fP]
-[\fB\-S\fP\ |\ \fB\-\-list\-sections\fP]
-[\fB\-s\fP\ \fIsection\fP\ |\ \fB\-\-section=\fP\fIsection\fP]
-[\fB\-V\fP\ \fIvalue\fP\ |\ \fB\-\-value=\fP\fIvalue\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-b\fP\ \fIbackend\fP\ |\ \fB–supported\-backend=\fP\fIbackend\fP]
+[\fB\-c\fP\ \fIfilename\fP\ |\ \fB–config=\fP\fIfilename\fP]
+[\fB\-f\fP\ |\ \fB–filename\fP]
+[\fB\-F\fP\ |\ \fB–full\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fIloglevel\fP\ |\ \fB–loglevel=\fP\fIloglevel\fP]
+[\fB\-l\fP\ \fIfilename\fP\ |\ \fB–logfile=\fP‌\fIfilename\fP]
+[\fB\-o\fP\ \fIoption\fP\ |\ \fB–option=\fP\fIoption\fP]
+[\fB\-r\fP\ |\ \fB–rewrite\fP]
+[\fB\-S\fP\ |\ \fB–list\-sections\fP]
+[\fB\-s\fP\ \fIsection\fP\ |\ \fB–section=\fP\fIsection\fP]
+[\fB\-V\fP\ \fIvalue\fP\ |\ \fB–value=\fP\fIvalue\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBchallenger\-config\fP can be used to read or modify Challenger configuration files.
.INDENT 0.0
.TP
-\fB\-b\fP \fIBACKEND\fP | \fB\-\-supported\-backend=\fP\fIBACKEND\fP
+\fB\-b\fP \fIBACKEND\fP | \fB–supported\-backend=\fP\fIBACKEND\fP
Tests whether the specified \fIBACKEND\fP is supported by the current installation.
-The backend must match the name of a plugin, i.e. \(dqnamestore_postgres\(dq for
-the PostgreSQL database backend of the \(dqNAMESTORE\(dq service. If \fIBACKEND\fP is
+The backend must match the name of a plugin, i.e. “namestore_postgres” for
+the PostgreSQL database backend of the “NAMESTORE” service. If \fIBACKEND\fP is
supported, challenger\-config will return a status code of 0 (success), otherwise
77 (unsupported). When this option is specified, no other options may be
specified. Specifying this option together with other options will cause
challenger\-config to return a status code of 1 (error).
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP\fIFILENAME\fP
Use the configuration file \fIFILENAME\fP\&.
.TP
-\fB\-f\fP | \fB\-\-filename\fP
+\fB\-f\fP | \fB–filename\fP
Try to perform expansions as if the option values represent filenames (will
also be applied even if the option is not really a filename).
.TP
-\fB\-F\fP | \fB\-\-full\fP
+\fB\-F\fP | \fB–full\fP
Write the full configuration file, not just the differences to the defaults.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP\fILOGLEVEL\fP
Use \fILOGLEVEL\fP for logging.
Valid values are \fBDEBUG\fP, \fBINFO\fP, \fBWARNING\fP, and \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-o\fP \fIOPTION\fP | \fB\-\-option=\fP\fIOPTION\fP
+\fB\-o\fP \fIOPTION\fP | \fB–option=\fP\fIOPTION\fP
Which configuration option should be accessed or edited. Required to set a
value. If not given, all values of a given section will be printed in the
-format \(dqOPTION = VALUE\(dq.
+format “OPTION = VALUE”.
.TP
-\fB\-r\fP | \fB\-\-rewrite\fP
+\fB\-r\fP | \fB–rewrite\fP
Write the configuration file even if nothing changed. Will remove all comments!
.TP
-\fB\-S\fP | \fB\-\-list\-sections\fP
+\fB\-S\fP | \fB–list\-sections\fP
List available configuration sections for use with \fB\-\-section\fP\&.
.TP
-\fB\-s\fP \fISECTION\fP | \fB\-\-section=\fP\fISECTION\fP
+\fB\-s\fP \fISECTION\fP | \fB–section=\fP\fISECTION\fP
Which configuration section should be accessed or edited.
Required option.
.TP
-\fB\-V\fP \fIVALUE\fP | \fB\-\-value=\fP\fIVALUE\fP
+\fB\-V\fP \fIVALUE\fP | \fB–value=\fP\fIVALUE\fP
Configuration value to store in the given section under the given option.
Must only be given together with \fB\-s\fP and \fB\-o\fP options.
.INDENT 7.0
@@ -105,7 +105,7 @@ Changing the configuration file with \fB\-V\fP will remove comments
and may reorder sections and remove \fB@INLINE@\fP directives.
.UNINDENT
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print GNU Taler version number.
.UNINDENT
.SH SEE ALSO
diff --git a/man/challenger-dbconfig.1 b/man/challenger-dbconfig.1
index 63e9c17a..fc47548c 100644
--- a/man/challenger-dbconfig.1
+++ b/man/challenger-dbconfig.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "CHALLENGER-DBCONFIG" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "CHALLENGER-DBCONFIG" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
challenger-dbconfig \- configure challenger database
.SH SYNOPSIS
diff --git a/man/challenger-dbinit.1 b/man/challenger-dbinit.1
index e3392ea2..951b1be4 100644
--- a/man/challenger-dbinit.1
+++ b/man/challenger-dbinit.1
@@ -27,19 +27,19 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "CHALLENGER-DBINIT" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "CHALLENGER-DBINIT" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
challenger-dbinit \- initialize the Challenger database
.SH SYNOPSIS
.sp
\fBchallenger\-dbinit\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-g\fP\ |\ \fB\-\-garbagecollect\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-log=\fP\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP\fIFILENAME\fP]
-[\fB\-r\fP\ |\ \fB\-\-reset\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-g\fP\ |\ \fB–garbagecollect\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–log=\fP\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP\fIFILENAME\fP]
+[\fB\-r\fP\ |\ \fB–reset\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBchallenger\-dbinit\fP is a command\-line tool to initialize the Challenger database.
@@ -47,23 +47,23 @@ challenger-dbinit \- initialize the Challenger database
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the Challenger commands
to operate from \fIFILENAME\fP\&.
.TP
-\fB\-g\fP | \fB\-\-garbagecollect\fP
+\fB\-g\fP | \fB–garbagecollect\fP
Remove state data from database.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-log=\fP\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–log=\fP\fILOGLEVEL\fP
Configure logging to use \fILOGLEVEL\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP\fIFILENAME\fP
Configure logging to write logs to \fIFILENAME\fP\&.
.TP
-\fB\-r\fP | \fB\-\-reset\fP
+\fB\-r\fP | \fB–reset\fP
Reset database. (\fBDANGEROUS\fP: All existing data is lost!)
.TP
\fB\-v\fP | \fB–version\fP
diff --git a/man/challenger-httpd.1 b/man/challenger-httpd.1
index b1f51a5c..bc94da85 100644
--- a/man/challenger-httpd.1
+++ b/man/challenger-httpd.1
@@ -27,18 +27,18 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "CHALLENGER-HTTPD" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "CHALLENGER-HTTPD" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
challenger-httpd \- provide the Challenger HTTP interface
.SH SYNOPSIS
.sp
\fBchallenger\-httpd\fP
-[\fB\-C\fP\ |\ \fB\-\-connection\-close\fP]
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-log=\fP\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP\fIFILENAME\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-C\fP\ |\ \fB–connection\-close\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–log=\fP\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP\fIFILENAME\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBchallenger\-httpd\fP is a command\-line tool to provide the Challenger HTTP interface.
@@ -46,20 +46,20 @@ challenger-httpd \- provide the Challenger HTTP interface
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-C\fP | \fB\-\-connection\-close\fP
+\fB\-C\fP | \fB–connection\-close\fP
Force HTTP connections to be closed after each request.
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the Challenger commands
to operate from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-log=\fP\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–log=\fP\fILOGLEVEL\fP
Configure logging to use \fILOGLEVEL\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP\fIFILENAME\fP
Configure logging to write logs to \fIFILENAME\fP\&.
.TP
\fB\-v\fP | \fB–version\fP
diff --git a/man/challenger.conf.5 b/man/challenger.conf.5
index b19c5170..7a198958 100644
--- a/man/challenger.conf.5
+++ b/man/challenger.conf.5
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "CHALLENGER.CONF" "5" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "CHALLENGER.CONF" "5" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
challenger.conf \- Challenger configuration file
.SH DESCRIPTION
diff --git a/man/libeufin-nexus.1 b/man/libeufin-nexus.1
index 9cf4e291..cd080498 100644
--- a/man/libeufin-nexus.1
+++ b/man/libeufin-nexus.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "LIBEUFIN-NEXUS" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "LIBEUFIN-NEXUS" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
libeufin-nexus \- service to interface to various bank access APIs
.SH SYNOPSIS
@@ -66,11 +66,14 @@ Its options are as follows:
.INDENT 0.0
.TP
\fB\-h\fP | \fB\-\-help\fP
-Prints short help on options.
+Print short help on options.
.TP
-\fB\-c\fP | \fB\-\-config\fP ‌\fIFILENAME\fP
+\fB\-c\fP | \fB\-\-config\fP \fIFILENAME\fP
Specifies the configuration file.
.TP
+\fB\-L\fP | \fB\-\-log\fP \fILOGLEVEL\fP
+Configure logging to use LOGLEVEL.
+.TP
\fB\-\-force\-keys\-resubmission\fP
Resubmits the client keys. If no keys were found, it creates and submits them.
.TP
@@ -90,9 +93,12 @@ Its options are as follows:
\fB\-h\fP | \fB\-\-help\fP
Print short help on options.
.TP
-\fB\-c\fP | \fB\-\-config\fP ‌\fIFILENAME\fP
+\fB\-c\fP | \fB\-\-config\fP \fIFILENAME\fP
Specifies the configuration file.
.TP
+\fB\-L\fP | \fB\-\-log\fP \fILOGLEVEL\fP
+Configure logging to use LOGLEVEL.
+.TP
\fB\-r\fP | \fB\-\-reset\fP
If present, deletes any database table (WARNING: potential data loss)
.UNINDENT
@@ -106,29 +112,75 @@ Its options are as follows:
\fB\-h\fP | \fB\-\-help\fP
Print short help on options.
.TP
-\fB\-c\fP | \fB\-\-config\fP ‌\fIFILENAME\fP
+\fB\-c\fP | \fB\-\-config\fP \fIFILENAME\fP
Specifies the configuration file.
.TP
+\fB\-L\fP | \fB\-\-log\fP \fILOGLEVEL\fP
+Configure logging to use LOGLEVEL.
+Uploaded documents will be stored \fIbefore\fP being submitted to the bank. This directory would contain several directories, each named after the \fBYYYY\-MM\-DD/submit\fP format. The pain.001 file would then be named in the following schema: \fB$microseconds_pain.001.xml\fP\&.
+.TP
\fB\-\-transient\fP
This flag, enabled by default, causes the command to check the database and submit only once, and then return.
.UNINDENT
.SS ebics\-fetch
.sp
-This subcommand downloads banking records via EBICS and stores them into the database. Along the download, ebics\-fetch would bounce incoming payments that do not have a valid Taler subject, or as well those with an already existing valid subject. Valid incoming payments are then stored in the database so that they can trigger Taler withdrawals. Along this process, ebics\-submit would as well reconcile initiated outgoing payments with any outgoing transactions that shows up in the downloaded records.
+This subcommand downloads and parse EBICS files and ingest them into the database. Along the download, ebics\-fetch would bounce incoming payments that do not have a valid Taler subject, or as well those with an already existing valid subject. Valid incoming payments are then stored in the database so that they can trigger Taler withdrawals. Along this process, ebics\-submit would as well reconcile initiated outgoing payments with any outgoing transactions that show up in the downloaded records.
+.sp
+The files type can be given as an argument to select what will be fetched. If no argument is given, all supported files are fetched. The following files are supported:
+.INDENT 0.0
+.IP \(bu 2
+\fBacknowledgement\fP: EBICS acknowledgement, retrieves the status of EBICS orders.
+.IP \(bu 2
+\fBstatus\fP: Payment status, retrieves status of pending debits.
+.IP \(bu 2
+\fBnotification\fP: Debit & credit notifications, retrieves the history of confirmed debits and credits.
+.UNINDENT
.INDENT 0.0
.TP
\fB\-h\fP | \fB\-\-help\fP
Print short help on options.
.TP
-\fB\-c\fP | \fB\-\-config\fP ‌\fIFILENAME\fP
+\fB\-c\fP | \fB\-\-config\fP \fIFILENAME\fP
Specifies the configuration file.
.TP
+\fB\-L\fP | \fB\-\-log\fP \fILOGLEVEL\fP
+Configure logging to use LOGLEVEL.
+.TP
+\fB\-\-debug\-ebics\fP \fISAVEDIR\fP
+Log EBICS content at SAVEDIR.
+Downloaded documents will be stored \fIbefore\fP being ingested in the database. This directory would contain several directories, each named after the \fBYYYY\-MM\-DD/fetch\fP format. The stored files would then be named after the following schema: \fB$microseconds_$filename\fP\&. Exception to this naming scheme are the HAC responses, since they do not get any filename assigned by the ZIP archive (they are sent unzipped). Their naming scheme is: \fB$microseconds_HAC_response.pain.002.xml\fP\&.
+.TP
\fB\-\-transient\fP
This flag, enabled by default, causes the command to perform one download and return.
.TP
\fB\-\-pinned\-start\fP
Only supported in \-\-transient mode, this option lets specify the earliest timestamp of the downloaded documents. The latest timestamp is always the current time.
.UNINDENT
+.SS initiate\-payment
+.sp
+This subcommand initiates an outgoing payment. The pending payment is stored in the database and will be performed the next time \fBebics\-submit\fP run.
+.sp
+It takes one argument, the creditor IBAN payto URI, which must contain a \(aqreceiver\-name\(aq and may contain an \(aqamount\(aq and a \(aqmessage\(aq if they have not been defined using CLI options.
+.INDENT 0.0
+.TP
+\fB\-h\fP | \fB\-\-help\fP
+Print short help on options.
+.TP
+\fB\-c\fP | \fB\-\-config\fP \fIFILENAME\fP
+Specifies the configuration file.
+.TP
+\fB\-L\fP | \fB\-\-log\fP \fILOGLEVEL\fP
+Configure logging to use LOGLEVEL.
+.TP
+\fB\-\-amount\fP \fIAMOUNT\fP
+The amount to transfer, payto \(aqamount\(aq parameter takes the precedence
+.TP
+\fB\-\-subject\fP \fITEXT\fP
+The payment subject, payto \(aqmessage\(aq parameter takes the precedence
+.TP
+\fB\-\-request\-uid\fP \fITEXT\fP
+The payment request UID, will be randomly generated if missing.
+.UNINDENT
.SS config
.sp
This command inspect or change the configuration.
@@ -152,6 +204,9 @@ Print short help on options.
\fB\-c\fP | \fB\-\-config\fP \fIFILENAME\fP
Specifies the configuration file.
.TP
+\fB\-L\fP | \fB\-\-log\fP \fILOGLEVEL\fP
+Configure logging to use LOGLEVEL.
+.TP
\fB\-f\fP | \fB\-\-filename\fP
Interpret value as path with dollar\-expansion.
.UNINDENT
@@ -165,6 +220,9 @@ Print short help on options.
.TP
\fB\-c\fP | \fB\-\-config\fP \fIFILENAME\fP
Specifies the configuration file.
+.TP
+\fB\-L\fP | \fB\-\-log\fP \fILOGLEVEL\fP
+Configure logging to use LOGLEVEL.
.UNINDENT
.SS config pathsub
.sp
@@ -178,6 +236,9 @@ Print short help on options.
.TP
\fB\-c\fP | \fB\-\-config\fP \fIFILENAME\fP
Specifies the configuration file.
+.TP
+\fB\-L\fP | \fB\-\-log\fP \fILOGLEVEL\fP
+Configure logging to use LOGLEVEL.
.UNINDENT
.SH SEE ALSO
.sp
diff --git a/man/libeufin-nexus.conf.5 b/man/libeufin-nexus.conf.5
index 13e0d84e..88dc406d 100644
--- a/man/libeufin-nexus.conf.5
+++ b/man/libeufin-nexus.conf.5
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "LIBEUFIN-NEXUS.CONF" "5" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "LIBEUFIN-NEXUS.CONF" "5" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
libeufin-nexus.conf \- LibEuFin Nexus configuration file
.SH DESCRIPTION
@@ -186,15 +186,6 @@ The following configuration value(s) belong to the “[nexus\-submit]” section
.B FREQUENCY
Duration value to instruct the \fBebics\-submit\fP subcommand how much to wait
before checking the database again to find new unsubmitted payments.
-.TP
-.B SUBMISSIONS_LOG_DIRECTORY
-Optional value to define the path where the pain.001 documents gets stored \fIbefore\fP
-being submitted to the bank. This directory would contain several directories,
-each named after the YYYY\-MM\-DD format. The pain.001 file would then be named in
-the following schema: \fB$submissionTimestampMicroseconds_requestUid_$requestUid_pain.001.xml\fP\&.
-\fB$requestUid\fP is the same value that constitutes the pain.001 \fBMsgIg\fP element.
-In the event that one log file would be overridden, \fBebics\-submit\fP fails without
-overriding it.
.UNINDENT
.SS EBICS FETCH OPTIONS
.sp
@@ -204,17 +195,17 @@ The following configuration value(s) belong to the “[nexus\-fetch]” section.
.B FREQUENCY
Duration value to instruct the \fBebics\-fetch\fP subcommand how often it should
download from the bank.
+.UNINDENT
+.SS DATABASE OPTIONS
+.sp
+Setting the database belongs to the “[libeufin\-nexusdb\-postgres]” section and the following value.
+.INDENT 0.0
+.TP
+.B CONFIG
+PostgreSQL connection string.
.TP
-.B STATEMENT_LOG_DIRECTORY
-Optional value to define the path where the downloaded documents would be stored
-\fIbefore\fP being ingested in the database. This directory would contain several
-directories, each named after the YYYY\-MM\-DD format. The stored files would then
-be named after the following schema:
-\fB$downloadTimestampMicroseconds_$filenameAsGivenByTheBank\fP\&. In case one log file
-would be overridden, \fBebics\-fetch\fP fails without overriding it.
-Exception to this naming scheme are the HAC responses, since they do not get any
-filename assigned by the ZIP archive (they are sent unzipped). Their naming scheme
-is: \fB$downloadTimestampMicroseconds_HAC_response.pain.002.xml\fP
+.B SQL_DIR
+Where are the SQL files to setup our tables?
.UNINDENT
.SH SEE ALSO
.sp
diff --git a/man/libeufin-sandbox.1 b/man/libeufin-sandbox.1
index b329965a..50d1674d 100644
--- a/man/libeufin-sandbox.1
+++ b/man/libeufin-sandbox.1
@@ -27,15 +27,15 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "LIBEUFIN-SANDBOX" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "LIBEUFIN-SANDBOX" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
libeufin-sandbox \- simulate core banking system with EBICS access to bank accounts
.SH SYNOPSIS
.sp
\fBlibeufin\-sandbox\fP
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-\-version\fP]
-COMMAND [ARGS...]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB–version\fP]
+COMMAND [ARGS…]
.sp
Commands: serve, reset\-tables, config, make\-transaction, camt053tick
default\-exchange
@@ -49,12 +49,12 @@ requests either over the network or via a Unix domain socket.
Related program \fBlibeufin\-cli\fP is the preferred front end
for that mode of operation.
There is also a mode where \fBlibeufin\-sandbox\fP accepts commands directly,
-useful for configuring one or more \(dqdemobank\(dq (simulated bank) instances.
+useful for configuring one or more “demobank” (simulated bank) instances.
.sp
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
\fB–version\fP
@@ -88,10 +88,10 @@ Option \fB\-\-captcha\-url $URL\fP specifies where the wallet user is going
to be redirected to confirm the withdrawal operation. This $URL should
point to the bank frontend. More precisely to the UI that let the user
finish a withdrawal operation that needs to be confirmed. Example of
-this value may be \(dq\fI\%https://bank.domain/#/operation\fP/{wopid}\(dq where
-\(dq\fI\%https://bank.domain\fP\(dq returns the demobank SPA and the demobank view under
-the route \(dq/operation/{wopid}\(dq will show the status of the operation id {wopid}.
-Note that \(dq{wopid}\(dq is literally in the \-\-captcha\-url config and replaced at
+this value may be “\fI\%https://bank.domain/#/operation\fP/{wopid}” where
+“\fI\%https://bank.domain\fP” returns the demobank SPA and the demobank view under
+the route “/operation/{wopid}” will show the status of the operation id {wopid}.
+Note that “{wopid}” is literally in the –captcha\-url config and replaced at
runtime by the sandbox server.
Option \fB\-\-bank\-debt\-limit N\fP (default: 1000000) specifies that
the bank debt limit should be N (units of currency).
@@ -102,11 +102,9 @@ For example:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ libeufin\-sandbox config default
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -126,14 +124,12 @@ For example:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ libeufin\-sandbox default\-exchange \e
\-\-demobank bank01 \e
https://exchange.example.com/ \e
payto://iban/CH9300762011623852957
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -141,7 +137,7 @@ This sets the default exchange for demobank \fBbank01\fP\&.
It is an error if the demobank does not exist.
.SS make\-transaction
.sp
-This is a \(dqlegacy\(dq command, useful in a previous iteration of LibEuFin
+This is a “legacy” command, useful in a previous iteration of LibEuFin
and for internal testing.
It creates and records a wire transfer transaction in the database.
.sp
@@ -175,11 +171,9 @@ For example:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ libeufin\-sandbox camt053tick
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
diff --git a/man/sync-config.1 b/man/sync-config.1
index f2bad7ab..891e8980 100644
--- a/man/sync-config.1
+++ b/man/sync-config.1
@@ -27,75 +27,75 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "SYNC-CONFIG" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "SYNC-CONFIG" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
sync-config \- manipulate Sync configuration files
.SH SYNOPSIS
.sp
\fBsync\-config\fP
-[\fB\-b\fP\ \fIbackend\fP\ |\ \fB\-\-supported\-backend=\fP\fIbackend\fP]
-[\fB\-c\fP\ \fIfilename\fP\ |\ \fB\-\-config=\fP\fIfilename\fP]
-[\fB\-f\fP\ |\ \fB\-\-filename\fP]
-[\fB\-F\fP\ |\ \fB\-\-full\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fIloglevel\fP\ |\ \fB\-\-loglevel=\fP\fIloglevel\fP]
-[\fB\-l\fP\ \fIfilename\fP\ |\ \fB\-\-logfile=\fP‌\fIfilename\fP]
-[\fB\-o\fP\ \fIoption\fP\ |\ \fB\-\-option=\fP\fIoption\fP]
-[\fB\-r\fP\ |\ \fB\-\-rewrite\fP]
-[\fB\-S\fP\ |\ \fB\-\-list\-sections\fP]
-[\fB\-s\fP\ \fIsection\fP\ |\ \fB\-\-section=\fP\fIsection\fP]
-[\fB\-V\fP\ \fIvalue\fP\ |\ \fB\-\-value=\fP\fIvalue\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-b\fP\ \fIbackend\fP\ |\ \fB–supported\-backend=\fP\fIbackend\fP]
+[\fB\-c\fP\ \fIfilename\fP\ |\ \fB–config=\fP\fIfilename\fP]
+[\fB\-f\fP\ |\ \fB–filename\fP]
+[\fB\-F\fP\ |\ \fB–full\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fIloglevel\fP\ |\ \fB–loglevel=\fP\fIloglevel\fP]
+[\fB\-l\fP\ \fIfilename\fP\ |\ \fB–logfile=\fP‌\fIfilename\fP]
+[\fB\-o\fP\ \fIoption\fP\ |\ \fB–option=\fP\fIoption\fP]
+[\fB\-r\fP\ |\ \fB–rewrite\fP]
+[\fB\-S\fP\ |\ \fB–list\-sections\fP]
+[\fB\-s\fP\ \fIsection\fP\ |\ \fB–section=\fP\fIsection\fP]
+[\fB\-V\fP\ \fIvalue\fP\ |\ \fB–value=\fP\fIvalue\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBsync\-config\fP can be used to read or modify Sync configuration files.
.INDENT 0.0
.TP
-\fB\-b\fP \fIBACKEND\fP | \fB\-\-supported\-backend=\fP\fIBACKEND\fP
+\fB\-b\fP \fIBACKEND\fP | \fB–supported\-backend=\fP\fIBACKEND\fP
Tests whether the specified \fIBACKEND\fP is supported by the current installation.
-The backend must match the name of a plugin, i.e. \(dqnamestore_postgres\(dq for
-the PostgreSQL database backend of the \(dqNAMESTORE\(dq service. If \fIBACKEND\fP is
+The backend must match the name of a plugin, i.e. “namestore_postgres” for
+the PostgreSQL database backend of the “NAMESTORE” service. If \fIBACKEND\fP is
supported, sync\-config will return a status code of 0 (success), otherwise
77 (unsupported). When this option is specified, no other options may be
specified. Specifying this option together with other options will cause
sync\-config to return a status code of 1 (error).
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP\fIFILENAME\fP
Use the configuration file \fIFILENAME\fP\&.
.TP
-\fB\-f\fP | \fB\-\-filename\fP
+\fB\-f\fP | \fB–filename\fP
Try to perform expansions as if the option values represent filenames (will
also be applied even if the option is not really a filename).
.TP
-\fB\-F\fP | \fB\-\-full\fP
+\fB\-F\fP | \fB–full\fP
Write the full configuration file, not just the differences to the defaults.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP\fILOGLEVEL\fP
Use \fILOGLEVEL\fP for logging.
Valid values are \fBDEBUG\fP, \fBINFO\fP, \fBWARNING\fP, and \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-o\fP \fIOPTION\fP | \fB\-\-option=\fP\fIOPTION\fP
+\fB\-o\fP \fIOPTION\fP | \fB–option=\fP\fIOPTION\fP
Which configuration option should be accessed or edited. Required to set a
value. If not given, all values of a given section will be printed in the
-format \(dqOPTION = VALUE\(dq.
+format “OPTION = VALUE”.
.TP
-\fB\-r\fP | \fB\-\-rewrite\fP
+\fB\-r\fP | \fB–rewrite\fP
Write the configuration file even if nothing changed. Will remove all comments!
.TP
-\fB\-S\fP | \fB\-\-list\-sections\fP
+\fB\-S\fP | \fB–list\-sections\fP
List available configuration sections for use with \fB\-\-section\fP\&.
.TP
-\fB\-s\fP \fISECTION\fP | \fB\-\-section=\fP\fISECTION\fP
+\fB\-s\fP \fISECTION\fP | \fB–section=\fP\fISECTION\fP
Which configuration section should be accessed or edited.
Required option.
.TP
-\fB\-V\fP \fIVALUE\fP | \fB\-\-value=\fP\fIVALUE\fP
+\fB\-V\fP \fIVALUE\fP | \fB–value=\fP\fIVALUE\fP
Configuration value to store in the given section under the given option.
Must only be given together with \fB\-s\fP and \fB\-o\fP options.
.INDENT 7.0
@@ -105,7 +105,7 @@ Changing the configuration file with \fB\-V\fP will remove comments
and may reorder sections and remove \fB@INLINE@\fP directives.
.UNINDENT
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print GNU Taler version number.
.UNINDENT
.SH SEE ALSO
diff --git a/man/sync-dbconfig.1 b/man/sync-dbconfig.1
index fdde757c..d031683f 100644
--- a/man/sync-dbconfig.1
+++ b/man/sync-dbconfig.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "SYNC-DBCONFIG" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "SYNC-DBCONFIG" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
sync-dbconfig \- configure sync database
.SH SYNOPSIS
diff --git a/man/sync-dbinit.1 b/man/sync-dbinit.1
index fa1f02eb..7b650724 100644
--- a/man/sync-dbinit.1
+++ b/man/sync-dbinit.1
@@ -27,19 +27,19 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "SYNC-DBINIT" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "SYNC-DBINIT" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
sync-dbinit \- initialize the Sync database
.SH SYNOPSIS
.sp
\fBsync\-dbinit\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-g\fP\ |\ \fB\-\-garbagecollect\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-log=\fP\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP\fIFILENAME\fP]
-[\fB\-r\fP\ |\ \fB\-\-reset\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-g\fP\ |\ \fB–garbagecollect\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–log=\fP\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP\fIFILENAME\fP]
+[\fB\-r\fP\ |\ \fB–reset\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBsync\-dbinit\fP is a command\-line tool to initialize the Sync database.
@@ -47,23 +47,23 @@ sync-dbinit \- initialize the Sync database
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the Sync commands
to operate from \fIFILENAME\fP\&.
.TP
-\fB\-g\fP | \fB\-\-garbagecollect\fP
+\fB\-g\fP | \fB–garbagecollect\fP
Remove state data from database.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-log=\fP\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–log=\fP\fILOGLEVEL\fP
Configure logging to use \fILOGLEVEL\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP\fIFILENAME\fP
Configure logging to write logs to \fIFILENAME\fP\&.
.TP
-\fB\-r\fP | \fB\-\-reset\fP
+\fB\-r\fP | \fB–reset\fP
Reset database. (\fBDANGEROUS\fP: All existing data is lost!)
.TP
\fB\-v\fP | \fB–version\fP
diff --git a/man/sync-httpd.1 b/man/sync-httpd.1
index 4eba443c..425961cb 100644
--- a/man/sync-httpd.1
+++ b/man/sync-httpd.1
@@ -27,22 +27,22 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "SYNC-HTTPD" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "SYNC-HTTPD" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
sync-httpd \- provide the Sync HTTP interface
.SH SYNOPSIS
.sp
\fBsync\-httpd\fP
-[\fB\-A\fP\ \fIUSERNAME:PASSWORD\fP\ |\ \fB\-\-auth=\fP\fIUSERNAME:PASSWORD\fP]
-[\fB\-C\fP\ |\ \fB\-\-connection\-close\fP]
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-k\fP\ \fIKEYFILE\fP\ |\ \fB\-\-key=\fP\fIKEYFILE\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-log=\fP\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP\fIFILENAME\fP]
-[\fB\-p\fP\ \fIKEYFILEPASSPHRASE\fP\ |\ \fB\-\-pass=\fP\fIKEYFILEPASSPHRASE\fP]
-[\fB\-t\fP\ \fICERTTYPE\fP\ |\ \fB\-\-type=\fP\fICERTTYPE\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-A\fP\ \fIUSERNAME:PASSWORD\fP\ |\ \fB–auth=\fP\fIUSERNAME:PASSWORD\fP]
+[\fB\-C\fP\ |\ \fB–connection\-close\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-k\fP\ \fIKEYFILE\fP\ |\ \fB–key=\fP\fIKEYFILE\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–log=\fP\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP\fIFILENAME\fP]
+[\fB\-p\fP\ \fIKEYFILEPASSPHRASE\fP\ |\ \fB–pass=\fP\fIKEYFILEPASSPHRASE\fP]
+[\fB\-t\fP\ \fICERTTYPE\fP\ |\ \fB–type=\fP\fICERTTYPE\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBsync\-httpd\fP is a command\-line tool to provide the Sync HTTP interface.
@@ -50,32 +50,32 @@ sync-httpd \- provide the Sync HTTP interface
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-A\fP \fIUSERNAME:PASSWORD\fP | \fB\-\-auth=\fP\fIUSERNAME:PASSWORD\fP
+\fB\-A\fP \fIUSERNAME:PASSWORD\fP | \fB–auth=\fP\fIUSERNAME:PASSWORD\fP
Use the given \fIUSERNAME\fP and \fIPASSWORD\fP for client authentication.
.TP
-\fB\-C\fP | \fB\-\-connection\-close\fP
+\fB\-C\fP | \fB–connection\-close\fP
Force HTTP connections to be closed after each request.
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the Sync commands
to operate from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-k\fP \fIKEYFILE\fP | \fB\-\-key=\fP\fIKEYFILE\fP
+\fB\-k\fP \fIKEYFILE\fP | \fB–key=\fP\fIKEYFILE\fP
Consult \fIKEYFILE\fP for the private TLS key for TLS client authentication.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-log=\fP\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–log=\fP\fILOGLEVEL\fP
Configure logging to use \fILOGLEVEL\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP\fIFILENAME\fP
Configure logging to write logs to \fIFILENAME\fP\&.
.TP
-\fB\-p\fP \fIKEYFILEPASSPHRASE\fP | \fB\-\-pass=\fP\fIKEYFILEPASSPHRASE\fP
+\fB\-p\fP \fIKEYFILEPASSPHRASE\fP | \fB–pass=\fP\fIKEYFILEPASSPHRASE\fP
Use \fIKEYFILEPASSPHRASE\fP to decrypt the TLS client private key file.
.TP
-\fB\-t\fP \fICERTTYPE\fP | \fB\-\-type=\fP\fICERTTYPE\fP
+\fB\-t\fP \fICERTTYPE\fP | \fB–type=\fP\fICERTTYPE\fP
Use \fICERTTYPE\fP as the type of the TLS client certificate.
If unspecified, defaults to PEM.
.TP
diff --git a/man/sync.conf.5 b/man/sync.conf.5
index eb14fbda..38ea1eb7 100644
--- a/man/sync.conf.5
+++ b/man/sync.conf.5
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "SYNC.CONF" "5" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "SYNC.CONF" "5" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
sync.conf \- Sync configuration file
.SH DESCRIPTION
diff --git a/man/taler-aggregator-benchmark.1 b/man/taler-aggregator-benchmark.1
index 758a8bb9..2bc29d88 100644
--- a/man/taler-aggregator-benchmark.1
+++ b/man/taler-aggregator-benchmark.1
@@ -27,20 +27,20 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-AGGREGATOR-BENCHMARK" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-AGGREGATOR-BENCHMARK" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-aggregator-benchmark \- generate database to measure aggregator performance
.SH SYNOPSIS
.sp
\fBtaler\-aggregator\-benchmark\fP
-[\fB\-c\fP\ \fICONFIG_FILENAME\fP\ |\ \fB\-\-config=\fP‌\fICONFIG_FILENAME\fP]
-[\fB\-d\fP\ \fIDN\fP\ |\ \fB\-\-deposits=\fP\fIDN\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-log\-level=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-m\fP\ \fIDM\fP\ |\ \fB\-\-merchants=\fP‌\fIDM\fP]
-[\fB\-r\fP\ \fIRATE\fP\ |\ \fB\-\-refunds=\fP\fIRATE\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fICONFIG_FILENAME\fP\ |\ \fB–config=\fP‌\fICONFIG_FILENAME\fP]
+[\fB\-d\fP\ \fIDN\fP\ |\ \fB–deposits=\fP\fIDN\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–log\-level=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-m\fP\ \fIDM\fP\ |\ \fB–merchants=\fP‌\fIDM\fP]
+[\fB\-r\fP\ \fIRATE\fP\ |\ \fB–refunds=\fP\fIRATE\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-aggregator\-benchmark\fP is a command\-line tool to fill an exchange
@@ -51,30 +51,30 @@ starting multiple \fBtaler\-exchange\-aggregator\fP processes) and instead only
prepares the database with synthetic work.
.INDENT 0.0
.TP
-\fB\-c\fP \fICONFIG_FILENAME\fP | \fB\-\-config=\fP‌\fICONFIG_FILENAME\fP
+\fB\-c\fP \fICONFIG_FILENAME\fP | \fB–config=\fP‌\fICONFIG_FILENAME\fP
(Mandatory) Use CONFIG_FILENAME as the name for the configuration file.
.TP
-\fB\-d\fP \fIDN\fP | \fB\-\-deposits=\fP‌\fIDN\fP
+\fB\-d\fP \fIDN\fP | \fB–deposits=\fP‌\fIDN\fP
How many deposits should be instantiated \fIper merchant\fP\&.
Defaults to 1.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Prints a compiled\-in help text.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-log\-level=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–log\-level=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-m\fP \fIDM\fP | \fB\-\-merchants=\fP‌\fIDM\fP
+\fB\-m\fP \fIDM\fP | \fB–merchants=\fP‌\fIDM\fP
How many different merchants should we create. Defaults to 1.
.TP
-\fB\-r\fP \fIRATE\fP | \fB\-\-refunds=\fP\fIRATE\fP
+\fB\-r\fP \fIRATE\fP | \fB–refunds=\fP\fIRATE\fP
Probability of a deposit having a refund (as an integer between 0\-100).
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-auditor-dbconfig.1 b/man/taler-auditor-dbconfig.1
index dce8c341..9e24bc3f 100644
--- a/man/taler-auditor-dbconfig.1
+++ b/man/taler-auditor-dbconfig.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-AUDITOR-DBCONFIG" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-AUDITOR-DBCONFIG" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-auditor-dbconfig \- configure Taler auditor database
.SH SYNOPSIS
diff --git a/man/taler-auditor-dbinit.1 b/man/taler-auditor-dbinit.1
index 3c1f0977..f2364e20 100644
--- a/man/taler-auditor-dbinit.1
+++ b/man/taler-auditor-dbinit.1
@@ -27,20 +27,20 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-AUDITOR-DBINIT" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-AUDITOR-DBINIT" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-auditor-dbinit \- setup auditor database
.SH SYNOPSIS
.sp
\fBtaler\-auditor\-dbinit\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-g\fP\ |\ \fB\-\-gc\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-R\fP\ |\ \fB\-\-reset\fP]
-[\fB\-r\fP\ |\ \fB\-\-restart\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-g\fP\ |\ \fB–gc\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-R\fP\ |\ \fB–reset\fP]
+[\fB\-r\fP\ |\ \fB–restart\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-exchange\-dbinit\fP is a command\-line tool to initialize the Taler
@@ -50,32 +50,32 @@ Taler exchange to operate.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the exchange to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-g\fP | \fB\-\-gc\fP
+\fB\-g\fP | \fB–gc\fP
Garbage collect database. Deletes all unnecessary data in the
database.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-R\fP | \fB\-\-reset\fP
+\fB\-R\fP | \fB–reset\fP
Drop tables. Dangerous, will delete all existing data in the database.
.TP
-\fB\-r\fP | \fB\-\-restart\fP
+\fB\-r\fP | \fB–restart\fP
Restart all auditors from the beginning. Useful for
testing.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-auditor-exchange.1 b/man/taler-auditor-exchange.1
index 88fb3997..0e5084b1 100644
--- a/man/taler-auditor-exchange.1
+++ b/man/taler-auditor-exchange.1
@@ -27,18 +27,18 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-AUDITOR-EXCHANGE" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-AUDITOR-EXCHANGE" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-auditor-exchange \- add or remove exchange from auditor’s list
.SH SYNOPSIS
.sp
\fBtaler\-auditor\-exchange\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-m\fP\ \fIMASTERKEY\fP\ |\ \fB\-\-exchange\-key=\fP‌\fIMASTERKEY\fP]
-[\fB\-r\fP\ |\ \fB\-\-remove\fP]
-[\fB\-u\fP\ \fIEXCHANGE_URL\fP\ |\ \fB\-\-auditor\-url=\fP‌\fIEXCHANGE_URL\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-m\fP\ \fIMASTERKEY\fP\ |\ \fB–exchange\-key=\fP‌\fIMASTERKEY\fP]
+[\fB\-r\fP\ |\ \fB–remove\fP]
+[\fB\-u\fP\ \fIEXCHANGE_URL\fP\ |\ \fB–auditor\-url=\fP‌\fIEXCHANGE_URL\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-auditor\-exchange\fP is a command\-line tool to be used by an
@@ -49,27 +49,27 @@ taler\-auditor or taler\-wire\-auditor. Afterwards the exchange will be
visible via the /exchanges API of the taler\-auditor\-httpd.
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the exchange to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-m\fP \fIMASTERKEY\fP | \fB\-\-exchange\-key=\fP‌\fIMASTERKEY\fP
+\fB\-m\fP \fIMASTERKEY\fP | \fB–exchange\-key=\fP‌\fIMASTERKEY\fP
Public key of the exchange in Crockford base32 encoding, for example
as generated by \fBtaler\-auditor\-offline setup\fP\&.
.TP
-\fB\-r\fP | \fB\-\-remove\fP
+\fB\-r\fP | \fB–remove\fP
Instead of adding the exchange, remove it. Note that this will drop
ALL data associated with that exchange, including existing auditing
information. So use with extreme care!
.TP
-\fB\-u\fP \fIEXCHANGE_URL\fP | \fB\-\-auditor\-url=\fP‌\fIEXCHANGE_URL\fP
+\fB\-u\fP \fIEXCHANGE_URL\fP | \fB–auditor\-url=\fP‌\fIEXCHANGE_URL\fP
URL of the exchange. The exchange’s HTTP API must be available at
this address.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH DIAGNOSTICS
diff --git a/man/taler-auditor-httpd.1 b/man/taler-auditor-httpd.1
index 3fd6ecbe..194bf2e2 100644
--- a/man/taler-auditor-httpd.1
+++ b/man/taler-auditor-httpd.1
@@ -27,19 +27,19 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-AUDITOR-HTTPD" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-AUDITOR-HTTPD" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-auditor-httpd \- HTTP server providing a RESTful API to access a Taler auditor
.SH SYNOPSIS
.sp
\fBtaler\-auditor\-httpd\fP
-[\fB\-C\fP\ |\ \fB\-\-connection\-close\fP]
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-t\fP\ \fISECONDS\fP\ |\ \fB\-\-timeout\fP\fISECONDS\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-C\fP\ |\ \fB–connection\-close\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-t\fP\ \fISECONDS\fP\ |\ \fB–timeout\fP\fISECONDS\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-auditor\-httpd\fP is a command\-line tool to run the Taler auditor
@@ -48,30 +48,30 @@ before running this command.
.SH OPTIONS
.INDENT 0.0
.TP
-\fB\-C\fP | \fB\-\-connection\-close\fP
+\fB\-C\fP | \fB–connection\-close\fP
Force each HTTP connection to be closed after each request
(useful in combination with \-f to avoid having to wait for nc to
time out).
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP\fIFILENAME\fP
Use the configuration and other resources for the auditor to
operate from FILENAME.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-t\fP \fISECONDS\fP | \fB\-\-timeout=\fP\fISECONDS\fP
+\fB\-t\fP \fISECONDS\fP | \fB–timeout=\fP\fISECONDS\fP
Specifies the number of \fISECONDS\fP after which the HTTPD should close
(idle) HTTP connections.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SIGNALS
diff --git a/man/taler-auditor-offline.1 b/man/taler-auditor-offline.1
index 2bd40d06..8181e1b4 100644
--- a/man/taler-auditor-offline.1
+++ b/man/taler-auditor-offline.1
@@ -27,18 +27,18 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-AUDITOR-OFFLINE" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-AUDITOR-OFFLINE" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-auditor-offline \- Taler auditor certifies that it audits a Taler exchange
.SH SYNOPSIS
.sp
\fBtaler\-auditor\-offline\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
-[subcommand ...]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
+[subcommand …]
.SH DESCRIPTION
.sp
\fBtaler\-auditor\-offline\fP is a command\-line tool to be used by an auditor to
@@ -47,7 +47,7 @@ signature, the auditor affirms that he will verify that the exchange is
properly accounting for coins of those denominations. The tool takes a list
of subcommands as arguments which are then processed sequentially.
.sp
-The tool includes two subcommands to interact \fIonline\fP with the exchange\(aqs
+The tool includes two subcommands to interact \fIonline\fP with the exchange’s
REST APIs. The \fBdownload\fP subcommand downloads current public keys from the
running exchange. Note that this only includes keys that the exchange
operator has previously validated using the \fBtaler\-exchange\-offline\fP tool.
@@ -55,10 +55,10 @@ The resulting data serves as input to the \fBsign\fP and \fBshow\fP subcommands.
.sp
The \fBupload\fP subcommand uploads the signatures created with the private key to
the exchange. It handles the output of all subcommands (except \fBdownload\fP).
-The \fBdownload\fP and \fBupload\fP subcommands must naturally be run \(dqonline\(dq and do not
-require access to the auditor\(aqs private key, which should be kept offline.
+The \fBdownload\fP and \fBupload\fP subcommands must naturally be run “online” and do not
+require access to the auditor’s private key, which should be kept offline.
.sp
-All other subcommands are intended to be run \(dqoffline\(dq. However, especially
+All other subcommands are intended to be run “offline”. However, especially
when testing, it is of course possible to run the subcommands online as well.
Generally, subcommands read inputs (beyond command\-line arguments)
from \fBstdin\fP\&. However, they may also consume outputs of previous
@@ -68,47 +68,45 @@ and if not consumed the final output is printed to \fBstdout\fP\&.
The general options for \fBtaler\-auditor\-offline\fP are:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the merchant to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH CONFIGURATION
.sp
The exchange and the \fBtaler\-auditor\-httpd\fP must both be provided with
-the auditor\(aqs public key, such that they can validate messages signed
-by the auditor. To obtain the auditor\(aqs public key, use:
+the auditor’s public key, such that they can validate messages signed
+by the auditor. To obtain the auditor’s public key, use:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ taler\-auditor\-offline setup
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
Note that if the private key file already exists, the above will simply output
-the existing key. Passing additional arguments after setup (including \(dq\-\(dq)
+the existing key. Passing additional arguments after setup (including “\-“)
will cause the output to be encapsulated in JSON.
.sp
Relevant configuration options for \fBtaler\-auditor\-offline\fP are:
.INDENT 0.0
.IP \(bu 2
-\fB[auditor/AUDITOR_PRIV_FILE]\fP \-\-\- where to store the private key
+\fB[auditor/AUDITOR_PRIV_FILE]\fP — where to store the private key
.UNINDENT
.SH SUBCOMMANDS
.SS setup
@@ -159,44 +157,36 @@ required arguments.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ taler\-auditor\-offline download > keys.json
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS Show information about public keys (offline or online)
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ taler\-auditor\-offline show < keys.json
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS Sign public keys (offline)
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ taler\-auditor\-offline sign < keys.json > sigs.json
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS Upload auditor signatures (online)
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ taler\-auditor\-offline upload < sigs.json
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS Download, sign and upload, all in one (online)
@@ -205,11 +195,9 @@ Note that doing this is only recommended in non\-production deployments.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ taler\-auditor\-offline download sign upload
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SH SECURITY CONSIDERATIONS
diff --git a/man/taler-auditor-sync.1 b/man/taler-auditor-sync.1
index cfd9392f..1b58870e 100644
--- a/man/taler-auditor-sync.1
+++ b/man/taler-auditor-sync.1
@@ -27,23 +27,23 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-AUDITOR-SYNC" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-AUDITOR-SYNC" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-auditor-sync \- tool to safely synchronize auditor database
.SH SYNOPSIS
.sp
\fBtaler\-auditor\-sync\fP
-[\fB\-s\fP\ \fIFILENAME\fP\ |\ \fB\-\-source\-configuration=\fP‌\fIFILENAME\fP]
-[\fB\-d\fP\ \fIFILENAME\fP\ |\ \fB\-\-destination\-configuration=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-b\fP\ \fISIZE\fP\ |\ \fB\-\-batch=\fP‌\fISIZE\fP]
-[\fB\-t\fP\ |\ \fB\-\-terminate\-when\-synchronized\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-s\fP\ \fIFILENAME\fP\ |\ \fB–source\-configuration=\fP‌\fIFILENAME\fP]
+[\fB\-d\fP\ \fIFILENAME\fP\ |\ \fB–destination\-configuration=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-b\fP\ \fISIZE\fP\ |\ \fB–batch=\fP‌\fISIZE\fP]
+[\fB\-t\fP\ |\ \fB–terminate\-when\-synchronized\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
.SH DESCRIPTION
.sp
\fBtaler\-auditor\-sync\fP is a command\-line tool to synchronize the
-Taler auditor\(aqs database in a safe way from a Taler exchange
+Taler auditor’s database in a safe way from a Taler exchange
database. If the exchange database violates the assumed database
invariants (as expressed by database constraints) or attempts to
DELETE or UPDATE tables (at least those that the auditor relies
@@ -53,31 +53,31 @@ and instead halt with an error.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-s\fP \fIFILENAME\fP | \fB\-\-source\-configuration=\fP‌\fIFILENAME\fP
+\fB\-s\fP \fIFILENAME\fP | \fB–source\-configuration=\fP‌\fIFILENAME\fP
Use the configuration in \fIFILENAME\fP to access the original (source) exchange
database to copy records from.
.TP
-\fB\-d\fP \fIFILENAME\fP | \fB\-\-destination\-configuration=\fP‌\fIFILENAME\fP
+\fB\-d\fP \fIFILENAME\fP | \fB–destination\-configuration=\fP‌\fIFILENAME\fP
Use the configuration in \fIFILENAME\fP to access the target (destination) exchange
database to copy records to.
.TP
-\fB\-t\fP | \fB\-\-terminate\-when\-synchronized\fP
+\fB\-t\fP | \fB–terminate\-when\-synchronized\fP
The program should exit once the two databases are in sync, instead of continuously
copying more records when the source database is updated.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-b\fP \fISIZE\fP | \fB\-\-batch=\fP‌\fISIZE\fP
+\fB\-b\fP \fISIZE\fP | \fB–batch=\fP‌\fISIZE\fP
Target number of records to copy in one transaction. Once the databases are
in sync, the batch size is used to determine how long the process sleeps before
trying to again synchronize the two databases. Not useful if \fB\-t\fP is used.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-auditor.1 b/man/taler-auditor.1
index 6daada12..84d38d2a 100644
--- a/man/taler-auditor.1
+++ b/man/taler-auditor.1
@@ -27,21 +27,21 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-AUDITOR" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-AUDITOR" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-auditor \- audit exchange
.SH SYNOPSIS
.sp
\fBtaler\-auditor\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-i**_|_\fP\-\-internal**]
-[\fB\-I**_|_\fP\-\-ignore\-not\-found**]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-m\fP\ \fIMASTER_KEY\fP\ |\ \fB\-\-exchange\-key=\fP‌\fIMASTER_KEY\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel\fP\fIUSEC\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-i**_|_\fP–internal**]
+[\fB\-I**_|_\fP–ignore\-not\-found**]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-m\fP\ \fIMASTER_KEY\fP\ |\ \fB–exchange\-key=\fP‌\fIMASTER_KEY\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel\fP\fIUSEC\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-auditor\fP is a command\-line tool to be used by an auditor to
@@ -55,40 +55,40 @@ incoming and outgoing wire transfers that the bank claims to have
matches the exchange’s database. Its options are as follows.
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the merchant to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-i\fP | \fB\-\-internal\fP
+\fB\-i\fP | \fB–internal\fP
Run additional checks that can only performed on the exchange\-internal
-database and not the \(dqsafe\(dq replicated database at the auditor.
+database and not the “safe” replicated database at the auditor.
.TP
-\fB\-I\fP | \fB\-\-ignore\-not\-found\fP
+\fB\-I\fP | \fB–ignore\-not\-found\fP
Do not fail if the bank says that the exchange bank account does not (yet) exist.
Keep trying.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-m\fP \fIKEY\fP | \fB\-\-exchange\-key=\fP‌\fIKEY\fP
+\fB\-m\fP \fIKEY\fP | \fB–exchange\-key=\fP‌\fIKEY\fP
Public master key of the exchange in Crockford base32 encoding, for
example as generated by \fBtaler\-auditor\-offline setup\fP\&. If this option is missing,
taler\-auditor will use the MASTER_PUBLIC_KEY value from the
“exchange” section of the configuration.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-bank-benchmark.1 b/man/taler-bank-benchmark.1
index 9d9b0111..b66caef5 100644
--- a/man/taler-bank-benchmark.1
+++ b/man/taler-bank-benchmark.1
@@ -27,68 +27,68 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-BANK-BENCHMARK" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-BANK-BENCHMARK" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-bank-benchmark \- measure bank performance
.SH SYNOPSIS
.sp
\fBtaler\-bank\-benchmark\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-f\fP\ |\ \fB\-\-fakebank\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-p\fP\ \fINPROCS\fP\ |\ \fB\-\-worker\-parallelism=\fP\fINPROCS\fP]
-[\fB\-r\fP\ \fINRESERVES\fP\ |\ \fB\-\-reserves=\fP\fINRESERVES\fP]
-[\fB\-u\fP\ \fISECTION\fP\ |\ \fB\-\-exchange\-account\-section=\fP\fISECTION\fP]
-[\fB\-V\fP\ |\ \fB\-\-verbose\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
-[\fB\-w**_*NPROC*\ |\ **\-\-wirewatch=\fP\fINPROC\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-f\fP\ |\ \fB–fakebank\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-p\fP\ \fINPROCS\fP\ |\ \fB–worker\-parallelism=\fP\fINPROCS\fP]
+[\fB\-r\fP\ \fINRESERVES\fP\ |\ \fB–reserves=\fP\fINRESERVES\fP]
+[\fB\-u\fP\ \fISECTION\fP\ |\ \fB–exchange\-account\-section=\fP\fISECTION\fP]
+[\fB\-V\fP\ |\ \fB–verbose\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
+[\fB\-w**_*NPROC*\ |\ **–wirewatch=\fP\fINPROC\fP]
.SH DESCRIPTION
.sp
-\fBtaler\-bank\-benchmark\fP is a command\-line tool to benchmark only the \(dqbank\(dq
+\fBtaler\-bank\-benchmark\fP is a command\-line tool to benchmark only the “bank”
and the \fBtaler\-exchange\-wirewatch\fP tool.
.sp
The options for \fBtaler\-bank\-benchmark\fP are:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the merchant to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-f\fP | \fB\-\-fakebank\fP
+\fB\-f\fP | \fB–fakebank\fP
Expect to be run against a fakebank (instead of against libeufin)
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-m\fP \fIMODE\fP | \fB\-\-mode=\fP\fIMODE\fP
+\fB\-m\fP \fIMODE\fP | \fB–mode=\fP\fIMODE\fP
Run as \fBbank\fP, \fBclient\fP or \fBboth\fP\&.
If unspecified, \fIMODE\fP defaults to \fBboth\fP\&.
.TP
-\fB\-p\fP \fINPROCS\fP | \fB\-\-worker\-parallelism=\fP\fINPROCS\fP
+\fB\-p\fP \fINPROCS\fP | \fB–worker\-parallelism=\fP\fINPROCS\fP
Run with \fINPROCS\fP client processes.
.TP
-\fB\-r\fP \fINRESERVES\fP | \fB\-\-reserves=\fP\fINRESERVES\fP
+\fB\-r\fP \fINRESERVES\fP | \fB–reserves=\fP\fINRESERVES\fP
Create \fINRESERVES\fP reserves per client.
.TP
-\fB\-u\fP \fISECTION\fP | \fB\-\-exchange\-account\-section=\fP\fISECTION\fP
+\fB\-u\fP \fISECTION\fP | \fB–exchange\-account\-section=\fP\fISECTION\fP
Use \fISECTION\fP as the name of the configuration section which specifies the exchange bank account.
.TP
-\fB\-V\fP | \fB\-\-verbose\fP
+\fB\-V\fP | \fB–verbose\fP
Display more output than usual.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.TP
-\fB\-w\fP \fINPROC\fP | \fB\-\-wirewatch=\fP\fINPROC\fP
+\fB\-w\fP \fINPROC\fP | \fB–wirewatch=\fP\fINPROC\fP
Run \fINPROC\fP processes of the \fBtaler\-exchange\-wirewatch\fP tool.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-config.1 b/man/taler-config.1
index 77308493..84d4cfc9 100644
--- a/man/taler-config.1
+++ b/man/taler-config.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-CONFIG" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-CONFIG" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-config \- Taler configuration inspection and editing
.SH SYNOPSIS
diff --git a/man/taler-exchange-aggregator.1 b/man/taler-exchange-aggregator.1
index 380afe9e..4649cd2e 100644
--- a/man/taler-exchange-aggregator.1
+++ b/man/taler-exchange-aggregator.1
@@ -27,20 +27,20 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-EXCHANGE-AGGREGATOR" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-EXCHANGE-AGGREGATOR" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-exchange-aggregator \- aggregate deposits into wire transfers
.SH SYNOPSIS
.sp
\fBtaler\-exchange\-aggregator\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel\fP\fIUSEC\fP]
-[\fB\-t\fP\ |\ \fB\-\-test\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
-[\fB\-y**_|_\fP\-\-kyc\-off**]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel\fP\fIUSEC\fP]
+[\fB\-t\fP\ |\ \fB–test\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
+[\fB\-y**_|_\fP–kyc\-off**]
.SH DESCRIPTION
.sp
\fBtaler\-exchange\-aggregator\fP is a command\-line tool to run aggregate deposits
@@ -49,35 +49,35 @@ done by \fBtaler\-exchange\-transfer\fP\&.
.sp
The AGGREGATOR_SHARD_SIZE option can be used to allow multiple aggregator processes to run in parallel and share the load. This is only recommended if a single aggregator is insufficient for the workload.
.sp
-The aggregator uses a special table to lock shards it is working on. If an aggregator process dies (say due to a power failure), these shard locks may prevent the aggregator from resuming normally. In this case, you must run \(dqtaler\-exchange\-dbinit \-s\(dq to release the shard locks before restarting the aggregator.
+The aggregator uses a special table to lock shards it is working on. If an aggregator process dies (say due to a power failure), these shard locks may prevent the aggregator from resuming normally. In this case, you must run “taler\-exchange\-dbinit \-s” to release the shard locks before restarting the aggregator.
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the exchange to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-t\fP | \fB\-\-test\fP
+\fB\-t\fP | \fB–test\fP
Run in test mode and exit when idle.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.TP
-\fB\-y\fP | \fB\-\-kyc\-off\fP
+\fB\-y\fP | \fB–kyc\-off\fP
Run without KYC checks. Talk with your regulator before using this option.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-exchange-benchmark.1 b/man/taler-exchange-benchmark.1
index af4e332d..ed9966be 100644
--- a/man/taler-exchange-benchmark.1
+++ b/man/taler-exchange-benchmark.1
@@ -27,24 +27,24 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-EXCHANGE-BENCHMARK" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-EXCHANGE-BENCHMARK" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-exchange-benchmark \- measure exchange performance
.SH SYNOPSIS
.sp
\fBtaler\-exchange\-benchmark\fP
-[\fB\-c\fP\ \fICONFIG_FILENAME\fP\ |\ \fB\-\-config=\fP‌\fICONFIG_FILENAME\fP]
-[\fB\-F\fP\ |\ \fB\-\-reserves\-first\fP]
-[\fB\-f\fP\ |\ \fB\-\-fakebank\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-log\-level=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-n\fP\ \fIHOWMANY_COINS\fP\ |\ \fB\-\-coins\-number=\fP‌\fIHOWMANY_COINS\fP]
-[\fB\-p\fP\ \fINPROCS\fP\ |\ \fB\-\-parallelism=\fP\fINPROCS\fP]
-[\fB\-R\fP\ \fIRATE\fP\ |\ \fB\-\-refresh\-rate=\fP\fIRATE\fP]
-[\fB\-r\fP\ \fIN\fP\ |\ \fB\-\-reserves=\fP\fIN\fP]
-[\fB\-u\fP\ \fISECTION\fP\ |\ \fB\-\-exchange\-account\-section=\fP\fISECTION\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fICONFIG_FILENAME\fP\ |\ \fB–config=\fP‌\fICONFIG_FILENAME\fP]
+[\fB\-F\fP\ |\ \fB–reserves\-first\fP]
+[\fB\-f\fP\ |\ \fB–fakebank\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–log\-level=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-n\fP\ \fIHOWMANY_COINS\fP\ |\ \fB–coins\-number=\fP‌\fIHOWMANY_COINS\fP]
+[\fB\-p\fP\ \fINPROCS\fP\ |\ \fB–parallelism=\fP\fINPROCS\fP]
+[\fB\-R\fP\ \fIRATE\fP\ |\ \fB–refresh\-rate=\fP\fIRATE\fP]
+[\fB\-r\fP\ \fIN\fP\ |\ \fB–reserves=\fP\fIN\fP]
+[\fB\-u\fP\ \fISECTION\fP\ |\ \fB–exchange\-account\-section=\fP\fISECTION\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-exchange\-benchmark\fP is a command\-line tool to measure the time
@@ -52,44 +52,44 @@ spent to serve withdrawals/deposits/refreshes. Before running the benchmark,
the GNU Taler services must already be running at the configured addresses.
.INDENT 0.0
.TP
-\fB\-c\fP \fICONFIG_FILENAME\fP | \fB\-\-config=\fP‌\fICONFIG_FILENAME\fP
+\fB\-c\fP \fICONFIG_FILENAME\fP | \fB–config=\fP‌\fICONFIG_FILENAME\fP
(Mandatory) Use CONFIG_FILENAME.
.TP
-\fB\-F\fP | \fB\-\-reserves\-first\fP
+\fB\-F\fP | \fB–reserves\-first\fP
Create all reserves first, before starting normal operations.
.TP
-\fB\-f\fP | \fB\-\-fakebank\fP
+\fB\-f\fP | \fB–fakebank\fP
Expect to interact with a fakebank instead of libeufin.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Prints a compiled\-in help text.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-log\-level=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–log\-level=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-n\fP \fIHOWMANY_COINS\fP | \fB\-\-coins\-number=\fP‌\fIHOWMANY_COINS\fP
+\fB\-n\fP \fIHOWMANY_COINS\fP | \fB–coins\-number=\fP‌\fIHOWMANY_COINS\fP
Defaults to 1. Specifies how many coins this benchmark should
withdraw and spend. After being spent, each coin will be refreshed
with a probability RATE (see option \fB\-\-refresh\-rate\fP).
.TP
-\fB\-p\fP \fINPROCS\fP | \fB\-\-parallelism=\fP\fINPROCS\fP
+\fB\-p\fP \fINPROCS\fP | \fB–parallelism=\fP\fINPROCS\fP
Run with \fINPROCS\fP client processes.
.TP
-\fB\-R\fP \fIRATE\fP | \fB\-\-refresh\-rate=\fP\fIRATE\fP
+\fB\-R\fP \fIRATE\fP | \fB–refresh\-rate=\fP\fIRATE\fP
Defaults to 10. Probability of refresh per coin (0\-100).
.TP
-\fB\-r\fP \fIN\fP | \fB\-\-reserves=\fP\fIN\fP
+\fB\-r\fP \fIN\fP | \fB–reserves=\fP\fIN\fP
Create \fIN\fP reserves per client.
.TP
-\fB\-u\fP \fISECTION\fP | \fB\-\-exchange\-account\-section=\fP\fISECTION\fP
+\fB\-u\fP \fISECTION\fP | \fB–exchange\-account\-section=\fP\fISECTION\fP
Which configuration section should be used for the bank account
of the exchange.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-exchange-closer.1 b/man/taler-exchange-closer.1
index 0ece10b3..969ca07c 100644
--- a/man/taler-exchange-closer.1
+++ b/man/taler-exchange-closer.1
@@ -27,19 +27,19 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-EXCHANGE-CLOSER" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-EXCHANGE-CLOSER" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-exchange-closer \- close idle reserves
.SH SYNOPSIS
.sp
\fBtaler\-exchange\-closer\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel=\fP\fIUSEC\fP]
-[\fB\-t\fP\ |\ \fB\-\-test\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel=\fP\fIUSEC\fP]
+[\fB\-t\fP\ |\ \fB–test\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-exchange\-closer\fP is a command\-line tool to run close
@@ -47,29 +47,29 @@ reserves that have been idle for too long, causing transfers
to the originating bank account to be scheduled.
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the exchange to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-t\fP | \fB\-\-test\fP
+\fB\-t\fP | \fB–test\fP
Run in test mode and exit when idle.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-exchange-dbconfig.1 b/man/taler-exchange-dbconfig.1
index 84a9f814..9f3b7d97 100644
--- a/man/taler-exchange-dbconfig.1
+++ b/man/taler-exchange-dbconfig.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-EXCHANGE-DBCONFIG" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-EXCHANGE-DBCONFIG" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-exchange-dbconfig \- configure Taler exchange database
.SH SYNOPSIS
diff --git a/man/taler-exchange-dbinit.1 b/man/taler-exchange-dbinit.1
index ce0d12e4..a5a2ec8a 100644
--- a/man/taler-exchange-dbinit.1
+++ b/man/taler-exchange-dbinit.1
@@ -27,20 +27,20 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-EXCHANGE-DBINIT" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-EXCHANGE-DBINIT" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-exchange-dbinit \- initialize Taler exchange database
.SH SYNOPSIS
.sp
\fBtaler\-exchange\-dbinit\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-g\fP\ |\ \fB\-\-gc\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-r\fP\ |\ \fB\-\-reset\fP]
-[\fB\-s\fP\ |\ \fB\-\-shardunlock\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-g\fP\ |\ \fB–gc\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-r\fP\ |\ \fB–reset\fP]
+[\fB\-s\fP\ |\ \fB–shardunlock\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-exchange\-dbinit\fP is a command\-line tool to initialize the Taler
@@ -50,29 +50,29 @@ Taler exchange to operate.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the exchange to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-g\fP | \fB\-\-gc\fP
+\fB\-g\fP | \fB–gc\fP
Garbage collect database. Deletes all unnecessary data in the
database.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-r\fP | \fB\-\-reset\fP
+\fB\-r\fP | \fB–reset\fP
Drop tables. Dangerous, will delete all existing data in the database
before creating the tables.
.TP
-\fB\-s\fP | \fB\-\-shardunlock\fP
+\fB\-s\fP | \fB–shardunlock\fP
Clears the (revolving) shards table. Needed to clear locks that may be held after a crash (of taler\-exchange\-aggregator or the operating system, say due to power outage) or if the AGGREGATOR_SHARD_SIZE option is changed in the configuration file.
.TP
\fB\-v\fP | \fB–version\fP
diff --git a/man/taler-exchange-drain.1 b/man/taler-exchange-drain.1
index 0746bbe3..073409ce 100644
--- a/man/taler-exchange-drain.1
+++ b/man/taler-exchange-drain.1
@@ -27,40 +27,40 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-EXCHANGE-DRAIN" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-EXCHANGE-DRAIN" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-exchange-drain \- drain profits from exchange
.SH SYNOPSIS
.sp
\fBtaler\-exchange\-drain\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
-\fBtaler\-exchange\-drain\fP is used to trigger a wire transfer from the exchange\(aqs escrow account to a normal (non\-escrowed) bank account of the exchange. The entire drain process is necessary to ensure that the auditor is aware of the
+\fBtaler\-exchange\-drain\fP is used to trigger a wire transfer from the exchange’s escrow account to a normal (non\-escrowed) bank account of the exchange. The entire drain process is necessary to ensure that the auditor is aware of the
balance changes arising from an exchange making profits from fees.
.sp
-To use it, you must first create an upload a \(aqdrain\(aq command using \fBtaler\-exchange\-offline\fP\&. Afterwards this command should be run to actually queue the drain. The actual drain will then be executed by \fBtaler\-exchange\-transfer\fP\&.
+To use it, you must first create an upload a ‘drain’ command using \fBtaler\-exchange\-offline\fP\&. Afterwards this command should be run to actually queue the drain. The actual drain will then be executed by \fBtaler\-exchange\-transfer\fP\&.
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the exchange to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-exchange-expire.1 b/man/taler-exchange-expire.1
index 3e2f3bc1..35ca93ac 100644
--- a/man/taler-exchange-expire.1
+++ b/man/taler-exchange-expire.1
@@ -27,19 +27,19 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-EXCHANGE-EXPIRE" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-EXCHANGE-EXPIRE" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-exchange-expire \- refund expired purses
.SH SYNOPSIS
.sp
\fBtaler\-exchange\-expire\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel=\fP\fIUSEC\fP]
-[\fB\-t\fP\ |\ \fB\-\-test\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel=\fP\fIUSEC\fP]
+[\fB\-t\fP\ |\ \fB–test\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-exchange\-expire\fP is a command\-line tool to run refund
@@ -48,29 +48,29 @@ This allows the wallet to recover the funds deposited into the
purse using a refresh operation.
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the exchange to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-t\fP | \fB\-\-test\fP
+\fB\-t\fP | \fB–test\fP
Run in test mode and exit when idle.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-exchange-httpd.1 b/man/taler-exchange-httpd.1
index 63b8997b..655c0264 100644
--- a/man/taler-exchange-httpd.1
+++ b/man/taler-exchange-httpd.1
@@ -27,24 +27,24 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-EXCHANGE-HTTPD" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-EXCHANGE-HTTPD" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-exchange-httpd \- run Taler exchange (with RESTful API)
.SH SYNOPSIS
.sp
\fBtaler\-exchange\-httpd\fP
-[\fB\-a\fP\ |\ \fB\-\-allow\-timetravel\fP]
-[\fB\-C\fP\ |\ \fB\-\-connection\-close\fP]
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-f\fP\ \fIFILENAME\fP\ |\ \fB\-\-file\-input=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-n\fP\ \fIN\fP\ |\ \fB\-\-num\-threads=\fP\fIN\fP]
-[\fB\-r**|\fP\-\-allow\-reuse\-address**]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel=\fP\fIUSEC\fP]
-[\fB\-t\fP\ \fISECONDS\fP\ |\ \fB\-\-timeout=\fP‌\fISECONDS\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-a\fP\ |\ \fB–allow\-timetravel\fP]
+[\fB\-C\fP\ |\ \fB–connection\-close\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-f\fP\ \fIFILENAME\fP\ |\ \fB–file\-input=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-n\fP\ \fIN\fP\ |\ \fB–num\-threads=\fP\fIN\fP]
+[\fB\-r**|\fP–allow\-reuse\-address**]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel=\fP\fIUSEC\fP]
+[\fB\-t\fP\ \fISECONDS\fP\ |\ \fB–timeout=\fP‌\fISECONDS\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-exchange\-httpd\fP is a command\-line tool to run the Taler
@@ -54,24 +54,24 @@ must exist before running this command.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-a\fP | \fB\-\-allow\-timetravel\fP
+\fB\-a\fP | \fB–allow\-timetravel\fP
Allow clients to request /keys for arbitrary timestamps.
This should only be enabled for testing and development,
as clients could abuse this in denial of service attacks,
as it makes the /keys response generation much more expensive.
.TP
-\fB\-C\fP | \fB\-\-connection\-close\fP
+\fB\-C\fP | \fB–connection\-close\fP
Force each HTTP connection to be closed after each request (useful in
combination with \fB\-f\fP to avoid having to wait for
netcat (nc) to time out).
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the merchant to operate
from FILENAME.
.TP
-\fB\-f\fP \fIFILENAME\fP | \fB\-\-file\-input=\fP‌\fIFILENAME\fP
+\fB\-f\fP \fIFILENAME\fP | \fB–file\-input=\fP‌\fIFILENAME\fP
This option is only available if the exchange was compiled with the
-configure option \-\-enable\-developer\-mode. It is used for generating
+configure option –enable\-developer\-mode. It is used for generating
test cases against the exchange using AFL. When this option is
present, the HTTP server will
.INDENT 7.0
@@ -89,31 +89,31 @@ input from an HTTP client and then immediately exit. This is useful
to test taler\-exchange\-httpd against many different possible inputs
in a controlled way.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-r\fP | \fB\-\-allow\-reuse\-address\fP
+\fB\-r\fP | \fB–allow\-reuse\-address\fP
Allow the exchange to re\-use the listen port even if another service
is already using it. Useful if multiple processes are used to increase
processing capacity.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-t\fP \fISECONDS\fP | \fB\-\-timeout=\fP‌\fISECONDS\fP
+\fB\-t\fP \fISECONDS\fP | \fB–timeout=\fP‌\fISECONDS\fP
Specifies the number of SECONDS after which the HTTPD should close
(idle) HTTP connections.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SIGNALS
diff --git a/man/taler-exchange-kyc-aml-pep-trigger.1 b/man/taler-exchange-kyc-aml-pep-trigger.1
index 75a51c06..b628349d 100644
--- a/man/taler-exchange-kyc-aml-pep-trigger.1
+++ b/man/taler-exchange-kyc-aml-pep-trigger.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-EXCHANGE-KYC-AML-PEP-TRIGGER" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-EXCHANGE-KYC-AML-PEP-TRIGGER" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-exchange-kyc-aml-pep-trigger \- Taler KYC_AML_TRIGGER example
.SH SYNOPSIS
@@ -35,7 +35,7 @@ taler-exchange-kyc-aml-pep-trigger \- Taler KYC_AML_TRIGGER example
\fBtaler\-exchange\-kyc\-aml\-pep\-trigger\fP
.SH DESCRIPTION
.sp
-\fBtaler\-exchange\-kyc\-aml\-pep\-trigger\fP is a trivial shell script to illustrate how to trigger an AML process when the KYC process sets the \(dqPEP\(dq flag in the attribute data.
+\fBtaler\-exchange\-kyc\-aml\-pep\-trigger\fP is a trivial shell script to illustrate how to trigger an AML process when the KYC process sets the “PEP” flag in the attribute data.
.sp
The script is mostly an example (or starting point) for
writing programs for the KYC_AML_TRIGGER option of the
diff --git a/man/taler-exchange-kyc-tester.1 b/man/taler-exchange-kyc-tester.1
index cd6bb2eb..40dbd2bb 100644
--- a/man/taler-exchange-kyc-tester.1
+++ b/man/taler-exchange-kyc-tester.1
@@ -27,24 +27,24 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-EXCHANGE-KYC-TESTER" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-EXCHANGE-KYC-TESTER" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-exchange-kyc-tester \- test KYC service integration
.SH SYNOPSIS
.sp
\fBtaler\-exchange\-kyc\-tester\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-i\fP\ \fISECTION_NAME\fP\ |\ \fB\-\-initiate=\fP‌\fISECTION_NAME\fP]
-[\fB\-u\fP\ \fIID\fP\ |\ \fB\-\-user=\fP‌\fIID\fP]
-[\fB\-U\fP\ \fIID\fP\ |\ \fB\-\-legitimization=\fP‌\fIID\fP]
-[\fB\-P\fP\ |\ \fB\-\-print\-payto\-hash\fP]
-[\fB\-p\fP\ \fIHASH\fP\ |\ \fB\-\-payto\-hash=\fP‌\fIHASH\fP]
-[\fB\-r\fP\ \fINUMBER\fP\ |\ \fB\-\-rowid=\fP‌\fINUMBER\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
-[\fB\-w\fP\ |\ \fB\-\-run\-webservice\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-i\fP\ \fISECTION_NAME\fP\ |\ \fB–initiate=\fP‌\fISECTION_NAME\fP]
+[\fB\-u\fP\ \fIID\fP\ |\ \fB–user=\fP‌\fIID\fP]
+[\fB\-U\fP\ \fIID\fP\ |\ \fB–legitimization=\fP‌\fIID\fP]
+[\fB\-P\fP\ |\ \fB–print\-payto\-hash\fP]
+[\fB\-p\fP\ \fIHASH\fP\ |\ \fB–payto\-hash=\fP‌\fIHASH\fP]
+[\fB\-r\fP\ \fINUMBER\fP\ |\ \fB–rowid=\fP‌\fINUMBER\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
+[\fB\-w\fP\ |\ \fB–run\-webservice\fP]
.SH DESCRIPTION
.sp
\fBtaler\-exchange\-kyc\-tester\fP is used to test the interaction between a Taler exchange and a KYC service. The tool can be used to manually trigger the various steps of a KYC process and to observe the interaction with the respective KYC service. It is supposted to help test the configuration of the integration, and \fInot\fP required at all during production.
@@ -53,48 +53,48 @@ To use it, you must first provide a configuration file with at least one KYC ser
.sp
Begin with a first invocation of taler\-exchange\-kyc\-tester using the options \fB\-i\fP for an individual or business and use \fB\-R\fP to specify a list of checks required from the process. The output will be an URL to visit with the browser, as well as \fB\-p\fP, \fB\-u\fP, \fB\-U\fP options to use in future invocations of the tool.
.sp
-Next, run taler\-exchange\-kyc\-tester again, but this time using \fB\-w\fP (to run the Webserver) and using the \fB\-u\fP and \fB\-U\fP options output by the previous call, as well as the \fB\-p\fP option with the payto hash. Then visit the Web site from the link output by the previous invocation and \(dqpass\(dq (or \(dqfail\(dq) the KYC check.
+Next, run taler\-exchange\-kyc\-tester again, but this time using \fB\-w\fP (to run the Webserver) and using the \fB\-u\fP and \fB\-U\fP options output by the previous call, as well as the \fB\-p\fP option with the payto hash. Then visit the Web site from the link output by the previous invocation and “pass” (or “fail”) the KYC check.
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the exchange to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-i\fP \fIUSERTYPE\fP | \fB\-\-initiate=\fP‌\fIUSERTYPE\fP
-Specifies the type of user for which we are starting a fresh KYC process. USERTYPE must be either \(dqindividual\(dq or \(dqbusiness\(dq.
+\fB\-i\fP \fIUSERTYPE\fP | \fB–initiate=\fP‌\fIUSERTYPE\fP
+Specifies the type of user for which we are starting a fresh KYC process. USERTYPE must be either “individual” or “business”.
.TP
-\fB\-u\fP \fIID\fP | \fB\-\-user=\fP‌\fIID\fP
+\fB\-u\fP \fIID\fP | \fB–user=\fP‌\fIID\fP
Run the process with ID for the user identifier at the KYC provider. Not useful in conjunction with \fB\-i\fP and \fB\-R\fP as that option will override whatever value is provided here.
.TP
-\fB\-U\fP \fIID\fP | \fB\-\-legitimization=\fP‌\fIID\fP
+\fB\-U\fP \fIID\fP | \fB–legitimization=\fP‌\fIID\fP
Run the process with ID for the legitimization process identifier at the KYC provider. Not useful in conjunction with \fB\-R\fP / \fB\-i\fP as that option will override whatever value is provided here.
.TP
-\fB\-p\fP \fIHASH\fP | \fB\-\-payto\-hash=\fP‌\fIHASH\fP
+\fB\-p\fP \fIHASH\fP | \fB–payto\-hash=\fP‌\fIHASH\fP
Run the process with HASH as the hash of the payto://\-URI that identifies the account or wallet triggering the KYC requirement. If not given, a fresh random value is used. Rarely useful.
.TP
-\fB\-P\fP | \fB\-\-print\-payto\-hash\fP
+\fB\-P\fP | \fB–print\-payto\-hash\fP
Print the HASH of the payto://\-URI used for the KYC simulation this time. Useful if the hash is needed for a subsequent use in conjunction with \fB\-p\fP\&.
.TP
-\fB\-r\fP \fINUMBER\fP | \fB\-\-rowid=\fP‌\fINUMBER\fP
+\fB\-r\fP \fINUMBER\fP | \fB–rowid=\fP‌\fINUMBER\fP
Run the process with NUMBER as the database row for the legitimization operation. Rarely useful, except maybe for debugging. Defaults to 42.
.TP
-\fB\-R\fP \fICHECKS\fP | \fB\-\-requirements=\fP‌\fICHECKS\fP
+\fB\-R\fP \fICHECKS\fP | \fB–requirements=\fP‌\fICHECKS\fP
Start a fresh KYC process for the given list of CHECKS. CHECKS must be a space\-separated list of checks that must be in the configuration under \fIPROVIDED_CHECKS\fP for some of the providers. The exchange will determine which provider to use for KYC based on the CHECKS given. The tool will output the HTTP URL where the user has to begin the KYC process to the command\-line. This is usually the first thing to do when using this tool. Outputs the KYC\-logic specific user and legitimization IDs, or NULL if not used by the KYC\-logic at the initiation stage. You may want to use the \fB\-P\fP option to also obtain the Payto\-Hash for use with \fBp\fP later.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.TP
-\fB\-w\fP | \fB\-\-run\-webservice\fP
+\fB\-w\fP | \fB–run\-webservice\fP
Run a simulated Taler exchange HTTP service on the configured port with the \fB/kyc\-proof/\fP and \fB/kyc\-webhook/\fP endpoints.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-exchange-offline.1 b/man/taler-exchange-offline.1
index 5f42765a..93983172 100644
--- a/man/taler-exchange-offline.1
+++ b/man/taler-exchange-offline.1
@@ -27,27 +27,27 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-EXCHANGE-OFFLINE" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-EXCHANGE-OFFLINE" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-exchange-offline \- operations using the offline key of a Taler exchange
.SH SYNOPSIS
.sp
\fBtaler\-exchange\-offline\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
-[subcommand ...]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
+[subcommand …]
.SH DESCRIPTION
.sp
\fBtaler\-exchange\-offline\fP is a command\-line tool to interact with the Taler
-exchange\(aqs master private key. Most operations of this tool require access to
+exchange’s master private key. Most operations of this tool require access to
the exchange’s long\-term offline signing key and should be run in a secure
(offline) environment under strict controls. The tool takes a list of
subcommands as arguments which are then processed sequentially.
.sp
-The tool includes two subcommands to interact \fIonline\fP with the exchange\(aqs
+The tool includes two subcommands to interact \fIonline\fP with the exchange’s
REST APIs. To determine how to talk to the exchange, these two subcommands
rely on the \fBBASE_URL\fP configuration option from the \fB[exchange]\fP section
of the configuration file. The \fBdownload\fP subcommand downloads the future
@@ -55,10 +55,10 @@ public keys from the running exchange. The resulting data serves as input to
the \fBsign\fP and \fBshow\fP subcommands. The \fBupload\fP subcommand uploads the
signatures created with the private master key to the exchange. It handles
the output of all subcommands (except \fBdownload\fP). The \fBdownload\fP and
-\fBupload\fP subcommands must naturally be run \(dqonline\(dq and do not require
+\fBupload\fP subcommands must naturally be run “online” and do not require
access to the offline key.
.sp
-All other subcommands are intended to be run \(dqoffline\(dq. However, especially
+All other subcommands are intended to be run “offline”. However, especially
when testing, it is of course possible to run the subcommands online as well.
Generally, subcommands read inputs (beyond command\-line arguments)
from \fBstdin\fP\&. However, they may also consume outputs of previous
@@ -68,21 +68,21 @@ and if not consumed the final output is printed to \fBstdout\fP\&.
The general options for \fBtaler\-exchange\-offline\fP are:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the merchant to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH CONFIGURATION
@@ -93,26 +93,24 @@ obtain the master public key, use:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ taler\-exchange\-offline setup
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
Note that if the private key file already exists, the above will simply output
-the existing key. Passing additional arguments after setup (including \(dq\-\(dq)
+the existing key. Passing additional arguments after setup (including “\-“)
will cause the output to be encapsulated in JSON.
.sp
Relevant configuration options for \fBtaler\-exchange\-offline\fP are:
.INDENT 0.0
.IP \(bu 2
-\fB[exchange/BASE_URL]\fP \-\-\- how to reach the exchange (for download/upload)
+\fB[exchange/BASE_URL]\fP — how to reach the exchange (for download/upload)
.IP \(bu 2
-\fB[exchange\-offline/MASTER_PRIV_FILE]\fP \-\-\- where to store the private keys
+\fB[exchange\-offline/MASTER_PRIV_FILE]\fP — where to store the private keys
.IP \(bu 2
-\fB[exchange\-offline/SECM_TOFU_FILE]\fP \-\-\- where to store TOFU data
+\fB[exchange\-offline/SECM_TOFU_FILE]\fP — where to store TOFU data
.UNINDENT
.SH SUBCOMMANDS
.SS setup
@@ -164,7 +162,7 @@ configuration of extensions, in a format suitable for the \fBupload\fP
subcommand.
.sp
Note that an extension on the exchange will only become activated at runtime
-\fIafter\fP the extension\(aqs configurations has been signed by the offline tool with
+\fIafter\fP the extension’s configurations has been signed by the offline tool with
the signing key and the signed configuration been uploaded to the exchange.
.SS drain
.sp
@@ -208,23 +206,23 @@ in a format suitable for the \fBupload\fP subcommand.
.sp
This subcommand
informs an exchange that an auditor is to be activated. Afterwards, the
-exchange will accept inputs from that auditor\(aqs \fBtaler\-auditor\-offline\fP
+exchange will accept inputs from that auditor’s \fBtaler\-auditor\-offline\fP
tool. Note that the auditor also must add the exchange to the list of
exchanges that it audits via \fBtaler\-auditor\-exchange\fP\&. Furthermore, the
-exchange\(aqs database will need to be provided to the auditor. This subcommand
+exchange’s database will need to be provided to the auditor. This subcommand
only informs the exchange about the auditor, but does not perform those
additional mandatory steps for a working auditor.
.sp
-The auditor\(aqs public key must be given in the usual base32\-encoding as the
+The auditor’s public key must be given in the usual base32\-encoding as the
first argument.
.sp
-The auditor\(aqs REST API base URL must be given as the second argument. The tool
-performs a minimal sanity check, namely that the URL begins with \(dqhttp\(dq
-(this also allows \(dqhttps\(dq), but as it runs offline does not perform any further
+The auditor’s REST API base URL must be given as the second argument. The tool
+performs a minimal sanity check, namely that the URL begins with “http”
+(this also allows “https”), but as it runs offline does not perform any further
validation!
.sp
The third argument must be a human\-readable name for the auditor. This may
-be shown to users and should identify the auditor\(aqs business entity. If
+be shown to users and should identify the auditor’s business entity. If
the name includes spaces, the argument should be quoted.
.sp
The subcommand takes no inputs from \fBstdin\fP or other subcommands.
@@ -235,10 +233,10 @@ in a format suitable for the \fBupload\fP subcommand.
.sp
This subcommand
informs an exchange that an auditor is to be deactivated. Afterwards, the
-exchange will refuse inputs from that auditor\(aqs \fBtaler\-auditor\-offline\fP
+exchange will refuse inputs from that auditor’s \fBtaler\-auditor\-offline\fP
tool.
.sp
-The auditor\(aqs public key must be given in the usual base32\-encoding as the
+The auditor’s public key must be given in the usual base32\-encoding as the
first argument.
.sp
The subcommand takes no inputs from \fBstdin\fP or other subcommands.
@@ -256,7 +254,7 @@ account information advertised could theoretically differ from that which
these tool actually use, for example if the public bank account is only a
front for the actual internal business accounts.
.sp
-The \fBpayto://\fP URI (RFC 8905) of the exchange\(aqs bank account must be given
+The \fBpayto://\fP URI (RFC 8905) of the exchange’s bank account must be given
as the first argument to the subcommand.
.sp
Afterwards, optional arguments can be given:
@@ -294,7 +292,7 @@ The following types of credit\- and debit\-restrictions are supported:
\fBdeny\fP: A $TYPE of \fBdeny\fP means that this bank account cannot be used
for the given operation. \fBdeny\fP takes no further arguments.
.IP \(bu 2
-\fBregex\fP $EXPR $HINT $JSON: A $TYPE of \fBregex\fP means that the partner\(aqs
+\fBregex\fP $EXPR $HINT $JSON: A $TYPE of \fBregex\fP means that the partner’s
bank account \fBpayto\fP\-URI representation must follow a certain regular
expression given in $EXPR where the syntax follows posix\-egrep, but
without support for character classes, GNU extensions, back\-references or
@@ -317,7 +315,7 @@ This subcommand
informs an exchange that it should stop advertising a bank account as
belonging to the exchange on its \fB/keys\fP endpoint.
.sp
-The \fBpayto://\fP URI (RFC 8905) of the exchange\(aqs (former) bank account must be
+The \fBpayto://\fP URI (RFC 8905) of the exchange’s (former) bank account must be
given as the first argument to the subcommand.
.sp
The subcommand takes no inputs from \fBstdin\fP or other subcommands.
@@ -371,11 +369,11 @@ Partner exchange base URL.
.IP 2. 3
Partner exchange master public key.
.IP 3. 3
-Calendar year for which the fee applies, \(aqnow\(aq for the current year.
+Calendar year for which the fee applies, ‘now’ for the current year.
.IP 4. 3
-Wad frequency, in minutes (for example, \(aq30\(aq).
+Wad frequency, in minutes (for example, ‘30’).
.IP 5. 3
-Wad fee (for example, \(aqKUDOS:0.1\(aq).
+Wad fee (for example, ‘KUDOS:0.1’).
.UNINDENT
.UNINDENT
.UNINDENT
@@ -388,7 +386,7 @@ The arguments provided must include:
.INDENT 3.5
.INDENT 0.0
.IP 1. 3
-Calendar year for which the fee applies, \(aqnow\(aq for the current year.
+Calendar year for which the fee applies, ‘now’ for the current year.
.IP 2. 3
KYC timeout. How long does the exchange keep a reserve open that is waiting for the KYC.
.IP 3. 3
@@ -410,8 +408,8 @@ History fee charged when inquiring about non\-recent account history.
.UNINDENT
.SS aml\-enable
.sp
-Enable AML officer\(aqs account, granting them access to AML data and,
-if \(aqrw\(aq is given, the power to make AML decisions.
+Enable AML officer’s account, granting them access to AML data and,
+if ‘rw’ is given, the power to make AML decisions.
.sp
The arguments provided must include:
.INDENT 0.0
@@ -422,13 +420,13 @@ AML staff member public key (in base32 encoding)
.IP 2. 3
AML staff member legal name
.IP 3. 3
-\(aqro\(aq or \(aqrw\(aq to set access to read\-only or read\-write
+‘ro’ or ‘rw’ to set access to read\-only or read\-write
.UNINDENT
.UNINDENT
.UNINDENT
.SS aml\-disable
.sp
-Disable AML officer\(aqs account. Also updates the legal name.
+Disable AML officer’s account. Also updates the legal name.
.sp
The arguments provided must include:
.INDENT 0.0
@@ -459,7 +457,7 @@ Wad fee to charge.
.IP 4. 3
Wad transfer frequency.
.IP 5. 3
-Year for which the above options are to be configured, \(aqnow\(aq for the current year.
+Year for which the above options are to be configured, ‘now’ for the current year.
.UNINDENT
.UNINDENT
.UNINDENT
@@ -479,62 +477,52 @@ required arguments.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ taler\-exchange\-offline download > keys.json
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS Show information about future public keys (offline or online)
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ taler\-exchange\-offline show < keys.json
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS Sign future public keys (offline)
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ taler\-exchange\-offline sign < keys.json > sigs.json
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS Upload signatures about future public keys (online)
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ taler\-exchange\-offline upload < sigs.json
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS Download, sign and upload, all in one (online)
.sp
Note that doing this is only recommended in non\-production deployments,
-as this requires putting the \(dqoffline\(dq key onto a system that is actually
+as this requires putting the “offline” key onto a system that is actually
online!
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ taler\-exchange\-offline \e
download \e
sign \e
upload
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -543,15 +531,13 @@ so that \fBsign\fP can see it as input, as in the variant without \fBshow\fP\&.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ taler\-exchange\-offline \e
download \e
show \- \e
sign \e
upload
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS Create signature to enable bank account (offline)
@@ -561,12 +547,10 @@ without conversion:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ taler\-exchange\-offline \e
enable\-account payto://iban/DE24242?receiver\-name=operator > account.json
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -576,8 +560,7 @@ debit operations:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ taler\-exchange\-offline \e
enable\-account payto://x\-taler\-bank/example.com/?receiver\-name=name \e
conversion\-url http://conversion.exchange.com/ \e
@@ -589,19 +572,16 @@ $ taler\-exchange\-offline \e
\(aqSwiss only\(aq \e
\(aq{ \(dqde\(dq : \(dqnur Schweiz\(dq, \e
\(dqfr\(dq : \(dqSuisse uniquement\(dq }\(aq
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS Upload bank account signature (online)
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ taler\-exchange\-offline upload < account.json
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS Combine signing keys and enabling bank account (offline)
@@ -610,14 +590,12 @@ You can chain multiple commands into one invocation:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ taler\-exchange\-offline \e
sign \e
enable\-account \e
payto://iban/DE24242 < keys.json > combo.json
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
@@ -628,11 +606,9 @@ and \fBenable\-account\fP subcommands.
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ taler\-exchange\-offline upload < combo.json
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.SS Create multiple revocation messages in one pass (offline)
@@ -642,8 +618,7 @@ key revocation:
.INDENT 0.0
.INDENT 3.5
.sp
-.nf
-.ft C
+.EX
$ taler\-exchange\-offline \e
revoke\-denomination $DKH1 \e
revoke\-denomination $DKH2 > revoke.json
@@ -653,12 +628,11 @@ $ taler\-exchange\-offline \e
$ taler\-exchange\-offline \e
revoke\-signkey $SK \e
revoke\-denomkey $DKH > mix.json
-.ft P
-.fi
+.EE
.UNINDENT
.UNINDENT
.sp
-The outputs (\(dqrevoke.json\(dq, \(dqmix.json\(dq) must be uploaded using the \fBupload\fP
+The outputs (“revoke.json”, “mix.json”) must be uploaded using the \fBupload\fP
subcommand to the exchange to actually revoke the keys.
.SH SECURITY CONSIDERATIONS
.sp
@@ -667,8 +641,8 @@ system with \fImonotonic time\fP\&. The time does not have to precisely match th
of the exchange, but it must be monotonic across tool invocations. The clock
of the offline system is used in the enable/disable signatures to communicate
an order of the events to the exchange. This prevents someone from replaying
-an older \(dqenable\(dq (or \(dqdisable\(dq) message after a more recent \(dqdisable\(dq (or
-\(dqenable\(dq) message has been provided to the exchange. Thus, there is no need
+an older “enable” (or “disable”) message after a more recent “disable” (or
+“enable”) message has been provided to the exchange. Thus, there is no need
to keep the actual files exchanged with the offline tool secret.
.sp
The \fBtaler\-exchange\-offline\fP tool tries to make sure that the online signing
@@ -678,7 +652,7 @@ but \fInot\fP the security modules from providing attacker\-controlled keys to t
offline signing process.
.sp
For this, the \fBtaler\-exchange\-offline\fP signing subcommand always
-automatically learns the security module\(aqs public signing key and \fItrusts it
+automatically learns the security module’s public signing key and \fItrusts it
on first use\fP (TOFU), but stores it to disk (see the \fBSECM_TOFU_FILE\fP option
in the \fB[exchange\-offline]\fP section of the configuration). If the keys
change subsequently, the tool will refuse to sign.
diff --git a/man/taler-exchange-router.1 b/man/taler-exchange-router.1
index 91cfc772..af4fdb6b 100644
--- a/man/taler-exchange-router.1
+++ b/man/taler-exchange-router.1
@@ -27,19 +27,19 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-EXCHANGE-ROUTER" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-EXCHANGE-ROUTER" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-exchange-router \- route payments to partner exchanges
.SH SYNOPSIS
.sp
\fBtaler\-exchange\-router\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel=\fP\fIUSEC\fP]
-[\fB\-t\fP\ |\ \fB\-\-test\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel=\fP\fIUSEC\fP]
+[\fB\-t\fP\ |\ \fB–test\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-exchange\-router\fP is a NOT YET IMPLEMENTED command\-line
@@ -49,29 +49,29 @@ wallets where the recipient has performed the KYC at a different
exchange than the sender. This is currently not supported.
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the exchange to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-t\fP | \fB\-\-test\fP
+\fB\-t\fP | \fB–test\fP
Run in test mode and exit when idle.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-exchange-secmod-cs.1 b/man/taler-exchange-secmod-cs.1
index a7bbc679..991c7a67 100644
--- a/man/taler-exchange-secmod-cs.1
+++ b/man/taler-exchange-secmod-cs.1
@@ -27,20 +27,20 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-EXCHANGE-SECMOD-CS" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-EXCHANGE-SECMOD-CS" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-exchange-secmod-cs \- handle private CS key operations for a Taler exchange
.SH SYNOPSIS
.sp
\fBtaler\-exchange\-secmod\-cs\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-p\fP\ \fIN\fP\ |\ ,**\-\-parallelism=**\fIN\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel=\fP\fIUSEC\fP]
-[\fB\-t\fP\ \fITIMESTAMP\fP\ |\ \fB\-\-time=\fP\fITIMESTAMP\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-p\fP\ \fIN\fP\ |\ ,**–parallelism=**\fIN\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel=\fP\fIUSEC\fP]
+[\fB\-t\fP\ \fITIMESTAMP\fP\ |\ \fB–time=\fP\fITIMESTAMP\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-exchange\-secmod\-cs\fP is a command\-line tool to
@@ -51,33 +51,33 @@ FIXME: More details.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the merchant to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fBp\fP \fIN\fP | \fB\-\-parallelism=\fP\fIN\fP
+\fBp\fP \fIN\fP | \fB–parallelism=\fP\fIN\fP
Run with \fIN\fP worker threads.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-t\fP \fITIMESTAMP\fP | \fB\-\-time=\fP\fITIMESTAMP\fP
+\fB\-t\fP \fITIMESTAMP\fP | \fB–time=\fP\fITIMESTAMP\fP
Pretend it is \fITIMESTAMP\fP for the update.
\fITIMESTAMP\fP is a human\-readable string (e.g., \fBYYYY\-MM\-DD HH:MM:SS\fP).
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-exchange-secmod-eddsa.1 b/man/taler-exchange-secmod-eddsa.1
index 3fffd668..c639d04b 100644
--- a/man/taler-exchange-secmod-eddsa.1
+++ b/man/taler-exchange-secmod-eddsa.1
@@ -27,20 +27,20 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-EXCHANGE-SECMOD-EDDSA" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-EXCHANGE-SECMOD-EDDSA" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-exchange-secmod-eddsa \- handle private EDDSA key operations for a Taler exchange
.SH SYNOPSIS
.sp
\fBtaler\-exchange\-secmod\-eddsa\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-p\fP\ \fIN\fP\ |\ ,**\-\-parallelism=**\fIN\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel=\fP\fIUSEC\fP]
-[\fB\-t\fP\ \fITIMESTAMP\fP\ |\ \fB\-\-time=\fP\fITIMESTAMP\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-p\fP\ \fIN\fP\ |\ ,**–parallelism=**\fIN\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel=\fP\fIUSEC\fP]
+[\fB\-t\fP\ \fITIMESTAMP\fP\ |\ \fB–time=\fP\fITIMESTAMP\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-exchange\-secmod\-eddsa\fP is a command\-line tool to
@@ -51,33 +51,33 @@ FIXME: More details.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the merchant to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fBp\fP \fIN\fP | \fB\-\-parallelism=\fP\fIN\fP
+\fBp\fP \fIN\fP | \fB–parallelism=\fP\fIN\fP
Run with \fIN\fP worker threads.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-t\fP \fITIMESTAMP\fP | \fB\-\-time=\fP\fITIMESTAMP\fP
+\fB\-t\fP \fITIMESTAMP\fP | \fB–time=\fP\fITIMESTAMP\fP
Pretend it is \fITIMESTAMP\fP for the update.
\fITIMESTAMP\fP is a human\-readable string (e.g., \fBYYYY\-MM\-DD HH:MM:SS\fP).
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-exchange-secmod-rsa.1 b/man/taler-exchange-secmod-rsa.1
index ffc2287f..9d6d7221 100644
--- a/man/taler-exchange-secmod-rsa.1
+++ b/man/taler-exchange-secmod-rsa.1
@@ -27,20 +27,20 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-EXCHANGE-SECMOD-RSA" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-EXCHANGE-SECMOD-RSA" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-exchange-secmod-rsa \- handle private RSA key operations for a Taler exchange
.SH SYNOPSIS
.sp
\fBtaler\-exchange\-secmod\-rsa\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-p\fP\ \fIN\fP\ |\ ,**\-\-parallelism=**\fIN\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel=\fP\fIUSEC\fP]
-[\fB\-t\fP\ \fITIMESTAMP\fP\ |\ \fB\-\-time=\fP\fITIMESTAMP\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-p\fP\ \fIN\fP\ |\ ,**–parallelism=**\fIN\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel=\fP\fIUSEC\fP]
+[\fB\-t\fP\ \fITIMESTAMP\fP\ |\ \fB–time=\fP\fITIMESTAMP\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-exchange\-secmod\-rsa\fP is a command\-line tool to
@@ -51,33 +51,33 @@ FIXME: More details.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the merchant to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fBp\fP \fIN\fP | \fB\-\-parallelism=\fP\fIN\fP
+\fBp\fP \fIN\fP | \fB–parallelism=\fP\fIN\fP
Run with \fIN\fP worker threads.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-t\fP \fITIMESTAMP\fP | \fB\-\-time=\fP\fITIMESTAMP\fP
+\fB\-t\fP \fITIMESTAMP\fP | \fB–time=\fP\fITIMESTAMP\fP
Pretend it is \fITIMESTAMP\fP for the update.
\fITIMESTAMP\fP is a human\-readable string (e.g., \fBYYYY\-MM\-DD HH:MM:SS\fP).
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-exchange-transfer.1 b/man/taler-exchange-transfer.1
index a168ce9c..d5c37380 100644
--- a/man/taler-exchange-transfer.1
+++ b/man/taler-exchange-transfer.1
@@ -27,48 +27,48 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-EXCHANGE-TRANSFER" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-EXCHANGE-TRANSFER" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-exchange-transfer \- execute wire transfers
.SH SYNOPSIS
.sp
\fBtaler\-exchange\-transfer\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel\fP\fIUSEC\fP]
-[\fB\-t\fP\ |\ \fB\-\-test\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel\fP\fIUSEC\fP]
+[\fB\-t\fP\ |\ \fB–test\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-exchange\-transfer\fP is a command\-line tool to actually execute scheduled wire transfers (using the bank/wire gateway).
The transfers are prepared by the \fBtaler\-exchange\-aggregator\fP and \fBtaler\-exchange\-closer\fP tools.
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the exchange to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-t\fP | \fB\-\-test\fP
+\fB\-t\fP | \fB–test\fP
Run in test mode and exit when idle.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-exchange-wire-gateway-client.1 b/man/taler-exchange-wire-gateway-client.1
index 38de8146..f7e6b4be 100644
--- a/man/taler-exchange-wire-gateway-client.1
+++ b/man/taler-exchange-wire-gateway-client.1
@@ -27,28 +27,28 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-EXCHANGE-WIRE-GATEWAY-CLIENT" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-EXCHANGE-WIRE-GATEWAY-CLIENT" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-exchange-wire-gateway-client \- trigger a transfer at the bank
.SH SYNOPSIS
.sp
\fBtaler\-exchange\-wire\-gateway\-client\fP
-[\fB\-a\fP\ \fIVALUE\fP\ |\ \fB\-\-amount=\fP‌\fIVALUE\fP]
-[\fB\-b\fP\ \fIURL\fP\ |\ \fB\-\-bank=\fP‌\fIURL\fP]
-[\fB\-C\fP\ \fIACCOUNT\fP\ |\ \fB\-\-credit=\fP‌\fIACCOUNT\fP]
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-D\fP\ \fIACCOUNT\fP\ |\ \fB\-\-debit=\fP‌\fIACCOUNT\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-i\fP\ |\ \fB\-\-credit\-history\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-o\fP\ |\ \fB\-\-debit\-history\fP]
-[\fB\-p\fP\ \fIPASSPHRASE\fP\ |\ \fB\-\-pass=\fP‌\fIPASSPHRASE\fP]
-[\fB\-S\fP\ \fISTRING\fP\ |\ \fB\-\-subject=\fP‌\fISTRING\fP]
-[\fB\-s\fP\ \fIACCOUNT\-SECTION\fP\ |\ \fB\-\-section=\fP‌\fIACCOUNT\-SECTION\fP]
-[\fB\-u\fP\ \fIUSERNAME\fP\ |\ \fB\-\-user=\fP‌\fIUSERNAME\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
-[\fB\-w\fP\ \fIROW\fP\ |\ \fB\-\-since\-when=\fP‌\fIROW\fP]
+[\fB\-a\fP\ \fIVALUE\fP\ |\ \fB–amount=\fP‌\fIVALUE\fP]
+[\fB\-b\fP\ \fIURL\fP\ |\ \fB–bank=\fP‌\fIURL\fP]
+[\fB\-C\fP\ \fIACCOUNT\fP\ |\ \fB–credit=\fP‌\fIACCOUNT\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-D\fP\ \fIACCOUNT\fP\ |\ \fB–debit=\fP‌\fIACCOUNT\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-i\fP\ |\ \fB–credit\-history\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-o\fP\ |\ \fB–debit\-history\fP]
+[\fB\-p\fP\ \fIPASSPHRASE\fP\ |\ \fB–pass=\fP‌\fIPASSPHRASE\fP]
+[\fB\-S\fP\ \fISTRING\fP\ |\ \fB–subject=\fP‌\fISTRING\fP]
+[\fB\-s\fP\ \fIACCOUNT\-SECTION\fP\ |\ \fB–section=\fP‌\fIACCOUNT\-SECTION\fP]
+[\fB\-u\fP\ \fIUSERNAME\fP\ |\ \fB–user=\fP‌\fIUSERNAME\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
+[\fB\-w\fP\ \fIROW\fP\ |\ \fB–since\-when=\fP‌\fIROW\fP]
.SH DESCRIPTION
.sp
\fBtaler\-exchange\-wire\-gateway\-client\fP is a command\-line tool to trigger bank transfers or
@@ -77,58 +77,58 @@ on transaction history operations.
.SH OPTIONS
.INDENT 0.0
.TP
-\fB\-a\fP \fIVALUE\fP | \fB\-\-amount=\fP‌\fIVALUE\fP
+\fB\-a\fP \fIVALUE\fP | \fB–amount=\fP‌\fIVALUE\fP
Amount to transfer. Given in the Taler\-typical format of
CURRENCY:VALUE.FRACTION.
.TP
-\fB\-b\fP \fIURL\fP | \fB\-\-bank=\fP‌\fIURL\fP
+\fB\-b\fP \fIURL\fP | \fB–bank=\fP‌\fIURL\fP
URL at which the bank is operation. Conflicts with \fB\-s\fP\&.
.TP
-\fB\-C\fP \fIACCOUNT\fP | \fB\-\-credit=\fP‌\fIACCOUNT\fP
+\fB\-C\fP \fIACCOUNT\fP | \fB–credit=\fP‌\fIACCOUNT\fP
When doing a wire transfer from the exchange, the money should be credited to \fIACCOUNT\fP\&.
Specifies the payto:// URI of the account. Can also be used as a filter by credit
account when looking at transaction histories.
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the given configuration file.
.TP
-\fB\-D\fP \fIACCOUNT\fP | \fB\-\-debit=\fP‌\fIACCOUNT\fP
+\fB\-D\fP \fIACCOUNT\fP | \fB–debit=\fP‌\fIACCOUNT\fP
When doing a wire transfer to the exchange, the \fIACCOUNT\fP is to be debited.
Specifies the payto:// URI of the account. Can also be used as a filter by debit
account when looking at transaction histories.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-i\fP | \fB\-\-credit\-history\fP
+\fB\-i\fP | \fB–credit\-history\fP
Obtain credit history of the exchange. Conflicts with \fB\-o\fP\&.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-o\fP | \fB\-\-debit\-history\fP
+\fB\-o\fP | \fB–debit\-history\fP
Obtain debit history of the exchange. Conflicts with \fB\-i\fP\&.
.TP
-\fB\-p\fP \fIPASSPHRASE\fP | \fB\-\-pass=\fP‌\fIPASSPHRASE\fP
+\fB\-p\fP \fIPASSPHRASE\fP | \fB–pass=\fP‌\fIPASSPHRASE\fP
Specifies the pass phrase for authentication. Conflicts with \fB\-s\fP\&.
.TP
-\fB\-S\fP \fISUBJECT\fP | \fB\-\-subject=\fP‌\fISUBJECT\fP
+\fB\-S\fP \fISUBJECT\fP | \fB–subject=\fP‌\fISUBJECT\fP
Use \fISUBJECT\fP for the wire transfer subject. Must be a reserve public key for credit operations and a wire transfer identifier for debit operations. If not specified, a random value will be generated instead.
.TP
-\fB\-s\fP \fIACCOUNT_SECTION\fP | \fB\-\-section=\fP‌\fIACCOUNT\-SECTION\fP
+\fB\-s\fP \fIACCOUNT_SECTION\fP | \fB–section=\fP‌\fIACCOUNT\-SECTION\fP
Obtain exchange account information from the \fIACCOUNT\-SECTION\fP of the configuration. The argument must be a \fB[exchange\-accountcredentials\-$NAME]\fP section name and thus start with the \fBexchange\-accountcredentials\-\fP prefix. Conflicts with \fB\-u\fP, \fB\-p\fP and \fB\-b\fP\&. Note that either \fB\-b\fP or \fB\-s\fP must be specified.
.TP
-\fB\-u\fP \fIUSERNAME\fP | \fB\-\-user=\fP‌\fIUSERNAME\fP
+\fB\-u\fP \fIUSERNAME\fP | \fB–user=\fP‌\fIUSERNAME\fP
Specifies the username for authentication. Optional and conflicts with \fB\-s\fP\&. If neither \fB\-u\fP nor \fB\-s\fP are used, we will attempt to talk to the bank without authentication.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.TP
-\fB\-w\fP \fIROW\fP | \fB\-\-since\-when=\fP‌\fIROW\fP
+\fB\-w\fP \fIROW\fP | \fB–since\-when=\fP‌\fIROW\fP
Specifies a \fIROW\fP from which the history should be obtained. If not given, the 10 youngest transactions are returned.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-exchange-wirewatch.1 b/man/taler-exchange-wirewatch.1
index 23cac62f..86fda4c3 100644
--- a/man/taler-exchange-wirewatch.1
+++ b/man/taler-exchange-wirewatch.1
@@ -27,21 +27,21 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-EXCHANGE-WIREWATCH" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-EXCHANGE-WIREWATCH" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-exchange-wirewatch \- watch for incoming wire transfers
.SH SYNOPSIS
.sp
\fBtaler\-exchange\-wirewatch\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-I**_|_\fP\-\-ignore\-not\-found**]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-r\fP\ |\ \fB\-\-reset\fP]
-[\fB\-T\fP\ |\ \fB\-\-test\fP]
-[\fB\-t\fP\ \fIPLUGINNAME\fP\ |\ \fB\-\-type=\fP‌\fIPLUGINNAME\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-I**_|_\fP–ignore\-not\-found**]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-r\fP\ |\ \fB–reset\fP]
+[\fB\-T\fP\ |\ \fB–test\fP]
+[\fB\-t\fP\ \fIPLUGINNAME\fP\ |\ \fB–type=\fP‌\fIPLUGINNAME\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-exchange\-wirewatch\fP is a command\-line tool to import wire
@@ -50,40 +50,40 @@ transactions into the Taler exchange database.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the exchange to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-f\fP \fIDELAY\fP| \fB\-\-longpoll\-timeout=\fP\fIDELAY\fP
+\fB\-f\fP \fIDELAY\fP| \fB–longpoll\-timeout=\fP\fIDELAY\fP
How long do we wait for a response for bank transactions from the bank. This is both the timeout for the long polling as well as the maximum frequency at which we would query the bank. Specified with unit (e.g. 30s, 1d, 2w), if no unit is given the number is interpreted in microseconds. Default is 60s.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-I\fP | \fB\-\-ignore\-not\-found\fP
+\fB\-I\fP | \fB–ignore\-not\-found\fP
Do not fail if the bank says that the exchange bank account does not (yet) exist.
Keep trying.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-r\fP | \fB\-\-reset\fP
+\fB\-r\fP | \fB–reset\fP
Ignore our own database and start with transactions from the
beginning of time.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-t\fP | \fB\-\-test\fP
+\fB\-t\fP | \fB–test\fP
Run in test mode and exit when idle.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-fakebank-run.1 b/man/taler-fakebank-run.1
index 1e0178fd..0b4bc91a 100644
--- a/man/taler-fakebank-run.1
+++ b/man/taler-fakebank-run.1
@@ -27,53 +27,53 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-FAKEBANK-RUN" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-FAKEBANK-RUN" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-fakebank-run \- run in-memory bank service for testing and benchmarking
.SH SYNOPSIS
.sp
\fBtaler\-fakebank\-run\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-n\fP\ \fIN\fP\ |\ \fB\-\-num\-threads=\fP\fIN\fP]
-[\fB\-s\fP\ \fIAMOUNT\fP\ |\ \fB\-\-signup\-bonus=\fP\fIAMOUNT\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-n\fP\ \fIN\fP\ |\ \fB–num\-threads=\fP\fIN\fP]
+[\fB\-s\fP\ \fIAMOUNT\fP\ |\ \fB–signup\-bonus=\fP\fIAMOUNT\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
-\fBtaler\-fakebank\-run\fP is a command\-line tool to run a Taler \(dqbank\(dq API (HTTP REST service). The program is useful to provide the bank functionality for benchmarking or testing when LibEuFin is unavailable or otherwise unsuitable.
+\fBtaler\-fakebank\-run\fP is a command\-line tool to run a Taler “bank” API (HTTP REST service). The program is useful to provide the bank functionality for benchmarking or testing when LibEuFin is unavailable or otherwise unsuitable.
.sp
It should be noted that the fakebank will keep a configured number of transactions in memory. If the number of transactions exceeds the configured memory limit, the fakebank will simply discard and overwrite the old entries. At that point, any requests involving such overwritten transactions will fail. Users of the fakebank are responsible for ensuring that the transaction history kept in memory is long enough for the purpose the bank is used for. The default limit is 128k entries.
.sp
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-C\fP | \fB\-\-connection\-close\fP
+\fB\-C\fP | \fB–connection\-close\fP
Force each HTTP connection to be closed after each request (useful in
combination with \fB\-f\fP to avoid having to wait for nc to time out).
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the merchant to operate
from FILENAME.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-n\fP \fIN\fP | \fB\-\-num\-threads=\fP\fIN\fP
+\fB\-n\fP \fIN\fP | \fB–num\-threads=\fP\fIN\fP
Use \fIN\fP threads in the thread pool.
.TP
-\fB\-s\fP \fIAMOUNT\fP | \fB\-\-signup\-bonus=\fP\fIAMOUNT\fP
+\fB\-s\fP \fIAMOUNT\fP | \fB–signup\-bonus=\fP\fIAMOUNT\fP
Credit newly registered accounts with a balance of \fIAMOUNT\fP\&. Unlike other banks, this initial balance will be created out of thin air and not via a wire transfer from some bank\-internal account.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-helper-auditor-aggregation.1 b/man/taler-helper-auditor-aggregation.1
index 8317f96b..08256de3 100644
--- a/man/taler-helper-auditor-aggregation.1
+++ b/man/taler-helper-auditor-aggregation.1
@@ -27,20 +27,20 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-HELPER-AUDITOR-AGGREGATION" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-HELPER-AUDITOR-AGGREGATION" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-helper-auditor-aggregation \- audit Taler exchange aggregation activity
.SH SYNOPSIS
.sp
\fBtaler\-helper\-auditor\-aggregation\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fBi\fP\ |\ \fB\-\-internal\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-m\fP\ \fIKEY\fP\ |\ \fB\-\-exchange\-key=\fP\fIKEY\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel=\fP\fIUSEC\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fBi\fP\ |\ \fB–internal\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-m\fP\ \fIKEY\fP\ |\ \fB–exchange\-key=\fP\fIKEY\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel=\fP\fIUSEC\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-helper\-auditor\-aggregation\fP is a command\-line tool to
@@ -51,32 +51,32 @@ FIXME: More detail.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the auditor to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-i\fP | \fB\-\-internal\fP
+\fB\-i\fP | \fB–internal\fP
Perform checks only applicable for exchange\-internal audits.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-m\fP \fIKEY\fP | \fB\-\-exchange\-key=\fP\fIKEY\fP
+\fB\-m\fP \fIKEY\fP | \fB–exchange\-key=\fP\fIKEY\fP
Use \fIKEY\fP (Crockford base32 encoded) as the public key of the exchange.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-helper-auditor-coins.1 b/man/taler-helper-auditor-coins.1
index 14580f83..06103839 100644
--- a/man/taler-helper-auditor-coins.1
+++ b/man/taler-helper-auditor-coins.1
@@ -27,20 +27,20 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-HELPER-AUDITOR-COINS" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-HELPER-AUDITOR-COINS" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-helper-auditor-coins \- audit Taler coin processing
.SH SYNOPSIS
.sp
\fBtaler\-helper\-auditor\-coins\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fBi\fP\ |\ \fB\-\-internal\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-m\fP\ \fIKEY\fP\ |\ \fB\-\-exchange\-key=\fP\fIKEY\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel=\fP\fIUSEC\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fBi\fP\ |\ \fB–internal\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-m\fP\ \fIKEY\fP\ |\ \fB–exchange\-key=\fP\fIKEY\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel=\fP\fIUSEC\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-helper\-auditor\-coins\fP is a command\-line tool to
@@ -51,32 +51,32 @@ FIXME: More detail.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the auditor to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-i\fP | \fB\-\-internal\fP
+\fB\-i\fP | \fB–internal\fP
Perform checks only applicable for exchange\-internal audits.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-m\fP \fIKEY\fP | \fB\-\-exchange\-key=\fP\fIKEY\fP
+\fB\-m\fP \fIKEY\fP | \fB–exchange\-key=\fP\fIKEY\fP
Use \fIKEY\fP (Crockford base32 encoded) as the public key of the exchange.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-helper-auditor-deposits.1 b/man/taler-helper-auditor-deposits.1
index 74eb98ed..dd99f680 100644
--- a/man/taler-helper-auditor-deposits.1
+++ b/man/taler-helper-auditor-deposits.1
@@ -27,20 +27,20 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-HELPER-AUDITOR-DEPOSITS" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-HELPER-AUDITOR-DEPOSITS" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-helper-auditor-deposits \- audit Taler exchange database for deposit confirmation consistency
.SH SYNOPSIS
.sp
\fBtaler\-helper\-auditor\-deposits\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fBi\fP\ |\ \fB\-\-internal\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-m\fP\ \fIKEY\fP\ |\ \fB\-\-exchange\-key=\fP\fIKEY\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel=\fP\fIUSEC\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fBi\fP\ |\ \fB–internal\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-m\fP\ \fIKEY\fP\ |\ \fB–exchange\-key=\fP\fIKEY\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel=\fP\fIUSEC\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-helper\-auditor\-deposits\fP is a command\-line tool to
@@ -51,32 +51,32 @@ FIXME: More detail.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the auditor to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-i\fP | \fB\-\-internal\fP
+\fB\-i\fP | \fB–internal\fP
Perform checks only applicable for exchange\-internal audits.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-m\fP \fIKEY\fP | \fB\-\-exchange\-key=\fP\fIKEY\fP
+\fB\-m\fP \fIKEY\fP | \fB–exchange\-key=\fP\fIKEY\fP
Use \fIKEY\fP (Crockford base32 encoded) as the public key of the exchange.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-helper-auditor-purses.1 b/man/taler-helper-auditor-purses.1
index a9c0313d..f8998ede 100644
--- a/man/taler-helper-auditor-purses.1
+++ b/man/taler-helper-auditor-purses.1
@@ -27,20 +27,20 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-HELPER-AUDITOR-PURSES" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-HELPER-AUDITOR-PURSES" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-helper-auditor-purses \- audit Taler exchange purse handling
.SH SYNOPSIS
.sp
\fBtaler\-helper\-auditor\-purses\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fBi\fP\ |\ \fB\-\-internal\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-m\fP\ \fIKEY\fP\ |\ \fB\-\-exchange\-key=\fP\fIKEY\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel=\fP\fIUSEC\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fBi\fP\ |\ \fB–internal\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-m\fP\ \fIKEY\fP\ |\ \fB–exchange\-key=\fP\fIKEY\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel=\fP\fIUSEC\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-helper\-auditor\-purses\fP is a command\-line tool to
@@ -51,32 +51,32 @@ FIXME: More detail.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the auditor to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-i\fP | \fB\-\-internal\fP
+\fB\-i\fP | \fB–internal\fP
Perform checks only applicable for exchange\-internal audits.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-m\fP \fIKEY\fP | \fB\-\-exchange\-key=\fP\fIKEY\fP
+\fB\-m\fP \fIKEY\fP | \fB–exchange\-key=\fP\fIKEY\fP
Use \fIKEY\fP (Crockford base32 encoded) as the public key of the exchange.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-helper-auditor-reserves.1 b/man/taler-helper-auditor-reserves.1
index 72e7ba45..b0feff15 100644
--- a/man/taler-helper-auditor-reserves.1
+++ b/man/taler-helper-auditor-reserves.1
@@ -27,20 +27,20 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-HELPER-AUDITOR-RESERVES" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-HELPER-AUDITOR-RESERVES" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-helper-auditor-reserves \- audit Taler exchange reserve handling
.SH SYNOPSIS
.sp
\fBtaler\-helper\-auditor\-reserves\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fBi\fP\ |\ \fB\-\-internal\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-m\fP\ \fIKEY\fP\ |\ \fB\-\-exchange\-key=\fP\fIKEY\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel=\fP\fIUSEC\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fBi\fP\ |\ \fB–internal\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-m\fP\ \fIKEY\fP\ |\ \fB–exchange\-key=\fP\fIKEY\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel=\fP\fIUSEC\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-helper\-auditor\-reserves\fP is a command\-line tool to
@@ -51,32 +51,32 @@ FIXME: More detail.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the auditor to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-i\fP | \fB\-\-internal\fP
+\fB\-i\fP | \fB–internal\fP
Perform checks only applicable for exchange\-internal audits.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-m\fP \fIKEY\fP | \fB\-\-exchange\-key=\fP\fIKEY\fP
+\fB\-m\fP \fIKEY\fP | \fB–exchange\-key=\fP\fIKEY\fP
Use \fIKEY\fP (Crockford base32 encoded) as the public key of the exchange.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-helper-auditor-wire.1 b/man/taler-helper-auditor-wire.1
index 387150ed..f23add53 100644
--- a/man/taler-helper-auditor-wire.1
+++ b/man/taler-helper-auditor-wire.1
@@ -27,56 +27,56 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-HELPER-AUDITOR-WIRE" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-HELPER-AUDITOR-WIRE" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-helper-auditor-wire \- audit exchange database for consistency with the bank's wire transfers
.SH SYNOPSIS
.sp
\fBtaler\-helper\-auditor\-wire\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fBi\fP\ |\ \fB\-\-internal\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-m\fP\ \fIKEY\fP\ |\ \fB\-\-exchange\-key=\fP\fIKEY\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel=\fP\fIUSEC\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fBi\fP\ |\ \fB–internal\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-m\fP\ \fIKEY\fP\ |\ \fB–exchange\-key=\fP\fIKEY\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel=\fP\fIUSEC\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-helper\-auditor\-wire\fP is a command\-line tool to
-audit exchange database for consistency with the bank\(aqs wire transfers.
+audit exchange database for consistency with the bank’s wire transfers.
.sp
FIXME: More detail.
.sp
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the auditor to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-i\fP | \fB\-\-internal\fP
+\fB\-i\fP | \fB–internal\fP
Perform checks only applicable for exchange\-internal audits.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-m\fP \fIKEY\fP | \fB\-\-exchange\-key=\fP\fIKEY\fP
+\fB\-m\fP \fIKEY\fP | \fB–exchange\-key=\fP\fIKEY\fP
Use \fIKEY\fP (Crockford base32 encoded) as the public key of the exchange.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-mdb.1 b/man/taler-mdb.1
index 8616f826..0c00d6af 100644
--- a/man/taler-mdb.1
+++ b/man/taler-mdb.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-MDB" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-MDB" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-mdb \- operate multi drop bus (MDB) based vending machines with Taler payments
.SH SYNOPSIS
diff --git a/man/taler-merchant-benchmark.1 b/man/taler-merchant-benchmark.1
index 7946d33e..c336e48c 100644
--- a/man/taler-merchant-benchmark.1
+++ b/man/taler-merchant-benchmark.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-MERCHANT-BENCHMARK" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-MERCHANT-BENCHMARK" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-merchant-benchmark \- generate Taler-style benchmarking payments
.SH SYNOPSIS
@@ -46,7 +46,7 @@ default instance) and aggregated by the exchange. Takes the following
option:
.INDENT 7.0
.TP
-\fB\-p\fP \fIPN\fP | \fB\-\-payments\-number=\fP\fIPN\fP
+\fB\-p\fP \fIPN\fP | \fB–payments\-number=\fP\fIPN\fP
Perform PN many payments, defaults to 1.
.UNINDENT
.TP
@@ -56,11 +56,11 @@ leaving payments unaggregated, or using a non\-default merchant
instance. Takes the following options:
.INDENT 7.0
.TP
-\fB\-t\fP \fITC\fP | \fB\-\-two\-coins=\fP\fITC\fP
+\fB\-t\fP \fITC\fP | \fB–two\-coins=\fP\fITC\fP
Perform TC many payments that use two coins (normally, all the
payments use only one coin). TC defaults to 1.
.TP
-\fB\-u\fP \fIUN\fP | \fB\-\-unaggregated\-number=\fP\fIUN\fP
+\fB\-u\fP \fIUN\fP | \fB–unaggregated\-number=\fP\fIUN\fP
Generate UN payments that will be left unaggregated. Note that
subsequent invocations of the generator may pick those
unaggregated payments and actually aggregated them.
@@ -69,27 +69,27 @@ unaggregated payments and actually aggregated them.
.SH COMMON OPTIONS
.INDENT 0.0
.TP
-\fB\-a\fP \fIAPIKEY\fP | \fB\-\-apikey=\fP\fIAPIKEY\fP
-HTTP \(aqAuthorization\(aq header to send to the merchant.
+\fB\-a\fP \fIAPIKEY\fP | \fB–apikey=\fP\fIAPIKEY\fP
+HTTP ‘Authorization’ header to send to the merchant.
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP\fIFILENAME\fP
Use the configuration and other resources for the merchant to
operate from FILENAME.
.TP
-\fB\-u\fP \fISECTION\fP | \fB\-\-exchange\-account\-section=\fP\fISECTION\fP
+\fB\-u\fP \fISECTION\fP | \fB–exchange\-account\-section=\fP\fISECTION\fP
Configuration \fISECTION\fP specifying the exchange account to use.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-merchant-dbconfig.1 b/man/taler-merchant-dbconfig.1
index dcb9f457..2b231f6a 100644
--- a/man/taler-merchant-dbconfig.1
+++ b/man/taler-merchant-dbconfig.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-MERCHANT-DBCONFIG" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-MERCHANT-DBCONFIG" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-merchant-dbconfig \- configure Taler merchant database
.SH SYNOPSIS
diff --git a/man/taler-merchant-dbinit.1 b/man/taler-merchant-dbinit.1
index 65c68228..e1fc6f16 100644
--- a/man/taler-merchant-dbinit.1
+++ b/man/taler-merchant-dbinit.1
@@ -27,18 +27,18 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-MERCHANT-DBINIT" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-MERCHANT-DBINIT" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-merchant-dbinit \- initialize Taler merchant database
.SH SYNOPSIS
.sp
\fBtaler\-merchant\-dbinit\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-r\fP\ |\ \fB\-\-reset\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-r\fP\ |\ \fB–reset\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-merchant\-dbinit\fP is a command\-line tool to initialize the Taler
@@ -48,21 +48,21 @@ Taler merchant to operate.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the merchant to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-r\fP | \fB\-\-reset\fP
+\fB\-r\fP | \fB–reset\fP
Drop tables. Dangerous, will delete all existing data in the database
before creating the tables.
.TP
diff --git a/man/taler-merchant-depositcheck.1 b/man/taler-merchant-depositcheck.1
index f1c7975d..8f409285 100644
--- a/man/taler-merchant-depositcheck.1
+++ b/man/taler-merchant-depositcheck.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-MERCHANT-DEPOSITCHECK" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-MERCHANT-DEPOSITCHECK" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-merchant-depositcheck \- check status of deposits with exchange
.SH SYNOPSIS
@@ -38,6 +38,7 @@ taler-merchant-depositcheck \- check status of deposits with exchange
[\fB\-h\fP\ |\ \fB\-\-help\fP]
[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel\fP\fIUSEC\fP]
[\fB\-t\fP\ |\ \fB\-\-test\fP]
[\fB\-v\fP\ |\ \fB\-\-version\fP]
.SH DESCRIPTION
@@ -72,6 +73,11 @@ Configuration section to use. Default is taler\-merchant\-depositcheck. Needed
if different processes are used to watch multiple bank accounts (for the
same instance or different instances).
.TP
+\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+Modify the system time by \fIUSEC\fP microseconds.
+\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
+This option is intended for debugging/testing only.
+.TP
\fB\-t\fP | \fB\-\-test\fP
Run in test mode. Only runs until the current list of bank
transactions are all imported.
diff --git a/man/taler-merchant-exchange.1 b/man/taler-merchant-exchange.1
index e2c27060..dc423ac6 100644
--- a/man/taler-merchant-exchange.1
+++ b/man/taler-merchant-exchange.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-MERCHANT-EXCHANGE" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-MERCHANT-EXCHANGE" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-merchant-exchange \- ask exchange which deposits were aggregated for a particular wire transfer that credited a merchant account
.SH SYNOPSIS
@@ -37,6 +37,7 @@ taler-merchant-exchange \- ask exchange which deposits were aggregated for a par
[\fB\-h\fP\ |\ \fB\-\-help\fP]
[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel\fP\fIUSEC\fP]
[\fB\-t\fP\ |\ \fB\-\-test\fP]
[\fB\-v\fP\ |\ \fB\-\-version\fP]
.SH DESCRIPTION
@@ -67,6 +68,11 @@ Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
+\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+Modify the system time by \fIUSEC\fP microseconds.
+\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
+This option is intended for debugging/testing only.
+.TP
\fB\-t\fP | \fB\-\-test\fP
Run in test mode. Only runs until the current list of bank
transactions have all been checked.
diff --git a/man/taler-merchant-httpd.1 b/man/taler-merchant-httpd.1
index 268dadd6..fe78b2f8 100644
--- a/man/taler-merchant-httpd.1
+++ b/man/taler-merchant-httpd.1
@@ -27,20 +27,20 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-MERCHANT-HTTPD" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-MERCHANT-HTTPD" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-merchant-httpd \- run Taler merchant backend (with RESTful API)
.SH SYNOPSIS
.sp
\fBtaler\-merchant\-httpd\fP
-[\fB\-a**_|_\fP\-\-auth**]
-[\fB\-C\fP\ |\ \fB\-\-connection\-close\fP]
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel\fP\fIUSEC\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-a**_|_\fP–auth**]
+[\fB\-C\fP\ |\ \fB–connection\-close\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB–timetravel\fP\fIUSEC\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
.SH DESCRIPTION
.sp
\fBtaler\-merchant\-httpd\fP is a command\-line tool to run the Taler merchant
@@ -49,44 +49,44 @@ before running this command.
.SH OPTIONS
.INDENT 0.0
.TP
-\fB\-a\fP \fITOKEN\fP | \fB\-\-auth=\fP\fITOKEN\fP
-Use TOKEN for initial access control to the merchant backend. TOKEN must start with the \(dqsecret\-token:\(dq prefix, as per RFC 8959. The value
+\fB\-a\fP \fITOKEN\fP | \fB–auth=\fP\fITOKEN\fP
+Use TOKEN for initial access control to the merchant backend. TOKEN must start with the “secret\-token:” prefix, as per RFC 8959. The value
given in TOKEN must appear in backoffice requests to the default instance
-of the merchant, i.e. \(dqAuthorization: Bearer TOKEN\(dq to obtain
+of the merchant, i.e. “Authorization: Bearer TOKEN” to obtain
access to the merchant backend. Note that setting a passphrase for the
default instance by any means will block future access via TOKEN. This
is basically a way to reset the passphrase protecting access. TOKEN
-should be a \(dqpchar\(dq as per RFC 8959, but this is NOT checked. Note that
-TOKEN will only grant access to the \(aqdefault\(aq instance, not other instances.
+should be a “pchar” as per RFC 8959, but this is NOT checked. Note that
+TOKEN will only grant access to the ‘default’ instance, not other instances.
Instead of using the command\-line, which exposes TOKEN to users on the
system, you may want to consider setting the
TALER_MERCHANT_TOKEN environment variable instead.
.TP
-\fB\-C\fP | \fB\-\-connection\-close\fP
+\fB\-C\fP | \fB–connection\-close\fP
Force each HTTP connection to be closed after each request
(useful in combination with \-f to avoid having to wait for nc to
time out).
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP\fIFILENAME\fP
Use the configuration and other resources for the merchant to
operate from FILENAME.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
-\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+\fB\-T\fP \fIUSEC\fP | \fB–timetravel=\fP\fIUSEC\fP
Modify the system time by \fIUSEC\fP microseconds.
\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
This option is intended for debugging/testing only.
.TP
-\fB\-v\fP | \fB\-\-version\fP
+\fB\-v\fP | \fB–version\fP
Print version information.
.UNINDENT
.SH SIGNALS
@@ -100,7 +100,7 @@ cleanly.
.INDENT 0.0
.TP
.B TALER_MERCHANT_TOKEN
-Like the \(dq\-a\(dq option, resets the access token for the default
+Like the “\-a” option, resets the access token for the default
instance to the given value.
.UNINDENT
.SH SEE ALSO
diff --git a/man/taler-merchant-passwd.1 b/man/taler-merchant-passwd.1
index f06aed85..1c53d124 100644
--- a/man/taler-merchant-passwd.1
+++ b/man/taler-merchant-passwd.1
@@ -27,18 +27,18 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-MERCHANT-PASSWD" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-MERCHANT-PASSWD" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-merchant-passwd \- change Taler merchant instance password
.SH SYNOPSIS
.sp
\fBtaler\-merchant\-passwd\fP
-[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB\-\-config=\fP‌\fIFILENAME\fP]
-[\fB\-h\fP\ |\ \fB\-\-help\fP]
-[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
-[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
-[\fB\-i**_*NAME*\ |\ **\-\-instance\fP\fINAME\fP]
-[\fB\-v\fP\ |\ \fB\-\-version\fP]
+[\fB\-c\fP\ \fIFILENAME\fP\ |\ \fB–config=\fP‌\fIFILENAME\fP]
+[\fB\-h\fP\ |\ \fB–help\fP]
+[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB–loglevel=\fP‌\fILOGLEVEL\fP]
+[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB–logfile=\fP‌\fIFILENAME\fP]
+[\fB\-i**_*NAME*\ |\ **–instance\fP\fINAME\fP]
+[\fB\-v\fP\ |\ \fB–version\fP]
[PASSWORD]
.SH DESCRIPTION
.sp
@@ -50,22 +50,22 @@ environment variable.
Its options are as follows:
.INDENT 0.0
.TP
-\fB\-c\fP \fIFILENAME\fP | \fB\-\-config=\fP‌\fIFILENAME\fP
+\fB\-c\fP \fIFILENAME\fP | \fB–config=\fP‌\fIFILENAME\fP
Use the configuration and other resources for the merchant to operate
from \fIFILENAME\fP\&.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Print short help on options.
.TP
-\fB\-i\fP \fINAME\fP | \fB\-\-instance\fP\fINAME\fP
+\fB\-i\fP \fINAME\fP | \fB–instance\fP\fINAME\fP
Specifies the name of the instance for which the password should be
-updated. If not given, the \(dqdefault\(dq instance is modified.
+updated. If not given, the “default” instance is modified.
.TP
-\fB\-L\fP \fILOGLEVEL\fP | \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP
+\fB\-L\fP \fILOGLEVEL\fP | \fB–loglevel=\fP‌\fILOGLEVEL\fP
Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fBWARNING\fP, \fBERROR\fP\&.
.TP
-\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
+\fB\-l\fP \fIFILENAME\fP | \fB–logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
\fB\-v\fP | \fB–version\fP
diff --git a/man/taler-merchant-webhook.1 b/man/taler-merchant-webhook.1
index 9222f1a7..6ba1667b 100644
--- a/man/taler-merchant-webhook.1
+++ b/man/taler-merchant-webhook.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-MERCHANT-WEBHOOK" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-MERCHANT-WEBHOOK" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-merchant-webhook \- execute webhooks of the Taler merchant backend (optional service)
.SH SYNOPSIS
@@ -37,6 +37,7 @@ taler-merchant-webhook \- execute webhooks of the Taler merchant backend (option
[\fB\-h\fP\ |\ \fB\-\-help\fP]
[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel\fP\fIUSEC\fP]
[\fB\-t\fP\ |\ \fB\-\-test\fP]
[\fB\-v\fP\ |\ \fB\-\-version\fP]
.SH DESCRIPTION
@@ -62,6 +63,11 @@ Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
+\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+Modify the system time by \fIUSEC\fP microseconds.
+\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
+This option is intended for debugging/testing only.
+.TP
\fB\-t\fP | \fB\-\-test\fP
Run in test mode. Only runs until there are no more webhooks
to be executed.
diff --git a/man/taler-merchant-wirewatch.1 b/man/taler-merchant-wirewatch.1
index 35d77f9f..9535a000 100644
--- a/man/taler-merchant-wirewatch.1
+++ b/man/taler-merchant-wirewatch.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-MERCHANT-WIREWATCH" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-MERCHANT-WIREWATCH" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-merchant-wirewatch \- import credit transactions from a merchant bank account into merchant backend (optional)
.SH SYNOPSIS
@@ -37,6 +37,8 @@ taler-merchant-wirewatch \- import credit transactions from a merchant bank acco
[\fB\-h\fP\ |\ \fB\-\-help\fP]
[\fB\-L\fP\ \fILOGLEVEL\fP\ |\ \fB\-\-loglevel=\fP‌\fILOGLEVEL\fP]
[\fB\-l\fP\ \fIFILENAME\fP\ |\ \fB\-\-logfile=\fP‌\fIFILENAME\fP]
+[\fB\-p\fP\ |\ \fB\-\-persist\fP]
+[\fB\-T\fP\ \fIUSEC\fP\ |\ \fB\-\-timetravel\fP\fIUSEC\fP]
[\fB\-t\fP\ |\ \fB\-\-test\fP]
[\fB\-v\fP\ |\ \fB\-\-version\fP]
.SH DESCRIPTION
@@ -63,11 +65,19 @@ Specifies the log level to use. Accepted values are: \fBDEBUG\fP, \fBINFO\fP,
\fB\-l\fP \fIFILENAME\fP | \fB\-\-logfile=\fP‌\fIFILENAME\fP
Send logging output to \fIFILENAME\fP\&.
.TP
+\fB\-p\fP | \fB\-\-persist\fP
+Run in persist mode. Does not exit when the account configuration changes. Useful when not running under systemd.
+.TP
\fB\-s\fP \fISECTION\fP | \fB\-\-section=\fP\fISECTION\fP
Configuration section to use. Default is taler\-merchant\-wirewatch. Needed
if different processes are used to watch multiple bank accounts (for the
same instance or different instances).
.TP
+\fB\-T\fP \fIUSEC\fP | \fB\-\-timetravel=\fP\fIUSEC\fP
+Modify the system time by \fIUSEC\fP microseconds.
+\fIUSEC\fP may be prefixed with \fB+\fP or \fB\-\fP (e.g. \fB\-T +300\fP).
+This option is intended for debugging/testing only.
+.TP
\fB\-t\fP | \fB\-\-test\fP
Run in test mode. Only runs until the current list of bank
transactions are all imported.
diff --git a/man/taler-terms-generator.1 b/man/taler-terms-generator.1
index 0a4b1224..bba14d63 100644
--- a/man/taler-terms-generator.1
+++ b/man/taler-terms-generator.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-TERMS-GENERATOR" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-TERMS-GENERATOR" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-terms-generator \- create legal policy documents for services
.SH SYNOPSIS
@@ -46,7 +46,7 @@ taler-terms-generator \- create legal policy documents for services
.TP
\fBtaler\-terms\-generator\fP is a command\-line tool to create terms of service
and privacy policy files in various file formats and languages from a
-reStructuredText (\(dq.rst\(dq) input. It can be used to generate the responses
+reStructuredText (“.rst”) input. It can be used to generate the responses
various GNU Taler services serve under the \fB/terms\fP and \fB/pp\fP endpoints.
.TP
\fB\-a\fP \fIAUTHOR\fP
@@ -55,26 +55,26 @@ set the author information to the given AUTHOR in the meta\-data of various gene
\fB\-C\fP \fICOPYRIGHT\fP
set the copyright information to the given COPYRIGHT in the meta\-data of various generated outputs.
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Prints a compiled\-in help text.
.TP
\fB\-i\fP \fIINPUT\fP
Name of the input (.rst) file with the terms of service or privacy policy to convert.
.TP
\fB\-l\fP \fILANGUAGE\fP
-Add the given \fILANGUAGE\fP to the list of translations for the current \fIINPUT\fP\&. \fILANGUAGE\fP must be a two\-letter language code (like \(dqde\(dq or \(dqit\(dq). This will generate or update the respective \(dq.po\(dq files to translate the \fIINPUT\fP terms to this \fILANGUAGE\fP\&.
+Add the given \fILANGUAGE\fP to the list of translations for the current \fIINPUT\fP\&. \fILANGUAGE\fP must be a two\-letter language code (like “de” or “it”). This will generate or update the respective “.po” files to translate the \fIINPUT\fP terms to this \fILANGUAGE\fP\&.
.TP
\fB\-L\fP \fILOCALE_DIR\fP
-Specify locale/ directory where GNU gettext resources for translating the input are located. If \(dq\-l\(dq is given, this directory is where fresh or updated \(dq.po\(dq files will be placed, and otherwise this directory will be scanned for translations of the \(dq.rst\(dq input file.
+Specify locale/ directory where GNU gettext resources for translating the input are located. If “\-l” is given, this directory is where fresh or updated “.po” files will be placed, and otherwise this directory will be scanned for translations of the “.rst” input file.
.TP
\fB\-o\fP \fIOUTPUT\fP
Specifies where to write the output. This should be the directory where the service expects to find the generated resources. Unless you changed the default configuration, you probably do not have to specify this value.
.TP
\fB\-p\fP \fIPAPER\fP
-Specifies the paper format for generated PDF documents. Can be \(dqa4\(dq or \(dqletter\(dq.
+Specifies the paper format for generated PDF documents. Can be “a4” or “letter”.
.TP
\fB\-t\fP \fITITLE\fP
-Overrides the document title. By default, the title will be set to the contents of the first line of the \fIINPUT\fP \(dq.rst\(dq file.
+Overrides the document title. By default, the title will be set to the contents of the first line of the \fIINPUT\fP “.rst” file.
.UNINDENT
.SH SEE ALSO
.sp
diff --git a/man/taler-unified-setup.1 b/man/taler-unified-setup.1
index 07220a8e..a1b89790 100644
--- a/man/taler-unified-setup.1
+++ b/man/taler-unified-setup.1
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER-UNIFIED-SETUP" "1" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER-UNIFIED-SETUP" "1" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler-unified-setup \- conveniently start and stop various GNU Taler services
.SH SYNOPSIS
@@ -68,7 +68,7 @@ Start backup/sync service
(Mandatory) Use CONFIG_FILENAME.
.TP
\fB\-d\fP \fIMETHOD\fP
-use the given wire method. Default is \(aqx\-taler\-bank\(aq.
+use the given wire method. Default is ‘x\-taler\-bank’.
.TP
\fB\-e\fP
Start exchange
@@ -79,7 +79,7 @@ Start fakebank
\fB\-g\fP
Start aggregator
.TP
-\fB\-h\fP | \fB\-\-help\fP
+\fB\-h\fP | \fB–help\fP
Prints a compiled\-in help text.
.TP
\fB\-k\fP
diff --git a/man/taler.conf.5 b/man/taler.conf.5
index 925ec805..c0343a01 100644
--- a/man/taler.conf.5
+++ b/man/taler.conf.5
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
-.TH "TALER.CONF" "5" "Jan 21, 2024" "0.9" "GNU Taler"
+.TH "TALER.CONF" "5" "Feb 10, 2024" "0.9" "GNU Taler"
.SH NAME
taler.conf \- Taler configuration file
.SH DESCRIPTION
@@ -238,7 +238,9 @@ Hostname to which the exchange HTTP server should be bound to, e.g. \(dqlocalhos
.TP
.B MASTER_PUBLIC_KEY
Crockford Base32\-encoded master public key, public version of the
-exchange\(aqs long\-time offline signing key.
+exchange\(aqs long\-time offline signing key. This configuration option
+is also used by the \fBauditor\fP to determine the public key of the
+exchange which it is auditing.
.TP
.B AML_THRESHOLD
Largest amount in this currency that can be transferred per month without
@@ -247,13 +249,6 @@ an AML staff member doing a (manual) AML check. For example: \(dqUSD:1000000\(dq
.B KYC_AML_TRIGGER
Program to run on KYC attribute data to decide whether we should immediately flag an account for AML review. Program must return 0 if a manual AML review is not needed, and non\-zero to trigger an AML review. The KYC attribute data of the new user will be passed on standard\-input.
.TP
-.B ENABLE_REWARDS
-This option can be used to announce that an exchange does not allow
-the use of the reserves for rewards. The default is YES which means
-that rewards are allowed. The option merely announces that
-rewards is enabled or disabled, and protocol\-compliant merchant
-backends will then enable or disable the feature accordingly.
-.TP
.B STEFAN_ABS
Absolte amount to add as an offset in the STEFAN fee approximation
curve (see DD47). Defaults to CURRENCY:0 if not specified.
diff --git a/texinfo/challenger.texi b/texinfo/challenger.texi
index 7f9e6ef3..53187060 100644
--- a/texinfo/challenger.texi
+++ b/texinfo/challenger.texi
@@ -19,7 +19,7 @@
@copying
@quotation
-GNU Taler 0.9.0, Jan 06, 2024
+GNU Taler 0.9.0, Feb 10, 2024
GNU Taler team
diff --git a/texinfo/taler-auditor.texi b/texinfo/taler-auditor.texi
index 10e41d03..8593c05b 100644
--- a/texinfo/taler-auditor.texi
+++ b/texinfo/taler-auditor.texi
@@ -19,7 +19,7 @@
@copying
@quotation
-GNU Taler 0.9.0, Jan 06, 2024
+GNU Taler 0.9.0, Feb 10, 2024
GNU Taler team
@@ -99,7 +99,7 @@ Configuration
* Configuration format::
* Initial configuration::
* Keys::
-* Configuring the auditor’s REST endpoint::
+* Configuring the auditor's REST endpoint::
* Bank account::
* Database::
* Legal conditions for using the service::
@@ -137,7 +137,7 @@ Operation
Auditor implementation guide
-* The auditor’s database::
+* The auditor's database::
* Invariants checked by the auditor::
* Testing the auditor::
@@ -220,7 +220,7 @@ to other parties.
To perform this duty, you will need at least (read-only) access to the bank
transactions of the exchange, as well as a continuously synchronized replica
-of the exchange’s database. The general assumption for running the auditor
+of the exchange's database. The general assumption for running the auditor
is that this is done on a separate system controlled by the auditor. After
all, the goal is to detect nerfarious activity of the exchange operator,
which cannot be effectively done on a machine controlled by the exchange
@@ -232,9 +232,9 @@ withdrawals made by consumers and income received by merchants. As a result,
the auditor is expected to provide high confidentiality for the database. In
general, the auditor does not have to offer high-availability: the exchange
operator can continue operations without the auditor, and the auditor can
-catch up with it later when the auditor’s systems are restored. However, of
+catch up with it later when the auditor's systems are restored. However, of
course any downtime would provide a window of opportunity for fraud and should
-thus be minimized. Finally, the auditor’s copy of the exchange’s database can
+thus be minimized. Finally, the auditor's copy of the exchange's database can
be useful as a backup to the exchange in case the exchange experiences a loss
of its own copies. Thus, business agreements between auditor and exchanges may
include availability requirements as well.
@@ -242,7 +242,7 @@ include availability requirements as well.
Then, with the software provided, auditors can verify the cryptographic proofs
collected by the exchange and detect if any improper bank transactions have been
made. There are additional tasks which an auditor should perform. While this
-manual only focuses on the audit of the exchange’s database and wire transfers
+manual only focuses on the audit of the exchange's database and wire transfers
with the existing tools, a proper auditor should also perform the following
tasks:
@@ -268,7 +268,7 @@ verification that the exchange properly implements the @code{/link} protocol
@item
verification that the exchange properly reports coins issued during
the refresh protocol (by irregularly refreshing coins withdrawn by
-the auditor and comparing against the exchange’s database — the
+the auditor and comparing against the exchange's database --- the
code required to support this is not yet implemented)
@end itemize
@@ -289,8 +289,8 @@ oversight function.
Auditors should generally be independent third parties that verify that the
exchange operates correctly. However, an exchange is likely to also run the
auditing logic, as it is also used to calculate the exchange’s profits, risk
-and liabilities. Furthermore, it’s usually a good idea to not only rely on
-third parties to verify one’s own work.
+and liabilities. Furthermore, it's usually a good idea to not only rely on
+third parties to verify one's own work.
The Taler software stack for an auditor consists of the following
components:
@@ -322,7 +322,7 @@ the auditor to detect if an exchange is underreporting deposits.
In the future, the Web service should be extended to allow customers and
merchants to automatically upload cryptographic proof of other violations
of the specification by the exchange. However, for now it is assumed that
-the respective cryptographic proofs are reported and verified manually —
+the respective cryptographic proofs are reported and verified manually ---
as with a well-behaved exchange this should obviously be a rare event.
The main binary of this component is the @code{taler-auditor-httpd}.
@@ -342,7 +342,7 @@ needs access to the wire gateway).
The @code{taler-helper-auditor-wire} auditor verifies that the bank
transactions performed by the exchange
were done properly. This component must have access to the bank account
-of the exchange, as well as to a copy of the exchange’s database.
+of the exchange, as well as to a copy of the exchange's database.
The @code{taler-auditor} script invokes the various helpers, each generating
a JSON report. It then invokes the @code{taler-helper-auditor-render.py}
@@ -388,7 +388,7 @@ Python3 module @code{jinja2}
@itemize -
@item
-“Sphinx RTD Theme” Python package aka @code{python3-sphinx-rtd-theme}
+"Sphinx RTD Theme" Python package aka @code{python3-sphinx-rtd-theme}
on Debian-based systems (for GNUnet documentation support, can be
omitted if GNUnet is configured with @code{--disable-documentation})
@@ -646,22 +646,22 @@ is not recommended for security. The recommended set of users includes:
@itemize *
@item
-auditor — runs the main auditing process and HTTP backend
+auditor --- runs the main auditing process and HTTP backend
@item
-sync — synchronizes the ingres database with the production database
+sync --- synchronizes the ingres database with the production database
@item
-helper — runs taler-auditor-offline download and upload commands
+helper --- runs taler-auditor-offline download and upload commands
@item
-auditor-ingres — imports database from exchange production system
+auditor-ingres --- imports database from exchange production system
@item
-auditor-wire — imports wire transfer data from bank production system
+auditor-wire --- imports wire transfer data from bank production system
@item
-offline — manages the offline key, on a separate `offline' machine
+offline --- manages the offline key, on a separate `offline' machine
@end itemize
@end quotation
@@ -681,10 +681,10 @@ distribution would typically create for you):
@itemize *
@item
-www-data — runs the HTTPS frontend (usually nginx or Apache)
+www-data --- runs the HTTPS frontend (usually nginx or Apache)
@item
-postgres — runs the PostgreSQL database
+postgres --- runs the PostgreSQL database
@end itemize
@end quotation
@@ -701,16 +701,16 @@ We recommend using the following databases for the auditor:
@itemize *
@item
-exchange-ingres — synchronized exchange database over the network
+exchange-ingres --- synchronized exchange database over the network
@item
-exchange-production — local copy of exchange database with trusted schema
+exchange-production --- local copy of exchange database with trusted schema
@item
-auditor — auditor production database with current state of the audit
+auditor --- auditor production database with current state of the audit
@item
-libeufin — local state of the auditor-wire tool for the bank transfer data import
+libeufin --- local state of the auditor-wire tool for the bank transfer data import
@end itemize
@end quotation
@@ -742,7 +742,7 @@ $ echo 'GRANT SELECT ON ALL TABLES IN SCHEMA public TO auditor;' | psql libeufin
@chapter Configuration
-The auditor’s configuration works the same way as the configuration of other
+The auditor's configuration works the same way as the configuration of other
Taler components.
This section discusses configuration options related to the auditor.
@@ -750,7 +750,7 @@ This section discusses configuration options related to the auditor.
* Configuration format::
* Initial configuration::
* Keys::
-* Configuring the auditor’s REST endpoint::
+* Configuring the auditor's REST endpoint::
* Bank account::
* Database::
* Legal conditions for using the service::
@@ -865,7 +865,7 @@ BASE_URL = https://auditor.example.com/
The @code{helper} user that is used to download information from the exchange
needs to know details about the exchange. Similarly, the @code{offline} user
-needs to check signatures signed with the exchange’s offline key. Hence, you
+needs to check signatures signed with the exchange's offline key. Hence, you
need to obtain the @code{MASTER_PUBLIC_KEY} from the exchange operator (they need
to run @code{taler-exchange-offline setup}) and the REST endpoint of the exchange
and configure these:
@@ -877,14 +877,14 @@ BASE_URL = https://exchange.example.com/
MASTER_PUBLIC_KEY = $SOMELONGBASE32VALUEHERE
@end example
-@node Keys,Configuring the auditor’s REST endpoint,Initial configuration,Configuration
+@node Keys,Configuring the auditor's REST endpoint,Initial configuration,Configuration
@anchor{taler-auditor-manual auditorkeys}@anchor{12}@anchor{taler-auditor-manual keys}@anchor{13}
@section Keys
The auditor works with one signing key to certify that it is auditing
-a particular exchange’s denomination keys. This key can and should
-be kept `offline' (and backed up adequately). As with the exchange’s
+a particular exchange's denomination keys. This key can and should
+be kept `offline' (and backed up adequately). As with the exchange's
offline key, it is only used for a few cryptographic signatures and
thus the respective code can be run on modest hardware, like a
Raspberry Pi.
@@ -926,9 +926,9 @@ You can set this configuration value using:
PUBLIC_KEY = $SOMELONGBASE32VALUEHERE
@end example
-@node Configuring the auditor’s REST endpoint,Bank account,Keys,Configuration
+@node Configuring the auditor's REST endpoint,Bank account,Keys,Configuration
@anchor{taler-auditor-manual auditorserving}@anchor{14}@anchor{taler-auditor-manual configuring-the-auditor-s-rest-endpoint}@anchor{15}
-@section Configuring the auditor’s REST endpoint
+@section Configuring the auditor's REST endpoint
The auditor can serve HTTP over both TCP and UNIX domain socket.
@@ -954,7 +954,7 @@ HTTP over a UNIX domain socket
for @code{unixpath} (i.e. 660 = @code{rw-rw----}).
@end itemize
-@node Bank account,Database,Configuring the auditor’s REST endpoint,Configuration
+@node Bank account,Database,Configuring the auditor's REST endpoint,Configuration
@anchor{taler-auditor-manual auditorbank-account}@anchor{16}@anchor{taler-auditor-manual bank-account}@anchor{17}
@section Bank account
@@ -997,14 +997,14 @@ CONFIG = postgres:///auditordemo
If an exchange runs its own auditor, it may use the same database for
the auditor and the exchange itself.
-The @code{taler-auditor-dbinit} tool is used to initialize the auditor’s
+The @code{taler-auditor-dbinit} tool is used to initialize the auditor's
tables. After running this tool, the rights to CREATE or DROP tables
are no longer required and should be removed.
Both the @code{taler-auditor-httpd} and the @code{taler-auditor} (and its helpers)
also need (read-only) access to a (recent, current, synchronized) copy of the
-exchange’s database. The configuration options are the same that are also
-used when configuring the exchange’ database:
+exchange's database. The configuration options are the same that are also
+used when configuring the exchange' database:
@quotation
@@ -1050,7 +1050,7 @@ setup and configure the legal conditions.
@section Terms of Service
-The service has an endpoint “/terms” to return the terms of service (in legal
+The service has an endpoint "/terms" to return the terms of service (in legal
language) of the service operator. Client software show these terms of
service to the user when the user is first interacting with the service.
Terms of service are optional for experimental deployments, if none are
@@ -1064,7 +1064,7 @@ in the configuration file for the service:
@itemize -
@item
-@code{TERMS_ETAG}: The current “Etag” to return for the terms of service.
+@code{TERMS_ETAG}: The current "Etag" to return for the terms of service.
This value must be changed whenever the terms of service are
updated. A common value to use would be a version number.
Note that if you change the @code{TERMS_ETAG}, you MUST also provide
@@ -1081,7 +1081,7 @@ process.
@section Privacy Policy
-The service has an endpoint “/pp” to return the terms privacy policy (in legal
+The service has an endpoint "/pp" to return the terms privacy policy (in legal
language) of the service operator. Clients should show the privacy policy to
the user when the user explicitly asks for it, but it should not be shown by
default. Privacy policies are optional for experimental deployments, if none
@@ -1095,7 +1095,7 @@ in the configuration file for the service:
@itemize -
@item
-@code{PRIVACY_ETAG}: The current “Etag” to return for the privacy policy.
+@code{PRIVACY_ETAG}: The current "Etag" to return for the privacy policy.
This value must be changed whenever the privacy policy is
updated. A common value to use would be a version number.
Note that if you change the @code{PRIVACY_ETAG}, you MUST also provide
@@ -1116,7 +1116,7 @@ The @code{TERMS_DIR} and @code{PRIVACY_DIR} directory structures must follow a
particular layout. You may use the same directory for both the terms of
service and the privacy policy, as long as you use different ETAGs. Inside of
the directory, there should be sub-directories using two-letter language codes
-like “en”, “de”, or “jp”. Each of these directories would then hold
+like "en", "de", or "jp". Each of these directories would then hold
translations of the current terms of service into the respective language.
Empty directories are permitted in case translations are not available.
@@ -1124,7 +1124,7 @@ Then, inside each language directory, files with the name of the value set as
the @code{TERMS_ETAG} or @code{PRIVACY_ETAG} must be provided. The extension of each
of the files should be typical for the respective mime type. The set of
supported mime types is currently hard-coded in the service, and includes
-“.epub”, “.html”, “.md”, “.pdf” and “.txt” files. If other files are present,
+".epub", ".html", ".md", ".pdf" and ".txt" files. If other files are present,
the service may show a warning on startup.
@menu
@@ -1137,7 +1137,7 @@ the service may show a warning on startup.
@subsection Example
-A sample file structure for a @code{TERMS_ETAG} of “tos-v0” would be:
+A sample file structure for a @code{TERMS_ETAG} of "tos-v0" would be:
@itemize -
@@ -1173,8 +1173,8 @@ TERMS_DIR/de/tos-v0.epub
TERMS_DIR/de/tos-v0.md
@end itemize
-If the user requests an HTML format with language preferences “fr” followed by
-“en”, the service would return @code{TERMS_DIR/en/tos-v0.html} lacking a version in
+If the user requests an HTML format with language preferences "fr" followed by
+"en", the service would return @code{TERMS_DIR/en/tos-v0.html} lacking a version in
French.
@node Generating the Legal Terms,Adding translations,Legal policies directory layout,Configuration
@@ -1264,7 +1264,7 @@ restart the service.
@anchor{taler-auditor-manual wallets}@anchor{24}
Before GNU Taler wallets will happily interact with an exchange, the
-respective auditor’s public key (as obtained via @code{taler-auditor-offline
+respective auditor's public key (as obtained via @code{taler-auditor-offline
setup} from the @code{offline} user) must be added under the respective currency
to the wallet. This is usually expected to be hard-coded into the Taler
wallet.
@@ -1272,7 +1272,7 @@ wallet.
Users can also manually add auditors for a particular currency via a
Web page offering the respective pairing.
-FIXME-DOLD: explain how that Web page works, once it works…
+FIXME-DOLD: explain how that Web page works, once it works...
@menu
* Exchange::
@@ -1286,13 +1286,13 @@ FIXME-DOLD: explain how that Web page works, once it works…
@section Exchange
-The next step is to add the exchange’s master public key and the base URL of
+The next step is to add the exchange's master public key and the base URL of
the exchange to the list of exchanges audited by the auditor. This is done
using the @code{taler-auditor-exchange} tool. The tool basically creates the
-respective record in the auditor’s database.
+respective record in the auditor's database.
If this step is skipped, the auditor will malfunction at all future stages
-with a foreign key violation, as it does not know the exchange’s master public
+with a foreign key violation, as it does not know the exchange's master public
key.
@example
@@ -1302,7 +1302,7 @@ $ taler-auditor-exchange -m $MASTER_PUB -u $EXCHANGE_BASE_URL
An equivalent step must be performed by the exchange operator. Here, the
exchange operator must use the @code{taler-exchange-offline} tool to add the
-auditor’s public key, base URL and (business) name to the list of approved
+auditor's public key, base URL and (business) name to the list of approved
auditors of the exchange. For details, see Auditor-configuration in the
exchange operator manual.
@@ -1340,7 +1340,7 @@ process that is outside of the scope of this document.
Note that the @code{input.json} does not contain any confidential data. However,
signing the wrong keys would be fatal in that it may allow an illegitimate
exchange to convince users that it is a trustworthy operator and subsequently
-betray the user’s trust that is anchored in the existence of a trustworthy
+betray the user's trust that is anchored in the existence of a trustworthy
auditor.
Given the verified JSON input, the auditor can then sign it (typically
@@ -1375,21 +1375,21 @@ command-line option, send logging output to standard error by default.
The next key step for the auditor is to configure replication of the
-`exchange'’s database in-house. This should be performed in two steps
+`exchange''s database in-house. This should be performed in two steps
as illustrated in the following figure:
@image{taler-auditor-figures/replication,,,,png}
First, the exchange should use standard PostgreSQL replication features to
-enable the auditor to obtain a full copy of the exchange’s database.
-Second, the auditor should make a “trusted” local copy, ensuring that it
+enable the auditor to obtain a full copy of the exchange's database.
+Second, the auditor should make a "trusted" local copy, ensuring that it
never replicates malicious changes using @code{taler-auditor-sync}. Both
of these steps are described in more detail below.
We note that as a result of these steps, the auditor will have three
databases: its own production primary database (as configured in
-@code{auditordb-postgres}), its on production copy of the exchange’s database
-(@code{exchangedb-postgress}), and a third, untrusted “ingres” copy of the
+@code{auditordb-postgres}), its on production copy of the exchange's database
+(@code{exchangedb-postgress}), and a third, untrusted "ingres" copy of the
exchange database. The untrusted database should run as a separate PostgreSQL
instance and is only accessed via @code{taler-auditor-sync} and the replication
mechanism driven by the exchange operator.
@@ -1405,7 +1405,7 @@ mechanism driven by the exchange operator.
@subsection Ingres replication of the exchange production database
-Ingres operation should be done using the @code{auditor-ingres} user — or
+Ingres operation should be done using the @code{auditor-ingres} user --- or
depending on the setup parts of the operation may be done by the @code{postgres}
user directly.
@@ -1418,10 +1418,10 @@ that asynchronous replication should suffice.
The resulting auditor database should be treated as read-only on the auditor
side. The @code{taler-exchange-dbinit} tool can be used to setup the schema, or
-the schema can be replicated using PostgreSQL’s standard mechanisms. The same
+the schema can be replicated using PostgreSQL's standard mechanisms. The same
applies for schema upgrades: if logical replication is used (which does not
replicate schema changes), @code{taler-exchange-dbinit} can be used to migrate
-the schema(s) in both the ingres and production copies of the exchange’s
+the schema(s) in both the ingres and production copies of the exchange's
database as well.
On the exchange side, a database user must be created that has the right
@@ -1435,7 +1435,7 @@ $ echo "CREATE PUBLICATION $NAME FOR ALL TABLES;" | psql taler-exchange
@end example
The exchange must share the password of the publication with the auditor. A
-good @code{$NAME} relates to the auditor’s business unit name. A secure tunnel
+good @code{$NAME} relates to the auditor's business unit name. A secure tunnel
must be setup between the exchange and the auditor, for example using SSH or
Wireguard.
@@ -1458,7 +1458,7 @@ PostgreSQL configuration:
wal_level= logical
@end example
-Next, the @code{postgres} user of the auditor’s system must first initialize the
+Next, the @code{postgres} user of the auditor's system must first initialize the
local tables:
@example
@@ -1474,7 +1474,7 @@ CONFIG = "postgres:///taler-ingress"
$ taler-exchange-dbinit
@end example
-To complete the replication, the @code{postgres} user of the auditor’s
+To complete the replication, the @code{postgres} user of the auditor's
system must subscribe:
@example
@@ -1491,7 +1491,7 @@ For details, we refer to the PostgreSQL manual.
Depending on the replication method used, the exchange may perform
unexpected changes to the schema or perform @code{UPDATE}, @code{DELETE} or
@code{DROP} operations on the tables. Hence, the auditor cannot rely upon the
-exchange’s primary copy to respect schema constraints, especially as we
+exchange's primary copy to respect schema constraints, especially as we
have to presume that the exchange could act maliciously. Furthermore, it
is unclear to what degree PostgreSQL database replication mechanisms are
robust against a malicious master database. Thus, the auditor should
@@ -1506,20 +1506,20 @@ process, from its actual operational data.
Using @code{taler-auditor-sync} as the @code{sync} user, the auditor should
-make a second “safe” copy of the exchange’s ingres database.
+make a second "safe" copy of the exchange's ingres database.
@code{taler-auditor-sync} basically reads from one exchange database and inserts
all records found into a second exchange database. If the source database
violates invariants, the tool halts with an error. This way, records violating
invariants are never even copied, and in particular schema changes and
-deletions or updates are not propagated into the auditor’s production
+deletions or updates are not propagated into the auditor's production
database.
While @code{taler-auditor-sync} could in theory be run directly against the
-exchange’s production system, this is likely a bad idea due to the high
+exchange's production system, this is likely a bad idea due to the high
latency from the network between auditor and exchange operator. Thus, we
-recommend first making an “untrusted” ingress copy of the exchange’s
+recommend first making an "untrusted" ingress copy of the exchange's
production database using standard PostgreSQL tooling, and then using
-@code{taler-auditor-sync} to create a second “safe” copy. The “safe” copy used
+@code{taler-auditor-sync} to create a second "safe" copy. The "safe" copy used
by the production system should also run under a different UID.
Before @code{taler-auditor-sync} can be used, the target database must be
@@ -1557,11 +1557,11 @@ $ taler-auditor-sync -s src.conf -d dst.cfg -t
When the exchange performs garbage collection to @code{DELETE} obsolete records,
this change should be automatically replicated to the auditors untrusted
-ingress database. However, as @code{taler-auditor-sync} tries to be “safe”,
-it will not replicate those deletions to the auditor’s production database.
+ingress database. However, as @code{taler-auditor-sync} tries to be "safe",
+it will not replicate those deletions to the auditor's production database.
Thus, it is necessary to (occasonally) run @code{taler-exchange-dbinit -g} on
-the auditor’s production database to garbage collect old data in the
-auditor’s production copy. We note that this does not have to be done
+the auditor's production database to garbage collect old data in the
+auditor's production copy. We note that this does not have to be done
at the same time when the exchange runs its garbage collection.
@node Operation,Auditor implementation guide,Deployment,Top
@@ -1587,7 +1587,7 @@ at the same time when the exchange runs its garbage collection.
The @code{taler-auditor-httpd} runs the required REST API for the auditor. The
service must have @code{INSERT} (and @code{SELECT}) rights on the
-@code{deposit_confirmations} table in the auditor’s database. We expect that in
+@code{deposit_confirmations} table in the auditor's database. We expect that in
future versions additional rights may be required.
For now, we recommend simply running the @code{taler-auditor-httpd} under the
@@ -1637,7 +1637,7 @@ anymore), this is not recommended in a production setup.
@section Reading the report
-The auditor’s report needs to be read carefully, as it includes
+The auditor's report needs to be read carefully, as it includes
several categories of failures of different severity:
@@ -1703,14 +1703,14 @@ completing a @code{taler-audit} run against the old schema
@item
migrating the exchange schema (@code{taler-exchange-dbinit}) of
the master database, possibly the ingres database and the
-auditor’s production copy
+auditor's production copy
@item
migrating the auditor database (@code{taler-auditor-dbinit})
@item
-resuming database replication between the exchange’s master
-database and the auditor’s ingres copy
+resuming database replication between the exchange's master
+database and the auditor's ingres copy
@item
resuming @code{taler-auditor-sync}
@@ -1755,7 +1755,7 @@ For more information, see Revocations in the exchange operator manual.
If all denominations of an exchange are revoked, the exchange includes logic
to wire back all returned funds to the bank accounts from which they
originate. If some denominations remain operational, wallets will generally
-exchange old coins of revoked denominations for new coins – while providing
+exchange old coins of revoked denominations for new coins -- while providing
additional information to demonstrate that these coins were not forged from
the compromised private key but obtained via a legitimate withdraw operation.
@@ -1764,12 +1764,12 @@ the compromised private key but obtained via a legitimate withdraw operation.
@section Failures
-Most audit failures are handled by the auditor’s regular reporting functionality,
+Most audit failures are handled by the auditor's regular reporting functionality,
creating a (hopefully descriptive) PDF report detailing the problems found.
However, there is one category of errors where this is not possible, which
-concerns arithmetic overflows for amounts. Taler’s specification limits amount
-values to at most 2^52. If, during the auditor’s calculations, amounts are
+concerns arithmetic overflows for amounts. Taler's specification limits amount
+values to at most 2^52. If, during the auditor's calculations, amounts are
encountered that exceed this threshold, the auditor will not generate a regular
report, but instead write a log statement explaining where the problem happened
and exit with a status code of `42'.
@@ -1801,15 +1801,15 @@ The auditor implementation is split into five main processes, called
@code{taler-helper-auditor-XXX}. The split was done to realize the principle of
least privilege and to enable independent logic to be possibly run in
parallel. Only the taler-wire-auditor must have (read-only) access to the
-exchange’s bank account, the other components only need access to the
+exchange's bank account, the other components only need access to the
database.
All auditor subsystems basically start their audit from a certain transaction
index (@code{BIG SERIAL}) in the auditor database which identifies where the last
audit concluded. They then check that the transactions claimed in the
-exchange’s database match up internally, including the cryptographic
+exchange's database match up internally, including the cryptographic
signatures and also with respect to amounts adding up. The auditor also
-calculates the exchange’s profits and expected bank balances. Once all
+calculates the exchange's profits and expected bank balances. Once all
existing transactions are processed, the auditor processes store the current
checkpoint in its database and generate a JSON report.
@@ -1818,22 +1818,22 @@ uses Jinja2 with a TeX template to convert the five individual
JSON reports into LaTeX and then into PDF.
@menu
-* The auditor’s database::
+* The auditor's database::
* Invariants checked by the auditor::
* Testing the auditor::
@end menu
-@node The auditor’s database,Invariants checked by the auditor,,Auditor implementation guide
+@node The auditor's database,Invariants checked by the auditor,,Auditor implementation guide
@anchor{taler-auditor-manual the-auditor-s-database}@anchor{3b}
-@section The auditor’s database
+@section The auditor's database
The database scheme used by the exchange looks as follows:
@image{taler-auditor-figures/auditor-db,,,,png}
-@node Invariants checked by the auditor,Testing the auditor,The auditor’s database,Auditor implementation guide
+@node Invariants checked by the auditor,Testing the auditor,The auditor's database,Auditor implementation guide
@anchor{taler-auditor-manual invariants-checked-by-the-auditor}@anchor{3c}
@section Invariants checked by the auditor
@@ -1858,7 +1858,7 @@ pass where it might seem applicable.
@subsection Invariants checked by the taler-helper-auditor-aggregation
-This is from CodeBlau’s analysis. A proper write-up is pending.
+This is from CodeBlau's analysis. A proper write-up is pending.
CodeBlau reports the following checks:
@@ -1970,7 +1970,7 @@ wire fee unavailable for given time
@subsection Invariants checked by the taler-helper-auditor-coins
-This is from CodeBlau’s analysis. A proper write-up is pending.
+This is from CodeBlau's analysis. A proper write-up is pending.
CodeBlau reports the following checks:
@@ -1978,9 +1978,9 @@ CodeBlau reports the following checks:
@item
check that all denominations used by the exchange have been signed using
-this auditor’s key. All denominations encountered in the database that
+this auditor's key. All denominations encountered in the database that
this auditor did not officially sign for are reported (but still included
-in the audit as they obviously may impact the exchange’s bank balance).
+in the audit as they obviously may impact the exchange's bank balance).
Depending on the business situation, this may be normal (say if an exchange
is changing auditors and newer denominations are no longer supported until
their end-of-life by the current auditor).
@@ -2076,7 +2076,7 @@ merchants by simply not reporting deposits to the auditor.
@subsection Invariants checked by the taler-helper-auditor-reserves
-This is from CodeBlau’s analysis. A proper write-up is pending.
+This is from CodeBlau's analysis. A proper write-up is pending.
CodeBlau reports the following checks:
@@ -2138,11 +2138,11 @@ target account does not match origin account
This auditor is special in that it is the only pass that is required to have
-`read-only' access to the exchange’s bank account (privilege separation). Its
-main role is to verify that the wire transfers in the exchange’s database and
+`read-only' access to the exchange's bank account (privilege separation). Its
+main role is to verify that the wire transfers in the exchange's database and
those reported by the bank are identical.
-This is from CodeBlau’s analysis. A proper write-up is pending.
+This is from CodeBlau's analysis. A proper write-up is pending.
CodeBlau reports the following checks:
@@ -2204,7 +2204,7 @@ closing fee above total amount
The main objective of the auditor is to detect inconsistencies. Thus, the
@code{test-auditor.sh} script deliberately introduces various inconsistencies into
-a synthetic exchange database. For this, an “normal” exchange database is
+a synthetic exchange database. For this, an "normal" exchange database is
first generated using the @code{taler-wallet-cli}. Then, various fields or rows
of that database are manipulated, and the auditor is let loose on the modified
database. Afterwards, the test verifies that the JSON contains values
@@ -2217,13 +2217,13 @@ cover as many code paths as possible in both the exchange and the auditor. It
should also ideally create all interesting possible variations of the exchange
database fields (within the constraints of the database schema).
-In general, @code{test-auditor.sh} runs the tests against an “old” database where
+In general, @code{test-auditor.sh} runs the tests against an "old" database where
some transactions are past the due-date (and hence the aggregator would trigger
wire transfers), as well as a freshly generated exchange database where the
auditor would not perform any transfers. Auditor interactions can be made
before or after the aggregator, depending on what is being tested.
-The current script also rudimentarily tests the auditor’s resume logic,
+The current script also rudimentarily tests the auditor's resume logic,
by re-starting the auditor once against a database that the auditor has
already seen.
diff --git a/texinfo/taler-developer-manual-figures/arch-api.png b/texinfo/taler-developer-manual-figures/arch-api.png
index 9e593ab4..9cedb108 100644
--- a/texinfo/taler-developer-manual-figures/arch-api.png
+++ b/texinfo/taler-developer-manual-figures/arch-api.png
Binary files differ
diff --git a/texinfo/taler-developer-manual.texi b/texinfo/taler-developer-manual.texi
index 6ee92df6..5b4efdd2 100644
--- a/texinfo/taler-developer-manual.texi
+++ b/texinfo/taler-developer-manual.texi
@@ -19,7 +19,7 @@
@copying
@quotation
-GNU Taler 0.9.0, Jan 06, 2024
+GNU Taler 0.9.0, Feb 10, 2024
GNU Taler team
@@ -178,8 +178,7 @@ sending invoices or payments to other wallets.
@item
taler-merchant-demos: various demonstration services operated at
-'demo.taler.net', including a simple shop, donation page and a
-survey with reward functionality.
+'demo.taler.net', including a simple shop and a donation page.
@end itemize
@end quotation
@@ -692,7 +691,6 @@ SS = serial
* Blog demo::
* Donation demo::
* Merchant SPA::
-* Survey/Rewards::
* P2P payments::
* Shutdown::
@@ -936,7 +934,7 @@ that the payment is requested again, instead of showing the previous
fulfillment page.
@end itemize
-@node Merchant SPA,Survey/Rewards,Donation demo,GNU Taler Demo Upgrade Checklist
+@node Merchant SPA,P2P payments,Donation demo,GNU Taler Demo Upgrade Checklist
@anchor{taler-developer-manual merchant-spa}@anchor{1f}
@subsection Merchant SPA
@@ -1017,9 +1015,6 @@ fulfillment page.
check displayed TOTP code matches TOTP app
@item
- create reserve for rewards
-
-@item
do manual wire transfer in bank to establish reserve funding
@item
@@ -1047,24 +1042,8 @@ fulfillment page.
check that orders are marked as completed
@end itemize
-@node Survey/Rewards,P2P payments,Merchant SPA,GNU Taler Demo Upgrade Checklist
-@anchor{taler-developer-manual survey-rewards}@anchor{20}
-@subsection Survey/Rewards
-
-
-
-@itemize -
-
-@item
- Visit @indicateurl{https://survey.demo.taler.net/} and receive a reward.
-
-@item
- Verify that the survey stats page (@indicateurl{https://survey.demo.taler.net/survey-stats}) is working,
-and that the survey reserve has sufficient funds.
-@end itemize
-
-@node P2P payments,Shutdown,Survey/Rewards,GNU Taler Demo Upgrade Checklist
-@anchor{taler-developer-manual p2p-payments}@anchor{21}
+@node P2P payments,Shutdown,Merchant SPA,GNU Taler Demo Upgrade Checklist
+@anchor{taler-developer-manual p2p-payments}@anchor{20}
@subsection P2P payments
@@ -1094,7 +1073,7 @@ and that the survey reserve has sufficient funds.
@end itemize
@node Shutdown,,P2P payments,GNU Taler Demo Upgrade Checklist
-@anchor{taler-developer-manual shutdown}@anchor{22}
+@anchor{taler-developer-manual shutdown}@anchor{21}
@subsection Shutdown
@@ -1130,7 +1109,7 @@ and that the survey reserve has sufficient funds.
@end itemize
@node Environments and Builders on taler net,Releases,Demo Upgrade Procedure,Top
-@anchor{taler-developer-manual environments-and-builders-on-taler-net}@anchor{23}
+@anchor{taler-developer-manual environments-and-builders-on-taler-net}@anchor{22}
@chapter Environments and Builders on taler.net
@@ -1147,7 +1126,7 @@ and that the survey reserve has sufficient funds.
@end menu
@node Buildbot implementation,Test builder,,Environments and Builders on taler net
-@anchor{taler-developer-manual buildbot-implementation}@anchor{24}
+@anchor{taler-developer-manual buildbot-implementation}@anchor{23}
@section Buildbot implementation
@@ -1192,7 +1171,7 @@ Create a worker from a shell account with this command: @code{buildbot-worker cr
Then make sure there is a WORKER defined in master.cfg like: @code{worker.Worker("<username>", "<password>")}
@node Test builder,Wallet builder,Buildbot implementation,Environments and Builders on taler net
-@anchor{taler-developer-manual test-builder}@anchor{25}
+@anchor{taler-developer-manual test-builder}@anchor{24}
@section Test builder
@@ -1214,7 +1193,7 @@ the mentioned unit file can be found at @code{deployment.git/systemd-services/}
@end cartouche
@node Wallet builder,Documentation Builder,Test builder,Environments and Builders on taler net
-@anchor{taler-developer-manual wallet-builder}@anchor{26}
+@anchor{taler-developer-manual wallet-builder}@anchor{25}
@section Wallet builder
@@ -1236,7 +1215,7 @@ the mentioned unit file can be found at @code{deployment.git/systemd-services/}
@end cartouche
@node Documentation Builder,Website Builder,Wallet builder,Environments and Builders on taler net
-@anchor{taler-developer-manual documentation-builder}@anchor{27}
+@anchor{taler-developer-manual documentation-builder}@anchor{26}
@section Documentation Builder
@@ -1258,7 +1237,7 @@ $ buildbot-worker start worker/
@end example
@node Website Builder,Code coverage,Documentation Builder,Environments and Builders on taler net
-@anchor{taler-developer-manual website-builder}@anchor{28}
+@anchor{taler-developer-manual website-builder}@anchor{27}
@section Website Builder
@@ -1280,7 +1259,7 @@ $ buildbot-worker start worker/
@end example
@node Code coverage,Producing auditor reports,Website Builder,Environments and Builders on taler net
-@anchor{taler-developer-manual code-coverage}@anchor{29}
+@anchor{taler-developer-manual code-coverage}@anchor{28}
@section Code coverage
@@ -1303,7 +1282,7 @@ $ buildbot-worker start worker/
The results are then published at @code{https://lcov.taler.net/}.
@node Producing auditor reports,Database schema versioning,Code coverage,Environments and Builders on taler net
-@anchor{taler-developer-manual producing-auditor-reports}@anchor{2a}
+@anchor{taler-developer-manual producing-auditor-reports}@anchor{29}
@section Producing auditor reports
@@ -1324,7 +1303,7 @@ $ buildbot-worker start worker/
@end example
@node Database schema versioning,,Producing auditor reports,Environments and Builders on taler net
-@anchor{taler-developer-manual database-schema-versioning}@anchor{2b}@anchor{taler-developer-manual databaseversioning}@anchor{5}
+@anchor{taler-developer-manual database-schema-versioning}@anchor{2a}@anchor{taler-developer-manual databaseversioning}@anchor{5}
@section Database schema versioning
@@ -1340,7 +1319,7 @@ Developers and operators MUST NOT make changes to database schema
outside of this versioning. All tables of a GNU Taler component should live in their own schema.
@node Releases,Continuous integration,Environments and Builders on taler net,Top
-@anchor{taler-developer-manual releases}@anchor{2c}
+@anchor{taler-developer-manual releases}@anchor{2b}
@chapter Releases
@@ -1357,7 +1336,7 @@ outside of this versioning. All tables of a GNU Taler component should live in
@end menu
@node GNU Taler Release Checklist,Release Process,,Releases
-@anchor{taler-developer-manual gnu-taler-release-checklist}@anchor{2d}
+@anchor{taler-developer-manual gnu-taler-release-checklist}@anchor{2c}
@section GNU Taler Release Checklist
@@ -1734,7 +1713,7 @@ Release announcement:
@end itemize
@node Release Process,Tagging,GNU Taler Release Checklist,Releases
-@anchor{taler-developer-manual release-process}@anchor{2e}
+@anchor{taler-developer-manual release-process}@anchor{2d}
@section Release Process
@@ -1769,7 +1748,7 @@ wallet-core (wallet-core.git)
@end itemize
@node Tagging,Database for tests,Release Process,Releases
-@anchor{taler-developer-manual tagging}@anchor{2f}
+@anchor{taler-developer-manual tagging}@anchor{2e}
@section Tagging
@@ -1781,7 +1760,7 @@ $ git push origin v0.1.0
@end example
@node Database for tests,Exchange merchant,Tagging,Releases
-@anchor{taler-developer-manual database-for-tests}@anchor{30}
+@anchor{taler-developer-manual database-for-tests}@anchor{2f}
@section Database for tests
@@ -1798,7 +1777,7 @@ secured from unauthorized access.
@end cartouche
@node Exchange merchant,Wallet WebExtension,Database for tests,Releases
-@anchor{taler-developer-manual exchange-merchant}@anchor{31}
+@anchor{taler-developer-manual exchange-merchant}@anchor{30}
@section Exchange, merchant
@@ -1857,7 +1836,7 @@ $ make install check
@end example
@node Wallet WebExtension,Upload to GNU mirrors,Exchange merchant,Releases
-@anchor{taler-developer-manual wallet-webextension}@anchor{32}
+@anchor{taler-developer-manual wallet-webextension}@anchor{31}
@section Wallet WebExtension
@@ -1871,7 +1850,7 @@ $ make dist
@end example
@node Upload to GNU mirrors,Creating Debian packages,Wallet WebExtension,Releases
-@anchor{taler-developer-manual upload-to-gnu-mirrors}@anchor{33}
+@anchor{taler-developer-manual upload-to-gnu-mirrors}@anchor{32}
@section Upload to GNU mirrors
@@ -1889,7 +1868,7 @@ symlink: taler-exchange-0.1.0.tar.gz taler-exchange-latest.tar.gz
Upload the files in `binary mode' to the ftp servers.
@node Creating Debian packages,,Upload to GNU mirrors,Releases
-@anchor{taler-developer-manual creating-debian-packages}@anchor{34}
+@anchor{taler-developer-manual creating-debian-packages}@anchor{33}
@section Creating Debian packages
@@ -1928,7 +1907,7 @@ Finally, make sure to clean up @code{~/incoming/} (by deleting the
now imported @code{*.deb} files).
@node Continuous integration,Internationalization,Releases,Top
-@anchor{taler-developer-manual continuous-integration}@anchor{35}
+@anchor{taler-developer-manual continuous-integration}@anchor{34}
@chapter Continuous integration
@@ -1946,7 +1925,7 @@ There is also the possibility to trigger builds manually, but this is
only reserved to "admin" users.
@node Internationalization,iOS Apps,Continuous integration,Top
-@anchor{taler-developer-manual internationalization}@anchor{36}
+@anchor{taler-developer-manual internationalization}@anchor{35}
@chapter Internationalization
@@ -1967,14 +1946,14 @@ At this time, this system is still very new for Taler.net and this documentation
@end menu
@node Who can Register,About Privilege Levels,,Internationalization
-@anchor{taler-developer-manual who-can-register}@anchor{37}
+@anchor{taler-developer-manual who-can-register}@anchor{36}
@section Who can Register
At this time, anyone can register an account at @indicateurl{https://weblate.taler.net/} to create translations. Registered users default to the `Users' and `Viewers' privilege level.
@node About Privilege Levels,Upgrading Privileges,Who can Register,Internationalization
-@anchor{taler-developer-manual about-privilege-levels}@anchor{38}
+@anchor{taler-developer-manual about-privilege-levels}@anchor{37}
@section About Privilege Levels
@@ -1997,21 +1976,21 @@ This is the breakdown of privilege levels in Weblate:
@end itemize
@node Upgrading Privileges,How to Create a Project,About Privilege Levels,Internationalization
-@anchor{taler-developer-manual upgrading-privileges}@anchor{39}
+@anchor{taler-developer-manual upgrading-privileges}@anchor{38}
@section Upgrading Privileges
To upgrade from `Users'/`Viewers', a superuser must manually augment your privileges. At this time, superusers are Christian, Florian, and Buck.
@node How to Create a Project,How to Create a Component,Upgrading Privileges,Internationalization
-@anchor{taler-developer-manual how-to-create-a-project}@anchor{3a}
+@anchor{taler-developer-manual how-to-create-a-project}@anchor{39}
@section How to Create a Project
The `GNU Taler' project is probably the correct project for most Components and Translations falling under this guide. Please contact a superuser if you need another Project created.
@node How to Create a Component,How to Create a Translation,How to Create a Project,Internationalization
-@anchor{taler-developer-manual how-to-create-a-component}@anchor{3b}
+@anchor{taler-developer-manual how-to-create-a-component}@anchor{3a}
@section How to Create a Component
@@ -2051,7 +2030,7 @@ Under `https://weblate.taler.net/create/component/vcs/':
@end itemize
@node How to Create a Translation,Translation Standards and Practices,How to Create a Component,Internationalization
-@anchor{taler-developer-manual how-to-create-a-translation}@anchor{3c}
+@anchor{taler-developer-manual how-to-create-a-translation}@anchor{3b}
@section How to Create a Translation
@@ -2070,7 +2049,7 @@ Under `https://weblate.taler.net/create/component/vcs/':
You may also wish to refer to @indicateurl{https://docs.weblate.org/} .
@node Translation Standards and Practices,GPG Signing of Translations,How to Create a Translation,Internationalization
-@anchor{taler-developer-manual translation-standards-and-practices}@anchor{3d}
+@anchor{taler-developer-manual translation-standards-and-practices}@anchor{3c}
@section Translation Standards and Practices
@@ -2081,7 +2060,7 @@ When asked, set the license to GPLv3 or later.
Set commit/push to manual only.
@node GPG Signing of Translations,,Translation Standards and Practices,Internationalization
-@anchor{taler-developer-manual gpg-signing-of-translations}@anchor{3e}
+@anchor{taler-developer-manual gpg-signing-of-translations}@anchor{3d}
@section GPG Signing of Translations
@@ -2090,7 +2069,7 @@ weblate.taler.net signs GPG commits with the GPG key CD33CE35801462FA5EB0B695F26
This means that contributions made through weblate will not be signed with the individual contributor's key when they are checked into the Git repository, but with the weblate key.
@node iOS Apps,Android Apps,Internationalization,Top
-@anchor{taler-developer-manual ios-apps}@anchor{3f}
+@anchor{taler-developer-manual ios-apps}@anchor{3e}
@chapter iOS Apps
@@ -2100,7 +2079,7 @@ This means that contributions made through weblate will not be signed with the i
@end menu
@node Building Taler Wallet for iOS from source,,,iOS Apps
-@anchor{taler-developer-manual build-ios-from-source}@anchor{40}@anchor{taler-developer-manual building-taler-wallet-for-ios-from-source}@anchor{41}
+@anchor{taler-developer-manual build-ios-from-source}@anchor{3f}@anchor{taler-developer-manual building-taler-wallet-for-ios-from-source}@anchor{40}
@section Building Taler Wallet for iOS from source
@@ -2114,7 +2093,7 @@ the official Git repository@footnote{https://git.taler.net/taler-ios.git}.
@end menu
@node Compatibility,Building,,Building Taler Wallet for iOS from source
-@anchor{taler-developer-manual compatibility}@anchor{42}
+@anchor{taler-developer-manual compatibility}@anchor{41}
@subsection Compatibility
@@ -2122,7 +2101,7 @@ The minimum version of iOS supported is 15.0.
This app runs on all iPhone models at least as new as the iPhone 6S.
@node Building,,Compatibility,Building Taler Wallet for iOS from source
-@anchor{taler-developer-manual building}@anchor{43}
+@anchor{taler-developer-manual building}@anchor{42}
@subsection Building
@@ -2154,7 +2133,7 @@ there - all needed libraries and frameworks will be built automatically from
Taler.xcworkspace.
@node Android Apps,Code Coverage,iOS Apps,Top
-@anchor{taler-developer-manual android-apps}@anchor{44}
+@anchor{taler-developer-manual android-apps}@anchor{43}
@chapter Android Apps
@@ -2167,7 +2146,7 @@ Taler.xcworkspace.
@end menu
@node Android App Nightly Builds,Building apps from source,,Android Apps
-@anchor{taler-developer-manual android-app-nightly-builds}@anchor{45}
+@anchor{taler-developer-manual android-app-nightly-builds}@anchor{44}
@section Android App Nightly Builds
@@ -2218,7 +2197,7 @@ Use at your own risk!
@end cartouche
@node Building apps from source,Update translations,Android App Nightly Builds,Android Apps
-@anchor{taler-developer-manual build-apps-from-source}@anchor{46}@anchor{taler-developer-manual building-apps-from-source}@anchor{47}
+@anchor{taler-developer-manual build-apps-from-source}@anchor{45}@anchor{taler-developer-manual building-apps-from-source}@anchor{46}
@section Building apps from source
@@ -2304,7 +2283,7 @@ After the build finished successfully,
you will find your APK in @code{merchant-terminal/build/outputs/apk/release/}.
@node Update translations,Release process,Building apps from source,Android Apps
-@anchor{taler-developer-manual update-translations}@anchor{48}
+@anchor{taler-developer-manual update-translations}@anchor{47}
@section Update translations
@@ -2338,7 +2317,7 @@ Afterwards, build the entire project from source and test the UI
to ensure that no erroneous translations (missing placeholders) are breaking things.
@node Release process,,Update translations,Android Apps
-@anchor{taler-developer-manual id1}@anchor{49}
+@anchor{taler-developer-manual id1}@anchor{48}
@section Release process
@@ -2369,7 +2348,7 @@ $ git tag -s $APP-$VERSION
@end menu
@node F-Droid,Google Play,,Release process
-@anchor{taler-developer-manual id2}@anchor{4a}
+@anchor{taler-developer-manual id2}@anchor{49}
@subsection F-Droid
@@ -2393,7 +2372,7 @@ PoS: [metadata@footnote{https://gitlab.com/fdroid/fdroiddata/-/blob/master/metad
@end itemize
@node Google Play,,F-Droid,Release process
-@anchor{taler-developer-manual google-play}@anchor{4b}
+@anchor{taler-developer-manual google-play}@anchor{4a}
@subsection Google Play
@@ -2415,7 +2394,7 @@ All uploads are going to the beta track by default.
These can be promoted to production later or immediately after upload if you feel daring.
@node Code Coverage,Coding Conventions,Android Apps,Top
-@anchor{taler-developer-manual id3}@anchor{4c}@anchor{taler-developer-manual id4}@anchor{4d}
+@anchor{taler-developer-manual id3}@anchor{4b}@anchor{taler-developer-manual id4}@anchor{4c}
@chapter Code Coverage
@@ -2425,7 +2404,7 @@ nightly (once a day) by a Buildbot worker. The coverage results are
then published at @indicateurl{https://lcov.taler.net/} .
@node Coding Conventions,Testing library,Code Coverage,Top
-@anchor{taler-developer-manual coding-conventions}@anchor{4e}
+@anchor{taler-developer-manual coding-conventions}@anchor{4d}
@chapter Coding Conventions
@@ -2442,7 +2421,7 @@ GNU Taler is developed primarily in C, Kotlin, Python, Swift and TypeScript.
@end menu
@node Components written in C,Shell Scripts,,Coding Conventions
-@anchor{taler-developer-manual components-written-in-c}@anchor{4f}
+@anchor{taler-developer-manual components-written-in-c}@anchor{4e}
@section Components written in C
@@ -2462,7 +2441,7 @@ by the GNUnet style: @indicateurl{https://docs.gnunet.org/handbook/gnunet.html#C
@end menu
@node Naming conventions,,,Components written in C
-@anchor{taler-developer-manual naming-conventions}@anchor{50}
+@anchor{taler-developer-manual naming-conventions}@anchor{4f}
@subsection Naming conventions
@@ -2623,7 +2602,7 @@ must be called "perf_module-under-test_case-description.c"
@end itemize
@node Shell Scripts,Kotlin,Components written in C,Coding Conventions
-@anchor{taler-developer-manual shell-scripts}@anchor{51}
+@anchor{taler-developer-manual shell-scripts}@anchor{50}
@section Shell Scripts
@@ -2650,7 +2629,7 @@ $ set -eu
@end example
@node Kotlin,Python,Shell Scripts,Coding Conventions
-@anchor{taler-developer-manual kotlin}@anchor{52}
+@anchor{taler-developer-manual kotlin}@anchor{51}
@section Kotlin
@@ -2658,7 +2637,7 @@ We so far have no specific guidelines, please follow best practices
for the language.
@node Python,Swift,Kotlin,Coding Conventions
-@anchor{taler-developer-manual python}@anchor{53}
+@anchor{taler-developer-manual python}@anchor{52}
@section Python
@@ -2670,14 +2649,14 @@ for the language.
@end menu
@node Supported Python Versions,Style,,Python
-@anchor{taler-developer-manual supported-python-versions}@anchor{54}
+@anchor{taler-developer-manual supported-python-versions}@anchor{53}
@subsection Supported Python Versions
Python code should be written and build against version 3.7 of Python.
@node Style,Python for Scripting,Supported Python Versions,Python
-@anchor{taler-developer-manual style}@anchor{55}
+@anchor{taler-developer-manual style}@anchor{54}
@subsection Style
@@ -2687,7 +2666,7 @@ A reusable yapf style file can be found in @code{build-common},
which is intended to be used as a git submodule.
@node Python for Scripting,,Style,Python
-@anchor{taler-developer-manual python-for-scripting}@anchor{56}
+@anchor{taler-developer-manual python-for-scripting}@anchor{55}
@subsection Python for Scripting
@@ -2709,21 +2688,21 @@ over the older APIs.
@end itemize
@node Swift,TypeScript,Python,Coding Conventions
-@anchor{taler-developer-manual swift}@anchor{57}
+@anchor{taler-developer-manual swift}@anchor{56}
@section Swift
Please follow best practices for the language.
@node TypeScript,,Swift,Coding Conventions
-@anchor{taler-developer-manual typescript}@anchor{58}
+@anchor{taler-developer-manual typescript}@anchor{57}
@section TypeScript
Please follow best practices for the language.
@node Testing library,User-Facing Terminology,Coding Conventions,Top
-@anchor{taler-developer-manual testing-library}@anchor{59}
+@anchor{taler-developer-manual testing-library}@anchor{58}
@chapter Testing library
@@ -2796,7 +2775,7 @@ Please refer to the Twister codebase (under the @code{test} directory) in
order to see how to configure it.
@node User-Facing Terminology,Developer Glossary,Testing library,Top
-@anchor{taler-developer-manual user-facing-terminology}@anchor{5a}
+@anchor{taler-developer-manual user-facing-terminology}@anchor{59}
@chapter User-Facing Terminology
@@ -2810,7 +2789,7 @@ used in the user interface and help materials.
@end menu
@node Terms to Avoid,Terms to Use,,User-Facing Terminology
-@anchor{taler-developer-manual terms-to-avoid}@anchor{5b}
+@anchor{taler-developer-manual terms-to-avoid}@anchor{5a}
@section Terms to Avoid
@@ -2886,7 +2865,7 @@ with their payment. Can also be something like a donation receipt.
@end table
@node Terms to Use,,Terms to Avoid,User-Facing Terminology
-@anchor{taler-developer-manual terms-to-use}@anchor{5c}
+@anchor{taler-developer-manual terms-to-use}@anchor{5b}
@section Terms to Use
@@ -2938,7 +2917,7 @@ and payments.
@end table
@node Developer Glossary,Developer Tools,User-Facing Terminology,Top
-@anchor{taler-developer-manual developer-glossary}@anchor{5d}
+@anchor{taler-developer-manual developer-glossary}@anchor{5c}
@chapter Developer Glossary
@@ -2947,137 +2926,137 @@ use when talking to end users or even system administrators.
@table @asis
-@anchor{taler-developer-manual term-absolute-time}@anchor{5e}
+@anchor{taler-developer-manual term-absolute-time}@anchor{5d}
@geindex absolute time
@item absolute time
-method of keeping time in @ref{5f,,GNUnet} where the time is represented
+method of keeping time in @ref{5e,,GNUnet} where the time is represented
as the number of microseconds since 1.1.1970 (UNIX epoch). Called
-absolute time in contrast to @ref{60,,relative time}.
-@anchor{taler-developer-manual term-aggregate}@anchor{61}
+absolute time in contrast to @ref{5f,,relative time}.
+@anchor{taler-developer-manual term-aggregate}@anchor{60}
@geindex aggregate
@item aggregate
-the @ref{62,,exchange} combines multiple payments received by the
-same @ref{63,,merchant} into one larger @ref{64,,wire transfer} to
-the respective merchant's @ref{65,,bank} account
-@anchor{taler-developer-manual term-auditor}@anchor{66}
+the @ref{61,,exchange} combines multiple payments received by the
+same @ref{62,,merchant} into one larger @ref{63,,wire transfer} to
+the respective merchant's @ref{64,,bank} account
+@anchor{taler-developer-manual term-auditor}@anchor{65}
@geindex auditor
@item auditor
-trusted third party that verifies that the @ref{62,,exchange} is operating correctly
-@anchor{taler-developer-manual term-bank}@anchor{65}
+trusted third party that verifies that the @ref{61,,exchange} is operating correctly
+@anchor{taler-developer-manual term-bank}@anchor{64}
@geindex bank
@item bank
-traditional financial service provider who offers wire @ref{67,,transfers} between accounts
-@anchor{taler-developer-manual term-buyer}@anchor{68}
+traditional financial service provider who offers wire @ref{66,,transfers} between accounts
+@anchor{taler-developer-manual term-buyer}@anchor{67}
@geindex buyer
@item buyer
-individual in control of a Taler @ref{69,,wallet}, usually using it to
-@ref{6a,,spend} the @ref{6b,,coins} on @ref{6c,,contracts} (see also @ref{6d,,customer}).
-@anchor{taler-developer-manual term-close}@anchor{6e}
+individual in control of a Taler @ref{68,,wallet}, usually using it to
+@ref{69,,spend} the @ref{6a,,coins} on @ref{6b,,contracts} (see also @ref{6c,,customer}).
+@anchor{taler-developer-manual term-close}@anchor{6d}
@geindex close
-@item close@anchor{taler-developer-manual term-closes}@anchor{6f}
+@item close@anchor{taler-developer-manual term-closes}@anchor{6e}
@geindex closes
-@itemx closes@anchor{taler-developer-manual term-closed}@anchor{70}
+@itemx closes@anchor{taler-developer-manual term-closed}@anchor{6f}
@geindex closed
-@itemx closed@anchor{taler-developer-manual term-closing}@anchor{71}
+@itemx closed@anchor{taler-developer-manual term-closing}@anchor{70}
@geindex closing
@itemx closing
-operation an @ref{62,,exchange} performs on a @ref{72,,reserve} that has not been
-@ref{73,,drained} by @ref{74,,withdraw} operations. When closing a reserve, the
-exchange wires the remaining funds back to the customer, minus a @ref{75,,fee}
+operation an @ref{61,,exchange} performs on a @ref{71,,reserve} that has not been
+@ref{72,,drained} by @ref{73,,withdraw} operations. When closing a reserve, the
+exchange wires the remaining funds back to the customer, minus a @ref{74,,fee}
for closing
-@anchor{taler-developer-manual term-coin}@anchor{76}
+@anchor{taler-developer-manual term-coin}@anchor{75}
@geindex coin
-@item coin@anchor{taler-developer-manual term-coins}@anchor{6b}
+@item coin@anchor{taler-developer-manual term-coins}@anchor{6a}
@geindex coins
@itemx coins
-coins are individual token representing a certain amount of value, also known as the @ref{77,,denomination} of the coin
-@anchor{taler-developer-manual term-commitment}@anchor{78}
+coins are individual token representing a certain amount of value, also known as the @ref{76,,denomination} of the coin
+@anchor{taler-developer-manual term-commitment}@anchor{77}
@geindex commitment
-@item commitment@anchor{taler-developer-manual term-refresh-commitment}@anchor{79}
+@item commitment@anchor{taler-developer-manual term-refresh-commitment}@anchor{78}
@geindex refresh commitment
@itemx refresh commitment
-data that the wallet commits to during the @ref{7a,,melt} stage of the
-@ref{7b,,refresh} protocol where it
-has to prove to the @ref{62,,exchange} that it is deriving the @ref{7c,,fresh}
+data that the wallet commits to during the @ref{79,,melt} stage of the
+@ref{7a,,refresh} protocol where it
+has to prove to the @ref{61,,exchange} that it is deriving the @ref{7b,,fresh}
coins as specified by the Taler protocol. The commitment is verified
-probabilistically (see: @ref{7d,,kappa}) during the @ref{7e,,reveal} stage.
-@anchor{taler-developer-manual term-contract}@anchor{7f}
+probabilistically (see: @ref{7c,,kappa}) during the @ref{7d,,reveal} stage.
+@anchor{taler-developer-manual term-contract}@anchor{7e}
@geindex contract
-@item contract@anchor{taler-developer-manual term-contracts}@anchor{6c}
+@item contract@anchor{taler-developer-manual term-contracts}@anchor{6b}
@geindex contracts
@itemx contracts
-formal agreement between @ref{63,,merchant} and @ref{6d,,customer} specifying the
-@ref{80,,contract terms} and signed by the merchant and the @ref{6b,,coins} of the
+formal agreement between @ref{62,,merchant} and @ref{6c,,customer} specifying the
+@ref{7f,,contract terms} and signed by the merchant and the @ref{6a,,coins} of the
customer
-@anchor{taler-developer-manual term-contract-terms}@anchor{80}
+@anchor{taler-developer-manual term-contract-terms}@anchor{7f}
@geindex contract terms
@item contract terms
the individual clauses specifying what the buyer is purchasing from the
-@ref{63,,merchant}
-@anchor{taler-developer-manual term-customer}@anchor{6d}
+@ref{62,,merchant}
+@anchor{taler-developer-manual term-customer}@anchor{6c}
@geindex customer
@item customer
individual that directs the buyer (perhaps the same individual) to make a purchase
-@anchor{taler-developer-manual term-denomination}@anchor{77}
+@anchor{taler-developer-manual term-denomination}@anchor{76}
@geindex denomination
@item denomination
-unit of currency, specifies both the currency and the face value of a @ref{76,,coin},
+unit of currency, specifies both the currency and the face value of a @ref{75,,coin},
as well as associated fees and validity periods
-@anchor{taler-developer-manual term-denomination-key}@anchor{81}
+@anchor{taler-developer-manual term-denomination-key}@anchor{80}
@geindex denomination key
@item denomination key
-(RSA) key used by the exchange to certify that a given @ref{76,,coin} is valid and of a
-particular @ref{77,,denomination}
-@anchor{taler-developer-manual term-deposit}@anchor{82}
+(RSA) key used by the exchange to certify that a given @ref{75,,coin} is valid and of a
+particular @ref{76,,denomination}
+@anchor{taler-developer-manual term-deposit}@anchor{81}
@geindex deposit
-@item deposit@anchor{taler-developer-manual term-deposits}@anchor{83}
+@item deposit@anchor{taler-developer-manual term-deposits}@anchor{82}
@geindex deposits
-@itemx deposits@anchor{taler-developer-manual term-depositing}@anchor{84}
+@itemx deposits@anchor{taler-developer-manual term-depositing}@anchor{83}
@geindex depositing
@itemx depositing
operation by which a merchant passes coins to an exchange, expecting the
exchange to credit his bank account in the future using an
-@ref{61,,aggregate} @ref{64,,wire transfer}
-@anchor{taler-developer-manual term-dirty}@anchor{85}
+@ref{60,,aggregate} @ref{63,,wire transfer}
+@anchor{taler-developer-manual term-dirty}@anchor{84}
@geindex dirty
-@item dirty@anchor{taler-developer-manual term-dirty-coin}@anchor{86}
+@item dirty@anchor{taler-developer-manual term-dirty-coin}@anchor{85}
@geindex dirty coin
@itemx dirty coin
@@ -3085,30 +3064,30 @@ exchange to credit his bank account in the future using an
a coin is dirty if its public key may be known to an entity other than
the customer, thereby creating the danger of some entity being able to
link multiple transactions of coin's owner if the coin is not refreshed
-@anchor{taler-developer-manual term-drain}@anchor{87}
+@anchor{taler-developer-manual term-drain}@anchor{86}
@geindex drain
-@item drain@anchor{taler-developer-manual term-drained}@anchor{73}
+@item drain@anchor{taler-developer-manual term-drained}@anchor{72}
@geindex drained
@itemx drained
-a @ref{72,,reserve} is being drained when a @ref{69,,wallet} is using the
-reserve's private key to @ref{74,,withdraw} coins from it. This reduces
+a @ref{71,,reserve} is being drained when a @ref{68,,wallet} is using the
+reserve's private key to @ref{73,,withdraw} coins from it. This reduces
the balance of the reserve. Once the balance reaches zero, we say that
the reserve has been (fully) drained. Reserves that are not drained
-(which is the normal process) are @ref{70,,closed} by the exchange.
-@anchor{taler-developer-manual term-exchange}@anchor{62}
+(which is the normal process) are @ref{6f,,closed} by the exchange.
+@anchor{taler-developer-manual term-exchange}@anchor{61}
@geindex exchange
@item exchange
Taler's payment service operator. Issues electronic coins during
withdrawal and redeems them when they are deposited by merchants
-@anchor{taler-developer-manual term-expired}@anchor{88}
+@anchor{taler-developer-manual term-expired}@anchor{87}
@geindex expired
-@item expired@anchor{taler-developer-manual term-expiration}@anchor{89}
+@item expired@anchor{taler-developer-manual term-expiration}@anchor{88}
@geindex expiration
@itemx expiration
@@ -3122,47 +3101,47 @@ expiration, which specifies how long the exchange keeps records beyond the
deposit expiration time. This latter expiration matters for legal disputes
in courts and also creates an upper limit for refreshing operations on
special zombie coin
-@anchor{taler-developer-manual term-fakebank}@anchor{8a}
+@anchor{taler-developer-manual term-fakebank}@anchor{89}
@geindex fakebank
@item fakebank
-implementation of the @ref{65,,bank} API in memory to be used only for test
+implementation of the @ref{64,,bank} API in memory to be used only for test
cases.
-@anchor{taler-developer-manual term-fee}@anchor{75}
+@anchor{taler-developer-manual term-fee}@anchor{74}
@geindex fee
@item fee
-an @ref{62,,exchange} charges various fees for its service. The different
+an @ref{61,,exchange} charges various fees for its service. The different
fees are specified in the protocol. There are fees per coin for
-@ref{8b,,withdrawing}, @ref{84,,depositing}, @ref{8c,,melting}, and
-@ref{8d,,refunding}. Furthermore, there are fees per wire transfer
-for @ref{71,,closing} a @ref{72,,reserve}: and for
-@ref{61,,aggregate} @ref{8e,,wire transfers} to the @ref{63,,merchant}.
-@anchor{taler-developer-manual term-fresh}@anchor{7c}
+@ref{8a,,withdrawing}, @ref{83,,depositing}, @ref{8b,,melting}, and
+@ref{8c,,refunding}. Furthermore, there are fees per wire transfer
+for @ref{70,,closing} a @ref{71,,reserve}: and for
+@ref{60,,aggregate} @ref{8d,,wire transfers} to the @ref{62,,merchant}.
+@anchor{taler-developer-manual term-fresh}@anchor{7b}
@geindex fresh
-@item fresh@anchor{taler-developer-manual term-fresh-coin}@anchor{8f}
+@item fresh@anchor{taler-developer-manual term-fresh-coin}@anchor{8e}
@geindex fresh coin
@itemx fresh coin
a coin is fresh if its public key is only known to the customer
-@anchor{taler-developer-manual term-GNUnet}@anchor{5f}
+@anchor{taler-developer-manual term-GNUnet}@anchor{5e}
@geindex GNUnet
@item GNUnet
Codebase of various libraries for a better Internet, some of which
GNU Taler depends upon.
-@anchor{taler-developer-manual term-json}@anchor{90}
+@anchor{taler-developer-manual term-json}@anchor{8f}
@geindex json
-@item json@anchor{taler-developer-manual term-JSON}@anchor{91}
+@item json@anchor{taler-developer-manual term-JSON}@anchor{90}
@geindex JSON
-@itemx JSON@anchor{taler-developer-manual term-JavaScript-Object-Notation}@anchor{92}
+@itemx JSON@anchor{taler-developer-manual term-JavaScript-Object-Notation}@anchor{91}
@geindex JavaScript Object Notation
@itemx JavaScript Object Notation
@@ -3170,192 +3149,192 @@ GNU Taler depends upon.
serialization format derived from the JavaScript language which is
commonly used in the Taler protocol as the payload of HTTP requests
and responses.
-@anchor{taler-developer-manual term-kappa}@anchor{7d}
+@anchor{taler-developer-manual term-kappa}@anchor{7c}
@geindex kappa
@item kappa
-security parameter used in the @ref{7b,,refresh} protocol. Defined to be 3.
+security parameter used in the @ref{7a,,refresh} protocol. Defined to be 3.
The probability of successfully evading the income transparency with the
refresh protocol is 1:kappa.
-@anchor{taler-developer-manual term-LibEuFin}@anchor{93}
+@anchor{taler-developer-manual term-LibEuFin}@anchor{92}
@geindex LibEuFin
@item LibEuFin
FIXME: explain
-@anchor{taler-developer-manual term-link}@anchor{94}
+@anchor{taler-developer-manual term-link}@anchor{93}
@geindex link
-@item link@anchor{taler-developer-manual term-linking}@anchor{95}
+@item link@anchor{taler-developer-manual term-linking}@anchor{94}
@geindex linking
@itemx linking
-specific step in the @ref{7b,,refresh} protocol that an exchange must offer
-to prevent abuse of the @ref{7b,,refresh} mechanism. The link step is
+specific step in the @ref{7a,,refresh} protocol that an exchange must offer
+to prevent abuse of the @ref{7a,,refresh} mechanism. The link step is
not needed in normal operation, it just must be offered.
-@anchor{taler-developer-manual term-master-key}@anchor{96}
+@anchor{taler-developer-manual term-master-key}@anchor{95}
@geindex master key
@item master key
offline key used by the exchange to certify denomination keys and
message signing keys
-@anchor{taler-developer-manual term-melt}@anchor{7a}
+@anchor{taler-developer-manual term-melt}@anchor{79}
@geindex melt
-@item melt@anchor{taler-developer-manual term-melted}@anchor{97}
+@item melt@anchor{taler-developer-manual term-melted}@anchor{96}
@geindex melted
-@itemx melted@anchor{taler-developer-manual term-melting}@anchor{8c}
+@itemx melted@anchor{taler-developer-manual term-melting}@anchor{8b}
@geindex melting
@itemx melting
-step of the @ref{7b,,refresh} protocol where a @ref{86,,dirty coin}
-is invalidated to be reborn @ref{7c,,fresh} in a subsequent
-@ref{7e,,reveal} step.
-@anchor{taler-developer-manual term-merchant}@anchor{63}
+step of the @ref{7a,,refresh} protocol where a @ref{85,,dirty coin}
+is invalidated to be reborn @ref{7b,,fresh} in a subsequent
+@ref{7d,,reveal} step.
+@anchor{taler-developer-manual term-merchant}@anchor{62}
@geindex merchant
@item merchant
party receiving payments (usually in return for goods or services)
-@anchor{taler-developer-manual term-message-signing-key}@anchor{98}
+@anchor{taler-developer-manual term-message-signing-key}@anchor{97}
@geindex message signing key
@item message signing key
key used by the exchange to sign online messages, other than coins
-@anchor{taler-developer-manual term-order}@anchor{99}
+@anchor{taler-developer-manual term-order}@anchor{98}
@geindex order
@item order
offer made by the merchant to a wallet; pre-cursor to
a contract where the wallet is not yet fixed. Turns
-into a @ref{7f,,contract} when a wallet claims the order.
-@anchor{taler-developer-manual term-owner}@anchor{9a}
+into a @ref{7e,,contract} when a wallet claims the order.
+@anchor{taler-developer-manual term-owner}@anchor{99}
@geindex owner
@item owner
a coin is owned by the entity that knows the private key of the coin
-@anchor{taler-developer-manual term-planchet}@anchor{9b}
+@anchor{taler-developer-manual term-planchet}@anchor{9a}
@geindex planchet
@item planchet
-precursor data for a @ref{76,,coin}. A planchet includes the coin's internal
+precursor data for a @ref{75,,coin}. A planchet includes the coin's internal
secrets (coin private key, blinding factor), but lacks the RSA signature
-of the @ref{62,,exchange}. When @ref{8b,,withdrawing}, a @ref{69,,wallet}
+of the @ref{61,,exchange}. When @ref{8a,,withdrawing}, a @ref{68,,wallet}
creates and persists a planchet before asking the exchange to sign it to
get the coin.
-@anchor{taler-developer-manual term-privacy-policy}@anchor{9c}
+@anchor{taler-developer-manual term-privacy-policy}@anchor{9b}
@geindex privacy policy
@item privacy policy
Statement of an operator how they will protect the privacy of users.
-@anchor{taler-developer-manual term-proof}@anchor{9d}
+@anchor{taler-developer-manual term-proof}@anchor{9c}
@geindex proof
@item proof
Message that cryptographically demonstrates that a particular claim is correct.
-@anchor{taler-developer-manual term-proposal}@anchor{9e}
+@anchor{taler-developer-manual term-proposal}@anchor{9d}
@geindex proposal
@item proposal
-a list of @ref{80,,contract terms} that has been completed and signed by the
+a list of @ref{7f,,contract terms} that has been completed and signed by the
merchant backend.
-@anchor{taler-developer-manual term-purchase}@anchor{9f}
+@anchor{taler-developer-manual term-purchase}@anchor{9e}
@geindex purchase
@item purchase
-Refers to the overall process of negotiating a @ref{7f,,contract} and then
-making a payment with @ref{6b,,coins} to a @ref{63,,merchant}.
-@anchor{taler-developer-manual term-recoup}@anchor{a0}
+Refers to the overall process of negotiating a @ref{7e,,contract} and then
+making a payment with @ref{6a,,coins} to a @ref{62,,merchant}.
+@anchor{taler-developer-manual term-recoup}@anchor{9f}
@geindex recoup
@item recoup
Operation by which an exchange returns the value of coins affected
-by a @ref{a1,,revocation} to their @ref{9a,,owner}, either by allowing the owner to
-withdraw new coins or wiring funds back to the bank account of the @ref{9a,,owner}.
-@anchor{taler-developer-manual term-refresh}@anchor{7b}
+by a @ref{a0,,revocation} to their @ref{99,,owner}, either by allowing the owner to
+withdraw new coins or wiring funds back to the bank account of the @ref{99,,owner}.
+@anchor{taler-developer-manual term-refresh}@anchor{7a}
@geindex refresh
-@item refresh@anchor{taler-developer-manual term-refreshing}@anchor{a2}
+@item refresh@anchor{taler-developer-manual term-refreshing}@anchor{a1}
@geindex refreshing
@itemx refreshing
-operation by which a @ref{86,,dirty coin} is converted into one or more
-@ref{7c,,fresh} coins. Involves @ref{8c,,melting} the @ref{86,,dirty coin} and
-then @ref{a3,,revealing} so-called @ref{a4,,transfer keys}.
-@anchor{taler-developer-manual term-refund}@anchor{a5}
+operation by which a @ref{85,,dirty coin} is converted into one or more
+@ref{7b,,fresh} coins. Involves @ref{8b,,melting} the @ref{85,,dirty coin} and
+then @ref{a2,,revealing} so-called @ref{a3,,transfer keys}.
+@anchor{taler-developer-manual term-refund}@anchor{a4}
@geindex refund
-@item refund@anchor{taler-developer-manual term-refunding}@anchor{8d}
+@item refund@anchor{taler-developer-manual term-refunding}@anchor{8c}
@geindex refunding
@itemx refunding
operation by which a merchant steps back from the right to funds that he
-obtained from a @ref{82,,deposit} operation, giving the right to the funds back
+obtained from a @ref{81,,deposit} operation, giving the right to the funds back
to the customer
-@anchor{taler-developer-manual term-refund-transaction-id}@anchor{a6}
+@anchor{taler-developer-manual term-refund-transaction-id}@anchor{a5}
@geindex refund transaction id
@item refund transaction id
-unique number by which a merchant identifies a @ref{a5,,refund}. Needed
+unique number by which a merchant identifies a @ref{a4,,refund}. Needed
as refunds can be partial and thus there could be multiple refunds for
-the same @ref{9f,,purchase}.
-@anchor{taler-developer-manual term-relative-time}@anchor{60}
+the same @ref{9e,,purchase}.
+@anchor{taler-developer-manual term-relative-time}@anchor{5f}
@geindex relative time
@item relative time
-method of keeping time in @ref{5f,,GNUnet} where the time is represented
+method of keeping time in @ref{5e,,GNUnet} where the time is represented
as a relative number of microseconds. Thus, a relative time specifies
an offset or a duration, but not a date. Called relative time in
-contrast to @ref{5e,,absolute time}.
-@anchor{taler-developer-manual term-reserve}@anchor{72}
+contrast to @ref{5d,,absolute time}.
+@anchor{taler-developer-manual term-reserve}@anchor{71}
@geindex reserve
@item reserve
accounting mechanism used by the exchange to track customer funds
-from incoming @ref{8e,,wire transfers}. A reserve is created whenever
+from incoming @ref{8d,,wire transfers}. A reserve is created whenever
a customer wires money to the exchange using a well-formed public key
-in the subject. The exchange then allows the customer's @ref{69,,wallet}
-to @ref{74,,withdraw} up to the amount received in @ref{7c,,fresh}
-@ref{6b,,coins} from the reserve, thereby draining the reserve. If a
-reserve is not drained, the exchange eventually @ref{6f,,closes} it.
+in the subject. The exchange then allows the customer's @ref{68,,wallet}
+to @ref{73,,withdraw} up to the amount received in @ref{7b,,fresh}
+@ref{6a,,coins} from the reserve, thereby draining the reserve. If a
+reserve is not drained, the exchange eventually @ref{6e,,closes} it.
Other definition: Funds set aside for future use; either the balance of a customer at the
exchange ready for withdrawal, or the funds kept in the exchange;s bank
account to cover obligations from coins in circulation.
-@anchor{taler-developer-manual term-reveal}@anchor{7e}
+@anchor{taler-developer-manual term-reveal}@anchor{7d}
@geindex reveal
-@item reveal@anchor{taler-developer-manual term-revealing}@anchor{a3}
+@item reveal@anchor{taler-developer-manual term-revealing}@anchor{a2}
@geindex revealing
@itemx revealing
-step in the @ref{7b,,refresh} protocol where some of the transfer private
+step in the @ref{7a,,refresh} protocol where some of the transfer private
keys are revealed to prove honest behavior on the part of the wallet.
-In the reveal step, the exchange returns the signed @ref{7c,,fresh} coins.
-@anchor{taler-developer-manual term-revoke}@anchor{a7}
+In the reveal step, the exchange returns the signed @ref{7b,,fresh} coins.
+@anchor{taler-developer-manual term-revoke}@anchor{a6}
@geindex revoke
-@item revoke@anchor{taler-developer-manual term-revocation}@anchor{a1}
+@item revoke@anchor{taler-developer-manual term-revocation}@anchor{a0}
@geindex revocation
@itemx revocation
@@ -3364,109 +3343,109 @@ exceptional operation by which an exchange withdraws a denomination from
circulation, either because the signing key was compromised or because
the exchange is going out of operation; unspent coins of a revoked
denomination are subjected to recoup.
-@anchor{taler-developer-manual term-sharing}@anchor{a8}
+@anchor{taler-developer-manual term-sharing}@anchor{a7}
@geindex sharing
@item sharing
-users can share ownership of a @ref{76,,coin} by sharing access to the coin&#39;s
+users can share ownership of a @ref{75,,coin} by sharing access to the coin&#39;s
private key, thereby allowing all co-owners to spend the coin at any
time.
-@anchor{taler-developer-manual term-spend}@anchor{6a}
+@anchor{taler-developer-manual term-spend}@anchor{69}
@geindex spend
-@item spend@anchor{taler-developer-manual term-spending}@anchor{a9}
+@item spend@anchor{taler-developer-manual term-spending}@anchor{a8}
@geindex spending
@itemx spending
operation by which a customer gives a merchant the right to deposit
coins in return for merchandise
-@anchor{taler-developer-manual term-terms}@anchor{aa}
+@anchor{taler-developer-manual term-terms}@anchor{a9}
@geindex terms
@item terms
the general terms of service of an operator, possibly including
-the @ref{9c,,privacy policy}. Not to be confused with the
-@ref{80,,contract terms} which are about the specific purchase.
-@anchor{taler-developer-manual term-transaction}@anchor{ab}
+the @ref{9b,,privacy policy}. Not to be confused with the
+@ref{7f,,contract terms} which are about the specific purchase.
+@anchor{taler-developer-manual term-transaction}@anchor{aa}
@geindex transaction
@item transaction
method by which ownership is exclusively transferred from one entity
-@anchor{taler-developer-manual term-transfer}@anchor{67}
+@anchor{taler-developer-manual term-transfer}@anchor{66}
@geindex transfer
-@item transfer@anchor{taler-developer-manual term-transfers}@anchor{ac}
+@item transfer@anchor{taler-developer-manual term-transfers}@anchor{ab}
@geindex transfers
-@itemx transfers@anchor{taler-developer-manual term-wire-transfer}@anchor{64}
+@itemx transfers@anchor{taler-developer-manual term-wire-transfer}@anchor{63}
@geindex wire transfer
-@itemx wire transfer@anchor{taler-developer-manual term-wire-transfers}@anchor{8e}
+@itemx wire transfer@anchor{taler-developer-manual term-wire-transfers}@anchor{8d}
@geindex wire transfers
@itemx wire transfers
-method of sending funds between @ref{65,,bank} accounts
-@anchor{taler-developer-manual term-transfer-key}@anchor{ad}
+method of sending funds between @ref{64,,bank} accounts
+@anchor{taler-developer-manual term-transfer-key}@anchor{ac}
@geindex transfer key
-@item transfer key@anchor{taler-developer-manual term-transfer-keys}@anchor{a4}
+@item transfer key@anchor{taler-developer-manual term-transfer-keys}@anchor{a3}
@geindex transfer keys
@itemx transfer keys
-special cryptographic key used in the @ref{7b,,refresh} protocol, some of which
-are revealed during the @ref{7e,,reveal} step. Note that transfer keys have,
-despite the name, no relationship to @ref{8e,,wire transfers}. They merely
-help to transfer the value from a @ref{86,,dirty coin} to a @ref{8f,,fresh coin}
-@anchor{taler-developer-manual term-user}@anchor{ae}
+special cryptographic key used in the @ref{7a,,refresh} protocol, some of which
+are revealed during the @ref{7d,,reveal} step. Note that transfer keys have,
+despite the name, no relationship to @ref{8d,,wire transfers}. They merely
+help to transfer the value from a @ref{85,,dirty coin} to a @ref{8e,,fresh coin}
+@anchor{taler-developer-manual term-user}@anchor{ad}
@geindex user
@item user
any individual using the Taler payment system
-(see @ref{6d,,customer}, @ref{68,,buyer}, @ref{63,,merchant}).
-@anchor{taler-developer-manual term-version}@anchor{af}
+(see @ref{6c,,customer}, @ref{67,,buyer}, @ref{62,,merchant}).
+@anchor{taler-developer-manual term-version}@anchor{ae}
@geindex version
@item version
Taler uses various forms of versioning. There is a database
schema version (stored itself in the database, see *-0000.sql) describing
-the state of the table structure in the database of an @ref{62,,exchange},
-@ref{66,,auditor} or @ref{63,,merchant}. There is a protocol
+the state of the table structure in the database of an @ref{61,,exchange},
+@ref{65,,auditor} or @ref{62,,merchant}. There is a protocol
version (CURRENT:REVISION:AGE, see GNU libtool) which specifies
-the network protocol spoken by an @ref{62,,exchange} or @ref{63,,merchant}
+the network protocol spoken by an @ref{61,,exchange} or @ref{62,,merchant}
including backwards-compatibility. And finally there is the software
release version (MAJOR.MINOR.PATCH, see @indicateurl{https://semver.org/}) of
the respective code base.
-@anchor{taler-developer-manual term-wallet}@anchor{69}
+@anchor{taler-developer-manual term-wallet}@anchor{68}
@geindex wallet
@item wallet
software running on a customer's computer; withdraws, stores and
spends coins
-@anchor{taler-developer-manual term-WebExtension}@anchor{b0}
+@anchor{taler-developer-manual term-WebExtension}@anchor{af}
@geindex WebExtension
@item WebExtension
Cross-browser API used to implement the GNU Taler wallet browser extension.
-@anchor{taler-developer-manual term-wire-gateway}@anchor{b1}
+@anchor{taler-developer-manual term-wire-gateway}@anchor{b0}
@geindex wire gateway
@item wire gateway
FIXME: explain
-@anchor{taler-developer-manual term-wire-transfer-identifier}@anchor{b2}
+@anchor{taler-developer-manual term-wire-transfer-identifier}@anchor{b1}
@geindex wire transfer identifier
-@item wire transfer identifier@anchor{taler-developer-manual term-wtid}@anchor{b3}
+@item wire transfer identifier@anchor{taler-developer-manual term-wtid}@anchor{b2}
@geindex wtid
@itemx wtid
@@ -3474,35 +3453,35 @@ FIXME: explain
Subject of a wire transfer from the exchange to a merchant;
set by the aggregator to a random nonce which uniquely
identifies the transfer.
-@anchor{taler-developer-manual term-withdraw}@anchor{74}
+@anchor{taler-developer-manual term-withdraw}@anchor{73}
@geindex withdraw
-@item withdraw@anchor{taler-developer-manual term-withdrawing}@anchor{8b}
+@item withdraw@anchor{taler-developer-manual term-withdrawing}@anchor{8a}
@geindex withdrawing
-@itemx withdrawing@anchor{taler-developer-manual term-withdrawal}@anchor{b4}
+@itemx withdrawing@anchor{taler-developer-manual term-withdrawal}@anchor{b3}
@geindex withdrawal
@itemx withdrawal
-operation by which a @ref{69,,wallet} can convert funds from a @ref{72,,reserve} to
+operation by which a @ref{68,,wallet} can convert funds from a @ref{71,,reserve} to
fresh coins
-@anchor{taler-developer-manual term-zombie}@anchor{b5}
+@anchor{taler-developer-manual term-zombie}@anchor{b4}
@geindex zombie
-@item zombie@anchor{taler-developer-manual term-zombie-coin}@anchor{b6}
+@item zombie@anchor{taler-developer-manual term-zombie-coin}@anchor{b5}
@geindex zombie coin
@itemx zombie coin
-coin where the respective @ref{81,,denomination key} is past its
-@ref{82,,deposit} @ref{89,,expiration} time, but which is still (again) valid
-for an operation because it was @ref{97,,melted} while it was still
-valid, and then later again credited during a @ref{a0,,recoup} process
+coin where the respective @ref{80,,denomination key} is past its
+@ref{81,,deposit} @ref{88,,expiration} time, but which is still (again) valid
+for an operation because it was @ref{96,,melted} while it was still
+valid, and then later again credited during a @ref{9f,,recoup} process
@end table
@node Developer Tools,Index,Developer Glossary,Top
-@anchor{taler-developer-manual developer-tools}@anchor{b7}
+@anchor{taler-developer-manual developer-tools}@anchor{b6}
@chapter Developer Tools
@@ -3515,7 +3494,7 @@ developer.
@end menu
@node taler-harness,,,Developer Tools
-@anchor{taler-developer-manual taler-harness}@anchor{b8}
+@anchor{taler-developer-manual taler-harness}@anchor{b7}
@section taler-harness
diff --git a/texinfo/taler-exchange.texi b/texinfo/taler-exchange.texi
index 972da817..b5b1084b 100644
--- a/texinfo/taler-exchange.texi
+++ b/texinfo/taler-exchange.texi
@@ -19,7 +19,7 @@
@copying
@quotation
-GNU Taler 0.9.0, Jan 06, 2024
+GNU Taler 0.9.0, Feb 10, 2024
GNU Taler team
@@ -48,7 +48,7 @@ Copyright @copyright{} 2014-2022 Taler Systems SA (GPLv3+ or GFDL 1.3+)
@anchor{taler-exchange-manual doc}@anchor{0}
@c This file is part of GNU TALER.
@c
-@c Copyright (C) 2014-2023 Taler Systems SA
+@c Copyright (C) 2014-2024 Taler Systems SA
@c
@c TALER is free software; you can redistribute it and/or modify it under the
@c terms of the GNU Affero General Public License as published by the Free Software
@@ -123,18 +123,8 @@ Basic Setup: Currency, Denominations and Keys
Wire Gateway Setup
-* Installation and Basic Configuration::
-* Connecting Nexus with an EBICS account::
* Exchange Bank Account Configuration::
-Connecting Nexus with an EBICS account
-
-* Testing; Requesting the transaction history: Testing Requesting the transaction history.
-* Testing; Making payments: Testing Making payments.
-* Automatic scheduling::
-* Creating a Taler facade::
-* Managing Permissions and Users::
-
Legal Setup
* Legal conditions for using the service::
@@ -1618,401 +1608,59 @@ configuration of the online machine:
@chapter Wire Gateway Setup
-The Taler Wire Gateway is an API that connects the Taler exchange to
-the underlying core banking system.
-
-LibEuFin is an implementation of the Wire Gateway API for the EBICS protocol.
-This section will walk through (1) installing and configuring LibEuFin and
-(2) connecting the Taler Exchange to LibEuFin.
-
-@menu
-* Installation and Basic Configuration::
-* Connecting Nexus with an EBICS account::
-* Exchange Bank Account Configuration::
-
-@end menu
-
-@node Installation and Basic Configuration,Connecting Nexus with an EBICS account,,Wire Gateway Setup
-@anchor{taler-exchange-manual installation-and-basic-configuration}@anchor{22}
-@section Installation and Basic Configuration
-
-
-First, install the @code{libeufin} package. This can be done on the @code{exchange-online}
-machine or a different one.
-
-@example
-[root@@exchange-online]# apt-get install -y libeufin
-@end example
-
-The main component of LibEuFin is called the Nexus. It implements a Web
-service that provides a JSON abstraction layer to access bank accounts.
-
-The HTTP port and database connection string can be edited in the configuration:
-
-
-@float LiteralBlock
-
-@caption{/etc/libeufin/nexus.env}
-
-@example
-LIBEUFIN_NEXUS_PORT=5017
-LIBEUFIN_NEXUS_DB_CONNECTION=jdbc:sqlite:/var/lib/libeufin/nexus/nexus-db.sqlite3
-@end example
-
-@end float
+The Taler Wire Gateway is an API that
+connects the Taler exchange to the underlying core banking system. There are
+several implementations of wire gateways:
+@quotation
-After configuring the database, you can start the service.
-The database is initialized automatically.
-@example
-[root@@exchange-online]# systemctl enable libeufin-nexus
-[root@@exchange-online]# systemctl start libeufin-nexus
-@end example
-
-You can now create a superuser account. The command to
-create the superuser needs direct database access, thus
-the configuration file is sourced first, and the relevant
-environment variable is exported.
+@itemize *
-@example
-[root@@exchange-online]# source /etc/libeufin/nexus.env
-[root@@exchange-online]# export LIBEUFIN_NEXUS_DB_CONNECTION
-[root@@exchange-online]# NEXUS_ADMIN_PW=$(tr -dc A-Za-z0-9 </dev/urandom | head -c 13)
-[root@@exchange-online]# libeufin-nexus superuser admin --password $NEXUS_ADMIN_PW
-@end example
+@item
+Project deploymerization@footnote{https://git.taler.net/depolymerization.git} implements a wire gateway on top of Bitcoin or Ethereum
-If you omit @code{--password $NEXUS_ADMIN_PW}, you will interactively be asked for a password.
-For simplicity, a superuser can as well act as a normal user, but an API
-to create less privileged users is offered.
+@item
+The libeufin-bank provides a wire gateway interface on top of a regional currency bank
-@cartouche
-@quotation Note
-User and permissions management in LibEuFin is still under development.
-In particular, permissions for non-superusers are very limited at the moment.
+@item
+The `taler-fakebank-run' command is an in-memory bank simulator with a wire gateway interface for testing
+@end itemize
@end quotation
-@end cartouche
-
-@node Connecting Nexus with an EBICS account,Exchange Bank Account Configuration,Installation and Basic Configuration,Wire Gateway Setup
-@anchor{taler-exchange-manual connecting-nexus-with-an-ebics-account}@anchor{23}
-@section Connecting Nexus with an EBICS account
-
-
-The command line interface of the LibEuFin Nexus needs the following three
-values to be defined in the environment: @code{LIBEUFIN_NEXUS_URL},
-@code{LIBEUFIN_NEXUS_USERNAME}, and @code{LIBEUFIN_NEXUS_PASSWORD}. In this example,
-@code{LIBEUFIN_NEXUS_USERNAME} should be set to @code{admin}, and
-@code{LIBEUFIN_NEXUS_PASSWORD} to the value hold in @code{NEXUS_ADMIN_PW} from the
-previous step (the @code{libeufin-nexus superuser} command). The
-@code{LIBEUFIN_NEXUS_URL} could be given as @code{http://localhost:5017/}.
-
-Next, we create a EBICS `bank connection' that Nexus can use to communicate with the bank.
-
-@example
-[root@@exchange-online]# libeufin-cli \
- connections \
- new-ebics-connection \
- --ebics-url $EBICS_BASE_URL \
- --host-id $EBICS_HOST_ID \
- --partner-id $EBICS_PARTNER_ID \
- --ebics-user-id $EBICS_USER_ID \
- $CONNECTION_NAME
-@end example
-
-If this step executes correctly, Nexus will have created all the cryptographic
-material that is needed on the client side; in this EBICS example, it created
-the signature and identification keys. It is therefore advisable to `make
-a backup copy' of such keys.
-@example
-[root@@exchange-online]# libeufin-cli \
- connections \
- export-backup \
- --passphrase $SECRET \
- --output-file $BACKUP_FILE \
- $CONNECTION_NAME
-@end example
-
-At this point, Nexus needs to both communicate its keys to the bank, and
-download the bank's keys. This synchronization happens through the INI, HIA, and
-finally, HPB message types.
-
-After the electronic synchronization, the subscriber must confirm their keys
-by sending a physical mail to the bank. The following command helps generating
-such letter:
-
-@example
-[root@@exchange-online]# libeufin-cli connections get-key-letter $CONNECTION_NAME out.pdf
-@end example
-
-@example
-[root@@exchange-online]# libeufin-cli \
- connections \
- connect \
- $CONNECTION_NAME
-@end example
+@c FIXME :ref:`libeufin-nexus <libeufin-nexus>` is an implementation of the Wire Gateway API for the EBICS protocol. Add to list above once nexus implements the TWG directly!
-@c FIXME: Maybe is not 100% clear that 'connecting' means exchanging keys
-@c with the bank?
+Before continuing, you need to decide which wire gateway you want to use,
+and install and configure it on your system. Afterwards, you need to
+have two key pieces of information from that setup:
-Once the connection is synchronized, Nexus needs to import locally the data
-corresponding to the bank accounts offered by the bank connection just made.
-The command below downloads the list of the bank accounts offered by @code{$CONNECTION_NAME}.
+@quotation
-@example
-[root@@exchange-online]# libeufin-cli \
- connections \
- download-bank-accounts \
- $CONNECTION_NAME
-@end example
-It is now possible to list the accounts offered by the connection.
+@itemize *
-@example
-[root@@exchange-online]# libeufin-cli \
- connections \
- list-offered-bank-accounts \
- $CONNECTION_NAME
-@end example
+@item
+The username and password to access the exchange's account in the system.
-@cartouche
-@quotation Note
-The @code{nexusBankAccountId} field should at this step be @code{null},
-as we have not yet imported the bank account and thus the account
-does not yet have a local name.
+@item
+The @code{payto://} URI of that account (see RFC 8905@footnote{https://www.rfc-editor.org/rfc/rfc8905}).
+@end itemize
@end quotation
-@end cartouche
-
-Nexus now needs an explicit import of the accounts it should manage. This
-step is needed to let the user pick a custom name for such accounts.
-
-@example
-[root@@exchange-online]# libeufin-cli \
- connections \
- import-bank-account \
- --offered-account-id testacct01 \
- --nexus-bank-account-id $LOCAL_ACCOUNT_NAME \
- $CONNECTION_NAME
-@end example
-
-Once a Nexus user imported a bank account (@code{$LOCAL_ACCOUNT_NAME})
-under a certain connection (@code{$CONNECTION_NAME}), it is possible
-to accomplish the usual operations for any bank account: asking for the
-list of transactions, and making a payment.
@menu
-* Testing; Requesting the transaction history: Testing Requesting the transaction history.
-* Testing; Making payments: Testing Making payments.
-* Automatic scheduling::
-* Creating a Taler facade::
-* Managing Permissions and Users::
+* Exchange Bank Account Configuration::
@end menu
-@node Testing Requesting the transaction history,Testing Making payments,,Connecting Nexus with an EBICS account
-@anchor{taler-exchange-manual testing-requesting-the-transaction-history}@anchor{24}
-@subsection Testing: Requesting the transaction history
-
-
-The LibEuFin Nexus keeps a local copy of the bank account's transaction
-history. Before querying transactions locally, it is necessary
-to request transactions for the bank account via the bank connection.
-
-This command asks Nexus to download the latest transaction reports/statements
-through the bank connection:
-
-@example
-[root@@exchange-online]# libeufin-cli accounts fetch-transactions $LOCAL_ACCOUNT_NAME
-@end example
-
-@cartouche
-@quotation Note
-By default, the latest available transactions are fetched. It is also
-possible to specify a custom date range (or even all available transactions)
-and the type of transactions to fetch (inter-day statements or intra-day
-reports).
-@end quotation
-@end cartouche
-
-@c FIXME: Possibly the date range filter is still missing, see #6243.
-
-Once Nexus has stored all the information in the database, the
-client can ask to actually see the transactions:
-
-@example
-[root@@exchange-online]# libeufin-cli accounts transactions $LOCAL_ACCOUNT_NAME
-@end example
-
-@node Testing Making payments,Automatic scheduling,Testing Requesting the transaction history,Connecting Nexus with an EBICS account
-@anchor{taler-exchange-manual testing-making-payments}@anchor{25}
-@subsection Testing: Making payments
-
-
-Payments pass through two phases: preparation and submission. The preparation
-phase assigns the payment initiation a unique ID, which prevents accidental
-double submissions of payments in case of network failures or other
-disruptions.
-
-The following command prepares a payment:
-
-@example
-[root@@exchange-online]# libeufin-cli accounts prepare-payment \
- --creditor-iban=$IBAN_TO_SEND_MONEY_TO \
- --creditor-bic=$BIC_TO_SEND_MONEY_TO \
- --creditor-name=$CREDITOR_NAME \
- --payment-amount=$AMOUNT \
- --payment-subject=$SUBJECT \
- $LOCAL_ACCOUNT_NAME
-@end example
-
-Note: the @code{$AMOUNT} value needs the format @code{X.Y:CURRENCY}; for example
-@code{EUR:10}, or @code{EUR:1.01}.
-
-The previous command should return a value (@code{$UUID}) that uniquely
-identifies the prepared payment in the Nexus system. That is needed
-in the next step, to `send the payment instructions to the bank':
-
-@example
-[root@@exchange-online]# libeufin-cli accounts submit-payments \
- --payment-uuid $UUID \
- $LOCAL_ACCOUNT_NAME
-@end example
-
-@node Automatic scheduling,Creating a Taler facade,Testing Making payments,Connecting Nexus with an EBICS account
-@anchor{taler-exchange-manual automatic-scheduling}@anchor{26}
-@subsection Automatic scheduling
-
-
-With an EBICS bank connection, the LibEuFin Nexus needs to regularly query for
-new transactions and (re-)submit prepared payments.
-
-It is possible to schedule these tasks via an external task scheduler such as
-cron(8). However, the nexus also has an internal task scheduling mechanism for
-accounts.
-
-The following three commands create a schedule for submitting payments hourly,
-fetching transactions (intra-day reports) every 5 minutes, and (inter-day statements)
-once at 11pm every day:
-
-@example
-[root@@exchange-online]# libeufin-cli accounts task-schedule $LOCAL_ACCOUNT_NAME \
- --task-type="submit" \
- --task-name='submit-payments-hourly' \
- --task-cronspec='0 0 *'
-
-[root@@exchange-online]# libeufin-cli accounts task-schedule $LOCAL_ACCOUNT_NAME \
- --task-type="fetch" \
- --task-name='fetch-5min' \
- --task-cronspec='0 */5 *' \
- --task-param-level=report \
- --task-param-range-type=latest
-
-[root@@exchange-online]# libeufin-cli accounts task-schedule $LOCAL_ACCOUNT_NAME \
- --task-type="fetch" \
- --task-name='fetch-daily' \
- --task-cronspec='0 0 23' \
- --task-param-level=statement \
- --task-param-range-type=latest
-@end example
-
-The cronspec has the following format, which is slightly non-standard due to
-the @code{SECONDS} field
-
-@example
-SECONDS MINUTES HOURS DAY-OF-MONTH[optional] MONTH[optional] DAY-OF-WEEK[optional]
-@end example
-
-@node Creating a Taler facade,Managing Permissions and Users,Automatic scheduling,Connecting Nexus with an EBICS account
-@anchor{taler-exchange-manual creating-a-taler-facade}@anchor{27}
-@subsection Creating a Taler facade
-
-
-Facades are additional abstraction layers that can serve
-specific purposes. For example, one application might need
-a filtered version of the transaction history, or it might
-want to refuse payments that do not conform to certain rules.
-
-At this moment, only the `Taler facade type' is implemented
-in the Nexus, and the command below instantiates one under a
-existing bank account / connection pair. You can freely
-assign an identifier for the @code{$FACADE_NAME} below:
-
-@example
-[root@@exchange-online]# libeufin-cli facades new-taler-wire-gateway-facade \
- --currency EUR \
- --facade-name $FACADE_NAME \
- $CONNECTION_NAME \
- $LOCAL_ACCOUNT_NAME
-@end example
-
-At this point, the additional taler-wire-gateway API
-becomes offered by the Nexus. The purpose is to let a Taler exchange rely on
-Nexus to manage its bank account.
-
-The base URL of the facade that can be used by the Taler exchange
-as the Taler Wire Gateway base URL can be seen by listing the facades:
-
-@example
-[root@@exchange-online]# libeufin-cli facades list
-@end example
-
-@node Managing Permissions and Users,,Creating a Taler facade,Connecting Nexus with an EBICS account
-@anchor{taler-exchange-manual managing-permissions-and-users}@anchor{28}
-@subsection Managing Permissions and Users
-
-
-This guide has so far assumed that a superuser is accessing the LibEuFin Nexus.
-However, it is advisable that the Nexus is accessed with users that only have a
-minimal set of permissions.
-
-The Nexus currently only has support for giving non-superusers access to Taler
-wire gateway facades.
-
-To create a new user, use the @code{users} subcommand of the CLI:
-
-@example
-[root@@exchange-online]# libeufin-cli users list
-# [ ... shows available users ... ]
-
-[root@@exchange-online]# libeufin-cli users create $USERNAME
-# [ ... will prompt for password ... ]
-@end example
-
-Permissions are managed with the @code{permissions} subcommand.
-The following commands grant permissions to view the transaction history
-and create payment initiations with a Taler wire gateway facade:
-
-@example
-[root@@exchange-online]# libeufin-cli permissions grant \
- user $USERNAME \
- facade $FACADENAME \
- facade.talerwiregateway.history
-
-[root@@exchange-online]# libeufin-cli permissions grant \
- user $USERNAME \
- facade $FACADENAME \
- facade.talerwiregateway.transfer
-@end example
-
-@c FIXME: The two commands above output an empty JSON object
-@c when successful. Possibly, we should suppress that (just like
-@c the other commands do).
-
-The list of all granted permissions can be reviewed:
-
-@example
-[root@@exchange-online]# libeufin-cli permissions list
-@end example
-
-@node Exchange Bank Account Configuration,,Connecting Nexus with an EBICS account,Wire Gateway Setup
-@anchor{taler-exchange-manual bank-account}@anchor{29}@anchor{taler-exchange-manual exchange-bank-account-configuration}@anchor{2a}
+@node Exchange Bank Account Configuration,,,Wire Gateway Setup
+@anchor{taler-exchange-manual exchange-bank-account-configuration}@anchor{22}@anchor{taler-exchange-manual id3}@anchor{23}
@section Exchange Bank Account Configuration
An exchange must be configured with the right settings to access its bank
-account via a Taler Wire Gateway. An exchange can be configured to use
-multiple bank accounts by using multiple Wire Gateways. Typically only one
-Wire Gateway is used.
+account via a Taler wire gateway. An
+exchange can be configured to use multiple bank accounts by using multiple
+wire gateways. Typically only one wire gateway is used.
To configure a bank account in Taler, we need to furnish two pieces of
information:
@@ -2027,8 +1675,8 @@ account. Examples for such URIs include
an IBAN or
@code{payto://x-taler-bank/localhost:8080/2} for the 2nd bank account a
the Taler bank demonstrator running at @code{localhost} on port 8080.
-The first part of the URI following @code{payto://} (“iban” or
-“x-taler-bank”) is called the wire method.
+The first part of the URI following @code{payto://} (@code{iban} or
+@code{x-taler-bank}) is called the wire method.
@item
The @code{taler-exchange-wirewatch} and @code{taler-exchange-transfer}
@@ -2038,20 +1686,22 @@ authentication information is currently a username and password
for HTTP basic authentication.
@end itemize
-A Taler Wire Gateway is configured in a configuration section that follows the
-pattern @code{exchange-account-$id}, where @code{$id} is an internal identifier for
-the bank account accessed by the exchange. The basic information for an
+Each Taler wire gateway is configured in a configuration section that follows
+the pattern @code{exchange-account-$id}, where @code{$id} is an internal identifier
+for the bank account accessed by the exchange. The basic information for an
account should be put in @code{/etc/taler/conf.d/exchange-business.conf}. The
secret credentials to access the Taler Wire Gateway API should be put into a
corresponding @code{exchange-accountcredentials-$id} section in
@code{/etc/taler/secrets/exchange-accountcredentials.conf}. The latter file
-should already be only readable for the @code{taler-exchange-wire} user. Other
-exchange processes should not have access to this information.
+should be only readable for the @code{taler-exchange-wire} user. Only the
+@code{taler-exchange-wirewatch} and @code{taler-exchange-transfer} services should
+run as the @code{taler-exchange-wire} user. Other exchange processes do not need
+to have access to the account credentials.
You can configure multiple accounts for an exchange by creating sections
-starting with “exchange-account-” for the section name. You can ENABLE for
-each account whether it should be used, and for what (incoming or outgoing
-wire transfers):
+starting with @code{exchange-account-} for the section name. You must specify
+@code{ENABLE_}-settings for each account whether it should be used, and for what
+(incoming or outgoing wire transfers):
@float LiteralBlock
@@ -2095,18 +1745,18 @@ ENABLE_CREDIT = YES
# LibEuFin expects basic auth.
WIRE_GATEWAY_AUTH_METHOD = basic
-# Username and password set in LibEuFin.
+# Username and password to access the Taler wire gateway.
USERNAME = ...
PASSWORD = ...
-# Base URL of the wire gateway set up with LibEuFin.
+# Base URL of the Taler wire gateway.
WIRE_GATEWAY_URL = ...
@end example
@end float
-Such a Wire Gateway configuration can be tested with the following commands:
+Such a wire gateway configuration can be tested with the following commands:
@example
[root@@exchange-online]# taler-exchange-wire-gateway-client \
@@ -2115,8 +1765,11 @@ Such a Wire Gateway configuration can be tested with the following commands:
--section exchange-accountcredentials-1 --credit-history
@end example
+On success, you will see some of your account's transaction history (or an
+empty history), while on failure you should see an error message.
+
@node Legal Setup,KYC Configuration,Wire Gateway Setup,Top
-@anchor{taler-exchange-manual legal-setup}@anchor{2b}@anchor{taler-exchange-manual legalsetup}@anchor{2c}
+@anchor{taler-exchange-manual legal-setup}@anchor{24}@anchor{taler-exchange-manual legalsetup}@anchor{25}
@chapter Legal Setup
@@ -2136,7 +1789,7 @@ legal requirements can safely skip these steps.
@end menu
@node Legal conditions for using the service,Terms of Service,,Legal Setup
-@anchor{taler-exchange-manual legal-conditions-for-using-the-service}@anchor{2d}
+@anchor{taler-exchange-manual legal-conditions-for-using-the-service}@anchor{26}
@section Legal conditions for using the service
@@ -2162,7 +1815,7 @@ user in various languages and various formats. This section describes how to
setup and configure the legal conditions.
@node Terms of Service,Privacy Policy,Legal conditions for using the service,Legal Setup
-@anchor{taler-exchange-manual terms-of-service}@anchor{2e}
+@anchor{taler-exchange-manual terms-of-service}@anchor{27}
@section Terms of Service
@@ -2193,7 +1846,7 @@ process.
@end itemize
@node Privacy Policy,Legal policies directory layout,Terms of Service,Legal Setup
-@anchor{taler-exchange-manual privacy-policy}@anchor{2f}
+@anchor{taler-exchange-manual privacy-policy}@anchor{28}
@section Privacy Policy
@@ -2224,7 +1877,7 @@ process.
@end itemize
@node Legal policies directory layout,Generating the Legal Terms,Privacy Policy,Legal Setup
-@anchor{taler-exchange-manual legal-policies-directory-layout}@anchor{30}
+@anchor{taler-exchange-manual legal-policies-directory-layout}@anchor{29}
@section Legal policies directory layout
@@ -2249,7 +1902,7 @@ the service may show a warning on startup.
@end menu
@node Example,,,Legal policies directory layout
-@anchor{taler-exchange-manual example}@anchor{31}
+@anchor{taler-exchange-manual example}@anchor{2a}
@subsection Example
@@ -2294,7 +1947,7 @@ If the user requests an HTML format with language preferences "fr" followed by
French.
@node Generating the Legal Terms,Adding translations,Legal policies directory layout,Legal Setup
-@anchor{taler-exchange-manual generating-the-legal-terms}@anchor{32}
+@anchor{taler-exchange-manual generating-the-legal-terms}@anchor{2b}
@section Generating the Legal Terms
@@ -2322,7 +1975,7 @@ languages (initially only English) in @code{$PREFIX/share/terms/}. The generato
has a few options which are documented in its man page.
@node Adding translations,Updating legal documents,Generating the Legal Terms,Legal Setup
-@anchor{taler-exchange-manual adding-translations}@anchor{33}
+@anchor{taler-exchange-manual adding-translations}@anchor{2c}
@section Adding translations
@@ -2357,7 +2010,7 @@ You must restart the service whenever adding or updating legal documents or thei
@end cartouche
@node Updating legal documents,,Adding translations,Legal Setup
-@anchor{taler-exchange-manual updating-legal-documents}@anchor{34}
+@anchor{taler-exchange-manual updating-legal-documents}@anchor{2d}
@section Updating legal documents
@@ -2375,7 +2028,7 @@ forget to update the @code{ETAG} configuration option to the new name and to
restart the service.
@node KYC Configuration,Deployment,Legal Setup,Top
-@anchor{taler-exchange-manual kyc-configuration}@anchor{35}
+@anchor{taler-exchange-manual kyc-configuration}@anchor{2e}
@chapter KYC Configuration
@@ -2403,7 +2056,7 @@ Wallet receives money via P2P payments over a threshold
Merchant receives money over a threshold
@item
-Reserve is "opened" for invoicing or rewards (`planned feature')
+Reserve is "opened" for invoicing (`planned feature')
@end itemize
@end quotation
@@ -2426,7 +2079,7 @@ request should then succeed.
@end menu
@node Taler KYC Terminology,KYC Configuration Options,,KYC Configuration
-@anchor{taler-exchange-manual taler-kyc-terminology}@anchor{36}
+@anchor{taler-exchange-manual taler-kyc-terminology}@anchor{2f}
@section Taler KYC Terminology
@@ -2478,7 +2131,7 @@ implementing the respective API.
@end itemize
@node KYC Configuration Options,OAuth 2 0 specifics,Taler KYC Terminology,KYC Configuration
-@anchor{taler-exchange-manual kyc-configuration-options}@anchor{37}
+@anchor{taler-exchange-manual kyc-configuration-options}@anchor{30}
@section KYC Configuration Options
@@ -2550,7 +2203,7 @@ TIMEFRAME = 30d
@node OAuth 2 0 specifics,Persona specifics,KYC Configuration Options,KYC Configuration
-@anchor{taler-exchange-manual oauth-2-0-specifics}@anchor{38}
+@anchor{taler-exchange-manual oauth-2-0-specifics}@anchor{31}
@section OAuth 2.0 specifics
@@ -2631,7 +2284,7 @@ configuration above and an exchange running on the host
@code{https://exchange.example.com/kyc-proof/kyc-provider-challenger-oauth2/}.
@node Persona specifics,KYC AID specifics,OAuth 2 0 specifics,KYC Configuration
-@anchor{taler-exchange-manual persona-specifics}@anchor{39}
+@anchor{taler-exchange-manual persona-specifics}@anchor{32}
@section Persona specifics
@@ -2699,7 +2352,7 @@ in JSON) expected by the exchange. The script will need to be adjusted
based on the attributes collected by the specific template.
@node KYC AID specifics,,Persona specifics,KYC Configuration
-@anchor{taler-exchange-manual kyc-aid-specifics}@anchor{3a}
+@anchor{taler-exchange-manual kyc-aid-specifics}@anchor{33}
@section KYC AID specifics
@@ -2746,7 +2399,7 @@ need to be adjusted based on the attributes collected by the specific
template.
@node Deployment,Offline Signing Setup Key Maintenance and Tear-Down,KYC Configuration,Top
-@anchor{taler-exchange-manual deployment}@anchor{3b}@anchor{taler-exchange-manual id3}@anchor{3c}
+@anchor{taler-exchange-manual deployment}@anchor{34}@anchor{taler-exchange-manual id4}@anchor{35}
@chapter Deployment
@@ -2761,7 +2414,7 @@ and configuration are completed.
@end menu
@node Serving,Reverse Proxy Setup,,Deployment
-@anchor{taler-exchange-manual id4}@anchor{3d}@anchor{taler-exchange-manual serving}@anchor{3e}
+@anchor{taler-exchange-manual id5}@anchor{36}@anchor{taler-exchange-manual serving}@anchor{37}
@section Serving
@@ -2797,7 +2450,7 @@ the group under which the exchange HTTP server is running.
@end itemize
@node Reverse Proxy Setup,Launching an exchange,Serving,Deployment
-@anchor{taler-exchange-manual reverse-proxy-setup}@anchor{3f}@anchor{taler-exchange-manual reverseproxy}@anchor{40}
+@anchor{taler-exchange-manual reverse-proxy-setup}@anchor{38}@anchor{taler-exchange-manual reverseproxy}@anchor{39}
@section Reverse Proxy Setup
@@ -2845,7 +2498,7 @@ With this last step, we are finally ready to launch the
main exchange process.
@node Launching an exchange,,Reverse Proxy Setup,Deployment
-@anchor{taler-exchange-manual launch}@anchor{41}@anchor{taler-exchange-manual launching-an-exchange}@anchor{42}
+@anchor{taler-exchange-manual launch}@anchor{3a}@anchor{taler-exchange-manual launching-an-exchange}@anchor{3b}
@section Launching an exchange
@@ -2945,7 +2598,7 @@ The request might take some time to complete on slow machines, because
a lot of key material will be generated.
@node Offline Signing Setup Key Maintenance and Tear-Down,AML Configuration,Deployment,Top
-@anchor{taler-exchange-manual offline-signing-setup-key-maintenance-and-tear-down}@anchor{43}
+@anchor{taler-exchange-manual offline-signing-setup-key-maintenance-and-tear-down}@anchor{3c}
@chapter Offline Signing Setup, Key Maintenance and Tear-Down
@@ -3008,7 +2661,7 @@ The following sections will discuss these steps in more depth.
@end menu
@node Signing the online signing keys,Account signing,,Offline Signing Setup Key Maintenance and Tear-Down
-@anchor{taler-exchange-manual keys-generation}@anchor{44}@anchor{taler-exchange-manual signing-the-online-signing-keys}@anchor{45}
+@anchor{taler-exchange-manual keys-generation}@anchor{3d}@anchor{taler-exchange-manual signing-the-online-signing-keys}@anchor{3e}
@section Signing the online signing keys
@@ -3050,7 +2703,7 @@ periodically, as it signs the various online signing keys of the exchange
which periodically expire.
@node Account signing,Wire fee structure,Signing the online signing keys,Offline Signing Setup Key Maintenance and Tear-Down
-@anchor{taler-exchange-manual account-signing}@anchor{46}
+@anchor{taler-exchange-manual account-signing}@anchor{3f}@anchor{taler-exchange-manual exchange-account-signing}@anchor{40}
@section Account signing
@@ -3059,7 +2712,7 @@ The @code{enable-account} step is important to must be used to sign the
correct address to wire funds to. Note that for each bank account, additional
options `must' be set in the configuration file to tell the exchange how to
access the bank account. The offline tool `only' configures the externally
-visible portions of the setup. The chapter on Bank account@footnote{_Bank-account} configuration has further details.
+visible portions of the setup. The chapter on bank account configuration@footnote{_exchange-bank-account-configuration} has further details.
taler-exchange-offline accepts additional options to configure the use of the
account. For example, additional options can be used to add currency
@@ -3076,7 +2729,7 @@ For details on optional @code{enable-account} arguments,
see manpages/taler-exchange-offline.1.
@node Wire fee structure,Auditor configuration,Account signing,Offline Signing Setup Key Maintenance and Tear-Down
-@anchor{taler-exchange-manual id6}@anchor{47}@anchor{taler-exchange-manual wire-fee-structure}@anchor{48}
+@anchor{taler-exchange-manual id6}@anchor{41}@anchor{taler-exchange-manual wire-fee-structure}@anchor{42}
@section Wire fee structure
@@ -3113,7 +2766,7 @@ this maintenance activity!
@end cartouche
@node Auditor configuration,Revocations,Wire fee structure,Offline Signing Setup Key Maintenance and Tear-Down
-@anchor{taler-exchange-manual auditor-configuration}@anchor{49}@anchor{taler-exchange-manual id7}@anchor{4a}
+@anchor{taler-exchange-manual auditor-configuration}@anchor{43}@anchor{taler-exchange-manual id7}@anchor{44}
@section Auditor configuration
@@ -3141,7 +2794,7 @@ As before, the `auditor.json' file must then be copied from the offline system
to a system connected to the exchange and there @code{uploaded} to the exchange using @code{taler-exchange-offline upload}.
@node Revocations,,Auditor configuration,Offline Signing Setup Key Maintenance and Tear-Down
-@anchor{taler-exchange-manual id8}@anchor{4b}@anchor{taler-exchange-manual revocations}@anchor{4c}
+@anchor{taler-exchange-manual id8}@anchor{45}@anchor{taler-exchange-manual revocations}@anchor{46}
@section Revocations
@@ -3174,7 +2827,7 @@ operation.
@end cartouche
@node AML Configuration,Setup Linting,Offline Signing Setup Key Maintenance and Tear-Down,Top
-@anchor{taler-exchange-manual aml-configuration}@anchor{4d}
+@anchor{taler-exchange-manual aml-configuration}@anchor{47}
@chapter AML Configuration
@@ -3194,7 +2847,7 @@ amount above which a further AML review is triggered.
@end menu
@node AML Officer Setup,AML Triggers,,AML Configuration
-@anchor{taler-exchange-manual aml-officer-setup}@anchor{4e}
+@anchor{taler-exchange-manual aml-officer-setup}@anchor{48}
@section AML Officer Setup
@@ -3230,7 +2883,7 @@ Access rights can be revoked at any time using:
@end example
@node AML Triggers,AML Forms,AML Officer Setup,AML Configuration
-@anchor{taler-exchange-manual aml-triggers}@anchor{4f}
+@anchor{taler-exchange-manual aml-triggers}@anchor{49}
@section AML Triggers
@@ -3282,7 +2935,7 @@ its default value of '[/usr/bin/]true'. To flag all new users for manual
review, simply set the program to '[/usr/bin/]false'.
@node AML Forms,,AML Triggers,AML Configuration
-@anchor{taler-exchange-manual aml-forms}@anchor{50}
+@anchor{taler-exchange-manual aml-forms}@anchor{4a}
@section AML Forms
@@ -3325,7 +2978,7 @@ from @code{https://git.taler.net/wallet-core.git/}, compile and copy the file
from the @code{dist/prod}.
@node Setup Linting,Testing and Troubleshooting,AML Configuration,Top
-@anchor{taler-exchange-manual setup-linting}@anchor{51}
+@anchor{taler-exchange-manual setup-linting}@anchor{4b}
@chapter Setup Linting
@@ -3342,7 +2995,7 @@ You can optionally pass the @code{--debug} option to get more verbose output, an
failed.
@node Testing and Troubleshooting,Benchmarking,Setup Linting,Top
-@anchor{taler-exchange-manual testing-and-troubleshooting}@anchor{52}
+@anchor{taler-exchange-manual testing-and-troubleshooting}@anchor{4c}
@chapter Testing and Troubleshooting
@@ -3449,12 +3102,12 @@ taler-wallet.
@end menu
@node taler-config,Using taler-config,,Testing and Troubleshooting
-@anchor{taler-exchange-manual taler-config}@anchor{53}
+@anchor{taler-exchange-manual taler-config}@anchor{4d}
@section taler-config
@node Using taler-config,Private key storage,taler-config,Testing and Troubleshooting
-@anchor{taler-exchange-manual using-taler-002dconfig-exchange}@anchor{54}@anchor{taler-exchange-manual using-taler-config}@anchor{55}
+@anchor{taler-exchange-manual using-taler-002dconfig-exchange}@anchor{4e}@anchor{taler-exchange-manual using-taler-config}@anchor{4f}
@section Using taler-config
@@ -3508,7 +3161,7 @@ While the configuration file is typically located at
GNU Taler component using the @code{-c} option.
@node Private key storage,Internal audits,Using taler-config,Testing and Troubleshooting
-@anchor{taler-exchange-manual private-key-storage}@anchor{56}
+@anchor{taler-exchange-manual private-key-storage}@anchor{50}
@section Private key storage
@@ -3520,7 +3173,7 @@ regenerated. However, we do recommend using RAID (1+1 or 1+1+1) for all
disks of the system.
@node Internal audits,Database Scheme,Private key storage,Testing and Troubleshooting
-@anchor{taler-exchange-manual internal-audit}@anchor{57}@anchor{taler-exchange-manual internal-audits}@anchor{58}
+@anchor{taler-exchange-manual internal-audit}@anchor{51}@anchor{taler-exchange-manual internal-audits}@anchor{52}
@section Internal audits
@@ -3548,7 +3201,7 @@ from the very beginning, this is generally not recommended as this may be too
expensive.
@node Database Scheme,Database upgrades,Internal audits,Testing and Troubleshooting
-@anchor{taler-exchange-manual database-scheme}@anchor{59}@anchor{taler-exchange-manual id9}@anchor{5a}
+@anchor{taler-exchange-manual database-scheme}@anchor{53}@anchor{taler-exchange-manual id9}@anchor{54}
@section Database Scheme
@@ -3564,7 +3217,7 @@ The database scheme used by the exchange looks as follows:
@image{taler-exchange-figures/exchange-db,,,,png}
@node Database upgrades,,Database Scheme,Testing and Troubleshooting
-@anchor{taler-exchange-manual database-upgrades}@anchor{5b}@anchor{taler-exchange-manual id10}@anchor{5c}
+@anchor{taler-exchange-manual database-upgrades}@anchor{55}@anchor{taler-exchange-manual id10}@anchor{56}
@section Database upgrades
@@ -3602,7 +3255,7 @@ not be performed in a production system. You still also need to then
grant the permissions to the other exchange processes again.
@node Benchmarking,FIXMEs,Testing and Troubleshooting,Top
-@anchor{taler-exchange-manual benchmarking}@anchor{5d}@anchor{taler-exchange-manual exchangebenchmarking}@anchor{5e}
+@anchor{taler-exchange-manual benchmarking}@anchor{57}@anchor{taler-exchange-manual exchangebenchmarking}@anchor{58}
@chapter Benchmarking
@@ -3642,7 +3295,7 @@ some options that are determined at runtime by the setup logic provided by
@end menu
@node Choosing a bank,taler-bank-benchmark,,Benchmarking
-@anchor{taler-exchange-manual benchmark-choose-bank}@anchor{5f}@anchor{taler-exchange-manual choosing-a-bank}@anchor{60}
+@anchor{taler-exchange-manual benchmark-choose-bank}@anchor{59}@anchor{taler-exchange-manual choosing-a-bank}@anchor{5a}
@section Choosing a bank
@@ -3680,7 +3333,7 @@ $ taler-unified-setup.sh -emwt -c $CONF -ns -u exchange-account-2
@end example
@node taler-bank-benchmark,taler-exchange-benchmark,Choosing a bank,Benchmarking
-@anchor{taler-exchange-manual taler-bank-benchmark}@anchor{61}
+@anchor{taler-exchange-manual taler-bank-benchmark}@anchor{5b}
@section taler-bank-benchmark
@@ -3707,7 +3360,7 @@ Exchange's account with the respective reserve public key as wire subject.
Processing is then handled by `parallel' (@code{-P}) service workers.
@node taler-exchange-benchmark,taler-aggregator-benchmark,taler-bank-benchmark,Benchmarking
-@anchor{taler-exchange-manual taler-exchange-benchmark}@anchor{62}
+@anchor{taler-exchange-manual taler-exchange-benchmark}@anchor{5c}
@section taler-exchange-benchmark
@@ -3745,7 +3398,7 @@ repetitions (i.e. if the operation failed the first time), total execution
time (operating system and user space) and other details.
@node taler-aggregator-benchmark,,taler-exchange-benchmark,Benchmarking
-@anchor{taler-exchange-manual taler-aggregator-benchmark}@anchor{63}
+@anchor{taler-exchange-manual taler-aggregator-benchmark}@anchor{5d}
@section taler-aggregator-benchmark
@@ -3768,7 +3421,7 @@ time a single aggregator process in @code{--test} mode (asking it to terminate
as soon as there is no more pending work).
@node FIXMEs,Index,Benchmarking,Top
-@anchor{taler-exchange-manual fixmes}@anchor{64}
+@anchor{taler-exchange-manual fixmes}@anchor{5e}
@chapter FIXMEs
diff --git a/texinfo/taler-merchant-api-tutorial-figures/arch-api.png b/texinfo/taler-merchant-api-tutorial-figures/arch-api.png
index 9e593ab4..9cedb108 100644
--- a/texinfo/taler-merchant-api-tutorial-figures/arch-api.png
+++ b/texinfo/taler-merchant-api-tutorial-figures/arch-api.png
Binary files differ
diff --git a/texinfo/taler-merchant-api-tutorial.texi b/texinfo/taler-merchant-api-tutorial.texi
index 33970265..fdc0b16a 100644
--- a/texinfo/taler-merchant-api-tutorial.texi
+++ b/texinfo/taler-merchant-api-tutorial.texi
@@ -19,7 +19,7 @@
@copying
@quotation
-GNU Taler 0.9.0, Jan 06, 2024
+GNU Taler 0.9.0, Feb 10, 2024
GNU Taler team
@@ -69,7 +69,6 @@ Copyright @copyright{} 2014-2022 Taler Systems SA (GPLv3+ or GFDL 1.3+)
* Merchant Payment Processing::
* Giving Refunds::
* Repurchase detection and fulfillment URLs::
-* Giving Customers Rewards::
* Advanced topics::
* Index::
@@ -158,11 +157,6 @@ that accepts donations for software projects and gives donation
receipts.
@item
-The
-survey@footnote{https://git.taler.net/taler-merchant-demos.git/tree/talermerchantdemos/survey}
-that gives users who answer a question a small reward.
-
-@item
The WooCommerce plugin@footnote{https://git.taler.net/gnu-taler-payment-for-woocommerce.git/}
which is a comprehensive integration into a Web shop including the refund business
process.
@@ -455,7 +449,7 @@ the merchant’s obligations under the contract.
@cartouche
@quotation Note
You do not need to keep querying to notice changes
-to the order’s transaction status. The endpoints
+to the order's transaction status. The endpoints
support long polling, simply specify a @code{timeout_ms}
query parameter with how long you want to wait at most
for the order status to change to @code{paid}.
@@ -531,7 +525,7 @@ under the @code{h_contract} field.
@geindex repurchase
-@node Repurchase detection and fulfillment URLs,Giving Customers Rewards,Giving Refunds,Top
+@node Repurchase detection and fulfillment URLs,Advanced topics,Giving Refunds,Top
@anchor{taler-merchant-api-tutorial repurchase}@anchor{10}@anchor{taler-merchant-api-tutorial repurchase-detection-and-fulfillment-urls}@anchor{11}
@chapter Repurchase detection and fulfillment URLs
@@ -553,8 +547,8 @@ from the QR code).
The merchant backend then updates the session ID of the existing order to
the current session ID of the browser. When the payment status for the
-“new” unpaid order is checked (or already in long-polling), the backend
-detects that for the browser’s `session ID' and `fulfillment URL' there is an
+"new" unpaid order is checked (or already in long-polling), the backend
+detects that for the browser's `session ID' and `fulfillment URL' there is an
existing paid contract. It then tells the browser to immediately redirect to
the fulfillment URL where the already paid article is available.
@@ -571,75 +565,9 @@ also `only' done for HTTP(S) fulfillment URLs. In particular, this means
fulfillment URIs like @code{taler://fulfillment-success/$MESSAGE} are not
considered to identify a resource you can pay for and thus do not have to be
unique.
-@anchor{taler-merchant-api-tutorial giving-customers-rewards}@anchor{12}
-@geindex rewards
-
-@node Giving Customers Rewards,Advanced topics,Repurchase detection and fulfillment URLs,Top
-@anchor{taler-merchant-api-tutorial id3}@anchor{13}
-@chapter Giving Customers Rewards
-
-
-GNU Taler allows Web sites to grant digital cash directly to a visitor. The
-idea is that some sites may want incentivize actions such as filling out a
-survey or trying a new feature. It is important to note that receiving rewards is
-not enforceable for the visitor, as there is no contract. It is simply a
-voluntary gesture of appreciation of the site to its visitor. However, once a
-reward has been granted, the visitor obtains full control over the funds provided
-by the site.
-
-The merchant backend of the site must be properly configured for rewards, and
-sufficient funds must be made available for rewards. See the Taler User
-Guide for details.
-
-To check if rewards are configured properly and if there are sufficient
-funds available for granting rewards, query the @code{/private/reserves} endpoint:
-
-@example
->>> import requests
->>> requests.get("https://backend.demo.taler.net/private/reserves",
-... headers=@{"Authorization": "Bearer secret-token:sandbox"@})
-<Response [200]>
-@end example
-
-Check that a reserve exists where the @code{merchant_initial_amount} is below the
-@code{committed_amount} and that the reserve is @code{active}.
-@anchor{taler-merchant-api-tutorial authorize-reward}@anchor{14}
-To authorize a reward, @code{POST} to @code{/private/rewards}. The following fields
-are recognized in the JSON request object:
-
-
-@itemize -
-@item
-@code{amount}: Amount that should be given to the visitor as a reward.
-
-@item
-@code{justification}: Description of why the reward was granted. Human-readable
-text not exposed to the customer, but used by the Back Office.
-
-@item
-@code{next_url}: The URL that the user’s browser should be redirected to by
-the wallet, once the reward has been processed.
-@end itemize
-
-The response from the backend contains a @code{taler_reward_url}. The
-customer’s browser must be redirected to this URL for the wallet to pick
-up the reward.
-@anchor{taler-merchant-api-tutorial pick-up-reward}@anchor{15}
-This code snipped illustrates giving a reward:
-
-@example
->>> import requests
->>> reward_req = dict(amount="KUDOS:0.5",
-... justification="User filled out survey",
-... next_url="https://merchant.com/thanks.html")
->>> requests.post("https://backend.demo.taler.net/private/rewards", json=reward_req,
-... headers=@{"Authorization": "Bearer secret-token:sandbox"@})
-<Response [200]>
-@end example
-
-@node Advanced topics,Index,Giving Customers Rewards,Top
-@anchor{taler-merchant-api-tutorial advanced-topics}@anchor{16}@anchor{taler-merchant-api-tutorial id4}@anchor{17}
+@node Advanced topics,Index,Repurchase detection and fulfillment URLs,Top
+@anchor{taler-merchant-api-tutorial advanced-topics}@anchor{12}@anchor{taler-merchant-api-tutorial id3}@anchor{13}
@chapter Advanced topics
@@ -651,7 +579,7 @@ This code snipped illustrates giving a reward:
@end menu
@node Session-Bound Payments,Product Identification,,Advanced topics
-@anchor{taler-merchant-api-tutorial session-002dbound-payments}@anchor{18}@anchor{taler-merchant-api-tutorial session-bound-payments}@anchor{19}
+@anchor{taler-merchant-api-tutorial session-002dbound-payments}@anchor{14}@anchor{taler-merchant-api-tutorial session-bound-payments}@anchor{15}
@section Session-Bound Payments
@@ -688,7 +616,7 @@ receipt is in the user’s wallet is also available as @code{last_session_id}
in the response to @code{/check-payment}.
@node Product Identification,The Taler Order Format,Session-Bound Payments,Advanced topics
-@anchor{taler-merchant-api-tutorial id5}@anchor{1a}@anchor{taler-merchant-api-tutorial product-identification}@anchor{1b}
+@anchor{taler-merchant-api-tutorial id4}@anchor{16}@anchor{taler-merchant-api-tutorial product-identification}@anchor{17}
@section Product Identification
@@ -709,7 +637,7 @@ contract with the same @code{resource_url} before, and if so replay the
previous payment.
@node The Taler Order Format,,Product Identification,Advanced topics
-@anchor{taler-merchant-api-tutorial id6}@anchor{1c}@anchor{taler-merchant-api-tutorial the-taler-order-format}@anchor{1d}
+@anchor{taler-merchant-api-tutorial id5}@anchor{18}@anchor{taler-merchant-api-tutorial the-taler-order-format}@anchor{19}
@section The Taler Order Format
@@ -1020,8 +948,8 @@ render fields that they do not understand as a key-value list.
@printindex ge
-@anchor{taler-merchant-api-tutorial The-Taler-Order-Format}@w{ }
@anchor{c}@w{ }
+@anchor{taler-merchant-api-tutorial The-Taler-Order-Format}@w{ }
@c %**end of body
@bye
diff --git a/texinfo/taler-merchant-figures/arch-api.png b/texinfo/taler-merchant-figures/arch-api.png
index 9e593ab4..9cedb108 100644
--- a/texinfo/taler-merchant-figures/arch-api.png
+++ b/texinfo/taler-merchant-figures/arch-api.png
Binary files differ
diff --git a/texinfo/taler-merchant.texi b/texinfo/taler-merchant.texi
index acef0f99..88e858c2 100644
--- a/texinfo/taler-merchant.texi
+++ b/texinfo/taler-merchant.texi
@@ -19,7 +19,7 @@
@copying
@quotation
-GNU Taler 0.9.0, Jan 06, 2024
+GNU Taler 0.9.0, Feb 10, 2024
GNU Taler team
@@ -67,8 +67,10 @@ Copyright @copyright{} 2014-2022 Taler Systems SA (GPLv3+ or GFDL 1.3+)
* Introduction::
* Terminology::
* Installation::
-* How to configure the merchant’s backend::
+* How to configure the merchant backend::
* Instance setup::
+* Instance account setup::
+* Manually creating an order using the SPA::
* Secure setup::
* Customization::
* Upgrade procedure::
@@ -91,18 +93,19 @@ Terminology
* Instance Bank Accounts::
* Inventory::
* Orders and Contracts::
+* Templates::
+* OTP Devices::
* Transfers::
-* Rewards::
-* Reserves::
+* Webhooks::
Installation
-* Installing from source::
* Installing the GNU Taler binary packages on Debian::
* Installing the GNU Taler binary packages on Trisquel::
* Installing the GNU Taler binary packages on Ubuntu::
+* Installing from source::
-How to configure the merchant’s backend
+How to configure the merchant backend
* Configuration format::
* Backend options::
@@ -118,8 +121,11 @@ Backend options
Instance setup
-* Setup without the Web interface::
-* Accounts::
+* Instance setup with the SPA::
+* Instance setup without the Web interface::
+
+Instance account setup
+
* Detecting Settlement; Manually Adding Transfers: Detecting Settlement Manually Adding Transfers.
* Automatic Settlement Data Import::
@@ -334,9 +340,10 @@ This chapter describes some of the key concepts used throughout the manual.
* Instance Bank Accounts::
* Inventory::
* Orders and Contracts::
+* Templates::
+* OTP Devices::
* Transfers::
-* Rewards::
-* Reserves::
+* Webhooks::
@end menu
@@ -374,11 +381,11 @@ merchant backend and the bearer token is equivalent to a passphrase.
@end quotation
@node Instance Bank Accounts,Inventory,Instances,Terminology
-@anchor{taler-merchant-manual instance-bank-accounts}@anchor{c}
+@anchor{taler-merchant-manual instance-bank-account}@anchor{c}@anchor{taler-merchant-manual instance-bank-accounts}@anchor{d}
@section Instance Bank Accounts
-@geindex instance-bank-account
+@geindex Bank account
To receive payments, an instance must have configured one or more bank
`accounts'. When configuring the bank account of an instance, one should
@@ -391,7 +398,7 @@ This documentation exclusively uses the term `account' for the bank
accounts of a merchant or shop that may be associated with an instance.
@node Inventory,Orders and Contracts,Instance Bank Accounts,Terminology
-@anchor{taler-merchant-manual inventory}@anchor{d}
+@anchor{taler-merchant-manual inventory}@anchor{e}
@section Inventory
@@ -421,8 +428,8 @@ can also override prices of products in the inventory or set a total price
for an order that is different from the price of the sum of the products
in the order.
-@node Orders and Contracts,Transfers,Inventory,Terminology
-@anchor{taler-merchant-manual orders-and-contracts}@anchor{e}
+@node Orders and Contracts,Templates,Inventory,Terminology
+@anchor{taler-merchant-manual orders-and-contracts}@anchor{f}
@section Orders and Contracts
@@ -494,8 +501,61 @@ main legal reason is typically to provide tax records in case of a tax audit.
After the `legal expiration' (by default: a decade), contract information is
deleted when running the garbage collector using @code{taler-merchant-dbinit}.
-@node Transfers,Rewards,Orders and Contracts,Terminology
-@anchor{taler-merchant-manual transfers}@anchor{f}
+@node Templates,OTP Devices,Orders and Contracts,Terminology
+@anchor{taler-merchant-manual template}@anchor{10}@anchor{taler-merchant-manual templates}@anchor{11}
+@section Templates
+
+
+@geindex Template
+
+Usually, a merchant must use an authenticated endpoint to create an order and
+then share the link to the order with a wallet. Templates are a mechanism that
+allows wallets to create their own orders directly, using a public endpoint.
+The template fixes some properties of the contracts created from it, while
+other details may be left for the customer to provide. Templates are useful
+in cases where the point-of-sale of a merchant is offline (and thus cannot
+setup an order), or even in cases where a simple static QR code is desired to
+accept payments or donations.
+
+When generating a template, the "summary" text of the contract and the
+"amount" to be paid by the customer can be fixed or left for the customer to
+specify. If the customer is expected to provide either or both of these
+values, the template link (or QR code) can specify a default value. For
+example, a cafeteria with a fixed price lunch may use a "lunch" template with
+both values fixed to the lunch price and the "lunch" product, a bakery might
+fix the summary to "baked goods" but allow the customer to enter the amount
+based on the total price of the items being bought, and a charity may allow
+donating an arbitrary amount and summary message while also suggesting default
+values.
+
+If an offline merchant wants to confirm that a customer did actually pay the
+agreed amount using an order derived from a template, they can associate an
+OTP device with the template.
+
+@node OTP Devices,Transfers,Templates,Terminology
+@anchor{taler-merchant-manual otp-device}@anchor{12}@anchor{taler-merchant-manual otp-devices}@anchor{13}
+@section OTP Devices
+
+
+@geindex OTP
+
+@geindex TOTP
+
+A One-Time-Password (OTP) generator is a device or application that generates
+a 4 to 8 digit code typically used for authentication. The widely used TOTP
+standard is described in RFC 6238@footnote{https://www.rfc-editor.org/rfc/rfc6238}.
+For GNU Taler merchant backends, OTP devices are used as a way to assure a
+merchant without network connectivity that a customer made a digital
+payment. The idea is described in depth in our SUERF Policy Brief@footnote{https://www.suerf.org/suer-policy-brief/69851/practical-offline-payments-using-one-time-passcodes}.
+To use this method, a merchant must configure the OTP device's shared secret
+in the merchant backend, and then associate the OTP device with a
+@ref{10,,Templates}. Once the customer has paid, they are given a list of OTP
+codes which must be shown to the merchant who can check that at least one of
+the codes matches their OTP device, proving that the customer made the
+payment.
+
+@node Transfers,Webhooks,OTP Devices,Terminology
+@anchor{taler-merchant-manual transfers}@anchor{14}
@section Transfers
@@ -511,70 +571,155 @@ backend with wire `transfer' data that specifies the `wire transfer subject'
and the amount that was received. Given this information, the backend can
detect and report any irregularities that might arise.
-@node Rewards,Reserves,Transfers,Terminology
-@anchor{taler-merchant-manual rewards}@anchor{10}
-@section Rewards
+@node Webhooks,,Transfers,Terminology
+@anchor{taler-merchant-manual webhooks}@anchor{15}
+@section Webhooks
+
+
+@geindex webhook
+
+A webhook is a pre-defined HTTP request that the GNU Taler merchant backend
+will make upon certain events, such as an order being paid or refunded. When
+the configured event happens, the merchant backend will make an HTTP request
+to the endpoint configured in the webhook configuration, possibly sending
+selected data about the event to the respective Web service. Webhooks can be
+used to trigger additional business logic outside of the GNU Taler merchant
+backend.
+
+@node Installation,How to configure the merchant backend,Terminology,Top
+@anchor{taler-merchant-manual installation}@anchor{16}
+@chapter Installation
-@geindex reward
+This chapter describes how to install the GNU Taler merchant backend.
-@geindex pick up
+@menu
+* Installing the GNU Taler binary packages on Debian::
+* Installing the GNU Taler binary packages on Trisquel::
+* Installing the GNU Taler binary packages on Ubuntu::
+* Installing from source::
+
+@end menu
+
+@node Installing the GNU Taler binary packages on Debian,Installing the GNU Taler binary packages on Trisquel,,Installation
+@anchor{taler-merchant-manual generic-instructions}@anchor{17}@anchor{taler-merchant-manual installing-the-gnu-taler-binary-packages-on-debian}@anchor{18}
+@section Installing the GNU Taler binary packages on Debian
+
+
+To install the GNU Taler Debian packages, first ensure that you have
+the right Debian distribution. At this time, the packages are built for
+Debian bookworm.
+
+You need to add a file to import the GNU Taler packages. Typically,
+this is done by adding a file @code{/etc/apt/sources.list.d/taler.list} that
+looks like this:
+
+@example
+deb [signed-by=/etc/apt/keyrings/taler-systems.gpg] https://deb.taler.net/apt/debian bookworm main
+@end example
+
+Next, you must import the Taler Systems SA public package signing key
+into your keyring and update the package lists:
-Taler does not only allow a Website to be paid, but also to make voluntary,
-non-contractual payments to visitors, called `rewards'. Such rewards could be
-granted as a reward for filling in surveys or watching advertizements. For
-rewards, there is no contract, rewards are always voluntary actions by the Web
-site that do not arise from a contractual obligation. Before a Web site
-can create rewards, it must establish a reserve. Once a reserve has been
-established, the merchant can `grant' rewards, allowing wallets to `pick up'
-the reward.
+@example
+# wget -O /etc/apt/keyrings/taler-systems.gpg \
+ https://taler.net/taler-systems.gpg
+# apt update
+@end example
@cartouche
@quotation Note
-Rewards are an optional feature, and exchanges may disable rewards (usually
-if they see compliance issues). In this case, the reward feature will
-not be available.
+You may want to verify the correctness of the Taler Systems SA key out-of-band.
@end quotation
@end cartouche
-@node Reserves,,Rewards,Terminology
-@anchor{taler-merchant-manual reserves}@anchor{11}
-@section Reserves
+Now your system is ready to install the official GNU Taler binary packages
+using apt.
+To install the Taler merchant backend, you can now simply run:
-@geindex reserve
+@example
+# apt install taler-merchant
+@end example
-@geindex close
+Note that the package does not complete the integration of the backend with
+the HTTP reverse proxy (typically with TLS certificates). A configuration
+fragment for Nginx or Apache will be placed in
+@code{/etc/@{apache,nginx@}/conf-available/taler-merchant.conf}. You must
+furthermore still configure the database and the instances, and may need to
+extend the fragment with access control restrictions for non-default
+instances.
-A `reserve' is a pool of electronic cash at an exchange under the control of
-a private key. Merchants withdraw coins from a reserve when granting
-rewards. A reserve is established by first generating the required key material
-in the merchant backend, and then wiring the desired amount of funds to the
-exchange.
+@node Installing the GNU Taler binary packages on Trisquel,Installing the GNU Taler binary packages on Ubuntu,Installing the GNU Taler binary packages on Debian,Installation
+@anchor{taler-merchant-manual installing-the-gnu-taler-binary-packages-on-trisquel}@anchor{19}
+@section Installing the GNU Taler binary packages on Trisquel
-An exchange will automatically `close' a reserve after a fixed period of time
-(typically about a month), wiring any remaining funds back to the merchant.
-While exchange APIs exists to (1) explicitly `open' a reserve to prevent it
-from being automatically closed and to (2) explicitly `close' a reserve at any
-time, the current merchant backend does not make use of these APIs.
-@node Installation,How to configure the merchant’s backend,Terminology,Top
-@anchor{taler-merchant-manual installation}@anchor{12}
-@chapter Installation
+To install the GNU Taler Trisquel packages, first ensure that you have
+the right Trisquel distribution. Packages are currently available for
+Trisquel GNU/Linux 10.0. Simply follow the same instructions provided
+for Ubuntu.
+@node Installing the GNU Taler binary packages on Ubuntu,Installing from source,Installing the GNU Taler binary packages on Trisquel,Installation
+@anchor{taler-merchant-manual installing-the-gnu-taler-binary-packages-on-ubuntu}@anchor{1a}
+@section Installing the GNU Taler binary packages on Ubuntu
-This chapter describes how to install the GNU Taler merchant backend.
-@menu
-* Installing from source::
-* Installing the GNU Taler binary packages on Debian::
-* Installing the GNU Taler binary packages on Trisquel::
-* Installing the GNU Taler binary packages on Ubuntu::
+To install the GNU Taler Ubuntu packages, first ensure that you have
+the right Ubuntu distribution. At this time, the packages are built for
+Ubuntu Lunar and Ubuntu Jammy. Make sure to have @code{universe} in your
+@code{/etc/apt/sources.list} (after @code{main}) as we depend on some packages
+from Ubuntu @code{universe}.
-@end menu
+A typical @code{/etc/apt/sources.list.d/taler.list} file for this setup
+would look like this for Ubuntu Lunar:
+
+@example
+deb [signed-by=/etc/apt/keyrings/taler-systems.gpg] https://deb.taler.net/apt/ubuntu/ lunar taler-lunar
+@end example
+
+For Ubuntu Jammy use this instead:
+
+@example
+deb [signed-by=/etc/apt/keyrings/taler-systems.gpg] https://deb.taler.net/apt/ubuntu/ jammy taler-jammy
+@end example
+
+The last line is crucial, as it adds the GNU Taler packages.
+
+Next, you must import the Taler Systems SA public package signing key
+into your keyring and update the package lists:
+
+@example
+# wget -O /etc/apt/keyrings/taler-systems.gpg \
+ https://taler.net/taler-systems.gpg
+# apt update
+@end example
+
+@cartouche
+@quotation Note
+You may want to verify the correctness of the Taler Systems key out-of-band.
+@end quotation
+@end cartouche
+
+Now your system is ready to install the official GNU Taler binary packages
+using apt.
+
+To install the Taler merchant backend, you can now simply run:
+
+@example
+# apt install taler-merchant
+@end example
+
+Note that the package does not complete the integration of the backend with
+the HTTP reverse proxy (typically with TLS certificates). A configuration
+fragment for Nginx or Apache will be placed in
+@code{/etc/@{apache,nginx@}/conf-available/taler-merchant.conf}. You must
+furthermore still configure the database and the instances, and may need to
+extend the fragment with access control restrictions for non-default
+instances.
-@node Installing from source,Installing the GNU Taler binary packages on Debian,,Installation
-@anchor{taler-merchant-manual generic-instructions}@anchor{13}@anchor{taler-merchant-manual installing-from-source}@anchor{14}
+@node Installing from source,,Installing the GNU Taler binary packages on Ubuntu,Installation
+@anchor{taler-merchant-manual installing-from-source}@anchor{1b}
@section Installing from source
@@ -782,126 +927,9 @@ latter ensures that necessary binaries are copied to the right place.
In any case, if @code{make check} fails, please consider filing a
bug report with the Taler bug tracker@footnote{https://bugs.taler.net}.
-@node Installing the GNU Taler binary packages on Debian,Installing the GNU Taler binary packages on Trisquel,Installing from source,Installation
-@anchor{taler-merchant-manual installing-the-gnu-taler-binary-packages-on-debian}@anchor{15}
-@section Installing the GNU Taler binary packages on Debian
-
-
-To install the GNU Taler Debian packages, first ensure that you have
-the right Debian distribution. At this time, the packages are built for
-Debian bookworm.
-
-You need to add a file to import the GNU Taler packages. Typically,
-this is done by adding a file @code{/etc/apt/sources.list.d/taler.list} that
-looks like this:
-
-@example
-deb [signed-by=/etc/apt/keyrings/taler-systems.gpg] https://deb.taler.net/apt/debian bookworm main
-@end example
-
-Next, you must import the Taler Systems SA public package signing key
-into your keyring and update the package lists:
-
-@example
-# wget -O /etc/apt/keyrings/taler-systems.gpg \
- https://taler.net/taler-systems.gpg
-# apt update
-@end example
-
-@cartouche
-@quotation Note
-You may want to verify the correctness of the Taler Systems SA key out-of-band.
-@end quotation
-@end cartouche
-
-Now your system is ready to install the official GNU Taler binary packages
-using apt.
-
-To install the Taler merchant backend, you can now simply run:
-
-@example
-# apt install taler-merchant
-@end example
-
-Note that the package does not complete the integration of the backend with
-the HTTP reverse proxy (typically with TLS certificates). A configuration
-fragment for Nginx or Apache will be placed in
-@code{/etc/@{apache,nginx@}/conf-available/taler-merchant.conf}. You must
-furthermore still configure the database and the instances, and may need to
-extend the fragment with access control restrictions for non-default
-instances.
-
-@node Installing the GNU Taler binary packages on Trisquel,Installing the GNU Taler binary packages on Ubuntu,Installing the GNU Taler binary packages on Debian,Installation
-@anchor{taler-merchant-manual installing-the-gnu-taler-binary-packages-on-trisquel}@anchor{16}
-@section Installing the GNU Taler binary packages on Trisquel
-
-
-To install the GNU Taler Trisquel packages, first ensure that you have
-the right Trisquel distribution. Packages are currently available for
-Trisquel GNU/Linux 10.0. Simply follow the same instructions provided
-for Ubuntu.
-
-@node Installing the GNU Taler binary packages on Ubuntu,,Installing the GNU Taler binary packages on Trisquel,Installation
-@anchor{taler-merchant-manual installing-the-gnu-taler-binary-packages-on-ubuntu}@anchor{17}
-@section Installing the GNU Taler binary packages on Ubuntu
-
-
-To install the GNU Taler Ubuntu packages, first ensure that you have
-the right Ubuntu distribution. At this time, the packages are built for
-Ubuntu Lunar and Ubuntu Jammy. Make sure to have @code{universe} in your
-@code{/etc/apt/sources.list} (after @code{main}) as we depend on some packages
-from Ubuntu @code{universe}.
-
-A typical @code{/etc/apt/sources.list.d/taler.list} file for this setup
-would look like this for Ubuntu Lunar:
-
-@example
-deb [signed-by=/etc/apt/keyrings/taler-systems.gpg] https://deb.taler.net/apt/ubuntu/ lunar taler-lunar
-@end example
-
-For Ubuntu Jammy use this instead:
-
-@example
-deb [signed-by=/etc/apt/keyrings/taler-systems.gpg] https://deb.taler.net/apt/ubuntu/ jammy taler-jammy
-@end example
-
-The last line is crucial, as it adds the GNU Taler packages.
-
-Next, you must import the Taler Systems SA public package signing key
-into your keyring and update the package lists:
-
-@example
-# wget -O /etc/apt/keyrings/taler-systems.gpg \
- https://taler.net/taler-systems.gpg
-# apt update
-@end example
-
-@cartouche
-@quotation Note
-You may want to verify the correctness of the Taler Systems key out-of-band.
-@end quotation
-@end cartouche
-
-Now your system is ready to install the official GNU Taler binary packages
-using apt.
-
-To install the Taler merchant backend, you can now simply run:
-
-@example
-# apt install taler-merchant
-@end example
-
-Note that the package does not complete the integration of the backend with
-the HTTP reverse proxy (typically with TLS certificates). A configuration
-fragment for Nginx or Apache will be placed in
-@code{/etc/@{apache,nginx@}/conf-available/taler-merchant.conf}. You must
-furthermore still configure the database and the instances, and may need to
-extend the fragment with access control restrictions for non-default
-instances.
-
-@node How to configure the merchant’s backend,Instance setup,Installation,Top
-@anchor{taler-merchant-manual how-to-configure-the-merchants-backend}@anchor{18}
-@chapter How to configure the merchant’s backend
+@node How to configure the merchant backend,Instance setup,Installation,Top
+@anchor{taler-merchant-manual how-to-configure-the-merchant-backend}@anchor{1c}
+@chapter How to configure the merchant backend
@geindex taler.conf
@@ -922,8 +950,8 @@ force the use of @code{/etc/taler/taler.conf} as the main configuration file.
@end menu
-@node Configuration format,Backend options,,How to configure the merchant’s backend
-@anchor{taler-merchant-manual configuration-format}@anchor{19}
+@node Configuration format,Backend options,,How to configure the merchant backend
+@anchor{taler-merchant-manual configuration-format}@anchor{1d}
@section Configuration format
@@ -1008,8 +1036,8 @@ pathnames, when they use several levels of @code{$}-expanded variables. See
The repository @code{git://git.taler.net/deployment} contains example code
for generating configuration files under @code{deployment/netzbon/}.
-@node Backend options,Sample backend configuration,Configuration format,How to configure the merchant’s backend
-@anchor{taler-merchant-manual backend-options}@anchor{1a}@anchor{taler-merchant-manual id3}@anchor{1b}
+@node Backend options,Sample backend configuration,Configuration format,How to configure the merchant backend
+@anchor{taler-merchant-manual backend-options}@anchor{1e}@anchor{taler-merchant-manual id3}@anchor{1f}
@section Backend options
@@ -1046,7 +1074,7 @@ modified. Here, the notation @code{[$SECTION]/$OPTION} denotes the option
@end menu
@node Service address,Currency,,Backend options
-@anchor{taler-merchant-manual service-address}@anchor{1c}
+@anchor{taler-merchant-manual service-address}@anchor{20}
@subsection Service address
@@ -1108,7 +1136,7 @@ respective @code{sites-available} directories of Apache and Nginx.
@end cartouche
@node Currency,Database,Service address,Backend options
-@anchor{taler-merchant-manual currency}@anchor{1d}
+@anchor{taler-merchant-manual currency}@anchor{21}
@subsection Currency
@@ -1141,7 +1169,7 @@ directives and destroy the carefully setup path structure.
@end cartouche
@node Database,Exchange,Currency,Backend options
-@anchor{taler-merchant-manual database}@anchor{1e}
+@anchor{taler-merchant-manual database}@anchor{22}
@subsection Database
@@ -1220,7 +1248,7 @@ secured from unauthorized access.
@c index: MASTER_KEY
@node Exchange,,Database,Backend options
-@anchor{taler-merchant-manual exchange}@anchor{1f}
+@anchor{taler-merchant-manual exchange}@anchor{23}
@subsection Exchange
@@ -1288,8 +1316,8 @@ with the GNU Taler development team.
@end quotation
@end cartouche
-@node Sample backend configuration,Launching the backend,Backend options,How to configure the merchant’s backend
-@anchor{taler-merchant-manual id4}@anchor{20}@anchor{taler-merchant-manual sample-backend-configuration}@anchor{21}
+@node Sample backend configuration,Launching the backend,Backend options,How to configure the merchant backend
+@anchor{taler-merchant-manual id4}@anchor{24}@anchor{taler-merchant-manual sample-backend-configuration}@anchor{25}
@section Sample backend configuration
@@ -1307,7 +1335,7 @@ PORT = 8888
DATABASE = postgres
[merchantdb-postgres]
-CONFIG = postgres:///donations
+CONFIG = postgres:///taler-merchant
[merchant-exchange-kudos]
EXCHANGE_BASE_URL = https://exchange.demo.taler.net/
@@ -1324,8 +1352,8 @@ The backend will deposit the coins it receives to the exchange at
@indicateurl{https://exchange.demo.taler.net/}, which has the master key
@code{FH1Y8ZMHCTPQ0YFSZECDH8C9407JR3YN0MF1706PTG24Q4NEWGV0}.
-@node Launching the backend,,Sample backend configuration,How to configure the merchant’s backend
-@anchor{taler-merchant-manual id5}@anchor{22}@anchor{taler-merchant-manual launching-the-backend}@anchor{23}
+@node Launching the backend,,Sample backend configuration,How to configure the merchant backend
+@anchor{taler-merchant-manual id5}@anchor{26}@anchor{taler-merchant-manual launching-the-backend}@anchor{27}
@section Launching the backend
@@ -1334,20 +1362,17 @@ The backend will deposit the coins it receives to the exchange at
@geindex taler-merchant-httpd
Assuming you have configured everything correctly, you can launch the
-merchant backend as @code{$USER} using
+merchant backend as @code{$USER} using (to provide a trivial example):
@example
$ taler-merchant-httpd &
$ taler-merchant-webhook &
$ taler-merchant-wirewatch &
+$ taler-merchant-depositcheck &
+$ taler-merchant-exchange &
@end example
-You only need to run @code{taler-merchant-webhook} if one of the instances is
-configured to trigger web hooks. Similarly, @code{taler-merchant-wirewatch} is
-only required if instances have accounts configured with automatic import of
-wire transfers via a bank wire gateway.
-
-To ensure these processes runs always in the background and also after
+To ensure these processes run always in the background and also after
rebooting, you should use systemd, cron or some other init system of your
operating system to launch the process. You should also periodically re-start
these services to prevent them from exhausing the memory utilization of the
@@ -1358,8 +1383,8 @@ how to start and stop daemons.
@quotation Note
When using the Debian/Ubuntu packages, the systemd configuration
will already exist. You only need to enable and start the service
-using @code{systemctl enable taler-merchant-httpd} and
-@code{systemctl start taler-merchant-httpd}. Additionally, you should
+using @code{systemctl enable taler-merchant.target} and
+@code{systemctl start taler-merchant.target}. Additionally, you should
review the @code{/etc/apache2/sites-available/taler-merchant.conf}
or @code{/etc/nginx/sites-available/taler-merchant} (these files
contain additional instructions to follow), symlink it to
@@ -1386,7 +1411,7 @@ any access control. You can either:
@itemize *
@item
-Use the @code{--auth=$TOKEN} command-line option to set an access token to be provided in an @code{Authorize: Bearer $TOKEN} HTTP header. Note that this can be used at anytime to override access control, but remains only in effect until a first instance is created or an existing instance authentication setting is modified.
+Use the @code{--auth=$TOKEN} command-line option to `taler-merchant-httpd' to set an access token to be provided in an @code{Authorize: Bearer $TOKEN} HTTP header. Note that this can be used at anytime to override access control, but remains only in effect until a first instance is created or an existing instance authentication setting is modified.
@item
Set the @code{TALER_MERCHANT_TOKEN} environment variable to @code{$TOKEN} for the same effect. This method has the advantage of @code{$TOKEN} not being visible as a command-line interface to other local users on the same machine.
@@ -1401,20 +1426,19 @@ and use TLS for improved network privacy, see @ref{9,,Secure setup}.
@geindex instance
-@node Instance setup,Secure setup,How to configure the merchant’s backend,Top
-@anchor{taler-merchant-manual id6}@anchor{24}@anchor{taler-merchant-manual instance-setup}@anchor{25}
+@node Instance setup,Instance account setup,How to configure the merchant backend,Top
+@anchor{taler-merchant-manual id6}@anchor{28}@anchor{taler-merchant-manual instance-setup}@anchor{29}
@chapter Instance setup
-First of all, we recommend the use of the single-page administration
-application (SPA) that is served by default at the base URL of the merchant
-backend. You can use it to perform all steps described in this section (and
-more!), using a simple Web interface instead of the @code{wget} commands given
-below.
+We recommend the use of the single-page administration application (SPA) that
+is served by default at the base URL of the merchant backend. You can use it
+to perform all steps described in this section (and more!), using a simple Web
+interface. Alternatively, you can also use the @code{wget} commands given below.
-Regardless of which tool you use, the first step for using the backend
+Regardless of which approach you use, the first step for using the backend
involves the creation of a @code{default} instance. The @code{default} instance can
-also create / delete / configure other instances, similar to the @code{root}
+also create, configure or delete other instances, similar to the @code{root}
account on UNIX. When no instance exists and @code{taler-merchant-httpd} was
started without the @code{--auth} option, then the backend is reachable without
any access control (unless you configured some in the reverse proxy).
@@ -1430,21 +1454,47 @@ This means unauthorized users can distinguish between the case where the
instance does not exist (HTTP 404) and the case where access is denied
(HTTP 403).
This is concern can be addressed using a properly configured
-@ref{26,,reverse proxy}.
+@ref{2a,,reverse proxy}.
@end quotation
@end cartouche
@menu
-* Setup without the Web interface::
-* Accounts::
-* Detecting Settlement; Manually Adding Transfers: Detecting Settlement Manually Adding Transfers.
-* Automatic Settlement Data Import::
+* Instance setup with the SPA::
+* Instance setup without the Web interface::
@end menu
-@node Setup without the Web interface,Accounts,,Instance setup
-@anchor{taler-merchant-manual setup-without-the-web-interface}@anchor{27}
-@section Setup without the Web interface
+@node Instance setup with the SPA,Instance setup without the Web interface,,Instance setup
+@anchor{taler-merchant-manual instance-setup-with-the-spa}@anchor{2b}
+@section Instance setup with the SPA
+
+
+In order to setup an instance, you need the merchant backend to already be
+running, and you must either have the credentials for the "default" instance,
+or no instance must be configured at all yet.
+
+To start, point your browser to @code{$PROTO://backend.$DOMAIN_NAME/}, replacing
+"$PROTO" with "https" or (rarely) "http" and "$DOMAIN_NAME" with your
+organizations DNS domain or subdomain.
+
+@cartouche
+@quotation Note
+The label "backend" here is also just a suggestion, your administrator
+can in principle choose any name.
+@end quotation
+@end cartouche
+
+You should be welcomed by the following merchant backoffice page:
+
+@image{taler-merchant-figures/merchant_first_login,,,,png}
+
+After supplying the required fields, primarily the name of your organization
+and the desired access token, click @code{confirm}. You can change the instance
+settings later via the @code{Settings} entry in the menu on the left.
+
+@node Instance setup without the Web interface,,Instance setup with the SPA,Instance setup
+@anchor{taler-merchant-manual instance-setup-without-the-web-interface}@anchor{2c}
+@section Instance setup without the Web interface
Instances can be created by POSTing a request to @code{/management/instances}
@@ -1456,7 +1506,7 @@ InstanceConfigurationMessage:
@example
@{
"id" : "default",
- "name": "example.com",
+ "name": "Example Inc.",
"address": @{ "country" : "zz" @},
"auth": @{ "method" : "external"@} ,
"jurisdiction": @{ "country" : "zz" @},
@@ -1488,9 +1538,9 @@ Endpoints to modify (reconfigure), permanently disable (while keeping the data)
or purge (deleting all associated data) instances exist as well and are documented
in the Merchant Backend API documentation.
-@node Accounts,Detecting Settlement Manually Adding Transfers,Setup without the Web interface,Instance setup
-@anchor{taler-merchant-manual accounts}@anchor{28}
-@section Accounts
+@node Instance account setup,Manually creating an order using the SPA,Instance setup,Top
+@anchor{taler-merchant-manual id7}@anchor{2d}@anchor{taler-merchant-manual instance-account-setup}@anchor{2e}
+@chapter Instance account setup
Before you can use an instance productively, you need to configure one or more
@@ -1499,19 +1549,56 @@ operator to tell it where to wire the income from your sales. Every bank
account has an associated `wire method' which determines how an exchange can
transfer the funds. The most commonly supported wire method is `iban', which
implies that bank accounts are identified by IBAN numbers and wire transfers
-are to be executed between IBAN accounts.
+are to be executed between IBAN accounts. For regional currency setups, the
+wire method could also be `x-taler-bank'.
+
+@cartouche
+@quotation Note
+When using a regional currency, you need to first create a bank account at
+the regional bank. You may need to contact the respective administrator who
+can set one up. After being able to login to the new bank account, you can
+see your bank account number by clicking on the @code{Welcome, $USERNAME}
+message in the profile page. Next to the bank account number, you can find
+a convenient button to copy the number to the clipboard.
+@end quotation
+@end cartouche
Not every exchange will support every `wire method', and if you do not add a
bank account with a wire method that is supported by a particular exchange,
then you will not be able to receive payments via that exchange even if you
configured the merchant backend to trust that exchange.
-The simplest way to configure an account is to use the Web interface which
-has specific forms for different wire methods. Specifying the revenue gateway
-with username and password is optional and discussed below.
+The simplest way to configure an account is to use the Web interface which has
+specific forms for different wire methods. First, select @code{Bank account} at
+the left of the page. The following page should be shown:
+
+@image{taler-merchant-figures/no_default_account_yet,,,,png}
-@node Detecting Settlement Manually Adding Transfers,Automatic Settlement Data Import,Accounts,Instance setup
-@anchor{taler-merchant-manual detecting-settlement-manually-adding-transfers}@anchor{29}
+Click on the blue "+" sign on the top right of the page to add a new
+bank account. The following page should appear:
+
+@image{taler-merchant-figures/enter_instance_details,,,,png}
+
+First, you should select the wire method, after which the dialog will show you
+additional fields specific to the wire method. For example, if youchoose
+@code{iban} as the account type, the following page should appear:
+
+@image{taler-merchant-figures/instance_iban_config,,,,png}
+
+Specifying the revenue gateway with username and password is optional and
+discussed in section @ref{2f,,Automatic Settlement Data Import} below.
+
+After providing the details and confirming, the shop is ready to generate orders
+and accept payments.
+
+@menu
+* Detecting Settlement; Manually Adding Transfers: Detecting Settlement Manually Adding Transfers.
+* Automatic Settlement Data Import::
+
+@end menu
+
+@node Detecting Settlement Manually Adding Transfers,Automatic Settlement Data Import,,Instance account setup
+@anchor{taler-merchant-manual detecting-settlement-manually-adding-transfers}@anchor{30}
@section Detecting Settlement: Manually Adding Transfers
@@ -1529,24 +1616,57 @@ information, the merchant backend will inquire with the exchange which
individual payments were aggregated, check that the total amount is correct,
and will then flag the respective contracts as wired.
-@node Automatic Settlement Data Import,,Detecting Settlement Manually Adding Transfers,Instance setup
-@anchor{taler-merchant-manual automatic-settlement-data-import}@anchor{2a}
+You can manually enter wire transfers under @code{Transfers}. However, this is
+tedious, and so if your banking setup supports it, we highly recommend
+using the automatic settlement data import.
+
+@node Automatic Settlement Data Import,,Detecting Settlement Manually Adding Transfers,Instance account setup
+@anchor{taler-merchant-manual automatic-settlement-data-import}@anchor{2f}@anchor{taler-merchant-manual id8}@anchor{31}
@section Automatic Settlement Data Import
-To automatically import settlement data, you can provide the merchant backend
-with the address and access credentials of a Taler revenue API for each bank
-account of an instance. The revenue API endpoint will allow the merchant
-backend to observe all incoming wire transfers into your bank account and
-automatically import them into the list of wire transfers.
+To automatically import settlement data, you need to provide the merchant
+backend with the address and access credentials of a
+taler-bank-merchant-http-api for each bank account of an instance. The
+revenue API endpoint will allow the merchant backend to obtain a list of all
+incoming wire transfers into your bank account and automatically import them
+into the list of confirmed wire transfers.
Note that setting up a revenue API endpoint will usually require you to first
-ask your bank for EBICS access and to setup libeufin to provide the revenue
-API endpoint. The taler-bank used by regional currency setups also provides
-a revenue API endpoint.
+ask your bank for EBICS access and to set up libeufin-nexus to provide
+the revenue API endpoint. The libeufin-bank used by regional currency
+setups also provides a revenue API endpoint at
+@code{$BANK_URL/accounts/$ACCOUNT_NAME/taler-revenue/}. Thus, when using a
+regional currency setup, simply use the @code{$BANK_URL} of your bank and specify
+your bank login name and password in the @ref{2e,,Instance account setup} dialog.
+
+@node Manually creating an order using the SPA,Secure setup,Instance account setup,Top
+@anchor{taler-merchant-manual manually-creating-an-order-using-the-spa}@anchor{32}
+@chapter Manually creating an order using the SPA
+
+
+Click on @code{Orders} at the top left corner of the merchant backoffice page; the
+following page should appear
+
+@image{taler-merchant-figures/create_orders,,,,png}
+
+After having filled the required fields, the interface should show the
+following page with the related links to check the status of the order and let
+wallets pay for it.
-@node Secure setup,Customization,Instance setup,Top
-@anchor{taler-merchant-manual id7}@anchor{2b}@anchor{taler-merchant-manual secure-setup}@anchor{9}
+@image{taler-merchant-figures/payment_links,,,,png}
+
+In order to test the setup, it should be now possible to use the command line wallet
+to withdraw Taler coins and spend them to pay for the order we just created.
+
+In practice, you will rarely if ever setup orders manually like this. Instead,
+a GNU Taler e-commerce front-end@footnote{https://taler.net/en/docs.html#extensions} or the
+taler-merchant-pos-app will do this on-demand. Here, you will only need
+to provide the respective front-ends with the URL of your instance
+(e.g. @code{https://backend.$DOMAIN/instances/$NAME}) and your access token.
+
+@node Secure setup,Customization,Manually creating an order using the SPA,Top
+@anchor{taler-merchant-manual id9}@anchor{33}@anchor{taler-merchant-manual secure-setup}@anchor{9}
@chapter Secure setup
@@ -1554,11 +1674,11 @@ a revenue API endpoint.
@geindex TLS
-The Taler backend does not include even the most basic forms of access control
-or transport layer security. Thus, production setups `must' deploy the
-Taler backend behind an HTTP(S) server that acts as a `reverse proxy',
-performs TLS termination and authentication and then forwards requests to the
-backend.
+The Taler backend is deliberately simple in terms of support for access
+control or transport layer security (TLS). Thus, production setups `must'
+deploy the Taler backend behind an HTTP(S) server that acts as a `reverse
+proxy', performs TLS termination and authentication and then forwards requests
+to the backend.
@menu
* Using UNIX domain sockets::
@@ -1569,7 +1689,7 @@ backend.
@end menu
@node Using UNIX domain sockets,Reverse proxy configuration,,Secure setup
-@anchor{taler-merchant-manual using-unix-domain-sockets}@anchor{2c}
+@anchor{taler-merchant-manual using-unix-domain-sockets}@anchor{34}
@section Using UNIX domain sockets
@@ -1593,7 +1713,7 @@ instead strongly consider using the "BIND_TO" option to at least bind it only
to "localhost".
@node Reverse proxy configuration,Access control,Using UNIX domain sockets,Secure setup
-@anchor{taler-merchant-manual id8}@anchor{2d}@anchor{taler-merchant-manual reverse-proxy-configuration}@anchor{26}
+@anchor{taler-merchant-manual id10}@anchor{35}@anchor{taler-merchant-manual reverse-proxy-configuration}@anchor{2a}
@section Reverse proxy configuration
@@ -1604,7 +1724,7 @@ to "localhost".
@end menu
@node Nginx,Apache,,Reverse proxy configuration
-@anchor{taler-merchant-manual nginx}@anchor{2e}
+@anchor{taler-merchant-manual nginx}@anchor{36}
@subsection Nginx
@@ -1624,7 +1744,7 @@ not have HTTPS enabled. Make sure to restart the @code{taler-merchant-httpd}
process after changing the @code{SERVE} configuration.
@node Apache,,Nginx,Reverse proxy configuration
-@anchor{taler-merchant-manual apache}@anchor{2f}
+@anchor{taler-merchant-manual apache}@anchor{37}
@subsection Apache
@@ -1652,7 +1772,7 @@ you have TLS configured. Note that you must add the @code{https} header unless
your site is not available via TLS.
@node Access control,Status code remapping,Reverse proxy configuration,Secure setup
-@anchor{taler-merchant-manual access-control}@anchor{30}
+@anchor{taler-merchant-manual access-control}@anchor{38}
@section Access control
@@ -1672,7 +1792,7 @@ are expected to be fully exposed to the Internet, and wallets may have to
interact with those endpoints directly without client authentication.
@node Status code remapping,,Access control,Secure setup
-@anchor{taler-merchant-manual status-code-remapping}@anchor{31}
+@anchor{taler-merchant-manual status-code-remapping}@anchor{39}
@section Status code remapping
@@ -1689,7 +1809,7 @@ fragment, which remaps all 404 response codes to 403.
@end menu
@node Nginx<2>,Apache<2>,,Status code remapping
-@anchor{taler-merchant-manual id9}@anchor{32}
+@anchor{taler-merchant-manual id11}@anchor{3a}
@subsection Nginx
@@ -1698,7 +1818,7 @@ error_page 404 =403 /empty.gif;
@end example
@node Apache<2>,,Nginx<2>,Status code remapping
-@anchor{taler-merchant-manual id10}@anchor{33}
+@anchor{taler-merchant-manual id12}@anchor{3b}
@subsection Apache
@@ -1708,7 +1828,7 @@ set-status 403
@end example
@node Customization,Upgrade procedure,Secure setup,Top
-@anchor{taler-merchant-manual customization}@anchor{34}
+@anchor{taler-merchant-manual customization}@anchor{3c}
@chapter Customization
@@ -1728,7 +1848,7 @@ set-status 403
@end menu
@node Legal conditions for using the service,Terms of Service,,Customization
-@anchor{taler-merchant-manual legal-conditions-for-using-the-service}@anchor{35}
+@anchor{taler-merchant-manual legal-conditions-for-using-the-service}@anchor{3d}
@section Legal conditions for using the service
@@ -1754,7 +1874,7 @@ user in various languages and various formats. This section describes how to
setup and configure the legal conditions.
@node Terms of Service,Privacy Policy,Legal conditions for using the service,Customization
-@anchor{taler-merchant-manual terms-of-service}@anchor{36}
+@anchor{taler-merchant-manual terms-of-service}@anchor{3e}
@section Terms of Service
@@ -1785,7 +1905,7 @@ process.
@end itemize
@node Privacy Policy,Legal policies directory layout,Terms of Service,Customization
-@anchor{taler-merchant-manual privacy-policy}@anchor{37}
+@anchor{taler-merchant-manual privacy-policy}@anchor{3f}
@section Privacy Policy
@@ -1816,7 +1936,7 @@ process.
@end itemize
@node Legal policies directory layout,Generating the Legal Terms,Privacy Policy,Customization
-@anchor{taler-merchant-manual legal-policies-directory-layout}@anchor{38}
+@anchor{taler-merchant-manual legal-policies-directory-layout}@anchor{40}
@section Legal policies directory layout
@@ -1841,7 +1961,7 @@ the service may show a warning on startup.
@end menu
@node Example,,,Legal policies directory layout
-@anchor{taler-merchant-manual example}@anchor{39}
+@anchor{taler-merchant-manual example}@anchor{41}
@subsection Example
@@ -1886,7 +2006,7 @@ If the user requests an HTML format with language preferences "fr" followed by
French.
@node Generating the Legal Terms,Adding translations,Legal policies directory layout,Customization
-@anchor{taler-merchant-manual generating-the-legal-terms}@anchor{3a}
+@anchor{taler-merchant-manual generating-the-legal-terms}@anchor{42}
@section Generating the Legal Terms
@@ -1914,7 +2034,7 @@ languages (initially only English) in @code{$PREFIX/share/terms/}. The generato
has a few options which are documented in its man page.
@node Adding translations,Updating legal documents,Generating the Legal Terms,Customization
-@anchor{taler-merchant-manual adding-translations}@anchor{3b}
+@anchor{taler-merchant-manual adding-translations}@anchor{43}
@section Adding translations
@@ -1949,7 +2069,7 @@ You must restart the service whenever adding or updating legal documents or thei
@end cartouche
@node Updating legal documents,Mustach HTML Templates,Adding translations,Customization
-@anchor{taler-merchant-manual updating-legal-documents}@anchor{3c}
+@anchor{taler-merchant-manual updating-legal-documents}@anchor{44}
@section Updating legal documents
@@ -1967,7 +2087,7 @@ forget to update the @code{ETAG} configuration option to the new name and to
restart the service.
@node Mustach HTML Templates,Static files,Updating legal documents,Customization
-@anchor{taler-merchant-manual mustach-html-templates}@anchor{3d}
+@anchor{taler-merchant-manual mustach-html-templates}@anchor{45}
@section Mustach HTML Templates
@@ -1977,7 +2097,7 @@ own design. The templating language used is Mustach, and the templates
are in the @code{share/taler/merchant/templates/} directory.
@node Static files,Internationalization,Mustach HTML Templates,Customization
-@anchor{taler-merchant-manual static-files}@anchor{3e}
+@anchor{taler-merchant-manual static-files}@anchor{46}
@section Static files
@@ -1987,7 +2107,7 @@ logic to load a CSS file, but you can also put other resources such as
images or JavaScript.
@node Internationalization,Limitations,Static files,Customization
-@anchor{taler-merchant-manual internationalization}@anchor{3f}
+@anchor{taler-merchant-manual internationalization}@anchor{47}
@section Internationalization
@@ -2004,7 +2124,7 @@ returned. Otherwise, an internationalized file based on the language
preferences indicated by the browser is returned.
@node Limitations,,Internationalization,Customization
-@anchor{taler-merchant-manual limitations}@anchor{40}
+@anchor{taler-merchant-manual limitations}@anchor{48}
@section Limitations
@@ -2023,7 +2143,7 @@ template expansion, and does not make use of scopes and other Mustach
features.
@node Upgrade procedure,Advanced topics,Customization,Top
-@anchor{taler-merchant-manual upgrade-procedure}@anchor{41}
+@anchor{taler-merchant-manual upgrade-procedure}@anchor{49}
@chapter Upgrade procedure
@@ -2051,7 +2171,7 @@ REVOKE the database permissions. Finally, restart the merchant services
processes, either via your systemd or init system, or directly.
@node Advanced topics,Temporarily Abandoned Features,Upgrade procedure,Top
-@anchor{taler-merchant-manual advanced-topics}@anchor{42}
+@anchor{taler-merchant-manual advanced-topics}@anchor{4a}
@chapter Advanced topics
@@ -2064,14 +2184,14 @@ processes, either via your systemd or init system, or directly.
@end menu
@node taler-config,Using taler-config,,Advanced topics
-@anchor{taler-merchant-manual taler-config}@anchor{43}
+@anchor{taler-merchant-manual taler-config}@anchor{4b}
@section taler-config
@geindex taler-config
@node Using taler-config,Database Scheme,taler-config,Advanced topics
-@anchor{taler-merchant-manual using-taler-config}@anchor{44}
+@anchor{taler-merchant-manual using-taler-config}@anchor{4c}
@section Using taler-config
@@ -2125,7 +2245,7 @@ While the configuration file is typically located at
GNU Taler component using the @code{-c} option.
@node Database Scheme,Benchmarking,Using taler-config,Advanced topics
-@anchor{taler-merchant-manual database-scheme}@anchor{45}@anchor{taler-merchant-manual merchantdatabasescheme}@anchor{46}
+@anchor{taler-merchant-manual database-scheme}@anchor{4d}@anchor{taler-merchant-manual merchantdatabasescheme}@anchor{4e}
@section Database Scheme
@@ -2141,7 +2261,7 @@ The database scheme used by the merchant looks as follows:
@image{taler-merchant-figures/merchant-db,,,,png}
@node Benchmarking,,Database Scheme,Advanced topics
-@anchor{taler-merchant-manual benchmarking}@anchor{47}@anchor{taler-merchant-manual merchantbenchmarking}@anchor{48}
+@anchor{taler-merchant-manual benchmarking}@anchor{4f}@anchor{taler-merchant-manual merchantbenchmarking}@anchor{50}
@section Benchmarking
@@ -2173,7 +2293,7 @@ See Taler Exchange Manual for how to use @code{taler-unified-setup.sh} to setup
@end menu
@node Running taler-merchant-benchmark,,,Benchmarking
-@anchor{taler-merchant-manual running-taler-merchant-benchmark}@anchor{49}
+@anchor{taler-merchant-manual running-taler-merchant-benchmark}@anchor{51}
@subsection Running taler-merchant-benchmark
@@ -2217,8 +2337,12 @@ second gives the chance to leave some payments unaggregated, and also to
use merchant instances other than the default (which is, actually, the
one used by default by the tool).
-Note: the ability of driving the aggregation policy is useful for testing
+@cartouche
+@quotation Note
+The ability to drive the aggregation policy is useful for testing
the back-office facility.
+@end quotation
+@end cartouche
Any subcommand is also equipped with the canonical @code{--help} option, so
feel free to issue the following command in order to explore all the
@@ -2255,7 +2379,7 @@ option:
@end itemize
@node Temporarily Abandoned Features,Index,Advanced topics,Top
-@anchor{taler-merchant-manual temporarily-abandoned-features}@anchor{4a}
+@anchor{taler-merchant-manual temporarily-abandoned-features}@anchor{52}
@chapter Temporarily Abandoned Features
@@ -2265,7 +2389,7 @@ option:
@end menu
@node Installing Taler using Docker,,,Temporarily Abandoned Features
-@anchor{taler-merchant-manual installing-taler-using-docker}@anchor{4b}
+@anchor{taler-merchant-manual installing-taler-using-docker}@anchor{53}
@section Installing Taler using Docker