gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lsd0003] branch master updated: Initial commit after holidays many chan


From: gnunet
Subject: [lsd0003] branch master updated: Initial commit after holidays many changes and rewrites
Date: Wed, 06 Jan 2021 10:53:47 +0100

This is an automated email from the git hooks/post-receive script.

elias-summermatter pushed a commit to branch master
in repository lsd0003.

The following commit(s) were added to refs/heads/master by this push:
     new 036b23c  Initial commit after holidays many changes and rewrites
036b23c is described below

commit 036b23cf20287d2f41856d594617b68efb3af9b8
Author: Elias Summermatter <elias.summermatter@seccom.ch>
AuthorDate: Wed Jan 6 10:52:58 2021 +0100

    Initial commit after holidays many changes and rewrites
---
 draft-summermatter-set-union.xml | 339 ++++++++++++++++++++++++++++++++++-----
 1 file changed, 300 insertions(+), 39 deletions(-)

diff --git a/draft-summermatter-set-union.xml b/draft-summermatter-set-union.xml
index 4ff8855..416308d 100644
--- a/draft-summermatter-set-union.xml
+++ b/draft-summermatter-set-union.xml
@@ -123,34 +123,132 @@
             </t>
         </section>
 
-        <section anchor="contributors" numbered="true" toc="default">
-        <name>Contributors</name>
-        <t>
-            The original GNU NET implementation of the  Byzantine Fault 
Tolerant Set Reconciliation has mainly been
-            written by Florian Dold and Christian Grothoff.
-        </t>
+        <section anchor="bf" numbered="true" toc="default">
+            <name>Bloom Filter</name>
+            <t>
+                A Bloom Filter (BF) is a space-efficient datastructure to test 
if am element is part of a set of elements.
+                Since a Bloom filter is a probabilistic datastructure its 
possible to have false positives but false negatives
+                are not possible.
+            </t>
+            <t>
+                A BF consists out of multiple buckets, every bucket can be set 
to 0 or 1. In the beginning all buckets are set
+                to 0. To add an element to the BF the corresponding buckets 
are set to 1. To map an element on the array of buckets
+                a mapping function M is required. The mapping function is 
non-injective a takes an element as input and outputs a
+                deterministic bit stream of the length of the BF. The Mapping 
function is described by the following mathematical equation:
+            </t>
+            <figure anchor="bf_mapping_function_math">
+                <artwork name="" type="" align="left" alt=""><![CDATA[
+        --------------------------------
+        # E->B^k (B=Z/l)
+        --------------------------------
+        # l = number buckets
+        # B = 0...1,
+        # k = number of bits per element
+        # E = Element from the set
+        --------------------------------
+                 ]]></artwork>
+            </figure>
+            <t>
+                Further in this document a bitstream outputted by the mapping 
function is represented by
+                a set of numeric values for example (0101) = (2,4).
+                In the BF the buckets are set to 1 if the corresponding bit in 
the bitstream is 1.
+                If there is a collision and a bucket is already set to 1, the 
bucket stays 1.
+            </t>
+            <t>
+                In the following example the element M(element) = (1,3) has 
been added:
+            </t>
+                <figure anchor="figure_bf_insert_0">
+                    <artwork name="" type="" align="left" alt=""><![CDATA[
+            bucket-0     bucket-1       bucket-2      bucket-3
+        +-------------+-------------+-------------+-------------+
+        |      0      |      1      |      0      |      1      |
+        +-------------+-------------+-------------+-------------+
+                 ]]></artwork>
+                </figure>
+            <t>
+                Is easy to see that the M(element) = (0,3) could be in the BF 
bellow and M(element) = (0,2) can't be
+                in the BF bellow:
+            </t>
+
+            <figure anchor="figure_bf_contains">
+                <artwork name="" type="" align="left" alt=""><![CDATA[
+            bucket-0     bucket-1       bucket-2      bucket-3
+        +-------------+-------------+-------------+-------------+
+        |      1      |      0      |      0      |      1      |
+        +-------------+-------------+-------------+-------------+
+                 ]]></artwork>
+            </figure>
+            <t>
+                Its not possible to remove an element from the BF because 
buckets can only be set to 1 or 0 so its not possible to
+                differentiate between buckets containing one or multiple 
elements. To remove elements from the BF a <xref target="cbf" format="title" />
+                is required.
+            </t>
+        </section>
+
+        <section anchor="cbf" numbered="true" toc="default">
+            <name>Counting Bloom Filter</name>
+            <t>
+                A Counting Bloom Filter (CBF) is an extension of the Bloom 
Filer datastructure it replaces the filed of
+                the bucket with an unsigned counter. This allows the removal 
of an elements from the CBF.
+            </t>
+            <t>
+                Adding an element to the CBF is similar to the adding 
operation of the BF but instead of setting the bucket on hit to 1 the bucket
+                is increased by 1. For example if two colliding elements 
M(element1) = (1,3) and
+                M(element2) = (0,3) are added to the CBF bucket 0 and 1 are 
set to 1 and bucket 3 (the colliding bucket) is set
+                to 2:
+            </t>
+            <figure anchor="figure_cbf_insert_0">
+                <artwork name="" type="" align="left" alt=""><![CDATA[
+            bucket-0     bucket-1       bucket-2      bucket-3
+        +-------------+-------------+-------------+-------------+
+        |      1      |      1      |      0      |      2      |
+        +-------------+-------------+-------------+-------------+
+                 ]]></artwork>
+            </figure>
+            <t>
+                The order of a bucket is defined by the counter, if a bucket 
contains two elements the counter is set to 2 so the order of
+                the bucket is two.
+            </t>
+            <t>
+                To remove an element form the CBF the counter is decreased by 
1.
+            </t>
+            <t>
+                Removing M(element2) = (1,3) from the CBF above:
+            </t>
+            <figure anchor="figure_cbf_remove_0">
+                <artwork name="" type="" align="left" alt=""><![CDATA[
+            bucket-0     bucket-1       bucket-2      bucket-3
+        +-------------+-------------+-------------+-------------+
+        |      1      |      0      |      0      |      1      |
+        +-------------+-------------+-------------+-------------+
+                 ]]></artwork>
+            </figure>
         </section>
 
         <section anchor="ibv" numbered="true" toc="default">
         <name>Invertible Bloom Filter</name>
             <t>
-                A Invertible Bloom Filter (IBF) is a probabilistic data 
structure that allows to determinate efficiently
-                but not with absolut certainty that a given element is 
presence or absence in a set.
-                The IBF knows three basic operations add element, remove 
element and decode.
+                A Invertible Bloom Filter (IBF) is a further extension of the 
CBF. The IBF extends the CBF with two more operations,
+                beside insert and remove the IBF supports a decode and set 
difference operation. This two extra operations allows the
+                IBF to calculate small differences in big sets very 
efficiently.
 
                 IBF are useful when there is the need to check a set of 
elements for the presence or absence of some
                 elements in a big set efficiently.
+
             </t>
             <section anchor="ibf_format" numbered="true" toc="default">
                 <name>Format</name>
                 <t>
-                    The storage format of an IBF is a "two-component data 
structure" that stores a hash value
-                    and a signed counter in a bucket. For every bit of the 
defined output length of the used hash functions
-                    there is a value and a count stored.
+                    The storage format of an IBF consists of n buckets that 
store a hash value
+                    and a signed counter. The decision how many bits are used 
for the counter and for the map filed
+                    is a tradeoff and has to be adjusted to the cup 
architecture and setsize for optimal performance.
+                    If a 4-bit counter reaches 7 or -8  this means the counter 
is overflown and the IBF does not decode
+                    anymore in this case the size of the IBF or the size of 
the counter has to be adjusted. In
+                    the described implementation the size of the counter and 
the HASH Value is 32-bit.
                 </t>
                     <figure anchor="figure_ibf_format">
                         <artwork name="" type="" align="left" alt=""><![CDATA[
-             bit-1          bit-2        bit-3         bit-4
+            bucket-0     bucket-1       bucket-2      bucket-3
         +-------------+-------------+-------------+-------------+-------
   count |   COUNTER   |   COUNTER   |   COUNTER   |   COUNTER   |  C...
         +-------------+-------------+-------------+-------------+------
@@ -177,7 +275,7 @@
                     <t>Empty IBF:</t>
                     <figure anchor="figure_ibf_insert_0">
                         <artwork name="" type="" align="left" alt=""><![CDATA[
-             bit-1          bit-2        bit-3         bit-4
+            bucket-0     bucket-1       bucket-2      bucket-3
         +-------------+-------------+-------------+-------------+
   count |      0      |      0      |      0      |      0      |
         +-------------+-------------+-------------+-------------+
@@ -188,7 +286,7 @@
                     <t>Insert first element: [0101] with hash 4242:</t>
                     <figure anchor="figure_ibf_insert_1">
                         <artwork name="" type="" align="left" alt=""><![CDATA[
-             bit-1          bit-2        bit-3         bit-4
+            bucket-0     bucket-1       bucket-2      bucket-3
         +-------------+-------------+-------------+-------------+
   count |      0      |      1      |      0      |      1      |
         +-------------+-------------+-------------+-------------+
@@ -199,7 +297,7 @@
                     <t>Insert second element: [1100] with hash 0101:</t>
                     <figure anchor="figure_ibf_insert_2">
                         <artwork name="" type="" align="left" alt=""><![CDATA[
-             bit-1          bit-2        bit-3         bit-4
+            bucket-0     bucket-1       bucket-2      bucket-3
         +-------------+-------------+-------------+-------------+
   count |      1      |      2      |      0      |      1      |
         +-------------+-------------+-------------+-------------+
@@ -222,7 +320,7 @@
                 <t>IBF with encoded elements:</t>
                 <figure anchor="figure_ibf_remove_0">
                     <artwork name="" type="" align="left" alt=""><![CDATA[
-             bit-1          bit-2        bit-3         bit-4
+            bucket-0     bucket-1       bucket-2      bucket-3
         +-------------+-------------+-------------+-------------+
   count |      1      |      2      |      0      |      1      |
         +-------------+-------------+-------------+-------------+
@@ -233,7 +331,7 @@
                     <t>Remove element [1100] with hash 0101 from the IBF:</t>
                     <figure anchor="figure_ibf_remove_1">
                         <artwork name="" type="" align="left" alt=""><![CDATA[
-             bit-1          bit-2        bit-3         bit-4
+            bucket-0     bucket-1       bucket-2      bucket-3
         +-------------+-------------+-------------+-------------+
   count |      0      |      1      |      0      |      1      |
         +-------------+-------------+-------------+-------------+
@@ -261,7 +359,7 @@
                     </t>
                     <figure anchor="figure_ibf_decode_0">
                         <artwork name="" type="" align="left" alt=""><![CDATA[
-             bit-1          bit-2        bit-3         bit-4
+            bucket-0     bucket-1       bucket-2      bucket-3
         +-------------+-------------+-------------+-------------+
   count |      1      |      2      |      0      |      1      |
         +-------------+-------------+-------------+-------------+
@@ -275,7 +373,7 @@
                     </t>
                     <figure anchor="figure_ibf_decode_1">
                         <artwork name="" type="" align="left" alt=""><![CDATA[
-             bit-1          bit-2        bit-3         bit-4
+            bucket-0     bucket-1       bucket-2      bucket-3
         +-------------+-------------+-------------+-------------+
   count |      0      |      1      |      0      |      1      |
         +-------------+-------------+-------------+-------------+
@@ -290,7 +388,7 @@
                     </t>
                     <figure anchor="figure_ibf_decode_2">
                         <artwork name="" type="" align="left" alt=""><![CDATA[
-             bit-1          bit-2        bit-3         bit-4
+            bucket-0     bucket-1       bucket-2      bucket-3
         +-------------+-------------+-------------+-------------+
   count |      0      |      0      |      0      |      0      |
         +-------------+-------------+-------------+-------------+
@@ -325,7 +423,7 @@
                     <t>IBF-A containing elements with hash 0101 and 4242:</t>
                     <figure anchor="figure_ibf_setdiff_A">
                         <artwork name="" type="" align="left" alt=""><![CDATA[
-             bit-1          bit-2        bit-3         bit-4
+            bucket-0     bucket-1       bucket-2      bucket-3
         +-------------+-------------+-------------+-------------+
   count |      1      |      2      |      0      |      1      |
         +-------------+-------------+-------------+-------------+
@@ -336,7 +434,7 @@
                     <t>IBF-B containing elements with hash 4242 and 5050</t>
                     <figure anchor="figure_ibf_setdiff_B">
                         <artwork name="" type="" align="left" alt=""><![CDATA[
-             bit-1          bit-2        bit-3         bit-4
+            bucket-0     bucket-1       bucket-2      bucket-3
         +-------------+-------------+-------------+-------------+
   count |      0      |      1      |      1      |      1      |
         +-------------+-------------+-------------+-------------+
@@ -347,7 +445,7 @@
                 <t>IBF-AB XOR value and subtract count:</t>
                 <figure anchor="figure_ibf_setdiff_AB">
                     <artwork name="" type="" align="left" alt=""><![CDATA[
-             bit-1          bit-2        bit-3         bit-4
+            bucket-0     bucket-1       bucket-2      bucket-3
         +-------------+-------------+-------------+-------------+
   count |      1      |      1      |      -1     |      0      |
         +-------------+-------------+-------------+-------------+
@@ -408,13 +506,13 @@
             <t>.
                 The initiating peer is initially in the <strong>Initiating 
Connection</strong> state and the receiving peer in the <strong>Expecting 
Connection</strong>
                 state. The first step of the protocol for the initiating peer 
is to send an <em><xref target="messages_operation_request" format="title" 
/></em> to the receiving peer and
-                change into <strong>Expect SE</strong> state. After receiving 
the <em><xref target="messages_operation_request" format="title" /></em> the 
receiving peer changes in <strong>Expecting IBF"</strong> state and answers 
with the
-                Strata Estimator (<em><xref target="messages_se" 
format="title" /></em>) . After the initiating peer has received the Strata 
Estimator the initiating peer decides
+                change into <strong>Expect SE</strong> state. After receiving 
the <em><xref target="messages_operation_request" format="title" /></em> the 
receiving peer changes in <strong>Expecting IBF</strong> state and answers with 
the
+                Strata Estimator (<em><xref target="messages_se" 
format="title" /></em>). After the initiating peer has received the Strata 
Estimator the initiating peer decides
                 with heuristics which operation mode is best fitted for the 
the estimated set difference and the environment.
-                The detailed tradeoff between the "Full Synchronisation Mode" 
and the "Individual Element Synchronisation Mode"
-                is explained in the section "Combined Mode".
+                The detailed tradeoff between the "Full Synchronisation Mode" 
and the <xref target="modeofoperation_individual-elements" format="title" />
+                is explained in the section <xref 
target="modeofoperation_combined-mode" format="title" />.
             </t>
-            <section anchor="modeofoperation_full-sync-client-with-bigger-set" 
numbered="true" toc="default">
+            <section anchor="modeofoperation_full-sync" numbered="true" 
toc="default">
                 <name>Full Synchronisation Mode</name>
 
                 <t>
@@ -426,7 +524,7 @@
                 <t>
                 ############# Statemaschine diagram full mode 
##################
                 </t>
-                <t><strong>STATES:</strong></t>
+                <t><strong>The behavior of the participants the different 
state is described below:</strong></t>
                 <dl>
                     <dt><strong>Expecting IBF:</strong></dt>
                     <dd>
@@ -443,20 +541,174 @@
                     <dd>
                         While a peer is in <strong>Full Receiving</strong> 
state the peer expects to continuously receiving elements from the other
                         peer. As soon as a the <em><xref 
target="messages_full_done" format="title" /></em> message is received the peer 
sends the remaining elements set to the other
-                        peer followed by a <em>Full Done</em>. After sending 
the last message the peer changes into <strong>Finished</strong> state.
+                        peer followed by a <em><xref 
target="messages_full_done" format="title" /></em>. After sending the last 
message the peer changes into <strong>Finished</strong> state.
                     </dd>
                 </dl>
             </section>
             <section anchor="modeofoperation_individual-elements" 
numbered="true" toc="default">
                 <name>Individual Element Synchronisation Mode</name>
-                <t>--- TEXT HERE ---</t>
+                <t>
+                    In Individual Element Synchronisation Mode and the 
initiating peer is in <strong>Expected SE</strong> state and receives a
+                    <em><xref target="messages_se" format="title" /></em> 
message or a <em><xref target="messages_sec" format="title" /></em> message. 
The initiating
+                    peer decodes the Strata Estimator and sends the complete 
<em><xref target="messages_ibf" format="title" /></em> back to the receiving 
peer
+                    and changes into the <strong>Passive Decoding</strong> 
state.
+                </t>
+                <t>
+                    The receiving peer in the <strong>Expecting IBF</strong> 
state receives a
+                    <em><xref target="messages_ibf" format="title" /></em> 
message from the initiating peer and changes into <strong>Expecting IBF 
Last</strong> if there
+                    are multiple IBFs sent otherwise and there is one 
<em><xref target="messages_ibf" format="title" /></em> message the reviving peer
+                    switches directly to the <strong>Active Decoding</strong> 
state.
+                </t>
+                <t>
+                    The peer that is in the <strong>Active Decoding</strong>, 
<strong>Finish closing</strong> or in the <strong>Expecting IBF Last</strong> 
state is called active
+                    peer and the peer that is in <strong>Passive 
Decoding</strong> and <strong>Finish Waiting</strong> state is called the 
passive peer.
+                </t>
+                <t>
+                    ############# Statemaschine Individual Element 
Synchronisation Mode ##################
+                </t>
+                <t><strong>The behavior of the participants the different 
state is described below:</strong></t>
+                <dl>
+                    <dt><strong>Passive Decoding:</strong></dt>
+                    <dd>
+                        <t>
+                        In the <strong>Passive Decoding</strong> state the 
passive peer reacts to request from the active peer.
+                        The action the passive peer executes depend on the 
message the passive peer receives in the <strong>Passive Decoding</strong> 
state from the active peer
+                        and is described bellow on message basis.
+                        </t>
+
+                        <dl>
+                            <dt><em><xref target="messages_inquiry" 
format="title" /></em> Message:</dt>
+                            <dd>
+                                The <em><xref target="messages_inquiry" 
format="title" /></em> message
+                                is received if the active peer requests the 
hash of an element that is missing in the active peers set.
+                                In this case the passive peer answers with an 
<em><xref target="messages_offer" format="title" /></em> message
+                                which contains a hash of the requested element.
+                            </dd>
+                            <dt><em><xref target="messages_demand" 
format="title" /></em> Message:</dt>
+                            <dd>
+                                The <em><xref target="messages_demand" 
format="title" /></em> message
+                                is received if the active peer requests a 
complete element that is missing in the active peers set. If the requested 
element is valid
+                                the passive peer answers with the <em><xref 
target="messages_elements" format="title" /></em> message which contains the 
requested element.
+                            </dd>
+                            <dt><em><xref target="messages_offer" 
format="title" /></em> Message:</dt>
+                            <dd>
+                                The <em><xref target="messages_offer" 
format="title" /></em> message
+                                is received if the active peer decodes an 
element that is present in the active peers set and is missing in the
+                                set of the passive peer. If the offered 
element is truly missing in the set of the passive peer, the passive peer 
answers
+                                with a <em><xref target="messages_demand" 
format="title" /></em> message.
+                            </dd>
+                            <dt><em><xref target="messages_elements" 
format="title" /></em> Message:</dt>
+                            <dd>
+                                A element that is received is saved and 
validated and not further action is taken.
+                            </dd>
+                            <dt><em><xref target="messages_ibf" format="title" 
/></em> Message:</dt>
+                            <dd>
+                                If an <em><xref target="messages_ibf" 
format="title" /></em> message is received the passive client assumes that the 
decoding of the IBF
+                                on the active site has failed and role change 
is initiated. The peer changes  directly
+                                into the <strong>Active Decoding</strong> 
state or in <strong>Expecting IBF Last</strong> state
+                                depending on how many IBFs are sent.
+                            </dd>
+                            <dt><em><xref target="messages_done" 
format="title" /></em> Message:</dt>
+                            <dd>
+                                Receiving the <em><xref target="messages_done" 
format="title" /></em> message signals
+                                the passive peer that all demand of the active 
peer have been satisfied. In this case the passive peer changes into
+                                <strong>Finish Waiting</strong> state.
+                            </dd>
+                        </dl>
+                    </dd>
+                    <dt><strong>Active Decoding:</strong></dt>
+                    <dd>
+                        <t>
+                            In <strong>Active Decoding</strong> state the 
active peer decodes the IBFs and evaluate the set difference
+                            between the active and passive peer. In case the 
IBF decodes successfully the active peer sends offers and
+                            inquiries to the passive client depending on which 
site the element is missing.
+                        </t>
+                        <t>
+                            If the IBF decodes a positive (1) pure bucket the 
element is missing on the passive peers site
+                            so the active peer sends an <em><xref 
target="messages_offer" format="title" /></em> to the active peer.
+                            A negative (-1) pure bucket indicates that a 
element is missing in the active peers set so the active peers
+                            sends <em><xref target="messages_inquiry" 
format="title" /></em> to the passive client.
+                        </t>
+                        <t>
+                            In case the IBF does not successfully decode the 
active peer sends an IBF to the passive client
+                            and changes into <strong>Passive Decoding</strong> 
state. This initiates a role change
+                            active->passive.
+                        </t>
+                        <t>
+                            All other actions the active peer executes depend 
on the message the active peer receives from
+                            the passive peer. The actions are described below 
on message basis:
+                        </t>
+                        <dl>
+                            <dt><em><xref target="messages_offer" 
format="title" /></em> Message:</dt>
+                            <dd>
+                                The <em><xref target="messages_offer" 
format="title" /></em> message indicates that the
+                                passive peer received a <em><xref 
target="messages_inquiry" format="title" /></em> message from
+                                the active peer. If a Inquiry has been sent 
and the offered element is missing in the active peers set,
+                                the active peer sends a <em><xref 
target="messages_demand" format="title" /></em> message to the
+                                passive peer.
+                            </dd>
+                            <dt><em><xref target="messages_demand" 
format="title" /></em> Message:</dt>
+                            <dd>
+                               The <em><xref target="messages_demand" 
format="title" /></em> message indicates that the
+                                passive peer received a <em><xref 
target="messages_offer" format="title" /></em> from
+                                the active peer. The active peer satisfies the 
demand of the passive peer by sending
+                                <em><xref target="messages_elements" 
format="title" /></em> message if a offer request
+                                for the element has been sent.
+                            </dd>
+                            <dt><em><xref target="messages_elements" 
format="title" /></em> Message:</dt>
+                            <dd>
+                                A element that is received is saved and 
validated and not further action is taken.
+                            </dd>
+                            <dt><em><xref target="messages_done" 
format="title" /></em> Message:</dt>
+                            <dd>
+                                Receiving the message <em><xref 
target="messages_done" format="title" /></em> indicates
+                                that all demands of the passive peer have been 
satisfied. The active peer then changes into the
+                                state <strong>Finish Closing</strong> state.
+                            </dd>
+                        </dl>
+                    </dd>
+                    <dt><strong>Expecing IBF Last</strong></dt>
+                    <dd>
+                        <t>
+                            In the <strong>Expecing IBF Last</strong> the 
active peer continuously receives <em><xref target="messages_ibf" 
format="title" /></em>
+                            messages from the passive peer. When the last 
<em><xref target="messages_ibf" format="title" /></em> message is resived
+                            the active peer changes into <strong>Active 
Decoding</strong> state.
+                        </t>
+                    </dd>
+                    <dt><strong>Finish Closing</strong> / <strong>Finish 
Waiting</strong></dt>
+                    <dd>
+                        <t>
+                            In this states the peers are waiting for all 
demands to be satisfied and for the synchronisation
+                            to be completed. When all demands are satisfied 
the peer changes into state <strong>done</strong>.
+                        </t>
+                    </dd>
+                </dl>
             </section>
             <section anchor="modeofoperation_combined-mode" numbered="true" 
toc="default">
                 <name>Combined Mode</name>
                 <t>
+                    In the Combined Mode the <xref 
target="modeofoperation_full-sync" format="title" /> and the <xref 
target="modeofoperation_individual-elements" format="title" />
+                    are combined to reach the optimal result.
+                </t>
+                <t>
+                    The <xref target="modeofoperation_individual-elements" 
format="title" /> is only efficient on small set
+                    differences or if the byte-size of the elements is large. 
Is the set difference big for example
+                    in the initial synchronisation a <xref 
target="modeofoperation_full-sync" format="title" /> is
+                    more efficient. The exact heuristics and parameter on the 
basis the protocol evaluates which mode
+                    is the optimal is described in the <xref 
target="performance" format="title" /> section of this document.
+                </t>
+                <t>
+                    There are two main conditions when a <xref 
target="modeofoperation_full-sync" format="title" />
+                    is enforced. The first condition is if the flag 
"FULL_SYNC" is set, this is used for testing purposes only and
+                    should not be used in production environment. The second 
condition applies if one of the peers has an empty
+                    set and the set is initially synchronized.
+                </t>
+                <t>
+                    ############# NOTE ############
                     To ensure that ...... the difference is multiplied by 1.5 
if there are more than 200 elements differences between the sets (WHY? line 
1398).
                     The Full Synchronisation Mode is used if the flag to force 
full sync is set, the estimated difference between the two sets is bigger
                     than 25% or the set size of the receiving peer is zero. 
Otherwise the Individual Element Synchronisation Mode is used.
+                    ############# NOTE END############
                 </t>
             </section>
         </section>
@@ -577,7 +829,7 @@
                             is a 8-bit unsigned integer which signals the 
order of the IBF. The order of the IBF
                             is defined as the logarithm of the number of 
buckets of the IBF.
                         </dd>
-                        <dt>PAD1</dt>
+                        <dt>PAD1  ### PAD1 und 2 zusammen nehmen</dt>
                         <dd>
                             is 8-bit always set to zero
                         </dd>
@@ -587,7 +839,7 @@
                         </dd>
                         <dt>OFFSET</dt>
                         <dd>
-                            is a 32-bit unsigned integer which signals the 
offset of the strata estimator.
+                            is a 32-bit unsigned integer which signals the 
offset of the strata estimator.  ###  Beser erklähren postion der nachfolgenden 
ibf slices im orignial
                         </dd>
                         <dt>SALT</dt>
                         <dd>
@@ -622,12 +874,12 @@
                 <section anchor="messages_elements_description" 
numbered="true" toc="default">
                     <name>Description</name>
                     <t>
-                        The Element message contains a element that is synced 
in the <xref target="modeofoperation_individual-elements" format="title" />
+                        The Element message contains an element that is 
synchronized in the <xref target="modeofoperation_individual-elements" 
format="title" />
                         and transmits a full element between the peers.
                     </t>
                     <t>
                         This message is sent in the state <strong>Active 
Decoding</strong> and <strong>Passive Decoding</strong>
-                        as answer to an <em><xref target="messages_demand" 
format="title" /></em> message from the remote peer.
+                        as answer to a <em><xref target="messages_demand" 
format="title" /></em> message from the remote peer.
                         The Element message can also be received in the 
<strong>Finish Closing</strong> or <strong>Finish Waiting</strong>
                         state after receiving a <em><xref 
target="messages_done" format="title" /></em> message from the remote peer, in 
this
                         case the client changes to the 
<strong>Finished</strong> state as soon as all demands for elements have been 
satisfied.
@@ -652,11 +904,13 @@
                     <dl>
                         <dt>MSG SIZE</dt>
                         <dd>
+                            # is 16-bit unsigned integer in network byte order 
witch describes the message size in bytes and the header is mitgezählt.
                             is a 16-bit unsigned integer in network byte order 
(BIG ENDIAN) which describes the the message size.
                         </dd>
                         <dt>MSG TYPE</dt>
                         <dd>
-                            is a 16-bit unsigned integer in network byte order 
(BIG ENDIAN) with the value as registered in GANA
+                            the value of .... as registerd in [GANA] in 
network byt order
+                            is a 16-bit unsigned integer in network byte order 
(BIG ENDIAN) with the value as registered in GANA # Symbolischer name von gana 
hinzufügen
                         </dd>
                         <dt>E TYPE</dt>
                         <dd>
@@ -719,7 +973,7 @@
                         <dd>
                             is a 16-bit unsigned integer in network byte order 
(BIG ENDIAN) with the value as registered in GANA
                         </dd>
-                        <dt>GNUNET HASH</dt>
+                        <dt>HASH ### Replace GNUENT HASH durch HASH</dt>
                         <dd>
                             is a SHA 512-bit hash of the element that is 
requested with a inquiry message.
                         </dd>
@@ -947,7 +1201,7 @@
                         </dd>
                         <dt>SETSIZE</dt>
                         <dd>
-                            is a 64-bit unsigned integer that is defined by 
the size of the set the SE is
+                            is a 64-bit unsigned integer that is defined by 
the size of the set the SE is #### Mögliche optimierung wäre wäre hier eine 
32bit padding einzuführen damit es aligned
                         </dd>
                         <dt>SE-SLICES</dt>
                         <dd>
@@ -1081,6 +1335,13 @@ Type    | Name                       | References | 
Description
             </figure>
         </section>
         <!-- gana -->
+        <section anchor="contributors" numbered="true" toc="default">
+            <name>Contributors</name>
+            <t>
+                The original GNU NET implementation of the  Byzantine Fault 
Tolerant Set Reconciliation has mainly been
+                written by Florian Dold and Christian Grothoff.
+            </t>
+        </section>
     </middle>
     <back>
         <references>

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]