taler-docs

Documentation for GNU Taler components, APIs and protocols
Log | Files | Refs | README | LICENSE

regional-manual-architecture.rst (1948B)


      1 Architecture
      2 ============
      3 
      4 There are several key components needed to operate a regional currency based
      5 on GNU Taler and LibEuFin technology:
      6 
      7 - LibEuFin Nexus: is responsible to drive the master (fiat) bank account both to learn
      8   about incoming payments and to send fiat cash-out payments
      9 - LibEuFin Bank: offers basic banking operations, e.g. wire transfers, Taler withdrawals,
     10   account management, cash-out's
     11 - Taler exchange: server side of Taler operations.
     12 - Taler wallet: client side of Taler operations.
     13 - Taler merchant backend: abstracts Taler details to the shops.
     14 
     15 .. image:: ../images/regional-currency-architecture-diagram.png
     16 
     17 In this model, the regional currency is backed by the fiat currency and users
     18 are offered two operations: *cash-in* to create regional currency starting
     19 from fiat money, and *cash-out* to convert regional currency into fiat
     20 currency.
     21 
     22 The design assumes that one single unit of regional currency is always backed
     23 by one single unit of fiat currency.
     24 
     25 
     26 Cash-in
     27 +++++++
     28 
     29 One fundamental entity to create the regional currency is the *master bank account*.
     30 The master bank account is hosted at one fiat bank and whenever it receives a *valid*
     31 fiat payment of N units, it triggers the creation of N units of regional currency.
     32 Such trigger causes the *admin bank account* at the regional bank to wire the N units of
     33 regional currency to the Taler exchange (regional) bank account.  At this point, the
     34 Taler exchange is ready to issue the regional coins to the Taler wallet that proves
     35 to own them.
     36 
     37 .. note::
     38 
     39    *Valid* fiat payments are those with a Taler-relevant subject that should be generated by a Taler wallet.
     40 
     41 
     42 Cash-out
     43 ++++++++
     44 
     45 Once a regional bank user confirms a cash-out operation of N units, the system sends
     46 a regional payment of N units to the *admin bank account*.  This latter triggers then
     47 a fiat payment of N units to the fiat bank account owned by the user who initiated the
     48 cash-out.