aboutsummaryrefslogtreecommitdiff
path: root/template
diff options
context:
space:
mode:
Diffstat (limited to 'template')
-rw-r--r--template/about.html.j249
-rw-r--r--template/applications.html.j2149
-rw-r--r--template/architecture.html.j297
-rw-r--r--template/contact.html.j214
-rw-r--r--template/copyright.html.j21
-rw-r--r--template/dev_pages/t3sserakt.html.j2106
-rw-r--r--template/developers.html.j21
-rw-r--r--template/download.html.j21
-rw-r--r--template/engage.html.j230
-rw-r--r--template/ev.html.j213
-rw-r--r--template/faq.html.j21059
-rw-r--r--template/glossary.html.j21
-rw-r--r--template/gns.html.j21
-rw-r--r--template/gnurl.html.j21
-rw-r--r--template/gsoc-2018-gnunet-webui.html.j21
-rw-r--r--template/gsoc.html.j2235
-rw-r--r--template/index.html.j255
-rw-r--r--template/install-on-archpi.html.j21
-rw-r--r--template/install-on-debian9.html.j21
-rw-r--r--template/install-on-macos.html.j23
-rw-r--r--template/install-on-netbsd.html.j21
-rw-r--r--template/install-on-openwrt.html.j21
-rw-r--r--template/install-on-ubuntu1804.html.j21
-rwxr-xr-x[-rw-r--r--]template/install.html.j238
-rw-r--r--template/l2o/index.html.j2272
-rw-r--r--template/l2o/mile1.html.j2136
-rw-r--r--template/l2o/mile2.html.j286
-rw-r--r--template/l2o/mile3.html.j2115
-rw-r--r--template/l2o/mile4.html.j2108
-rw-r--r--template/l2o/mile5.html.j2153
-rw-r--r--template/l2o/mile6.html.j283
-rw-r--r--template/l2o/mile7.html.j262
-rw-r--r--template/l2o/mile8.html.j286
-rw-r--r--template/l2o/mile9.html.j2338
-rw-r--r--template/l2o/testng.html.j2119
-rw-r--r--template/livingstandards.html.j219
-rw-r--r--template/news/2011-11-24-archived-vfork.html.j262
-rw-r--r--template/news/2013-11-15-special-use-gns.html.j214
-rw-r--r--template/news/2013-12-28-archived-typos-pkeys.html.j216
-rw-r--r--template/news/2018-06.html.j2108
-rw-r--r--template/news/2018-07.html.j27
-rw-r--r--template/news/2019-0.11.0.html.j272
-rw-r--r--template/news/2019-0.11.1.html.j255
-rw-r--r--template/news/2019-0.11.2.html.j255
-rw-r--r--template/news/2019-0.11.3.html.j252
-rw-r--r--template/news/2019-0.11.4.html.j250
-rw-r--r--template/news/2019-0.11.5.html.j247
-rw-r--r--template/news/2019-0.11.6.html.j252
-rw-r--r--template/news/2019-0.11.7.html.j256
-rw-r--r--template/news/2019-0.11.8.html.j247
-rw-r--r--template/news/2019-0.12.0.html.j285
-rw-r--r--template/news/2019-0.12.1.html.j226
-rw-r--r--template/news/2019-02.html.j275
-rw-r--r--template/news/2019-06-DSTJ.html.j214
-rw-r--r--template/news/2019-06.html.j27
-rw-r--r--template/news/2019-07-GHM_Aug_2019.html.j27
-rw-r--r--template/news/2019-10-GNSSpec1.html.j219
-rw-r--r--template/news/2019-10-ICANNPanel.html.j213
-rw-r--r--template/news/2019-11-ICANNUpdate.html.j210
-rw-r--r--template/news/2019-12-UpcomingTalks.html.j273
-rw-r--r--template/news/2020-01-0.12.2.html.j271
-rw-r--r--template/news/2020-01-GNSSpec2.html.j228
-rw-r--r--template/news/2020-05-GHM_Jun_2020.html.j28
-rw-r--r--template/news/2020-06-GNSSpec3.html.j225
-rw-r--r--template/news/2020-07-0.13.0.html.j2103
-rw-r--r--template/news/2020-07-0.13.1.html.j229
-rw-r--r--template/news/2020-08-0.13.2.html.j258
-rw-r--r--template/news/2020-09-0.13.3.html.j251
-rw-r--r--template/news/2020-11-0.14.0.html.j281
-rw-r--r--template/news/2020-11-GNSSpec4.html.j245
-rw-r--r--template/news/2021-03-0.14.1.html.j248
-rw-r--r--template/news/2021-03-gsoc-update.html.j213
-rw-r--r--template/news/2021-05-DISSENS.html.j267
-rw-r--r--template/news/2021-08-0.15.0.html.j282
-rw-r--r--template/news/2021-12-GNSSpecISE.html.j228
-rw-r--r--template/news/2022-02-0.16.0.html.j289
-rw-r--r--template/news/2022-03-0.16.1.html.j236
-rw-r--r--template/news/2022-03-0.16.2.html.j232
-rw-r--r--template/news/2022-03-0.16.3.html.j230
-rw-r--r--template/news/2022-04-libgnunetchat-0.1.0.html.j255
-rw-r--r--template/news/2022-05-messenger-gtk-0.7.0.html.j268
-rw-r--r--template/news/2022-06-0.17.0.html.j287
-rw-r--r--template/news/2022-06-0.17.1.html.j230
-rw-r--r--template/news/2022-06-DHTSpec1.html.j239
-rw-r--r--template/news/2022-07-0.17.2.html.j231
-rw-r--r--template/news/2022-08-0.17.3.html.j249
-rw-r--r--template/news/2022-08-0.17.4.html.j222
-rw-r--r--template/news/2022-09-0.17.5.html.j221
-rw-r--r--template/news/2022-09-0.17.6.html.j235
-rw-r--r--template/news/2022-09-messenger-cli-0.1.0.html.j256
-rw-r--r--template/news/2022-10-0.18.0.html.j298
-rw-r--r--template/news/2022-10-libgnunetchat-0.1.1.html.j221
-rw-r--r--template/news/2022-11-0.18.1.html.j232
-rw-r--r--template/news/2022-11-NGI-Entrust-GNS-TLDs.html.j242
-rw-r--r--template/news/2022-12-0.19.0.html.j290
-rw-r--r--template/news/2022-12-0.19.1.html.j224
-rw-r--r--template/news/2023-01-0.19.2.html.j224
-rw-r--r--template/news/2023-02-0.19.3.html.j227
-rw-r--r--template/news/2023-02-libgnunetchat-0.1.3.html.j221
-rw-r--r--template/news/2023-02-messenger-gtk-0.8.0.html.j255
-rw-r--r--template/news/2023-04-0.19.4.html.j228
-rw-r--r--template/news/2023-08-GSoC-QUIC.html.j236
-rw-r--r--template/news/2023-09-0.20.0.html.j270
-rw-r--r--template/news/2023-11-RFC9498.html.j248
-rw-r--r--template/news/2023-12-NGI-Entrust-GNS-TLDs-Update.html.j232
-rw-r--r--template/news/2024-02-NGI-Webinar-GNS.html.j216
-rw-r--r--template/news/2024-03-0.21.0.html.j277
-rw-r--r--template/news/2024-03-0.21.1.html.j229
-rw-r--r--template/news/2024-03-libgnunetchat-0.3.0.html.j243
-rw-r--r--template/news/2024-03-libgnunetchat-0.3.1.html.j221
-rw-r--r--template/news/2024-03-messenger-gtk-0.9.0.html.j255
-rw-r--r--template/news/index.html.j258
-rw-r--r--template/news/oldnews-2011.html.j25
-rw-r--r--template/news/oldnews-2013.html.j25
-rw-r--r--template/news/oldnews-2018.html.j25
-rw-r--r--template/news/oldnews-2019.html.j25
-rw-r--r--template/news/oldnews-2020.html.j25
-rw-r--r--template/news/oldnews-2021.html.j25
-rw-r--r--template/news/oldnews-2022.html.j25
-rw-r--r--template/news/oldnews-2023.html.j25
-rw-r--r--template/probnat/api.html.j254
-rw-r--r--template/probnat/index.html.j2240
-rw-r--r--template/probnat/mile1.html.j284
-rw-r--r--template/probnat/mile2.html.j2105
-rw-r--r--template/reclaim/faq.html.j226
-rw-r--r--template/reclaim/idps.html.j230
-rw-r--r--template/reclaim/index.html.j2102
-rw-r--r--template/reclaim/motivation.html.j234
-rw-r--r--template/reclaim/tech.html.j2115
-rw-r--r--template/reclaim/users.html.j240
-rw-r--r--template/reclaim/websites.html.j244
-rw-r--r--template/roadmap.html.j241
-rw-r--r--template/rss.xml.j246
-rw-r--r--template/use.html.j2111
-rw-r--r--template/video.html.j21
135 files changed, 7522 insertions, 414 deletions
diff --git a/template/about.html.j2 b/template/about.html.j2
index be9a7298..77c424ee 100644
--- a/template/about.html.j2
+++ b/template/about.html.j2
@@ -1,5 +1,6 @@
1{% extends "common/base.j2" %} 1{% extends "common/base.j2" %}
2{% block body_content %} 2{% block body_content %}
3<main id="maincontent">
3<article class="container"> 4<article class="container">
4 5
5 <header> 6 <header>
@@ -108,31 +109,12 @@
108 <li> 109 <li>
109 <p> 110 <p>
110 {% trans %} 111 {% trans %}
111 We're receiving funding from NLnet's Next Generation Internet 112 This project is receiving funding from the European Union’s Horizon
112 funding line to document and implement 113 2020 research and innovation programme NGI Assure.
113 the GNU Name System protocol in a way suitable for the
114 IETF standardization process.
115 {% endtrans %} 114 {% endtrans %}
116 <br> 115 <br>
117 <a href="https://nlnet.nl/">NLnet Foundation</a><br> 116 <a href="https://www.assure.ngi.eu/">NGI Assure homepage</a><br>
118 <img src="{{ url('static/images/nlnet_logo.gif') }}" alt="NLnet logo"> 117 <img style="width: 35%" src="{{ url('images/ngi_assure.png') }}" alt="NGI Assure logo">
119 </p>
120 </li>
121 <li>
122 <p>
123 {% trans %}
124 This project has received funding from the European Union’s Horizon
125 2020 research and innovation programme under the NGI_TRUST grant
126 agreement no 825618.
127 The project aims to integrate re:claimID with the GNU Taler payment
128 system in a pilot in order to demonstrate the practical feasibility
129 and benefits of privacy enhancing technologies for users and
130 commercial service providers. The project is called "Decentralized
131 Identities for Self-Sovereign End-users" (DISSENS).
132 {% endtrans %}
133 <br>
134 <a href="https://wiki.geant.org/display/NGITrust/">GEANT NGI TRUST</a><br>
135 <img style="width: 35%" src="{{ url('static/images/ngi_trust.png') }}" alt="NGI TRUST logo">
136 </p> 118 </p>
137 </li> 119 </li>
138 120
@@ -155,26 +137,39 @@
155 <ul> 137 <ul>
156 <li> 138 <li>
157 <p> 139 <p>
140 <a href="https://nlnet.nl/discovery/">NGI DISCOVERY</a> [<a href="https://nlnet.nl/project/GNS/">Project summary</a>]<br>
141 <img style="width: 35%" src="{{ url('images/ngi_discovery.svg') }}" alt="NGI DISCOVERY logo">
142 </p>
143 </li>
144 <li>
145 <p>
146 <a href="https://wiki.geant.org/display/NGITrust/">GEANT NGI TRUST</a> [<a href="{{ url_localized('news/2021-05-DISSENS.html') }}">Project report</a>]<br>
147 <img style="width: 35%" src="{{ url('images/ngi_trust.png') }}" alt="NGI TRUST logo">
148 </p>
149 </li>
150
151 <li>
152 <p>
158 <a href="https://renewablefreedom.org/">Renewable Freedom Foundation / Stiftung Erneuerbare Freiheit</a><br> 153 <a href="https://renewablefreedom.org/">Renewable Freedom Foundation / Stiftung Erneuerbare Freiheit</a><br>
159 <img src="{{ url('static/images/rff_logo.png') }}" alt="RFF logo"> 154 <img src="{{ url('images/rff_logo.png') }}" alt="RFF logo">
160 </p> 155 </p>
161 </li> 156 </li>
162 <li> 157 <li>
163 <p> 158 <p>
164 <a href="https://cordis.europa.eu/fp7/">European Commission (FP7)</a><br> 159 <a href="https://cordis.europa.eu/fp7/">European Commission (FP7)</a><br>
165 <img src="{{ url('static/images/fp7_logo.jpg') }}" alt="FP7 logo"> 160 <img src="{{ url('images/fp7_logo.jpg') }}" alt="FP7 logo">
166 </p> 161 </p>
167 </li> 162 </li>
168 <li> 163 <li>
169 <p> 164 <p>
170 <a href="http://www.dfg.de/">Deutsche Forschungsgemeinschaft</a><br> 165 <a href="http://www.dfg.de/">Deutsche Forschungsgemeinschaft</a><br>
171 <img src="{{ url('static/images/dfg_logo.gif') }}" alt="DFG logo"> 166 <img src="{{ url('images/dfg_logo.gif') }}" alt="DFG logo">
172 </p> 167 </p>
173 </li> 168 </li>
174 <li> 169 <li>
175 <p> 170 <p>
176 <a href="https://nlnet.nl/">NLnet Foundation</a><br> 171 <a href="https://nlnet.nl/">NLnet Foundation</a><br>
177 <img src="{{ url('static/images/nlnet_logo.gif') }}" alt="NLnet logo"> 172 <img src="{{ url('images/nlnet_logo.gif') }}" alt="NLnet logo">
178 </p> 173 </p>
179 </li> 174 </li>
180 </ul> 175 </ul>
diff --git a/template/applications.html.j2 b/template/applications.html.j2
index 43b0dd2f..e1f3d48f 100644
--- a/template/applications.html.j2
+++ b/template/applications.html.j2
@@ -1,5 +1,6 @@
1{% extends "common/base.j2" %} 1{% extends "common/base.j2" %}
2{% block body_content %} 2{% block body_content %}
3<main id="maincontent">
3<div class="container-fluid"> 4<div class="container-fluid">
4 <div class="container"> 5 <div class="container">
5 <div class="row"> 6 <div class="row">
@@ -19,7 +20,7 @@
19 hierarchy, GNS uses a directed graph. Naming conventions 20 hierarchy, GNS uses a directed graph. Naming conventions
20 are similar to DNS, but queries and replies are private even 21 are similar to DNS, but queries and replies are private even
21 with respect to peers providing the answers. The integrity of 22 with respect to peers providing the answers. The integrity of
22 records and privacy of look-ups is cryptographically secured. 23 records and privacy of look-ups are cryptographically secured.
23 <!-- Too technical: GNS integrates 24 <!-- Too technical: GNS integrates
24 a robust, efficient and instant key revocation mechanism. --> 25 a robust, efficient and instant key revocation mechanism. -->
25 {% endtrans %} 26 {% endtrans %}
@@ -37,8 +38,8 @@
37 <section> 38 <section>
38 <h3>{{ _("Self-sovereign, decentralized identity provider") }}</h3> 39 <h3>{{ _("Self-sovereign, decentralized identity provider") }}</h3>
39 <p> 40 <p>
41 <a href="{{ url_localized('reclaim/index.html') }}">re:claimID</a>
40 {% trans %} 42 {% trans %}
41 <a href="https://reclaim.gnunet.org/">re:claimID</a>
42 is a decentralized Identity Provider (IdP) service built in top of the 43 is a decentralized Identity Provider (IdP) service built in top of the
43 GNU Name System. It allows users to securely share personal information 44 GNU Name System. It allows users to securely share personal information
44 with websites using standardized protocols (OpenID Connect). 45 with websites using standardized protocols (OpenID Connect).
@@ -93,106 +94,88 @@
93 </div> 94 </div>
94 <div class="row"> 95 <div class="row">
95 <div class="col-lg-6"> 96 <div class="col-lg-6">
96 <section>
97 <h3>{{ _("GNU Taler (Alpha)") }}</h3>
98 <p>
99 {% trans %}
100 <a href="https://taler.net/">GNU Taler</a>
101 is a new privacy-preserving electronic payment system.
102 Payments are cryptographically
103 secured and are confirmed within milliseconds with
104 extremely low transaction costs.
105 {% endtrans %}
106 </p>
107 </section>
108 </div>
109 <div class="col-lg-4">
110 <center><img style="width: 20em" src="{{ url_static('images/logo-2018-dold.svg') }}" alt="Taler" /></center>
111 </div>
112
113 </div>
114 <hr/>
115 <div class="row">
116 <div class="col-lg-6">
117 <section> 97 <section>
118 <h3>{{ _("secushare") }}</h3> 98 <h3>{{ _("GNU Taler (Alpha)") }}</h3>
119 <p> 99 <p>
120 {% trans %} 100 {% trans %}
121 <a href="https://secushare.org/">secushare</a> 101 <a href="https://taler.net/">GNU Taler</a>
122 is creating a decentralized social networking 102 is a new privacy-preserving electronic payment system.
123 application on top of GNUnet. Using overlay 103 Payments are cryptographically
124 multicast and the extensible PSYC protocol, notifications are 104 secured and are confirmed within milliseconds with
125 distributed end-to-end encrypted to authorized recipients only. 105 extremely low transaction costs.
126 {% endtrans %} 106 {% endtrans %}
127 </p> 107 </p>
128 </section> 108 </section>
129 </div> 109 </div>
130 <div class="col-lg-4"> 110 <div class="col-lg-4">
131 <center><img style="width: 14em" src="{{ url_static('images/secushare-0444.png') }}" alt="secushare" /></center> 111 <center>
112 <img style="width: 20em" src="{{ url_static('images/logo-2018-dold.svg') }}" alt="Taler" />
113 </center>
114 </div>
132 </div> 115 </div>
133 116 <hr/>
134 </div> 117 <div class="row">
135 <hr/>
136 <div class="row">
137 <div class="col-lg-6"> 118 <div class="col-lg-6">
138 <section> 119 <section>
139 <h3>{{ _("pretty Easy privacy") }}</h3> 120 <h3>{{ _("secushare") }}</h3>
140 <p> 121 <p>
141 {% trans %} 122 {% trans %}
142 <a href="https://pep.foundation/">pretty Easy privacy</a> (p&#8801;p) 123 <a href="https://secushare.org/">secushare</a>
143 is creating a usable end-to-end encrypted e-mail solution using 124 is creating a decentralized social networking
144 opportunistic key exchange. 125 application on top of GNUnet. Using overlay
145 p&#8801;p will use GNUnet to protect metadata and exploit new 126 multicast and the extensible PSYC protocol, notifications are
146 cryptographic protocols to verify keys. 127 distributed end-to-end encrypted to authorized recipients only.
147 {% endtrans %} 128 {% endtrans %}
148 </p> 129 </p>
149 </section> 130 </section>
150 </div> 131 </div>
151 <div class="col-lg-4"> 132 <div class="col-lg-4">
152 <center><img style="width: 14em" src="{{ url_static('images/peplogo.svg') }}" alt="pEp" /></center> 133 <center>
153 </div> 134 <img style="width: 14em" src="{{ url_static('images/secushare-0444.png') }}" alt="secushare" />
154 135 </center>
155 </div> 136 </div>
156 <hr/> 137 </div>
157 <div class="row"> 138 <hr/>
139 <div class="row">
158 <div class="col-lg-6"> 140 <div class="col-lg-6">
159 <section> 141 <section>
160 <h3>{{ _("Cadet-GTK") }}</h3> 142 <h3>{{ _("Messenger-GTK") }}</h3>
161 <p> 143 <p>
162 {% trans %} 144 {% trans %}
163 <a href="https://gitlab.com/gnunet-messenger/cadet-gtk">Cadet-GTK</a> 145 <a href="https://git.gnunet.org/messenger-gtk.git/">Messenger-GTK</a>
164 is a convenient but feature-rich graphical application 146 is a convergent GTK messaging application using the GNUnet Messenger
165 providing messaging using especially the CADET subsystem. It is 147 service. The goal is to provide private and secure communication
166 developed using GTK and libhandy for a convergent design. 148 between any group of devices.
167 {% endtrans %} 149 {% endtrans %}
168 </p> 150 </p>
169 </section> 151 </section>
170 </div> 152 </div>
171 <div class="col-lg-4"> 153 <div class="col-lg-4">
172 <center><img style="width: 8em" src="{{ url_static('images/cadet-gtk.svg') }}" alt="cadet-gtk" /></center> 154 <center>
173 </div> 155 <img style="width: 8em" src="{{ url_static('images/messenger-gtk.svg') }}" alt="messenger-gtk" />
174 156 </center>
175 </div> 157 </div>
176 <hr/> 158 </div>
177 <div class="row"> 159 <hr/>
160 <div class="row">
178 <div class="col-lg-6"> 161 <div class="col-lg-6">
179 <section> 162 <section>
180 <h3>{{ _("groupchat") }}</h3> 163 <h3>{{ _("messenger-cli") }}</h3>
181 <p> 164 <p>
182 {% trans %} 165 {% trans %}
183 <a href="https://git.gnunet.org/groupchat.git/">groupchat</a> 166 <a href="https://git.gnunet.org/messenger-cli.git/">messenger-cli</a>
184 is a terminal user interface providing messaging using especially the CADET subsystem. It is 167 is a terminal user interface providing messaging using the GNUnet Messenger
185 developed using nim. Cadet-GTK and groupchat are planned to be compatible. 168 service. It is developed in C using ncurses. Messenger-GTK and messenger-cli
186 {% endtrans %} 169 are fully compatible.
187 </p> 170 {% endtrans %}
171 </p>
188 </section> 172 </section>
189 </div> 173 </div>
190 <div class="col-lg-4"> 174 <div class="col-lg-4">
191 <center><img style="width: 14em" src="{{ url_static('images/groupchat.png') }}" alt="groupchat" /></center> 175 <center>
192 </div> 176 <img style="width: 10em" src="{{ url_static('images/messenger-cli.png') }}" alt="messenger-cli" />
193 177 </center>
194 </div> 178 </div>
195
196 </div> 179 </div>
197 </div> 180 </div>
198</div> 181</div>
diff --git a/template/architecture.html.j2 b/template/architecture.html.j2
index ef6e8799..63fadfb2 100644
--- a/template/architecture.html.j2
+++ b/template/architecture.html.j2
@@ -1,5 +1,6 @@
1{% extends "common/base.j2" %} 1{% extends "common/base.j2" %}
2{% block body_content %} 2{% block body_content %}
3<main id="maincontent">
3<article class="container"> 4<article class="container">
4 5
5 <header> 6 <header>
@@ -8,49 +9,9 @@
8 9
9 <div class="container"> 10 <div class="container">
10 <div class="row"> 11 <div class="row">
11 <!--<div class="col-10"> 12 <div class="col-10">
12 <img class="img-fluid border rounded" src="../static/images/gnunet-arch-full.svg"> 13 <img class="img-fluid" src="../static/images/arch.png">
13 </div> 14 </div>
14 <div class="col-2 d-none d-sm-block">
15 <h4>{{ _("Legend") }}:</h4>
16 <dl>
17 <dt>house</dt>
18 <dd>application</dd>
19 </dl>
20 <dl>
21 <dt>circle</dt>
22 <dd>application</dd>
23 </dl>
24 <dl>
25 <dt>box</dt>
26 <dd>daemon</dd>
27 </dl>
28 <dl>
29 <dt>diamond</dt>
30 <dd>library</dd>
31 </dl>
32 <dl>
33 <dt>blackline</dt>
34 <dd>dependency</dd>
35 </dl>
36 <dl>
37 <dt>blue line</dt>
38 <dd>extension via plugin</dd>
39 </dl>
40 <dl>
41 <dt>red line</dt>
42 <dd>possibly useful</dd>
43 </dl>
44 <dl>
45 <dt>dashed</dt>
46 <dd>in planning</dd>
47 </dl>
48 </div>-->
49 <div class="col-10">
50 <img class="img-fluid" src="../static/images/arch.png">
51 </div>
52
53
54 </div> 15 </div>
55 </div> 16 </div>
56 17
@@ -65,7 +26,7 @@
65 messaging layer (CADET), a public key infrastructure 26 messaging layer (CADET), a public key infrastructure
66 (GNS) and a pluggable transport system (TRANSPORT).<br> 27 (GNS) and a pluggable transport system (TRANSPORT).<br>
67 Using public keys for addresses 28 Using public keys for addresses
68 and self-organized decentralized routing algorithms, 29 and self-organizing decentralized routing algorithms,
69 these subsystems replace the traditional TCP/IP stack. 30 these subsystems replace the traditional TCP/IP stack.
70 {% endtrans %} 31 {% endtrans %}
71 </p> 32 </p>
@@ -78,7 +39,7 @@
78 {% trans %} 39 {% trans %}
79 GNUnet is implemented using a multi-process architecture. 40 GNUnet is implemented using a multi-process architecture.
80 Each subsystem runs as a separate process, providing 41 Each subsystem runs as a separate process, providing
81 fault-isolation and enabling tight permissions to be 42 fault isolation and enabling tight permissions to be
82 granted to each subsystem. Naturally, the 43 granted to each subsystem. Naturally, the
83 implementation is a <a href="https://www.gnu.org/">GNU</a> 44 implementation is a <a href="https://www.gnu.org/">GNU</a>
84 package, and will always remain free software. 45 package, and will always remain free software.
@@ -91,13 +52,13 @@
91 <div class="col-md"> 52 <div class="col-md">
92 <h2>{{ _("System architecture") }}</h2> 53 <h2>{{ _("System architecture") }}</h2>
93 <p> 54 <p>
94 Read more about the system architecure in the respective section of our <a href="https://docs.gnunet.org/handbook/gnunet.html#System-Architecture" target="_blank">handbook</a>. 55 Read more about the system architecture in the corresponding section of our <a href="https://docs.gnunet.org/handbook/gnunet.html#System-Architecture" target="_blank">handbook</a>.
95 </p> 56 </p>
96 </div> 57 </div>
97 <div class="col-md"> 58 <div class="col-md">
98 <h2>{{ _("Subsystems") }}</h2> 59 <h2>{{ _("Subsystems") }}</h2>
99 <p> 60 <p>
100 Read more about the subsystems (or GNUnet services) in the respective section of our <a href="https://docs.gnunet.org/handbook/gnunet.html#Code-overview" target="_blank">handbook</a>. 61 Read more about the subsystems (or GNUnet services) in the corresponding section of our <a href="https://docs.gnunet.org/handbook/gnunet.html#Code-overview" target="_blank">handbook</a>.
101 </p> 62 </p>
102 </div> 63 </div>
103 </div> 64 </div>
@@ -112,11 +73,53 @@
112 <div class="col-md"> 73 <div class="col-md">
113 <h2>{{ _("APIs") }}</h2> 74 <h2>{{ _("APIs") }}</h2>
114 <p> 75 <p>
115 GNUnet offers variaty of APIs for <a href="https://docs.gnunet.org/handbook/gnunet.html#Interprocess-communication-API-_0028IPC_0029" target="_blank">accessing services</a> (using IPC), <a href="https://docs.gnunet.org/handbook/gnunet.html#Service-API">running services</a>, <a href="https://docs.gnunet.org/handbook/gnunet.html#Message-Queue-API">message queues</a>, or <a href="https://docs.gnunet.org/handbook/gnunet.html#Cryptography-API" target="_blank">cryptographic operations</a>. 76 GNUnet offers a variety of APIs for <a href="https://docs.gnunet.org/handbook/gnunet.html#Interprocess-communication-API-_0028IPC_0029" target="_blank">accessing services</a> (using IPC), <a href="https://docs.gnunet.org/handbook/gnunet.html#Service-API">running services</a>, <a href="https://docs.gnunet.org/handbook/gnunet.html#Message-Queue-API">message queues</a>, or <a href="https://docs.gnunet.org/handbook/gnunet.html#Cryptography-API" target="_blank">cryptographic operations</a>.
116 </p> 77 </p>
117 </div> 78 </div>
118 </div> 79 </div>
119 </div> 80 </div>
81 <div class="container">
82 <div class="row">
83 <div class="col-10">
84 <img class="img-fluid border rounded" src="../static/images/gnunet-arch-full.svg">
85 </div>
86 <div class="col-2 d-none d-sm-block">
87 <h4>{{ _("Legend") }}:</h4>
88 <dl>
89 <dt>house</dt>
90 <dd>application</dd>
91 </dl>
92 <dl>
93 <dt>circle</dt>
94 <dd>application</dd>
95 </dl>
96 <dl>
97 <dt>box</dt>
98 <dd>daemon</dd>
99 </dl>
100 <dl>
101 <dt>diamond</dt>
102 <dd>library</dd>
103 </dl>
104 <dl>
105 <dt>blackline</dt>
106 <dd>dependency</dd>
107 </dl>
108 <dl>
109 <dt>blue line</dt>
110 <dd>extension via plugin</dd>
111 </dl>
112 <dl>
113 <dt>red line</dt>
114 <dd>possibly useful</dd>
115 </dl>
116 <dl>
117 <dt>dashed</dt>
118 <dd>in planning</dd>
119 </dl>
120 </div>
121 </div>
122 </div>
120 123
121</article> 124</article>
122{% endblock body_content %} 125{% endblock body_content %}
diff --git a/template/contact.html.j2 b/template/contact.html.j2
index 8f320503..6d894f13 100644
--- a/template/contact.html.j2
+++ b/template/contact.html.j2
@@ -1,5 +1,6 @@
1{% extends "common/base.j2" %} 1{% extends "common/base.j2" %}
2{% block body_content %} 2{% block body_content %}
3<main id="maincontent">
3<article class="container"> 4<article class="container">
4 5
5 <header> 6 <header>
@@ -18,19 +19,6 @@
18 {% endtrans %} 19 {% endtrans %}
19 </p> 20 </p>
20 </div> 21 </div>
21
22 <div class="col-lg-6">
23 <h2>{{ _("The IRC channel") }}</h2>
24 <p>
25 {% trans %}
26 <tt>#gnunet</tt> is reachable via
27 <a href="https://freenode.net">irc.freenode.net</a>.
28 There is also an
29 <a href="https://view.matrix.org/room/!IjaAfLiruzjxFFzKAV:matrix.org/">archive</a>
30 available.
31 {% endtrans %}
32 </p>
33 </div>
34 </div> 22 </div>
35 23
36 <div class="row"> 24 <div class="row">
diff --git a/template/copyright.html.j2 b/template/copyright.html.j2
index ca779567..95db9c51 100644
--- a/template/copyright.html.j2
+++ b/template/copyright.html.j2
@@ -1,5 +1,6 @@
1{% extends "common/base.j2" %} 1{% extends "common/base.j2" %}
2{% block body_content %} 2{% block body_content %}
3<main id="maincontent">
3<article class="container"> 4<article class="container">
4 5
5 <header> 6 <header>
diff --git a/template/dev_pages/t3sserakt.html.j2 b/template/dev_pages/t3sserakt.html.j2
new file mode 100644
index 00000000..5ef774ee
--- /dev/null
+++ b/template/dev_pages/t3sserakt.html.j2
@@ -0,0 +1,106 @@
1{% extends "common/base.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<!-- Jumbotron -->
5<div>
6 <div class="container">
7 <div class="row">
8 <div class="container text-center">
9 <h1>{{ _("Developer page: t3sserakt") }}</h1>
10 </div>
11 </div>
12
13 <div class="container text-center">
14 <img src="{{ url_static('images/t3sserakt.jpg') }}" alt="t3sserakt" />
15 </div>
16 </div>
17</div>
18<div class="container-fluid greybox">
19 <div class="container">
20 <div class="row">
21 <div class="col-lg-2"></div>
22 <div class="col-lg-6">
23 <section>
24 <h2>{{ _("Current Work") }}</h2>
25 <p>
26 {% trans %}
27 Today consumer devices are behind a NAT quite often, restricting internet connectivity. There are several methods to reach peers being
28behind a NAT, but there are as many reasons those existing methods might fail. We will implement a new way of NAT traversal that we
29think of being independent from the existing network configuration, and does not require a third party which is not natted helping two
30peers to connect to each other. For details have a look on the <a href="../probnat/">project page</a>
31 {% endtrans %}
32 </p>
33 </section>
34 </div>
35 </div>
36 </div>
37</div>
38<div class="container-fluid">
39 <div class="container">
40 <div class="row">
41 <div class="col-lg-2"></div>
42 <div class="col-lg-6">
43 <section>
44 <h2>{{ _("Past Project") }}</h2>
45
46 <h3>{{ _("Transport Next Generation") }}</h3>
47 <p>
48 {% trans %}
49 The current GNUnet TRANSPORT architecture with its pluggable transport mechanism (TCP, UDP, HTTP(S) and other protocols) together with the ATS subsystem for bandwidth allocation and choosing plugins has several issues with its design. With the Layer-2-Overlay project we like to implement the design goals of the future GNUnet TRANSPORT Next Generation (TNG) subsystem. For details have a look on the <a href="../l2o/">project page</a>.
50 {% endtrans %}
51 </p>
52 </section>
53 </div>
54 </div>
55 </div>
56</div>
57<div class="container-fluid greybox">
58 <div class="container">
59 <div class="row">
60 <div class="col-lg-2"></div>
61 <div class="col-lg-6">
62 <section>
63 <h2>{{ _("Voluntary Work") }}</h2>
64 <p>
65 {% trans %}
66 In the past I have tried to help making the vision of the <a href="http://secushare.org">secushare</a> project a reality. To achieve this the GNUnet framework was the perfect match for a solution to fullfill the privacy preserving part of that vision, and we could concentrate to build a tool for social communication that deserves its name. While trying to use GNUnet, we found and fixed bugs. For example there was one <a href="https://bugs.gnunet.org/view.php?id=5822">bug</a> in CADET which prevented the re-establishment of a connection after a communication partner suddenly stopped communicating. From our perspective there is no alternativ to GNUnet, which led us to first bring the parts of GNUnet needed by secushare to a state that they can be used prouctively.
67 {% endtrans %}
68 </p>
69 </section>
70 </div>
71 </div>
72 </div>
73</div>
74<div class="container-fluid">
75 <div class="container">
76 <div class="row">
77 <div class="col-lg-2"></div>
78 <div class="col-lg-6">
79 <section>
80 <h2>{{ _("Contact Information") }}</h2>
81 <p>
82 <div class="container">
83 <div class="row">
84 <div class="col-lg-2">Mail:</div>
85 <div class="col-lg-6">t3sserakt@gnunet.org</div>
86 </div>
87 <div class="row">
88 <div class="col-lg-2">Fediverse:</div>
89 <div class="col-lg-6"><a rel="me" href="https://c3d2.social/@t3sserakt">@t3sserakt@c3d2.social</a></div>
90 </div>
91 <div class="row">
92 <div class="col-lg-2">Matrix:</div>
93 <div class="col-lg-6">@t3sserakt:tchncs.de</div>
94 </div>
95 <div class="row">
96 <div class="col-lg-2">PGP:</div>
97 <div class="col-lg-6"><a href="https://keyoxide.org/hkp/34156165BAC792A688C990CFC9A2D9D808FF308D">keyoxide</a></div>
98 </div>
99 </div>
100 </p>
101 </section>
102 </div>
103 </div>
104 </div>
105</div>
106{% endblock body_content %}
diff --git a/template/developers.html.j2 b/template/developers.html.j2
index c28418d2..e7e013fc 100644
--- a/template/developers.html.j2
+++ b/template/developers.html.j2
@@ -1,5 +1,6 @@
1{% extends "common/base.j2" %} 1{% extends "common/base.j2" %}
2{% block body_content %} 2{% block body_content %}
3<main id="maincontent">
3<div class="jumbotron"> 4<div class="jumbotron">
4 <div class="text-center"> 5 <div class="text-center">
5 <h1>{{ _("GNUnet for developers") }}</h1> 6 <h1>{{ _("GNUnet for developers") }}</h1>
diff --git a/template/download.html.j2 b/template/download.html.j2
index a7df9108..42a0aa48 100644
--- a/template/download.html.j2
+++ b/template/download.html.j2
@@ -1,5 +1,6 @@
1{% extends "common/base.j2" %} 1{% extends "common/base.j2" %}
2{% block body_content %} 2{% block body_content %}
3<main id="maincontent">
3 <article class="d-flex flex-column p-2 bd-highlight"> 4 <article class="d-flex flex-column p-2 bd-highlight">
4 <div class="container"> 5 <div class="container">
5 <div class="text-center"> 6 <div class="text-center">
diff --git a/template/engage.html.j2 b/template/engage.html.j2
index 000396ab..517c098d 100644
--- a/template/engage.html.j2
+++ b/template/engage.html.j2
@@ -1,5 +1,6 @@
1{% extends "common/base.j2" %} 1{% extends "common/base.j2" %}
2{% block body_content %} 2{% block body_content %}
3<main id="maincontent">
3<article class="container"> 4<article class="container">
4 5
5 <header> 6 <header>
@@ -10,33 +11,26 @@
10 <div class="col-md"> 11 <div class="col-md">
11 <h2>Join the conversation!</h2> 12 <h2>Join the conversation!</h2>
12 <p> 13 <p>
13 There are many ways to get engaged with GNUnet. A first step is to join the conversation on the mailing lists and on our IRC channel to keep up with development, find technical help, and discuss GNUnet: 14 There are many ways to get engaged with GNUnet. A first step is to join the conversation on the mailing lists to keep up with development, find technical help, and discuss GNUnet:
14 </p> 15 </p>
15 <h4>Mailing List</h4> 16 <h4>Mailing List</h4>
16 <p> 17 <p>
17 You can get help on our mailing list <a href="https://lists.gnu.org/mailman/listinfo/help-gnunet">help-gnunet</a>. <br>If you generally want to be informed about recent updates and happenings, get in touch over our <a href="https://lists.gnu.org/mailman/listinfo/info-gnunet">info mailing list</a>.<br/> 18 You can get help on our mailing list <a href="https://lists.gnu.org/mailman/listinfo/help-gnunet">help-gnunet</a>. <br>If you generally want to be informed about recent updates and happenings, get in touch over our <a href="https://lists.gnu.org/mailman/listinfo/info-gnunet">info mailing list</a>.<br/>
18 If you want to hack on GNUnet or want to follow technical discussions, try our <a href="https://lists.gnu.org/mailman/listinfo/gnunet-developers">developer mailing list</a> 19 If you want to hack on GNUnet or want to follow technical discussions, try our <a href="https://lists.gnu.org/mailman/listinfo/gnunet-developers">developer mailing list</a>
19 </p> 20 </p>
20 <h4>IRC</h4>
21 <p>
22 Most of the GNUnet developers are on the
23 IRC channel #gnunet on freenode (connect via
24 <a href="ircs://chat.freenode.net:6697/#gnunet">ircs://chat.freenode.net:6697/#gnunet</a>).
25 Please be patient and stay around at least for some hours to get an answer for your request. <!-- There is also a Matrix bridge to the IRC where you can get a backlog without staying connected. -->
26 </p>
27 <h4>Mumble</h4> 21 <h4>Mumble</h4>
28 <p> 22 <p>
29 We have a monthly get-together on mumble where we talk about recent developments, strategies, and politics.<br> 23 We have a monthly get-together on Mumble where we talk about recent developments, strategies, and politics.<br>
30 We come together on that day of the month, where n.day==n.month. E.g. we’ll meet on 6th of June, 7th of July, 8th of August, 9th of September, 10th of October and so on. We will usually start around 8 PM CEST, but try to be there earlier and stay longer just to hang around together.<br> 24 We come together on that day of the month, where n.day==n.month. E.g. we’ll meet on 6th of June, 7th of July, 8th of August, 9th of September, 10th of October and so on. We will usually start around 8 PM CEST, but try to be there earlier and stay longer just to hang around together.<br>
31 To connect just enter "gnunet.org" as server into your mumble client; leave everything else as default. 25 To connect just enter "gnunet.org" as server into your Mumble client; leave everything else as default.
32 </p> 26 </p>
33 </p> 27 </p>
34 <h4>PSYC</h4> 28 <h4>PSYC</h4>
35 <p> 29 <p>
36 You find some of us on PSYC using the following adresses: 30 You find some of us on PSYC using the following adresses:
37 <ul> 31 <ul>
38 <li>psyc://loupsycedyglgamf.onion/@welcome</li> 32 <li>psyc://psycyificvaxuzut3t6hcies3stfdtlzqftcnmbb5su3xv4zugplsfad.onion/@welcome</li>
39 <li>irc://loupsycedyglgamf.onion:67/welcome</li> 33 <li>irc://psycyificvaxuzut3t6hcies3stfdtlzqftcnmbb5su3xv4zugplsfad.onion:67/welcome</li>
40 <li>psyc://psyced.org/@welcome</li> 34 <li>psyc://psyced.org/@welcome</li>
41 <li>irc://psyced.org/welcome</li> 35 <li>irc://psyced.org/welcome</li>
42 <li>xmpp:*welcome@psyced.org</li> 36 <li>xmpp:*welcome@psyced.org</li>
@@ -46,7 +40,7 @@
46 <div class="col-md"> 40 <div class="col-md">
47 <h2>Install GNUnet!</h2> 41 <h2>Install GNUnet!</h2>
48 <p> 42 <p>
49 Another thing you might want now is your own GNUnet installation. As we haven’t packaged the new versions yet (June 2019) we provide <a href="https://gnunet.org/en/install.html">some tutorials how to install step-by-step</a>. 43 Another thing you might want now is your own GNUnet installation. As we haven’t packaged the new versions yet (as of June 2019) we provide <a href="https://gnunet.org/en/install.html">some tutorials how to install step-by-step</a>.
50 </p> 44 </p>
51 <h2>Use GNUnet!</h2> 45 <h2>Use GNUnet!</h2>
52 <p> 46 <p>
@@ -62,14 +56,16 @@
62 <li>If you do not want to use the public bug tracker, you can also eMail to bug-gnunet@gnu.org.</li> 56 <li>If you do not want to use the public bug tracker, you can also eMail to bug-gnunet@gnu.org.</li>
63 <li>Please inform us if your operating system or package manager applies any vendor changes to GNUnet which you know about (to exclude potential problems introduced by third parties).</li> 57 <li>Please inform us if your operating system or package manager applies any vendor changes to GNUnet which you know about (to exclude potential problems introduced by third parties).</li>
64 <li>Wait until your bug report is acknowledged/replied to. Note that only volunteers work on this, responses may take a while.</li> 58 <li>Wait until your bug report is acknowledged/replied to. Note that only volunteers work on this, responses may take a while.</li>
65 <li>Please follow up with eventual questions about the bug. </li> 59 <li>Please follow up on any questions about the bug.</li>
66 <li>Once a fix is there: Check if it&#39;s working as expected, so that we can properly close the bug report and/or give you credits :)</li> 60 <li>Once a fix is there: Check if it&#39;s working as expected, so that we can properly close the bug report and/or give you credit :)</li>
67 </ul> 61 </ul>
68 <h2>Contribute!</h2> 62 <h2>Contribute!</h2>
69 <p> 63 <p>
70 There are various ways to contribute. We especially need coders with C skills and knowledge of crypto. Development work on this this website, it&#39;s translations, the bibliography, our wide documentation, and other efforts are most welcome, too.<br> 64 There are various ways to contribute. We especially need coders with C skills and knowledge of crypto. Development work on this this website, it&#39;s translations, the bibliography, our wide documentation, and other efforts are most welcome, too.<br>
71 The core software of GNUnet used to be released with long breaks between releases. Since the 0.11.0 release we try to make releases more regularly. Therefore package maintainers who are interested in working together with an welcoming environment are invited to contribute packages of our software to any OS/PM and request help.<br> 65 The core software of GNUnet used to be released with long breaks between releases. Since the 0.11.0 release we try to make releases more regularly. Therefore package maintainers who are interested in working together with an welcoming environment are invited to contribute packages of our software to any OS/PM and request help.<br>
72 Last but not least designers are welcome to contact us about projects which require help. 66 Last but not least designers are welcome to contact us about projects which require help.<br>
67 You may also take a look into our bug tracker
68 <a href="https://bugs.gnunet.org/search.php?tag_string=beginner">for beginner-friendly issues</a>.
73 </p> 69 </p>
74 </div> 70 </div>
75 </div> 71 </div>
diff --git a/template/ev.html.j2 b/template/ev.html.j2
index d8589b11..812af3cc 100644
--- a/template/ev.html.j2
+++ b/template/ev.html.j2
@@ -1,5 +1,6 @@
1{% extends "common/base.j2" %} 1{% extends "common/base.j2" %}
2{% block body_content %} 2{% block body_content %}
3<main id="maincontent">
3<article class="container"> 4<article class="container">
4 5
5 <header> 6 <header>
@@ -40,7 +41,7 @@
40 to support GNUnet e.V. and in particularly contribute to the 41 to support GNUnet e.V. and in particularly contribute to the
41 technical development within their means. For further 42 technical development within their means. For further
42 details, we refer to the 43 details, we refer to the
43 <a href="https://git.gnunet.org/gnunet-ev.git/">Satzung</a> 44 <a href="https://git.gnunet.org/gnunet-ev.git/">Satzung (Charter)</a>
44 (currently only available in German, translations welcome). 45 (currently only available in German, translations welcome).
45 {% endtrans %} 46 {% endtrans %}
46 </p> 47 </p>
@@ -52,18 +53,18 @@
52 <h3>{{ _("Governance") }}</h3> 53 <h3>{{ _("Governance") }}</h3>
53 <p> 54 <p>
54 {% trans %} 55 {% trans %}
55 You can find our "Satzung", and the list of members under 56 You can find our charter, and the list of members under
56 <a href="https://git.gnunet.org/gnunet-ev.git/tree/satzung.tex">https://git.gnunet.org/gnunet-ev.git/tree/satzung.tex</a>. 57 <a href="https://git.gnunet.org/gnunet-ev.git/tree/satzung.tex">https://git.gnunet.org/gnunet-ev.git/tree/satzung.tex</a>.
57 The current board consists of: 58 The current board consists of:
58 <dl><dt>Vorsitz</dt> 59 <dl><dt>Vorsitz</dt>
59 <dd><a href="https://schanzen.eu">Martin Schanzenbach</a></dd> 60 <dd><a href="https://schanzen.eu">Martin Schanzenbach</a></dd>
60 <dt>stellvertretender Vorsitz</dt> 61 <dt>Stellvertretender Vorsitz</dt>
61 <dd>t3sserakt</dd> 62 <dd>Florian Felgenhauer</dd>
62 <dt>Kassenwart</dt> 63 <dt>Kassenwart</dt>
63 <dd>Florian Dold</dd> 64 <dd>Florian Dold</dd>
64 <dt>Beisitzer</dt> 65 <dt>Beisitzer</dt>
65 <dd> 66 <dd>
66 <a href="https://grothoff.org/christian/">Christian Grothoff</a>, ch3 67 <a href="https://grothoff.org/christian/">Christian Grothoff</a>, Julius Bünger
67 </dd> 68 </dd>
68 </dl> 69 </dl>
69 {% endtrans %} 70 {% endtrans %}
@@ -83,7 +84,7 @@
83 84
84 <div class="row"> 85 <div class="row">
85 <div class="col-md"> 86 <div class="col-md">
86 <h3>{{ _("Support Us!") }}</h3> 87 <h3 id="support">{{ _("Support Us!") }}</h3>
87 <p> 88 <p>
88 {% trans %} 89 {% trans %}
89 Everybody is welcome to support us via donations. For 90 Everybody is welcome to support us via donations. For
diff --git a/template/faq.html.j2 b/template/faq.html.j2
index f23a9d7a..66da7fc2 100644
--- a/template/faq.html.j2
+++ b/template/faq.html.j2
@@ -1,65 +1,1014 @@
1{% extends "common/base.j2" %} 1{% extends "common/base.j2" %}
2{% block body_content %} 2{% block body_content %}
3<main id="maincontent">
3<div class="container-fluid"> 4<div class="container-fluid">
4 <div class="container text-center"> 5 <div class="container text-center">
5 <h1>FAQs<h1> 6 <h1>FAQs<h1>
6 <h2><i>This page is a work-in-progress</i></h2>
7 </div>
8 </div> 7 </div>
8</div>
9<div class="container"> 9<div class="container">
10 <article> 10 <div class="row">
11 <section> 11 <div class="col-2 d-none d-lg-block"><!-- for large viewports show menu for better orientation -->
12 <h3>{{ _("Is GNUnet ready for use on production systems?") }}</h3> 12 <nav class="nav subnav position-fixed flex-column border-right" style="position:fixed">
13 <p> 13 <a class="nav-link" href="#general">{{ _("General") }}</a>
14 {% trans %} 14 <a class="nav-link" href="#features">{{ _("Features") }}</a>
15 A: GNUnet is still undergoing major development. It is largely not yet ready 15 <a class="nav-link" href="#gns">GNU Name System</a>
16 for usage beyond developers. Your mileage will vary depending on the 16 <a class="nav-link" href="#errors">{{ _("Error messages") }}</a>
17 functionality you use, but you will always likely run into issues with 17 <a class="nav-link" href="#fs">{{ _("File-sharing") }}</a>
18 our current low-level transport system. We are currently in the process of 18 <a class="nav-link" href="#contrib">{{ _("Contributing") }}</a>
19 rewriting it (Project &quot;Transport Next Generation [TNG]&quot;) 19 </nav>
20 {% endtrans %} 20 </div>
21 </p> 21
22 </section> 22 <div class="col">
23 <section> 23 <article>
24 <h3>{{ _("Is GNUnet build using distributed ledger technologies?") }}</h3> 24 <h2><a name="general" class="subnav-anchor"></a>{{ _("General") }}</h2>
25 <p> 25 General questions about the project.
26 {% trans %} 26 <section>
27 A: No. GNUnet is a new network protocol stack for building secure, 27 <h3>{{ _("What do I do if my question is not answered here?") }}</h3>
28 distributed, and privacy-preserving applications. 28 <p>
29 While a ledger could be built using GNUnet, we currently have no plans in 29 {% trans %}
30 doing so. 30 A: There are many other sources of information. You can read additional
31 {% endtrans %} 31 documentation or ask the question on the help-gnunet@gnu.org mailing list.
32 </p> 32 {% endtrans %}
33 </section> 33 </p>
34 <section> 34 </section>
35 <h3>{{ _("I receive many &quot;WARNING Calculated flow delay for X at Y for Z&quot;. Should I worry?") }}</h3> 35 <section>
36 <p> 36 <h3>{{ _("When are you going to release the next version?") }}</h3>
37 {% trans %} 37 <p>
38 A: Right now, this is expected and a known cause for high 38 {% trans %}
39 latency in GNUnet. We have started a major rewrite to address 39 A: The general answer is, when it is ready. A better answer may be: earlier
40 this and other problems, but until the Transport Next 40 if you contribute (test, debug, code, document). Every release will be
41 Generation (TNG) is ready, these warnings are expected. 41 anounced on the info-gnunet@gnu.org mailing list and on
42 {% endtrans %} 42 <a href="https://planet.gnu.org">planet GNU</a>. You can subscribe to the
43 </p> 43 mailing list or the RSS feed of this site to automatically receive a
44 </section> 44 notification.
45 <section> 45 {% endtrans %}
46 <h3>{{ _("Is there a graphical user interface?") }}</h3> 46 </p>
47 <p> 47 </section>
48 {% trans %} 48 <section>
49 A: gnunet-gtk is a separate download. The package 49 <h3>{{ _("Is the code free?") }}</h3>
50 contains various GTK+ based graphical interfaces, including a 50 <p>
51 graphical tool for configuration. 51 {% trans %}
52 {% endtrans %} 52 A: GNUnet is free software, available under the
53 </p> 53 <a href="https://www.gnu.org/licenses/agpl-3.0.en.html">GNU Affero Public License (AGPL)</a>.
54 </section> 54 {% endtrans %}
55 </article> 55 </p>
56<!-- 56 </section>
57<h2>{{ ("Q?") }}</h2> 57 <section>
58 58 <h3>{{ _("Are there any known bugs?") }}</h3>
59<h2>{{ ("Q?") }}</h2> 59 <p>
60 60 {% trans %}
61<h2>{{ ("Q?") }}</h2> 61 A: We track the list of currently known bugs in the
62--> 62 <a href="https://bugs.gnunet.org/">Mantis system</a>.
63
64 Some bugs are occasionally reported directly to developers or the developer
65 mailing list. This is discouraged since developers often do not have the time
66 to feed these bugs back into the Mantis database. Please report bugs directly
67 to the bug tracking system. If you believe a bug is sensitive, you can set its
68 view status to private (this should be the exception).
69 {% endtrans %}
70 </p>
71 </section>
72 <section>
73 <h3>{{ _("Is there a graphical user interface?") }}</h3>
74 <p>
75 {% trans %}
76 A: gnunet-gtk is a separate download. The package
77 contains various GTK+ based graphical interfaces, including a
78 graphical tool for configuration.
79 {% endtrans %}
80 </p>
81 </section>
82 <section>
83 <h3>{{ _("Why does gnunet-service-nse create a high CPU load?") }}</h3>
84 <p>
85 {% trans %}
86 A: The gnunet-service-nse process will initially compute a so-called
87 &quot;proof-of-work&quot; which is used to convince the network that your
88 peer is real (or, rather, make it expensive for an adversary to mount a Sybil
89 attack on the network size estimator). The calculation is expected to take a
90 few days, depending on how fast your CPU is. If the CPU load is creating a
91 problem for you, you can set the value &quot;WORKDELAY&quot; in the
92 &quot;nse&quot; section of
93 your configuration file to a higher value. The default is &quot;5 ms&quot;.
94 {% endtrans %}
95 </p>
96 </section>
97
98 <section>
99 <h3>{{ _("How does GNUnet compare to Tor?") }}</h3>
100 <p>
101 {% trans %}
102 A: Tor focuses on anonymous communication and censorship-resistance for TCP
103 connections and, with the Tor Browser Bundle, for the Web in particular.
104 GNUnet does not really have one focus; our theme is secure decentralized
105 networking, but that is too broad to be called a focus.
106 {% endtrans %}
107 </p>
108 </section>
109
110 <section>
111 <h3>{{ _("How does GNUnet compare to I2P?") }}</h3>
112 <p>
113 {% trans %}
114 A: Both GNUnet and I2P want to build a better, more secure, more decentralized
115 Internet. However, on the technical side, there are almost no overlaps.
116 <br><br>
117 I2P is written in Java, and has (asymmetric) tunnels using onion (or garlic)
118 routing as the basis for various (anonymized) applications. I2P is largely used
119 via a Web frontend.
120 {% endtrans %}
121 </p>
122 </section>
123 <section>
124 <h3>{{ _("Is GNUnet ready for use on production systems?") }}</h3>
125 <p>
126 {% trans %}
127 A: GNUnet is still undergoing major development. It is largely not yet ready
128 for usage beyond developers. Your mileage will vary depending on the
129 functionality you use, but you will always likely run into issues with
130 our current low-level transport system. We are currently in the process of
131 rewriting it (Project &quot;Transport Next Generation [TNG]&quot;)
132 {% endtrans %}
133 </p>
134 </section>
135 <section>
136 <h3>{{ _("Is GNUnet build using distributed ledger technologies?") }}</h3>
137 <p>
138 {% trans %}
139 A: No. GNUnet is a new network protocol stack for building secure,
140 distributed, and privacy-preserving applications.
141 While a ledger could be built using GNUnet, we currently have no plans in
142 doing so.
143 {% endtrans %}
144 </p>
145 </section>
146
147
148 <hr/>
149 <h2><a name="features" class="subnav-anchor"></a>{{ _("Features") }}</h2>
150 <section>
151 <h3>{{ _("What can I do with GNUnet?") }}</h3>
152 <p>
153 {% trans %}
154 A: GNUnet is a peer-to-peer framework, by which we mostly mean that it can do
155 more than just one thing. Naturally, the implementation and documentation of
156 some of the features that exist are more advanced than others.
157 {% endtrans %}
158 </p>
159 <p>
160 {% trans %}
161 For users, GNUnet offers anonymous and non-anonymous file-sharing, a fully
162 decentralized and censorship-resistant replacement for DNS and a mechanism for
163 IPv4-IPv6 protocol translation and tunneling (NAT-PT with DNS-ALG).
164 {% endtrans %}
165 See also: <a href="{{ url_localized('applications.html') }}">Applications</a>.
166
167 </p>
168 </section>
169
170 <section>
171 <h3>{{ _("Is it possible to surf the WWW anonymously with GNUnet?") }}</h3>
172 <p>
173 {% trans %}
174 A: It is not possible use GNUnet for anonymous browsing at this point.
175 We recommend that you use Tor for anonymous surfing.
176 {% endtrans %}
177 </p>
178 </section>
179
180 <section>
181 <h3>{{ _("Is it possible to access GNUnet via a browser as an anonymous WWW?") }}</h3>
182 <p>
183 {% trans %}
184 A: There is currently no proxy (like fproxy in Freenet) for GNUnet that would
185 make it accessible via a browser. It is possible to build such a proxy and
186 all one needs to know is the protocol used between the browser and the proxy and
187 the GNUnet code for file-sharing.
188 {% endtrans %}
189 </p>
190 </section>
191
192 <section>
193 <h3>{{ _("Is there a graphical user interface?") }}</h3>
194 <p>
195 {% trans %}
196 A: There are actually a few graphical user interfaces for different functions.
197 gnunet-setup is to configure GNUnet, and gnunet-fs-gtk is for file-sharing.
198 There are a few other gnunet-XXX-gtk GUIs of lesser importance.
199 Note that in order to obtain the GUI, you need to install the gnunet-gtk
200 package, which is a separate download.
201
202 gnunet-gtk is a meta GUI that integrates most of the other GUIs in one window.
203 One exception is gnunet-setup, which must still be run separately at this time
204 (as setup requires the peer to be stopped).
205 {% endtrans %}
206 </p>
207 </section>
208
209 <section>
210 <h3>{{ _("Which operating systems does GNUnet run on?") }}</h3>
211 <p>
212 {% trans %}
213 A: GNUnet is being developed and tested primarily under Debian GNU/Linux.
214 Furthermore, we regularly build and test GNUnet on Fedora, Ubuntu, Arch,
215 FreeBSD and macOS.
216
217 We have reports of working versions on many other GNU/Linux distributions;
218 in the past we had reports of working versions on NetBSD, OpenBSD and Solaris.
219 However, not all of those reports are recent, so if you cannot get GNUnet to
220 work on those systems please let us know.
221 {% endtrans %}
222 </p>
223 </section>
224
225 <hr/>
226 <h2><a name="gns" class="subnav-anchor"></a>GNU Name System</h2>
227 <section>
228 <h3>{{ _("Who runs the GNS root zone?") }}</h3>
229 <p>
230 {% trans %}
231 A: Short answer: you. The long answer is the GNUnet will ship with a
232 default configuration of top-level domains. The governance of this default
233 configuration is not yet established. In any case, the user will be able
234 to modify this configuration at will. We expect normal users to have
235 no need to edit their own GNS zone(s) unless they host services themselves.
236 {% endtrans %}
237 </p>
238 </section>
239
240 <section>
241 <h3>{{ _("Where is the per-user GNS database kept?") }}</h3>
242 <p>
243 {% trans %}
244 A: The short answer is that the database is kept at the user's GNUnet peer.
245 Now, a user may run multiple GNUnet peers, in which case the database could be
246 kept at each peer (however, we don't have code for convenient replication).
247 Similarly, multiple GNUnet peers can share one instance of the database ---
248 the &quot;gnunet-service-namestore&quot; can be accessed from remote
249 (via TCP). The actual data can be stored in a Postgres database, for which
250 various replication options are again applicable. Ultimately, there are many
251 options for how users can store (and secure) their GNS database.
252 {% endtrans %}
253 </p>
254 </section>
255
256
257 <section>
258 <h3>{{ _("What is the expected average size of a GNS namestore database?") }}</h3>
259 <p>
260 {% trans %}
261 A: Pretty small. Based on our user study where we looked at browser histories
262 and the number of domains visited, we expect that GNS databases will only
263 grow to a few tens of thousands of entries, small enough to fit even on mobile
264 devices.
265 {% endtrans %}
266 </p>
267 </section>
268
269 <section>
270 <h3>{{ _("Is GNS resistant to the attacks on DNS used by the US?") }}</h3>
271 <p>
272 {% trans %}
273 A: We believe so, as there is no entity that any government could force to
274 change the mapping for a name except for each individual user (and then the
275 changes would only apply to the names that this user is the authority for).
276 So if everyone used GNS, the only practical attack of a government would be to
277 force the operator of a server to change the GNS records for his server to
278 point elsewhere. However, if the owner of the private key for a zone is
279 unavailable for enforcement, the respective zone cannot be changed and any
280 other zone delegating to this zone will achieve proper resolution.
281 {% endtrans %}
282 </p>
283 </section>
284
285 <section>
286 <h3>{{ _("How does GNS compare to other name systems?") }}</h3>
287 <p>
288 {% trans %}
289 A: A scientific paper on this topic
290 <a href="https://grothoff.org/christian/ns2018.pdf">has been published
291 </a> and below is a table from the publication.
292 For detailed descriptions please refer to the paper.
293 {% endtrans %}
294 <table>
295 <thead>
296 <td></td>
297 <td>MitM manipulation</td>
298 <td>Zone walk</td>
299 <td>Client observation (network)</td>
300 <td>Client observation (operator)</td>
301 <td>Traffic amplification</td>
302 <td>Censorship/legal attacks</td>
303 <td>Ease of migration</td>
304 <thead>
305 <tbody>
306 <tr>
307 <td>DNS</td>
308 <td><i class="fa fa-times"></i></td>
309 <td><i class="fa fa-check"></i></td>
310 <td><i class="fa fa-times"></i></td>
311 <td><i class="fa fa-times"></i></td>
312 <td><i class="fa fa-times"></i></td>
313 <td><i class="fa fa-times"></i></td>
314 <td>+++</td>
315 </tr>
316 <tr>
317 <td>DNSSEC</td>
318 <td><i class="fa fa-check"></i></td>
319 <td><i class="fa fa-times"></i></td>
320 <td><i class="fa fa-times"></i></td>
321 <td><i class="fa fa-times"></i></td>
322 <td><i class="fa fa-times"></i></td>
323 <td><i class="fa fa-times"></i></td>
324 <td>+</td>
325 </tr>
326 <tr>
327 <td>DNSCurve</td>
328 <td><i class="fa fa-check"></i></td>
329 <td><i class="fa fa-check"></i></td>
330 <td><i class="fa fa-check"></i></td>
331 <td><i class="fa fa-times"></i></td>
332 <td><i class="fa fa-times"></i></td>
333 <td><i class="fa fa-times"></i></td>
334 <td>+</td>
335 </tr>
336 <tr>
337 <td>DoT/DoH</td>
338 <td><i class="fa fa-check"></i></td>
339 <td>n/a</td>
340 <td><i class="fa fa-check"></i></td>
341 <td><i class="fa fa-times"></i></td>
342 <td><i class="fa fa-check"></i></td>
343 <td><i class="fa fa-times"></i></td>
344 <td>+</td>
345 </tr>
346 <tr>
347 <td>Confid. DNS</td>
348 <td><i class="fa fa-times"></i></td>
349 <td>n/a</td>
350 <td><i class="fa fa-check"></i></td>
351 <td><i class="fa fa-times"></i></td>
352 <td><i class="fa fa-times"></i></td>
353 <td><i class="fa fa-times"></i></td>
354 <td>++</td>
355 </tr>
356 <tr>
357 <td>Namecoin</td>
358 <td><i class="fa fa-check"></i></td>
359 <td><i class="fa fa-times"></i></td>
360 <td><i class="fa fa-check"></i></td>
361 <td><i class="fa fa-check"></i></td>
362 <td><i class="fa fa-check"></i></td>
363 <td><i class="fa fa-check"></i></td>
364 <td>-</td>
365 </tr>
366 <tr>
367 <td>GNS</td>
368 <td><i class="fa fa-check"></i></td>
369 <td><i class="fa fa-check"></i></td>
370 <td><i class="fa fa-check"></i></td>
371 <td><i class="fa fa-check"></i></td>
372 <td><i class="fa fa-check"></i></td>
373 <td><i class="fa fa-check"></i></td>
374 <td>--</td>
375 </tr>
376 <tr>
377 <td>RAINS</td>
378 <td><i class="fa fa-check"></i></td>
379 <td><i class="fa fa-times"></i></td>
380 <td><i class="fa fa-check"></i></td>
381 <td><i class="fa fa-times"></i></td>
382 <td><i class="fa fa-check"></i></td>
383 <td><i class="fa fa-times"></i></td>
384 <td>--</td>
385 </tr>
386
387 </tbody>
388 </table>
389 </p>
390 </section>
391 <section>
392 <h3>{{ _("What is the difference between GNS and CoDoNS?") }}</h3>
393 <p>
394 {% trans %}
395 A: CoDoNS decentralizes the DNS database (using a DHT) but preserves the
396 authority structure of DNS. With CoDoNS, IANA/ICANN are still in charge, and
397 there are still registrars that determine who owns a name.
398 <br><br>
399 With GNS, we decentralize the database and also decentralize the
400 responsibility for naming: each user runs their own personal root zone and is
401 thus in complete control of the names they use. GNS also has many additional
402 features (to keep names short and enable migration) which don't even make
403 sense in the context of CoDoNS.
404
405 {% endtrans %}
406 </p>
407 </section>
408
409 <section>
410 <h3>{{ _("What is the difference between GNS and SocialDNS?") }}</h3>
411 <p>
412 {% trans %}
413 A: Like GNS, SocialDNS allows each user to create DNS mappings. However, with
414 SocialDNS the mappings are shared through the social network and subjected to
415 ranking. As the social relationships evolve, names can thus change in
416 surprising ways.
417 <br><br>
418 With GNS, names are primarily shared via delegation, and thus mappings will
419 only change if the user responsible for the name (the authority) manually
420 changes the record.
421 {% endtrans %}
422 </p>
423 </section>
424
425 <section>
426 <h3>{{ _("What is the difference between GNS and ODDNS?") }}</h3>
427 <p>
428 {% trans %}
429 A: ODDNS is primarily designed to bypass the DNS root zone and the TLD
430 registries (such as those for ".com" and ".org"). Instead of using those,
431 each user is expected to maintain a database of (second-level) domains
432 (like "gnu.org") and the IP addresses of the respective name servers.
433 Resolution will fail if the target name servers change IPs.
434 {% endtrans %}
435 </p>
436 </section>
437
438 <section>
439 <h3>{{ _("What is the difference between GNS and Handshake?") }}</h3>
440 <p>
441 {% trans %}
442 A: Handshake is a blockchain-based method for root zone governance.
443 Hence, it does not address the name resolution process itself but
444 delegates resolution into DNS after the initial TLD resolution.
445 Not taking sustainablility considerations into account, Handshake
446 could be used as an additional supporting GNS root zone governance
447 model, but we currently do not have such plans in mind.
448 {% endtrans %}
449 </p>
450 </section>
451
452 <section>
453 <h3>{{ _("What is the difference between GNS and TrickleDNS?") }}</h3>
454 <p>
455 {% trans %}
456 A: TrickleDNS pushes (&quot;critical&quot;) DNS records between DNS resolvers
457 of participating domains to provide &quot;better availability, lower query
458 resolution times, and faster update propagation&quot;. Thus TrickleDNS is
459 focused on defeating attacks on the availability (and performance) of record
460 propagation in DNS, for example via DDoS attacks on DNS root servers.
461 TrickleDNS is thus concerned with how to ensure distribution of authoritative
462 records, and authority remains derived from the DNS hierarchy.
463 {% endtrans %}
464 </p>
465 </section>
466
467 <section>
468 <h3>{{ _("Does GNS require real-world introduction (secure PKEY exchange) in the style of the PGP web of trust?") }}</h3>
469 <p>
470 {% trans %}
471 A: For security, it is well known that an initial trust path between the two
472 parties must exist. However, for applications where this is not required,
473 weaker mechanisms can be used. For example, we have implemented a
474 first-come-first-served (FCFS) authority which allows arbitrary users to
475 register arbitrary names. The key of this authority is included with every
476 GNUnet installation. Thus, any name registered with FCFS is in fact global and
477 requires no further introduction. However, the security of these names
478 depends entirely on the trustworthiness of the FCFS authority.
479 The authority can be queried under the &quot;.pin&quot; TLD.
480 {% endtrans %}
481 </p>
482 </section>
483
484 <section>
485 <h3>{{ _("How can a legitimate domain owner tell other people to not use his name in GNS?") }}</h3>
486 <p>
487 {% trans %}
488 A: Names have no owners in GNS, so there cannot be a &quot;legitimate&quot;
489 domain owner. Any user can claim any name (as his preferred name or
490 &quot;pseudonym&quot;) in his NICK record. Similarly, all other users can
491 choose to ignore this preference and use a name of their choice (or even
492 assign no name) for this user.
493 {% endtrans %}
494 </p>
495 </section>
496
497 <section>
498 <h3>{{ _("Did you consider the privacy implications of making your personal GNS zone visible?") }}</h3>
499 <p>
500 {% trans %}
501 A: Each record in GNS has a flag &quot;private&quot;. Records are shared with
502 other users (via DHT or zone transfers) only if this flag is not set.
503 Thus, users have full control over what information about their zones is made
504 public.
505 {% endtrans %}
506 </p>
507 </section>
508
509 <section>
510 <h3>{{ _("Are \"Legacy Host\" (LEHO) records not going to be obsolete with IPv6?") }}</h3>
511 <p>
512 {% trans %}
513 A: The question presumes that (a) virtual hosting is only necessary because of
514 IPv4 address scarcity, and (b) that LEHOs are only useful in the context of
515 virtual hosting. However, LEHOs are also useful to help with X.509 certificate
516 validation (as they specify for which legacy hostname the certificate should
517 be valid). Also, even with IPv6 fully deployed and &quot;infinite&quot; IP
518 addresses being available, we're not sure that virtual hosting would
519 disappear. Finally, we don't want to have to wait for IPv6 to become
520 commonplace, GNS should work with today's networks.
521 {% endtrans %}
522 </p>
523 </section>
524
525 <section>
526 <h3>{{ _("Why does GNS not use a trust metric or consensus to determine globally unique names?") }}</h3>
527 <p>
528 {% trans %}
529 A: Trust metrics have the fundamental problem that they have thresholds.
530 As trust relationships evolve, mappings would change their meaning as they
531 cross each others thresholds. We decided that the resulting unpredictability
532 of the resolution process was not acceptable. Furthermore, trust and consensus
533 might be easy to manipulate by adversaries.
534 {% endtrans %}
535 </p>
536 </section>
537
538 <section>
539 <h3>{{ _("How do you handle compromised zone keys in GNS?") }}</h3>
540 <p>
541 {% trans %}
542 A: The owner of a private key can create a revocation message. This one can
543 then be flooded throughout the overlay network, creating a copy at all peers.
544 Before using a public key, peers check if that key has been revoked.
545 All names that involve delegation via a revoked zone will then fail to
546 resolve. Peers always automatically check for the existence of a revocation
547 message when resolving names.
548 {% endtrans %}
549 </p>
550 </section>
551
552 <section>
553 <h3>{{ _("Could the signing algorithm of GNS be upgraded in the future?") }}</h3>
554 <p>
555 {% trans %}
556 A: Yes. In our efforts to standardize GNS, we have already modified the protocol
557 to support alternative delegation records.
558 <br>
559 <br>
560 Naturally, deployed GNS implementations would have to be updated to support
561 the new signature scheme. The new scheme can then be run in parallel with
562 the existing system by using a new record type to indicate the use of a
563 different cipher system.
564 {% endtrans %}
565 </p>
566 </section>
567
568 <section>
569 <h3>{{ _("How can a GNS zone maintain several name servers, e.g. for load balancing?") }}</h3>
570 <p>
571 {% trans %}
572 A: We don't expect this to be necessary, as GNS records are stored (and
573 replicated) in the R5N DHT. Thus the authority will typically not be contacted
574 whenever clients perform a lookup. Even if the authority goes (temporarily)
575 off-line, the DHT will cache the records for some time. However, should having
576 multiple servers for a zone be considered truly necessary, the owner of the
577 zone can simply run multiple peers (and share the zone's key and database
578 among them).
579 {% endtrans %}
580 </p>
581 </section>
582
583 <section>
584 <h3>{{ _("Why do you believe it is worth giving up unique names for censorship resistance?") }}</h3>
585 <p>
586 {% trans %}
587 A: The GNU Name system offers an alternative to DNS that is censorship
588 resistant. As with any security mechanism, this comes at a cost (names are not
589 globally unique). To draw a parallel, HTTPS connections use more bandwidth and
590 have higher latency than HTTP connections. Depending on your application,
591 HTTPS may not be worth the cost. However, for users that are experiencing
592 censorship (or are concerned about it), giving up globally unique names may
593 very well be worth the cost. After all, what is a &quot;globally&quot; unique
594 name worth, if it does not resolve?
595 {% endtrans %}
596 </p>
597 </section>
598
599 <section>
600 <h3>{{ _("Why do you say that DNS is 'centralized' and 'distributed'?") }}</h3>
601 <p>
602 {% trans %}
603 A: We say that DNS is 'centralized' because it has a central component /
604 central point of failure --- the root zone and its management by IANA/ICANN.
605 This centralization creates vulnerabilities. For example, the US government
606 was able to reassign the management of the country-TLDs of Afganistan and Iraq
607 during the wars at the beginning of the 21st century.
608 {% endtrans %}
609 </p>
610 </section>
611
612 <section>
613 <h3>{{ _("How does GNS protect against layer-3 censorship?") }}</h3>
614 <p>
615 {% trans %}
616 A: GNS does not directly help with layer-3 censorship, but it does help
617 indirectly in two ways:
618
619 <ol>
620 <li> Many websites today use virtual hosting, so blocking a particular IP
621 address causes much more collateral damage than blocking a DNS name.
622 It thus raises the cost of censorship.</li>
623 <li> Existing layer-3 circumvention solutions (such as Tor) would benefit from
624 a censorship resistant naming system. Accessing Tor's &quot;.onion&quot;
625 namespace currently requires users to use unmemorable cryptographic
626 identifiers. With nicer names, Tor and tor2web-like services would be even
627 easier to use.
628 </ol>
629 {% endtrans %}
630 </p>
631 </section>
632
633 <section>
634 <h3>{{ _("Does GNS work with search engines?") }}</h3>
635 <p>
636 {% trans %}
637 A: GNS creates no significant problems for search engines, as they can use GNS
638 to perform name resolution as well as any normal user. Naturally, while we
639 typically expect normal users to install custom software for name resolution,
640 this is unlikely to work for search engines today. However, the DNS2GNS
641 gateway allows search engines to use DNS to resolve GNS names, so they can
642 still index GNS resources. However, as using DNS2GNS gateways breaks the
643 cryptographic chain of trust, legacy search engines will obviously not obtain
644 censorship-resistant names.
645 {% endtrans %}
646 </p>
647 </section>
648
649 <section>
650 <h3>{{ _("How does GNS compare to the Unmanaged Internet Architecture (UIA)?") }}</h3>
651 <p>
652 {% trans %}
653 A: UIA and GNS both share the same basic naming model, which actually
654 originated with Rivest's SDSI. However, UIA is not concerned about integration
655 with legacy applications and instead focuses on universal connectivity between
656 a user's many machines. In contrast, GNS was designed to interoperate with DNS
657 as much as possible, and to also work as much as possible with the existing
658 Web infrastructure. UIA is not at all concerned about legacy systems (clean
659 slate).
660 {% endtrans %}
661 </p>
662 </section>
663
664 <section>
665 <h3>{{ _("Doesn't GNS increase the trusted-computing base compared to DNS(SEC)?") }}</h3>
666 <p>
667 {% trans %}
668 A: First of all, in GNS you can explicitly see the trust chain, so you know if
669 a name you are resolving belongs to a friend, or a friend-of-a-friend, and can
670 thus decide how much you trust the result. Naturally, the trusted-computing
671 base (TCB) can become arbitrarily large this way --- however, given the name
672 length restriction, for an individual name it is always less than about 128
673 entities.
674 {% endtrans %}
675 </p>
676 </section>
677
678 <section>
679 <h3>{{ _("How does GNS handle SRV/TLSA records where service and protocol are part of the domain name?") }}</h3>
680 <p>
681 {% trans %}
682 A: When GNS splits a domain name into labels for resolution, it detects the
683 &quot;_Service._Proto&quot; syntax, converts &quot;Service&quot; to the
684 corresponding port number and &quot;Proto&quot; to the corresponding protocol
685 number. The rest of the name is resolved as usual. Then, when the result is
686 presented, GNS looks for the GNS-specific &quot;BOX&quot; record type.
687 A BOX record is a record that contains another record (such as SRV or TLSA
688 records) and adds a service and protocol number (and the original boxed record
689 type) to it.
690 {% endtrans %}
691 </p>
692 </section>
693
694 <hr/>
695 <h2><a name="errors" class="subnav-anchor"></a>{{ _("Error messages") }}</h2>
696 <section>
697 <h3>{{ _("I receive many &quot;WARNING Calculated flow delay for X at Y for Z&quot;. Should I worry?") }}</h3>
698 <p>
699 {% trans %}
700 A: Right now, this is expected and a known cause for high
701 latency in GNUnet. We have started a major rewrite to address
702 this and other problems, but until the Transport Next
703 Generation (TNG) is ready, these warnings are expected.
704 {% endtrans %}
705 </p>
706 </section>
707 <section>
708 <h3>{{ _("Error opening `/dev/net/tun': No such file or directory?") }}</h3>
709 <p>
710 {% trans %}
711 A: If you get this error message, the solution is simple. Issue the following
712 commands (as root) to create the required device file
713 {% endtrans %}
714 <code class="block">
715 # mkdir /dev/net<br>
716 # mknod /dev/net/tun c 10 200<br>
717 </code>
718 </p>
719 </section>
720
721 <section>
722 <h3>{{ _("'iptables: No chain/target/match by that name.' (when running gnunet-service-dns)?") }}</h3>
723 <p>
724 {% trans %}
725 A: For GNUnet DNS, your iptables needs to have &quot;owner&quot; match
726 support.
727
728 This is accomplished by having the correct kernel options. Check if your
729 kernel has CONFIG_NETFILTER_XT_MATCH_OWNER set to either 'y' or 'm' (and the
730 module is loaded).
731 {% endtrans %}
732 </p>
733 </section>
734
735 <section>
736 <h3>{{ _("'Timeout was reached' when running PT on Fedora (and possibly others)?") }}</h3>
737 <p>
738 {% trans %}
739 A: If you get an error stating that the VPN timeout was reached, check if your
740 firewall is enabled and blocking the connections.
741 {% endtrans %}
742 </p>
743 </section>
744
745 <section>
746 <h3>{{ _("I'm getting an 'error while loading shared libraries: libgnunetXXX.so.X'") }}</h3>
747 <p>
748 {% trans %}
749 A: This error usually occurs when your linker fails to locate one of GNUnet's
750 libraries. This can have two causes. First, it is theoretically possible that
751 the library is not installed on your system; however, if you compiled GNUnet
752 the normal way and/or used a binary package, that is highly unlikely. The more
753 common cause is that you installed GNUnet to a directory that your linker
754 does not search. There are several ways to fix this that are described below.
755
756 If you are 'root' and you installed to a system folder (such as /usr/local),
757 you want to add the libraries to the system-wide search path. This is done by
758 adding a line "/usr/local/lib/" to /etc/ld.so.conf and running "ldconfig".
759 If you installed GNUnet to /opt or any other similar path, you obviously have
760 to change "/usr/local" accordingly.
761
762 If you do not have 'root' rights or if you installed GNUnet to say
763 "/home/$USER/", then you can explicitly tell your linker to search a
764 particular directory for libraries using the "LD_LIBRARY_PATH" environment
765 variable. For example, if you configured GNUnet using a prefix of
766 "$HOME/gnunet/" you want to run:
767 {% endtrans %}
768 </p>
769 <code>
770 $ export LD_LIBRARY_PATH=$HOME/gnunet/lib:$LD_LIBRARY_PATH<br>
771 $ export PATH=$HOME/gnunet/bin:$PATH
772 </code>
773 </p>
774 {% trans %}
775 to ensure GNUnet's binaries and libraries are found. In order to avoid having to do so each time, you can add the above lines (without the "$") to your .bashrc or .profile file. You will have to logout and login again to have this new profile be applied to all shells (including your desktop environment).
776 {% endtrans %}
777 </p>
778 </section>
779
780 <section>
781 <h3>{{ _("What error messages can be ignored?") }}</h3>
782 <p>
783 {% trans %}
784 A: Error messages flagged as "DEBUG" should be disabled in binaries
785 built for end-users and can always be ignored.
786
787 Error messages flagged as "INFO" always refer to harmless events that
788 require no action. For example, GNUnet may use an INFO message to
789 indicate that it is currently performing an expensive operation that
790 will take some time. GNUnet will also use INFO messages to display
791 information about important configuration values.
792 {% endtrans %}
793 </p>
794 </section>
795
796 <hr/>
797 <h2><a name="fs" class="subnav-anchor"></a>{{ _("File-sharing")}}</h2>
798 <section>
799 <h3>{{ _("How does GNUnet compare to other file-sharing applications?") }}</h3>
800 <p>
801 {% trans %}
802 A: As opposed to Napster, Gnutella, Kazaa, FastTrack, eDonkey and most
803 other P2P networks, GNUnet was designed with security in mind as the
804 highest priority. We intend on producing a network with comprehensive
805 security features. Many other P2P networks are open to a wide variety
806 of attacks, and users have little privacy. GNUnet is also Free
807 Software and thus the source code is available, so you do not have to
808 worry about being spied upon by the software. The following table
809 summarises the main differences between GNUnet and other systems.
810 The information is accurate to the best of our knowledge.
811 The comparison is difficult since there are sometimes differences
812 between various implementations of (almost) the same protocol.
813 In general, we pick a free implementation as the reference
814 implementation since it is possible to inspect the free code. Also,
815 all of these systems are changing over time and thus the data below
816 may not be up-to-date. If you find any flaws, please let us know.
817 Finally, the table is not saying terribly much (it is hard to compare
818 these systems this briefly), so if you want the real differences, read
819 the research papers (and probably the code).
820 {% endtrans %}
821 </p>
822 <table width="90%" border="0" cellpadding="0" cellspacing="0"><tbody><tr><th >Network</th>
823 <th ><a>GNUnet FS</a></th>
824 <th ><a>OneSwarm</th>
825 <th ><a>Napster</th>
826 <th ><a>Direct Connect</th>
827 <th ><a>FastTrack</th>
828 <th ><a>eDonkey</th>
829 <th ><a>Gnutella</th>
830 <th ><a>Freenet</th>
831 </tr><tr><th >Distributed Queries</th>
832 <td >yes</td>
833 <td >yes</td>
834 <td >no</td>
835 <td >hubs</td>
836 <td >super-peers</td>
837 <td >DHT (eMule)</td>
838 <td >yes</td>
839 <td >yes</td>
840 </tr><tr><th >Multisource Download</th>
841 <td >yes</td>
842 <td >yes</td>
843 <td >no</td>
844 <td >no</td>
845 <td >yes</td>
846 <td >yes</td>
847 <td >yes</td>
848 <td >no</td>
849 </tr><tr><th >Economics</th>
850 <td >yes</td>
851 <td >yes</td>
852 <td >no</td>
853 <td >no</td>
854 <td >no</td>
855 <td >yes</td>
856 <td >no</td>
857 <td >no</td>
858 </tr><tr><th >Anonymity</th>
859 <td >yes</td>
860 <td >maybe</td>
861 <td >no</td>
862 <td >no</td>
863 <td >no</td>
864 <td >no</td>
865 <td >no</td>
866 <td >yes</td>
867 </tr><tr><th >Language</th>
868 <td >C</td>
869 <td >Java</td>
870 <td >often C</td>
871 <td >C++</td>
872 <td >C</td>
873 <td >C++</td>
874 <td >often C</td>
875 <td >Java</td>
876 </tr><tr><th >Transport Protocol</th>
877 <td >UDP, TCP, SMTP, HTTP</td>
878 <td >TCP</td>
879 <td >TCP</td>
880 <td >TCP?</td>
881 <td >UDP, TCP</td>
882 <td >UDP, TCP</td>
883 <td >TCP</td>
884 <td >TCP</td>
885 </tr><tr><th >Query Format (UI)</th>
886 <td >keywords / CHK</td>
887 <td >filename / SHA?</td>
888 <td >keywords</td>
889 <td >filename, THEX</td>
890 <td >filename, SHA</td>
891 <td >filename, MD4?</td>
892 <td >filename, SHA</td>
893 <td >secret key, CHK</td>
894 </tr><tr><th >Routing</th>
895 <td >dynamic (indirect, direct)</td>
896 <td >static (indirect, direct)</td>
897 <td >always direct</td>
898 <td >always direct</td>
899 <td >always direct</td>
900 <td >always direct</td>
901 <td >always direct</td>
902 <td >always indirect</td>
903 </tr><tr><th >License</th>
904 <td >GPL</td>
905 <td >GPL</td>
906 <td >GPL (knapster)</td>
907 <td >GPL (Valknut)</td>
908 <td >GPL (giFT)</td>
909 <td >GPL (eMule)</td>
910 <td >GPL (gtk-gnutella)</td>
911 <td >GPL</td>
912 </tr></tbody>
913 </table>
914 <p>
915 {% trans %}
916 Another important point of reference are the various anonymous
917 peer-to-peer networks.
918 Here, there are differences in terms of application domain and how
919 specifically anonymity is achieved.
920 Anonymous routing is a hard research topic, so for a superficial
921 comparison like this one we focus on the latency.
922 Another important factor is the programming language.
923 Type-safe languages may offer certain security benefits; however, this may come at the cost of significant increases in resource consumption which in turn may reduce anonymity.
924 {% endtrans %}
925 </p>
926 </section>
927 <section>
928 <h3>{{ _("Are there any known attacks (on GNUnet's file-sharing application)?") }}</h3>
929 <p>
930 {% trans %}
931 A: Generally, there is the possibility of a known plaintext attack on
932 keywords, but since the user has control over the keywords that are
933 associated with the content he inserts, the user can take advantage of
934 the same techniques used to generate reasonable passwords to defend
935 against such an attack. In any event, we are not trying to hide
936 content; thus, unless the user is trying to insert information into
937 the network that can only be shared with a small group of people,
938 there is no real reason to try to obfuscate the content by choosing a
939 difficult keyword anyway.
940 {% endtrans %}
941 </p>
942 </section>
943 <section>
944 <h3>{{ _("What do you mean by anonymity?") }}</h3>
945 <p>
946 {% trans %}
947 A: Anonymity is the lack of distinction of an individual from a
948 (large) group. A central goal for anonymous file-sharing in GNUnet is
949 to make all users (peers) form a group and to make communications in
950 that group anonymous, that is, nobody (but the initiator) should be
951 able to tell which of the peers in the group originated the message.
952 In other words, it should be difficult to impossible for an adversary
953 to distinguish between the originating peer and all other peers.
954 {% endtrans %}
955 </p>
956 </section>
957 <section>
958 <h3>{{ _("What does my system do when participating in GNUnet file sharing?") }}</h3>
959 <p>
960 {% trans %}
961 A: In GNUnet you set up a node (a peer). It is identified by an ID (hash
962 of its public key) and has a number of addresses it is reachable by
963 (may have no addresses, for instance when it's behind a NAT).
964 You specify bandwidth limits (how much traffic GNUnet is allowed to
965 consume) and datastore quote (how large your on-disk block storage is)
966 . Your node will then proceed to connect to other nodes, becoming
967 part of the network.
968 {% endtrans %}
969 </p>
970 </section>
971
972 <hr/>
973 <h2><a name="contrib" class="subnav-anchor"></a>{{ _("Contributing")}}</h2>
974 <section>
975 <h3>{{ _("How can I help translate this webpage into other languages?") }}</h3>
976 <p>
977 {% trans %}
978 A: First, you need to register an account with our weblate system.
979 Please send an e-mail with the desired target language to
980 translators@gnunet.org or ask for help on the #gnunet chat on
981 irc.freenode.net. Typically someone with sufficient permissions will
982 then grant you access. Naturally, any abuse will result in the loss
983 of permissions.
984 {% endtrans %}
985 </p>
986 </section>
987
988 <section>
989 <h3>{{ _("I have some great idea for a new feature, what should I do?") }}</h3>
990 <p>
991 {% trans %}
992 A: Sadly, we have many more feature requests than we can possibly
993 implement. The best way to actually get a new feature implemented is
994 to do it yourself --- and to then send us a patch.
995 {% endtrans %}
996 </p>
997 </section>
998
999
1000 </article>
1001 </div> <!-- col -->
1002 </div> <!-- row-->
1003
1004
1005 <!--
1006 <h2>{{ ("Q?") }}</h2>
1007
1008 <h2>{{ ("Q?") }}</h2>
1009
1010 <h2>{{ ("Q?") }}</h2>
1011 -->
63 1012
64</div> 1013</div>
65{% endblock body_content %} 1014{% endblock body_content %}
diff --git a/template/glossary.html.j2 b/template/glossary.html.j2
index 789074e9..59b9276f 100644
--- a/template/glossary.html.j2
+++ b/template/glossary.html.j2
@@ -1,5 +1,6 @@
1{% extends "common/base.j2" %} 1{% extends "common/base.j2" %}
2{% block body_content %} 2{% block body_content %}
3<main id="maincontent">
3<article class="container"> 4<article class="container">
4 5
5 <header> 6 <header>
diff --git a/template/gns.html.j2 b/template/gns.html.j2
index 114e0d21..b824ae35 100644
--- a/template/gns.html.j2
+++ b/template/gns.html.j2
@@ -1,5 +1,6 @@
1{% extends "common/base.j2" %} 1{% extends "common/base.j2" %}
2{% block body_content %} 2{% block body_content %}
3<main id="maincontent">
3<article class="container"> 4<article class="container">
4 5
5 <header> 6 <header>
diff --git a/template/gnurl.html.j2 b/template/gnurl.html.j2
index 5556bd17..d0e1bb99 100644
--- a/template/gnurl.html.j2
+++ b/template/gnurl.html.j2
@@ -1,5 +1,6 @@
1{% extends "common/base.j2" %} 1{% extends "common/base.j2" %}
2{% block body_content %} 2{% block body_content %}
3<main id="maincontent">
3 <article class="container"> 4 <article class="container">
4 <header> 5 <header>
5 <h1>gnurl (libgnurl)</h1> 6 <h1>gnurl (libgnurl)</h1>
diff --git a/template/gsoc-2018-gnunet-webui.html.j2 b/template/gsoc-2018-gnunet-webui.html.j2
index ec65ee5b..69feea8c 100644
--- a/template/gsoc-2018-gnunet-webui.html.j2
+++ b/template/gsoc-2018-gnunet-webui.html.j2
@@ -1,5 +1,6 @@
1{% extends "common/base.j2" %} 1{% extends "common/base.j2" %}
2{% block body_content %} 2{% block body_content %}
3<main id="maincontent">
3 <article class="d-flex flex-column p-2 bd-highlight"> 4 <article class="d-flex flex-column p-2 bd-highlight">
4 <div class="container"> 5 <div class="container">
5 <div class="text-center"> 6 <div class="text-center">
diff --git a/template/gsoc.html.j2 b/template/gsoc.html.j2
index 6fdc58be..d324b7b2 100644
--- a/template/gsoc.html.j2
+++ b/template/gsoc.html.j2
@@ -1,5 +1,6 @@
1{% extends "common/base.j2" %} 1{% extends "common/base.j2" %}
2{% block body_content %} 2{% block body_content %}
3<main id="maincontent">
3<article class="container"> 4<article class="container">
4 5
5 <header> 6 <header>
@@ -9,7 +10,7 @@
9 <div class="row"> 10 <div class="row">
10 <div class="col-2 d-none d-lg-block"><!-- for large viewports show menu for better orientation --> 11 <div class="col-2 d-none d-lg-block"><!-- for large viewports show menu for better orientation -->
11 <nav class="nav subnav position-fixed flex-column border-right" style="position:fixed"> 12 <nav class="nav subnav position-fixed flex-column border-right" style="position:fixed">
12 <a class="nav-link" href="#current">{{ _("Ideas 2021") }}</a> 13 <a class="nav-link" href="#current">{{ _("Ideas 2024") }}</a>
13 <!--<a class="nav-link" href="#past">{{ _("Past projects") }}</a>--> 14 <!--<a class="nav-link" href="#past">{{ _("Past projects") }}</a>-->
14 <a class="nav-link" href="#finished">{{ _("Finished projects") }}</a> 15 <a class="nav-link" href="#finished">{{ _("Finished projects") }}</a>
15 </nav> 16 </nav>
@@ -20,13 +21,13 @@
20 <p> 21 <p>
21 {% trans %} 22 {% trans %}
22 As a GNU project, GNUnet has participated in the Google Summer of Code (GSoC) for a number of years. This page lists all current, past, and finished projects. 23 As a GNU project, GNUnet has participated in the Google Summer of Code (GSoC) for a number of years. This page lists all current, past, and finished projects.
23 If you want to participate and apply for any of the ideas for 2020 below or any past project which is not yet finished (or even your own idea), please contact us either in IRC or mailing list. 24 If you want to participate and apply for any of the ideas for 2020 below or any past project which is not yet finished (or even your own idea), please contact us on the mailing list.
24 {% endtrans %} 25 {% endtrans %}
25 </p> 26 </p>
26 </section> 27 </section>
27 28
28 29
29 <h2><a name="current" class="subnav-anchor"></a>{{ _("Ideas 2021") }}</h2> 30 <h2><a name="current" class="subnav-anchor"></a>{{ _("Ideas 2024") }}</h2>
30 31
31 <section> 32 <section>
32 <h4>Transport Next Generation (TNG): Communicator plugins</h4> 33 <h4>Transport Next Generation (TNG): Communicator plugins</h4>
@@ -54,56 +55,213 @@
54 55
55 We expect that this project can be worked on by multiple students 56 We expect that this project can be worked on by multiple students
56 as there are a lot of protocols to choose from. 57 as there are a lot of protocols to choose from.
58 A QUIC communicator has been written as part of GSoC 2023.
59
57 The tasks would consist of: 60 The tasks would consist of:
58 <ol> 61 <ol>
59 <li>Deciding which communicators to implement.</li> 62 <li>Deciding which communicators to implement.</li>
60 <li>Test the communicators.</li> 63 <li>Test the communicators.</li>
61 <li>Documentation.</li> 64 <li>Documentation.</li>
62 </ol> 65 </ol>
66 Expected outcome:
67 <ol>
68 <li>At least one new communicator.</li>
69 <li>Documentation of communicator protocol and how to use.</li>
70 </ol>
63 Advantageous skills/languages/frameworks: 71 Advantageous skills/languages/frameworks:
64 <ol> 72 <ol>
65 <li>C</li> 73 <li>C</li>
66 <li>Knowledge of HTTPS, QUIC, Bluetooth or WiFi.</li> 74 <li>Knowledge of HTTPS, Bluetooth or WiFi.</li>
67 </ol> 75 </ol>
68 <br/> 76 <br/>
69 <strong>Difficulty:</strong> Average, but depends on selected protocols. 77 <strong>Difficulty:</strong> Average, but depends on selected protocols and library.
78 <br/>
79 <strong>Size:</strong> 175h
70 <br/> 80 <br/>
71 <strong>Mentors:</strong> Martin Schanzenbach, t3sserakt 81 <strong>Mentors:</strong> Martin Schanzenbach, t3sserakt
72 {% endtrans %} 82 {% endtrans %}
73 </p> 83 </p>
74 </section> 84 </section>
85 <!-- Single-process peer -->
86 <section>
87 <h4>Single-process peer</h4>
88 <p>
89 {% trans %}
90 For special platforms such as Android, GNUnet must be usable
91 as a single-peer shared library.
92 Since GNUnet's design fundamentally revolves around a multi-process
93 model that communicate via IPCs, this requires a major change
94 in how GNUnet processes are instantiated.
95 A lot of progress in this direction has already been made but
96 some issues still remain.
75 97
98 The project tasks are to:
99 <ol>
100 <li>Get familiar with the GNUnet scheduler and envisioned single-process architecture.</li>
101 <li>Implement the single-process scheduler and main loop.</li>
102 <li>Demonstrate the functioning of this change (e.g. in a simple Android App)</li>
103 </ol>
104 Expected outcome:
105 <ol>
106 <li>A new single-process shared library to link against.</li>
107 <li>Documentation on when and how to build the single-process library.</li>
108 <li>A demo application.</li>
109 </ol>
110 Advantageous skills/languages/frameworks:
111 <ol>
112 <li>C</li>
113 <li>Socket programming</li>
114 <li>Scheduler and IO</li>
115 </ol>
116 <br/>
117 <strong>Difficulty:</strong> Difficult
118 <br/>
119 <strong>Size:</strong> 175h
120 <br/>
121 <strong>Mentors:</strong> Martin Schanzenbach
122 {% endtrans %}
123 </p>
124 </section>
125 <!-- Pluggable REST service components -->
76 <section> 126 <section>
77 <h4>REST: Multi-user support</h4> 127 <h4>Pluggable REST service components</h4>
78 <p> 128 <p>
79 {% trans %} 129 {% trans %}
80 The REST API currently only supports a single user system. 130 In the process of supporting a single-process GNUnet peer,
81 This is an issue as on multi-user systems, access control 131 the subsystem REST plugins have been consolidated into a single,
82 must be enfoced on a per-user basis. 132 large REST server that depends on all subsystems.
83 133
84 In this project, the REST service must be extended to 134 In this work, the student should define and implement a new architure
85 support user authentication. 135 that runs each subsystem's REST interface in its own service,
86 This includes the correct handling of user context switches. 136 thus making the REST service more resilient and easier to extend.
137
138 The planned projects tasks are to:
87 <ol> 139 <ol>
88 <li>Implement user authentication.</li> 140 <li>Get familiar with the existing REST service.</li>
89 <li>Test the access control.</li> 141 <li>Plan a multi-processes architecture for REST services.</li>
90 <li>Document the changes to the REST API.</li> 142 <li>Test and document the use of the new architecture / REST service layer.</li>
143 </ol>
144 Expected outcome:
145 <ol>
146 <li>A new multi-process REST service architecture.</li>
147 <li>The current REST service is modified or replaced with a multi-process service per subsystem.</li>
148 <li>Architecture and usage documentation.</li>
91 </ol> 149 </ol>
92 Advantageous skills/languages/frameworks: 150 Advantageous skills/languages/frameworks:
93 <ol> 151 <ol>
94 <li>C</li> 152 <li>C</li>
95 <li>Knowledge of user authentication subsystems on Linux/Unix.</li> 153 <li>Socket programming</li>
96 <li>REST/HTTP Authentication methods</li>
97 </ol> 154 </ol>
98 <br/> 155 <br/>
99 <strong>Difficulty:</strong> Beginner 156 <strong>Difficulty:</strong> Medium
157 <br/>
158 <strong>Size:</strong> 175h
100 <br/> 159 <br/>
101 <strong>Mentors:</strong> Martin Schanzenbach 160 <strong>Mentors:</strong> Martin Schanzenbach
102 {% endtrans %} 161 {% endtrans %}
103 </p> 162 </p>
104 </section> 163 </section>
164 <!-- GTK4 upgrade of gnunet-gtk -->
165 <section>
166 <h4>gnunet-gtk gtk4 upgrade</h4>
167 <p>
168 {% trans %}
169 Our GTK interface for GNUnet is written using libglade and Gtk.
170 It is currently designed and compatible with Gtk+3 with already possibly including a variety of deprecated functions.
171 In this project the requirements for a Gtk4 migration shall be worked out and the codebase migrated to the most recent stable Gtk4 release.
105 172
173 The difficulty of this project largely depends on the students
174 proficiency with build tools and Gtk.
175 There non-exhaustive task list would be:
176 <ol>
177 <li>Get familiar with the existing gnunet-gtk architecture.</li>
178 <li>Get familiar with Gtk4 and work out a migration path.</li>
179 <li>Migrate gnunet-gtk to gtk4.</li>
180 <li>(Optional) Ad-hoc UI improvements where applicable</li>
181 </ol>
182 Advantageous skills/languages/frameworks:
183 <ol>
184 <li>C</li>
185 <li>Gtk</li>
186 <li>User interfaces</li>
187 </ol>
188 <br/>
189 <strong>Difficulty:</strong> Medium
190 <br/>
191 <strong>Size:</strong> 350h
192 <br/>
193 <strong>Mentors:</strong> Martin Schanzenbach
194 {% endtrans %}
195 </p>
196 </section>
197
198 <section>
199 <h4>Integration of GNU Anastasis into the GNU Taler wallet</h4>
200 <p>
201 {% trans %}
202 The goal of this project is to enable users to store their GNU Taler wallet backup encryption keys in the GNU Anastasis distributed key backup and recovery system, and to use GNU Taler to pay GNU Anastasis service providers for key storage and recovery. The project will focus on implementing the GNU Anastasis user interface on Android inspired by the existing Gtk+ and WebUI and integrating the result with the rest of the GNU Taler Android App.
203 {% endtrans %}
204 <p>
205 {% trans %}
206 <strong>Mentors:</strong> Christian Grothoff (GNU Anastasis) and Florian Dold (GNU Taler)
207 {% endtrans %}
208 </p>
209 <p>
210 {% trans %}
211 Required Skills: Android UI development
212 {% endtrans %}
213 </p>
214 <p>
215 {% trans %}
216 Duration: 350h
217 {% endtrans %}
218 </p>
219 <p>
220 {% trans %}
221 Difficulty level: medium
222 {% endtrans %}
223 </p>
224 </section>
106 225
226 <!-- Past projects: Previously proposed, but left unfinished. Inspiration for students. -->
227 <!--<h2><a name="past" class="subnav-anchor"></a>{{ _("Past projects") }}</h2>
228 <p>
229 Past projects: Previously proposed, but left unfinished. Inspiration for students.
230 </p>
231 <section>
232 <h4>Rust templates for GNUnet services</h4>
233 <p>
234 {% trans %}
235 The goal is to either build upon the (outdated) <a href="https://github.com/canndrew/gnunet-rs">GNUnet Rust
236 bindings</a> or to follow the path of <a href="GNUnet Go">https://github.com/bfix/gnunet-go</a>
237 which tries to reimplement most of the GNUnet stack.
238 The end result should be an extension template for GNUnet in the form
239 of the existing <a href="https://git.gnunet.org/gnunet-ext.git/">C template</a>
240 which allows to quickly start implementing services and libraries
241 for GNUnet.
242 {% endtrans %}
243 </p>
244 <p>
245 {% trans %}
246 <strong>Mentors:</strong> Martin Schanzenbach
247 {% endtrans %}
248 </p>
249 <p>
250 {% trans %}
251 Required Skills: Solid knowledge of Rust and ideally asynchronuous IO.
252 {% endtrans %}
253 </p>
254 <p>
255 {% trans %}
256 Duration: 350h
257 {% endtrans %}
258 </p>
259 <p>
260 {% trans %}
261 Difficulty level: medium
262 {% endtrans %}
263 </p>
264 </section>
107 265
108 <section> 266 <section>
109 <h4>re:claimID/GNUnet Browser Plugin</h4> 267 <h4>re:claimID/GNUnet Browser Plugin</h4>
@@ -180,42 +338,6 @@
180 {% endtrans %} 338 {% endtrans %}
181 </p> 339 </p>
182 </section> 340 </section>
183
184 <section>
185 <h4>Rust templates for GNUnet services</h4>
186 <p>
187 {% trans %}
188 The goal is to either build upon the (outdated) <a href="https://github.com/canndrew/gnunet-rs">GNUnet Rust
189 bindings</a> or to follow the path of <a href="GNUnet Go">https://github.com/bfix/gnunet-go</a>
190 which tries to reimplement most of the GNUnet stack.
191 The end result should be an extension template for GNUnet in the form
192 of the existing <a href="https://git.gnunet.org/gnunet-ext.git/">C template</a>
193 which allows to quickly start implementing services and libraries
194 for GNUnet.
195 {% endtrans %}
196 </p>
197 <p>
198 {% trans %}
199 <strong>Mentors:</strong> Martin Schanzenbach
200 {% endtrans %}
201 </p>
202 <p>
203 {% trans %}
204 Required Skills: Solid knowledge of Rust and ideally asynchronuous IO.
205 {% endtrans %}
206 </p>
207 <p>
208 {% trans %}
209 Difficulty level: medium
210 {% endtrans %}
211 </p>
212 </section>
213
214 <!-- Past projects: Previously proposed, but left unfinished. Inspiration for students. -->
215 <!--<h2><a name="past" class="subnav-anchor"></a>{{ _("Past projects") }}</h2>
216 <p>
217 Past projects: Previously proposed, but left unfinished. Inspiration for students.
218 </p>
219 <section> 341 <section>
220 <h4>Android Port</h4> 342 <h4>Android Port</h4>
221 <p> 343 <p>
@@ -234,6 +356,11 @@
234 </p> 356 </p>
235 <p> 357 <p>
236 {% trans %} 358 {% trans %}
359 Duration: 350h
360 {% endtrans %}
361 </p>
362 <p>
363 {% trans %}
237 <strong>Mentors:</strong> <a href="https://www.goebel-consult.de/">Hartmut Goebel</a>, Jeff Burdges, Christian Grothoff 364 <strong>Mentors:</strong> <a href="https://www.goebel-consult.de/">Hartmut Goebel</a>, Jeff Burdges, Christian Grothoff
238 {% endtrans %} 365 {% endtrans %}
239 </p> 366 </p>
diff --git a/template/index.html.j2 b/template/index.html.j2
index 6bc85b2f..50aa4d6e 100644
--- a/template/index.html.j2
+++ b/template/index.html.j2
@@ -1,5 +1,6 @@
1{% extends "common/base.j2" %} 1{% extends "common/base.j2" %}
2{% block body_content %} 2{% block body_content %}
3<main id="maincontent">
3<!-- Jumbotron --> 4<!-- Jumbotron -->
4<div> 5<div>
5 <div class="container"> 6 <div class="container">
@@ -10,8 +11,9 @@
10 </div> 11 </div>
11 12
12 <div class="container text-center"> 13 <div class="container text-center">
13 <img src="{{ url_static('images/gnunet-logo-dark-text.png') }}" alt="GNUnet" /> 14 <img src="{{ url_static('images/gnunet-logo.svg') }}" alt="GNUnet" />
14 </div> 15 <!-- <a class="nav-link" href="https://www.gnu.org/gnu40"><img src="https://www.gnu.org/gnu40/GNU40_badge-sm.png" alt="[ Celebrate 40 years of GNU! ]" /></a>-->
16 </div>
15 </div> 17 </div>
16</div> 18</div>
17 19
@@ -26,7 +28,7 @@
26 <h2>{{ _("Latest news") }}</h2> 28 <h2>{{ _("Latest news") }}</h2>
27 <p> 29 <p>
28 {% for item in newsdata[:3] %} 30 {% for item in newsdata[:3] %}
29 <a class="link" href="news/{{ item['page'] }}" title="{{ item['date']}}">{{ item['date'] }}: {{ item['title'] }}</a><br/> 31 <a class="link" href="{{ url_localized('news/' + item['page']) }}" title="{{ item['date']}}">{{ item['date'] }}: {{ item['title'] }}</a><br/>
30 {% endfor %} 32 {% endfor %}
31 <br/> 33 <br/>
32 <a class="link" href="{{ url_localized('news/index.html')}}">{{ _("Older news entries") }}</a> 34 <a class="link" href="{{ url_localized('news/index.html')}}">{{ _("Older news entries") }}</a>
@@ -226,6 +228,53 @@
226 <div class="col-lg-2"></div> 228 <div class="col-lg-2"></div>
227 <div class="col-lg-6"> 229 <div class="col-lg-6">
228 <section> 230 <section>
231 <h2>{{ _("The state of the art is inefficient") }}</h2>
232 <p>
233 {% trans %}
234 The ongoing hype around distributed ledgers and blockchains
235 is detrimental to the health of our planet.
236 {% endtrans %}
237 </p>
238 </section>
239 </div>
240 <div class="col-lg-3 homepageicon">
241 <i class="fas fa-industry"></i>
242 </div>
243 </div>
244 </div>
245</div>
246<div class="container-fluid">
247 <div class="container">
248 <div class="row">
249 <div class="col-lg-2 homepageicon">
250 <span class="fas fa-globe-europe"></span>
251 </div>
252 <div class="col-lg-6">
253 <section>
254 <h2>{{ _("Sustainability") }}</h2>
255 <p>
256 {% trans url=url_localized('news/2021-05-DISSENS.html') %}
257 GNUnet does not require a decentralized, public ledger.
258 This eliminates the need for wasteful, continuous consensus
259 mechanisms, which do not scale and are ecologically unsustainable.
260 GNUnet and its applications employ decentralization only
261 <a href="{{ url }}"> where it
262 provides the most value and use more efficient technology stacks where
263 needed</a>.
264 {% endtrans %}
265 </p>
266 </section>
267 </div>
268 </div>
269 </div>
270</div>
271
272<div class="container-fluid greybox">
273 <div class="container">
274 <div class="row">
275 <div class="col-lg-2"></div>
276 <div class="col-lg-6">
277 <section>
229 <h2>{{ _("Decentralization is the key, but hard") }}</h2> 278 <h2>{{ _("Decentralization is the key, but hard") }}</h2>
230 279
231 <p> 280 <p>
diff --git a/template/install-on-archpi.html.j2 b/template/install-on-archpi.html.j2
index 66e904b2..72d2b079 100644
--- a/template/install-on-archpi.html.j2
+++ b/template/install-on-archpi.html.j2
@@ -1,5 +1,6 @@
1{% extends "common/base.j2" %} 1{% extends "common/base.j2" %}
2{% block body_content %} 2{% block body_content %}
3<main id="maincontent">
3<article class="container"> 4<article class="container">
4 5
5 <header> 6 <header>
diff --git a/template/install-on-debian9.html.j2 b/template/install-on-debian9.html.j2
index 2a3cde03..b867ab8a 100644
--- a/template/install-on-debian9.html.j2
+++ b/template/install-on-debian9.html.j2
@@ -1,5 +1,6 @@
1{% extends "common/base.j2" %} 1{% extends "common/base.j2" %}
2{% block body_content %} 2{% block body_content %}
3<main id="maincontent">
3<article class="container"> 4<article class="container">
4 5
5 <header> 6 <header>
diff --git a/template/install-on-macos.html.j2 b/template/install-on-macos.html.j2
index e97efd75..b9e14836 100644
--- a/template/install-on-macos.html.j2
+++ b/template/install-on-macos.html.j2
@@ -1,5 +1,6 @@
1{% extends "common/base.j2" %} 1{% extends "common/base.j2" %}
2{% block body_content %} 2{% block body_content %}
3<main id="maincontent">
3<article class="container"> 4<article class="container">
4 5
5 <header> 6 <header>
@@ -164,7 +165,7 @@ vpn (gnunet-service-vpn)
164 <p> 165 <p>
165 You might see configure failing telling you that it ``cannot run C compiled programs.''. 166 You might see configure failing telling you that it ``cannot run C compiled programs.''.
166 In this case, you might need to open/run Xcode once and you will be prompted to 167 In this case, you might need to open/run Xcode once and you will be prompted to
167 install additonal packages. 168 install additional packages.
168 Then, you might have to manually install the command line tools from here https://developer.apple.com/download/more/ (you need an Apple ID for this). 169 Then, you might have to manually install the command line tools from here https://developer.apple.com/download/more/ (you need an Apple ID for this).
169 Install those and execute 170 Install those and execute
170 </p> 171 </p>
diff --git a/template/install-on-netbsd.html.j2 b/template/install-on-netbsd.html.j2
index b36eaa22..0370b29d 100644
--- a/template/install-on-netbsd.html.j2
+++ b/template/install-on-netbsd.html.j2
@@ -1,5 +1,6 @@
1{% extends "common/base.j2" %} 1{% extends "common/base.j2" %}
2{% block body_content %} 2{% block body_content %}
3<main id="maincontent">
3<article class="container"> 4<article class="container">
4 5
5 <header> 6 <header>
diff --git a/template/install-on-openwrt.html.j2 b/template/install-on-openwrt.html.j2
index 7ea7f7a3..5cff8461 100644
--- a/template/install-on-openwrt.html.j2
+++ b/template/install-on-openwrt.html.j2
@@ -1,5 +1,6 @@
1{% extends "common/base.j2" %} 1{% extends "common/base.j2" %}
2{% block body_content %} 2{% block body_content %}
3<main id="maincontent">
3<article class="container"> 4<article class="container">
4 5
5 <header> 6 <header>
diff --git a/template/install-on-ubuntu1804.html.j2 b/template/install-on-ubuntu1804.html.j2
index 94ea5cb2..19a507f6 100644
--- a/template/install-on-ubuntu1804.html.j2
+++ b/template/install-on-ubuntu1804.html.j2
@@ -1,5 +1,6 @@
1{% extends "common/base.j2" %} 1{% extends "common/base.j2" %}
2{% block body_content %} 2{% block body_content %}
3<main id="maincontent">
3<article class="container"> 4<article class="container">
4 5
5 <header> 6 <header>
diff --git a/template/install.html.j2 b/template/install.html.j2
index 2fccfd3c..2c0093e7 100644..100755
--- a/template/install.html.j2
+++ b/template/install.html.j2
@@ -1,5 +1,6 @@
1{% extends "common/base.j2" %} 1{% extends "common/base.j2" %}
2{% block body_content %} 2{% block body_content %}
3<main id="maincontent">
3<article class="container"> 4<article class="container">
4 5
5 <header> 6 <header>
@@ -7,13 +8,11 @@
7 </header> 8 </header>
8 9
9 <div class="row container justify-content-center"> 10 <div class="row container justify-content-center">
10 <div class="alert" style="background-color: #419edb;"> 11 <div class="alert alert-info">
11 <div class="alert-content">
12{% trans %} 12{% trans %}
13 Notice: GNUnet is still undergoing major development. It is 13 Notice: GNUnet is still undergoing major development. It is
14 largely <i>not yet ready</i> for usage beyond developers. 14 largely <i>not yet ready</i> for usage beyond developers.
15{% endtrans %} 15{% endtrans %}
16 </div>
17 </div> 16 </div>
18{% trans %} 17{% trans %}
19<p>Please be aware that this project is still in an early alpha 18<p>Please be aware that this project is still in an early alpha
@@ -31,13 +30,18 @@ If you have any queries about the installation or the usage, please <a href="eng
31 We recommend to use binary packages provided by the package manager integrated 30 We recommend to use binary packages provided by the package manager integrated
32 within your Operating System. GNUnet is reportedly available for at least: 31 within your Operating System. GNUnet is reportedly available for at least:
33 <ul> 32 <ul>
34 <li><a href="https://pkgs.alpinelinux.org/package/edge/testing/x86_64/gnunet">Alpine</a></li> 33 <li><a href="https://pkgs.alpinelinux.org/package/edge/community/x86_64/gnunet">Alpine</a></li>
35 <li><a href="https://www.archlinux.org/packages/community/x86_64/gnunet/">Arch</a></li> 34 <li><a href="https://aur.archlinux.org/packages/gnunet/">Arch (AUR)</a></li>
36 <li><a href="https://packages.debian.org/search?keywords=gnunet">Debian</a></li> 35 <li><a href="https://packages.debian.org/search?keywords=gnunet">Debian</a></li>
37 <li><a href="https://copr.fedorainfracloud.org/coprs/yosl/gnunet/">Fedora (Copr)</a></li> 36 <li>
37 <a href="https://copr.fedorainfracloud.org/coprs/schanzen/gnunet/package/gnunet/">Fedora (copr)</a>:
38 <code class="block">
39 # dnf copr enable schanzen/gnunet
40 </code>
41 </li>
38 <li><a href="https://guix.gnu.org/en/packages/G/">Guix</a></li> 42 <li><a href="https://guix.gnu.org/en/packages/G/">Guix</a></li>
39 <li><a href="https://github.com/Homebrew/homebrew-core/blob/master/Formula/gnunet.rb">Homebrew</a></li> 43 <li><a href="https://github.com/Homebrew/homebrew-core/blob/master/Formula/gnunet.rb">Homebrew</a></li>
40 <li><a href="https://nixos.org/nixos/packages.html?attr=gnunet&channel=nixpkgs-unstable&query=gnunet">NixOS</a></li> 44 <li><a href="https://search.nixos.org/packages?from=0&size=50&sort=relevance&query=gnunet">NixOS</a></li>
41 <li><a href="install-on-openwrt.html">OpenWrt</a></li> 45 <li><a href="install-on-openwrt.html">OpenWrt</a></li>
42 </ul> 46 </ul>
43 If GNUnet is available for your Operating System and it is missing, 47 If GNUnet is available for your Operating System and it is missing,
@@ -46,12 +50,12 @@ If you have any queries about the installation or the usage, please <a href="eng
46 get in touch with us at gnunet-developers@gnu.org if you require 50 get in touch with us at gnunet-developers@gnu.org if you require
47 help with this job. 51 help with this job.
48 52
49 If you were using an Operating System with the Alpine package manager, 53 If you were using an Operating System with the APT package manager,
50 GNUnet could be installed as simple as: 54 GNUnet could be installed as simple as:
51 {% endtrans %} 55 {% endtrans %}
52 </p> 56 </p>
53 <code class="block"> 57 <code class="block">
54 $ apk add gnunet 58 $ apt-get install gnunet
55 </code> 59 </code>
56 <p> 60 <p>
57 Please beware that some distributions may include outdated GNUnet packages! 61 Please beware that some distributions may include outdated GNUnet packages!
@@ -96,11 +100,11 @@ If you have any queries about the installation or the usage, please <a href="eng
96 </div> 100 </div>
97 <p> 101 <p>
98 {% trans %} 102 {% trans %}
99 Alternatively, get the sources from git by entering: 103 To compile gnunet from the git source you can do so by entering:
100 {% endtrans %} 104 {% endtrans %}
101 </p> 105 </p>
102 <code class="block"> 106 <code class="block">
103 $ git clone https://gnunet.org/git/gnunet.git 107 $ git clone https://git.gnunet.org/git/gnunet.git
104 </code> 108 </code>
105 <p> 109 <p>
106 {% trans %} 110 {% trans %}
@@ -153,15 +157,15 @@ If you have any queries about the installation or the usage, please <a href="eng
153<!-- 157<!--
154 <div class="row container justify-content-center text-center"> 158 <div class="row container justify-content-center text-center">
155 <div class="col-md"> 159 <div class="col-md">
156 <p><a href="install-on-ubuntu1804.html"><img src="{{ url('static/images/ubuntu-logo32.png') }}" class="distro-logo"></a></p> 160 <p><a href="install-on-ubuntu1804.html"><img src="{{ url('images/ubuntu-logo32.png') }}" class="distro-logo"></a></p>
157 <h3>Ubuntu 18.04</h3> 161 <h3>Ubuntu 18.04</h3>
158 </div> 162 </div>
159 <div class="col-md"> 163 <div class="col-md">
160 <p><a href="install-on-debian9.html"><img src="{{ url('static/images/debian-logo.svg') }}" class="distro-logo"></a></p> 164 <p><a href="install-on-debian9.html"><img src="{{ url('images/debian-logo.svg') }}" class="distro-logo"></a></p>
161 <h3>Debian 9</h3> 165 <h3>Debian 9</h3>
162 </div> 166 </div>
163 <div class="col-md"> 167 <div class="col-md">
164 <p><a href="install-on-netbsd.html"><img src="{{ url('static/images/NetBSD_Logo.svg') }}" class="distro-logo"></a></p> 168 <p><a href="install-on-netbsd.html"><img src="{{ url('images/NetBSD_Logo.svg') }}" class="distro-logo"></a></p>
165 <h3>NetBSD</h3> 169 <h3>NetBSD</h3>
166 </div> 170 </div>
167 </div> 171 </div>
@@ -171,15 +175,15 @@ If you have any queries about the installation or the usage, please <a href="eng
171 <h1><a href="install-on-macos.html">Apple<br/>macOS</a></h1> 175 <h1><a href="install-on-macos.html">Apple<br/>macOS</a></h1>
172 </div> 176 </div>
173 <div class="col-md"> 177 <div class="col-md">
174 <p><a href="install-on-archpi.html"><img src="{{ url('static/images/archlinux-logo.svg') }}" class="distro-logo" style="width:300px;height:auto"></a></p> 178 <p><a href="install-on-archpi.html"><img src="{{ url('images/archlinux-logo.svg') }}" class="distro-logo" style="width:300px;height:auto"></a></p>
175 <h3>Arch Linux/Arch-Pi</h3> 179 <h3>Arch Linux/Arch-Pi</h3>
176 </div> 180 </div>
177 <div class="col-md"> 181 <div class="col-md">
178 <p><a href="install-on-openwrt.html"><img src ="{{ url('static/images/openwrt-logo.svg') }}" class="distro-logo" style="width:300px;height:auto"></a></p> 182 <p><a href="install-on-openwrt.html"><img src ="{{ url('images/openwrt-logo.svg') }}" class="distro-logo" style="width:300px;height:auto"></a></p>
179 <h3>OpenWrt</h3> 183 <h3>OpenWrt</h3>
180 </div> 184 </div>
181 <div class="col-md"> 185 <div class="col-md">
182 <p><a href="https://wiki.gentoo.org/wiki/Overlay:Youbroketheinternet"><img alt="gentoo linux" src ="{{ url('static/images/gentoo-logo.svg') }}" class="distro-logo" style="width:170px;height:auto"></a></p> 186 <p><a href="https://wiki.gentoo.org/wiki/Overlay:Youbroketheinternet"><img alt="gentoo linux" src ="{{ url('images/gentoo-logo.svg') }}" class="distro-logo" style="width:170px;height:auto"></a></p>
183 </div> 187 </div>
184 </div> 188 </div>
185--> 189-->
diff --git a/template/l2o/index.html.j2 b/template/l2o/index.html.j2
new file mode 100644
index 00000000..9ce82969
--- /dev/null
+++ b/template/l2o/index.html.j2
@@ -0,0 +1,272 @@
1{% extends "common/base.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<article class="container">
5
6 <header>
7 <h1>{{ _("NGI Assure project: Layer-2-Overlay") }}</h1>
8 </header>
9
10 <div class="row">
11 <div class="col-2 d-none d-lg-block"><!-- for large viewports show menu for better orientation -->
12 <nav class="nav subnav position-fixed flex-column border-right" style="position:fixed">
13 <a class="nav-link" href="#idea">{{ _("Project motivation") }}</a>
14 <a class="nav-link" href="#testframework">{{ _("New Test Framework") }}</a>
15 <a class="nav-link" href="#milestones">{{ _("Milestones") }}</a>
16 <a class="nav-link" href="#milestone1">{{ _("Milestone 1") }}</a>
17 <a class="nav-link" href="#milestone2">{{ _("Milestone 2") }}</a>
18 <a class="nav-link" href="#milestone3">{{ _("Milestone 3") }}</a>
19 <a class="nav-link" href="#milestone4">{{ _("Milestone 4") }}</a>
20 <a class="nav-link" href="#milestone5">{{ _("Milestone 5") }}</a>
21 <a class="nav-link" href="#milestone6">{{ _("Milestone 6") }}</a>
22 <a class="nav-link" href="#milestone7">{{ _("Milestone 7") }}</a>
23 <a class="nav-link" href="#milestone8">{{ _("Milestone 8") }}</a>
24 <a class="nav-link" href="#milestone9">{{ _("Milestone 9") }}</a>
25 </nav>
26 </div>
27 <div class="col">
28
29 <section>
30 <p>
31 {% trans %}
32 This project was funded through the NGI Assure Fund, a fund established by <a href="https://nlnet.nl/project/GNUnet-L2/">NLnet</a>.</br>
33 {% endtrans %}
34 </p>
35 </section>
36
37
38 <h2><a name="idea" class="subnav-anchor"></a>{{ _("Project motivation") }}</h2></br>
39
40 <section>
41 <h4>The GNUnet transport subsystem</h4></br>
42 <p>
43 {% trans %}
44 The <a href="https://docs.gnunet.org/handbook/gnunet.html#TRANSPORT-Subsystem">current</a> GNUnet TRANSPORT architecture with its pluggable transport mechanism (TCP, UDP, HTTP(S) and other protocols) together with the ATS subsystem for bandwidth allocation and choosing plugins has several <a href="https://docs.gnunet.org/handbook/gnunet.html#TRANSPORT_002dNG-Subsystem">issues</a> with its design.
45
46 With the Layer-2-Overlay project we like to implement the <a href="https://docs.gnunet.org/handbook/gnunet.html#Design-goals-of-TNG">design goals</a> of the future GNUnet TRANSPORT Next Generation (TNG) subsystem.
47
48 One major change in the design is to separate the protocol plugins into processes (now called communicators) detached from the main transport service. Three communicators were already implemented (TCP, UDP and UNIX sockets).
49 The old transport code is hard to maintain, because it is cluttered with "manipulation" support code for TESTBED (the actual testing framework). Testing TRANSPORT is a hard task, especially with TESTBED which has its own design flaws, and test code which is very hard to read to get an idea what the test code is doing. Therefore the first task (milestone 1) is to implement a new testing framework which uses network namespaces to make testing of TNG much easier. Have a look into what is planed for Layer-2-Overlay in the <a href="#milestones">milestones</a>.
50 {% endtrans %}
51 </p></br>
52 </section>
53
54 <h2><a name="testframework" class="subnav-anchor"></a>{{ _("New Test Framwork") }}</h2></br>
55
56 <p>The new testing framework consists of two major parts. First the command style pattern borrowed from the GNU Taler project, second a network namespace setup, to have a suitable test setup for testing several network topologies with lossy connections, firewalls, etc..</p></br>
57
58 <h3><a name="cmd" class="subnav-anchor"></a>{{ _("Command Style Pattern") }}</h3></br>
59
60 <section>
61 <p>
62 {% trans %}
63 The new style of writing tests in GNUnet is borrowed from the <a href="https://docs.taler.net/developers-manual.html#testing-library">GNU Taler testing library</a>. In <a href="#milestone1">milestone 1</a> we implemented commands to setup the <a href="#netjails">netjails</a>, the test environment for each peer, to start a single peers and sending a simple test message. Because some commands depend on other commands to be finished, and those commands are asynchronous, we needed additional functionality in the command interpreter library to block execution until some commands are finished (e.g. all peers needs to be running, before peers starting to send messages). For a detailed description have a look into the <a href="testng.html">testing ng documentation</a>.
64 {% endtrans %}
65 </p></br>
66 </section>
67
68 <h3><a name="netjails" class="subnav-anchor"></a>{{ _("Netjails") }}</h3></br>
69
70 <section>
71 <p>
72 {% trans %}
73 To do extensive testing of the new transport implementation one needs to simulate various network topologies to enable faking network characteristics like lossy connections or firewalls. To achieve this we are working with <a href="https://www.man7.org/linux/man-pages/man8/ip-netns.8.html">network namespace</a>. We have commands for starting and stopping network namespaces. Those commands are scripts, which are using several shell commands to setup the network namespace. A third script then is responsible for start a GNUnet helper. This helper can load plugins. Each plugin represents some test case. Per node in the network namespaces one helper is started, which means on each node is a local interpreter loop running. For a detailed description have a look into the <a href="testng.html">testing ng documentation</a>.
74 {% endtrans %}
75 </p></br>
76 </section>
77
78 <h2><a name="milestones" class="subnav-anchor"></a>{{ _("Milestones") }}</h2></br>
79
80 <p>All milestones are finished.</p></br>
81
82 <h3><a name="milestone1" class="subnav-anchor"></a>{{ _("Milestone 1 Test Infrastructure and minimal Test Case") }}</h3></br>
83 <section>
84 <p>
85 {% trans %}
86 The first subtask consists of implementing a framework for setting up VLANs between network namespaces and a framework to test communication between peers which are running in those VLANs. Finally a minimal Test Case will be implemented. Despite the fact that the transport service is already able to use several communicators (transport protocol implementations), it will only use the tcp communicator, not the unix socket nor the udp communicator, which already are in place and working.
87
88 <ul>
89 <li>SUID helpers to setup network namespace and starting peers with network namespace.</li>
90 <li>Basic transport-level operations (get address, send, receive, connect).</li>
91 <li>Peers connected through test and transfer data.</li>
92 </ul></br>
93 {% endtrans %}
94 </p>
95 <h4>Deliverable</h4></br>
96 <p>
97 {% trans %}
98 First MVP which uses the TCP communicator to send messages between peers. The deliverable can be verified through out the specific test cases running in the GNUnet CI.
99
100 <a href="mile1.html">Details</a>
101 {% endtrans %}
102 </p></br>
103 </section>
104
105 <h3><a name="milestone2" class="subnav-anchor"></a>{{ _("Milestone 2 Enhancing Test Framework") }}</h3></br>
106 <section>
107 <p>
108 {% trans %}
109 To test more complex functionality we need to enhance the capabilities of the testing framework. Hooks for performance measurement will be implemented.
110 <ul>
111 <li>Enhancing transport-level operations.</li>
112 <li>Block execution of commands at a peer. (Barriers).</li>
113 </ul>
114 {% endtrans %}
115 </p></br>
116 <h4>Deliverable</h4></br>
117 <p>
118 {% trans %}
119 Outcome of this deliverable are advanced test cases (again verifiable in the GNUnet continuous integration (CI)).
120
121<a href="mile2.html">Details</a>
122 {% endtrans %}
123 </p></br>
124 </section>
125
126 <h3><a name="milestone3" class="subnav-anchor"></a>{{ _("Milestone 3 UDP integration") }}</h3></br>
127 <section>
128 <p>
129 {% trans %}
130 With this subtask I will implement enhanced L2O features like using unidirectional transport protocols with backchannels. Addresses by which a peer can be reached can be delivered on handshake or by UDP broadcast. With this milestone the transport service will be able to use more than one communicator (pluggable transport).
131 <ul>
132 <li>unidirectional communication and backchannels.</li>
133 <li>UDP broadcast.</li>
134 </ul>
135 {% endtrans %}
136 </p></br>
137 <h4>Deliverable</h4>
138 <p>
139 {% trans %}
140 The CI contains test cases which uses the UDP protocol to message between peers and to learn about “foreign” peers.
141
142 <a href="mile3.html">Details</a>
143 {% endtrans %}
144 </p></br>
145 </section>
146
147 <h3><a name="milestone4" class="subnav-anchor"></a>{{ _("Milestone 4 Distance Vector") }}</h3></br>
148 <section>
149 <p>
150 {% trans %}
151 In this subtask I will enhance connectivity to peers not directly connected. Therefore peers have to act as relay. To achieve this there is the distance vector protocol. The DV algorithm sends out so called learn messages to other peers. If those learn messages are coming back to the initiating peer via some other peer and the path does not return to any other peer we have a circle path. If there are bidirectional connections between peers somewhere in the DV path and the learn message comes back to a peer we call it inverse path.
152 {% endtrans %}
153 </p></br>
154 <h4>Deliverable</h4></br>
155 <p>
156 {% trans %}
157 The CI contains test cases with a setup of peers not connected directly. The test cases proof that each peer can reach any other peer. We have test cases for the circle path and for the inverse path.
158 <a href="mile4.html">Details</a>
159 {% endtrans %}
160 </p></br>
161 </section>
162
163 <h3><a name="milestone5" class="subnav-anchor"></a>{{ _("Milestone 5 NAT Traversal") }}</h3><br/>
164 <section>
165 <p>
166 {% trans %}
167 This subtask will make peers behind NAT reachable. Two simple traversal methods will be implemented.
168 <ul>
169 <li>NAT traversal via UpnPC.</li>
170 <li>Autonomous NAT Traversal using fake ICMP messages.</li>
171 </ul>
172 {% endtrans %}
173 </p><br/>
174 <h4>Deliverable</h4><br/>
175 <p>
176 {% trans %}
177 The CI contains test case with a peer setup containing peer behind a NAT. The test cases
178 proof that each peer can be reached, even if that peer is behind a NAT. The test case are measuring the performance. This measurement is used to compare with the outcome of the next milestone. This result of this milestone will be a first stable release. <a href="mile5.html">Details</a>
179 {% endtrans %}
180 </p><br/>
181 </section>
182
183 <h3><a name="milestone6" class="subnav-anchor"></a>{{ _("Milestone 6 Optimization") }}</h3><br/>
184 <section>
185 <p>
186 {% trans %}
187 In this subtask I will implement algorithms (flow and congestion control, quality of service optimizations) which will select the optimal transport protocol for a given situation.
188
189I will analyze potential performance gains by integrating libraries of the interpeer project. If the effort of integrating interpeer presumably would lead to better performance than other optimizations of the same amount of work, this integration is done.
190
191I will finish the project with a performance analysis to optimize the selection logic.
192 <ul>
193 <li>Queue management.
194 <li>Interpeer project synergy
195 <ol>
196 <li>Analysis of the interpeer project in regard to integrate it into GNUnet.</li>
197 <li>Optional integration into GNUnet, if it can be done at all and in a reasonable amount of work.</li>
198 </ol>
199 <li>Commands for performance measurement(s).</li>
200 <li>Performance analysis.</li>
201 </ul>
202 {% endtrans %}
203 </p><br/>
204 <h4>Deliverable</h4><br/>
205 <p>
206 {% trans %}
207 The test cases in the CI are measuring the performance gains. This measurement can be compared with the measurement of milestone 5. Again one outcome of this milestone will be a stable release.<br/>
208
209 Documentation of the interpeer project analysis. More <a href="mile6.html">Details</a>.
210 {% endtrans %}
211 </p><br/>
212 </section>
213
214 <h3><a name="milestone7" class="subnav-anchor"></a>{{ _("Milestone 7 Removing deprecated code") }}</h3><br/>
215 <section>
216 <p>
217 {% trans %}
218 The code of the old transport API and of the ATS API will be removed from the code base. This is
219mainly the use of the API in the Core layer, and suggesting addresses to connect to other peers in
220all kinds of other GNUnet layers. Additionally all tests which rely on the removed code will be set
221inactive. All usages of the old APIs will be removed. If it is not much work to replace the old with the
222new API this will be done directly, otherwise there will be a TODO comment what needs to be doneto make that part of the code working again with the new code. Documentation of code that will be
223deleted without replacement, because the functionality is missing in the new API.
224 {% endtrans %}
225 </p><br/>
226 <h4>Deliverable</h4><br/>
227 <p>
228 {% trans %}
229 Removed APIs from code base, deactivated dependent tests and either documentation of what is
230necessary for the integration of the new API, or if the effort for this is as high as the documentation
231directly the implementation. More <a href="mile7.html">Details</a>.
232 {% endtrans %}
233 </p><br/>
234 </section>
235
236 <h3><a name="milestone8" class="subnav-anchor"></a>{{ _("Milestone 8 Make GNUnet start again") }}</h3><br/>
237 <section>
238 <p>
239 {% trans %}
240 All missing implementations of the new API will be finished, necessary to make GNUnet start and
241being usable for its basic functionality (DHT, GNS, CADET, FS, Messenger …).
242 {% endtrans %}
243 </p><br/>
244 <h4>Deliverable</h4><br/>
245 <p>
246 {% trans %}
247 GNUnet running with new API. More <a href="mile8.html">Details</a>.
248 {% endtrans %}
249 </p><br/>
250 </section>
251
252 <h3><a name="milestone9" class="subnav-anchor"></a>{{ _("Milestone 9 Testing and Fixing") }}</h3><br/>
253 <section>
254 <p>
255 {% trans %}
256 Because all integration tests are deactivated, and there are no resources to rewrite them at the
257time being, extensive manual testing and certainly bug fixing is necessary.
258 {% endtrans %}
259 </p><br/>
260 <h4>Deliverable</h4><br/>
261 <p>
262 {% trans %}
263 GNUnet release running with new API. More <a href="mile9.html">Details</a>.
264 {% endtrans %}
265 </p><br/>
266 </section>
267
268 </div>
269 </div>
270
271</article>
272{% endblock body_content %}
diff --git a/template/l2o/mile1.html.j2 b/template/l2o/mile1.html.j2
new file mode 100644
index 00000000..f354d8e3
--- /dev/null
+++ b/template/l2o/mile1.html.j2
@@ -0,0 +1,136 @@
1{% extends "common/base.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<article class="container">
5
6 <header>
7 <h1>{{ _("NGI Assure project: Layer-2-Overlay") }}</h1>
8 </header>
9
10 <div class="row">
11 <div class="col-2 d-none d-lg-block"><!-- for large viewports show menu for better orientation -->
12 <nav class="nav subnav position-fixed flex-column border-right" style="position:fixed">
13 <a class="nav-link" href="index.html#idea">{{ _("Project main page") }}</a>
14 </nav>
15 </div>
16 <div class="col">
17
18 <h2>Implementation details milestone 1</h2>
19
20 <section>
21 <h4><a name="netjail" class="subnav-anchor"></a>{{ _("Master Loop") }}</h4>
22 <p>
23 {% trans %}
24 <table width="100%">
25 <tr>
26 <td width="40%" style="vertical-align: top;">src/transport/test_transport_api_cmd_simple_send.c</td><td width="60%" style="vertical-align: top;">Binary for starting the simple send test. Obsolete in current code base!</td>
27 <tr>
28 <td></td><td> </td>
29 </tr>
30 <tr>
31 <td width="40%" style="vertical-align: top;">src/testing/netjail_start.sh</td><td width="60%" style="vertical-align: top;">Script to setup the netjail topology. Will be execute by the following command. </td>
32 </tr>
33 <tr>
34 <td width="40%" style="vertical-align: top;">src/testing/testing_api_cmd_netjail_start.c</td><td width="60%" style="vertical-align: top;">Command to create the netjail setup.</td>
35 <tr>
36 <td></td><td> </td>
37 </tr>
38 <tr>
39 <td width="40%" style="vertical-align: top;">src/testing/netjail_exec.sh</td><td width="60%" style="vertical-align: top;">Script to execute a local test interpreter per node. Will be execute by the following command.</td>
40 <tr>
41 <td></td><td> </td>
42 </tr>
43 <tr>
44 <td width="40%" style="vertical-align: top;">src/testing/testing_api_cmd_netjail_start_testsystem.c</td><td width="60%" style="vertical-align: top;">Command to start the helper processes.</td>
45 <tr>
46 <td></td><td> </td>
47 </tr>
48 <tr>
49 <td width="40%" style="vertical-align: top;">src/testing/testing_api_cmd_netjail_stop_testsystem.c</td><td width="60%" style="vertical-align: top;">Command to stop the helper processes.</td>
50 <tr>
51 <td></td><td> </td>
52 </tr>
53 <tr>
54 <td width="40%" style="vertical-align: top;">src/testing/netjail_stop.sh</td><td width="60%" style="vertical-align: top;">Script to stop the netjail topology.</td>
55 <tr>
56 <td></td><td> </td>
57 </tr>
58 <tr>
59 <td width="40%" style="vertical-align: top;">src/testing/testing_api_cmd_netjail_stop.c</td><td width="60%" style="vertical-align: top;">Command to stop the test setup.</td>
60 <tr>
61 <td></td><td> </td>
62 </tr>
63 </table>
64 {% endtrans %}
65 </p>
66 <h4><a name="netjail" class="subnav-anchor"></a>{{ _("Local Loop") }}</h4>
67 <p>
68 {% trans %}
69 <table width="100%">
70 <tr>
71 <td width="40%" style="vertical-align: top;">src/testing/gnunet-cmds-helper.c</td><td width="60%" style="vertical-align: top;">Helper to start the local interpreter loop.</td>
72 <tr>
73 <td></td><td> </td>
74 </tr>
75 <tr>
76 <td width="40%" style="vertical-align: top;">src/transport/test_transport_plugin_cmd_simple_send.c</td><td width="60%" style="vertical-align: top;">Plugin which creates the cmds for the simple send test case.</td>
77 </tr>
78 <tr>
79 <td width="40%" style="vertical-align: top;">src/testing/testing_api_cmd_system_create.c</td><td width="60%" style="vertical-align: top;">Command to create a local test system.</td>
80 <tr>
81 <td></td><td> </td>
82 </tr>
83 <tr>
84 <td width="40%" style="vertical-align: top;">src/transport/transport_api_cmd_start_peer.c</td><td width="60%" style="vertical-align: top;">Command to start a peer.</td>
85 <tr>
86 <td></td><td> </td>
87 </tr>
88 <tr>
89 <td width="40%" style="vertical-align: top;">src/transport/transport_api_cmd_connecting_peers.c</td><td width="60%" style="vertical-align: top;"> Command to connect two peers.</td>
90 <tr>
91 <td></td><td> </td>
92 </tr>
93 <tr>
94 <td>src/transport/transport_api_cmd_send_simple.c</td><td width="60%" style="vertical-align: top;">Command to send a simple message from one peer to another.</td>
95 <tr>
96 <td></td><td> </td>
97 </tr>
98 <tr>
99 <td width="40%" style="vertical-align: top;">src/transport/transport_api_cmd_stop_peer.c</td><td width="60%" style="vertical-align: top;">Command to stop a peer.</td>
100 <tr>
101 <td></td><td> </td>
102 </tr>
103 <tr>
104 <td width="40%" style="vertical-align: top;">src/testing/testing_api_cmd_system_destroy.c</td><td width="60%" style="vertical-align: top;">Command to destroy the local test system.</td>
105 <tr>
106 <td></td><td> </td>
107 </tr>
108 <tr>
109 <td width="40%" style="vertical-align: top;">src/testing/testing_api_cmd_local_test_finished.c</td><td>Command to send a message to the master loop, if the local loop has finished.</td>
110 <tr>
111 </table>
112 {% endtrans %}
113 </p>
114 <h4><a name="netjail" class="subnav-anchor"></a>{{ _("Configuration") }}</h4>
115 <p>
116 {% trans %}
117 <table width="100%">
118 <tr>
119 <td width="40%" style="vertical-align: top;">src/transport/test_transport_api2_tcp_node1.conf</td><td width="60%" style="vertical-align: top;">Configuration for the first node running during the simple send test case.</td>
120 <tr>
121 <td></td><td> </td>
122 </tr>
123 <tr>
124 <td width="40%" style="vertical-align: top;">src/transport/test_transport_api2_tcp_node2.conf</td><td width="60%" style="vertical-align: top;">Configuration for the second node running during the simple send test case.</td>
125 </tr>
126 </table>
127 {% endtrans %}
128 </p>
129 </section>
130
131
132 </div>
133 </div>
134
135</article>
136{% endblock body_content %}
diff --git a/template/l2o/mile2.html.j2 b/template/l2o/mile2.html.j2
new file mode 100644
index 00000000..092995b9
--- /dev/null
+++ b/template/l2o/mile2.html.j2
@@ -0,0 +1,86 @@
1{% extends "common/base.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<article class="container">
5
6 <header>
7 <h1>{{ _("NGI Assure project: Layer-2-Overlay") }}</h1>
8 </header>
9
10 <div class="row">
11 <div class="col-2 d-none d-lg-block"><!-- for large viewports show menu for better orientation -->
12 <nav class="nav subnav position-fixed flex-column border-right" style="position:fixed">
13 <a class="nav-link" href="index.html#idea">{{ _("Project main page") }}</a>
14 </nav>
15 </div>
16 <div class="col">
17
18 <h2>Implementation details milestone 2</h2>
19
20 <section>
21 <h4><a name="netjail" class="subnav-anchor"></a>{{ _("Master Loop") }}</h4>
22 <p>
23 {% trans %}
24 <table width="100%">
25 <tr>
26 <td width="40%" style="vertical-align: top;">src/transport/test_transport_simple_send.sh</td><td width="60%" style="vertical-align: top;">Introduced scripts to start the tests. The script checks, if a kernel parameter is set to allow unprivileged users to create network namespaces. The script than starts the following gerneric binary in a network namespace.</td>
27 <tr>
28 <td></td><td> </td>
29 </tr>
30 <tr>
31 <td width="40%" style="vertical-align: top;">src/transport/test_transport_start_with_config.c</td><td width="60%" style="vertical-align: top;">A generic binary to start a test case which will be configured by a configuration file.</td>
32 </tr>
33 <tr>
34 <td width="40%" style="vertical-align: top;">src/testing/testing.c</td><td width="60%" style="vertical-align: top;">Added code to read netjail topology from a file.</td>
35 <tr>
36 <td></td><td> </td>
37 </tr>
38 <tr>
39 <td width="40%" style="vertical-align: top;">src/testing/topo.sh</td><td width="60%" style="vertical-align: top;">Script which reads the topology from a file for the use in the other netjail scripts.</td>
40 <tr>
41 <td></td><td> </td>
42 </tr>
43 <tr>
44 <td width="40%" style="vertical-align: top;">All already existing commands.</td><td width="60%" style="vertical-align: top;">All commands changed to work with the topology data.</td>
45 </tr>
46 </table>
47 {% endtrans %}
48 </p>
49 <h4><a name="netjail" class="subnav-anchor"></a>{{ _("Local Loop") }}</h4>
50 <p>
51 {% trans %}
52 <table width="100%">
53 <tr>
54 <td width="40%" style="vertical-align: top;">src/testing/testing_api_cmd_send_peer_ready.c</td><td width="60%" style="vertical-align: top;">Command to send a message to the master loop if a peer has started in local loop.</td>
55 <tr>
56 <td></td><td> </td>
57 </tr>
58 <tr>
59 <td width="40%" style="vertical-align: top;">src/testing/testing_api_cmd_local_test_prepared.c</td><td width="60%" style="vertical-align: top;">Command to send a message to the master loop if a peer is ready to shutdown.</td>
60 </tr>
61 </table>
62 {% endtrans %}
63 </p>
64 <h4><a name="netjail" class="subnav-anchor"></a>{{ _("Configuration") }}</h4>
65 <p>
66 {% trans %}
67 <table width="100%">
68 <tr>
69 <td width="40%" style="vertical-align: top;">src/transport/transport_api_cmd_start_peer.c</td><td width="60%" style="vertical-align: top;">Command now uses a configuration template for the peer configuration.</td>
70 <tr>
71 <td></td><td> </td>
72 </tr>
73 <tr>
74 <td width="40%" style="vertical-align: top;">test_transport_simple_send_topo.conf</td><td width="60%" style="vertical-align: top;">Topology configuration file for the simple send test case.</td>
75 <tr>
76 </table>
77 {% endtrans %}
78 </p>
79 </section>
80
81
82 </div>
83 </div>
84
85</article>
86{% endblock body_content %}
diff --git a/template/l2o/mile3.html.j2 b/template/l2o/mile3.html.j2
new file mode 100644
index 00000000..b4c93add
--- /dev/null
+++ b/template/l2o/mile3.html.j2
@@ -0,0 +1,115 @@
1{% extends "common/base.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<article class="container">
5
6 <header>
7 <h1>{{ _("NGI Assure project: Layer-2-Overlay") }}</h1>
8 </header>
9
10 <div class="row">
11 <div class="col-2 d-none d-lg-block"><!-- for large viewports show menu for better orientation -->
12 <nav class="nav subnav position-fixed flex-column border-right" style="position:fixed">
13 <a class="nav-link" href="index.html#idea">{{ _("Project main page") }}</a>
14 </nav>
15 </div>
16 <div class="col">
17
18 <h2>Implementation details milestone 3</h2>
19
20 <section>
21 <h4><a name="netjail" class="subnav-anchor"></a>{{ _("Bug fixing") }}</h4>
22 <p>
23 {% trans %}
24 Some bugs in the tng service and communicator code which were found with new tests were fixed.
25 {% endtrans %}
26 </p>
27 </section>
28
29 <section>
30 <h4><a name="netjail" class="subnav-anchor"></a>{{ _("Master Loop") }}</h4>
31 <p>
32 {% trans %}
33 <table width="100%">
34 <tr>
35 <td width="60%" style="vertical-align: top;">src/transport/test_transport_udp_backchannel.sh</td><td width="55%" style="vertical-align: top;">Added script to start the udp backchannel test case.</td>
36 <tr>
37 <td></td><td> </td>
38 </tr>
39 <tr>
40 <td width="60%" style="vertical-align: top;">src/transport/test_transport_simple_send_broadcast.sh</td><td width="55%" style="vertical-align: top;">Added script for the UDB broadcast test.</td>
41 <tr>
42 <td></td><td> </td>
43 </tr>
44 <tr>
45 <td width="60%" style="vertical-align: top;">src/transport/test_transport_simple_send_string.sh</td><td width="55%" style="vertical-align: top;">Added script as an example to start a test with inline topology configuration string.</td>
46 <tr>
47 <td></td><td> </td>
48 </tr>
49 <tr>
50 <td width="60%" style="vertical-align: top;">All commands</td><td width="55%" style="vertical-align: top;">Changed code to handle strings with topology information.</td>
51 </tr>
52 <tr>
53 <td></td><td> </td>
54 </tr>
55 <tr>
56 <td width="60%" style="vertical-align: top;">src/testing/netjail_start.sh</td><td width="55%" style="vertical-align: top;">Changed the netjail start script to configure port forwarding for specific protocols (tcp, udp).</td>
57 </tr>
58 <tr>
59 <td></td><td> </td>
60 </tr>
61 <tr>
62 <td width="60%" style="vertical-align: top;">src/testing/netjail_*.sh</td><td width="40%" style="vertical-align: top;">Moved to contrib/netjail directory</td>
63 </tr>
64 </table>
65 {% endtrans %}
66 </p>
67 <h4><a name="netjail" class="subnav-anchor"></a>{{ _("Local Loop") }}</h4>
68 <p>
69 {% trans %}
70 <table width="100%">
71 <tr>
72 <td width="60%" style="vertical-align: top;">src/transport/test_transport_plugin_cmd_simple_send_broadcast.c</td><td width="40%" style="vertical-align: top;">New plugin for the udp broadcast test case.</td>
73 <tr>
74 <td></td><td> </td>
75 </tr>
76 <tr>
77 <td width="60%" style="vertical-align: top;">src/transport/test_transport_plugin_cmd_udp_backchannel.c</td><td width="40%" style="vertical-align: top;">New plugin for the udp backchannel test case.</td>
78 <tr>
79 <td></td><td> </td>
80 </tr>
81 <tr>
82 <td width="60%" style="vertical-align: top;">src/transport/transport_api_cmd_backchannel_check.c</td><td width="40%" style="vertical-align: top;">Command to check for a udp backchannel specific log entry.</td>
83 </tr>
84 <tr>
85 <td></td><td> </td>
86 </tr>
87 <tr>
88 <td width="60%" style="vertical-align: top;">src/testing/testing_api_cmd_block_until_external_trigger.cc</td><td width="40%" style="vertical-align: top;">Command to block the local loop until triggered by a external signal.</td>
89 </tr>
90 </table>
91 {% endtrans %}
92 </p>
93 <h4><a name="netjail" class="subnav-anchor"></a>{{ _("Configuration") }}</h4>
94 <p>
95 {% trans %}
96 <table width="100%">
97 <tr>
98 <td width="60%" style="vertical-align: top;">src/transport/test_transport_simple_send_broadcast_topo.conf</td><td width="40%" style="vertical-align: top;">Topology configuration for the broadcast test.</td>
99 <tr>
100 <td></td><td> </td>
101 </tr>
102 <tr>
103 <td width="60%" style="vertical-align: top;">test_transport_udp_backchannel_topo.conf</td><td width="40%" style="vertical-align: top;">Topology configuration file for the udp backchannel test case.</td>
104 <tr>
105 </table>
106 {% endtrans %}
107 </p>
108 </section>
109
110
111 </div>
112 </div>
113
114</article>
115{% endblock body_content %}
diff --git a/template/l2o/mile4.html.j2 b/template/l2o/mile4.html.j2
new file mode 100644
index 00000000..7a54503e
--- /dev/null
+++ b/template/l2o/mile4.html.j2
@@ -0,0 +1,108 @@
1{% extends "common/base.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<article class="container">
5
6 <header>
7 <h1>{{ _("NGI Assure project: Layer-2-Overlay") }}</h1>
8 </header>
9
10 <div class="row">
11 <div class="col-2 d-none d-lg-block"><!-- for large viewports show menu for better orientation -->
12 <nav class="nav subnav position-fixed flex-column border-right" style="position:fixed">
13 <a class="nav-link" href="index.html#idea">{{ _("Project main page") }}</a>
14 </nav>
15 </div>
16 <div class="col">
17
18 <h2>Implementation details milestone 4</h2><br/>
19
20 <section>
21 <h4><a name="netjail" class="subnav-anchor"></a>{{ _("TNG Service") }}</h4><br/>
22 <p>
23 {% trans %}
24 <ul>
25 <li>Added caching for Core messages, if confirmed virtual link is missing.</li>
26 <li>Addd caching for DV forwarding, if confirmed virtual link is missing.</li>
27 <li>Fixed bugs in fragmentation logic.</li>
28 <li>Fixed bugs in fragmentation logic.</li>
29 <li>Fixed bugs in flow control logic.</li>
30 <li>Fixed Bug with lifetime of DV learn message. (Validation against replay attack still missing.)</li>
31 <li>Fixed Bug in rekeying logic of the TCP communicator</li>
32 </ul>
33 {% endtrans %}
34 </p>
35 <p>
36 Even more details in commits <a href='https://git.gnunet.org/gnunet.git/commit/?id=fc99f54070e04c043c14f2244f85833ecf6b00c4'>fc99f54070e04c043c14f2244f85833ecf6b00c4</a>, <a href='https://git.gnunet.org/gnunet.git/commit/?id=95a1edacccd9b3bf769a144a12d41946d0ac25dc'>95a1edacccd9b3bf769a144a12d41946d0ac25dc</a> and <a href='https://git.gnunet.org/gnunet.git/commit/?id=247230d737e3e4709392148bfabbde25871b6914'>247230d737e3e4709392148bfabbde25871b6914</a>
37 </p>
38 </section>
39
40 <section>
41 <h4><a name="netjail" class="subnav-anchor"></a>{{ _("Master Loop") }}</h4>
42 <p>
43 {% trans %}
44 <table width="100%">
45 <tr>
46 <td width="60%" style="vertical-align: top;">src/transport/test_transport_simple_send_dv_inverse.sh</td><td width="55%" style="vertical-align: top;">Added script to start the inverse distance vector test case.</td>
47 <tr>
48 <td></td><td> </td>
49 </tr>
50 <tr>
51 <td width="60%" style="vertical-align: top;">src/transport/test_transport_simple_send_dv_circle.sh</td><td width="55%" style="vertical-align: top;">Added script to start the circle distance vector test case.</td>
52 <tr>
53 </table>
54 {% endtrans %}
55 </p>
56 <h4><a name="netjail" class="subnav-anchor"></a>{{ _("Local Loop") }}</h4>
57 <p>
58 {% trans %}
59 <table width="100%">
60 <tr>
61 <td width="60%" style="vertical-align: top;">src/transport/transport_api_cmd_connecting_peers.c</td><td width="40%" style="vertical-align: top;">Added logic to handle counting additonal connection per peer.</td>
62 <tr>
63 <td></td><td> </td>
64 </tr>
65 <tr>
66 <td width="60%" style="vertical-align: top;">src/transport/test_transport_plugin_cmd_simple_send_dv.c</td><td width="40%" style="vertical-align: top;">Added plugin which creates the commands for the distance vector test cases.</td>
67 <tr>
68 </table>
69 {% endtrans %}
70 </p>
71 <h4><a name="netjail" class="subnav-anchor"></a>{{ _("Configuration") }}</h4>
72 <p>
73 {% trans %}
74 <table width="100%">
75 <tr>
76 <td width="60%" style="vertical-align: top;">src/transport/test_transport_distance_vector_inverse_topo.conf</td><td width="40%" style="vertical-align: top;">Configuration for the DV inverse path test case.</td>
77 <tr>
78 <td></td><td> </td>
79 </tr>
80 <tr>
81 <td width="60%" style="vertical-align: top;">src/transport/test_transport_distance_vector_circle_topo.conf</td><td width="40%" style="vertical-align: top;">Configuration for the DV circle path test case.</td>
82 <tr>
83 <td></td><td> </td>
84 </tr>
85 <tr>
86 <td width="60%" style="vertical-align: top;">src/testing/netjail_start.sh</td><td width="40%" style="vertical-align: top;">Enhanced port forwarding configuration to restrict port forwarding to specific source IPs.</td>
87 <tr>
88 <td></td><td> </td>
89 </tr>
90 <tr>
91 <td width="60%" style="vertical-align: top;">contrib/netjail/topo.sh</td><td width="40%" style="vertical-align: top;">Make specific nodes configurable as source node for IP forwarding.</td>
92 <tr>
93 <td></td><td> </td>
94 </tr>
95 <tr>
96 <td width="60%" style="vertical-align: top;">src/testing/testing.c</td><td width="40%" style="vertical-align: top;">Helper methods to retrieve the number of additional connections globally and per peer, and which peer is allowed as source for IP forwarding.</td>
97 <tr>
98 </table>
99 {% endtrans %}
100 </p>
101 </section>
102
103
104 </div>
105 </div>
106
107</article>
108{% endblock body_content %}
diff --git a/template/l2o/mile5.html.j2 b/template/l2o/mile5.html.j2
new file mode 100644
index 00000000..ddb8c9d7
--- /dev/null
+++ b/template/l2o/mile5.html.j2
@@ -0,0 +1,153 @@
1{% extends "common/base.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<article class="container">
5
6 <header>
7 <h1>{{ _("NGI Assure project: Layer-2-Overlay") }}</h1>
8 </header>
9
10 <div class="row">
11 <div class="col-2 d-none d-lg-block"><!-- for large viewports show menu for better orientation -->
12 <nav class="nav subnav position-fixed flex-column border-right" style="position:fixed">
13 <a class="nav-link" href="index.html#idea">{{ _("Project main page") }}</a>
14 </nav>
15 </div>
16 <div class="col">
17
18 <h2>Implementation details milestone 5</h2><br/>
19
20 <section>
21 <h4><a name="netjail" class="subnav-anchor"></a>{{ _("Testing Framework") }}</h4><br/>
22 <p>
23 {% trans %}
24 <ul>
25 <li>Added so called barrier functionality, which is a set of commands to easy implement a barrier. A barrier is some point in time during execution of a test which if reached can trigger some action. For details have a look into commits <a href='https://git.gnunet.org/gnunet.git/commit/?id=34e1c58cb39a649c9a4c551681cedf19807b85f0'>34e1c58cb39a649c9a4c551681cedf19807b85f0</a>, <a href='https://git.gnunet.org/gnunet.git/commit/?id=ba4d141be09651b452270fc21f062d50bd3f738a'>ba4d141be09651b452270fc21f062d50bd3f738a</a> and <a href='https://git.gnunet.org/gnunet.git/commit/?id=2c2b2911e1585dc378dbb88d4dd6aaec37b00316'>2c2b2911e1585dc378dbb88d4dd6aaec37b00316</a>.</li>
26 </ul>
27 {% endtrans %}
28 </p>
29 </section>
30
31 <section>
32 <h4><a name="netjail" class="subnav-anchor"></a>{{ _("TNG Service") }}</h4><br/>
33 <p>
34 {% trans %}
35 <ul>
36 <li>Added nat reversal code to tcp communicator. Prepared udp communicator.</li>
37 <li>Added tcp icmp nat hole punching test case script, and fixed bugs occuring during shutdown.</li>
38 <ul>
39 <li>src/transport/test_transport_nat_icmp_tcp.sh</li>
40 </ul>
41 <li>Added performance test case.</li>
42 <ul>
43 <li>src/transport/test_transport_plugin_cmd_simple_send_performance.c</li>
44 <li>src/transport/test_transport_simple_send_performance.sh</li>
45 <li>src/transport/test_transport_simple_send_performance_topo.conf</li>
46 <li>src/transport/transport_api_cmd_send_simple_performance.c</li>
47 </ul>
48 <li>Fixed bug happening during check for pending validation requests after
49 nat reversal.</li>
50 <li>Fixed bug of QueueEntry deleted too early.</li>
51 <li>Fixed bug about missing synchronisation between client and service queue
52 in Transport Core API.</li>
53 <li>Fixed bug of not sending the changed window size, which takes into account the used and lost data.</li>
54 </ul>
55 {% endtrans %}
56 </p>
57 <p>
58 Even more details in commits fc99f54070e04c043c14f2244f85833ecf6b00c4, 95a1edacccd9b3bf769a144a12d41946d0ac25dc and 247230d737e3e4709392148bfabbde25871b6914
59 </p>
60 </section>
61
62 <section>
63 <h4><a name="netjail" class="subnav-anchor"></a>{{ _("Configuration") }}</h4>
64 <p>
65 {% trans %}
66 <ul>
67 <li>Added configuration to be able to start executables on a router node</li>
68 <ul>
69 <li>contrib/netjail/netjail_core.sh</li>
70 <li>contrib/netjail/netjail_start.sh</li>
71 <li>contrib/netjail/topo.sh</li>
72 </ul>
73 </ul></br>
74 <table width="100%">
75 <tr>
76 <td width="60%" style="vertical-align: top;">src/transport/test_transport_nat_upnp_topo.conf</td><td width="40%" style="vertical-align: top;">Added topology file for nat upnp test case</td>
77 <tr>
78 <td></td><td> </td>
79 </tr>
80 <tr>
81 <td width="60%" style="vertical-align: top;">contrib/netjail/netjail_start.sh</td><td width="40%" style="vertical-align: top;">Handing over the global number of the router node to the script running
82 on that node. (8e1bf27b11)</td>
83 <tr>
84 </table></br>
85 <ul>
86 <li>miniupnpd only works with public IP addresses. (c524f91a6)</li>
87 <ul>
88 <li>contrib/netjail/netjail_start.sh</li>
89 <li>src/testing/gnunet-cmds-helper.c</li>
90 <li>src/testing/testing.c</li>
91 </ul>
92 </ul>
93 <ul>
94 <li>Changed the format of the interface names to make miniupnpd happy. (4aec035ea)</li>
95 <ul>
96 <li>contrib/netjail/netjail_core.sh</li>
97 <li>src/testing/testing_api_cmd_netjail_start_cmds_helper.c</li>
98 </ul>
99 </ul>
100 <ul>
101 <li>Cleanup after scripts which were running on netjail nodes. (9d6ace0b9)</li>
102 <ul>
103 <li>contrib/netjail/netjail_stop.sh</li>
104 </ul>
105 </ul></br>
106 <table width="100%">
107 <tr>
108 <td width="60%" style="vertical-align: top;">src/transport/test_transport_nat_icmp_tcp_topo.conf</td><td width="40%" style="vertical-align: top;">Added topology file for tcp icmp nat hole punching test case.</td>
109 <tr>
110 </table></br>
111 <ul>
112 <li>Added code to configure connection attempts to natted peers. (6de2cb8f7a)</li>
113 <ul>
114 <li>src/testing/testing.c</li>
115 <li>src/transport/transport_api_cmd_connecting_peers.c</li>
116 </ul>
117 </ul>
118 <ul>
119 <li>Added code in the netjail scripts to enable router nodes to forward icmp requests
120 and response. (a21cb1820)</li>
121 <ul>
122 <li>contrib/netjail/netjail_core.sh</li>
123 <li>contrib/netjail/netjail_start.sh</li>
124 </ul>
125 </ul>
126 {% endtrans %}
127 </p>
128 </section>
129 <section>
130 <h4><a name="netjail" class="subnav-anchor"></a>{{ _("Performance Measurement") }}</h4>
131 <p>
132 {% trans %}
133 The outcome of the performance measurement was ~24 MByte/s for packets with size of 65000 bytes. To follow up on this measurement one has to get the mean time the packets of 65000 bytes needed to reach another peer, to calculate the data rate, by doing<br/><br/>
134 <code>grep "mean time traveled" 1b8b9ebe2_test.out|tail -1</code><br/><br/>
135 on the log file <a href="/l2o/1b8b9ebe2_test.out">1b8b9ebe2_test.out</a> of the performance test case.
136
137 For this measurement the TNG layer was using tcp only, because there was an unfixed bug, if running tcp and udp in parallel.
138 {% endtrans %}
139 </p>
140 </section>
141 <section>
142 <h4><a name="netjail" class="subnav-anchor"></a>{{ _("API Documentation") }}</h4>
143 <p>
144 {% trans %}
145 Documentation of the new <a href='https://docs.gnunet.org/doxygen/d2/dc4/group__TNG.html'>TNG Api</a>.
146 {% endtrans %}
147 </p>
148 </section>
149 </div>
150 </div>
151
152</article>
153{% endblock body_content %}
diff --git a/template/l2o/mile6.html.j2 b/template/l2o/mile6.html.j2
new file mode 100644
index 00000000..ceb9ca4f
--- /dev/null
+++ b/template/l2o/mile6.html.j2
@@ -0,0 +1,83 @@
1 {% extends "common/base.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<article class="container">
5
6 <header>
7 <h1>{{ _("NGI Assure project: Layer-2-Overlay") }}</h1>
8 </header>
9
10 <div class="row">
11 <div class="col-2 d-none d-lg-block"><!-- for large viewports show menu for better orientation -->
12 <nav class="nav subnav position-fixed flex-column border-right" style="position:fixed">
13 <a class="nav-link" href="index.html#idea">{{ _("Project main page") }}</a>
14 </nav>
15 </div>
16 <div class="col">
17
18 <h2>Implementation details milestone 6</h2><br/>
19
20 <section>
21 <h4>{{ _("TNG Service") }}</h4><br/>
22 <p>
23 {% trans %}
24 <ul>
25 <li>Introduced frags_in_flight flag. With this flag we check if fragments of a PendingMessage are being send right now, to not resend single fragments, but the PendingMessage at once.</li>
26 <li>The time to wait for resending a PendingMessage - which was fragmented - is calculated, depending on the number of fragments present, and how much of the PendingMessage was already fragmented.</li>
27 <li>ValidationState now contains the addres prefix of the address being validated, because we have to check which communicator gave us the validation response.</li>
28 <li>Handling flow control takes used window size into account, together with data loss.</li>
29 <li>We do not update queue performance if PendingMessage was resend.</li>
30 <li>Changed test case to except 0.5% packet loss.</li>
31 <li>Removed misplaced sending of an acknowlegement in udp communicator.</li>
32 <li>GNUNET_SERVICE_client_continue was misplaced after receiving CORE Ack, blocking the service.</li>
33 <li>Fixed bug when checking, if fragment sub tree is done.</li>
34 <li>Fixed bug in calculation of delay for PendingAcknowledgement.</li>
35 <li>Fixed bug in calculation of subtree fragment message size.</li>
36 <li>Fixed bug that additional queues for the same communicator inherit the validity period.</li>
37 <li>Fixed logic bug when searching for QueueEntry matching acknowledgement.</li>
38 <li>Fixed misplaced increase of queue length.</li>
39 </ul>
40 {% endtrans %}
41 </p>
42 </section>
43
44 <section>
45 <h4>{{ _("Configuration") }}</h4>
46 <p>
47 {% trans %}
48 <table width="100%">
49 <tr>
50 <td width="60%" style="vertical-align: top;">src/transport/test_transport_simple_send_performance_topo.conf</td><td width="40%" style="vertical-align: top;">Changed configuration to use TCP and UDP together.</td>
51 </tr>
52 </table>
53 {% endtrans %}
54 </p>
55 </section>
56 <section>
57 <h4>{{ _("Performance Measurement") }}</h4>
58 <p>
59 {% trans %}
60 The outcome of the performance measurement was ~66 MByte/s for packets with size of 65000 bytes. To follow up on this measurement one has to get the mean time the packets of 65000 bytes needed to reach another peer, to calculate the data rate, by doing<br/><br/>
61 <code>grep "mean time traveled" 811c040a2_test.out|tail -1</code><br/><br/>
62 on the log file <a href="/l2o/811c040a2_test.out">811c040a2_test.out</a> of the performance test case.
63 The performance increased from ~24 MByte/s measured with the code revision of milestone 5 by using TCP only to ~66 MByte/s measured with the code revision of milestone 6 for packet size of 65000 bytes using TCP and UDP together.
64
65 There are still possibilities to increase performance documented as TODOs in the source code.
66 {% endtrans %}
67 </p>
68 </section>
69 <section>
70 <h4>{{ _("Synergie with Interpeer Channeler project.") }}</h4>
71 <p>
72 {% trans %}
73 The Interpeer library Channeler and the L2O project have some goals in common. These include independence of the transmission protocol used, congestion control, reliability. Other goals of the Channeler project are not goals of the L2O project, but are already implemented or planned for other layers of GNUnet, such as multiplexing and ordered delivery of packages. There are also goals of the L2O project that are not goals of the Channeler project, such as metadata protection and identity assurance of communication partners. Due to these half overlapping half disjoint targets it is not reasonable that on project makes use of the other as a whole. However, parts of one project may well be applicable in the other. Since the Channeler project is not yet completed, it is not yet possible to identify the interesting parts beyond doubt. Interesting for the further development of L2O is the "Zero-Copy and Buffering" functionality of the Channeler project. This is also planned for future versions of L2O.
74
75 In conclusion, both projects can benefit from each other. At this point in time, it is still too early to tackle this concretely.
76 {% endtrans %}
77 </p>
78 </section>
79 </div>
80 </div>
81
82</article>
83{% endblock body_content %}
diff --git a/template/l2o/mile7.html.j2 b/template/l2o/mile7.html.j2
new file mode 100644
index 00000000..e75caf17
--- /dev/null
+++ b/template/l2o/mile7.html.j2
@@ -0,0 +1,62 @@
1 {% extends "common/base.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<article class="container">
5
6 <header>
7 <h1>{{ _("NGI Assure project: Layer-2-Overlay") }}</h1>
8 </header>
9
10 <div class="row">
11 <div class="col-2 d-none d-lg-block"><!-- for large viewports show menu for better orientation -->
12 <nav class="nav subnav position-fixed flex-column border-right" style="position:fixed">
13 <a class="nav-link" href="index.html#idea">{{ _("Project main page") }}</a>
14 </nav>
15 </div>
16 <div class="col">
17
18 <h2>Implementation details milestone 7</h2><br/>
19
20 <section>
21 <h4>{{ _("Marked old transport API as deprecated") }}</h4><br/>
22 <p>
23 {% trans %}
24 To make the search for the old API methods easier, those methods were marked as deprecated in their header files.</br></br>
25
26 See branch l20integration revision 664286d.
27 {% endtrans %}
28 </p>
29 </section>
30 <section>
31 <h4>{{ _("Removed usage of old transport API methods") }}</h4><br/>
32 <p>
33 {% trans %}
34 Removed usage of old transport API methods and exchanged them with API methods of L2O or deleted without replacement, if there is no corresponding functionality in L2O.</br></br>
35
36 In the process, the subsystems cadet, core, dhtu, fs and topology were touched.</br></br>
37
38 The blacklist and friend functionality in subsystem topology was deleted without replacement, as well as the bandwith allocation in the fs (file sharing) subsystem.</br></br>
39
40 In the transport subsystem itself, old API methods are still used until the code is finally removed in Milestone 9. There is a cli tool gnunet-transport in the transport subsystem which needs be rewritten partially to get infromation from L2O which can not retrieved via the old API anymore.</br></br>
41
42 Additionally there is a peerinfo cli tool gnunet-peerinfo, which needs to be rewritten partially too.</br></br>
43
44 See branch l20integration revision b78f993.
45 {% endtrans %}
46 </p>
47 </section>
48 <section>
49 <h4>{{ _("Deactivated tests which rely on old transport API methods") }}</h4><br/>
50 <p>
51 {% trans %}
52 All test which rely on the old transport API methods were deactivated. They are still in the code base, but they just wouldn't work.</br></br>
53
54 See branch l20integration revision 72b4f42.
55 {% endtrans %}
56 </p>
57 </section>
58 </div>
59 </div>
60
61</article>
62{% endblock body_content %}
diff --git a/template/l2o/mile8.html.j2 b/template/l2o/mile8.html.j2
new file mode 100644
index 00000000..8af78816
--- /dev/null
+++ b/template/l2o/mile8.html.j2
@@ -0,0 +1,86 @@
1 {% extends "common/base.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<article class="container">
5
6 <header>
7 <h1>{{ _("NGI Assure project: Layer-2-Overlay") }}</h1>
8 </header>
9
10 <div class="row">
11 <div class="col-2 d-none d-lg-block"><!-- for large viewports show menu for better orientation -->
12 <nav class="nav subnav position-fixed flex-column border-right" style="position:fixed">
13 <a class="nav-link" href="index.html#idea">{{ _("Project main page") }}</a>
14 </nav>
15 </div>
16 <div class="col">
17
18 <h2>Implementation details milestone 8</h2><br/>
19
20 <section>
21 <h4>{{ _("Added command to execute a script") }}</h4><br/>
22 <p>
23 {% trans %}
24 A command to start any kind of script was added. As of now this command blocks until the script finished. In the context of this milestone this command is later used to execute a script which blocks until it finds a specific file.</br></br>
25
26 See branch l20integration revision 40a5a65.
27 {% endtrans %}
28 </p>
29 </section>
30 <section>
31 <h4>{{ _("Added generic start script for test cases") }}</h4><br/>
32 <p>
33 {% trans %}
34 We do not want to have a specific start script for every test case. This start script asks for a test case configuration to use.</br></br>
35
36 See branch l20integration revision 80971b6.
37 {% endtrans %}
38 </p>
39 </section>
40 <section>
41 <h4>{{ _("Moved start peer command to testing subsystem") }}</h4><br/>
42 <p>
43 {% trans %}
44 A start script was added, that can be used by test cases in all subsystems, and which starts the new transport subsystem.</br></br>
45
46 See branch l20integration revision 03a5d17.
47 {% endtrans %}
48 </p>
49 </section>
50 <section>
51 <h4>{{ _("Added Testcase that just runs two peers, and blocks") }}</h4><br/>
52 <p>
53 {% trans %}
54 This testcase just runs to peers with the new transport subsystem and runs the command that executes a script that blocks until </br></br>
55
56 See branch l20integration revision 4ba7b5f.
57 {% endtrans %}
58 </p>
59 </section>
60 <section>
61 <h4>{{ _("Manually testing") }}</h4><br/>
62 <p>
63 {% trans %}
64 With the above mentioned test case, it was possible to get GNUnet running with the new transport (L2O) subsystem, do manually testing. Some bugs were already fixed:</br></br>
65 <ul>
66 <li>Fixed bug that core subsystem is not calling GNUNET_TRANSPORT_core_receive_continue. See branch l20integration revision 61bbc04.</li>
67 <li>Fixed bug that QueueEntry of another queue still holds reference to PendingMessage. See branch l20integration revision aec63bf.</li>
68 </ul>
69 {% endtrans %}
70 </p>
71 </section>
72 <section>
73 <h4>{{ _("Status") }}</h4><br/>
74 <p>
75 {% trans %}
76 The core and cadet subsystems were manually tested regarding integration with transport. They are boh working.
77
78 Next subsystems to test: dhtu, fs and topology.
79 {% endtrans %}
80 </p>
81 </section>
82 </div>
83 </div>
84
85</article>
86{% endblock body_content %}
diff --git a/template/l2o/mile9.html.j2 b/template/l2o/mile9.html.j2
new file mode 100644
index 00000000..1e5c9220
--- /dev/null
+++ b/template/l2o/mile9.html.j2
@@ -0,0 +1,338 @@
1 {% extends "common/base.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<article class="container">
5
6 <header>
7 <h1>{{ _("NGI Assure project: Layer-2-Overlay") }}</h1>
8 </header>
9
10 <div class="row">
11 <div class="col-2 d-none d-lg-block"><!-- for large viewports show menu for better orientation -->
12 <nav class="nav subnav position-fixed flex-column border-right" style="position:fixed">
13 <a class="nav-link" href="index.html#idea">{{ _("Project main page") }}</a>
14 </nav>
15 </div>
16 <div class="col">
17
18 <h2>Implementation details milestone 9</h2><br/>
19
20
21 <section>
22 <h4>{{ _("Added api to store hellos with peerstore service") }}</h4><br/>
23 <p>
24 {% trans %}
25 This functionality was formerly implemented in the peerinfo service.</br></br>
26
27 See revision 0f8b712.
28 {% endtrans %}
29 </p>
30 </section>
31 <section>
32 <h4>{{ _("Added api to get notified when hellos are stored with peerstore service") }}</h4><br/>
33 <p>
34 {% trans %}
35 This functionality was formerly implemented in the peerinfo service. After storing hellos with the peerstore service this was needed there.</br></br>
36
37 See revision 55a25ef.
38 {% endtrans %}
39 </p>
40 </section>
41 <section>
42 <h4>{{ _("Changed new hello uri api to allow to change the expiration time") }}</h4><br/>
43 <p>
44 {% trans %}
45 This change was necessary to create the bootstrap hello which must be valid indefinitely.</br></br>
46
47 See revision 39bcd0f.
48 {% endtrans %}
49 </p>
50 </section>
51 <section>
52 <h4>{{ _("Exchanged peerinfo api to store hellos with new peerstore api") }}</h4><br/>
53 <p>
54 {% trans %}
55 The new api needed to be exchange in all GNUnet packages.</br></br>
56
57 See revision 23a2640.
58 {% endtrans %}
59 </p>
60 </section>
61 <section>
62 <h4>{{ _("Change watch to return actual values, before watching.") }}</h4><br/>
63 <p>
64 {% trans %}
65 The watch api of the peerstore service was changed to return all values for a given key, before notifying the caller about ne values being stored.</br></br>
66
67 See revision 86ae84f.
68 {% endtrans %}
69 </p>
70 </section>
71 <section>
72 <h4>{{ _("The old hello design replaced by the new hello design.") }}</h4><br/>
73 <p>
74 {% trans %}
75 The new hello design was exchanged in all GNUnet packages.</br></br>
76
77 See revision a362cd5.
78 {% endtrans %}
79 </p>
80 </section>
81 <section>
82 <h4>{{ _("Cli tool for changing hello files in contrib can change file from old to new hello design.") }}</h4><br/>
83 <p>
84 {% trans %}
85 A cli tool for changing the bootstrap hello file in the contrib/hello directory was changed to rewritethe hello bootstrap file from old to new format. </br></br>
86
87 See revision 8ea9223.
88 {% endtrans %}
89 </p>
90 </section>
91 <section>
92 <h4>{{ _("Moved code to scan and import hello file into peerstore from peerinfo.") }}</h4><br/>
93 <p>
94 {% trans %}
95 The peerinfo service service was scanning a hostlist file and the data was used by the hostlist server. This code was moved to the peerstore service.</br></br>
96
97 See revision 20d6f3.
98 {% endtrans %}
99 </p>
100 </section>
101 <section>
102 <h4>{{ _("Moved code to testing to have more generic test setup, which can be used not only from within transport.") }}</h4><br/>
103 <p>
104 {% trans %}
105 The new testing framework was transport specific Now it can be used in other packages too.</br></br>
106
107 See revision 02a1fda.
108 {% endtrans %}
109 </p>
110 </section>
111 <section>
112 <h4>{{ _("Code moved to the core package to get rid of circular dependencies.") }}</h4><br/>
113 <p>
114 {% trans %}
115 After changes to be able to use the testing framework more generic the dependencies needed to be fixed..</br></br>
116
117 See revision 1016d6d.
118 {% endtrans %}
119 </p>
120 </section>
121 <section>
122 <h4>{{ _("Changed method GNUNET_HELLO_builder_get_expiration_time to not need parameter GNUNET_HELLO_Builder.") }}</h4><br/>
123 <p>
124 {% trans %}
125 A small function syntax fix.</br></br>
126
127 See revision 84913b.
128 {% endtrans %}
129 </p>
130 </section>
131 <section>
132 <h4>{{ _("Changed the behavior of GNUNET_PEERSTORE_watch to also return the values allready stored for the key.") }}</h4><br/>
133 <p>
134 {% trans %}
135 The watch functionality first returns all values for a given key, before notifying the caller about new values for that key.</br></br>
136
137 See revision e1341d1.
138 {% endtrans %}
139 </p>
140 </section>
141 <section>
142 <h4>{{ _("Changed address and hello format to new TNG format.") }}</h4><br/>
143 <p>
144 {% trans %}
145 All occurencies in GNUnet packages were changed from old to new hello format.</br></br>
146
147 See revision 66ecfe2.
148 {% endtrans %}
149 </p>
150 </section>
151 <section>
152 <h4>{{ _("Fixed bug in bootstrap code.") }}</h4><br/>
153 <p>
154 {% trans %}
155 Unnecessary check removed. Fixed small coding error.</br></br>
156
157 See revision 3bd35e8.
158 {% endtrans %}
159 </p>
160 </section>
161 <section>
162 <h4>{{ _("Fixed validation bug.") }}</h4><br/>
163 <p>
164 {% trans %}
165 The validation of other peers in the transport package was not working in some cases, because validation did not use monotonic time, and first_challenge_use wasn't reset.</br></br>
166
167 See revision 88cb4be.
168 {% endtrans %}
169 </p>
170 </section>
171 <section>
172 <h4>{{ _("Fixed wrong group name.") }}</h4><br/>
173 <p>
174 {% trans %}
175 A wrong group name was used for a DHT block entry.</br></br>
176
177 See revision 8127d51.
178 {% endtrans %}
179 </p>
180 </section>
181 <section>
182 <h4>{{ _("Task added to start reading the hostlist entries only after a certain period of time has elapsed.") }}</h4><br/>
183 <p>
184 {% trans %}
185 Reading hostlist entries and compiling the hostlist response to a hostlist request was started too early, even though the peer did not created its own hello.</br></br>
186
187 See revision 7761b42.
188 {% endtrans %}
189 </p>
190 </section>
191 <section>
192 <h4>{{ _("Added test config to have a peer running the hostlist server.") }}</h4><br/>
193 <p>
194 {% trans %}
195 The configuration of the test case had to be changed to let one peer run a hostlist server.</br></br>
196
197 See revision 3c761cd.
198 {% endtrans %}
199 </p>
200 </section>
201 <section>
202 <h4>{{ _("Changed hostlist server to use a hello cache.") }}</h4><br/>
203 <p>
204 {% trans %}
205 The host list server needed a cache for the entries, because with storing entries in the peerstore, only the new hellos were notified to the hostlist server.</br></br>
206
207 See revision e4b146e.
208 {% endtrans %}
209 </p>
210 </section>
211 <section>
212 <h4>{{ _("Bootstrap: Fixed bug to not replace hellos for a peer.") }}</h4><br/>
213 <p>
214 {% trans %}
215 Hellos are store with a specific key GNUNET_PEERSTORE_HELLO_KEY and option GNUNET_PEERSTORE_STOREOPTION_MULTIPLE instead of GNUNET_PEERSTORE_STOREOPTION_REPLACE.</br></br>
216
217 See revision 0516538.
218 {% endtrans %}
219 </p>
220 </section>
221 <section>
222 <h4>{{ _("Hello: Fix another bug in cli tool to generate contrib hello file.") }}</h4><br/>
223 <p>
224 {% trans %}
225 Use the actuall private key of the installed peer, not the peer id from file.</br></br>
226
227 See revision e0d28ef.
228 {% endtrans %}
229 </p>
230 </section>
231 <section>
232 <h4>{{ _("Cadet: Fixed issue #7542") }}</h4><br/>
233 <p>
234 {% trans %}
235 Cadet still used the legacy DHT hello block format, changed to the new URL-based block format.</br></br>
236
237 See revision 9376034.
238 {% endtrans %}
239 </p>
240 </section>
241 <section>
242 <h4>{{ _("Added DDLs for handling GNUNET_PEERSTORE_StoreHelloContext.") }}</h4><br/>
243 <p>
244 {% trans %}
245 Changed code to store hellos in new format in peerstore in transport and topology subsystem.</br></br>
246
247 See revision 233a6be.
248 {% endtrans %}
249 </p>
250 </section>
251 <section>
252 <h4>{{ _("A long list of Bugs which where fixed.") }}</h4><br/>
253 <p>
254 {% trans %}
255 <ul>
256 <li>c1783c1: TNG: Adding missing manual test case topology file.</li>
257 <li>8093c8e: Changed relative path to no force test config</li>
258 <li>aa9bebd: TNG: Fixed bug in handling hello to start validation.</li>
259 <li>21be887: Introduced closure to hold store context when caling function to add hello in peerstore.</li>
260 <li>0ecf00f: Hello: Fixed usage of GNUNET_HELLO_builder_iterate.</li>
261 <li>8ebef9f: Cadet: Changes to use DhtHelloMessage instead of HelloUriMessage, and to hand over not a HelloMessage, but a block to the dht.</li>
262 <li>2b87bab: Peerstore: Fixed memory related bugs.</li>
263 <li>a71b245: Testing: Exchange binary name for transport in test case configuration.</li>
264 <li>7da7937: Transport: Fixed null pointer in address iteration code to start validation.</li>
265 <li>060b681: Transport: Fixed bug while setting up key material for backchannel.</li>
266 <li>53ad5e4: Transport: Fixed bug while setting up key material for backchannel.</li>
267 <li>57d31ec: Transport: Fixed bug in free pending messages and queue entries.</li>
268 <li>20f5e2a: Transport: Fixed bug in ring buffer for core messages.</li>
269 <li>2c71a76: Topology: Fixed small bug.</li>
270 <li>d46e0b7: Hello: Changed bootstrap peer hello file to new bootstrap peer.</li>
271 <li>29e2e51: Peerstore: Make peerstore start immediately. Added option to use included hello.</li>
272 <li>1848ece: Hello: Change error handling of GNUNET_HELLO_builder_add_address usage.</li>
273 <li>4e77b10: Peerstore: We replace existing hellos. Only the origin peer merges hellos.</li>
274 <li>8e8c3f1: Transport: Added missing dekrement when removing QueueEntry from DLL.</li>
275 <li>a919091: Transport: Added missing dekrement of global communicator queue counter.</li>
276 <li>1513057: Transport: Using the correct TransportClient for dekrementing the global communicator queue counter.</li>
277 <li>23246e1: Transport: Fixed check when to stop FC retransmission.</li>
278 <li>015cef0: Transport: Removed logging that lead to an assertion.</li>
279 <li>ea2420b: Transport: Fixed check of value gotten from peerstore.</li>
280 <li>5934318: Transport: Destroy closed ProtoQueue.</li>
281 <li>f5fa8ef: Transport: Added logging in case of UDP errors, and destroy queue in case of errors.</li>
282 <li>e2a4d6c: Transport: Fixed bug in handling of AckPending.</li>
283 <li>c9b0b25: Transport: Removed misplaced removal of QueueEntry.</li>
284 <li>7f7571b: Transport: Fixed bugs in core message cache.</li>
285 <li>bc81b0a: Transport: We need to check if a message was cached when resuming communicators.</li>
286 <li>433c13c: Transport: Fixed bug handling queue length and QueueEntry when queue has no capacity.</li>
287 <li>3becc2d: Transport: Fixed bug to check each queue for validity separately.</li>
288 <li>2d955b1: Transport: More useful debug logging für service.</li>
289 <li>f1510f7: Transport: Fixed using wrong function to calculate mean time when to send next fragment.</li>
290 <li>ec57587: Peerstore: Fixed wrong assert when checking DLL with watches.</li>
291 <li>4274265: Transport: Added logging in case of UDP errors, and destroy queue in case of errors.</li>
292 <li>8d3c8c3: Transport: Fixed bug in handling of AckPending.</li>
293 <li>edd8e08: Transport: Removed misplaced removal of QueueEntry.</li>
294 <li>3b906ef: Transport: Fixed bugs in core message cache.</li>
295 <li>ca73eed: Transport: We need to check if a message was cached when resuming communicators.</li>
296 <li>e39ed50: Transport: Fixed bug handling queue length and QueueEntry when queue has no capacity.</li>
297 <li>f08eae1: Transport: Fixed bug to check each queue for validity separately.</li>
298 <li>6a27b67: Transport: Fixed using wrong function to calculate mean time when to send next fragment.</li>
299 <li>da2f9f7: Peerstore: Fixed wrong assert when checking DLL with watches.</li>
300 <li>6565677: Transport: Fixed counting of fragments of a message</li>
301 <li>26b05be: Transport: Introduced variable to count the round of fragments of a message being (re)send.</li>
302 <li>e22e637: Transport: Fixed ring buffer.</li>
303 <li>f387a7b: Util: Introduced GNUNET_TIME_relative_multiply_double.</li>
304 <li>36a9952: Transport: Added cleanup task to remove QueueEntry we got no ACK for.</li>
305 <li>164badb: Transport: Changed logic to first create a queue before starting validation.</li>
306 <li>894754f: Core: Added missing GNUNET_TRANSPORT_core_receive_continue.</li>
307 <li>b9cd040: Transport: Fixed bug in logic getting root parent of fragment which is a DV box.</li>
308 <li>84b76e3: Transport: Resuming communicators in case of core restarting.</li>
309 <li>78b0a9a: Transport. Fixed bug in logic freeing timedout QueueEntry.</li>
310 <li>0d9df1c: Fixed bug calculating next resend of fragments.</li>
311 <li>c69a0e9: Transport: first_challenge_use has to be reset in case of revalidation.</li>
312 <li>01b7a5d: Transport: When to resend a validation challenge and when to start revalidation needs to be seperate logic.</li>
313 <li>5f56628: Transport: Fixed bug in logic releasing resources and notifying communicators after caching messages to core.</li>
314 <li>94caa7d: Transport: Fixed bug in resend logic for fragments, especially for DV boxes.</li>
315 <li>67c90f8: Core: Fixed bug to stop keepalive after handling ping.</li>
316 <li>a3b9d98: Transport: Fixed fragmentation logic.</li>
317 <li>4254ee1: Core: Removed unnecessary client continue.</li>
318 <li>1d88d65: Transport: Added check for DV box, when checking for last applicable fragment during freeing some fragment.</li>
319 <li>4402b56: Transport: Added logging to debug freeing of fragments.</li>
320 <li>25ffc82: Transport: Inform Core about all VirtualLinks not only neighbours.</li>
321 <li>aaf07c7: Core: Added logic to decrease restart delay of connection to Transport depending on how long the connection to Transport lasted.</li>
322 </ul></br></br>
323 {% endtrans %}
324 </p>
325 </section>
326 <section>
327 <h4>{{ _("Status") }}</h4><br/>
328 <p>
329 {% trans %}
330 The hostlist, and topology subsystems and the bootstrap functionality were manually tested. Everything was working without errors. No known errors in other subsystems. Branch merged into master. New Transport and Hello released with version 0.21.
331 {% endtrans %}
332 </p>
333 </section>
334 </div>
335 </div>
336
337</article>
338{% endblock body_content %}
diff --git a/template/l2o/testng.html.j2 b/template/l2o/testng.html.j2
new file mode 100644
index 00000000..69905711
--- /dev/null
+++ b/template/l2o/testng.html.j2
@@ -0,0 +1,119 @@
1{% extends "common/base.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<article class="container">
5
6 <header>
7 <h1>{{ _("NGI Assure project: Layer-2-Overlay") }}</h1>
8 </header>
9
10 <div class="row">
11 <div class="col-2 d-none d-lg-block"><!-- for large viewports show menu for better orientation -->
12 <nav class="nav subnav position-fixed flex-column border-right" style="position:fixed">
13 <a class="nav-link" href="index.html#idea">{{ _("Project main page") }}</a>
14 </nav>
15 </div>
16 <div class="col">
17
18 <h2>The next generation testing framework</h2><br/>
19
20 <section>
21 <h4><a name="netjail" class="subnav-anchor"></a>{{ _("Netjail setup and execution") }}</h4><br/>
22 <p>
23 {% trans %}
24 Netjail is the GNUnet naming for having several <a href="https://www.man7.org/linux/man-pages/man8/ip-netns.8.html">network namespaces</a>, being isolated from each other to test how GNUnet nodes with limited connectivity behave, and how the new transport next generation implementation can help to circumvent the connectivity obstacles. The network namespaces are span a network with globally known nodes and several subnets separated from each other via a single router.
25
26 We have three scripts for the test setup:
27
28 <ul>
29 <li>netjail_start.sh: A script to setup the network namespaces. This script takes three arguments. The first is either the name of a configuration for the test setup topology or a string containing the topology information. The second is the process id of the test. The third is a flag if the first parameter contains the name of the configuration file or the topology string.</li>
30 <li>netjail_exec.sh: A script to run some command in a specific namespace. This script takes eight arguments. The first is the index of a node in a namespace for which we like to execute a command. The second is the index of the namespace of the node. The third is the command to execute, the fourth is the number of subnets, the fifth the number of nodes in each subnet, the sixth is the identifier used by the <a href="https://www.man7.org/linux/man-pages/man8/ip-netns.8.html">ip-netns</a> command, the sixth is a flag is the topology information is given via a topology file of a string containing the topology information..</li>
31 <li>netjail_stop.sh: A script which remove all the network namespace setup by netjail_start.sh. The arguments are the same as those for netjail_start.sh.</li>
32 </ul>
33
34 The is a generic test binary (test_transport_start_with_config) which will start the above mentioned scripts. Because creating network namespaces is only permitted for privileged users the generic test binary is not start directly, but via scripts. This script starts the generic binary using the command unshare. Using unshare one can create a namespace with its own user namespace, where creating network namespaces is allowed. Precondition to do this with unshare, is to set the kernel.unprivileged_userns_clone kernel parameter.
35 {% endtrans %}
36 </p><br/>
37 </section>
38
39 <h4><a name="cmdhelper" class="subnav-anchor"></a>{{ _("CMD helper and testcase plugins") }}</h4><br/>
40
41 <section>
42 <p>
43 {% trans %}
44 Although netjail_exec.sh can execute an arbitrary command in the ng testing framework a special command is used: gnunet-cmds-helper
45 This commands itself is of a special kind named helper processes which communicates via GNUNET_MessageHeaders on stdin/stdout with the process that started the helper. The gnunet-cmds-helper is used to load testcase plugins. Those plugins are implementations of an api which is used to start different test cases. Those plugins are dynamically loaded by gnunet-cmds-helper. Each plugin defines the commands which are running in a local interpreter loop started by the helper on that specific network namespace node. The plugins are also responsible for the communication via the helper with the master interpreter loop.
46 {% endtrans %}
47 </p><br/>
48 </section>
49 <h4><a name="cmdpattern" class="subnav-anchor"></a>{{ _("Command Pattern") }}</h4><br/>
50
51 <section>
52 <p>
53 {% trans %}
54 The testing framework borrowed from the <a href="https://docs.taler.net/developers-manual.html#testing-library">GNU Taler testing library</a> was extended to handle asychronous commands. Therefore a struct GNUNET_TESTING_AsyncContext was added to struct GNUNET_TESTING_Command. By default the continuation function of GNUNET_TESTING_AsyncContext is the interpreter_next function of the interpreter loop (blocking asynchronous command) which will be executed calling GNUNET_TESTING_async_finish, when the asynchronous task finished, but also can be any other function to be executed when the asynchronous task is non blocking.
55 {% endtrans %}
56 </p><br/>
57 </section>
58 <h4><a name="cmdpattern" class="subnav-anchor"></a>{{ _("Topology Configuration") }}</h4><br/>
59
60 <section>
61 <p>
62 {% trans %}
63 The topology of the netjail setup can be configured via a configuration file, or with a configuration string handed over to the generic binary for starting netjail based tests.</br></br>
64
65Both method can be examined in two example test scripts</br></br>
66
67test_transport_send_simple.sh</br></br>
68
69and</br></br>
70
71test_transport_send_simple_string.sh</br></br>
72
73The Syntax of the configuration is as follows.</br></br>
74
75The configuration string is structured by lines and the delimiter ':' used for seperating key/value(s) pairs and the chars '{' and '}' for grouping several key/value pairs as value and '|' to separate a group of values from the key/value(s) pair identifying a line. Below you find the EBNF of the configuration syntax.</br></br>
76
77config = line, {line} ;<br/><br/>
78line = ( "M:", NumberOfNodesPerSubnet ) | ( "N:", NumberOfSubnets ) | ( "X:", NumberOfGlobalNodes ) | NumberOfAdditionalConnections | ( "T:", GlobalPluginName ) | ( GlobalPeer, "|", KValue ) | ( "R:", IndexOfSubnetRouter, "|", RValue ) | ( SubnetPeer, "|", PValue ) ;<br/><br/>
79NumberOfNodesPerSubnet = Zero | NaturalNumber ;<br/><br/>
80NumberOfSubnets = NaturalNumber ;<br/><br/>
81NumberOfGlobalNodes = NaturalNumber ;<br/><br/>
82NumberOfAdditionalConnections = "AC:", NaturalNumber
83GlobalPluginName = "libgnunet_test_transport_plugin_cmd_", PluginName ;<br/><br/>
84GlobalPeer = "K", ":", IndexOfGlobalNode ;<br/><br/>
85KValue = EstablishConnectionToPeerViaProtocol ;<br/><br/>
86IndexOfSubnetRouter = Zero | NaturalNumber ;<br/><br/>
87RValue = OpenTCP, "|", OpenUDP ;<br/><br/>
88SubnetPeer = "P:", SubnetIndex, ":", NodeIndexInSubnet ;<br/><br/>
89PValue = EstablishConnectionToPeerViaProtocol, { "|", "{", NumberOfAdditionalConnections, "}" } ;<br/><br/>
90Zero = "0" ;<br/><br/>
91NaturalNumber = NumeralWithoutZero, { Numeral } ;<br/><br/>
92PluginName = Letter , { ( Letter | "_" ) } ;<br/><br/>
93IndexOfGlobalNode = Zero | NaturalNumber ;<br/><br/>
94EstablishConnectionToPeerViaProtocol = "{" "connect", ":" EstablishConnectionToPeerViaProtocolValues "}" ;<br/><br/>
95OpenTCP = OpenTCPNoSource | OpenTCPWithSource ;<br/><br/>
96OpenUDP = OpenUDPNoSource | OpenUDPWithSource ;<br/><br/>
97SubnetIndex = NaturalNumber ;<br/><br/>
98NodeIndexInSubnet = NaturalNumber ;<br/><br/>
99NumeralWithoutZero = "0" | Numeral ;<br/><br/>
100Numeral = "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;<br/><br/>
101Letter = "A" | "B" | ... | "Z" | "a" | ... | "z";<br/><br/>
102EstablishConnectionToPeerViaProtocolValues = EstablishConnectionToPeerViaProtocolValue { "|", EstablishConnectionToPeerViaProtocolValue }
103OpenTCPNoSource = "{tcp_port:", switch, "}" ;<br/><br/>
104OpenUDPNoSource = "{udp_port:", switch, "}" ;<br/><br/>
105OpenTCPWithSource = "{tcp_port:", SubnetPeer, { "tcp_port", SubnetPeer } ;<br/><br/>
106OpenTUDWithSource = "{udp_port:", SubnetPeer, { "udp_port", SubnetPeer } ;<br/><br/>
107EstablishConnectionToPeerViaProtocolValue = "{", ( GlobalPeer | SubnetPeer ), ":", Protocol, "}" ;<br/><br/>
108switch = On | Off ;<br/><br/>
109Protocol = "tcp" | "udp" ;<br/><br/>
110On = 1 ;<br/><br/>
111Off = 0 ;<br/><br/>
112 {% endtrans %}
113 </p>
114 </section>
115 </div>
116 </div>
117
118</article>
119{% endblock body_content %}
diff --git a/template/livingstandards.html.j2 b/template/livingstandards.html.j2
index f8d1d580..c8372ccc 100644
--- a/template/livingstandards.html.j2
+++ b/template/livingstandards.html.j2
@@ -1,11 +1,12 @@
1{% extends "common/base.j2" %} 1{% extends "common/base.j2" %}
2{% block body_content %} 2{% block body_content %}
3<main id="maincontent">
3 <div class="container-fluid"> 4 <div class="container-fluid">
4 <div class="container"> 5 <div class="container">
5 <article> 6 <article>
6 <div class="row"> 7 <div class="row">
7 <div class="container text-center"> 8 <div class="container text-center">
8 <h1>{{ _("Living Standards") }}</h1> 9 <h1>Living Standards</h1>
9 <section> 10 <section>
10 <p> 11 <p>
11 {% trans %} 12 {% trans %}
@@ -16,11 +17,21 @@
16 </div> 17 </div>
17 </div> 18 </div>
18 <ul> 19 <ul>
19 <li><b>LSD0000</b>: The Distributed Hash Table</li> 20 <li><b>LSD0000</b>: Reserved</li>
20 <li><b>LSD0001</b>: <a href="https://lsd.gnunet.org/lsd0001">The GNU Name System</a></li> 21 <li><b>LSD0001</b>: <a href="https://lsd.gnunet.org/lsd0001">The GNU Name System</a></li>
21 <li><b>LSD0002</b>: <a href="https://lsd.gnunet.org/lsd0002">re:claimID</a></li> 22 <li><b>LSD0002</b>: <a href="https://lsd.gnunet.org/lsd0002">re:claimID (work-in-progress)</a></li>
22 <li><b>LSD0003</b>: <a href="https://lsd.gnunet.org/lsd0003">Byzantine Fault Tolerant Set Reconciliation</a></li> 23 <li><b>LSD0003</b>: <a href="https://lsd.gnunet.org/lsd0003">Byzantine Fault Tolerant Set Reconciliation (work-in-progress)</a></li>
24 <li><b>LSD0004</b>: <a href="https://lsd.gnunet.org/lsd0004">The R5N Distributed Hash Table (work-in-progress)</a></li>
23 </ul> 25 </ul>
26 Unspecified components and subsystems:
27 <ul>
28 <li>CADET: Secure node-to-node communication.</li>
29 <li>CONVERSATION: Voice communication.</li>
30 <li>FILE-SHARING</li>
31 <li>CORE: Secure peer-to-peer neighbour communication.</li>
32 <li>TRANSPORT: Connectivity.</li>
33 </ul>
34
24 </article> 35 </article>
25 </div> 36 </div>
26 </div> 37 </div>
diff --git a/template/news/2011-11-24-archived-vfork.html.j2 b/template/news/2011-11-24-archived-vfork.html.j2
new file mode 100644
index 00000000..61249c38
--- /dev/null
+++ b/template/news/2011-11-24-archived-vfork.html.j2
@@ -0,0 +1,62 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>vfork and the signal race</h1>
4<p>
5 <b>This is an imported news item from the old Drupal GNUnet homepage.</b>
6</p>
7<p>
8Many articles uniformly claim that using vfork should be
9<a href="https://web.archive.org/web/20150924082249/http://tldp.org/HOWTO/Secure-Programs-HOWTO/avoid-vfork.html">avoided</a>
10and that the only difference between vfork and fork is (or used-to-be)
11<a href="https://web.archive.org/web/20150924082249/http://www.unixguide.net/unix/programming/1.1.2.shtml">performance</a>
12and that thus vfork is
13<a href="https://web.archive.org/web/20150924082249/http://stackoverflow.com/questions/4856255/the-difference-between-fork-vfork-exec-and-clone">obsolete</a>.
14Here, I wanted to document a technical case where vfork is actually required and where using fork instead of vfork (or operating system implementors implementing vfork as an alias for fork) causes a hard-to-find data race.
15</p>
16<p>
17GNUnet uses a hypervisor process (gnunet-service-arm) to control the peer's service processes. Services are started (vfork+exec) on-demand. The hypervisor is also responsible for stopping the services and sends a SIGTERM signal to the services to stop them. SIGTERM must be used to allow the services to shutdown gracefully. Naturally, after shutting down a service with a signal, the hypervisor waits for SIGCHILD and then cleans up with waitpid. Once all services processes have completed, the hypervisor can exit as well. It should also be noted that the hypervisor handles SIGTERM (by shutting down all services), so a signal handler is installed for that signal.
18</p>
19<p>
20The reason why we must use vfork is the following. After the hypervisor has started the service, it might be asked to stop the service at any time. We've actually managed (by scripting it) to reliably trigger a case where the hypervisor would start a service (fork) and then receive a request to terminate the service and issues the SIGTERM signal to the child before the child process had a chance to call exec. As a result, the SIGTERM would go to the (existing) handler of the hypervisor's code, then the child process would be exec'ed and essentially the signal was thereby lost in the race between kill and exec:
21</p>
22<p>
23If exec wins, the signal either kills the process hard during the service startup phase, which is fine, or the service process might handle it normally and terminate --- also fine).
24</p>
25<p>
26If kill wins the race, the signal would be lost and the hypervisor would wait 'forever' for the child to terminate.
27</p>
28<p>
29The solution with vfork is elegant and simple: by blocking the parent, vexec guarantees that the parent's signal handler is no longer active (and replaced by default handlers or the child's custom handlers) by the time the parent is able to issue a 'kill'.
30</p>
31<p>
32In conclusion, with parents that issue 'kill' on child processes, the use of vfork can make an important semantic difference and not only (possibly) offer performance advantages. The situation above cannot be easily fixed by other means and thus vfork is an important POSIX call that should be supported properly by all quality implementations. A possible hack to work around a lack of vfork would be to create a pipe in the parent, set it to close-on-exec, fork the child, close the write end and then do a blocking read from the read end. Once you get a read error, the child has exec'ed. Rather ugly in my opinion.
33</p>
34<p>
35Currently, gnunet-service-arm can hang indefinitely on systems that do not provide a correct implementation of vfork (however, in practice normal users should never encounter this).
36</p>
37<p>
38<b>better suggestion from Thomas Bushnell</b>
39<br>
40I just got an alternative suggestion to using either a pipe and vfork from Thomas Bushnell, which I like and will use:
41
42"The hypervisor at start creates a global variable hypervisor_pid, initialized from getpid().
43
44The signal handler in the hypervisor then does this:
45<br>
46<code class="block">
47if getpid() == hypervisor_pid<br>
48 kill_all_children_and_exit();<br>
49else<br>
50 exit();<br>
51</code>
52
53In this way, if the child is between fork and exec when the parent gets its kill, and then it tries to kill the child, and the kill happens before the child execs (the problematic case you describe), then the child simply enters the hypervisor's signal handler, notices that it's not the hypervisor, and exits.
54<br>
55Thomas"
56<br>
57Thanks for the suggestion!
58</p>
59<p>
60Thomas's suggestion is all fine and well, except that it doesn't work on OS X. As the attached simple program "killing-child-kills-parent.c" demonstrates, OS X manages to sometimes either deliver the signal to the wrong process (?) or not update getpid() between fork+exec or is otherwise generally broken. The program simply installs a signal handler in the parent with the guard suggested by Thomas, then forks + exec's "sleep" and then immediately kills the child. So we expect the signal to either reach our signal handler (child between fork+exec), causing the child to 'exit', or to reach 'sleep' which should also die. Somehow instead the "Should NEVER get this signal!" message is printed. Well, OS X is known to be a pile of crap, so no surprise. Using 'vfork' instead of fork gets us the desired behavor -- howver, this is clearly just a hack. So vfork is back (on OS X) as of SVN 25495.
61</p>
62{% endblock body_content %}
diff --git a/template/news/2013-11-15-special-use-gns.html.j2 b/template/news/2013-11-15-special-use-gns.html.j2
new file mode 100644
index 00000000..329e74d3
--- /dev/null
+++ b/template/news/2013-11-15-special-use-gns.html.j2
@@ -0,0 +1,14 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>Special-Use Domain Names of Peer-to-Peer Name Systems</h1>
4<p>
5 <b>This is an imported news item from the old Drupal GNUnet homepage.</b>
6</p>
7<p>
8We just submitted our draft for
9<a href="https://web.archive.org/web/20140901155643/https://datatracker.ietf.org/doc/draft-grothoff-iesg-special-use-p2p-names/">Special-Use Domain Names of Peer-to-Peer Name Systems</a> to IETF.
10The intention is to reserve the TLDs ".exit", ".i2p", ".gnu",
11".onion" and ".zkey" for use by the GNUnet, I2P and Tor peer-to-peer overlay
12networks.
13</p>
14{% endblock body_content %}
diff --git a/template/news/2013-12-28-archived-typos-pkeys.html.j2 b/template/news/2013-12-28-archived-typos-pkeys.html.j2
new file mode 100644
index 00000000..a541ef94
--- /dev/null
+++ b/template/news/2013-12-28-archived-typos-pkeys.html.j2
@@ -0,0 +1,16 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>Typo-Protected Public Keys</h1>
4<p>
5 <b>This is an imported news item from the old Drupal GNUnet homepage.</b>
6</p>
7<p>
8When users type in public keys (such as the 53-characters of a GNS zone), they might make typos. The usual way to fix typos is to add a checksum, further increasing the length of the sequence that has to be typed in.
9<br>
10We can fix this by including the checksum of the public key in the public key itself, simply by trying new private keys until the corresponding public key happens to have a checksum (over the other bits) in the bits designated for the checksum. If a checksum is 16 bits, we would only need to try 216 keys. The basic idea of brute-forcing keys to match a particular pattern <a href="https://web.archive.org/web/20141008173738/https://bitcointalk.org/index.php?topic=84569.0">was proposed before</a> for creating "vanity" public keys, but this might be another practical variant.
11</p>
12<p>
13<b>Acknowledgements</b><br/>
14The idea popped up in a discussion on the need for short public keys for GNS with Dan Bernstein and Tanja Lange at 30c3.
15</p>
16{% endblock body_content %}
diff --git a/template/news/2018-06.html.j2 b/template/news/2018-06.html.j2
new file mode 100644
index 00000000..08428466
--- /dev/null
+++ b/template/news/2018-06.html.j2
@@ -0,0 +1,108 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>GNUnet 0.11.0pre66</h1>
4<p>
5 We are pleased to announce the release of GNUnet 0.11.0pre66.<br>
6 This is a pre-release to assist developers and downstream packagers to test the package before the final release after four years of development.
7</p>
8<p>
9 In terms of usability, users should be aware that there are still a very large number of known open issues in particular with respect to ease of use, but also some critical privacy issues especially for mobile users. Also, the nascent network is tiny (~200 peers) and thus unlikely to provide good anonymity or extensive amounts of interesting information. As a result, the 0.11.0 release and especially this pre-release are only suitable for early adopters with some reasonable pain tolerance.
10</p>
11<h4 class="western">License change</h4>
12<p>
13 GNUnet 0.11.0pre66 is the first release that will be made under the GNU Affero General Public License v3+. After a significant amount of internal discussion lead constructively by lynX (thanks!), the conclusion has been that the IPC and REST APIs should be extended with support for an GNUNET_MESSAGE_TYPE_AGPL or /agpl request that enables users of these client/service-style APIs to download the source code.
14</p>
15<p>
16 Naturally, the discussion on licensing may not necessarily end here, but at this point we are not aware of any dissent in the community and this release seems to be the right time to make such a change. While the final decision was not subjected to a broad feedback round, this was done simply on the grounds that this placement of the AGPL API seems to addresses all concerns that were raised. Finally, thanks to the copyright assignment all developers are participating in, the community will be able to revise this decision later if necessary.
17</p>
18<p>
19 It should also be noted that this change does not impose additional restrictions on the licensing models of GNU Taler or pEp: both projects have agreements with GNUnet e.V. that ensure that they can make decisions that fit these applications (not to mention significant parts of GNU Taler are already AGPLv3+ already).
20</p>
21<h4 class="western">About GNUnet</h4>
22<p>
23 GNUnet is a framework for secure peer-to-peer networking. GNUnet&#39;s primary design goals are to protect the privacy of its users and to guard itself against attacks or abuse. At this point, GNUnet offers four primary applications on top of the framework:
24</p>
25<p>
26 The file-sharing service allows anonymous censorship-resistant file-sharing. Files, searches and search results are encrypted to make it hard to control, track or censor users. GNUnet&#39;s anonymity protocol (gap) is designed to make it difficult to link users to their file-sharing activities. Users can also individually trade-off between performance and anonymity. Despite providing anonymity, GNUnet&#39;s excess-based economy rewards contributing users with better performance.
27</p>
28<p>
29 The VPN service allows offering of services within GNUnet (using the .gnu TLD) and can be used to tunnel IPv4 and IPv6 traffic over the P2P network. The VPN can also be used for IP protocol translation (6-to-4, 4-to-6) and it is possible to tunnel IP traffic over GNUnet (6-over-4, 4-over-6). Note that at this stage, it is possible for peers to determine the IP address at which services are hosted, so the VPN does not offer anonymity.
30</p>
31<p>
32 The GNU Name System (GNS) provides a fully-decentralized and censorship resistant replacement for DNS. GNS can be used alongside DNS and can be integrated with legacy applications (such as traditional browsers) with moderate effort. GNS provides censorship-resistance, memorable names and cryptographic integrity protection for the records. Note that at this stage, it is possible for a strong adversary to determine which peer is responsible for a particular zone, GNS does not offer strong anonymity. However, GNS offers query privacy, that is other participants can typically not decrypt queries or replies.
33</p>
34<p>
35 Conversation allows voice calls to be made over GNUnet. Users are identified using GNS and voice data is encrypted. However, Conversation does not provide anonymity at this stage --- other peers may observe a connection between the two endpoints and it is possible to determine the IP address associated with a phone.
36</p>
37<p>
38 Other applications, including in particular the SecuShare social networking application, are still strictly experimental.
39</p>
40<p>
41 For developers, GNUnet offers:
42</p>
43<ul>
44 <li>Access to all subsystems via clean C APIs</li>
45 <li>Mostly written in C, but extensions possible in other languages</li>
46 <li>Multi-process architecture for fault-isolation between components</li>
47 <li>Use of event loop and processes instead of threads for ease of development</li>
48 <li>Extensive logging and statistics facilities</li>
49 <li>Integrated testing library for automatic deployment of large-scale experiments with tens of thousands of peers</li>
50</ul>
51<h4 class="western">Noteworthy improvements in 0.11.0pre66</h4>
52<ul>
53 <li>Improved documentation, converting Drupal handbook to Texinfo (thanks ng0!)</li>
54 <li>GNU Name System now can take over arbitrary TLDs, and support for conversion from DNS zones to GNS exists</li>
55 <li>Critical bugfixes in CORE, DHT and CADET subsystems</li>
56</ul>
57<p>
58 The above is just the short list, our bugtracker lists over 350 individual issues that were resolved (see <a href="https://gnunet.org/bugs/changelog_page.php">Changelog</a>)
59</p>
60<h4 class="western">Known Issues</h4>
61<p>
62 We have a few issues that are most likely not resolved in the final release. Users should be aware of these issues, which we hope to address shortly.
63</p>
64<ul>
65 <li>There are known major design issues in TRANSPORT, ATS and CORE which will need to be addressed for usability, performance and security.</li>
66 <li>There are known moderate implementation limitations in CADET that impact performance.</li>
67 <li>There are known moderate design issues in FS that also impact usability and performance.</li>
68 <li>There are minor implementation limitations in SET that create unnecessary attack surface for availability.</li>
69 <li>The Web site and manuals still need significant rework.</li>
70 <li>Subsystems related to SecuShare and RPS remain experimental.</li>
71</ul>
72<p>
73 In addition to this list, you may also want to consult our bug tracker at https://gnunet.org/bugs/ which lists about 200 more specific issues.
74</p>
75<h4>Availability</h4>
76<p>
77 The GNUnet 0.11.0pre66 source code is available from all GNU FTP mirrors. The GTK frontends (which includes the gnunet-setup tool) are a separate download. Please note that some mirrors might still be synchronizing.
78</p>
79<ul>
80 <li>GNUnet on a FTP mirror near you http://ftpmirror.gnu.org/gnunet/gnunet-0.11.0pre66.tar.gz</li>
81 <li>GNUnet GTK on an FTP mirror near you http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.0pre66.tar.gz</li>
82 <li>GNUnet FUSE on an FTP mirror near you http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0pre66.tar.gz</li>
83 <li>GNUnet on the primary GNU FTP server ftp://ftp.gnu.org/pub/gnu/gnunet/gnunet-0.11.0pre66.tar.gz</li>
84 <li>GNUnet GTK on the primary GNU FTP server ftp://ftp.gnu.org/pub/gnu/gnunet/gnunet-gtk-0.11.0pre66.tar.gz</li>
85 <li>GNUnet FUSE on the primary GNU FTP server ftp://ftp.gnu.org/pub/gnu/gnunet/gnunet-fuse-0.11.0pre66.tar.gz</li>
86</ul>
87<p>
88 Note that GNUnet is now started using &quot;gnunet-arm -s&quot;. GNUnet should be stopped using &quot;gnunet-arm -e&quot;.
89</p>
90<h4 class="western">Thanks</h4>
91<p>
92 This release was the work of many people. The following people contributed code and were thus easily identified:
93 Christian Grothoff,
94 Matthias Wachs, Bart Polot, Sree Harsha Totakura, Nathan S. Evans,
95 Martin Schanzenbach, Julius B&uuml;nger, Nils Gillmann, Philipp
96 T&ouml;lke, Florian Dold, &#1056;&#1091;&#1089;&#1083;&#1072;&#1085;
97 &#1048;&#1078;&#1073;&#1091;&#1083;&#1072;&#1090;&#1086;&#1074;,
98 tg(x), David Barksdale, Christian Fuchs, Nils Durner, Omar Tarabai,
99 Maximilian Szengel, Supriti Singh, lurchi, David Brodski, xrs, Fabian
100 Oehlmann, Carlo von lynX, Christophe Genevey Metat, Jeffrey Burdges,
101 Safey A.Halim, Daniel Golle, Phil, Bruno Cabral, Ji Lu, Heikki
102 Lindholm, Markus Teich, t3sserakt, Claudiu Olteanu, Marcello
103 Stanisci, Moon, anryko, Arthur Dewarumez, Julien Morvan, Adnan H, Lin
104 Tong, Andreas Fuchs, Christian Rupp, jah, Alejandra Morales, Matthias
105 Kolja Miehl, Andrew Cann, Antonio Ojea, Pascal Mainini, amirouche and
106 hark.
107</p>
108{% endblock body_content %}
diff --git a/template/news/2018-07.html.j2 b/template/news/2018-07.html.j2
new file mode 100644
index 00000000..e8c14fea
--- /dev/null
+++ b/template/news/2018-07.html.j2
@@ -0,0 +1,7 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>Second GNUnet Hacker Meeting 2018 at La D&#233;centrale, Switzerland</h1>
4 <p>
5 The GNUnet hackers met for the second time this year. The primary goal was to squash bugs to bring out a new release. Aside from this we worked hard on improving the documentation and to launch this new website.
6 </p>
7{% endblock body_content %}
diff --git a/template/news/2019-0.11.0.html.j2 b/template/news/2019-0.11.0.html.j2
new file mode 100644
index 00000000..ddf04623
--- /dev/null
+++ b/template/news/2019-0.11.0.html.j2
@@ -0,0 +1,72 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>GNUnet 0.11.0 released</h1>
4 <p>
5 We are pleased to announce the release of GNUnet 0.11.0.<br>
6 This is a major release after about five years of development. In terms of usability, users should be aware that there are still a large number of known open issues in particular with respect to ease of use, but also some critical privacy issues especially for mobile users. Also, the nascent network is tiny (about 200 peers) and thus unlikely to provide good anonymity or extensive amounts of interesting information. As a result, the 0.11.0 release is still only suitable for early adopters with some reasonable pain tolerance.
7</p>
8<h4>Download links</h4>
9<ul>
10 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.11.0.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-0.11.0.tar.gz</a></li>
11 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.11.0.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-0.11.0.tar.gz.sig</a></li>
12 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.0.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.0.tar.gz</a></li>
13 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.0.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.0.tar.gz.sig</a></li>
14 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz</a></li>
15 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz.sig</a></li>
16</ul>
17<p>
18 Note that due to mirror synchronization, not all links might be functional early after the release. For direct access try <a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
19</p>
20<p>
21 Note that GNUnet is now started using <tt>gnunet-arm -s</tt>. GNUnet should be stopped using <tt>gnunet-arm -e</tt>.
22</p>
23<h4>Noteworthy changes in 0.11.0</h4>
24<ul>
25 <li>The Web site and manuals have undergone significant rework. You can find an archive of the old Web site at <a href="http://web.archive.org/web/*/gnunet.org">archive.org</a>.</li>
26 <li>The code now builds again on macOS. GNUnet on macOS is <i>experimental</i>. While it builds and seems to run fine, some tests are known to fail.</li>
27 <li>Build process now works properly with libidn2</li>
28 <li>Except for <tt>gnunet-qr</tt>, all Python code was migrated to Python 3.7.</li>
29 <li>Fixed security issues in secret sharing cryptography logic</li>
30 <li>Services running out of file descriptors on <tt>accept()</tt> no longer busy wait</li>
31 <li>Fixed crash in gnunet-gns2dns proxy</li>
32 <li>GNS responses are now padded to minimize information disclosure from the size</li>
33 <li>Fixed API issues and (rare) crash bugs in CADET</li>
34 <li>The experimental SecuShare code is not included in the release, you can now find it in the <a href="https://git.gnunet.org/gnunet-secushare.git/">gnunet-secushare</a> Git repository.</li>
35 <li>The Ascension tool (separate download) now allows importing DNS zones into GNS via AXFR.</li>
36 <li>GNUnet now includes a decentralised identity attribute sharing service: reclaimID. A ready-to-use client can be found in an <a href="https://gitlab.com/reclaimid/client">external repo</a>.</li>
37 <li>The code now builds again on NetBSD. GNUnet on NetBSD is <i>experimental</i>. While it builds and seems to run fine, full support requires more changes in the core of GNUnet It will soon be available via pkgsrc.</li>
38 <li>Many things changed on the build system side. If you package GNUnet for an operating system or otherwise package manager, make sure that you read the README.</li>
39</ul>
40<p>
41 The above is just the short list, our bugtracker lists <a href="https://bugs.gnunet.org/changelog_page.php?version_id=258">over 100 individual issues</a> that were resolved since 0.11.0pre66.
42</p>
43 <h4>Known Issues</h4>
44 <ul>
45 <li>There are known major design issues in the TRANSPORT, ATS and CORE subsystems which will need to be addressed in the future to achieve acceptable usability, performance and security.</li>
46 <li>There are known moderate implementation limitations in CADET that negatively impact performance. Also CADET may unexpectedly deliver messages out-of-order.</li>
47 <li>There are known moderate design issues in FS that also impact usability and performance.</li>
48 <li>There are minor implementation limitations in SET that create unnecessary attack surface for availability.</li>
49 <li>The RPS subsystem remains experimental.</li>
50 <li>Some high-level tests in the test-suite fail non-deterministically due to the low-level TRANSPORT issues.</li>
51 </ul>
52<p>
53 In addition to this list, you may also want to consult our bug tracker at <a href="https://bugs.gnunet.org/">bugs.gnunet.org</a> which lists about 150 more specific issues.
54</p>
55<h4>Thanks</h4>
56<p>
57 This release was the work of many people. The following people
58 contributed code and were thus easily identified:
59 Christian Grothoff, Matthias Wachs, Bart Polot, Sree Harsha Totakura,
60 Nathan S. Evans, Martin Schanzenbach, Julius B&#xFC;nger, ng0,
61 Philipp T&#xF6;lke, Florian Dold, &#x420;&#x443;&#x441;&#x43B;&#x430;&#x43D; &#x418;&#x436;&#x431;&#x443;&#x43B;&#x430;&#x442;&#x43E;&#x432;, tg(x), David Barksdale,
62 Christian Fuchs, Nils Durner, Omar Tarabai, Maximilian Szengel, Supriti
63 Singh, lurchi, David Brodski, xrs, Fabian Oehlmann, Carlo von lynX,
64 Christophe Genevey Metat, Jeffrey Burdges, Safey A.Halim, Daniel Golle,
65 Phil, Bruno Cabral, Ji Lu, Heikki Lindholm, Markus Teich, t3sserakt,
66 Claudiu Olteanu, Marcello Stanisci, Moon, Hernani Marques, anryko, Arthur Dewarumez,
67 Julien Morvan, Adnan H, rexxnor, Lin Tong, Andreas Fuchs, Christian Rupp, jah,
68 Alejandra Morales, Bernd Fix, Feideus, Matthias Kolja Miehl, Andrew Cann, Antonio Ojea,
69 Pascal Mainini, amirouche and hark.
70 <a href="https://bugs.gnunet.org/view.php?id=5569">Special thanks</a> to Florian Weimer.
71</p>
72{% endblock body_content %}
diff --git a/template/news/2019-0.11.1.html.j2 b/template/news/2019-0.11.1.html.j2
new file mode 100644
index 00000000..82f27c85
--- /dev/null
+++ b/template/news/2019-0.11.1.html.j2
@@ -0,0 +1,55 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>GNUnet 0.11.1 released</h1>
4<p>
5 We are pleased to announce the release of GNUnet 0.11.1.
6 <br>
7 This is a bugfix release for 0.11.0, mostly fixing minor bugs, improving documentation and fixing various build issues. In terms of usability, users should be aware that there are still a large number of known open issues in particular with respect to ease of use, but also some critical privacy issues especially for mobile users. Also, the nascent network is tiny (about 200 peers) and thus unlikely to provide good anonymity or extensive amounts of interesting information. As a result, the 0.11.1 release is still only suitable for early adopters with some reasonable pain tolerance.
8</p>
9<h4>Download links</h4>
10<ul>
11 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.11.1.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-0.11.1.tar.gz</a></li>
12 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.11.1.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-0.11.1.tar.gz.sig</a></li>
13 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.0.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.0.tar.gz</a></li>
14 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.0.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.0.tar.gz.sig</a></li>
15 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz</a></li>
16 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz.sig</a></li>
17</ul>
18<p>
19 (gnunet-gtk and gnunet-fuse were not released again, as there were no changes and the 0.11.0 versions are expected to continue to work fine with gnunet-0.11.1.)
20</p>
21<p>
22 Note that due to mirror synchronization, not all links might be functional early after the release. For direct access try <a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
23</p>
24<p>
25 Note that GNUnet is now started using <tt>gnunet-arm -s</tt>. GNUnet should be stopped using <tt>gnunet-arm -e</tt>.
26</p>
27<h4>Noteworthy changes in 0.11.1</h4>
28<ul>
29 <li>gnunet-qr was rewritten in C, removing our last dependency on Python 2.x</li>
30 <li>REST and GNS proxy configuration options for address binding were added</li>
31 <li>gnunet-publish by default no longer includes creation time</li>
32 <li>Unreliable message ordering logic in CADET was fixed</li>
33 <li>Various improvements to build system and documentation</li>
34</ul>
35<p>
36 The above is just the short list, our bugtracker lists <a href="https://bugs.gnunet.org/changelog_page.php?version_id=312"> 14 individual issues</a> that were resolved since 0.11.0.
37</p>
38<h4>Known Issues</h4>
39<ul>
40 <li>There are known major design issues in the TRANSPORT, ATS and CORE subsystems which will need to be addressed in the future to achieve acceptable usability, performance and security.</li>
41 <li>There are known moderate implementation limitations in CADET that negatively impact performance. Also CADET may unexpectedly deliver messages out-of-order.</li>
42 <li>There are known moderate design issues in FS that also impact usability and performance.</li>
43 <li>There are minor implementation limitations in SET that create unnecessary attack surface for availability.</li>
44 <li>The RPS subsystem remains experimental.</li>
45 <li>Some high-level tests in the test-suite fail non-deterministically due to the low-level TRANSPORT issues.</li>
46</ul>
47<p>
48 In addition to this list, you may also want to consult our bug tracker at <a href="https://bugs.gnunet.org/">bugs.gnunet.org</a> which lists about 190 more specific issues.
49</p>
50<h4>Thanks</h4>
51<p>
52 This release was the work of many people. The following people contributed code and were thus easily identified:
53 ng0, Christian Grothoff, Hartmut Goebel, Martin Schanzenbach, Devan Carpenter, Naomi Phillips and Julius B&#xFC;nger.
54</p>
55{% endblock body_content %}
diff --git a/template/news/2019-0.11.2.html.j2 b/template/news/2019-0.11.2.html.j2
new file mode 100644
index 00000000..504a203c
--- /dev/null
+++ b/template/news/2019-0.11.2.html.j2
@@ -0,0 +1,55 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>GNUnet 0.11.2 released</h1>
4<p>
5 We are pleased to announce the release of GNUnet 0.11.2.
6<br>
7 This is a bugfix release for 0.11.0, mostly fixing minor bugs, improving documentation and fixing various build issues. In terms of usability, users should be aware that there are still a large number of known open issues in particular with respect to ease of use, but also some critical privacy issues especially for mobile users. Also, the nascent network is tiny (about 200 peers) and thus unlikely to provide good anonymity or extensive amounts of interesting information. As a result, the 0.11.2 release is still only suitable for early adopters with some reasonable pain tolerance.
8</p>
9<h4>Download links</h4>
10<ul>
11 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.11.2.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-0.11.2.tar.gz</a></li>
12 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.11.2.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-0.11.2.tar.gz.sig</a></li>
13 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.0.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.0.tar.gz</a></li>
14 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.0.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.0.tar.gz.sig</a></li>
15 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz</a></li>
16 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz.sig</a></li>
17</ul>
18<p>
19 (gnunet-gtk and gnunet-fuse were not released again, as there were no changes and the 0.11.0 versions are expected to continue to work fine with gnunet-0.11.2.)
20</p>
21<p>
22 Note that due to mirror synchronization, not all links might be functional early after the release. For direct access try <a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
23</p>
24<p>
25 Note that GNUnet is now started using <tt>gnunet-arm -s</tt>. GNUnet should be stopped using <tt>gnunet-arm -e</tt>.
26</p>
27<h4>Noteworthy changes in 0.11.2</h4>
28<ul>
29 <li>gnunet-qr was rewritten in C, removing our last dependency on Python 2.x</li>
30 <li>REST and GNS proxy configuration options for address binding were added</li>
31 <li>gnunet-publish by default no longer includes creation time</li>
32 <li>Unreliable message ordering logic in CADET was fixed</li>
33 <li>Various improvements to build system and documentation</li>
34</ul>
35<p>
36 The above is just the short list, our bugtracker lists <a href="https://bugs.gnunet.org/changelog_page.php?version_id=312">14 individual issues</a> that were resolved since 0.11.0.
37</p>
38<h4>Known Issues</h4>
39<ul>
40 <li>There are known major design issues in the TRANSPORT, ATS and CORE subsystems which will need to be addressed in the future to achieve acceptable usability, performance and security.</li>
41 <li>There are known moderate implementation limitations in CADET that negatively impact performance. Also CADET may unexpectedly deliver messages out-of-order.</li>
42 <li>There are known moderate design issues in FS that also impact usability and performance.</li>
43 <li>There are minor implementation limitations in SET that create unnecessary attack surface for availability.</li>
44 <li>The RPS subsystem remains experimental.</li>
45 <li>Some high-level tests in the test-suite fail non-deterministically due to the low-level TRANSPORT issues.</li>
46</ul>
47<p>
48 In addition to this list, you may also want to consult our bug tracker at <a href="https://bugs.gnunet.org/">bugs.gnunet.org</a> which lists about 190 more specific issues.
49</p>
50<h4>Thanks</h4>
51<p>
52 This release was the work of many people. The following people contributed code and were thus easily identified:
53 ng0, Christian Grothoff, Hartmut Goebel, Martin Schanzenbach, Devan Carpenter, Naomi Phillips and Julius B&#xFC;nger.
54</p>
55{% endblock body_content %}
diff --git a/template/news/2019-0.11.3.html.j2 b/template/news/2019-0.11.3.html.j2
new file mode 100644
index 00000000..50b207a1
--- /dev/null
+++ b/template/news/2019-0.11.3.html.j2
@@ -0,0 +1,52 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>GNUnet 0.11.3 released</h1>
4<p>
5 We are pleased to announce the release of GNUnet 0.11.3.
6<br>
7 This is a bugfix release for 0.11.2, mostly fixing a few build issues. In terms of usability, users should be aware that there are still a large number of known open issues in particular with respect to ease of use, but also some critical privacy issues especially for mobile users. Also, the nascent network is tiny (about 200 peers) and thus unlikely to provide good anonymity or extensive amounts of interesting information. As a result, the 0.11.3 release is still only suitable for early adopters with some reasonable pain tolerance.
8</p>
9<h4>Download links</h4>
10<ul>
11 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.11.3.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-0.11.3.tar.gz</a></li>
12 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.11.3.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-0.11.3.tar.gz.sig</a></li>
13 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.0.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.0.tar.gz</a></li>
14 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.0.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.0.tar.gz.sig</a></li>
15 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz</a></li>
16 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz.sig</a></li>
17</ul>
18<p>
19 (gnunet-gtk and gnunet-fuse were not released again, as there were no changes and the 0.11.0 versions are expected to continue to work fine with gnunet-0.11.3.)
20</p>
21<p>
22 Note that due to mirror synchronization, not all links might be functional early after the release. For direct access try <a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
23</p>
24<p>
25 Note that GNUnet is now started using <tt>gnunet-arm -s</tt>. GNUnet should be stopped using <tt>gnunet-arm -e</tt>.
26</p>
27<h4>Noteworthy changes in 0.11.3 (since 0.11.2)</h4>
28<ul>
29 <li>gnunet-zoneimport now handles <tt>-h</tt> correctly</li>
30 <li><tt>iptables</tt> and other similar binaries are no longer hard-coded but detected at configure time (with hard-coded fallback locations).</li>
31 <li><tt>make uninstall</tt> now properly uninstalls all files</li>
32 <li>Passing the no longer available <tt>--with-nssdir</tt> configuration option now results in a hard error.</li>
33 <li><tt>GNUNET_memcmp()</tt> and <tt>GNUNET_is_zero()</tt> macros introduced for improved type safety (but not yet used consistently).</li>
34</ul>
35<h4>Known Issues</h4>
36<ul>
37 <li>There are known major design issues in the TRANSPORT, ATS and CORE subsystems which will need to be addressed in the future to achieve acceptable usability, performance and security.</li>
38 <li>There are known moderate implementation limitations in CADET that negatively impact performance. Also CADET may unexpectedly deliver messages out-of-order.</li>
39 <li>There are known moderate design issues in FS that also impact usability and performance.</li>
40 <li>There are minor implementation limitations in SET that create unnecessary attack surface for availability.</li>
41 <li>The RPS subsystem remains experimental.</li>
42 <li>Some high-level tests in the test-suite fail non-deterministically due to the low-level TRANSPORT issues.</li>
43</ul>
44<p>
45 In addition to this list, you may also want to consult our bug tracker at <a href="https://bugs.gnunet.org/">bugs.gnunet.org</a> which lists about 190 more specific issues.
46</p>
47<h4>Thanks</h4>
48<p>
49 This release was the work of many people. The following people contributed code and were thus easily identified:
50 ng0, Christian Grothoff, Daniel Golle, Martin Schanzenbach and Julius B&#xFC;nger.
51</p>
52{% endblock body_content %}
diff --git a/template/news/2019-0.11.4.html.j2 b/template/news/2019-0.11.4.html.j2
new file mode 100644
index 00000000..9aad565f
--- /dev/null
+++ b/template/news/2019-0.11.4.html.j2
@@ -0,0 +1,50 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>GNUnet 0.11.4 released</h1>
4<p>
5 We are pleased to announce the release of GNUnet 0.11.4.
6<br>
7 This is a bugfix release for 0.11.3, mostly fixing a few build issues. In terms of usability, users should be aware that there are still a large number of known open issues in particular with respect to ease of use, but also some critical privacy issues especially for mobile users. Also, the nascent network is tiny (about 200 peers) and thus unlikely to provide good anonymity or extensive amounts of interesting information. As a result, the 0.11.4 release is still only suitable for early adopters with some reasonable pain tolerance.
8</p>
9<h4>Download links</h4>
10<ul>
11 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.11.4.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-0.11.4.tar.gz</a></li>
12 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.11.4.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-0.11.4.tar.gz.sig</a></li>
13 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.0.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.0.tar.gz</a></li>
14 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.0.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.0.tar.gz.sig</a></li>
15 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz</a></li>
16 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz.sig</a></li>
17</ul>
18<p>
19 (gnunet-gtk and gnunet-fuse were not released again, as there were no changes and the 0.11.0 versions are expected to continue to work fine with gnunet-0.11.4.)
20</p>
21<p>
22 Note that due to mirror synchronization, not all links might be functional early after the release. For direct access try <a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
23</p>
24<h4>Noteworthy changes in 0.11.4 (since 0.11.3)</h4>
25<ul>
26 <li><tt>gnunet-arm -s </tt> no longer logs into the console by default and instead into a logfile (in $GNUNET_HOME).</li>
27 <li>The reclaim subsystem is no longer experimental. See also <a href="https://reclaim-identity.io">re:claimID</a>. Further, the internal encryption scheme moved from ABE to GNS-style encryption.</li>
28 <li>GNUnet now depends on a more recent version of libmicrohttpd.</li>
29 <li>The REST API now includes read-only access to the configuration.</li>
30 <li>All manpages are now in mdocml format.</li>
31 <li><tt>gnunet-download-manager.scm</tt> removed.</li>
32</ul>
33<h4>Known Issues</h4>
34<ul>
35 <li>There are known major design issues in the TRANSPORT, ATS and CORE subsystems which will need to be addressed in the future to achieve acceptable usability, performance and security.</li>
36 <li>There are known moderate implementation limitations in CADET that negatively impact performance. Also CADET may unexpectedly deliver messages out-of-order.</li>
37 <li>There are known moderate design issues in FS that also impact usability and performance.</li>
38 <li>There are minor implementation limitations in SET that create unnecessary attack surface for availability.</li>
39 <li>The RPS subsystem remains experimental.</li>
40 <li>Some high-level tests in the test-suite fail non-deterministically due to the low-level TRANSPORT issues.</li>
41</ul>
42<p>
43 In addition to this list, you may also want to consult our bug tracker at <a href="https://bugs.gnunet.org/">bugs.gnunet.org</a> which lists about 190 more specific issues.
44</p>
45<h4>Thanks</h4>
46<p>
47 This release was the work of many people. The following people contributed code and were thus easily identified:
48 ng0, Christian Grothoff, Daniel Golle, Martin Schanzenbach and Julius B&#xFC;nger.
49</p>
50{% endblock body_content %}
diff --git a/template/news/2019-0.11.5.html.j2 b/template/news/2019-0.11.5.html.j2
new file mode 100644
index 00000000..049aa8b5
--- /dev/null
+++ b/template/news/2019-0.11.5.html.j2
@@ -0,0 +1,47 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>GNUnet 0.11.5 released</h1>
4<p>
5 We are pleased to announce the release of GNUnet 0.11.5.
6<br>
7 This is a bugfix release for 0.11.4, mostly fixing a few minor bugs and improving performance, in particular for identity management with a large number of egos. In the wake of this release, we also launched the <a href="https://rest.gnunet.org">REST API documentation</a>. In terms of usability, users should be aware that there are still a large number of known open issues in particular with respect to ease of use, but also some critical privacy issues especially for mobile users. Also, the nascent network is tiny (about 200 peers) and thus unlikely to provide good anonymity or extensive amounts of interesting information. As a result, the 0.11.5 release is still only suitable for early adopters with some reasonable pain tolerance.
8</p>
9<h4>Download links</h4>
10<ul>
11 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.11.5.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-0.11.5.tar.gz</a></li>
12 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.11.5.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-0.11.5.tar.gz.sig</a></li>
13 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.5.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.5.tar.gz</a></li>
14 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.5.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.5.tar.gz.sig</a></li>
15 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz</a></li>
16 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz.sig</a></li>
17</ul>
18<p>
19 gnunet-gtk saw some minor changes to adopt it to API changes in the main code related to the identity improvements. gnunet-fuse was not released again, as there were no changes and the 0.11.0 version is expected to continue to work fine with gnunet-0.11.5.
20</p>
21<p>
22 Note that due to mirror synchronization, not all links might be functional early after the release. For direct access try <a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
23</p>
24<h4>Noteworthy changes in 0.11.5 (since 0.11.4)</h4>
25<ul>
26 <li><tt>gnunet-identity</tt> is much faster when creating or deleting egos given a large number of existing egos.</li>
27 <li>GNS now supports CAA records.</li>
28 <li>Documentation, comments and code quality was improved.</li>
29</ul>
30<h4>Known Issues</h4>
31<ul>
32 <li>There are known major design issues in the TRANSPORT, ATS and CORE subsystems which will need to be addressed in the future to achieve acceptable usability, performance and security.</li>
33 <li>There are known moderate implementation limitations in CADET that negatively impact performance. Also CADET may unexpectedly deliver messages out-of-order.</li>
34 <li>There are known moderate design issues in FS that also impact usability and performance.</li>
35 <li>There are minor implementation limitations in SET that create unnecessary attack surface for availability.</li>
36 <li>The RPS subsystem remains experimental.</li>
37 <li>Some high-level tests in the test-suite fail non-deterministically due to the low-level TRANSPORT issues.</li>
38</ul>
39<p>
40 In addition to this list, you may also want to consult our bug tracker at <a href="https://bugs.gnunet.org/">bugs.gnunet.org</a> which lists about 190 more specific issues.
41</p>
42<h4>Thanks</h4>
43<p>
44 This release was the work of many people. The following people contributed code and were thus easily identified:
45 Christian Grothoff, Florian Dold, Marcello Stanisci, ng0, Martin Schanzenbach and Bernd Fix.
46</p>
47{% endblock body_content %}
diff --git a/template/news/2019-0.11.6.html.j2 b/template/news/2019-0.11.6.html.j2
new file mode 100644
index 00000000..3ee063b3
--- /dev/null
+++ b/template/news/2019-0.11.6.html.j2
@@ -0,0 +1,52 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>GNUnet 0.11.6 released</h1>
4<p>
5 We are pleased to announce the release of GNUnet 0.11.6.
6<br>
7 This is a bugfix release for 0.11.5, fixing a lot of minor bugs, improving stability and code quality. Further, our videos are back on the homepage. In this release, we again improved the webpage in general and updated our documentation. <i>As always:</i> In terms of usability, users should be aware that there are still <b>a large number of known open issues</b> in particular with respect to ease of use, but also some critical privacy issues especially for mobile users. Also, the nascent network is tiny (about 200 peers) and thus unlikely to provide good anonymity or extensive amounts of interesting information. As a result, the 0.11.6 release is still <b>only suitable for early adopters with some reasonable pain tolerance</b>.
8</p>
9<h4>Download links</h4>
10<ul>
11 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.11.6.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-0.11.6.tar.gz</a></li>
12 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.11.6.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-0.11.6.tar.gz.sig</a></li>
13 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.6.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.6.tar.gz</a></li>
14 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.6.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.6.tar.gz.sig</a></li>
15 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz</a></li>
16 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz.sig</a></li>
17</ul>
18<p>
19 gnunet-fuse was not released again, as there were no changes and the 0.11.0 versions are expected to continue to work fine with gnunet-0.11.6.
20</p>
21<p>
22 Note that due to mirror synchronization, not all links might be functional early after the release. For direct access try <a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
23</p>
24<h4>Noteworthy changes in 0.11.6 (since 0.11.5)</h4>
25<ul>
26 <li><tt>gnunet-identity</tt> can now print private keys.</li>
27 <li>The <tt>REST</tt> service can be configured to echo the HTTP Origin header value for Cross-Origin-Resource-Sharing (CORS) when it is called by a browser plugin. Optionally, a CORS Origin to echo can be also be directly configured.</li>
28 <li><tt>re:claimID</tt> tickets are now re-used whenever possible.</li>
29 <li>SUID binary detection mechanisms implemented to improve compatiblity with some distributions.</li>
30 <li><tt>TRANSPORT</tt>, <tt>TESTBED</tt> and <tt>CADET</tt> tests now pass again on macOS.</li>
31 <li><tt>CADET</tt>: Replaced enum <tt>GNUNET_CADET_ChannelOption</tt> with <tt>GNUNET_MQ_PriorityPreferences</tt> in preparation of API changed in the future.</li>
32 <li>The GNS proxy Certification Authority is now generated using gnutls-certtool, if available, with opennssl/certtool as fallback.</li>
33 <li>Documentation, comments and code quality was improved.</li>
34</ul>
35<h4>Known Issues</h4>
36<ul>
37 <li>There are known major design issues in the TRANSPORT, ATS and CORE subsystems which will need to be addressed in the future to achieve acceptable usability, performance and security.</li>
38 <li>There are known moderate implementation limitations in CADET that negatively impact performance.</li>
39 <li>There are known moderate design issues in FS that also impact usability and performance.</li>
40 <li>There are minor implementation limitations in SET that create unnecessary attack surface for availability.</li>
41 <li>The RPS subsystem remains experimental.</li>
42 <li>Some high-level tests in the test-suite fail non-deterministically due to the low-level TRANSPORT issues.</li>
43</ul>
44<p>
45 In addition to this list, you may also want to consult our bug tracker at <a href="https://bugs.gnunet.org/">bugs.gnunet.org</a> which lists about 190 more specific issues.
46</p>
47<h4>Thanks</h4>
48<p>
49 This release was the work of many people. The following people contributed code and were thus easily identified:
50 Martin Schanzenbach, Julius B&uuml;nger, ng0, Christian Grothoff, Alexia Pagkopoulou, rexxnor, xrs, lurchi and t3sserakt.
51</p>
52{% endblock body_content %}
diff --git a/template/news/2019-0.11.7.html.j2 b/template/news/2019-0.11.7.html.j2
new file mode 100644
index 00000000..f2b38231
--- /dev/null
+++ b/template/news/2019-0.11.7.html.j2
@@ -0,0 +1,56 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>GNUnet 0.11.7 released</h1>
4<p>
5 We are pleased to announce the release of GNUnet 0.11.7.
6<br>
7 This is a bugfix release for 0.11.6, fixing a lot of minor bugs, improving stability and code quality. Further, win32 support was removed for reasons you may read below. In this release, we again improved the webpage in general and updated our documentation. <i>As always:</i> In terms of usability, users should be aware that there are still <b>a large number of known open issues</b> in particular with respect to ease of use, but also some critical privacy issues especially for mobile users. Also, the nascent network is tiny (about 200 peers) and thus unlikely to provide good anonymity or extensive amounts of interesting information. As a result, the 0.11.7 release is still <b>only suitable for early adopters with some reasonable pain tolerance</b>.
8</p>
9<h4>Download links</h4>
10<ul>
11 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.11.7.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-0.11.7.tar.gz</a></li>
12 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.11.7.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-0.11.7.tar.gz.sig</a></li>
13 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.7.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.7.tar.gz</a></li>
14 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.7.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.7.tar.gz.sig</a></li>
15 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz</a></li>
16 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz.sig</a></li>
17</ul>
18<p>
19 gnunet-fuse is not released again, as there were no changes and the 0.11.0 versions are expected to continue to work fine with gnunet-0.11.7. The GPG key used to sign is: <tt>A88C8ADD129828D7EAC02E52E22F9BBFEE348588</tt>
20</p>
21<p>
22 Note that due to mirror synchronization, not all links might be functional early after the release. For direct access try <a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
23</p>
24<h4>Noteworthy changes in 0.11.7 (since 0.11.6)</h4>
25<ul>
26 <li><tt>ARM</tt>: GNUnet CLI tools are now able to detect if gnunet(-arm) is not running and will exit with a warning (before the command would just hang and wait for GNUnet to be started). #5906</li>
27 <li>win32 and mingw support were dropped, which resulted in a significant number of lines of code to be gone. The code has been unmaintained in our code base for many years and there are no known users. For details and further reasons refer to the discussion <a href="https://lists.gnu.org/archive/html/gnunet-developers/2019-09/msg00002.html">in our archives</a>.</li>
28 <li>Removal of plibc, win32 and mingw support means you can now compile gnunet without requiring a Cxx compiler (you just need a C compiler). #5877</li>
29 <li><tt>REST</tt>: The new config endpoints can now be used to read and write the GNUnet config. #5808</li>
30 <li><tt>REST</tt>: The service is not started per user in multiuser setups.</li>
31 <li><tt>REST</tt>: Added tests for namestore and GNS. #5638</li>
32 <li><tt>re:claimID / OIDC</tt>: Now supports <a href="https://tools.ietf.org/html/rfc7636">PKCE</a>. #5807</li>
33 <li>SUID binary detection mechanisms implemented to improve compatiblity with some distributions.</li>
34 <li><tt>CREDENTIAL</tt> subsystem reworked and renamed to <tt>ABD</tt> (attribute-based delegation).</li>
35 <li><a href="https://lists.gnu.org/archive/html/gnunet-developers/2019-10/msg00023.html">Minor TRANSPORT fixes</a> and <a href="https://lists.gnu.org/archive/html/gnunet-developers/2019-10/msg00022.html">NAT changes</a>.</li>
36 <li><tt>GNS</tt> prepared code for <a href="https://git.gnunet.org/lsd0001.git/tree/draft-schanzen-gns.txt">LSD001 changes</a>. #5920</li>
37 <li>Documentation, comments and code quality was improved.</li>
38</ul>
39<h4>Known Issues</h4>
40<ul>
41 <li>There are known major design issues in the TRANSPORT, ATS and CORE subsystems which will need to be addressed in the future to achieve acceptable usability, performance and security.</li>
42 <li>There are known moderate implementation limitations in CADET that negatively impact performance.</li>
43 <li>There are known moderate design issues in FS that also impact usability and performance.</li>
44 <li>There are minor implementation limitations in SET that create unnecessary attack surface for availability.</li>
45 <li>The RPS subsystem remains experimental.</li>
46 <li>Some high-level tests in the test-suite fail non-deterministically due to the low-level TRANSPORT issues.</li>
47</ul>
48<p>
49 In addition to this list, you may also want to consult our bug tracker at <a href="https://bugs.gnunet.org/">bugs.gnunet.org</a> which lists about 190 more specific issues.
50</p>
51<h4>Thanks</h4>
52<p>
53 This release was the work of many people. The following people contributed code and were thus easily identified:
54 Martin Schanzenbach, ng0, Christian Grothoff, Alexia Pagkopoulou, Andreas Ebner, Corvus Corax, xrs and t3sserakt.
55</p>
56{% endblock body_content %}
diff --git a/template/news/2019-0.11.8.html.j2 b/template/news/2019-0.11.8.html.j2
new file mode 100644
index 00000000..9a92eaac
--- /dev/null
+++ b/template/news/2019-0.11.8.html.j2
@@ -0,0 +1,47 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>GNUnet 0.11.8 released</h1>
4<p>
5 We are pleased to announce the release of GNUnet 0.11.8.
6<br>
7 This is a hotfix release for 0.11.7. <i>As always:</i> In terms of usability, users should be aware that there are still <b>a large number of known open issues</b> in particular with respect to ease of use, but also some critical privacy issues especially for mobile users. Also, the nascent network is tiny (about 200 peers) and thus unlikely to provide good anonymity or extensive amounts of interesting information. As a result, the 0.11.8 release is still <b>only suitable for early adopters with some reasonable pain tolerance</b>.
8</p>
9<h4>Download links</h4>
10<ul>
11 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.11.8.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-0.11.8.tar.gz</a></li>
12 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.11.8.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-0.11.8.tar.gz.sig</a></li>
13 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.7.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.7.tar.gz</a></li>
14 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.7.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.11.7.tar.gz.sig</a></li>
15 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz</a></li>
16 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.11.0.tar.gz.sig</a></li>
17</ul>
18<p>
19 gnunet-fuse and gnunet-gtk were not released again, as there were no changes and the 0.11.0/0.11.7 versions are expected to continue to work fine with gnunet-0.11.8. The GPG key used to sign is: <tt>A88C8ADD129828D7EAC02E52E22F9BBFEE348588</tt>
20</p>
21<p>
22 Note that due to mirror synchronization, not all links might be functional early after the release. For direct access try <a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
23</p>
24<h4>Noteworthy changes in 0.11.8 (since 0.11.7)</h4>
25<ul>
26 <li><tt>GNS</tt> Portability fixes.</li>
27 <li><tt>PQ</tt>: Fixed build with postgresql plugin. (Regression introduces as part of #5733)</li>
28</ul>
29<h4>Known Issues</h4>
30<ul>
31 <li>There are known major design issues in the TRANSPORT, ATS and CORE subsystems which will need to be addressed in the future to achieve acceptable usability, performance and security.</li>
32 <li>There are known moderate implementation limitations in CADET that negatively impact performance.</li>
33 <li>There are known moderate design issues in FS that also impact usability and performance.</li>
34 <li>There are minor implementation limitations in SET that create unnecessary attack surface for availability.</li>
35 <li>The RPS subsystem remains experimental.</li>
36 <li>Some high-level tests in the test-suite fail non-deterministically due to the low-level TRANSPORT issues.</li>
37</ul>
38<p>
39 In addition to this list, you may also want to consult our bug tracker at <a href="https://bugs.gnunet.org/">bugs.gnunet.org</a> which lists about 190 more specific issues.
40</p>
41
42<h4>Thanks</h4>
43<p>
44 This release was the work of many people. The following people contributed code and were thus easily identified:
45 ng0, Daniel Golle.
46</p>
47{% endblock body_content %}
diff --git a/template/news/2019-0.12.0.html.j2 b/template/news/2019-0.12.0.html.j2
new file mode 100644
index 00000000..6cf68160
--- /dev/null
+++ b/template/news/2019-0.12.0.html.j2
@@ -0,0 +1,85 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>GNUnet 0.12.0 released</h1>
4<p>
5 We are pleased to announce the release of GNUnet 0.12.0.
6<br>
7 This is a new major release. It breaks protocol compatibility with the 0.11.x versions.
8 Please be aware that Git master is thus henceforth <b>INCOMPATIBLE</b> with
9 the 0.11.x GNUnet network, and interactions between old and new peers
10 will result in signature verification failures. 0.11.x peers will <b>NOT</b>
11 be able to communicate with Git master or 0.12.x peers.<br/>
12 In terms of usability, users should be aware that there are still
13 <b>a large number of known open issues</b> in particular with respect to ease
14 of use, but also some critical privacy issues especially for mobile users.
15 Also, the nascent network is tiny and thus unlikely to
16 provide good anonymity or extensive amounts of interesting information.
17 As a result, the 0.12.0 release is still <b>only suitable for early adopters
18 with some reasonable pain tolerance</b>.
19</p>
20<h4>Download links</h4>
21<ul>
22 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.12.0.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-0.12.0.tar.gz</a></li>
23 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.12.0.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-0.12.0.tar.gz.sig</a></li>
24 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.12.0.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.12.0.tar.gz</a></li>
25 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.12.0.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.12.0.tar.gz.sig</a></li>
26 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.12.0.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.12.0.tar.gz</a></li>
27 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.12.0.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.12.0.tar.gz.sig</a></li>
28</ul>
29<p>
30 The GPG key used to sign is: <tt>3D11063C10F98D14BD24D1470B0998EF86F59B6A</tt>
31</p>
32<p>
33 Note that due to mirror synchronization, not all links might be functional
34 early after the release. For direct access try
35 <a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
36</p>
37<h4>Noteworthy changes in 0.12.0 (since 0.11.8)</h4>
38<ul>
39 <li><tt>GNS</tt>:
40 <ul>
41 <li>Changed key derivation protocols to adhere with <a href="https://git.gnunet.org/lsd0001.git/tree/draft-schanzen-gns.txt">LSD001</a>. <a href="https://bugs.gnunet.org/view.php?id=5921">#5921</a></li>
42 <li>Names are not expected to be UTF-8 (as opposed to IDNA). <a href="https://bugs.gnunet.org/view.php?id=5922">#5922</a></li>
43 <li>NSS plugin now properly handles non-standard IDNA names. <a href="https://bugs.gnunet.org/view.php?id=5927">#5927</a></li>
44 <li>NSS plugin will refuse to process requests from root (as GNUnet code should never run as root). <a href="https://bugs.gnunet.org/view.php?id=5927">#5907</a></li>
45 <li>Fixed BOX service/protocol label parsing (for TLSA et al)</li>
46 </ul>
47 </li>
48 <li><tt>GNS/NSE</tt>: Zone revocation proof of work algorithm changed to be less susceptible to specialized ASIC hardware.
49 <a href="https://bugs.gnunet.org/view.php?id=3795">#3795</a></li>
50 <li><tt>TRANSPORT</tt>: UDP plugin moved to experimental as it is known to be unstable.</li>
51 <li><tt>UTIL</tt>:
52 <ul>
53 <li>Improved and documented RSA binary format. <a href="https://bugs.gnunet.org/view.php?id=5968">#5968</a></li>
54 <li>Removed redundant hashing in EdDSA signatures. <a href="https://bugs.gnunet.org/view.php?id=5398">#5398</a></li>
55 <li>The <tt>gnunet-logread</tt> script for log auditing (requires perl) can now be installed.</li>
56 <li>Now using <a href="https://tweetnacl.cr.yp.to/">TweetNaCl</a> for ECDH implementation.</li>
57 </ul>
58 </li>
59 <li><tt>Buildsystem</tt>: A significant number of build system issued have been fixed and improvements implemented, including:
60 <ul>
61 <li>GLPK dependency dropped.</li>
62 <li>Fixed guix package definition.</li>
63 </ul>
64 </li>
65 <li><tt>Documentation</tt>: Improvements to the handbook and documentation.</li>
66</ul>
67<h4>Known Issues</h4>
68<ul>
69 <li>There are known major design issues in the TRANSPORT, ATS and CORE subsystems which will need to be addressed in the future to achieve acceptable usability, performance and security.</li>
70 <li>There are known moderate implementation limitations in CADET that negatively impact performance.</li>
71 <li>There are known moderate design issues in FS that also impact usability and performance.</li>
72 <li>There are minor implementation limitations in SET that create unnecessary attack surface for availability.</li>
73 <li>The RPS subsystem remains experimental.</li>
74 <li>Some high-level tests in the test-suite fail non-deterministically due to the low-level TRANSPORT issues.</li>
75</ul>
76<p>
77 In addition to this list, you may also want to consult our bug tracker at <a href="https://bugs.gnunet.org/">bugs.gnunet.org</a> which lists about 190 more specific issues.
78</p>
79
80<h4>Thanks</h4>
81<p>
82 This release was the work of many people. The following people contributed code and were thus easily identified:
83 ng0, Christian Grothoff, Florian Dold, xrs, Naomi Phillips and Martin Schanzenbach.
84</p>
85{% endblock body_content %}
diff --git a/template/news/2019-0.12.1.html.j2 b/template/news/2019-0.12.1.html.j2
new file mode 100644
index 00000000..7911fcd1
--- /dev/null
+++ b/template/news/2019-0.12.1.html.j2
@@ -0,0 +1,26 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>GNUnet 0.12.1 released</h1>
4<p>
5 We are pleased to announce the release of GNUnet 0.12.1.
6<br>
7 This is a very minor release. It largely fixes one function that is
8 needed by GNU Taler 0.6.0. Please read the release notes
9 for GNUnet 0.12.0, as they still apply. Updating is only recommended
10 for those using GNUnet in combination with GNU Taler.
11</p>
12<h4>Download links</h4>
13<ul>
14 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.12.1.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-0.12.1.tar.gz</a></li>
15 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.12.1.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-0.12.1.tar.gz.sig</a></li>
16</ul>
17<p>
18 The GPG key used to sign is: <tt>D8423BCB326C7907033929C7939E6BE1E29FC3CC</tt>
19</p>
20<p>
21 Note that due to mirror synchronization, not all links might be functional
22 early after the release. For direct access try
23 <a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
24</p>
25
26{% endblock body_content %}
diff --git a/template/news/2019-02.html.j2 b/template/news/2019-02.html.j2
new file mode 100644
index 00000000..0925eb75
--- /dev/null
+++ b/template/news/2019-02.html.j2
@@ -0,0 +1,75 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>2019-02: Topics for GSoC 2019</h1>
4<p>
5 GNUnet is participating in the Google Summer of Code again through GNU. If you are interested in any of these projects, reach out to us!
6</p>
7<section>
8 <h4>Android Port</h4>
9 <p>
10 It is time for GNUnet to run properly on Android. Note that GNUnet is written in C, and this is not about rewriting GNUnet in Java, but about getting the C code to run on Android.<br>
11 Mentor: <a href="https://www.goebel-consult.de/">Hartmut Goebel</a>
12 </p>
13</section>
14
15<section>
16 <h4>Help with Continuous Integration setup</h4>
17 <p>
18 There is a push for migrating our CI to Gitlab. The CI should eventually not just run "make check" on various platforms, but also perform tests with multiple peers running in different VMs with specific network topologies (i.e. NAT) between them being simulated. The CI should also be integrated with Gauger for performance regression analysis. Running jobs only when dependencies have changed and scripting more granular triggers or ideally automatic dependency discovery (as done by the autotools) is also important.<br>
19 Mentor: TBD
20 </p>
21</section>
22
23<section>
24 <h4>Migrate gnunet-qr from Python 2.7 to C using libzbar</h4>
25 <p>
26 Python 2.7 is reaching its end-of-life, and we want to get rid of the dependency on Python. The existing gnunet-qr tool is a rather simple wrapper around python-zbar, which itself wraps libzbar. The goal of this project is to directly use libzbar to scan QR codes for GNUnet / the GNU Name System (see also <a href="https://bugs.gnunet.org/view.php?id=5562">#5562</a>).<br>
27 Mentor: Christian Grothoff
28 </p>
29</section>
30
31<section>
32 <h4>re:claimID OpenID Connect performance improvements</h4>
33 <p>
34 reclaimID is a decentralized identity system build on top of the GNU Name System. Upon authorization, the user provides a requesting party (RP) such as a website with an authorization ticket (e.g. piggybacked in an OpenID authorization code). The RP uses information contained in this ticket to
35 </p>
36 <ol>
37 <li> Retrieve the decryption key from GNS</li>
38 <li> Retrieve the user attributes from GNS</li>
39 </ol>
40 <p>
41 The GNS lookups ensure that the RP receives up-to-date attributes and functional decryption keys. However, in particular the RP-specific encryption key resolution can be slow and even fail depending on the network topology. We propose that in an initial exchange, in particular OpenID authorization code flows, we try to incorporate key and maybe even an attribute set in the ticket exchange. In order to mitigate this issue, this project is meant to investigate and implement how...
42 </p>
43 <ol>
44 <li> ... decryption keys can be added to an initial exchange in OpenID.</li>
45 <li> ... initial set(s) of attributes can be piggybacked in OpenID.</li>
46 </ol>
47 <p>
48 Mentor: Martin Schanzenbach
49 </p>
50</section>
51
52<section>
53 <h4>re:claimID alternative GNS-based encryption</h4>
54 <p>
55 re:claimID is a decentralized identity system build on top of the GNU Name System. The initial design and implementation of re:claimID includes an attribute-based encryption module in order to prevent unauthorized access to attributes in the name system. Our motivation for re:claimID was for it to be name system agnostic, which means the design theoretically also works for other name systems such as namecoin. Other name systems often do not have built-in mechanisms in order to do this. Hence, we implemented an ABE access control layer. Our ABE implementation requires two third party libraries: libpbc and libgabe. While we could merge libgabe into the gnunet service implementation of re:claimID, libpbc is a rather large, third party library which lacks packaging in distributions and for platforms. On the other hand, GNS supports record data encryption using symmetric keys as labels. If we make the access control layer of re:claimID more generic in order to support both ABE and GNS encryption, we could reduce the required depenencies. This would result in gnunet packages to include re:claimID by default. In short, the goals are to...
56 </p>
57 <ol>
58 <li> ... improve performance by reducing encryption overhead.</li>
59 <li> ... reduce dependencies.</li>
60 </ol>
61 <p>
62 Mentor: Martin Schanzenbach
63 </p>
64</section>
65
66<section>
67 <h4>Enable all networking applications to run over GNUnet out of the box</h4>
68 <p>
69 One great problem of the current Internet is the lack of disintermediation. When people want to talk they need a chat service. When they want to share files they need a file transfer service. Although GNUnet already possesses quite advanced integration into Linux networking, a little extra work is needed for existing applications like irc, www, ftp, rsh, nntpd to run over it in a peer-to-peer way, simply by using a GNS hostname like friend.gnu. Once people have added a person to their GNS they can immediately message, exchange files and suchlike directly, with nothing but the GNUnet in the middle, using applications that have been distributed with unix systems ever since the 1980&#39;s. We can produce an OS distribution where these things work out of the box with the nicknames of people instead of cloud services. For more information and context, read <a href="https://bugs.gnunet.org/view.php?id=4625">bug id 4625</a>.
70 </p>
71 <p>
72 Mentors: lynX &amp; dvn
73 </p>
74</section>
75{% endblock body_content %}
diff --git a/template/news/2019-06-DSTJ.html.j2 b/template/news/2019-06-DSTJ.html.j2
new file mode 100644
index 00000000..0d1d3c67
--- /dev/null
+++ b/template/news/2019-06-DSTJ.html.j2
@@ -0,0 +1,14 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>Peer DSTJ is dead, long live peer Y924</h1>
4<p>
5 After some issues with our infrastructure we needed to replace our bootstrapping peer. To avoid problems when connecting to GNUnet the operator of a peer needs to update its node by removing the peer ID <i>DSTJBRRKZ8TBW3FGK6B0M5QXWT9WYNZ45H5MCV4HY7ST64Q8T9F0</i> from the system. Here are two strategies to find copies of the respective file:
6</p>
7<ol>
8 <li><tt>$ locate DSTJBRRKZ8TBW3FGK6B0M5QXWT9WYNZ45H5MCV4HY7ST64Q8T9F0</tt></li>
9 <li><tt>$ find / -name DSTJBRRKZ8TBW3FGK6B0M5QXWT9WYNZ45H5MCV4HY7ST64Q8T9F0</tt></li>
10</ol>
11<p>
12 Update: DSTJ has now been blacklisted. Please update your GNUnet peer.
13</p>
14{% endblock body_content %}
diff --git a/template/news/2019-06.html.j2 b/template/news/2019-06.html.j2
new file mode 100644
index 00000000..295138b9
--- /dev/null
+++ b/template/news/2019-06.html.j2
@@ -0,0 +1,7 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>GNUnet Hacker Meeting 2019 at La D&#233;centrale, Switzerland</h1>
4 <p>
5 The members of the GNUnet community met again in the wonderful souroundings of St. Imier to hack on GNUnet. New people joined our sessions until late at night. From bug squashing to digging our own dog food, from workshops to theoretical discussions of new services and usecases. And of course, pizza was in the game.
6 </p>
7{% endblock body_content %}
diff --git a/template/news/2019-07-GHM_Aug_2019.html.j2 b/template/news/2019-07-GHM_Aug_2019.html.j2
new file mode 100644
index 00000000..c846432e
--- /dev/null
+++ b/template/news/2019-07-GHM_Aug_2019.html.j2
@@ -0,0 +1,7 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>GNUnet Hacker Meeting in August 2019 at Wernsdort (near Berlin)</h1>
4 <p>
5 In August 2019, some of us met in Wernsdorf for focused work on GNUnet.
6 </p>
7{% endblock body_content %}
diff --git a/template/news/2019-10-GNSSpec1.html.j2 b/template/news/2019-10-GNSSpec1.html.j2
new file mode 100644
index 00000000..3941c162
--- /dev/null
+++ b/template/news/2019-10-GNSSpec1.html.j2
@@ -0,0 +1,19 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>GNS Technical Specification Milestone 1/4</h1>
4<p>
5 We are happy to announce the completion of the first milestone for the GNS Specification. The objective is to provide a detailed and comprehensive guide for implementors of the GNU Name System. The initial milestone consists of documenting the cryptographic principles of GNS data structures. This includes the specification of the GNS record wire and serialization formats as well as internationalization.<br>
6 <i>NOTE: The currently specified protocol is planned to be implemented for GNUnet 0.12. The current GNS implementation (0.11) exhibits minor but compatibility breaking deviations from this specification.</i> The draft specification <b>LSD001</b> can be found at:
7</p>
8<ul>
9 <li>Git: <a href="git://gnunet.org/lsd0001.git">LSD001</a></li>
10 <li><a href="https://git.gnunet.org/lsd0001.git/tree/draft-schanzen-gns.txt">Link to TXT version</a></li>
11 <li><a href="https://git.gnunet.org/lsd0001.git/tree/draft-schanzen-gns.html">Link to HTML version</a></li>
12</ul>
13<p>
14 The next milestone will bring the resolver logic specification.
15</p>
16<p>
17 This work is generously funded by <a href="https://nlnet.nl">NLnet</a> as part of their <a href="https://nlnet.nl/project/GNS/">Search and discovery fund</a>.
18</p>
19{% endblock body_content %}
diff --git a/template/news/2019-10-ICANNPanel.html.j2 b/template/news/2019-10-ICANNPanel.html.j2
new file mode 100644
index 00000000..08885fa6
--- /dev/null
+++ b/template/news/2019-10-ICANNPanel.html.j2
@@ -0,0 +1,13 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>GNUnet project invited to ICANN66</h1>
4<p>
5 We are delighted to announce that ICANN has invited the GNUnet project to speak at the <a href="https://meetings.icann.org/en/montreal66">next ICANN Annual General Meeting</a>. We have been invited to join a panel discussion on <i>Emerging Internet Identifier Technologies</i> in order to share our ideas and work on the <i>GNU Name System (GNS)</i>. ICANN generously offered to cover travel and accomodation.
6</p>
7<p>
8 The meeting will take place in Montreal between 2 - 7 November. The panel will tentatively be help on November 6th.
9</p>
10<p>
11 <b>UPDATE:</b> The panel is on Tueday, November 5th 13:30 EDT with the possibility of remote participation: <a href="https://66.schedule.icann.org/meetings/1116895">Link</a>
12</p>
13{% endblock body_content %}
diff --git a/template/news/2019-11-ICANNUpdate.html.j2 b/template/news/2019-11-ICANNUpdate.html.j2
new file mode 100644
index 00000000..1edbbb8c
--- /dev/null
+++ b/template/news/2019-11-ICANNUpdate.html.j2
@@ -0,0 +1,10 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>GNS&#64;ICANN66</h1>
4<p>
5 The <a href="https://meetings.icann.org/en/montreal66">ICANN Annual General Meeting</a> is concluded. We were invited to join a panel discussion on <i>Emerging Internet Identifier Technologies</i> in order to share our ideas and work on the <i>GNU Name System (GNS)</i>.
6</p>
7<p>
8 You can find the presentation on GNS in <a href="{{ url_localized('video.html') }}">our video section</a>. The handshake.org project, which proposes a decentralized, blockchain-based governance of the root zone (as opposed to governance by ICANN), joined us on the panel. The full video including questions and answers can be found <a href="https://icann.zoom.us/recording/share/M8N-Duq935XheIZoBedIwmi3VqRUAe2iOPwECiTNLxKwIumekTziMw?startTime=1572978711000">here</a>.
9</p>
10{% endblock body_content %}
diff --git a/template/news/2019-12-UpcomingTalks.html.j2 b/template/news/2019-12-UpcomingTalks.html.j2
new file mode 100644
index 00000000..b92d1cdd
--- /dev/null
+++ b/template/news/2019-12-UpcomingTalks.html.j2
@@ -0,0 +1,73 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>Upcoming GNUnet Talks</h1>
4 <p>There will be various talks in the next few months on GNUnet and related
5 projects on both the Chaos Communication Congress (36C3) as well as FOSDEM.
6 Here is an overview:
7 </p>
8 <h2>Privacy and Decentralization @ 36c3 (YBTI)</h2>
9 <p>
10 We are pleased to have 5 talks to present as part of our
11 "youbroketheinternet/wefixthenet" session, taking place on the
12 <a href="https://oio.social/">OIO (Open
13 Infrastructure Orbit)</a> stage:
14 </p>
15
16 <ul>
17 <li>
18 "re:claimID - Self-sovereign, Decentralised Identity Management and
19 Personal Data Sharing" by Hendrik Meyer zum Felde
20 will take place at 2019-12-27 18:30 in OIO Stage.
21 <a href="https://talks.oio.social/36c3-oio/talk/XHLTUD/">Info</a>
22 </li>
23 <li>
24 "Buying Snacks via NFC with GNU Taler" by Dominik Hofer
25 will take place at 2019-12-27 21:20 in OIO Stage
26 <a href="https://talks.oio.social/36c3-oio/talk/MMB78C/">Info</a>
27 </li>
28 <li>
29 "CloudCalypse 2: Social network with net2o" by Bernd Paysan
30 will take place at 2019-12-28 21:20 in OIO Stage
31 <a href="https://talks.oio.social/36c3-oio/talk/GUZH7V/">Info</a>
32 </li>
33 <li>
34 "Delta Chat: e-mail based messaging, the Rustocalypse and UX driven
35 approach" by holger krekel
36 will take place at 2019-12-29 17:40 in OIO Stage
37 <a href="https://talks.oio.social/36c3-oio/talk/WSLWVM/">Info</a>
38 </li>
39 <li>
40 "Cryptography of Killing Proof-of-Work" by Jeff Burdges
41 will take place at 2019-12-30 12:00 in OIO Stage
42 <a href="https://talks.oio.social/36c3-oio/talk/GGV8G3/">Info</a>
43 </li>
44 </ul>
45
46 <p>
47 In addition to these talks, we will be hosting a snack machine which
48 accepts <a href="https://taler.net">Taler</a> for payment.
49 The first of its kind! It will be filled
50 with various goodies, including Swiss chocolates, books, and electronics.
51 The machine will be located somewhere in the OIO assembly, and there
52 will be a station at which you may exchange Euro for digital Euro for
53 immediate use.
54 We welcome all to come try it out. :)
55 </p>
56 <h2>Decentralized Internet and Privacy devroom @FOSDEM 2020</h2>
57 <p>
58 We have 2 GNUnet-related talks at the
59 <a href="https://fosdem.org/2020/schedule/track/decentralized_internet_and_privacy/">
60 Decentralized Internet and Privacy devroom</a> at FOSDEM 2020 in February:
61 </p>
62 <ul>
63 <li>
64 GNUnet: A network protocol stack for building secure, distributed, and
65 privacy-preserving applications
66 <a href="https://fosdem.org/2020/schedule/event/dip_gnunet/">Info</a>
67 </li>
68 <li>
69 Knocking Down the Nest: secushareBOX - p2p, encrypted IoT and beyond...
70 <a href="https://fosdem.org/2020/schedule/event/dip_secusharebox/">Info</a>
71 </li>
72 </ul>
73{% endblock body_content %}
diff --git a/template/news/2020-01-0.12.2.html.j2 b/template/news/2020-01-0.12.2.html.j2
new file mode 100644
index 00000000..21375aa6
--- /dev/null
+++ b/template/news/2020-01-0.12.2.html.j2
@@ -0,0 +1,71 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>GNUnet 0.12.2 released</h1>
4<p>
5 We are pleased to announce the release of GNUnet 0.12.2.
6<br>
7 This is a new bugfix release.
8 In terms of usability, users should be aware that there are still
9 <b>a large number of known open issues</b> in particular with respect to ease
10 of use, but also some critical privacy issues especially for mobile users.
11 Also, the nascent network is tiny and thus unlikely to
12 provide good anonymity or extensive amounts of interesting information.
13 As a result, the 0.12.2 release is still <b>only suitable for early adopters
14 with some reasonable pain tolerance</b>.
15</p>
16<h4>Download links</h4>
17<ul>
18 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.12.2.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-0.12.2.tar.gz</a></li>
19 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.12.2.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-0.12.2.tar.gz.sig</a></li>
20 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.12.0.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.12.0.tar.gz</a></li>
21 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.12.0.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.12.0.tar.gz.sig</a></li>
22 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.12.0.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.12.0.tar.gz</a></li>
23 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.12.0.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.12.0.tar.gz.sig</a></li>
24</ul>
25<p>
26 The GPG key used to sign is: <tt>3D11063C10F98D14BD24D1470B0998EF86F59B6A</tt>
27</p>
28<p>
29 Note that due to mirror synchronization, not all links might be functional
30 early after the release. For direct access try
31 <a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
32</p>
33<h4>Noteworthy changes in 0.12.2 (since 0.12.1)</h4>
34<ul>
35 <li>
36 <tt>GNS</tt>: Resolver clients are now able to specify a recursion depth limit.
37 </li>
38 <li>
39 <tt>TRANSPORT/TNG</tt>: The transport rewrite (aka TNG) is underway and
40 various transport components have been worked on, including TCP, UDP and UDS
41 communicators.
42 </li>
43 <li>
44 <tt>RECLAIM</tt>: Added preliminary support for third party attested
45 credentials.
46 </li>
47 <li>
48 <tt>UTIL</tt>: The cryptographic changes introduced in 0.12.0 broke ECDSA
49 ECDH and consequently other components. The offending ECDSA key normalization
50 was dropped.
51 </li>
52</ul>
53<h4>Known Issues</h4>
54<ul>
55 <li>There are known major design issues in the TRANSPORT, ATS and CORE subsystems which will need to be addressed in the future to achieve acceptable usability, performance and security.</li>
56 <li>There are known moderate implementation limitations in CADET that negatively impact performance.</li>
57 <li>There are known moderate design issues in FS that also impact usability and performance.</li>
58 <li>There are minor implementation limitations in SET that create unnecessary attack surface for availability.</li>
59 <li>The RPS subsystem remains experimental.</li>
60 <li>Some high-level tests in the test-suite fail non-deterministically due to the low-level TRANSPORT issues.</li>
61</ul>
62<p>
63 In addition to this list, you may also want to consult our bug tracker at <a href="https://bugs.gnunet.org/">bugs.gnunet.org</a> which lists about 190 more specific issues.
64</p>
65
66<h4>Thanks</h4>
67<p>
68 This release was the work of many people. The following people contributed code and were thus easily identified:
69 Christian Grothoff, Florian Dold, Christian Ulrich, dvn, lynx and Martin Schanzenbach.
70</p>
71{% endblock body_content %}
diff --git a/template/news/2020-01-GNSSpec2.html.j2 b/template/news/2020-01-GNSSpec2.html.j2
new file mode 100644
index 00000000..e673d35d
--- /dev/null
+++ b/template/news/2020-01-GNSSpec2.html.j2
@@ -0,0 +1,28 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>GNS Technical Specification Milestone 2/4</h1>
4<p>
5 We are happy to announce the completion of the second milestone for the GNS
6 Specification. The second milestone consists of documenting the GNS name
7 resolution process and record handling.<br>
8 With the release of GNUnet 0.12.x, the currently specified protocol is
9 implemented according to the specification. As before, the draft specification
10 <b>LSD001</b> can be found at:
11</p>
12<ul>
13 <li>Git: <a href="git://gnunet.org/lsd0001.git">LSD001</a></li>
14 <li><a href="https://lsd.gnunet.org/lsd0001/draft-schanzen-gns.txt">Link to TXT version</a></li>
15 <li><a href="https://lsd.gnunet.org/lsd0001/draft-schanzen-gns.html">Link to HTML version</a></li>
16</ul>
17<p>
18 As already announced on the <a href="https://lists.gnu.org/archive/html/gnunet-developers/2020-01/msg00000.html">mailing list</a>,
19 the Go implementation of GNS is also proceeding as planned and implements the
20 specification.
21</p>
22<p>
23 The next and third milestone will cover namespace revocation.
24</p>
25<p>
26 This work is generously funded by <a href="https://nlnet.nl">NLnet</a> as part of their <a href="https://nlnet.nl/project/GNS/">Search and discovery fund</a>.
27</p>
28{% endblock body_content %}
diff --git a/template/news/2020-05-GHM_Jun_2020.html.j2 b/template/news/2020-05-GHM_Jun_2020.html.j2
new file mode 100644
index 00000000..f270d87d
--- /dev/null
+++ b/template/news/2020-05-GHM_Jun_2020.html.j2
@@ -0,0 +1,8 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>Online GNUnet Hacker Meeting in June 2020</h1>
4 <p>
5 We are happy to announce that we will have a GNUnet
6 Hacker Meeting from 17-21 of June 2020 taking place online. For more information see <a href="https://md.hasi.it/s/gnunet">here</a>.
7 </p>
8{% endblock body_content %}
diff --git a/template/news/2020-06-GNSSpec3.html.j2 b/template/news/2020-06-GNSSpec3.html.j2
new file mode 100644
index 00000000..2e69ccb9
--- /dev/null
+++ b/template/news/2020-06-GNSSpec3.html.j2
@@ -0,0 +1,25 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>GNS Technical Specification Milestone 3/4</h1>
4<p>
5 We are happy to announce the completion of the third milestone for the GNS
6 Specification. The third milestone consists of documenting the GNS zone
7 revocation process. As part of this, we have reworked the proof-of-work
8 algorithms in GNUnet also used for GNS revocations.<br>
9 The (protocol breaking) changes will be released as part of GNUnet 0.13.0.
10 The specification document <b>LSD001</b> can be found at:
11</p>
12<ul>
13 <li>Git: <a href="git://gnunet.org/lsd0001.git">LSD001</a></li>
14 <li><a href="https://lsd.gnunet.org/lsd0001/draft-schanzen-gns.txt">Link to TXT version</a></li>
15 <li><a href="https://lsd.gnunet.org/lsd0001/draft-schanzen-gns.html">Link to HTML version</a></li>
16</ul>
17<p>
18 In preparation for the fourth and last milestone, we have started the
19 <a href="https://mailarchive.ietf.org/arch/msg/secdispatch/Kj8zXoQssiFLp8bM5l5n1OtXt7s/">IETF process to find a working group</a> and expect to present our
20 work initially at <a href="https://ietf.org/how/meetings/108/">IETF 108</a>.
21</p>
22<p>
23 This work is generously funded by <a href="https://nlnet.nl">NLnet</a> as part of their <a href="https://nlnet.nl/project/GNS/">Search and discovery fund</a>.
24</p>
25{% endblock body_content %}
diff --git a/template/news/2020-07-0.13.0.html.j2 b/template/news/2020-07-0.13.0.html.j2
new file mode 100644
index 00000000..ef8c0d89
--- /dev/null
+++ b/template/news/2020-07-0.13.0.html.j2
@@ -0,0 +1,103 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>GNUnet 0.13.0 released</h1>
4<p>
5 We are pleased to announce the release of GNUnet 0.13.0.
6<br>
7 This is a new major release. It breaks protocol compatibility with the 0.12.x versions.
8 Please be aware that Git master is thus henceforth <b>INCOMPATIBLE</b> with
9 the 0.12.x GNUnet network, and interactions between old and new peers
10 will result in signature verification failures. 0.12.x peers will <b>NOT</b>
11 be able to communicate with Git master or 0.13.x peers.<br/>
12 In terms of usability, users should be aware that there are still
13 <b>a large number of known open issues</b> in particular with respect to ease
14 of use, but also some critical privacy issues especially for mobile users.
15 Also, the nascent network is tiny and thus unlikely to
16 provide good anonymity or extensive amounts of interesting information.
17 As a result, the 0.13.0 release is still <b>only suitable for early adopters
18 with some reasonable pain tolerance</b>.
19</p>
20<h4>Download links</h4>
21<ul>
22 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.13.0.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-0.13.0.tar.gz</a></li>
23 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.13.0.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-0.13.0.tar.gz.sig</a></li>
24 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.13.0.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.13.0.tar.gz</a></li>
25 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.13.0.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.13.0.tar.gz.sig</a></li>
26 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.13.0.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.13.0.tar.gz</a></li>
27 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.13.0.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.13.0.tar.gz.sig</a></li>
28</ul>
29<p>
30 The GPG key used to sign is: <tt>3D11063C10F98D14BD24D1470B0998EF86F59B6A</tt>
31</p>
32<p>
33 Note that due to mirror synchronization, not all links might be functional
34 early after the release. For direct access try
35 <a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
36</p>
37<h4>Noteworthy changes in 0.13.0 (since 0.12.2)</h4>
38<ul>
39 <li><tt>GNS</tt>:
40 <ul>
41 <li>Aligned with specification <a href="https://lsd.gnunet.org/lsd0001/">LSD001</a>.
42 <li>NSS plugin "block" fixed. <a href="https://bugs.gnunet.org/view.php?id=5782">#5782</a></li>
43 <li>Broken set NICK API removed.<a href="https://bugs.gnunet.org/view.php?id=6092">#6092</a></li>
44 <li>New record flags: SUPPLEMENTAL. Records which are not explicitly
45 configured/published under a specific label but which are still
46 informational are returned by the resolver and flagged accordingly. <a href="https://bugs.gnunet.org/view.php?id=6103">#6103</a></li>
47 <li><tt>gnunet-namestore</tt> now complains when adding TLSA or SRV records outside of a BOX</li>
48 </ul>
49 </li>
50 <li>
51 <tt>CADET</tt>: Fixed tunnel establishment as well as an outstanding bug regarding tunnel destruction. <a href="https://bugs.gnunet.org/view.php?id=5822">#5822</a>
52 </li>
53 <li><tt>GNS/REVOCATION</tt>: Revocation proof of work has function changed to
54 argon2 and modified to reduce variance.</li>
55 <li><tt>RECLAIM</tt>: Increased ticket length to 256 bit. <a href="https://bugs.gnunet.org/view.php?id=6047">#6047</a></li>
56 <li><tt>TRANSPORT</tt>: UDP plugin moved to experimental as it is known to be unstable.</li>
57 <li><tt>UTIL</tt>:
58 <ul>
59 <li>Serialization / file format of ECDSA private keys harmonized with
60 other libraries. Old private keys will no longer work! <a href="https://bugs.gnunet.org/view.php?id=6070">#6070</a></li>
61 <li>Now using <a href="https://doc.libsodium.org/">libsodium</a> for EC
62 cryptography.</li>
63 <li>Builds against cURL which is not linked against gnutls are now possible but still not recommended.
64 Configure will warn that this will impede the GNS functionality. This change will make hostlist discovery
65 work more reliable for some distributions.</li>
66 <li><tt>GNUNET_free_non_null</tt> removed. <tt>GNUNET_free</tt> changed to not assert that the pointer is not NULL.
67 For reference see the <a href="https://taler.net/papers/codeblau-report-2020-q2.pdf">Taler security audit</a>.</li>
68 <li>AGPL request handlers added GNUnet and extension templates.</li>
69 </ul>
70 </li>
71 <li><b>(NEW) </b><tt>GANA Registry</tt>: We have established a registry to be used for names and numbers in GNUnet.
72 This includes constants for protocols including GNS record types and GNUnet peer-to-peer messages. See <a href="https://gana.gnunet.org">GANA</a>.</li>
73 <li><b>(NEW) </b><tt>Living Standards</tt>: LSD subdomain and LSD0001 website: <a href="https://lsd.gnunet.org/lsd0001">LSD0001</a></li>
74 <li><b>(NEW) </b><tt>Continuous integration</tt>: <a href="https://buildbot.gnunet.org">Buildbot</a> is back.</li>
75 <li><tt>Buildsystem</tt>: A significant number of build system changes:
76 <ul>
77 <li>libmicrohttpd and libjansson are now required dependencies.</li>
78 <li>New dependency: <a href="https://doc.libsodium.org/">libsodium</a>.</li>
79 <li>Fixed an issue with libidn(2) detection.</tt>
80 </ul>
81 </li>
82</ul>
83A detailed list of changes can be found in the <a href="https://git.gnunet.org/gnunet.git/tree/ChangeLog">ChangeLog</a> and
84the <a href="https://bugs.gnunet.org/roadmap_page.php?version_id=338">0.13.0 bugtracker</a>.
85<h4>Known Issues</h4>
86<ul>
87 <li>There are known major design issues in the TRANSPORT, ATS and CORE subsystems which will need to be addressed in the future to achieve acceptable usability, performance and security.</li>
88 <li>There are known moderate implementation limitations in CADET that negatively impact performance.</li>
89 <li>There are known moderate design issues in FS that also impact usability and performance.</li>
90 <li>There are minor implementation limitations in SET that create unnecessary attack surface for availability.</li>
91 <li>The RPS subsystem remains experimental.</li>
92 <li>Some high-level tests in the test-suite fail non-deterministically due to the low-level TRANSPORT issues.</li>
93</ul>
94<p>
95 In addition to this list, you may also want to consult our bug tracker at <a href="https://bugs.gnunet.org/">bugs.gnunet.org</a> which lists about 190 more specific issues.
96</p>
97
98<h4>Thanks</h4>
99<p>
100 This release was the work of many people. The following people contributed code and were thus easily identified:
101 Christian Grothoff, Florian Dold, Jonathan Buchanan, t3sserakt, nikita and Martin Schanzenbach.
102</p>
103{% endblock body_content %}
diff --git a/template/news/2020-07-0.13.1.html.j2 b/template/news/2020-07-0.13.1.html.j2
new file mode 100644
index 00000000..b7670242
--- /dev/null
+++ b/template/news/2020-07-0.13.1.html.j2
@@ -0,0 +1,29 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>GNUnet 0.13.1 released</h1>
4<p>
5 This is a bugfix release for gnunet and gnunet-gtk specifically.
6 <br>
7 For gnunet, no changes to the source have been made. However,
8 the default configuration had to be modified to support the changes
9 made in 0.13.0.
10 <br>
11 For gnunet-gtk, this fixes a more serious issue where the
12 0.13.0 tarball failed to build.
13</p>
14<h4>Download links</h4>
15<ul>
16 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.13.1.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-0.13.1.tar.gz</a></li>
17 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.13.1.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-0.13.1.tar.gz.sig</a></li>
18 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.13.1.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.13.1.tar.gz</a></li>
19 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.13.1.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.13.1.tar.gz.sig</a></li>
20</ul>
21<p>
22 The GPG key used to sign is: <tt>3D11063C10F98D14BD24D1470B0998EF86F59B6A</tt>
23</p>
24<p>
25 Note that due to mirror synchronization, not all links might be functional
26 early after the release. For direct access try
27 <a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
28</p>
29{% endblock body_content %}
diff --git a/template/news/2020-08-0.13.2.html.j2 b/template/news/2020-08-0.13.2.html.j2
new file mode 100644
index 00000000..3dfa7e61
--- /dev/null
+++ b/template/news/2020-08-0.13.2.html.j2
@@ -0,0 +1,58 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<h1>GNUnet 0.13.2 released</h1>
4<p>
5 This is a bugfix release for gnunet 0.13.1.<br/>
6 It fixes some build issues and contains changes to the REST API
7 implmementation (no change in the API itself) as well as OpenID Connect related
8 fixes to re:claimID.
9</p>
10<h4>Download links</h4>
11<ul>
12 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.13.2.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-0.13.2.tar.gz</a></li>
13 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.13.2.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-0.13.2.tar.gz.sig</a></li>
14</ul>
15<p>
16 The GPG key used to sign is: <tt>3D11063C10F98D14BD24D1470B0998EF86F59B6A</tt>
17</p>
18<p>
19 Note that due to mirror synchronization, not all links might be functional
20 early after the release. For direct access try
21 <a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
22</p>
23<h4>Noteworthy changes in 0.13.2 (since 0.13.1)</h4>
24<ul>
25 <li><tt>REST</tt>:
26 <ul>
27 <li>Plugins may now handle any namespace. <a href="https://bugs.gnunet.org/view.php?id=6462">#6462</a></li>
28 <li>Fixed incomplete/missing cleanup and teardown of REST plugins.</li>
29 </ul>
30 </li>
31 <li><tt>RECLAIM</tt>:
32 <ul>
33 <li>Support for <tt>/.well-known/openid-configuration</tt>. <a href="https://bugs.gnunet.org/view.php?id=6463">#6463</a></li>
34 <li>Support for standard scope values (<tt>profile, address, email, phone</tt>) and corresponding mapping to standard claim values</li>
35 <li>Correct processing of <tt>claims</tt> parameter for individual claim requests.</li>
36 <li>Support for <tt>POST</tt> token request.</li>
37 <li>Support for public clients (Token request without client secrets).</li>
38 <li>Fixed urlencoding of parameters on redirect</li>
39 </ul>
40 </li>
41 <li><tt>UTIL</tt>: New string API for percent-encode/decode.</li>
42 <li><tt>MYSQL</tt>: Fix version detection and build against mysql-8 and later. <a href="https://bugs.gnunet.org/view.php?id=6465">#6465</a></li>
43 <li><tt>POSTGRESQL</tt>: Ensure postgresql fails hard if there is an error in the SQL. <a href="https://bugs.gnunet.org/view.php?id=6437">#6437</a></li>
44 <li><tt>Extensions</tt>:
45 <ul>
46 <li>Load GNSRECORD plugins within GNUnet's context.</li>
47 <li>Add convenience function to return GNUnet's default configuration.</li>
48 </ul>
49 </li>
50</ul>
51
52<h4>Thanks</h4>
53<p>
54 This release was the work of many people. The following people contributed code and were thus easily identified:
55 Christian Grothoff, Florian Dold, Alessio Vanni, t3sserakt, Martin Schanzenbach.
56</p>
57
58{% endblock body_content %}
diff --git a/template/news/2020-09-0.13.3.html.j2 b/template/news/2020-09-0.13.3.html.j2
new file mode 100644
index 00000000..dc9440c3
--- /dev/null
+++ b/template/news/2020-09-0.13.3.html.j2
@@ -0,0 +1,51 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<h1>GNUnet 0.13.3 released</h1>
4<p>
5 Continuing to "release early / release often", we present
6 GNUnet 0.13.3. This is a bugfix release for gnunet 0.13.2.<br/>
7 It fixes some build issues and contains major changes to
8 the re:claimID API.
9</p>
10<h4>Download links</h4>
11<ul>
12 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.13.3.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-0.13.3.tar.gz</a></li>
13 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.13.3.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-0.13.3.tar.gz.sig</a></li>
14</ul>
15<p>
16 The GPG key used to sign is: <tt>3D11063C10F98D14BD24D1470B0998EF86F59B6A</tt>
17</p>
18<p>
19 Note that due to mirror synchronization, not all links might be functional
20 early after the release. For direct access try
21 <a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
22</p>
23<h4>Noteworthy changes in 0.13.3 (since 0.13.2)</h4>
24<ul>
25 <li><tt>REST</tt>:
26 <ul>
27 <li>re:claimID attestation API change reflected in endpoint naming.</li>
28 <li>Fix regression in <tt>NAMESTORE</tt> REST API endpoint processing.</li>
29 </ul>
30 </li>
31 <li><tt>RECLAIM</tt>:
32 "Attestations" renamed to "Credentials". Credentials are now converted to "Presentations" when a ticket is issued in preparation
33 for <a href="https://www.w3.org/TR/vc-data-model/">DID-style VCs</a> and Privacy-ABCs.
34 </li>
35 <li><tt>UTIL</tt>: Fix <tt>gnunet-qr</tt> device parameter.</li>
36 <li><tt>SET</tt>: Separated into set intersection (SETI) and set union subsystems (SETU).</a></li>
37 <li><tt>BUILD</tt>:
38 <ul>
39 <li>Fix build on OpenBSD.</li>
40 <li>Correctly check for required libsodium version. <a href="https://bugs.gnunet.org/view.php?id=6506">#6506</a></li>
41 </ul>
42 </li>
43</ul>
44
45<h4>Thanks</h4>
46<p>
47 This release was the work of many people. The following people contributed code and were thus easily identified:
48 Christian Grothoff, Jonathan Buchanan, Johannes Späth and Martin Schanzenbach.
49</p>
50
51{% endblock body_content %}
diff --git a/template/news/2020-11-0.14.0.html.j2 b/template/news/2020-11-0.14.0.html.j2
new file mode 100644
index 00000000..853b4548
--- /dev/null
+++ b/template/news/2020-11-0.14.0.html.j2
@@ -0,0 +1,81 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>GNUnet 0.14.0 released</h1>
4<p>
5 We are pleased to announce the release of GNUnet 0.14.0.
6<br>
7 This is a new major release. It breaks protocol compatibility with the 0.13.x versions.
8 Please be aware that Git master is thus henceforth <b>INCOMPATIBLE</b> with
9 the 0.13.x GNUnet network, and interactions between old and new peers
10 will result in issues. 0.13.x peers will be able to communicate with Git
11 master or 0.13.x peers, but some services - in particular GNS - will not be compatible.<br/>
12 In terms of usability, users should be aware that there are still
13 <b>a large number of known open issues</b> in particular with respect to ease
14 of use, but also some critical privacy issues especially for mobile users.
15 Also, the nascent network is tiny and thus unlikely to
16 provide good anonymity or extensive amounts of interesting information.
17 As a result, the 0.14.0 release is still <b>only suitable for early adopters
18 with some reasonable pain tolerance</b>.
19</p>
20<h4>Download links</h4>
21<ul>
22 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.14.0.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-0.14.0.tar.gz</a></li>
23 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.14.0.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-0.14.0.tar.gz.sig</a></li>
24 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.14.0.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.14.0.tar.gz</a></li>
25 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.14.0.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.14.0.tar.gz.sig</a></li>
26 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.14.0.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.14.0.tar.gz</a></li>
27 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.14.0.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.14.0.tar.gz.sig</a></li>
28</ul>
29<p>
30 The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
31</p>
32<p>
33 Note that due to mirror synchronization, not all links might be functional
34 early after the release. For direct access try
35 <a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
36</p>
37<h4>Noteworthy changes in 0.14.0 (since 0.13.3)</h4>
38<ul>
39 <li><tt>GNS</tt>:
40 <ul>
41 <li>Aligned with specification <a href="https://lsd.gnunet.org/lsd0001/">LSD001</a>.
42 <li>Crypto agility: The GNS protocol now supports other zone types besides ECDSA-based PKEYs.
43 However, the alternative EdDSA-based EDKEY crypto is not yet implemented. <a href="https://bugs.gnunet.org/view.php?id=6485">#6485</a></li>
44 <li>PKEY zones: ECDSA zone record sets are now encrypted using AES-CTR. <a href="https://bugs.gnunet.org/view.php?id=6487">#6487</a></li>
45 </ul>
46 </li>
47 <li>
48 <tt>IDENTITY</tt>: Identities can now be created either as ECDSA (default) or EdDSA key pairs.</li>
49 </li>
50 <li>
51 <tt>POSTGRESQL</tt>: Allow NULL value returns and fix test cases. <a href="https://bugs.gnunet.org/view.php?id=6524">#6524</a>
52 </li>
53 <li><tt>UTIL</tt>:
54 String time conversion functions no longer localized to preserve reversibility. <a href="https://bugs.gnunet.org/view.php?id=6615">#6615</a>
55 </li>
56 <li><tt>Buildsystem</tt>: README updates to clarify runtime/compile/optional dependencies</li>
57 <li><b>(NEW)</b> <tt>MESSENGER</tt>: New messenger component (experimental)</li>
58</ul>
59<p>
60 A detailed list of changes can be found in the <a href="https://git.gnunet.org/gnunet.git/tree/ChangeLog">ChangeLog</a> and
61 the <a href="https://bugs.gnunet.org/changelog_page.php?project_id=13">0.14.0 bugtracker</a>.
62</p>
63<h4>Known Issues</h4>
64<ul>
65 <li>There are known major design issues in the TRANSPORT, ATS and CORE subsystems which will need to be addressed in the future to achieve acceptable usability, performance and security.</li>
66 <li>There are known moderate implementation limitations in CADET that negatively impact performance.</li>
67 <li>There are known moderate design issues in FS that also impact usability and performance.</li>
68 <li>There are minor implementation limitations in SET that create unnecessary attack surface for availability.</li>
69 <li>The RPS subsystem remains experimental.</li>
70 <li>Some high-level tests in the test-suite fail non-deterministically due to the low-level TRANSPORT issues.</li>
71</ul>
72<p>
73 In addition to this list, you may also want to consult our bug tracker at <a href="https://bugs.gnunet.org/">bugs.gnunet.org</a> which lists about 190 more specific issues.
74</p>
75
76<h4>Thanks</h4>
77<p>
78 This release was the work of many people. The following people contributed code and were thus easily identified:
79 Christian Grothoff, Daniel Golle, t3sserakt, TheJackiMonster and Martin Schanzenbach.
80</p>
81{% endblock body_content %}
diff --git a/template/news/2020-11-GNSSpec4.html.j2 b/template/news/2020-11-GNSSpec4.html.j2
new file mode 100644
index 00000000..13e0f28d
--- /dev/null
+++ b/template/news/2020-11-GNSSpec4.html.j2
@@ -0,0 +1,45 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>GNS Technical Specification Milestone 4/4 and Packaging 1+2</h1>
4<p>
5 We are happy to announce the completion of the fourth and last milestone for the GNS
6 Specification. The fourth milestone consists of involving a broader community
7 for feedback and improvements:
8<p>
9<ul>
10 <li><a href="https://news.ycombinator.com/item?id=23766947">Hacker News</a></li>
11 <li><a href="https://datatracker.ietf.org/meeting/108/session/secdispatch">IETF 108 secdispatch</a>
12 (see also associated discussions on the mailinglist)</li>
13 <li><a href="https://centr.org/news/news/alternative-dns.html">Reporting on IETF secdispatch</a></li>
14 <li><a href="https://mailarchive.ietf.org/arch/msg/din/jkbYgEsyuZCknyYQxN-LxDtWpsY/">IRTF DINRG</a></li>
15 <li><a href="https://lists.gnu.org/archive/html/gnunet-developers/2020-07/msg00043.html">Mailing list</a></li>
16</ul>
17<p>
18 Based on this and private feedback received, we updated the draft and
19 the implementation. Most notably, GNS now supports alternative cryptographic
20 schemes for zone keys ("crypto agility") which allows alternative zone types.
21 The (protocol breaking) changes will be released as part of GNUnet 0.14.0.
22 The specification document <b>LSD001</b> can be found at:
23</p>
24<ul>
25 <li>Git: <a href="git://gnunet.org/lsd0001.git">LSD001</a></li>
26 <li><a href="https://lsd.gnunet.org/lsd0001/draft-schanzen-gns.txt">Link to TXT version</a></li>
27 <li><a href="https://lsd.gnunet.org/lsd0001/draft-schanzen-gns.html">Link to HTML version</a></li>
28 <li><a href="https://datatracker.ietf.org/doc/draft-schanzen-gns/">Link to IETF Datatracker (updated less frequently)</a></li>
29</ul>
30<p>
31 Further, work on packaging has been done on Alpine (Packaging 1) and Debian (Packaging 2) packages.
32 The packaging for Alpine is complete, the Debian package is in progress as
33 review and final integration is out of our hands. For reference see also:
34</p>
35<ul>
36 <li><a href="https://pkgs.alpinelinux.org/packages?name=gnunet&branch=edge">Alpine package</a></li>
37 <li><a href="https://salsa.debian.org/debian/gnunet/-/merge_requests/3">Debian package</a></li>
38</ul>
39<p>
40 We will continue to engage with IETF/IRTF as much as possible (online or in-person)
41 including future presentations and discussions at IETF/IRTF.
42 There is still a packaging task open for Fedora (3) which is still work in progress.
43 This work was (and other aspects still are) generously funded by <a href="https://nlnet.nl">NLnet</a> as part of their <a href="https://nlnet.nl/project/GNS/">Search and discovery fund</a>.
44</p>
45{% endblock body_content %}
diff --git a/template/news/2021-03-0.14.1.html.j2 b/template/news/2021-03-0.14.1.html.j2
new file mode 100644
index 00000000..0249b984
--- /dev/null
+++ b/template/news/2021-03-0.14.1.html.j2
@@ -0,0 +1,48 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<h1>GNUnet 0.14.1</h1>
4<p>
5Continuing to "release early / release often", we present
6GNUnet 0.14.1. This is a bugfix release for gnunet 0.14.0.
7</p>
8<h4>Download links</h4>
9<ul>
10 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.14.1.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-0.14.1.tar.gz</a></li>
11 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.14.1.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-0.14.1.tar.gz.sig</a></li>
12</ul>
13<p>
14The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
15</p>
16<p>
17Note that due to mirror synchronization, not all links may be functional
18early after the release. For direct access try
19<a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
20</p>
21<h4>Noteworthy changes in 0.14.1 (since 0.14.0)</h4>
22<ul>
23 <li><tt>TNG</tt>: Various improvements to communicators. <a href="https://bugs.gnunet.org/view.php?id=6361">#6361</a>,<a href="https://bugs.gnunet.org/view.php?id=5550">#5550</a>
24 </li>
25 <li><tt>GNS</tt>: Use autogenerated records header file from GANA.</li>
26 <li><tt>FS</tt>: Improve modularity of FS structs. <a href="https://bugs.gnunet.org/view.php?id=6743">#6743</a></li>
27 <li><tt>SETU</tt>: Various improvements as part of the ongoing work on <a href="https://lsd.gnunet.org/lsd0003">LSD0003</a>.</li>
28 <li><tt>IDENTITY</tt>: Fix wrong key construction for anonymous ECDSA identity.</li>
29 <li><tt>RPS</tt>: Code cleanup mostly addressing warnings.</li>
30 <li><tt>UTIL</tt>:
31 <ul>
32 <li>Added a Base32 en/decoded CLI <tt>gnunet-base32</tt>.</li>
33 <li>Use timeflakes as UUIDs. <a href="https://bugs.gnunet.org/view.php?id=6716">#6716</a></li>
34 </ul>
35 </li>
36 <li><tt>Buildsystem</tt>: Fix libunistring detection. <a href="https://bugs.gnunet.org/view.php?id=6485">#6485</a></li>
37</ul>
38<p>
39A detailed list of changes can be found in the <a href="https://git.gnunet.org/gnunet.git/tree/ChangeLog">ChangeLog</a> and
40the <a href="https://bugs.gnunet.org/changelog_page.php?project_id=13">0.14.1 bugtracker</a>.
41</p>
42
43<h4>Thanks</h4>
44<p>
45This release was the work of many people. The following people contributed code and were thus easily identified:
46Christian Grothoff, Florian Dold, t3sserakt, TheJackiMonster, Elias Summermatter, Julius Bünger and Thien-Thi Nguyen.
47</p>
48{% endblock body_content %}
diff --git a/template/news/2021-03-gsoc-update.html.j2 b/template/news/2021-03-gsoc-update.html.j2
new file mode 100644
index 00000000..d638549a
--- /dev/null
+++ b/template/news/2021-03-gsoc-update.html.j2
@@ -0,0 +1,13 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>No GSoC projects in 2021</h1>
4<p>
5 For 2021, <a href="https://lists.gnu.org/archive/html/summer-of-code/2021-03/msg00000.html">GNU has not been selected as a GSoC organization</a>.
6 This also means that <a href="{{ url_localized('gsoc.html')}}">GNUnet GSoC
7 projects</a> will not be offered through the GSoC programme.
8 Thanks to all of those interested in our proposed projects and their efforts
9 in preparing proposals, including preliminary discussions with us.
10 If you are still interested in tackling any of the proposed open issues, you
11 are very welcome to do so.
12<p>
13{% endblock body_content %}
diff --git a/template/news/2021-05-DISSENS.html.j2 b/template/news/2021-05-DISSENS.html.j2
new file mode 100644
index 00000000..d67f33a5
--- /dev/null
+++ b/template/news/2021-05-DISSENS.html.j2
@@ -0,0 +1,67 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>DISSENS: Decentralized Identities for Self-sovereign End-users (NGI TRUST)</h1>
4<p>
5 Since mid 2020, a consortium between <a class="link" href="https://taler.net">Taler Systems S.A.</a>,
6the <a class="link" href="https://bfh.ch">Bern University of Applied Sciences</a> and <a class="link" href="https://aisec.fraunhofer.de">Fraunhofer AISEC</a> has been working
7 on bringing privacy-friendly payments using GNU Taler and self-sovereign
8 identity using GNUnet's <a class="link" href="https://reclaim.gnunet.org">re:claimID</a>
9 together in an e-commerce framework.
10</p>
11<p>
12<img style="width: 100%; border: 1px solid #333" src="{{ url_static('dissens-overview.png')}}"/>
13</p>
14<h2>Content</h2>
15<p>
16 Registrations of accounts prior to receiving services online is the standard process for commercial offerings on the Internet which depend on two corner stones of the Web: Payment processing and digital identities. The use of third-party identity provider services (IdPs) is practical as it delegates the task of verifying and storing personal information. The use of payment processors is convenient for the customer as it provides one-click payments. However, the quasi-oligopoly of services providers in those areas include Google and Facebook for identities and PayPal or Stripe for payment processing. Those corporations are not only based in privacy-unfriendly jurisdictions, but also exploit private data for profit.
17</p>
18<p>
19DISSENS makes the case that what is urgently needed are fundamentally different, user-centric and privacy-friendly alternatives to the above.
20Self-sovereign identity (SSI) management is the way to replace IdPs with a user-centric, decentralized mechanism where data and access control is fully under the control of the data subject.
21In combination with a privacy-friendly payment system, DISSENS aims to achieve the same one-click user experience that is currently achieved by privacy-invasive account-based Web shops, but without the users having to setup accounts.
22</p>
23<p>
24To achieve this, DISSENS integrates re:claimID with the GNU Taler payment system in a pilot in order to demonstrate the practical feasibility and benefits of privacy enhancing technologies for users and commercial service providers.
25DISSENS also implements a reference scenario which includes credentials issued by the partners Fraunhofer AISEC and BFH for employees and students, respectively. Users are able to access and use a pilot service developed by Taler Systems S.A. while being able to claim specific discounts for students and researchers.
26</p>
27<p>
28This approach offers significant benefits over existing solutions built using other SSI systems such as <a class="link" href="https://www.sovrin.org">Sovrin</a> or <a class="link" href="https://www.serto.id">serto</a> (formerly uPort):
29</p>
30<b>No gatekeepers; No vendor lock-in:</b>
31<p>
32The approach is completely open to issuers and does not impose any registration restrictions (such as registration fees) in order to define domain specific credentials. Further, the system does not impose a consortium-based governance model — which tend to eventually be driven by commercial interests and not consumer interests. The design enables all participants in the ecosystem to participate without prior onboarding while at the same time being offered full transparency and control regarding their personal data and processes involved.
33</p>
34<b>Support for non-interactive business processes:</b>
35<p>
36At the same time, unlike the SSI systems cited above, re:claimID offers a way to access user information without online interaction with the user. Offline access of shared identity data is a crucial requirement in almost any business process as such processes often occur after direct interaction with the user. For example, customer information such as billing addresses are required in — possibly recurring — back office billing processes which occur well after interaction with a customer.
37</p>
38<b>Scalability and sustainability:</b>
39<p>
40Finally, both re:claimID as the SSI system as well as Taler do not suffer from the usual predicament Blockchain-based systems find themselves in: Both systems do not require a decentralized, public ledger. This eliminates the need for consensus mechanisms, which do not scale and are ecologically unsustainable. In fact, DISSENS employs decentralization only where it provides the most value and use more efficient technology stacks where needed: re:claimID builds on top of the <a class="link" href="{{ url_localized('gns.html') }}">GNU Name System</a>, which makes use of a DHT, an efficient (O(log n)) peer-to-peer data structure. For payments, GNU Taler uses centralized infrastructure operated by audited and regulated exchange providers and facilitates account-less end-to-end interactions between customers and services where all parties have O(1) transaction costs.
41</p>
42<p>
43The result of DISSENS will provide businesses and credential issuers with ready-to-use and standards-compliant templates to build privacy-friendly services in the Web.
44The aim of the DISSENS project was to design a technology stack which combines privacy-friendly online payments with self-sovereign personal data management. The result enables users to be in complete control over their digital identity and personal information while at the same time being able to selectively share information necessary to use commercial services. The pilot demonstrates a sustainable, user-centric, standard-compliant and accessible use case for public service employees and students in the domain of commercial food delivery.
45It serves as an easy-to-adapt template for the integration of other scenarios and use cases.
46</p>
47<h2>Future work</h2>
48<p>
49GNUnet is working on the underlying components mature to the point that Taler+re:claimID can be recommended to operators to enable for account-less shopping with or without verified credentials. This will also require the continuation of our
50work on the low-level transport rewrite as it is a core component of GNS which
51in turn is what makes re:claimID spin.
52</p>
53<h2>Links</h2>
54<ul>
55 <li>Mid-project <a class="link" href="https://gnunet.org/~schanzen/2021-01-18-reclaimID-Taler-Shopping.webm">demonstration video</a> (~7 MB).</li>
56 <li><a class="link" href="https://git.gnunet.org/bibliography.git/plain/docs/dissens2021.pdf">The paper</a> (also accepted for publication without appendix at the <a class="link" href="https://oid2021.compute.dtu.dk/">Open Identity Summit 2021</a>)</li>
57 <li><a class="link" href="https://wordpress.org/plugins/gnu-taler-payment-for-woocommerce/">Taler WooCommerce plugin</a> (wordpress.org)</li>
58 <li>The privacy credential library <a class="link" href="https://github.com/Fraunhofer-AISEC/libpabc">libpabc</a> (github.com).</li>
59 <li><a class="link" href="https://git.taler.net/woocommerce-taler.git">Setup scripts and installation documentation for a Taler + re:claimID + WooCommerce service</a> (taler.net).</li>
60 <li><a class="link" href="https://git.gnunet.org/gnunet-presentations.git/plain/2021dissens/reclaim.pdf">Slide deck</a>.</li>
61</ul>
62<p>
63</p>
64<p>
65 This work is generously funded by <a class="link" href="https://www.ngi.eu">the EC's Next Generation Internet (NGI) initiative</a> as part of their <a class="link" href="https://www.ngi.eu/ngi-projects/ngi-trust/">NGI TRUST</a> programme.
66</p>
67{% endblock body_content %}
diff --git a/template/news/2021-08-0.15.0.html.j2 b/template/news/2021-08-0.15.0.html.j2
new file mode 100644
index 00000000..89ff00ac
--- /dev/null
+++ b/template/news/2021-08-0.15.0.html.j2
@@ -0,0 +1,82 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>GNUnet 0.15.0 released</h1>
4<p>
5 We are pleased to announce the release of GNUnet 0.15.0.
6<br>
7 This is a new major release. It breaks protocol compatibility with the 0.14.x versions.
8 Please be aware that Git master is thus henceforth <b>INCOMPATIBLE</b> with
9 the 0.14.x GNUnet network, and interactions between old and new peers
10 will result in issues. 0.14.x peers will be able to communicate with Git
11 master or 0.14.x peers, but some services - in particular GNS - will not be compatible.<br/>
12 The MESSENGER service goes out of experimental to be used by
13 libraries and applications as dependency. It handles decentralized
14 messaging in flexible groups by using the CADET service and messages
15 can be signed with your ego from the IDENTITY service. The service
16 is still in an early stage, so its protocol (currently version 0.1)
17 will likely adapt or change in future releases to some degree.<br/>
18 In terms of usability, users should be aware that there are still
19 <b>a number of known open issues</b> in particular with respect to ease
20 of use, but also some critical privacy issues especially for mobile users.
21 Also, the nascent network is tiny and thus unlikely to
22 provide good anonymity or extensive amounts of interesting information.
23 As a result, the 0.15.0 release is still <b>only suitable for early adopters
24 with some reasonable pain tolerance</b>.
25</p>
26<h4>Download links</h4>
27<ul>
28 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.15.0.tar.gz">gnunet-0.15.0.tar.gz</a> (<a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.15.0.tar.gz.sig">signature</a>)</li>
29 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.15.0.tar.gz">gnunet-gtk-0.15.0.tar.gz</a> (<a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.15.0.tar.gz.sig">signature</a>)</li>
30 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.15.0.tar.gz">gnunet-fuse-0.15.0.tar.gz</a> (<a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.15.0.tar.gz.sig">signature</a>)</li>
31</ul>
32<p>
33 The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
34</p>
35<p>
36 Note that due to mirror synchronization, not all links might be functional
37 early after the release. For direct access try
38 <a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
39</p>
40<h4>Noteworthy changes in 0.15.0 (since 0.14.1)</h4>
41<ul>
42 <li><tt>GNS</tt>:
43 <ul>
44 <li>First-come-first-served GNUnet top-level domain ".pin" zone key and website updated a. <a href="https://fcfs.gnunet.org/">Register here.</a> <a href="https://bugs.gnunet.org/view.php?id=6832">#6832</a></li>
45 <li>New <a href="https://lsd.gnunet.org/lsd0001/#name-edkey">EDKEY zone keys</a>.</li>
46 </ul>
47 </li>
48 <li><tt>SCALARPRODUCT</tt>: Crypto ported to libsodium improving performance. <a href="https://bugs.gnunet.org/view.php?id=6818">#6818</a></li>
49 <li><tt>RECLAIM</tt>: Added support for <a class="link" href="https://github.com/Fraunhofer-AISEC/libpabc">BBS+ blind signature credentials</a> for selective disclosure.</li>
50 <li><tt>UTIL</tt>:
51 <ul>
52 <li>Swap gnunet-config's default behaviour for the rewrite flag.</li>
53 <li>Config file is not not always written</li>
54 <li>Introduced new TIME helper functions</li>
55 </ul>
56 </li>
57 <li><tt>SETU</tt>: Implemented set union subsystem along with technical specification <a href="https://lsd.gnunet.org/lsd0003/">LSD0003</a>.</li>
58 <li><tt>MESSENGER</tt>: New messenger component moved out of experimental.</li>
59</ul>
60<p>
61 A detailed list of changes can be found in the <a href="https://git.gnunet.org/gnunet.git/tree/ChangeLog">ChangeLog</a> and
62 the <a href="https://bugs.gnunet.org/changelog_page.php?project_id=13">bug tracker</a>.
63</p>
64<h4>Known Issues</h4>
65<ul>
66 <li>There are known major design issues in the TRANSPORT, ATS and CORE subsystems which will need to be addressed in the future to achieve acceptable usability, performance and security.</li>
67 <li>There are known moderate implementation limitations in CADET that negatively impact performance.</li>
68 <li>There are known moderate design issues in FS that also impact usability and performance.</li>
69 <li>There are minor implementation limitations in SET that create unnecessary attack surface for availability.</li>
70 <li>The RPS subsystem remains experimental.</li>
71 <li>Some high-level tests in the test-suite fail non-deterministically due to the low-level TRANSPORT issues.</li>
72</ul>
73<p>
74 In addition to this list, you may also want to consult our bug tracker at <a href="https://bugs.gnunet.org/">bugs.gnunet.org</a> which lists about 190 more specific issues.
75</p>
76
77<h4>Thanks</h4>
78<p>
79 This release was the work of many people. The following people contributed code and were thus easily identified:
80 Christian Grothoff, Daniel Golle, Alessio Vanni, Thien-Thi Nguyen, Elias Summermatter, t3sserakt, TheJackiMonster and Martin Schanzenbach.
81</p>
82{% endblock body_content %}
diff --git a/template/news/2021-12-GNSSpecISE.html.j2 b/template/news/2021-12-GNSSpecISE.html.j2
new file mode 100644
index 00000000..0b89efd0
--- /dev/null
+++ b/template/news/2021-12-GNSSpecISE.html.j2
@@ -0,0 +1,28 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>GNS Technical Specification Call for Reviews</h1>
4<p>
5 We are happy to announce that our GNS specification is currently under review
6 by the Independent Stream Editor (ISE).
7 We have already received feedback from the ISE and made significant,
8 mostly editorial changes to the specification.
9</p>
10<p>
11 We are inviting anyone reading this to review and provide feedback to the draft
12 and send it to <a href="mailto:gnunet-developers@gnu.org?subject=LSD0001">gnunet-developers@gnu.org</a>.
13 Even better, you could write an implementation in your favourite programming
14 language.
15</p>
16<p>
17 In other news, we are currently also working on the specification of the
18 <a href="https://lsd.gnunet.org/lsd0004">GNUnet DHT</a>.
19</p>
20<ul>
21 <li>IETF: <a href="https://datatracker.ietf.org/doc/draft-schanzen-gns/">Datatracker</a></li>
22 <li><a href="https://lsd.gnunet.org/lsd0001/draft-schanzen-gns.txt">Link to TXT version</a></li>
23 <li><a href="https://lsd.gnunet.org/lsd0001/draft-schanzen-gns.html">Link to HTML version</a></li>
24</ul>
25<p>
26 This work was generously funded by <a href="https://nlnet.nl">NLnet</a> as part of their <a href="https://nlnet.nl/project/GNS/">Search and discovery fund</a>.
27</p>
28{% endblock body_content %}
diff --git a/template/news/2022-02-0.16.0.html.j2 b/template/news/2022-02-0.16.0.html.j2
new file mode 100644
index 00000000..631b622e
--- /dev/null
+++ b/template/news/2022-02-0.16.0.html.j2
@@ -0,0 +1,89 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<main id="maincontent">
4 <h1>GNUnet 0.16.0 released</h1>
5<p>
6 We are pleased to announce the release of GNUnet 0.16.0.
7 <br/>
8 GNUnet is an alternative network stack for building secure, decentralized and
9 privacy-preserving distributed applications.
10 Our goal is to replace the old insecure Internet protocol stack.
11 Starting from an application for secure publication of files, it has grown to
12 include all kinds of basic protocol components and applications towards the
13 creation of a GNU internet.
14</p>
15<p>
16 This is a new major release. It breaks protocol compatibility with the 0.15.x versions.
17 Please be aware that Git master is thus henceforth (and has been for a
18 while) <b>INCOMPATIBLE</b> with
19 the 0.15.x GNUnet network, and interactions between old and new peers
20 will result in issues. 0.15.x peers will be able to communicate with Git
21 master or 0.16.x peers, but some services - in particular GNS - will not be compatible.<br/>
22 In terms of usability, users should be aware that there are still
23 <b>a number of known open issues</b> in particular with respect to ease
24 of use, but also some critical privacy issues especially for mobile users.
25 Also, the nascent network is tiny and thus unlikely to
26 provide good anonymity or extensive amounts of interesting information.
27 As a result, the 0.16.0 release is still <b>only suitable for early adopters
28 with some reasonable pain tolerance</b>.
29</p>
30<h4>Download links</h4>
31<ul>
32 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.16.0.tar.gz">gnunet-0.16.0.tar.gz</a> (<a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.16.0.tar.gz.sig">signature</a>)</li>
33 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.15.0.tar.gz">gnunet-gtk-0.16.0.tar.gz</a> (<a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.16.0.tar.gz.sig">signature</a>)</li>
34 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.15.0.tar.gz">gnunet-fuse-0.16.0.tar.gz</a> (<a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.16.0.tar.gz.sig">signature</a>)</li>
35</ul>
36<p>
37 The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
38</p>
39<p>
40 Note that due to mirror synchronization, not all links might be functional
41 early after the release. For direct access try
42 <a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
43</p>
44<h4>Noteworthy changes in 0.16.0 (since 0.15.3)</h4>
45<ul>
46 <li><tt>GNS</tt>:
47 <ul>
48 <li>New record flag: CRITICAL. For records that must be processed otherwise resolution must fail. <a href="https://bugs.gnunet.org/view.php?id=7169">#7169</a></li>
49 <li>Deletion of records and reduction of expiration times is now properly handled with respect to monotonically increasing expiratin times. <a href="https://bugs.gnunet.org/view.php?id=7170">#7170</a></li>
50 <li>VPN tunnel establishment is moved out of the GNS resolver to be handled by applications (such as the DNS2GNS service). <a href="https://bugs.gnunet.org/view.php?id=7171">#7171</a></li>
51 <li>Introduces new record type REDIRECT which replaces the previous (ab)use of CNAME records. <a href="https://bugs.gnunet.org/view.php?id=7172">#7172</a></li>
52 <li>The specification has been updated to reflect the changes. <a href="https://lsd.gnunet.org/lsd0001">LSD0001</a></li>
53
54 </ul>
55 </li>
56 <li><tt>DHT</tt>:
57 <ul>
58 <li>Routes can now be signed. <a href="https://bugs.gnunet.org/view.php?id=4164">#4164</a></li>
59 <li>Changed distance metric to a more traditional XOR. <a href="https://bugs.gnunet.org/view.php?id=7136">#7136</a></li>
60 <li>The specification has been updated to reflect the changes. <a href="https://lsd.gnunet.org/lsd0004">LSD0004</a></li>
61 </ul>
62 </li>
63 <li><tt>RECLAIM</tt>: Added some preliminary support for Decentralized Identifier (DID) and Verifiable Credentials (VCs).</li>
64 <li><tt>UTIL</tt>: Add Clause-Schnorr blind signatures. For use in <a href="https://taler.net/en/news/2022-02.html">Taler</a>.</li>
65 <li><tt>BUILD</tt>: Building from git now requires <tt>recutils</tt>. The bootstrap will generate up-to-date header files from <a href="https://gana.gnunet.org">GANA</a>.</li>
66</ul>
67<p>
68 A detailed list of changes can be found in the <a href="https://git.gnunet.org/gnunet.git/tree/ChangeLog">ChangeLog</a> and
69 the <a href="https://bugs.gnunet.org/changelog_page.php?project_id=13">bug tracker</a>.
70</p>
71<h4>Known Issues</h4>
72<ul>
73 <li>There are known major design issues in the TRANSPORT, ATS and CORE subsystems which will need to be addressed in the future to achieve acceptable usability, performance and security.</li>
74 <li>There are known moderate implementation limitations in CADET that negatively impact performance.</li>
75 <li>There are known moderate design issues in FS that also impact usability and performance.</li>
76 <li>There are minor implementation limitations in SET that create unnecessary attack surface for availability.</li>
77 <li>The RPS subsystem remains experimental.</li>
78 <li>Some high-level tests in the test-suite fail non-deterministically due to the low-level TRANSPORT issues.</li>
79</ul>
80<p>
81 In addition to this list, you may also want to consult our bug tracker at <a href="https://bugs.gnunet.org/">bugs.gnunet.org</a> which lists about 190 more specific issues.
82</p>
83
84<h4>Thanks</h4>
85<p>
86 This release was the work of many people. The following people contributed code and were thus easily identified:
87 Christian Grothoff, Tristan Schwieren, Alessio Vanni, Florian Dold, Thien-Thi Nguyen, t3sserakt, Lucien Heuzeveldt, Gian Demarmels, madmurphy, TheJackiMonster and Martin Schanzenbach.
88</p>
89{% endblock body_content %}
diff --git a/template/news/2022-03-0.16.1.html.j2 b/template/news/2022-03-0.16.1.html.j2
new file mode 100644
index 00000000..d39cf8ca
--- /dev/null
+++ b/template/news/2022-03-0.16.1.html.j2
@@ -0,0 +1,36 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<h1>GNUnet 0.16.1</h1>
5<p>
6This is a bugfix release for gnunet 0.16.0.
7</p>
8<h4>Download links</h4>
9<ul>
10 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.16.1.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-0.16.1.tar.gz</a></li>
11 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.16.1.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-0.16.1.tar.gz.sig</a></li>
12</ul>
13<p>
14The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
15</p>
16<p>
17Note that due to mirror synchronization, not all links may be functional
18early after the release. For direct access try
19<a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
20</p>
21<h4>Noteworthy changes in 0.16.1 (since 0.16.0)</h4>
22<ul>
23 <li><tt>GNS</tt>: There was a bug where private records were published.</li>
24 <li><tt>NAMESTORE</tt>: CLI now handles Tombstones better. There is also a warning for problematically short relative expiration times (&lt;15 minutes) when adding new records.</li>
25 <li><tt>Buildsystem</tt>:
26 <ul>
27 <li>Fix libsodium detection. <a href="https://bugs.gnunet.org/view.php?id=7153">#7153</a></li>
28 <li>Fix for facilitating <tt>autoreconf</tt> with the released tarball.</li>
29 </ul>
30 </li>
31</ul>
32<p>
33A detailed list of changes can be found in the <a href="https://git.gnunet.org/gnunet.git/tree/ChangeLog">ChangeLog</a> and
34the <a href="https://bugs.gnunet.org/changelog_page.php?project_id=13">0.16.1 bugtracker</a>.
35</p>
36{% endblock body_content %}
diff --git a/template/news/2022-03-0.16.2.html.j2 b/template/news/2022-03-0.16.2.html.j2
new file mode 100644
index 00000000..5ea4d941
--- /dev/null
+++ b/template/news/2022-03-0.16.2.html.j2
@@ -0,0 +1,32 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<h1>GNUnet 0.16.2</h1>
5<p>
6This is a bugfix release for gnunet 0.16.1.
7</p>
8<h4>Download links</h4>
9<ul>
10 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.16.2.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-0.16.2.tar.gz</a></li>
11 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.16.2.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-0.16.2.tar.gz.sig</a></li>
12</ul>
13<p>
14The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
15</p>
16<p>
17Note that due to mirror synchronization, not all links may be functional
18early after the release. For direct access try
19<a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
20</p>
21<h4>Noteworthy changes in 0.16.2 (since 0.16.1)</h4>
22<ul>
23 <li><tt>DHT</tt>: Fix path signature handling.</li>
24 <li><tt>GNS</tt>: Fix BOX handling in zone apex.</li>
25 <li><tt>NAMESTORE</tt>: Prevent storing under invalid labels.</li>
26 <li><tt>Buildsystem</tt>: Fix build on *BSD and Guix.</li>
27</ul>
28<p>
29A detailed list of changes can be found in the <a href="https://git.gnunet.org/gnunet.git/tree/ChangeLog">ChangeLog</a> and
30the <a href="https://bugs.gnunet.org/changelog_page.php?project_id=13">0.16.2 bugtracker</a>.
31</p>
32{% endblock body_content %}
diff --git a/template/news/2022-03-0.16.3.html.j2 b/template/news/2022-03-0.16.3.html.j2
new file mode 100644
index 00000000..2d8f376f
--- /dev/null
+++ b/template/news/2022-03-0.16.3.html.j2
@@ -0,0 +1,30 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<h1>GNUnet 0.16.3</h1>
5<p>
6This is a bugfix release for gnunet 0.16.2.
7</p>
8<h4>Download links</h4>
9<ul>
10 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.16.3.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-0.16.3.tar.gz</a></li>
11 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.16.3.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-0.16.3.tar.gz.sig</a></li>
12</ul>
13<p>
14The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
15</p>
16<p>
17Note that due to mirror synchronization, not all links may be functional
18early after the release. For direct access try
19<a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
20</p>
21<h4>Noteworthy changes in 0.16.3 (since 0.16.2)</h4>
22<ul>
23 <li><tt>GNS</tt>: Fix record processing in DHT.</li>
24 <li><tt>Buildsystem</tt>: Fix portability issues.</li>
25</ul>
26<p>
27A detailed list of changes can be found in the <a href="https://git.gnunet.org/gnunet.git/tree/ChangeLog">ChangeLog</a> and
28the <a href="https://bugs.gnunet.org/changelog_page.php?project_id=13">0.16.2 bugtracker</a>.
29</p>
30{% endblock body_content %}
diff --git a/template/news/2022-04-libgnunetchat-0.1.0.html.j2 b/template/news/2022-04-libgnunetchat-0.1.0.html.j2
new file mode 100644
index 00000000..9568827a
--- /dev/null
+++ b/template/news/2022-04-libgnunetchat-0.1.0.html.j2
@@ -0,0 +1,55 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<main id="maincontent">
4 <h1>libgnunetchat 0.1.0 released</h1>
5<p>
6 We are pleased to announce the release of the client side library libgnunetchat 0.1.0.
7 <br/>
8 This library brings an abstraction layer using the client API from different GNUnet services to provide the functionality of a typical messenger application. The goal is to make developing such applications easier and independent of the GUI toolkit. So people can develop different interfaces being compatible with eachother despite visual differences, a few missing features or differences in overall design.
9 <br/>
10 The library relies on multiple services from GNUnet to implement its features. More information about that can be found <a href="https://git.gnunet.org/libgnunetchat.git/tree/README.md">here</a>.
11</p>
12<h4>Download links</h4>
13<ul>
14 <li><a href="http://ftpmirror.gnu.org/gnunet/libgnunetchat-0.1.0.tar.gz">libgnunetchat-0.1.0.tar.gz</a> (<a href="http://ftpmirror.gnu.org/gnunet/libgnunetchat-0.1.0.tar.gz.sig">signature</a>)</li>
15</ul>
16<p>
17 The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
18</p>
19<p>
20 Note that due to mirror synchronization, not all links might be functional
21 early after the release. For direct access try
22 <a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
23</p>
24<h4>Noteworthy changes in 0.1.0</h4>
25<ul>
26 <li>This release requires the GNUnet Messenger Service 0.1!</li>
27 <li>It allows account management (creation, listing and deletion).</li>
28 <li>Clients are able to switch between accounts during runtime.</li>
29 <li>The client can rename an account or update its key.</li>
30 <li>Contact exchange is possible via lobbies in form of URIs to be shared as text form or potentially QR encoded.</li>
31 <li>Each resource allows handling a user pointer for the client application.</li>
32 <li>Contacts and groups can be managed individually and given a custom nick name.</li>
33 <li>It is possible to request and open a direct chat with any contact.</li>
34 <li>Groups allow listing their members with custom user pointers related to the group memberships.</li>
35 <li>Chats can be left explicitly.</li>
36 <li>Each chat will be represented as context resource abstracting the variant of chat.</li>
37 <li>It is possible to send text messages, send files, share files and send read receipts explicitly.</li>
38 <li>Received messages allow checking for a read receipt status.</li>
39 <li>Messages can be deleted with a custom delay.</li>
40 <li>Files in a chat can be fully managed (they can be uploaded, downloaded, unindexed and provide a decrypted temporary preview if necessary) while being encrypted individually.</li>
41 <li>The status of each operation (upload, download, unindex) regarding files can be tracked.</li>
42 <li>Received invitations to new chats can be accepted.</li>
43</ul>
44<p>
45 A detailed list of changes can be found in the <a href="https://git.gnunet.org/libgnunetchat.git/tree/ChangeLog">ChangeLog</a>.
46</p>
47<h4>Known Issues</h4>
48<ul>
49 <li>The test cases are not fully complete and they may fail because of timeouts erratically.</li>
50</ul>
51<p>
52 In addition to this list, you may also want to consult our bug tracker at <a href="https://bugs.gnunet.org/">bugs.gnunet.org</a>.
53</p>
54
55{% endblock body_content %}
diff --git a/template/news/2022-05-messenger-gtk-0.7.0.html.j2 b/template/news/2022-05-messenger-gtk-0.7.0.html.j2
new file mode 100644
index 00000000..6c7c1982
--- /dev/null
+++ b/template/news/2022-05-messenger-gtk-0.7.0.html.j2
@@ -0,0 +1,68 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<main id="maincontent">
4 <h1>Messenger-GTK 0.7.0 released</h1>
5<p>
6 We are pleased to announce the release of the Messenger-GTK application.
7 <br/>
8 The application is a convergent GTK messaging application using the GNUnet Messenger service. The goal is to provide private and secure communication between any group of devices. The interface is also designed in a way to scale down to mobile and small screen devices like phones or tablets.
9</p>
10<p>
11 The application provides the following features:
12</p>
13<ul>
14 <li>Creating direct chats and group chats</li>
15 <li>Managing your contacts and groups</li>
16 <li>Invite contacts to a group</li>
17 <li>Sending text messages</li>
18 <li>Sending voice recordings</li>
19 <li>Sharing files privately</li>
20 <li>Deleting messages with any custom delay</li>
21 <li>Renaming contacts</li>
22 <li>Exchanging contact details physically</li>
23 <li>Verifying contact identities</li>
24 <li>Switching between different accounts</li>
25</ul>
26<p>
27 The application utilizes the previously released library "libgnunetchat" in a convergent graphical user interface. More information about that can be found <a href="https://git.gnunet.org/messenger-gtk.git/tree/README.md">here</a>.
28</p>
29<p>
30 It is also possible to install and try the application as flatpak. The application is already available on <a href="https://flathub.org/apps/details/org.gnunet.Messenger">flathub.org</a>. Otherwise you will find the source code ready to compile below as well.
31</p>
32<h4>Download links</h4>
33<ul>
34 <li><a href="http://ftpmirror.gnu.org/gnunet/messenger-gtk-0.7.0.tar.gz">messenger-gtk-0.7.0.tar.gz</a> (<a href="http://ftpmirror.gnu.org/gnunet/messenger-gtk-0.7.0.tar.gz.sig">signature</a>)</li>
35</ul>
36<p>
37 The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
38</p>
39<p>
40 Note that due to mirror synchronization, not all links might be functional
41 early after the release. For direct access try
42 <a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
43</p>
44<h4>Noteworthy changes in 0.7.0</h4>
45<ul>
46 <li>The version iteration will be inherited by cadet-gtk as logical successor.</li>
47 <li>It is possible to create direct chats and group chats via physical or virtual exchange.</li>
48 <li>Groups and contacts can be named, left, verified or deleted.</li>
49 <li>Existing contacts can be invited to any private or public group.</li>
50 <li>Chats allow sending text messages, voice recordings or files.</li>
51 <li>Messages can be deleted with a custom delete or automatically.</li>
52 <li>Switching between different accounts can be done during runtime.</li>
53</ul>
54<p>
55 A detailed list of changes can be found in the <a href="https://git.gnunet.org/messenger-gtk.git/tree/ChangeLog">ChangeLog</a>.
56</p>
57<h4>Known Issues</h4>
58<ul>
59 <li>It is still difficult to get reliable chats between different devices. This might change with the upcoming changes on the GNUnet transport layer though.</li>
60 <li>It might happen that the FS service is not connected which might stop any file upload or stall it forever.</li>
61 <li>The webcam/camera to scan QR codes might not get picked up properly (for example it doesn't work yet with the Pinephone).</li>
62 <li>The application might crash at times. So consider it still being in development.</li>
63</ul>
64<p>
65 In addition to this list, you may also want to consult our bug tracker at <a href="https://bugs.gnunet.org/">bugs.gnunet.org</a>.
66</p>
67
68{% endblock body_content %}
diff --git a/template/news/2022-06-0.17.0.html.j2 b/template/news/2022-06-0.17.0.html.j2
new file mode 100644
index 00000000..fea9e8f8
--- /dev/null
+++ b/template/news/2022-06-0.17.0.html.j2
@@ -0,0 +1,87 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<main id="maincontent">
4 <h1>GNUnet 0.17.0 released</h1>
5<p>
6 We are pleased to announce the release of GNUnet 0.17.0.
7 <br/>
8 GNUnet is an alternative network stack for building secure, decentralized and
9 privacy-preserving distributed applications.
10 Our goal is to replace the old insecure Internet protocol stack.
11 Starting from an application for secure publication of files, it has grown to
12 include all kinds of basic protocol components and applications towards the
13 creation of a GNU internet.
14</p>
15<p>
16 This is a new major release. It breaks protocol compatibility with the 0.16.x versions.
17 Please be aware that Git master is thus henceforth (and has been for a
18 while) <b>INCOMPATIBLE</b> with
19 the 0.16.x GNUnet network, and interactions between old and new peers
20 will result in issues. 0.16.x peers will be able to communicate with Git
21 master or 0.17.x peers, but some services - in particular the DHT - will not be compatible.<br/>
22 In terms of usability, users should be aware that there are still
23 <b>a number of known open issues</b> in particular with respect to ease
24 of use, but also some critical privacy issues especially for mobile users.
25 Also, the nascent network is tiny and thus unlikely to
26 provide good anonymity or extensive amounts of interesting information.
27 As a result, the 0.17.0 release is still <b>only suitable for early adopters
28 with some reasonable pain tolerance</b>.
29</p>
30<h4>Download links</h4>
31<ul>
32 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.17.0.tar.gz">gnunet-0.17.0.tar.gz</a> (<a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.17.0.tar.gz.sig">signature</a>)</li>
33</ul>
34<p>
35 The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
36</p>
37<p>
38 Note that due to mirror synchronization, not all links might be functional
39 early after the release. For direct access try
40 <a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
41</p>
42<h4>Noteworthy changes in 0.17.0 (since 0.16.3)</h4>
43<ul>
44 <li><tt>GNS</tt>:
45 <ul>
46 <li>FCFSD: Allow configuration of relative expiration time of added records.</li>
47 <li>Aligned with breaking changes in specification. <a href="https://lsd.gnunet.org/lsd0001">LSD0001</a></li>
48 </ul>
49 </li>
50 <li><tt>DHT</tt>:
51 <ul>
52 <li>Aligned and reordered message formats. <a href="https://lsd.gnunet.org/lsd0004">LSD0004</a></li>
53 <li>Moved block type definitions to <a href="https://gana.gnunet.org">GANA</a></li>
54
55 <li>The specification has been updated to reflect the changes. <a href="https://lsd.gnunet.org/lsd0004">LSD0004</a></li>
56 </ul>
57 </li>
58 <li><tt>UTIL</tt>:
59 <ul>
60 <li>Fix scheduler bug with same-priority immediately-ready tasks possibly hogging the scheduler.</li>
61 <li>Fix mysql/mariadb detection.</li>
62 </ul>
63 </li>
64</ul>
65<p>
66 A detailed list of changes can be found in the <a href="https://git.gnunet.org/gnunet.git/tree/ChangeLog">ChangeLog</a> and
67 the <a href="https://bugs.gnunet.org/changelog_page.php?project_id=13">bug tracker</a>.
68</p>
69<h4>Known Issues</h4>
70<ul>
71 <li>There are known major design issues in the TRANSPORT, ATS and CORE subsystems which will need to be addressed in the future to achieve acceptable usability, performance and security.</li>
72 <li>There are known moderate implementation limitations in CADET that negatively impact performance.</li>
73 <li>There are known moderate design issues in FS that also impact usability and performance.</li>
74 <li>There are minor implementation limitations in SET that create unnecessary attack surface for availability.</li>
75 <li>The RPS subsystem remains experimental.</li>
76 <li>Some high-level tests in the test-suite fail non-deterministically due to the low-level TRANSPORT issues.</li>
77</ul>
78<p>
79 In addition to this list, you may also want to consult our bug tracker at <a href="https://bugs.gnunet.org/">bugs.gnunet.org</a> which lists about 190 more specific issues.
80</p>
81
82<h4>Thanks</h4>
83<p>
84 This release was the work of many people. The following people contributed code and were thus easily identified:
85 Christian Grothoff, Tristan Schwieren, Florian Dold, Thien-Thi Nguyen, t3sserakt, TheJackiMonster and Martin Schanzenbach.
86</p>
87{% endblock body_content %}
diff --git a/template/news/2022-06-0.17.1.html.j2 b/template/news/2022-06-0.17.1.html.j2
new file mode 100644
index 00000000..fdf41608
--- /dev/null
+++ b/template/news/2022-06-0.17.1.html.j2
@@ -0,0 +1,30 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<h1>GNUnet 0.17.1</h1>
5<p>
6This is a bugfix release for gnunet 0.17.0.
7</p>
8<h4>Download links</h4>
9<ul>
10 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.17.1.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-0.17.1.tar.gz</a></li>
11 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.17.1.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-0.17.1.tar.gz.sig</a></li>
12</ul>
13<p>
14The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
15</p>
16<p>
17Note that due to mirror synchronization, not all links may be functional
18early after the release. For direct access try
19<a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
20</p>
21<h4>Noteworthy changes in 0.17.0 (since 0.17.1)</h4>
22<ul>
23 <li><tt>DHT</tt>: Bugfix in HELLO message format. LSD0004 compliance.</li>
24 <li><tt>RECLAIM</tt>: OpenID Connect plugin now needs (optional) jose dependency.</li>
25</ul>
26<p>
27A detailed list of changes can be found in the <a href="https://git.gnunet.org/gnunet.git/tree/ChangeLog">ChangeLog</a> and
28the <a href="https://bugs.gnunet.org/changelog_page.php?project_id=13">bugtracker</a>.
29</p>
30{% endblock body_content %}
diff --git a/template/news/2022-06-DHTSpec1.html.j2 b/template/news/2022-06-DHTSpec1.html.j2
new file mode 100644
index 00000000..9bebdf15
--- /dev/null
+++ b/template/news/2022-06-DHTSpec1.html.j2
@@ -0,0 +1,39 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<main id="maincontent">
4 <h1>DHT Technical Specification Milestones 1-3/5</h1>
5<p>
6We are happy to announce the completion of the following milestones for the DHT specification. The objective is to provide a detailed and comprehensive guide for implementors of the GNUnet DHT "R<sup>5</sup>N".
7 The milestones consist of documenting the base data structures and processes
8 of the protocol.
9 This includes the specification of the DHT message wire and serialization formats.<br>
10</p>
11<p>
12 Completed milestones overview:
13 <ol>
14 <li>Defined base data structures and processes that form the foundation of the protocol: Routing table, distance metrics, infrastructure messages, bootstrapping and base functions for block processing.</li>
15 <li>Defined the core data structures and processes that are specific to the R<sup>5</sup>N protocol: Block and peer filtering, routing table management and lookup algorithms.</li>
16 <li>The protocol was extended to support path signatures. This enables optional integrity protection of paths result messages have taken in a potentially rouge environment.</li>
17 </ol>
18</p>
19<p>
20 The current protocol is implemented as part of GNUnet 0.17.x and gnunet-go as
21 <a href="https://lists.gnu.org/archive/html/gnunet-developers/2022-06/msg00019.html">previously announced on the mailing list</a>.
22</p>
23<p>
24 <b>We invite any interested party to read the document and provide critical
25 review and feedback. This greatly helps us to improve the protocol
26 and help future implementations. Contact us at <a href="mailto:gnunet-developers@gnunet.org">the gnunet-developers mailing list</a></b>.
27 As part of the remaining milestones, the specification will be updated and
28 interoperability testing will be conducted.
29 Further, we aim to present the draft specification at IETF.
30</p>
31<ul>
32 <li><a href="https://lsd.gnunet.org/lsd0004/draft-schanzen-r5n.txt">Plain text version</a></li>
33 <li><a href="https://lsd.gnunet.org/lsd0004/draft-schanzen-r5n.html">HTML version</a></li>
34 <li><a href="https://git.gnunet.org/lsd0004.git">Git sources</a></li>
35</ul>
36<p>
37 This work is generously funded by <a href="https://nlnet.nl">NLnet</a> as part of their <a href="https://nlnet.nl/assure">NGI Assure fund</a>.
38</p>
39{% endblock body_content %}
diff --git a/template/news/2022-07-0.17.2.html.j2 b/template/news/2022-07-0.17.2.html.j2
new file mode 100644
index 00000000..a1236da4
--- /dev/null
+++ b/template/news/2022-07-0.17.2.html.j2
@@ -0,0 +1,31 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<h1>GNUnet 0.17.2</h1>
5<p>
6This is a bugfix release for gnunet 0.17.1.
7</p>
8<h4>Download links</h4>
9<ul>
10 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.17.2.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-0.17.2.tar.gz</a></li>
11 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.17.2.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-0.17.2.tar.gz.sig</a></li>
12</ul>
13<p>
14The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
15</p>
16<p>
17Note that due to mirror synchronization, not all links may be functional
18early after the release. For direct access try
19<a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
20</p>
21<h4>Noteworthy changes in 0.17.1 (since 0.17.2)</h4>
22<ul>
23 <li><tt>DHT</tt>: Various bugfixes in the protocol.</li>
24 <li><tt>RECLAIM</tt>: OpenID Connect plugin improvements.</li>
25 <li><tt>ABE</tt>: Removed.</li>
26</ul>
27<p>
28A detailed list of changes can be found in the <a href="https://git.gnunet.org/gnunet.git/tree/ChangeLog">ChangeLog</a> and
29the <a href="https://bugs.gnunet.org/changelog_page.php?project_id=13">bugtracker</a>.
30</p>
31{% endblock body_content %}
diff --git a/template/news/2022-08-0.17.3.html.j2 b/template/news/2022-08-0.17.3.html.j2
new file mode 100644
index 00000000..288c645e
--- /dev/null
+++ b/template/news/2022-08-0.17.3.html.j2
@@ -0,0 +1,49 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<h1>GNUnet 0.17.3</h1>
5<p>
6This is a bugfix release for gnunet 0.17.2.
7In addition to the fixed in the source, the documentation websites including
8the handbook have been updated and consolidated: <a href="https://docs.gnunet.org">https://docs.gnunet.org</a>.
9</p>
10<p>
11Notably, the GNUnet project now publishes a GNS zone for its websites which can be used
12to test resolution on any installation.
13For example:
14</p>
15<p>
16 <code class="block">
17 $ gnunet-gns -t ANY -u www.gnunet.org
18 </code>
19</p>
20<h4>Download links</h4>
21<ul>
22 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.17.3.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-0.17.3.tar.gz</a></li>
23 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.17.3.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-0.17.3.tar.gz.sig</a></li>
24</ul>
25<p>
26The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
27</p>
28<p>
29Note that due to mirror synchronization, not all links may be functional
30early after the release. For direct access try
31<a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
32</p>
33<h4>Noteworthy changes in 0.17.3 (since 0.17.2)</h4>
34<ul>
35 <li><tt>DHT</tt>: Various bugfixes in the protocol.</li>
36 <li><tt>TRANSPORT</tt>: Fix HTTPS tests. <a href="https://bugs.gnunet.org/view.php?id=7257">#7257</a></li>
37 <li><tt>DOCUMENTATION</tt>:
38 <ul>
39 <li>Migrate from texinfo to sphinx.</li>
40 <li>Dropped dependency on texinfo.</li>
41 <li>Added dependency on sphinx.</li>
42 </ul>
43 </li>
44</ul>
45<p>
46A detailed list of changes can be found in the <a href="https://git.gnunet.org/gnunet.git/tree/ChangeLog">ChangeLog</a> and
47the <a href="https://bugs.gnunet.org/changelog_page.php?project_id=13">bugtracker</a>.
48</p>
49{% endblock body_content %}
diff --git a/template/news/2022-08-0.17.4.html.j2 b/template/news/2022-08-0.17.4.html.j2
new file mode 100644
index 00000000..e3abfb59
--- /dev/null
+++ b/template/news/2022-08-0.17.4.html.j2
@@ -0,0 +1,22 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<h1>GNUnet 0.17.4</h1>
5<p>
6This is a bugfix release for gnunet 0.17.3 because of a missing file in the
7tarball required to build the documentation.
8</p>
9<h4>Download links</h4>
10<ul>
11 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.17.4.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-0.17.4.tar.gz</a></li>
12 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.17.4.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-0.17.4.tar.gz.sig</a></li>
13</ul>
14<p>
15The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
16</p>
17<p>
18Note that due to mirror synchronization, not all links may be functional
19early after the release. For direct access try
20<a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
21</p>
22{% endblock body_content %}
diff --git a/template/news/2022-09-0.17.5.html.j2 b/template/news/2022-09-0.17.5.html.j2
new file mode 100644
index 00000000..171ce3a1
--- /dev/null
+++ b/template/news/2022-09-0.17.5.html.j2
@@ -0,0 +1,21 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<h1>GNUnet 0.17.5</h1>
5<p>
6This is a bugfix release for gnunet 0.17.4..
7</p>
8<h4>Download links</h4>
9<ul>
10 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.17.5.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-0.17.5.tar.gz</a></li>
11 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.17.5.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-0.17.5.tar.gz.sig</a></li>
12</ul>
13<p>
14The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
15</p>
16<p>
17Note that due to mirror synchronization, not all links may be functional
18early after the release. For direct access try
19<a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
20</p>
21{% endblock body_content %}
diff --git a/template/news/2022-09-0.17.6.html.j2 b/template/news/2022-09-0.17.6.html.j2
new file mode 100644
index 00000000..8d28059b
--- /dev/null
+++ b/template/news/2022-09-0.17.6.html.j2
@@ -0,0 +1,35 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<h1>GNUnet 0.17.6</h1>
5<p>
6This is a bugfix release for gnunet 0.17.5.
7</p>
8<h4>Download links</h4>
9<ul>
10 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.17.6.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-0.17.6.tar.gz</a></li>
11 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.17.6.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-0.17.6.tar.gz.sig</a></li>
12</ul>
13<p>
14The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
15</p>
16<p>
17Note that due to mirror synchronization, not all links may be functional
18early after the release. For direct access try
19<a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
20</p>
21<h4>Noteworthy changes in 0.17.6 (since 0.17.5)</h4>
22<ul>
23 <li><tt>NAMESTORE</tt>:
24 <ul>
25 <li>Added transactional API. <a href="https://bugs.gnunet.org/view.php?id=7203">#7203</a></li>
26 <li>Removed heap storage storage plugin.</li>
27 </ul>
28 </li>
29 <li><tt>FS</tt>: Fix `-s` and `-o` options not working together in <tt>gnunet-search</tt></li>
30<li><tt>REST</tt>: Added (optional) authentication for all rest endpoints. <a href="https://bugs.gnunet.org/view.php?id=5669">#5669</a> </li>
31 <li><tt>DOC</tt>: Doxygen is now built only if available. Sphinx is built on bootstrap. <a href="https://bugs.gnunet.org/view.php?id=7324">#7324</a> </li>
32 <li><tt>UTIL</tt>: Remove outdated test. <a href="https://bugs.gnunet.org/view.php?id=7361">#7361</a></li>
33 <li><tt>BUILD</tt>: Remove gnurl as dependency and improve cURL detection. <a href="https://bugs.gnunet.org/view.php?id=5084">#5084</a></li>
34</ul>
35{% endblock body_content %}
diff --git a/template/news/2022-09-messenger-cli-0.1.0.html.j2 b/template/news/2022-09-messenger-cli-0.1.0.html.j2
new file mode 100644
index 00000000..f9829d6f
--- /dev/null
+++ b/template/news/2022-09-messenger-cli-0.1.0.html.j2
@@ -0,0 +1,56 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<main id="maincontent">
4 <h1>messenger-cli 0.1.0 released</h1>
5<p>
6 We are pleased to announce the release of the messenger-cli application.
7 <br/>
8 The application is a counterpart for the terminal to the previous release of the GTK application using the GNUnet Messenger service. The goal is to provide private and secure communication between any group of devices. So server admins or users relying on a terminal focused window manager have now a proper option to utilize the service as well.
9</p>
10<p>
11 The application provides the following features:
12</p>
13<ul>
14 <li>Creating direct chats and group chats</li>
15 <li>Sending text messages</li>
16 <li>Sharing files privately</li>
17 <li>Deleting messages</li>
18 <li>Verifying contact identities</li>
19 <li>Switching between different accounts</li>
20</ul>
21<p>
22 The application utilizes the previously released library "libgnunetchat" in an user interface built with ncurses. It will adapt its different views depending on the terminal size to show most important information. The navigation is done via arrow-, ESCAPE, TAB, ENTER and DELETE keys. More information about that can be found <a href="https://git.gnunet.org/messenger-cli.git/tree/README.md">here</a>.
23</p>
24<h4>Download links</h4>
25<ul>
26 <li><a href="http://ftpmirror.gnu.org/gnunet/messenger-cli-0.1.0.tar.gz">messenger-cli-0.1.0.tar.gz</a> (<a href="http://ftpmirror.gnu.org/gnunet/messenger-cli-0.1.0.tar.gz.sig">signature</a>)</li>
27</ul>
28<p>
29 The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
30</p>
31<p>
32 Note that due to mirror synchronization, not all links might be functional
33 early after the release. For direct access try
34 <a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
35</p>
36<h4>Noteworthy changes in 0.1.0</h4>
37<ul>
38 <li>It is possible to create direct chats and group chats via lobbies, shared keys or invitations</li>
39 <li>Members of a chats can be observed</li>
40 <li>Chats allow sending text messages or files</li>
41 <li>Messages can be deleted in any chat locally</li>
42 <li>Switching between different accounts can be done during runtime</li>
43</ul>
44<p>
45 A detailed list of changes can be found in the <a href="https://git.gnunet.org/messenger-cli.git/tree/ChangeLog">ChangeLog</a>.
46</p>
47<h4>Known Issues</h4>
48<ul>
49 <li>It is still difficult to get reliable chats between different devices. This might change with the upcoming changes on the GNUnet transport layer though.</li>
50 <li>It might happen that the FS service is not connected which might stop any file upload or stall it forever.</li>
51</ul>
52<p>
53 In addition to this list, you may also want to consult our bug tracker at <a href="https://bugs.gnunet.org/">bugs.gnunet.org</a>.
54</p>
55
56{% endblock body_content %}
diff --git a/template/news/2022-10-0.18.0.html.j2 b/template/news/2022-10-0.18.0.html.j2
new file mode 100644
index 00000000..1f281b0e
--- /dev/null
+++ b/template/news/2022-10-0.18.0.html.j2
@@ -0,0 +1,98 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<main id="maincontent">
4 <h1>GNUnet 0.18.0 released</h1>
5<p>
6 We are pleased to announce the release of GNUnet 0.18.0.
7 <br/>
8 GNUnet is an alternative network stack for building secure, decentralized and
9 privacy-preserving distributed applications.
10 Our goal is to replace the old insecure Internet protocol stack.
11 Starting from an application for secure publication of files, it has grown to
12 include all kinds of basic protocol components and applications towards the
13 creation of a GNU internet.
14</p>
15<p>
16 This is a new major release. It breaks protocol compatibility with the 0.17.x versions.
17 Please be aware that Git master is thus henceforth (and has been for a
18 while) <b>INCOMPATIBLE</b> with
19 the 0.17.x GNUnet network, and interactions between old and new peers
20 will result in issues. 0.17.x peers will be able to communicate with Git
21 master or 0.18.x peers, but some services - in particular the DHT - will not be compatible.<br/>
22 In terms of usability, users should be aware that there are still
23 <b>a number of known open issues</b> in particular with respect to ease
24 of use, but also some critical privacy issues especially for mobile users.
25 Also, the nascent network is tiny and thus unlikely to
26 provide good anonymity or extensive amounts of interesting information.
27 As a result, the 0.18.0 release is still <b>only suitable for early adopters
28 with some reasonable pain tolerance</b>.
29</p>
30<h4>Download links</h4>
31<ul>
32 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.18.0.tar.gz">gnunet-0.18.0.tar.gz</a> (<a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.18.0.tar.gz.sig">signature</a>)</li>
33 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.18.0.tar.gz">gnunet-gtk-0.18.0.tar.gz</a> (<a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.18.0.tar.gz.sig">signature</a>)</li>
34</ul>
35<p>
36 The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
37</p>
38<p>
39 Note that due to mirror synchronization, not all links might be functional
40 early after the release. For direct access try
41 <a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
42</p>
43<h4>Noteworthy changes in 0.18.0 (since 0.17.6)</h4>
44<ul>
45 <li><tt>UTIL</tt>: Added <tt>enum GNUNET_ErrorCode</tt> for better error handling throughout the API.</li>
46 <li><tt>NAMESTORE</tt>:
47 <ul>
48 <li>Moved namecache updates out of namestore and into zonemaster. This fixes issues from version 0.17.6 with respect to premature namestore monitor update messages and zone propagation. [<a href="https://bugs.gnunet.org/view.php?id=7378">#7378</a>]</li>
49 <li>Added a new API for bulk imports: <tt>GNUNET_NAMESTORE_records_store2</tt>. The API can be combined with the transactional API in order to significantly improve namestore performance for lage zones. For postgres databases, storing records is around 20x faster than the old API. [<a href="https://bugs.gnunet.org/view.php?id=7379">#7379</a>]</li>
50 <li>New database setup utility <tt>gnunet-namestore-dbtool</tt>. Databases can be initialized and reset using this new CLI. Currently, database plugins still allow to initialize databases automatically as well by setting <tt>INIT_ON_CONNECT</tt> (Default: YES). [<a href="https://bugs.gnunet.org/view.php?id=7204">#7204</a>]</li>
51 <li>There are new APIs for zone iterations and monitoring which support filtering of records using <tt>GNUNET_GNSRECORD_Filter</tt>. By default, maintenance records such as <tt>TOMBSTONE</tt>s are filtered. [<a href="https://bugs.gnunet.org/view.php?id=7193">#7193</a>]</li>
52 <li>New zonefile import utility <tt>gnunet-namestore-zonefile</tt> that for DNS zone files. [<a href="https://bugs.gnunet.org/view.php?id=7396">#7396</a>]</li>
53 <li>Make use of new <tt>enum GNUNET_ErrorCode</tt> in C and REST API. [<a href="https://bugs.gnunet.org/view.php?id=7399">#7399</a>]</li>
54 <li>Included handling of orphaned GNS records. Records are orphaned of Egos are (accidentally) deleted which makes operations on records difficult but at the same time existing records are still published. [<a href="https://bugs.gnunet.org/view.php?id=7401">#7401</a>, <a href="https://bugs.gnunet.org/view.php?id=7402">#7402</a>]</li>
55 <li>Updated the <a href="https://docs.gnunet.org/developers/subsystems/namestore/namestore.html">C API documentation</a> to reflect the above changes.</li>
56 <li>Updated the <a href="https://docs.gnunet.org/users/gns.html">user documentation</a> to reflect the above changes and included various tutorials on zone management.</li>
57 <li>Updated the <a href="https://docs.gnunet.org/developers/rest/namestore.html">REST API and its documentation</a> to reflect the above changes.</li>
58 </ul>
59 </li>
60 <li><tt>ZONEMASTER</tt>: Zonemaster now uses worker threads for record signing.</li>
61 <li><tt>DHT</tt>:
62 <ul>
63 <li>The specification has been updated to reflect the changes. <a href="https://lsd.gnunet.org/lsd0004">LSD0004</a></li>
64 </ul>
65 </li>
66 <li><tt>BUILD</tt>:
67 <ul>
68 <li>Fix mysql/mariadb detection (again). [<a href="https://bugs.gnunet.org/view.php?id=7356">#7356</a>]</li>
69 </ul>
70 </li>
71 <li><tt>PACKAGING</tt>: Revamped the <a href="https://git.gnunet.org/gnunet-rpm.git/">RPM package</a> available through <a href="https://copr.fedorainfracloud.org/coprs/schanzen/gnunet/">Fedora COPR</a> and <a href="https://bugzilla.redhat.com/show_bug.cgi?id=2094246">submitted it</a>.
72</ul>
73<p>
74 A detailed list of changes can be found in the <a href="https://git.gnunet.org/gnunet.git/tree/ChangeLog">ChangeLog</a> and
75 the <a href="https://bugs.gnunet.org/changelog_page.php?project_id=13">bug tracker</a>.
76</p>
77<h4>Known Issues</h4>
78<ul>
79 <li>There are known major design issues in the TRANSPORT, ATS and CORE subsystems which will need to be addressed in the future to achieve acceptable usability, performance and security.</li>
80 <li>There are known moderate implementation limitations in CADET that negatively impact performance.</li>
81 <li>There are known moderate design issues in FS that also impact usability and performance.</li>
82 <li>There are minor implementation limitations in SET that create unnecessary attack surface for availability.</li>
83 <li>The RPS subsystem remains experimental.</li>
84 <li>Some high-level tests in the test-suite fail non-deterministically due to the low-level TRANSPORT issues.</li>
85</ul>
86<p>
87 In addition to this list, you may also want to consult our bug tracker at <a href="https://bugs.gnunet.org/">bugs.gnunet.org</a> which lists about 190 more specific issues.
88</p>
89
90<h4>Thanks</h4>
91<p>
92 This release was the work of many people. The following people contributed code and were thus easily identified:
93 Bernd Fix, Christian Grothoff, Tristan Schwieren, madmurphy, Willow Liquorice, t3sserakt, TheJackiMonster and Martin Schanzenbach.
94 We are greatful for funding from <a href="https://nlnet.nl/discovery/">NGI Zero DISCOVERY</a> that
95 has supported several developers over the last four years to work on the
96 <a href="../gns.html">GNU Name System</a> and related subsystems.
97</p>
98{% endblock body_content %}
diff --git a/template/news/2022-10-libgnunetchat-0.1.1.html.j2 b/template/news/2022-10-libgnunetchat-0.1.1.html.j2
new file mode 100644
index 00000000..2fc901da
--- /dev/null
+++ b/template/news/2022-10-libgnunetchat-0.1.1.html.j2
@@ -0,0 +1,21 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<h1>libgnunetchat 0.1.1 released</h1>
5<p>
6This is mostly a bugfix release for libgnunetchat 0.1.0. But it will also update the build process of libgnunetchat to use GNU Automake and it will ensure compatibility with latest changes in GNUnet 0.18.0.
7</p>
8<h4>Download links</h4>
9<ul>
10 <li><a href="http://ftpmirror.gnu.org/gnunet/libgnunetchat-0.1.1.tar.gz">libgnunetchat-0.1.1.tar.gz</a></li>
11 <li><a href="http://ftpmirror.gnu.org/gnunet/libgnunetchat-0.1.1.tar.gz.sig">libgnunetchat-0.1.1.tar.gz.sig</a></li>
12</ul>
13<p>
14The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
15</p>
16<p>
17Note that due to mirror synchronization, not all links may be functional
18early after the release. For direct access try
19<a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
20</p>
21{% endblock body_content %}
diff --git a/template/news/2022-11-0.18.1.html.j2 b/template/news/2022-11-0.18.1.html.j2
new file mode 100644
index 00000000..482a9ea4
--- /dev/null
+++ b/template/news/2022-11-0.18.1.html.j2
@@ -0,0 +1,32 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<h1>GNUnet 0.18.1</h1>
5<p>
6This is a bugfix release for gnunet 0.18.0.
7</p>
8<h4>Download links</h4>
9<ul>
10 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.18.1.tar.gz">gnunet-0.18.1.tar.gz</a> (<a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.18.1.tar.gz.sig">signature</a>)</li>
11 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.18.1.tar.gz">gnunet-gtk-0.18.1.tar.gz</a> (<a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.18.1.tar.gz.sig">signature</a>)</li>
12</ul>
13<p>
14The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
15</p>
16<p>
17Note that due to mirror synchronization, not all links may be functional
18early after the release. For direct access try
19<a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
20</p>
21<h4>Noteworthy changes in 0.18.1 (since 0.18.0)</h4>
22<ul>
23 <li><tt>IDENTITY</tt>:
24 <ul>
25 <li>Major internal API cleanup with respect to key serialization.</li>
26 <li>Removed deprecated default subsystem API.</li>
27 </ul>
28 </li>
29 <li><tt>TESTING</tt>: Fix broken tests.</li>
30 <li><tt>GTK</tt>: Update with recent changes to IDENTITY.</li>
31</ul>
32{% endblock body_content %}
diff --git a/template/news/2022-11-NGI-Entrust-GNS-TLDs.html.j2 b/template/news/2022-11-NGI-Entrust-GNS-TLDs.html.j2
new file mode 100644
index 00000000..39759705
--- /dev/null
+++ b/template/news/2022-11-NGI-Entrust-GNS-TLDs.html.j2
@@ -0,0 +1,42 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<main id="maincontent">
4 <h1>NGI Zero Entrust: "GNS to DNS Migration and Zone Management"</h1>
5<p>
6 We are happy to announce that we have successfully acquired funding for further
7 GNS development and polishing!
8</p>
9<p>
10The GNU Name System specification is in its <a href="https://datatracker.ietf.org/doc/draft-schanzen-gns/">final stages</a>.
11Migration paths and large-scale testing as well as generating interest in running GNS zones and registrars is the next logical step.
12Hence, this project aims to
13<ol>
14 <li>Facilitate the management of GNS zones by administrators.</li>
15 <li>Provide users with means to resolve real-world names by (partially) mirroring the DNS root zone.</li>
16</ol>
17</p>
18<p>
19<b>Ad 1.:</b> To ease adoption, a framework for GNS registrars will be developed for zone management.
20The registrar framework will allow GNS zone administrators to provide
21a web-interface for subdomain registration by other users.
22The services may also be provided for a fee similar to how DNS domain registrars
23operate to cover running costs.
24The framework is envisioned to support integration of privacy-friendly payments with <a href="https://www.taler.net">GNU Taler</a>.
25</p>
26<p>
27<b>Ad 2.:</b>We are already hosting and shipping a zone for <tt>gnunet.org</tt> as part of our GNS implementation.
28To demonstrate how existing DNS registrars could migrate zones from DNS to GNS
29we plan to run multiple GNS zones ourselves which contain the zone information from real-world DNS top-level domains.
30This will also show how GNS can be used to secure the existing DNS namespace from
31censorship and outages when used in parallel.
32A selection of existing top-level domains for which <a href="https://jpmens.net/2021/05/18/dns-open-zone-data/">open data exists</a> will be hosted and served through GNS in order to facilitate the daily use of the name system.
33We are are planning to integrate at least three DNS zones and publish them
34through GNS for users to resolve in a default GNUnet installation.
35</p>
36<p>
37 Watch this space and the mailing list for updates!
38</p>
39<p>
40 This work is generously funded by <a href="https://nlnet.nl">NLnet</a> as part of their <a href="https://nlnet.nl/entrust/">NGI Zero Entrust Programme</a>.
41</p>
42{% endblock body_content %}
diff --git a/template/news/2022-12-0.19.0.html.j2 b/template/news/2022-12-0.19.0.html.j2
new file mode 100644
index 00000000..b84370c0
--- /dev/null
+++ b/template/news/2022-12-0.19.0.html.j2
@@ -0,0 +1,90 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<main id="maincontent">
4 <h1>GNUnet 0.19.0 released</h1>
5<p>
6 We are pleased to announce the release of GNUnet 0.19.0.
7 <br/>
8 GNUnet is an alternative network stack for building secure, decentralized and
9 privacy-preserving distributed applications.
10 Our goal is to replace the old insecure Internet protocol stack.
11 Starting from an application for secure publication of files, it has grown to
12 include all kinds of basic protocol components and applications towards the
13 creation of a GNU internet.
14</p>
15<p>
16 This is a new major release.
17 It breaks protocol compatibility with the 0.18.x versions.
18 Please be aware that Git master is thus henceforth (and has been for a
19 while) <b>INCOMPATIBLE</b> with
20 the 0.18.x GNUnet network, and interactions between old and new peers
21 will result in issues. 0.18.x peers will be able to communicate with Git
22 master or 0.19.x peers, but some services will not be compatible.<br/>
23 In terms of usability, users should be aware that there are still
24 <b>a number of known open issues</b> in particular with respect to ease
25 of use, but also some critical privacy issues especially for mobile users.
26 Also, the nascent network is tiny and thus unlikely to
27 provide good anonymity or extensive amounts of interesting information.
28 As a result, the 0.19.0 release is still <b>only suitable for early adopters
29 with some reasonable pain tolerance</b>.
30</p>
31<h4>Download links</h4>
32<ul>
33 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.19.0.tar.gz">gnunet-0.19.0.tar.gz</a> (<a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.19.0.tar.gz.sig">signature</a>)</li>
34 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.19.0.tar.gz">gnunet-gtk-0.19.0.tar.gz</a> (<a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.19.0.tar.gz.sig">signature</a>)</li>
35 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.19.0.tar.gz">gnunet-fuse-0.19.0.tar.gz</a> (<a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.19.0.tar.gz.sig">signature</a>)</li>
36</ul>
37<p>
38 The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
39</p>
40<p>
41 Note that due to mirror synchronization, not all links might be functional
42 early after the release. For direct access try
43 <a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
44</p>
45<h4>Noteworthy changes in 0.19.0 (since 0.18.2)</h4>
46<ul>
47 <li><tt>UTIL</tt>: Moved <tt>GNUNET_BIO_MetaData</tt> handling into <tt>FS</tt>.</li>
48 <li><tt>BUILD</tt>: <tt>platform.h</tt> removed as it should not be used by
49 third parties anyway.
50 <tt>gnunet_config.h</tt> is renamed to <tt>gnunet_private_config.h</tt>
51 and the new replacement <tt>gnunet_config.h</tt> is added to provide
52 build information for components linking against/using GNUnet.</li>
53 <li><tt>UTIL</tt>: Components part of <tt>gnunet_util_lib.h</tt> must now
54 be included through <tt>gnunet_util_lib.h</tt> and through that header
55 <b>only</b>.</li>
56 <li><tt>NAMESTORE</tt>:
57 <tt>gnunet-namestore</tt> can now parse a list of records into zones
58 from <tt>stdin</tt> in new <tt>recordline</tt> format.
59 </li>
60 <li><tt>GTK</tt>: Added an identity selector to the search to accomodate for
61 previously deprecated "default" identities for subsystems.</li>
62 <li>Other: Postgres plugins implementations modernized and previous regressions
63 fixed.</li>
64</ul>
65<p>
66A detailed list of changes can be found in the <a href="https://git.gnunet.org/gnunet.git/tree/ChangeLog">ChangeLog</a> and
67the <a href="https://bugs.gnunet.org/changelog_page.php?project_id=13">bug tracker</a>.
68</p>
69<h4>Known Issues</h4>
70<ul>
71 <li>There are known major design issues in the TRANSPORT, ATS and CORE subsystems which will need to be addressed in the future to achieve acceptable usability, performance and security.</li>
72 <li>There are known moderate implementation limitations in CADET that negatively impact performance.</li>
73 <li>There are known moderate design issues in FS that also impact usability and performance.</li>
74 <li>There are minor implementation limitations in SET that create unnecessary attack surface for availability.</li>
75 <li>The RPS subsystem remains experimental.</li>
76 <li>Some high-level tests in the test-suite fail non-deterministically due to the low-level TRANSPORT issues.</li>
77</ul>
78<p>
79In addition to this list, you may also want to consult our bug tracker at <a href="https://bugs.gnunet.org/">bugs.gnunet.org</a> which lists about 190 more specific issues.
80</p>
81
82<h4>Thanks</h4>
83<p>
84This release was the work of many people. The following people contributed code and were thus easily identified:
85Christian Grothoff, Tristan Schwieren, madmurphy, t3sserakt, TheJackiMonster and Martin Schanzenbach.
86<!--We are greatful for funding from <a href="https://nlnet.nl/discovery/">NGI Zero DISCOVERY</a> that
87has supported several developers over the last four years to work on the
88<a href="../gns.html">GNU Name System</a> and related subsystems.-->
89</p>
90{% endblock body_content %}
diff --git a/template/news/2022-12-0.19.1.html.j2 b/template/news/2022-12-0.19.1.html.j2
new file mode 100644
index 00000000..6e3b86a2
--- /dev/null
+++ b/template/news/2022-12-0.19.1.html.j2
@@ -0,0 +1,24 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<h1>GNUnet 0.19.1</h1>
5<p>
6This is a bugfix release for gnunet 0.19.0.
7</p>
8<h4>Download links</h4>
9<ul>
10 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.19.1.tar.gz">gnunet-0.19.1.tar.gz</a> (<a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.19.1.tar.gz.sig">signature</a>)</li>
11</ul>
12<p>
13The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
14</p>
15<p>
16Note that due to mirror synchronization, not all links may be functional
17early after the release. For direct access try
18<a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
19</p>
20<p>
21A detailed list of changes can be found in the <a href="https://git.gnunet.org/gnunet.git/tree/ChangeLog">ChangeLog</a> and
22the <a href="https://bugs.gnunet.org/changelog_page.php?project_id=13">bug tracker</a>.
23</p>
24{% endblock body_content %}
diff --git a/template/news/2023-01-0.19.2.html.j2 b/template/news/2023-01-0.19.2.html.j2
new file mode 100644
index 00000000..2e85c512
--- /dev/null
+++ b/template/news/2023-01-0.19.2.html.j2
@@ -0,0 +1,24 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<h1>GNUnet 0.19.2</h1>
5<p>
6This is a bugfix release for gnunet 0.19.1.
7</p>
8<h4>Download links</h4>
9<ul>
10 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.19.2.tar.gz">gnunet-0.19.2.tar.gz</a> (<a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.19.2.tar.gz.sig">signature</a>)</li>
11</ul>
12<p>
13The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
14</p>
15<p>
16Note that due to mirror synchronization, not all links may be functional
17early after the release. For direct access try
18<a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
19</p>
20<p>
21A detailed list of changes can be found in the <a href="https://git.gnunet.org/gnunet.git/tree/ChangeLog">ChangeLog</a> and
22the <a href="https://bugs.gnunet.org/changelog_page.php?project_id=13">bug tracker</a>.
23</p>
24{% endblock body_content %}
diff --git a/template/news/2023-02-0.19.3.html.j2 b/template/news/2023-02-0.19.3.html.j2
new file mode 100644
index 00000000..b62f17db
--- /dev/null
+++ b/template/news/2023-02-0.19.3.html.j2
@@ -0,0 +1,27 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3{% set newver = '0.19.3' %}
4{% set oldver = '0.19.2' %}
5<main id="maincontent">
6<h1>GNUnet {{newver}}</h1>
7<p>
8This is a bugfix release for gnunet {{oldver}}.
9Note that starting with this release, we will no longer ship a verbose ChangeLog file in the tarball. The git log serves this purpose now.
10</p>
11<h4>Download links</h4>
12<ul>
13 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-{{newver}}.tar.gz">gnunet-{{newver}}.tar.gz</a> (<a href="http://ftpmirror.gnu.org/gnunet/gnunet-{{newver}}.tar.gz.sig">signature</a>)</li>
14</ul>
15<p>
16The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
17</p>
18<p>
19Note that due to mirror synchronization, not all links may be functional
20early after the release. For direct access try
21<a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
22</p>
23<p>
24A detailed list of changes can be found in the <a href="https://git.gnunet.org/gnunet.git/log/?h=v{{newver}}">git log</a>, the <a href="https://git.gnunet.org/gnunet.git/tree/NEWS?h=v{{newver}}">NEWS</a> and
25the <a href="https://bugs.gnunet.org/changelog_page.php?version_id=417">bug tracker</a>.
26</p>
27{% endblock body_content %}
diff --git a/template/news/2023-02-libgnunetchat-0.1.3.html.j2 b/template/news/2023-02-libgnunetchat-0.1.3.html.j2
new file mode 100644
index 00000000..f3c951eb
--- /dev/null
+++ b/template/news/2023-02-libgnunetchat-0.1.3.html.j2
@@ -0,0 +1,21 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<h1>libgnunetchat 0.1.3 released</h1>
5<p>
6This is mostly a bugfix and compatibility release for libgnunetchat 0.1.2. But it will also change the build process of libgnunetchat to use Meson instead of GNU Automake and it will ensure compatibility with latest changes in GNUnet 0.19.0. The required version of GNUnet to build this library is 0.19.3 for compatibility reasons though.
7</p>
8<h4>Download links</h4>
9<ul>
10 <li><a href="http://ftpmirror.gnu.org/gnunet/libgnunetchat-0.1.3.tar.xz">libgnunetchat-0.1.3.tar.xz</a></li>
11 <li><a href="http://ftpmirror.gnu.org/gnunet/libgnunetchat-0.1.3.tar.xz.sig">libgnunetchat-0.1.3.tar.xz.sig</a></li>
12</ul>
13<p>
14The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
15</p>
16<p>
17Note that due to mirror synchronization, not all links may be functional
18early after the release. For direct access try
19<a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
20</p>
21{% endblock body_content %}
diff --git a/template/news/2023-02-messenger-gtk-0.8.0.html.j2 b/template/news/2023-02-messenger-gtk-0.8.0.html.j2
new file mode 100644
index 00000000..ef1c31b4
--- /dev/null
+++ b/template/news/2023-02-messenger-gtk-0.8.0.html.j2
@@ -0,0 +1,55 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<h1>Messenger-GTK 0.8.0</h1>
5<p>
6 Following the new release of "libgnunetchat" there have been some changes regarding the applications utilizing it. So we are pleased to announce the new release of the Messenger-GTK application. This release will be compatible with libgnunetchat 0.1.3 and GNUnet 0.19.3 upwards.
7</p>
8<h4>Download links</h4>
9<ul>
10 <li><a href="http://ftpmirror.gnu.org/gnunet/messenger-gtk-0.8.0.tar.xz">messenger-gtk-0.8.0.tar.xz</a></li>
11 <li><a href="http://ftpmirror.gnu.org/gnunet/messenger-gtk-0.8.0.tar.xz.sig">messenger-gtk-0.8.0.tar.xz.sig</a></li>
12</ul>
13<p>
14The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
15</p>
16<p>
17Note that due to mirror synchronization, not all links may be functional
18early after the release. For direct access try
19<a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
20</p>
21<h4>Noteworthy changes in 0.8.0</h4>
22<ul>
23 <li>A simple media player has been added to the user interface to play received audio and video files without a third-party application.</li>
24 <li>Multiple crashes and breaking issues have been fixed.</li>
25</ul>
26<p>
27 A detailed list of changes can be found in the <a href="https://git.gnunet.org/messenger-gtk.git/tree/ChangeLog">ChangeLog</a>.
28</p>
29<h4>Known Issues</h4>
30<ul>
31 <li>Chats still require a reliable connection between GNUnet peers. So this still depends on the upcoming NAT traversal to be used outside of local networks for most users (see <a href="https://bugs.gnunet.org/view.php?id=5710">#5710</a>).</li>
32 <li>File sharing via the FS service should work in a GNUnet single-user setup but a multi-user setup breaks it (see <a href="https://bugs.gnunet.org/view.php?id=7355">#7355</a>)</li>
33 <li>Mobile devices might come with multiple sensors per camera which doesn't get recogniced by the GStreamer pipeline. As soon as libcamera supports those devices, there will be changes to utilize that fixing this issue.</li>
34</ul>
35<p>
36 In addition to this list, you may also want to consult our bug tracker at <a href="https://bugs.gnunet.org/">bugs.gnunet.org</a>.
37</p>
38<h2>messenger-cli 0.1.1</h2>
39<p>
40 There's also a new release of the terminal application using the GNUnet Messenger service. But since that's only a release to provide compatibility with changes in its dependencies it is only a minor release without adding new features.
41</p>
42<h4>Download links</h4>
43<ul>
44 <li><a href="http://ftpmirror.gnu.org/gnunet/messenger-cli-0.1.1.tar.xz">messenger-cli-0.1.1.tar.xz</a></li>
45 <li><a href="http://ftpmirror.gnu.org/gnunet/messenger-cli-0.1.1.tar.xz.sig">messenger-cli-0.1.1.tar.xz.sig</a></li>
46</ul>
47<p>
48The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
49</p>
50<p>
51Note that due to mirror synchronization, not all links may be functional
52early after the release. For direct access try
53<a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
54</p>
55{% endblock body_content %}
diff --git a/template/news/2023-04-0.19.4.html.j2 b/template/news/2023-04-0.19.4.html.j2
new file mode 100644
index 00000000..41b39572
--- /dev/null
+++ b/template/news/2023-04-0.19.4.html.j2
@@ -0,0 +1,28 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3{% set newver = '0.19.4' %}
4{% set oldver = '0.19.3' %}
5<main id="maincontent">
6<h1>GNUnet {{newver}}</h1>
7<p>
8This is a bugfix release for gnunet {{oldver}}.
9Special thanks goes out to ulfvonbelow who provided an array of patches.
10This is not an April Fool's joke.
11</p>
12<h4>Download links</h4>
13<ul>
14 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-{{newver}}.tar.gz">gnunet-{{newver}}.tar.gz</a> (<a href="http://ftpmirror.gnu.org/gnunet/gnunet-{{newver}}.tar.gz.sig">signature</a>)</li>
15</ul>
16<p>
17The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
18</p>
19<p>
20Note that due to mirror synchronization, not all links may be functional
21early after the release. For direct access try
22<a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
23</p>
24<p>
25A detailed list of changes can be found in the <a href="https://git.gnunet.org/gnunet.git/log/?h=v{{newver}}">git log</a>, the <a href="https://git.gnunet.org/gnunet.git/tree/NEWS?h=v{{newver}}">NEWS</a> and
26the <a href="https://bugs.gnunet.org/changelog_page.php?version_id=417">bug tracker</a>.
27</p>
28{% endblock body_content %}
diff --git a/template/news/2023-08-GSoC-QUIC.html.j2 b/template/news/2023-08-GSoC-QUIC.html.j2
new file mode 100644
index 00000000..e9d41fc8
--- /dev/null
+++ b/template/news/2023-08-GSoC-QUIC.html.j2
@@ -0,0 +1,36 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<main id="maincontent">
4 <h1>GSoC Work Product: GNUnet over QUIC</h1>
5<p>
6 Hi, my name is Marshall and throughout the summer of 2023 I worked on developing a new communicator for the GNUnet transport service. I learned a lot about GNUnet through my development experience. Here are some details about the journey!
7</p>
8<h2>Goals of the Project.</h2>
9<p>
10 The goal of this project was to develop a new transport, QUIC, for the <a href="https://docs.gnunet.org/developers/transport-ng/transport-ng.html">Transport Next Generation (TNG) service</a>. TNG is a successor to the previous transport plugins and will be running in the fall 2023 GNUnet release. At the time of writing, GNUnet currently supports transports over TCP, UDP, and UNIX sockets.
11 I chose to implement a QUIC transport communicator due to the rising popularity and speed of this protocol. Because of this popularity, QUIC will be a great transport protocol for GNUnet traffic to sit on top of. QUIC is intended to be a faster alternative to TCP and tries to address some issues that TLS has.
12</p>
13<h2>What I completed.</h2>
14<p>
15One of the first steps was deciding on a library that can process QUIC packets and would be available to users running different operating systems.
16We chose to go with <a href="https://github.com/cloudflare/quiche">Cloudflare's Quiche library</a> because the C API seemed simpler than other available libraries. Installing cloudflare-quiche via the Homebrew package manager (MacOS) did not actually install the libraries properly for linking with other C programs so I made a pull request in the Homebrew repository and <a href="https://github.com/Homebrew/homebrew-core/commit/227fa616059fdb2157628535b85a801bbb5613f5">fixed the formula</a>.
17After this, I worked on handling the receiving functionality of the communicator. This involved reading from the socket then processing the QUIC packets using the Quiche library. Then I implemented the ability to send messages in a similar manner. One of the last steps involved connecting everything together with the transport service so that the communicator can receive information about peers and relay messages.
18Once I finished these tasks, the QUIC communicator got merged upstream and is currently an experimental feature. This is due to the packaging situation with Quiche as it is difficult for some users to install the library, and there still may be bugs lingering in the QUIC communicator. More testing and refinement is needed to offer a truly robust and reliable communicator.
19
20Link to source code: <a href="https://git.gnunet.org/gnunet.git/tree/src/transport/gnunet-communicator-quic.c">QUIC communicator</a>.
21</p>
22<h2>The current state.</h2>
23<p>
24The QUIC communicator currently functions and passes basic communicator tests. That being said, there are some latency issues that need to be addressed. Since the communicator suite is designed to run alongside the new TNG service, it is currently not usable since TNG is still under development (as mentioned previously). Mentioned below are some other things that have yet to be implemented in the QUIC communicator, but will be fixed in the future.
25</p>
26<h2>Future Work.</h2>
27<p>
28We still need to develop a more permanent solution to the certificate generation so that the Quiche API functions properly. This <a href="https://git.gnunet.org/gnunet.git/tree/src/transport/gnunet-transport-certificate-creation.in">certificate generation</a> has been done in previous implementations (for example the HTTPS plugin). Currently, we are using static, example certificates. Adding timers to each QUIC connection so that a timeout will trigger a connection to close also needs to be implemented. Finally, we should look into lowering the latency by finding points where the communicator is too slow and optimizing it.
29</p>
30<h2>Challenges I Encountered.</h2>
31<p>
32One of the challenges was reverse engineering the Quiche C API because it has such limited documentation. I learned how to make use of the API by looking at the very simple example client and server examples that are provided in the Quiche repository. There is documentation for the Rust API which seems to operate pretty similarly, so this was helpful too at times. I overcame this challenge with the help and guidance of my mentor Martin Schanzenbach.
33</p>
34<h2>Final notes.</h2>
35Overall, my experience with GNUnet was fantastic. My mentors were friendly and consistently available when I needed help, and I thank them for that. I'm thankful for the GNUnet community for being welcoming and understanding toward new open source developers like myself. I had a lot of fun learning how GNUnet works while developing my project. I am looking forward to contributing to GNUnet in the future!
36{% endblock body_content %}
diff --git a/template/news/2023-09-0.20.0.html.j2 b/template/news/2023-09-0.20.0.html.j2
new file mode 100644
index 00000000..726cc78e
--- /dev/null
+++ b/template/news/2023-09-0.20.0.html.j2
@@ -0,0 +1,70 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3{% set newver = '0.20.0' %}
4{% set oldver = '0.19.3' %}
5<main id="maincontent">
6 <h1>GNUnet {{newver}} released</h1>
7<p>
8 We are pleased to announce the release of GNUnet {{newver}}.
9 <br/>
10 GNUnet is an alternative network stack for building secure, decentralized and
11 privacy-preserving distributed applications.
12 Our goal is to replace the old insecure Internet protocol stack.
13 Starting from an application for secure publication of files, it has grown to
14 include all kinds of basic protocol components and applications towards the
15 creation of a GNU internet.
16</p>
17<p>
18 This is a new major release.
19 It breaks protocol compatibility with the 0.19.x versions.
20 Please be aware that Git master is thus henceforth (and has been for a
21 while) <b>INCOMPATIBLE</b> with
22 the 0.19.x GNUnet network, and interactions between old and new peers
23 will result in issues. 0.19.x peers will be able to communicate with Git
24 master or 0.20.x peers, but some services will not be compatible.<br/>
25 In terms of usability, users should be aware that there are still
26 <b>a number of known open issues</b> in particular with respect to ease
27 of use, but also some critical privacy issues especially for mobile users.
28 Also, the nascent network is tiny and thus unlikely to
29 provide good anonymity or extensive amounts of interesting information.
30 As a result, the {{newver}} release is still <b>only suitable for early adopters
31 with some reasonable pain tolerance</b>.
32</p>
33<h4>Download links</h4>
34<ul>
35 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-{{newver}}.tar.gz">gnunet-{{newver}}.tar.gz</a> (<a href="http://ftpmirror.gnu.org/gnunet/gnunet-{{newver}}.tar.gz.sig">signature</a>)</li>
36 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-{{newver}}.tar.gz">gnunet-gtk-{{newver}}.tar.gz</a> (<a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-{{newver}}.tar.gz.sig">signature</a>)</li>
37 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-{{newver}}.tar.gz">gnunet-fuse-{{newver}}.tar.gz</a> (<a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-{{newver}}.tar.gz.sig">signature</a>)</li>
38</ul>
39<p>
40 The GPG key used to sign is: <a href="https://www.gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
41</p>
42<p>
43 Note that due to mirror synchronization, not all links might be functional
44 early after the release. For direct access try
45 <a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
46</p>
47<h4>Changes</h4>
48<p>
49A detailed list of changes can be found in the <a href="https://git.gnunet.org/gnunet.git/log/?h=v{{newver}}">git log</a>, the <a href="https://git.gnunet.org/gnunet.git/tree/NEWS?h=v{{newver}}">NEWS</a> and
50the <a href="https://bugs.gnunet.org/changelog_page.php?version_id=417">bug tracker</a>.
51</p>
52<h4>Known Issues</h4>
53<ul>
54 <li>There are known major design issues in the TRANSPORT, ATS and CORE subsystems which will need to be addressed in the future to achieve acceptable usability, performance and security.</li>
55 <li>There are known moderate implementation limitations in CADET that negatively impact performance.</li>
56 <li>There are known moderate design issues in FS that also impact usability and performance.</li>
57 <li>There are minor implementation limitations in SET that create unnecessary attack surface for availability.</li>
58 <li>The RPS subsystem remains experimental.</li>
59 <li>Some high-level tests in the test-suite fail non-deterministically due to the low-level TRANSPORT issues.</li>
60</ul>
61<p>
62In addition to this list, you may also want to consult our bug tracker at <a href="https://bugs.gnunet.org/">bugs.gnunet.org</a> which lists about 190 more specific issues.
63</p>
64
65<h4>Thanks</h4>
66<p>
67This release was the work of many people. The following people contributed code and were thus easily identified:
68Christian Grothoff, t3sserakt, TheJackiMonster, Marshall Stone, Özgür Kesim and Martin Schanzenbach.
69</p>
70{% endblock body_content %}
diff --git a/template/news/2023-11-RFC9498.html.j2 b/template/news/2023-11-RFC9498.html.j2
new file mode 100644
index 00000000..1b00efc9
--- /dev/null
+++ b/template/news/2023-11-RFC9498.html.j2
@@ -0,0 +1,48 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3 <h1>RFC 9498: The GNU Name System</h1>
4<p>
5 We are happy to announce that our <i>The GNU Name System</i> (GNS) specification is now published as
6 <a href="https://www.rfc-editor.org/rfc/rfc9498.html">RFC 9498</a>.
7</p>
8<p>
9 GNS addresses long-standing <a href="https://www.wired.com/2014/03/quantum/">security</a> and
10 <a href="https://roarmag.org/essays/nsa-leak-domain-name-system/">privacy</a> issues in the ubiquitous
11 <a href="https://www.rfc-editor.org/rfc/rfc882">Domain Name System (DNS)</a>.
12 Previous attempts to secure DNS (<a href="https://www.rfc-editor.org/rfc/rfc9364">DNSSEC</a>) fail to address <a href="https://www.rfc-editor.org/rfc/rfc8324">critical security issues</a>
13 such as end-to-end security, query privacy, censorship, and centralization of root zone governance.
14 After 40 years of patching, it is time for a new beginning.
15</p>
16<p>
17 The GNU Name System is our contribution towards a decentralized and
18 censorship-resistant domain name resolution system that provides a
19 privacy-enhancing alternative to the Domain Name System (DNS).
20</p>
21<p>
22 As part of our work on RFC 9498, we have also contributed to the specification
23 of the <a href="https://www.rfc-editor.org/rfc/rfc9476.html">.alt top-level
24 domain</a> to be used by alternative name resolution systems and have
25 established <a href="https://gana.gnunet.org/dot-alt/dot_alt.html">the GANA registry for ".alt"</a>.
26</p>
27<p>
28 GNS is implemented according to RFC 9598 in GNUnet 0.20.0. It is also implemented
29 as part of <a href="https://git.gnunet.org/gnunet-go.git/">GNUnet-Go</a>.
30</p>
31<p>
32 We thank all reviewers for their comments.
33 In particular, we thank D. J. Bernstein, S. Bortzmeyer, A. Farrel, E. Lear, and R. Salz for their insightful and detailed technical reviews.
34 We thank J. Yao and J. Klensin for the internationalization reviews.
35 We thank Dr. J. Appelbaum for suggesting the name "GNU Name System" and Dr. Richard Stallman for approving its use.
36 We thank T. Lange and M. Wachs for their earlier contributions to the design and implementation of GNS.
37 We thank J. Yao and J. Klensin for the internationalization reviews.
38 We thank <a href="https://nlnet.nl">NLnet</a> and <a href="https://nlnet.nl/project/GNS/">NGI DISCOVERY</a> for funding work on the GNU Name System.
39</p>
40<p>
41 The work does not stop here: We encourage further implementations of RFC 9498
42 to learn more both in terms of technical documentation and actual deployment
43 experiences.
44 Further, we are currently working on the specification of the
45 <a href="https://lsd.gnunet.org/lsd0004">R<sup>5</sup>N DHT</a> and <a href="https://lsd.gnunet.org/lsd0003">BFT Set Reconciliation</a> which are underlying
46 building blocks of GNS in GNUnet and not covered by RFC 9498.
47</p>
48{% endblock body_content %}
diff --git a/template/news/2023-12-NGI-Entrust-GNS-TLDs-Update.html.j2 b/template/news/2023-12-NGI-Entrust-GNS-TLDs-Update.html.j2
new file mode 100644
index 00000000..98e01420
--- /dev/null
+++ b/template/news/2023-12-NGI-Entrust-GNS-TLDs-Update.html.j2
@@ -0,0 +1,32 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<main id="maincontent">
4 <h1>Update for NGI Zero Entrust: GNS to DNS Migration and Zone Management</h1>
5<p>
6 We are happy to announce that we have successfully completed two Milestones:
7 <ul>
8 <li>Milestone 2a: A GNS Registrar Backend.</li>
9 <li>Milestone 2b: A GNS Registrar Frontend.</li>
10 </ul>
11</p>
12<p>
13The resulting code can be found <a href="https://git.gnunet.org/gnunet-gns-registrar.git/">in the usual place</a>.
14There are no tarballs available for the time being.
15The component is built with simplicity and privacy in mind: There are <b>no</b> accounts required; we also refrained from using JavaScript for the front end (for now).
16This component effectively replaces the "first-come, first-served" GNS name registration service previously shipped as part of GNUnet.
17Hence the service at <a href="https://fcfs.gnunet.org">https://fcfs.gnunet.org</a> has been replaced.
18The registrar integrates with <a href="https://www.taler.net">GNU Taler</a>, allowing you to test both functionalities at the same time!
19Don't worry, you do not have to use actual money, as you can use the demo currency from the <a href="https://demo.taler.net">Taler demonstrator</a> to register names for a relatively small portion of the play money you receive when you sign up there.
20</p>
21<p>
22We encourage you to try it out now and register you own zone key.
23We plan to ship this zone in the default configuration of the upcoming GNUnet 0.21 release under the domain ".pin.gns.alt".
24Note that current releases are incompatible with GNUnet, and this also applies to the node connected to our registrar deployment.
25</p>
26<p>
27 Watch this space and the mailing list for updates!
28</p>
29<p>
30 This work is generously funded by <a href="https://nlnet.nl">NLnet</a> as part of their <a href="https://nlnet.nl/entrust/">NGI Zero Entrust Programme</a>.
31</p>
32{% endblock body_content %}
diff --git a/template/news/2024-02-NGI-Webinar-GNS.html.j2 b/template/news/2024-02-NGI-Webinar-GNS.html.j2
new file mode 100644
index 00000000..7bb55931
--- /dev/null
+++ b/template/news/2024-02-NGI-Webinar-GNS.html.j2
@@ -0,0 +1,16 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<main id="maincontent">
4 <h1>NGI Webinar: The GNU Name System and the road to publishing an RFC</h1>
5<p>
6We have been invited by <a href="https://nlnet.nl">NLnet</a> to present the
7GNU Name System and our efforts to create and publish <a href="https://www.rfc-editor.org/rfc/rfc9498.html">RFC 9498</a>.
8</p>
9<p>
10You can find the recording and slides on the <a href="https://nlnet.nl/events/20240222/index.html">NLnet webinar page</a>.
11It includes a live demo of our <a href="https://fcfs.gnunet.org">GNS registrar</a> with integrated <a href="https://taler.net">GNU Taler</a> payments.
12</p>
13<p>
14 The work on GNS was generously funded by <a href="https://nlnet.nl">NLnet</a> as part of their NGI Search and Discovery and <a href="https://nlnet.nl/entrust/">NGI Zero Entrust Programme</a>.
15</p>
16{% endblock body_content %}
diff --git a/template/news/2024-03-0.21.0.html.j2 b/template/news/2024-03-0.21.0.html.j2
new file mode 100644
index 00000000..8c8d900a
--- /dev/null
+++ b/template/news/2024-03-0.21.0.html.j2
@@ -0,0 +1,77 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3{% set newver = '0.21.0' %}
4{% set oldver = '0.20.0' %}
5<main id="maincontent">
6 <h1>GNUnet {{newver}} released</h1>
7<p>
8 We are pleased to announce the release of GNUnet {{newver}}.
9 <br/>
10 GNUnet is an alternative network stack for building secure, decentralized and
11 privacy-preserving distributed applications.
12 Our goal is to replace the old insecure Internet protocol stack.
13 Starting from an application for secure publication of files, it has grown to
14 include all kinds of basic protocol components and applications towards the
15 creation of a GNU internet.
16</p>
17<p>
18 This release marks a noteworthy milestone in that it includes a completely
19 new <a href="https://docs.gnunet.org/v0.21.0/users/subsystems.html#transport-ng-next-generation-transport-management">transport layer</a>.
20 It lays the groundwork for fixing some major design issues and may also
21 already alleviate a variety of issues seen in previous releases related to
22 connectivity.
23 This change also deprecates our testbed and ATS subsystem.
24</p>
25<p>
26 This is a new major release.
27 It breaks protocol compatibility with the 0.20.x versions.
28 Please be aware that Git master is thus henceforth (and has been for a
29 while) <b>INCOMPATIBLE</b> with
30 the 0.20.x GNUnet network, and interactions between old and new peers
31 will result in issues.
32 In terms of usability, users should be aware that there are still
33 <b>a number of known open issues</b> in particular with respect to ease
34 of use, but also some critical privacy issues especially for mobile users.
35 Also, the nascent network is tiny and thus unlikely to
36 provide good anonymity or extensive amounts of interesting information.
37 As a result, the {{newver}} release is still <b>only suitable for early adopters
38 with some reasonable pain tolerance</b>.
39</p>
40<h4>Download links</h4>
41<ul>
42 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-{{newver}}.tar.gz">gnunet-{{newver}}.tar.gz</a> (<a href="http://ftpmirror.gnu.org/gnunet/gnunet-{{newver}}.tar.gz.sig">signature</a>)</li>
43 <li><a href="https://buildbot.gnunet.org/releases/gnunet-{{newver}}-meson.tar.gz">gnunet-{{newver}}-meson.tar.gz</a> (<a href="https://buildbot.gnunet.org/releases/gnunet-{{newver}}-meson.tar.gz.sig">signature</a>) <i>NEW: Test tarball made using the meson build system.</i></li>
44 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-{{newver}}.tar.gz">gnunet-gtk-{{newver}}.tar.gz</a> (<a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-{{newver}}.tar.gz.sig">signature</a>)</li>
45 <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-{{newver}}.tar.gz">gnunet-fuse-{{newver}}.tar.gz</a> (<a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-{{newver}}.tar.gz.sig">signature</a>)</li>
46</ul>
47<p>
48 The GPG key used to sign is: <a href="https://www.gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
49</p>
50<p>
51 Note that due to mirror synchronization, not all links might be functional
52 early after the release. For direct access try
53 <a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
54</p>
55<h4>Changes</h4>
56<p>
57A detailed list of changes can be found in the <a href="https://git.gnunet.org/gnunet.git/log/?h=v{{newver}}">git log</a>, the <a href="https://git.gnunet.org/gnunet.git/tree/NEWS?h=v{{newver}}">NEWS</a> and
58the <a href="https://bugs.gnunet.org/changelog_page.php?version_id=417">bug tracker</a>.
59</p>
60<h4>Known Issues</h4>
61<ul>
62 <li>There are known major design issues in the CORE subsystems which will need to be addressed in the future to achieve acceptable usability, performance and security.</li>
63 <li>There are known moderate implementation limitations in CADET that negatively impact performance.</li>
64 <li>There are known moderate design issues in FS that also impact usability and performance.</li>
65 <li>There are minor implementation limitations in SET that create unnecessary attack surface for availability.</li>
66 <li>The RPS subsystem remains experimental.</li>
67</ul>
68<p>
69In addition to this list, you may also want to consult our bug tracker at <a href="https://bugs.gnunet.org/">bugs.gnunet.org</a> which lists about 190 more specific issues.
70</p>
71
72<h4>Thanks</h4>
73<p>
74This release was the work of many people. The following people contributed code and were thus easily identified:
75Christian Grothoff, t3sserakt, TheJackiMonster, Pedram Fardzadeh, dvn, Sebastian Nadler and Martin Schanzenbach.
76</p>
77{% endblock body_content %}
diff --git a/template/news/2024-03-0.21.1.html.j2 b/template/news/2024-03-0.21.1.html.j2
new file mode 100644
index 00000000..432ee63c
--- /dev/null
+++ b/template/news/2024-03-0.21.1.html.j2
@@ -0,0 +1,29 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3{% set newver = '0.21.1' %}
4{% set oldver = '0.21.0' %}
5<main id="maincontent">
6<h1>GNUnet {{newver}}</h1>
7<p>
8This is a bugfix release for gnunet {{oldver}}.
9It primarily addresses some connectivity issues introduced with our new transport subsystem.
10</p>
11<p>
12<h4>Links</h4>
13<ul>
14 <li>Source: <a href="https://ftpmirror.gnu.org/gnunet/gnunet-{{newver}}.tar.gz">https://ftpmirror.gnu.org/gnunet/gnunet-{{newver}}.tar.gz</a> (<a href="https://ftpmirror.gnu.org/gnunet/gnunet-{{newver}}.tar.gz.sig">https://ftpmirror.gnu.org/gnunet/gnunet-{{newver}}.tar.gz.sig</a>)</li>
15 <li>Source (meson): <a href="https://buildbot.gnunet.org/releases/gnunet-{{newver}}-meson.tar.gz">https://buildbot.gnunet.org/gnunet-{{newver}}-meson.tar.gz</a> (<a href="https://buildbot.gnunet.org/gnunet-{{newver}}-meson.tar.gz.sig">https://buildbot.gnunet.org/gnunet-{{newver}}-meson.tar.gz.sig</a>)</li>
16 <li>Detailed list of changes: <a href="https://git.gnunet.org/gnunet.git/log/?h=v{{newver}}">https://git.gnunet.org/gnunet.git/log/?h=v{{newver}}</a></li>
17 <li>NEWS: <a href="https://git.gnunet.org/gnunet.git/tree/NEWS?h=v{{newver}}">https://git.gnunet.org/gnunet.git/tree/NEWS?h=v{{newver}}</a></li>
18 <li>The list of closed issues in the bug tracker: <a href="https://bugs.gnunet.org/changelog_page.php?version_id=437">https://bugs.gnunet.org/changelog_page.php?version_id=437</a></li>
19</ul>
20</p>
21<p>
22The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
23</p>
24<p>
25Note that due to mirror synchronization, not all links may be functional
26early after the release. For direct access try
27<a href="https://ftp.gnu.org/gnu/gnunet/">https://ftp.gnu.org/gnu/gnunet/</a>
28</p>
29{% endblock body_content %}
diff --git a/template/news/2024-03-libgnunetchat-0.3.0.html.j2 b/template/news/2024-03-libgnunetchat-0.3.0.html.j2
new file mode 100644
index 00000000..796e1ff6
--- /dev/null
+++ b/template/news/2024-03-libgnunetchat-0.3.0.html.j2
@@ -0,0 +1,43 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<h1>libgnunetchat 0.3.0 released</h1>
5<p>
6 We are pleased to announce the release of libgnunetchat 0.3.0.
7 <br/>
8 This is a major new release bringing compatibility with the major changes in the Messenger service from latest GNUnet release 0.21.0 adding new message kinds, adjusting message processing and key management. This release will also require your GNUnet to be at least 0.21.0 because of that.
9</p>
10<h4>Download links</h4>
11<ul>
12 <li><a href="http://ftpmirror.gnu.org/gnunet/libgnunetchat-0.3.0.tar.gz">libgnunetchat-0.3.0.tar.gz</a></li>
13 <li><a href="http://ftpmirror.gnu.org/gnunet/libgnunetchat-0.3.0.tar.gz.sig">libgnunetchat-0.3.0.tar.gz.sig</a></li>
14</ul>
15<p>
16The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
17</p>
18<p>
19Note that due to mirror synchronization, not all links may be functional
20early after the release. For direct access try
21<a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
22</p>
23<h4>Noteworthy changes in 0.3.0</h4>
24<ul>
25 <li>This release requires the GNUnet Messenger Service 0.3!</li>
26 <li>It allows ticket management for tickets sent from contacts.</li>
27 <li>Deletions or other updates of messages result in separate event calls.</li>
28 <li>It is possible to tag messages or contacts.</li>
29 <li>Invitations can be rejected via tag messages.</li>
30 <li>Contacts can be blocked or unblocked which results in filtering messages.</li>
31 <li>Processing of messages is ensured by enforcing logical order of callbacks while querying old messages.</li>
32 <li>Private messages are readable to its sender.</li>
33 <li>Messages provide information about its recipient.</li>
34 <li>Logouts get processed on application level on exit.</li>
35 <li>Delays message callbacks depending on message kind (deletion with custom delay).</li>
36 <li>New debug tools are available to visualize the message graph.</li>
37 <li>Add test case for message receivement.</li>
38 <li>Multiple issues are fixed.</li>
39</ul>
40<p>
41 A detailed list of changes can be found in the <a href="https://git.gnunet.org/libgnunetchat.git/tree/ChangeLog">ChangeLog</a>.
42</p>
43{% endblock body_content %}
diff --git a/template/news/2024-03-libgnunetchat-0.3.1.html.j2 b/template/news/2024-03-libgnunetchat-0.3.1.html.j2
new file mode 100644
index 00000000..a0c1d743
--- /dev/null
+++ b/template/news/2024-03-libgnunetchat-0.3.1.html.j2
@@ -0,0 +1,21 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<h1>libgnunetchat 0.3.1 released</h1>
5<p>
6 This is mostly a bugfix release for libgnunetchat 0.3.0 to reduce build issues.
7</p>
8<h4>Download links</h4>
9<ul>
10 <li><a href="http://ftpmirror.gnu.org/gnunet/libgnunetchat-0.3.1.tar.gz">libgnunetchat-0.3.1.tar.gz</a></li>
11 <li><a href="http://ftpmirror.gnu.org/gnunet/libgnunetchat-0.3.1.tar.gz.sig">libgnunetchat-0.3.1.tar.gz.sig</a></li>
12</ul>
13<p>
14The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
15</p>
16<p>
17Note that due to mirror synchronization, not all links may be functional
18early after the release. For direct access try
19<a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
20</p>
21{% endblock body_content %}
diff --git a/template/news/2024-03-messenger-gtk-0.9.0.html.j2 b/template/news/2024-03-messenger-gtk-0.9.0.html.j2
new file mode 100644
index 00000000..9e1add98
--- /dev/null
+++ b/template/news/2024-03-messenger-gtk-0.9.0.html.j2
@@ -0,0 +1,55 @@
1{% extends "common/news.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<h1>Messenger-GTK 0.9.0</h1>
5<p>
6 Following the new release of "libgnunetchat" there have been some changes regarding the applications utilizing it. So we are pleased to announce the new release of the Messenger-GTK application. This release will be compatible with libgnunetchat 0.3.0 and GNUnet 0.21.0 upwards.
7</p>
8<h4>Download links</h4>
9<ul>
10 <li><a href="http://ftpmirror.gnu.org/gnunet/messenger-gtk-0.9.0.tar.gz">messenger-gtk-0.9.0.tar.gz</a></li>
11 <li><a href="http://ftpmirror.gnu.org/gnunet/messenger-gtk-0.9.0.tar.gz.sig">messenger-gtk-0.9.0.tar.gz.sig</a></li>
12</ul>
13<p>
14The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
15</p>
16<p>
17Note that due to mirror synchronization, not all links may be functional
18early after the release. For direct access try
19<a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
20</p>
21<h4>Noteworthy changes in 0.9.0</h4>
22<ul>
23 <li>Contacts can be blocked and unblocked to filter chat messages.</li>
24 <li>Requests for permission to use a camera, autostart the application and running it in background.</li>
25 <li>Camera sensors can be selected to exchange contact information.</li>
26</ul>
27<p>
28 A detailed list of changes can be found in the <a href="https://git.gnunet.org/messenger-gtk.git/tree/ChangeLog">ChangeLog</a>.
29</p>
30<h4>Known Issues</h4>
31<ul>
32 <li>Chats still require a reliable connection between GNUnet peers. So this still depends on the upcoming NAT traversal to be used outside of local networks for most users (see <a href="https://bugs.gnunet.org/view.php?id=5710">#5710</a>).</li>
33 <li>File sharing via the FS service should work in a GNUnet single-user setup but a multi-user setup breaks it (see <a href="https://bugs.gnunet.org/view.php?id=7355">#7355</a>)</li>
34</ul>
35<p>
36 In addition to this list, you may also want to consult our bug tracker at <a href="https://bugs.gnunet.org/">bugs.gnunet.org</a>.
37</p>
38<h2>messenger-cli 0.2.0</h2>
39<p>
40 There's also a new release of the terminal application using the GNUnet Messenger service. This release will ensure compatibility with changes in libgnunetchat 0.3.0 and GNUnet 0.21.0.
41</p>
42<h4>Download links</h4>
43<ul>
44 <li><a href="http://ftpmirror.gnu.org/gnunet/messenger-cli-0.2.0.tar.gz">messenger-cli-0.2.0.tar.gz</a></li>
45 <li><a href="http://ftpmirror.gnu.org/gnunet/messenger-cli-0.2.0.tar.gz.sig">messenger-cli-0.2.0.tar.gz.sig</a></li>
46</ul>
47<p>
48The GPG key used to sign is: <a href="https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A">3D11063C10F98D14BD24D1470B0998EF86F59B6A</a>
49</p>
50<p>
51Note that due to mirror synchronization, not all links may be functional
52early after the release. For direct access try
53<a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a>
54</p>
55{% endblock body_content %}
diff --git a/template/news/index.html.j2 b/template/news/index.html.j2
new file mode 100644
index 00000000..8bfd973b
--- /dev/null
+++ b/template/news/index.html.j2
@@ -0,0 +1,58 @@
1{% extends "common/base.j2" %}
2{% block body_content %}
3<main id="maincontent">
4 <div class="container-fluid">
5 <div class="container">
6 <article>
7 <div class="row">
8 <div class="container text-center">
9 <h1>{{ _("News") }}<a name="news"></a></h1>
10 <section>
11 <p>
12 {% trans %}
13 News posts about changes related to
14 GNUnet such as releases and events
15 {% endtrans %}
16 &#8211;
17 <a href="{{ url_localized('rss.xml') }}">{{ _("subscribe to our RSS feed") }}</a>
18 </p>
19 </section>
20 </div>
21 </div>
22 <div class="row">
23 {% for year, yitem in newsdata|selectattr('date.year', 'gt', 2023)|groupby('date.year')|reverse %}
24 <b>{{ year }}</b>
25 <ul class="timeline">
26 {% for item in yitem %}
27 <li>
28 <section class="item-preview">
29 <header>
30 <h3>{{ item['title']|e }}</h3>
31 <p class="item-date">
32 {{ item['date'] }}
33 </p>
34 </header>
35 <p class="item-abstract">
36 <!--{{ get_abstract('news/' + item['page'], 500) }} <br/>-->
37 [<a href="{{ url_localized('news/' + item['page']) }}" title="{{ item['date']}}">{{ _("read more") }}</a>]
38 </p>
39 </section>
40 </li>
41 {% endfor %}
42 </ul>
43 {% endfor %}
44 </div>
45 <h2>
46 {% trans %}
47 News archives:
48 {% endtrans %}
49 </h2>
50 <ul>
51 {% for year, yitem in newsdata|selectattr('date.year', 'lt', 2024)|groupby('date.year')|reverse %}
52 <li><a href="{{ 'oldnews-' + year|string + '.html' }}">{{ year }} ({{yitem|length}})</a></li>
53 {% endfor %}
54 </ul>
55 </article>
56 </div>
57 </div>
58{% endblock body_content %}
diff --git a/template/news/oldnews-2011.html.j2 b/template/news/oldnews-2011.html.j2
new file mode 100644
index 00000000..39e76a48
--- /dev/null
+++ b/template/news/oldnews-2011.html.j2
@@ -0,0 +1,5 @@
1{% extends "common/base.j2" %}
2{% from "common/old-news.j2.inc" import oldnews with context %}
3{% block body_content %}
4{{ oldnews(2011) }}
5{% endblock body_content %}
diff --git a/template/news/oldnews-2013.html.j2 b/template/news/oldnews-2013.html.j2
new file mode 100644
index 00000000..d725f006
--- /dev/null
+++ b/template/news/oldnews-2013.html.j2
@@ -0,0 +1,5 @@
1{% extends "common/base.j2" %}
2{% from "common/old-news.j2.inc" import oldnews with context %}
3{% block body_content %}
4{{ oldnews(2013) }}
5{% endblock body_content %}
diff --git a/template/news/oldnews-2018.html.j2 b/template/news/oldnews-2018.html.j2
new file mode 100644
index 00000000..3056892c
--- /dev/null
+++ b/template/news/oldnews-2018.html.j2
@@ -0,0 +1,5 @@
1{% extends "common/base.j2" %}
2{% from "common/old-news.j2.inc" import oldnews with context %}
3{% block body_content %}
4{{ oldnews(2018) }}
5{% endblock body_content %}
diff --git a/template/news/oldnews-2019.html.j2 b/template/news/oldnews-2019.html.j2
new file mode 100644
index 00000000..23691b6c
--- /dev/null
+++ b/template/news/oldnews-2019.html.j2
@@ -0,0 +1,5 @@
1{% extends "common/base.j2" %}
2{% from "common/old-news.j2.inc" import oldnews with context %}
3{% block body_content %}
4{{ oldnews(2019) }}
5{% endblock body_content %}
diff --git a/template/news/oldnews-2020.html.j2 b/template/news/oldnews-2020.html.j2
new file mode 100644
index 00000000..87030010
--- /dev/null
+++ b/template/news/oldnews-2020.html.j2
@@ -0,0 +1,5 @@
1{% extends "common/base.j2" %}
2{% from "common/old-news.j2.inc" import oldnews with context %}
3{% block body_content %}
4{{ oldnews(2020) }}
5{% endblock body_content %}
diff --git a/template/news/oldnews-2021.html.j2 b/template/news/oldnews-2021.html.j2
new file mode 100644
index 00000000..df4e89d0
--- /dev/null
+++ b/template/news/oldnews-2021.html.j2
@@ -0,0 +1,5 @@
1{% extends "common/base.j2" %}
2{% from "common/old-news.j2.inc" import oldnews with context %}
3{% block body_content %}
4{{ oldnews(2021) }}
5{% endblock body_content %}
diff --git a/template/news/oldnews-2022.html.j2 b/template/news/oldnews-2022.html.j2
new file mode 100644
index 00000000..c01ca3f5
--- /dev/null
+++ b/template/news/oldnews-2022.html.j2
@@ -0,0 +1,5 @@
1{% extends "common/base.j2" %}
2{% from "common/old-news.j2.inc" import oldnews with context %}
3{% block body_content %}
4{{ oldnews(2022) }}
5{% endblock body_content %}
diff --git a/template/news/oldnews-2023.html.j2 b/template/news/oldnews-2023.html.j2
new file mode 100644
index 00000000..1a634262
--- /dev/null
+++ b/template/news/oldnews-2023.html.j2
@@ -0,0 +1,5 @@
1{% extends "common/base.j2" %}
2{% from "common/old-news.j2.inc" import oldnews with context %}
3{% block body_content %}
4{{ oldnews(2023) }}
5{% endblock body_content %}
diff --git a/template/probnat/api.html.j2 b/template/probnat/api.html.j2
new file mode 100644
index 00000000..64267f69
--- /dev/null
+++ b/template/probnat/api.html.j2
@@ -0,0 +1,54 @@
1{% extends "common/base.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<article class="container">
5
6 <header>
7 <h1>{{ _("API Documentation") }}</h1>
8 </header>
9
10 <div class="row">
11 <div class="col-2 d-none d-lg-block"><!-- for large viewports show menu for better orientation -->
12 <nav class="nav subnav position-fixed flex-column border-right" style="position:fixed">
13 <a class="nav-link" href="index.html#idea">{{ _("Project main page") }}</a>
14 </nav>
15 </div>
16 <div class="col">
17
18 <h2>Sync Protocol</h2>
19
20 <section>
21
22 <p>
23 {% trans %}
24 To use the probabilistic NAT traversal library, the peers to be connected must first be synchronized. For that, each peer has to use two API calls.<br/><br/>
25
26 enum GNUNET_GenericReturnValue<br/>
27 GNUNET_is_burst_ready (struct GNUNET_TIME_Relative rtt_avarage,<br/>
28 &emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&ensp; struct GNUNET_BurstSync *burst_sync,<br/>
29 &emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&ensp; GNUNET_SCHEDULER_TaskCallback task,<br/>
30 &emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&ensp; struct GNUNET_StartBurstCls *task_cls)<br/><br/>
31
32 and<br/><br/>
33
34 struct GNUNET_BurstSync *<br/>
35 GNUNET_get_burst_sync_msg (struct GNUNET_TIME_Relative rtt_avarage,<br/>
36 &emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&ensp; enum GNUNET_GenericReturnValue sync_ready)<br/><br/>
37
38
39 The second is to create the synchronisation message which the caller has to send to the other peer.
40 Within GNUnet the Distance Vector DV protocol is used for sending the synchronisation message. Applications which do not want to use the complete GNUnet stack have to use transportion by other means.<br/><br/>
41
42 The API call needs two parameters. The avarage round trip time rtt_avarage has to be provided by the callers application. In GNUnet this information is constantly calculated from messages delivered by DV. Again, applications not using the GNUnet stack have to assemble this information by themself. The round trip time has to be calculated as the time a message needs to arrive at another peer plus the time a response to this message needs to travel back. The messages used to measure this time needs to be send via the same transportion mechanism like the burst synchromisation method. The value used in the API should be an average over several RTTs. rtt_average is measured in microseconds. <br/><br/>
43
44 The second parameter is returned by the first API call and must be temporarily stored to use it in the second. This is the burst synchromisation method, which encapsulates the RTT calculated by the sending peer, and if that peer is ready to sync.<br/><br/>
45
46 The first API call also needs the avarage RTT and the synchronisation message received from another peer. The callback is called, if both peers are ready to synchronize. Therefore the callback should start the burst mode which will finally do the hole punch for NAT traversal. One can find an example in the GNUnet code src/service/transport/gnunet-service-transport.c in the function handle_flow_control. <br/><br/>
47 {% endtrans %}
48 </p>
49 </section>
50 </div>
51 </div>
52
53</article>
54{% endblock body_content %}
diff --git a/template/probnat/index.html.j2 b/template/probnat/index.html.j2
new file mode 100644
index 00000000..39700c83
--- /dev/null
+++ b/template/probnat/index.html.j2
@@ -0,0 +1,240 @@
1{% extends "common/base.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<article class="container">
5
6 <header>
7 <h1>{{ _("NGI Assure project: Probabilistic NAT Traversal") }}</h1>
8 </header>
9
10 <div class="row">
11 <div class="col-2 d-none d-lg-block"><!-- for large viewports show menu for better orientation -->
12 <nav class="nav subnav position-fixed flex-column border-right" style="position:fixed">
13 <a class="nav-link" href="#idea">{{ _("Project motivation") }}</a>
14 <a class="nav-link" href="#milestones">{{ _("Milestones") }}</a>
15 <a class="nav-link" href="#milestone1">{{ _("Milestone 1") }}</a>
16 <a class="nav-link" href="#milestone2">{{ _("Milestone 2") }}</a>
17 <a class="nav-link" href="#milestone3">{{ _("Milestone 3") }}</a>
18 <a class="nav-link" href="#milestone4">{{ _("Milestone 4") }}</a>
19 <a class="nav-link" href="#milestone5">{{ _("Milestone 5") }}</a>
20 <a class="nav-link" href="#milestone6">{{ _("Milestone 6") }}</a>
21 <a class="nav-link" href="#milestone6">{{ _("Milestone 7") }}</a>
22 </nav>
23 </div>
24 <div class="col">
25
26 <section>
27 <p>
28 {% trans %}
29 This project was funded through the NGI Assure Fund, a fund established by <a href="https://nlnet.nl/project/ProbabilisticNAT">NLnet</a>.</br>
30 {% endtrans %}
31 </p>
32 </section>
33
34
35 <h2><a name="idea" class="subnav-anchor"></a>{{ _("Project motivation") }}</h2></br>
36
37 <section>
38 <h4>The Problem</h4></br>
39 <p>
40 {% trans %}
41 For establishing a peer to peer (p2p) network among regular internet users, unhindered connectivity is anything but self-evident. Today consumer devices are often not directly reachable via the internet but quite often are behind a so called NAT delivering only indirect internet connectivity.
42 {% endtrans %}
43 </p></br>
44 </section>
45
46 <section>
47 <h4>NAT Traversal Methods</h4></br>
48 <p>
49 {% trans %}
50 There are several methods to reach peers who are behind a NAT, but there are as many reasons those existing methods might fail. Manual configuration for example, as it is possible for example with home routers, often does not work for mobile devices like mobile phones. A further category of methods is subsumed under the term NAT hole punching. This exploits a behavior of the gateway that keeps the port of an outgoing packet open for a potential response. To make this port known to another peer a third peer is needed who is not behind a NAT. Using this method for a privacy preserving network like GNUnet, this could facilitate eclipse attacks (isolating a peer) which then can be used for deanonymization attacks and cencorship. Also any additional infrastructure needed to provide some kind of functionality has to be maintained by someone, becoming a target and/or point of failure. Therefore this method is not suitable. More sophisticated methods like "Autonomous NAT Traversal (pwnat)" using ICMP fake message, which do not need a third party for the initiation of the connection, are not successful in all circumstances, because this method depend on the behavior of the NAT firewall. All methods have in common that the external IP address of the peer behind the NAT must be known.
51 {% endtrans %}
52 </p></br>
53 </section>
54
55 <section>
56 <h4>Alternative Solution</h4></br>
57 <p>
58 {% trans %}
59 Two peers trying to connect to each other will send out a burst of connection attempts to the other peer on different ports. The sheer vast amount of connections attempts from both side will lead to a high probability that two connection attempts from both peers onto the same port will be at the same time leading to a successful connection between those peers. If two natted peers are using the method to start a burst of connection attempts, this method still needs the global IP of the other peer and a “start signal” to coordinate. In the NGI Assure project <a href="../l2o">L2O</a> we are establishing a backchannel with neighbourhood routing over an ad-hoc distance vector protocol to solve the problem of not directly connected peers. The peers serving as hops to a distant peer which are a direct neighbour of the start or end peer on that path do know the global IP address of the start or end peer. If those two peers like to use the burst method for hole punching the global IP address is known. Via the distance vector protocol we are also able to communicate the "start signal".
60 {% endtrans %}
61 </p></br>
62 </section>
63
64 <section>
65 <h4>Usage</h4></br>
66 <p>
67 {% trans %}
68 We we have encapsulated the functionality in a library. The library can be used under the following requirements:
69 <ul>
70 <li>The caller of the API has to know the external IP address of the other peer.</li>
71 <li>The peers trying to communicate with each other need an indirect way to exchange messages in order to synchronize with each other.</li>
72 </ul>
73
74 These two requirements are not covered by the library. For more details have a look <a href="api.html">here</a>.
75 {% endtrans %}
76 </p></br>
77 </section>
78
79 <h2><a name="milestones" class="subnav-anchor"></a>{{ _("Milestones") }}</h2></br>
80
81 <p>The next milestone to be reached is milestone 1.</p></br>
82
83 <h3><a name="milestone1" class="subnav-anchor"></a>{{ _("Milestone 1 Test Infrastructure") }}</h3></br>
84 <section>
85 <p>
86 {% trans %}
87 Extending the testing framework, which was already designed and implemented for the L2O
88project. <a href="mile1.html">Details</a>
89
90 <ul>
91 <li>Enhance the testing framework with a new kind of component (NAT component).</li>
92 <li>Implement logic to keep ports open used during network translation.</li>
93 <li>Extend the test framework configuration to configure the new components.</li>
94 </ul></br>
95 {% endtrans %}
96 </p>
97 <h4>Deliverable</h4></br>
98 <p>
99 {% trans %}
100 Test case which tests the new testing functionality. Adding documentation.
101 {% endtrans %}
102 </p></br>
103 </section>
104
105 <h3><a name="milestone2" class="subnav-anchor"></a>{{ _("Milestone 2 Synchronization") }}</h3></br>
106 <section>
107 <p>
108 {% trans %}
109 This task is to implement the protocol that is doing the signaling for synchronizing two peers
110which do like to connect to each other. <a href="mile2.html">Details</a>
111 <ul>
112 <li>Two peers which got connected via DV signaling each other being behind a NAT.</li>
113 <li>Learning the external IP address+port from already connected peers, exchange with the
114peers that want to connect.</li>
115 <li>Set a common start time. One peer is selected to be leading (comparing peer ids like it is
116done in CADET)</li>
117 </ul>
118 {% endtrans %}
119 </p></br>
120 <h4>Deliverable</h4></br>
121 <p>
122 {% trans %}
123 Deliverable of this milestone is integrating the protocol implementation into the GNUnet
124stack, a test case which tests that two peers successfully exchange the messages of the
125implemented protocol until the condition is reached that both nodes are ready for the burst
126mode. Additionally there will be a protocol documentation.
127 {% endtrans %}
128 </p></br>
129 </section>
130
131 <h3><a name="milestone3" class="subnav-anchor"></a>{{ _("Milestone 3 Burst Protocol") }}</h3></br>
132 <section>
133 <p>
134 {% trans %}
135 Burst to establish connectivity (IP_RAW, SYN send for TCP; normal for UDP). A burst of
136synchronized (same ports on each peer) connection attempts on all available ports will lead to a
137high probability for a successful connection.The connection in the TCP case is not final, because
138the TCP connection is only done in the user space.
139 {% endtrans %}
140 </p></br>
141 <h4>Deliverable</h4>
142 <p>
143 {% trans %}
144 The protocol implementation will be integrated into the GNUnet stack, one Test case will
145test two peers are finaly connected (UDP case), another test case for TCP tests if both
146peers end up at the same port and the protocol will be documented.
147 {% endtrans %}
148 </p></br>
149 </section>
150
151 <h3><a name="milestone4" class="subnav-anchor"></a>{{ _("Milestone 4 TCP Repair") }}</h3></br>
152 <section>
153 <p>
154 {% trans %}
155 For the TCP case the connection was established sending packages from user space using raw
156sockets. To let the kernel know about the TCP connection we will use the “repair mode” of the
157setsockopt() system call.
158 {% endtrans %}
159 </p></br>
160 <h4>Deliverable</h4></br>
161 <p>
162 {% trans %}
163 Integration into the GNUnet stack and a test case testing two peers are finaly (kernel TCP
164socket) connected.
165 {% endtrans %}
166 </p></br>
167 </section>
168
169 <h3><a name="milestone5" class="subnav-anchor"></a>{{ _("Milestone 5 Privilege Minimization") }}</h3><br/>
170 <section>
171 <p>
172 {% trans %}
173 Privilege minimization, using SUID/SGID helpers with required capabilities. We need privileged
174access to system resources for some parts of the protocol, e.g. the TCP repair mode. This task
175will implement helper executables which are doing this privileged access, to be used by other
176components not having special privileges. (see § 2.2.1 Access Control, The GNUnet System,
177https://grothoff.org/christian/habil.pdf)
178 {% endtrans %}
179 </p><br/>
180 <h4>Deliverable</h4><br/>
181 <p>
182 {% trans %}
183 Helper executables and cli applications using the helpers. Integration into the GNUnet
184stack. Man pages for the cli applications. First release of all the implementation.
185 {% endtrans %}
186 </p><br/>
187 </section>
188
189 <h3><a name="milestone6" class="subnav-anchor"></a>{{ _("Milestone 6 Android Test Infrastructure") }}</h3><br/>
190 <section>
191 <p>
192 {% trans %}
193 In this milestone the test framework will be enhanced to run a headless android studio emulator on a namespace node. With this emulator an android device running on that node shall be emulated. Two devices running on different nodes should reach each other via the test framework network. For doing the network connection an app should run on each device. This app should do the networking with a small c library. With this c library we like to test if networking and file access is possible with a c library running using the NDK of Android.
194 {% endtrans %}
195 </p><br/>
196 <h4>Deliverable</h4><br/>
197 <p>
198 {% trans %}
199 The deliverable of this milestone is twofold: the scripts for automation and the automated tests themselves, and a report on the outcome of these tests. If the test case starting an Android app on two nodes doing network communication between those two apps and each app accessing its own filesystem will not work as expected, the task includes an overview of potential approaches for achieving the desired outcomes in other ways.
200 {% endtrans %}
201 </p><br/>
202 </section>
203
204 <h3><a name="milestone6" class="subnav-anchor"></a>{{ _("Milestone 7 GNUnet event loop on Android") }}</h3><br/>
205 <section>
206 <p>
207 {% trans %}
208 The c library should also start the GNUnet event loop. Therefore the library will be enhanced by a minimal part of the GNUnet stack to start the event loop. The testing code will be enhanced to use the event loop.
209 {% endtrans %}
210 </p><br/>
211 <h4>Deliverable</h4><br/>
212 <p>
213 {% trans %}
214 The deliverable of this milestone is twofold: the scripts for automation and the automated tests themselves, and a report on the outcome of these tests. If the test case testing the same functionality as in milestone 6, but using the GNUnet event loop, will not work as expected, the task includes an overview of potential approaches for achieving the desired outcomes in other ways.
215 {% endtrans %}
216 </p><br/>
217 </section>
218
219 <h3><a name="milestone6" class="subnav-anchor"></a>{{ _("Milestone 8 Enhance GNUnet stack on Android") }}</h3><br/>
220 <section>
221 <p>
222 {% trans %}
223 The working test cases of milestone 6 and 7 are prerequisites to tackle this milestone! The library will be enhanced to incorporate the parts of the GNUnet stack necessary to run the test case implemented in the milestones 1 -4.
224 {% endtrans %}
225 </p><br/>
226 <h4>Deliverable</h4><br/>
227 <p>
228 {% trans %}
229 Test case testing the same functionality as in milestone 1 - 4 running on Android.
230 {% endtrans %}
231 </p><br/>
232 </section>
233
234
235
236 </div>
237 </div>
238
239</article>
240{% endblock body_content %}
diff --git a/template/probnat/mile1.html.j2 b/template/probnat/mile1.html.j2
new file mode 100644
index 00000000..a06f1d6d
--- /dev/null
+++ b/template/probnat/mile1.html.j2
@@ -0,0 +1,84 @@
1{% extends "common/base.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<article class="container">
5
6 <header>
7 <h1>{{ _("NGI Assure project: Probabilistic NAT Traversal") }}</h1>
8 </header>
9
10 <div class="row">
11 <div class="col-2 d-none d-lg-block"><!-- for large viewports show menu for better orientation -->
12 <nav class="nav subnav position-fixed flex-column border-right" style="position:fixed">
13 <a class="nav-link" href="index.html#idea">{{ _("Project main page") }}</a>
14 </nav>
15 </div>
16 <div class="col">
17
18 <h2>Implementation details milestone 1</h2>
19
20 <section>
21 <h4><a name="netjail" class="subnav-anchor"></a>{{ _("See revision <a href=\"https://git.gnunet.org/gnunet.git/commit/?h=dev/t3ss/probnatt&id=4b2303a35baa05a966543f036b43bb0cfaf22ab5\">4b2303a</a> on branch dev/t3ss/probnatt") }}</h4>
22 <p>
23 {% trans %}
24 <table width="100%">
25 <tr>
26 <td width="40%" style="vertical-align: top;">src/service/transport/nat_router.sh</td><td width="60%" style="vertical-align: top;">Test framework router component to fake kernel behavior to keep a port of an outgoing connection open.</td>
27 <tr>
28 <td></td><td> </td>
29 </tr>
30 <tr>
31 <td width="40%" style="vertical-align: top;">scripts/netjail/nat_node_test.sh</td><td width="60%" style="vertical-align: top;">Test script to just send test messages to another node to open up a port.</td>
32 </tr>
33 <tr>
34 <td width="40%" style="vertical-align: top;">scripts/netjail/getmsg.sh</td><td width="60%" style="vertical-align: top;">Test script to receive test messages from nat_node_test.sh.</td>
35 <tr>
36 <td></td><td> </td>
37 </tr>
38 <tr>
39 <td width="40%" style="vertical-align: top;">test_transport_plugin_cmd_nat_mapping.c</td><td width="60%" style="vertical-align: top;">Testcase to start the script which sends test messages to open up ports.</td>
40 <tr>
41 <td></td><td> </td>
42 </tr>
43 <tr>
44 <td width="40%" style="vertical-align: top;">test_transport_nat_mapping_topo.conf</td><td width="60%" style="vertical-align: top;">Configuration for the test case.</td>
45 <tr>
46 <td></td><td> </td>
47 </tr>
48 <tr>
49 <td width="40%" style="vertical-align: top;">test_transport_nat_mapping.sh</td><td width="60%" style="vertical-align: top;">Script to start the test case.</td>
50 <tr>
51 <td></td><td> </td>
52 </tr>
53 <tr>
54 <td width="40%" style="vertical-align: top;">scripts/Makefile.am</td><td width="60%" style="vertical-align: top;">Added nat_node_test.sh and getmsg.sh.</td>
55 <tr>
56 <td></td><td> </td>
57 </tr>
58 <tr>
59 <td width="40%" style="vertical-align: top;">scripts/netjail/netjail_start.sh</td><td width="60%" style="vertical-align: top;">Added node nummber parameter to node start script, and make the script run in background.</td>
60 <tr>
61 <td></td><td> </td>
62 </tr>
63 <tr>
64 <td width="40%" style="vertical-align: top;">scripts/netjail/netjail_stop.sh</td><td width="60%" style="vertical-align: top;">Added node nummber parameter to node stop script.</td>
65 <tr>
66 <td></td><td> </td>
67 </tr>
68 <tr>
69 <td width="40%" style="vertical-align: top;">src/service/testing/testing_api_cmd_exec_bash_script.c</td><td width="60%" style="vertical-align: top;">Bugfixing the script that was initially implemented to do explorative testing of transport integrsation, and which is now also used to start the script which sends test messages.</td>
70 </tr>
71 <tr>
72 <td width="40%" style="vertical-align: top;">src/service/transport/Makefile.am</td><td width="60%" style="vertical-align: top;">Added test_transport_plugin_cmd_nat_mapping.c</td>
73 </tr>
74 </table>
75 {% endtrans %}
76 </p>
77 </section>
78
79
80 </div>
81 </div>
82
83</article>
84{% endblock body_content %}
diff --git a/template/probnat/mile2.html.j2 b/template/probnat/mile2.html.j2
new file mode 100644
index 00000000..2d76796a
--- /dev/null
+++ b/template/probnat/mile2.html.j2
@@ -0,0 +1,105 @@
1{% extends "common/base.j2" %}
2{% block body_content %}
3<main id="maincontent">
4<article class="container">
5
6 <header>
7 <h1>{{ _("NGI Assure project: Probabilistic NAT Traversal") }}</h1>
8 </header>
9
10 <div class="row">
11 <div class="col-2 d-none d-lg-block"><!-- for large viewports show menu for better orientation -->
12 <nav class="nav subnav position-fixed flex-column border-right" style="position:fixed">
13 <a class="nav-link" href="index.html#idea">{{ _("Project main page") }}</a>
14 </nav>
15 </div>
16 <div class="col">
17
18 <h2>Implementation details milestone 2</h2>
19
20 <section>
21 <h4><a name="netjail" class="subnav-anchor"></a>{{ _("See revision <a href=\"https://git.gnunet.org/gnunet.git/commit/?h=dev/t3ss/probnatt&id=d0c59f236c93e43a21f9ef0e14e54d5f8bb952bd\">d0c59f2</a>, <a href=\"https://git.gnunet.org/gnunet.git/commit/?h=dev/t3ss/probnatt&id=16b5da18df2d725bbcaa2e6efa05c793492ab445\">16b5da1</a>, <a href=\"https://git.gnunet.org/gnunet.git/commit/?h=dev/t3ss/probnatt&id=c1ef824f95612bea94a28563151efa99e18f47f6\">c1ef824</a> and <a href=\"https://git.gnunet.org/gnunet.git/commit/?h=dev/t3ss/probnatt&id=8de6f974d0fe210e03e891b365613e0bc4a2ceea\">8de6f97</a> on branch dev/t3ss/probnatt") }}</h4>
22 <p>
23 {% trans %}
24 <table width="100%">
25 <tr>
26 <td width="40%" style="vertical-align: top;">scripts/testing-ng/emu_run.sh</td><td width="60%" style="vertical-align: top;">Script to run several cli commands to start and configure the virtual Android devices.</td>
27 <tr>
28 <td></td><td> </td>
29 </tr>
30 <tr>
31 <td width="40%" style="vertical-align: top;">scripts/Makefile.am</td><td width="60%" style="vertical-align: top;">Added emu_run.sh script to makefile.</td>
32 </tr>
33 <tr>
34 <td></td><td> </td>
35 </tr>
36 <tr>
37 <td width="40%" style="vertical-align: top;">src/service/core/test_core_plugin_cmd_run_emu.c</td><td width="60%" style="vertical-align: top;">Test case to run a setup with two natted Android devices in separate subnetworks and one global reachable node.</td>
38 <tr>
39 <td></td><td> </td>
40 </tr>
41 <tr>
42 <td width="40%" style="vertical-align: top;">src/service/core/Makefile.am</td><td width="60%" style="vertical-align: top;">Adding test case to makefile.</td>
43 <tr>
44 <td></td><td> </td>
45 </tr>
46 <tr>
47 <td width="40%" style="vertical-align: top;">src/service/core/test_core_run_emu_topo.conf</td><td width="60%" style="vertical-align: top;">Configuration for the test case.</td>
48 <tr>
49 <tr>
50 <td></td><td> </td>
51 </tr>
52 <tr>
53 <td width="40%" style="vertical-align: top;">src/service/transport/gnunet-service-transport.c</td><td width="60%" style="vertical-align: top;">Added request to ask arm service for services configured to start and checking if they have started. Added check in log file to se if communicators already connected with transport service.</td>
54 <tr>
55 <td></td><td> </td>
56 </tr>
57 <tr>
58 <td width="40%" style="vertical-align: top;">include/gnunet_transport_testing_ng_lib.h</td><td width="60%" style="vertical-align: top;">Changes in header file for check of running services and connected communicaors.</td>
59 </tr>
60 <tr>
61 <td></td><td> </td>
62 </tr>
63 <tr>
64 <td width="40%" style="vertical-align: top;">src/service/transport/gnunet-service-transport.c</td><td width="60%" style="vertical-align: top;">Added functionality to synchronize two peers by comparing the measured RTT of both peers. This code was moved to the util library. For use of that library have a look <a href="api.html">here</a></td>
65 <tr>
66 <td></td><td> </td>
67 </tr>
68 <tr>
69 <td width="40%" style="vertical-align: top;">src/service/core/Makefile.am</td><td width="60%" style="vertical-align: top;">Adding test case to makefile.</td>
70 <tr>
71 <td></td><td> </td>
72 </tr>
73 <tr>
74 <td width="40%" style="vertical-align: top;">test_core_just_run_topo.conf</td><td width="60%" style="vertical-align: top;">Change the configuration file to just run peers to manually test to have a setup with two natted peers in separate subnetworks and one global reachable peer.</td>
75 <tr>
76 <tr>
77 <td></td><td> </td>
78 </tr>
79 <tr>
80 <td width="40%" style="vertical-align: top;">src/include/gnunet_protocols.h</td><td width="60%" style="vertical-align: top;">Added the burst sync message to the header file.</td>
81 <tr>
82 <tr>
83 <td></td><td> </td>
84 </tr>
85 <tr>
86 <td width="40%" style="vertical-align: top;">src/include/gnunet_util_lib.h</td><td width="60%" style="vertical-align: top;">Added the new API to the util library.</td>
87 <tr>
88 <tr>
89 <td></td><td> </td>
90 </tr>
91 <tr>
92 <td width="40%" style="vertical-align: top;">src/lib/util/Makefile.am</td><td width="60%" style="vertical-align: top;">Added the new API to the Makefile.</td>
93 <tr>
94 <tr>
95 <td></td><td> </td>
96 </tr>
97 </table>
98 {% endtrans %}
99 </p>
100 </section>
101 </div>
102 </div>
103
104</article>
105{% endblock body_content %} \ No newline at end of file
diff --git a/template/reclaim/faq.html.j2 b/template/reclaim/faq.html.j2
new file mode 100644
index 00000000..b49b8f6c
--- /dev/null
+++ b/template/reclaim/faq.html.j2
@@ -0,0 +1,26 @@
1{% extends "common/base.j2" %}
2{% block body_content %}
3<div class="m-3">
4 <a class="mt-2 mb-2" href="{{ url_localized('reclaim/index.html') }}">reclaimID</a> / FAQ
5</div>
6<h2 class="text-center">{{ _("Frequently asked questions") }}</h2>
7<br/>
8<div class="container">
9 <ul class="fa-ul">
10 <li class="mt-4"><i class="fa-li fas fa-question-circle"></i> <b>How is re:claimID different from</b> <i>&lt;insert other identity provider service here&gt; ?</i></li>
11 <li><i class="fa-li fas fa-comment"></i> Unlike most other identity provider services, re:claimID is not operated by a single service provider or even a federated consortium of service providers. Instead, it is a fully decentralised service operated implicitly by its users. Consequently, large-scale data monetisation, mass-surveillance and other (ab)use of personal data is inherently mitigated.</li>
12 <li class="mt-4"><i class="fa-li fas fa-question-circle"></i> <b>How much does re:claimID cost?</b></li>
13 <li><i class="fa-li fas fa-comment"></i> re:claimID is Free Software. We argue that in order for an identity system to be a credible solution for self-sovereign citizens to exercise their right to digital self determination, open and free software as well as services are indispensible.</li>
14 <li class="mt-4"><i class="fa-li fas fa-question-circle"></i> <b>How does re:claimID work?</b></li>
15 <li><i class="fa-li fas fa-comment"></i> re:claimID uses the GNU Name System as identity and attribute directory service. In order to allow the user to enforce access control decisions, we use a cryptographic access control layer. However, the user is not required to manage any cryptographic keys or manage zones in a namespace. This is done under the hood by re:claimID.</li>
16 <li class="mt-4"><i class="fa-li fas fa-question-circle"></i> <b>How does a website know the attribute data share via re:claimID is correct?</b></li>
17 <li><i class="fa-li fas fa-comment"></i> Short answer: It doesn't.
18 Long answer: Identities are initially self-asserted by the user. re:claimID could, however, also be used to share third party attested attributes (e.g. X.509 certificates). Further, have integrated <a href="https://github.com/Fraunhofer-AISEC/libpabc">Privacy-ABCs</a> for <a href="{{ url_localized('news/2021-05-DISSENS.html') }}">this use case</a>.</li>
19 <li class="mt-4"><i class="fa-li fas fa-question-circle"></i> <b>Who is behind re:claimID?</b></li>
20 <li><i class="fa-li fas fa-comment"></i> re:claimID was initially developed at <a href="https://aisec.fraunhofer.de">Fraunhofer AISEC</a> and is part of GNUnet.</li>
21 <li class="mt-4"><i class="fa-li fas fa-question-circle"></i> <b>I found a bug!</b></li>
22 <li><i class="fa-li fas fa-comment"></i> We aim to continuously develop and improve re:claimID. Help us by <a href="https://bugs.gnunet.org">reporting any issues you encounter</a>.</li>
23 </ul>
24
25</div>
26{% endblock body_content %}
diff --git a/template/reclaim/idps.html.j2 b/template/reclaim/idps.html.j2
new file mode 100644
index 00000000..5101b0d7
--- /dev/null
+++ b/template/reclaim/idps.html.j2
@@ -0,0 +1,30 @@
1{% extends "common/base.j2" %}
2{% block body_content %}
3<div class="m-3">
4 <a class="mt-2 mb-2" href="{{ url_localized('reclaim/index.html') }}">reclaimID</a> / IdPs
5</div>
6<h2 class="text-center">{{ _("For IdPs") }}</h2>
7<br/>
8<div class="container">
9 <h2><b>Step 1:</b> OpenID Service</h2>
10 As an identity provider and credential issuer, you need to setup an OpenID Connect server. There are many servers out there. For a list of servers, check out the <a href="https://openid.net/developers/certified/">OpenID website</a>.
11 One important caveat is that the server should allow you to issue user information inside the signed "ID Token".
12 The configuration regarding what user information goes into the token is of course completely under your discretion.
13
14 <h2 class="mt-5"><b>Step 2:</b> Configuring the reclaimID client</h2>
15 reclaimID uses special client values which must be registered at the OpenID server. The values are:
16 <ul>
17 <li><b>Client ID</b>: reclaimid</li>
18 <li><b>Client secret</b>: none (public client)</li>
19 <li><b>Redirect URI</b>: https://ui.reclaim</li>
20 <li><b>Grant type</b>: Authorization code</li>
21 <li><b>PKCE</b>: enabled (Optional but highly recommended)</li>
22 </ul>
23
24 <h2 class="mt-5"><b>Step 3:</b> Configuring a webfinger</h2>
25 You must support the webfinger-based <a href="https://openid.net/specs/openid-connect-discovery-1_0.html">OpenID Connect service discovery</a>.
26 Whenever the user configures an email address for an identity, reclaimID will try to discover the issuing identity provider through the OIDC Discovery protocol. This includes a <a href="https://openid.net/specs/openid-connect-discovery-1_0.html#EmailSyntax">request to the authority part of the email address</a>.
27
28 The response should point reclaimID to the actual OpenID Connect service <a href="https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata">serving the issuer medatata</a>. reclaimID will try to request all scopes which are listed in the metadata, but does not expect all of them to be granted.
29</div>
30{% endblock body_content %}
diff --git a/template/reclaim/index.html.j2 b/template/reclaim/index.html.j2
new file mode 100644
index 00000000..c52b9ad6
--- /dev/null
+++ b/template/reclaim/index.html.j2
@@ -0,0 +1,102 @@
1{% extends "common/base.j2" %}
2{% block body_content %}
3<div class="container">
4 <div class="row">
5 <div class="container text-center">
6 <img style="width:50%" src="{{ url_static('images/reclaim_logo.png') }}" alt="reclaimID" />
7 <br/>
8 <p class="mt-4">{{ _("Self-sovereign, Decentralised Identity Management and Personal Data Sharing") }}</p>
9 </div>
10 </div>
11</div>
12<div class="container-fluid greybox">
13 <div class="container">
14 <div class="row">
15 <div class="col-lg-2"></div>
16 <div class="col-lg-6">
17 <section>
18 <h2>{{ _("Self-sovereign") }}</h2>
19 <p>
20 {% trans %}
21 You manage your identities and attributes locally on your computer. No need to trust a third party service with your data.
22 {% endtrans %}
23 </p>
24 </section>
25 </div>
26 <div class="col-lg-3 homepageicon">
27 <span class="fas fa-fist-raised"></span>
28 </div>
29 </div>
30 </div>
31</div>
32<div class="container-fluid">
33 <div class="container">
34 <div class="row">
35 <div class="col-lg-2 homepageicon">
36 <span class="fas fa-project-diagram"></span>
37 </div>
38 <div class="col-lg-6">
39 <section>
40 <h2>{{ _("Decentralized") }}</h2>
41 <p>
42 {% trans %}
43 You can share your identity attributes securely over a decentralized name system. This allows your friends to access your shared data without the need of a trusted third party.
44 {% endtrans %}
45 </p>
46 </section>
47 </div>
48 </div>
49 </div>
50</div>
51
52<div class="container-fluid greybox">
53 <div class="container">
54 <div class="row">
55 <div class="col-lg-2"></div>
56 <div class="col-lg-6">
57 <section>
58 <h2>{{ _("Standard-compliant") }}</h2>
59 <p>
60 {% trans %}
61 You can use OpenID Connect to integrate reclaim in your web sites.
62 {% endtrans %}
63 </p>
64 </section>
65 </div>
66 <div class="col-lg-3 homepageicon">
67 <span class="fab fa-openid"></span>
68 </div>
69 </div>
70 </div>
71</div>
72<hr/>
73<div class="container-fluid">
74 <div class="container">
75 <div class="row">
76 <div class="col-md-4 mt-1">
77 <a class="frontpage btn btn-primary btn-lg" href="{{ url_localized('reclaim/tech.html') }}"><i class="fas fa-cubes"></i><br/>{{ _("Technology") }}</a>
78 </div>
79 <div class="col-md-4 mt-1">
80 <a class="frontpage btn btn-primary btn-lg" href="{{ url_localized('reclaim/motivation.html') }}"><i class="fas fa-fire"></i><br/>{{ _("Motivation") }}</a>
81 </div>
82 <div class="col-md-4 mt-1">
83 <a class="frontpage btn btn-primary btn-lg" href="{{ url_localized('reclaim/faq.html') }}"><i class="fas fa-question"></i><br/>{{ _("FAQ") }}</a>
84 </div>
85
86 </div>
87 <div class="row">
88 <div class="col-md-4 mt-1">
89 <a class="frontpage btn btn-primary btn-lg" href="{{ url_localized('reclaim/users.html') }}"><i class="fas fa-user"></i><br/>{{ _("For users") }}</a>
90 </div>
91 <div class="col-md-4 mt-1">
92 <a class="frontpage btn btn-primary btn-lg" href="{{ url_localized('reclaim/websites.html') }}"><i class="fas fa-globe"></i><br/>{{ _("For websites") }}</a>
93 </div>
94 <div class="col-md-4 mt-1">
95 <a class="frontpage btn btn-primary btn-lg" href="{{ url_localized('reclaim/idps.html') }}"><i class="fas fa-users"></i><br/>{{ _("For IdPs") }}</a>
96 </div>
97 </div>
98 </div>
99</div>
100
101
102{% endblock body_content %}
diff --git a/template/reclaim/motivation.html.j2 b/template/reclaim/motivation.html.j2
new file mode 100644
index 00000000..880c504e
--- /dev/null
+++ b/template/reclaim/motivation.html.j2
@@ -0,0 +1,34 @@
1{% extends "common/base.j2" %}
2{% block body_content %}
3<div class="m-3">
4 <a class="mt-2 mb-2" href="{{ url_localized('reclaim/index.html') }}">reclaimID</a> / Motivation
5</div>
6<h2 class="text-center">{{ _("Motivation") }}</h2>
7<br/>
8<div class="container">
9<p>
10Today, users are often required to share personal data, like email addresses, to use services on the web. As part of normal service operation, such as notifications or billing, services require access to -- ideally fresh and correct -- user data.
11Sharing attributes in the Web today is often done via centralized service providers to reduce data redundancy and to give services access to current, up-to-date information even if the user is currently offline.
12Abuse of this power is theoretically limited by local laws and regulations.
13But, the past has shown that even well-meaning identity providers struggle to keep user data safe as they become major targets for hackers and nation state actors while striving for monetizing anonymized statistics from these data.
14We advocate for a new, decentralized way for users to manage their identities for the following reasons:
15</p>
16<ul class="fa-ul">
17 <li><i class="fa-li fas fa-caret-right"></i> The current state of omniscient identity providers is a significant threat to the users' privacy.</li>
18 <li><i class="fa-li fas fa-caret-right"></i> Users must completely trust the service provider with respect to protecting the integrity and confidentiality of their identity in their interest.</li>
19 <li><i class="fa-li fas fa-caret-right"></i> The service provider itself is facing substantial liability risks given the responsibility of securely managing potentially sensitive personal data of millions of users.</li>
20</ul>
21
22<p>re:claimID is built as a service on top of the peer-to-peer framework <a href="https://gnunet.org">GNUnet</a>.<br/>
23It emerged from research conducted by the research group "Secure
24Applications and Services" at the <a href="https://www.aisec.fraunhofer.de/de/fields-of-expertise/projekte/reclaim.html">Fraunhofer AISEC</a> research institute.<br/>
25A scientific, peer-reviewed paper on the theoretical foundations of re:claimID
26was published at <a href="https://ieeexplore.ieee.org/document/8456003">TrustCom 2018</a>
27(<a href="https://arxiv.org/abs/1805.06253v1">Arxiv</a>).<br/> re:claimID is
28primarily developed in the
29<a href="https://git.gnunet.org/gnunet.git/tree/src/reclaim">GNUnet source tree</a>.
30Accompanying tools and sources can be found in the
31<a href="https://git.gnunet.org/">Git repositories</a>.
32</p>
33</div>
34{% endblock body_content %}
diff --git a/template/reclaim/tech.html.j2 b/template/reclaim/tech.html.j2
new file mode 100644
index 00000000..4223cf5b
--- /dev/null
+++ b/template/reclaim/tech.html.j2
@@ -0,0 +1,115 @@
1{% extends "common/base.j2" %}
2{% block body_content %}
3<div class="m-3">
4 <a class="mt-2 mb-2" href="{{ url_localized('reclaim/index.html') }}">reclaimID</a> / Technology
5</div>
6<h2 class="text-center">{{ _("Overview") }}</h2>
7<div style="text-align:center">
8 <img style="width:50%" src="{{ url_static('images/reclaim/reclaim_eq.png') }}"/>
9</div>
10<br/>
11<div class="container">
12 <div class="row">
13 <div class="col-lg-6">
14 <h3>
15 {{ _("Decentralised identity directory") }}
16 </h3>
17 <p>
18 {% trans %}
19 The decentralised GNU Name System (GNS) gives users full and exclusive authority over their attributes by sharing them over user-owned namespaces.
20 {% endtrans %}
21 </p>
22 </div>
23 <div class="col-lg-6">
24 <div>
25 <h3>
26 {{ _("Cryptographic access control") }}
27 </h3>
28 </div>
29 <p>
30 {% trans %}
31Users regularly publish fresh, up-to-date attributes which can be retrieved and
32read only by authorized relying parties parties without direct user interaction -- even if the user is offline!
33 {% endtrans %}
34 </p>
35 </div>
36 </div>
37</div>
38<hr/>
39<h2 class="text-center">{{ _("Principles") }}</h2>
40<div class="container-fluid greybox">
41 <div class="container">
42 <div class="row">
43 <div class="col-lg-1"></div>
44 <div class="col-lg-6">
45 <section>
46 <h2>{{ _("Identity and attribute management") }}</h2>
47 <p>
48 {% trans %}
49 Users regularly publish fresh, up-to-date attributes which can be retrieved by requesting parties without direct user interaction -- even if the user is offline!
50 Access to attributes is controlled through an ecryption based access
51 control layer.
52 {% endtrans %}
53 </p>
54 </section>
55 </div>
56 <div class="col-lg-5 homepageicon">
57 <a href="{{ url_static('images/reclaim/Reclaim-2.png') }}"><img style="width:100%" src="{{ url_static('images/reclaim/Reclaim-2.png') }}"/></a>
58 </div>
59 </div>
60 </div>
61</div>
62<div class="container-fluid">
63 <div class="container">
64 <div class="row">
65 <div class="col-lg-5 homepageicon">
66 <a href="{{ url_static('images/reclaim/Reclaim-3.png') }}"><img style="width:100%" src="{{ url_static('images/reclaim/Reclaim-3.png') }}"/></a>
67
68 </div>
69 <div class="col-lg-6">
70 <section>
71 <h2>{{ _("Authorization") }}</h2>
72 <p>
73 {% trans %}
74 To access attributes, requesting parties request authorization from the
75 user thrugh the use of OpenID Connect.
76 If access is granted, the relying party is given the necessary decryption
77 key material.
78 The user may at any time revoke this access or modify the authorization decision.
79 {% endtrans %}
80 </p>
81 </section>
82 </div>
83 </div>
84</div>
85
86<div class="container-fluid greybox">
87 <div class="container">
88 <div class="row">
89 <div class="col-lg-1"></div>
90 <div class="col-lg-6">
91 <section>
92 <h2>{{ _("Attribute retrieval") }}</h2>
93 <p>
94 {% trans %}
95 Relying parties retrieve encrypted identity data from the decentralised
96 directory.
97 It is able to decrypt all those attributes that the user has authorized
98 it to access using the respective key.
99 {% endtrans %}
100 </p>
101 </section>
102 </div>
103 <div class="col-lg-5 homepageicon">
104 <a href="{{ url_static('images/reclaim/Reclaim-4.png') }}"><img style="width:100%" src="{{ url_static('images/reclaim/Reclaim-4.png') }}"/></a>
105 </div>
106 </div>
107 </div>
108</div>
109<hr/>
110<h2 style="text-align:center" class="mt-2">Videos and Talks</h2>
111<ul class="fa-ul">
112 <li><i class="fa-li fas fa-caret-right"></i> <a href="https://youtu.be/PlSX-o36Wus?t=5371">IETF Meeting #104; Privacy Enhancements and Assessments Research Group - March 2019</a> (<a href="https://git.gnunet.org/presentations.git/plain/IETF104/slides-104-pearg-reclaim-00.pdf">Slides</a>)</li>
113 <li><i class="fa-li fas fa-caret-right"></i> <a href="https://media.ccc.de/v/ds19-10383-re_claimid">Datenspuren 2019 - September 2019 (German)</a> (<a href="https://git.gnunet.org/presentations.git/plain/datenspuren2019/datenspuren2019.pdf">Slides</a>, English)</li>
114</ul>
115{% endblock body_content %}
diff --git a/template/reclaim/users.html.j2 b/template/reclaim/users.html.j2
new file mode 100644
index 00000000..cac0a997
--- /dev/null
+++ b/template/reclaim/users.html.j2
@@ -0,0 +1,40 @@
1{% extends "common/base.j2" %}
2{% block body_content %}
3<div class="m-3">
4 <a class="mt-2 mb-2" href="{{ url_localized('reclaim/index.html') }}">reclaimID</a> / Users
5</div>
6<h2 class="text-center">{{ _("For users") }}</h2>
7<br/>
8<div class="container">
9 <h2><b>Step 1:</b> Installation</h2>
10 <p>
11 Please use the <a href="{{ url_localized('install.html') }}">GNUnet installation guides</a>.
12 </p>
13 <h2 class="mt-5"><b>Step 2:</b> Browser plugin</h2>
14
15 <p>You also need to install a browser plugin:</p>
16 <div class="centering">
17 <a class="btn btn-primary" target="_blank" rel="noopener noreferrer"
18 href="https://addons.mozilla.org/addon/reclaimid/"><i class="fab fa-firefox"></i> Mozilla Firefox</a>
19 <a class="btn btn-primary" target="_blank" rel="noopener noreferrer"
20 href="https://chrome.google.com/webstore/detail/reclaimid/jiogompmdejcnacmlnjhnaicgkefcfll"><i class="fab fa-chrome"></i> Chrome / Chromium</a>
21 </div>
22 <br/>
23 <h2 class="mt-5"><b>Step 3:</b> Creating your first identity</h2>
24 <p>Almost there. Now try adding a new identity at <a href="https://ui.reclaim">your local re:claimID instance</a> and add some attributes to it.
25 <br/>
26
27 <!--<h2 class="mt-5">Websites supporting re:claimID</h2>
28 <p>To test a login with one of your re:claimID identities, you can go to one of the websites supporting it:</p>
29 <ul>
30 <li><a href="https://demo.reclaim-identity.io">Our demo messaging board</a> (<a href="https://gitlab.com/reclaimid/demo">Source</a>)</li>
31 <li><a href="https://eusec.clouditor.io">Clouditor EUSEC project page</a></li>
32 </ul>-->
33
34
35 <h2 class="mt-5">Troubleshooting</h2>
36 In case you encounter any problems, please check for <a href="https://bugs.gnunet.org">known issues and report bugs to help us improve re:claimID!</a>
37
38
39</div>
40{% endblock body_content %}
diff --git a/template/reclaim/websites.html.j2 b/template/reclaim/websites.html.j2
new file mode 100644
index 00000000..9966ca1d
--- /dev/null
+++ b/template/reclaim/websites.html.j2
@@ -0,0 +1,44 @@
1{% extends "common/base.j2" %}
2{% block body_content %}
3<div class="m-3">
4 <a class="mt-2 mb-2" href="{{ url_localized('reclaim/index.html') }}">reclaimID</a> / Websites
5</div>
6<h2 class="text-center">{{ _("For websites") }}</h2>
7<div class="container">
8 <h2><b>Step 1:</b> Installation</h2>
9 <p>
10 Please use the <a href="{{ url_localized('install.html') }}">GNUnet installation guides</a>.
11 </p>
12 <h2 class="mt-5"><b>Step 2:</b> Registering an OpenID Connect client</h2>
13 <p>The easiest way to manage OpenID Connect client is through our CLI tool:</p>
14 <code class="block">$ gem install reclaim-oidc</code>
15 <p>To register an OpenID Connect client, execute:</p>
16 <code class="block">$ reclaim-oidc --add --client-name myclient --redirect-uri https://mywebsite.com/oidc_cb --description "My Client"</code>
17 <p>You can list all registered clients and your local OpenID Connect metadata required to initiate an authorization code flow by executing:</p>
18 <code class="block">$ reclaim-oidc --list </code>
19 <p>The response will look like this</p>
20 <code class="block">OpenID Connect Provider Information:<br/>
21 ------------------------------------<br/>
22 Authorize Endpoint: http://localhost:7776/openid/authorize<br/>
23 Token Endpoint: http://localhost:7776/openid/token<br/>
24 JSON-Web-Token Algorithm: HS512<br/>
25 JSON-Web-Token key: secret<br/>
26 Example Authorization Redirect:<br/>
27 https://api.reclaim/openid/authorize?client_id=&lt;client_id&gt;&amp;redirect_uri=&lt;redirect_uri&gt;&amp;response_type=code&amp;scope=email%20full_name&amp;nonce=1234<br/>
28 <br/>
29 Registered Clients:<br/>
30 -------------------<br/>
31 name: myclient<br/>
32 client_id: &lt;client_id&gt;<br/>
33 client_secret: &lt;client_secret&gt;<br/>
34 description: My Client<br/>
35 redirect_uri: https://mywebsite.com/oidc_cb<br/>
36 ...
37 </code>
38 <div class="alert alert-info"><b>NOTE</b>: The client secrets and JWT token signing keys can be configured. However, due to the fact that re:claimID endpoint are running on your local machine, they are not critical.</div>
39
40 <h2 class="mt-5"><b>Step 3:</b> Website integration</h2>
41 <p>You can use the information above to integrate re:claimID as a generic <a href="https://openid.net/specs/openid-connect-core-1_0.html">OpenID Connect Identity Provider</a> into the web application of your choice. The integration steps for this part depend on the application you use. Hence, please refer to your respective documentation or the OpenID Connect specifications.
42 </p>
43</div>
44{% endblock body_content %}
diff --git a/template/roadmap.html.j2 b/template/roadmap.html.j2
index 22c01a41..09d0b7a7 100644
--- a/template/roadmap.html.j2
+++ b/template/roadmap.html.j2
@@ -1,5 +1,6 @@
1{% extends "common/base.j2" %} 1{% extends "common/base.j2" %}
2{% block body_content %} 2{% block body_content %}
3<main id="maincontent">
3<div class="container"> 4<div class="container">
4 <div class="row"> 5 <div class="row">
5 <div class="container text-center"> 6 <div class="container text-center">
@@ -10,49 +11,41 @@
10 The roadmap is subject to change and its primary purpose it to indicate the current work in progress and future work as well as the path to a stable release. Goals which are currently in active development are marked in <b>bold</b>. 11 The roadmap is subject to change and its primary purpose it to indicate the current work in progress and future work as well as the path to a stable release. Goals which are currently in active development are marked in <b>bold</b>.
11 </p> 12 </p>
12 <ul class="timeline"> 13 <ul class="timeline">
13 <li> 14 <!--<li>
14 <section class="item-preview"> 15 <section class="item-preview">
15 <header> 16 <header>
16 <h3>Short term</h3> 17 <h3>Short term</h3>
17 <p class="item-date"> 18 <p class="item-date">
18 &lt;0.15 19 &le;0.17
19 </p> 20 </p>
20 <p class="item-abstract"> 21 <p class="item-abstract">
21 <ul class="fa-ul">
22 <li><span class="fa-li"><i class="far fa-check-square"></i></span><a href="https://gana.gnunet.org">Setup and use names and numbers registration (GANA) for GNUnet
23 subsystems.</a></li>
24 <li><span class="fa-li"><i class="far fa-check-square"></i></span><a href="https://lsd.gnunet.org/lsd0001/">GNU Name System technical specification.</a></li>
25 </ul>
26 </p> 22 </p>
27 </header> 23 </header>
28 </p> 24 </p>
29 </section> 25 </section>
30 </li> 26 </li>-->
31 <li> 27 <li>
32 <section class="item-preview"> 28 <section class="item-preview">
33 <header> 29 <header>
34 <h3>Medium term</h3> 30 <h3>Medium term</h3>
35 <p class="item-date"> 31 <p class="item-date">
36 &ge;0.15 32 &lt;1.0
37 </p> 33 </p>
38 <p class="item-abstract"> 34 <p class="item-abstract">
39 <ul class="fa-ul"> 35 <ul class="fa-ul">
40 <li><span class="fa-li"><i class="far fa-square"></i></span><b>TNG</b>: Transport rewrite. [<a href="https://bugs.gnunet.org/search.php?tag_string=tng">Open issues</a>] 36 <li><span class="fa-li"><i class="far fa-minus-square"></i></span><b>TRANSPORT-NG (TNG): Transport layer redesign.</b> [<a href="https://bugs.gnunet.org/search.php?tag_string=tng">Open issues</a>]
41 <ul class="fa-ul"> 37 <ul class="fa-ul">
42 <li><span class="fa-li"><i class="far fa-square"></i></span><b>TNG service</b></li> 38 <li><span class="fa-li"><i class="far fa-check-square"></i></span>TNG service</li>
43 <li><span class="fa-li"><i class="far fa-square"></i></span><b>TCP communicator</b></li> 39 <li><span class="fa-li"><i class="far fa-minus-square"></i></span><b>QUIC communicator</b></li>
44 <li><span class="fa-li"><i class="far fa-square"></i></span><b>UDP communicator</b></li> 40 <li><span class="fa-li"><i class="far fa-check-square"></i></span>TCP communicator</li>
45 <li><span class="fa-li"><i class="far fa-square"></i></span><b>UNIX Domain Socket communicator</b></li> 41 <li><span class="fa-li"><i class="far fa-check-square"></i></span>UDP communicator</li>
46 <li><span class="fa-li"><i class="far fa-square"></i></span>NAT</li> 42 <li><span class="fa-li"><i class="far fa-minus-square"></i></span><b>UNIX Domain Socket communicator</b></li>
43 <li><span class="fa-li"><i class="far fa-minus-square"></i></span><b>NAT</b></li>
47 </ul> 44 </ul>
48 </li> 45 </li>
49 <li><span class="fa-li"><i class="far fa-square"></i></span>CORE/CADET: Performance and correctness improvements.</li> 46 <li><span class="fa-li"><i class="far fa-minus-square"></i></span><b>CORE-NG (CONG): Performance and correctness improvements. [<a href="https://bugs.gnunet.org/view.php?id=8596">Open issues</a>]</b></li>
50 <li><span class="fa-li"><i class="far fa-square"></i></span>DHT: Improvements including signed paths and stability improvements. Technical specification.</li> 47 <li><span class="fa-li"><i class="far fa-minus-square"></i></span><b>DHT: Technical specification. [<a href="https://lsd.gnunet.org/lsd0004">Draft</a>]</b></li>
51 <li><span class="fa-li"><i class="far fa-square"></i></span>SET improvements to code quality and correctness.</li> 48 <li><span class="fa-li"><i class="far fa-minus-square"></i></span><b>Large-scale GNS TLD mirror deployment.</b> [<a href="https://bugs.gnunet.org/view_all_bug_page.php?filter=65f5e2e289d96">Open issues</a>]</li>
52 <li><span class="fa-li"><i class="far fa-square"></i></span>CONVERSATION improvements to performance, latency hiding and usability.</li>
53 <li><span class="fa-li"><i class="far fa-square"></i></span>RECLAIM: Technical specification.</li>
54 <li><span class="fa-li"><i class="far fa-square"></i></span><b>Stable and usable documentation.</b></li>
55 <li><span class="fa-li"><i class="far fa-square"></i></span><b>GNUnet packages available and up-to-date in distributions.</b></li>
56 </ul> 49 </ul>
57 </p> 50 </p>
58 </header> 51 </header>
@@ -69,10 +62,14 @@
69 <p class="item-abstract"> 62 <p class="item-abstract">
70 <ul class="fa-ul"> 63 <ul class="fa-ul">
71 <li><span class="fa-li"><i class="far fa-square"></i></span>Stable release.</li> 64 <li><span class="fa-li"><i class="far fa-square"></i></span>Stable release.</li>
65 <li><span class="fa-li"><i class="far fa-square"></i></span>CADET: Performance and correctness improvements.</li>
72 <li><span class="fa-li"><i class="far fa-square"></i></span>Onion routing with RPS</li> 66 <li><span class="fa-li"><i class="far fa-square"></i></span>Onion routing with RPS</li>
73 <li><span class="fa-li"><i class="far fa-square"></i></span>Mix network, pEp integration on top of mix network</li> 67 <li><span class="fa-li"><i class="far fa-square"></i></span>Mix network, pEp integration on top of mix network</li>
74 <li><span class="fa-li"><i class="far fa-square"></i></span>Collaborative filtering / news distribution</li> 68 <li><span class="fa-li"><i class="far fa-square"></i></span>Collaborative filtering / news distribution</li>
69 <li><span class="fa-li"><i class="far fa-square"></i></span>CONVERSATION improvements to performance, latency hiding and usability.</li>
75 <li><span class="fa-li"><i class="far fa-square"></i></span>Improved FS design, proper integration with GNS</li> 70 <li><span class="fa-li"><i class="far fa-square"></i></span>Improved FS design, proper integration with GNS</li>
71 <li><span class="fa-li"><i class="far fa-minus-square"></i></span><b>Stable and usable documentation.</b></li>
72 <li><span class="fa-li"><i class="far fa-minus-square"></i></span><b>GNUnet packages available and up-to-date in distributions.</b></li>
76 </ul> 73 </ul>
77 </p> 74 </p>
78 </header> 75 </header>
diff --git a/template/rss.xml.j2 b/template/rss.xml.j2
new file mode 100644
index 00000000..6ee0a279
--- /dev/null
+++ b/template/rss.xml.j2
@@ -0,0 +1,46 @@
1{#
2# Copyright (C) 2019, 2020 GNUnet e.V.
3#
4# This code is derived from code contributed to GNUnet eV
5# by nikita <nikita@n0.is>.
6#
7# Permission to use, copy, modify, and/or distribute this software for
8# any purpose with or without fee is hereby granted.
9#
10# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11# WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12# WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13# AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14# DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15# PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
16# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17# PERFORMANCE OF THIS SOFTWARE.
18#
19# SPDX-License-Identifier: 0BSD
20#}
21<?xml version="1.0" encoding="UTF-8"?>
22<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
23 <channel>
24 <atom:link href="{{ siteconf['baseurl'] }}{{ lang }}/rss.xml" rel="self" type="application/rss+xml" />
25 <title>{{ siteconf['rsstitle'] }}</title>
26 <language>{{ lang }}</language>
27 <description>{{ siteconf['rssdescr']|e }}</description>
28 <link>{{ siteconf['baseurl'] }}/</link>
29 <lastBuildDate>{{ now }}</lastBuildDate>
30 {% for newspostitem in newsposts %}
31 <item>
32 <guid>{{ siteconf['baseurl'] }}{{ lang }}{{ siteconf['newsloc'] }}{{ newspostitem['page'] }}</guid>
33 <link>{{ siteconf['baseurl'] }}{{ lang }}{{ siteconf['newsloc'] }}{{ newspostitem['page'] }}</link>
34 <pubDate>{{ conv_date_rfc822(newspostitem["date"]) }}</pubDate>
35 <title>{{ newspostitem['title']|e }}</title>
36 <description>
37 <![CDATA[
38 {% filter extract_body %}
39 {% include ('news/' + newspostitem['page'] + ".j2") %}
40 {% endfilter %}
41 ]]>
42 </description>
43 </item>
44 {% endfor %}
45 </channel>
46</rss>
diff --git a/template/use.html.j2 b/template/use.html.j2
index 8dc7abd5..2ad5b6ef 100644
--- a/template/use.html.j2
+++ b/template/use.html.j2
@@ -1,5 +1,6 @@
1{% extends "common/base.j2" %} 1{% extends "common/base.j2" %}
2{% block body_content %} 2{% block body_content %}
3<main id="maincontent">
3<article class="container"> 4<article class="container">
4 5
5 <header> 6 <header>
@@ -11,7 +12,7 @@
11 <nav class="nav subnav position-fixed flex-column border-right" style="position:fixed"> 12 <nav class="nav subnav position-fixed flex-column border-right" style="position:fixed">
12 <a class="nav-link" href="#filesharing">{{ _("Filesharing") }}</a> 13 <a class="nav-link" href="#filesharing">{{ _("Filesharing") }}</a>
13 <a class="nav-link" href="#cadet">{{ _("CADET") }}</a> 14 <a class="nav-link" href="#cadet">{{ _("CADET") }}</a>
14 <a class="nav-link" href="#groupchat">{{ _("Minimal Groupchat") }}</a> 15 <a class="nav-link" href="#messenger">{{ _("Convenient Messenger") }}</a>
15 <a class="nav-link" href="#gns_cli">{{ _("GNS with CLI") }}</a> 16 <a class="nav-link" href="#gns_cli">{{ _("GNS with CLI") }}</a>
16 <a class="nav-link" href="#gns_browser">{{ _("GNS with Browser") }}</a> 17 <a class="nav-link" href="#gns_browser">{{ _("GNS with Browser") }}</a>
17 <a class="nav-link" href="#vpn">{{ _("VPN") }}</a> 18 <a class="nav-link" href="#vpn">{{ _("VPN") }}</a>
@@ -20,7 +21,7 @@
20 </nav> 21 </nav>
21 </div> 22 </div>
22 23
23 <div class="col"> 24 <div class="col" style="padding-left: 35px">
24 <section> 25 <section>
25 <p> 26 <p>
26 This document is just a brief introduction on what can be done with GNUnet. Find out much more in our <a ref="https://docs.gnunet.org/">documentation</a>, e.g. in the section <a href="https://docs.gnunet.org/handbook/gnunet.html#toc-Using-GNUnet-1">"using GNUnet"</a> in the handbook. 27 This document is just a brief introduction on what can be done with GNUnet. Find out much more in our <a ref="https://docs.gnunet.org/">documentation</a>, e.g. in the section <a href="https://docs.gnunet.org/handbook/gnunet.html#toc-Using-GNUnet-1">"using GNUnet"</a> in the handbook.
@@ -213,72 +214,52 @@
213 </p> 214 </p>
214 </section> 215 </section>
215 216
216
217
218 <section> 217 <section>
219 <h3><a name="groupchat" class="subnav-anchor"></a>{{ _("Chatting with a (simple) client") }}</h3> 218 <h3><a name="messenger" class="subnav-anchor"></a>{{ _("Chatting with a convenient client") }}</h3>
220 <div class="alert" style="background-color: #419edb;"> 219 <p>
221 <div class="alert-content"> 220 To make chatting a tiny bit easier and prettier, we need to install additional software.
222 Notice: The groupchat code is not working with the actual GNUnet release atm! 221 </p>
223 </div> 222 <p>
224 </div> 223 You can select one of the options listed <a href="applications.html">here</a> under applications
225 <p> 224 using the <a href="https://docs.gnunet.org/handbook/gnunet.html#MESSENGER-Subsystem">Messenger service</a>.
226 To make chatting a tiny bit easier and prettier, we need to install and compile additional software. 225 Those are generally compatible with each other using the same underlying
227 If you join the chat mentioned below and no one is there, feel free to ping on 226 <a href="https://git.gnunet.org/libgnunetchat.git/">library</a> but tell apart in their user interface and design.
228 IRC/freenode #gnunet and ask if someone can join in to test with you! (But we are 227 </p>
229 trying to be there as often as possible). 228 <p>
230 </p> 229 In other words: You can choose by your own preference how to chat.
231 <p> 230 </p>
232 First we have to install the Nim programming language. Please refer to their <a href="https://nim-lang.org/install.html">project site</a> for further details. The preferred method is using you distributions package manager, e.g. for Debian it would look like this: 231 <p>
233 </p> 232 After you have picked an application (for example <a href="https://git.gnunet.org/messenger-gtk.git/">Messenger-GTK</a>
234 <code> 233 or <a href="https://git.gnunet.org/messenger-cli.git/">messenger-cli</a>), follow the instructions for build and installation.
235 $ sudo apt install nim<br> 234 Notice that depending on the picked application, you might need additional dependencies besides the library for the chatting
236 $ nim --version<br> 235 functionality.
237 Nim Compiler Version 1.2.2 [Linux: amd64]<br> 236 </p>
238 Compiled at 2020-06-16<br> 237 <p>
239 Copyright (c) 2006-2020 by Andreas Rumpf<br> 238 Once you installed the application and started it, a dialog should open to ask you for an account to use or whether you want
240 <br> 239 to create a new one. An account is pretty much an identity which can also be used for <a href="#gns_cli">GNS</a> capabilities.
241 active boot switches: -d:release -d:nativeStackTrace<br> 240 Accounts don't require any information besides a chosen identifier or nick.
242 </code> 241 </p>
243 <p> 242 <p>
244 If the displayed version is <b>1.2.2 or newer</b>, we have a compatible version and can continue downloading and compiling the groupchat. If the version is older (like on Ubuntu 18.04) we can install Nim using a tool called <i>choosenim</i>: 243 Next step is to enter a chat room via your application. The easiest step is choosing a public chat room which is similar to
245 </p> 244 communicate via <a href="#cadet">CADET</a> through a shared port. Look for a function to add a new room or "platform".
246 <code> 245 You should be able to enter any sort of text as key for the room and confirm.
247 $ curl https://nim-lang.org/choosenim/init.sh -sSf | sh 246 </p>
248 </code> 247 <p>
249 <p> 248 A chat room should open using the entered key as identifier and any other person you share the key with should be able to join
250 Then we follow the onscreen instructions. More information can be found in the <a href="https://nim-lang.org/install.html">official documentation</a>. 249 this room as well using one of the compatible applications as linked above. From here you can simply write text in a proper field
251 </p> 250 and send it as a message to communicate.
252 <p>In the onscreen instructions you'll be ask to add a line to your bashrc - once you've done that, re-read your bash environment to make the change active: 251 </p>
253 </p> 252 <p>
254 <code> 253 In case of any more advanced functionality it is recommended to look for a guide or more detailed information on the source of the
255 $ source ~/.bashrc 254 used application since implementations can vary, especially the design of user interface.
256 </code> 255 </p>
257 256 <p>
258 <p> 257 Also you can always use the simplified command line tool `gnunet-messenger` provided by GNUnet itself to open or join a chat with
259 After we have installed (and maybe upgraded) Nim we download and compile the GNUnet groupchat application: 258 its key in a similar way as described above. See the more detailed information in the
260 </p> 259 <a href="https://docs.gnunet.org/handbook/gnunet.html#Using-the-GNUnet-Messenger">handbook</a> to use it.
261 <p> 260 </p>
262 <code>
263 $ git clone https://git.gnunet.org/groupchat.git<br>
264 $ cd groupchat<br>
265 $ make<br>
266 </code>
267 <p>
268 <p>
269 We can now try to enter a chat server running on another GNUnet node using the command:
270 </p>
271 <p>
272 <code>
273 $ LD_LIBRARY_PATH=/path/to/gnunetlibs ./groupchat --config=/path/to/gnunet.conf --server=88RXABKJNMT426FY81N2DXN0M2X37SW5Q1NR005YPDZ1Q7A22CHG --port=t3ss --nick=YOURNICK<br>
274 </code>
275 <p>
276 The peer key and port name given in this example should work as they are almost always online and running groupchat on port "t3ss".
277 <p>
278 </section> 261 </section>
279 262
280
281
282 <section> 263 <section>
283 <h3><a name="gns_cli" class="subnav-anchor"></a>{{ _("Name resolution using GNS on the command line") }}</h3> 264 <h3><a name="gns_cli" class="subnav-anchor"></a>{{ _("Name resolution using GNS on the command line") }}</h3>
284 <p>The GNU Name Service (GNS) is a fully decentralized alternative to the Domain Name System (DNS). Where GNS does not suffer the same major <a href="https://en.wikipedia.org/wiki/Domain_Name_System#Security_issues">security flaws as DNS</a>. 265 <p>The GNU Name Service (GNS) is a fully decentralized alternative to the Domain Name System (DNS). Where GNS does not suffer the same major <a href="https://en.wikipedia.org/wiki/Domain_Name_System#Security_issues">security flaws as DNS</a>.
diff --git a/template/video.html.j2 b/template/video.html.j2
index fe1316b8..f1af3a32 100644
--- a/template/video.html.j2
+++ b/template/video.html.j2
@@ -1,5 +1,6 @@
1{% extends "common/base.j2" %} 1{% extends "common/base.j2" %}
2{% block body_content %} 2{% block body_content %}
3<main id="maincontent">
3 <!-- 4 <!--
4 FIXME 5 FIXME
5 - some links are missing 6 - some links are missing