5 @subsection Релиз 8.1.0
9 @command{nncp-cfgdir} команда не требует обязательного наличия
10 @code{self} секции конфигурационного файла.
13 Появилась возможность работы в качестве клиента overlay сети Yggdrasil,
14 используя online протокол поверх неё.
19 @subsection Релиз 8.0.2
23 Исправлена возможность отправки мультивещательных пакетов.
28 @subsection Релиз 8.0.1
32 Исправлено некорректное вычисление @code{freq.chunked} значения, при
33 отсутствии которого всё равно форсированно включалась chunked передача.
36 Исправлено некорректное вычисление значения полного размера файла в
42 @subsection Релиз 8.0.0
46 @strong{Несовместимое} изменение формата зашифрованных пакетов: размеры
47 полезной нагрузки и дополнения посылаются прямо внутри зашифрованного
48 потока. Это даёт возможность потоково создавать шифрованные пакеты, без
49 знания размеров заранее, без создания временного файла или буферизации в
53 Производится корректная проверка дополнения зашифрованного пакета. Это
54 не критичная проблема, но прежде ни размер, ни значение дополнения не
55 были аутентифицированы, позволяя циклично откусывать по байту с конца и
56 узнавать размер полезной нагрузки, наблюдая за реакцией по обработке
57 такого зашифрованного пакета.
60 @command{nncp-exec} больше не имеет @option{-use-tmp} опции, из-за
61 совместимого с потоковой работой формата зашифрованных пакетов.
64 У @command{nncp-file} и @command{nncp-exec} команд появилась опция
65 @option{-maxsize}, ограничивающая максимальный результирующий размер
66 зашифрованного пакета (возвращая ошибку если он превышен). Может быть
67 полезно, так как размер полезной нагрузки может быть неизвестен заранее.
72 @subsection Релиз 7.7.0
76 Экспериментальная поддержка @code{kqueue} и @code{inotify} оповещений об
77 изменениях в spool директориях, для сокращения накладных расходов на их
81 @file{.seen} и @file{.hdr} файлы находятся в @file{seen/} и @file{hdr/}
82 поддиректориях теперь, дабы ускорить сканирование spool областей.
83 Необходима миграция текущих файлов:
86 $ find $NNCPSPOOL -type f -name "*.hdr" -exec rm @{@} +
88 $ find $NNCPSPOOL -type d -name rx | while read rx ; do
91 find . -type f -name "*.seen" | while read fn ; do
92 mv $fn seen/$@{fn%.seen@}
96 $ find $NNCPSPOOL -type d -name area | while read area ; do
97 find $area -type f -name "*.seen" | while read fn ; do
106 @subsection Релиз 7.6.0
110 Журналирование может производиться в назначенный открытый файловый
111 дескриптор (@env{$NNCPLOG=FD:5} например).
112 Что дружелюбно к использованию под @command{daemontools}.
115 Добавлены дополнительные проверки наличия публичных ключей в
116 конфигурационном файле, предотвращающие падения некоторых команд.
121 @subsection Релиз 7.5.1
125 NNCP собирается на NetBSD.
130 @subsection Релиз 7.5.0
134 @command{nncp-daemon} соблюдает UCSPI-TCP интерфейс, благодаря чему в
135 журнале будет присутствовать адрес удалённой системы (при запуске под
136 совместимой утилитой). Желательно применять @option{-ucspi} опцию вместо
140 @command{nncp-call} может быть UCSPI-TCP клиентом, используя
141 @option{-ucspi} опцию.
144 Не выходить если не получается слушать на каком-либо MCD сетевом
145 интерфейсе -- только предупреждать об ошибке.
150 @subsection Релиз 7.4.0
154 Исправлена работоспособность MCD при одновременном использовании
155 @command{nncp-daemon} и @command{nncp-caller}.
160 @subsection Релиз 7.3.2
164 @command{hjson-cli} утилита теперь собирается в vendor-режиме.
169 @subsection Релиз 7.3.1
173 Исправлена проблема с возможно остающимся открытым файловым
174 дескриптором в online командах.
177 Существенно снижено потребление памяти MTH хэширования.
182 @subsection Релиз 7.3.0
186 Поправлены проблемы работоспособности на 32-бит системах с большими файлами.
189 Возможность использовать конфигурацию в виде директории с набором
190 файлов. Появилась команда @command{nncp-cfgdir}.
195 @subsection Релиз 7.2.1
199 Небольшие оптимизации в online командах.
204 @subsection Релиз 7.2.0
208 Появилась @command{nncp-trns} команда для ручного создания транзитных пакетов.
211 Если у целевой ноды транзитного пакета задан @option{via} маршрут, то
212 использовать его, а не игнорировать.
215 Не отправлять multicast пакет оригинатору сообщения, очевидно точно
216 видящего свой собственный пакет.
219 Намного меньшее потребление памяти во время MTH хэширования когда
220 смещение равно нулю: когда пакет не является докачиванием, а например
221 проверяется @command{nncp-check} командой.
226 @subsection Релиз 7.1.1
230 Исправлено падение при fsync директорий после создания @file{.seen} файлов.
235 @subsection Релиз 7.1.0
239 Появилась возможность мультивещательной (multicast) рассылки пакетов.
240 Реализовано всего лишь дополнительным типом простых пакетов и изменением
241 @command{nncp-toss}, @command{nncp-file} и @command{nncp-exec} команд.
244 Исправлена работоспособность @command{nncp-file} и @command{nncp-exec}
245 команд использующих временный файл (stdin и @option{-use-tmp}).
248 Исправлен пропадающий плохой код возврата в @command{nncp-exec} команде.
251 Исправлено некорректное генерирование @file{.hdr} при использовании
255 У @command{nncp-rm} команды появилась @option{-all} опция, применяемая
259 У @command{nncp-check} команды появилась @option{-cycle} опция, вводящая
260 проверку в бесконечный цикл.
263 У @command{nncp-rm} команды можно указывать alias-ы имён нод.
266 @command{nncp-pkt} может парсить @file{.hdr} файлы.
271 @subsection Релиз 7.0.0
275 Минимальная требуемая версия Go 1.13.
278 Хэширование с BLAKE3 на базе деревьев Меркле (Merkle Tree Hashing, MTH)
279 используется вместо BLAKE2b. Из-за этого, обратно @strong{несовместимое}
280 изменение формата шифрованных файлов (всего что находится в spool
281 области) и формата @file{.meta} файла при chunked передаче.
283 Текущая реализация далека от оптимальной: в ней нет распараллеливания
284 вычислений и имеет повышенное потребление памяти: около 512 KiB на
285 каждый 1 GiB данных файла. Будущая оптимизация производительности и
286 потребления памяти не должна привести к изменению формата пакетов. Но
287 это всё равно в несколько раз быстрее BLAKE2b.
290 Из-за использования MTH, докачиваемые в online режиме файлы потребуют
291 чтения с диска только предшествующей части, а не полностью всего файла,
295 Добавлена @command{nncp-hash} утилита для вычисления MTH хэша файла.
298 В шифрованных пакетах BLAKE2 KDF и XOF функции заменены на BLAKE3. Ещё
299 уменьшая количество примитивов. А также заголовок шифрованного файла
300 теперь является ассоциированными данными при шифровании.
303 MultiCast Discovery использует
304 @verb{|ff02::4e4e:4350|} адрес вместо @verb{|ff02::1|}.
307 @command{nncp-cfgenc} ошибочно трижды спрашивал парольную фразу при шифровании.
310 @command{nncp-stat} выводит сводку о частично скачанных пакетах.
313 Обновлены зависимые библиотеки.
318 @subsection Релиз 6.6.0
322 @command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}
323 ожидают завершения всех процессов фоновой проверки контрольных сумм,
324 после того как соединение закрыто.
327 Добавлена возможность определения адреса через multicast оповещение в
328 локальной сети, так называемый MCD (MultiCast Discovery).
333 @subsection Релиз 6.5.0
337 Исправлено падение в @command{nncp-daemon} когда SP рукопожатие не было успешно.
340 Исправлено возможное игнорирование плохого кода возврата автоматического tosser.
343 Исправлена гонка при закрытии файловых дескрипторов во время завершения
344 работы online протокола, которая могла привести к ошибке записи
345 принятого фрагмента пакета.
348 Убирать показ прогресса передачи пакетов когда вызов уже завершён в
349 @command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}.
354 @subsection Релиз 6.4.0
358 Исправлена возможная гонка в online протоколе, приводящая к падению
364 @subsection Релиз 6.3.0
368 Исправлено возможное падение программы во время показа прогресса online
374 @subsection Релиз 6.2.1
378 В трёх местах сообщений журналов по ошибке остались лишние @code{%s}.
383 @subsection Релиз 6.2.0
387 Возвращена работоспособность @option{-autotoss*} опций @command{nncp-caller}.
390 Очередной рефакторинг и упрощение системы журналирования.
391 Не должно быть видимых изменений для конечного пользователя.
396 @subsection Релиз 6.1.0
400 Оптимизация: большинство команд теперь не держат открытыми файловые
401 дескрипторы. Прежде вы легко могли выйти за пределы максимально
402 допустимого количества открытых файлов, если у вас было много пакетов в
406 Оптимизация: не закрывать файловый дескриптор файла который мы качаем.
407 Прежде каждый его кусочек приводил к дорогим open/close вызовам.
410 Скачиваемые в режиме online файлы теперь сохраняются с @file{.nock}
411 суффиксом (non-checksummed), ожидая пока либо @command{nncp-check}, либо
412 online демоны не выполнят проверку целостности.
415 Оптимизация: для файлов, скачивание которых не было продолжено, сразу же
416 вычисляет контрольная сумма, пропуская промежуточный @file{.nock} шаг.
419 Возможность хранения заголовков зашифрованных пакетов в @file{.hdr}
420 файлах, рядом с самими пакетами. Это может существенно повысить скорость
421 получения списка пакетов на файловых системах с большим размером блока.
426 @subsection Релиз 6.0.0
430 Журнал использует человеко-читаемый и легко обрабатываемый машиной
431 @url{https://www.gnu.org/software/recutils/, recfile} формат для своих
432 записей, вместо структурированных строчек RFC 3339. Старый формат
433 журналов не поддерживается @command{nncp-log}.
436 Работоспособность @option{-autotoss*} опции с @option{-inetd} режимом
437 @command{nncp-daemon}.
440 @option{when-tx-exists} опция вызова в конфигурационном файле позволяет
441 делать вызов только если имеются исходящие сообщения. Совмещённая с cron
442 выражением содержащим секунды, это можно использовать как возможность
443 вызова только при появлении исходящих пакетов.
446 @command{nncp-cronexpr} команда позволяет проверить корректность и
447 ожидаемый результат от указанного cron выражения.
452 @subsection Релиз 5.6.0
456 @option{-autotoss*} опции запускают tosser не после завершения вызова, а
457 во время него ежесекундно.
460 В @option{calls} секции конфигурации появились опции
461 @option{autotoss}, @option{autotoss-doseen},
462 @option{autotoss-nofile}, @option{autotoss-nofreq},
463 @option{autotoss-noexec}, @option{autotoss-notrns}.
464 Вы можете настраивать опции автоматического tosser для каждого вызова.
467 Использовать vendoring вместо переопределения @env{$GOPATH} во время
468 установки tarball, так как текущая минимальная версия Go это 1.12,
469 поддерживающая модули.
474 @subsection Релиз 5.5.1
478 Уважать @env{$BINDIR}, @env{$INFODIR} и @env{$DOCDIR} переменные окружения
479 в @file{config} во время установки.
484 @subsection Релиз 5.5.0
488 Исправления ошибок в @command{nncp-call(er)}/@command{nncp-daemon},
489 @command{nncp-bundle}, @command{nncp-stat} командах.
492 У команды @command{nncp-rm} появились @option{-dryrun} и @option{-older} опции.
495 У команды @command{nncp-exec} появились @option{-use-tmp} и
496 @option{-nocompress} опции. Несжатые пакеты не совместимы с предыдущими
500 У команд @command{nncp-call}, @command{nncp-caller} и @command{nncp-daemon}
501 появились @option{-autotoss*} опции для запуска tosser после завершения звонка.
504 Обновлены зависимые библиотеки. Минимальная требуемая версия Go 1.12.
509 @subsection Релиз 5.4.1
513 Исправлена ошибка с учётом @code{SENDMAIL} переменной при сборке.
518 @subsection Релиз 5.4.0
522 Обновлены зависимые библиотеки.
525 Система сборки переведена с Makefile-ов на @url{http://cr.yp.to/redo.html, redo}.
526 Это не должно повлиять на мейнтейнеров пакетов, так как минимальная
527 реализация @command{redo} включена в tarball.
532 @subsection Релиз 5.3.3
536 Больше различных проверок в коде на ошибки.
539 Обновлены зависимые библиотеки.
544 @subsection Релиз 5.3.2
548 Исправлена некорректная логика @option{onlinedeadline} timeout-а, при
549 котором соединение могло не учитывать факты прихода пакетов и обрывать
555 @subsection Релиз 5.3.1
559 Исправлена работоспособность @option{onlinedeadline} с адресами вызова
560 использующими внешние команды (@verb{#"|somecmd"#}).
563 @command{nncp-stat} имеет опцию @option{-pkt} показывающую информацию по
564 каждому пакету в spool.
569 @subsection Релиз 5.3.0
573 Сообщения прогресса содержат префикс, поясняющий выполняемое действие.
576 Исправлено не происходящее дополнение (padding) handshake сообщений.
579 Завершать все порождаемые в SP протоколе горутины, меньше утечек памяти.
582 SP протокол порождает меньше вызовов записей (соответственно, и TCP
586 Проверять @option{onlinedeadline} и @option{maxonlinetime} ежесекундно,
587 независимо от чтения из сокета (раз в 10 секунд в худшем случае).
590 Раз в минуту, если нет более никакого другого трафика, посылаются PING
591 пакеты в SP-соединении. Это позволит быстрее понимать что соединение
592 более не работоспособно.
595 @command{nncp-toss} использует lock-file для предотвращения
596 одновременной обработки зашифрованных пакетов.
601 @subsection Релиз 5.2.1
605 Исправлена обработка ошибки SP протокола, иногда вызывающая панику программы.
610 @subsection Релиз 5.2.0
614 Большинство команд по умолчанию показывают однострочный прогресс
615 выполнения операции. Появились @option{-progress}, @option{-noprogress}
616 опции командной строки, @option{noprogress} опция конфигурационного
620 Исправлен некорректный код возврата @command{nncp-check} команды,
621 который возвращал ошибку когда всё хорошо.
624 Проверка свободного места для пакетов, во время выполнения
625 @command{nncp-bundle -rx}.
630 @subsection Релиз 5.1.2
634 Исправлена @strong{критичная} уязвимость: аутентификация online нод
635 могла приводить к некорректной идентификации удалённой стороны, позволяя
636 скачивать чужие зашифрованные пакеты.
639 Исправлена ошибка: в новосозданных конфигурационных файлах, приватный
640 публичный ключ Noise были поменяны местами, что приводило к
641 невозможности online аутентификации нод.
644 Явная синхронизация (fsync) директорий для гарантированного
645 переименования файлов.
650 @subsection Релиз 5.1.1
654 Исправлена работоспособность @command{nncp-file} с @option{-chunked 0} опцией.
659 @subsection Релиз 5.1.0
663 @command{nncp-file} может отправлять директории, автоматически на лету
667 Во время создания исходящих сообщений проверяется наличие свободного
668 места на файловой системе.
671 @option{freq}, @option{freqminsize}, @option{freqchunked} опции
672 конфигурационного файла заменены на структуру
673 @option{freq: @{path: @dots{}, minsize: @dots{}, chunked: @dots{}@}}.
676 Добавлена @option{freq.maxsize} опция конфигурационного файл,
677 запрещающая ответ на файловый запрос больше заданного размера.
680 Возможность оповещения об успешно выполненных командах (exec) через
681 @option{notify.exec} опцию конфигурационного файла.
686 @subsection Релиз 5.0.0
690 @strong{Несовместимое} изменение формата конфигурационного файла:
691 YAML заменён на Hjson, из-за его гораздо большей простоты, без
692 заметной потери функционала и удобства.
695 @strong{Несовместимое} изменение формата простых пакетов. Работа со
696 старыми версиями не поддерживается. @code{zlib} сжатие заменено на
697 @code{Zstandard}, так как оно значительно быстрее и эффективнее, не
698 смотря на то, что версия библиотеки ещё не проверена временем.
701 Возможность соединяться с удалёнными нодами не только по TCP, но и через
702 pipe вызов сторонней команды.
705 @command{nncp-cfgnew} генерирует конфигурационный файл с множеством
706 комментариев. Можно использовать @option{-nocomments} опцию для старого
710 Дубликаты имён файлов имеют суффикс @file{.CTR}, вместо @file{CTR},
711 чтобы избежать возможных коллизий с @file{.nncp.chunkCTR}.
714 Возможность переопределить umask процесса через опцию конфигурационного
718 По умолчанию файлы и директории создаются с 666/777 правами доступа,
719 позволяя управлять ими @command{umask}-ом.
722 Обновлены зависимости.
725 Полное использование go модулей для управления зависимостями
726 (используется @code{go.cypherpunks.ru/nncp/v5} namespace).
729 Отмена автоматического использования более новых версий GNU GPL
730 (лицензия проекта GNU GPLv3-только).
735 @subsection Релиз 4.1
737 @item Восстановлена работоспособность на GNU/Linux системах и Go версии 1.10.
741 @subsection Релиз 4.0
745 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов:
746 используется AEAD режим шифрования с 128 КиБ блоками, так как раньше
747 @command{nncp-toss} не проверял MAC зашифрованного пакета прежде чем
748 отсылать дешифрованные данные внешней команде. Старые версии не
752 Проверка доступного места перед копированием во время работы
753 @command{nncp-xfer}, @command{nncp-daemon}, @command{nncp-call(er)}.
756 @command{nncp-call} имеет возможность только показывать список пакетов
757 на удалённой машине, без их передачи.
760 @command{nncp-call} имеет возможность передавать только чётко указанные пакеты.
763 Восстановлена работоспособность @option{xxrate} настройки в
764 @option{calls} секции конфигурационного файла.
767 Зависимые библиотеки обновлены.
770 Небольшие исправления ошибок.
773 Начало использования @code{go.mod} подсистемы.
778 @subsection Релиз 3.4
780 @item @command{nncp-daemon} может быть запущен как @command{inetd}-служба.
784 @subsection Релиз 3.3
788 @command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller}
789 проверяют существование @file{.seen} файла и расценивают его как то, что
790 файл уже был скачан. Возможно передача данных была осуществлена
791 сторонним способом и удалённая сторона должна быть оповещена об этом.
794 Если более высокоприоритетный пакет попадает в спул, то
795 @command{nncp-daemon} добавит его в очередь отправки первым, прерывая
796 низкоприоритетные передачи.
799 К средствам связанным с online-соединениями (@command{nncp-daemon},
800 @command{nncp-call}, @command{nncp-caller}) добавлен простой
801 ограничитель скорости.
804 Возможность задания приоритета символьными обозначениями:
805 @verb{|NORMAL|}, @verb{|BULK+10|}, @verb{|PRIORITY-5|}, итд.
808 Изменены значения приоритетов по-умолчанию:
809 для @command{nncp-exec} с 64 на 96,
810 для @command{nncp-freq} с 64 на 160,
811 для @command{nncp-file} с 196 на 224.
816 @subsection Релиз 3.2
819 @strong{Несовместимое} изменение формата @emph{bundle} архивов и
820 работоспособность @command{nncp-bundle} команды с Go 1.10+. Bundle
821 должен быть корректным tar архивом, но Go 1.9 делал его недействительным
822 из-за длинных путей внутри. NNCP нечаянно был зависим от этой баги.
823 Явное добавление @file{NNCP/} директории в архив восстанавливает
824 работоспособность с корректными tar архивами.
828 @subsection Релиз 3.1
831 Возможность отключать пересылку через промежуточные ноды используя
832 @verb{|-via -|} опцию командной строки.
836 @subsection Релиз 3.0
840 @strong{Несовместимое} изменение формата простых пакетов. Работа со
841 старыми версиями не поддерживается.
844 Добавлена возможность удалённого исполнения команд, путём
845 конфигурирования @option{exec} опции конфигурационного файла и
846 использования команды @command{nncp-exec}:
849 Команда @command{nncp-mail} заменена более гибкой и широкой
850 @command{nncp-exec}. Вместо вызова @verb{|nncp-mail NODE RECIPIENT|}
851 нужно использовать @verb{|nncp-exec NODE sendmail RECIPIENT|}.
853 @option{sendmail} опция конфигурационного файла заменена на более гибкую
854 @option{exec}. @verb{|sendmail: [...]|} нужно заменить на @verb{|exec:
859 Возможность переопределить @option{via} опцию конфигурации для целевого
860 узла через @option{-via} опцию командной строки для следующих команд:
861 @command{nncp-file}, @command{nncp-freq}, @command{nncp-exec}.
864 Chunked файлы, меньшего размера чем указанный chunk, отправляются просто
868 Exec команды вызываются с дополнительными переменными окружения
869 @env{$NNCP_NICE} и @env{$NNCP_SELF}.
872 Отправляемые файлы в ответ на запрос имеют приоритет указанный в запросе.
873 Указать их желаемый приоритет во время вызова @command{nncp-freq} можно
874 аргументом @option{-replynice}.
877 Команде @command{nncp-toss} можно сказать не обрабатывать определённые
878 типы пакетов, за счёт опций @option{-nofile}, @option{-nofreq},
879 @option{-noexec}, @option{-notrns}.
882 По-умолчанию @command{nncp-file} команда для
883 @option{-minsize}/@option{-chunked} опций использует
884 @option{FreqMinSize}/@option{FreqChunked} из конфигурационного файла.
885 Это можно отключить указав нулевое значение.
890 @subsection Релиз 2.0
894 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов.
895 Работа со старыми версиями не поддерживается.
898 Алгоритм шифрования Twofish заменён на ChaCha20. Он намного быстрее.
899 Одним криптографическим примитивом меньше.
902 HKDF-BLAKE2b-256 KDF алгоритм заменён на BLAKE2Xb XOF. Ещё одним
903 криптографическим примитивом меньше (предполагая, что BLAKE2X
904 практически идентичен BLAKE2).
909 @subsection Релиз 1.0
913 @strong{Несовместимое} изменение формата зашифрованных пакетов. Работа
914 со старыми версиями не поддерживается.
917 @command{nncp-bundle} команда может создавать потоки зашифрованных
918 пакетов или потреблять их. Это полезно когда речь идёт о
919 @code{stdin}/@code{stdout} методах передачи (например запись на CD-ROM
920 без создания промежуточного подготовленного ISO образа или работа с
921 ленточными накопителями).
924 @command{nncp-toss} команда может создавать @file{.seen} файлы,
925 предотвращая приём дублированных пакетов.
928 В команде @command{nncp-call} разрешается иметь только одного
929 обработчика контрольной суммы в фоне. Это полезно когда тысячи маленьких
930 входящих пакетов могут создать много горутин.
933 Возможность переопределить путь до spool директории и файла журнала
934 через аргумент командной строки или переменную окружения.
937 @command{nncp-rm} команда может удалять все исходящие/входящие,
938 @file{.seen}, @file{.part}, @file{.lock} и временные файлы.
943 @subsection Релиз 0.12
945 @item Команда sendmail вызывается с @env{$NNCP_SENDER} переменной окружения.
949 @subsection Релиз 0.11
951 @item Вывод команды @command{nncp-stat} отсортирован по имени ноды.
955 @subsection Релиз 0.10
958 @file{DST} аргумент @command{nncp-freq} команды теперь опционален.
959 По-умолчанию будет подставлен последний элемент @file{SRC} пути.
963 @subsection Релиз 0.9
966 Исправлена обработка @option{-rx}/@option{-tx} опций @command{nncp-call}
967 команды. Они игнорировались.
971 @subsection Релиз 0.8
974 Небольшое исправление ошибки в команде @command{nncp-file}, где опция
975 @option{-minsize} для передачи без разбиения на части была в байтах, а
980 @subsection Релиз 0.7
984 Возможность предоставлять данные для @command{nncp-file} через
985 стандартный ввод, используя временный зашифрованный файл для этого.
988 Появилась возможность передачи файлов разбитых на части, с сопутствующей
989 @command{nncp-reass} командой и @option{freqchunked} опцией
990 конфигурационного файла. Полезно для передачи больших файлов через
991 маленькие устройства хранения.
994 @option{freqminsize} опция конфигурационного файла, аналогичная
998 Опция @option{-force} команды @command{nncp-xfer} переименована в
999 @option{-mkdir} для ясности.
1002 Опция @option{-minsize} задаётся в KiB, а не байтах, для удобства.
1005 Команда @command{nncp-newcfg} переименована в @command{nncp-cfgnew},
1006 а @command{nncp-mincfg} в @command{nncp-cfgmin}, для того чтобы они
1007 имели общий префикс и были сгруппированы для удобства.
1010 Появилась команда @command{nncp-cfgenc}, позволяющая
1011 шифровать/дешифровать конфигурационный файл, чтобы безопасно его хранить
1012 без использования OpenPGP или других подобных инструментов.
1015 Обновлены зависимые криптографические библиотеки.
1020 @subsection Релиз 0.6
1022 @item Появилась небольшая команда @command{nncp-rm}.
1023 @item Обновлены зависимые криптографические библиотеки.
1027 @subsection Релиз 0.5
1030 Тривиальное небольшое исправление в значениях приоритетов по-умолчанию в
1031 @command{nncp-file} и @command{nncp-freq} командах.
1035 @subsection Релиз 0.4
1039 Небольшое исправление в @command{nncp-call}, @command{nncp-caller},
1040 @command{nncp-daemon}: иногда они могли падать с segmentation fault
1041 ошибкой (данные не терялись).
1044 @command{nncp-newnode} переименована в @command{nncp-newcfg} --
1045 это короче и удобнее для использования.
1048 Появилась команда @command{nncp-mincfg}: вспомогательная утилита
1049 позволяющая создать минималистичный урезанный конфигурационный файл без
1050 приватных ключей, что полезно во время использования @command{nncp-xfer}.
1055 @subsection Релиз 0.3
1057 @item Исправлена совместимость с Go 1.6.
1061 @subsection Релиз 0.2
1065 @strong{Несовместимое} изменение формата пакета (магическое число тоже
1066 изменено): поле размера пакета шифруется и не посылается в открытом виде.
1069 @option{-minsize} опция даёт возможность автоматически дополнять
1070 исходящие пакеты до указанного минимального размера.
1073 @command{nncp-daemon} и @command{nncp-call}/@command{nncp-caller} всегда
1074 в фоне проверяют появление исходящих @emph{tx} пакетов пока подключены.
1075 Удалённая сторона сразу же оповещается об этом.
1078 @option{-onlinedeadline} опция даёт возможность выставления timeout-а на
1079 неактивность в online соединении, когда оно должно быть отключено. Она
1080 может быть использована для сохранения соединения на долгое время.
1083 @option{-maxonlinetime} опция даёт возможность указания максимального
1084 возможного времени жизни соединения.
1087 Появилась @command{nncp-caller} команда: клиент TCP-демона работающий по
1091 @command{nncp-pkt} команда может разжимать данные.