diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/handbook/chapters/developer.texi | 44 | ||||
-rw-r--r-- | doc/handbook/chapters/keyconcepts.texi | 43 |
2 files changed, 44 insertions, 43 deletions
diff --git a/doc/handbook/chapters/developer.texi b/doc/handbook/chapters/developer.texi index 64ebec46e..e101b06bd 100644 --- a/doc/handbook/chapters/developer.texi +++ b/doc/handbook/chapters/developer.texi | |||
@@ -79,6 +79,7 @@ new chapters, sections or insightful comments. | |||
79 | * File-sharing (FS) Subsystem:: | 79 | * File-sharing (FS) Subsystem:: |
80 | * REGEX Subsystem:: | 80 | * REGEX Subsystem:: |
81 | * REST Subsystem:: | 81 | * REST Subsystem:: |
82 | * RPS Subsystem:: | ||
82 | @end menu | 83 | @end menu |
83 | 84 | ||
84 | @node Developer Introduction | 85 | @node Developer Introduction |
@@ -8863,3 +8864,46 @@ so please make sure that endpoints are unambiguous. | |||
8863 | 8864 | ||
8864 | This is WIP. Endpoints should be documented appropriately. | 8865 | This is WIP. Endpoints should be documented appropriately. |
8865 | Preferably using annotations. | 8866 | Preferably using annotations. |
8867 | |||
8868 | |||
8869 | @cindex RPS Subsystem | ||
8870 | @node RPS Subsystem | ||
8871 | @section RPS Subsystem | ||
8872 | |||
8873 | In literature, Random Peer Sampling (RPS) refers to the problem of | ||
8874 | reliably drawing random samples from an unstructured p2p network. | ||
8875 | |||
8876 | Doing so in a reliable manner is not only hard because of inherent | ||
8877 | problems but also because of possible malicious peers that could try to | ||
8878 | bias the selection. | ||
8879 | |||
8880 | It is useful for all kind of gossip protocols that require the selection | ||
8881 | of random peers in the whole network like gathering statistics, | ||
8882 | spreading and aggregating information in the network, load balancing and | ||
8883 | overlay topology management. | ||
8884 | |||
8885 | The approach chosen in the rps implementation in GNUnet follows the | ||
8886 | Brahms@uref{https://bib.gnunet.org/full/date.html\#2009_5f0} design. | ||
8887 | |||
8888 | The current state is "work in progress". There are a lot of things that | ||
8889 | need to be done, primarily finishing the experimental evaluation and a | ||
8890 | re-design of the API. | ||
8891 | |||
8892 | The abstract idea is to subscribe to connect to/start the rps service | ||
8893 | and request random peers that will be returned when they represent a | ||
8894 | random selection from the whole network with high probability. | ||
8895 | |||
8896 | An additional feature to the original Brahms-design is the selection of | ||
8897 | sub-groups: The GNUnet implementation of rps enables clients to ask for | ||
8898 | random peers from a group that is defined by a common shared secret. | ||
8899 | (The secret could of course also be public, depending on the use-case.) | ||
8900 | |||
8901 | Another addition to the original protocol was made: The sampler | ||
8902 | mechanism that was introduced in Brahms was slightly adapted and used to | ||
8903 | actually sample the peers and returned to the client. | ||
8904 | This is necessary as the original design only keeps peers connected to | ||
8905 | random other peers in the network. In order to return random peers to | ||
8906 | client requests independently random, they cannot be drawn from the | ||
8907 | connected peers. | ||
8908 | The adapted sampler makes sure that each request for random peers is | ||
8909 | independent from the others. | ||
diff --git a/doc/handbook/chapters/keyconcepts.texi b/doc/handbook/chapters/keyconcepts.texi index c5cc395c8..bdfa5b631 100644 --- a/doc/handbook/chapters/keyconcepts.texi +++ b/doc/handbook/chapters/keyconcepts.texi | |||
@@ -19,7 +19,6 @@ 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:: | ||
23 | @end menu | 22 | @end menu |
24 | 23 | ||
25 | @cindex Authentication | 24 | @cindex Authentication |
@@ -321,45 +320,3 @@ identities, for example to separate their activities online. Egos can | |||
321 | correspond to "pseudonyms" or "real-world identities". Technically an | 320 | correspond to "pseudonyms" or "real-world identities". Technically an |
322 | ego is first of all a key pair of a public- and private-key. | 321 | ego is first of all a key pair of a public- and private-key. |
323 | 322 | ||
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. | ||