summaryrefslogtreecommitdiff
path: root/developers.html.j2
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-03-06 03:50:07 +0100
committerFlorian Dold <florian.dold@gmail.com>2017-03-06 03:50:07 +0100
commit14af51dacedf00bbd460cdc1584cd9f81cb0d1f5 (patch)
treeead860a63fd22466d020ddceeaafe45d38076611 /developers.html.j2
parenta28f7615c32a9bde7cc70fd00290a8f68917f916 (diff)
downloadwww-14af51dacedf00bbd460cdc1584cd9f81cb0d1f5.tar.gz
www-14af51dacedf00bbd460cdc1584cd9f81cb0d1f5.tar.bz2
www-14af51dacedf00bbd460cdc1584cd9f81cb0d1f5.zip
conversion/text
Diffstat (limited to 'developers.html.j2')
-rw-r--r--developers.html.j2455
1 files changed, 223 insertions, 232 deletions
diff --git a/developers.html.j2 b/developers.html.j2
index f6023274..3cad801c 100644
--- a/developers.html.j2
+++ b/developers.html.j2
@@ -1,232 +1,223 @@
-<!DOCTYPE html>
-<html lang="{{ _('en') }}">
- <head>
- <meta charset="UTF-8"/>
- <title>{{ _("GNU Taler") }} - {{ _("Developers") }}</title>
- <meta name="description" content=""/>
- {% include "common/header.j2.inc" %}
- </head>
- <body>
- <div class="container">
- {% include "common/navigation.j2.inc" %}
- <!-- Jumbotron -->
- <div class="jumbotron">
- <h1>{{ _("Taler for developers") }}</h1>
- </div>
-
- <!-- Example row of columns -->
- <div class="row">
- <div class="col-lg-6">
- <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>
-
- </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>
-
- </div>
- </div>
- <div class="row">
- <div class="col-lg-4">
- <h2>{{ _("Code") }}</h2>
-
- <p>{{ _("Taler is currently primarily developed by a
- 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>
- </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>
- </div>
- </div>
-
- <div class="row">
- <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
- <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>
- </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>
- </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>
-
- <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 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 &quot;serial
- numbers&quot; 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>
-
- <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>
-
- <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>
-
- <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>
- </ol>
- <p></p>
- </div>
- {% include "common/footer.j2.inc" %}:w
- </div> <!-- /container -->
- </body>
-</html>
+{% extends "common/base.j2" %}
+{% block body_content %}
+<div class="jumbotron">
+ <div class="text-center">
+ <h1>{{ _("Taler for developers") }}</h1>
+ </div>
+</div>
+
+<div class="container">
+ <div class="row">
+ <div class="col-lg-6">
+ <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>
+
+ </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>
+
+ </div>
+ </div>
+ <div class="row">
+ <div class="col-lg-4">
+ <h2>{{ _("Code") }}</h2>
+
+ <p>{{ _("Taler is currently primarily developed by a
+ 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>
+ </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>
+ </div>
+ </div>
+
+ <div class="row">
+ <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
+ <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>
+ </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>
+ </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>
+
+ <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 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 &quot;serial
+ numbers&quot; 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>
+
+ <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>
+
+ <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>
+
+ <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>
+ </ol>
+ <p></p>
+ </div>
+ {% include "common/footer.j2.inc" %}:w
+</div> <!-- /container -->
+{% endblock body_content %}