blob: e7d62c08200b79814632f06ba677e820977b0ddc (
plain) (
blame)
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
|
{% extends "common/base.j2" %}
{% block body_content %}
<article class="container">
<header>
<h1>{{ _("GNUnet System Architecture") }}</h1>
</header>
<div class="container">
<div class="row">
<div class="col-10">
<img class="img-fluid border rounded" src="../static/images/gnunet-arch-full.svg">
</div>
<div class="col-2 d-none d-sm-block">
<h4>{{ _("Legend") }}:</h4>
<dl>
<dt>house</dt>
<dd>application</dd>
</dl>
<dl>
<dt>circle</dt>
<dd>application</dd>
</dl>
<dl>
<dt>box</dt>
<dd>daemon</dd>
</dl>
<dl>
<dt>diamond</dt>
<dd>library</dd>
</dl>
<dl>
<dt>blackline</dt>
<dd>dependency</dd>
</dl>
<dl>
<dt>blue line</dt>
<dd>extension via plugin</dd>
</dl>
<dl>
<dt>red line</dt>
<dd>possibly useful</dd>
</dl>
<dl>
<dt>dashed</dt>
<dd>in planning</dd>
</dl>
</div>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-md">
<h2>{{ _("Foundations") }}</h2>
<p>
{% trans %}
The foundations of GNUnet are a distributed hash
table (R5N), an SCTP-like end-to-end encrypted
messaging layer (CADET), a public key infrastructure
(GNS) and a pluggable transport system (TRANSPORT).<br>
Using public keys for addresses
and self-organized decentralized routing algorithms,
these subsystems replace the traditional TCP/IP stack.
{% endtrans %}
</p>
</div>
<div class="col-md">
<h2>{{ _("Security") }}</h2>
<p>
{% trans %}
GNUnet is implemented using a multi-process architecture.
Each subsystem runs as a separate process, providing
fault-isolation and enabling tight permissions to be
granted to each subsystem. Naturally, the
implementation is a <a href="https://www.gnu.org/">GNU</a>
package, and will always remain free software.
{% endtrans %}
</p>
</div>
</div>
<div class="row">
<div class="col-md">
<h2>{{ _("System architecture") }}</h2>
<p>
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>.
</p>
</div>
<div class="col-md">
<h2>{{ _("Subsystems") }}</h2>
<p>
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>.
</p>
</div>
</div>
<div class="row">
<div class="col-md">
<h2>{{ _("libgnunetutil") }}</h2>
<p>
libgnunetutil is the fundamental library that all GNUnet code builds upon. Ideally, this library should contain most of the platform dependent code (except for user interfaces and really special needs that only few applications have). Read <a href="https://docs.gnunet.org/handbook/gnunet.html#libgnunetutil">more</a>.
</p>
</div>
<div class="col-md">
<h2>{{ _("APIs") }}</h2>
<p>
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>.
</p>
</div>
</div>
</div>
</article>
{% endblock body_content %}
|