5 @subsection Релиз 8.4.0
9 Имена интерфейсов относящихся к multicast (@code{mcd-listen} и
10 @code{mcd-send} опции конфигурации) теперь являются регулярными
11 выражениями. По умолчанию @command{nncp-cfgnew} не комментирует
12 их теперь и прописывает @code{.*} имя интерфейса.
17 @subsection Релиз 8.3.0
21 Исправлена возможность сборки на 32-бит системах.
26 @subsection Релиз 8.2.0
30 Yggdrasil использует IPv6+TCP сетевой стэк написанный полностью на Go,
31 вместо голого μTP транспортного протокола, делая возможным работу в
32 качестве обычного TCP сервера внутри overlay сети.
35 Конфигурационные строки Yggdrasil вида @code{prv;bind1,bind2;pub...}
36 заменены на URL-подобные (@code{yggdrasils://PRV?bind=BIND1&bind=BIND2&pub=PUB}).
39 Возможно передавать параметры Yggdrasil конфигурации связанные с multicast.
42 @command{nncp-daemon} может слушать одновременно и на TCP и на
43 Yggdrasil-управляемом сокетах.
46 Слушание на endpoint сокете для пиринга в @command{nncp-daemon}
47 опционально -- вы можете быть доступны и через связь с peer-ами.
52 @subsection Релиз 8.1.0
56 @command{nncp-cfgdir} команда не требует обязательного наличия
57 @code{self} секции конфигурационного файла.
60 Появилась возможность работы в качестве клиента overlay сети Yggdrasil,
61 используя online протокол поверх неё.
66 @subsection Релиз 8.0.2
70 Исправлена возможность отправки мультивещательных пакетов.
75 @subsection Релиз 8.0.1
79 Исправлено некорректное вычисление @code{freq.chunked} значения, при
80 отсутствии которого всё равно форсированно включалась chunked передача.
83 Исправлено некорректное вычисление значения полного размера файла в
89 @subsection Релиз 8.0.0
93 @strong{Несовместимое} изменение формата зашифрованных пакетов: размеры
94 полезной нагрузки и дополнения посылаются прямо внутри зашифрованного
95 потока. Это даёт возможность потоково создавать шифрованные пакеты, без
96 знания размеров заранее, без создания временного файла или буферизации в
100 Производится корректная проверка дополнения зашифрованного пакета. Это
101 не критичная проблема, но прежде ни размер, ни значение дополнения не
102 были аутентифицированы, позволяя циклично откусывать по байту с конца и
103 узнавать размер полезной нагрузки, наблюдая за реакцией по обработке
104 такого зашифрованного пакета.
107 @command{nncp-exec} больше не имеет @option{-use-tmp} опции, из-за
108 совместимого с потоковой работой формата зашифрованных пакетов.
111 У @command{nncp-file} и @command{nncp-exec} команд появилась опция
112 @option{-maxsize}, ограничивающая максимальный результирующий размер
113 зашифрованного пакета (возвращая ошибку если он превышен). Может быть
114 полезно, так как размер полезной нагрузки может быть неизвестен заранее.
119 @subsection Релиз 7.7.0
123 Экспериментальная поддержка @code{kqueue} и @code{inotify} оповещений об
124 изменениях в spool директориях, для сокращения накладных расходов на их
128 @file{.seen} и @file{.hdr} файлы находятся в @file{seen/} и @file{hdr/}
129 поддиректориях теперь, дабы ускорить сканирование spool областей.
130 Необходима миграция текущих файлов:
133 $ find $NNCPSPOOL -type f -name "*.hdr" -exec rm @{@} +
135 $ find $NNCPSPOOL -type d -name rx | while read rx ; do
138 find . -type f -name "*.seen" | while read fn ; do
139 mv $fn seen/$@{fn%.seen@}
143 $ find $NNCPSPOOL -type d -name area | while read area ; do
144 find $area -type f -name "*.seen" | while read fn ; do
153 @subsection Релиз 7.6.0
157 Журналирование может производиться в назначенный открытый файловый
158 дескриптор (@env{$NNCPLOG=FD:5} например).
159 Что дружелюбно к использованию под @command{daemontools}.
162 Добавлены дополнительные проверки наличия публичных ключей в
163 конфигурационном файле, предотвращающие падения некоторых команд.
168 @subsection Релиз 7.5.1
172 NNCP собирается на NetBSD.
177 @subsection Релиз 7.5.0
181 @command{nncp-daemon} соблюдает UCSPI-TCP интерфейс, благодаря чему в
182 журнале будет присутствовать адрес удалённой системы (при запуске под
183 совместимой утилитой). Желательно применять @option{-ucspi} опцию вместо
187 @command{nncp-call} может быть UCSPI-TCP клиентом, используя
188 @option{-ucspi} опцию.
191 Не выходить если не получается слушать на каком-либо MCD сетевом
192 интерфейсе -- только предупреждать об ошибке.
197 @subsection Релиз 7.4.0
201 Исправлена работоспособность MCD при одновременном использовании
202 @command{nncp-daemon} и @command{nncp-caller}.
207 @subsection Релиз 7.3.2
211 @command{hjson-cli} утилита теперь собирается в vendor-режиме.
216 @subsection Релиз 7.3.1
220 Исправлена проблема с возможно остающимся открытым файловым
221 дескриптором в online командах.
224 Существенно снижено потребление памяти MTH хэширования.
229 @subsection Релиз 7.3.0
233 Поправлены проблемы работоспособности на 32-бит системах с большими файлами.
236 Возможность использовать конфигурацию в виде директории с набором
237 файлов. Появилась команда @command{nncp-cfgdir}.
242 @subsection Релиз 7.2.1
246 Небольшие оптимизации в online командах.
251 @subsection Релиз 7.2.0
255 Появилась @command{nncp-trns} команда для ручного создания транзитных пакетов.
258 Если у целевой ноды транзитного пакета задан @option{via} маршрут, то
259 использовать его, а не игнорировать.
262 Не отправлять multicast пакет оригинатору сообщения, очевидно точно
263 видящего свой собственный пакет.
266 Намного меньшее потребление памяти во время MTH хэширования когда
267 смещение равно нулю: когда пакет не является докачиванием, а например
268 проверяется @command{nncp-check} командой.
273 @subsection Релиз 7.1.1
277 Исправлено падение при fsync директорий после создания @file{.seen} файлов.
282 @subsection Релиз 7.1.0
286 Появилась возможность мультивещательной (multicast) рассылки пакетов.
287 Реализовано всего лишь дополнительным типом простых пакетов и изменением
288 @command{nncp-toss}, @command{nncp-file} и @command{nncp-exec} команд.
291 Исправлена работоспособность @command{nncp-file} и @command{nncp-exec}
292 команд использующих временный файл (stdin и @option{-use-tmp}).
295 Исправлен пропадающий плохой код возврата в @command{nncp-exec} команде.
298 Исправлено некорректное генерирование @file{.hdr} при использовании
302 У @command{nncp-rm} команды появилась @option{-all} опция, применяемая
306 У @command{nncp-check} команды появилась @option{-cycle} опция, вводящая
307 проверку в бесконечный цикл.
310 У @command{nncp-rm} команды можно указывать alias-ы имён нод.
313 @command{nncp-pkt} может парсить @file{.hdr} файлы.
318 @subsection Релиз 7.0.0
322 Минимальная требуемая версия Go 1.13.
325 Хэширование с BLAKE3 на базе деревьев Меркле (Merkle Tree Hashing, MTH)
326 используется вместо BLAKE2b. Из-за этого, обратно @strong{несовместимое}
327 изменение формата шифрованных файлов (всего что находится в spool
328 области) и формата @file{.meta} файла при chunked передаче.
330 Текущая реализация далека от оптимальной: в ней нет распараллеливания
331 вычислений и имеет повышенное потребление памяти: около 512 KiB на
332 каждый 1 GiB данных файла. Будущая оптимизация производительности и
333 потребления памяти не должна привести к изменению формата пакетов. Но
334 это всё равно в несколько раз быстрее BLAKE2b.
337 Из-за использования MTH, докачиваемые в online режиме файлы потребуют
338 чтения с диска только предшествующей части, а не полностью всего файла,
342 Добавлена @command{nncp-hash} утилита для вычисления MTH хэша файла.
345 В шифрованных пакетах BLAKE2 KDF и XOF функции заменены на BLAKE3. Ещё
346 уменьшая количество примитивов. А также заголовок шифрованного файла
347 теперь является ассоциированными данными при шифровании.
350 MultiCast Discovery использует
351 @verb{|ff02::4e4e:4350|} адрес вместо @verb{|ff02::1|}.
354 @command{nncp-cfgenc} ошибочно трижды спрашивал парольную фразу при шифровании.
357 @command{nncp-stat} выводит сводку о частично скачанных пакетах.
360 Обновлены зависимые библиотеки.
365 @subsection Релиз 6.6.0
369 @command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}
370 ожидают завершения всех процессов фоновой проверки контрольных сумм,
371 после того как соединение закрыто.
374 Добавлена возможность определения адреса через multicast оповещение в
375 локальной сети, так называемый MCD (MultiCast Discovery).
380 @subsection Релиз 6.5.0
384 Исправлено падение в @command{nncp-daemon} когда SP рукопожатие не было успешно.
387 Исправлено возможное игнорирование плохого кода возврата автоматического tosser.
390 Исправлена гонка при закрытии файловых дескрипторов во время завершения
391 работы online протокола, которая могла привести к ошибке записи
392 принятого фрагмента пакета.
395 Убирать показ прогресса передачи пакетов когда вызов уже завершён в
396 @command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}.
401 @subsection Релиз 6.4.0
405 Исправлена возможная гонка в online протоколе, приводящая к падению
411 @subsection Релиз 6.3.0
415 Исправлено возможное падение программы во время показа прогресса online
421 @subsection Релиз 6.2.1
425 В трёх местах сообщений журналов по ошибке остались лишние @code{%s}.
430 @subsection Релиз 6.2.0
434 Возвращена работоспособность @option{-autotoss*} опций @command{nncp-caller}.
437 Очередной рефакторинг и упрощение системы журналирования.
438 Не должно быть видимых изменений для конечного пользователя.
443 @subsection Релиз 6.1.0
447 Оптимизация: большинство команд теперь не держат открытыми файловые
448 дескрипторы. Прежде вы легко могли выйти за пределы максимально
449 допустимого количества открытых файлов, если у вас было много пакетов в
453 Оптимизация: не закрывать файловый дескриптор файла который мы качаем.
454 Прежде каждый его кусочек приводил к дорогим open/close вызовам.
457 Скачиваемые в режиме online файлы теперь сохраняются с @file{.nock}
458 суффиксом (non-checksummed), ожидая пока либо @command{nncp-check}, либо
459 online демоны не выполнят проверку целостности.
462 Оптимизация: для файлов, скачивание которых не было продолжено, сразу же
463 вычисляет контрольная сумма, пропуская промежуточный @file{.nock} шаг.
466 Возможность хранения заголовков зашифрованных пакетов в @file{.hdr}
467 файлах, рядом с самими пакетами. Это может существенно повысить скорость
468 получения списка пакетов на файловых системах с большим размером блока.
473 @subsection Релиз 6.0.0
477 Журнал использует человеко-читаемый и легко обрабатываемый машиной
478 @url{https://www.gnu.org/software/recutils/, recfile} формат для своих
479 записей, вместо структурированных строчек RFC 3339. Старый формат
480 журналов не поддерживается @command{nncp-log}.
483 Работоспособность @option{-autotoss*} опции с @option{-inetd} режимом
484 @command{nncp-daemon}.
487 @option{when-tx-exists} опция вызова в конфигурационном файле позволяет
488 делать вызов только если имеются исходящие сообщения. Совмещённая с cron
489 выражением содержащим секунды, это можно использовать как возможность
490 вызова только при появлении исходящих пакетов.
493 @command{nncp-cronexpr} команда позволяет проверить корректность и
494 ожидаемый результат от указанного cron выражения.
499 @subsection Релиз 5.6.0
503 @option{-autotoss*} опции запускают tosser не после завершения вызова, а
504 во время него ежесекундно.
507 В @option{calls} секции конфигурации появились опции
508 @option{autotoss}, @option{autotoss-doseen},
509 @option{autotoss-nofile}, @option{autotoss-nofreq},
510 @option{autotoss-noexec}, @option{autotoss-notrns}.
511 Вы можете настраивать опции автоматического tosser для каждого вызова.
514 Использовать vendoring вместо переопределения @env{$GOPATH} во время
515 установки tarball, так как текущая минимальная версия Go это 1.12,
516 поддерживающая модули.
521 @subsection Релиз 5.5.1
525 Уважать @env{$BINDIR}, @env{$INFODIR} и @env{$DOCDIR} переменные окружения
526 в @file{config} во время установки.
531 @subsection Релиз 5.5.0
535 Исправления ошибок в @command{nncp-call(er)}/@command{nncp-daemon},
536 @command{nncp-bundle}, @command{nncp-stat} командах.
539 У команды @command{nncp-rm} появились @option{-dryrun} и @option{-older} опции.
542 У команды @command{nncp-exec} появились @option{-use-tmp} и
543 @option{-nocompress} опции. Несжатые пакеты не совместимы с предыдущими
547 У команд @command{nncp-call}, @command{nncp-caller} и @command{nncp-daemon}
548 появились @option{-autotoss*} опции для запуска tosser после завершения звонка.
551 Обновлены зависимые библиотеки. Минимальная требуемая версия Go 1.12.
556 @subsection Релиз 5.4.1
560 Исправлена ошибка с учётом @code{SENDMAIL} переменной при сборке.
565 @subsection Релиз 5.4.0
569 Обновлены зависимые библиотеки.
572 Система сборки переведена с Makefile-ов на @url{http://cr.yp.to/redo.html, redo}.
573 Это не должно повлиять на мейнтейнеров пакетов, так как минимальная
574 реализация @command{redo} включена в tarball.
579 @subsection Релиз 5.3.3
583 Больше различных проверок в коде на ошибки.
586 Обновлены зависимые библиотеки.
591 @subsection Релиз 5.3.2
595 Исправлена некорректная логика @option{onlinedeadline} timeout-а, при
596 котором соединение могло не учитывать факты прихода пакетов и обрывать
602 @subsection Релиз 5.3.1
606 Исправлена работоспособность @option{onlinedeadline} с адресами вызова
607 использующими внешние команды (@verb{#"|somecmd"#}).
610 @command{nncp-stat} имеет опцию @option{-pkt} показывающую информацию по
611 каждому пакету в spool.
616 @subsection Релиз 5.3.0
620 Сообщения прогресса содержат префикс, поясняющий выполняемое действие.
623 Исправлено не происходящее дополнение (padding) handshake сообщений.
626 Завершать все порождаемые в SP протоколе горутины, меньше утечек памяти.
629 SP протокол порождает меньше вызовов записей (соответственно, и TCP
633 Проверять @option{onlinedeadline} и @option{maxonlinetime} ежесекундно,
634 независимо от чтения из сокета (раз в 10 секунд в худшем случае).
637 Раз в минуту, если нет более никакого другого трафика, посылаются PING
638 пакеты в SP-соединении. Это позволит быстрее понимать что соединение
639 более не работоспособно.
642 @command{nncp-toss} использует lock-file для предотвращения
643 одновременной обработки зашифрованных пакетов.
648 @subsection Релиз 5.2.1
652 Исправлена обработка ошибки SP протокола, иногда вызывающая панику программы.
657 @subsection Релиз 5.2.0
661 Большинство команд по умолчанию показывают однострочный прогресс
662 выполнения операции. Появились @option{-progress}, @option{-noprogress}
663 опции командной строки, @option{noprogress} опция конфигурационного
667 Исправлен некорректный код возврата @command{nncp-check} команды,
668 который возвращал ошибку когда всё хорошо.
671 Проверка свободного места для пакетов, во время выполнения
672 @command{nncp-bundle -rx}.
677 @subsection Релиз 5.1.2
681 Исправлена @strong{критичная} уязвимость: аутентификация online нод
682 могла приводить к некорректной идентификации удалённой стороны, позволяя
683 скачивать чужие зашифрованные пакеты.
686 Исправлена ошибка: в новосозданных конфигурационных файлах, приватный
687 публичный ключ Noise были поменяны местами, что приводило к
688 невозможности online аутентификации нод.
691 Явная синхронизация (fsync) директорий для гарантированного
692 переименования файлов.
697 @subsection Релиз 5.1.1
701 Исправлена работоспособность @command{nncp-file} с @option{-chunked 0} опцией.
706 @subsection Релиз 5.1.0
710 @command{nncp-file} может отправлять директории, автоматически на лету
714 Во время создания исходящих сообщений проверяется наличие свободного
715 места на файловой системе.
718 @option{freq}, @option{freqminsize}, @option{freqchunked} опции
719 конфигурационного файла заменены на структуру
720 @option{freq: @{path: @dots{}, minsize: @dots{}, chunked: @dots{}@}}.
723 Добавлена @option{freq.maxsize} опция конфигурационного файл,
724 запрещающая ответ на файловый запрос больше заданного размера.
727 Возможность оповещения об успешно выполненных командах (exec) через
728 @option{notify.exec} опцию конфигурационного файла.
733 @subsection Релиз 5.0.0
737 @strong{Несовместимое} изменение формата конфигурационного файла:
738 YAML заменён на Hjson, из-за его гораздо большей простоты, без
739 заметной потери функционала и удобства.
742 @strong{Несовместимое} изменение формата простых пакетов. Работа со
743 старыми версиями не поддерживается. @code{zlib} сжатие заменено на
744 @code{Zstandard}, так как оно значительно быстрее и эффективнее, не
745 смотря на то, что версия библиотеки ещё не проверена временем.
748 Возможность соединяться с удалёнными нодами не только по TCP, но и через
749 pipe вызов сторонней команды.
752 @command{nncp-cfgnew} генерирует конфигурационный файл с множеством
753 комментариев. Можно использовать @option{-nocomments} опцию для старого
757 Дубликаты имён файлов имеют суффикс @file{.CTR}, вместо @file{CTR},
758 чтобы избежать возможных коллизий с @file{.nncp.chunkCTR}.
761 Возможность переопределить umask процесса через опцию конфигурационного
765 По умолчанию файлы и директории создаются с 666/777 правами доступа,
766 позволяя управлять ими @command{umask}-ом.
769 Обновлены зависимости.
772 Полное использование go модулей для управления зависимостями
773 (используется @code{go.cypherpunks.ru/nncp/v5} namespace).
776 Отмена автоматического использования более новых версий GNU GPL
777 (лицензия проекта GNU GPLv3-только).
782 @subsection Релиз 4.1
784 @item Восстановлена работоспособность на GNU/Linux системах и Go версии 1.10.
788 @subsection Релиз 4.0
792 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов:
793 используется AEAD режим шифрования с 128 КиБ блоками, так как раньше
794 @command{nncp-toss} не проверял MAC зашифрованного пакета прежде чем
795 отсылать дешифрованные данные внешней команде. Старые версии не
799 Проверка доступного места перед копированием во время работы
800 @command{nncp-xfer}, @command{nncp-daemon}, @command{nncp-call(er)}.
803 @command{nncp-call} имеет возможность только показывать список пакетов
804 на удалённой машине, без их передачи.
807 @command{nncp-call} имеет возможность передавать только чётко указанные пакеты.
810 Восстановлена работоспособность @option{xxrate} настройки в
811 @option{calls} секции конфигурационного файла.
814 Зависимые библиотеки обновлены.
817 Небольшие исправления ошибок.
820 Начало использования @code{go.mod} подсистемы.
825 @subsection Релиз 3.4
827 @item @command{nncp-daemon} может быть запущен как @command{inetd}-служба.
831 @subsection Релиз 3.3
835 @command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller}
836 проверяют существование @file{.seen} файла и расценивают его как то, что
837 файл уже был скачан. Возможно передача данных была осуществлена
838 сторонним способом и удалённая сторона должна быть оповещена об этом.
841 Если более высокоприоритетный пакет попадает в спул, то
842 @command{nncp-daemon} добавит его в очередь отправки первым, прерывая
843 низкоприоритетные передачи.
846 К средствам связанным с online-соединениями (@command{nncp-daemon},
847 @command{nncp-call}, @command{nncp-caller}) добавлен простой
848 ограничитель скорости.
851 Возможность задания приоритета символьными обозначениями:
852 @verb{|NORMAL|}, @verb{|BULK+10|}, @verb{|PRIORITY-5|}, итд.
855 Изменены значения приоритетов по-умолчанию:
856 для @command{nncp-exec} с 64 на 96,
857 для @command{nncp-freq} с 64 на 160,
858 для @command{nncp-file} с 196 на 224.
863 @subsection Релиз 3.2
866 @strong{Несовместимое} изменение формата @emph{bundle} архивов и
867 работоспособность @command{nncp-bundle} команды с Go 1.10+. Bundle
868 должен быть корректным tar архивом, но Go 1.9 делал его недействительным
869 из-за длинных путей внутри. NNCP нечаянно был зависим от этой баги.
870 Явное добавление @file{NNCP/} директории в архив восстанавливает
871 работоспособность с корректными tar архивами.
875 @subsection Релиз 3.1
878 Возможность отключать пересылку через промежуточные ноды используя
879 @verb{|-via -|} опцию командной строки.
883 @subsection Релиз 3.0
887 @strong{Несовместимое} изменение формата простых пакетов. Работа со
888 старыми версиями не поддерживается.
891 Добавлена возможность удалённого исполнения команд, путём
892 конфигурирования @option{exec} опции конфигурационного файла и
893 использования команды @command{nncp-exec}:
896 Команда @command{nncp-mail} заменена более гибкой и широкой
897 @command{nncp-exec}. Вместо вызова @verb{|nncp-mail NODE RECIPIENT|}
898 нужно использовать @verb{|nncp-exec NODE sendmail RECIPIENT|}.
900 @option{sendmail} опция конфигурационного файла заменена на более гибкую
901 @option{exec}. @verb{|sendmail: [...]|} нужно заменить на @verb{|exec:
906 Возможность переопределить @option{via} опцию конфигурации для целевого
907 узла через @option{-via} опцию командной строки для следующих команд:
908 @command{nncp-file}, @command{nncp-freq}, @command{nncp-exec}.
911 Chunked файлы, меньшего размера чем указанный chunk, отправляются просто
915 Exec команды вызываются с дополнительными переменными окружения
916 @env{$NNCP_NICE} и @env{$NNCP_SELF}.
919 Отправляемые файлы в ответ на запрос имеют приоритет указанный в запросе.
920 Указать их желаемый приоритет во время вызова @command{nncp-freq} можно
921 аргументом @option{-replynice}.
924 Команде @command{nncp-toss} можно сказать не обрабатывать определённые
925 типы пакетов, за счёт опций @option{-nofile}, @option{-nofreq},
926 @option{-noexec}, @option{-notrns}.
929 По-умолчанию @command{nncp-file} команда для
930 @option{-minsize}/@option{-chunked} опций использует
931 @option{FreqMinSize}/@option{FreqChunked} из конфигурационного файла.
932 Это можно отключить указав нулевое значение.
937 @subsection Релиз 2.0
941 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов.
942 Работа со старыми версиями не поддерживается.
945 Алгоритм шифрования Twofish заменён на ChaCha20. Он намного быстрее.
946 Одним криптографическим примитивом меньше.
949 HKDF-BLAKE2b-256 KDF алгоритм заменён на BLAKE2Xb XOF. Ещё одним
950 криптографическим примитивом меньше (предполагая, что BLAKE2X
951 практически идентичен BLAKE2).
956 @subsection Релиз 1.0
960 @strong{Несовместимое} изменение формата зашифрованных пакетов. Работа
961 со старыми версиями не поддерживается.
964 @command{nncp-bundle} команда может создавать потоки зашифрованных
965 пакетов или потреблять их. Это полезно когда речь идёт о
966 @code{stdin}/@code{stdout} методах передачи (например запись на CD-ROM
967 без создания промежуточного подготовленного ISO образа или работа с
968 ленточными накопителями).
971 @command{nncp-toss} команда может создавать @file{.seen} файлы,
972 предотвращая приём дублированных пакетов.
975 В команде @command{nncp-call} разрешается иметь только одного
976 обработчика контрольной суммы в фоне. Это полезно когда тысячи маленьких
977 входящих пакетов могут создать много горутин.
980 Возможность переопределить путь до spool директории и файла журнала
981 через аргумент командной строки или переменную окружения.
984 @command{nncp-rm} команда может удалять все исходящие/входящие,
985 @file{.seen}, @file{.part}, @file{.lock} и временные файлы.
990 @subsection Релиз 0.12
992 @item Команда sendmail вызывается с @env{$NNCP_SENDER} переменной окружения.
996 @subsection Релиз 0.11
998 @item Вывод команды @command{nncp-stat} отсортирован по имени ноды.
1002 @subsection Релиз 0.10
1005 @file{DST} аргумент @command{nncp-freq} команды теперь опционален.
1006 По-умолчанию будет подставлен последний элемент @file{SRC} пути.
1010 @subsection Релиз 0.9
1013 Исправлена обработка @option{-rx}/@option{-tx} опций @command{nncp-call}
1014 команды. Они игнорировались.
1018 @subsection Релиз 0.8
1021 Небольшое исправление ошибки в команде @command{nncp-file}, где опция
1022 @option{-minsize} для передачи без разбиения на части была в байтах, а
1027 @subsection Релиз 0.7
1031 Возможность предоставлять данные для @command{nncp-file} через
1032 стандартный ввод, используя временный зашифрованный файл для этого.
1035 Появилась возможность передачи файлов разбитых на части, с сопутствующей
1036 @command{nncp-reass} командой и @option{freqchunked} опцией
1037 конфигурационного файла. Полезно для передачи больших файлов через
1038 маленькие устройства хранения.
1041 @option{freqminsize} опция конфигурационного файла, аналогичная
1045 Опция @option{-force} команды @command{nncp-xfer} переименована в
1046 @option{-mkdir} для ясности.
1049 Опция @option{-minsize} задаётся в KiB, а не байтах, для удобства.
1052 Команда @command{nncp-newcfg} переименована в @command{nncp-cfgnew},
1053 а @command{nncp-mincfg} в @command{nncp-cfgmin}, для того чтобы они
1054 имели общий префикс и были сгруппированы для удобства.
1057 Появилась команда @command{nncp-cfgenc}, позволяющая
1058 шифровать/дешифровать конфигурационный файл, чтобы безопасно его хранить
1059 без использования OpenPGP или других подобных инструментов.
1062 Обновлены зависимые криптографические библиотеки.
1067 @subsection Релиз 0.6
1069 @item Появилась небольшая команда @command{nncp-rm}.
1070 @item Обновлены зависимые криптографические библиотеки.
1074 @subsection Релиз 0.5
1077 Тривиальное небольшое исправление в значениях приоритетов по-умолчанию в
1078 @command{nncp-file} и @command{nncp-freq} командах.
1082 @subsection Релиз 0.4
1086 Небольшое исправление в @command{nncp-call}, @command{nncp-caller},
1087 @command{nncp-daemon}: иногда они могли падать с segmentation fault
1088 ошибкой (данные не терялись).
1091 @command{nncp-newnode} переименована в @command{nncp-newcfg} --
1092 это короче и удобнее для использования.
1095 Появилась команда @command{nncp-mincfg}: вспомогательная утилита
1096 позволяющая создать минималистичный урезанный конфигурационный файл без
1097 приватных ключей, что полезно во время использования @command{nncp-xfer}.
1102 @subsection Релиз 0.3
1104 @item Исправлена совместимость с Go 1.6.
1108 @subsection Релиз 0.2
1112 @strong{Несовместимое} изменение формата пакета (магическое число тоже
1113 изменено): поле размера пакета шифруется и не посылается в открытом виде.
1116 @option{-minsize} опция даёт возможность автоматически дополнять
1117 исходящие пакеты до указанного минимального размера.
1120 @command{nncp-daemon} и @command{nncp-call}/@command{nncp-caller} всегда
1121 в фоне проверяют появление исходящих @emph{tx} пакетов пока подключены.
1122 Удалённая сторона сразу же оповещается об этом.
1125 @option{-onlinedeadline} опция даёт возможность выставления timeout-а на
1126 неактивность в online соединении, когда оно должно быть отключено. Она
1127 может быть использована для сохранения соединения на долгое время.
1130 @option{-maxonlinetime} опция даёт возможность указания максимального
1131 возможного времени жизни соединения.
1134 Появилась @command{nncp-caller} команда: клиент TCP-демона работающий по
1138 @command{nncp-pkt} команда может разжимать данные.