README (3356B)
1 About 2 ===== 3 4 This is the GNU Taler merchant backend. It provides the logic that should run 5 at every GNU Taler merchant. The GNU Taler merchant is a RESTful backend that 6 can be used to setup orders and process payments. This component allows 7 merchants to receive payments without invading the customers' privacy. Of 8 course, this applies mostly for digital goods, as the merchant does not need 9 to know the customer's physical address. 10 11 A general-purpose merchant back-office single-page (HTML/JavaScript) 12 application is also included (alas, the source code for it is in another Git 13 repository). 14 15 This merchant backend must be combined with a merchant frontend, such as 16 an e-commerce application. You can find a WooCommerce plugin, a snack 17 machine integration (taler-mdb) and various demonstrator front-ends at 18 https://git.taler.net/. 19 20 21 Upgrading to v0.16 22 ================== 23 24 Upgrading a taler-merchant-httpd < 0.15 to >= 0.16 requires stopping the 25 existing service and running taler-merchant-dbinit to upgrade the database 26 schema. The migration will be done in one LARGE transaction that can take 27 several minutes. If the existing database has non-trivial amounts of data, 28 that transaction is likely to run into a PostgreSQL error "out of shared 29 memory" with the default PostgreSQL database settings. It is thus recommended 30 to set 31 32 max_locks_per_transaction = 512 33 max_pred_locks_per_transaction = 512 34 35 (and restart the database) if this problem is encountered. 36 The values can afterwards be lowered again for production. 37 38 39 Joining GNU 40 =========== 41 42 This is a GNU program, developed by the GNU Project and part of the 43 GNU Operating System. If you are the author of an awesome program and 44 want to join us in writing Free Software, please consider making it an 45 official GNU program and become a GNU maintainer. You can find 46 instructions on how to do so at http://www.gnu.org/help/evaluation. 47 We are looking forward to hacking with you! 48 49 50 Dependencies: 51 ============= 52 53 Build tools for compiling Taler merchant from source: 54 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 55 56 - gcc or clang 57 - autoconf >= 2.69 (building from git) 58 - automake >= 1.11.1 (building from git) 59 - recutils >= 1.0 (building from git) 60 - libtool >= 2.2 61 - makeinfo >= 4.8 62 - make[*3] 63 - pkgconf or pkg-config 64 - sphinx 65 - sphinx-rtd-theme 66 - sphinx-multiversion 67 68 69 Direct dependencies 70 ~~~~~~~~~~~~~~~~~~~ 71 72 These are the direct dependencies for running a Taler exchange: 73 74 - GNU Taler exchange >= 0.16.0 75 - PostgreSQL >= 15.0 76 - libqrencode 77 78 79 Project structure 80 ================= 81 82 src/backend/ 83 contains the "backend", a C piece of software which implements crypto routines 84 and communication with the 'exchange' 85 86 src/backenddb/ 87 contains the database interactions (for now only PostgreSQL) 88 89 src/lib/ 90 contains a C API to talk to the REST API of merchant backend 91 92 src/util/ 93 common utility functions 94 95 src/bank/ 96 utility functions to talk to the Taler bank revenue API to 97 reconcile transactions 98 99 src/merchant-tools/ 100 contains helper programs to setup or manipulate the merchant backend 101 102 src/testing/ 103 contains test cases for the merchant backend 104 105 doc/ 106 contains documentation files, like TeXinfo 107 108 contrib/ 109 contains the single-page-app (Web interface) as a submodule, 110 as well as CI/CD logic.