5 @subsection Релиз 8.6.0
9 @command{nncp-xfer} проверяет сходится ли контрольная сумма
10 скопированного локально пакета и исходного.
13 Появилась @command{nncp-ack} команда, которая отправляет явное
14 подтверждение доставки пакета (ACK пакет). Это подтверждение удаляет
15 упомянутый пакет из исходящего spool-а.
18 Появилась возможность отключения @code{fsync} операции
19 @env{$NNCPNOSYNC=1} переменной окружения.
22 Добавлены разнообразные индексы в документации, что должно помочь при
28 @subsection Релиз 8.5.0
32 Исправлена работоспособность @command{nncp-bundle}.
35 По ошибке @option{-mcd-wait} опция у @command{nncp-call} была включена
39 Возможность переопределять внутренний timeout по умолчанию для протокола
40 синхронизации через @env{$NNCPDEADLINE} переменную окружения. Может быть
41 полезно для каналов с очень большими задержками.
44 NNCP собирается на OpenBSD.
49 @subsection Релиз 8.4.0
53 Имена интерфейсов относящихся к multicast (@code{mcd-listen} и
54 @code{mcd-send} опции конфигурации) теперь являются регулярными
55 выражениями. По умолчанию @command{nncp-cfgnew} не комментирует
56 их теперь и прописывает @code{.*} имя интерфейса.
59 У @command{nncp-call} команды появился @option{-mcd-wait} аргумент,
60 позволяющий дожидаться multicast сообщения об адресе ноды.
63 @command{nncp-file} команда пропускает всё что не является регулярным
64 файлом или директорией во время создания pax-архива.
69 @subsection Релиз 8.3.0
73 Исправлена возможность сборки на 32-бит системах.
78 @subsection Релиз 8.2.0
82 Yggdrasil использует IPv6+TCP сетевой стэк написанный полностью на Go,
83 вместо голого μTP транспортного протокола, делая возможным работу в
84 качестве обычного TCP сервера внутри overlay сети.
87 Конфигурационные строки Yggdrasil вида @code{prv;bind1,bind2;pub...}
88 заменены на URL-подобные (@code{yggdrasils://PRV?bind=BIND1&bind=BIND2&pub=PUB}).
91 Возможно передавать параметры Yggdrasil конфигурации связанные с multicast.
94 @command{nncp-daemon} может слушать одновременно и на TCP и на
95 Yggdrasil-управляемом сокетах.
98 Слушание на endpoint сокете для пиринга в @command{nncp-daemon}
99 опционально -- вы можете быть доступны и через связь с peer-ами.
104 @subsection Релиз 8.1.0
108 @command{nncp-cfgdir} команда не требует обязательного наличия
109 @code{self} секции конфигурационного файла.
112 Появилась возможность работы в качестве клиента overlay сети Yggdrasil,
113 используя online протокол поверх неё.
118 @subsection Релиз 8.0.2
122 Исправлена возможность отправки мультивещательных пакетов.
127 @subsection Релиз 8.0.1
131 Исправлено некорректное вычисление @code{freq.chunked} значения, при
132 отсутствии которого всё равно форсированно включалась chunked передача.
135 Исправлено некорректное вычисление значения полного размера файла в
141 @subsection Релиз 8.0.0
145 @strong{Несовместимое} изменение формата зашифрованных пакетов: размеры
146 полезной нагрузки и дополнения посылаются прямо внутри зашифрованного
147 потока. Это даёт возможность потоково создавать шифрованные пакеты, без
148 знания размеров заранее, без создания временного файла или буферизации в
152 Производится корректная проверка дополнения зашифрованного пакета. Это
153 не критичная проблема, но прежде ни размер, ни значение дополнения не
154 были аутентифицированы, позволяя циклично откусывать по байту с конца и
155 узнавать размер полезной нагрузки, наблюдая за реакцией по обработке
156 такого зашифрованного пакета.
159 @command{nncp-exec} больше не имеет @option{-use-tmp} опции, из-за
160 совместимого с потоковой работой формата зашифрованных пакетов.
163 У @command{nncp-file} и @command{nncp-exec} команд появилась опция
164 @option{-maxsize}, ограничивающая максимальный результирующий размер
165 зашифрованного пакета (возвращая ошибку если он превышен). Может быть
166 полезно, так как размер полезной нагрузки может быть неизвестен заранее.
171 @subsection Релиз 7.7.0
175 Экспериментальная поддержка @code{kqueue} и @code{inotify} оповещений об
176 изменениях в spool директориях, для сокращения накладных расходов на их
180 @file{.seen} и @file{.hdr} файлы находятся в @file{seen/} и @file{hdr/}
181 поддиректориях теперь, дабы ускорить сканирование spool областей.
182 Необходима миграция текущих файлов:
185 $ find $NNCPSPOOL -type f -name "*.hdr" -exec rm @{@} +
187 $ find $NNCPSPOOL -type d -name rx | while read rx ; do
190 find . -type f -name "*.seen" | while read fn ; do
191 mv $fn seen/$@{fn%.seen@}
195 $ find $NNCPSPOOL -type d -name area | while read area ; do
196 find $area -type f -name "*.seen" | while read fn ; do
205 @subsection Релиз 7.6.0
209 Журналирование может производиться в назначенный открытый файловый
210 дескриптор (@env{$NNCPLOG=FD:5} например).
211 Что дружелюбно к использованию под @command{daemontools}.
214 Добавлены дополнительные проверки наличия публичных ключей в
215 конфигурационном файле, предотвращающие падения некоторых команд.
220 @subsection Релиз 7.5.1
224 NNCP собирается на NetBSD.
229 @subsection Релиз 7.5.0
233 @command{nncp-daemon} соблюдает UCSPI-TCP интерфейс, благодаря чему в
234 журнале будет присутствовать адрес удалённой системы (при запуске под
235 совместимой утилитой). Желательно применять @option{-ucspi} опцию вместо
239 @command{nncp-call} может быть UCSPI-TCP клиентом, используя
240 @option{-ucspi} опцию.
243 Не выходить если не получается слушать на каком-либо MCD сетевом
244 интерфейсе -- только предупреждать об ошибке.
249 @subsection Релиз 7.4.0
253 Исправлена работоспособность MCD при одновременном использовании
254 @command{nncp-daemon} и @command{nncp-caller}.
259 @subsection Релиз 7.3.2
263 @command{hjson-cli} утилита теперь собирается в vendor-режиме.
268 @subsection Релиз 7.3.1
272 Исправлена проблема с возможно остающимся открытым файловым
273 дескриптором в online командах.
276 Существенно снижено потребление памяти MTH хэширования.
281 @subsection Релиз 7.3.0
285 Поправлены проблемы работоспособности на 32-бит системах с большими файлами.
288 Возможность использовать конфигурацию в виде директории с набором
289 файлов. Появилась команда @command{nncp-cfgdir}.
294 @subsection Релиз 7.2.1
298 Небольшие оптимизации в online командах.
303 @subsection Релиз 7.2.0
307 Появилась @command{nncp-trns} команда для ручного создания транзитных пакетов.
310 Если у целевой ноды транзитного пакета задан @option{via} маршрут, то
311 использовать его, а не игнорировать.
314 Не отправлять multicast пакет оригинатору сообщения, очевидно точно
315 видящего свой собственный пакет.
318 Намного меньшее потребление памяти во время MTH хэширования когда
319 смещение равно нулю: когда пакет не является докачиванием, а например
320 проверяется @command{nncp-check} командой.
325 @subsection Релиз 7.1.1
329 Исправлено падение при @code{fsync} директорий после создания @file{.seen} файлов.
334 @subsection Релиз 7.1.0
338 Появилась возможность мультивещательной (multicast) рассылки пакетов.
339 Реализовано всего лишь дополнительным типом простых пакетов и изменением
340 @command{nncp-toss}, @command{nncp-file} и @command{nncp-exec} команд.
343 Исправлена работоспособность @command{nncp-file} и @command{nncp-exec}
344 команд использующих временный файл (stdin и @option{-use-tmp}).
347 Исправлен пропадающий плохой код возврата в @command{nncp-exec} команде.
350 Исправлено некорректное генерирование @file{.hdr} при использовании
354 У @command{nncp-rm} команды появилась @option{-all} опция, применяемая
358 У @command{nncp-check} команды появилась @option{-cycle} опция, вводящая
359 проверку в бесконечный цикл.
362 У @command{nncp-rm} команды можно указывать alias-ы имён нод.
365 @command{nncp-pkt} может парсить @file{.hdr} файлы.
370 @subsection Релиз 7.0.0
374 Минимальная требуемая версия Go 1.13.
377 Хэширование с BLAKE3 на базе деревьев Меркле (Merkle Tree Hashing, MTH)
378 используется вместо BLAKE2b. Из-за этого, обратно @strong{несовместимое}
379 изменение формата шифрованных файлов (всего что находится в spool
380 области) и формата @file{.meta} файла при chunked передаче.
382 Текущая реализация далека от оптимальной: в ней нет распараллеливания
383 вычислений и имеет повышенное потребление памяти: около 512 KiB на
384 каждый 1 GiB данных файла. Будущая оптимизация производительности и
385 потребления памяти не должна привести к изменению формата пакетов. Но
386 это всё равно в несколько раз быстрее BLAKE2b.
389 Из-за использования MTH, докачиваемые в online режиме файлы потребуют
390 чтения с диска только предшествующей части, а не полностью всего файла,
394 Добавлена @command{nncp-hash} утилита для вычисления MTH хэша файла.
397 В шифрованных пакетах BLAKE2 KDF и XOF функции заменены на BLAKE3. Ещё
398 уменьшая количество примитивов. А также заголовок шифрованного файла
399 теперь является ассоциированными данными при шифровании.
402 MultiCast Discovery использует
403 @verb{|ff02::4e4e:4350|} адрес вместо @verb{|ff02::1|}.
406 @command{nncp-cfgenc} ошибочно трижды спрашивал парольную фразу при шифровании.
409 @command{nncp-stat} выводит сводку о частично скачанных пакетах.
412 Обновлены зависимые библиотеки.
417 @subsection Релиз 6.6.0
421 @command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}
422 ожидают завершения всех процессов фоновой проверки контрольных сумм,
423 после того как соединение закрыто.
426 Добавлена возможность определения адреса через multicast оповещение в
427 локальной сети, так называемый MCD (MultiCast Discovery).
432 @subsection Релиз 6.5.0
436 Исправлено падение в @command{nncp-daemon} когда SP рукопожатие не было успешно.
439 Исправлено возможное игнорирование плохого кода возврата автоматического tosser.
442 Исправлена гонка при закрытии файловых дескрипторов во время завершения
443 работы online протокола, которая могла привести к ошибке записи
444 принятого фрагмента пакета.
447 Убирать показ прогресса передачи пакетов когда вызов уже завершён в
448 @command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}.
453 @subsection Релиз 6.4.0
457 Исправлена возможная гонка в online протоколе, приводящая к падению
463 @subsection Релиз 6.3.0
467 Исправлено возможное падение программы во время показа прогресса online
473 @subsection Релиз 6.2.1
477 В трёх местах сообщений журналов по ошибке остались лишние @code{%s}.
482 @subsection Релиз 6.2.0
486 Возвращена работоспособность @option{-autotoss*} опций @command{nncp-caller}.
489 Очередной рефакторинг и упрощение системы журналирования.
490 Не должно быть видимых изменений для конечного пользователя.
495 @subsection Релиз 6.1.0
499 Оптимизация: большинство команд теперь не держат открытыми файловые
500 дескрипторы. Прежде вы легко могли выйти за пределы максимально
501 допустимого количества открытых файлов, если у вас было много пакетов в
505 Оптимизация: не закрывать файловый дескриптор файла который мы качаем.
506 Прежде каждый его кусочек приводил к дорогим open/close вызовам.
509 Скачиваемые в режиме online файлы теперь сохраняются с @file{.nock}
510 суффиксом (non-checksummed), ожидая пока либо @command{nncp-check}, либо
511 online демоны не выполнят проверку целостности.
514 Оптимизация: для файлов, скачивание которых не было продолжено, сразу же
515 вычисляет контрольная сумма, пропуская промежуточный @file{.nock} шаг.
518 Возможность хранения заголовков зашифрованных пакетов в @file{.hdr}
519 файлах, рядом с самими пакетами. Это может существенно повысить скорость
520 получения списка пакетов на файловых системах с большим размером блока.
525 @subsection Релиз 6.0.0
529 Журнал использует человеко-читаемый и легко обрабатываемый машиной
530 @url{https://www.gnu.org/software/recutils/, recfile} формат для своих
531 записей, вместо структурированных строчек RFC 3339. Старый формат
532 журналов не поддерживается @command{nncp-log}.
535 Работоспособность @option{-autotoss*} опции с @option{-inetd} режимом
536 @command{nncp-daemon}.
539 @option{when-tx-exists} опция вызова в конфигурационном файле позволяет
540 делать вызов только если имеются исходящие сообщения. Совмещённая с cron
541 выражением содержащим секунды, это можно использовать как возможность
542 вызова только при появлении исходящих пакетов.
545 @command{nncp-cronexpr} команда позволяет проверить корректность и
546 ожидаемый результат от указанного cron выражения.
551 @subsection Релиз 5.6.0
555 @option{-autotoss*} опции запускают tosser не после завершения вызова, а
556 во время него ежесекундно.
559 В @option{calls} секции конфигурации появились опции
560 @option{autotoss}, @option{autotoss-doseen},
561 @option{autotoss-nofile}, @option{autotoss-nofreq},
562 @option{autotoss-noexec}, @option{autotoss-notrns}.
563 Вы можете настраивать опции автоматического tosser для каждого вызова.
566 Использовать vendoring вместо переопределения @env{$GOPATH} во время
567 установки tarball, так как текущая минимальная версия Go это 1.12,
568 поддерживающая модули.
573 @subsection Релиз 5.5.1
577 Уважать @env{$BINDIR}, @env{$INFODIR} и @env{$DOCDIR} переменные окружения
578 в @file{config} во время установки.
583 @subsection Релиз 5.5.0
587 Исправления ошибок в @command{nncp-call(er)}/@command{nncp-daemon},
588 @command{nncp-bundle}, @command{nncp-stat} командах.
591 У команды @command{nncp-rm} появились @option{-dryrun} и @option{-older} опции.
594 У команды @command{nncp-exec} появились @option{-use-tmp} и
595 @option{-nocompress} опции. Несжатые пакеты не совместимы с предыдущими
599 У команд @command{nncp-call}, @command{nncp-caller} и @command{nncp-daemon}
600 появились @option{-autotoss*} опции для запуска tosser после завершения звонка.
603 Обновлены зависимые библиотеки. Минимальная требуемая версия Go 1.12.
608 @subsection Релиз 5.4.1
612 Исправлена ошибка с учётом @code{SENDMAIL} переменной при сборке.
617 @subsection Релиз 5.4.0
621 Обновлены зависимые библиотеки.
624 Система сборки переведена с Makefile-ов на @url{http://cr.yp.to/redo.html, redo}.
625 Это не должно повлиять на мейнтейнеров пакетов, так как минимальная
626 реализация @command{redo} включена в tarball.
631 @subsection Релиз 5.3.3
635 Больше различных проверок в коде на ошибки.
638 Обновлены зависимые библиотеки.
643 @subsection Релиз 5.3.2
647 Исправлена некорректная логика @option{onlinedeadline} timeout-а, при
648 котором соединение могло не учитывать факты прихода пакетов и обрывать
654 @subsection Релиз 5.3.1
658 Исправлена работоспособность @option{onlinedeadline} с адресами вызова
659 использующими внешние команды (@verb{#"|somecmd"#}).
662 @command{nncp-stat} имеет опцию @option{-pkt} показывающую информацию по
663 каждому пакету в spool.
668 @subsection Релиз 5.3.0
672 Сообщения прогресса содержат префикс, поясняющий выполняемое действие.
675 Исправлено не происходящее дополнение (padding) handshake сообщений.
678 Завершать все порождаемые в SP протоколе горутины, меньше утечек памяти.
681 SP протокол порождает меньше вызовов записей (соответственно, и TCP
685 Проверять @option{onlinedeadline} и @option{maxonlinetime} ежесекундно,
686 независимо от чтения из сокета (раз в 10 секунд в худшем случае).
689 Раз в минуту, если нет более никакого другого трафика, посылаются PING
690 пакеты в SP-соединении. Это позволит быстрее понимать что соединение
691 более не работоспособно.
694 @command{nncp-toss} использует lock-file для предотвращения
695 одновременной обработки зашифрованных пакетов.
700 @subsection Релиз 5.2.1
704 Исправлена обработка ошибки SP протокола, иногда вызывающая панику программы.
709 @subsection Релиз 5.2.0
713 Большинство команд по умолчанию показывают однострочный прогресс
714 выполнения операции. Появились @option{-progress}, @option{-noprogress}
715 опции командной строки, @option{noprogress} опция конфигурационного
719 Исправлен некорректный код возврата @command{nncp-check} команды,
720 который возвращал ошибку когда всё хорошо.
723 Проверка свободного места для пакетов, во время выполнения
724 @command{nncp-bundle -rx}.
729 @subsection Релиз 5.1.2
733 Исправлена @strong{критичная} уязвимость: аутентификация online нод
734 могла приводить к некорректной идентификации удалённой стороны, позволяя
735 скачивать чужие зашифрованные пакеты.
738 Исправлена ошибка: в новосозданных конфигурационных файлах, приватный
739 публичный ключ Noise были поменяны местами, что приводило к
740 невозможности online аутентификации нод.
743 Явная синхронизация (@code{fsync}) директорий для гарантированного
744 переименования файлов.
749 @subsection Релиз 5.1.1
753 Исправлена работоспособность @command{nncp-file} с @option{-chunked 0} опцией.
758 @subsection Релиз 5.1.0
762 @command{nncp-file} может отправлять директории, автоматически на лету
766 Во время создания исходящих сообщений проверяется наличие свободного
767 места на файловой системе.
770 @option{freq}, @option{freqminsize}, @option{freqchunked} опции
771 конфигурационного файла заменены на структуру
772 @option{freq: @{path: @dots{}, minsize: @dots{}, chunked: @dots{}@}}.
775 Добавлена @option{freq.maxsize} опция конфигурационного файл,
776 запрещающая ответ на файловый запрос больше заданного размера.
779 Возможность оповещения об успешно выполненных командах (exec) через
780 @option{notify.exec} опцию конфигурационного файла.
785 @subsection Релиз 5.0.0
789 @strong{Несовместимое} изменение формата конфигурационного файла:
790 YAML заменён на Hjson, из-за его гораздо большей простоты, без
791 заметной потери функционала и удобства.
794 @strong{Несовместимое} изменение формата простых пакетов. Работа со
795 старыми версиями не поддерживается. @code{zlib} сжатие заменено на
796 @code{Zstandard}, так как оно значительно быстрее и эффективнее, не
797 смотря на то, что версия библиотеки ещё не проверена временем.
800 Возможность соединяться с удалёнными нодами не только по TCP, но и через
801 pipe вызов сторонней команды.
804 @command{nncp-cfgnew} генерирует конфигурационный файл с множеством
805 комментариев. Можно использовать @option{-nocomments} опцию для старого
809 Дубликаты имён файлов имеют суффикс @file{.CTR}, вместо @file{CTR},
810 чтобы избежать возможных коллизий с @file{.nncp.chunkCTR}.
813 Возможность переопределить umask процесса через опцию конфигурационного
817 По умолчанию файлы и директории создаются с 666/777 правами доступа,
818 позволяя управлять ими @command{umask}-ом.
821 Обновлены зависимости.
824 Полное использование go модулей для управления зависимостями
825 (используется @code{go.cypherpunks.ru/nncp/v5} namespace).
828 Отмена автоматического использования более новых версий GNU GPL
829 (лицензия проекта GNU GPLv3-только).
834 @subsection Релиз 4.1
836 @item Восстановлена работоспособность на GNU/Linux системах и Go версии 1.10.
840 @subsection Релиз 4.0
844 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов:
845 используется AEAD режим шифрования с 128 КиБ блоками, так как раньше
846 @command{nncp-toss} не проверял MAC зашифрованного пакета прежде чем
847 отсылать дешифрованные данные внешней команде. Старые версии не
851 Проверка доступного места перед копированием во время работы
852 @command{nncp-xfer}, @command{nncp-daemon}, @command{nncp-call(er)}.
855 @command{nncp-call} имеет возможность только показывать список пакетов
856 на удалённой машине, без их передачи.
859 @command{nncp-call} имеет возможность передавать только чётко указанные пакеты.
862 Восстановлена работоспособность @option{xxrate} настройки в
863 @option{calls} секции конфигурационного файла.
866 Зависимые библиотеки обновлены.
869 Небольшие исправления ошибок.
872 Начало использования @code{go.mod} подсистемы.
877 @subsection Релиз 3.4
879 @item @command{nncp-daemon} может быть запущен как @command{inetd}-служба.
883 @subsection Релиз 3.3
887 @command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller}
888 проверяют существование @file{.seen} файла и расценивают его как то, что
889 файл уже был скачан. Возможно передача данных была осуществлена
890 сторонним способом и удалённая сторона должна быть оповещена об этом.
893 Если более высокоприоритетный пакет попадает в спул, то
894 @command{nncp-daemon} добавит его в очередь отправки первым, прерывая
895 низкоприоритетные передачи.
898 К средствам связанным с online-соединениями (@command{nncp-daemon},
899 @command{nncp-call}, @command{nncp-caller}) добавлен простой
900 ограничитель скорости.
903 Возможность задания приоритета символьными обозначениями:
904 @verb{|NORMAL|}, @verb{|BULK+10|}, @verb{|PRIORITY-5|}, итд.
907 Изменены значения приоритетов по-умолчанию:
908 для @command{nncp-exec} с 64 на 96,
909 для @command{nncp-freq} с 64 на 160,
910 для @command{nncp-file} с 196 на 224.
915 @subsection Релиз 3.2
918 @strong{Несовместимое} изменение формата @emph{bundle} архивов и
919 работоспособность @command{nncp-bundle} команды с Go 1.10+. Bundle
920 должен быть корректным tar архивом, но Go 1.9 делал его недействительным
921 из-за длинных путей внутри. NNCP нечаянно был зависим от этой баги.
922 Явное добавление @file{NNCP/} директории в архив восстанавливает
923 работоспособность с корректными tar архивами.
927 @subsection Релиз 3.1
930 Возможность отключать пересылку через промежуточные ноды используя
931 @verb{|-via -|} опцию командной строки.
935 @subsection Релиз 3.0
939 @strong{Несовместимое} изменение формата простых пакетов. Работа со
940 старыми версиями не поддерживается.
943 Добавлена возможность удалённого исполнения команд, путём
944 конфигурирования @option{exec} опции конфигурационного файла и
945 использования команды @command{nncp-exec}:
948 Команда @command{nncp-mail} заменена более гибкой и широкой
949 @command{nncp-exec}. Вместо вызова @verb{|nncp-mail NODE RECIPIENT|}
950 нужно использовать @verb{|nncp-exec NODE sendmail RECIPIENT|}.
952 @option{sendmail} опция конфигурационного файла заменена на более гибкую
953 @option{exec}. @verb{|sendmail: [...]|} нужно заменить на @verb{|exec:
958 Возможность переопределить @option{via} опцию конфигурации для целевого
959 узла через @option{-via} опцию командной строки для следующих команд:
960 @command{nncp-file}, @command{nncp-freq}, @command{nncp-exec}.
963 Chunked файлы, меньшего размера чем указанный chunk, отправляются просто
967 Exec команды вызываются с дополнительными переменными окружения
968 @env{$NNCP_NICE} и @env{$NNCP_SELF}.
971 Отправляемые файлы в ответ на запрос имеют приоритет указанный в запросе.
972 Указать их желаемый приоритет во время вызова @command{nncp-freq} можно
973 аргументом @option{-replynice}.
976 Команде @command{nncp-toss} можно сказать не обрабатывать определённые
977 типы пакетов, за счёт опций @option{-nofile}, @option{-nofreq},
978 @option{-noexec}, @option{-notrns}.
981 По-умолчанию @command{nncp-file} команда для
982 @option{-minsize}/@option{-chunked} опций использует
983 @option{FreqMinSize}/@option{FreqChunked} из конфигурационного файла.
984 Это можно отключить указав нулевое значение.
989 @subsection Релиз 2.0
993 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов.
994 Работа со старыми версиями не поддерживается.
997 Алгоритм шифрования Twofish заменён на ChaCha20. Он намного быстрее.
998 Одним криптографическим примитивом меньше.
1001 HKDF-BLAKE2b-256 KDF алгоритм заменён на BLAKE2Xb XOF. Ещё одним
1002 криптографическим примитивом меньше (предполагая, что BLAKE2X
1003 практически идентичен BLAKE2).
1008 @subsection Релиз 1.0
1012 @strong{Несовместимое} изменение формата зашифрованных пакетов. Работа
1013 со старыми версиями не поддерживается.
1016 @command{nncp-bundle} команда может создавать потоки зашифрованных
1017 пакетов или потреблять их. Это полезно когда речь идёт о
1018 @code{stdin}/@code{stdout} методах передачи (например запись на CD-ROM
1019 без создания промежуточного подготовленного ISO образа или работа с
1020 ленточными накопителями).
1023 @command{nncp-toss} команда может создавать @file{.seen} файлы,
1024 предотвращая приём дублированных пакетов.
1027 В команде @command{nncp-call} разрешается иметь только одного
1028 обработчика контрольной суммы в фоне. Это полезно когда тысячи маленьких
1029 входящих пакетов могут создать много горутин.
1032 Возможность переопределить путь до spool директории и файла журнала
1033 через аргумент командной строки или переменную окружения.
1036 @command{nncp-rm} команда может удалять все исходящие/входящие,
1037 @file{.seen}, @file{.part}, @file{.lock} и временные файлы.
1042 @subsection Релиз 0.12
1044 @item Команда sendmail вызывается с @env{$NNCP_SENDER} переменной окружения.
1048 @subsection Релиз 0.11
1050 @item Вывод команды @command{nncp-stat} отсортирован по имени ноды.
1054 @subsection Релиз 0.10
1057 @file{DST} аргумент @command{nncp-freq} команды теперь опционален.
1058 По-умолчанию будет подставлен последний элемент @file{SRC} пути.
1062 @subsection Релиз 0.9
1065 Исправлена обработка @option{-rx}/@option{-tx} опций @command{nncp-call}
1066 команды. Они игнорировались.
1070 @subsection Релиз 0.8
1073 Небольшое исправление ошибки в команде @command{nncp-file}, где опция
1074 @option{-minsize} для передачи без разбиения на части была в байтах, а
1079 @subsection Релиз 0.7
1083 Возможность предоставлять данные для @command{nncp-file} через
1084 стандартный ввод, используя временный зашифрованный файл для этого.
1087 Появилась возможность передачи файлов разбитых на части, с сопутствующей
1088 @command{nncp-reass} командой и @option{freqchunked} опцией
1089 конфигурационного файла. Полезно для передачи больших файлов через
1090 маленькие устройства хранения.
1093 @option{freqminsize} опция конфигурационного файла, аналогичная
1097 Опция @option{-force} команды @command{nncp-xfer} переименована в
1098 @option{-mkdir} для ясности.
1101 Опция @option{-minsize} задаётся в KiB, а не байтах, для удобства.
1104 Команда @command{nncp-newcfg} переименована в @command{nncp-cfgnew},
1105 а @command{nncp-mincfg} в @command{nncp-cfgmin}, для того чтобы они
1106 имели общий префикс и были сгруппированы для удобства.
1109 Появилась команда @command{nncp-cfgenc}, позволяющая
1110 шифровать/дешифровать конфигурационный файл, чтобы безопасно его хранить
1111 без использования OpenPGP или других подобных инструментов.
1114 Обновлены зависимые криптографические библиотеки.
1119 @subsection Релиз 0.6
1121 @item Появилась небольшая команда @command{nncp-rm}.
1122 @item Обновлены зависимые криптографические библиотеки.
1126 @subsection Релиз 0.5
1129 Тривиальное небольшое исправление в значениях приоритетов по-умолчанию в
1130 @command{nncp-file} и @command{nncp-freq} командах.
1134 @subsection Релиз 0.4
1138 Небольшое исправление в @command{nncp-call}, @command{nncp-caller},
1139 @command{nncp-daemon}: иногда они могли падать с segmentation fault
1140 ошибкой (данные не терялись).
1143 @command{nncp-newnode} переименована в @command{nncp-newcfg} --
1144 это короче и удобнее для использования.
1147 Появилась команда @command{nncp-mincfg}: вспомогательная утилита
1148 позволяющая создать минималистичный урезанный конфигурационный файл без
1149 приватных ключей, что полезно во время использования @command{nncp-xfer}.
1154 @subsection Релиз 0.3
1156 @item Исправлена совместимость с Go 1.6.
1160 @subsection Релиз 0.2
1164 @strong{Несовместимое} изменение формата пакета (магическое число тоже
1165 изменено): поле размера пакета шифруется и не посылается в открытом виде.
1168 @option{-minsize} опция даёт возможность автоматически дополнять
1169 исходящие пакеты до указанного минимального размера.
1172 @command{nncp-daemon} и @command{nncp-call}/@command{nncp-caller} всегда
1173 в фоне проверяют появление исходящих @emph{tx} пакетов пока подключены.
1174 Удалённая сторона сразу же оповещается об этом.
1177 @option{-onlinedeadline} опция даёт возможность выставления timeout-а на
1178 неактивность в online соединении, когда оно должно быть отключено. Она
1179 может быть использована для сохранения соединения на долгое время.
1182 @option{-maxonlinetime} опция даёт возможность указания максимального
1183 возможного времени жизни соединения.
1186 Появилась @command{nncp-caller} команда: клиент TCP-демона работающий по
1190 @command{nncp-pkt} команда может разжимать данные.