aboutsummaryrefslogtreecommitdiff
path: root/doc/old/handbook/chapters/preface.texi
diff options
context:
space:
mode:
Diffstat (limited to 'doc/old/handbook/chapters/preface.texi')
-rw-r--r--doc/old/handbook/chapters/preface.texi212
1 files changed, 212 insertions, 0 deletions
diff --git a/doc/old/handbook/chapters/preface.texi b/doc/old/handbook/chapters/preface.texi
new file mode 100644
index 000000000..961ec0737
--- /dev/null
+++ b/doc/old/handbook/chapters/preface.texi
@@ -0,0 +1,212 @@
1@node Preface
2@chapter Preface
3
4@c FIXME: Do we have to mention that this is Free Software?
5@c FIXME: where did 'Free Software' in this sentence fit before
6@c FIXME: we changed it?
7This collection of manuals describes GNUnet, a framework
8for secure peer-to-peer networking with the high-level goal to provide
9a strong foundation for a global, distributed network
10that provides security and privacy.
11GNUnet in that sense aims to replace the current Internet protocol stack.
12Along with an application for secure publication of files, it has grown to
13include all kinds of basic applications for the foundation of a new
14Internet.
15
16@menu
17* About this book::
18* Contributing to this book::
19* Introduction::
20* Project governance::
21* Typography::
22@end menu
23
24@node About this book
25@section About this book
26
27The books (described as ``book'' or ``books'' in the following)
28bundled as the ``GNUnet Reference Manual'' are based on the historic
29work of all contributors to previous documentation of GNUnet.
30It is our hope
31that the content is described in a way that does not require any
32academic background, although some concepts will require further
33reading.
34
35Our (long-term) goal with these books is to keep them
36self-contained. If you see references to Wikipedia and other external
37sources (except for our academic papers) it means that we are working
38on a solution to describe the explanations found there which fits our
39use-case and licensing.
40
41Previously the documentation was contained in Drupal books, on the
42old website. This format was considered unmaintainable for the future, so
43Texinfo was chosen. You might find old and very old sections in
44here in addition to more recent content. It took a long time to
45finish the move to Texinfo (from Drupal to LaTeX to wrong Texinfo
46output dump to good Texinfo) and only recently (late 2018, early
472019) content checking started. We apologize to the reader for
48any inconvenience and hope you apply logic where bad advice from
4910 years ago can be found (pipe to sudo to install software is
50one example). Patches (contributions) to this documentation are more
51than welcome!
52
53The first chapter (``Preface'') as well as the second chapter
54(``Philosophy'') give an introduction to GNUnet as a project, what
55GNUnet tries to achieve. ``Key Concepts'' explains the key concepts
56in GNUnet.
57These three chapters are the most complete in the documentation.
58They are followed by chapters which explain specific parts of
59GNUnet (and need more work):
60``Installing GNUnet'', ``GNUnet Contributors Handbook'' and
61``GNUnet Developer Handbook''.
62
63@node Contributing to this book
64@section Contributing to this book
65
66@c FIXME: There's a good amount of repetition here, we should
67@c FIXME: fix this.
68The GNUnet Reference Manual is a collective work produced by various
69people throughout the years.
70
71The version you are reading is derived
72from many individual efforts hosted on one of our old websites.
73In the end it was considered to be impractical to read by
74those who required the information.
75With the conversion to Texinfo --- the version you are reading
76right now --- we hope to address this in the longterm.
77Texinfo is the documentation language of the GNU project.
78
79While it can be intimidating at first and look scary or complicated,
80it is just another way to express text format instructions.
81
82We encourage you to take this opportunity and learn about Texinfo,
83learn about GNUnet, and one word at a time we will arrive at a
84book which explains GNUnet in the least complicated way to you.
85
86Even when you don't want to or can't learn Texinfo, you can contribute.
87Send us an Email or join our IRC chat room on freenode and talk with
88us about the documentation (the preferred way to reach out is the
89mailinglist, since you can communicate with us without waiting on
90someone in the chatroom).
91One way or another you can help shape the understanding of GNUnet
92without the ability to read and understand its sourcecode.
93
94@node Introduction
95@section Introduction
96
97GNUnet in its current version is the result of almost 20 years of work
98from many contributors. So far, most contributions were made by
99volunteers or people paid to do fundamental research. At this stage,
100GNUnet remains an experimental system where
101significant parts of the software lack a reasonable degree of
102professionalism in its implementation. Furthermore, we are aware of a
103significant number of existing bugs and critical design flaws, as some
104unfortunate early design decisions remain to be rectified. There are
105still known open problems; GNUnet remains an active research project.
106
107The project was started in 2001 when some initial ideas for improving
108Freenet's file-sharing turned out to be too radical to be easily
109realized within the scope of the existing Freenet project. We lost
110our first contributor on 11.9.2001 as the contributor realized that
111privacy may help terrorists. The rest of the team concluded that it
112was now even more important to fight for civil liberties. The first
113release was called ``GNet'' -- already with the name GNUnet in mind,
114but without the blessing of GNU we did not dare to call it GNUnet
115immediately. A few months after the first release we contacted the
116GNU project, happily agreed to their governance model and became an
117official GNU package.
118
119Within the first year, we created
120@uref{https://gnu.org/s/libextractor, GNU libextractor}, a helper library
121for meta data extraction which has been used by a few other projects
122as well. 2003 saw the emergence of pluggable transports, the ability
123for GNUnet to use different mechanisms for communication, starting
124with TCP, UDP and SMTP (support for the latter was later dropped due
125to a lack of maintenance). In 2005, the project first started to
126evolve beyond the original file-sharing application with a first
127simple P2P chat. In 2007, we created
128@uref{https://gnu.org/s/libmicrohttpd, GNU libmicrohttpd}
129to support a pluggable transport based on HTTP. In 2009, the
130architecture was radically modularized into the multi-process system
131that exists today. Coincidentally, the first version of the ARM
132service (ARM: Automatic Restart Manager)
133was implemented a day before systemd was announced. From 2009
134to 2014 work progressed rapidly thanks to a significant research grant
135from the Deutsche Forschungsgesellschaft. This resulted in particular
136in the creation of the R5N DHT, CADET, ATS and the GNU Name System.
137In 2010, GNUnet was selected as the basis for the
138@uref{https://secushare.org, secushare} online
139social network, resulting in a significant growth of the core team.
140In 2013, we launched @uref{https://taler.net, GNU Taler} to address
141the challenge of convenient
142and privacy-preserving online payments. In 2015, the
143@c XXX: It is not correct to refer to pEp as pEp stylistic,
144@c XXX: but the correct version would lead to problems with
145@c XXX: some of our outputs and/or older versions of texinfo
146@c XXX: and devices that display versions on consoles etc.
147@c XXX: This is why we keep the pEp until proven that p(triple bar)p
148@c XXX: does not create broken outputs.
149@uref{https://pep.foundation/, pretty Easy privacy} (pEp) project
150announced that they will use GNUnet as the technology for their
151meta-data protection layer, ultimately resulting in GNUnet e.V.
152entering into a formal long-term collaboration with the pEp
153Foundation. In 2016, Taler Systems SA, a first startup using GNUnet
154technology, was founded with support from the community.
155
156GNUnet is not merely a technical project, but also a political
157mission: like the GNU project as a whole, we are writing software to
158achieve political goals with a focus on the human right of
159informational self-determination. Putting users in control of their
160computing has been the core driver of the GNU project. With GNUnet we
161are focusing on informational self-determination for collaborative
162computing and communication over networks.
163
164The Internet is shaped as much by code and protocols as it is by its
165associated political processes (IETF, ICANN, IEEE, etc.).
166Similarly its flaws are not limited to the protocol design. Thus,
167technical excellence by itself will not suffice to create a better
168network. We also need to build a community that is wise, humble and
169has a sense of humor to achieve our goal to create a technical
170foundation for a society we would like to live in.
171
172
173@node Project governance
174@section Project governance
175
176GNUnet, like the GNU project and many other free software projects,
177follows the governance model of a benevolent dictator. This means
178that ultimately, the GNU project appoints the GNU maintainer and can
179overrule decisions made by the GNUnet maintainer. Similarly, the
180GNUnet maintainer can overrule any decisions made by individual
181developers. Still, in practice neither has happened in the last 20
182years for GNUnet, and we hope to keep it that way.
183
184The current maintainers of GNUnet are:
185
186@itemize @bullet
187
188@item @uref{https://grothoff.org/christian/, Christian Grothoff}
189@item @uref{https://schanzen.eu, Martin Schanzenbach}
190
191@end itemize
192
193The GNUnet project is supported by GNUnet e.V., a German association
194where any developer can become a member. GNUnet e.V. serves as a
195legal entity to hold the copyrights to GNUnet. GNUnet e.V. may also
196choose to pay for project resources, and can collect donations as
197well as choose to adjust the license of the
198software (with the constraint that it has to remain free software).
199In 2018 we switched from GPL3 to AGPL3, in practice these changes do
200not happen very often.
201
202
203@node Typography
204@section Typography
205
206When giving examples for commands, shell prompts are used to show if the
207command should/can be issued as root, or if "normal" user privileges are
208sufficient. We use a @code{#} for root's shell prompt, a
209@code{%} for users' shell prompt, assuming they use the C-shell or tcsh
210and a @code{$} for bourne shell and derivatives.
211@c TODO: Really? Why the different prompts? Do we already have c-shell
212@c TODO: examples?