5 @subsection Релиз 8.0.1
9 Исправлено некорректное вычисление @code{freq.chunked} значения, при
10 отсутствии которого всё равно форсированно включалась chunked передача.
13 Исправлено некорректное вычисление значения полного размера файла в
19 @subsection Релиз 8.0.0
23 @strong{Несовместимое} изменение формата зашифрованных пакетов: размеры
24 полезной нагрузки и дополнения посылаются прямо внутри зашифрованного
25 потока. Это даёт возможность потоково создавать шифрованные пакеты, без
26 знания размеров заранее, без создания временного файла или буферизации в
30 Производится корректная проверка дополнения зашифрованного пакета. Это
31 не критичная проблема, но прежде ни размер, ни значение дополнения не
32 были аутентифицированы, позволяя циклично откусывать по байту с конца и
33 узнавать размер полезной нагрузки, наблюдая за реакцией по обработке
34 такого зашифрованного пакета.
37 @command{nncp-exec} больше не имеет @option{-use-tmp} опции, из-за
38 совместимого с потоковой работой формата зашифрованных пакетов.
41 У @command{nncp-file} и @command{nncp-exec} команд появилась опция
42 @option{-maxsize}, ограничивающая максимальный результирующий размер
43 зашифрованного пакета (возвращая ошибку если он превышен). Может быть
44 полезно, так как размер полезной нагрузки может быть неизвестен заранее.
49 @subsection Релиз 7.7.0
53 Экспериментальная поддержка @code{kqueue} и @code{inotify} оповещений об
54 изменениях в spool директориях, для сокращения накладных расходов на их
58 @file{.seen} и @file{.hdr} файлы находятся в @file{seen/} и @file{hdr/}
59 поддиректориях теперь, дабы ускорить сканирование spool областей.
60 Необходима миграция текущих файлов:
63 $ find $NNCPSPOOL -type f -name "*.hdr" -exec rm @{@} +
65 $ find $NNCPSPOOL -type d -name rx | while read rx ; do
68 find . -type f -name "*.seen" | while read fn ; do
69 mv $fn seen/$@{fn%.seen@}
73 $ find $NNCPSPOOL -type d -name area | while read area ; do
74 find $area -type f -name "*.seen" | while read fn ; do
83 @subsection Релиз 7.6.0
87 Журналирование может производиться в назначенный открытый файловый
88 дескриптор (@env{$NNCPLOG=FD:5} например).
89 Что дружелюбно к использованию под @command{daemontools}.
92 Добавлены дополнительные проверки наличия публичных ключей в
93 конфигурационном файле, предотвращающие падения некоторых команд.
98 @subsection Релиз 7.5.1
102 NNCP собирается на NetBSD.
107 @subsection Релиз 7.5.0
111 @command{nncp-daemon} соблюдает UCSPI-TCP интерфейс, благодаря чему в
112 журнале будет присутствовать адрес удалённой системы (при запуске под
113 совместимой утилитой). Желательно применять @option{-ucspi} опцию вместо
117 @command{nncp-call} может быть UCSPI-TCP клиентом, используя
118 @option{-ucspi} опцию.
121 Не выходить если не получается слушать на каком-либо MCD сетевом
122 интерфейсе -- только предупреждать об ошибке.
127 @subsection Релиз 7.4.0
131 Исправлена работоспособность MCD при одновременном использовании
132 @command{nncp-daemon} и @command{nncp-caller}.
137 @subsection Релиз 7.3.2
141 @command{hjson-cli} утилита теперь собирается в vendor-режиме.
146 @subsection Релиз 7.3.1
150 Исправлена проблема с возможно остающимся открытым файловым
151 дескриптором в online командах.
154 Существенно снижено потребление памяти MTH хэширования.
159 @subsection Релиз 7.3.0
163 Поправлены проблемы работоспособности на 32-бит системах с большими файлами.
166 Возможность использовать конфигурацию в виде директории с набором
167 файлов. Появилась команда @command{nncp-cfgdir}.
172 @subsection Релиз 7.2.1
176 Небольшие оптимизации в online командах.
181 @subsection Релиз 7.2.0
185 Появилась @command{nncp-trns} команда для ручного создания транзитных пакетов.
188 Если у целевой ноды транзитного пакета задан @option{via} маршрут, то
189 использовать его, а не игнорировать.
192 Не отправлять multicast пакет оригинатору сообщения, очевидно точно
193 видящего свой собственный пакет.
196 Намного меньшее потребление памяти во время MTH хэширования когда
197 смещение равно нулю: когда пакет не является докачиванием, а например
198 проверяется @command{nncp-check} командой.
203 @subsection Релиз 7.1.1
207 Исправлено падение при fsync директорий после создания @file{.seen} файлов.
212 @subsection Релиз 7.1.0
216 Появилась возможность мультивещательной (multicast) рассылки пакетов.
217 Реализовано всего лишь дополнительным типом простых пакетов и изменением
218 @command{nncp-toss}, @command{nncp-file} и @command{nncp-exec} команд.
221 Исправлена работоспособность @command{nncp-file} и @command{nncp-exec}
222 команд использующих временный файл (stdin и @option{-use-tmp}).
225 Исправлен пропадающий плохой код возврата в @command{nncp-exec} команде.
228 Исправлено некорректное генерирование @file{.hdr} при использовании
232 У @command{nncp-rm} команды появилась @option{-all} опция, применяемая
236 У @command{nncp-check} команды появилась @option{-cycle} опция, вводящая
237 проверку в бесконечный цикл.
240 У @command{nncp-rm} команды можно указывать alias-ы имён нод.
243 @command{nncp-pkt} может парсить @file{.hdr} файлы.
248 @subsection Релиз 7.0.0
252 Минимальная требуемая версия Go 1.13.
255 Хэширование с BLAKE3 на базе деревьев Меркле (Merkle Tree Hashing, MTH)
256 используется вместо BLAKE2b. Из-за этого, обратно @strong{несовместимое}
257 изменение формата шифрованных файлов (всего что находится в spool
258 области) и формата @file{.meta} файла при chunked передаче.
260 Текущая реализация далека от оптимальной: в ней нет распараллеливания
261 вычислений и имеет повышенное потребление памяти: около 512 KiB на
262 каждый 1 GiB данных файла. Будущая оптимизация производительности и
263 потребления памяти не должна привести к изменению формата пакетов. Но
264 это всё равно в несколько раз быстрее BLAKE2b.
267 Из-за использования MTH, докачиваемые в online режиме файлы потребуют
268 чтения с диска только предшествующей части, а не полностью всего файла,
272 Добавлена @command{nncp-hash} утилита для вычисления MTH хэша файла.
275 В шифрованных пакетах BLAKE2 KDF и XOF функции заменены на BLAKE3. Ещё
276 уменьшая количество примитивов. А также заголовок шифрованного файла
277 теперь является ассоциированными данными при шифровании.
280 MultiCast Discovery использует
281 @verb{|ff02::4e4e:4350|} адрес вместо @verb{|ff02::1|}.
284 @command{nncp-cfgenc} ошибочно трижды спрашивал парольную фразу при шифровании.
287 @command{nncp-stat} выводит сводку о частично скачанных пакетах.
290 Обновлены зависимые библиотеки.
295 @subsection Релиз 6.6.0
299 @command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}
300 ожидают завершения всех процессов фоновой проверки контрольных сумм,
301 после того как соединение закрыто.
304 Добавлена возможность определения адреса через multicast оповещение в
305 локальной сети, так называемый MCD (MultiCast Discovery).
310 @subsection Релиз 6.5.0
314 Исправлено падение в @command{nncp-daemon} когда SP рукопожатие не было успешно.
317 Исправлено возможное игнорирование плохого кода возврата автоматического tosser.
320 Исправлена гонка при закрытии файловых дескрипторов во время завершения
321 работы online протокола, которая могла привести к ошибке записи
322 принятого фрагмента пакета.
325 Убирать показ прогресса передачи пакетов когда вызов уже завершён в
326 @command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}.
331 @subsection Релиз 6.4.0
335 Исправлена возможная гонка в online протоколе, приводящая к падению
341 @subsection Релиз 6.3.0
345 Исправлено возможное падение программы во время показа прогресса online
351 @subsection Релиз 6.2.1
355 В трёх местах сообщений журналов по ошибке остались лишние @code{%s}.
360 @subsection Релиз 6.2.0
364 Возвращена работоспособность @option{-autotoss*} опций @command{nncp-caller}.
367 Очередной рефакторинг и упрощение системы журналирования.
368 Не должно быть видимых изменений для конечного пользователя.
373 @subsection Релиз 6.1.0
377 Оптимизация: большинство команд теперь не держат открытыми файловые
378 дескрипторы. Прежде вы легко могли выйти за пределы максимально
379 допустимого количества открытых файлов, если у вас было много пакетов в
383 Оптимизация: не закрывать файловый дескриптор файла который мы качаем.
384 Прежде каждый его кусочек приводил к дорогим open/close вызовам.
387 Скачиваемые в режиме online файлы теперь сохраняются с @file{.nock}
388 суффиксом (non-checksummed), ожидая пока либо @command{nncp-check}, либо
389 online демоны не выполнят проверку целостности.
392 Оптимизация: для файлов, скачивание которых не было продолжено, сразу же
393 вычисляет контрольная сумма, пропуская промежуточный @file{.nock} шаг.
396 Возможность хранения заголовков зашифрованных пакетов в @file{.hdr}
397 файлах, рядом с самими пакетами. Это может существенно повысить скорость
398 получения списка пакетов на файловых системах с большим размером блока.
403 @subsection Релиз 6.0.0
407 Журнал использует человеко-читаемый и легко обрабатываемый машиной
408 @url{https://www.gnu.org/software/recutils/, recfile} формат для своих
409 записей, вместо структурированных строчек RFC 3339. Старый формат
410 журналов не поддерживается @command{nncp-log}.
413 Работоспособность @option{-autotoss*} опции с @option{-inetd} режимом
414 @command{nncp-daemon}.
417 @option{when-tx-exists} опция вызова в конфигурационном файле позволяет
418 делать вызов только если имеются исходящие сообщения. Совмещённая с cron
419 выражением содержащим секунды, это можно использовать как возможность
420 вызова только при появлении исходящих пакетов.
423 @command{nncp-cronexpr} команда позволяет проверить корректность и
424 ожидаемый результат от указанного cron выражения.
429 @subsection Релиз 5.6.0
433 @option{-autotoss*} опции запускают tosser не после завершения вызова, а
434 во время него ежесекундно.
437 В @option{calls} секции конфигурации появились опции
438 @option{autotoss}, @option{autotoss-doseen},
439 @option{autotoss-nofile}, @option{autotoss-nofreq},
440 @option{autotoss-noexec}, @option{autotoss-notrns}.
441 Вы можете настраивать опции автоматического tosser для каждого вызова.
444 Использовать vendoring вместо переопределения @env{$GOPATH} во время
445 установки tarball, так как текущая минимальная версия Go это 1.12,
446 поддерживающая модули.
451 @subsection Релиз 5.5.1
455 Уважать @env{$BINDIR}, @env{$INFODIR} и @env{$DOCDIR} переменные окружения
456 в @file{config} во время установки.
461 @subsection Релиз 5.5.0
465 Исправления ошибок в @command{nncp-call(er)}/@command{nncp-daemon},
466 @command{nncp-bundle}, @command{nncp-stat} командах.
469 У команды @command{nncp-rm} появились @option{-dryrun} и @option{-older} опции.
472 У команды @command{nncp-exec} появились @option{-use-tmp} и
473 @option{-nocompress} опции. Несжатые пакеты не совместимы с предыдущими
477 У команд @command{nncp-call}, @command{nncp-caller} и @command{nncp-daemon}
478 появились @option{-autotoss*} опции для запуска tosser после завершения звонка.
481 Обновлены зависимые библиотеки. Минимальная требуемая версия Go 1.12.
486 @subsection Релиз 5.4.1
490 Исправлена ошибка с учётом @code{SENDMAIL} переменной при сборке.
495 @subsection Релиз 5.4.0
499 Обновлены зависимые библиотеки.
502 Система сборки переведена с Makefile-ов на @url{http://cr.yp.to/redo.html, redo}.
503 Это не должно повлиять на мейнтейнеров пакетов, так как минимальная
504 реализация @command{redo} включена в tarball.
509 @subsection Релиз 5.3.3
513 Больше различных проверок в коде на ошибки.
516 Обновлены зависимые библиотеки.
521 @subsection Релиз 5.3.2
525 Исправлена некорректная логика @option{onlinedeadline} timeout-а, при
526 котором соединение могло не учитывать факты прихода пакетов и обрывать
532 @subsection Релиз 5.3.1
536 Исправлена работоспособность @option{onlinedeadline} с адресами вызова
537 использующими внешние команды (@verb{#"|somecmd"#}).
540 @command{nncp-stat} имеет опцию @option{-pkt} показывающую информацию по
541 каждому пакету в spool.
546 @subsection Релиз 5.3.0
550 Сообщения прогресса содержат префикс, поясняющий выполняемое действие.
553 Исправлено не происходящее дополнение (padding) handshake сообщений.
556 Завершать все порождаемые в SP протоколе горутины, меньше утечек памяти.
559 SP протокол порождает меньше вызовов записей (соответственно, и TCP
563 Проверять @option{onlinedeadline} и @option{maxonlinetime} ежесекундно,
564 независимо от чтения из сокета (раз в 10 секунд в худшем случае).
567 Раз в минуту, если нет более никакого другого трафика, посылаются PING
568 пакеты в SP-соединении. Это позволит быстрее понимать что соединение
569 более не работоспособно.
572 @command{nncp-toss} использует lock-file для предотвращения
573 одновременной обработки зашифрованных пакетов.
578 @subsection Релиз 5.2.1
582 Исправлена обработка ошибки SP протокола, иногда вызывающая панику программы.
587 @subsection Релиз 5.2.0
591 Большинство команд по умолчанию показывают однострочный прогресс
592 выполнения операции. Появились @option{-progress}, @option{-noprogress}
593 опции командной строки, @option{noprogress} опция конфигурационного
597 Исправлен некорректный код возврата @command{nncp-check} команды,
598 который возвращал ошибку когда всё хорошо.
601 Проверка свободного места для пакетов, во время выполнения
602 @command{nncp-bundle -rx}.
607 @subsection Релиз 5.1.2
611 Исправлена @strong{критичная} уязвимость: аутентификация online нод
612 могла приводить к некорректной идентификации удалённой стороны, позволяя
613 скачивать чужие зашифрованные пакеты.
616 Исправлена ошибка: в новосозданных конфигурационных файлах, приватный
617 публичный ключ Noise были поменяны местами, что приводило к
618 невозможности online аутентификации нод.
621 Явная синхронизация (fsync) директорий для гарантированного
622 переименования файлов.
627 @subsection Релиз 5.1.1
631 Исправлена работоспособность @command{nncp-file} с @option{-chunked 0} опцией.
636 @subsection Релиз 5.1.0
640 @command{nncp-file} может отправлять директории, автоматически на лету
644 Во время создания исходящих сообщений проверяется наличие свободного
645 места на файловой системе.
648 @option{freq}, @option{freqminsize}, @option{freqchunked} опции
649 конфигурационного файла заменены на структуру
650 @option{freq: @{path: @dots{}, minsize: @dots{}, chunked: @dots{}@}}.
653 Добавлена @option{freq.maxsize} опция конфигурационного файл,
654 запрещающая ответ на файловый запрос больше заданного размера.
657 Возможность оповещения об успешно выполненных командах (exec) через
658 @option{notify.exec} опцию конфигурационного файла.
663 @subsection Релиз 5.0.0
667 @strong{Несовместимое} изменение формата конфигурационного файла:
668 YAML заменён на Hjson, из-за его гораздо большей простоты, без
669 заметной потери функционала и удобства.
672 @strong{Несовместимое} изменение формата простых пакетов. Работа со
673 старыми версиями не поддерживается. @code{zlib} сжатие заменено на
674 @code{Zstandard}, так как оно значительно быстрее и эффективнее, не
675 смотря на то, что версия библиотеки ещё не проверена временем.
678 Возможность соединяться с удалёнными нодами не только по TCP, но и через
679 pipe вызов сторонней команды.
682 @command{nncp-cfgnew} генерирует конфигурационный файл с множеством
683 комментариев. Можно использовать @option{-nocomments} опцию для старого
687 Дубликаты имён файлов имеют суффикс @file{.CTR}, вместо @file{CTR},
688 чтобы избежать возможных коллизий с @file{.nncp.chunkCTR}.
691 Возможность переопределить umask процесса через опцию конфигурационного
695 По умолчанию файлы и директории создаются с 666/777 правами доступа,
696 позволяя управлять ими @command{umask}-ом.
699 Обновлены зависимости.
702 Полное использование go модулей для управления зависимостями
703 (используется @code{go.cypherpunks.ru/nncp/v5} namespace).
706 Отмена автоматического использования более новых версий GNU GPL
707 (лицензия проекта GNU GPLv3-только).
712 @subsection Релиз 4.1
714 @item Восстановлена работоспособность на GNU/Linux системах и Go версии 1.10.
718 @subsection Релиз 4.0
722 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов:
723 используется AEAD режим шифрования с 128 КиБ блоками, так как раньше
724 @command{nncp-toss} не проверял MAC зашифрованного пакета прежде чем
725 отсылать дешифрованные данные внешней команде. Старые версии не
729 Проверка доступного места перед копированием во время работы
730 @command{nncp-xfer}, @command{nncp-daemon}, @command{nncp-call(er)}.
733 @command{nncp-call} имеет возможность только показывать список пакетов
734 на удалённой машине, без их передачи.
737 @command{nncp-call} имеет возможность передавать только чётко указанные пакеты.
740 Восстановлена работоспособность @option{xxrate} настройки в
741 @option{calls} секции конфигурационного файла.
744 Зависимые библиотеки обновлены.
747 Небольшие исправления ошибок.
750 Начало использования @code{go.mod} подсистемы.
755 @subsection Релиз 3.4
757 @item @command{nncp-daemon} может быть запущен как @command{inetd}-служба.
761 @subsection Релиз 3.3
765 @command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller}
766 проверяют существование @file{.seen} файла и расценивают его как то, что
767 файл уже был скачан. Возможно передача данных была осуществлена
768 сторонним способом и удалённая сторона должна быть оповещена об этом.
771 Если более высокоприоритетный пакет попадает в спул, то
772 @command{nncp-daemon} добавит его в очередь отправки первым, прерывая
773 низкоприоритетные передачи.
776 К средствам связанным с online-соединениями (@command{nncp-daemon},
777 @command{nncp-call}, @command{nncp-caller}) добавлен простой
778 ограничитель скорости.
781 Возможность задания приоритета символьными обозначениями:
782 @verb{|NORMAL|}, @verb{|BULK+10|}, @verb{|PRIORITY-5|}, итд.
785 Изменены значения приоритетов по-умолчанию:
786 для @command{nncp-exec} с 64 на 96,
787 для @command{nncp-freq} с 64 на 160,
788 для @command{nncp-file} с 196 на 224.
793 @subsection Релиз 3.2
796 @strong{Несовместимое} изменение формата @emph{bundle} архивов и
797 работоспособность @command{nncp-bundle} команды с Go 1.10+. Bundle
798 должен быть корректным tar архивом, но Go 1.9 делал его недействительным
799 из-за длинных путей внутри. NNCP нечаянно был зависим от этой баги.
800 Явное добавление @file{NNCP/} директории в архив восстанавливает
801 работоспособность с корректными tar архивами.
805 @subsection Релиз 3.1
808 Возможность отключать пересылку через промежуточные ноды используя
809 @verb{|-via -|} опцию командной строки.
813 @subsection Релиз 3.0
817 @strong{Несовместимое} изменение формата простых пакетов. Работа со
818 старыми версиями не поддерживается.
821 Добавлена возможность удалённого исполнения команд, путём
822 конфигурирования @option{exec} опции конфигурационного файла и
823 использования команды @command{nncp-exec}:
826 Команда @command{nncp-mail} заменена более гибкой и широкой
827 @command{nncp-exec}. Вместо вызова @verb{|nncp-mail NODE RECIPIENT|}
828 нужно использовать @verb{|nncp-exec NODE sendmail RECIPIENT|}.
830 @option{sendmail} опция конфигурационного файла заменена на более гибкую
831 @option{exec}. @verb{|sendmail: [...]|} нужно заменить на @verb{|exec:
836 Возможность переопределить @option{via} опцию конфигурации для целевого
837 узла через @option{-via} опцию командной строки для следующих команд:
838 @command{nncp-file}, @command{nncp-freq}, @command{nncp-exec}.
841 Chunked файлы, меньшего размера чем указанный chunk, отправляются просто
845 Exec команды вызываются с дополнительными переменными окружения
846 @env{$NNCP_NICE} и @env{$NNCP_SELF}.
849 Отправляемые файлы в ответ на запрос имеют приоритет указанный в запросе.
850 Указать их желаемый приоритет во время вызова @command{nncp-freq} можно
851 аргументом @option{-replynice}.
854 Команде @command{nncp-toss} можно сказать не обрабатывать определённые
855 типы пакетов, за счёт опций @option{-nofile}, @option{-nofreq},
856 @option{-noexec}, @option{-notrns}.
859 По-умолчанию @command{nncp-file} команда для
860 @option{-minsize}/@option{-chunked} опций использует
861 @option{FreqMinSize}/@option{FreqChunked} из конфигурационного файла.
862 Это можно отключить указав нулевое значение.
867 @subsection Релиз 2.0
871 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов.
872 Работа со старыми версиями не поддерживается.
875 Алгоритм шифрования Twofish заменён на ChaCha20. Он намного быстрее.
876 Одним криптографическим примитивом меньше.
879 HKDF-BLAKE2b-256 KDF алгоритм заменён на BLAKE2Xb XOF. Ещё одним
880 криптографическим примитивом меньше (предполагая, что BLAKE2X
881 практически идентичен BLAKE2).
886 @subsection Релиз 1.0
890 @strong{Несовместимое} изменение формата зашифрованных пакетов. Работа
891 со старыми версиями не поддерживается.
894 @command{nncp-bundle} команда может создавать потоки зашифрованных
895 пакетов или потреблять их. Это полезно когда речь идёт о
896 @code{stdin}/@code{stdout} методах передачи (например запись на CD-ROM
897 без создания промежуточного подготовленного ISO образа или работа с
898 ленточными накопителями).
901 @command{nncp-toss} команда может создавать @file{.seen} файлы,
902 предотвращая приём дублированных пакетов.
905 В команде @command{nncp-call} разрешается иметь только одного
906 обработчика контрольной суммы в фоне. Это полезно когда тысячи маленьких
907 входящих пакетов могут создать много горутин.
910 Возможность переопределить путь до spool директории и файла журнала
911 через аргумент командной строки или переменную окружения.
914 @command{nncp-rm} команда может удалять все исходящие/входящие,
915 @file{.seen}, @file{.part}, @file{.lock} и временные файлы.
920 @subsection Релиз 0.12
922 @item Команда sendmail вызывается с @env{$NNCP_SENDER} переменной окружения.
926 @subsection Релиз 0.11
928 @item Вывод команды @command{nncp-stat} отсортирован по имени ноды.
932 @subsection Релиз 0.10
935 @file{DST} аргумент @command{nncp-freq} команды теперь опционален.
936 По-умолчанию будет подставлен последний элемент @file{SRC} пути.
940 @subsection Релиз 0.9
943 Исправлена обработка @option{-rx}/@option{-tx} опций @command{nncp-call}
944 команды. Они игнорировались.
948 @subsection Релиз 0.8
951 Небольшое исправление ошибки в команде @command{nncp-file}, где опция
952 @option{-minsize} для передачи без разбиения на части была в байтах, а
957 @subsection Релиз 0.7
961 Возможность предоставлять данные для @command{nncp-file} через
962 стандартный ввод, используя временный зашифрованный файл для этого.
965 Появилась возможность передачи файлов разбитых на части, с сопутствующей
966 @command{nncp-reass} командой и @option{freqchunked} опцией
967 конфигурационного файла. Полезно для передачи больших файлов через
968 маленькие устройства хранения.
971 @option{freqminsize} опция конфигурационного файла, аналогичная
975 Опция @option{-force} команды @command{nncp-xfer} переименована в
976 @option{-mkdir} для ясности.
979 Опция @option{-minsize} задаётся в KiB, а не байтах, для удобства.
982 Команда @command{nncp-newcfg} переименована в @command{nncp-cfgnew},
983 а @command{nncp-mincfg} в @command{nncp-cfgmin}, для того чтобы они
984 имели общий префикс и были сгруппированы для удобства.
987 Появилась команда @command{nncp-cfgenc}, позволяющая
988 шифровать/дешифровать конфигурационный файл, чтобы безопасно его хранить
989 без использования OpenPGP или других подобных инструментов.
992 Обновлены зависимые криптографические библиотеки.
997 @subsection Релиз 0.6
999 @item Появилась небольшая команда @command{nncp-rm}.
1000 @item Обновлены зависимые криптографические библиотеки.
1004 @subsection Релиз 0.5
1007 Тривиальное небольшое исправление в значениях приоритетов по-умолчанию в
1008 @command{nncp-file} и @command{nncp-freq} командах.
1012 @subsection Релиз 0.4
1016 Небольшое исправление в @command{nncp-call}, @command{nncp-caller},
1017 @command{nncp-daemon}: иногда они могли падать с segmentation fault
1018 ошибкой (данные не терялись).
1021 @command{nncp-newnode} переименована в @command{nncp-newcfg} --
1022 это короче и удобнее для использования.
1025 Появилась команда @command{nncp-mincfg}: вспомогательная утилита
1026 позволяющая создать минималистичный урезанный конфигурационный файл без
1027 приватных ключей, что полезно во время использования @command{nncp-xfer}.
1032 @subsection Релиз 0.3
1034 @item Исправлена совместимость с Go 1.6.
1038 @subsection Релиз 0.2
1042 @strong{Несовместимое} изменение формата пакета (магическое число тоже
1043 изменено): поле размера пакета шифруется и не посылается в открытом виде.
1046 @option{-minsize} опция даёт возможность автоматически дополнять
1047 исходящие пакеты до указанного минимального размера.
1050 @command{nncp-daemon} и @command{nncp-call}/@command{nncp-caller} всегда
1051 в фоне проверяют появление исходящих @emph{tx} пакетов пока подключены.
1052 Удалённая сторона сразу же оповещается об этом.
1055 @option{-onlinedeadline} опция даёт возможность выставления timeout-а на
1056 неактивность в online соединении, когда оно должно быть отключено. Она
1057 может быть использована для сохранения соединения на долгое время.
1060 @option{-maxonlinetime} опция даёт возможность указания максимального
1061 возможного времени жизни соединения.
1064 Появилась @command{nncp-caller} команда: клиент TCP-демона работающий по
1068 @command{nncp-pkt} команда может разжимать данные.