man gnunet-datastore
[oweals/gnunet.git] / doc / man / gnunet-scalarproduct.1
1 .\" This file is part of GNUnet.
2 .\" Copyright (C) 2001-2019 GNUnet e.V.
3 .\"
4 .\" Permission is granted to copy, distribute and/or modify this document
5 .\" under the terms of the GNU Free Documentation License, Version 1.3 or
6 .\" any later version published by the Free Software Foundation; with no
7 .\" Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.  A
8 .\" copy of the license is included in the file
9 .\" ``FDL-1.3''.
10 .\"
11 .\" A copy of the license is also available from the Free Software
12 .\" Foundation Web site at @url{http://www.gnu.org/licenses/fdl.html}.
13 .\"
14 .\" Alternately, this document is also available under the General
15 .\" Public License, version 3 or later, as published by the Free Software
16 .\" Foundation.  A copy of the license is included in the file
17 .\" ``GPL3''.
18 .\"
19 .\" A copy of the license is also available from the Free Software
20 .\" Foundation Web site at @url{http://www.gnu.org/licenses/gpl.html}.
21 .\"
22 .\" SPDX-License-Identifier: GPL3.0-or-later OR FDL1.3-or-later
23 .\"
24 .Dd August 8, 2013
25 .Dt GNUNET-SCALARPRODUCT 1
26 .Os
27 .Sh NAME
28 .Nm gnunet-scalarproduct
29 .Nd
30 compute a vectorproduct
31 .Sh SYNOPSIS
32 .Nm
33 .Op Fl e Ar ELEMENTS | Fl \-elements= Ns Ar ELEMENTS
34 .Op Fl m Ar MASK | Fl \-mask= Ns Ar MASK
35 .Op Fl k Ar KEY | Fl \-key= Ns Ar KEY
36 .Op Fl c Ar FILENAME | \-config= Ns Ar FILENAME
37 .Op Fl p Ar PEERID | Fl \-peer= Ns Ar PEERID
38 .Op Fl h | \-help
39 .Op Fl L Ar LOGLEVEL | Fl \-loglevel= Ns Ar LOGLEVEL
40 .Op Fl v | \-version
41 .Sh DESCRIPTION
42 .Nm
43 enables you to compute a vectorproduct across two peers \fBAlice\fP and \fBBob\fP.
44 .Pp
45 A client can issue one of two messages to its service:
46 .TS
47 tab (@);
48 l lx.
49 1@T{
50 A request to compute a vectorproduct with another peer (\fBAlice\fP)
51 T}
52 2@T{
53 Elements to support a peer in computing a vectorproduct (\fBBob\fP)
54 T}
55 .TE
56 Both requests must share the same SID, which can be an arbitrary
57 string identifying the session. SIDs should be unique, however it is
58 sufficient to guarantee the uniqueness of the tupel element count and
59 session ID.
60 .Pp
61 \fBAlice\fP\'s client must supply the ASCII encoded peer ID of bob\'s
62 service, it will internally be checked by the client for
63 validity. Invalid values here result in the client or the service
64 failing the session.
65 .Pp
66 Elements are handed over as signed decimal integers, the element count
67 supplied by \fBAlice\fP and \fBBob\fP must match. \fBAlice\fP can also
68 supply a mask for these values to her service, which allows partial
69 vector products to be computed across the vector. Elements can be
70 masked by setting their the corresponding mask element to zero, any
71 other value means the element will not be masked. \fBAlice\fP\'s
72 client will also mask all 0-values to avoid information leakage to
73 \fBBob\fP.
74 .Pp
75 The protocol by definition relies on \fBAlice\fP and \fBBob\fP being
76 benign, thus \fBBob\fP can arbitrarily falsify his information. Both
77 peers collaborate to achieve a correct result.
78 .Pp
79 The options of
80 .Nm
81 are:
82 .Bl -tag -width Ds
83 .It Fl e Ar ELEMENTS | Fl \-elements= Ns Ar ELEMENTS
84 The element-vector the vectorproduct should be computed over in signed decimal form, eg: "42,1,-3,3,7".
85 Zero value elements will be automatically masked.
86 .It Fl m Ar MASK | Fl \-mask= Ns Ar MASK
87 Elements in the vector can be masked.
88 There must be at least two elements left in the vector to compute a vectorproduct.
89 Non-Zero values indicate an element is not maskes.
90 .It Fl k Ar KEY | Fl \-key= Ns Ar KEY
91 The session key, a shared string of arbitrary length from which the SID will be generated.
92 .It Fl c Ar FILENAME | Fl \-config= Ns Ar FILENAME
93 Use the configuration file FILENAME.
94 .It Fl p Ar PEERID | Fl \-peer= Ns Ar PEERID
95 The remote peer's ASCII-armored gnunet-peer ID as output by
96 .Xr gnunet-peerinfo 1 .
97 If this option is not given, the peer will take the \fBBob\fP\'s role.
98 .It Fl h | \-help
99 Print short help on options.
100 .It Fl L Ar LOGLEVEL | Fl \-loglevel= Ns Ar LOGLEVEL
101 Use LOGLEVEL for logging.
102 Valid values are DEBUG, INFO, WARNING and ERROR.
103 .It Fl v | \-version
104 Print GNUnet version number.
105 .El
106 .Sh BUGS
107 Report bugs by using Mantis <https://bugs.gnunet.org/> or by sending
108 electronic mail to <gnunet\-developers@gnu.org>
109 .Sh SEE ALSO
110 .Xr gnunet-peerinfo 1
111 .sp
112 The full documentation for gnunet is maintained as a Texinfo manual.
113 If the
114 .Xr info 1
115 and gnunet programs are properly installed at your site, the command
116 .Pp
117 .Dl info gnunet
118 .Pp
119 should give you access to the complete handbook,
120 .Pp
121 .Dl info gnunet-c-tutorial
122 .Pp
123 will give you access to a tutorial for developers.
124 .sp
125 Depending on your installation, this information is also available in
126 .Xr gnunet 7 and
127 .Xr gnunet-c-tutorial 7 .
128 .\".Sh HISTORY
129 .\".Sh AUTHORS
130 .Sh BUGS
131 Report bugs by using
132 .Lk https://bugs.gnunet.org
133 or by sending electronic mail to
134 .Aq Mt gnunet-developers@gnu.org .