aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/handbook/chapters/keyconcepts.texi44
1 files changed, 44 insertions, 0 deletions
diff --git a/doc/handbook/chapters/keyconcepts.texi b/doc/handbook/chapters/keyconcepts.texi
index 4900ed328..42718b245 100644
--- a/doc/handbook/chapters/keyconcepts.texi
+++ b/doc/handbook/chapters/keyconcepts.texi
@@ -19,6 +19,7 @@ The second part describes concepts specific to anonymous file-sharing.
19* Peer Identities:: 19* Peer Identities::
20* Zones in the GNU Name System (GNS Zones):: 20* Zones in the GNU Name System (GNS Zones)::
21* Egos:: 21* Egos::
22* Random Peer Sampling::
22@end menu 23@end menu
23 24
24@cindex Authentication 25@cindex Authentication
@@ -319,3 +320,46 @@ Egos are your "identities" in GNUnet. Any user can assume multiple
319identities, for example to separate their activities online. Egos can 320identities, for example to separate their activities online. Egos can
320correspond to "pseudonyms" or "real-world identities". Technically an 321correspond to "pseudonyms" or "real-world identities". Technically an
321ego is first of all a key pair of a public- and private-key. 322ego is first of all a key pair of a public- and private-key.
323
324
325@cindex Random Peer Sampling
326@node Random Peer Sampling
327@section Random Peer Sampling
328
329In literature, Random Peer Sampling (RPS) refers to the problem of
330reliably drawing random samples from an unstructured p2p network.
331
332Doing so in a reliable manner is not only hard because of inherent
333problems but also because of possible malicious peers that could try to
334bias the selection.
335
336It is useful for all kind of gossip protocols that require the selection
337of random peers in the whole network like gathering statistics,
338spreading and aggregating information in the network, load balancing and
339overlay topology management.
340
341The approach chosen in the rps implementation in gnunet follows the
342Brahms@uref{https://bib.gnunet.org/full/date.html\#2009_5f0} design.
343
344The current state is "work in progress". There are a lot of things that
345need to be done, primarily finishing the experimental evaluation and a
346re-design of the API.
347
348The abstract idea is to subscribe to connect to/start the rps service
349and request random peers that will be returned when they represent a
350random selection from the whole network with high probability.
351
352An additional feature to the original Brahms-design is the selection of
353sub-groups: The gnunet implementation of rps enables clients to ask for
354random peers from a group that is defined by a common shared secret.
355(The secret could of course also be public, depending on the use-case.)
356
357Another addition to the original protocol was made: The sampler
358mechanism that was introduced in Brahms was slightly adapted and used to
359actually sample the peers and returned to the client.
360This is necessary as the original design only keeps peers connected to
361random other peers in the network. In order to return random peers to
362client requests independently random, they cannot be drawn from the
363connected peers.
364The adapted sampler makes sure that each request for random peers is
365independent from the others.