-
Notifications
You must be signed in to change notification settings - Fork 0
/
freenet-hyphanet-build-1498-debian-package-optimized-networking-layer-richer-websites-ux-safety.html
256 lines (241 loc) · 17.1 KB
/
freenet-hyphanet-build-1498-debian-package-optimized-networking-layer-richer-websites-ux-safety.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="/theme/style/base.min.css?2189187c">
<title>Hyphanet</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
<link href="https://www.hyphanet.org/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Hyphanet Full Atom Feed" />
<link rel="alternate" hreflang="en" href="https://www.hyphanet.org/freenet-hyphanet-build-1498-debian-package-optimized-networking-layer-richer-websites-ux-safety.html" />
<link rel="alternate" hreflang="ru" href="https://www.hyphanet.org/ru/freenet-hyphanet-build-1498-debian-package-optimized-networking-layer-richer-websites-ux-safety.html" />
<link rel="alternate" hreflang="fr" href="https://www.hyphanet.org/fr/freenet-hyphanet-build-1498-debian-package-optimized-networking-layer-richer-websites-ux-safety.html" />
<link rel="alternate" hreflang="x-default" href="https://www.hyphanet.org /freenet-hyphanet-build-1498-debian-package-optimized-networking-layer-richer-websites-ux-safety.html" />
<link rel="canonical" href="https://www.hyphanet.org/freenet-hyphanet-build-1498-debian-package-optimized-networking-layer-richer-websites-ux-safety.html" />
<meta property="og:title" content="Hyphanet" />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://www.hyphanet.org" />
<meta property="og:image" content="https://www.hyphanet.org/" />
<meta property="og:image:secure_url" content="https://www.hyphanet.org/theme/images/logo-blue.png" />
<meta property="og:description" content="Hyphanet is a peer-to-peer platform for censorship-resistant communication and publishing." />
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Hyphanet" />
<meta name="twitter:description" content="Hyphanet is a peer-to-peer platform for censorship-resistant communication and publishing." />
<meta name="twitter:image" content="https://www.hyphanet.org/theme/images/logo-blue.png" />
</head>
<body id="index" class="home">
<div>
<nav id="menu">
<a href="https://www.hyphanet.org/">Hyphanet</a>
<a href="https://www.hyphanet.org/pages/about.html">About</a>
<a href="https://www.hyphanet.org/pages/volunteer.html">Volunteer</a>
<a href="https://www.hyphanet.org/pages/documentation.html">Documentation</a>
<a href="https://www.hyphanet.org/pages/download.html">Download</a>
<a href="https://www.hyphanet.org/pages/help.html">Help</a>
</nav><!-- /#menu -->
<aside class="social">
<a href="https://twitter.com/freenetproject">Twitter</a>
<a rel="me" title="Hyphanet News and Info in the Fediverse" href="https://floss.social/@Freenet">Mastodon</a>
</aside>
<nav id="language">
<span>Language</span>
<a href="https://www.hyphanet.org/ru/freenet-hyphanet-build-1498-debian-package-optimized-networking-layer-richer-websites-ux-safety.html">ru</a>
<a href="https://www.hyphanet.org/fr/freenet-hyphanet-build-1498-debian-package-optimized-networking-layer-richer-websites-ux-safety.html">fr</a>
</nav>
</div>
<main>
<header id="banner" class="body">
<h1>Freenet / Hyphanet build 1498: Debian Package, Optimized Networking Layer, Richer Websites, UX, Safety</h1>
</header><!-- /#banner -->
<section id="content" class="body">
<div class="post-info">
<time class="published" datetime="2024-09-23T00:00:00+02:00">
Mon 23 September 2024
</time>
<address class="vcard author">
By <a class="url fn" href="https://www.hyphanet.org/author/arne-babenhauserheide.html">Arne Babenhauserheide</a>
</address>
</div><!-- /.post-info -->
<div class="entry-content">
<p>Freenet / Hyphanet 0.7.5 build 1498 is now available.</p>
<blockquote>
<p><strong>Install Freenet / Hyphanet</strong> for <strong><a href="https://www.draketo.de/dateien/freenet/build01498/FreenetInstaller-1498.exe">Windows</a></strong>, for <strong><a href="https://www.draketo.de/dateien/freenet/build01498/new_installer_offline_1498.jar">GNU/Linux, macOS and other *nixes</a></strong>, or for <strong><a href="https://freenet-mobile.github.io/app/">Android</a></strong>. See the <a href="pages/download.html">download page</a> for more information and other platforms (Apple Silicon needs library updates to work).</p>
</blockquote>
<p>This release resolves the last blocker for Freenet / Hyphanet 0.8 by
providing an <a href="https://www.draketo.de/dateien/freenet/build01498/hyphanet-fred-build01498.deb">official Debian package</a>. Additionally it optimizes the
networking and data transfer core and provides many improvements for
website authors and user experience.</p>
<p>There are five larger areas of improvements:</p>
<div style="float: right; width: 30%; max-width: 300px;"><img src="./theme/images/logo-large.png" width="100%" style="filter: invert(30%)" /></div>
<ul>
<li>provide a debian package</li>
<li>optimize the networking and data transfer core</li>
<li>more possibilities for website authors</li>
<li>improve the user experience</li>
<li>validated Windows installer signing workflow</li>
</ul>
<div style="clear: both"></div>
<h2 id="debian-package-hyphanet-as-backend-service">Debian Package: Hyphanet as backend service</h2>
<p><em>Hyphanet as privacy core.</em></p>
<p>Starting with this release, Freenet / Hyphanet has an
<a href="https://www.draketo.de/dateien/freenet/build01498/hyphanet-fred-build01498.deb">official Debian package</a>
built automatically via github actions. This was the most
important <a href="https://github.com/hyphanet/wiki/wiki/High-Impact-tasks">high-impact-task</a> and the last release blocker of version
0.8 in our <a href="https://github.com/hyphanet/wiki/wiki/Roadmap">Roadmap</a>. Big thanks to DC*!</p>
<p>With this finally realized, the next step is to get in contact with
the many privacy focussed distributions which build on Debian to make
<code>hyphanet-fred</code> available where it is most important. Once this is
done, tools which build on Hyphanet — like FMS, but also jSite and
tools from <a href="https://github.com/hyphanet/pyFreenet">pyFreenet</a> — can be packaged to work out of the box, using
Hyphanet as an ordinary background service. That’s a step towards
Hyphanet as decentralized, privacy-preserving communication backend for
other applications.</p>
<p>Distributions for which there already are packages include
<a href="https://gitweb.gentoo.org/repo/gentoo.git/tree/net-p2p/freenet/">Gentoo</a> (official: the pioneer), <a href="https://aur.archlinux.org/packages/freenet">Arch</a>
(inofficial), and <a href="https://git.sr.ht/~pranavats/freenet-guix/tree/master/item/freenet.scm">Guix</a> (inofficial).</p>
<p>Another step towards this is accepting the Schema hypha[net] to
simplify writing browser extensions that forward hypha:-links to
Hyphanet.</p>
<h2 id="optimized-networking-and-data-transfer">Optimized networking and data transfer</h2>
<p><em>Optimized Hyphanet core.</em></p>
<p>The networking layer was optimized significantly. Searching packet
types is often stopped early and common or cheaper checks are done
before less common or time-consuming checks. This gives significant
reductions of CPU load, especially for very fast nodes.</p>
<p>Juiceman fixed a bug that limited MTU to 1280 where not needed.</p>
<p>And recently failed and data not found cooldown times were reduced to
5 minutes and 3 minutes, reducing one of the big annoyances when
accessing a site quickly after upload.</p>
<p>On the data transfer layer healing was optimized. After 1495 strongly
increased the amount of healing to keep large files available for
longer, 1498 specializes healing to keys close to the node location.
This reduces healing per file, but improves privacy, because healing
inserts are then more similar to forwarding — they mostly send data
close to the nodes location — and it reduces the network load of
healing, because the specialized healing inserts need fewer hops to
reach the optimal storage location in the network.</p>
<h2 id="possibilities-for-website-authors">Possibilities for website authors</h2>
<p><em>Optimized core features.</em></p>
<p>For website authors, more CSS elements, selectors and combinators
(<code>:checked</code>, <code>word-wrap: anywhere</code>, <code>focus-within</code>, <code>^=</code>, <code>$=</code>, <code>*=</code>,
<code>></code>, <code>+</code>, <code>~</code>) and additional HTML elements (<code>summary</code>, <code>details</code>,
<code><meta name="Viewport"...></code>) are available. This strongly expands the
possibilities of websites in Hyphanet, because Javascript or
webassembly are no viable options in an environment where a privacy
breach could put people at risk. We’ve seen with Java applets, that
untrusted code will always break out of its containment. The CSS
improvements in contrast provide a safe way to enable limited
interactivity.</p>
<p>Streaming support via m3u lists was improved to allow accessing
segments of up to 200MiB.</p>
<p>And using <code>-1</code> as version in a USK now properly finds version <code>0</code>, if
this is the only existing version.</p>
<h2 id="user-experience-improvements">User experience improvements</h2>
<p><em>Far from the core, but essential for usage.</em></p>
<p>In addition to these changes deep down, there are a number of directly
visible improvements.</p>
<p>The plugins KeepAlive and Sharesite are updated (the latter now uses
the new Night Zen Garden style). The UPnP2 plugin is now visible in
simple mode. It can replace UPnP and should work better. On the
flipside the Library plugin is moved to advanced plugins, because it
does not work reliably enough.</p>
<p>The plugin list is easier to navigate by removing the defunct option
to download plugins from the clearnet and by adding better styling.
Downloading from the clearnet was an unnecessary privacy risk since
we’ve been bundling essential plugins with the installer for a few
years now.</p>
<p>The noderef for friend-to-friend connections is shown in simple mode
again, because it is robust enough with the changes in recent years.
This should remove a barrier to adding direct connections and enabling
fully confidential messages between friends.</p>
<p>There are new configuration options to allow connecting via local
services. That’s a step towards making it easy to add a second layer
of security, for example confining connections to a local network.
Thanks goes to s7r for these changes!</p>
<p>When bandwidth detection fails, the upload bandwidth now defaults to
160KiB/s. Also the NLM config is now disabled statically. This was a
testing setup which could still be active in old nodes, but it would
break connectivity nowadays.</p>
<p>The default bookmarks include the Opennet SeedNodes statistics,
the generate media site to create decentralized streaming sites, and
the high-impact-tasks. The bookmarks are also re-ordered to be a
better match for newcomers. Starting category: first steps, clean
spider, Index of Indexes. Software category ordered by ease of
use from fproxy.</p>
<p>There were a number of Java 21 fixes, including all our tests (thanks
to Bombe!), and improvement to the github actions (thanks to
AHOHNMYC).</p>
<p>In addition there was a lot of polish. Bert Massop (welcome back!) and
Veniamin Fernandes replaced our homegrown CurrentTimeUTC with modern
Java options. Alex fixed the pronoun used in strings. Bombe added
getters for all direct field access in the node. Hiina reduced logging
level of store warnings so no unneeded backtraces are created for node
with large stores and Juiceman updated code to use more modern
structures.</p>
<p>Time-dependence of compressor selection was removed. This caused
non-determinism for inserts and could cause keys to be
non-reproducible on systems with faster or slower network.</p>
<h2 id="validated-windows-installer-signing-workflow">Validated Windows installer signing workflow</h2>
<p><em>Recovered core safety on Windows.</em></p>
<p>And finally the new <a href="https://github.com/hyphanet/sign-windows-installer">exe signing workflow</a> we built to fulfill the
requirements of SignPath, our new windows installer signing provider
for the upcoming releases, runs the <a href="https://github.com/hyphanet/scripts/blob/master/verify-build">verify-build script</a> on every
release to ensure that the jar we release has actually been built from
the sources. This provides a second safety net, in addition to
anonymous users running the script and posting the results (thanks to
all who did this — please keep it up, otherwise people have to fully
trust github). The release is not yet byte-by-byte reproducible,
because the jar MANIFEST defines among other info the exact java
version used to compile it, and the java version available differs by
distribution and time, so it would get harder over time to verify the
build. Instead its verification ensures that there are no functional
changes by comparing the content of the decompressed jar with a clean
build from the sources.</p>
<p>A special thanks goes to Bombe for many careful reviews!</p>
<h2 id="contribute">Contribute</h2>
<p><em>Join our core.</em></p>
<p>If you want to help us get better, please chat with us in <a href="https://web.libera.chat/?nick=Rabbit|?#freenet" id="chatlink" class="btn button-custom btn-custom-two">#freenet @ irc.libera.chat</a>. And give us time to answer, we’re all volunteers and might not be in your timezone.</p>
<p>To get into development right-away, have a look at one of the <a href="https://github.com/hyphanet/wiki/wiki/Projects">Freenet / Hyphanet Projects</a> or just get <a href="https://github.com/hyphanet/fred">fred</a> and fix something that annoys you.</p>
<p>And to take on something that makes a big difference, have a look at the <a href="https://github.com/hyphanet/wiki/wiki/High-Impact-tasks">high-impact tasks</a>.</p>
<p>In addition to coding, spreading Hyphanet, joining the community, writing a decentralized website, and other ways to contribute within Hyphanet, you can join the awesome team of translators <a href="https://explore.transifex.com/otf/freenet/">at transifex</a>. They are the reason why we’re able to support several different languages, the often unseen heroes who make our work accessible to those who need it the most.</p>
<h2 id="what-is-freenet-hyphanet">What is Freenet / Hyphanet?</h2>
<p>Hyphanet is the original Freenet,<br />
a peer-to-peer platform for<br />
censorship-resistant and privacy-respecting<br />
publishing and communication.</p>
<blockquote>
<p>I worry about my child and the Internet all the time, even though
she's too young to have logged on yet. Here's what I worry about. I
worry that 10 or 15 years from now, she will come to me and say
'Daddy, where were you when they took freedom of the press away from
the Internet? --Mike Godwin, Electronic Frontier Foundation</p>
</blockquote>
<p><em>What about the name „Hyphanet“? See <a href="https://www.hyphanet.org/freenet-renamed-to-hyphanet.html">Freenet renamed to Hyphanet</a>.</em></p>
<p>That Hyphanet can keep moving forward and help people worldwide to
exercise their basic rights and freedoms is the work of amazing
volunteers, both contributors and people running Hyphanet nodes.</p>
<p>Thank you for your contributions, and thank you for using Freenet / Hyphanet!</p>
<p>-- AB</p>
<blockquote>
<p><strong>Install Freenet / Hyphanet</strong> for <strong><a href="https://www.draketo.de/dateien/freenet/build01498/FreenetInstaller-1498.exe">Windows</a></strong>, for <strong><a href="https://www.draketo.de/dateien/freenet/build01498/new_installer_offline_1498.jar">GNU/Linux, macOS and other *nixes</a></strong>, or for <strong><a href="https://freenet-mobile.github.io/app/">Android</a></strong>. See the <a href="pages/download.html">download page</a> for more information and other platforms.</p>
</blockquote>
</div><!-- /.entry-content -->
<a href="archives.html">News Archives</a>
</section>
</main>
<footer>
<header>
<h2>Hyphanet</h2>
<p>Navigate with Freedom</p>
</header>
<ul class="social">
<a href="https://twitter.com/freenetproject">Twitter</a>
<a rel="me" title="Hyphanet News and Info in the Fediverse" href="https://floss.social/@Freenet">Mastodon</a>
</ul>
<div id="contact">
<span style="display:inline-block; unicode-bidi:bidi-override; direction:rtl;" onmouseover="this.innerText=this.innerText.split('').reverse().join(''); this.style.unicodeBidi='';this.style.direction=''; this.removeAttribute('onmouseover');">gro.tcejorpteneerf@sserp</span></br>
<span style="display:inline-block; unicode-bidi:bidi-override; direction:rtl;" onmouseover="this.innerText=this.innerText.split('').reverse().join(''); this.style.unicodeBidi='';this.style.direction=''; this.removeAttribute('onmouseover');">gro.tcejorpteneerf@troppus</span></br>
<span>IRC: <a href="https://web.libera.chat/?nick=FollowRabbit|?#freenet">#freenet on irc.libera.chat</a></span></br>
</div>
<p id="copyright">Licensed under the <a href="https://www.gnu.org/licenses/fdl-1.3.html">GFDL</a>. <a href="https://github.com/hyphanet/website">Website source repository</a>, <a href="/pages/download.html#privacy-policy">Privacy Policy</a></p>
</footer></body>
</html>