5 @subsection Релиз 8.0.2
9 Исправлена возможность отправки мультивещательных пакетов.
14 @subsection Релиз 8.0.1
18 Исправлено некорректное вычисление @code{freq.chunked} значения, при
19 отсутствии которого всё равно форсированно включалась chunked передача.
22 Исправлено некорректное вычисление значения полного размера файла в
28 @subsection Релиз 8.0.0
32 @strong{Несовместимое} изменение формата зашифрованных пакетов: размеры
33 полезной нагрузки и дополнения посылаются прямо внутри зашифрованного
34 потока. Это даёт возможность потоково создавать шифрованные пакеты, без
35 знания размеров заранее, без создания временного файла или буферизации в
39 Производится корректная проверка дополнения зашифрованного пакета. Это
40 не критичная проблема, но прежде ни размер, ни значение дополнения не
41 были аутентифицированы, позволяя циклично откусывать по байту с конца и
42 узнавать размер полезной нагрузки, наблюдая за реакцией по обработке
43 такого зашифрованного пакета.
46 @command{nncp-exec} больше не имеет @option{-use-tmp} опции, из-за
47 совместимого с потоковой работой формата зашифрованных пакетов.
50 У @command{nncp-file} и @command{nncp-exec} команд появилась опция
51 @option{-maxsize}, ограничивающая максимальный результирующий размер
52 зашифрованного пакета (возвращая ошибку если он превышен). Может быть
53 полезно, так как размер полезной нагрузки может быть неизвестен заранее.
58 @subsection Релиз 7.7.0
62 Экспериментальная поддержка @code{kqueue} и @code{inotify} оповещений об
63 изменениях в spool директориях, для сокращения накладных расходов на их
67 @file{.seen} и @file{.hdr} файлы находятся в @file{seen/} и @file{hdr/}
68 поддиректориях теперь, дабы ускорить сканирование spool областей.
69 Необходима миграция текущих файлов:
72 $ find $NNCPSPOOL -type f -name "*.hdr" -exec rm @{@} +
74 $ find $NNCPSPOOL -type d -name rx | while read rx ; do
77 find . -type f -name "*.seen" | while read fn ; do
78 mv $fn seen/$@{fn%.seen@}
82 $ find $NNCPSPOOL -type d -name area | while read area ; do
83 find $area -type f -name "*.seen" | while read fn ; do
92 @subsection Релиз 7.6.0
96 Журналирование может производиться в назначенный открытый файловый
97 дескриптор (@env{$NNCPLOG=FD:5} например).
98 Что дружелюбно к использованию под @command{daemontools}.
101 Добавлены дополнительные проверки наличия публичных ключей в
102 конфигурационном файле, предотвращающие падения некоторых команд.
107 @subsection Релиз 7.5.1
111 NNCP собирается на NetBSD.
116 @subsection Релиз 7.5.0
120 @command{nncp-daemon} соблюдает UCSPI-TCP интерфейс, благодаря чему в
121 журнале будет присутствовать адрес удалённой системы (при запуске под
122 совместимой утилитой). Желательно применять @option{-ucspi} опцию вместо
126 @command{nncp-call} может быть UCSPI-TCP клиентом, используя
127 @option{-ucspi} опцию.
130 Не выходить если не получается слушать на каком-либо MCD сетевом
131 интерфейсе -- только предупреждать об ошибке.
136 @subsection Релиз 7.4.0
140 Исправлена работоспособность MCD при одновременном использовании
141 @command{nncp-daemon} и @command{nncp-caller}.
146 @subsection Релиз 7.3.2
150 @command{hjson-cli} утилита теперь собирается в vendor-режиме.
155 @subsection Релиз 7.3.1
159 Исправлена проблема с возможно остающимся открытым файловым
160 дескриптором в online командах.
163 Существенно снижено потребление памяти MTH хэширования.
168 @subsection Релиз 7.3.0
172 Поправлены проблемы работоспособности на 32-бит системах с большими файлами.
175 Возможность использовать конфигурацию в виде директории с набором
176 файлов. Появилась команда @command{nncp-cfgdir}.
181 @subsection Релиз 7.2.1
185 Небольшие оптимизации в online командах.
190 @subsection Релиз 7.2.0
194 Появилась @command{nncp-trns} команда для ручного создания транзитных пакетов.
197 Если у целевой ноды транзитного пакета задан @option{via} маршрут, то
198 использовать его, а не игнорировать.
201 Не отправлять multicast пакет оригинатору сообщения, очевидно точно
202 видящего свой собственный пакет.
205 Намного меньшее потребление памяти во время MTH хэширования когда
206 смещение равно нулю: когда пакет не является докачиванием, а например
207 проверяется @command{nncp-check} командой.
212 @subsection Релиз 7.1.1
216 Исправлено падение при fsync директорий после создания @file{.seen} файлов.
221 @subsection Релиз 7.1.0
225 Появилась возможность мультивещательной (multicast) рассылки пакетов.
226 Реализовано всего лишь дополнительным типом простых пакетов и изменением
227 @command{nncp-toss}, @command{nncp-file} и @command{nncp-exec} команд.
230 Исправлена работоспособность @command{nncp-file} и @command{nncp-exec}
231 команд использующих временный файл (stdin и @option{-use-tmp}).
234 Исправлен пропадающий плохой код возврата в @command{nncp-exec} команде.
237 Исправлено некорректное генерирование @file{.hdr} при использовании
241 У @command{nncp-rm} команды появилась @option{-all} опция, применяемая
245 У @command{nncp-check} команды появилась @option{-cycle} опция, вводящая
246 проверку в бесконечный цикл.
249 У @command{nncp-rm} команды можно указывать alias-ы имён нод.
252 @command{nncp-pkt} может парсить @file{.hdr} файлы.
257 @subsection Релиз 7.0.0
261 Минимальная требуемая версия Go 1.13.
264 Хэширование с BLAKE3 на базе деревьев Меркле (Merkle Tree Hashing, MTH)
265 используется вместо BLAKE2b. Из-за этого, обратно @strong{несовместимое}
266 изменение формата шифрованных файлов (всего что находится в spool
267 области) и формата @file{.meta} файла при chunked передаче.
269 Текущая реализация далека от оптимальной: в ней нет распараллеливания
270 вычислений и имеет повышенное потребление памяти: около 512 KiB на
271 каждый 1 GiB данных файла. Будущая оптимизация производительности и
272 потребления памяти не должна привести к изменению формата пакетов. Но
273 это всё равно в несколько раз быстрее BLAKE2b.
276 Из-за использования MTH, докачиваемые в online режиме файлы потребуют
277 чтения с диска только предшествующей части, а не полностью всего файла,
281 Добавлена @command{nncp-hash} утилита для вычисления MTH хэша файла.
284 В шифрованных пакетах BLAKE2 KDF и XOF функции заменены на BLAKE3. Ещё
285 уменьшая количество примитивов. А также заголовок шифрованного файла
286 теперь является ассоциированными данными при шифровании.
289 MultiCast Discovery использует
290 @verb{|ff02::4e4e:4350|} адрес вместо @verb{|ff02::1|}.
293 @command{nncp-cfgenc} ошибочно трижды спрашивал парольную фразу при шифровании.
296 @command{nncp-stat} выводит сводку о частично скачанных пакетах.
299 Обновлены зависимые библиотеки.
304 @subsection Релиз 6.6.0
308 @command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}
309 ожидают завершения всех процессов фоновой проверки контрольных сумм,
310 после того как соединение закрыто.
313 Добавлена возможность определения адреса через multicast оповещение в
314 локальной сети, так называемый MCD (MultiCast Discovery).
319 @subsection Релиз 6.5.0
323 Исправлено падение в @command{nncp-daemon} когда SP рукопожатие не было успешно.
326 Исправлено возможное игнорирование плохого кода возврата автоматического tosser.
329 Исправлена гонка при закрытии файловых дескрипторов во время завершения
330 работы online протокола, которая могла привести к ошибке записи
331 принятого фрагмента пакета.
334 Убирать показ прогресса передачи пакетов когда вызов уже завершён в
335 @command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}.
340 @subsection Релиз 6.4.0
344 Исправлена возможная гонка в online протоколе, приводящая к падению
350 @subsection Релиз 6.3.0
354 Исправлено возможное падение программы во время показа прогресса online
360 @subsection Релиз 6.2.1
364 В трёх местах сообщений журналов по ошибке остались лишние @code{%s}.
369 @subsection Релиз 6.2.0
373 Возвращена работоспособность @option{-autotoss*} опций @command{nncp-caller}.
376 Очередной рефакторинг и упрощение системы журналирования.
377 Не должно быть видимых изменений для конечного пользователя.
382 @subsection Релиз 6.1.0
386 Оптимизация: большинство команд теперь не держат открытыми файловые
387 дескрипторы. Прежде вы легко могли выйти за пределы максимально
388 допустимого количества открытых файлов, если у вас было много пакетов в
392 Оптимизация: не закрывать файловый дескриптор файла который мы качаем.
393 Прежде каждый его кусочек приводил к дорогим open/close вызовам.
396 Скачиваемые в режиме online файлы теперь сохраняются с @file{.nock}
397 суффиксом (non-checksummed), ожидая пока либо @command{nncp-check}, либо
398 online демоны не выполнят проверку целостности.
401 Оптимизация: для файлов, скачивание которых не было продолжено, сразу же
402 вычисляет контрольная сумма, пропуская промежуточный @file{.nock} шаг.
405 Возможность хранения заголовков зашифрованных пакетов в @file{.hdr}
406 файлах, рядом с самими пакетами. Это может существенно повысить скорость
407 получения списка пакетов на файловых системах с большим размером блока.
412 @subsection Релиз 6.0.0
416 Журнал использует человеко-читаемый и легко обрабатываемый машиной
417 @url{https://www.gnu.org/software/recutils/, recfile} формат для своих
418 записей, вместо структурированных строчек RFC 3339. Старый формат
419 журналов не поддерживается @command{nncp-log}.
422 Работоспособность @option{-autotoss*} опции с @option{-inetd} режимом
423 @command{nncp-daemon}.
426 @option{when-tx-exists} опция вызова в конфигурационном файле позволяет
427 делать вызов только если имеются исходящие сообщения. Совмещённая с cron
428 выражением содержащим секунды, это можно использовать как возможность
429 вызова только при появлении исходящих пакетов.
432 @command{nncp-cronexpr} команда позволяет проверить корректность и
433 ожидаемый результат от указанного cron выражения.
438 @subsection Релиз 5.6.0
442 @option{-autotoss*} опции запускают tosser не после завершения вызова, а
443 во время него ежесекундно.
446 В @option{calls} секции конфигурации появились опции
447 @option{autotoss}, @option{autotoss-doseen},
448 @option{autotoss-nofile}, @option{autotoss-nofreq},
449 @option{autotoss-noexec}, @option{autotoss-notrns}.
450 Вы можете настраивать опции автоматического tosser для каждого вызова.
453 Использовать vendoring вместо переопределения @env{$GOPATH} во время
454 установки tarball, так как текущая минимальная версия Go это 1.12,
455 поддерживающая модули.
460 @subsection Релиз 5.5.1
464 Уважать @env{$BINDIR}, @env{$INFODIR} и @env{$DOCDIR} переменные окружения
465 в @file{config} во время установки.
470 @subsection Релиз 5.5.0
474 Исправления ошибок в @command{nncp-call(er)}/@command{nncp-daemon},
475 @command{nncp-bundle}, @command{nncp-stat} командах.
478 У команды @command{nncp-rm} появились @option{-dryrun} и @option{-older} опции.
481 У команды @command{nncp-exec} появились @option{-use-tmp} и
482 @option{-nocompress} опции. Несжатые пакеты не совместимы с предыдущими
486 У команд @command{nncp-call}, @command{nncp-caller} и @command{nncp-daemon}
487 появились @option{-autotoss*} опции для запуска tosser после завершения звонка.
490 Обновлены зависимые библиотеки. Минимальная требуемая версия Go 1.12.
495 @subsection Релиз 5.4.1
499 Исправлена ошибка с учётом @code{SENDMAIL} переменной при сборке.
504 @subsection Релиз 5.4.0
508 Обновлены зависимые библиотеки.
511 Система сборки переведена с Makefile-ов на @url{http://cr.yp.to/redo.html, redo}.
512 Это не должно повлиять на мейнтейнеров пакетов, так как минимальная
513 реализация @command{redo} включена в tarball.
518 @subsection Релиз 5.3.3
522 Больше различных проверок в коде на ошибки.
525 Обновлены зависимые библиотеки.
530 @subsection Релиз 5.3.2
534 Исправлена некорректная логика @option{onlinedeadline} timeout-а, при
535 котором соединение могло не учитывать факты прихода пакетов и обрывать
541 @subsection Релиз 5.3.1
545 Исправлена работоспособность @option{onlinedeadline} с адресами вызова
546 использующими внешние команды (@verb{#"|somecmd"#}).
549 @command{nncp-stat} имеет опцию @option{-pkt} показывающую информацию по
550 каждому пакету в spool.
555 @subsection Релиз 5.3.0
559 Сообщения прогресса содержат префикс, поясняющий выполняемое действие.
562 Исправлено не происходящее дополнение (padding) handshake сообщений.
565 Завершать все порождаемые в SP протоколе горутины, меньше утечек памяти.
568 SP протокол порождает меньше вызовов записей (соответственно, и TCP
572 Проверять @option{onlinedeadline} и @option{maxonlinetime} ежесекундно,
573 независимо от чтения из сокета (раз в 10 секунд в худшем случае).
576 Раз в минуту, если нет более никакого другого трафика, посылаются PING
577 пакеты в SP-соединении. Это позволит быстрее понимать что соединение
578 более не работоспособно.
581 @command{nncp-toss} использует lock-file для предотвращения
582 одновременной обработки зашифрованных пакетов.
587 @subsection Релиз 5.2.1
591 Исправлена обработка ошибки SP протокола, иногда вызывающая панику программы.
596 @subsection Релиз 5.2.0
600 Большинство команд по умолчанию показывают однострочный прогресс
601 выполнения операции. Появились @option{-progress}, @option{-noprogress}
602 опции командной строки, @option{noprogress} опция конфигурационного
606 Исправлен некорректный код возврата @command{nncp-check} команды,
607 который возвращал ошибку когда всё хорошо.
610 Проверка свободного места для пакетов, во время выполнения
611 @command{nncp-bundle -rx}.
616 @subsection Релиз 5.1.2
620 Исправлена @strong{критичная} уязвимость: аутентификация online нод
621 могла приводить к некорректной идентификации удалённой стороны, позволяя
622 скачивать чужие зашифрованные пакеты.
625 Исправлена ошибка: в новосозданных конфигурационных файлах, приватный
626 публичный ключ Noise были поменяны местами, что приводило к
627 невозможности online аутентификации нод.
630 Явная синхронизация (fsync) директорий для гарантированного
631 переименования файлов.
636 @subsection Релиз 5.1.1
640 Исправлена работоспособность @command{nncp-file} с @option{-chunked 0} опцией.
645 @subsection Релиз 5.1.0
649 @command{nncp-file} может отправлять директории, автоматически на лету
653 Во время создания исходящих сообщений проверяется наличие свободного
654 места на файловой системе.
657 @option{freq}, @option{freqminsize}, @option{freqchunked} опции
658 конфигурационного файла заменены на структуру
659 @option{freq: @{path: @dots{}, minsize: @dots{}, chunked: @dots{}@}}.
662 Добавлена @option{freq.maxsize} опция конфигурационного файл,
663 запрещающая ответ на файловый запрос больше заданного размера.
666 Возможность оповещения об успешно выполненных командах (exec) через
667 @option{notify.exec} опцию конфигурационного файла.
672 @subsection Релиз 5.0.0
676 @strong{Несовместимое} изменение формата конфигурационного файла:
677 YAML заменён на Hjson, из-за его гораздо большей простоты, без
678 заметной потери функционала и удобства.
681 @strong{Несовместимое} изменение формата простых пакетов. Работа со
682 старыми версиями не поддерживается. @code{zlib} сжатие заменено на
683 @code{Zstandard}, так как оно значительно быстрее и эффективнее, не
684 смотря на то, что версия библиотеки ещё не проверена временем.
687 Возможность соединяться с удалёнными нодами не только по TCP, но и через
688 pipe вызов сторонней команды.
691 @command{nncp-cfgnew} генерирует конфигурационный файл с множеством
692 комментариев. Можно использовать @option{-nocomments} опцию для старого
696 Дубликаты имён файлов имеют суффикс @file{.CTR}, вместо @file{CTR},
697 чтобы избежать возможных коллизий с @file{.nncp.chunkCTR}.
700 Возможность переопределить umask процесса через опцию конфигурационного
704 По умолчанию файлы и директории создаются с 666/777 правами доступа,
705 позволяя управлять ими @command{umask}-ом.
708 Обновлены зависимости.
711 Полное использование go модулей для управления зависимостями
712 (используется @code{go.cypherpunks.ru/nncp/v5} namespace).
715 Отмена автоматического использования более новых версий GNU GPL
716 (лицензия проекта GNU GPLv3-только).
721 @subsection Релиз 4.1
723 @item Восстановлена работоспособность на GNU/Linux системах и Go версии 1.10.
727 @subsection Релиз 4.0
731 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов:
732 используется AEAD режим шифрования с 128 КиБ блоками, так как раньше
733 @command{nncp-toss} не проверял MAC зашифрованного пакета прежде чем
734 отсылать дешифрованные данные внешней команде. Старые версии не
738 Проверка доступного места перед копированием во время работы
739 @command{nncp-xfer}, @command{nncp-daemon}, @command{nncp-call(er)}.
742 @command{nncp-call} имеет возможность только показывать список пакетов
743 на удалённой машине, без их передачи.
746 @command{nncp-call} имеет возможность передавать только чётко указанные пакеты.
749 Восстановлена работоспособность @option{xxrate} настройки в
750 @option{calls} секции конфигурационного файла.
753 Зависимые библиотеки обновлены.
756 Небольшие исправления ошибок.
759 Начало использования @code{go.mod} подсистемы.
764 @subsection Релиз 3.4
766 @item @command{nncp-daemon} может быть запущен как @command{inetd}-служба.
770 @subsection Релиз 3.3
774 @command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller}
775 проверяют существование @file{.seen} файла и расценивают его как то, что
776 файл уже был скачан. Возможно передача данных была осуществлена
777 сторонним способом и удалённая сторона должна быть оповещена об этом.
780 Если более высокоприоритетный пакет попадает в спул, то
781 @command{nncp-daemon} добавит его в очередь отправки первым, прерывая
782 низкоприоритетные передачи.
785 К средствам связанным с online-соединениями (@command{nncp-daemon},
786 @command{nncp-call}, @command{nncp-caller}) добавлен простой
787 ограничитель скорости.
790 Возможность задания приоритета символьными обозначениями:
791 @verb{|NORMAL|}, @verb{|BULK+10|}, @verb{|PRIORITY-5|}, итд.
794 Изменены значения приоритетов по-умолчанию:
795 для @command{nncp-exec} с 64 на 96,
796 для @command{nncp-freq} с 64 на 160,
797 для @command{nncp-file} с 196 на 224.
802 @subsection Релиз 3.2
805 @strong{Несовместимое} изменение формата @emph{bundle} архивов и
806 работоспособность @command{nncp-bundle} команды с Go 1.10+. Bundle
807 должен быть корректным tar архивом, но Go 1.9 делал его недействительным
808 из-за длинных путей внутри. NNCP нечаянно был зависим от этой баги.
809 Явное добавление @file{NNCP/} директории в архив восстанавливает
810 работоспособность с корректными tar архивами.
814 @subsection Релиз 3.1
817 Возможность отключать пересылку через промежуточные ноды используя
818 @verb{|-via -|} опцию командной строки.
822 @subsection Релиз 3.0
826 @strong{Несовместимое} изменение формата простых пакетов. Работа со
827 старыми версиями не поддерживается.
830 Добавлена возможность удалённого исполнения команд, путём
831 конфигурирования @option{exec} опции конфигурационного файла и
832 использования команды @command{nncp-exec}:
835 Команда @command{nncp-mail} заменена более гибкой и широкой
836 @command{nncp-exec}. Вместо вызова @verb{|nncp-mail NODE RECIPIENT|}
837 нужно использовать @verb{|nncp-exec NODE sendmail RECIPIENT|}.
839 @option{sendmail} опция конфигурационного файла заменена на более гибкую
840 @option{exec}. @verb{|sendmail: [...]|} нужно заменить на @verb{|exec:
845 Возможность переопределить @option{via} опцию конфигурации для целевого
846 узла через @option{-via} опцию командной строки для следующих команд:
847 @command{nncp-file}, @command{nncp-freq}, @command{nncp-exec}.
850 Chunked файлы, меньшего размера чем указанный chunk, отправляются просто
854 Exec команды вызываются с дополнительными переменными окружения
855 @env{$NNCP_NICE} и @env{$NNCP_SELF}.
858 Отправляемые файлы в ответ на запрос имеют приоритет указанный в запросе.
859 Указать их желаемый приоритет во время вызова @command{nncp-freq} можно
860 аргументом @option{-replynice}.
863 Команде @command{nncp-toss} можно сказать не обрабатывать определённые
864 типы пакетов, за счёт опций @option{-nofile}, @option{-nofreq},
865 @option{-noexec}, @option{-notrns}.
868 По-умолчанию @command{nncp-file} команда для
869 @option{-minsize}/@option{-chunked} опций использует
870 @option{FreqMinSize}/@option{FreqChunked} из конфигурационного файла.
871 Это можно отключить указав нулевое значение.
876 @subsection Релиз 2.0
880 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов.
881 Работа со старыми версиями не поддерживается.
884 Алгоритм шифрования Twofish заменён на ChaCha20. Он намного быстрее.
885 Одним криптографическим примитивом меньше.
888 HKDF-BLAKE2b-256 KDF алгоритм заменён на BLAKE2Xb XOF. Ещё одним
889 криптографическим примитивом меньше (предполагая, что BLAKE2X
890 практически идентичен BLAKE2).
895 @subsection Релиз 1.0
899 @strong{Несовместимое} изменение формата зашифрованных пакетов. Работа
900 со старыми версиями не поддерживается.
903 @command{nncp-bundle} команда может создавать потоки зашифрованных
904 пакетов или потреблять их. Это полезно когда речь идёт о
905 @code{stdin}/@code{stdout} методах передачи (например запись на CD-ROM
906 без создания промежуточного подготовленного ISO образа или работа с
907 ленточными накопителями).
910 @command{nncp-toss} команда может создавать @file{.seen} файлы,
911 предотвращая приём дублированных пакетов.
914 В команде @command{nncp-call} разрешается иметь только одного
915 обработчика контрольной суммы в фоне. Это полезно когда тысячи маленьких
916 входящих пакетов могут создать много горутин.
919 Возможность переопределить путь до spool директории и файла журнала
920 через аргумент командной строки или переменную окружения.
923 @command{nncp-rm} команда может удалять все исходящие/входящие,
924 @file{.seen}, @file{.part}, @file{.lock} и временные файлы.
929 @subsection Релиз 0.12
931 @item Команда sendmail вызывается с @env{$NNCP_SENDER} переменной окружения.
935 @subsection Релиз 0.11
937 @item Вывод команды @command{nncp-stat} отсортирован по имени ноды.
941 @subsection Релиз 0.10
944 @file{DST} аргумент @command{nncp-freq} команды теперь опционален.
945 По-умолчанию будет подставлен последний элемент @file{SRC} пути.
949 @subsection Релиз 0.9
952 Исправлена обработка @option{-rx}/@option{-tx} опций @command{nncp-call}
953 команды. Они игнорировались.
957 @subsection Релиз 0.8
960 Небольшое исправление ошибки в команде @command{nncp-file}, где опция
961 @option{-minsize} для передачи без разбиения на части была в байтах, а
966 @subsection Релиз 0.7
970 Возможность предоставлять данные для @command{nncp-file} через
971 стандартный ввод, используя временный зашифрованный файл для этого.
974 Появилась возможность передачи файлов разбитых на части, с сопутствующей
975 @command{nncp-reass} командой и @option{freqchunked} опцией
976 конфигурационного файла. Полезно для передачи больших файлов через
977 маленькие устройства хранения.
980 @option{freqminsize} опция конфигурационного файла, аналогичная
984 Опция @option{-force} команды @command{nncp-xfer} переименована в
985 @option{-mkdir} для ясности.
988 Опция @option{-minsize} задаётся в KiB, а не байтах, для удобства.
991 Команда @command{nncp-newcfg} переименована в @command{nncp-cfgnew},
992 а @command{nncp-mincfg} в @command{nncp-cfgmin}, для того чтобы они
993 имели общий префикс и были сгруппированы для удобства.
996 Появилась команда @command{nncp-cfgenc}, позволяющая
997 шифровать/дешифровать конфигурационный файл, чтобы безопасно его хранить
998 без использования OpenPGP или других подобных инструментов.
1001 Обновлены зависимые криптографические библиотеки.
1006 @subsection Релиз 0.6
1008 @item Появилась небольшая команда @command{nncp-rm}.
1009 @item Обновлены зависимые криптографические библиотеки.
1013 @subsection Релиз 0.5
1016 Тривиальное небольшое исправление в значениях приоритетов по-умолчанию в
1017 @command{nncp-file} и @command{nncp-freq} командах.
1021 @subsection Релиз 0.4
1025 Небольшое исправление в @command{nncp-call}, @command{nncp-caller},
1026 @command{nncp-daemon}: иногда они могли падать с segmentation fault
1027 ошибкой (данные не терялись).
1030 @command{nncp-newnode} переименована в @command{nncp-newcfg} --
1031 это короче и удобнее для использования.
1034 Появилась команда @command{nncp-mincfg}: вспомогательная утилита
1035 позволяющая создать минималистичный урезанный конфигурационный файл без
1036 приватных ключей, что полезно во время использования @command{nncp-xfer}.
1041 @subsection Релиз 0.3
1043 @item Исправлена совместимость с Go 1.6.
1047 @subsection Релиз 0.2
1051 @strong{Несовместимое} изменение формата пакета (магическое число тоже
1052 изменено): поле размера пакета шифруется и не посылается в открытом виде.
1055 @option{-minsize} опция даёт возможность автоматически дополнять
1056 исходящие пакеты до указанного минимального размера.
1059 @command{nncp-daemon} и @command{nncp-call}/@command{nncp-caller} всегда
1060 в фоне проверяют появление исходящих @emph{tx} пакетов пока подключены.
1061 Удалённая сторона сразу же оповещается об этом.
1064 @option{-onlinedeadline} опция даёт возможность выставления timeout-а на
1065 неактивность в online соединении, когда оно должно быть отключено. Она
1066 может быть использована для сохранения соединения на долгое время.
1069 @option{-maxonlinetime} опция даёт возможность указания максимального
1070 возможного времени жизни соединения.
1073 Появилась @command{nncp-caller} команда: клиент TCP-демона работающий по
1077 @command{nncp-pkt} команда может разжимать данные.