summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcello Stanisci <marcello.stanisci@inria.fr>2016-12-14 15:08:47 +0100
committerMarcello Stanisci <marcello.stanisci@inria.fr>2016-12-14 15:08:47 +0100
commit7d56af28f8e9430efa11fe4d5769471dd273c144 (patch)
tree00e1003ce39033aff7eed82504cb62d96112ab90
parentb8c80155496d5f27db08905a55beb617619cfe3f (diff)
downloaddocs-7d56af28f8e9430efa11fe4d5769471dd273c144.tar.gz
docs-7d56af28f8e9430efa11fe4d5769471dd273c144.tar.bz2
docs-7d56af28f8e9430efa11fe4d5769471dd273c144.zip
Merchant design and merchant build instructions
-rw-r--r--dev-merchant.rst30
-rw-r--r--operate-merchant.rst74
2 files changed, 86 insertions, 18 deletions
diff --git a/dev-merchant.rst b/dev-merchant.rst
index faa2a28..275c548 100644
--- a/dev-merchant.rst
+++ b/dev-merchant.rst
@@ -16,26 +16,22 @@
Merchant
========
-------------
-Introduction
-------------
-TBD
-
.. _merchant-arch:
-
------
Design
------
-TO REVIEW::
+In order for a merchant to be Taler-compatible, they need to run two distinct Web
+services: a *frontend* and a *backend*. The former is typically the Web site where
+the merchant exposes their goods, whereas the latter is a C program in charge of
+making all the Taler-related cryptography.
+
+In details, the frontend gathers all the information from customers about sales,
+and forwards it to the backend via its RESTful API. Typically, the backend will either
+cryptographically process this data or just forward it to the exchange.
+
+That saves the frontend developers from dealing with cryptography in scripting
+languages and from commmunicating at all with any exchange.
- The 'frontend' is the existing shopping portal of the merchant.
- The architecture tries to minimize the amount of modifications necessary
- to the `frontend` as well as the trust that needs to be placed into the
- `frontend` logic. Taler requires the frontend to facilitate two
- JSON-based interactions between the wallet and the `backend`, and
- one of those is trivial.
-
- The 'backend' is a standalone C application intended to implement all
- the cryptographic routines required to interact with the Taler wallet
- and a Taler exchange.
+Additionally, the backend RESTful API is such that a frontend might be run completely
+database-less.
diff --git a/operate-merchant.rst b/operate-merchant.rst
index d510311..feb88d0 100644
--- a/operate-merchant.rst
+++ b/operate-merchant.rst
@@ -188,4 +188,76 @@ This information is optional, and if not given, the backend will act as the `def
Installation
++++++++++++
-TBD
+Please install the following packages before proceeding with the backend compilation.
+
+* autoconf >= 2.69
+* automake >= 1.14
+* libtool >= 2.4
+* autopoint >= 0.19
+* libltdl >= 2.4
+* libunistring >= 0.9.3
+* libcurl >= 7.26 (or libgnurl >= 7.26)
+* GNU libmicrohttpd >= 0.9.39
+* GNU libgcrypt >= 1.6
+* libjansson >= 2.7
+* Postgres >= 9.4, including libpq
+* libgnunetutil (from Git)
+* GNU Taler exchange (from Git)
+
+Except for the last two, these are available in most GNU/Linux
+distributions and should just be installed using the respective
+package manager.
+
+The following instructions will show how to install libgnunetutil and
+the GNU Taler exchange.
+
+
+Before you install libgnunetutil, you must download and install the
+dependencies mentioned above, otherwise the build may succeed but fail
+to export some of the tooling required by Taler.
+
+To download and install libgnunetutil, proceed as follows::
+
+ $ git clone https://gnunet.org/git/gnunet/
+ $ cd gnunet/
+ $ ./bootstrap
+ $ ./configure [--prefix=GNUNETPFX]
+ $ # Each dependency can be fetched from non standard locations via
+ $ # the '--with-<LIBNAME>' option. See './configure --help'.
+ $ make
+ # make install
+
+
+If you did not specify a prefix, GNUnet will install to
+``/usr/local``, which requires you to run the last step as
+``root``.
+
+To download and install the GNU Taler exchange, proceeds as follows::
+
+ $ git clone git://taler.net/exchange
+ $ cd exchange
+ $ ./bootstrap
+ $ ./configure [--prefix=EXCHANGEPFX] \
+ [--with-gnunet=GNUNETPFX]
+ $ # Each dependency can be fetched from non standard locations via
+ $ # the '--with-<LIBNAME>' option. See './configure --help'.
+ $ make
+ # make install
+
+If you did not specify a prefix, the exchange will install to
+``/usr/local``, which requires you to run the last step as
+``root``. Note that you have to specify ``--with-gnunet=/usr/local``
+if you installed GNUnet to ``/usr/local`` in the previous step.
+
+Finally, we can build the merchant backend using the following commands::
+
+ $ git clone git://taler.net/merchant
+ $ cd merchant
+ $ ./bootstrap
+ $ ./configure [--prefix=PFX] \
+ [--with-gnunet=GNUNETPFX] \
+ [--with-exchange=EXCHANGEPFX]
+ $ # Each dependency can be fetched from non standard locations via
+ $ # the '--with-<LIBNAME>' option. See './configure --help'.
+ $ make
+ $ make install