diff options
Diffstat (limited to 'doc/handbook/chapters/developer.texi')
-rw-r--r-- | doc/handbook/chapters/developer.texi | 53 |
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 |
393 | The transport service is responsible for managing the | 393 | The transport service is responsible for managing the |
394 | basic P2P communication. It uses plugins to support P2P communication | 394 | basic P2P communication. It uses plugins to support P2P communication |
395 | over TCP, UDP, HTTP, HTTPS and other protocols.The transport service | 395 | over TCP, UDP, HTTP, HTTPS and other protocols. The transport service |
396 | validates peer addresses, enforces bandwidth restrictions, limits the | 396 | validates peer addresses, enforces bandwidth restrictions, limits the |
397 | total number of connections and enforces connectivity restrictions (i.e. | 397 | total number of connections and enforces connectivity restrictions (e.g. |
398 | friends-only). | 398 | friends-only). |
399 | @item @file{peerinfo-tool/} --- gnunet-peerinfo | 399 | @item @file{peerinfo-tool/} --- gnunet-peerinfo |
400 | This directory contains the gnunet-peerinfo binary which can be used to | 400 | This 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 |
750 | plain 'GNUNET_log'. | 750 | plain '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 |
753 | plain 'GNUNET_log'. | 753 | plain '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 |
756 | component (i.e. 'core-api') | 756 | component (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 |
759 | library name (without lib or '@file{.so}'), | 759 | library name (without lib or '@file{.so}'), |
760 | which should also be their directory name (i.e. '@file{nat}') | 760 | which 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}' |
762 | with the directory name and the plugin name combined to produce | 762 | with the directory name and the plugin name combined to produce |
763 | the component name (i.e. 'transport-tcp'). | 763 | the 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, |
766 | along these lines: | 766 | along 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. |
837 | gnunet-service-arm) | 837 | gnunet-service-arm) |
838 | @item libgnunetNAME: accessor library (_service.h-header) or standalone | 838 | @item libgnunetNAME: accessor library (_service.h-header) or standalone |
839 | library (_lib.h-header) | 839 | library (_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. |
841 | gnunet-daemon-hostlist) and no GNUnet management port | 841 | gnunet-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. |
843 | libgnunet_plugin_transport_tcp) | 843 | libgnunet_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. | |||
6640 | Sets created by a local client can be modified and reused for multiple | 6640 | Sets created by a local client can be modified and reused for multiple |
6641 | operations. As each set operation requires potentially expensive special | 6641 | operations. As each set operation requires potentially expensive special |
6642 | auxiliary data to be computed for each element of a set, a set can only | 6642 | auxiliary data to be computed for each element of a set, a set can only |
6643 | participate in one type of set operation (i.e. union or intersection). | 6643 | participate in one type of set operation (either union or intersection). |
6644 | The type of a set is determined upon its creation. | 6644 | The type of a set is determined upon its creation. |
6645 | If a the elements of a set are needed for an operation of a different | 6645 | If a the elements of a set are needed for an operation of a different |
6646 | type, all of the set's element must be copied to a new set of appropriate | 6646 | type, 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 |
9031 | given public key is still valid, or if it has been revoked. | 9031 | given public key is still valid, or if it has been revoked. |
9032 | 9032 | ||
9033 | The second possible interaction is for a client to revoke a key by | 9033 | The second possible interaction is for a client to revoke a key by passing a |
9034 | passing a @code{RevokeMessage} to the service. The @code{RevokeMessage} | 9034 | @code{RevokeMessage} to the service. The @code{RevokeMessage} contains the |
9035 | contains the ECDSA public key to be revoked, a signature by the | 9035 | ECDSA public key to be revoked, a signature by the corresponding private key |
9036 | corresponding private key and the proof-of-work, The service responds | 9036 | and the proof-of-work. The service responds with a |
9037 | with a @code{RevocationResponseMessage} which can be used to indicate | 9037 | @code{RevocationResponseMessage} which can be used to indicate that the |
9038 | that 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 |
9039 | or otherwise indicates that the revocation has been processed | 9039 | otherwise to indicate that the revocation has been processed successfully. |
9040 | successfully. | ||
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 | |||
9715 | in-order delivery of messages, while the same options are only advisory for | 9714 | in-order delivery of messages, while the same options are only advisory for |
9716 | TRANSPORT and CORE: they should try (using ACKs on unreliable communicators, | 9715 | TRANSPORT and CORE: they should try (using ACKs on unreliable communicators, |
9717 | not changing the message order themselves), but if messages are lost anyway | 9716 | not 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 |
9720 | different order) TRANSPORT and CORE do not have to correct this. Whether a | 9719 | different order) TRANSPORT and CORE do not have to correct this. Whether a |
9721 | preference is strict or loose is thus dened by the respective layer. | 9720 | preference is strict or loose is thus dened by the respective layer. |
9722 | 9721 | ||
@@ -9728,8 +9727,8 @@ The API for communicators is defined in | |||
9728 | Each communicator must specify its (global) communication characteristics, which | 9727 | Each communicator must specify its (global) communication characteristics, which |
9729 | for now only say whether the communication is reliable (e.g. TCP, HTTPS) or | 9728 | for now only say whether the communication is reliable (e.g. TCP, HTTPS) or |
9730 | unreliable (e.g. UDP, WLAN). Each communicator must specify a unique address | 9729 | unreliable (e.g. UDP, WLAN). Each communicator must specify a unique address |
9731 | prex, or NULL if the communicator cannot establish outgoing connections (i.e. | 9730 | prex, or NULL if the communicator cannot establish outgoing connections |
9732 | is only acting as a TCP server). | 9731 | (for example because it is only acting as a TCP server). |
9733 | A communicator must tell TRANSPORT which addresses it is reachable under. | 9732 | A communicator must tell TRANSPORT which addresses it is reachable under. |
9734 | Addresses may be added or removed at any time. A communicator may have zero | 9733 | Addresses may be added or removed at any time. A communicator may have zero |
9735 | addresses (transmission only). | 9734 | addresses (transmission only). |