5 @subsection Релиз 8.4.0
9 Имена интерфейсов относящихся к multicast (@code{mcd-listen} и
10 @code{mcd-send} опции конфигурации) теперь являются регулярными
11 выражениями. По умолчанию @command{nncp-cfgnew} не комментирует
12 их теперь и прописывает @code{.*} имя интерфейса.
15 У @command{nncp-call} команды появился @option{-mcd-wait} аргумент,
16 позволяющий дожидаться multicast сообщения об адресе ноды.
21 @subsection Релиз 8.3.0
25 Исправлена возможность сборки на 32-бит системах.
30 @subsection Релиз 8.2.0
34 Yggdrasil использует IPv6+TCP сетевой стэк написанный полностью на Go,
35 вместо голого μTP транспортного протокола, делая возможным работу в
36 качестве обычного TCP сервера внутри overlay сети.
39 Конфигурационные строки Yggdrasil вида @code{prv;bind1,bind2;pub...}
40 заменены на URL-подобные (@code{yggdrasils://PRV?bind=BIND1&bind=BIND2&pub=PUB}).
43 Возможно передавать параметры Yggdrasil конфигурации связанные с multicast.
46 @command{nncp-daemon} может слушать одновременно и на TCP и на
47 Yggdrasil-управляемом сокетах.
50 Слушание на endpoint сокете для пиринга в @command{nncp-daemon}
51 опционально -- вы можете быть доступны и через связь с peer-ами.
56 @subsection Релиз 8.1.0
60 @command{nncp-cfgdir} команда не требует обязательного наличия
61 @code{self} секции конфигурационного файла.
64 Появилась возможность работы в качестве клиента overlay сети Yggdrasil,
65 используя online протокол поверх неё.
70 @subsection Релиз 8.0.2
74 Исправлена возможность отправки мультивещательных пакетов.
79 @subsection Релиз 8.0.1
83 Исправлено некорректное вычисление @code{freq.chunked} значения, при
84 отсутствии которого всё равно форсированно включалась chunked передача.
87 Исправлено некорректное вычисление значения полного размера файла в
93 @subsection Релиз 8.0.0
97 @strong{Несовместимое} изменение формата зашифрованных пакетов: размеры
98 полезной нагрузки и дополнения посылаются прямо внутри зашифрованного
99 потока. Это даёт возможность потоково создавать шифрованные пакеты, без
100 знания размеров заранее, без создания временного файла или буферизации в
104 Производится корректная проверка дополнения зашифрованного пакета. Это
105 не критичная проблема, но прежде ни размер, ни значение дополнения не
106 были аутентифицированы, позволяя циклично откусывать по байту с конца и
107 узнавать размер полезной нагрузки, наблюдая за реакцией по обработке
108 такого зашифрованного пакета.
111 @command{nncp-exec} больше не имеет @option{-use-tmp} опции, из-за
112 совместимого с потоковой работой формата зашифрованных пакетов.
115 У @command{nncp-file} и @command{nncp-exec} команд появилась опция
116 @option{-maxsize}, ограничивающая максимальный результирующий размер
117 зашифрованного пакета (возвращая ошибку если он превышен). Может быть
118 полезно, так как размер полезной нагрузки может быть неизвестен заранее.
123 @subsection Релиз 7.7.0
127 Экспериментальная поддержка @code{kqueue} и @code{inotify} оповещений об
128 изменениях в spool директориях, для сокращения накладных расходов на их
132 @file{.seen} и @file{.hdr} файлы находятся в @file{seen/} и @file{hdr/}
133 поддиректориях теперь, дабы ускорить сканирование spool областей.
134 Необходима миграция текущих файлов:
137 $ find $NNCPSPOOL -type f -name "*.hdr" -exec rm @{@} +
139 $ find $NNCPSPOOL -type d -name rx | while read rx ; do
142 find . -type f -name "*.seen" | while read fn ; do
143 mv $fn seen/$@{fn%.seen@}
147 $ find $NNCPSPOOL -type d -name area | while read area ; do
148 find $area -type f -name "*.seen" | while read fn ; do
157 @subsection Релиз 7.6.0
161 Журналирование может производиться в назначенный открытый файловый
162 дескриптор (@env{$NNCPLOG=FD:5} например).
163 Что дружелюбно к использованию под @command{daemontools}.
166 Добавлены дополнительные проверки наличия публичных ключей в
167 конфигурационном файле, предотвращающие падения некоторых команд.
172 @subsection Релиз 7.5.1
176 NNCP собирается на NetBSD.
181 @subsection Релиз 7.5.0
185 @command{nncp-daemon} соблюдает UCSPI-TCP интерфейс, благодаря чему в
186 журнале будет присутствовать адрес удалённой системы (при запуске под
187 совместимой утилитой). Желательно применять @option{-ucspi} опцию вместо
191 @command{nncp-call} может быть UCSPI-TCP клиентом, используя
192 @option{-ucspi} опцию.
195 Не выходить если не получается слушать на каком-либо MCD сетевом
196 интерфейсе -- только предупреждать об ошибке.
201 @subsection Релиз 7.4.0
205 Исправлена работоспособность MCD при одновременном использовании
206 @command{nncp-daemon} и @command{nncp-caller}.
211 @subsection Релиз 7.3.2
215 @command{hjson-cli} утилита теперь собирается в vendor-режиме.
220 @subsection Релиз 7.3.1
224 Исправлена проблема с возможно остающимся открытым файловым
225 дескриптором в online командах.
228 Существенно снижено потребление памяти MTH хэширования.
233 @subsection Релиз 7.3.0
237 Поправлены проблемы работоспособности на 32-бит системах с большими файлами.
240 Возможность использовать конфигурацию в виде директории с набором
241 файлов. Появилась команда @command{nncp-cfgdir}.
246 @subsection Релиз 7.2.1
250 Небольшие оптимизации в online командах.
255 @subsection Релиз 7.2.0
259 Появилась @command{nncp-trns} команда для ручного создания транзитных пакетов.
262 Если у целевой ноды транзитного пакета задан @option{via} маршрут, то
263 использовать его, а не игнорировать.
266 Не отправлять multicast пакет оригинатору сообщения, очевидно точно
267 видящего свой собственный пакет.
270 Намного меньшее потребление памяти во время MTH хэширования когда
271 смещение равно нулю: когда пакет не является докачиванием, а например
272 проверяется @command{nncp-check} командой.
277 @subsection Релиз 7.1.1
281 Исправлено падение при fsync директорий после создания @file{.seen} файлов.
286 @subsection Релиз 7.1.0
290 Появилась возможность мультивещательной (multicast) рассылки пакетов.
291 Реализовано всего лишь дополнительным типом простых пакетов и изменением
292 @command{nncp-toss}, @command{nncp-file} и @command{nncp-exec} команд.
295 Исправлена работоспособность @command{nncp-file} и @command{nncp-exec}
296 команд использующих временный файл (stdin и @option{-use-tmp}).
299 Исправлен пропадающий плохой код возврата в @command{nncp-exec} команде.
302 Исправлено некорректное генерирование @file{.hdr} при использовании
306 У @command{nncp-rm} команды появилась @option{-all} опция, применяемая
310 У @command{nncp-check} команды появилась @option{-cycle} опция, вводящая
311 проверку в бесконечный цикл.
314 У @command{nncp-rm} команды можно указывать alias-ы имён нод.
317 @command{nncp-pkt} может парсить @file{.hdr} файлы.
322 @subsection Релиз 7.0.0
326 Минимальная требуемая версия Go 1.13.
329 Хэширование с BLAKE3 на базе деревьев Меркле (Merkle Tree Hashing, MTH)
330 используется вместо BLAKE2b. Из-за этого, обратно @strong{несовместимое}
331 изменение формата шифрованных файлов (всего что находится в spool
332 области) и формата @file{.meta} файла при chunked передаче.
334 Текущая реализация далека от оптимальной: в ней нет распараллеливания
335 вычислений и имеет повышенное потребление памяти: около 512 KiB на
336 каждый 1 GiB данных файла. Будущая оптимизация производительности и
337 потребления памяти не должна привести к изменению формата пакетов. Но
338 это всё равно в несколько раз быстрее BLAKE2b.
341 Из-за использования MTH, докачиваемые в online режиме файлы потребуют
342 чтения с диска только предшествующей части, а не полностью всего файла,
346 Добавлена @command{nncp-hash} утилита для вычисления MTH хэша файла.
349 В шифрованных пакетах BLAKE2 KDF и XOF функции заменены на BLAKE3. Ещё
350 уменьшая количество примитивов. А также заголовок шифрованного файла
351 теперь является ассоциированными данными при шифровании.
354 MultiCast Discovery использует
355 @verb{|ff02::4e4e:4350|} адрес вместо @verb{|ff02::1|}.
358 @command{nncp-cfgenc} ошибочно трижды спрашивал парольную фразу при шифровании.
361 @command{nncp-stat} выводит сводку о частично скачанных пакетах.
364 Обновлены зависимые библиотеки.
369 @subsection Релиз 6.6.0
373 @command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}
374 ожидают завершения всех процессов фоновой проверки контрольных сумм,
375 после того как соединение закрыто.
378 Добавлена возможность определения адреса через multicast оповещение в
379 локальной сети, так называемый MCD (MultiCast Discovery).
384 @subsection Релиз 6.5.0
388 Исправлено падение в @command{nncp-daemon} когда SP рукопожатие не было успешно.
391 Исправлено возможное игнорирование плохого кода возврата автоматического tosser.
394 Исправлена гонка при закрытии файловых дескрипторов во время завершения
395 работы online протокола, которая могла привести к ошибке записи
396 принятого фрагмента пакета.
399 Убирать показ прогресса передачи пакетов когда вызов уже завершён в
400 @command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}.
405 @subsection Релиз 6.4.0
409 Исправлена возможная гонка в online протоколе, приводящая к падению
415 @subsection Релиз 6.3.0
419 Исправлено возможное падение программы во время показа прогресса online
425 @subsection Релиз 6.2.1
429 В трёх местах сообщений журналов по ошибке остались лишние @code{%s}.
434 @subsection Релиз 6.2.0
438 Возвращена работоспособность @option{-autotoss*} опций @command{nncp-caller}.
441 Очередной рефакторинг и упрощение системы журналирования.
442 Не должно быть видимых изменений для конечного пользователя.
447 @subsection Релиз 6.1.0
451 Оптимизация: большинство команд теперь не держат открытыми файловые
452 дескрипторы. Прежде вы легко могли выйти за пределы максимально
453 допустимого количества открытых файлов, если у вас было много пакетов в
457 Оптимизация: не закрывать файловый дескриптор файла который мы качаем.
458 Прежде каждый его кусочек приводил к дорогим open/close вызовам.
461 Скачиваемые в режиме online файлы теперь сохраняются с @file{.nock}
462 суффиксом (non-checksummed), ожидая пока либо @command{nncp-check}, либо
463 online демоны не выполнят проверку целостности.
466 Оптимизация: для файлов, скачивание которых не было продолжено, сразу же
467 вычисляет контрольная сумма, пропуская промежуточный @file{.nock} шаг.
470 Возможность хранения заголовков зашифрованных пакетов в @file{.hdr}
471 файлах, рядом с самими пакетами. Это может существенно повысить скорость
472 получения списка пакетов на файловых системах с большим размером блока.
477 @subsection Релиз 6.0.0
481 Журнал использует человеко-читаемый и легко обрабатываемый машиной
482 @url{https://www.gnu.org/software/recutils/, recfile} формат для своих
483 записей, вместо структурированных строчек RFC 3339. Старый формат
484 журналов не поддерживается @command{nncp-log}.
487 Работоспособность @option{-autotoss*} опции с @option{-inetd} режимом
488 @command{nncp-daemon}.
491 @option{when-tx-exists} опция вызова в конфигурационном файле позволяет
492 делать вызов только если имеются исходящие сообщения. Совмещённая с cron
493 выражением содержащим секунды, это можно использовать как возможность
494 вызова только при появлении исходящих пакетов.
497 @command{nncp-cronexpr} команда позволяет проверить корректность и
498 ожидаемый результат от указанного cron выражения.
503 @subsection Релиз 5.6.0
507 @option{-autotoss*} опции запускают tosser не после завершения вызова, а
508 во время него ежесекундно.
511 В @option{calls} секции конфигурации появились опции
512 @option{autotoss}, @option{autotoss-doseen},
513 @option{autotoss-nofile}, @option{autotoss-nofreq},
514 @option{autotoss-noexec}, @option{autotoss-notrns}.
515 Вы можете настраивать опции автоматического tosser для каждого вызова.
518 Использовать vendoring вместо переопределения @env{$GOPATH} во время
519 установки tarball, так как текущая минимальная версия Go это 1.12,
520 поддерживающая модули.
525 @subsection Релиз 5.5.1
529 Уважать @env{$BINDIR}, @env{$INFODIR} и @env{$DOCDIR} переменные окружения
530 в @file{config} во время установки.
535 @subsection Релиз 5.5.0
539 Исправления ошибок в @command{nncp-call(er)}/@command{nncp-daemon},
540 @command{nncp-bundle}, @command{nncp-stat} командах.
543 У команды @command{nncp-rm} появились @option{-dryrun} и @option{-older} опции.
546 У команды @command{nncp-exec} появились @option{-use-tmp} и
547 @option{-nocompress} опции. Несжатые пакеты не совместимы с предыдущими
551 У команд @command{nncp-call}, @command{nncp-caller} и @command{nncp-daemon}
552 появились @option{-autotoss*} опции для запуска tosser после завершения звонка.
555 Обновлены зависимые библиотеки. Минимальная требуемая версия Go 1.12.
560 @subsection Релиз 5.4.1
564 Исправлена ошибка с учётом @code{SENDMAIL} переменной при сборке.
569 @subsection Релиз 5.4.0
573 Обновлены зависимые библиотеки.
576 Система сборки переведена с Makefile-ов на @url{http://cr.yp.to/redo.html, redo}.
577 Это не должно повлиять на мейнтейнеров пакетов, так как минимальная
578 реализация @command{redo} включена в tarball.
583 @subsection Релиз 5.3.3
587 Больше различных проверок в коде на ошибки.
590 Обновлены зависимые библиотеки.
595 @subsection Релиз 5.3.2
599 Исправлена некорректная логика @option{onlinedeadline} timeout-а, при
600 котором соединение могло не учитывать факты прихода пакетов и обрывать
606 @subsection Релиз 5.3.1
610 Исправлена работоспособность @option{onlinedeadline} с адресами вызова
611 использующими внешние команды (@verb{#"|somecmd"#}).
614 @command{nncp-stat} имеет опцию @option{-pkt} показывающую информацию по
615 каждому пакету в spool.
620 @subsection Релиз 5.3.0
624 Сообщения прогресса содержат префикс, поясняющий выполняемое действие.
627 Исправлено не происходящее дополнение (padding) handshake сообщений.
630 Завершать все порождаемые в SP протоколе горутины, меньше утечек памяти.
633 SP протокол порождает меньше вызовов записей (соответственно, и TCP
637 Проверять @option{onlinedeadline} и @option{maxonlinetime} ежесекундно,
638 независимо от чтения из сокета (раз в 10 секунд в худшем случае).
641 Раз в минуту, если нет более никакого другого трафика, посылаются PING
642 пакеты в SP-соединении. Это позволит быстрее понимать что соединение
643 более не работоспособно.
646 @command{nncp-toss} использует lock-file для предотвращения
647 одновременной обработки зашифрованных пакетов.
652 @subsection Релиз 5.2.1
656 Исправлена обработка ошибки SP протокола, иногда вызывающая панику программы.
661 @subsection Релиз 5.2.0
665 Большинство команд по умолчанию показывают однострочный прогресс
666 выполнения операции. Появились @option{-progress}, @option{-noprogress}
667 опции командной строки, @option{noprogress} опция конфигурационного
671 Исправлен некорректный код возврата @command{nncp-check} команды,
672 который возвращал ошибку когда всё хорошо.
675 Проверка свободного места для пакетов, во время выполнения
676 @command{nncp-bundle -rx}.
681 @subsection Релиз 5.1.2
685 Исправлена @strong{критичная} уязвимость: аутентификация online нод
686 могла приводить к некорректной идентификации удалённой стороны, позволяя
687 скачивать чужие зашифрованные пакеты.
690 Исправлена ошибка: в новосозданных конфигурационных файлах, приватный
691 публичный ключ Noise были поменяны местами, что приводило к
692 невозможности online аутентификации нод.
695 Явная синхронизация (fsync) директорий для гарантированного
696 переименования файлов.
701 @subsection Релиз 5.1.1
705 Исправлена работоспособность @command{nncp-file} с @option{-chunked 0} опцией.
710 @subsection Релиз 5.1.0
714 @command{nncp-file} может отправлять директории, автоматически на лету
718 Во время создания исходящих сообщений проверяется наличие свободного
719 места на файловой системе.
722 @option{freq}, @option{freqminsize}, @option{freqchunked} опции
723 конфигурационного файла заменены на структуру
724 @option{freq: @{path: @dots{}, minsize: @dots{}, chunked: @dots{}@}}.
727 Добавлена @option{freq.maxsize} опция конфигурационного файл,
728 запрещающая ответ на файловый запрос больше заданного размера.
731 Возможность оповещения об успешно выполненных командах (exec) через
732 @option{notify.exec} опцию конфигурационного файла.
737 @subsection Релиз 5.0.0
741 @strong{Несовместимое} изменение формата конфигурационного файла:
742 YAML заменён на Hjson, из-за его гораздо большей простоты, без
743 заметной потери функционала и удобства.
746 @strong{Несовместимое} изменение формата простых пакетов. Работа со
747 старыми версиями не поддерживается. @code{zlib} сжатие заменено на
748 @code{Zstandard}, так как оно значительно быстрее и эффективнее, не
749 смотря на то, что версия библиотеки ещё не проверена временем.
752 Возможность соединяться с удалёнными нодами не только по TCP, но и через
753 pipe вызов сторонней команды.
756 @command{nncp-cfgnew} генерирует конфигурационный файл с множеством
757 комментариев. Можно использовать @option{-nocomments} опцию для старого
761 Дубликаты имён файлов имеют суффикс @file{.CTR}, вместо @file{CTR},
762 чтобы избежать возможных коллизий с @file{.nncp.chunkCTR}.
765 Возможность переопределить umask процесса через опцию конфигурационного
769 По умолчанию файлы и директории создаются с 666/777 правами доступа,
770 позволяя управлять ими @command{umask}-ом.
773 Обновлены зависимости.
776 Полное использование go модулей для управления зависимостями
777 (используется @code{go.cypherpunks.ru/nncp/v5} namespace).
780 Отмена автоматического использования более новых версий GNU GPL
781 (лицензия проекта GNU GPLv3-только).
786 @subsection Релиз 4.1
788 @item Восстановлена работоспособность на GNU/Linux системах и Go версии 1.10.
792 @subsection Релиз 4.0
796 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов:
797 используется AEAD режим шифрования с 128 КиБ блоками, так как раньше
798 @command{nncp-toss} не проверял MAC зашифрованного пакета прежде чем
799 отсылать дешифрованные данные внешней команде. Старые версии не
803 Проверка доступного места перед копированием во время работы
804 @command{nncp-xfer}, @command{nncp-daemon}, @command{nncp-call(er)}.
807 @command{nncp-call} имеет возможность только показывать список пакетов
808 на удалённой машине, без их передачи.
811 @command{nncp-call} имеет возможность передавать только чётко указанные пакеты.
814 Восстановлена работоспособность @option{xxrate} настройки в
815 @option{calls} секции конфигурационного файла.
818 Зависимые библиотеки обновлены.
821 Небольшие исправления ошибок.
824 Начало использования @code{go.mod} подсистемы.
829 @subsection Релиз 3.4
831 @item @command{nncp-daemon} может быть запущен как @command{inetd}-служба.
835 @subsection Релиз 3.3
839 @command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller}
840 проверяют существование @file{.seen} файла и расценивают его как то, что
841 файл уже был скачан. Возможно передача данных была осуществлена
842 сторонним способом и удалённая сторона должна быть оповещена об этом.
845 Если более высокоприоритетный пакет попадает в спул, то
846 @command{nncp-daemon} добавит его в очередь отправки первым, прерывая
847 низкоприоритетные передачи.
850 К средствам связанным с online-соединениями (@command{nncp-daemon},
851 @command{nncp-call}, @command{nncp-caller}) добавлен простой
852 ограничитель скорости.
855 Возможность задания приоритета символьными обозначениями:
856 @verb{|NORMAL|}, @verb{|BULK+10|}, @verb{|PRIORITY-5|}, итд.
859 Изменены значения приоритетов по-умолчанию:
860 для @command{nncp-exec} с 64 на 96,
861 для @command{nncp-freq} с 64 на 160,
862 для @command{nncp-file} с 196 на 224.
867 @subsection Релиз 3.2
870 @strong{Несовместимое} изменение формата @emph{bundle} архивов и
871 работоспособность @command{nncp-bundle} команды с Go 1.10+. Bundle
872 должен быть корректным tar архивом, но Go 1.9 делал его недействительным
873 из-за длинных путей внутри. NNCP нечаянно был зависим от этой баги.
874 Явное добавление @file{NNCP/} директории в архив восстанавливает
875 работоспособность с корректными tar архивами.
879 @subsection Релиз 3.1
882 Возможность отключать пересылку через промежуточные ноды используя
883 @verb{|-via -|} опцию командной строки.
887 @subsection Релиз 3.0
891 @strong{Несовместимое} изменение формата простых пакетов. Работа со
892 старыми версиями не поддерживается.
895 Добавлена возможность удалённого исполнения команд, путём
896 конфигурирования @option{exec} опции конфигурационного файла и
897 использования команды @command{nncp-exec}:
900 Команда @command{nncp-mail} заменена более гибкой и широкой
901 @command{nncp-exec}. Вместо вызова @verb{|nncp-mail NODE RECIPIENT|}
902 нужно использовать @verb{|nncp-exec NODE sendmail RECIPIENT|}.
904 @option{sendmail} опция конфигурационного файла заменена на более гибкую
905 @option{exec}. @verb{|sendmail: [...]|} нужно заменить на @verb{|exec:
910 Возможность переопределить @option{via} опцию конфигурации для целевого
911 узла через @option{-via} опцию командной строки для следующих команд:
912 @command{nncp-file}, @command{nncp-freq}, @command{nncp-exec}.
915 Chunked файлы, меньшего размера чем указанный chunk, отправляются просто
919 Exec команды вызываются с дополнительными переменными окружения
920 @env{$NNCP_NICE} и @env{$NNCP_SELF}.
923 Отправляемые файлы в ответ на запрос имеют приоритет указанный в запросе.
924 Указать их желаемый приоритет во время вызова @command{nncp-freq} можно
925 аргументом @option{-replynice}.
928 Команде @command{nncp-toss} можно сказать не обрабатывать определённые
929 типы пакетов, за счёт опций @option{-nofile}, @option{-nofreq},
930 @option{-noexec}, @option{-notrns}.
933 По-умолчанию @command{nncp-file} команда для
934 @option{-minsize}/@option{-chunked} опций использует
935 @option{FreqMinSize}/@option{FreqChunked} из конфигурационного файла.
936 Это можно отключить указав нулевое значение.
941 @subsection Релиз 2.0
945 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов.
946 Работа со старыми версиями не поддерживается.
949 Алгоритм шифрования Twofish заменён на ChaCha20. Он намного быстрее.
950 Одним криптографическим примитивом меньше.
953 HKDF-BLAKE2b-256 KDF алгоритм заменён на BLAKE2Xb XOF. Ещё одним
954 криптографическим примитивом меньше (предполагая, что BLAKE2X
955 практически идентичен BLAKE2).
960 @subsection Релиз 1.0
964 @strong{Несовместимое} изменение формата зашифрованных пакетов. Работа
965 со старыми версиями не поддерживается.
968 @command{nncp-bundle} команда может создавать потоки зашифрованных
969 пакетов или потреблять их. Это полезно когда речь идёт о
970 @code{stdin}/@code{stdout} методах передачи (например запись на CD-ROM
971 без создания промежуточного подготовленного ISO образа или работа с
972 ленточными накопителями).
975 @command{nncp-toss} команда может создавать @file{.seen} файлы,
976 предотвращая приём дублированных пакетов.
979 В команде @command{nncp-call} разрешается иметь только одного
980 обработчика контрольной суммы в фоне. Это полезно когда тысячи маленьких
981 входящих пакетов могут создать много горутин.
984 Возможность переопределить путь до spool директории и файла журнала
985 через аргумент командной строки или переменную окружения.
988 @command{nncp-rm} команда может удалять все исходящие/входящие,
989 @file{.seen}, @file{.part}, @file{.lock} и временные файлы.
994 @subsection Релиз 0.12
996 @item Команда sendmail вызывается с @env{$NNCP_SENDER} переменной окружения.
1000 @subsection Релиз 0.11
1002 @item Вывод команды @command{nncp-stat} отсортирован по имени ноды.
1006 @subsection Релиз 0.10
1009 @file{DST} аргумент @command{nncp-freq} команды теперь опционален.
1010 По-умолчанию будет подставлен последний элемент @file{SRC} пути.
1014 @subsection Релиз 0.9
1017 Исправлена обработка @option{-rx}/@option{-tx} опций @command{nncp-call}
1018 команды. Они игнорировались.
1022 @subsection Релиз 0.8
1025 Небольшое исправление ошибки в команде @command{nncp-file}, где опция
1026 @option{-minsize} для передачи без разбиения на части была в байтах, а
1031 @subsection Релиз 0.7
1035 Возможность предоставлять данные для @command{nncp-file} через
1036 стандартный ввод, используя временный зашифрованный файл для этого.
1039 Появилась возможность передачи файлов разбитых на части, с сопутствующей
1040 @command{nncp-reass} командой и @option{freqchunked} опцией
1041 конфигурационного файла. Полезно для передачи больших файлов через
1042 маленькие устройства хранения.
1045 @option{freqminsize} опция конфигурационного файла, аналогичная
1049 Опция @option{-force} команды @command{nncp-xfer} переименована в
1050 @option{-mkdir} для ясности.
1053 Опция @option{-minsize} задаётся в KiB, а не байтах, для удобства.
1056 Команда @command{nncp-newcfg} переименована в @command{nncp-cfgnew},
1057 а @command{nncp-mincfg} в @command{nncp-cfgmin}, для того чтобы они
1058 имели общий префикс и были сгруппированы для удобства.
1061 Появилась команда @command{nncp-cfgenc}, позволяющая
1062 шифровать/дешифровать конфигурационный файл, чтобы безопасно его хранить
1063 без использования OpenPGP или других подобных инструментов.
1066 Обновлены зависимые криптографические библиотеки.
1071 @subsection Релиз 0.6
1073 @item Появилась небольшая команда @command{nncp-rm}.
1074 @item Обновлены зависимые криптографические библиотеки.
1078 @subsection Релиз 0.5
1081 Тривиальное небольшое исправление в значениях приоритетов по-умолчанию в
1082 @command{nncp-file} и @command{nncp-freq} командах.
1086 @subsection Релиз 0.4
1090 Небольшое исправление в @command{nncp-call}, @command{nncp-caller},
1091 @command{nncp-daemon}: иногда они могли падать с segmentation fault
1092 ошибкой (данные не терялись).
1095 @command{nncp-newnode} переименована в @command{nncp-newcfg} --
1096 это короче и удобнее для использования.
1099 Появилась команда @command{nncp-mincfg}: вспомогательная утилита
1100 позволяющая создать минималистичный урезанный конфигурационный файл без
1101 приватных ключей, что полезно во время использования @command{nncp-xfer}.
1106 @subsection Релиз 0.3
1108 @item Исправлена совместимость с Go 1.6.
1112 @subsection Релиз 0.2
1116 @strong{Несовместимое} изменение формата пакета (магическое число тоже
1117 изменено): поле размера пакета шифруется и не посылается в открытом виде.
1120 @option{-minsize} опция даёт возможность автоматически дополнять
1121 исходящие пакеты до указанного минимального размера.
1124 @command{nncp-daemon} и @command{nncp-call}/@command{nncp-caller} всегда
1125 в фоне проверяют появление исходящих @emph{tx} пакетов пока подключены.
1126 Удалённая сторона сразу же оповещается об этом.
1129 @option{-onlinedeadline} опция даёт возможность выставления timeout-а на
1130 неактивность в online соединении, когда оно должно быть отключено. Она
1131 может быть использована для сохранения соединения на долгое время.
1134 @option{-maxonlinetime} опция даёт возможность указания максимального
1135 возможного времени жизни соединения.
1138 Появилась @command{nncp-caller} команда: клиент TCP-демона работающий по
1142 @command{nncp-pkt} команда может разжимать данные.