From ee38b36aaaf2b0d4731873a97d14bf99f0e1c960 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Sat, 2 Dec 2017 19:30:53 +0300 Subject: [PATCH] =?utf8?q?=D0=97=D0=B0=D1=80=D0=B5=D0=BB=D0=B8=D0=B7=D0=B8?= =?utf8?q?=D0=BB=20NNCP=201.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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. Теперь таких ручных действий не надо. -- 2.50.0