]> Cypherpunks.ru repositories - nncp.git/blob - doc/news.texi
PINGs
[nncp.git] / doc / news.texi
1 @node News
2 @unnumbered News
3
4 See also this page @ref{Новости, on russian}.
5
6 @node Release 5.3.0
7 @section Release 5.3.0
8 @itemize
9
10 @item
11 Progress messages contain prefix, describing the running action.
12
13 @item
14 Fixed not occurring handshake messages padding.
15
16 @item
17 Finish all SP protocol related goroutines, less memory leak.
18
19 @item
20 SP protocol generates less socket write calls, thus generating less TCP
21 packets.
22
23 @item
24 Check @option{onlinedeadline} and @option{maxonlinetime} options every
25 second, independently from socket reads (up to 10 seconds).
26
27 @item
28 Once per minute, if no other traffic exists, PING packets are sent in
29 SP-connection. That allows faster determining of connection unworkability.
30
31 @end itemize
32
33 @node Release 5.2.1
34 @section Release 5.2.1
35 @itemize
36
37 @item
38 Fixed SP protocol error handling, sometimes causing program panic.
39
40 @end itemize
41
42 @node Release 5.2.0
43 @section Release 5.2.0
44 @itemize
45
46 @item
47 Most commands by default show oneline operations progress.
48 @option{-progress}, @option{-noprogress} command line options,
49 @option{noprogress} configuration file option appeared.
50
51 @item
52 Fixed incorrect @command{nncp-check} command return code, that returned
53 bad code when everything is good.
54
55 @item
56 Free disk space check during @command{nncp-bundle -rx} call.
57
58 @end itemize
59
60 @node Release 5.1.2
61 @section Release 5.1.2
62 @itemize
63
64 @item
65 @strong{Critical} vulnerability: remote peers authentication could lead
66 to incorrect identification of remote side, allowing foreign encrypted
67 packets downloading.
68
69 @item
70 Bugfix: private and public Noise keys were swapped in newly created
71 configuration files, that lead to inability to authenticate online peers.
72
73 @item
74 Explicit directories fsync-ing for guaranteed files renaming.
75
76 @end itemize
77
78 @node Release 5.1.1
79 @section Release 5.1.1
80 @itemize
81
82 @item
83 Fixed workability of @command{nncp-file} with @option{-chunked 0} option.
84
85 @end itemize
86
87 @node Release 5.1.0
88 @section Release 5.1.0
89 @itemize
90
91 @item
92 @command{nncp-file} can send directories, automatically creating pax
93 archive on the fly.
94
95 @item
96 Free disk space is checked during outbound packets creation.
97
98 @item
99 @option{freq}, @option{freqminsize}, @option{freqchunked} configuration
100 file options replaced with the structure:
101 @option{freq: @{path: ..., minsize: ..., chunked: ...@}}.
102
103 @item
104 Added @option{freq.maxsize} configuration file option, forbidding of
105 freq sending larger than specified size.
106
107 @item
108 Ability to notify about successfully executed commands (exec) with
109 @option{notify.exec} configuration file option.
110
111 @end itemize
112
113 @node Release 5.0.0
114 @section Release 5.0.0
115 @itemize
116
117 @item
118 @strong{Incompatible} configuration file format change: YAML is
119 replaced with Hjson, due to its simplicity, without noticeable lack
120 of either functionality or convenience.
121
122 @item
123 @strong{Incompatible} plain packet format changes. Older versions are
124 not supported. @code{zlib} compression is replaced with
125 @code{Zstandard}, due to its speed and efficiency, despite library
126 version is not mature enough.
127
128 @item
129 Ability to call remote nodes via pipe call of external command, not only
130 through TCP.
131
132 @item
133 @command{nncp-cfgnew} generates configuration file with many
134 comments. @option{-nocomments} option can be used for an old
135 behaviour.
136
137 @item
138 Duplicate filenames have @file{.CTR} suffix, instead of @file{CTR}, to
139 avoid possible collisions with @file{.nncp.chunkCTR}.
140
141 @item
142 Ability to override process umask through configuration file option.
143
144 @item
145 Files and directories are created with 666/777 permissions by default,
146 allowing control with @command{umask}.
147
148 @item
149 Updated dependencies.
150
151 @item
152 Full usage of go modules for dependencies management
153 (@code{go.cypherpunks.ru/nncp/v5} namespace is used).
154
155 @item
156 Forbid any later GNU GPL version autousage
157 (project's licence now is GNU GPLv3-only).
158
159 @end itemize
160
161 @node Release 4.1
162 @section Release 4.1
163 @itemize
164 @item Workability on GNU/Linux systems and Go 1.10 is fixed.
165 @end itemize
166
167 @node Release 4.0
168 @section Release 4.0
169 @itemize
170
171 @item
172 @strong{Incompatible} encrypted and eblob packet format change: AEAD
173 encryption mode with 128 KiB blocks is used now, because previously
174 @command{nncp-toss} did not verify encrypted packet's MAC before feeding
175 decrypted data to external command. Older versions are not supported.
176
177 @item
178 Available free space checking before copying in @command{nncp-xfer},
179 @command{nncp-daemon}, @command{nncp-call(er)}.
180
181 @item
182 @command{nncp-call} has ability only to list packets on remote node,
183 without their transmission.
184
185 @item
186 @command{nncp-call} has ability to transfer only specified packets.
187
188 @item
189 Workability of @option{xxrate} preference in @option{calls}
190 configuration file section.
191
192 @item
193 Dependant libraries are updated.
194
195 @item
196 Minor bugfixes.
197
198 @item
199 Begin using of @code{go.mod} subsystem.
200
201 @end itemize
202
203 @node Release 3.4
204 @section Release 3.4
205 @itemize
206 @item @command{nncp-daemon} can be run as @command{inetd}-service.
207 @end itemize
208
209 @node Release 3.3
210 @section Release 3.3
211 @itemize
212
213 @item
214 @command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller} check
215 if @file{.seen} exists and treat it like file was already downloaded.
216 Possibly it was transferred out-of-bound and remote side needs to be
217 notifier about that.
218
219 @item
220 If higher priority packet is spooled, then @command{nncp-daemon} will
221 queue its sending first, interrupting lower priority transmissions.
222
223 @item
224 Simple packet rate limiter added to online-related tools
225 (@command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller}).
226
227 @item
228 Ability to specify niceness with symbolic notation:
229 @verb{|NORMAL|}, @verb{|BULK+10|}, @verb{|PRIORITY-5|}, etc.
230
231 @item
232 Changed default niceness levels:
233 for @command{nncp-exec} from 64 to 96,
234 for @command{nncp-freq} from 64 to 160,
235 for @command{nncp-file} from 196 to 224.
236
237 @end itemize
238
239 @node Release 3.2
240 @section Release 3.2
241 @itemize
242 @item
243 @strong{Incompatible} @emph{bundle} archive format changes and
244 @command{nncp-bundle} workability with Go 1.10+. Bundles must be
245 valid tar archives, but Go 1.9 made them invalid because of long paths
246 inside. NNCP accidentally was dependant on that bug. Explicit adding of
247 @file{NNCP/} directory in archive restores workability with valid tar
248 archives.
249 @end itemize
250
251 @node Release 3.1
252 @section Release 3.1
253 @itemize
254 @item
255 Ability to disable relaying at all using @verb{|-via -|} command line option.
256 @end itemize
257
258 @node Release 3.0
259 @section Release 3.0
260 @itemize
261
262 @item
263 @strong{Incompatible} plain packet format changes. Older versions are
264 not supported.
265
266 @item
267 Ability to queue remote command execution, by configuring @option{exec}
268 option in configuration file and using @command{nncp-exec} command:
269     @itemize
270     @item
271     @command{nncp-mail} command is replaced with more flexible
272     @command{nncp-exec}. Instead of @verb{|nncp-mail NODE RECIPIENT|}
273     you must use @verb{|nncp-exec NODE sendmail RECIPIENT|}.
274     @item
275     @option{sendmail} configuration file option is replaced with
276     @option{exec}. @verb{|sendmail: [...]|} must be replaced with
277     @verb{|exec: sendmail: [...]|}.
278     @end itemize
279
280 @item
281 Ability to override @option{via} configuration option for destination
282 node via @option{-via} command line option for following commands:
283 @command{nncp-file}, @command{nncp-freq}, @command{nncp-exec}.
284
285 @item
286 Chunked files, having size less than specified chunk size, will be sent
287 as an ordinary single file.
288
289 @item
290 Exec commands are invoked with additional @env{NNCP_NICE} and
291 @env{NNCP_SELF} environment variables.
292
293 @item
294 Files, that are sent as a reply to freq, have niceness level taken from
295 the freq packet. You can set desired niceness during @command{nncp-freq}
296 invocation using @option{-replynice} option.
297
298 @item
299 @command{nncp-toss} command can ignore specified packet types during
300 processing: @option{-nofile}, @option{-nofreq}, @option{-noexec},
301 @option{-notrns}.
302
303 @item
304 @command{nncp-file} command uses
305 @option{FreqMinSize}/@option{FreqChunked} configuration file options
306 for @option{-minsize}/@option{-chunked} by default. You can turn this
307 off by specifying zero value.
308
309 @end itemize
310
311 @node Release 2.0
312 @section Release 2.0
313 @itemize
314
315 @item
316 @strong{Incompatible} encrypted/eblob packet format changes. Older
317 versions are not supported.
318
319 @item
320 Twofish encryption algorithm is replaced with ChaCha20. It is much more
321 faster. One cryptographic primitive less.
322
323 @item
324 HKDF-BLAKE2b-256 KDF algorithm is replaced with BLAKE2Xb XOF. Yet
325 another cryptographic primitive less (assuming that BLAKE2X is nearly
326 identical to BLAKE2).
327
328 @end itemize
329
330 @node Release 1.0
331 @section Release 1.0
332 @itemize
333
334 @item
335 @strong{Incompatible} encrypted packet format changes. Older versions
336 are not supported.
337
338 @item
339 @command{nncp-bundle} command can either create stream of encrypted
340 packets, or digest it. It is useful when dealing with stdin/stdout based
341 transmission methods (like writing to CD-ROM without intermediate
342 prepared ISO image and working with tape drives).
343
344 @item
345 @command{nncp-toss} is able to create @file{.seen} files preventing
346 duplicate packets receiving.
347
348 @item
349 Single background checksum verifier worker is allowed in
350 @command{nncp-call}. This is helpful when thousands of small inbound
351 packets could create many goroutines.
352
353 @item
354 Ability to override path to spool directory and logfile through either
355 command line argument, or environment variable.
356
357 @item
358 @command{nncp-rm} is able to delete outbound/inbound, @file{.seen},
359 @file{.part}, @file{.lock} and temporary files.
360
361 @end itemize
362
363 @node Release 0.12
364 @section Release 0.12
365 @itemize
366 @item Sendmail command is called with @env{NNCP_SENDER} environment variable.
367 @end itemize
368
369 @node Release 0.11
370 @section Release 0.11
371 @itemize
372 @item @command{nncp-stat}'s command output is sorted by node name.
373 @end itemize
374
375 @node Release 0.10
376 @section Release 0.10
377 @itemize
378 @item
379 @command{nncp-freq}'s @file{DST} argument is optional now. Last
380 @file{SRC} path's element will be used by default.
381 @end itemize
382
383 @node Release 0.9
384 @section Release 0.9
385 @itemize
386 @item
387 Fix @option{-rx}/@option{-tx} arguments processing in
388 @command{nncp-call} command. They were ignored.
389 @end itemize
390
391 @node Release 0.8
392 @section Release 0.8
393 @itemize
394 @item
395 Little bugfix in @command{nncp-file} command, where @option{-minsize}
396 option for unchunked transfer was not in KiBs, but in bytes.
397 @end itemize
398
399 @node Release 0.7
400 @section Release 0.7
401 @itemize
402
403 @item
404 Ability to feed @command{nncp-file} from stdin, that uses an encrypted
405 temporary file for that.
406
407 @item
408 Chunked files transmission appeared with corresponding
409 @command{nncp-reass} command and @option{freqchunked} configuration file
410 entry. Useful for transferring big files over small storage devices.
411
412 @item
413 @option{freqminsize} configuration file option, analogue to
414 @option{-minsize} one.
415
416 @item
417 @command{nncp-xfer}'s @option{-force} option is renamed to
418 @option{-mkdir} for clarity.
419
420 @item
421 @option{-minsize} option is specified in KiBs, not bytes, for
422 convenience.
423
424 @item
425 @command{nncp-newcfg} command is renamed to @command{nncp-cfgnew},
426 and @command{nncp-mincfg} to @command{nncp-cfgmin} -- now they have
427 common prefix and are grouped together for convenience.
428
429 @item
430 @command{nncp-cfgenc} command appeared, allowing configuration file
431 encryption/decryption, for keeping it safe without any either OpenPGP or
432 similar tools usage.
433
434 @item
435 Cryptographic libraries (dependencies) are updated.
436
437 @end itemize
438
439 @node Release 0.6
440 @section Release 0.6
441 @itemize
442 @item Small @command{nncp-rm} command appeared.
443 @item Cryptographic libraries (dependencies) are updated.
444 @end itemize
445
446 @node Release 0.5
447 @section Release 0.5
448 @itemize
449 @item
450 Trivial small fix in default niceness level of @command{nncp-file}
451 and @command{nncp-freq} commands.
452 @end itemize
453
454 @node Release 0.4
455 @section Release 0.4
456 @itemize
457
458 @item
459 Small fix in @command{nncp-call}, @command{nncp-caller},
460 @command{nncp-daemon}: they can segmentation fail sometimes (no data is
461 lost).
462
463 @item
464 @command{nncp-newnode} renamed to @command{nncp-newcfg} -- it is shorter
465 and more convenient to use.
466
467 @item
468 @command{nncp-mincfg} command appeared: helper allowing to create
469 minimalistic stripped down configuration file without private keys, that
470 is useful during @command{nncp-xfer} usage.
471
472 @end itemize
473
474 @node Release 0.3
475 @section Release 0.3
476 @itemize
477 @item Fixed compatibility with Go 1.6.
478 @end itemize
479
480 @node Release 0.2
481 @section Release 0.2
482 @itemize
483
484 @item
485 @strong{Incompatible} packet's format change (magic number is changed
486 too): size field is encrypted and is not send in plaintext anymore.
487
488 @item
489 @option{-minsize} option gives ability to automatically pad outgoing
490 packets to specified minimal size.
491
492 @item
493 @command{nncp-daemon} and @command{nncp-call}/@command{nncp-caller}
494 always check new @emph{tx} packets appearance in the background while
495 connected. Remote side is immediately notified.
496
497 @item
498 @option{-onlinedeadline} option gives ability to configure timeout of
499 inactivity of online connection, when it could be disconnected. It could
500 be used to keep connection alive for a long time.
501
502 @item
503 @option{-maxonlinetime} option gives ability to set maximal allowable
504 online connection aliveness time.
505
506 @item
507 @command{nncp-caller} command appeared: cron-ed TCP daemon caller.
508
509 @item
510 @command{nncp-pkt} command can decompress the data.
511
512 @end itemize