]> Cypherpunks.ru repositories - nncp.git/blob - doc/news.ru.texi
Intermediate .nock packets step
[nncp.git] / doc / news.ru.texi
1 @node Новости
2 @section Новости
3
4 @node Релиз 6.1.0
5 @subsection Релиз 6.1.0
6 @itemize
7
8 @item
9 Оптимизация: большинство команд теперь не держат открытыми файловые
10 дескрипторы. Прежде вы легко могли выйти за пределы максимально
11 допустимого количества открытых файлов, если у вас было много пакетов в
12 spool директории.
13
14 @item
15 Оптимизация: не закрывать файловый дескриптор файла который мы качаем.
16 Прежде каждый его кусочек приводил к дорогим open/close вызовам.
17
18 @item
19 Скачиваемые в режиме online файлы теперь сохраняются с @file{.nock}
20 суффиксом (non-checksummed), ожидая пока либо @command{nncp-check}, либо
21 online демоны не выполнят проверку целостности.
22
23 @end itemize
24
25 @node Релиз 6.0.0
26 @subsection Релиз 6.0.0
27 @itemize
28
29 @item
30 Журнал использует человеко-читаемый и легко обрабатываемый машиной
31 @url{https://www.gnu.org/software/recutils/, recfile} формат для своих
32 записей, вместо структурированных строчек RFC 3339. Старый формат
33 журналов не поддерживается @command{nncp-log}.
34
35 @item
36 Работоспособность @option{-autotoss*} опции с @option{-inetd} режимом
37 @command{nncp-daemon}.
38
39 @item
40 @option{when-tx-exists} опция вызова в конфигурационном файле позволяет
41 делать вызов только если имеются исходящие сообщения. Совмещённая с cron
42 выражением содержащим секунды, это можно использовать как возможность
43 вызова только при появлении исходящих пакетов.
44
45 @item
46 @command{nncp-cronexpr} команда позволяет проверить корректность и
47 ожидаемый результат от указанного cron выражения.
48
49 @end itemize
50
51 @node Релиз 5.6.0
52 @subsection Релиз 5.6.0
53 @itemize
54
55 @item
56 @option{-autotoss*} опции запускают tosser не после завершения вызова, а
57 во время него ежесекундно.
58
59 @item
60 В @option{calls} секции конфигурации появились опции
61 @option{autotoss}, @option{autotoss-doseen},
62 @option{autotoss-nofile}, @option{autotoss-nofreq},
63 @option{autotoss-noexec}, @option{autotoss-notrns}.
64 Вы можете настраивать опции автоматического tosser для каждого вызова.
65
66 @item
67 Использовать vendoring вместо переопределения @env{GOPATH} во время
68 установки tarball, так как текущая минимальная версия Go это 1.12,
69 поддерживающая модули.
70
71 @end itemize
72
73 @node Релиз 5.5.1
74 @subsection Релиз 5.5.1
75 @itemize
76
77 @item
78 Уважать @env{BINDIR}, @env{INFODIR} и @env{DOCDIR} переменные окружения
79 в @file{config} во время установки.
80
81 @end itemize
82
83 @node Релиз 5.5.0
84 @subsection Релиз 5.5.0
85 @itemize
86
87 @item
88 Исправления ошибок в @command{nncp-call(er)}/@command{nncp-daemon},
89 @command{nncp-bundle}, @command{nncp-stat} командах.
90
91 @item
92 У команды @command{nncp-rm} появились @option{-dryrun} и @option{-older} опции.
93
94 @item
95 У команды @command{nncp-exec} появились @option{-use-tmp} и
96 @option{-nocompress} опции. Несжатые пакеты не совместимы с предыдущими
97 версиями NNCP.
98
99 @item
100 У команд @command{nncp-call}, @command{nncp-caller} и @command{nncp-daemon}
101 появились @option{-autotoss*} опции для запуска tosser после завершения звонка.
102
103 @item
104 Обновлены зависимые библиотеки. Минимальная требуемая версия Go 1.12.
105
106 @end itemize
107
108 @node Релиз 5.4.1
109 @subsection Релиз 5.4.1
110 @itemize
111
112 @item
113 Исправлена ошибка с учётом @code{SENDMAIL} переменной при сборке.
114
115 @end itemize
116
117 @node Релиз 5.4.0
118 @subsection Релиз 5.4.0
119 @itemize
120
121 @item
122 Обновлены зависимые библиотеки.
123
124 @item
125 Система сборки переведена с Makefile-ов на @url{http://cr.yp.to/redo.html, redo}.
126 Это не должно повлиять на мейнтейнеров пакетов, так как минимальная
127 реализация @command{redo} включена в tarball.
128
129 @end itemize
130
131 @node Релиз 5.3.3
132 @subsection Релиз 5.3.3
133 @itemize
134
135 @item
136 Больше различных проверок в коде на ошибки.
137
138 @item
139 Обновлены зависимые библиотеки.
140
141 @end itemize
142
143 @node Релиз 5.3.2
144 @subsection Релиз 5.3.2
145 @itemize
146
147 @item
148 Исправлена некорректная логика @option{onlinedeadline} timeout-а, при
149 котором соединение могло не учитывать факты прихода пакетов и обрывать
150 связь.
151
152 @end itemize
153
154 @node Релиз 5.3.1
155 @subsection Релиз 5.3.1
156 @itemize
157
158 @item
159 Исправлена работоспособность @option{onlinedeadline} с адресами вызова
160 использующими внешние команды (@verb{#"|somecmd"#}).
161
162 @item
163 @command{nncp-stat} имеет опцию @option{-pkt} показывающую информацию по
164 каждому пакету в spool.
165
166 @end itemize
167
168 @node Релиз 5.3.0
169 @subsection Релиз 5.3.0
170 @itemize
171
172 @item
173 Сообщения прогресса содержат префикс, поясняющий выполняемое действие.
174
175 @item
176 Исправлено не происходящее дополнение (padding) handshake сообщений.
177
178 @item
179 Завершать все порождаемые в SP протоколе горутины, меньше утечек памяти.
180
181 @item
182 SP протокол порождает меньше вызовов записей (соответственно, и TCP
183 пакетов) в сокет.
184
185 @item
186 Проверять @option{onlinedeadline} и @option{maxonlinetime} ежесекундно,
187 независимо от чтения из сокета (раз в 10 секунд в худшем случае).
188
189 @item
190 Раз в минуту, если нет более никакого другого трафика, посылаются PING
191 пакеты в SP-соединении. Это позволит быстрее понимать что соединение
192 более не работоспособно.
193
194 @item
195 @command{nncp-toss} использует lock-file для предотвращения
196 одновременной обработки зашифрованных пакетов.
197
198 @end itemize
199
200 @node Релиз 5.2.1
201 @subsection Релиз 5.2.1
202 @itemize
203
204 @item
205 Исправлена обработка ошибки SP протокола, иногда вызывающая панику программы.
206
207 @end itemize
208
209 @node Релиз 5.2.0
210 @subsection Релиз 5.2.0
211 @itemize
212
213 @item
214 Большинство команд по умолчанию показывают однострочный прогресс
215 выполнения операции. Появились @option{-progress}, @option{-noprogress}
216 опции командной строки, @option{noprogress} опция конфигурационного
217 файла.
218
219 @item
220 Исправлен некорректный код возврата @command{nncp-check} команды,
221 который возвращал ошибку когда всё хорошо.
222
223 @item
224 Проверка свободного места для пакетов, во время выполнения
225 @command{nncp-bundle -rx}.
226
227 @end itemize
228
229 @node Релиз 5.1.2
230 @subsection Релиз 5.1.2
231 @itemize
232
233 @item
234 Исправлена @strong{критичная} уязвимость: аутентификация online нод
235 могла приводить к некорректной идентификации удалённой стороны, позволяя
236 скачивать чужие зашифрованные пакеты.
237
238 @item
239 Исправлена ошибка: в новосозданных конфигурационных файлах, приватный
240 публичный ключ Noise были поменяны местами, что приводило к
241 невозможности online аутентификации нод.
242
243 @item
244 Явная синхронизация (fsync) директорий для гарантированного
245 переименования файлов.
246
247 @end itemize
248
249 @node Релиз 5.1.1
250 @subsection Релиз 5.1.1
251 @itemize
252
253 @item
254 Исправлена работоспособность @command{nncp-file} с @option{-chunked 0} опцией.
255
256 @end itemize
257
258 @node Релиз 5.1.0
259 @subsection Релиз 5.1.0
260 @itemize
261
262 @item
263 @command{nncp-file} может отправлять директории, автоматически на лету
264 создавая pax архив.
265
266 @item
267 Во время создания исходящих сообщений проверяется наличие свободного
268 места на файловой системе.
269
270 @item
271 @option{freq}, @option{freqminsize}, @option{freqchunked} опции
272 конфигурационного файла заменены на структуру
273 @option{freq: @{path: ..., minsize: ..., chunked: ...@}}.
274
275 @item
276 Добавлена @option{freq.maxsize} опция конфигурационного файл,
277 запрещающая ответ на файловый запрос больше заданного размера.
278
279 @item
280 Возможность оповещения об успешно выполненных командах (exec) через
281 @option{notify.exec} опцию конфигурационного файла.
282
283 @end itemize
284
285 @node Релиз 5.0.0
286 @subsection Релиз 5.0.0
287 @itemize
288
289 @item
290 @strong{Несовместимое} изменение формата конфигурационного файла:
291 YAML заменён на Hjson, из-за его гораздо большей простоты, без
292 заметной потери функционала и удобства.
293
294 @item
295 @strong{Несовместимое} изменение формата простых пакетов. Работа со
296 старыми версиями не поддерживается. @code{zlib} сжатие заменено на
297 @code{Zstandard}, так как оно значительно быстрее и эффективнее, не
298 смотря на то, что версия библиотеки ещё не проверена временем.
299
300 @item
301 Возможность соединяться с удалёнными нодами не только по TCP, но и через
302 pipe вызов сторонней команды.
303
304 @item
305 @command{nncp-cfgnew} генерирует конфигурационный файл с множеством
306 комментариев. Можно использовать @option{-nocomments} опцию для старого
307 поведения.
308
309 @item
310 Дубликаты имён файлов имеют суффикс @file{.CTR}, вместо @file{CTR},
311 чтобы избежать возможных коллизий с @file{.nncp.chunkCTR}.
312
313 @item
314 Возможность переопределить umask процесса через опцию конфигурационного
315 файла.
316
317 @item
318 По умолчанию файлы и директории создаются с 666/777 правами доступа,
319 позволяя управлять ими @command{umask}-ом.
320
321 @item
322 Обновлены зависимости.
323
324 @item
325 Полное использование go модулей для управления зависимостями
326 (используется @code{go.cypherpunks.ru/nncp/v5} namespace).
327
328 @item
329 Отмена автоматического использования более новых версий GNU GPL
330 (лицензия проекта GNU GPLv3-только).
331
332 @end itemize
333
334 @node Релиз 4.1
335 @subsection Релиз 4.1
336 @itemize
337 @item Восстановлена работоспособность на GNU/Linux системах и Go версии 1.10.
338 @end itemize
339
340 @node Релиз 4.0
341 @subsection Релиз 4.0
342 @itemize
343
344 @item
345 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов:
346 используется AEAD режим шифрования с 128 КиБ блоками, так как раньше
347 @command{nncp-toss} не проверял MAC зашифрованного пакета прежде чем
348 отсылать дешифрованные данные внешней команде. Старые версии не
349 поддерживаются.
350
351 @item
352 Проверка доступного места перед копированием во время работы
353 @command{nncp-xfer}, @command{nncp-daemon}, @command{nncp-call(er)}.
354
355 @item
356 @command{nncp-call} имеет возможность только показывать список пакетов
357 на удалённой машине, без их передачи.
358
359 @item
360 @command{nncp-call} имеет возможность передавать только чётко указанные пакеты.
361
362 @item
363 Восстановлена работоспособность @option{xxrate} настройки в
364 @option{calls} секции конфигурационного файла.
365
366 @item
367 Зависимые библиотеки обновлены.
368
369 @item
370 Небольшие исправления ошибок.
371
372 @item
373 Начало использования @code{go.mod} подсистемы.
374
375 @end itemize
376
377 @node Релиз 3.4
378 @subsection Релиз 3.4
379 @itemize
380 @item @command{nncp-daemon} может быть запущен как @command{inetd}-служба.
381 @end itemize
382
383 @node Релиз 3.3
384 @subsection Релиз 3.3
385 @itemize
386
387 @item
388 @command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller}
389 проверяют существование @file{.seen} файла и расценивают его как то, что
390 файл уже был скачан. Возможно передача данных была осуществлена
391 сторонним способом и удалённая сторона должна быть оповещена об этом.
392
393 @item
394 Если более высокоприоритетный пакет попадает в спул, то
395 @command{nncp-daemon} добавит его в очередь отправки первым, прерывая
396 низкоприоритетные передачи.
397
398 @item
399 К средствам связанным с online-соединениями (@command{nncp-daemon},
400 @command{nncp-call}, @command{nncp-caller}) добавлен простой
401 ограничитель скорости.
402
403 @item
404 Возможность задания приоритета символьными обозначениями:
405 @verb{|NORMAL|}, @verb{|BULK+10|}, @verb{|PRIORITY-5|}, итд.
406
407 @item
408 Изменены значения приоритетов по-умолчанию:
409 для @command{nncp-exec} с 64 на 96,
410 для @command{nncp-freq} с 64 на 160,
411 для @command{nncp-file} с 196 на 224.
412
413 @end itemize
414
415 @node Релиз 3.2
416 @subsection Релиз 3.2
417 @itemize
418 @item
419 @strong{Несовместимое} изменение формата @emph{bundle} архивов и
420 работоспособность @command{nncp-bundle} команды с Go 1.10+. Bundle
421 должен быть корректным tar архивом, но Go 1.9 делал его недействительным
422 из-за длинных путей внутри. NNCP нечаянно был зависим от этой баги.
423 Явное добавление @file{NNCP/} директории в архив восстанавливает
424 работоспособность с корректными tar архивами.
425 @end itemize
426
427 @node Релиз 3.1
428 @subsection Релиз 3.1
429 @itemize
430 @item
431 Возможность отключать пересылку через промежуточные ноды используя
432 @verb{|-via -|} опцию командной строки.
433 @end itemize
434
435 @node Релиз 3.0
436 @subsection Релиз 3.0
437 @itemize
438
439 @item
440 @strong{Несовместимое} изменение формата простых пакетов. Работа со
441 старыми версиями не поддерживается.
442
443 @item
444 Добавлена возможность удалённого исполнения команд, путём
445 конфигурирования @option{exec} опции конфигурационного файла и
446 использования команды @command{nncp-exec}:
447     @itemize
448     @item
449     Команда @command{nncp-mail} заменена более гибкой и широкой
450     @command{nncp-exec}. Вместо вызова @verb{|nncp-mail NODE RECIPIENT|}
451     нужно использовать @verb{|nncp-exec NODE sendmail RECIPIENT|}.
452     @item
453     @option{sendmail} опция конфигурационного файла заменена на более гибкую
454     @option{exec}. @verb{|sendmail: [...]|} нужно заменить на @verb{|exec:
455     sendmail: [...]|}.
456     @end itemize
457
458 @item
459 Возможность переопределить @option{via} опцию конфигурации для целевого
460 узла через @option{-via} опцию командной строки для следующих команд:
461 @command{nncp-file}, @command{nncp-freq}, @command{nncp-exec}.
462
463 @item
464 Chunked файлы, меньшего размера чем указанный chunk, отправляются просто
465 в виде одного файла.
466
467 @item
468 Exec команды вызываются с дополнительными переменными окружения
469 @env{NNCP_NICE} и @env{NNCP_SELF}.
470
471 @item
472 Отправляемые файлы в ответ на запрос имеют приоритет указанный в запросе.
473 Указать их желаемый приоритет во время вызова @command{nncp-freq} можно
474 аргументом @option{-replynice}.
475
476 @item
477 Команде @command{nncp-toss} можно сказать не обрабатывать определённые
478 типы пакетов, за счёт опций @option{-nofile}, @option{-nofreq},
479 @option{-noexec}, @option{-notrns}.
480
481 @item
482 По-умолчанию @command{nncp-file} команда для
483 @option{-minsize}/@option{-chunked} опций использует
484 @option{FreqMinSize}/@option{FreqChunked} из конфигурационного файла.
485 Это можно отключить указав нулевое значение.
486
487 @end itemize
488
489 @node Релиз 2.0
490 @subsection Релиз 2.0
491 @itemize
492
493 @item
494 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов.
495 Работа со старыми версиями не поддерживается.
496
497 @item
498 Алгоритм шифрования Twofish заменён на ChaCha20. Он намного быстрее.
499 Одним криптографическим примитивом меньше.
500
501 @item
502 HKDF-BLAKE2b-256 KDF алгоритм заменён на BLAKE2Xb XOF. Ещё одним
503 криптографическим примитивом меньше (предполагая, что BLAKE2X
504 практически идентичен BLAKE2).
505
506 @end itemize
507
508 @node Релиз 1.0
509 @subsection Релиз 1.0
510 @itemize
511
512 @item
513 @strong{Несовместимое} изменение формата зашифрованных пакетов. Работа
514 со старыми версиями не поддерживается.
515
516 @item
517 @command{nncp-bundle} команда может создавать потоки зашифрованных
518 пакетов или потреблять их. Это полезно когда речь идёт о
519 @code{stdin}/@code{stdout} методах передачи (например запись на CD-ROM
520 без создания промежуточного подготовленного ISO образа или работа с
521 ленточными накопителями).
522
523 @item
524 @command{nncp-toss} команда может создавать @file{.seen} файлы,
525 предотвращая приём дублированных пакетов.
526
527 @item
528 В команде @command{nncp-call} разрешается иметь только одного
529 обработчика контрольной суммы в фоне. Это полезно когда тысячи маленьких
530 входящих пакетов могут создать много горутин.
531
532 @item
533 Возможность переопределить путь до spool директории и файла журнала
534 через аргумент командной строки или переменную окружения.
535
536 @item
537 @command{nncp-rm} команда может удалять все исходящие/входящие,
538 @file{.seen}, @file{.part}, @file{.lock} и временные файлы.
539
540 @end itemize
541
542 @node Релиз 0.12
543 @subsection Релиз 0.12
544 @itemize
545 @item Команда sendmail вызывается с @env{NNCP_SENDER} переменной окружения.
546 @end itemize
547
548 @node Релиз 0.11
549 @subsection Релиз 0.11
550 @itemize
551 @item Вывод команды @command{nncp-stat} отсортирован по имени ноды.
552 @end itemize
553
554 @node Релиз 0.10
555 @subsection Релиз 0.10
556 @itemize
557 @item
558 @file{DST} аргумент @command{nncp-freq} команды теперь опционален.
559 По-умолчанию будет подставлен последний элемент @file{SRC} пути.
560 @end itemize
561
562 @node Релиз 0.9
563 @subsection Релиз 0.9
564 @itemize
565 @item
566 Исправлена обработка @option{-rx}/@option{-tx} опций @command{nncp-call}
567 команды. Они игнорировались.
568 @end itemize
569
570 @node Релиз 0.8
571 @subsection Релиз 0.8
572 @itemize
573 @item
574 Небольшое исправление ошибки в команде @command{nncp-file}, где опция
575 @option{-minsize} для передачи без разбиения на части была в байтах, а
576 не KiB-ах.
577 @end itemize
578
579 @node Релиз 0.7
580 @subsection Релиз 0.7
581 @itemize
582
583 @item
584 Возможность предоставлять данные для @command{nncp-file} через
585 стандартный ввод, используя временный зашифрованный файл для этого.
586
587 @item
588 Появилась возможность передачи файлов разбитых на части, с сопутствующей
589 @command{nncp-reass} командой и @option{freqchunked} опцией
590 конфигурационного файла. Полезно для передачи больших файлов через
591 маленькие устройства хранения.
592
593 @item
594 @option{freqminsize} опция конфигурационного файла, аналогичная
595 @option{-minsize}.
596
597 @item
598 Опция @option{-force} команды @command{nncp-xfer} переименована в
599 @option{-mkdir} для ясности.
600
601 @item
602 Опция @option{-minsize} задаётся в KiB, а не байтах, для удобства.
603
604 @item
605 Команда @command{nncp-newcfg} переименована в @command{nncp-cfgnew},
606 а @command{nncp-mincfg} в @command{nncp-cfgmin}, для того чтобы они
607 имели общий префикс и были сгруппированы для удобства.
608
609 @item
610 Появилась команда @command{nncp-cfgenc}, позволяющая
611 шифровать/дешифровать конфигурационный файл, чтобы безопасно его хранить
612 без использования OpenPGP или других подобных инструментов.
613
614 @item
615 Обновлены зависимые криптографические библиотеки.
616
617 @end itemize
618
619 @node Релиз 0.6
620 @subsection Релиз 0.6
621 @itemize
622 @item Появилась небольшая команда @command{nncp-rm}.
623 @item Обновлены зависимые криптографические библиотеки.
624 @end itemize
625
626 @node Релиз 0.5
627 @subsection Релиз 0.5
628 @itemize
629 @item
630 Тривиальное небольшое исправление в значениях приоритетов по-умолчанию в
631 @command{nncp-file} и @command{nncp-freq} командах.
632 @end itemize
633
634 @node Релиз 0.4
635 @subsection Релиз 0.4
636 @itemize
637
638 @item
639 Небольшое исправление в @command{nncp-call}, @command{nncp-caller},
640 @command{nncp-daemon}: иногда они могли падать с segmentation fault
641 ошибкой (данные не терялись).
642
643 @item
644 @command{nncp-newnode} переименована в @command{nncp-newcfg} --
645 это короче и удобнее для использования.
646
647 @item
648 Появилась команда @command{nncp-mincfg}: вспомогательная утилита
649 позволяющая создать минималистичный урезанный конфигурационный файл без
650 приватных ключей, что полезно во время использования @command{nncp-xfer}.
651
652 @end itemize
653
654 @node Релиз 0.3
655 @subsection Релиз 0.3
656 @itemize
657 @item Исправлена совместимость с Go 1.6.
658 @end itemize
659
660 @node Релиз 0.2
661 @subsection Релиз 0.2
662 @itemize
663
664 @item
665 @strong{Несовместимое} изменение формата пакета (магическое число тоже
666 изменено): поле размера пакета шифруется и не посылается в открытом виде.
667
668 @item
669 @option{-minsize} опция даёт возможность автоматически дополнять
670 исходящие пакеты до указанного минимального размера.
671
672 @item
673 @command{nncp-daemon} и @command{nncp-call}/@command{nncp-caller} всегда
674 в фоне проверяют появление исходящих @emph{tx} пакетов пока подключены.
675 Удалённая сторона сразу же оповещается об этом.
676
677 @item
678 @option{-onlinedeadline} опция даёт возможность выставления timeout-а на
679 неактивность в online соединении, когда оно должно быть отключено. Она
680 может быть использована для сохранения соединения на долгое время.
681
682 @item
683 @option{-maxonlinetime} опция даёт возможность указания максимального
684 возможного времени жизни соединения.
685
686 @item
687 Появилась @command{nncp-caller} команда: клиент TCP-демона работающий по
688 cron-у.
689
690 @item
691 @command{nncp-pkt} команда может разжимать данные.
692
693 @end itemize