Изменения, видимые пользователю в «magic-wormhole»:
wormhole receive
теперь принимает --allocate-code
, чтобы отправитель мог использовать --code
для отправки файла (#450);Также разработчикам в этом релизе интересны несколько изменений в экспериментальной реализации и описании Dilation; некоторые доработки документации; удаление зависимостей; и некоторые доработки тестов.
Изменения Dilation правильно отправляют use-version
и более плавно разделяют сообщения на фрагменты размером с Noise (что позволяет указанный максимальный размер сообщения в 4 байта на уровне приложения).
Для упаковщиков: PyPI перестал обслуживать файлы отсоединённых подписей. В дальнейшем все подписи будут фиксироваться в Git (в подкаталоге signatures/). Все доступные подписи от PyPI для исторических выпусков также были добавлены сюда.
Спасибо многим участникам за исправления ошибок, патчи и другую помощь в этом выпуске:
wormhole send /dev/fd0
может отправлять содержимое указанного блочного устройства (USB-накопитель, SD-карта, дискета и т. д.), что приводит к созданию простого файла на другой стороне (#323);--verify
достаточно долго, чтобы отправить верификатор. Это исправляет ошибку, когда обе стороны используют --verify
, получатель использует завершение табуляции, отправитель видит верификатор и ждёт подтверждения пользователя, но получатель не может показать верификатор (разрешая это подтверждение), пока отправитель не одобрит передачу (#349).Этот выпуск также включает незавершённую реализацию нового API «Dilation» (подробности см. в тикете № 312). В будущем это позволит перезапускать прерванные передачи, переносить изменения сетевого адреса, двунаправленные передачи в долгосрочном процессе GUI/демона и многое другое. Протокол ещё не завершён и пока не совместим обратно со старым протоколом «Transit», поэтому доступа к CLI пока нет. Код присутствует и протестирован, чтобы убедиться, что он не регрессирует, и для удобства разработки, но отважным людям, желающим его опробовать, сначала нужно написать клиент (и помнить, что протокол может измениться). В будущем выпуске будет... Джои Хесс, Джаред Андерсон, Антуан Бопре и всем, кто тестирует и сообщает о проблемах на Github.
В интерфейс командной строки добавлены новые команды «wormhole ssh invite» и «wormhole ssh accept», которые упрощают добавление ключа ~/.ssh/id_*.pub в файл ~/.ssh/authorized_keys с соответствующими правами доступа. Эти команды являются экспериментальными: синтаксис может быть изменён в будущем или они могут быть полностью удалены.
Команды «wormhole recv» и «wormhole receive» теперь принимаются как псевдонимы для «wormhole receive», чтобы помочь пользователям с плохим правописанием :)
Улучшено отображение сокращённых размеров файлов.
При «нормальных» ошибках не выводится трассировка стека.
Если целевой файл уже существует, отправителю не сообщается об этом факте, просто выводится сообщение «отказ в передаче».
Теперь magic-wormhole зависит от Twisted[tls], что приведёт к установке пакетов pyOpenSSL и cryptography. Это должно предотвратить предупреждение о недоступности модуля service_identity.
Другие небольшие внутренние изменения.
Спасибо всем, кто отправил патчи в этом цикле выпуска: anarcat, Ofekmeister, Tom Lowenthal, meejah, dreid и dkg. И спасибо многочисленным репортёрам ошибок на Github!
Этот выпуск содержит в основном незначительные изменения.
Самое заметное — это то, что долгоживущие червоточины теперь должны быть более надёжными. Раньше, если вы запускаете wormhole send, но ваш партнёр не запускает их receive в течение нескольких часов, NAT/межсетевой экран на любой стороне мог остановить пересылку трафика для неактивного соединения (без отправки FIN или RST для правильного закрытия сокета), вызывая зависание обеих сторон навсегда и фактически никогда не соединяя их. Теперь обе стороны отправляют периодические сообщения keep-alive для предотвращения этого.
Кроме того, перейдя на Click для анализа аргументов, мы теперь имеем короткие псевдонимы команд: wormhole tx делает то же самое, что и wormhole send, а wormhole rx является более простым эквивалентом wormhole receive.
Другие изменения:
Большинство аргументов перемещены и привязаны к подкоманде (новое: wormhole send --verify), а не к команде wormhole (старое: wormhole --verify send). Четыре аргумента остаются в команде wormhole: --relay-url=, --transit-helper=, --dump-timing= и --version.
Документы: добавлены ссылки на презентацию PyCon2016.
Отвергаются коды червоточин с пробелами с лучшим сообщением об ошибке.
magic-wormhole должен работать на Windows сейчас.
Завершение табуляции кода должно работать на стандартном Python OS-X (с libedit).
Отправка каталога должна правильно восстанавливать права доступа к файлам.
Изменения сервера:
Большое спасибо людям, которые внесли свой вклад в этот выпуск во время спринтов PyCon и после них: higs4281, laharah, Chris Wolfe, meejah, wsanchez, Kurt Neufeld и Francois Marier.
Этот релиз полностью несовместим с предыдущим релизом 0.7.6. Клиенты, использующие 0.7.6 или более ранние версии, даже не заметят клиентов, использующих 0.8.0 или более поздние версии.
Капитальный ремонт клиент-серверного протокола websocket, клиент-клиентских сообщений PAKE, получения ключей шифрования для каждого сообщения, схемы базы данных relay-сервера, SPAKE2 и публичных URL-адресов ретрансляции. Добавлены поля версий и допущение неизвестных сообщений на большинстве этапов протокола.
Надеемся, это обеспечит прямую совместимость с будущими изменениями протокола. У меня есть несколько пунктов в списке, и поля версий должны сделать возможным их добавление без дня флага (в худшем случае — «месяц флага»).
Видимые пользователю изменения минимальны, хотя некоторые операции должны выполняться быстрее, поскольку нам больше не нужно ждать ACK перед продолжением.
API-изменения: .send_data()/.get_data() стали .send()/.get(), ни один из них не принимает аргумент phase= (Wormhole теперь является каналом записи). .get_verifier() стал .verify() (и ждёт получения сообщения с подтверждением ключа перед запуском Deferred), червоточины создаются с помощью вызова функции вместо конструктора класса, close() всегда ожидает подтверждения сервера. bar.
Внесены некоторые исправления для обеспечения совместимости с Windows, но все тесты пока не проходят.
wormhole server usage
теперь также показывает использование Transit, а не только Rendezvous.wormhole
может отправлять и получать целые каталоги. Они архивируются перед передачей.--output-file=
, который позволяет получателю переопределить имя файла, в который он записывает данные. Это может помочь при использовании скриптов.wormhole send --text -
, чтобы читать текстовое сообщение из стандартного ввода. wormhole receive >outfile
работает, но в настоящее время добавляет дополнительную новую строку, которая может быть удалена в будущем выпуске.Это изменяет протокол (на симметричную форму), нарушая совместимость с узлами версии 0.3.0. Теперь и блокирующий стиль, и стиль Twisted используют симметричный протокол, и обеим сторонам не нужно заранее выяснять, кто пойдёт первым. Внутренний макет был изменён, поэтому приложения, импортирующие wormhole, необходимо обновить.
Добавьте предварительную поддержку Twisted, только для симметричных конечных точек (без различия инициатора/получателя). Отсутствует завершение кода табуляцией. Может по-прежнему оставлять таймеры зависшими. Добавьте набор тестов (пока только для Twisted).
Используйте базу данных sqlite для состояния сервера Relay, чтобы пережить перезагрузки с меньшими потерями данных. Добавьте «--advertise-version=» в «wormhole relay start», чтобы переопределить версию, которую мы рекомендуем клиентам.
Первый выпуск: поддерживает блокирующие/синхронные асимметричные конечные точки (Initiator на одном Коды могут быть сгенерированы Инициатором или созданы извне и переданы обоим (если они начинаются с цифр: NNN-что угодно).
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )