exchange

Base system with REST service to issue digital coins, run by the payment service provider
Log | Files | Refs | Submodules | README | LICENSE

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/.