Welcome to GNU Taler -------------------- What is Taler? ============== Taler is an electronic payment system providing the ability to pay anonymously using digital cash. Taler consists of a network protocol definition (using a RESTful API over HTTP), a Exchange (which creates digital coins), a Wallet (which allows customers to manage, store and spend digital coins), and a Merchant website which allows customers to spend their digital coins. Naturally, each Merchant is different, but Taler includes code examples to help Merchants integrate Taler as a payment system. Taler is currently developed by a worldwide group of independent free software developers and Taler Systems SA. Taler is free software and an official GNU package (https://www.gnu.org/). This is an alpha release with a few known bugs, lacking a few important features, documentation, testing, performance tuning and an external security audit. However, you can run the code and it largely works fine. This package also only includes the Taler exchange, not the other components of the system. Documentation about Taler can be found at https://taler.net/. Our bug tracker is at https://bugs.taler.net/. Joining GNU =========== This is a GNU program, developed by the GNU Project and part of the GNU Operating System. If you are the author of an awesome program and want to join us in writing Free Software, please consider making it an official GNU program and become a GNU maintainer. You can find instructions on how to do so at http://www.gnu.org/help/evaluation. We are looking forward to hacking with you! Dependencies: ============= Build tools for compiling Taler exchange from source: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - gcc or clang - autoconf >= 2.69 (building from git) - automake >= 1.11.1 (building from git) - recutils >= 1.0 (building from git) - libtool >= 2.2 - makeinfo >= 4.8 - make[*3] - pkgconf or pkg-config - sphinx - sphinx-rtd-theme - sphinx-multiversion Direct dependencies ~~~~~~~~~~~~~~~~~~~ These are the direct dependencies for running a Taler exchange: - GNUnet >= 0.23.0 - GNU libmicrohttpd >= 0.9.71 - PostgreSQL >= 15.0 Project structure ================= The project structure is currently as follows: src/include/ -- installed headers for public APIs src/util/ -- common utility functions (currency representation, Taler-specific cryptography, Taler-specific json support) src/pq/ -- Postgres-specific utility functions src/exchangedb/ -- Exchange database backend (with database-specific plugins) src/exchange/ -- taler exchange server src/exchange-tools/ -- taler exchange helper programs src/lib/ -- libtalerexchange: C API to issue HTTP requests to exchange src/auditor/ -- tools to generate reports about financial performance and to validate that the exchange has been operating correctly src/auditordb/ -- database logic for the auditor component (with database-specific plugins) src/benchmark/ -- tool to run performance measurements src/templating/ -- logic to generate HTML pages from templates at runtime src/kyclogic/ -- core logic and plugins to trigger and manage KYC processes as required by banking regulation src/bank-lib/ -- bank REST client logic and implementation of an in-memory RTGS emulator ("fakebank") for testing. src/extensions/ -- extensions to the core logic of an exchange src/json/ -- helper functions for generating and parsing JSON src/mhd/ -- helper functions for interacting with GNU libmicrohttpd src/curl/ -- helper functions for interacting with libcurl Getting Started =============== Please follow the exchange manual you can view after installing using $ info taler-exchange or by visiting https://docs.taler.net/.