5 @subsection Релиз 8.0.1
9 Исправлено некорректное вычисление @code{freq.chunked} значения, при
10 отсутствии которого всё равно форсированно включалась chunked передача.
15 @subsection Релиз 8.0.0
19 @strong{Несовместимое} изменение формата зашифрованных пакетов: размеры
20 полезной нагрузки и дополнения посылаются прямо внутри зашифрованного
21 потока. Это даёт возможность потоково создавать шифрованные пакеты, без
22 знания размеров заранее, без создания временного файла или буферизации в
26 Производится корректная проверка дополнения зашифрованного пакета. Это
27 не критичная проблема, но прежде ни размер, ни значение дополнения не
28 были аутентифицированы, позволяя циклично откусывать по байту с конца и
29 узнавать размер полезной нагрузки, наблюдая за реакцией по обработке
30 такого зашифрованного пакета.
33 @command{nncp-exec} больше не имеет @option{-use-tmp} опции, из-за
34 совместимого с потоковой работой формата зашифрованных пакетов.
37 У @command{nncp-file} и @command{nncp-exec} команд появилась опция
38 @option{-maxsize}, ограничивающая максимальный результирующий размер
39 зашифрованного пакета (возвращая ошибку если он превышен). Может быть
40 полезно, так как размер полезной нагрузки может быть неизвестен заранее.
45 @subsection Релиз 7.7.0
49 Экспериментальная поддержка @code{kqueue} и @code{inotify} оповещений об
50 изменениях в spool директориях, для сокращения накладных расходов на их
54 @file{.seen} и @file{.hdr} файлы находятся в @file{seen/} и @file{hdr/}
55 поддиректориях теперь, дабы ускорить сканирование spool областей.
56 Необходима миграция текущих файлов:
59 $ find $NNCPSPOOL -type f -name "*.hdr" -exec rm @{@} +
61 $ find $NNCPSPOOL -type d -name rx | while read rx ; do
64 find . -type f -name "*.seen" | while read fn ; do
65 mv $fn seen/$@{fn%.seen@}
69 $ find $NNCPSPOOL -type d -name area | while read area ; do
70 find $area -type f -name "*.seen" | while read fn ; do
79 @subsection Релиз 7.6.0
83 Журналирование может производиться в назначенный открытый файловый
84 дескриптор (@env{$NNCPLOG=FD:5} например).
85 Что дружелюбно к использованию под @command{daemontools}.
88 Добавлены дополнительные проверки наличия публичных ключей в
89 конфигурационном файле, предотвращающие падения некоторых команд.
94 @subsection Релиз 7.5.1
98 NNCP собирается на NetBSD.
103 @subsection Релиз 7.5.0
107 @command{nncp-daemon} соблюдает UCSPI-TCP интерфейс, благодаря чему в
108 журнале будет присутствовать адрес удалённой системы (при запуске под
109 совместимой утилитой). Желательно применять @option{-ucspi} опцию вместо
113 @command{nncp-call} может быть UCSPI-TCP клиентом, используя
114 @option{-ucspi} опцию.
117 Не выходить если не получается слушать на каком-либо MCD сетевом
118 интерфейсе -- только предупреждать об ошибке.
123 @subsection Релиз 7.4.0
127 Исправлена работоспособность MCD при одновременном использовании
128 @command{nncp-daemon} и @command{nncp-caller}.
133 @subsection Релиз 7.3.2
137 @command{hjson-cli} утилита теперь собирается в vendor-режиме.
142 @subsection Релиз 7.3.1
146 Исправлена проблема с возможно остающимся открытым файловым
147 дескриптором в online командах.
150 Существенно снижено потребление памяти MTH хэширования.
155 @subsection Релиз 7.3.0
159 Поправлены проблемы работоспособности на 32-бит системах с большими файлами.
162 Возможность использовать конфигурацию в виде директории с набором
163 файлов. Появилась команда @command{nncp-cfgdir}.
168 @subsection Релиз 7.2.1
172 Небольшие оптимизации в online командах.
177 @subsection Релиз 7.2.0
181 Появилась @command{nncp-trns} команда для ручного создания транзитных пакетов.
184 Если у целевой ноды транзитного пакета задан @option{via} маршрут, то
185 использовать его, а не игнорировать.
188 Не отправлять multicast пакет оригинатору сообщения, очевидно точно
189 видящего свой собственный пакет.
192 Намного меньшее потребление памяти во время MTH хэширования когда
193 смещение равно нулю: когда пакет не является докачиванием, а например
194 проверяется @command{nncp-check} командой.
199 @subsection Релиз 7.1.1
203 Исправлено падение при fsync директорий после создания @file{.seen} файлов.
208 @subsection Релиз 7.1.0
212 Появилась возможность мультивещательной (multicast) рассылки пакетов.
213 Реализовано всего лишь дополнительным типом простых пакетов и изменением
214 @command{nncp-toss}, @command{nncp-file} и @command{nncp-exec} команд.
217 Исправлена работоспособность @command{nncp-file} и @command{nncp-exec}
218 команд использующих временный файл (stdin и @option{-use-tmp}).
221 Исправлен пропадающий плохой код возврата в @command{nncp-exec} команде.
224 Исправлено некорректное генерирование @file{.hdr} при использовании
228 У @command{nncp-rm} команды появилась @option{-all} опция, применяемая
232 У @command{nncp-check} команды появилась @option{-cycle} опция, вводящая
233 проверку в бесконечный цикл.
236 У @command{nncp-rm} команды можно указывать alias-ы имён нод.
239 @command{nncp-pkt} может парсить @file{.hdr} файлы.
244 @subsection Релиз 7.0.0
248 Минимальная требуемая версия Go 1.13.
251 Хэширование с BLAKE3 на базе деревьев Меркле (Merkle Tree Hashing, MTH)
252 используется вместо BLAKE2b. Из-за этого, обратно @strong{несовместимое}
253 изменение формата шифрованных файлов (всего что находится в spool
254 области) и формата @file{.meta} файла при chunked передаче.
256 Текущая реализация далека от оптимальной: в ней нет распараллеливания
257 вычислений и имеет повышенное потребление памяти: около 512 KiB на
258 каждый 1 GiB данных файла. Будущая оптимизация производительности и
259 потребления памяти не должна привести к изменению формата пакетов. Но
260 это всё равно в несколько раз быстрее BLAKE2b.
263 Из-за использования MTH, докачиваемые в online режиме файлы потребуют
264 чтения с диска только предшествующей части, а не полностью всего файла,
268 Добавлена @command{nncp-hash} утилита для вычисления MTH хэша файла.
271 В шифрованных пакетах BLAKE2 KDF и XOF функции заменены на BLAKE3. Ещё
272 уменьшая количество примитивов. А также заголовок шифрованного файла
273 теперь является ассоциированными данными при шифровании.
276 MultiCast Discovery использует
277 @verb{|ff02::4e4e:4350|} адрес вместо @verb{|ff02::1|}.
280 @command{nncp-cfgenc} ошибочно трижды спрашивал парольную фразу при шифровании.
283 @command{nncp-stat} выводит сводку о частично скачанных пакетах.
286 Обновлены зависимые библиотеки.
291 @subsection Релиз 6.6.0
295 @command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}
296 ожидают завершения всех процессов фоновой проверки контрольных сумм,
297 после того как соединение закрыто.
300 Добавлена возможность определения адреса через multicast оповещение в
301 локальной сети, так называемый MCD (MultiCast Discovery).
306 @subsection Релиз 6.5.0
310 Исправлено падение в @command{nncp-daemon} когда SP рукопожатие не было успешно.
313 Исправлено возможное игнорирование плохого кода возврата автоматического tosser.
316 Исправлена гонка при закрытии файловых дескрипторов во время завершения
317 работы online протокола, которая могла привести к ошибке записи
318 принятого фрагмента пакета.
321 Убирать показ прогресса передачи пакетов когда вызов уже завершён в
322 @command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}.
327 @subsection Релиз 6.4.0
331 Исправлена возможная гонка в online протоколе, приводящая к падению
337 @subsection Релиз 6.3.0
341 Исправлено возможное падение программы во время показа прогресса online
347 @subsection Релиз 6.2.1
351 В трёх местах сообщений журналов по ошибке остались лишние @code{%s}.
356 @subsection Релиз 6.2.0
360 Возвращена работоспособность @option{-autotoss*} опций @command{nncp-caller}.
363 Очередной рефакторинг и упрощение системы журналирования.
364 Не должно быть видимых изменений для конечного пользователя.
369 @subsection Релиз 6.1.0
373 Оптимизация: большинство команд теперь не держат открытыми файловые
374 дескрипторы. Прежде вы легко могли выйти за пределы максимально
375 допустимого количества открытых файлов, если у вас было много пакетов в
379 Оптимизация: не закрывать файловый дескриптор файла который мы качаем.
380 Прежде каждый его кусочек приводил к дорогим open/close вызовам.
383 Скачиваемые в режиме online файлы теперь сохраняются с @file{.nock}
384 суффиксом (non-checksummed), ожидая пока либо @command{nncp-check}, либо
385 online демоны не выполнят проверку целостности.
388 Оптимизация: для файлов, скачивание которых не было продолжено, сразу же
389 вычисляет контрольная сумма, пропуская промежуточный @file{.nock} шаг.
392 Возможность хранения заголовков зашифрованных пакетов в @file{.hdr}
393 файлах, рядом с самими пакетами. Это может существенно повысить скорость
394 получения списка пакетов на файловых системах с большим размером блока.
399 @subsection Релиз 6.0.0
403 Журнал использует человеко-читаемый и легко обрабатываемый машиной
404 @url{https://www.gnu.org/software/recutils/, recfile} формат для своих
405 записей, вместо структурированных строчек RFC 3339. Старый формат
406 журналов не поддерживается @command{nncp-log}.
409 Работоспособность @option{-autotoss*} опции с @option{-inetd} режимом
410 @command{nncp-daemon}.
413 @option{when-tx-exists} опция вызова в конфигурационном файле позволяет
414 делать вызов только если имеются исходящие сообщения. Совмещённая с cron
415 выражением содержащим секунды, это можно использовать как возможность
416 вызова только при появлении исходящих пакетов.
419 @command{nncp-cronexpr} команда позволяет проверить корректность и
420 ожидаемый результат от указанного cron выражения.
425 @subsection Релиз 5.6.0
429 @option{-autotoss*} опции запускают tosser не после завершения вызова, а
430 во время него ежесекундно.
433 В @option{calls} секции конфигурации появились опции
434 @option{autotoss}, @option{autotoss-doseen},
435 @option{autotoss-nofile}, @option{autotoss-nofreq},
436 @option{autotoss-noexec}, @option{autotoss-notrns}.
437 Вы можете настраивать опции автоматического tosser для каждого вызова.
440 Использовать vendoring вместо переопределения @env{$GOPATH} во время
441 установки tarball, так как текущая минимальная версия Go это 1.12,
442 поддерживающая модули.
447 @subsection Релиз 5.5.1
451 Уважать @env{$BINDIR}, @env{$INFODIR} и @env{$DOCDIR} переменные окружения
452 в @file{config} во время установки.
457 @subsection Релиз 5.5.0
461 Исправления ошибок в @command{nncp-call(er)}/@command{nncp-daemon},
462 @command{nncp-bundle}, @command{nncp-stat} командах.
465 У команды @command{nncp-rm} появились @option{-dryrun} и @option{-older} опции.
468 У команды @command{nncp-exec} появились @option{-use-tmp} и
469 @option{-nocompress} опции. Несжатые пакеты не совместимы с предыдущими
473 У команд @command{nncp-call}, @command{nncp-caller} и @command{nncp-daemon}
474 появились @option{-autotoss*} опции для запуска tosser после завершения звонка.
477 Обновлены зависимые библиотеки. Минимальная требуемая версия Go 1.12.
482 @subsection Релиз 5.4.1
486 Исправлена ошибка с учётом @code{SENDMAIL} переменной при сборке.
491 @subsection Релиз 5.4.0
495 Обновлены зависимые библиотеки.
498 Система сборки переведена с Makefile-ов на @url{http://cr.yp.to/redo.html, redo}.
499 Это не должно повлиять на мейнтейнеров пакетов, так как минимальная
500 реализация @command{redo} включена в tarball.
505 @subsection Релиз 5.3.3
509 Больше различных проверок в коде на ошибки.
512 Обновлены зависимые библиотеки.
517 @subsection Релиз 5.3.2
521 Исправлена некорректная логика @option{onlinedeadline} timeout-а, при
522 котором соединение могло не учитывать факты прихода пакетов и обрывать
528 @subsection Релиз 5.3.1
532 Исправлена работоспособность @option{onlinedeadline} с адресами вызова
533 использующими внешние команды (@verb{#"|somecmd"#}).
536 @command{nncp-stat} имеет опцию @option{-pkt} показывающую информацию по
537 каждому пакету в spool.
542 @subsection Релиз 5.3.0
546 Сообщения прогресса содержат префикс, поясняющий выполняемое действие.
549 Исправлено не происходящее дополнение (padding) handshake сообщений.
552 Завершать все порождаемые в SP протоколе горутины, меньше утечек памяти.
555 SP протокол порождает меньше вызовов записей (соответственно, и TCP
559 Проверять @option{onlinedeadline} и @option{maxonlinetime} ежесекундно,
560 независимо от чтения из сокета (раз в 10 секунд в худшем случае).
563 Раз в минуту, если нет более никакого другого трафика, посылаются PING
564 пакеты в SP-соединении. Это позволит быстрее понимать что соединение
565 более не работоспособно.
568 @command{nncp-toss} использует lock-file для предотвращения
569 одновременной обработки зашифрованных пакетов.
574 @subsection Релиз 5.2.1
578 Исправлена обработка ошибки SP протокола, иногда вызывающая панику программы.
583 @subsection Релиз 5.2.0
587 Большинство команд по умолчанию показывают однострочный прогресс
588 выполнения операции. Появились @option{-progress}, @option{-noprogress}
589 опции командной строки, @option{noprogress} опция конфигурационного
593 Исправлен некорректный код возврата @command{nncp-check} команды,
594 который возвращал ошибку когда всё хорошо.
597 Проверка свободного места для пакетов, во время выполнения
598 @command{nncp-bundle -rx}.
603 @subsection Релиз 5.1.2
607 Исправлена @strong{критичная} уязвимость: аутентификация online нод
608 могла приводить к некорректной идентификации удалённой стороны, позволяя
609 скачивать чужие зашифрованные пакеты.
612 Исправлена ошибка: в новосозданных конфигурационных файлах, приватный
613 публичный ключ Noise были поменяны местами, что приводило к
614 невозможности online аутентификации нод.
617 Явная синхронизация (fsync) директорий для гарантированного
618 переименования файлов.
623 @subsection Релиз 5.1.1
627 Исправлена работоспособность @command{nncp-file} с @option{-chunked 0} опцией.
632 @subsection Релиз 5.1.0
636 @command{nncp-file} может отправлять директории, автоматически на лету
640 Во время создания исходящих сообщений проверяется наличие свободного
641 места на файловой системе.
644 @option{freq}, @option{freqminsize}, @option{freqchunked} опции
645 конфигурационного файла заменены на структуру
646 @option{freq: @{path: @dots{}, minsize: @dots{}, chunked: @dots{}@}}.
649 Добавлена @option{freq.maxsize} опция конфигурационного файл,
650 запрещающая ответ на файловый запрос больше заданного размера.
653 Возможность оповещения об успешно выполненных командах (exec) через
654 @option{notify.exec} опцию конфигурационного файла.
659 @subsection Релиз 5.0.0
663 @strong{Несовместимое} изменение формата конфигурационного файла:
664 YAML заменён на Hjson, из-за его гораздо большей простоты, без
665 заметной потери функционала и удобства.
668 @strong{Несовместимое} изменение формата простых пакетов. Работа со
669 старыми версиями не поддерживается. @code{zlib} сжатие заменено на
670 @code{Zstandard}, так как оно значительно быстрее и эффективнее, не
671 смотря на то, что версия библиотеки ещё не проверена временем.
674 Возможность соединяться с удалёнными нодами не только по TCP, но и через
675 pipe вызов сторонней команды.
678 @command{nncp-cfgnew} генерирует конфигурационный файл с множеством
679 комментариев. Можно использовать @option{-nocomments} опцию для старого
683 Дубликаты имён файлов имеют суффикс @file{.CTR}, вместо @file{CTR},
684 чтобы избежать возможных коллизий с @file{.nncp.chunkCTR}.
687 Возможность переопределить umask процесса через опцию конфигурационного
691 По умолчанию файлы и директории создаются с 666/777 правами доступа,
692 позволяя управлять ими @command{umask}-ом.
695 Обновлены зависимости.
698 Полное использование go модулей для управления зависимостями
699 (используется @code{go.cypherpunks.ru/nncp/v5} namespace).
702 Отмена автоматического использования более новых версий GNU GPL
703 (лицензия проекта GNU GPLv3-только).
708 @subsection Релиз 4.1
710 @item Восстановлена работоспособность на GNU/Linux системах и Go версии 1.10.
714 @subsection Релиз 4.0
718 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов:
719 используется AEAD режим шифрования с 128 КиБ блоками, так как раньше
720 @command{nncp-toss} не проверял MAC зашифрованного пакета прежде чем
721 отсылать дешифрованные данные внешней команде. Старые версии не
725 Проверка доступного места перед копированием во время работы
726 @command{nncp-xfer}, @command{nncp-daemon}, @command{nncp-call(er)}.
729 @command{nncp-call} имеет возможность только показывать список пакетов
730 на удалённой машине, без их передачи.
733 @command{nncp-call} имеет возможность передавать только чётко указанные пакеты.
736 Восстановлена работоспособность @option{xxrate} настройки в
737 @option{calls} секции конфигурационного файла.
740 Зависимые библиотеки обновлены.
743 Небольшие исправления ошибок.
746 Начало использования @code{go.mod} подсистемы.
751 @subsection Релиз 3.4
753 @item @command{nncp-daemon} может быть запущен как @command{inetd}-служба.
757 @subsection Релиз 3.3
761 @command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller}
762 проверяют существование @file{.seen} файла и расценивают его как то, что
763 файл уже был скачан. Возможно передача данных была осуществлена
764 сторонним способом и удалённая сторона должна быть оповещена об этом.
767 Если более высокоприоритетный пакет попадает в спул, то
768 @command{nncp-daemon} добавит его в очередь отправки первым, прерывая
769 низкоприоритетные передачи.
772 К средствам связанным с online-соединениями (@command{nncp-daemon},
773 @command{nncp-call}, @command{nncp-caller}) добавлен простой
774 ограничитель скорости.
777 Возможность задания приоритета символьными обозначениями:
778 @verb{|NORMAL|}, @verb{|BULK+10|}, @verb{|PRIORITY-5|}, итд.
781 Изменены значения приоритетов по-умолчанию:
782 для @command{nncp-exec} с 64 на 96,
783 для @command{nncp-freq} с 64 на 160,
784 для @command{nncp-file} с 196 на 224.
789 @subsection Релиз 3.2
792 @strong{Несовместимое} изменение формата @emph{bundle} архивов и
793 работоспособность @command{nncp-bundle} команды с Go 1.10+. Bundle
794 должен быть корректным tar архивом, но Go 1.9 делал его недействительным
795 из-за длинных путей внутри. NNCP нечаянно был зависим от этой баги.
796 Явное добавление @file{NNCP/} директории в архив восстанавливает
797 работоспособность с корректными tar архивами.
801 @subsection Релиз 3.1
804 Возможность отключать пересылку через промежуточные ноды используя
805 @verb{|-via -|} опцию командной строки.
809 @subsection Релиз 3.0
813 @strong{Несовместимое} изменение формата простых пакетов. Работа со
814 старыми версиями не поддерживается.
817 Добавлена возможность удалённого исполнения команд, путём
818 конфигурирования @option{exec} опции конфигурационного файла и
819 использования команды @command{nncp-exec}:
822 Команда @command{nncp-mail} заменена более гибкой и широкой
823 @command{nncp-exec}. Вместо вызова @verb{|nncp-mail NODE RECIPIENT|}
824 нужно использовать @verb{|nncp-exec NODE sendmail RECIPIENT|}.
826 @option{sendmail} опция конфигурационного файла заменена на более гибкую
827 @option{exec}. @verb{|sendmail: [...]|} нужно заменить на @verb{|exec:
832 Возможность переопределить @option{via} опцию конфигурации для целевого
833 узла через @option{-via} опцию командной строки для следующих команд:
834 @command{nncp-file}, @command{nncp-freq}, @command{nncp-exec}.
837 Chunked файлы, меньшего размера чем указанный chunk, отправляются просто
841 Exec команды вызываются с дополнительными переменными окружения
842 @env{$NNCP_NICE} и @env{$NNCP_SELF}.
845 Отправляемые файлы в ответ на запрос имеют приоритет указанный в запросе.
846 Указать их желаемый приоритет во время вызова @command{nncp-freq} можно
847 аргументом @option{-replynice}.
850 Команде @command{nncp-toss} можно сказать не обрабатывать определённые
851 типы пакетов, за счёт опций @option{-nofile}, @option{-nofreq},
852 @option{-noexec}, @option{-notrns}.
855 По-умолчанию @command{nncp-file} команда для
856 @option{-minsize}/@option{-chunked} опций использует
857 @option{FreqMinSize}/@option{FreqChunked} из конфигурационного файла.
858 Это можно отключить указав нулевое значение.
863 @subsection Релиз 2.0
867 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов.
868 Работа со старыми версиями не поддерживается.
871 Алгоритм шифрования Twofish заменён на ChaCha20. Он намного быстрее.
872 Одним криптографическим примитивом меньше.
875 HKDF-BLAKE2b-256 KDF алгоритм заменён на BLAKE2Xb XOF. Ещё одним
876 криптографическим примитивом меньше (предполагая, что BLAKE2X
877 практически идентичен BLAKE2).
882 @subsection Релиз 1.0
886 @strong{Несовместимое} изменение формата зашифрованных пакетов. Работа
887 со старыми версиями не поддерживается.
890 @command{nncp-bundle} команда может создавать потоки зашифрованных
891 пакетов или потреблять их. Это полезно когда речь идёт о
892 @code{stdin}/@code{stdout} методах передачи (например запись на CD-ROM
893 без создания промежуточного подготовленного ISO образа или работа с
894 ленточными накопителями).
897 @command{nncp-toss} команда может создавать @file{.seen} файлы,
898 предотвращая приём дублированных пакетов.
901 В команде @command{nncp-call} разрешается иметь только одного
902 обработчика контрольной суммы в фоне. Это полезно когда тысячи маленьких
903 входящих пакетов могут создать много горутин.
906 Возможность переопределить путь до spool директории и файла журнала
907 через аргумент командной строки или переменную окружения.
910 @command{nncp-rm} команда может удалять все исходящие/входящие,
911 @file{.seen}, @file{.part}, @file{.lock} и временные файлы.
916 @subsection Релиз 0.12
918 @item Команда sendmail вызывается с @env{$NNCP_SENDER} переменной окружения.
922 @subsection Релиз 0.11
924 @item Вывод команды @command{nncp-stat} отсортирован по имени ноды.
928 @subsection Релиз 0.10
931 @file{DST} аргумент @command{nncp-freq} команды теперь опционален.
932 По-умолчанию будет подставлен последний элемент @file{SRC} пути.
936 @subsection Релиз 0.9
939 Исправлена обработка @option{-rx}/@option{-tx} опций @command{nncp-call}
940 команды. Они игнорировались.
944 @subsection Релиз 0.8
947 Небольшое исправление ошибки в команде @command{nncp-file}, где опция
948 @option{-minsize} для передачи без разбиения на части была в байтах, а
953 @subsection Релиз 0.7
957 Возможность предоставлять данные для @command{nncp-file} через
958 стандартный ввод, используя временный зашифрованный файл для этого.
961 Появилась возможность передачи файлов разбитых на части, с сопутствующей
962 @command{nncp-reass} командой и @option{freqchunked} опцией
963 конфигурационного файла. Полезно для передачи больших файлов через
964 маленькие устройства хранения.
967 @option{freqminsize} опция конфигурационного файла, аналогичная
971 Опция @option{-force} команды @command{nncp-xfer} переименована в
972 @option{-mkdir} для ясности.
975 Опция @option{-minsize} задаётся в KiB, а не байтах, для удобства.
978 Команда @command{nncp-newcfg} переименована в @command{nncp-cfgnew},
979 а @command{nncp-mincfg} в @command{nncp-cfgmin}, для того чтобы они
980 имели общий префикс и были сгруппированы для удобства.
983 Появилась команда @command{nncp-cfgenc}, позволяющая
984 шифровать/дешифровать конфигурационный файл, чтобы безопасно его хранить
985 без использования OpenPGP или других подобных инструментов.
988 Обновлены зависимые криптографические библиотеки.
993 @subsection Релиз 0.6
995 @item Появилась небольшая команда @command{nncp-rm}.
996 @item Обновлены зависимые криптографические библиотеки.
1000 @subsection Релиз 0.5
1003 Тривиальное небольшое исправление в значениях приоритетов по-умолчанию в
1004 @command{nncp-file} и @command{nncp-freq} командах.
1008 @subsection Релиз 0.4
1012 Небольшое исправление в @command{nncp-call}, @command{nncp-caller},
1013 @command{nncp-daemon}: иногда они могли падать с segmentation fault
1014 ошибкой (данные не терялись).
1017 @command{nncp-newnode} переименована в @command{nncp-newcfg} --
1018 это короче и удобнее для использования.
1021 Появилась команда @command{nncp-mincfg}: вспомогательная утилита
1022 позволяющая создать минималистичный урезанный конфигурационный файл без
1023 приватных ключей, что полезно во время использования @command{nncp-xfer}.
1028 @subsection Релиз 0.3
1030 @item Исправлена совместимость с Go 1.6.
1034 @subsection Релиз 0.2
1038 @strong{Несовместимое} изменение формата пакета (магическое число тоже
1039 изменено): поле размера пакета шифруется и не посылается в открытом виде.
1042 @option{-minsize} опция даёт возможность автоматически дополнять
1043 исходящие пакеты до указанного минимального размера.
1046 @command{nncp-daemon} и @command{nncp-call}/@command{nncp-caller} всегда
1047 в фоне проверяют появление исходящих @emph{tx} пакетов пока подключены.
1048 Удалённая сторона сразу же оповещается об этом.
1051 @option{-onlinedeadline} опция даёт возможность выставления timeout-а на
1052 неактивность в online соединении, когда оно должно быть отключено. Она
1053 может быть использована для сохранения соединения на долгое время.
1056 @option{-maxonlinetime} опция даёт возможность указания максимального
1057 возможного времени жизни соединения.
1060 Появилась @command{nncp-caller} команда: клиент TCP-демона работающий по
1064 @command{nncp-pkt} команда может разжимать данные.