5 @subsection Релиз 8.8.0
9 Исправлена невозможность сборки под Go 1.19.
12 Минимальная требуемая версия Go 1.17.
17 @subsection Релиз 8.7.2
21 Более интуитивное, понятное и немного более гибкое поведение @command{nncp-rm}.
24 @command{nncp-rm} также удаляет соответствующий @file{hdr/} файл для
25 каждого удалённого пакета.
30 @subsection Релиз 8.7.1
34 @command{nncp-xfer} теперь корректно проверяет наличие @file{seen/}
35 файлов для входящих пакетов.
40 @subsection Релиз 8.7.0
44 @command{nncp-ack} не подтверждает ACK-пакеты, предотвращая бесконечную
48 В прошлом, @command{nncp-ack} не удаляла соответствующие @file{hdr/} файлы.
51 @command{nncp-rm} теперь берёт список пакетов из @code{stdin}, при
52 использовании @option{-pkt} опции.
55 @command{nncp-ack} теперь генерирует список ACK пакетов, которые были
56 созданы, что может использоваться в качестве ввода для @command{nncp-rm}
57 команды, чтобы удалить исходящие ACK пакеты.
62 @subsection Релиз 8.6.0
66 @command{nncp-xfer} проверяет сходится ли контрольная сумма
67 скопированного локально пакета и исходного.
70 @command{nncp-call} имеет плохой код возврата если в очередях на приём и
71 отправку остаются незаконченные задания.
74 Появилась @command{nncp-ack} команда, которая отправляет явное
75 подтверждение доставки пакета (ACK пакет). Это подтверждение удаляет
76 упомянутый пакет из исходящего spool-а.
79 Появилась возможность отключения @code{fsync} операции
80 @env{$NNCPNOSYNC=1} переменной окружения.
83 Добавлены разнообразные индексы в документации, что должно помочь при
89 @subsection Релиз 8.5.0
93 Исправлена работоспособность @command{nncp-bundle}.
96 По ошибке @option{-mcd-wait} опция у @command{nncp-call} была включена
100 Возможность переопределять внутренний timeout по умолчанию для протокола
101 синхронизации через @env{$NNCPDEADLINE} переменную окружения. Может быть
102 полезно для каналов с очень большими задержками.
105 NNCP собирается на OpenBSD.
110 @subsection Релиз 8.4.0
114 Имена интерфейсов относящихся к multicast (@code{mcd-listen} и
115 @code{mcd-send} опции конфигурации) теперь являются регулярными
116 выражениями. По умолчанию @command{nncp-cfgnew} не комментирует
117 их теперь и прописывает @code{.*} имя интерфейса.
120 У @command{nncp-call} команды появился @option{-mcd-wait} аргумент,
121 позволяющий дожидаться multicast сообщения об адресе ноды.
124 @command{nncp-file} команда пропускает всё что не является регулярным
125 файлом или директорией во время создания pax-архива.
130 @subsection Релиз 8.3.0
134 Исправлена возможность сборки на 32-бит системах.
139 @subsection Релиз 8.2.0
143 Yggdrasil использует IPv6+TCP сетевой стэк написанный полностью на Go,
144 вместо голого μTP транспортного протокола, делая возможным работу в
145 качестве обычного TCP сервера внутри overlay сети.
148 Конфигурационные строки Yggdrasil вида @code{prv;bind1,bind2;pub@dots{}}
149 заменены на URL-подобные (@code{yggdrasils://PRV?bind=BIND1&bind=BIND2&pub=PUB}).
152 Возможно передавать параметры Yggdrasil конфигурации связанные с multicast.
155 @command{nncp-daemon} может слушать одновременно и на TCP и на
156 Yggdrasil-управляемом сокетах.
159 Слушание на endpoint сокете для пиринга в @command{nncp-daemon}
160 опционально -- вы можете быть доступны и через связь с peer-ами.
165 @subsection Релиз 8.1.0
169 @command{nncp-cfgdir} команда не требует обязательного наличия
170 @code{self} секции конфигурационного файла.
173 Появилась возможность работы в качестве клиента overlay сети Yggdrasil,
174 используя online протокол поверх неё.
179 @subsection Релиз 8.0.2
183 Исправлена возможность отправки мультивещательных пакетов.
188 @subsection Релиз 8.0.1
192 Исправлено некорректное вычисление @code{freq.chunked} значения, при
193 отсутствии которого всё равно форсированно включалась chunked передача.
196 Исправлено некорректное вычисление значения полного размера файла в
202 @subsection Релиз 8.0.0
206 @strong{Несовместимое} изменение формата зашифрованных пакетов: размеры
207 полезной нагрузки и дополнения посылаются прямо внутри зашифрованного
208 потока. Это даёт возможность потоково создавать шифрованные пакеты, без
209 знания размеров заранее, без создания временного файла или буферизации в
213 Производится корректная проверка дополнения зашифрованного пакета. Это
214 не критичная проблема, но прежде ни размер, ни значение дополнения не
215 были аутентифицированы, позволяя циклично откусывать по байту с конца и
216 узнавать размер полезной нагрузки, наблюдая за реакцией по обработке
217 такого зашифрованного пакета.
220 @command{nncp-exec} больше не имеет @option{-use-tmp} опции, из-за
221 совместимого с потоковой работой формата зашифрованных пакетов.
224 У @command{nncp-file} и @command{nncp-exec} команд появилась опция
225 @option{-maxsize}, ограничивающая максимальный результирующий размер
226 зашифрованного пакета (возвращая ошибку если он превышен). Может быть
227 полезно, так как размер полезной нагрузки может быть неизвестен заранее.
232 @subsection Релиз 7.7.0
236 Экспериментальная поддержка @code{kqueue} и @code{inotify} оповещений об
237 изменениях в spool директориях, для сокращения накладных расходов на их
241 @file{.seen} и @file{.hdr} файлы находятся в @file{seen/} и @file{hdr/}
242 поддиректориях теперь, дабы ускорить сканирование spool областей.
243 Необходима миграция текущих файлов:
246 $ find $NNCPSPOOL -type f -name "*.hdr" -exec rm @{@} +
248 $ find $NNCPSPOOL -type d -name rx | while read rx ; do
251 find . -type f -name "*.seen" | while read fn ; do
252 mv $fn seen/$@{fn%.seen@}
256 $ find $NNCPSPOOL -type d -name area | while read area ; do
257 find $area -type f -name "*.seen" | while read fn ; do
266 @subsection Релиз 7.6.0
270 Журналирование может производиться в назначенный открытый файловый
271 дескриптор (@env{$NNCPLOG=FD:5} например).
272 Что дружелюбно к использованию под @command{daemontools}.
275 Добавлены дополнительные проверки наличия публичных ключей в
276 конфигурационном файле, предотвращающие падения некоторых команд.
281 @subsection Релиз 7.5.1
285 NNCP собирается на NetBSD.
290 @subsection Релиз 7.5.0
294 @command{nncp-daemon} соблюдает UCSPI-TCP интерфейс, благодаря чему в
295 журнале будет присутствовать адрес удалённой системы (при запуске под
296 совместимой утилитой). Желательно применять @option{-ucspi} опцию вместо
300 @command{nncp-call} может быть UCSPI-TCP клиентом, используя
301 @option{-ucspi} опцию.
304 Не выходить если не получается слушать на каком-либо MCD сетевом
305 интерфейсе -- только предупреждать об ошибке.
310 @subsection Релиз 7.4.0
314 Исправлена работоспособность MCD при одновременном использовании
315 @command{nncp-daemon} и @command{nncp-caller}.
320 @subsection Релиз 7.3.2
324 @command{hjson-cli} утилита теперь собирается в vendor-режиме.
329 @subsection Релиз 7.3.1
333 Исправлена проблема с возможно остающимся открытым файловым
334 дескриптором в online командах.
337 Существенно снижено потребление памяти MTH хэширования.
342 @subsection Релиз 7.3.0
346 Поправлены проблемы работоспособности на 32-бит системах с большими файлами.
349 Возможность использовать конфигурацию в виде директории с набором
350 файлов. Появилась команда @command{nncp-cfgdir}.
355 @subsection Релиз 7.2.1
359 Небольшие оптимизации в online командах.
364 @subsection Релиз 7.2.0
368 Появилась @command{nncp-trns} команда для ручного создания транзитных пакетов.
371 Если у целевой ноды транзитного пакета задан @option{via} маршрут, то
372 использовать его, а не игнорировать.
375 Не отправлять multicast пакет оригинатору сообщения, очевидно точно
376 видящего свой собственный пакет.
379 Намного меньшее потребление памяти во время MTH хэширования когда
380 смещение равно нулю: когда пакет не является докачиванием, а например
381 проверяется @command{nncp-check} командой.
386 @subsection Релиз 7.1.1
390 Исправлено падение при @code{fsync} директорий после создания @file{.seen} файлов.
395 @subsection Релиз 7.1.0
399 Появилась возможность мультивещательной (multicast) рассылки пакетов.
400 Реализовано всего лишь дополнительным типом простых пакетов и изменением
401 @command{nncp-toss}, @command{nncp-file} и @command{nncp-exec} команд.
404 Исправлена работоспособность @command{nncp-file} и @command{nncp-exec}
405 команд использующих временный файл (@code{stdin} и @option{-use-tmp}).
408 Исправлен пропадающий плохой код возврата в @command{nncp-exec} команде.
411 Исправлено некорректное генерирование @file{.hdr} при использовании
415 У @command{nncp-rm} команды появилась @option{-all} опция, применяемая
419 У @command{nncp-check} команды появилась @option{-cycle} опция, вводящая
420 проверку в бесконечный цикл.
423 У @command{nncp-rm} команды можно указывать alias-ы имён нод.
426 @command{nncp-pkt} может парсить @file{.hdr} файлы.
431 @subsection Релиз 7.0.0
435 Минимальная требуемая версия Go 1.13.
438 Хэширование с BLAKE3 на базе деревьев Меркле (Merkle Tree Hashing, MTH)
439 используется вместо BLAKE2b. Из-за этого, обратно @strong{несовместимое}
440 изменение формата шифрованных файлов (всего что находится в spool
441 области) и формата @file{.meta} файла при chunked передаче.
443 Текущая реализация далека от оптимальной: в ней нет распараллеливания
444 вычислений и имеет повышенное потребление памяти: около 512 KiB на
445 каждый 1 GiB данных файла. Будущая оптимизация производительности и
446 потребления памяти не должна привести к изменению формата пакетов. Но
447 это всё равно в несколько раз быстрее BLAKE2b.
450 Из-за использования MTH, докачиваемые в online режиме файлы потребуют
451 чтения с диска только предшествующей части, а не полностью всего файла,
455 Добавлена @command{nncp-hash} утилита для вычисления MTH хэша файла.
458 В шифрованных пакетах BLAKE2 KDF и XOF функции заменены на BLAKE3. Ещё
459 уменьшая количество примитивов. А также заголовок шифрованного файла
460 теперь является ассоциированными данными при шифровании.
463 MultiCast Discovery использует
464 @verb{|ff02::4e4e:4350|} адрес вместо @verb{|ff02::1|}.
467 @command{nncp-cfgenc} ошибочно трижды спрашивал парольную фразу при шифровании.
470 @command{nncp-stat} выводит сводку о частично скачанных пакетах.
473 Обновлены зависимые библиотеки.
478 @subsection Релиз 6.6.0
482 @command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}
483 ожидают завершения всех процессов фоновой проверки контрольных сумм,
484 после того как соединение закрыто.
487 Добавлена возможность определения адреса через multicast оповещение в
488 локальной сети, так называемый MCD (MultiCast Discovery).
493 @subsection Релиз 6.5.0
497 Исправлено падение в @command{nncp-daemon} когда SP рукопожатие не было успешно.
500 Исправлено возможное игнорирование плохого кода возврата автоматического tosser.
503 Исправлена гонка при закрытии файловых дескрипторов во время завершения
504 работы online протокола, которая могла привести к ошибке записи
505 принятого фрагмента пакета.
508 Убирать показ прогресса передачи пакетов когда вызов уже завершён в
509 @command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}.
514 @subsection Релиз 6.4.0
518 Исправлена возможная гонка в online протоколе, приводящая к падению
524 @subsection Релиз 6.3.0
528 Исправлено возможное падение программы во время показа прогресса online
534 @subsection Релиз 6.2.1
538 В трёх местах сообщений журналов по ошибке остались лишние @code{%s}.
543 @subsection Релиз 6.2.0
547 Возвращена работоспособность @option{-autotoss*} опций @command{nncp-caller}.
550 Очередной рефакторинг и упрощение системы журналирования.
551 Не должно быть видимых изменений для конечного пользователя.
556 @subsection Релиз 6.1.0
560 Оптимизация: большинство команд теперь не держат открытыми файловые
561 дескрипторы. Прежде вы легко могли выйти за пределы максимально
562 допустимого количества открытых файлов, если у вас было много пакетов в
566 Оптимизация: не закрывать файловый дескриптор файла который мы качаем.
567 Прежде каждый его кусочек приводил к дорогим open/close вызовам.
570 Скачиваемые в режиме online файлы теперь сохраняются с @file{.nock}
571 суффиксом (non-checksummed), ожидая пока либо @command{nncp-check}, либо
572 online демоны не выполнят проверку целостности.
575 Оптимизация: для файлов, скачивание которых не было продолжено, сразу же
576 вычисляет контрольная сумма, пропуская промежуточный @file{.nock} шаг.
579 Возможность хранения заголовков зашифрованных пакетов в @file{.hdr}
580 файлах, рядом с самими пакетами. Это может существенно повысить скорость
581 получения списка пакетов на файловых системах с большим размером блока.
586 @subsection Релиз 6.0.0
590 Журнал использует человеко-читаемый и легко обрабатываемый машиной
591 @url{https://www.gnu.org/software/recutils/, recfile} формат для своих
592 записей, вместо структурированных строчек RFC 3339. Старый формат
593 журналов не поддерживается @command{nncp-log}.
596 Работоспособность @option{-autotoss*} опции с @option{-inetd} режимом
597 @command{nncp-daemon}.
600 @option{when-tx-exists} опция вызова в конфигурационном файле позволяет
601 делать вызов только если имеются исходящие сообщения. Совмещённая с cron
602 выражением содержащим секунды, это можно использовать как возможность
603 вызова только при появлении исходящих пакетов.
606 @command{nncp-cronexpr} команда позволяет проверить корректность и
607 ожидаемый результат от указанного cron выражения.
612 @subsection Релиз 5.6.0
616 @option{-autotoss*} опции запускают tosser не после завершения вызова, а
617 во время него ежесекундно.
620 В @option{calls} секции конфигурации появились опции
621 @option{autotoss}, @option{autotoss-doseen},
622 @option{autotoss-nofile}, @option{autotoss-nofreq},
623 @option{autotoss-noexec}, @option{autotoss-notrns}.
624 Вы можете настраивать опции автоматического tosser для каждого вызова.
627 Использовать vendoring вместо переопределения @env{$GOPATH} во время
628 установки tarball, так как текущая минимальная версия Go это 1.12,
629 поддерживающая модули.
634 @subsection Релиз 5.5.1
638 Уважать @env{$BINDIR}, @env{$INFODIR} и @env{$DOCDIR} переменные окружения
639 в @file{config} во время установки.
644 @subsection Релиз 5.5.0
648 Исправления ошибок в @command{nncp-call(er)}/@command{nncp-daemon},
649 @command{nncp-bundle}, @command{nncp-stat} командах.
652 У команды @command{nncp-rm} появились @option{-dryrun} и @option{-older} опции.
655 У команды @command{nncp-exec} появились @option{-use-tmp} и
656 @option{-nocompress} опции. Несжатые пакеты не совместимы с предыдущими
660 У команд @command{nncp-call}, @command{nncp-caller} и @command{nncp-daemon}
661 появились @option{-autotoss*} опции для запуска tosser после завершения звонка.
664 Обновлены зависимые библиотеки. Минимальная требуемая версия Go 1.12.
669 @subsection Релиз 5.4.1
673 Исправлена ошибка с учётом @code{SENDMAIL} переменной при сборке.
678 @subsection Релиз 5.4.0
682 Обновлены зависимые библиотеки.
685 Система сборки переведена с Makefile-ов на @url{http://cr.yp.to/redo.html, redo}.
686 Это не должно повлиять на мейнтейнеров пакетов, так как минимальная
687 реализация @command{redo} включена в tarball.
692 @subsection Релиз 5.3.3
696 Больше различных проверок в коде на ошибки.
699 Обновлены зависимые библиотеки.
704 @subsection Релиз 5.3.2
708 Исправлена некорректная логика @option{onlinedeadline} timeout-а, при
709 котором соединение могло не учитывать факты прихода пакетов и обрывать
715 @subsection Релиз 5.3.1
719 Исправлена работоспособность @option{onlinedeadline} с адресами вызова
720 использующими внешние команды (@verb{#"|somecmd"#}).
723 @command{nncp-stat} имеет опцию @option{-pkt} показывающую информацию по
724 каждому пакету в spool.
729 @subsection Релиз 5.3.0
733 Сообщения прогресса содержат префикс, поясняющий выполняемое действие.
736 Исправлено не происходящее дополнение (padding) handshake сообщений.
739 Завершать все порождаемые в SP протоколе горутины, меньше утечек памяти.
742 SP протокол порождает меньше вызовов записей (соответственно, и TCP
746 Проверять @option{onlinedeadline} и @option{maxonlinetime} ежесекундно,
747 независимо от чтения из сокета (раз в 10 секунд в худшем случае).
750 Раз в минуту, если нет более никакого другого трафика, посылаются PING
751 пакеты в SP-соединении. Это позволит быстрее понимать что соединение
752 более не работоспособно.
755 @command{nncp-toss} использует lock-file для предотвращения
756 одновременной обработки зашифрованных пакетов.
761 @subsection Релиз 5.2.1
765 Исправлена обработка ошибки SP протокола, иногда вызывающая панику программы.
770 @subsection Релиз 5.2.0
774 Большинство команд по умолчанию показывают однострочный прогресс
775 выполнения операции. Появились @option{-progress}, @option{-noprogress}
776 опции командной строки, @option{noprogress} опция конфигурационного
780 Исправлен некорректный код возврата @command{nncp-check} команды,
781 который возвращал ошибку когда всё хорошо.
784 Проверка свободного места для пакетов, во время выполнения
785 @command{nncp-bundle -rx}.
790 @subsection Релиз 5.1.2
794 Исправлена @strong{критичная} уязвимость: аутентификация online нод
795 могла приводить к некорректной идентификации удалённой стороны, позволяя
796 скачивать чужие зашифрованные пакеты.
799 Исправлена ошибка: в новосозданных конфигурационных файлах, приватный
800 публичный ключ Noise были поменяны местами, что приводило к
801 невозможности online аутентификации нод.
804 Явная синхронизация (@code{fsync}) директорий для гарантированного
805 переименования файлов.
810 @subsection Релиз 5.1.1
814 Исправлена работоспособность @command{nncp-file} с @option{-chunked 0} опцией.
819 @subsection Релиз 5.1.0
823 @command{nncp-file} может отправлять директории, автоматически на лету
827 Во время создания исходящих сообщений проверяется наличие свободного
828 места на файловой системе.
831 @option{freq}, @option{freqminsize}, @option{freqchunked} опции
832 конфигурационного файла заменены на структуру
833 @option{freq: @{path: @dots{}, minsize: @dots{}, chunked: @dots{}@}}.
836 Добавлена @option{freq.maxsize} опция конфигурационного файл,
837 запрещающая ответ на файловый запрос больше заданного размера.
840 Возможность оповещения об успешно выполненных командах (exec) через
841 @option{notify.exec} опцию конфигурационного файла.
846 @subsection Релиз 5.0.0
850 @strong{Несовместимое} изменение формата конфигурационного файла:
851 YAML заменён на Hjson, из-за его гораздо большей простоты, без
852 заметной потери функционала и удобства.
855 @strong{Несовместимое} изменение формата простых пакетов. Работа со
856 старыми версиями не поддерживается. @code{zlib} сжатие заменено на
857 @code{Zstandard}, так как оно значительно быстрее и эффективнее, не
858 смотря на то, что версия библиотеки ещё не проверена временем.
861 Возможность соединяться с удалёнными нодами не только по TCP, но и через
862 pipe вызов сторонней команды.
865 @command{nncp-cfgnew} генерирует конфигурационный файл с множеством
866 комментариев. Можно использовать @option{-nocomments} опцию для старого
870 Дубликаты имён файлов имеют суффикс @file{.CTR}, вместо @file{CTR},
871 чтобы избежать возможных коллизий с @file{.nncp.chunkCTR}.
874 Возможность переопределить umask процесса через опцию конфигурационного
878 По умолчанию файлы и директории создаются с 666/777 правами доступа,
879 позволяя управлять ими @command{umask}-ом.
882 Обновлены зависимости.
885 Полное использование go модулей для управления зависимостями
886 (используется @code{go.cypherpunks.ru/nncp/v5} namespace).
889 Отмена автоматического использования более новых версий GNU GPL
890 (лицензия проекта GNU GPLv3-только).
895 @subsection Релиз 4.1
897 @item Восстановлена работоспособность на GNU/Linux системах и Go версии 1.10.
901 @subsection Релиз 4.0
905 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов:
906 используется AEAD режим шифрования с 128 КиБ блоками, так как раньше
907 @command{nncp-toss} не проверял MAC зашифрованного пакета прежде чем
908 отсылать дешифрованные данные внешней команде. Старые версии не
912 Проверка доступного места перед копированием во время работы
913 @command{nncp-xfer}, @command{nncp-daemon}, @command{nncp-call(er)}.
916 @command{nncp-call} имеет возможность только показывать список пакетов
917 на удалённой машине, без их передачи.
920 @command{nncp-call} имеет возможность передавать только чётко указанные пакеты.
923 Восстановлена работоспособность @option{xxrate} настройки в
924 @option{calls} секции конфигурационного файла.
927 Зависимые библиотеки обновлены.
930 Небольшие исправления ошибок.
933 Начало использования @code{go.mod} подсистемы.
938 @subsection Релиз 3.4
940 @item @command{nncp-daemon} может быть запущен как @command{inetd}-служба.
944 @subsection Релиз 3.3
948 @command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller}
949 проверяют существование @file{.seen} файла и расценивают его как то, что
950 файл уже был скачан. Возможно передача данных была осуществлена
951 сторонним способом и удалённая сторона должна быть оповещена об этом.
954 Если более высокоприоритетный пакет попадает в спул, то
955 @command{nncp-daemon} добавит его в очередь отправки первым, прерывая
956 низкоприоритетные передачи.
959 К средствам связанным с online-соединениями (@command{nncp-daemon},
960 @command{nncp-call}, @command{nncp-caller}) добавлен простой
961 ограничитель скорости.
964 Возможность задания приоритета символьными обозначениями:
965 @verb{|NORMAL|}, @verb{|BULK+10|}, @verb{|PRIORITY-5|}, итд.
968 Изменены значения приоритетов по-умолчанию:
969 для @command{nncp-exec} с 64 на 96,
970 для @command{nncp-freq} с 64 на 160,
971 для @command{nncp-file} с 196 на 224.
976 @subsection Релиз 3.2
979 @strong{Несовместимое} изменение формата @emph{bundle} архивов и
980 работоспособность @command{nncp-bundle} команды с Go 1.10+. Bundle
981 должен быть корректным tar архивом, но Go 1.9 делал его недействительным
982 из-за длинных путей внутри. NNCP нечаянно был зависим от этой баги.
983 Явное добавление @file{NNCP/} директории в архив восстанавливает
984 работоспособность с корректными tar архивами.
988 @subsection Релиз 3.1
991 Возможность отключать пересылку через промежуточные ноды используя
992 @verb{|-via -|} опцию командной строки.
996 @subsection Релиз 3.0
1000 @strong{Несовместимое} изменение формата простых пакетов. Работа со
1001 старыми версиями не поддерживается.
1004 Добавлена возможность удалённого исполнения команд, путём
1005 конфигурирования @option{exec} опции конфигурационного файла и
1006 использования команды @command{nncp-exec}:
1009 Команда @command{nncp-mail} заменена более гибкой и широкой
1010 @command{nncp-exec}. Вместо вызова @verb{|nncp-mail NODE RECIPIENT|}
1011 нужно использовать @verb{|nncp-exec NODE sendmail RECIPIENT|}.
1013 @option{sendmail} опция конфигурационного файла заменена на более гибкую
1014 @option{exec}. @code{sendmail: [@dots{}]} нужно заменить на
1015 @code{exec: sendmail: [@dots{}]}.
1019 Возможность переопределить @option{via} опцию конфигурации для целевого
1020 узла через @option{-via} опцию командной строки для следующих команд:
1021 @command{nncp-file}, @command{nncp-freq}, @command{nncp-exec}.
1024 Chunked файлы, меньшего размера чем указанный chunk, отправляются просто
1025 в виде одного файла.
1028 Exec команды вызываются с дополнительными переменными окружения
1029 @env{$NNCP_NICE} и @env{$NNCP_SELF}.
1032 Отправляемые файлы в ответ на запрос имеют приоритет указанный в запросе.
1033 Указать их желаемый приоритет во время вызова @command{nncp-freq} можно
1034 аргументом @option{-replynice}.
1037 Команде @command{nncp-toss} можно сказать не обрабатывать определённые
1038 типы пакетов, за счёт опций @option{-nofile}, @option{-nofreq},
1039 @option{-noexec}, @option{-notrns}.
1042 По-умолчанию @command{nncp-file} команда для
1043 @option{-minsize}/@option{-chunked} опций использует
1044 @option{FreqMinSize}/@option{FreqChunked} из конфигурационного файла.
1045 Это можно отключить указав нулевое значение.
1050 @subsection Релиз 2.0
1054 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов.
1055 Работа со старыми версиями не поддерживается.
1058 Алгоритм шифрования Twofish заменён на ChaCha20. Он намного быстрее.
1059 Одним криптографическим примитивом меньше.
1062 HKDF-BLAKE2b-256 KDF алгоритм заменён на BLAKE2Xb XOF. Ещё одним
1063 криптографическим примитивом меньше (предполагая, что BLAKE2X
1064 практически идентичен BLAKE2).
1069 @subsection Релиз 1.0
1073 @strong{Несовместимое} изменение формата зашифрованных пакетов. Работа
1074 со старыми версиями не поддерживается.
1077 @command{nncp-bundle} команда может создавать потоки зашифрованных
1078 пакетов или потреблять их. Это полезно когда речь идёт о
1079 @code{stdin}/@code{stdout} методах передачи (например запись на CD-ROM
1080 без создания промежуточного подготовленного ISO образа или работа с
1081 ленточными накопителями).
1084 @command{nncp-toss} команда может создавать @file{.seen} файлы,
1085 предотвращая приём дублированных пакетов.
1088 В команде @command{nncp-call} разрешается иметь только одного
1089 обработчика контрольной суммы в фоне. Это полезно когда тысячи маленьких
1090 входящих пакетов могут создать много горутин.
1093 Возможность переопределить путь до spool директории и файла журнала
1094 через аргумент командной строки или переменную окружения.
1097 @command{nncp-rm} команда может удалять все исходящие/входящие,
1098 @file{.seen}, @file{.part}, @file{.lock} и временные файлы.
1103 @subsection Релиз 0.12
1105 @item Команда sendmail вызывается с @env{$NNCP_SENDER} переменной окружения.
1109 @subsection Релиз 0.11
1111 @item Вывод команды @command{nncp-stat} отсортирован по имени ноды.
1115 @subsection Релиз 0.10
1118 @file{DST} аргумент @command{nncp-freq} команды теперь опционален.
1119 По-умолчанию будет подставлен последний элемент @file{SRC} пути.
1123 @subsection Релиз 0.9
1126 Исправлена обработка @option{-rx}/@option{-tx} опций @command{nncp-call}
1127 команды. Они игнорировались.
1131 @subsection Релиз 0.8
1134 Небольшое исправление ошибки в команде @command{nncp-file}, где опция
1135 @option{-minsize} для передачи без разбиения на части была в байтах, а
1140 @subsection Релиз 0.7
1144 Возможность предоставлять данные для @command{nncp-file} через
1145 стандартный ввод, используя временный зашифрованный файл для этого.
1148 Появилась возможность передачи файлов разбитых на части, с сопутствующей
1149 @command{nncp-reass} командой и @option{freqchunked} опцией
1150 конфигурационного файла. Полезно для передачи больших файлов через
1151 маленькие устройства хранения.
1154 @option{freqminsize} опция конфигурационного файла, аналогичная
1158 Опция @option{-force} команды @command{nncp-xfer} переименована в
1159 @option{-mkdir} для ясности.
1162 Опция @option{-minsize} задаётся в KiB, а не байтах, для удобства.
1165 Команда @command{nncp-newcfg} переименована в @command{nncp-cfgnew},
1166 а @command{nncp-mincfg} в @command{nncp-cfgmin}, для того чтобы они
1167 имели общий префикс и были сгруппированы для удобства.
1170 Появилась команда @command{nncp-cfgenc}, позволяющая
1171 шифровать/дешифровать конфигурационный файл, чтобы безопасно его хранить
1172 без использования OpenPGP или других подобных инструментов.
1175 Обновлены зависимые криптографические библиотеки.
1180 @subsection Релиз 0.6
1182 @item Появилась небольшая команда @command{nncp-rm}.
1183 @item Обновлены зависимые криптографические библиотеки.
1187 @subsection Релиз 0.5
1190 Тривиальное небольшое исправление в значениях приоритетов по-умолчанию в
1191 @command{nncp-file} и @command{nncp-freq} командах.
1195 @subsection Релиз 0.4
1199 Небольшое исправление в @command{nncp-call}, @command{nncp-caller},
1200 @command{nncp-daemon}: иногда они могли падать с segmentation fault
1201 ошибкой (данные не терялись).
1204 @command{nncp-newnode} переименована в @command{nncp-newcfg} --
1205 это короче и удобнее для использования.
1208 Появилась команда @command{nncp-mincfg}: вспомогательная утилита
1209 позволяющая создать минималистичный урезанный конфигурационный файл без
1210 приватных ключей, что полезно во время использования @command{nncp-xfer}.
1215 @subsection Релиз 0.3
1217 @item Исправлена совместимость с Go 1.6.
1221 @subsection Релиз 0.2
1225 @strong{Несовместимое} изменение формата пакета (магическое число тоже
1226 изменено): поле размера пакета шифруется и не посылается в открытом виде.
1229 @option{-minsize} опция даёт возможность автоматически дополнять
1230 исходящие пакеты до указанного минимального размера.
1233 @command{nncp-daemon} и @command{nncp-call}/@command{nncp-caller} всегда
1234 в фоне проверяют появление исходящих @emph{tx} пакетов пока подключены.
1235 Удалённая сторона сразу же оповещается об этом.
1238 @option{-onlinedeadline} опция даёт возможность выставления timeout-а на
1239 неактивность в online соединении, когда оно должно быть отключено. Она
1240 может быть использована для сохранения соединения на долгое время.
1243 @option{-maxonlinetime} опция даёт возможность указания максимального
1244 возможного времени жизни соединения.
1247 Появилась @command{nncp-caller} команда: клиент TCP-демона работающий по
1251 @command{nncp-pkt} команда может разжимать данные.