diff options
author | Julius Bünger <buenger@mytum.de> | 2019-06-21 23:22:04 +0200 |
---|---|---|
committer | Julius Bünger <buenger@mytum.de> | 2019-06-21 23:23:02 +0200 |
commit | 67b161e86e95152906c80c4fa8cf067614e8653e (patch) | |
tree | a3b153a82c6be06bc6491d59c1f79c69d3753148 /doc/handbook | |
parent | 96f72f827b3bdc01f9a75ec1913a9e15dcb608ea (diff) | |
download | gnunet-67b161e86e95152906c80c4fa8cf067614e8653e.tar.gz gnunet-67b161e86e95152906c80c4fa8cf067614e8653e.zip |
Doc RPS: Add first high-level intro to rps
Diffstat (limited to 'doc/handbook')
-rw-r--r-- | doc/handbook/chapters/keyconcepts.texi | 44 |
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 | |||
319 | identities, for example to separate their activities online. Egos can | 320 | identities, for example to separate their activities online. Egos can |
320 | correspond to "pseudonyms" or "real-world identities". Technically an | 321 | correspond to "pseudonyms" or "real-world identities". Technically an |
321 | ego is first of all a key pair of a public- and private-key. | 322 | ego 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 | |||
329 | In literature, Random Peer Sampling (RPS) refers to the problem of | ||
330 | reliably drawing random samples from an unstructured p2p network. | ||
331 | |||
332 | Doing so in a reliable manner is not only hard because of inherent | ||
333 | problems but also because of possible malicious peers that could try to | ||
334 | bias the selection. | ||
335 | |||
336 | It is useful for all kind of gossip protocols that require the selection | ||
337 | of random peers in the whole network like gathering statistics, | ||
338 | spreading and aggregating information in the network, load balancing and | ||
339 | overlay topology management. | ||
340 | |||
341 | The approach chosen in the rps implementation in gnunet follows the | ||
342 | Brahms@uref{https://bib.gnunet.org/full/date.html\#2009_5f0} design. | ||
343 | |||
344 | The current state is "work in progress". There are a lot of things that | ||
345 | need to be done, primarily finishing the experimental evaluation and a | ||
346 | re-design of the API. | ||
347 | |||
348 | The abstract idea is to subscribe to connect to/start the rps service | ||
349 | and request random peers that will be returned when they represent a | ||
350 | random selection from the whole network with high probability. | ||
351 | |||
352 | An additional feature to the original Brahms-design is the selection of | ||
353 | sub-groups: The gnunet implementation of rps enables clients to ask for | ||
354 | random 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 | |||
357 | Another addition to the original protocol was made: The sampler | ||
358 | mechanism that was introduced in Brahms was slightly adapted and used to | ||
359 | actually sample the peers and returned to the client. | ||
360 | This is necessary as the original design only keeps peers connected to | ||
361 | random other peers in the network. In order to return random peers to | ||
362 | client requests independently random, they cannot be drawn from the | ||
363 | connected peers. | ||
364 | The adapted sampler makes sure that each request for random peers is | ||
365 | independent from the others. | ||