lsd0004

LSD0004: R5N Distributed Hash Table
Log | Files | Refs

commit 8409ac89177e4218abbfa422cb9354c39d12ec32
parent 07db1165214920e669f1d50f62e54010474858a0
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date:   Tue, 24 May 2022 21:49:01 +0200

mutator change

Diffstat:
Mdraft-schanzen-r5n.xml | 48+++++++++++++++++++++---------------------------
1 file changed, 21 insertions(+), 27 deletions(-)

diff --git a/draft-schanzen-r5n.xml b/draft-schanzen-r5n.xml @@ -1576,10 +1576,6 @@ BEGIN <dd> the variable-length extended query. Optional. </dd> - <dt>MUTATOR</dt> - <dd> - The 32-bit mutator for the result filter. - </dd> </dl> </section> <section anchor="result_filter"> @@ -1602,30 +1598,9 @@ BEGIN it is possible that a desireable result is filtered by a result filter because of a false-positive test. </t> - <t> - To address this problem, R<sup>5</sup>N uses a <tt>MUTATOR</tt> value - which allows block implemenations that use probabilistic data - structures for result filters to additionally "randomize" the - computation of a probabilistic data structure while remaining - deterministic across peers. The 32-bit <tt>MUTATOR</tt> - value is set by the peer initiating the GET request, and changed - every time the GET request is repeated by the initiator. Peers - forwarding GET requests <bcp14>MUST</bcp14> not change the - mutator value included in the <tt>GetMessage</tt> as they might not - be able to recalculate the result filter with a different <tt>MUTATOR</tt> - value. - </t> - <t> - By properly including the <tt>MUTATOR</tt> value in a probabilistic process, repeated - requests have statistically independent probabilities of creating - false-positives in a result filter. Thus, even if for one request - a result filter may exclude a result as a false-positive - match, subsequent requests are likely to not have the same - false-positives. - </t> - <t> + <t> How exactly a block result is added to a result filter - (together with the <tt>MUTATOR</tt>) <bcp14>MUST</bcp14> be + <bcp14>MUST</bcp14> be specified as part of the definition of a block type. </t> </section> @@ -2208,6 +2183,25 @@ gnunet+tcp://12.3.4.5/ \ array. In particular, <tt>K</tt> is never transmitted. </dd> </dl> +<t> + R<sup>5</sup>N HELLO blocks use a <tt>MUTATOR</tt> value + to additionally "randomize" the computation of the bloom filter while remaining + deterministic across peers. The 32-bit <tt>MUTATOR</tt> + value is set by the peer initiating the GET request, and changed + every time the GET request is repeated by the initiator. Peers + forwarding GET requests <bcp14>MUST</bcp14> not change the + mutator value included in the <tt>RESULT_FILTER</tt> as they might not + be able to recalculate the result filter with a different <tt>MUTATOR</tt> + value. + </t> + <t> + Consequently, repeated + requests have statistically independent probabilities of creating + false-positives in a result filter. Thus, even if for one request + a result filter may exclude a result as a false-positive + match, subsequent requests are likely to not have the same + false-positives. + </t> <t> To filter results of HELLO blocks using the Bloom filter, the