5 @subsection Релиз 8.7.1
9 @command{nncp-xfer} теперь корректно проверяет наличие @file{seen/}
10 файлов для входящих пакетов.
15 @subsection Релиз 8.7.0
19 @command{nncp-ack} не подтверждает ACK-пакеты, предотвращая бесконечную
23 В прошлом, @command{nncp-ack} не удаляла соответствующие @file{hdr/} файлы.
26 @command{nncp-rm} теперь берёт список пакетов из @code{stdin}, при
27 использовании @option{-pkt} опции.
30 @command{nncp-ack} теперь генерирует список ACK пакетов, которые были
31 созданы, что может использоваться в качестве ввода для @command{nncp-rm}
32 команды, чтобы удалить исходящие ACK пакеты.
37 @subsection Релиз 8.6.0
41 @command{nncp-xfer} проверяет сходится ли контрольная сумма
42 скопированного локально пакета и исходного.
45 @command{nncp-call} имеет плохой код возврата если в очередях на приём и
46 отправку остаются незаконченные задания.
49 Появилась @command{nncp-ack} команда, которая отправляет явное
50 подтверждение доставки пакета (ACK пакет). Это подтверждение удаляет
51 упомянутый пакет из исходящего spool-а.
54 Появилась возможность отключения @code{fsync} операции
55 @env{$NNCPNOSYNC=1} переменной окружения.
58 Добавлены разнообразные индексы в документации, что должно помочь при
64 @subsection Релиз 8.5.0
68 Исправлена работоспособность @command{nncp-bundle}.
71 По ошибке @option{-mcd-wait} опция у @command{nncp-call} была включена
75 Возможность переопределять внутренний timeout по умолчанию для протокола
76 синхронизации через @env{$NNCPDEADLINE} переменную окружения. Может быть
77 полезно для каналов с очень большими задержками.
80 NNCP собирается на OpenBSD.
85 @subsection Релиз 8.4.0
89 Имена интерфейсов относящихся к multicast (@code{mcd-listen} и
90 @code{mcd-send} опции конфигурации) теперь являются регулярными
91 выражениями. По умолчанию @command{nncp-cfgnew} не комментирует
92 их теперь и прописывает @code{.*} имя интерфейса.
95 У @command{nncp-call} команды появился @option{-mcd-wait} аргумент,
96 позволяющий дожидаться multicast сообщения об адресе ноды.
99 @command{nncp-file} команда пропускает всё что не является регулярным
100 файлом или директорией во время создания pax-архива.
105 @subsection Релиз 8.3.0
109 Исправлена возможность сборки на 32-бит системах.
114 @subsection Релиз 8.2.0
118 Yggdrasil использует IPv6+TCP сетевой стэк написанный полностью на Go,
119 вместо голого μTP транспортного протокола, делая возможным работу в
120 качестве обычного TCP сервера внутри overlay сети.
123 Конфигурационные строки Yggdrasil вида @code{prv;bind1,bind2;pub@dots{}}
124 заменены на URL-подобные (@code{yggdrasils://PRV?bind=BIND1&bind=BIND2&pub=PUB}).
127 Возможно передавать параметры Yggdrasil конфигурации связанные с multicast.
130 @command{nncp-daemon} может слушать одновременно и на TCP и на
131 Yggdrasil-управляемом сокетах.
134 Слушание на endpoint сокете для пиринга в @command{nncp-daemon}
135 опционально -- вы можете быть доступны и через связь с peer-ами.
140 @subsection Релиз 8.1.0
144 @command{nncp-cfgdir} команда не требует обязательного наличия
145 @code{self} секции конфигурационного файла.
148 Появилась возможность работы в качестве клиента overlay сети Yggdrasil,
149 используя online протокол поверх неё.
154 @subsection Релиз 8.0.2
158 Исправлена возможность отправки мультивещательных пакетов.
163 @subsection Релиз 8.0.1
167 Исправлено некорректное вычисление @code{freq.chunked} значения, при
168 отсутствии которого всё равно форсированно включалась chunked передача.
171 Исправлено некорректное вычисление значения полного размера файла в
177 @subsection Релиз 8.0.0
181 @strong{Несовместимое} изменение формата зашифрованных пакетов: размеры
182 полезной нагрузки и дополнения посылаются прямо внутри зашифрованного
183 потока. Это даёт возможность потоково создавать шифрованные пакеты, без
184 знания размеров заранее, без создания временного файла или буферизации в
188 Производится корректная проверка дополнения зашифрованного пакета. Это
189 не критичная проблема, но прежде ни размер, ни значение дополнения не
190 были аутентифицированы, позволяя циклично откусывать по байту с конца и
191 узнавать размер полезной нагрузки, наблюдая за реакцией по обработке
192 такого зашифрованного пакета.
195 @command{nncp-exec} больше не имеет @option{-use-tmp} опции, из-за
196 совместимого с потоковой работой формата зашифрованных пакетов.
199 У @command{nncp-file} и @command{nncp-exec} команд появилась опция
200 @option{-maxsize}, ограничивающая максимальный результирующий размер
201 зашифрованного пакета (возвращая ошибку если он превышен). Может быть
202 полезно, так как размер полезной нагрузки может быть неизвестен заранее.
207 @subsection Релиз 7.7.0
211 Экспериментальная поддержка @code{kqueue} и @code{inotify} оповещений об
212 изменениях в spool директориях, для сокращения накладных расходов на их
216 @file{.seen} и @file{.hdr} файлы находятся в @file{seen/} и @file{hdr/}
217 поддиректориях теперь, дабы ускорить сканирование spool областей.
218 Необходима миграция текущих файлов:
221 $ find $NNCPSPOOL -type f -name "*.hdr" -exec rm @{@} +
223 $ find $NNCPSPOOL -type d -name rx | while read rx ; do
226 find . -type f -name "*.seen" | while read fn ; do
227 mv $fn seen/$@{fn%.seen@}
231 $ find $NNCPSPOOL -type d -name area | while read area ; do
232 find $area -type f -name "*.seen" | while read fn ; do
241 @subsection Релиз 7.6.0
245 Журналирование может производиться в назначенный открытый файловый
246 дескриптор (@env{$NNCPLOG=FD:5} например).
247 Что дружелюбно к использованию под @command{daemontools}.
250 Добавлены дополнительные проверки наличия публичных ключей в
251 конфигурационном файле, предотвращающие падения некоторых команд.
256 @subsection Релиз 7.5.1
260 NNCP собирается на NetBSD.
265 @subsection Релиз 7.5.0
269 @command{nncp-daemon} соблюдает UCSPI-TCP интерфейс, благодаря чему в
270 журнале будет присутствовать адрес удалённой системы (при запуске под
271 совместимой утилитой). Желательно применять @option{-ucspi} опцию вместо
275 @command{nncp-call} может быть UCSPI-TCP клиентом, используя
276 @option{-ucspi} опцию.
279 Не выходить если не получается слушать на каком-либо MCD сетевом
280 интерфейсе -- только предупреждать об ошибке.
285 @subsection Релиз 7.4.0
289 Исправлена работоспособность MCD при одновременном использовании
290 @command{nncp-daemon} и @command{nncp-caller}.
295 @subsection Релиз 7.3.2
299 @command{hjson-cli} утилита теперь собирается в vendor-режиме.
304 @subsection Релиз 7.3.1
308 Исправлена проблема с возможно остающимся открытым файловым
309 дескриптором в online командах.
312 Существенно снижено потребление памяти MTH хэширования.
317 @subsection Релиз 7.3.0
321 Поправлены проблемы работоспособности на 32-бит системах с большими файлами.
324 Возможность использовать конфигурацию в виде директории с набором
325 файлов. Появилась команда @command{nncp-cfgdir}.
330 @subsection Релиз 7.2.1
334 Небольшие оптимизации в online командах.
339 @subsection Релиз 7.2.0
343 Появилась @command{nncp-trns} команда для ручного создания транзитных пакетов.
346 Если у целевой ноды транзитного пакета задан @option{via} маршрут, то
347 использовать его, а не игнорировать.
350 Не отправлять multicast пакет оригинатору сообщения, очевидно точно
351 видящего свой собственный пакет.
354 Намного меньшее потребление памяти во время MTH хэширования когда
355 смещение равно нулю: когда пакет не является докачиванием, а например
356 проверяется @command{nncp-check} командой.
361 @subsection Релиз 7.1.1
365 Исправлено падение при @code{fsync} директорий после создания @file{.seen} файлов.
370 @subsection Релиз 7.1.0
374 Появилась возможность мультивещательной (multicast) рассылки пакетов.
375 Реализовано всего лишь дополнительным типом простых пакетов и изменением
376 @command{nncp-toss}, @command{nncp-file} и @command{nncp-exec} команд.
379 Исправлена работоспособность @command{nncp-file} и @command{nncp-exec}
380 команд использующих временный файл (@code{stdin} и @option{-use-tmp}).
383 Исправлен пропадающий плохой код возврата в @command{nncp-exec} команде.
386 Исправлено некорректное генерирование @file{.hdr} при использовании
390 У @command{nncp-rm} команды появилась @option{-all} опция, применяемая
394 У @command{nncp-check} команды появилась @option{-cycle} опция, вводящая
395 проверку в бесконечный цикл.
398 У @command{nncp-rm} команды можно указывать alias-ы имён нод.
401 @command{nncp-pkt} может парсить @file{.hdr} файлы.
406 @subsection Релиз 7.0.0
410 Минимальная требуемая версия Go 1.13.
413 Хэширование с BLAKE3 на базе деревьев Меркле (Merkle Tree Hashing, MTH)
414 используется вместо BLAKE2b. Из-за этого, обратно @strong{несовместимое}
415 изменение формата шифрованных файлов (всего что находится в spool
416 области) и формата @file{.meta} файла при chunked передаче.
418 Текущая реализация далека от оптимальной: в ней нет распараллеливания
419 вычислений и имеет повышенное потребление памяти: около 512 KiB на
420 каждый 1 GiB данных файла. Будущая оптимизация производительности и
421 потребления памяти не должна привести к изменению формата пакетов. Но
422 это всё равно в несколько раз быстрее BLAKE2b.
425 Из-за использования MTH, докачиваемые в online режиме файлы потребуют
426 чтения с диска только предшествующей части, а не полностью всего файла,
430 Добавлена @command{nncp-hash} утилита для вычисления MTH хэша файла.
433 В шифрованных пакетах BLAKE2 KDF и XOF функции заменены на BLAKE3. Ещё
434 уменьшая количество примитивов. А также заголовок шифрованного файла
435 теперь является ассоциированными данными при шифровании.
438 MultiCast Discovery использует
439 @verb{|ff02::4e4e:4350|} адрес вместо @verb{|ff02::1|}.
442 @command{nncp-cfgenc} ошибочно трижды спрашивал парольную фразу при шифровании.
445 @command{nncp-stat} выводит сводку о частично скачанных пакетах.
448 Обновлены зависимые библиотеки.
453 @subsection Релиз 6.6.0
457 @command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}
458 ожидают завершения всех процессов фоновой проверки контрольных сумм,
459 после того как соединение закрыто.
462 Добавлена возможность определения адреса через multicast оповещение в
463 локальной сети, так называемый MCD (MultiCast Discovery).
468 @subsection Релиз 6.5.0
472 Исправлено падение в @command{nncp-daemon} когда SP рукопожатие не было успешно.
475 Исправлено возможное игнорирование плохого кода возврата автоматического tosser.
478 Исправлена гонка при закрытии файловых дескрипторов во время завершения
479 работы online протокола, которая могла привести к ошибке записи
480 принятого фрагмента пакета.
483 Убирать показ прогресса передачи пакетов когда вызов уже завершён в
484 @command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}.
489 @subsection Релиз 6.4.0
493 Исправлена возможная гонка в online протоколе, приводящая к падению
499 @subsection Релиз 6.3.0
503 Исправлено возможное падение программы во время показа прогресса online
509 @subsection Релиз 6.2.1
513 В трёх местах сообщений журналов по ошибке остались лишние @code{%s}.
518 @subsection Релиз 6.2.0
522 Возвращена работоспособность @option{-autotoss*} опций @command{nncp-caller}.
525 Очередной рефакторинг и упрощение системы журналирования.
526 Не должно быть видимых изменений для конечного пользователя.
531 @subsection Релиз 6.1.0
535 Оптимизация: большинство команд теперь не держат открытыми файловые
536 дескрипторы. Прежде вы легко могли выйти за пределы максимально
537 допустимого количества открытых файлов, если у вас было много пакетов в
541 Оптимизация: не закрывать файловый дескриптор файла который мы качаем.
542 Прежде каждый его кусочек приводил к дорогим open/close вызовам.
545 Скачиваемые в режиме online файлы теперь сохраняются с @file{.nock}
546 суффиксом (non-checksummed), ожидая пока либо @command{nncp-check}, либо
547 online демоны не выполнят проверку целостности.
550 Оптимизация: для файлов, скачивание которых не было продолжено, сразу же
551 вычисляет контрольная сумма, пропуская промежуточный @file{.nock} шаг.
554 Возможность хранения заголовков зашифрованных пакетов в @file{.hdr}
555 файлах, рядом с самими пакетами. Это может существенно повысить скорость
556 получения списка пакетов на файловых системах с большим размером блока.
561 @subsection Релиз 6.0.0
565 Журнал использует человеко-читаемый и легко обрабатываемый машиной
566 @url{https://www.gnu.org/software/recutils/, recfile} формат для своих
567 записей, вместо структурированных строчек RFC 3339. Старый формат
568 журналов не поддерживается @command{nncp-log}.
571 Работоспособность @option{-autotoss*} опции с @option{-inetd} режимом
572 @command{nncp-daemon}.
575 @option{when-tx-exists} опция вызова в конфигурационном файле позволяет
576 делать вызов только если имеются исходящие сообщения. Совмещённая с cron
577 выражением содержащим секунды, это можно использовать как возможность
578 вызова только при появлении исходящих пакетов.
581 @command{nncp-cronexpr} команда позволяет проверить корректность и
582 ожидаемый результат от указанного cron выражения.
587 @subsection Релиз 5.6.0
591 @option{-autotoss*} опции запускают tosser не после завершения вызова, а
592 во время него ежесекундно.
595 В @option{calls} секции конфигурации появились опции
596 @option{autotoss}, @option{autotoss-doseen},
597 @option{autotoss-nofile}, @option{autotoss-nofreq},
598 @option{autotoss-noexec}, @option{autotoss-notrns}.
599 Вы можете настраивать опции автоматического tosser для каждого вызова.
602 Использовать vendoring вместо переопределения @env{$GOPATH} во время
603 установки tarball, так как текущая минимальная версия Go это 1.12,
604 поддерживающая модули.
609 @subsection Релиз 5.5.1
613 Уважать @env{$BINDIR}, @env{$INFODIR} и @env{$DOCDIR} переменные окружения
614 в @file{config} во время установки.
619 @subsection Релиз 5.5.0
623 Исправления ошибок в @command{nncp-call(er)}/@command{nncp-daemon},
624 @command{nncp-bundle}, @command{nncp-stat} командах.
627 У команды @command{nncp-rm} появились @option{-dryrun} и @option{-older} опции.
630 У команды @command{nncp-exec} появились @option{-use-tmp} и
631 @option{-nocompress} опции. Несжатые пакеты не совместимы с предыдущими
635 У команд @command{nncp-call}, @command{nncp-caller} и @command{nncp-daemon}
636 появились @option{-autotoss*} опции для запуска tosser после завершения звонка.
639 Обновлены зависимые библиотеки. Минимальная требуемая версия Go 1.12.
644 @subsection Релиз 5.4.1
648 Исправлена ошибка с учётом @code{SENDMAIL} переменной при сборке.
653 @subsection Релиз 5.4.0
657 Обновлены зависимые библиотеки.
660 Система сборки переведена с Makefile-ов на @url{http://cr.yp.to/redo.html, redo}.
661 Это не должно повлиять на мейнтейнеров пакетов, так как минимальная
662 реализация @command{redo} включена в tarball.
667 @subsection Релиз 5.3.3
671 Больше различных проверок в коде на ошибки.
674 Обновлены зависимые библиотеки.
679 @subsection Релиз 5.3.2
683 Исправлена некорректная логика @option{onlinedeadline} timeout-а, при
684 котором соединение могло не учитывать факты прихода пакетов и обрывать
690 @subsection Релиз 5.3.1
694 Исправлена работоспособность @option{onlinedeadline} с адресами вызова
695 использующими внешние команды (@verb{#"|somecmd"#}).
698 @command{nncp-stat} имеет опцию @option{-pkt} показывающую информацию по
699 каждому пакету в spool.
704 @subsection Релиз 5.3.0
708 Сообщения прогресса содержат префикс, поясняющий выполняемое действие.
711 Исправлено не происходящее дополнение (padding) handshake сообщений.
714 Завершать все порождаемые в SP протоколе горутины, меньше утечек памяти.
717 SP протокол порождает меньше вызовов записей (соответственно, и TCP
721 Проверять @option{onlinedeadline} и @option{maxonlinetime} ежесекундно,
722 независимо от чтения из сокета (раз в 10 секунд в худшем случае).
725 Раз в минуту, если нет более никакого другого трафика, посылаются PING
726 пакеты в SP-соединении. Это позволит быстрее понимать что соединение
727 более не работоспособно.
730 @command{nncp-toss} использует lock-file для предотвращения
731 одновременной обработки зашифрованных пакетов.
736 @subsection Релиз 5.2.1
740 Исправлена обработка ошибки SP протокола, иногда вызывающая панику программы.
745 @subsection Релиз 5.2.0
749 Большинство команд по умолчанию показывают однострочный прогресс
750 выполнения операции. Появились @option{-progress}, @option{-noprogress}
751 опции командной строки, @option{noprogress} опция конфигурационного
755 Исправлен некорректный код возврата @command{nncp-check} команды,
756 который возвращал ошибку когда всё хорошо.
759 Проверка свободного места для пакетов, во время выполнения
760 @command{nncp-bundle -rx}.
765 @subsection Релиз 5.1.2
769 Исправлена @strong{критичная} уязвимость: аутентификация online нод
770 могла приводить к некорректной идентификации удалённой стороны, позволяя
771 скачивать чужие зашифрованные пакеты.
774 Исправлена ошибка: в новосозданных конфигурационных файлах, приватный
775 публичный ключ Noise были поменяны местами, что приводило к
776 невозможности online аутентификации нод.
779 Явная синхронизация (@code{fsync}) директорий для гарантированного
780 переименования файлов.
785 @subsection Релиз 5.1.1
789 Исправлена работоспособность @command{nncp-file} с @option{-chunked 0} опцией.
794 @subsection Релиз 5.1.0
798 @command{nncp-file} может отправлять директории, автоматически на лету
802 Во время создания исходящих сообщений проверяется наличие свободного
803 места на файловой системе.
806 @option{freq}, @option{freqminsize}, @option{freqchunked} опции
807 конфигурационного файла заменены на структуру
808 @option{freq: @{path: @dots{}, minsize: @dots{}, chunked: @dots{}@}}.
811 Добавлена @option{freq.maxsize} опция конфигурационного файл,
812 запрещающая ответ на файловый запрос больше заданного размера.
815 Возможность оповещения об успешно выполненных командах (exec) через
816 @option{notify.exec} опцию конфигурационного файла.
821 @subsection Релиз 5.0.0
825 @strong{Несовместимое} изменение формата конфигурационного файла:
826 YAML заменён на Hjson, из-за его гораздо большей простоты, без
827 заметной потери функционала и удобства.
830 @strong{Несовместимое} изменение формата простых пакетов. Работа со
831 старыми версиями не поддерживается. @code{zlib} сжатие заменено на
832 @code{Zstandard}, так как оно значительно быстрее и эффективнее, не
833 смотря на то, что версия библиотеки ещё не проверена временем.
836 Возможность соединяться с удалёнными нодами не только по TCP, но и через
837 pipe вызов сторонней команды.
840 @command{nncp-cfgnew} генерирует конфигурационный файл с множеством
841 комментариев. Можно использовать @option{-nocomments} опцию для старого
845 Дубликаты имён файлов имеют суффикс @file{.CTR}, вместо @file{CTR},
846 чтобы избежать возможных коллизий с @file{.nncp.chunkCTR}.
849 Возможность переопределить umask процесса через опцию конфигурационного
853 По умолчанию файлы и директории создаются с 666/777 правами доступа,
854 позволяя управлять ими @command{umask}-ом.
857 Обновлены зависимости.
860 Полное использование go модулей для управления зависимостями
861 (используется @code{go.cypherpunks.ru/nncp/v5} namespace).
864 Отмена автоматического использования более новых версий GNU GPL
865 (лицензия проекта GNU GPLv3-только).
870 @subsection Релиз 4.1
872 @item Восстановлена работоспособность на GNU/Linux системах и Go версии 1.10.
876 @subsection Релиз 4.0
880 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов:
881 используется AEAD режим шифрования с 128 КиБ блоками, так как раньше
882 @command{nncp-toss} не проверял MAC зашифрованного пакета прежде чем
883 отсылать дешифрованные данные внешней команде. Старые версии не
887 Проверка доступного места перед копированием во время работы
888 @command{nncp-xfer}, @command{nncp-daemon}, @command{nncp-call(er)}.
891 @command{nncp-call} имеет возможность только показывать список пакетов
892 на удалённой машине, без их передачи.
895 @command{nncp-call} имеет возможность передавать только чётко указанные пакеты.
898 Восстановлена работоспособность @option{xxrate} настройки в
899 @option{calls} секции конфигурационного файла.
902 Зависимые библиотеки обновлены.
905 Небольшие исправления ошибок.
908 Начало использования @code{go.mod} подсистемы.
913 @subsection Релиз 3.4
915 @item @command{nncp-daemon} может быть запущен как @command{inetd}-служба.
919 @subsection Релиз 3.3
923 @command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller}
924 проверяют существование @file{.seen} файла и расценивают его как то, что
925 файл уже был скачан. Возможно передача данных была осуществлена
926 сторонним способом и удалённая сторона должна быть оповещена об этом.
929 Если более высокоприоритетный пакет попадает в спул, то
930 @command{nncp-daemon} добавит его в очередь отправки первым, прерывая
931 низкоприоритетные передачи.
934 К средствам связанным с online-соединениями (@command{nncp-daemon},
935 @command{nncp-call}, @command{nncp-caller}) добавлен простой
936 ограничитель скорости.
939 Возможность задания приоритета символьными обозначениями:
940 @verb{|NORMAL|}, @verb{|BULK+10|}, @verb{|PRIORITY-5|}, итд.
943 Изменены значения приоритетов по-умолчанию:
944 для @command{nncp-exec} с 64 на 96,
945 для @command{nncp-freq} с 64 на 160,
946 для @command{nncp-file} с 196 на 224.
951 @subsection Релиз 3.2
954 @strong{Несовместимое} изменение формата @emph{bundle} архивов и
955 работоспособность @command{nncp-bundle} команды с Go 1.10+. Bundle
956 должен быть корректным tar архивом, но Go 1.9 делал его недействительным
957 из-за длинных путей внутри. NNCP нечаянно был зависим от этой баги.
958 Явное добавление @file{NNCP/} директории в архив восстанавливает
959 работоспособность с корректными tar архивами.
963 @subsection Релиз 3.1
966 Возможность отключать пересылку через промежуточные ноды используя
967 @verb{|-via -|} опцию командной строки.
971 @subsection Релиз 3.0
975 @strong{Несовместимое} изменение формата простых пакетов. Работа со
976 старыми версиями не поддерживается.
979 Добавлена возможность удалённого исполнения команд, путём
980 конфигурирования @option{exec} опции конфигурационного файла и
981 использования команды @command{nncp-exec}:
984 Команда @command{nncp-mail} заменена более гибкой и широкой
985 @command{nncp-exec}. Вместо вызова @verb{|nncp-mail NODE RECIPIENT|}
986 нужно использовать @verb{|nncp-exec NODE sendmail RECIPIENT|}.
988 @option{sendmail} опция конфигурационного файла заменена на более гибкую
989 @option{exec}. @code{sendmail: [@dots{}]} нужно заменить на
990 @code{exec: sendmail: [@dots{}]}.
994 Возможность переопределить @option{via} опцию конфигурации для целевого
995 узла через @option{-via} опцию командной строки для следующих команд:
996 @command{nncp-file}, @command{nncp-freq}, @command{nncp-exec}.
999 Chunked файлы, меньшего размера чем указанный chunk, отправляются просто
1000 в виде одного файла.
1003 Exec команды вызываются с дополнительными переменными окружения
1004 @env{$NNCP_NICE} и @env{$NNCP_SELF}.
1007 Отправляемые файлы в ответ на запрос имеют приоритет указанный в запросе.
1008 Указать их желаемый приоритет во время вызова @command{nncp-freq} можно
1009 аргументом @option{-replynice}.
1012 Команде @command{nncp-toss} можно сказать не обрабатывать определённые
1013 типы пакетов, за счёт опций @option{-nofile}, @option{-nofreq},
1014 @option{-noexec}, @option{-notrns}.
1017 По-умолчанию @command{nncp-file} команда для
1018 @option{-minsize}/@option{-chunked} опций использует
1019 @option{FreqMinSize}/@option{FreqChunked} из конфигурационного файла.
1020 Это можно отключить указав нулевое значение.
1025 @subsection Релиз 2.0
1029 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов.
1030 Работа со старыми версиями не поддерживается.
1033 Алгоритм шифрования Twofish заменён на ChaCha20. Он намного быстрее.
1034 Одним криптографическим примитивом меньше.
1037 HKDF-BLAKE2b-256 KDF алгоритм заменён на BLAKE2Xb XOF. Ещё одним
1038 криптографическим примитивом меньше (предполагая, что BLAKE2X
1039 практически идентичен BLAKE2).
1044 @subsection Релиз 1.0
1048 @strong{Несовместимое} изменение формата зашифрованных пакетов. Работа
1049 со старыми версиями не поддерживается.
1052 @command{nncp-bundle} команда может создавать потоки зашифрованных
1053 пакетов или потреблять их. Это полезно когда речь идёт о
1054 @code{stdin}/@code{stdout} методах передачи (например запись на CD-ROM
1055 без создания промежуточного подготовленного ISO образа или работа с
1056 ленточными накопителями).
1059 @command{nncp-toss} команда может создавать @file{.seen} файлы,
1060 предотвращая приём дублированных пакетов.
1063 В команде @command{nncp-call} разрешается иметь только одного
1064 обработчика контрольной суммы в фоне. Это полезно когда тысячи маленьких
1065 входящих пакетов могут создать много горутин.
1068 Возможность переопределить путь до spool директории и файла журнала
1069 через аргумент командной строки или переменную окружения.
1072 @command{nncp-rm} команда может удалять все исходящие/входящие,
1073 @file{.seen}, @file{.part}, @file{.lock} и временные файлы.
1078 @subsection Релиз 0.12
1080 @item Команда sendmail вызывается с @env{$NNCP_SENDER} переменной окружения.
1084 @subsection Релиз 0.11
1086 @item Вывод команды @command{nncp-stat} отсортирован по имени ноды.
1090 @subsection Релиз 0.10
1093 @file{DST} аргумент @command{nncp-freq} команды теперь опционален.
1094 По-умолчанию будет подставлен последний элемент @file{SRC} пути.
1098 @subsection Релиз 0.9
1101 Исправлена обработка @option{-rx}/@option{-tx} опций @command{nncp-call}
1102 команды. Они игнорировались.
1106 @subsection Релиз 0.8
1109 Небольшое исправление ошибки в команде @command{nncp-file}, где опция
1110 @option{-minsize} для передачи без разбиения на части была в байтах, а
1115 @subsection Релиз 0.7
1119 Возможность предоставлять данные для @command{nncp-file} через
1120 стандартный ввод, используя временный зашифрованный файл для этого.
1123 Появилась возможность передачи файлов разбитых на части, с сопутствующей
1124 @command{nncp-reass} командой и @option{freqchunked} опцией
1125 конфигурационного файла. Полезно для передачи больших файлов через
1126 маленькие устройства хранения.
1129 @option{freqminsize} опция конфигурационного файла, аналогичная
1133 Опция @option{-force} команды @command{nncp-xfer} переименована в
1134 @option{-mkdir} для ясности.
1137 Опция @option{-minsize} задаётся в KiB, а не байтах, для удобства.
1140 Команда @command{nncp-newcfg} переименована в @command{nncp-cfgnew},
1141 а @command{nncp-mincfg} в @command{nncp-cfgmin}, для того чтобы они
1142 имели общий префикс и были сгруппированы для удобства.
1145 Появилась команда @command{nncp-cfgenc}, позволяющая
1146 шифровать/дешифровать конфигурационный файл, чтобы безопасно его хранить
1147 без использования OpenPGP или других подобных инструментов.
1150 Обновлены зависимые криптографические библиотеки.
1155 @subsection Релиз 0.6
1157 @item Появилась небольшая команда @command{nncp-rm}.
1158 @item Обновлены зависимые криптографические библиотеки.
1162 @subsection Релиз 0.5
1165 Тривиальное небольшое исправление в значениях приоритетов по-умолчанию в
1166 @command{nncp-file} и @command{nncp-freq} командах.
1170 @subsection Релиз 0.4
1174 Небольшое исправление в @command{nncp-call}, @command{nncp-caller},
1175 @command{nncp-daemon}: иногда они могли падать с segmentation fault
1176 ошибкой (данные не терялись).
1179 @command{nncp-newnode} переименована в @command{nncp-newcfg} --
1180 это короче и удобнее для использования.
1183 Появилась команда @command{nncp-mincfg}: вспомогательная утилита
1184 позволяющая создать минималистичный урезанный конфигурационный файл без
1185 приватных ключей, что полезно во время использования @command{nncp-xfer}.
1190 @subsection Релиз 0.3
1192 @item Исправлена совместимость с Go 1.6.
1196 @subsection Релиз 0.2
1200 @strong{Несовместимое} изменение формата пакета (магическое число тоже
1201 изменено): поле размера пакета шифруется и не посылается в открытом виде.
1204 @option{-minsize} опция даёт возможность автоматически дополнять
1205 исходящие пакеты до указанного минимального размера.
1208 @command{nncp-daemon} и @command{nncp-call}/@command{nncp-caller} всегда
1209 в фоне проверяют появление исходящих @emph{tx} пакетов пока подключены.
1210 Удалённая сторона сразу же оповещается об этом.
1213 @option{-onlinedeadline} опция даёт возможность выставления timeout-а на
1214 неактивность в online соединении, когда оно должно быть отключено. Она
1215 может быть использована для сохранения соединения на долгое время.
1218 @option{-maxonlinetime} опция даёт возможность указания максимального
1219 возможного времени жизни соединения.
1222 Появилась @command{nncp-caller} команда: клиент TCP-демона работающий по
1226 @command{nncp-pkt} команда может разжимать данные.