]> Cypherpunks.ru repositories - nncp.git/blob - doc/news.ru.texi
Logging to opened file descriptor
[nncp.git] / doc / news.ru.texi
1 @node Новости
2 @section Новости
3
4 @node Релиз 7.6.0
5 @subsection Релиз 7.6.0
6 @itemize
7
8 @item
9 Журналирование может производиться в назначенный открытый файловый
10 дескриптор (@env{$NNCPLOG=FD:5} например).
11 Что дружелюбно к использованию под @command{daemontools}.
12
13 @end itemize
14
15 @node Релиз 7.5.1
16 @subsection Релиз 7.5.1
17 @itemize
18
19 @item
20 NNCP собирается на NetBSD.
21
22 @end itemize
23
24 @node Релиз 7.5.0
25 @subsection Релиз 7.5.0
26 @itemize
27
28 @item
29 @command{nncp-daemon} соблюдает UCSPI-TCP интерфейс, благодаря чему в
30 журнале будет присутствовать адрес удалённой системы (при запуске под
31 совместимой утилитой). Желательно применять @option{-ucspi} опцию вместо
32 @option{-inetd}.
33
34 @item
35 @command{nncp-call} может быть UCSPI-TCP клиентом, используя
36 @option{-ucspi} опцию.
37
38 @item
39 Не выходить если не получается слушать на каком-либо MCD сетевом
40 интерфейсе -- только предупреждать об ошибке.
41
42 @end itemize
43
44 @node Релиз 7.4.0
45 @subsection Релиз 7.4.0
46 @itemize
47
48 @item
49 Исправлена работоспособность MCD при одновременном использовании
50 @command{nncp-daemon} и @command{nncp-caller}.
51
52 @end itemize
53
54 @node Релиз 7.3.2
55 @subsection Релиз 7.3.2
56 @itemize
57
58 @item
59 @command{hjson-cli} утилита теперь собирается в vendor-режиме.
60
61 @end itemize
62
63 @node Релиз 7.3.1
64 @subsection Релиз 7.3.1
65 @itemize
66
67 @item
68 Исправлена проблема с возможно остающимся открытым файловым
69 дескриптором в online командах.
70
71 @item
72 Существенно снижено потребление памяти MTH хэширования.
73
74 @end itemize
75
76 @node Релиз 7.3.0
77 @subsection Релиз 7.3.0
78 @itemize
79
80 @item
81 Поправлены проблемы работоспособности на 32-бит системах с большими файлами.
82
83 @item
84 Возможность использовать конфигурацию в виде директории с набором
85 файлов. Появилась команда @command{nncp-cfgdir}.
86
87 @end itemize
88
89 @node Релиз 7.2.1
90 @subsection Релиз 7.2.1
91 @itemize
92
93 @item
94 Небольшие оптимизации в online командах.
95
96 @end itemize
97
98 @node Релиз 7.2.0
99 @subsection Релиз 7.2.0
100 @itemize
101
102 @item
103 Появилась @command{nncp-trns} команда для ручного создания транзитных пакетов.
104
105 @item
106 Если у целевой ноды транзитного пакета задан @option{via} маршрут, то
107 использовать его, а не игнорировать.
108
109 @item
110 Не отправлять multicast пакет оригинатору сообщения, очевидно точно
111 видящего свой собственный пакет.
112
113 @item
114 Намного меньшее потребление памяти во время MTH хэширования когда
115 смещение равно нулю: когда пакет не является докачиванием, а например
116 проверяется @command{nncp-check} командой.
117
118 @end itemize
119
120 @node Релиз 7.1.1
121 @subsection Релиз 7.1.1
122 @itemize
123
124 @item
125 Исправлено падение при fsync директорий после создания @file{.seen} файлов.
126
127 @end itemize
128
129 @node Релиз 7.1.0
130 @subsection Релиз 7.1.0
131 @itemize
132
133 @item
134 Появилась возможность мультивещательной (multicast) рассылки пакетов.
135 Реализовано всего лишь дополнительным типом простых пакетов и изменением
136 @command{nncp-toss}, @command{nncp-file} и @command{nncp-exec} команд.
137
138 @item
139 Исправлена работоспособность @command{nncp-file} и @command{nncp-exec}
140 команд использующих временный файл (stdin и @option{-use-tmp}).
141
142 @item
143 Исправлен пропадающий плохой код возврата в @command{nncp-exec} команде.
144
145 @item
146 Исправлено некорректное генерирование @file{.hdr} при использовании
147 транзитных пакетов.
148
149 @item
150 У @command{nncp-rm} команды появилась @option{-all} опция, применяемая
151 ко всем нодам сразу.
152
153 @item
154 У @command{nncp-check} команды появилась @option{-cycle} опция, вводящая
155 проверку в бесконечный цикл.
156
157 @item
158 У @command{nncp-rm} команды можно указывать alias-ы имён нод.
159
160 @item
161 @command{nncp-pkt} может парсить @file{.hdr} файлы.
162
163 @end itemize
164
165 @node Релиз 7.0.0
166 @subsection Релиз 7.0.0
167 @itemize
168
169 @item
170 Минимальная требуемая версия Go 1.13.
171
172 @item
173 Хэширование с BLAKE3 на базе деревьев Меркле (Merkle Tree Hashing, MTH)
174 используется вместо BLAKE2b. Из-за этого, обратно @strong{несовместимое}
175 изменение формата шифрованных файлов (всего что находится в spool
176 области) и формата @file{.meta} файла при chunked передаче.
177
178 Текущая реализация далека от оптимальной: в ней нет распараллеливания
179 вычислений и имеет повышенное потребление памяти: около 512 KiB на
180 каждый 1 GiB данных файла. Будущая оптимизация производительности и
181 потребления памяти не должна привести к изменению формата пакетов. Но
182 это всё равно в несколько раз быстрее BLAKE2b.
183
184 @item
185 Из-за использования MTH, докачиваемые в online режиме файлы потребуют
186 чтения с диска только предшествующей части, а не полностью всего файла,
187 как было прежде.
188
189 @item
190 Добавлена @command{nncp-hash} утилита для вычисления MTH хэша файла.
191
192 @item
193 В шифрованных пакетах BLAKE2 KDF и XOF функции заменены на BLAKE3. Ещё
194 уменьшая количество примитивов. А также заголовок шифрованного файла
195 теперь является ассоциированными данными при шифровании.
196
197 @item
198 MultiCast Discovery использует
199 @verb{|ff02::4e4e:4350|} адрес вместо @verb{|ff02::1|}.
200
201 @item
202 @command{nncp-cfgenc} ошибочно трижды спрашивал парольную фразу при шифровании.
203
204 @item
205 @command{nncp-stat} выводит сводку о частично скачанных пакетах.
206
207 @item
208 Обновлены зависимые библиотеки.
209
210 @end itemize
211
212 @node Релиз 6.6.0
213 @subsection Релиз 6.6.0
214 @itemize
215
216 @item
217 @command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}
218 ожидают завершения всех процессов фоновой проверки контрольных сумм,
219 после того как соединение закрыто.
220
221 @item
222 Добавлена возможность определения адреса через multicast оповещение в
223 локальной сети, так называемый MCD (MultiCast Discovery).
224
225 @end itemize
226
227 @node Релиз 6.5.0
228 @subsection Релиз 6.5.0
229 @itemize
230
231 @item
232 Исправлено падение в @command{nncp-daemon} когда SP рукопожатие не было успешно.
233
234 @item
235 Исправлено возможное игнорирование плохого кода возврата автоматического tosser.
236
237 @item
238 Исправлена гонка при закрытии файловых дескрипторов во время завершения
239 работы online протокола, которая могла привести к ошибке записи
240 принятого фрагмента пакета.
241
242 @item
243 Убирать показ прогресса передачи пакетов когда вызов уже завершён в
244 @command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}.
245
246 @end itemize
247
248 @node Релиз 6.4.0
249 @subsection Релиз 6.4.0
250 @itemize
251
252 @item
253 Исправлена возможная гонка в online протоколе, приводящая к падению
254 программы.
255
256 @end itemize
257
258 @node Релиз 6.3.0
259 @subsection Релиз 6.3.0
260 @itemize
261
262 @item
263 Исправлено возможное падение программы во время показа прогресса online
264 протокола.
265
266 @end itemize
267
268 @node Релиз 6.2.1
269 @subsection Релиз 6.2.1
270 @itemize
271
272 @item
273 В трёх местах сообщений журналов по ошибке остались лишние @code{%s}.
274
275 @end itemize
276
277 @node Релиз 6.2.0
278 @subsection Релиз 6.2.0
279 @itemize
280
281 @item
282 Возвращена работоспособность @option{-autotoss*} опций @command{nncp-caller}.
283
284 @item
285 Очередной рефакторинг и упрощение системы журналирования.
286 Не должно быть видимых изменений для конечного пользователя.
287
288 @end itemize
289
290 @node Релиз 6.1.0
291 @subsection Релиз 6.1.0
292 @itemize
293
294 @item
295 Оптимизация: большинство команд теперь не держат открытыми файловые
296 дескрипторы. Прежде вы легко могли выйти за пределы максимально
297 допустимого количества открытых файлов, если у вас было много пакетов в
298 spool директории.
299
300 @item
301 Оптимизация: не закрывать файловый дескриптор файла который мы качаем.
302 Прежде каждый его кусочек приводил к дорогим open/close вызовам.
303
304 @item
305 Скачиваемые в режиме online файлы теперь сохраняются с @file{.nock}
306 суффиксом (non-checksummed), ожидая пока либо @command{nncp-check}, либо
307 online демоны не выполнят проверку целостности.
308
309 @item
310 Оптимизация: для файлов, скачивание которых не было продолжено, сразу же
311 вычисляет контрольная сумма, пропуская промежуточный @file{.nock} шаг.
312
313 @item
314 Возможность хранения заголовков зашифрованных пакетов в @file{.hdr}
315 файлах, рядом с самими пакетами. Это может существенно повысить скорость
316 получения списка пакетов на файловых системах с большим размером блока.
317
318 @end itemize
319
320 @node Релиз 6.0.0
321 @subsection Релиз 6.0.0
322 @itemize
323
324 @item
325 Журнал использует человеко-читаемый и легко обрабатываемый машиной
326 @url{https://www.gnu.org/software/recutils/, recfile} формат для своих
327 записей, вместо структурированных строчек RFC 3339. Старый формат
328 журналов не поддерживается @command{nncp-log}.
329
330 @item
331 Работоспособность @option{-autotoss*} опции с @option{-inetd} режимом
332 @command{nncp-daemon}.
333
334 @item
335 @option{when-tx-exists} опция вызова в конфигурационном файле позволяет
336 делать вызов только если имеются исходящие сообщения. Совмещённая с cron
337 выражением содержащим секунды, это можно использовать как возможность
338 вызова только при появлении исходящих пакетов.
339
340 @item
341 @command{nncp-cronexpr} команда позволяет проверить корректность и
342 ожидаемый результат от указанного cron выражения.
343
344 @end itemize
345
346 @node Релиз 5.6.0
347 @subsection Релиз 5.6.0
348 @itemize
349
350 @item
351 @option{-autotoss*} опции запускают tosser не после завершения вызова, а
352 во время него ежесекундно.
353
354 @item
355 В @option{calls} секции конфигурации появились опции
356 @option{autotoss}, @option{autotoss-doseen},
357 @option{autotoss-nofile}, @option{autotoss-nofreq},
358 @option{autotoss-noexec}, @option{autotoss-notrns}.
359 Вы можете настраивать опции автоматического tosser для каждого вызова.
360
361 @item
362 Использовать vendoring вместо переопределения @env{GOPATH} во время
363 установки tarball, так как текущая минимальная версия Go это 1.12,
364 поддерживающая модули.
365
366 @end itemize
367
368 @node Релиз 5.5.1
369 @subsection Релиз 5.5.1
370 @itemize
371
372 @item
373 Уважать @env{BINDIR}, @env{INFODIR} и @env{DOCDIR} переменные окружения
374 в @file{config} во время установки.
375
376 @end itemize
377
378 @node Релиз 5.5.0
379 @subsection Релиз 5.5.0
380 @itemize
381
382 @item
383 Исправления ошибок в @command{nncp-call(er)}/@command{nncp-daemon},
384 @command{nncp-bundle}, @command{nncp-stat} командах.
385
386 @item
387 У команды @command{nncp-rm} появились @option{-dryrun} и @option{-older} опции.
388
389 @item
390 У команды @command{nncp-exec} появились @option{-use-tmp} и
391 @option{-nocompress} опции. Несжатые пакеты не совместимы с предыдущими
392 версиями NNCP.
393
394 @item
395 У команд @command{nncp-call}, @command{nncp-caller} и @command{nncp-daemon}
396 появились @option{-autotoss*} опции для запуска tosser после завершения звонка.
397
398 @item
399 Обновлены зависимые библиотеки. Минимальная требуемая версия Go 1.12.
400
401 @end itemize
402
403 @node Релиз 5.4.1
404 @subsection Релиз 5.4.1
405 @itemize
406
407 @item
408 Исправлена ошибка с учётом @code{SENDMAIL} переменной при сборке.
409
410 @end itemize
411
412 @node Релиз 5.4.0
413 @subsection Релиз 5.4.0
414 @itemize
415
416 @item
417 Обновлены зависимые библиотеки.
418
419 @item
420 Система сборки переведена с Makefile-ов на @url{http://cr.yp.to/redo.html, redo}.
421 Это не должно повлиять на мейнтейнеров пакетов, так как минимальная
422 реализация @command{redo} включена в tarball.
423
424 @end itemize
425
426 @node Релиз 5.3.3
427 @subsection Релиз 5.3.3
428 @itemize
429
430 @item
431 Больше различных проверок в коде на ошибки.
432
433 @item
434 Обновлены зависимые библиотеки.
435
436 @end itemize
437
438 @node Релиз 5.3.2
439 @subsection Релиз 5.3.2
440 @itemize
441
442 @item
443 Исправлена некорректная логика @option{onlinedeadline} timeout-а, при
444 котором соединение могло не учитывать факты прихода пакетов и обрывать
445 связь.
446
447 @end itemize
448
449 @node Релиз 5.3.1
450 @subsection Релиз 5.3.1
451 @itemize
452
453 @item
454 Исправлена работоспособность @option{onlinedeadline} с адресами вызова
455 использующими внешние команды (@verb{#"|somecmd"#}).
456
457 @item
458 @command{nncp-stat} имеет опцию @option{-pkt} показывающую информацию по
459 каждому пакету в spool.
460
461 @end itemize
462
463 @node Релиз 5.3.0
464 @subsection Релиз 5.3.0
465 @itemize
466
467 @item
468 Сообщения прогресса содержат префикс, поясняющий выполняемое действие.
469
470 @item
471 Исправлено не происходящее дополнение (padding) handshake сообщений.
472
473 @item
474 Завершать все порождаемые в SP протоколе горутины, меньше утечек памяти.
475
476 @item
477 SP протокол порождает меньше вызовов записей (соответственно, и TCP
478 пакетов) в сокет.
479
480 @item
481 Проверять @option{onlinedeadline} и @option{maxonlinetime} ежесекундно,
482 независимо от чтения из сокета (раз в 10 секунд в худшем случае).
483
484 @item
485 Раз в минуту, если нет более никакого другого трафика, посылаются PING
486 пакеты в SP-соединении. Это позволит быстрее понимать что соединение
487 более не работоспособно.
488
489 @item
490 @command{nncp-toss} использует lock-file для предотвращения
491 одновременной обработки зашифрованных пакетов.
492
493 @end itemize
494
495 @node Релиз 5.2.1
496 @subsection Релиз 5.2.1
497 @itemize
498
499 @item
500 Исправлена обработка ошибки SP протокола, иногда вызывающая панику программы.
501
502 @end itemize
503
504 @node Релиз 5.2.0
505 @subsection Релиз 5.2.0
506 @itemize
507
508 @item
509 Большинство команд по умолчанию показывают однострочный прогресс
510 выполнения операции. Появились @option{-progress}, @option{-noprogress}
511 опции командной строки, @option{noprogress} опция конфигурационного
512 файла.
513
514 @item
515 Исправлен некорректный код возврата @command{nncp-check} команды,
516 который возвращал ошибку когда всё хорошо.
517
518 @item
519 Проверка свободного места для пакетов, во время выполнения
520 @command{nncp-bundle -rx}.
521
522 @end itemize
523
524 @node Релиз 5.1.2
525 @subsection Релиз 5.1.2
526 @itemize
527
528 @item
529 Исправлена @strong{критичная} уязвимость: аутентификация online нод
530 могла приводить к некорректной идентификации удалённой стороны, позволяя
531 скачивать чужие зашифрованные пакеты.
532
533 @item
534 Исправлена ошибка: в новосозданных конфигурационных файлах, приватный
535 публичный ключ Noise были поменяны местами, что приводило к
536 невозможности online аутентификации нод.
537
538 @item
539 Явная синхронизация (fsync) директорий для гарантированного
540 переименования файлов.
541
542 @end itemize
543
544 @node Релиз 5.1.1
545 @subsection Релиз 5.1.1
546 @itemize
547
548 @item
549 Исправлена работоспособность @command{nncp-file} с @option{-chunked 0} опцией.
550
551 @end itemize
552
553 @node Релиз 5.1.0
554 @subsection Релиз 5.1.0
555 @itemize
556
557 @item
558 @command{nncp-file} может отправлять директории, автоматически на лету
559 создавая pax архив.
560
561 @item
562 Во время создания исходящих сообщений проверяется наличие свободного
563 места на файловой системе.
564
565 @item
566 @option{freq}, @option{freqminsize}, @option{freqchunked} опции
567 конфигурационного файла заменены на структуру
568 @option{freq: @{path: @dots{}, minsize: @dots{}, chunked: @dots{}@}}.
569
570 @item
571 Добавлена @option{freq.maxsize} опция конфигурационного файл,
572 запрещающая ответ на файловый запрос больше заданного размера.
573
574 @item
575 Возможность оповещения об успешно выполненных командах (exec) через
576 @option{notify.exec} опцию конфигурационного файла.
577
578 @end itemize
579
580 @node Релиз 5.0.0
581 @subsection Релиз 5.0.0
582 @itemize
583
584 @item
585 @strong{Несовместимое} изменение формата конфигурационного файла:
586 YAML заменён на Hjson, из-за его гораздо большей простоты, без
587 заметной потери функционала и удобства.
588
589 @item
590 @strong{Несовместимое} изменение формата простых пакетов. Работа со
591 старыми версиями не поддерживается. @code{zlib} сжатие заменено на
592 @code{Zstandard}, так как оно значительно быстрее и эффективнее, не
593 смотря на то, что версия библиотеки ещё не проверена временем.
594
595 @item
596 Возможность соединяться с удалёнными нодами не только по TCP, но и через
597 pipe вызов сторонней команды.
598
599 @item
600 @command{nncp-cfgnew} генерирует конфигурационный файл с множеством
601 комментариев. Можно использовать @option{-nocomments} опцию для старого
602 поведения.
603
604 @item
605 Дубликаты имён файлов имеют суффикс @file{.CTR}, вместо @file{CTR},
606 чтобы избежать возможных коллизий с @file{.nncp.chunkCTR}.
607
608 @item
609 Возможность переопределить umask процесса через опцию конфигурационного
610 файла.
611
612 @item
613 По умолчанию файлы и директории создаются с 666/777 правами доступа,
614 позволяя управлять ими @command{umask}-ом.
615
616 @item
617 Обновлены зависимости.
618
619 @item
620 Полное использование go модулей для управления зависимостями
621 (используется @code{go.cypherpunks.ru/nncp/v5} namespace).
622
623 @item
624 Отмена автоматического использования более новых версий GNU GPL
625 (лицензия проекта GNU GPLv3-только).
626
627 @end itemize
628
629 @node Релиз 4.1
630 @subsection Релиз 4.1
631 @itemize
632 @item Восстановлена работоспособность на GNU/Linux системах и Go версии 1.10.
633 @end itemize
634
635 @node Релиз 4.0
636 @subsection Релиз 4.0
637 @itemize
638
639 @item
640 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов:
641 используется AEAD режим шифрования с 128 КиБ блоками, так как раньше
642 @command{nncp-toss} не проверял MAC зашифрованного пакета прежде чем
643 отсылать дешифрованные данные внешней команде. Старые версии не
644 поддерживаются.
645
646 @item
647 Проверка доступного места перед копированием во время работы
648 @command{nncp-xfer}, @command{nncp-daemon}, @command{nncp-call(er)}.
649
650 @item
651 @command{nncp-call} имеет возможность только показывать список пакетов
652 на удалённой машине, без их передачи.
653
654 @item
655 @command{nncp-call} имеет возможность передавать только чётко указанные пакеты.
656
657 @item
658 Восстановлена работоспособность @option{xxrate} настройки в
659 @option{calls} секции конфигурационного файла.
660
661 @item
662 Зависимые библиотеки обновлены.
663
664 @item
665 Небольшие исправления ошибок.
666
667 @item
668 Начало использования @code{go.mod} подсистемы.
669
670 @end itemize
671
672 @node Релиз 3.4
673 @subsection Релиз 3.4
674 @itemize
675 @item @command{nncp-daemon} может быть запущен как @command{inetd}-служба.
676 @end itemize
677
678 @node Релиз 3.3
679 @subsection Релиз 3.3
680 @itemize
681
682 @item
683 @command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller}
684 проверяют существование @file{.seen} файла и расценивают его как то, что
685 файл уже был скачан. Возможно передача данных была осуществлена
686 сторонним способом и удалённая сторона должна быть оповещена об этом.
687
688 @item
689 Если более высокоприоритетный пакет попадает в спул, то
690 @command{nncp-daemon} добавит его в очередь отправки первым, прерывая
691 низкоприоритетные передачи.
692
693 @item
694 К средствам связанным с online-соединениями (@command{nncp-daemon},
695 @command{nncp-call}, @command{nncp-caller}) добавлен простой
696 ограничитель скорости.
697
698 @item
699 Возможность задания приоритета символьными обозначениями:
700 @verb{|NORMAL|}, @verb{|BULK+10|}, @verb{|PRIORITY-5|}, итд.
701
702 @item
703 Изменены значения приоритетов по-умолчанию:
704 для @command{nncp-exec} с 64 на 96,
705 для @command{nncp-freq} с 64 на 160,
706 для @command{nncp-file} с 196 на 224.
707
708 @end itemize
709
710 @node Релиз 3.2
711 @subsection Релиз 3.2
712 @itemize
713 @item
714 @strong{Несовместимое} изменение формата @emph{bundle} архивов и
715 работоспособность @command{nncp-bundle} команды с Go 1.10+. Bundle
716 должен быть корректным tar архивом, но Go 1.9 делал его недействительным
717 из-за длинных путей внутри. NNCP нечаянно был зависим от этой баги.
718 Явное добавление @file{NNCP/} директории в архив восстанавливает
719 работоспособность с корректными tar архивами.
720 @end itemize
721
722 @node Релиз 3.1
723 @subsection Релиз 3.1
724 @itemize
725 @item
726 Возможность отключать пересылку через промежуточные ноды используя
727 @verb{|-via -|} опцию командной строки.
728 @end itemize
729
730 @node Релиз 3.0
731 @subsection Релиз 3.0
732 @itemize
733
734 @item
735 @strong{Несовместимое} изменение формата простых пакетов. Работа со
736 старыми версиями не поддерживается.
737
738 @item
739 Добавлена возможность удалённого исполнения команд, путём
740 конфигурирования @option{exec} опции конфигурационного файла и
741 использования команды @command{nncp-exec}:
742     @itemize
743     @item
744     Команда @command{nncp-mail} заменена более гибкой и широкой
745     @command{nncp-exec}. Вместо вызова @verb{|nncp-mail NODE RECIPIENT|}
746     нужно использовать @verb{|nncp-exec NODE sendmail RECIPIENT|}.
747     @item
748     @option{sendmail} опция конфигурационного файла заменена на более гибкую
749     @option{exec}. @verb{|sendmail: [...]|} нужно заменить на @verb{|exec:
750     sendmail: [...]|}.
751     @end itemize
752
753 @item
754 Возможность переопределить @option{via} опцию конфигурации для целевого
755 узла через @option{-via} опцию командной строки для следующих команд:
756 @command{nncp-file}, @command{nncp-freq}, @command{nncp-exec}.
757
758 @item
759 Chunked файлы, меньшего размера чем указанный chunk, отправляются просто
760 в виде одного файла.
761
762 @item
763 Exec команды вызываются с дополнительными переменными окружения
764 @env{NNCP_NICE} и @env{NNCP_SELF}.
765
766 @item
767 Отправляемые файлы в ответ на запрос имеют приоритет указанный в запросе.
768 Указать их желаемый приоритет во время вызова @command{nncp-freq} можно
769 аргументом @option{-replynice}.
770
771 @item
772 Команде @command{nncp-toss} можно сказать не обрабатывать определённые
773 типы пакетов, за счёт опций @option{-nofile}, @option{-nofreq},
774 @option{-noexec}, @option{-notrns}.
775
776 @item
777 По-умолчанию @command{nncp-file} команда для
778 @option{-minsize}/@option{-chunked} опций использует
779 @option{FreqMinSize}/@option{FreqChunked} из конфигурационного файла.
780 Это можно отключить указав нулевое значение.
781
782 @end itemize
783
784 @node Релиз 2.0
785 @subsection Релиз 2.0
786 @itemize
787
788 @item
789 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов.
790 Работа со старыми версиями не поддерживается.
791
792 @item
793 Алгоритм шифрования Twofish заменён на ChaCha20. Он намного быстрее.
794 Одним криптографическим примитивом меньше.
795
796 @item
797 HKDF-BLAKE2b-256 KDF алгоритм заменён на BLAKE2Xb XOF. Ещё одним
798 криптографическим примитивом меньше (предполагая, что BLAKE2X
799 практически идентичен BLAKE2).
800
801 @end itemize
802
803 @node Релиз 1.0
804 @subsection Релиз 1.0
805 @itemize
806
807 @item
808 @strong{Несовместимое} изменение формата зашифрованных пакетов. Работа
809 со старыми версиями не поддерживается.
810
811 @item
812 @command{nncp-bundle} команда может создавать потоки зашифрованных
813 пакетов или потреблять их. Это полезно когда речь идёт о
814 @code{stdin}/@code{stdout} методах передачи (например запись на CD-ROM
815 без создания промежуточного подготовленного ISO образа или работа с
816 ленточными накопителями).
817
818 @item
819 @command{nncp-toss} команда может создавать @file{.seen} файлы,
820 предотвращая приём дублированных пакетов.
821
822 @item
823 В команде @command{nncp-call} разрешается иметь только одного
824 обработчика контрольной суммы в фоне. Это полезно когда тысячи маленьких
825 входящих пакетов могут создать много горутин.
826
827 @item
828 Возможность переопределить путь до spool директории и файла журнала
829 через аргумент командной строки или переменную окружения.
830
831 @item
832 @command{nncp-rm} команда может удалять все исходящие/входящие,
833 @file{.seen}, @file{.part}, @file{.lock} и временные файлы.
834
835 @end itemize
836
837 @node Релиз 0.12
838 @subsection Релиз 0.12
839 @itemize
840 @item Команда sendmail вызывается с @env{NNCP_SENDER} переменной окружения.
841 @end itemize
842
843 @node Релиз 0.11
844 @subsection Релиз 0.11
845 @itemize
846 @item Вывод команды @command{nncp-stat} отсортирован по имени ноды.
847 @end itemize
848
849 @node Релиз 0.10
850 @subsection Релиз 0.10
851 @itemize
852 @item
853 @file{DST} аргумент @command{nncp-freq} команды теперь опционален.
854 По-умолчанию будет подставлен последний элемент @file{SRC} пути.
855 @end itemize
856
857 @node Релиз 0.9
858 @subsection Релиз 0.9
859 @itemize
860 @item
861 Исправлена обработка @option{-rx}/@option{-tx} опций @command{nncp-call}
862 команды. Они игнорировались.
863 @end itemize
864
865 @node Релиз 0.8
866 @subsection Релиз 0.8
867 @itemize
868 @item
869 Небольшое исправление ошибки в команде @command{nncp-file}, где опция
870 @option{-minsize} для передачи без разбиения на части была в байтах, а
871 не KiB-ах.
872 @end itemize
873
874 @node Релиз 0.7
875 @subsection Релиз 0.7
876 @itemize
877
878 @item
879 Возможность предоставлять данные для @command{nncp-file} через
880 стандартный ввод, используя временный зашифрованный файл для этого.
881
882 @item
883 Появилась возможность передачи файлов разбитых на части, с сопутствующей
884 @command{nncp-reass} командой и @option{freqchunked} опцией
885 конфигурационного файла. Полезно для передачи больших файлов через
886 маленькие устройства хранения.
887
888 @item
889 @option{freqminsize} опция конфигурационного файла, аналогичная
890 @option{-minsize}.
891
892 @item
893 Опция @option{-force} команды @command{nncp-xfer} переименована в
894 @option{-mkdir} для ясности.
895
896 @item
897 Опция @option{-minsize} задаётся в KiB, а не байтах, для удобства.
898
899 @item
900 Команда @command{nncp-newcfg} переименована в @command{nncp-cfgnew},
901 а @command{nncp-mincfg} в @command{nncp-cfgmin}, для того чтобы они
902 имели общий префикс и были сгруппированы для удобства.
903
904 @item
905 Появилась команда @command{nncp-cfgenc}, позволяющая
906 шифровать/дешифровать конфигурационный файл, чтобы безопасно его хранить
907 без использования OpenPGP или других подобных инструментов.
908
909 @item
910 Обновлены зависимые криптографические библиотеки.
911
912 @end itemize
913
914 @node Релиз 0.6
915 @subsection Релиз 0.6
916 @itemize
917 @item Появилась небольшая команда @command{nncp-rm}.
918 @item Обновлены зависимые криптографические библиотеки.
919 @end itemize
920
921 @node Релиз 0.5
922 @subsection Релиз 0.5
923 @itemize
924 @item
925 Тривиальное небольшое исправление в значениях приоритетов по-умолчанию в
926 @command{nncp-file} и @command{nncp-freq} командах.
927 @end itemize
928
929 @node Релиз 0.4
930 @subsection Релиз 0.4
931 @itemize
932
933 @item
934 Небольшое исправление в @command{nncp-call}, @command{nncp-caller},
935 @command{nncp-daemon}: иногда они могли падать с segmentation fault
936 ошибкой (данные не терялись).
937
938 @item
939 @command{nncp-newnode} переименована в @command{nncp-newcfg} --
940 это короче и удобнее для использования.
941
942 @item
943 Появилась команда @command{nncp-mincfg}: вспомогательная утилита
944 позволяющая создать минималистичный урезанный конфигурационный файл без
945 приватных ключей, что полезно во время использования @command{nncp-xfer}.
946
947 @end itemize
948
949 @node Релиз 0.3
950 @subsection Релиз 0.3
951 @itemize
952 @item Исправлена совместимость с Go 1.6.
953 @end itemize
954
955 @node Релиз 0.2
956 @subsection Релиз 0.2
957 @itemize
958
959 @item
960 @strong{Несовместимое} изменение формата пакета (магическое число тоже
961 изменено): поле размера пакета шифруется и не посылается в открытом виде.
962
963 @item
964 @option{-minsize} опция даёт возможность автоматически дополнять
965 исходящие пакеты до указанного минимального размера.
966
967 @item
968 @command{nncp-daemon} и @command{nncp-call}/@command{nncp-caller} всегда
969 в фоне проверяют появление исходящих @emph{tx} пакетов пока подключены.
970 Удалённая сторона сразу же оповещается об этом.
971
972 @item
973 @option{-onlinedeadline} опция даёт возможность выставления timeout-а на
974 неактивность в online соединении, когда оно должно быть отключено. Она
975 может быть использована для сохранения соединения на долгое время.
976
977 @item
978 @option{-maxonlinetime} опция даёт возможность указания максимального
979 возможного времени жизни соединения.
980
981 @item
982 Появилась @command{nncp-caller} команда: клиент TCP-демона работающий по
983 cron-у.
984
985 @item
986 @command{nncp-pkt} команда может разжимать данные.
987
988 @end itemize