5 @subsection Релиз 8.5.0
9 Исправлена работоспособность @command{nncp-bundle}.
12 По ошибке @option{-mcd-wait} опция у @command{nncp-call} была включена
18 @subsection Релиз 8.4.0
22 Имена интерфейсов относящихся к multicast (@code{mcd-listen} и
23 @code{mcd-send} опции конфигурации) теперь являются регулярными
24 выражениями. По умолчанию @command{nncp-cfgnew} не комментирует
25 их теперь и прописывает @code{.*} имя интерфейса.
28 У @command{nncp-call} команды появился @option{-mcd-wait} аргумент,
29 позволяющий дожидаться multicast сообщения об адресе ноды.
32 @command{nncp-file} команда пропускает всё что не является регулярным
33 файлом или директорией во время создания pax-архива.
38 @subsection Релиз 8.3.0
42 Исправлена возможность сборки на 32-бит системах.
47 @subsection Релиз 8.2.0
51 Yggdrasil использует IPv6+TCP сетевой стэк написанный полностью на Go,
52 вместо голого μTP транспортного протокола, делая возможным работу в
53 качестве обычного TCP сервера внутри overlay сети.
56 Конфигурационные строки Yggdrasil вида @code{prv;bind1,bind2;pub...}
57 заменены на URL-подобные (@code{yggdrasils://PRV?bind=BIND1&bind=BIND2&pub=PUB}).
60 Возможно передавать параметры Yggdrasil конфигурации связанные с multicast.
63 @command{nncp-daemon} может слушать одновременно и на TCP и на
64 Yggdrasil-управляемом сокетах.
67 Слушание на endpoint сокете для пиринга в @command{nncp-daemon}
68 опционально -- вы можете быть доступны и через связь с peer-ами.
73 @subsection Релиз 8.1.0
77 @command{nncp-cfgdir} команда не требует обязательного наличия
78 @code{self} секции конфигурационного файла.
81 Появилась возможность работы в качестве клиента overlay сети Yggdrasil,
82 используя online протокол поверх неё.
87 @subsection Релиз 8.0.2
91 Исправлена возможность отправки мультивещательных пакетов.
96 @subsection Релиз 8.0.1
100 Исправлено некорректное вычисление @code{freq.chunked} значения, при
101 отсутствии которого всё равно форсированно включалась chunked передача.
104 Исправлено некорректное вычисление значения полного размера файла в
110 @subsection Релиз 8.0.0
114 @strong{Несовместимое} изменение формата зашифрованных пакетов: размеры
115 полезной нагрузки и дополнения посылаются прямо внутри зашифрованного
116 потока. Это даёт возможность потоково создавать шифрованные пакеты, без
117 знания размеров заранее, без создания временного файла или буферизации в
121 Производится корректная проверка дополнения зашифрованного пакета. Это
122 не критичная проблема, но прежде ни размер, ни значение дополнения не
123 были аутентифицированы, позволяя циклично откусывать по байту с конца и
124 узнавать размер полезной нагрузки, наблюдая за реакцией по обработке
125 такого зашифрованного пакета.
128 @command{nncp-exec} больше не имеет @option{-use-tmp} опции, из-за
129 совместимого с потоковой работой формата зашифрованных пакетов.
132 У @command{nncp-file} и @command{nncp-exec} команд появилась опция
133 @option{-maxsize}, ограничивающая максимальный результирующий размер
134 зашифрованного пакета (возвращая ошибку если он превышен). Может быть
135 полезно, так как размер полезной нагрузки может быть неизвестен заранее.
140 @subsection Релиз 7.7.0
144 Экспериментальная поддержка @code{kqueue} и @code{inotify} оповещений об
145 изменениях в spool директориях, для сокращения накладных расходов на их
149 @file{.seen} и @file{.hdr} файлы находятся в @file{seen/} и @file{hdr/}
150 поддиректориях теперь, дабы ускорить сканирование spool областей.
151 Необходима миграция текущих файлов:
154 $ find $NNCPSPOOL -type f -name "*.hdr" -exec rm @{@} +
156 $ find $NNCPSPOOL -type d -name rx | while read rx ; do
159 find . -type f -name "*.seen" | while read fn ; do
160 mv $fn seen/$@{fn%.seen@}
164 $ find $NNCPSPOOL -type d -name area | while read area ; do
165 find $area -type f -name "*.seen" | while read fn ; do
174 @subsection Релиз 7.6.0
178 Журналирование может производиться в назначенный открытый файловый
179 дескриптор (@env{$NNCPLOG=FD:5} например).
180 Что дружелюбно к использованию под @command{daemontools}.
183 Добавлены дополнительные проверки наличия публичных ключей в
184 конфигурационном файле, предотвращающие падения некоторых команд.
189 @subsection Релиз 7.5.1
193 NNCP собирается на NetBSD.
198 @subsection Релиз 7.5.0
202 @command{nncp-daemon} соблюдает UCSPI-TCP интерфейс, благодаря чему в
203 журнале будет присутствовать адрес удалённой системы (при запуске под
204 совместимой утилитой). Желательно применять @option{-ucspi} опцию вместо
208 @command{nncp-call} может быть UCSPI-TCP клиентом, используя
209 @option{-ucspi} опцию.
212 Не выходить если не получается слушать на каком-либо MCD сетевом
213 интерфейсе -- только предупреждать об ошибке.
218 @subsection Релиз 7.4.0
222 Исправлена работоспособность MCD при одновременном использовании
223 @command{nncp-daemon} и @command{nncp-caller}.
228 @subsection Релиз 7.3.2
232 @command{hjson-cli} утилита теперь собирается в vendor-режиме.
237 @subsection Релиз 7.3.1
241 Исправлена проблема с возможно остающимся открытым файловым
242 дескриптором в online командах.
245 Существенно снижено потребление памяти MTH хэширования.
250 @subsection Релиз 7.3.0
254 Поправлены проблемы работоспособности на 32-бит системах с большими файлами.
257 Возможность использовать конфигурацию в виде директории с набором
258 файлов. Появилась команда @command{nncp-cfgdir}.
263 @subsection Релиз 7.2.1
267 Небольшие оптимизации в online командах.
272 @subsection Релиз 7.2.0
276 Появилась @command{nncp-trns} команда для ручного создания транзитных пакетов.
279 Если у целевой ноды транзитного пакета задан @option{via} маршрут, то
280 использовать его, а не игнорировать.
283 Не отправлять multicast пакет оригинатору сообщения, очевидно точно
284 видящего свой собственный пакет.
287 Намного меньшее потребление памяти во время MTH хэширования когда
288 смещение равно нулю: когда пакет не является докачиванием, а например
289 проверяется @command{nncp-check} командой.
294 @subsection Релиз 7.1.1
298 Исправлено падение при fsync директорий после создания @file{.seen} файлов.
303 @subsection Релиз 7.1.0
307 Появилась возможность мультивещательной (multicast) рассылки пакетов.
308 Реализовано всего лишь дополнительным типом простых пакетов и изменением
309 @command{nncp-toss}, @command{nncp-file} и @command{nncp-exec} команд.
312 Исправлена работоспособность @command{nncp-file} и @command{nncp-exec}
313 команд использующих временный файл (stdin и @option{-use-tmp}).
316 Исправлен пропадающий плохой код возврата в @command{nncp-exec} команде.
319 Исправлено некорректное генерирование @file{.hdr} при использовании
323 У @command{nncp-rm} команды появилась @option{-all} опция, применяемая
327 У @command{nncp-check} команды появилась @option{-cycle} опция, вводящая
328 проверку в бесконечный цикл.
331 У @command{nncp-rm} команды можно указывать alias-ы имён нод.
334 @command{nncp-pkt} может парсить @file{.hdr} файлы.
339 @subsection Релиз 7.0.0
343 Минимальная требуемая версия Go 1.13.
346 Хэширование с BLAKE3 на базе деревьев Меркле (Merkle Tree Hashing, MTH)
347 используется вместо BLAKE2b. Из-за этого, обратно @strong{несовместимое}
348 изменение формата шифрованных файлов (всего что находится в spool
349 области) и формата @file{.meta} файла при chunked передаче.
351 Текущая реализация далека от оптимальной: в ней нет распараллеливания
352 вычислений и имеет повышенное потребление памяти: около 512 KiB на
353 каждый 1 GiB данных файла. Будущая оптимизация производительности и
354 потребления памяти не должна привести к изменению формата пакетов. Но
355 это всё равно в несколько раз быстрее BLAKE2b.
358 Из-за использования MTH, докачиваемые в online режиме файлы потребуют
359 чтения с диска только предшествующей части, а не полностью всего файла,
363 Добавлена @command{nncp-hash} утилита для вычисления MTH хэша файла.
366 В шифрованных пакетах BLAKE2 KDF и XOF функции заменены на BLAKE3. Ещё
367 уменьшая количество примитивов. А также заголовок шифрованного файла
368 теперь является ассоциированными данными при шифровании.
371 MultiCast Discovery использует
372 @verb{|ff02::4e4e:4350|} адрес вместо @verb{|ff02::1|}.
375 @command{nncp-cfgenc} ошибочно трижды спрашивал парольную фразу при шифровании.
378 @command{nncp-stat} выводит сводку о частично скачанных пакетах.
381 Обновлены зависимые библиотеки.
386 @subsection Релиз 6.6.0
390 @command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}
391 ожидают завершения всех процессов фоновой проверки контрольных сумм,
392 после того как соединение закрыто.
395 Добавлена возможность определения адреса через multicast оповещение в
396 локальной сети, так называемый MCD (MultiCast Discovery).
401 @subsection Релиз 6.5.0
405 Исправлено падение в @command{nncp-daemon} когда SP рукопожатие не было успешно.
408 Исправлено возможное игнорирование плохого кода возврата автоматического tosser.
411 Исправлена гонка при закрытии файловых дескрипторов во время завершения
412 работы online протокола, которая могла привести к ошибке записи
413 принятого фрагмента пакета.
416 Убирать показ прогресса передачи пакетов когда вызов уже завершён в
417 @command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}.
422 @subsection Релиз 6.4.0
426 Исправлена возможная гонка в online протоколе, приводящая к падению
432 @subsection Релиз 6.3.0
436 Исправлено возможное падение программы во время показа прогресса online
442 @subsection Релиз 6.2.1
446 В трёх местах сообщений журналов по ошибке остались лишние @code{%s}.
451 @subsection Релиз 6.2.0
455 Возвращена работоспособность @option{-autotoss*} опций @command{nncp-caller}.
458 Очередной рефакторинг и упрощение системы журналирования.
459 Не должно быть видимых изменений для конечного пользователя.
464 @subsection Релиз 6.1.0
468 Оптимизация: большинство команд теперь не держат открытыми файловые
469 дескрипторы. Прежде вы легко могли выйти за пределы максимально
470 допустимого количества открытых файлов, если у вас было много пакетов в
474 Оптимизация: не закрывать файловый дескриптор файла который мы качаем.
475 Прежде каждый его кусочек приводил к дорогим open/close вызовам.
478 Скачиваемые в режиме online файлы теперь сохраняются с @file{.nock}
479 суффиксом (non-checksummed), ожидая пока либо @command{nncp-check}, либо
480 online демоны не выполнят проверку целостности.
483 Оптимизация: для файлов, скачивание которых не было продолжено, сразу же
484 вычисляет контрольная сумма, пропуская промежуточный @file{.nock} шаг.
487 Возможность хранения заголовков зашифрованных пакетов в @file{.hdr}
488 файлах, рядом с самими пакетами. Это может существенно повысить скорость
489 получения списка пакетов на файловых системах с большим размером блока.
494 @subsection Релиз 6.0.0
498 Журнал использует человеко-читаемый и легко обрабатываемый машиной
499 @url{https://www.gnu.org/software/recutils/, recfile} формат для своих
500 записей, вместо структурированных строчек RFC 3339. Старый формат
501 журналов не поддерживается @command{nncp-log}.
504 Работоспособность @option{-autotoss*} опции с @option{-inetd} режимом
505 @command{nncp-daemon}.
508 @option{when-tx-exists} опция вызова в конфигурационном файле позволяет
509 делать вызов только если имеются исходящие сообщения. Совмещённая с cron
510 выражением содержащим секунды, это можно использовать как возможность
511 вызова только при появлении исходящих пакетов.
514 @command{nncp-cronexpr} команда позволяет проверить корректность и
515 ожидаемый результат от указанного cron выражения.
520 @subsection Релиз 5.6.0
524 @option{-autotoss*} опции запускают tosser не после завершения вызова, а
525 во время него ежесекундно.
528 В @option{calls} секции конфигурации появились опции
529 @option{autotoss}, @option{autotoss-doseen},
530 @option{autotoss-nofile}, @option{autotoss-nofreq},
531 @option{autotoss-noexec}, @option{autotoss-notrns}.
532 Вы можете настраивать опции автоматического tosser для каждого вызова.
535 Использовать vendoring вместо переопределения @env{$GOPATH} во время
536 установки tarball, так как текущая минимальная версия Go это 1.12,
537 поддерживающая модули.
542 @subsection Релиз 5.5.1
546 Уважать @env{$BINDIR}, @env{$INFODIR} и @env{$DOCDIR} переменные окружения
547 в @file{config} во время установки.
552 @subsection Релиз 5.5.0
556 Исправления ошибок в @command{nncp-call(er)}/@command{nncp-daemon},
557 @command{nncp-bundle}, @command{nncp-stat} командах.
560 У команды @command{nncp-rm} появились @option{-dryrun} и @option{-older} опции.
563 У команды @command{nncp-exec} появились @option{-use-tmp} и
564 @option{-nocompress} опции. Несжатые пакеты не совместимы с предыдущими
568 У команд @command{nncp-call}, @command{nncp-caller} и @command{nncp-daemon}
569 появились @option{-autotoss*} опции для запуска tosser после завершения звонка.
572 Обновлены зависимые библиотеки. Минимальная требуемая версия Go 1.12.
577 @subsection Релиз 5.4.1
581 Исправлена ошибка с учётом @code{SENDMAIL} переменной при сборке.
586 @subsection Релиз 5.4.0
590 Обновлены зависимые библиотеки.
593 Система сборки переведена с Makefile-ов на @url{http://cr.yp.to/redo.html, redo}.
594 Это не должно повлиять на мейнтейнеров пакетов, так как минимальная
595 реализация @command{redo} включена в tarball.
600 @subsection Релиз 5.3.3
604 Больше различных проверок в коде на ошибки.
607 Обновлены зависимые библиотеки.
612 @subsection Релиз 5.3.2
616 Исправлена некорректная логика @option{onlinedeadline} timeout-а, при
617 котором соединение могло не учитывать факты прихода пакетов и обрывать
623 @subsection Релиз 5.3.1
627 Исправлена работоспособность @option{onlinedeadline} с адресами вызова
628 использующими внешние команды (@verb{#"|somecmd"#}).
631 @command{nncp-stat} имеет опцию @option{-pkt} показывающую информацию по
632 каждому пакету в spool.
637 @subsection Релиз 5.3.0
641 Сообщения прогресса содержат префикс, поясняющий выполняемое действие.
644 Исправлено не происходящее дополнение (padding) handshake сообщений.
647 Завершать все порождаемые в SP протоколе горутины, меньше утечек памяти.
650 SP протокол порождает меньше вызовов записей (соответственно, и TCP
654 Проверять @option{onlinedeadline} и @option{maxonlinetime} ежесекундно,
655 независимо от чтения из сокета (раз в 10 секунд в худшем случае).
658 Раз в минуту, если нет более никакого другого трафика, посылаются PING
659 пакеты в SP-соединении. Это позволит быстрее понимать что соединение
660 более не работоспособно.
663 @command{nncp-toss} использует lock-file для предотвращения
664 одновременной обработки зашифрованных пакетов.
669 @subsection Релиз 5.2.1
673 Исправлена обработка ошибки SP протокола, иногда вызывающая панику программы.
678 @subsection Релиз 5.2.0
682 Большинство команд по умолчанию показывают однострочный прогресс
683 выполнения операции. Появились @option{-progress}, @option{-noprogress}
684 опции командной строки, @option{noprogress} опция конфигурационного
688 Исправлен некорректный код возврата @command{nncp-check} команды,
689 который возвращал ошибку когда всё хорошо.
692 Проверка свободного места для пакетов, во время выполнения
693 @command{nncp-bundle -rx}.
698 @subsection Релиз 5.1.2
702 Исправлена @strong{критичная} уязвимость: аутентификация online нод
703 могла приводить к некорректной идентификации удалённой стороны, позволяя
704 скачивать чужие зашифрованные пакеты.
707 Исправлена ошибка: в новосозданных конфигурационных файлах, приватный
708 публичный ключ Noise были поменяны местами, что приводило к
709 невозможности online аутентификации нод.
712 Явная синхронизация (fsync) директорий для гарантированного
713 переименования файлов.
718 @subsection Релиз 5.1.1
722 Исправлена работоспособность @command{nncp-file} с @option{-chunked 0} опцией.
727 @subsection Релиз 5.1.0
731 @command{nncp-file} может отправлять директории, автоматически на лету
735 Во время создания исходящих сообщений проверяется наличие свободного
736 места на файловой системе.
739 @option{freq}, @option{freqminsize}, @option{freqchunked} опции
740 конфигурационного файла заменены на структуру
741 @option{freq: @{path: @dots{}, minsize: @dots{}, chunked: @dots{}@}}.
744 Добавлена @option{freq.maxsize} опция конфигурационного файл,
745 запрещающая ответ на файловый запрос больше заданного размера.
748 Возможность оповещения об успешно выполненных командах (exec) через
749 @option{notify.exec} опцию конфигурационного файла.
754 @subsection Релиз 5.0.0
758 @strong{Несовместимое} изменение формата конфигурационного файла:
759 YAML заменён на Hjson, из-за его гораздо большей простоты, без
760 заметной потери функционала и удобства.
763 @strong{Несовместимое} изменение формата простых пакетов. Работа со
764 старыми версиями не поддерживается. @code{zlib} сжатие заменено на
765 @code{Zstandard}, так как оно значительно быстрее и эффективнее, не
766 смотря на то, что версия библиотеки ещё не проверена временем.
769 Возможность соединяться с удалёнными нодами не только по TCP, но и через
770 pipe вызов сторонней команды.
773 @command{nncp-cfgnew} генерирует конфигурационный файл с множеством
774 комментариев. Можно использовать @option{-nocomments} опцию для старого
778 Дубликаты имён файлов имеют суффикс @file{.CTR}, вместо @file{CTR},
779 чтобы избежать возможных коллизий с @file{.nncp.chunkCTR}.
782 Возможность переопределить umask процесса через опцию конфигурационного
786 По умолчанию файлы и директории создаются с 666/777 правами доступа,
787 позволяя управлять ими @command{umask}-ом.
790 Обновлены зависимости.
793 Полное использование go модулей для управления зависимостями
794 (используется @code{go.cypherpunks.ru/nncp/v5} namespace).
797 Отмена автоматического использования более новых версий GNU GPL
798 (лицензия проекта GNU GPLv3-только).
803 @subsection Релиз 4.1
805 @item Восстановлена работоспособность на GNU/Linux системах и Go версии 1.10.
809 @subsection Релиз 4.0
813 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов:
814 используется AEAD режим шифрования с 128 КиБ блоками, так как раньше
815 @command{nncp-toss} не проверял MAC зашифрованного пакета прежде чем
816 отсылать дешифрованные данные внешней команде. Старые версии не
820 Проверка доступного места перед копированием во время работы
821 @command{nncp-xfer}, @command{nncp-daemon}, @command{nncp-call(er)}.
824 @command{nncp-call} имеет возможность только показывать список пакетов
825 на удалённой машине, без их передачи.
828 @command{nncp-call} имеет возможность передавать только чётко указанные пакеты.
831 Восстановлена работоспособность @option{xxrate} настройки в
832 @option{calls} секции конфигурационного файла.
835 Зависимые библиотеки обновлены.
838 Небольшие исправления ошибок.
841 Начало использования @code{go.mod} подсистемы.
846 @subsection Релиз 3.4
848 @item @command{nncp-daemon} может быть запущен как @command{inetd}-служба.
852 @subsection Релиз 3.3
856 @command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller}
857 проверяют существование @file{.seen} файла и расценивают его как то, что
858 файл уже был скачан. Возможно передача данных была осуществлена
859 сторонним способом и удалённая сторона должна быть оповещена об этом.
862 Если более высокоприоритетный пакет попадает в спул, то
863 @command{nncp-daemon} добавит его в очередь отправки первым, прерывая
864 низкоприоритетные передачи.
867 К средствам связанным с online-соединениями (@command{nncp-daemon},
868 @command{nncp-call}, @command{nncp-caller}) добавлен простой
869 ограничитель скорости.
872 Возможность задания приоритета символьными обозначениями:
873 @verb{|NORMAL|}, @verb{|BULK+10|}, @verb{|PRIORITY-5|}, итд.
876 Изменены значения приоритетов по-умолчанию:
877 для @command{nncp-exec} с 64 на 96,
878 для @command{nncp-freq} с 64 на 160,
879 для @command{nncp-file} с 196 на 224.
884 @subsection Релиз 3.2
887 @strong{Несовместимое} изменение формата @emph{bundle} архивов и
888 работоспособность @command{nncp-bundle} команды с Go 1.10+. Bundle
889 должен быть корректным tar архивом, но Go 1.9 делал его недействительным
890 из-за длинных путей внутри. NNCP нечаянно был зависим от этой баги.
891 Явное добавление @file{NNCP/} директории в архив восстанавливает
892 работоспособность с корректными tar архивами.
896 @subsection Релиз 3.1
899 Возможность отключать пересылку через промежуточные ноды используя
900 @verb{|-via -|} опцию командной строки.
904 @subsection Релиз 3.0
908 @strong{Несовместимое} изменение формата простых пакетов. Работа со
909 старыми версиями не поддерживается.
912 Добавлена возможность удалённого исполнения команд, путём
913 конфигурирования @option{exec} опции конфигурационного файла и
914 использования команды @command{nncp-exec}:
917 Команда @command{nncp-mail} заменена более гибкой и широкой
918 @command{nncp-exec}. Вместо вызова @verb{|nncp-mail NODE RECIPIENT|}
919 нужно использовать @verb{|nncp-exec NODE sendmail RECIPIENT|}.
921 @option{sendmail} опция конфигурационного файла заменена на более гибкую
922 @option{exec}. @verb{|sendmail: [...]|} нужно заменить на @verb{|exec:
927 Возможность переопределить @option{via} опцию конфигурации для целевого
928 узла через @option{-via} опцию командной строки для следующих команд:
929 @command{nncp-file}, @command{nncp-freq}, @command{nncp-exec}.
932 Chunked файлы, меньшего размера чем указанный chunk, отправляются просто
936 Exec команды вызываются с дополнительными переменными окружения
937 @env{$NNCP_NICE} и @env{$NNCP_SELF}.
940 Отправляемые файлы в ответ на запрос имеют приоритет указанный в запросе.
941 Указать их желаемый приоритет во время вызова @command{nncp-freq} можно
942 аргументом @option{-replynice}.
945 Команде @command{nncp-toss} можно сказать не обрабатывать определённые
946 типы пакетов, за счёт опций @option{-nofile}, @option{-nofreq},
947 @option{-noexec}, @option{-notrns}.
950 По-умолчанию @command{nncp-file} команда для
951 @option{-minsize}/@option{-chunked} опций использует
952 @option{FreqMinSize}/@option{FreqChunked} из конфигурационного файла.
953 Это можно отключить указав нулевое значение.
958 @subsection Релиз 2.0
962 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов.
963 Работа со старыми версиями не поддерживается.
966 Алгоритм шифрования Twofish заменён на ChaCha20. Он намного быстрее.
967 Одним криптографическим примитивом меньше.
970 HKDF-BLAKE2b-256 KDF алгоритм заменён на BLAKE2Xb XOF. Ещё одним
971 криптографическим примитивом меньше (предполагая, что BLAKE2X
972 практически идентичен BLAKE2).
977 @subsection Релиз 1.0
981 @strong{Несовместимое} изменение формата зашифрованных пакетов. Работа
982 со старыми версиями не поддерживается.
985 @command{nncp-bundle} команда может создавать потоки зашифрованных
986 пакетов или потреблять их. Это полезно когда речь идёт о
987 @code{stdin}/@code{stdout} методах передачи (например запись на CD-ROM
988 без создания промежуточного подготовленного ISO образа или работа с
989 ленточными накопителями).
992 @command{nncp-toss} команда может создавать @file{.seen} файлы,
993 предотвращая приём дублированных пакетов.
996 В команде @command{nncp-call} разрешается иметь только одного
997 обработчика контрольной суммы в фоне. Это полезно когда тысячи маленьких
998 входящих пакетов могут создать много горутин.
1001 Возможность переопределить путь до spool директории и файла журнала
1002 через аргумент командной строки или переменную окружения.
1005 @command{nncp-rm} команда может удалять все исходящие/входящие,
1006 @file{.seen}, @file{.part}, @file{.lock} и временные файлы.
1011 @subsection Релиз 0.12
1013 @item Команда sendmail вызывается с @env{$NNCP_SENDER} переменной окружения.
1017 @subsection Релиз 0.11
1019 @item Вывод команды @command{nncp-stat} отсортирован по имени ноды.
1023 @subsection Релиз 0.10
1026 @file{DST} аргумент @command{nncp-freq} команды теперь опционален.
1027 По-умолчанию будет подставлен последний элемент @file{SRC} пути.
1031 @subsection Релиз 0.9
1034 Исправлена обработка @option{-rx}/@option{-tx} опций @command{nncp-call}
1035 команды. Они игнорировались.
1039 @subsection Релиз 0.8
1042 Небольшое исправление ошибки в команде @command{nncp-file}, где опция
1043 @option{-minsize} для передачи без разбиения на части была в байтах, а
1048 @subsection Релиз 0.7
1052 Возможность предоставлять данные для @command{nncp-file} через
1053 стандартный ввод, используя временный зашифрованный файл для этого.
1056 Появилась возможность передачи файлов разбитых на части, с сопутствующей
1057 @command{nncp-reass} командой и @option{freqchunked} опцией
1058 конфигурационного файла. Полезно для передачи больших файлов через
1059 маленькие устройства хранения.
1062 @option{freqminsize} опция конфигурационного файла, аналогичная
1066 Опция @option{-force} команды @command{nncp-xfer} переименована в
1067 @option{-mkdir} для ясности.
1070 Опция @option{-minsize} задаётся в KiB, а не байтах, для удобства.
1073 Команда @command{nncp-newcfg} переименована в @command{nncp-cfgnew},
1074 а @command{nncp-mincfg} в @command{nncp-cfgmin}, для того чтобы они
1075 имели общий префикс и были сгруппированы для удобства.
1078 Появилась команда @command{nncp-cfgenc}, позволяющая
1079 шифровать/дешифровать конфигурационный файл, чтобы безопасно его хранить
1080 без использования OpenPGP или других подобных инструментов.
1083 Обновлены зависимые криптографические библиотеки.
1088 @subsection Релиз 0.6
1090 @item Появилась небольшая команда @command{nncp-rm}.
1091 @item Обновлены зависимые криптографические библиотеки.
1095 @subsection Релиз 0.5
1098 Тривиальное небольшое исправление в значениях приоритетов по-умолчанию в
1099 @command{nncp-file} и @command{nncp-freq} командах.
1103 @subsection Релиз 0.4
1107 Небольшое исправление в @command{nncp-call}, @command{nncp-caller},
1108 @command{nncp-daemon}: иногда они могли падать с segmentation fault
1109 ошибкой (данные не терялись).
1112 @command{nncp-newnode} переименована в @command{nncp-newcfg} --
1113 это короче и удобнее для использования.
1116 Появилась команда @command{nncp-mincfg}: вспомогательная утилита
1117 позволяющая создать минималистичный урезанный конфигурационный файл без
1118 приватных ключей, что полезно во время использования @command{nncp-xfer}.
1123 @subsection Релиз 0.3
1125 @item Исправлена совместимость с Go 1.6.
1129 @subsection Релиз 0.2
1133 @strong{Несовместимое} изменение формата пакета (магическое число тоже
1134 изменено): поле размера пакета шифруется и не посылается в открытом виде.
1137 @option{-minsize} опция даёт возможность автоматически дополнять
1138 исходящие пакеты до указанного минимального размера.
1141 @command{nncp-daemon} и @command{nncp-call}/@command{nncp-caller} всегда
1142 в фоне проверяют появление исходящих @emph{tx} пакетов пока подключены.
1143 Удалённая сторона сразу же оповещается об этом.
1146 @option{-onlinedeadline} опция даёт возможность выставления timeout-а на
1147 неактивность в online соединении, когда оно должно быть отключено. Она
1148 может быть использована для сохранения соединения на долгое время.
1151 @option{-maxonlinetime} опция даёт возможность указания максимального
1152 возможного времени жизни соединения.
1155 Появилась @command{nncp-caller} команда: клиент TCP-демона работающий по
1159 @command{nncp-pkt} команда может разжимать данные.