5 @subsection Релиз 8.0.0
9 @strong{Несовместимое} изменение формата зашифрованных пакетов: размеры
10 полезной нагрузки и дополнения посылаются прямо внутри зашифрованного
11 потока. Это даёт возможность потоково создавать шифрованные пакеты, без
12 знания размеров заранее, без создания временного файла или буферизации в
16 Производится корректная проверка дополнения зашифрованного пакета. Это
17 не критичная проблема, но прежде ни размер, ни значение дополнения не
18 были аутентифицированы, позволяя циклично откусывать по байту с конца и
19 узнавать размер полезной нагрузки, наблюдая за реакцией по обработке
20 такого зашифрованного пакета.
23 @command{nncp-exec} больше не имеет @option{-use-tmp} опции, из-за
24 совместимого с потоковой работой формата зашифрованных пакетов.
27 У @command{nncp-file} и @command{nncp-exec} команд появилась опция
28 @option{-maxsize}, ограничивающая максимальный результирующий размер
29 зашифрованного пакета (возвращая ошибку если он превышен). Может быть
30 полезно, так как размер полезной нагрузки может быть неизвестен заранее.
35 @subsection Релиз 7.7.0
39 Экспериментальная поддержка @code{kqueue} и @code{inotify} оповещений об
40 изменениях в spool директориях, для сокращения накладных расходов на их
44 @file{.seen} и @file{.hdr} файлы находятся в @file{seen/} и @file{hdr/}
45 поддиректориях теперь, дабы ускорить сканирование spool областей.
46 Необходима миграция текущих файлов:
49 $ find $NNCPSPOOL -type f -name "*.hdr" -exec rm @{@} +
51 $ find $NNCPSPOOL -type d -name rx | while read rx ; do
54 find . -type f -name "*.seen" | while read fn ; do
55 mv $fn seen/$@{fn%.seen@}
59 $ find $NNCPSPOOL -type d -name area | while read area ; do
60 find $area -type f -name "*.seen" | while read fn ; do
69 @subsection Релиз 7.6.0
73 Журналирование может производиться в назначенный открытый файловый
74 дескриптор (@env{$NNCPLOG=FD:5} например).
75 Что дружелюбно к использованию под @command{daemontools}.
78 Добавлены дополнительные проверки наличия публичных ключей в
79 конфигурационном файле, предотвращающие падения некоторых команд.
84 @subsection Релиз 7.5.1
88 NNCP собирается на NetBSD.
93 @subsection Релиз 7.5.0
97 @command{nncp-daemon} соблюдает UCSPI-TCP интерфейс, благодаря чему в
98 журнале будет присутствовать адрес удалённой системы (при запуске под
99 совместимой утилитой). Желательно применять @option{-ucspi} опцию вместо
103 @command{nncp-call} может быть UCSPI-TCP клиентом, используя
104 @option{-ucspi} опцию.
107 Не выходить если не получается слушать на каком-либо MCD сетевом
108 интерфейсе -- только предупреждать об ошибке.
113 @subsection Релиз 7.4.0
117 Исправлена работоспособность MCD при одновременном использовании
118 @command{nncp-daemon} и @command{nncp-caller}.
123 @subsection Релиз 7.3.2
127 @command{hjson-cli} утилита теперь собирается в vendor-режиме.
132 @subsection Релиз 7.3.1
136 Исправлена проблема с возможно остающимся открытым файловым
137 дескриптором в online командах.
140 Существенно снижено потребление памяти MTH хэширования.
145 @subsection Релиз 7.3.0
149 Поправлены проблемы работоспособности на 32-бит системах с большими файлами.
152 Возможность использовать конфигурацию в виде директории с набором
153 файлов. Появилась команда @command{nncp-cfgdir}.
158 @subsection Релиз 7.2.1
162 Небольшие оптимизации в online командах.
167 @subsection Релиз 7.2.0
171 Появилась @command{nncp-trns} команда для ручного создания транзитных пакетов.
174 Если у целевой ноды транзитного пакета задан @option{via} маршрут, то
175 использовать его, а не игнорировать.
178 Не отправлять multicast пакет оригинатору сообщения, очевидно точно
179 видящего свой собственный пакет.
182 Намного меньшее потребление памяти во время MTH хэширования когда
183 смещение равно нулю: когда пакет не является докачиванием, а например
184 проверяется @command{nncp-check} командой.
189 @subsection Релиз 7.1.1
193 Исправлено падение при fsync директорий после создания @file{.seen} файлов.
198 @subsection Релиз 7.1.0
202 Появилась возможность мультивещательной (multicast) рассылки пакетов.
203 Реализовано всего лишь дополнительным типом простых пакетов и изменением
204 @command{nncp-toss}, @command{nncp-file} и @command{nncp-exec} команд.
207 Исправлена работоспособность @command{nncp-file} и @command{nncp-exec}
208 команд использующих временный файл (stdin и @option{-use-tmp}).
211 Исправлен пропадающий плохой код возврата в @command{nncp-exec} команде.
214 Исправлено некорректное генерирование @file{.hdr} при использовании
218 У @command{nncp-rm} команды появилась @option{-all} опция, применяемая
222 У @command{nncp-check} команды появилась @option{-cycle} опция, вводящая
223 проверку в бесконечный цикл.
226 У @command{nncp-rm} команды можно указывать alias-ы имён нод.
229 @command{nncp-pkt} может парсить @file{.hdr} файлы.
234 @subsection Релиз 7.0.0
238 Минимальная требуемая версия Go 1.13.
241 Хэширование с BLAKE3 на базе деревьев Меркле (Merkle Tree Hashing, MTH)
242 используется вместо BLAKE2b. Из-за этого, обратно @strong{несовместимое}
243 изменение формата шифрованных файлов (всего что находится в spool
244 области) и формата @file{.meta} файла при chunked передаче.
246 Текущая реализация далека от оптимальной: в ней нет распараллеливания
247 вычислений и имеет повышенное потребление памяти: около 512 KiB на
248 каждый 1 GiB данных файла. Будущая оптимизация производительности и
249 потребления памяти не должна привести к изменению формата пакетов. Но
250 это всё равно в несколько раз быстрее BLAKE2b.
253 Из-за использования MTH, докачиваемые в online режиме файлы потребуют
254 чтения с диска только предшествующей части, а не полностью всего файла,
258 Добавлена @command{nncp-hash} утилита для вычисления MTH хэша файла.
261 В шифрованных пакетах BLAKE2 KDF и XOF функции заменены на BLAKE3. Ещё
262 уменьшая количество примитивов. А также заголовок шифрованного файла
263 теперь является ассоциированными данными при шифровании.
266 MultiCast Discovery использует
267 @verb{|ff02::4e4e:4350|} адрес вместо @verb{|ff02::1|}.
270 @command{nncp-cfgenc} ошибочно трижды спрашивал парольную фразу при шифровании.
273 @command{nncp-stat} выводит сводку о частично скачанных пакетах.
276 Обновлены зависимые библиотеки.
281 @subsection Релиз 6.6.0
285 @command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}
286 ожидают завершения всех процессов фоновой проверки контрольных сумм,
287 после того как соединение закрыто.
290 Добавлена возможность определения адреса через multicast оповещение в
291 локальной сети, так называемый MCD (MultiCast Discovery).
296 @subsection Релиз 6.5.0
300 Исправлено падение в @command{nncp-daemon} когда SP рукопожатие не было успешно.
303 Исправлено возможное игнорирование плохого кода возврата автоматического tosser.
306 Исправлена гонка при закрытии файловых дескрипторов во время завершения
307 работы online протокола, которая могла привести к ошибке записи
308 принятого фрагмента пакета.
311 Убирать показ прогресса передачи пакетов когда вызов уже завершён в
312 @command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}.
317 @subsection Релиз 6.4.0
321 Исправлена возможная гонка в online протоколе, приводящая к падению
327 @subsection Релиз 6.3.0
331 Исправлено возможное падение программы во время показа прогресса online
337 @subsection Релиз 6.2.1
341 В трёх местах сообщений журналов по ошибке остались лишние @code{%s}.
346 @subsection Релиз 6.2.0
350 Возвращена работоспособность @option{-autotoss*} опций @command{nncp-caller}.
353 Очередной рефакторинг и упрощение системы журналирования.
354 Не должно быть видимых изменений для конечного пользователя.
359 @subsection Релиз 6.1.0
363 Оптимизация: большинство команд теперь не держат открытыми файловые
364 дескрипторы. Прежде вы легко могли выйти за пределы максимально
365 допустимого количества открытых файлов, если у вас было много пакетов в
369 Оптимизация: не закрывать файловый дескриптор файла который мы качаем.
370 Прежде каждый его кусочек приводил к дорогим open/close вызовам.
373 Скачиваемые в режиме online файлы теперь сохраняются с @file{.nock}
374 суффиксом (non-checksummed), ожидая пока либо @command{nncp-check}, либо
375 online демоны не выполнят проверку целостности.
378 Оптимизация: для файлов, скачивание которых не было продолжено, сразу же
379 вычисляет контрольная сумма, пропуская промежуточный @file{.nock} шаг.
382 Возможность хранения заголовков зашифрованных пакетов в @file{.hdr}
383 файлах, рядом с самими пакетами. Это может существенно повысить скорость
384 получения списка пакетов на файловых системах с большим размером блока.
389 @subsection Релиз 6.0.0
393 Журнал использует человеко-читаемый и легко обрабатываемый машиной
394 @url{https://www.gnu.org/software/recutils/, recfile} формат для своих
395 записей, вместо структурированных строчек RFC 3339. Старый формат
396 журналов не поддерживается @command{nncp-log}.
399 Работоспособность @option{-autotoss*} опции с @option{-inetd} режимом
400 @command{nncp-daemon}.
403 @option{when-tx-exists} опция вызова в конфигурационном файле позволяет
404 делать вызов только если имеются исходящие сообщения. Совмещённая с cron
405 выражением содержащим секунды, это можно использовать как возможность
406 вызова только при появлении исходящих пакетов.
409 @command{nncp-cronexpr} команда позволяет проверить корректность и
410 ожидаемый результат от указанного cron выражения.
415 @subsection Релиз 5.6.0
419 @option{-autotoss*} опции запускают tosser не после завершения вызова, а
420 во время него ежесекундно.
423 В @option{calls} секции конфигурации появились опции
424 @option{autotoss}, @option{autotoss-doseen},
425 @option{autotoss-nofile}, @option{autotoss-nofreq},
426 @option{autotoss-noexec}, @option{autotoss-notrns}.
427 Вы можете настраивать опции автоматического tosser для каждого вызова.
430 Использовать vendoring вместо переопределения @env{$GOPATH} во время
431 установки tarball, так как текущая минимальная версия Go это 1.12,
432 поддерживающая модули.
437 @subsection Релиз 5.5.1
441 Уважать @env{$BINDIR}, @env{$INFODIR} и @env{$DOCDIR} переменные окружения
442 в @file{config} во время установки.
447 @subsection Релиз 5.5.0
451 Исправления ошибок в @command{nncp-call(er)}/@command{nncp-daemon},
452 @command{nncp-bundle}, @command{nncp-stat} командах.
455 У команды @command{nncp-rm} появились @option{-dryrun} и @option{-older} опции.
458 У команды @command{nncp-exec} появились @option{-use-tmp} и
459 @option{-nocompress} опции. Несжатые пакеты не совместимы с предыдущими
463 У команд @command{nncp-call}, @command{nncp-caller} и @command{nncp-daemon}
464 появились @option{-autotoss*} опции для запуска tosser после завершения звонка.
467 Обновлены зависимые библиотеки. Минимальная требуемая версия Go 1.12.
472 @subsection Релиз 5.4.1
476 Исправлена ошибка с учётом @code{SENDMAIL} переменной при сборке.
481 @subsection Релиз 5.4.0
485 Обновлены зависимые библиотеки.
488 Система сборки переведена с Makefile-ов на @url{http://cr.yp.to/redo.html, redo}.
489 Это не должно повлиять на мейнтейнеров пакетов, так как минимальная
490 реализация @command{redo} включена в tarball.
495 @subsection Релиз 5.3.3
499 Больше различных проверок в коде на ошибки.
502 Обновлены зависимые библиотеки.
507 @subsection Релиз 5.3.2
511 Исправлена некорректная логика @option{onlinedeadline} timeout-а, при
512 котором соединение могло не учитывать факты прихода пакетов и обрывать
518 @subsection Релиз 5.3.1
522 Исправлена работоспособность @option{onlinedeadline} с адресами вызова
523 использующими внешние команды (@verb{#"|somecmd"#}).
526 @command{nncp-stat} имеет опцию @option{-pkt} показывающую информацию по
527 каждому пакету в spool.
532 @subsection Релиз 5.3.0
536 Сообщения прогресса содержат префикс, поясняющий выполняемое действие.
539 Исправлено не происходящее дополнение (padding) handshake сообщений.
542 Завершать все порождаемые в SP протоколе горутины, меньше утечек памяти.
545 SP протокол порождает меньше вызовов записей (соответственно, и TCP
549 Проверять @option{onlinedeadline} и @option{maxonlinetime} ежесекундно,
550 независимо от чтения из сокета (раз в 10 секунд в худшем случае).
553 Раз в минуту, если нет более никакого другого трафика, посылаются PING
554 пакеты в SP-соединении. Это позволит быстрее понимать что соединение
555 более не работоспособно.
558 @command{nncp-toss} использует lock-file для предотвращения
559 одновременной обработки зашифрованных пакетов.
564 @subsection Релиз 5.2.1
568 Исправлена обработка ошибки SP протокола, иногда вызывающая панику программы.
573 @subsection Релиз 5.2.0
577 Большинство команд по умолчанию показывают однострочный прогресс
578 выполнения операции. Появились @option{-progress}, @option{-noprogress}
579 опции командной строки, @option{noprogress} опция конфигурационного
583 Исправлен некорректный код возврата @command{nncp-check} команды,
584 который возвращал ошибку когда всё хорошо.
587 Проверка свободного места для пакетов, во время выполнения
588 @command{nncp-bundle -rx}.
593 @subsection Релиз 5.1.2
597 Исправлена @strong{критичная} уязвимость: аутентификация online нод
598 могла приводить к некорректной идентификации удалённой стороны, позволяя
599 скачивать чужие зашифрованные пакеты.
602 Исправлена ошибка: в новосозданных конфигурационных файлах, приватный
603 публичный ключ Noise были поменяны местами, что приводило к
604 невозможности online аутентификации нод.
607 Явная синхронизация (fsync) директорий для гарантированного
608 переименования файлов.
613 @subsection Релиз 5.1.1
617 Исправлена работоспособность @command{nncp-file} с @option{-chunked 0} опцией.
622 @subsection Релиз 5.1.0
626 @command{nncp-file} может отправлять директории, автоматически на лету
630 Во время создания исходящих сообщений проверяется наличие свободного
631 места на файловой системе.
634 @option{freq}, @option{freqminsize}, @option{freqchunked} опции
635 конфигурационного файла заменены на структуру
636 @option{freq: @{path: @dots{}, minsize: @dots{}, chunked: @dots{}@}}.
639 Добавлена @option{freq.maxsize} опция конфигурационного файл,
640 запрещающая ответ на файловый запрос больше заданного размера.
643 Возможность оповещения об успешно выполненных командах (exec) через
644 @option{notify.exec} опцию конфигурационного файла.
649 @subsection Релиз 5.0.0
653 @strong{Несовместимое} изменение формата конфигурационного файла:
654 YAML заменён на Hjson, из-за его гораздо большей простоты, без
655 заметной потери функционала и удобства.
658 @strong{Несовместимое} изменение формата простых пакетов. Работа со
659 старыми версиями не поддерживается. @code{zlib} сжатие заменено на
660 @code{Zstandard}, так как оно значительно быстрее и эффективнее, не
661 смотря на то, что версия библиотеки ещё не проверена временем.
664 Возможность соединяться с удалёнными нодами не только по TCP, но и через
665 pipe вызов сторонней команды.
668 @command{nncp-cfgnew} генерирует конфигурационный файл с множеством
669 комментариев. Можно использовать @option{-nocomments} опцию для старого
673 Дубликаты имён файлов имеют суффикс @file{.CTR}, вместо @file{CTR},
674 чтобы избежать возможных коллизий с @file{.nncp.chunkCTR}.
677 Возможность переопределить umask процесса через опцию конфигурационного
681 По умолчанию файлы и директории создаются с 666/777 правами доступа,
682 позволяя управлять ими @command{umask}-ом.
685 Обновлены зависимости.
688 Полное использование go модулей для управления зависимостями
689 (используется @code{go.cypherpunks.ru/nncp/v5} namespace).
692 Отмена автоматического использования более новых версий GNU GPL
693 (лицензия проекта GNU GPLv3-только).
698 @subsection Релиз 4.1
700 @item Восстановлена работоспособность на GNU/Linux системах и Go версии 1.10.
704 @subsection Релиз 4.0
708 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов:
709 используется AEAD режим шифрования с 128 КиБ блоками, так как раньше
710 @command{nncp-toss} не проверял MAC зашифрованного пакета прежде чем
711 отсылать дешифрованные данные внешней команде. Старые версии не
715 Проверка доступного места перед копированием во время работы
716 @command{nncp-xfer}, @command{nncp-daemon}, @command{nncp-call(er)}.
719 @command{nncp-call} имеет возможность только показывать список пакетов
720 на удалённой машине, без их передачи.
723 @command{nncp-call} имеет возможность передавать только чётко указанные пакеты.
726 Восстановлена работоспособность @option{xxrate} настройки в
727 @option{calls} секции конфигурационного файла.
730 Зависимые библиотеки обновлены.
733 Небольшие исправления ошибок.
736 Начало использования @code{go.mod} подсистемы.
741 @subsection Релиз 3.4
743 @item @command{nncp-daemon} может быть запущен как @command{inetd}-служба.
747 @subsection Релиз 3.3
751 @command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller}
752 проверяют существование @file{.seen} файла и расценивают его как то, что
753 файл уже был скачан. Возможно передача данных была осуществлена
754 сторонним способом и удалённая сторона должна быть оповещена об этом.
757 Если более высокоприоритетный пакет попадает в спул, то
758 @command{nncp-daemon} добавит его в очередь отправки первым, прерывая
759 низкоприоритетные передачи.
762 К средствам связанным с online-соединениями (@command{nncp-daemon},
763 @command{nncp-call}, @command{nncp-caller}) добавлен простой
764 ограничитель скорости.
767 Возможность задания приоритета символьными обозначениями:
768 @verb{|NORMAL|}, @verb{|BULK+10|}, @verb{|PRIORITY-5|}, итд.
771 Изменены значения приоритетов по-умолчанию:
772 для @command{nncp-exec} с 64 на 96,
773 для @command{nncp-freq} с 64 на 160,
774 для @command{nncp-file} с 196 на 224.
779 @subsection Релиз 3.2
782 @strong{Несовместимое} изменение формата @emph{bundle} архивов и
783 работоспособность @command{nncp-bundle} команды с Go 1.10+. Bundle
784 должен быть корректным tar архивом, но Go 1.9 делал его недействительным
785 из-за длинных путей внутри. NNCP нечаянно был зависим от этой баги.
786 Явное добавление @file{NNCP/} директории в архив восстанавливает
787 работоспособность с корректными tar архивами.
791 @subsection Релиз 3.1
794 Возможность отключать пересылку через промежуточные ноды используя
795 @verb{|-via -|} опцию командной строки.
799 @subsection Релиз 3.0
803 @strong{Несовместимое} изменение формата простых пакетов. Работа со
804 старыми версиями не поддерживается.
807 Добавлена возможность удалённого исполнения команд, путём
808 конфигурирования @option{exec} опции конфигурационного файла и
809 использования команды @command{nncp-exec}:
812 Команда @command{nncp-mail} заменена более гибкой и широкой
813 @command{nncp-exec}. Вместо вызова @verb{|nncp-mail NODE RECIPIENT|}
814 нужно использовать @verb{|nncp-exec NODE sendmail RECIPIENT|}.
816 @option{sendmail} опция конфигурационного файла заменена на более гибкую
817 @option{exec}. @verb{|sendmail: [...]|} нужно заменить на @verb{|exec:
822 Возможность переопределить @option{via} опцию конфигурации для целевого
823 узла через @option{-via} опцию командной строки для следующих команд:
824 @command{nncp-file}, @command{nncp-freq}, @command{nncp-exec}.
827 Chunked файлы, меньшего размера чем указанный chunk, отправляются просто
831 Exec команды вызываются с дополнительными переменными окружения
832 @env{$NNCP_NICE} и @env{$NNCP_SELF}.
835 Отправляемые файлы в ответ на запрос имеют приоритет указанный в запросе.
836 Указать их желаемый приоритет во время вызова @command{nncp-freq} можно
837 аргументом @option{-replynice}.
840 Команде @command{nncp-toss} можно сказать не обрабатывать определённые
841 типы пакетов, за счёт опций @option{-nofile}, @option{-nofreq},
842 @option{-noexec}, @option{-notrns}.
845 По-умолчанию @command{nncp-file} команда для
846 @option{-minsize}/@option{-chunked} опций использует
847 @option{FreqMinSize}/@option{FreqChunked} из конфигурационного файла.
848 Это можно отключить указав нулевое значение.
853 @subsection Релиз 2.0
857 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов.
858 Работа со старыми версиями не поддерживается.
861 Алгоритм шифрования Twofish заменён на ChaCha20. Он намного быстрее.
862 Одним криптографическим примитивом меньше.
865 HKDF-BLAKE2b-256 KDF алгоритм заменён на BLAKE2Xb XOF. Ещё одним
866 криптографическим примитивом меньше (предполагая, что BLAKE2X
867 практически идентичен BLAKE2).
872 @subsection Релиз 1.0
876 @strong{Несовместимое} изменение формата зашифрованных пакетов. Работа
877 со старыми версиями не поддерживается.
880 @command{nncp-bundle} команда может создавать потоки зашифрованных
881 пакетов или потреблять их. Это полезно когда речь идёт о
882 @code{stdin}/@code{stdout} методах передачи (например запись на CD-ROM
883 без создания промежуточного подготовленного ISO образа или работа с
884 ленточными накопителями).
887 @command{nncp-toss} команда может создавать @file{.seen} файлы,
888 предотвращая приём дублированных пакетов.
891 В команде @command{nncp-call} разрешается иметь только одного
892 обработчика контрольной суммы в фоне. Это полезно когда тысячи маленьких
893 входящих пакетов могут создать много горутин.
896 Возможность переопределить путь до spool директории и файла журнала
897 через аргумент командной строки или переменную окружения.
900 @command{nncp-rm} команда может удалять все исходящие/входящие,
901 @file{.seen}, @file{.part}, @file{.lock} и временные файлы.
906 @subsection Релиз 0.12
908 @item Команда sendmail вызывается с @env{$NNCP_SENDER} переменной окружения.
912 @subsection Релиз 0.11
914 @item Вывод команды @command{nncp-stat} отсортирован по имени ноды.
918 @subsection Релиз 0.10
921 @file{DST} аргумент @command{nncp-freq} команды теперь опционален.
922 По-умолчанию будет подставлен последний элемент @file{SRC} пути.
926 @subsection Релиз 0.9
929 Исправлена обработка @option{-rx}/@option{-tx} опций @command{nncp-call}
930 команды. Они игнорировались.
934 @subsection Релиз 0.8
937 Небольшое исправление ошибки в команде @command{nncp-file}, где опция
938 @option{-minsize} для передачи без разбиения на части была в байтах, а
943 @subsection Релиз 0.7
947 Возможность предоставлять данные для @command{nncp-file} через
948 стандартный ввод, используя временный зашифрованный файл для этого.
951 Появилась возможность передачи файлов разбитых на части, с сопутствующей
952 @command{nncp-reass} командой и @option{freqchunked} опцией
953 конфигурационного файла. Полезно для передачи больших файлов через
954 маленькие устройства хранения.
957 @option{freqminsize} опция конфигурационного файла, аналогичная
961 Опция @option{-force} команды @command{nncp-xfer} переименована в
962 @option{-mkdir} для ясности.
965 Опция @option{-minsize} задаётся в KiB, а не байтах, для удобства.
968 Команда @command{nncp-newcfg} переименована в @command{nncp-cfgnew},
969 а @command{nncp-mincfg} в @command{nncp-cfgmin}, для того чтобы они
970 имели общий префикс и были сгруппированы для удобства.
973 Появилась команда @command{nncp-cfgenc}, позволяющая
974 шифровать/дешифровать конфигурационный файл, чтобы безопасно его хранить
975 без использования OpenPGP или других подобных инструментов.
978 Обновлены зависимые криптографические библиотеки.
983 @subsection Релиз 0.6
985 @item Появилась небольшая команда @command{nncp-rm}.
986 @item Обновлены зависимые криптографические библиотеки.
990 @subsection Релиз 0.5
993 Тривиальное небольшое исправление в значениях приоритетов по-умолчанию в
994 @command{nncp-file} и @command{nncp-freq} командах.
998 @subsection Релиз 0.4
1002 Небольшое исправление в @command{nncp-call}, @command{nncp-caller},
1003 @command{nncp-daemon}: иногда они могли падать с segmentation fault
1004 ошибкой (данные не терялись).
1007 @command{nncp-newnode} переименована в @command{nncp-newcfg} --
1008 это короче и удобнее для использования.
1011 Появилась команда @command{nncp-mincfg}: вспомогательная утилита
1012 позволяющая создать минималистичный урезанный конфигурационный файл без
1013 приватных ключей, что полезно во время использования @command{nncp-xfer}.
1018 @subsection Релиз 0.3
1020 @item Исправлена совместимость с Go 1.6.
1024 @subsection Релиз 0.2
1028 @strong{Несовместимое} изменение формата пакета (магическое число тоже
1029 изменено): поле размера пакета шифруется и не посылается в открытом виде.
1032 @option{-minsize} опция даёт возможность автоматически дополнять
1033 исходящие пакеты до указанного минимального размера.
1036 @command{nncp-daemon} и @command{nncp-call}/@command{nncp-caller} всегда
1037 в фоне проверяют появление исходящих @emph{tx} пакетов пока подключены.
1038 Удалённая сторона сразу же оповещается об этом.
1041 @option{-onlinedeadline} опция даёт возможность выставления timeout-а на
1042 неактивность в online соединении, когда оно должно быть отключено. Она
1043 может быть использована для сохранения соединения на долгое время.
1046 @option{-maxonlinetime} опция даёт возможность указания максимального
1047 возможного времени жизни соединения.
1050 Появилась @command{nncp-caller} команда: клиент TCP-демона работающий по
1054 @command{nncp-pkt} команда может разжимать данные.