5 @subsection Релиз 8.1.0
9 @command{nncp-cfgdir} команда не требует обязательного наличия
10 @code{self} секции конфигурационного файла.
15 @subsection Релиз 8.0.2
19 Исправлена возможность отправки мультивещательных пакетов.
24 @subsection Релиз 8.0.1
28 Исправлено некорректное вычисление @code{freq.chunked} значения, при
29 отсутствии которого всё равно форсированно включалась chunked передача.
32 Исправлено некорректное вычисление значения полного размера файла в
38 @subsection Релиз 8.0.0
42 @strong{Несовместимое} изменение формата зашифрованных пакетов: размеры
43 полезной нагрузки и дополнения посылаются прямо внутри зашифрованного
44 потока. Это даёт возможность потоково создавать шифрованные пакеты, без
45 знания размеров заранее, без создания временного файла или буферизации в
49 Производится корректная проверка дополнения зашифрованного пакета. Это
50 не критичная проблема, но прежде ни размер, ни значение дополнения не
51 были аутентифицированы, позволяя циклично откусывать по байту с конца и
52 узнавать размер полезной нагрузки, наблюдая за реакцией по обработке
53 такого зашифрованного пакета.
56 @command{nncp-exec} больше не имеет @option{-use-tmp} опции, из-за
57 совместимого с потоковой работой формата зашифрованных пакетов.
60 У @command{nncp-file} и @command{nncp-exec} команд появилась опция
61 @option{-maxsize}, ограничивающая максимальный результирующий размер
62 зашифрованного пакета (возвращая ошибку если он превышен). Может быть
63 полезно, так как размер полезной нагрузки может быть неизвестен заранее.
68 @subsection Релиз 7.7.0
72 Экспериментальная поддержка @code{kqueue} и @code{inotify} оповещений об
73 изменениях в spool директориях, для сокращения накладных расходов на их
77 @file{.seen} и @file{.hdr} файлы находятся в @file{seen/} и @file{hdr/}
78 поддиректориях теперь, дабы ускорить сканирование spool областей.
79 Необходима миграция текущих файлов:
82 $ find $NNCPSPOOL -type f -name "*.hdr" -exec rm @{@} +
84 $ find $NNCPSPOOL -type d -name rx | while read rx ; do
87 find . -type f -name "*.seen" | while read fn ; do
88 mv $fn seen/$@{fn%.seen@}
92 $ find $NNCPSPOOL -type d -name area | while read area ; do
93 find $area -type f -name "*.seen" | while read fn ; do
102 @subsection Релиз 7.6.0
106 Журналирование может производиться в назначенный открытый файловый
107 дескриптор (@env{$NNCPLOG=FD:5} например).
108 Что дружелюбно к использованию под @command{daemontools}.
111 Добавлены дополнительные проверки наличия публичных ключей в
112 конфигурационном файле, предотвращающие падения некоторых команд.
117 @subsection Релиз 7.5.1
121 NNCP собирается на NetBSD.
126 @subsection Релиз 7.5.0
130 @command{nncp-daemon} соблюдает UCSPI-TCP интерфейс, благодаря чему в
131 журнале будет присутствовать адрес удалённой системы (при запуске под
132 совместимой утилитой). Желательно применять @option{-ucspi} опцию вместо
136 @command{nncp-call} может быть UCSPI-TCP клиентом, используя
137 @option{-ucspi} опцию.
140 Не выходить если не получается слушать на каком-либо MCD сетевом
141 интерфейсе -- только предупреждать об ошибке.
146 @subsection Релиз 7.4.0
150 Исправлена работоспособность MCD при одновременном использовании
151 @command{nncp-daemon} и @command{nncp-caller}.
156 @subsection Релиз 7.3.2
160 @command{hjson-cli} утилита теперь собирается в vendor-режиме.
165 @subsection Релиз 7.3.1
169 Исправлена проблема с возможно остающимся открытым файловым
170 дескриптором в online командах.
173 Существенно снижено потребление памяти MTH хэширования.
178 @subsection Релиз 7.3.0
182 Поправлены проблемы работоспособности на 32-бит системах с большими файлами.
185 Возможность использовать конфигурацию в виде директории с набором
186 файлов. Появилась команда @command{nncp-cfgdir}.
191 @subsection Релиз 7.2.1
195 Небольшие оптимизации в online командах.
200 @subsection Релиз 7.2.0
204 Появилась @command{nncp-trns} команда для ручного создания транзитных пакетов.
207 Если у целевой ноды транзитного пакета задан @option{via} маршрут, то
208 использовать его, а не игнорировать.
211 Не отправлять multicast пакет оригинатору сообщения, очевидно точно
212 видящего свой собственный пакет.
215 Намного меньшее потребление памяти во время MTH хэширования когда
216 смещение равно нулю: когда пакет не является докачиванием, а например
217 проверяется @command{nncp-check} командой.
222 @subsection Релиз 7.1.1
226 Исправлено падение при fsync директорий после создания @file{.seen} файлов.
231 @subsection Релиз 7.1.0
235 Появилась возможность мультивещательной (multicast) рассылки пакетов.
236 Реализовано всего лишь дополнительным типом простых пакетов и изменением
237 @command{nncp-toss}, @command{nncp-file} и @command{nncp-exec} команд.
240 Исправлена работоспособность @command{nncp-file} и @command{nncp-exec}
241 команд использующих временный файл (stdin и @option{-use-tmp}).
244 Исправлен пропадающий плохой код возврата в @command{nncp-exec} команде.
247 Исправлено некорректное генерирование @file{.hdr} при использовании
251 У @command{nncp-rm} команды появилась @option{-all} опция, применяемая
255 У @command{nncp-check} команды появилась @option{-cycle} опция, вводящая
256 проверку в бесконечный цикл.
259 У @command{nncp-rm} команды можно указывать alias-ы имён нод.
262 @command{nncp-pkt} может парсить @file{.hdr} файлы.
267 @subsection Релиз 7.0.0
271 Минимальная требуемая версия Go 1.13.
274 Хэширование с BLAKE3 на базе деревьев Меркле (Merkle Tree Hashing, MTH)
275 используется вместо BLAKE2b. Из-за этого, обратно @strong{несовместимое}
276 изменение формата шифрованных файлов (всего что находится в spool
277 области) и формата @file{.meta} файла при chunked передаче.
279 Текущая реализация далека от оптимальной: в ней нет распараллеливания
280 вычислений и имеет повышенное потребление памяти: около 512 KiB на
281 каждый 1 GiB данных файла. Будущая оптимизация производительности и
282 потребления памяти не должна привести к изменению формата пакетов. Но
283 это всё равно в несколько раз быстрее BLAKE2b.
286 Из-за использования MTH, докачиваемые в online режиме файлы потребуют
287 чтения с диска только предшествующей части, а не полностью всего файла,
291 Добавлена @command{nncp-hash} утилита для вычисления MTH хэша файла.
294 В шифрованных пакетах BLAKE2 KDF и XOF функции заменены на BLAKE3. Ещё
295 уменьшая количество примитивов. А также заголовок шифрованного файла
296 теперь является ассоциированными данными при шифровании.
299 MultiCast Discovery использует
300 @verb{|ff02::4e4e:4350|} адрес вместо @verb{|ff02::1|}.
303 @command{nncp-cfgenc} ошибочно трижды спрашивал парольную фразу при шифровании.
306 @command{nncp-stat} выводит сводку о частично скачанных пакетах.
309 Обновлены зависимые библиотеки.
314 @subsection Релиз 6.6.0
318 @command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}
319 ожидают завершения всех процессов фоновой проверки контрольных сумм,
320 после того как соединение закрыто.
323 Добавлена возможность определения адреса через multicast оповещение в
324 локальной сети, так называемый MCD (MultiCast Discovery).
329 @subsection Релиз 6.5.0
333 Исправлено падение в @command{nncp-daemon} когда SP рукопожатие не было успешно.
336 Исправлено возможное игнорирование плохого кода возврата автоматического tosser.
339 Исправлена гонка при закрытии файловых дескрипторов во время завершения
340 работы online протокола, которая могла привести к ошибке записи
341 принятого фрагмента пакета.
344 Убирать показ прогресса передачи пакетов когда вызов уже завершён в
345 @command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}.
350 @subsection Релиз 6.4.0
354 Исправлена возможная гонка в online протоколе, приводящая к падению
360 @subsection Релиз 6.3.0
364 Исправлено возможное падение программы во время показа прогресса online
370 @subsection Релиз 6.2.1
374 В трёх местах сообщений журналов по ошибке остались лишние @code{%s}.
379 @subsection Релиз 6.2.0
383 Возвращена работоспособность @option{-autotoss*} опций @command{nncp-caller}.
386 Очередной рефакторинг и упрощение системы журналирования.
387 Не должно быть видимых изменений для конечного пользователя.
392 @subsection Релиз 6.1.0
396 Оптимизация: большинство команд теперь не держат открытыми файловые
397 дескрипторы. Прежде вы легко могли выйти за пределы максимально
398 допустимого количества открытых файлов, если у вас было много пакетов в
402 Оптимизация: не закрывать файловый дескриптор файла который мы качаем.
403 Прежде каждый его кусочек приводил к дорогим open/close вызовам.
406 Скачиваемые в режиме online файлы теперь сохраняются с @file{.nock}
407 суффиксом (non-checksummed), ожидая пока либо @command{nncp-check}, либо
408 online демоны не выполнят проверку целостности.
411 Оптимизация: для файлов, скачивание которых не было продолжено, сразу же
412 вычисляет контрольная сумма, пропуская промежуточный @file{.nock} шаг.
415 Возможность хранения заголовков зашифрованных пакетов в @file{.hdr}
416 файлах, рядом с самими пакетами. Это может существенно повысить скорость
417 получения списка пакетов на файловых системах с большим размером блока.
422 @subsection Релиз 6.0.0
426 Журнал использует человеко-читаемый и легко обрабатываемый машиной
427 @url{https://www.gnu.org/software/recutils/, recfile} формат для своих
428 записей, вместо структурированных строчек RFC 3339. Старый формат
429 журналов не поддерживается @command{nncp-log}.
432 Работоспособность @option{-autotoss*} опции с @option{-inetd} режимом
433 @command{nncp-daemon}.
436 @option{when-tx-exists} опция вызова в конфигурационном файле позволяет
437 делать вызов только если имеются исходящие сообщения. Совмещённая с cron
438 выражением содержащим секунды, это можно использовать как возможность
439 вызова только при появлении исходящих пакетов.
442 @command{nncp-cronexpr} команда позволяет проверить корректность и
443 ожидаемый результат от указанного cron выражения.
448 @subsection Релиз 5.6.0
452 @option{-autotoss*} опции запускают tosser не после завершения вызова, а
453 во время него ежесекундно.
456 В @option{calls} секции конфигурации появились опции
457 @option{autotoss}, @option{autotoss-doseen},
458 @option{autotoss-nofile}, @option{autotoss-nofreq},
459 @option{autotoss-noexec}, @option{autotoss-notrns}.
460 Вы можете настраивать опции автоматического tosser для каждого вызова.
463 Использовать vendoring вместо переопределения @env{$GOPATH} во время
464 установки tarball, так как текущая минимальная версия Go это 1.12,
465 поддерживающая модули.
470 @subsection Релиз 5.5.1
474 Уважать @env{$BINDIR}, @env{$INFODIR} и @env{$DOCDIR} переменные окружения
475 в @file{config} во время установки.
480 @subsection Релиз 5.5.0
484 Исправления ошибок в @command{nncp-call(er)}/@command{nncp-daemon},
485 @command{nncp-bundle}, @command{nncp-stat} командах.
488 У команды @command{nncp-rm} появились @option{-dryrun} и @option{-older} опции.
491 У команды @command{nncp-exec} появились @option{-use-tmp} и
492 @option{-nocompress} опции. Несжатые пакеты не совместимы с предыдущими
496 У команд @command{nncp-call}, @command{nncp-caller} и @command{nncp-daemon}
497 появились @option{-autotoss*} опции для запуска tosser после завершения звонка.
500 Обновлены зависимые библиотеки. Минимальная требуемая версия Go 1.12.
505 @subsection Релиз 5.4.1
509 Исправлена ошибка с учётом @code{SENDMAIL} переменной при сборке.
514 @subsection Релиз 5.4.0
518 Обновлены зависимые библиотеки.
521 Система сборки переведена с Makefile-ов на @url{http://cr.yp.to/redo.html, redo}.
522 Это не должно повлиять на мейнтейнеров пакетов, так как минимальная
523 реализация @command{redo} включена в tarball.
528 @subsection Релиз 5.3.3
532 Больше различных проверок в коде на ошибки.
535 Обновлены зависимые библиотеки.
540 @subsection Релиз 5.3.2
544 Исправлена некорректная логика @option{onlinedeadline} timeout-а, при
545 котором соединение могло не учитывать факты прихода пакетов и обрывать
551 @subsection Релиз 5.3.1
555 Исправлена работоспособность @option{onlinedeadline} с адресами вызова
556 использующими внешние команды (@verb{#"|somecmd"#}).
559 @command{nncp-stat} имеет опцию @option{-pkt} показывающую информацию по
560 каждому пакету в spool.
565 @subsection Релиз 5.3.0
569 Сообщения прогресса содержат префикс, поясняющий выполняемое действие.
572 Исправлено не происходящее дополнение (padding) handshake сообщений.
575 Завершать все порождаемые в SP протоколе горутины, меньше утечек памяти.
578 SP протокол порождает меньше вызовов записей (соответственно, и TCP
582 Проверять @option{onlinedeadline} и @option{maxonlinetime} ежесекундно,
583 независимо от чтения из сокета (раз в 10 секунд в худшем случае).
586 Раз в минуту, если нет более никакого другого трафика, посылаются PING
587 пакеты в SP-соединении. Это позволит быстрее понимать что соединение
588 более не работоспособно.
591 @command{nncp-toss} использует lock-file для предотвращения
592 одновременной обработки зашифрованных пакетов.
597 @subsection Релиз 5.2.1
601 Исправлена обработка ошибки SP протокола, иногда вызывающая панику программы.
606 @subsection Релиз 5.2.0
610 Большинство команд по умолчанию показывают однострочный прогресс
611 выполнения операции. Появились @option{-progress}, @option{-noprogress}
612 опции командной строки, @option{noprogress} опция конфигурационного
616 Исправлен некорректный код возврата @command{nncp-check} команды,
617 который возвращал ошибку когда всё хорошо.
620 Проверка свободного места для пакетов, во время выполнения
621 @command{nncp-bundle -rx}.
626 @subsection Релиз 5.1.2
630 Исправлена @strong{критичная} уязвимость: аутентификация online нод
631 могла приводить к некорректной идентификации удалённой стороны, позволяя
632 скачивать чужие зашифрованные пакеты.
635 Исправлена ошибка: в новосозданных конфигурационных файлах, приватный
636 публичный ключ Noise были поменяны местами, что приводило к
637 невозможности online аутентификации нод.
640 Явная синхронизация (fsync) директорий для гарантированного
641 переименования файлов.
646 @subsection Релиз 5.1.1
650 Исправлена работоспособность @command{nncp-file} с @option{-chunked 0} опцией.
655 @subsection Релиз 5.1.0
659 @command{nncp-file} может отправлять директории, автоматически на лету
663 Во время создания исходящих сообщений проверяется наличие свободного
664 места на файловой системе.
667 @option{freq}, @option{freqminsize}, @option{freqchunked} опции
668 конфигурационного файла заменены на структуру
669 @option{freq: @{path: @dots{}, minsize: @dots{}, chunked: @dots{}@}}.
672 Добавлена @option{freq.maxsize} опция конфигурационного файл,
673 запрещающая ответ на файловый запрос больше заданного размера.
676 Возможность оповещения об успешно выполненных командах (exec) через
677 @option{notify.exec} опцию конфигурационного файла.
682 @subsection Релиз 5.0.0
686 @strong{Несовместимое} изменение формата конфигурационного файла:
687 YAML заменён на Hjson, из-за его гораздо большей простоты, без
688 заметной потери функционала и удобства.
691 @strong{Несовместимое} изменение формата простых пакетов. Работа со
692 старыми версиями не поддерживается. @code{zlib} сжатие заменено на
693 @code{Zstandard}, так как оно значительно быстрее и эффективнее, не
694 смотря на то, что версия библиотеки ещё не проверена временем.
697 Возможность соединяться с удалёнными нодами не только по TCP, но и через
698 pipe вызов сторонней команды.
701 @command{nncp-cfgnew} генерирует конфигурационный файл с множеством
702 комментариев. Можно использовать @option{-nocomments} опцию для старого
706 Дубликаты имён файлов имеют суффикс @file{.CTR}, вместо @file{CTR},
707 чтобы избежать возможных коллизий с @file{.nncp.chunkCTR}.
710 Возможность переопределить umask процесса через опцию конфигурационного
714 По умолчанию файлы и директории создаются с 666/777 правами доступа,
715 позволяя управлять ими @command{umask}-ом.
718 Обновлены зависимости.
721 Полное использование go модулей для управления зависимостями
722 (используется @code{go.cypherpunks.ru/nncp/v5} namespace).
725 Отмена автоматического использования более новых версий GNU GPL
726 (лицензия проекта GNU GPLv3-только).
731 @subsection Релиз 4.1
733 @item Восстановлена работоспособность на GNU/Linux системах и Go версии 1.10.
737 @subsection Релиз 4.0
741 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов:
742 используется AEAD режим шифрования с 128 КиБ блоками, так как раньше
743 @command{nncp-toss} не проверял MAC зашифрованного пакета прежде чем
744 отсылать дешифрованные данные внешней команде. Старые версии не
748 Проверка доступного места перед копированием во время работы
749 @command{nncp-xfer}, @command{nncp-daemon}, @command{nncp-call(er)}.
752 @command{nncp-call} имеет возможность только показывать список пакетов
753 на удалённой машине, без их передачи.
756 @command{nncp-call} имеет возможность передавать только чётко указанные пакеты.
759 Восстановлена работоспособность @option{xxrate} настройки в
760 @option{calls} секции конфигурационного файла.
763 Зависимые библиотеки обновлены.
766 Небольшие исправления ошибок.
769 Начало использования @code{go.mod} подсистемы.
774 @subsection Релиз 3.4
776 @item @command{nncp-daemon} может быть запущен как @command{inetd}-служба.
780 @subsection Релиз 3.3
784 @command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller}
785 проверяют существование @file{.seen} файла и расценивают его как то, что
786 файл уже был скачан. Возможно передача данных была осуществлена
787 сторонним способом и удалённая сторона должна быть оповещена об этом.
790 Если более высокоприоритетный пакет попадает в спул, то
791 @command{nncp-daemon} добавит его в очередь отправки первым, прерывая
792 низкоприоритетные передачи.
795 К средствам связанным с online-соединениями (@command{nncp-daemon},
796 @command{nncp-call}, @command{nncp-caller}) добавлен простой
797 ограничитель скорости.
800 Возможность задания приоритета символьными обозначениями:
801 @verb{|NORMAL|}, @verb{|BULK+10|}, @verb{|PRIORITY-5|}, итд.
804 Изменены значения приоритетов по-умолчанию:
805 для @command{nncp-exec} с 64 на 96,
806 для @command{nncp-freq} с 64 на 160,
807 для @command{nncp-file} с 196 на 224.
812 @subsection Релиз 3.2
815 @strong{Несовместимое} изменение формата @emph{bundle} архивов и
816 работоспособность @command{nncp-bundle} команды с Go 1.10+. Bundle
817 должен быть корректным tar архивом, но Go 1.9 делал его недействительным
818 из-за длинных путей внутри. NNCP нечаянно был зависим от этой баги.
819 Явное добавление @file{NNCP/} директории в архив восстанавливает
820 работоспособность с корректными tar архивами.
824 @subsection Релиз 3.1
827 Возможность отключать пересылку через промежуточные ноды используя
828 @verb{|-via -|} опцию командной строки.
832 @subsection Релиз 3.0
836 @strong{Несовместимое} изменение формата простых пакетов. Работа со
837 старыми версиями не поддерживается.
840 Добавлена возможность удалённого исполнения команд, путём
841 конфигурирования @option{exec} опции конфигурационного файла и
842 использования команды @command{nncp-exec}:
845 Команда @command{nncp-mail} заменена более гибкой и широкой
846 @command{nncp-exec}. Вместо вызова @verb{|nncp-mail NODE RECIPIENT|}
847 нужно использовать @verb{|nncp-exec NODE sendmail RECIPIENT|}.
849 @option{sendmail} опция конфигурационного файла заменена на более гибкую
850 @option{exec}. @verb{|sendmail: [...]|} нужно заменить на @verb{|exec:
855 Возможность переопределить @option{via} опцию конфигурации для целевого
856 узла через @option{-via} опцию командной строки для следующих команд:
857 @command{nncp-file}, @command{nncp-freq}, @command{nncp-exec}.
860 Chunked файлы, меньшего размера чем указанный chunk, отправляются просто
864 Exec команды вызываются с дополнительными переменными окружения
865 @env{$NNCP_NICE} и @env{$NNCP_SELF}.
868 Отправляемые файлы в ответ на запрос имеют приоритет указанный в запросе.
869 Указать их желаемый приоритет во время вызова @command{nncp-freq} можно
870 аргументом @option{-replynice}.
873 Команде @command{nncp-toss} можно сказать не обрабатывать определённые
874 типы пакетов, за счёт опций @option{-nofile}, @option{-nofreq},
875 @option{-noexec}, @option{-notrns}.
878 По-умолчанию @command{nncp-file} команда для
879 @option{-minsize}/@option{-chunked} опций использует
880 @option{FreqMinSize}/@option{FreqChunked} из конфигурационного файла.
881 Это можно отключить указав нулевое значение.
886 @subsection Релиз 2.0
890 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов.
891 Работа со старыми версиями не поддерживается.
894 Алгоритм шифрования Twofish заменён на ChaCha20. Он намного быстрее.
895 Одним криптографическим примитивом меньше.
898 HKDF-BLAKE2b-256 KDF алгоритм заменён на BLAKE2Xb XOF. Ещё одним
899 криптографическим примитивом меньше (предполагая, что BLAKE2X
900 практически идентичен BLAKE2).
905 @subsection Релиз 1.0
909 @strong{Несовместимое} изменение формата зашифрованных пакетов. Работа
910 со старыми версиями не поддерживается.
913 @command{nncp-bundle} команда может создавать потоки зашифрованных
914 пакетов или потреблять их. Это полезно когда речь идёт о
915 @code{stdin}/@code{stdout} методах передачи (например запись на CD-ROM
916 без создания промежуточного подготовленного ISO образа или работа с
917 ленточными накопителями).
920 @command{nncp-toss} команда может создавать @file{.seen} файлы,
921 предотвращая приём дублированных пакетов.
924 В команде @command{nncp-call} разрешается иметь только одного
925 обработчика контрольной суммы в фоне. Это полезно когда тысячи маленьких
926 входящих пакетов могут создать много горутин.
929 Возможность переопределить путь до spool директории и файла журнала
930 через аргумент командной строки или переменную окружения.
933 @command{nncp-rm} команда может удалять все исходящие/входящие,
934 @file{.seen}, @file{.part}, @file{.lock} и временные файлы.
939 @subsection Релиз 0.12
941 @item Команда sendmail вызывается с @env{$NNCP_SENDER} переменной окружения.
945 @subsection Релиз 0.11
947 @item Вывод команды @command{nncp-stat} отсортирован по имени ноды.
951 @subsection Релиз 0.10
954 @file{DST} аргумент @command{nncp-freq} команды теперь опционален.
955 По-умолчанию будет подставлен последний элемент @file{SRC} пути.
959 @subsection Релиз 0.9
962 Исправлена обработка @option{-rx}/@option{-tx} опций @command{nncp-call}
963 команды. Они игнорировались.
967 @subsection Релиз 0.8
970 Небольшое исправление ошибки в команде @command{nncp-file}, где опция
971 @option{-minsize} для передачи без разбиения на части была в байтах, а
976 @subsection Релиз 0.7
980 Возможность предоставлять данные для @command{nncp-file} через
981 стандартный ввод, используя временный зашифрованный файл для этого.
984 Появилась возможность передачи файлов разбитых на части, с сопутствующей
985 @command{nncp-reass} командой и @option{freqchunked} опцией
986 конфигурационного файла. Полезно для передачи больших файлов через
987 маленькие устройства хранения.
990 @option{freqminsize} опция конфигурационного файла, аналогичная
994 Опция @option{-force} команды @command{nncp-xfer} переименована в
995 @option{-mkdir} для ясности.
998 Опция @option{-minsize} задаётся в KiB, а не байтах, для удобства.
1001 Команда @command{nncp-newcfg} переименована в @command{nncp-cfgnew},
1002 а @command{nncp-mincfg} в @command{nncp-cfgmin}, для того чтобы они
1003 имели общий префикс и были сгруппированы для удобства.
1006 Появилась команда @command{nncp-cfgenc}, позволяющая
1007 шифровать/дешифровать конфигурационный файл, чтобы безопасно его хранить
1008 без использования OpenPGP или других подобных инструментов.
1011 Обновлены зависимые криптографические библиотеки.
1016 @subsection Релиз 0.6
1018 @item Появилась небольшая команда @command{nncp-rm}.
1019 @item Обновлены зависимые криптографические библиотеки.
1023 @subsection Релиз 0.5
1026 Тривиальное небольшое исправление в значениях приоритетов по-умолчанию в
1027 @command{nncp-file} и @command{nncp-freq} командах.
1031 @subsection Релиз 0.4
1035 Небольшое исправление в @command{nncp-call}, @command{nncp-caller},
1036 @command{nncp-daemon}: иногда они могли падать с segmentation fault
1037 ошибкой (данные не терялись).
1040 @command{nncp-newnode} переименована в @command{nncp-newcfg} --
1041 это короче и удобнее для использования.
1044 Появилась команда @command{nncp-mincfg}: вспомогательная утилита
1045 позволяющая создать минималистичный урезанный конфигурационный файл без
1046 приватных ключей, что полезно во время использования @command{nncp-xfer}.
1051 @subsection Релиз 0.3
1053 @item Исправлена совместимость с Go 1.6.
1057 @subsection Релиз 0.2
1061 @strong{Несовместимое} изменение формата пакета (магическое число тоже
1062 изменено): поле размера пакета шифруется и не посылается в открытом виде.
1065 @option{-minsize} опция даёт возможность автоматически дополнять
1066 исходящие пакеты до указанного минимального размера.
1069 @command{nncp-daemon} и @command{nncp-call}/@command{nncp-caller} всегда
1070 в фоне проверяют появление исходящих @emph{tx} пакетов пока подключены.
1071 Удалённая сторона сразу же оповещается об этом.
1074 @option{-onlinedeadline} опция даёт возможность выставления timeout-а на
1075 неактивность в online соединении, когда оно должно быть отключено. Она
1076 может быть использована для сохранения соединения на долгое время.
1079 @option{-maxonlinetime} опция даёт возможность указания максимального
1080 возможного времени жизни соединения.
1083 Появилась @command{nncp-caller} команда: клиент TCP-демона работающий по
1087 @command{nncp-pkt} команда может разжимать данные.