aboutsummaryrefslogtreecommitdiff
path: root/template/architecture.html.j2
blob: ef6e8799df9fb761516bed493e8d53147b3ea4c7 (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
118
119
120
121
122
{% 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 class="col-10">
     <img class="img-fluid" src="../static/images/arch.png">
  </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 %}