aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2020-08-19 13:40:28 +0200
committerChristian Grothoff <christian@grothoff.org>2020-08-19 13:40:28 +0200
commitaa2b84ff8caed28aec31e9a39375a02fceeb4e8c (patch)
tree00713ee32e411fb033d126871f086a8407d3f564
parent608f3502de2bc0745e9e8078e048cf9ac86928c8 (diff)
downloadgnunet-aa2b84ff8caed28aec31e9a39375a02fceeb4e8c.tar.gz
gnunet-aa2b84ff8caed28aec31e9a39375a02fceeb4e8c.zip
-fix more links
-rw-r--r--doc/handbook/chapters/developer.texi187
1 files changed, 91 insertions, 96 deletions
diff --git a/doc/handbook/chapters/developer.texi b/doc/handbook/chapters/developer.texi
index 45f3f1afa..369e5327c 100644
--- a/doc/handbook/chapters/developer.texi
+++ b/doc/handbook/chapters/developer.texi
@@ -6930,24 +6930,24 @@ arbitrary binary @emph{data}.
6930The size of an element's data is limited to around 62 KB. 6930The size of an element's data is limited to around 62 KB.
6931 6931
6932@menu 6932@menu
6933* Local Sets:: 6933* Intersection Sets::
6934* Set Modifications:: 6934* Set Intersection Modifications::
6935* Set Operations:: 6935* Set Intersection Operations::
6936* Result Elements:: 6936* Intersection Result Elements::
6937* libgnunetseti:: 6937* libgnunetseti::
6938* The SETI Client-Service Protocol:: 6938* The SETI Client-Service Protocol::
6939* The SETI Intersection Peer-to-Peer Protocol:: 6939* The SETI Intersection Peer-to-Peer Protocol::
6940@end menu 6940@end menu
6941 6941
6942@node Local Sets 6942@node Intersection Sets
6943@subsection Local Sets 6943@subsection Intersection Sets
6944 6944
6945Sets created by a local client can be modified (by adding additional elements) 6945Sets created by a local client can be modified (by adding additional elements)
6946and reused for multiple operations. If elements are to be removed, a fresh 6946and reused for multiple operations. If elements are to be removed, a fresh
6947set must be created by the client. 6947set must be created by the client.
6948 6948
6949@node Set Modifications 6949@node Set Intersection Modifications
6950@subsection Set Modifications 6950@subsection Set Intersection Modifications
6951 6951
6952Even when set operations are active, one can add elements 6952Even when set operations are active, one can add elements
6953to a set. 6953to a set.
@@ -6957,8 +6957,8 @@ only sees a snapshot of the set from the time the operation was started.
6957This mechanism is @emph{not} implemented by copying the whole set, but by 6957This mechanism is @emph{not} implemented by copying the whole set, but by
6958attaching @emph{generation information} to each element and operation. 6958attaching @emph{generation information} to each element and operation.
6959 6959
6960@node Set Operations 6960@node Set Intersection Operations
6961@subsection Set Operations 6961@subsection Set Intersection Operations
6962 6962
6963Set operations can be started in two ways: Either by accepting an 6963Set operations can be started in two ways: Either by accepting an
6964operation request from a remote peer, or by requesting a set operation 6964operation request from a remote peer, or by requesting a set operation
@@ -6972,8 +6972,8 @@ type and application id.
6972Once notified of an incoming set request, the client can accept the set 6972Once notified of an incoming set request, the client can accept the set
6973request (providing a local set for the operation) or reject it. 6973request (providing a local set for the operation) or reject it.
6974 6974
6975@node Result Elements 6975@node Intersection Result Elements
6976@subsection Result Elements 6976@subsection Intersection Result Elements
6977 6977
6978The SET service has two @emph{result modes} that determine how an 6978The SET service has two @emph{result modes} that determine how an
6979operation's result set is delivered to the client: 6979operation's result set is delivered to the client:
@@ -6990,15 +6990,15 @@ peer's initial set but not in the intersection are returned.
6990@subsection libgnunetseti 6990@subsection libgnunetseti
6991 6991
6992@menu 6992@menu
6993* Sets:: 6993* Intersection Set API::
6994* Listeners:: 6994* Intersection Listeners::
6995* Operations:: 6995* Intersection Operations::
6996* Supplying a Set:: 6996* Supplying a Set for Intersection::
6997* The Result Callback:: 6997* The Intersection Result Callback::
6998@end menu 6998@end menu
6999 6999
7000@node Sets 7000@node Intersection Set API
7001@subsubsection Sets 7001@subsubsection Intersection Set API
7002 7002
7003New sets are created with @code{GNUNET_SETI_create}. Only the local peer's 7003New sets are created with @code{GNUNET_SETI_create}. Only the local peer's
7004configuration (as each set has its own client connection) must be provided. 7004configuration (as each set has its own client connection) must be provided.
@@ -7009,8 +7009,8 @@ functions dealing with sets. This return value must always be checked.
7009 7009
7010Elements are added with @code{GNUNET_SET_add_element}. 7010Elements are added with @code{GNUNET_SET_add_element}.
7011 7011
7012@node Listeners 7012@node Intersection Listeners
7013@subsubsection Listeners 7013@subsubsection Intersection Listeners
7014 7014
7015Listeners are created with @code{GNUNET_SET_listen}. Each time time a 7015Listeners are created with @code{GNUNET_SET_listen}. Each time time a
7016remote peer suggests a set operation with an application id and operation 7016remote peer suggests a set operation with an application id and operation
@@ -7020,16 +7020,16 @@ or @code{GNUNET_SET_reject}. Note that the operation will not be started
7020until the client calls @code{GNUNET_SET_commit} 7020until the client calls @code{GNUNET_SET_commit}
7021(see Section "Supplying a Set"). 7021(see Section "Supplying a Set").
7022 7022
7023@node Operations 7023@node Intersection Operations
7024@subsubsection Operations 7024@subsubsection Intersection Operations
7025 7025
7026Operations to be initiated by the local peer are created with 7026Operations to be initiated by the local peer are created with
7027@code{GNUNET_SET_prepare}. Note that the operation will not be started 7027@code{GNUNET_SET_prepare}. Note that the operation will not be started
7028until the client calls @code{GNUNET_SET_commit} 7028until the client calls @code{GNUNET_SET_commit}
7029(see Section "Supplying a Set"). 7029(see Section "Supplying a Set").
7030 7030
7031@node Supplying a Set 7031@node Supplying a Set for Intersection
7032@subsubsection Supplying a Set 7032@subsubsection Supplying a Set for Intersection
7033 7033
7034To create symmetry between the two ways of starting a set operation 7034To create symmetry between the two ways of starting a set operation
7035(accepting and initiating it), the operation handles returned by 7035(accepting and initiating it), the operation handles returned by
@@ -7040,8 +7040,8 @@ The client must call @code{GNUNET_SET_commit} to specify a set to use for
7040an operation. @code{GNUNET_SET_commit} may only be called once per set 7040an operation. @code{GNUNET_SET_commit} may only be called once per set
7041operation. 7041operation.
7042 7042
7043@node The Result Callback 7043@node The Intersection Result Callback
7044@subsubsection The Result Callback 7044@subsubsection The Intersection Result Callback
7045 7045
7046Clients must specify both a result mode and a result callback with 7046Clients must specify both a result mode and a result callback with
7047@code{GNUNET_SET_accept} and @code{GNUNET_SET_prepare}. The result 7047@code{GNUNET_SET_accept} and @code{GNUNET_SET_prepare}. The result
@@ -7056,15 +7056,15 @@ or if it is in the difference between the original set and the final set.
7056@subsection The SETI Client-Service Protocol 7056@subsection The SETI Client-Service Protocol
7057 7057
7058@menu 7058@menu
7059* Creating Sets:: 7059* Creating Intersection Sets::
7060* Listeners2:: 7060* Listeners for Intersection::
7061* Initiating Operations:: 7061* Initiating Intersection Operations::
7062* Modifying Sets:: 7062* Modifying Intersection Sets::
7063* Results and Operation Status:: 7063* Intersection Results and Operation Status::
7064@end menu 7064@end menu
7065 7065
7066@node Creating Sets 7066@node Creating Intersection Sets
7067@subsubsection Creating Sets 7067@subsubsection Creating Intersection Sets
7068 7068
7069For each set of a client, there exists a client connection to the service. 7069For each set of a client, there exists a client connection to the service.
7070Sets are created by sending the @code{GNUNET_SERVICE_SETI_CREATE} message 7070Sets are created by sending the @code{GNUNET_SERVICE_SETI_CREATE} message
@@ -7072,10 +7072,8 @@ over a new client connection. Multiple operations for one set are
7072multiplexed over one client connection, using a request id supplied by 7072multiplexed over one client connection, using a request id supplied by
7073the client. 7073the client.
7074 7074
7075@node Listeners2 7075@node Listeners for Intersection
7076@subsubsection Listeners2 7076@subsubsection Listeners for Intersection
7077
7078
7079 7077
7080Each listener also requires a seperate client connection. By sending the 7078Each listener also requires a seperate client connection. By sending the
7081@code{GNUNET_SERVICE_SETI_LISTEN} message, the client notifies the service 7079@code{GNUNET_SERVICE_SETI_LISTEN} message, the client notifies the service
@@ -7086,15 +7084,15 @@ In contrast, when accepting an incoming request, a
7086@code{GNUNET_SERVICE_SETI_ACCEPT} message must be sent over the@ set that 7084@code{GNUNET_SERVICE_SETI_ACCEPT} message must be sent over the@ set that
7087is supplied for the set operation. 7085is supplied for the set operation.
7088 7086
7089@node Initiating Operations 7087@node Initiating Intersection Operations
7090@subsubsection Initiating Operations 7088@subsubsection Initiating Intersection Operations
7091 7089
7092Operations with remote peers are initiated by sending a 7090Operations with remote peers are initiated by sending a
7093@code{GNUNET_SERVICE_SETI_EVALUATE} message to the service. The@ client 7091@code{GNUNET_SERVICE_SETI_EVALUATE} message to the service. The@ client
7094connection that this message is sent by determines the set to use. 7092connection that this message is sent by determines the set to use.
7095 7093
7096@node Modifying Sets 7094@node Modifying Intersection Sets
7097@subsubsection Modifying Sets 7095@subsubsection Modifying Intersection Sets
7098 7096
7099Sets are modified with the @code{GNUNET_SERVICE_SETI_ADD} message. 7097Sets are modified with the @code{GNUNET_SERVICE_SETI_ADD} message.
7100 7098
@@ -7104,8 +7102,8 @@ Sets are modified with the @code{GNUNET_SERVICE_SETI_ADD} message.
7104@c %* Iterating Sets:: 7102@c %* Iterating Sets::
7105@c %@end menu 7103@c %@end menu
7106 7104
7107@node Results and Operation Status 7105@node Intersection Results and Operation Status
7108@subsubsection Results and Operation Status 7106@subsubsection Intersection Results and Operation Status
7109 7107
7110The service notifies the client of result elements and success/failure of 7108The service notifies the client of result elements and success/failure of
7111a set operation with the @code{GNUNET_SERVICE_SETI_RESULT} message. 7109a set operation with the @code{GNUNET_SERVICE_SETI_RESULT} message.
@@ -7136,12 +7134,12 @@ just the initial handshake.
7136 7134
7137 7135
7138@menu 7136@menu
7139* The Bloom filter exchange:: 7137* The Bloom filter exchange in SETI::
7140* Salt:: 7138* Intersection Salt::
7141@end menu 7139@end menu
7142 7140
7143@node The Bloom filter exchange 7141@node The Bloom filter exchange in SETI
7144@subsubsection The Bloom filter exchange 7142@subsubsection The Bloom filter exchange in SETI
7145 7143
7146In this phase, each peer transmits a Bloom filter over the remaining 7144In this phase, each peer transmits a Bloom filter over the remaining
7147keys of the local set to the other peer using a 7145keys of the local set to the other peer using a
@@ -7165,10 +7163,10 @@ that the latest set is the final result.
7165Otherwise, the receiver starts another Bloom filter exchange, except 7163Otherwise, the receiver starts another Bloom filter exchange, except
7166this time as the sender. 7164this time as the sender.
7167 7165
7168@node Salt 7166@node Intersection Salt
7169@subsubsection Salt 7167@subsubsection Intersection Salt
7170 7168
7171Bloomfilter operations are probabilistic: With some non-zero probability 7169Bloom filter operations are probabilistic: With some non-zero probability
7172the test may incorrectly say an element is in the set, even though it is 7170the test may incorrectly say an element is in the set, even though it is
7173not. 7171not.
7174 7172
@@ -7194,24 +7192,24 @@ arbitrary binary @emph{data}. The size of an element's data is limited to
7194around 62 KB. 7192around 62 KB.
7195 7193
7196@menu 7194@menu
7197* Local Sets:: 7195* Union Sets::
7198* Set Modifications:: 7196* Set Union Modifications::
7199* Set Operations:: 7197* Set Union Operations::
7200* Result Elements:: 7198* Union Result Elements::
7201* libgnunetsetu:: 7199* libgnunetsetu::
7202* The SETU Client-Service Protocol:: 7200* The SETU Client-Service Protocol::
7203* The SETU Union Peer-to-Peer Protocol:: 7201* The SETU Union Peer-to-Peer Protocol::
7204@end menu 7202@end menu
7205 7203
7206@node Local Sets 7204@node Union Sets
7207@subsection Local Sets 7205@subsection Union Sets
7208 7206
7209Sets created by a local client can be modified (by adding additional elements) 7207Sets created by a local client can be modified (by adding additional elements)
7210and reused for multiple operations. If elements are to be removed, a fresh 7208and reused for multiple operations. If elements are to be removed, a fresh
7211set must be created by the client. 7209set must be created by the client.
7212 7210
7213@node Set Modifications 7211@node Set Union Modifications
7214@subsection Set Modifications 7212@subsection Set Union Modifications
7215 7213
7216Even when set operations are active, one can add elements 7214Even when set operations are active, one can add elements
7217to a set. 7215to a set.
@@ -7221,8 +7219,8 @@ only sees a snapshot of the set from the time the operation was started.
7221This mechanism is @emph{not} implemented by copying the whole set, but by 7219This mechanism is @emph{not} implemented by copying the whole set, but by
7222attaching @emph{generation information} to each element and operation. 7220attaching @emph{generation information} to each element and operation.
7223 7221
7224@node Set Operations 7222@node Set Union Operations
7225@subsection Set Operations 7223@subsection Set Union Operations
7226 7224
7227Set operations can be started in two ways: Either by accepting an 7225Set operations can be started in two ways: Either by accepting an
7228operation request from a remote peer, or by requesting a set operation 7226operation request from a remote peer, or by requesting a set operation
@@ -7236,8 +7234,8 @@ type and application id.
7236Once notified of an incoming set request, the client can accept the set 7234Once notified of an incoming set request, the client can accept the set
7237request (providing a local set for the operation) or reject it. 7235request (providing a local set for the operation) or reject it.
7238 7236
7239@node Result Elements 7237@node Union Result Elements
7240@subsection Result Elements 7238@subsection Union Result Elements
7241 7239
7242The SET service has three @emph{result modes} that determine how an 7240The SET service has three @emph{result modes} that determine how an
7243operation's result set is delivered to the client: 7241operation's result set is delivered to the client:
@@ -7257,15 +7255,15 @@ the @code{GNUNET_SETU_OPTION_SYMMETRIC} option.
7257@subsection libgnunetsetu 7255@subsection libgnunetsetu
7258 7256
7259@menu 7257@menu
7260* Sets:: 7258* Union Set API::
7261* Listeners:: 7259* Union Listeners::
7262* Operations:: 7260* Union Operations::
7263* Supplying a Set:: 7261* Supplying a Set for Union::
7264* The Result Callback:: 7262* The Union Result Callback::
7265@end menu 7263@end menu
7266 7264
7267@node Sets 7265@node Union Set API
7268@subsubsection Sets 7266@subsubsection Union Set API
7269 7267
7270New sets are created with @code{GNUNET_SETU_create}. Only the local peer's 7268New sets are created with @code{GNUNET_SETU_create}. Only the local peer's
7271configuration (as each set has its own client connection) must be provided. 7269configuration (as each set has its own client connection) must be provided.
@@ -7276,8 +7274,8 @@ functions dealing with sets. This return value must always be checked.
7276 7274
7277Elements are added with @code{GNUNET_SETU_add_element}. 7275Elements are added with @code{GNUNET_SETU_add_element}.
7278 7276
7279@node Listeners 7277@node Union Listeners
7280@subsubsection Listeners 7278@subsubsection Union Listeners
7281 7279
7282Listeners are created with @code{GNUNET_SETU_listen}. Each time time a 7280Listeners are created with @code{GNUNET_SETU_listen}. Each time time a
7283remote peer suggests a set operation with an application id and operation 7281remote peer suggests a set operation with an application id and operation
@@ -7287,16 +7285,16 @@ or @code{GNUNET_SETU_reject}. Note that the operation will not be started
7287until the client calls @code{GNUNET_SETU_commit} 7285until the client calls @code{GNUNET_SETU_commit}
7288(see Section "Supplying a Set"). 7286(see Section "Supplying a Set").
7289 7287
7290@node Operations 7288@node Union Operations
7291@subsubsection Operations 7289@subsubsection Union Operations
7292 7290
7293Operations to be initiated by the local peer are created with 7291Operations to be initiated by the local peer are created with
7294@code{GNUNET_SETU_prepare}. Note that the operation will not be started 7292@code{GNUNET_SETU_prepare}. Note that the operation will not be started
7295until the client calls @code{GNUNET_SETU_commit} 7293until the client calls @code{GNUNET_SETU_commit}
7296(see Section "Supplying a Set"). 7294(see Section "Supplying a Set").
7297 7295
7298@node Supplying a Set 7296@node Supplying a Set for Union
7299@subsubsection Supplying a Set 7297@subsubsection Supplying a Set for Union
7300 7298
7301To create symmetry between the two ways of starting a set operation 7299To create symmetry between the two ways of starting a set operation
7302(accepting and initiating it), the operation handles returned by 7300(accepting and initiating it), the operation handles returned by
@@ -7307,8 +7305,8 @@ The client must call @code{GNUNET_SETU_commit} to specify a set to use for
7307an operation. @code{GNUNET_SETU_commit} may only be called once per set 7305an operation. @code{GNUNET_SETU_commit} may only be called once per set
7308operation. 7306operation.
7309 7307
7310@node The Result Callback 7308@node The Union Result Callback
7311@subsubsection The Result Callback 7309@subsubsection The Union Result Callback
7312 7310
7313Clients must specify both a result mode and a result callback with 7311Clients must specify both a result mode and a result callback with
7314@code{GNUNET_SETU_accept} and @code{GNUNET_SETU_prepare}. The result 7312@code{GNUNET_SETU_accept} and @code{GNUNET_SETU_prepare}. The result
@@ -7320,16 +7318,15 @@ if the operation failed or ultimately succeeded.
7320@subsection The SETU Client-Service Protocol 7318@subsection The SETU Client-Service Protocol
7321 7319
7322@menu 7320@menu
7323* Creating Sets:: 7321* Creating Union Sets::
7324* Listeners2:: 7322* Listeners for Union::
7325* Initiating Operations:: 7323* Initiating Union Operations::
7326* Modifying Sets:: 7324* Modifying Union Sets::
7327* Results and Operation Status:: 7325* Union Results and Operation Status::
7328* Iterating Sets::
7329@end menu 7326@end menu
7330 7327
7331@node Creating Sets 7328@node Creating Union Sets
7332@subsubsection Creating Sets 7329@subsubsection Creating Union Sets
7333 7330
7334For each set of a client, there exists a client connection to the service. 7331For each set of a client, there exists a client connection to the service.
7335Sets are created by sending the @code{GNUNET_SERVICE_SETU_CREATE} message 7332Sets are created by sending the @code{GNUNET_SERVICE_SETU_CREATE} message
@@ -7337,8 +7334,8 @@ over a new client connection. Multiple operations for one set are
7337multiplexed over one client connection, using a request id supplied by 7334multiplexed over one client connection, using a request id supplied by
7338the client. 7335the client.
7339 7336
7340@node Listeners2 7337@node Listeners for Union
7341@subsubsection Listeners2 7338@subsubsection Listeners for Union
7342 7339
7343Each listener also requires a seperate client connection. By sending the 7340Each listener also requires a seperate client connection. By sending the
7344@code{GNUNET_SERVICE_SETU_LISTEN} message, the client notifies the service 7341@code{GNUNET_SERVICE_SETU_LISTEN} message, the client notifies the service
@@ -7349,8 +7346,8 @@ In contrast, when accepting an incoming request, a
7349@code{GNUNET_SERVICE_SETU_ACCEPT} message must be sent over the@ set that 7346@code{GNUNET_SERVICE_SETU_ACCEPT} message must be sent over the@ set that
7350is supplied for the set operation. 7347is supplied for the set operation.
7351 7348
7352@node Initiating Operations 7349@node Initiating Union Operations
7353@subsubsection Initiating Operations 7350@subsubsection Initiating Union Operations
7354 7351
7355 7352
7356 7353
@@ -7358,10 +7355,8 @@ Operations with remote peers are initiated by sending a
7358@code{GNUNET_SERVICE_SETU_EVALUATE} message to the service. The@ client 7355@code{GNUNET_SERVICE_SETU_EVALUATE} message to the service. The@ client
7359connection that this message is sent by determines the set to use. 7356connection that this message is sent by determines the set to use.
7360 7357
7361@node Modifying Sets 7358@node Modifying Union Sets
7362@subsubsection Modifying Sets 7359@subsubsection Modifying Union Sets
7363
7364
7365 7360
7366Sets are modified with the @code{GNUNET_SERVICE_SETU_ADD} message. 7361Sets are modified with the @code{GNUNET_SERVICE_SETU_ADD} message.
7367 7362
@@ -7371,8 +7366,8 @@ Sets are modified with the @code{GNUNET_SERVICE_SETU_ADD} message.
7371@c %* Iterating Sets:: 7366@c %* Iterating Sets::
7372@c %@end menu 7367@c %@end menu
7373 7368
7374@node Results and Operation Status 7369@node Union Results and Operation Status
7375@subsubsection Results and Operation Status 7370@subsubsection Union Results and Operation Status
7376 7371
7377The service notifies the client of result elements and success/failure of 7372The service notifies the client of result elements and success/failure of
7378a set operation with the @code{GNUNET_SERVICE_SETU_RESULT} message. 7373a set operation with the @code{GNUNET_SERVICE_SETU_RESULT} message.