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