diff options
author | Christian Grothoff <christian@grothoff.org> | 2018-10-25 15:46:45 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2018-10-25 15:46:45 +0200 |
commit | 7101471b5fc9ad10a0a0c06fb2aaeb5a568dbf56 (patch) | |
tree | 589b209e1943461eccb56e1bed4e4d4323bd8c08 /doc/handbook/chapters/preface.texi | |
parent | 8a4b969fd2e9fb399dfd1d9d1569e95a77d599bb (diff) | |
download | gnunet-7101471b5fc9ad10a0a0c06fb2aaeb5a568dbf56.tar.gz gnunet-7101471b5fc9ad10a0a0c06fb2aaeb5a568dbf56.zip |
doc/documentation split into doc/tutorial and doc/handbook for clarity and to avoid automake freakout
Diffstat (limited to 'doc/handbook/chapters/preface.texi')
-rw-r--r-- | doc/handbook/chapters/preface.texi | 173 |
1 files changed, 173 insertions, 0 deletions
diff --git a/doc/handbook/chapters/preface.texi b/doc/handbook/chapters/preface.texi new file mode 100644 index 000000000..386cefa6d --- /dev/null +++ b/doc/handbook/chapters/preface.texi | |||
@@ -0,0 +1,173 @@ | |||
1 | @node Preface | ||
2 | @chapter Preface | ||
3 | |||
4 | This collection of manuals describes how to use GNUnet, a framework | ||
5 | for secure peer-to-peer networking with the high-level goal to provide | ||
6 | a strong foundation Free Software for a global, distributed network | ||
7 | that provides security and privacy. GNUnet in that sense aims to | ||
8 | replace the current Internet protocol stack. Along with an | ||
9 | application for secure publication of files, it has grown to include | ||
10 | all kinds of basic applications for the foundation of a new Internet. | ||
11 | |||
12 | @menu | ||
13 | * About this book:: | ||
14 | * Contributing to this book:: | ||
15 | * Introduction:: | ||
16 | * Project governance:: | ||
17 | * Typography:: | ||
18 | @end menu | ||
19 | |||
20 | @node About this book | ||
21 | @section About this book | ||
22 | |||
23 | The books (described as ``book'' or ``books'' in the following) | ||
24 | bundled as the ``GNUnet Reference Manual'' are based on the historic | ||
25 | work of all contributors to GNUnet's documentation. It is our hope | ||
26 | that the content is described in a way that does not require any | ||
27 | academic background, although some concepts will require further | ||
28 | reading. | ||
29 | |||
30 | Our (long-term) goal with these books is to keep them self-contained. If | ||
31 | you see references to Wikipedia and other external sources (except for | ||
32 | our academic papers) it means that we are working on a solution to | ||
33 | describe the explanations found there which fits our use-case and licensing. | ||
34 | |||
35 | The first chapter (``Preface'') as well as the the second | ||
36 | chapter (``Philosophy'') give an introduction to GNUnet as a project, | ||
37 | what GNUnet tries to achieve. | ||
38 | |||
39 | @node Contributing to this book | ||
40 | @section Contributing to this book | ||
41 | |||
42 | The GNUnet Reference Manual is a collective work produced by various | ||
43 | people throughout the years. The version you are reading is derived | ||
44 | from many individual efforts hosted on our website. This was a failed | ||
45 | experiment, and with the conversion to Texinfo we hope to address this | ||
46 | in the longterm. Texinfo is the documentation language of the GNU project. | ||
47 | While it can be intimidating at first and look scary or complicated, | ||
48 | it is just another way to express text format instructions. We encourage | ||
49 | you to take this opportunity and learn about Texinfo, learn about GNUnet, | ||
50 | and one word at a time we will arrive at a book which explains GNUnet in | ||
51 | the least complicated way to you. Even when you don't want or can't learn | ||
52 | Texinfo, you can contribute. Send us an Email or join our IRC chat room | ||
53 | on freenode and talk with us about the documentation (the prefered way | ||
54 | to reach out is the mailinglist, since you can communicate with us | ||
55 | without waiting on someone in the chatroom). One way or another you | ||
56 | can help shape the understanding of GNUnet without the ability to read | ||
57 | and understand its sourcecode. | ||
58 | |||
59 | @node Introduction | ||
60 | @section Introduction | ||
61 | |||
62 | @c In less than 2 printed pages describe the history of GNUnet here, | ||
63 | @c what we have now and what's still missing (could be split into | ||
64 | @c subchapters). | ||
65 | |||
66 | GNUnet in its current version is the result of almost 20 years of work | ||
67 | from many contributors. So far, most contributions were made by | ||
68 | volunteers or people paid to do fundamental research. At this stage, | ||
69 | GNUnet remains an experimental system where | ||
70 | significant parts of the software lack a reasonable degree of | ||
71 | professionalism in its implementation. Furthermore, we are aware of a | ||
72 | significant number of existing bugs and critical design flaws, as some | ||
73 | unfortunate early design decisions remain to be rectified. There are | ||
74 | still known open problems; GNUnet remains an active research project. | ||
75 | |||
76 | The project was started in 2001 when some initial ideas for improving | ||
77 | Freenet's file-sharing turned out to be too radical to be easily | ||
78 | realized within the scope of the existing Freenet project. We lost | ||
79 | our first contributor on 11.9.2001 as the contributor realized that | ||
80 | privacy may help terrorists. The rest of the team concluded that it | ||
81 | was now even more important to fight for civil liberties. The first | ||
82 | release was called ``GNet'' -- already with the name GNUnet in mind, | ||
83 | but without the blessing of GNU we did not dare to call it GNUnet | ||
84 | immediately. A few months after the first release we contacted the | ||
85 | GNU project, happily agreed to their governance model and became an | ||
86 | official GNU package. | ||
87 | |||
88 | Within the first year, we created | ||
89 | @uref{https://gnu.org/s/libextractor, GNU libextractor}, a helper library | ||
90 | for meta data extraction which has been used by a few other projects | ||
91 | as well. 2003 saw the emergence of pluggable transports, the ability | ||
92 | for GNUnet to use different mechanisms for communication, starting | ||
93 | with TCP, UDP and SMTP (support for the latter was later dropped due | ||
94 | to a lack of maintenance). In 2005, the project first started to | ||
95 | evolve beyond the original file-sharing application with a first | ||
96 | simple P2P chat. In 2007, we created | ||
97 | @uref{https://gnu.org/s/libmicrohttpd, GNU libmicrohttpd} | ||
98 | to support a pluggable transport based on HTTP. In 2009, the | ||
99 | architecture was radically modularized into the multi-process system | ||
100 | that exists today. Coincidentally, the first version of the ARM | ||
101 | service (ARM: Automatic Restart Manager) | ||
102 | was implemented a day before systemd was announced. From 2009 | ||
103 | to 2014 work progressed rapidly thanks to a significant research grant | ||
104 | from the Deutsche Forschungsgesellschaft. This resulted in particular | ||
105 | in the creation of the R5N DHT, CADET, ATS and the GNU Name System. | ||
106 | In 2010, GNUnet was selected as the basis for the | ||
107 | @uref{https://secushare.org, secushare} online | ||
108 | social network, resulting in a significant growth of the core team. | ||
109 | In 2013, we launched @uref{https://taler.net, GNU Taler} to address | ||
110 | the challenge of convenient | ||
111 | and privacy-preserving online payments. In 2015, the | ||
112 | @c TODO: Maybe even markup for the E if it renders in most outputs. | ||
113 | @uref{https://pep.foundation/, pEp} (pretty Easy privacy) project | ||
114 | announced that they will use GNUnet as the technology for their | ||
115 | meta-data protection layer, ultimately resulting in GNUnet e.V. | ||
116 | entering into a formal long-term collaboration with the pEp | ||
117 | foundation. In 2016, Taler Systems SA, a first startup using GNUnet | ||
118 | technology, was founded with support from the community. | ||
119 | |||
120 | GNUnet is not merely a technical project, but also a political | ||
121 | mission: like the GNU project as a whole, we are writing software to | ||
122 | achieve political goals with a focus on the human right of | ||
123 | informational self-determination. Putting users in control of their | ||
124 | computing has been the core driver of the GNU project. With GNUnet we | ||
125 | are focusing on informational self-determination for collaborative | ||
126 | computing and communication over networks. | ||
127 | |||
128 | The Internet is shaped as much by code and protocols as it is by its | ||
129 | associated political processes (IETF, ICANN, IEEE, etc.). | ||
130 | Similarly its flaws are not limited to the protocol design. Thus, | ||
131 | technical excellence by itself will not suffice to create a better | ||
132 | network. We also need to build a community that is wise, humble and | ||
133 | has a sense of humor to achieve our goal to create a technical | ||
134 | foundation for a society we would like to live in. | ||
135 | |||
136 | |||
137 | @node Project governance | ||
138 | @section Project governance | ||
139 | |||
140 | GNUnet, like the GNU project and many other free software projects, | ||
141 | follows the governance model of a benevolent dictator. This means | ||
142 | that ultimately, the GNU project appoints the GNU maintainer and can | ||
143 | overrule decisions made by the GNUnet maintainer. Similarly, the | ||
144 | GNUnet maintainer can overrule any decisions made by individual | ||
145 | @c TODO: Should we mention if this is just about GNUnet? Other projects | ||
146 | @c TODO: in GNU seem to have rare issues (GCC, the 2018 documentation | ||
147 | @c TODO: discussion. | ||
148 | developers. Still, in practice neither has happened in the last 20 | ||
149 | years, and we hope to keep it that way. | ||
150 | |||
151 | @c TODO: Actually we are a Swiss association, or just a German association | ||
152 | @c TODO: with Swiss bylaws/Satzung? | ||
153 | @c TODO: Rewrite one of the 'GNUnet eV may also' sentences. | ||
154 | The GNUnet project is supported by GNUnet e.V., a German association | ||
155 | where any developer can become a member. GNUnet e.V. serves as a | ||
156 | legal entity to hold the copyrights to GNUnet. GNUnet e.V. may also | ||
157 | choose to pay for project resources, and can collect donations. | ||
158 | GNUnet e.V. may also choose to adjust the license of the | ||
159 | software (with the constraint that it has to remain free software). | ||
160 | In 2018 we switched from GPL3 to AGPL3, in practice these changes do | ||
161 | not happen very often. | ||
162 | |||
163 | |||
164 | @node Typography | ||
165 | @section Typography | ||
166 | |||
167 | When giving examples for commands, shell prompts are used to show if the | ||
168 | command should/can be issued as root, or if "normal" user privileges are | ||
169 | sufficient. We use a @code{#} for root's shell prompt, a | ||
170 | @code{%} for users' shell prompt, assuming they use the C-shell or tcsh | ||
171 | and a @code{$} for bourne shell and derivatives. | ||
172 | @c TODO: Really? Why the different prompts? Do we already have c-shell | ||
173 | @c TODO: examples? | ||