Выпуск новой стабильной ветки Tor 0.3.4

Доступен выпуск инструментария Tor 0.3.4.8, используемого для организации работы анонимной сети Tor. Tor 0.3.4.8 признан первым стабильным выпуском ветки 0.3.4, которая развивалась последние четыре месяца. Одновременно также выпущены корректирующие обновления прошлых веток Tor 0.2.9.17, 0.3.2.12 и 0.3.3.10, в которые включены накопившиеся исправления ошибок. Новая ветка 0.3.4 примечательна улучшением кода для противодействия DoS-атакам, оптимизацией для применения на встраиваемых и маломощных системах, продолжением перевода кода на модульную основу, расширением применения тестовых наборов и системы непрерывной интеграции Travis CI.

Основные новшества:

  • Код обеспечения работы корневых директорий Tor (directory authority) переведён на модульную основу, выделен в отдельный каталог src/or/dirauth/ и теперь доступен в виде модуля dirauth. Модуль dirauth собирается по умолчанию, а для отключения сборки следует использовать опцию «configure --disable-module-dirauth»;
  • Внесено несколько оптимизаций, направленных на снижение нагрузки на CPU, экономию энергопотребления и улучшение работы на мобильных системах. Tor теперь не используется запуск периодических событий в состоянии неактивности (DisableNetwork) или временной приостановки работы (hibernation), что упрощает отключение Tor из мобильного приложения, когда устройство находится в спящем режиме или Tor не запущен, и снижает энергопотребление благодаря сокращению числа операций, приводящих к пробуждению процессора.

    Многие операции, ранее выполняемые периодическими обработчиками, вызываемыми раз в секунду, перемещены в callback-вызовы, запускаемые по расписанию. В том числе периодические обработчики теперь не применяются для закрытия соединений, цепочек и каналов, голосования для достижения консенсуса, сброса логов, обработки отложенных запросов, проверки кэша консенсуса, сохранения состояния на диск, отслеживания uptime и проверки доступности портов.

    Проведён рефакторинг кода для вычисления ограничений пропускной способности. Все вычисления пропускной способности теперь производятся по мере необходимости, а не каждые TokenBucketRefillInterval миллисекунд;

  • Расширена проверка кода в системе непрерывной интеграции Travis, для ускорения сборки в которой теперь используются ccache и cargo cache. Добавлена поддержка кросс-компиляции для компонентов на языке Rust. Задействованы дополнительные unit-тесты;
  • Повышены системные требования — для работы теперь необходима поддержка mmap () или эквивалентного вызова. Отмечается, что сборка Tor на старых системах без mmap () с определённых пор приводит к сбою, но эта ошибка никого не беспокоила, поэтому изменение требований должно пройти безболезненно.

© OpenNet