summaryrefslogtreecommitdiff
path: root/developers.html.j2
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2017-02-10 15:47:01 +0100
committerChristian Grothoff <christian@grothoff.org>2017-02-10 16:53:52 +0100
commit292c01116ff0c6acd34ade5c186b9c981ee52fee (patch)
tree570da036c01e2d66eba4af9eefbcaa542ffcc479 /developers.html.j2
parent706be64b63b06d422e48f64ff381e81efce61f24 (diff)
downloadwww-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.j2277
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 &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>
+ 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>
+ 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>