summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2020-02-24 14:22:41 +0100
committerChristian Grothoff <christian@grothoff.org>2020-02-24 14:22:41 +0100
commit7653b8cdeecd79ff38adf310ee9042190288999d (patch)
treedc71fc43369291100afa34d725718d2d9e9d8095
parent3fb8954d50784190c44496c17f616ffc5034e7fe (diff)
downloadwww-7653b8cdeecd79ff38adf310ee9042190288999d.tar.gz
www-7653b8cdeecd79ff38adf310ee9042190288999d.tar.bz2
www-7653b8cdeecd79ff38adf310ee9042190288999d.zip
add links to buildbot and lcov results to docs page
-rw-r--r--icons/buildbot.svg13
-rw-r--r--template/developers.html.j2300
-rw-r--r--template/docs.html.j216
3 files changed, 29 insertions, 300 deletions
diff --git a/icons/buildbot.svg b/icons/buildbot.svg
new file mode 100644
index 00000000..23ae6c0e
--- /dev/null
+++ b/icons/buildbot.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="300" height="300" fill-rule="evenodd" aria-label="Nut" stroke-width="5" stroke="#000" stroke-linejoin="round">
+ <defs>
+ <linearGradient id="a" x1="61.3" x2="61.3" y1="31.7" y2="194.3" gradientTransform="matrix(1.28514 0 0 .76264 1.5 .5)" gradientUnits="userSpaceOnUse">
+ <stop offset="0%" stop-color="#8da6d8"/>
+ <stop offset="100%" stop-color="#2e5cb8"/>
+ </linearGradient>
+ </defs>
+ <path d="M10.7 205.4v-43l101.9 91.5v42.5z" fill="#24478f" stroke-width="4.9"/>
+ <path d="M112.7 254l139-33.7v43.2l-139 33.5v-43z" fill="#2e5cb8" stroke-width="4.9"/>
+ <path d="M251.8 220.3v43.2l37.2-125v-43z" fill="#193366" stroke-width="4.9"/>
+ <path d="M187.2 4L289 95.5l-37.2 124.8-139.2 33.5-101.8-91.4L48 37.5zm-3.5 72.6c32 16.7 43 53.6 24.4 82.5-18.4 28.8-59.6 38.7-91.8 22-32-16.5-43-53.6-24.4-82.4 18.3-28.9 59.4-38.9 91.7-22.2z" fill="#8da6d8" stroke-width="4.9"/>
+ <path d="M85.5 146a54.8 54.8 0 0 1 6-47.3c18.8-28.9 60-38.8 92-22 27.5 14.3 39.6 43.4 30.7 69.5a61.8 61.8 0 0 0-30.6-35c-32.2-16.6-73.4-6.7-92 22.2a57.4 57.4 0 0 0-6 12.8z" fill="url(#a)" stroke-width="4.9"/>
+</svg>
diff --git a/template/developers.html.j2 b/template/developers.html.j2
deleted file mode 100644
index 0a52128b..00000000
--- a/template/developers.html.j2
+++ /dev/null
@@ -1,300 +0,0 @@
-{% 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">
- <h3>{{ _("Free") }}</h3>
-
- <p>
- {% trans %}
- GNU Taler is free software implementing an open
- protocol. Anybody is welcome to 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 GPLv3+ are used for
- wallets and related customer-facing software. We are
- open for constructive suggestions for maximizing the
- adoption of this payment platform.
- {% endtrans %}
- </p>
-
- </div>
- <div class="col-lg-6">
- <h3>{{ _("RESTful") }}</h3>
-
- <p>
- {% trans %}
- 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&#39;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&#39;s protocol
- is documented in detail at
- {% endtrans %}
- <a href="https://docs.taler.net/">docs.taler.net</a>.
- </p>
- </div>
- </div>
- </div>
-
- <div class="container-fluid c_acronym">
- <div class="container">
- <div class="row">
- <div class="col-lg-4">
- <h3>{{ _("Code") }}</h3>
-
- <p>
- {% trans %}
- Taler is currently primarily developed by a
- research team at
- {% endtrans %}
- <a href="http://www.inria.fr/">Inria</a>
- {% trans %}
- and
- {% endtrans %}
- <a href="https://gnunet.org/">GNUnet</a>.
- {% trans %}
- 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 repositories can be found in our
- {% endtrans %}
- <a href="https://git.taler.net/">GitWeb</a>.
- </p>
- </div>
- <div class="col-lg-4">
- <h3>{{ _("Documentation") }}</h3>
-
- <p>
- {% trans %}
- In addition to this website, the
- {% endtrans %}
- <a href="https://git.taler.net/">{{ _("documented code")}}</a>
- {% trans %}
- and the
- {% endtrans %}
- <a href="https://docs.taler.net/">{{ _("API documentation")}}</a>.
- {% trans %}
- Technical papers can be found in our
- {% endtrans %}
- <a href="{{ url_localized('bibliography.html') }}">{{ _("bibliography")}}</a>.
- </p>
- </div>
- <div class="col-lg-4">
- <h3>{{ _("Discussion") }}</h3>
-
- <p>
- {% trans %}
- We have a mailing list for developer discussions.
- You can subscribe to or read the list archive at
- {% endtrans %}
- <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">
- <h3>{{ _("Regression Testing") }}</h3>
-
- <p>
- {% trans %}
- We have
- {% endtrans %}
- <a href="https://buildbot.net/">Buildbot</a>
- {% trans %}
- automation tests to detect regressions and check for
- portability at
- {% endtrans %}
- <a href="https://buildbot.taler.net/">buildbot.taler.net</a>.
- </p>
- </div>
- <div class="col-lg-4" note="not yet operational">
- <h3>{{ _("Code Coverage Analysis") }}</h3>
-
- <p>
- {% trans %}
- We use
- {% endtrans %}
- <a href="http://ltp.sourceforge.net/coverage/lcov.php">LCOV</a>
- {% trans %}
- to analyze the code coverage of our tests, the
- results are available at
- {% endtrans %}
- <a href="https://lcov.taler.net/">lcov.taler.net</a>.
- </p>
- </div>
- </div>
- </div>
- </div>
-
- <div class="container-fluid">
- <div class="container">
- <h2>{{ _("Technical Presentation") }}</h2>
- <div class="row">
- <div class="col-lg-4">
- <a href="{{ url('presentations/tech.pdf') }}"><img border=0 class="center-block" width=64 height=64 alt="PDF" src="{{ url_static('images/pdf.svg') }}"><br><p align="center">{{ _("Download") }}</p></a>
- </div>
- <div class="col-lg-4" id="canvas-left" style="display:none">
- <canvas id="the-canvas-left"></canvas>
- </div>
- <div class="col-lg-4" id="canvas-right" style="display:none">
- <canvas id="the-canvas-right"></canvas>
- </div>
- <script type="text/javascript" src="{{ url_dist('js/pdf.min.js') }}"></script>
- <script type="text/javascript" src="{{ url_dist('js/pdf-view-tech.js') }}"></script>
- </div>
- </div>
- </div>
-
- <div class="container">
- <div class="col-lg-12">
- <h3 id="overview">{{ _("Taler system overview") }}</h3>
-
- <p>
- {% trans %}
- The Taler system consists of protocols executed among
- a number of actors as illustrated in the illustration on the right.
- Typical transactions involve the following steps:
- {% endtrans %}
- </p>
-
- <img src="{{ url_static('images/taler-arch-full.svg') }}" alt="{{_("system overview")}}" style="float: right; margin: 50px 5px 5px 5px;" width="50%">
- <ol>
- <li>
- {% trans %}
- 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.
- {% endtrans %}
- </li>
-
- <li>
- {% trans %}
- Once the exchange has received the wire
- transfer, it allows the customer&#39;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).
- {% endtrans %}
- </li>
-
- <li>
- {% trans %}
- 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).
- {% endtrans %}
- </li>
-
- <li>
- {% trans %}
- Merchants receiving digital
- coins <b>deposit</b> the respective claims
- 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).
- {% endtrans %}
- </li>
-
- <li>
- {% trans %}
- 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.
- {% endtrans %}
- </li>
-
- <li>
- {% trans %}
- 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.
- {% endtrans %}
- </li>
-
- <li>
- {% trans %}
- 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.
- {% endtrans %}
- </li>
- </ol>
- <div class="col">
- <img class="img-fluid" src="{{ url_static('images/diagram-complex.png') }}">
- </div>
- </div>
- </div> <!-- /container -->
-{% endblock body_content %}
diff --git a/template/docs.html.j2 b/template/docs.html.j2
index d78e4258..8c2fa5d6 100644
--- a/template/docs.html.j2
+++ b/template/docs.html.j2
@@ -230,6 +230,22 @@
{{ _("Git repositories for all of GNU Taler.") }}
</div>
+ <div class="col-3">
+ <a href="https://lcov.taler.net">
+ <img src="{{ url('icons/icon-lcov.svg') }}" height=60>
+ <h3>{{ _("lcov results") }}</h3>
+ </a>
+ {{ _("Shows results of the code coverage analysis for our test suite.") }}
+ </div>
+m
+ <div class="col-3">
+ <a href="https://buildbot.taler.net">
+ <img src="{{ url('icons/buildbot.svg') }}" height=60>
+ <h3>{{ _("Continuous integration") }}</h3>
+ </a>
+ {{ _("Continuous integration and deployment is managed by our Buildbot.") }}
+ </div>
+
</div>
</div>