[about] [index] [prev] [2017-12-02 19:30:53+03:00] [ee38b36aaaf2b0d4731873a97d14bf99f0e1c960]
Topics: [nncp]

Зарелизил NNCP 1.0

https://news.ycombinator.com/item?id=15832615
https://lists.cypherpunks.ru/pipermail/nncp-devel/2017-December/000061.html
Долго он у меня лежал в разработке, но вот выложил.

Это мажорная версия, потому что формат зашифрованных пакетов чуть-чуть
поменялся: добавилось поле получателя. Это было необходимо для
nncp-bundle команды и выцыпления зашифрованных пакетов из потоков байт.

Главная фишка нового релиза это появление команды nncp-bundle. Если
раньше в offline методе обмена данными необходимо было использовать
накопители где есть файловые системы, то теперь можно использовать всё
что угодно где можно просто сохранить потоком набор байт. nncp-xfer
требовал оперирования с директориями и файлами. bundle позволяет:

* записать на компакт-диск пакеты для отправки без создания
  промежуточного ISO образа (или директории для nncp-xfer который его
  подготовит). Указываете кому надо отправить имеющиеся пакеты и в
  stdout nncp-bundle выплюнет то, что можно сразу отправить на запись.
  Аналогично и прочитать можно с диска dd-ой и отправить в nncp-bundle
* записать на флешку/диск пакеты для отправки без создания файловой
  системы. ФС между разными компьютерами это большой геморрой -- права
  доступа, совместимость ФС. Единственная ФС которая работает на Windows
  и BSD/GNU системах из коробки это FAT32. Для записи на которую нужно
  помнить о создании chunked файлов небольшого размера (на FAT32 нельзя
  писать большие файлы)
* записать/принять данные на ленту (магнитную). Причём постоянно на неё
  добавлять дополнительные bundle. Раньше пришлось бы создавать
  nncp-xfer-ом промежуточную директорию и её tarball-ом слать на ленту
* рассылать пакеты по однонаправленным broadcast каналам. Постоянно
  слушать nncp-bundle -rx входящий трафик чтобы услышать пакеты для себя

Сам по себе выхлоп nncp-bundle это tar (pax) архив, структура внутри
которого полностью идентична директориям создаваемым nncp-xfer. Это
делалось не специально, но получился приятный бонус -- обработать
принятый bundle можно и старой доброй nncp-xfer командой (с созданием
промежуточной директории). Так же как и создать bundle можно просто
заархивировав nncp-xfer обработанную директорию.

Также появилась возможность создания state-а в spool директории. Очень
не хотелось делать подобного, но пришлось. Допустим мы приняли большую
ёмкую ленту с кучей пакетов для нас. За раз наша spool директория не
может вместить все зашифрованные пакеты с ленты. Можно сделать в
несколько проходов: натравливаем nncp-bundle -rx и принимаем пока
хватает места. Дальше делаем nncp-toss -seen, который для каждого
обработанного пакета создаст PKT.seen файл. Снова натравливаем
nncp-bundle -rx, но он, видя .seen файлы, будет их игнорировать и
записывать в spool только ещё не обработанные.

Плюс nncp-rm команда может удалять временные файлы, .lock, .seen, .part
(частично принятые), а также очищать очереди. На практике довольно
регулярно приходится что-то подчищать, используя find -delete. Теперь
таких ручных действий не надо.

[leave comment]