diff options
author | Christian Grothoff <christian@grothoff.org> | 2017-02-10 15:47:01 +0100 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2017-02-10 16:53:52 +0100 |
commit | 292c01116ff0c6acd34ade5c186b9c981ee52fee (patch) | |
tree | 570da036c01e2d66eba4af9eefbcaa542ffcc479 /developers.html.j2 | |
parent | 706be64b63b06d422e48f64ff381e81efce61f24 (diff) | |
download | www-292c01116ff0c6acd34ade5c186b9c981ee52fee.tar.gz www-292c01116ff0c6acd34ade5c186b9c981ee52fee.tar.bz2 www-292c01116ff0c6acd34ade5c186b9c981ee52fee.zip |
updates to pages based on discussions with Leon and Sva
Diffstat (limited to 'developers.html.j2')
-rw-r--r-- | developers.html.j2 | 277 |
1 files changed, 145 insertions, 132 deletions
diff --git a/developers.html.j2 b/developers.html.j2 index 9d62052d..f6023274 100644 --- a/developers.html.j2 +++ b/developers.html.j2 @@ -20,32 +20,37 @@ <h2>{{ _("Free") }}</h2> <p>{{ _("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 exchange, 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> + 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 + exchange, 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> + </div> <div class="col-lg-6"> <h2>{{ _("RESTful") }}</h2> <p>{{ _("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='https://api.taler.net/'>here</a>. - ") }}</p> + 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='https://api.taler.net/'>here</a>. + ") }}</p> + </div> </div> <div class="row"> @@ -53,32 +58,33 @@ <h2>{{ _("Code") }}</h2> <p>{{ _("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='https://git.taler.net/'>GitWeb</a>. - ") }}</p> + research team at Inria and GNUnet e.V. 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='https://git.taler.net/'>GitWeb</a>. + ") }}</p> + </div> <div class="col-lg-4"> <h2>{{ _("Documentation") }}</h2> <p>{{ _("In addition to this website, - the <a href='https://git.taler.net/'>documented - code</a> and the <a href='https://api.taler.net/'>API - documentation</a>, we are in the process of preparing a - comprehensive design document which will be published here - soon. - ") }}</p> + the <a href='https://git.taler.net/'>documented + code</a> and + the <a href='https://api.taler.net/'>API + documentation</a>, we are in the process of + preparing a comprehensive design document which + will be published here soon. ") }}</p> </div> <div class="col-lg-4"> <h2>{{ _("Discussion") }}</h2> <p>{{ _("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> + 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> @@ -86,130 +92,137 @@ <div class="col-lg-4"> <h2>{{ _("Regression Testing") }}</h2> - <p>{{ _("We - have <a href='https://buildbot.net/'>Buildbot</a> - automation tests to detect regressions and check for - portability at + <p>{{ _("We have + <a href='https://buildbot.net/'>Buildbot</a> + automation tests to detect regressions and check + for portability at <a href='https://buildbot.taler.net/'>buildbot.taler.net</a>. ") }}</p> </div> <div class="col-lg-4" note="not yet operational"> <h2>{{ _("Code Coverage Analysis") }}</h2> - <p>{{ _("We - use <a href='http://ltp.sourceforge.net/coverage/lcov.php'>LCOV</a> - to analyze the code coverage of our tests, the results are - available - at <a href='https://lcov.taler.net/'>lcov.taler.net</a>. - ") }}</p> + <p>{{ _("We use + <a href='http://ltp.sourceforge.net/coverage/lcov.php'>LCOV</a> + to analyze the code coverage of our tests, the + results are available + at <a href='https://lcov.taler.net/'>lcov.taler.net</a>. + ") }}</p> </div> <div class="col-lg-4"> <h2>{{ _("Performance Analysis") }}</h2> <p>{{ _("We - use <a href='https://gnunet.org/gauger'>Gauger</a> for - performance regression analysis of the exchange backend - at <a href='https://gauger.taler.net/'>gauger.taler.net</a>. - ") }}</p> + use <a href='https://gnunet.org/gauger'>Gauger</a> + for performance regression analysis of the exchange + backend + at <a href='https://gauger.taler.net/'>gauger.taler.net</a>. + ") }}</p> </div> </div> <div class="col-lg-12"> <h2 id="overview">{{ _("Taler system overview") }}</h2> - <p>{{ _("The Taler system consists of protocols executed - among a number of actors with the help - of <a href='https://www.fsf.org/'>Free Software</a> as - illustrated in the illustration on the right. Typical - transactions involve the following steps: - ") }}</p> + <p>{{ _("The Taler system consists of protocols executed among + a number of actors with the help + of <a href='https://www.fsf.org/'>Free Software</a> + as illustrated in the illustration on the right. + Typical transactions involve the following steps: ") + }}</p> <img src="{{ url('images/system.svg') }}" alt="system overview" style="float: right; margin: 50px 5px 5px 5px;" width="50%"> <ol> <li>{{ _("A customer instructs his <b>bank</b> to - transfer funds from his account to the Taler exchange - (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 exchange. - ") }}</li> - - <li>{{ _("Once the exchange 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 - currency from the transfer. It is important to note - that the exchange does not learn the "serial numbers" - of the coins created 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 - exchange may charge for the service). - ") }}</li> - - <li>{{ _("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 exchange as a - business partner (bottom arrow). This creates a digital - contract signed by the customer's coins and the - merchant. If necessary, 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> + transfer funds from his account to the Taler + exchange (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 exchange. ") }}</li> + + <li>{{ _("Once the exchange has received the wire + transfer, it allows the customer's electronic + wallet to <b>withdraw</b> electronic coins. + The electronic coins are digital + representations of the original currency from + the transfer. It is important to note that the + exchange does not learn the "serial + numbers" of the coins created 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 + exchange may charge for the service). ") + }}</li> + + <li>{{ _("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 exchange as a business partner + (bottom arrow). This creates a digital contract + signed by the customer's coins and the + merchant. If necessary, 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>{{ _("Merchants receiving digital - coins <b>deposit</b> the respective receipts that - resulted from the contract signing with the customer at - the exchange to redeem the coins. The deposit step - does not reveal the details of the contract between the - customer and the merchant or the identity of the - customer to the exchange in any way. However, the - exchange 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 exchange's database allows the - state to enforce that merchants pay applicable taxes - (and do not engage in illegal contracts). - ") }}</li> + coins <b>deposit</b> the respective receipts + that resulted from the contract signing with + the customer at the exchange to redeem the + coins. The deposit step does not reveal the + details of the contract between the customer + and the merchant or the identity of the + customer to the exchange in any way. However, + the exchange 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 exchange's database + allows the state to enforce that merchants pay + applicable taxes (and do not engage in illegal + contracts). ") }}</li> <li>{{ _("Finally, the exchange transfers funds - corresponding to the digital coins redeemed by the - merchants to the merchant's <b>bank</b> account. The - exchange may combine multiple small transactions into - one larger bank transfer. The merchant can query the - exchange about the relationship between the bank - transfers and the individual claims that were - deposited. - ") }}</li> + corresponding to the digital coins redeemed by + the merchants to the merchant's <b>bank</b> + account. The exchange may combine multiple + small transactions into one larger bank + transfer. The merchant can query the exchange + about the relationship between the bank + transfers and the individual claims that were + deposited. ") }}</li> <li>{{ _("Most importantly, the exchange 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 exchange's databases and check that - its bank balance matches the total value of the - remaining coins in circulation. - ") }}</li> + 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 exchange's databases + and check that its bank balance matches the + total value of the remaining coins in + circulation. ") }}</li> <li>{{ _("Without the auditor, the exchange operators - could embezzle funds they are holding in - reserve. Customers and merchants cannot cheat each - other or the exchange. 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> + could embezzle funds they are holding in + reserve. Customers and merchants cannot cheat + each other or the exchange. 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> </ol> <p></p> </div> |