5 @subsection Релиз 8.3.0
9 Исправлена возможность сборки на 32-бит системах.
14 @subsection Релиз 8.2.0
18 Yggdrasil использует IPv6+TCP сетевой стэк написанный полностью на Go,
19 вместо голого μTP транспортного протокола, делая возможным работу в
20 качестве обычного TCP сервера внутри overlay сети.
23 Конфигурационные строки Yggdrasil вида @code{prv;bind1,bind2;pub...}
24 заменены на URL-подобные (@code{yggdrasils://PRV?bind=BIND1&bind=BIND2&pub=PUB}).
27 Возможно передавать параметры Yggdrasil конфигурации связанные с multicast.
30 @command{nncp-daemon} может слушать одновременно и на TCP и на
31 Yggdrasil-управляемом сокетах.
34 Слушание на endpoint сокете для пиринга в @command{nncp-daemon}
35 опционально -- вы можете быть доступны и через связь с peer-ами.
40 @subsection Релиз 8.1.0
44 @command{nncp-cfgdir} команда не требует обязательного наличия
45 @code{self} секции конфигурационного файла.
48 Появилась возможность работы в качестве клиента overlay сети Yggdrasil,
49 используя online протокол поверх неё.
54 @subsection Релиз 8.0.2
58 Исправлена возможность отправки мультивещательных пакетов.
63 @subsection Релиз 8.0.1
67 Исправлено некорректное вычисление @code{freq.chunked} значения, при
68 отсутствии которого всё равно форсированно включалась chunked передача.
71 Исправлено некорректное вычисление значения полного размера файла в
77 @subsection Релиз 8.0.0
81 @strong{Несовместимое} изменение формата зашифрованных пакетов: размеры
82 полезной нагрузки и дополнения посылаются прямо внутри зашифрованного
83 потока. Это даёт возможность потоково создавать шифрованные пакеты, без
84 знания размеров заранее, без создания временного файла или буферизации в
88 Производится корректная проверка дополнения зашифрованного пакета. Это
89 не критичная проблема, но прежде ни размер, ни значение дополнения не
90 были аутентифицированы, позволяя циклично откусывать по байту с конца и
91 узнавать размер полезной нагрузки, наблюдая за реакцией по обработке
92 такого зашифрованного пакета.
95 @command{nncp-exec} больше не имеет @option{-use-tmp} опции, из-за
96 совместимого с потоковой работой формата зашифрованных пакетов.
99 У @command{nncp-file} и @command{nncp-exec} команд появилась опция
100 @option{-maxsize}, ограничивающая максимальный результирующий размер
101 зашифрованного пакета (возвращая ошибку если он превышен). Может быть
102 полезно, так как размер полезной нагрузки может быть неизвестен заранее.
107 @subsection Релиз 7.7.0
111 Экспериментальная поддержка @code{kqueue} и @code{inotify} оповещений об
112 изменениях в spool директориях, для сокращения накладных расходов на их
116 @file{.seen} и @file{.hdr} файлы находятся в @file{seen/} и @file{hdr/}
117 поддиректориях теперь, дабы ускорить сканирование spool областей.
118 Необходима миграция текущих файлов:
121 $ find $NNCPSPOOL -type f -name "*.hdr" -exec rm @{@} +
123 $ find $NNCPSPOOL -type d -name rx | while read rx ; do
126 find . -type f -name "*.seen" | while read fn ; do
127 mv $fn seen/$@{fn%.seen@}
131 $ find $NNCPSPOOL -type d -name area | while read area ; do
132 find $area -type f -name "*.seen" | while read fn ; do
141 @subsection Релиз 7.6.0
145 Журналирование может производиться в назначенный открытый файловый
146 дескриптор (@env{$NNCPLOG=FD:5} например).
147 Что дружелюбно к использованию под @command{daemontools}.
150 Добавлены дополнительные проверки наличия публичных ключей в
151 конфигурационном файле, предотвращающие падения некоторых команд.
156 @subsection Релиз 7.5.1
160 NNCP собирается на NetBSD.
165 @subsection Релиз 7.5.0
169 @command{nncp-daemon} соблюдает UCSPI-TCP интерфейс, благодаря чему в
170 журнале будет присутствовать адрес удалённой системы (при запуске под
171 совместимой утилитой). Желательно применять @option{-ucspi} опцию вместо
175 @command{nncp-call} может быть UCSPI-TCP клиентом, используя
176 @option{-ucspi} опцию.
179 Не выходить если не получается слушать на каком-либо MCD сетевом
180 интерфейсе -- только предупреждать об ошибке.
185 @subsection Релиз 7.4.0
189 Исправлена работоспособность MCD при одновременном использовании
190 @command{nncp-daemon} и @command{nncp-caller}.
195 @subsection Релиз 7.3.2
199 @command{hjson-cli} утилита теперь собирается в vendor-режиме.
204 @subsection Релиз 7.3.1
208 Исправлена проблема с возможно остающимся открытым файловым
209 дескриптором в online командах.
212 Существенно снижено потребление памяти MTH хэширования.
217 @subsection Релиз 7.3.0
221 Поправлены проблемы работоспособности на 32-бит системах с большими файлами.
224 Возможность использовать конфигурацию в виде директории с набором
225 файлов. Появилась команда @command{nncp-cfgdir}.
230 @subsection Релиз 7.2.1
234 Небольшие оптимизации в online командах.
239 @subsection Релиз 7.2.0
243 Появилась @command{nncp-trns} команда для ручного создания транзитных пакетов.
246 Если у целевой ноды транзитного пакета задан @option{via} маршрут, то
247 использовать его, а не игнорировать.
250 Не отправлять multicast пакет оригинатору сообщения, очевидно точно
251 видящего свой собственный пакет.
254 Намного меньшее потребление памяти во время MTH хэширования когда
255 смещение равно нулю: когда пакет не является докачиванием, а например
256 проверяется @command{nncp-check} командой.
261 @subsection Релиз 7.1.1
265 Исправлено падение при fsync директорий после создания @file{.seen} файлов.
270 @subsection Релиз 7.1.0
274 Появилась возможность мультивещательной (multicast) рассылки пакетов.
275 Реализовано всего лишь дополнительным типом простых пакетов и изменением
276 @command{nncp-toss}, @command{nncp-file} и @command{nncp-exec} команд.
279 Исправлена работоспособность @command{nncp-file} и @command{nncp-exec}
280 команд использующих временный файл (stdin и @option{-use-tmp}).
283 Исправлен пропадающий плохой код возврата в @command{nncp-exec} команде.
286 Исправлено некорректное генерирование @file{.hdr} при использовании
290 У @command{nncp-rm} команды появилась @option{-all} опция, применяемая
294 У @command{nncp-check} команды появилась @option{-cycle} опция, вводящая
295 проверку в бесконечный цикл.
298 У @command{nncp-rm} команды можно указывать alias-ы имён нод.
301 @command{nncp-pkt} может парсить @file{.hdr} файлы.
306 @subsection Релиз 7.0.0
310 Минимальная требуемая версия Go 1.13.
313 Хэширование с BLAKE3 на базе деревьев Меркле (Merkle Tree Hashing, MTH)
314 используется вместо BLAKE2b. Из-за этого, обратно @strong{несовместимое}
315 изменение формата шифрованных файлов (всего что находится в spool
316 области) и формата @file{.meta} файла при chunked передаче.
318 Текущая реализация далека от оптимальной: в ней нет распараллеливания
319 вычислений и имеет повышенное потребление памяти: около 512 KiB на
320 каждый 1 GiB данных файла. Будущая оптимизация производительности и
321 потребления памяти не должна привести к изменению формата пакетов. Но
322 это всё равно в несколько раз быстрее BLAKE2b.
325 Из-за использования MTH, докачиваемые в online режиме файлы потребуют
326 чтения с диска только предшествующей части, а не полностью всего файла,
330 Добавлена @command{nncp-hash} утилита для вычисления MTH хэша файла.
333 В шифрованных пакетах BLAKE2 KDF и XOF функции заменены на BLAKE3. Ещё
334 уменьшая количество примитивов. А также заголовок шифрованного файла
335 теперь является ассоциированными данными при шифровании.
338 MultiCast Discovery использует
339 @verb{|ff02::4e4e:4350|} адрес вместо @verb{|ff02::1|}.
342 @command{nncp-cfgenc} ошибочно трижды спрашивал парольную фразу при шифровании.
345 @command{nncp-stat} выводит сводку о частично скачанных пакетах.
348 Обновлены зависимые библиотеки.
353 @subsection Релиз 6.6.0
357 @command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}
358 ожидают завершения всех процессов фоновой проверки контрольных сумм,
359 после того как соединение закрыто.
362 Добавлена возможность определения адреса через multicast оповещение в
363 локальной сети, так называемый MCD (MultiCast Discovery).
368 @subsection Релиз 6.5.0
372 Исправлено падение в @command{nncp-daemon} когда SP рукопожатие не было успешно.
375 Исправлено возможное игнорирование плохого кода возврата автоматического tosser.
378 Исправлена гонка при закрытии файловых дескрипторов во время завершения
379 работы online протокола, которая могла привести к ошибке записи
380 принятого фрагмента пакета.
383 Убирать показ прогресса передачи пакетов когда вызов уже завершён в
384 @command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}.
389 @subsection Релиз 6.4.0
393 Исправлена возможная гонка в online протоколе, приводящая к падению
399 @subsection Релиз 6.3.0
403 Исправлено возможное падение программы во время показа прогресса online
409 @subsection Релиз 6.2.1
413 В трёх местах сообщений журналов по ошибке остались лишние @code{%s}.
418 @subsection Релиз 6.2.0
422 Возвращена работоспособность @option{-autotoss*} опций @command{nncp-caller}.
425 Очередной рефакторинг и упрощение системы журналирования.
426 Не должно быть видимых изменений для конечного пользователя.
431 @subsection Релиз 6.1.0
435 Оптимизация: большинство команд теперь не держат открытыми файловые
436 дескрипторы. Прежде вы легко могли выйти за пределы максимально
437 допустимого количества открытых файлов, если у вас было много пакетов в
441 Оптимизация: не закрывать файловый дескриптор файла который мы качаем.
442 Прежде каждый его кусочек приводил к дорогим open/close вызовам.
445 Скачиваемые в режиме online файлы теперь сохраняются с @file{.nock}
446 суффиксом (non-checksummed), ожидая пока либо @command{nncp-check}, либо
447 online демоны не выполнят проверку целостности.
450 Оптимизация: для файлов, скачивание которых не было продолжено, сразу же
451 вычисляет контрольная сумма, пропуская промежуточный @file{.nock} шаг.
454 Возможность хранения заголовков зашифрованных пакетов в @file{.hdr}
455 файлах, рядом с самими пакетами. Это может существенно повысить скорость
456 получения списка пакетов на файловых системах с большим размером блока.
461 @subsection Релиз 6.0.0
465 Журнал использует человеко-читаемый и легко обрабатываемый машиной
466 @url{https://www.gnu.org/software/recutils/, recfile} формат для своих
467 записей, вместо структурированных строчек RFC 3339. Старый формат
468 журналов не поддерживается @command{nncp-log}.
471 Работоспособность @option{-autotoss*} опции с @option{-inetd} режимом
472 @command{nncp-daemon}.
475 @option{when-tx-exists} опция вызова в конфигурационном файле позволяет
476 делать вызов только если имеются исходящие сообщения. Совмещённая с cron
477 выражением содержащим секунды, это можно использовать как возможность
478 вызова только при появлении исходящих пакетов.
481 @command{nncp-cronexpr} команда позволяет проверить корректность и
482 ожидаемый результат от указанного cron выражения.
487 @subsection Релиз 5.6.0
491 @option{-autotoss*} опции запускают tosser не после завершения вызова, а
492 во время него ежесекундно.
495 В @option{calls} секции конфигурации появились опции
496 @option{autotoss}, @option{autotoss-doseen},
497 @option{autotoss-nofile}, @option{autotoss-nofreq},
498 @option{autotoss-noexec}, @option{autotoss-notrns}.
499 Вы можете настраивать опции автоматического tosser для каждого вызова.
502 Использовать vendoring вместо переопределения @env{$GOPATH} во время
503 установки tarball, так как текущая минимальная версия Go это 1.12,
504 поддерживающая модули.
509 @subsection Релиз 5.5.1
513 Уважать @env{$BINDIR}, @env{$INFODIR} и @env{$DOCDIR} переменные окружения
514 в @file{config} во время установки.
519 @subsection Релиз 5.5.0
523 Исправления ошибок в @command{nncp-call(er)}/@command{nncp-daemon},
524 @command{nncp-bundle}, @command{nncp-stat} командах.
527 У команды @command{nncp-rm} появились @option{-dryrun} и @option{-older} опции.
530 У команды @command{nncp-exec} появились @option{-use-tmp} и
531 @option{-nocompress} опции. Несжатые пакеты не совместимы с предыдущими
535 У команд @command{nncp-call}, @command{nncp-caller} и @command{nncp-daemon}
536 появились @option{-autotoss*} опции для запуска tosser после завершения звонка.
539 Обновлены зависимые библиотеки. Минимальная требуемая версия Go 1.12.
544 @subsection Релиз 5.4.1
548 Исправлена ошибка с учётом @code{SENDMAIL} переменной при сборке.
553 @subsection Релиз 5.4.0
557 Обновлены зависимые библиотеки.
560 Система сборки переведена с Makefile-ов на @url{http://cr.yp.to/redo.html, redo}.
561 Это не должно повлиять на мейнтейнеров пакетов, так как минимальная
562 реализация @command{redo} включена в tarball.
567 @subsection Релиз 5.3.3
571 Больше различных проверок в коде на ошибки.
574 Обновлены зависимые библиотеки.
579 @subsection Релиз 5.3.2
583 Исправлена некорректная логика @option{onlinedeadline} timeout-а, при
584 котором соединение могло не учитывать факты прихода пакетов и обрывать
590 @subsection Релиз 5.3.1
594 Исправлена работоспособность @option{onlinedeadline} с адресами вызова
595 использующими внешние команды (@verb{#"|somecmd"#}).
598 @command{nncp-stat} имеет опцию @option{-pkt} показывающую информацию по
599 каждому пакету в spool.
604 @subsection Релиз 5.3.0
608 Сообщения прогресса содержат префикс, поясняющий выполняемое действие.
611 Исправлено не происходящее дополнение (padding) handshake сообщений.
614 Завершать все порождаемые в SP протоколе горутины, меньше утечек памяти.
617 SP протокол порождает меньше вызовов записей (соответственно, и TCP
621 Проверять @option{onlinedeadline} и @option{maxonlinetime} ежесекундно,
622 независимо от чтения из сокета (раз в 10 секунд в худшем случае).
625 Раз в минуту, если нет более никакого другого трафика, посылаются PING
626 пакеты в SP-соединении. Это позволит быстрее понимать что соединение
627 более не работоспособно.
630 @command{nncp-toss} использует lock-file для предотвращения
631 одновременной обработки зашифрованных пакетов.
636 @subsection Релиз 5.2.1
640 Исправлена обработка ошибки SP протокола, иногда вызывающая панику программы.
645 @subsection Релиз 5.2.0
649 Большинство команд по умолчанию показывают однострочный прогресс
650 выполнения операции. Появились @option{-progress}, @option{-noprogress}
651 опции командной строки, @option{noprogress} опция конфигурационного
655 Исправлен некорректный код возврата @command{nncp-check} команды,
656 который возвращал ошибку когда всё хорошо.
659 Проверка свободного места для пакетов, во время выполнения
660 @command{nncp-bundle -rx}.
665 @subsection Релиз 5.1.2
669 Исправлена @strong{критичная} уязвимость: аутентификация online нод
670 могла приводить к некорректной идентификации удалённой стороны, позволяя
671 скачивать чужие зашифрованные пакеты.
674 Исправлена ошибка: в новосозданных конфигурационных файлах, приватный
675 публичный ключ Noise были поменяны местами, что приводило к
676 невозможности online аутентификации нод.
679 Явная синхронизация (fsync) директорий для гарантированного
680 переименования файлов.
685 @subsection Релиз 5.1.1
689 Исправлена работоспособность @command{nncp-file} с @option{-chunked 0} опцией.
694 @subsection Релиз 5.1.0
698 @command{nncp-file} может отправлять директории, автоматически на лету
702 Во время создания исходящих сообщений проверяется наличие свободного
703 места на файловой системе.
706 @option{freq}, @option{freqminsize}, @option{freqchunked} опции
707 конфигурационного файла заменены на структуру
708 @option{freq: @{path: @dots{}, minsize: @dots{}, chunked: @dots{}@}}.
711 Добавлена @option{freq.maxsize} опция конфигурационного файл,
712 запрещающая ответ на файловый запрос больше заданного размера.
715 Возможность оповещения об успешно выполненных командах (exec) через
716 @option{notify.exec} опцию конфигурационного файла.
721 @subsection Релиз 5.0.0
725 @strong{Несовместимое} изменение формата конфигурационного файла:
726 YAML заменён на Hjson, из-за его гораздо большей простоты, без
727 заметной потери функционала и удобства.
730 @strong{Несовместимое} изменение формата простых пакетов. Работа со
731 старыми версиями не поддерживается. @code{zlib} сжатие заменено на
732 @code{Zstandard}, так как оно значительно быстрее и эффективнее, не
733 смотря на то, что версия библиотеки ещё не проверена временем.
736 Возможность соединяться с удалёнными нодами не только по TCP, но и через
737 pipe вызов сторонней команды.
740 @command{nncp-cfgnew} генерирует конфигурационный файл с множеством
741 комментариев. Можно использовать @option{-nocomments} опцию для старого
745 Дубликаты имён файлов имеют суффикс @file{.CTR}, вместо @file{CTR},
746 чтобы избежать возможных коллизий с @file{.nncp.chunkCTR}.
749 Возможность переопределить umask процесса через опцию конфигурационного
753 По умолчанию файлы и директории создаются с 666/777 правами доступа,
754 позволяя управлять ими @command{umask}-ом.
757 Обновлены зависимости.
760 Полное использование go модулей для управления зависимостями
761 (используется @code{go.cypherpunks.ru/nncp/v5} namespace).
764 Отмена автоматического использования более новых версий GNU GPL
765 (лицензия проекта GNU GPLv3-только).
770 @subsection Релиз 4.1
772 @item Восстановлена работоспособность на GNU/Linux системах и Go версии 1.10.
776 @subsection Релиз 4.0
780 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов:
781 используется AEAD режим шифрования с 128 КиБ блоками, так как раньше
782 @command{nncp-toss} не проверял MAC зашифрованного пакета прежде чем
783 отсылать дешифрованные данные внешней команде. Старые версии не
787 Проверка доступного места перед копированием во время работы
788 @command{nncp-xfer}, @command{nncp-daemon}, @command{nncp-call(er)}.
791 @command{nncp-call} имеет возможность только показывать список пакетов
792 на удалённой машине, без их передачи.
795 @command{nncp-call} имеет возможность передавать только чётко указанные пакеты.
798 Восстановлена работоспособность @option{xxrate} настройки в
799 @option{calls} секции конфигурационного файла.
802 Зависимые библиотеки обновлены.
805 Небольшие исправления ошибок.
808 Начало использования @code{go.mod} подсистемы.
813 @subsection Релиз 3.4
815 @item @command{nncp-daemon} может быть запущен как @command{inetd}-служба.
819 @subsection Релиз 3.3
823 @command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller}
824 проверяют существование @file{.seen} файла и расценивают его как то, что
825 файл уже был скачан. Возможно передача данных была осуществлена
826 сторонним способом и удалённая сторона должна быть оповещена об этом.
829 Если более высокоприоритетный пакет попадает в спул, то
830 @command{nncp-daemon} добавит его в очередь отправки первым, прерывая
831 низкоприоритетные передачи.
834 К средствам связанным с online-соединениями (@command{nncp-daemon},
835 @command{nncp-call}, @command{nncp-caller}) добавлен простой
836 ограничитель скорости.
839 Возможность задания приоритета символьными обозначениями:
840 @verb{|NORMAL|}, @verb{|BULK+10|}, @verb{|PRIORITY-5|}, итд.
843 Изменены значения приоритетов по-умолчанию:
844 для @command{nncp-exec} с 64 на 96,
845 для @command{nncp-freq} с 64 на 160,
846 для @command{nncp-file} с 196 на 224.
851 @subsection Релиз 3.2
854 @strong{Несовместимое} изменение формата @emph{bundle} архивов и
855 работоспособность @command{nncp-bundle} команды с Go 1.10+. Bundle
856 должен быть корректным tar архивом, но Go 1.9 делал его недействительным
857 из-за длинных путей внутри. NNCP нечаянно был зависим от этой баги.
858 Явное добавление @file{NNCP/} директории в архив восстанавливает
859 работоспособность с корректными tar архивами.
863 @subsection Релиз 3.1
866 Возможность отключать пересылку через промежуточные ноды используя
867 @verb{|-via -|} опцию командной строки.
871 @subsection Релиз 3.0
875 @strong{Несовместимое} изменение формата простых пакетов. Работа со
876 старыми версиями не поддерживается.
879 Добавлена возможность удалённого исполнения команд, путём
880 конфигурирования @option{exec} опции конфигурационного файла и
881 использования команды @command{nncp-exec}:
884 Команда @command{nncp-mail} заменена более гибкой и широкой
885 @command{nncp-exec}. Вместо вызова @verb{|nncp-mail NODE RECIPIENT|}
886 нужно использовать @verb{|nncp-exec NODE sendmail RECIPIENT|}.
888 @option{sendmail} опция конфигурационного файла заменена на более гибкую
889 @option{exec}. @verb{|sendmail: [...]|} нужно заменить на @verb{|exec:
894 Возможность переопределить @option{via} опцию конфигурации для целевого
895 узла через @option{-via} опцию командной строки для следующих команд:
896 @command{nncp-file}, @command{nncp-freq}, @command{nncp-exec}.
899 Chunked файлы, меньшего размера чем указанный chunk, отправляются просто
903 Exec команды вызываются с дополнительными переменными окружения
904 @env{$NNCP_NICE} и @env{$NNCP_SELF}.
907 Отправляемые файлы в ответ на запрос имеют приоритет указанный в запросе.
908 Указать их желаемый приоритет во время вызова @command{nncp-freq} можно
909 аргументом @option{-replynice}.
912 Команде @command{nncp-toss} можно сказать не обрабатывать определённые
913 типы пакетов, за счёт опций @option{-nofile}, @option{-nofreq},
914 @option{-noexec}, @option{-notrns}.
917 По-умолчанию @command{nncp-file} команда для
918 @option{-minsize}/@option{-chunked} опций использует
919 @option{FreqMinSize}/@option{FreqChunked} из конфигурационного файла.
920 Это можно отключить указав нулевое значение.
925 @subsection Релиз 2.0
929 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов.
930 Работа со старыми версиями не поддерживается.
933 Алгоритм шифрования Twofish заменён на ChaCha20. Он намного быстрее.
934 Одним криптографическим примитивом меньше.
937 HKDF-BLAKE2b-256 KDF алгоритм заменён на BLAKE2Xb XOF. Ещё одним
938 криптографическим примитивом меньше (предполагая, что BLAKE2X
939 практически идентичен BLAKE2).
944 @subsection Релиз 1.0
948 @strong{Несовместимое} изменение формата зашифрованных пакетов. Работа
949 со старыми версиями не поддерживается.
952 @command{nncp-bundle} команда может создавать потоки зашифрованных
953 пакетов или потреблять их. Это полезно когда речь идёт о
954 @code{stdin}/@code{stdout} методах передачи (например запись на CD-ROM
955 без создания промежуточного подготовленного ISO образа или работа с
956 ленточными накопителями).
959 @command{nncp-toss} команда может создавать @file{.seen} файлы,
960 предотвращая приём дублированных пакетов.
963 В команде @command{nncp-call} разрешается иметь только одного
964 обработчика контрольной суммы в фоне. Это полезно когда тысячи маленьких
965 входящих пакетов могут создать много горутин.
968 Возможность переопределить путь до spool директории и файла журнала
969 через аргумент командной строки или переменную окружения.
972 @command{nncp-rm} команда может удалять все исходящие/входящие,
973 @file{.seen}, @file{.part}, @file{.lock} и временные файлы.
978 @subsection Релиз 0.12
980 @item Команда sendmail вызывается с @env{$NNCP_SENDER} переменной окружения.
984 @subsection Релиз 0.11
986 @item Вывод команды @command{nncp-stat} отсортирован по имени ноды.
990 @subsection Релиз 0.10
993 @file{DST} аргумент @command{nncp-freq} команды теперь опционален.
994 По-умолчанию будет подставлен последний элемент @file{SRC} пути.
998 @subsection Релиз 0.9
1001 Исправлена обработка @option{-rx}/@option{-tx} опций @command{nncp-call}
1002 команды. Они игнорировались.
1006 @subsection Релиз 0.8
1009 Небольшое исправление ошибки в команде @command{nncp-file}, где опция
1010 @option{-minsize} для передачи без разбиения на части была в байтах, а
1015 @subsection Релиз 0.7
1019 Возможность предоставлять данные для @command{nncp-file} через
1020 стандартный ввод, используя временный зашифрованный файл для этого.
1023 Появилась возможность передачи файлов разбитых на части, с сопутствующей
1024 @command{nncp-reass} командой и @option{freqchunked} опцией
1025 конфигурационного файла. Полезно для передачи больших файлов через
1026 маленькие устройства хранения.
1029 @option{freqminsize} опция конфигурационного файла, аналогичная
1033 Опция @option{-force} команды @command{nncp-xfer} переименована в
1034 @option{-mkdir} для ясности.
1037 Опция @option{-minsize} задаётся в KiB, а не байтах, для удобства.
1040 Команда @command{nncp-newcfg} переименована в @command{nncp-cfgnew},
1041 а @command{nncp-mincfg} в @command{nncp-cfgmin}, для того чтобы они
1042 имели общий префикс и были сгруппированы для удобства.
1045 Появилась команда @command{nncp-cfgenc}, позволяющая
1046 шифровать/дешифровать конфигурационный файл, чтобы безопасно его хранить
1047 без использования OpenPGP или других подобных инструментов.
1050 Обновлены зависимые криптографические библиотеки.
1055 @subsection Релиз 0.6
1057 @item Появилась небольшая команда @command{nncp-rm}.
1058 @item Обновлены зависимые криптографические библиотеки.
1062 @subsection Релиз 0.5
1065 Тривиальное небольшое исправление в значениях приоритетов по-умолчанию в
1066 @command{nncp-file} и @command{nncp-freq} командах.
1070 @subsection Релиз 0.4
1074 Небольшое исправление в @command{nncp-call}, @command{nncp-caller},
1075 @command{nncp-daemon}: иногда они могли падать с segmentation fault
1076 ошибкой (данные не терялись).
1079 @command{nncp-newnode} переименована в @command{nncp-newcfg} --
1080 это короче и удобнее для использования.
1083 Появилась команда @command{nncp-mincfg}: вспомогательная утилита
1084 позволяющая создать минималистичный урезанный конфигурационный файл без
1085 приватных ключей, что полезно во время использования @command{nncp-xfer}.
1090 @subsection Релиз 0.3
1092 @item Исправлена совместимость с Go 1.6.
1096 @subsection Релиз 0.2
1100 @strong{Несовместимое} изменение формата пакета (магическое число тоже
1101 изменено): поле размера пакета шифруется и не посылается в открытом виде.
1104 @option{-minsize} опция даёт возможность автоматически дополнять
1105 исходящие пакеты до указанного минимального размера.
1108 @command{nncp-daemon} и @command{nncp-call}/@command{nncp-caller} всегда
1109 в фоне проверяют появление исходящих @emph{tx} пакетов пока подключены.
1110 Удалённая сторона сразу же оповещается об этом.
1113 @option{-onlinedeadline} опция даёт возможность выставления timeout-а на
1114 неактивность в online соединении, когда оно должно быть отключено. Она
1115 может быть использована для сохранения соединения на долгое время.
1118 @option{-maxonlinetime} опция даёт возможность указания максимального
1119 возможного времени жизни соединения.
1122 Появилась @command{nncp-caller} команда: клиент TCP-демона работающий по
1126 @command{nncp-pkt} команда может разжимать данные.