diff options
-rw-r--r-- | dev-merchant.rst | 30 | ||||
-rw-r--r-- | operate-merchant.rst | 74 |
2 files changed, 86 insertions, 18 deletions
diff --git a/dev-merchant.rst b/dev-merchant.rst index faa2a28c..275c5481 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 d5103115..feb88d02 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 |