aboutsummaryrefslogtreecommitdiff
path: root/doc/handbook/chapters/developer.texi
diff options
context:
space:
mode:
Diffstat (limited to 'doc/handbook/chapters/developer.texi')
-rw-r--r--doc/handbook/chapters/developer.texi53
1 files changed, 26 insertions, 27 deletions
diff --git a/doc/handbook/chapters/developer.texi b/doc/handbook/chapters/developer.texi
index e7b88a39f..1bf7a7b24 100644
--- a/doc/handbook/chapters/developer.texi
+++ b/doc/handbook/chapters/developer.texi
@@ -392,9 +392,9 @@ etc.).
392@item @file{transport/} --- transport service 392@item @file{transport/} --- transport service
393The transport service is responsible for managing the 393The transport service is responsible for managing the
394basic P2P communication. It uses plugins to support P2P communication 394basic P2P communication. It uses plugins to support P2P communication
395over TCP, UDP, HTTP, HTTPS and other protocols.The transport service 395over TCP, UDP, HTTP, HTTPS and other protocols. The transport service
396validates peer addresses, enforces bandwidth restrictions, limits the 396validates peer addresses, enforces bandwidth restrictions, limits the
397total number of connections and enforces connectivity restrictions (i.e. 397total number of connections and enforces connectivity restrictions (e.g.
398friends-only). 398friends-only).
399@item @file{peerinfo-tool/} --- gnunet-peerinfo 399@item @file{peerinfo-tool/} --- gnunet-peerinfo
400This directory contains the gnunet-peerinfo binary which can be used to 400This directory contains the gnunet-peerinfo binary which can be used to
@@ -746,21 +746,21 @@ Here you can find some rules to help you write code for GNUnet.
746 746
747@itemize @bullet 747@itemize @bullet
748@item services and daemons use their directory name in 748@item services and daemons use their directory name in
749@code{GNUNET_log_setup} (i.e. 'core') and log using 749@code{GNUNET_log_setup} (e.g. 'core') and log using
750plain 'GNUNET_log'. 750plain 'GNUNET_log'.
751@item command-line tools use their full name in 751@item command-line tools use their full name in
752@code{GNUNET_log_setup} (i.e. 'gnunet-publish') and log using 752@code{GNUNET_log_setup} (e.g. 'gnunet-publish') and log using
753plain 'GNUNET_log'. 753plain 'GNUNET_log'.
754@item service access libraries log using 754@item service access libraries log using
755'@code{GNUNET_log_from}' and use '@code{DIRNAME-api}' for the 755'@code{GNUNET_log_from}' and use '@code{DIRNAME-api}' for the
756component (i.e. 'core-api') 756component (e.g. 'core-api')
757@item pure libraries (without associated service) use 757@item pure libraries (without associated service) use
758'@code{GNUNET_log_from}' with the component set to their 758'@code{GNUNET_log_from}' with the component set to their
759library name (without lib or '@file{.so}'), 759library name (without lib or '@file{.so}'),
760which should also be their directory name (i.e. '@file{nat}') 760which should also be their directory name (e.g. '@file{nat}')
761@item plugins should use '@code{GNUNET_log_from}' 761@item plugins should use '@code{GNUNET_log_from}'
762with the directory name and the plugin name combined to produce 762with the directory name and the plugin name combined to produce
763the component name (i.e. 'transport-tcp'). 763the component name (e.g. 'transport-tcp').
764@item logging should be unified per-file by defining a 764@item logging should be unified per-file by defining a
765@code{LOG} macro with the appropriate arguments, 765@code{LOG} macro with the appropriate arguments,
766along these lines: 766along these lines:
@@ -832,14 +832,14 @@ test
832@subsubsection src/ directories 832@subsubsection src/ directories
833 833
834@itemize @bullet 834@itemize @bullet
835@item gnunet-NAME: end-user applications (i.e., gnunet-search, gnunet-arm) 835@item gnunet-NAME: end-user applications (like gnunet-search or gnunet-arm)
836@item gnunet-service-NAME: service processes with accessor library (i.e., 836@item gnunet-service-NAME: service processes with accessor library (e.g.
837gnunet-service-arm) 837gnunet-service-arm)
838@item libgnunetNAME: accessor library (_service.h-header) or standalone 838@item libgnunetNAME: accessor library (_service.h-header) or standalone
839library (_lib.h-header) 839library (_lib.h-header)
840@item gnunet-daemon-NAME: daemon process without accessor library (i.e., 840@item gnunet-daemon-NAME: daemon process without accessor library (e.g.
841gnunet-daemon-hostlist) and no GNUnet management port 841gnunet-daemon-hostlist) and no GNUnet management port
842@item libgnunet_plugin_DIR_NAME: loadable plugins (i.e., 842@item libgnunet_plugin_DIR_NAME: loadable plugins (e.g.
843libgnunet_plugin_transport_tcp) 843libgnunet_plugin_transport_tcp)
844@end itemize 844@end itemize
845 845
@@ -6640,7 +6640,7 @@ The size of an element's data is limited to around 62 KB.
6640Sets created by a local client can be modified and reused for multiple 6640Sets created by a local client can be modified and reused for multiple
6641operations. As each set operation requires potentially expensive special 6641operations. As each set operation requires potentially expensive special
6642auxiliary data to be computed for each element of a set, a set can only 6642auxiliary data to be computed for each element of a set, a set can only
6643participate in one type of set operation (i.e. union or intersection). 6643participate in one type of set operation (either union or intersection).
6644The type of a set is determined upon its creation. 6644The type of a set is determined upon its creation.
6645If a the elements of a set are needed for an operation of a different 6645If a the elements of a set are needed for an operation of a different
6646type, all of the set's element must be copied to a new set of appropriate 6646type, all of the set's element must be copied to a new set of appropriate
@@ -9030,14 +9030,13 @@ particular key has been revoked. The service responds with a
9030@code{QueryResponseMessage} which simply contains a bit that says if the 9030@code{QueryResponseMessage} which simply contains a bit that says if the
9031given public key is still valid, or if it has been revoked. 9031given public key is still valid, or if it has been revoked.
9032 9032
9033The second possible interaction is for a client to revoke a key by 9033The second possible interaction is for a client to revoke a key by passing a
9034passing a @code{RevokeMessage} to the service. The @code{RevokeMessage} 9034@code{RevokeMessage} to the service. The @code{RevokeMessage} contains the
9035contains the ECDSA public key to be revoked, a signature by the 9035ECDSA public key to be revoked, a signature by the corresponding private key
9036corresponding private key and the proof-of-work, The service responds 9036and the proof-of-work. The service responds with a
9037with a @code{RevocationResponseMessage} which can be used to indicate 9037@code{RevocationResponseMessage} which can be used to indicate that the
9038that the @code{RevokeMessage} was invalid (i.e. proof of work incorrect), 9038@code{RevokeMessage} was invalid (e.g. the proof of work is incorrect), or
9039or otherwise indicates that the revocation has been processed 9039otherwise to indicate that the revocation has been processed successfully.
9040successfully.
9041 9040
9042@node The REVOCATION Peer-to-Peer Protocol 9041@node The REVOCATION Peer-to-Peer Protocol
9043@subsection The REVOCATION Peer-to-Peer Protocol 9042@subsection The REVOCATION Peer-to-Peer Protocol
@@ -9615,9 +9614,9 @@ In order to address the above issues, we want to:
9615 TRANSPORT shall create bi-directional channels from this whenever 9614 TRANSPORT shall create bi-directional channels from this whenever
9616 possible. 9615 possible.
9617@item DV should no longer be a plugin, but part of TRANSPORT. 9616@item DV should no longer be a plugin, but part of TRANSPORT.
9618@item TRANSPORT should provide communicators help communicating (i.e. in the 9617@item TRANSPORT should provide communicators help communicating, for example
9619 case of uni-directional communicators or the need for out-of-band 9618 in the case of uni-directional communicators or the need for out-of-band
9620 signalling for NAT traversal). We call this functionality 9619 signalling for NAT traversal. We call this functionality
9621 @emph{backchannels}. 9620 @emph{backchannels}.
9622@item Transport manipulation should be signalled to CORE on a per-message basis 9621@item Transport manipulation should be signalled to CORE on a per-message basis
9623 instead of an approximate bandwidth. 9622 instead of an approximate bandwidth.
@@ -9715,8 +9714,8 @@ by layer. For example, CADET will always strictly implement reliable and
9715in-order delivery of messages, while the same options are only advisory for 9714in-order delivery of messages, while the same options are only advisory for
9716TRANSPORT and CORE: they should try (using ACKs on unreliable communicators, 9715TRANSPORT and CORE: they should try (using ACKs on unreliable communicators,
9717not changing the message order themselves), but if messages are lost anyway 9716not changing the message order themselves), but if messages are lost anyway
9718(i.e. because a TCP is dropped in the middle), or if messages are reordered 9717(e.g. because a TCP is dropped in the middle), or if messages are reordered
9719(i.e. because they took dierent paths over the network and arrived in a 9718(e.g. because they took different paths over the network and arrived in a
9720different order) TRANSPORT and CORE do not have to correct this. Whether a 9719different order) TRANSPORT and CORE do not have to correct this. Whether a
9721preference is strict or loose is thus dened by the respective layer. 9720preference is strict or loose is thus dened by the respective layer.
9722 9721
@@ -9728,8 +9727,8 @@ The API for communicators is defined in
9728Each communicator must specify its (global) communication characteristics, which 9727Each communicator must specify its (global) communication characteristics, which
9729for now only say whether the communication is reliable (e.g. TCP, HTTPS) or 9728for now only say whether the communication is reliable (e.g. TCP, HTTPS) or
9730unreliable (e.g. UDP, WLAN). Each communicator must specify a unique address 9729unreliable (e.g. UDP, WLAN). Each communicator must specify a unique address
9731prex, or NULL if the communicator cannot establish outgoing connections (i.e. 9730prex, or NULL if the communicator cannot establish outgoing connections
9732is only acting as a TCP server). 9731(for example because it is only acting as a TCP server).
9733A communicator must tell TRANSPORT which addresses it is reachable under. 9732A communicator must tell TRANSPORT which addresses it is reachable under.
9734Addresses may be added or removed at any time. A communicator may have zero 9733Addresses may be added or removed at any time. A communicator may have zero
9735addresses (transmission only). 9734addresses (transmission only).