aboutsummaryrefslogtreecommitdiff
path: root/developers.html
blob: 618472f46d7fdffb9650b98c3c97d187903c1eb7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>GNU Taler - Taxable Anonymous Libre Electronic Reserves: Developers</title>
    <meta name="description" content="">
      <!--# include file="common/header.inc" -->
  </head>
  <body class="en" onLoad="loadLang();">
    <div class="container">
      <!--# include file="common/navigation.inc" -->
      <!-- Jumbotron -->
      <div class="jumbotron">
        <h1 lang="en">Taler for developers</h1>
        <h1 lang="de">Taler f&uuml;r Entwickler</h1>
        <h1 lang="fr">Taler pour les développeurs</h1>
        <h1 lang="it">Taler per programmatori</h2>
      </div>

      <!-- Example row of columns -->
      <div class="row">
        <div class="col-lg-6">
          <h2 lang="en">Free</h2>
	  <h2 lang="de">Frei</h2>
	  <h2 lang="fr">Libre</h2>
	  <h2 lang="it">Free</h2>
          <p lang="en">Taler is free software implementing an open protocol. Anybody is welcome to inspect our code and integrate our reference implementation into their applications.
             Different components of Taler are being made available under different licenses. The Affero GPLv3+ is used for the Mint, the LGPLv3+ is used for reference
             code demonstrating integration with merchant platforms, and licenses like Apache/Mozilla/GPLv3+ are used for wallets and related customer-facing software.
             We are open for constructive suggestions for maximizing the adoption of this libre payment platform.</p>
          <p lang="de">Taler ist freie Software, welche ein offenes Protokoll
	     implementiert. Der Code ist frei verf&uuml;gbar und jeder ist
	     eingeladen unsere Referenzimplementierung in eigene Projekte zu
	     &uuml;bernehmen. Die unterschiedlichen Komponenten Talers sind unter
	     verschiedenen Lizenzen erhältlich. Die M&uuml;nzanstalt f&auml;llt unter
	     Affero GPLv3+, Referenzcode, welcher die Integration mit
	     H&auml;ndlerplattformen demonstriert, l&auml;uft unter LGPLv3+ und die
	     Geldb&ouml;rsen sowie weitere Software auf Seiten der Endkunden
	     verwenden Apache-/Mozilla- &auml;hnliche GPLv3+. Wir sind offen
	     f&uuml;r konstruktive Vorschl&auml;ge und freuen uns &uuml;ber
	     Beitr&auml;ge, welche zur weiten Verbreitung dieser freien Bezahlplattform
	     f&uuml;hren.</p>
	  <p lang="fr">Taler est un logiciel libre exécutant un protocol ouvert.
	     Vous êtes les bienvenus pour inspecter notre code et intégrer nos
	     applications référence dans vos applications. Différents composants de
	     Taler sont disponibles sous plusieurs licences. L'Affero GPLv3+ est
	     utilisé pour la monnaie, le LGPLv3+ est utilisé pour le code référence
	     montrant l'intégration sur des plateformes machandes, et des licences
	     comme Apache/Mozilla/GPLv3+ sont utilisées pour les portefeuilles et
	     le lien client-logiciel orienté. Nous sommes ouverts à toute
	     suggestion constructive pour exploiter au maximum cette plateforme de
	     paiement libre.</p>
	  <p lang="it">Taler è un free software che utilizza un protocollo aperto. Chiunque
	     è benvenuto per esaminare il nostro codice e integrare le nostre implementazioni
	     di riferimento nelle loro applicazioni. Diversi componenti di Taler sono stati
	     resi disponibili sotto diverse licenze. Affero GPLv3+ è usata per la Mint, LGPLv3+
	     per il codice di riferimento che mostra l'integrazione con la piattaforma del
	     venditore, e licenze come Apache/Mozilla/GPLv3+ sono usate per i portafogli e i
	     relativi software di interfaccia dei clienti. Siamo aperti a suggerimenti costruttivi
	     per massimizzare l'adozione di questa piattaforma di pagamento free.</p>
        </div>
        <div class="col-lg-6">
          <h2 lang="en">RESTful</h2>
	  <h2 lang="de">REST-basiert</h2>
	  <h2 lang="fr">Avec REST</h2>
	  <h2 lang="it">RESTful</h2>
	  <p lang="en">Taler is designed to work on the Internet.  To ensure
	     that Taler payments can work with restrictive network setups, Taler
	     uses a RESTful protocol over HTTP or HTTPS. Taler's security does not
	     depend upon the use of HTTPS, but obviously merchants may choose to
	     offer HTTPS for consistency and because it generally is better for
	     privacy compared to HTTP.  Taler uses JSON to encode structure data,
	     making it easy to integrate Taler with existing Web applications.
	     Taler's protocol is documented in detail <a href="http://api.taler.net/">here</a>.</p>
	  <p lang="de">Taler wurde zur Verwendung im Internet konzipiert. Um
	     sicherzustellen, dass Bezahlvorg&auml;nge mit Taler auch in
	     restriktiven Netzwerkumgebungen funktionieren k&ouml;nnen, verwendet
	     Taler ein REST-basiertes Protokoll &uuml;ber HTTP oder HTTPS. Talers
	     Sicherheit h&auml;ngt nicht von der Verwendung von HTTPS ab, aber
	     die Verwendung von HTTPS auf Seiten der H&auml;ndler sollte aus
	     Konsistenzgr&uuml;nden und aufgrund der besseren Privatsph&auml;re,
	     die HTTPS gegen&uuml;ber HTTP bietet, erfolgen. Da Taler
	     zur Kodierung von Datenstrukturen JSON verwendet, ist die
	     Integration von Taler in existierende Webapplikationen sehr
	     einfach. Das Taler-Protokoll ist im Detail <a href="http://api.taler.net/">hier</a>
	     dokumentiert.</p>
	  <p lang="fr">Taler est conçu pour fonctionner sur Internet. Afin de
	     s'asurer que les paiement Taler fonctionnent sur des installations
	     réseaux restrictives, Taler utilise le protocole RESTful sur HTTP ou
	     HTTPS. La sécurité Taler ne dépend pas de l'utilisation de HTTPS, mais
	     naturellement les commerçants voudront choisir HTTPS pour l'uniformité
	     et car c'est généralement meilleur pour la confidentialité comparé à
	     HTTP. Taler utilise JSON pour coder les données structure, rendant
	     Taler facile à intégrer avec des application Web existantes. Le
	     protocole Taler est documenté en détail <a href="http://api.taler.net/">ici</a>.</p>
	  <p lang="it">Taler è progettato per funzionare su Internet. Per assicurare che i
	     pagamenti in Taler possano funzionare con configurazioni di rete ristrette, Taler
	     usa un protocollo RESTful su HTTP o HTTPS. La sicurezza di Taler non dipende dall'uso
	     di HTTPS, ma ovviamente i venditori possono scegliere di offrire HTTPS per maggior
	     compattenza e perché è generalmente migliore per la privacy se paragonato a HTTP.
	     Taler usa JSON per codificare i dati di struttura, rendendo facile integrare Taler
	     con le già esistenti applicazioni web. Il protocollo usato da Taler è documentato
	     nel dettaglio <a href="http://api.taler.net/">qui</a>.</p>
        </div>
      </div>
      <div class="row">
        <div class="col-lg-4">
          <h2 lang="en">Code</h2>
          <h2 lang="de">Code</h2>
          <h2 lang="fr">Code</h2>
          <h2 lang="it">Codice</h2>
	  <p lang="en">Taler is currently primarily developed by a research team
	     at Inria and TU Munich. However, contributions from anyone are
	     welcome.  Our Git repositories can be cloned using the Git and HTTP
	     access methods against <tt>git.taler.net</tt> with the name of the
	     respective repository. A list of public repositories can be found in
	     our <a href="http://www.git.taler.net/">GitWeb</a>.</p>
	  <p lang="de">Taler wird aktuell haupts&auml;chlich von einer
	     Forschergruppe bei Inria und der Technischen Universit&auml;t
	     M&uuml;nchen entwickelt. Trotzdem sind Beitr&auml;ge von jedem
	     wilkommen. Unser Git-Repository kann man sowohl &uuml;ber Git als
	     auch &uuml;ber HTTP klonen, indem man auf <tt>git.taler.net</tt> mit
	     dem entsprechenden Repository-Namen zugreift. Eine Liste von
	     &ouml;ffentlichen Repositories ist in unserem
	     <a href="http://www.git.taler.net/">GitWeb</a> zu finden.</p>
	  <p lang="fr">Taler est actuellement principalement développé par une
	     équipe de recherche à Inria et TU Munich. Néanmoins, les contributions
	     de tous sont les bienvenues. Notre Stockage Git peut être cloné en
	     utilisant les méthodes d'accès Git et HTTP sur <tt>git.taler.net</tt>
	     avec le nom du stockage respectif. Une liste des lieux de stockage
	     publics se trouve sur notre <a href="http://www.git.taler.net/">GitWeb</a>.</p>
	  <p lang="it">Attualmente Taler è principalmente sviluppato da un team di ricercatori
	     di Inria e TU Munich. Comunque, sono ben accetti contributi da parte di chiunque.
	     Le nostre repository di Git possono essere clonate applicando il metodo d'accesso di
	     Git e HTTP su questo link <tt>git.taler.net</tt>, con il nome della corrispettiva
	     repository. Una lista delle repository pubbiche può essere trovata al nostro
	     <a href="http://www.git.taler.net/">GitWeb</a>.</p>
        </div>
        <div class="col-lg-4">
          <h2 lang="en">Documentation</h2>
	  <h2 lang="de">Dokumentation</h2>
	  <h2 lang="fr">Documentation</h2>
	  <h2 lang="it">Documentazione</h2>
          <p lang="en">In addition to this website, the <a href="http://www.git.taler.net/">documented code</a>
             and the <a href="http://api.taler.net/">API documentation</a>, we are in the process of
             preparing a comprehensive design document which will be published here soon.</p>
          <p lang="de">Zus&auml;tzlich zu dieser Webseite, dem <a href="http://www.git.taler.net/">dokumentierten Code</a>
             und der <a href="http://api.taler.net/">API-Dokumentation</a>
	     bereiten wir ein umfassendes Design-Dokument vor, welches in
	     K&uuml;rze hier verf&uuml;gbar sein wird.</p>
	  <p lang="fr">En supplément de ce site web, le
	     <a href="http://www.git.taler.net/">documented code</a> et l'<a href="http://api.taler.net/">API documentation</a>, nous
	     préparons un document exhaustif qui sera publié ici prochainement.</p>
	  <p lang="it">Oltre a questo sito, il <a href="http://www.git.taler.net/">codice documentato</a>,
	     e la <a href="http://api.taler.net/">documentazione API</a>, siamo preparando un
	     documento integrale di progettazione che sarà presto pubblicato qui.</p>
        </div>
         <div class="col-lg-4">
          <h2 lang="en">Discussion</h2>
	  <h2 lang="de">Diskussion</h2>
	  <h2 lang="fr">Discussion</h2>
	  <h2 lang="it">Discurssione</h2>
          <p lang="en">We have a mailinglist for developer discussions.
            You can subscribe to it or read the list archive at
            <a href="http://lists.gnu.org/mailman/listinfo/taler">http://lists.gnu.org/mailman/listinfo/taler</a>.</p>
          <p lang="de">Wir haben eine Mailingliste f&uuml;r Diskussionen mit den Entwicklern.
            Die Webseite der Liste zum eintragen als auch das Listenarchiv sind hier:
            <a href="http://lists.gnu.org/mailman/listinfo/taler">http://lists.gnu.org/mailman/listinfo/taler</a>.</p>
          <p lang="fr">Nous avons une liste pour le discours public des developers.
            On peut s'inscrire ou lire les archives à
            <a href="http://lists.gnu.org/mailman/listinfo/taler">http://lists.gnu.org/mailman/listinfo/taler</a>.</p>
          <p lang="it">We have a mailinglist for developer discussions.
            You can subscribe to it or read the list archive at
            <a href="http://lists.gnu.org/mailman/listinfo/taler">http://lists.gnu.org/mailman/listinfo/taler</a>.</p>
        </div>
      </div>
      <div class="col-lg-12">
        <h2 lang="en" id="overview">Taler system overview</h1>
        <h2 lang="de">Das Taler-System im &Uuml;berblick</h1>
        <h2 lang="fr" note="outdated"></h2>
        <h2 lang="it" note="outdated"></h2>
        <p lang="en">The Taler system consists of protocols and free software
          implementations between a number of actors as illustrated in the
          illustration on the right.  Typical transactions involve the following steps:
        </p>
        <p lang="de" note="outdated"></p>
        <p lang="fr" note="outdated"></p>
        <p lang="it" note="outdated"></p>
        <p>
          <img src="images/system.svg" alt="system overview" style="float: right; margin: 50px 5px 5px 5px;" width="50%">
          <ol>
             <li lang="en">A customer instructs his <b>bank</b> to transfer funds
               from his account to the Taler mint (top left).  In the subject of
               the transaction, he includes an authentication token from his
               electronic <b>wallet</b>. In Taler terminology, the customer
               creates a reserve at the mint.</li>
             <li lang="de" note="outdated"></li>
             <li lang="fr" note="outdated"></li>
             <li lang="it" note="outdated"></li>
             <li lang="en">Once the mint has received the transfer, it allows the
               customer's electronic wallet to <b>withdraw</b> electronic coins.
               The electronic coins are digital representations of the original
               transfer. It is important to note that the mint does not learn
               the "serial numbers" of the coins in this process, so it cannot
               tell later which customer purchased what at which merchant.
               The use of Taler does not change the currency or the
               total value of the funds (except for fees which the mint may
               charge for the service).</li>
             <li lang="de" note="outdated"></li>
             <li lang="fr" note="outdated"></li>
             <li lang="it" note="outdated"></li>
             <li lang="en">Once the customer has the digital coins in his wallet,
               the wallet can be used to <b>spend</b> the coins with merchant
               portals that support the Taler
               payment system and accept the respective mint as a business
               partner (bottom arrow). This creates a digital contract signed
               by the customer's coins and the merchant. Assuming courts accept
               cryptographic signatures, the customer can later use this digitally
               signed contract in a court of law to prove the exact terms of
               the contract and that he paid the respective amount. The customer
               does not learn the banking details of the merchant, and Taler
               does not require the merchant to learn the identity of the
               customer. Naturally, the customer can spend any fraction of his
               digital coins (the system takes care of customers getting
               change).</li>
             <li lang="de" note="outdated"></li>
             <li lang="fr" note="outdated"></li>
             <li lang="it" note="outdated"></li>
             <li lang="en">Merchants receiving digital coins <b>deposits</b>
               the respective receipts that resulted from the contract signing
               with the customer at the mint to redeem the coins.
               The deposit step does not reveal the learn the details of the
               contract between the customer and the merchant or the identity
               of the customer to the mint in any way. However, the mint
               does learn the identity of the merchant via the provided bank
               routing information.  The merchant can, for example when
               compelled by the state for taxation, provide information linking
               the individual deposit to the respective contract signed by the
               customer. Thus, the mint's database allows the state to enforce
               that merchants pay applicable taxes (and do not engage in
               illegal contracts).</li>
             <li lang="de" note="outdated"></li>
             <li lang="fr" note="outdated"></li>
             <li lang="it" note="outdated"></li>
             <li lang="en">Finally, the mint transfers funds corresponding to
               the digital coins redeemed by the merchants to the merchant's
               <b>bank</b> account. The mint may combine multiple small
               transactions into one larger bank transfer.
               The merchant can query the mint
               about the relationship between the bank transfers and the
               individual claims that were deposited.</li>
             <li lang="de" note="outdated"></li>
             <li lang="fr" note="outdated"></li>
             <li lang="it" note="outdated"></li>
             <li lang="en">Most importantly, the mint keeps cryptographic
               proofs that allow it to demonstrate that it is operating
               correctly to third parties.  The system requires an external
               <b>auditor</b>, such as a government-appointed financial regulatory
               body, to frequently verify the mint's databases and check that
               its bank balance matches the total value of the remaining coins
               in circulation.</li>
             <li lang="de" note="outdated"></li>
             <li lang="fr" note="outdated"></li>
             <li lang="it" note="outdated"></li>
             <li lang="en">Without the auditor, the mint operators could
               steal funds they are holding in reserve. Customers and merchants
               cannot cheat each other or the mint. If any party's computers
               are compromised, the financial damage is limited to the
               respective party and proportional to the funds they
               have in circulation during the period of the compromise.</li>
             <li lang="de" note="outdated"></li>
             <li lang="fr" note="outdated"></li>
             <li lang="it" note="outdated"></li>
           </ol>
         </p>
       </div>
      <!--# include file="common/footer.inc" -->
    </div> <!-- /container -->
  </body>
</html>