README (3933B)
1 Welcome to GNU Taler 2 -------------------- 3 4 What is Taler? 5 ============== 6 7 Taler is an electronic payment system providing the ability to pay 8 anonymously using digital cash. Taler consists of a network protocol 9 definition (using a RESTful API over HTTP), a Exchange (which creates 10 digital coins), a Wallet (which allows customers to manage, store and 11 spend digital coins), and a Merchant website which allows customers to 12 spend their digital coins. Naturally, each Merchant is different, but 13 Taler includes code examples to help Merchants integrate Taler as a 14 payment system. 15 16 Taler is currently developed by a worldwide group of independent free software 17 developers and Taler Systems SA. Taler is free software and an official GNU 18 package (https://www.gnu.org/). 19 20 This is an alpha release with a few known bugs, lacking a few important 21 features, documentation, testing, performance tuning and an external security 22 audit. However, you can run the code and it largely works fine. This package 23 also only includes the Taler exchange, not the other components of the system. 24 25 Documentation about Taler can be found at https://taler.net/. 26 Our bug tracker is at https://bugs.taler.net/. 27 28 29 Joining GNU 30 =========== 31 32 This is a GNU program, developed by the GNU Project and part of the 33 GNU Operating System. If you are the author of an awesome program and 34 want to join us in writing Free Software, please consider making it an 35 official GNU program and become a GNU maintainer. You can find 36 instructions on how to do so at http://www.gnu.org/help/evaluation. 37 We are looking forward to hacking with you! 38 39 40 Dependencies: 41 ============= 42 43 Build tools for compiling Taler exchange from source: 44 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 45 46 - gcc or clang 47 - autoconf >= 2.69 (building from git) 48 - automake >= 1.11.1 (building from git) 49 - recutils >= 1.0 (building from git) 50 - libtool >= 2.2 51 - makeinfo >= 4.8 52 - make[*3] 53 - pkgconf or pkg-config 54 - sphinx 55 - sphinx-rtd-theme 56 - sphinx-multiversion 57 58 Direct dependencies 59 ~~~~~~~~~~~~~~~~~~~ 60 61 These are the direct dependencies for running a Taler exchange: 62 63 - GNUnet >= 0.23.3 64 - GNU libmicrohttpd >= 0.9.71 65 - PostgreSQL >= 15.0 66 67 68 Project structure 69 ================= 70 71 The project structure is currently as follows: 72 73 src/include/ 74 -- installed headers for public APIs 75 76 src/util/ 77 -- common utility functions (currency representation, 78 Taler-specific cryptography, Taler-specific json 79 support) 80 81 src/pq/ 82 -- Postgres-specific utility functions 83 84 src/exchangedb/ 85 -- Exchange database backend (with database-specific plugins) 86 87 src/exchange/ 88 -- taler exchange server 89 90 src/exchange-tools/ 91 -- taler exchange helper programs 92 93 src/lib/ 94 -- libtalerexchange: C API to issue HTTP requests to exchange. 95 Note that this library is not thread safe. 96 97 src/auditor/ 98 -- tools to generate reports about financial performance and 99 to validate that the exchange has been operating correctly 100 101 src/auditordb/ 102 -- database logic for the auditor component (with database-specific 103 plugins) 104 105 src/benchmark/ 106 -- tool to run performance measurements 107 108 src/templating/ 109 -- logic to generate HTML pages from templates at runtime 110 111 src/kyclogic/ 112 -- core logic and plugins to trigger and manage KYC processes 113 as required by banking regulation 114 115 src/bank-lib/ 116 -- bank REST client logic and implementation of an in-memory 117 RTGS emulator ("fakebank") for testing. 118 119 src/extensions/ 120 -- extensions to the core logic of an exchange 121 122 src/json/ 123 -- helper functions for generating and parsing JSON 124 125 src/mhd/ 126 -- helper functions for interacting with GNU libmicrohttpd 127 128 src/curl/ 129 -- helper functions for interacting with libcurl 130 131 132 Getting Started 133 =============== 134 135 Please follow the exchange manual you can view after 136 installing using 137 138 $ info taler-exchange 139 140 or by visiting https://docs.taler.net/.