Далее предствален частичный перевод https://github.com/monero-project/kovri-docs Общая информация о Kovri faq.md Часто задаваемые вопросы (и ответы) Содержание Общие вопросы Что такое Kovri? Кто разрабатывает Kovri? Как Kovri поможет Monero? Почему я должен использовать Kovri вместо I2P? Что Kovri делает / не делает для вас? Какой текущий статус Kovri? Когда alpha релиз? На чем сейчас сосредоточена команда разработки? Насколько удобно и безопасно использовать Kovri на данный момент? Как связаться с разработчиками Kovri? Kovri vs i2pd Почему я должен использовать Kovri вместо i2pd? Ключевое отличие Kovri от i2pd? Почему за основу взят i2pd? Каковы были поворотные моменты, которые привели к форку i2pd (и почему у i2pd два репозитория: один на Bitbucket и один GitHub)? Использование Kovri Я нашел уязвимость! Я нашел ошибку! Что мне делать? Почему мой журнал показывает дату/время, отличную от моего часового пояса? Что такое Kovri? Kovri - свободная, децентрализованная, технология анонимности разработанная Monero. В настоящее время основана на открытой спецификации I2P, Kovri использует и чесночное шифрование и чесночную маршрутизацию для создания конфиденциальной, защищенной оверлейной сети поверх интернета. Эта оверлейная сеть предоставляет пользователям возможность эффективно скрывать свое географическое местоположение и IP-адрес в сети интернет. Фактически, Kovri "обертывает" интернет трафик приложения для обеспечения анонимности в сети. Легкий, ориентированный на безопасность маршрутизатор Kovri полностью совместим с I2P сетью. Alpha версия Kovri находится в работе. Следите за разработкой в репозитории Kovri и присоединяйтесь к сообществу. Кто разрабатывает Kovri? Kovri проект с открытым исходным кодом, это означает, что он зависит от вклада сообщества. Основной разработчик проекта anonimal, которому можно задать вопросы на Kovri IRC каналах #kovri, #kovri-dev, или в его Twitter'e. Kovri разрабатывается под эгидой The Monero Project, являющимся другим проектом с открытым исходным кодом, который разарбатывает монету Monero и Open Alias. Отношения между The Monero Project и Kovri взаимовыгодные, Kovri планируется для интеграции в сеть Monero, а Monero обеспечивает поток разработчиков и ресурсов для разработки Kovri. Как Kovri поможет Monero? Monero безопасная, конфиденциальная, неотслеживаемая и взаимозаменяемая криптовалюта, которая конфиденциальна по умолчанию, и использует такие технологии как скрытые адреса, RingCT, и кольцевые подписи для сокрытия получателя, суммы и отправителя соответственно. Некоторые потенциальные недостатки в Monero это утечка IP адреса, которая открывает возможности для transaction и correlation атак. Встречайте Kovri. Kovri будет внедрен в официальный кошелек Monero, поэтому все транзакции будут маршрутизироваться через анонимную сеть Kovri, скрывая IP адрес, с которого совершена транзакция. В будущем все транзакции будут маршрутизироваться через Kovri по умолчанию, хотя загрузка блокчейна будет по прежнему происходить через открытую сеть для повышения эффективности. Почему я должен использовать Kovri вместо I2P? I2P отличный проект, но есть несколько вещей, которые по нашему мнению нуждаются в доводке для интеграции технологии в Monero. Во-первых, I2P разработан на Java, и мы думали, что разработка маршрутизатора на C ++ поможет коду быть быстрым и легким. Во-вторых, поскольку реалзация Java I2P отличная, она поставляется с множеством дополнительных функций, которые, как мы считаем, не нужны для Monero. Итак, мы решили начать с нуля и создать маршрутизатор, который является ТОЛЬКО маршрутизатором. Этот минималистичный подход отлично подходит для Monero, и это также хорошая новость для тех кто хочет сделать свои I2P приложения. У них есть вохможность использовать легкий маршрутизатор без лишних наворотов, в то время как другие пользователи, которые используют эти дополнительные функции могут использовать реализацию на Java. Это беспроигрышный вариант для всех. . Что Kovri делает на данный момент? Позволяет вам стать узлом сети I2P Скрывает ваше физическое местоположение от сайтов, которые вы посещаете Анонимизирует вас в IRC и позволяет использовать анонимный Email Позволяет размещать анонимные сайты или услуги Предоставляет финансирование разработчикам, хакерам, исследователям через FFS и HackerOne Нацелен на высокое качество кода и стандарты разработки Что Kovri ожидает в будущем? Выполенние транзакций Monero поверх I2P GUI для упрощения конфигурирования и повышения удобства использования API библиотеки и привязки(bindings) для внешних приложений\библиотек Расширение Firefox для простого доступа к сайтам в сети I2P (eepsites) Разработка сайта (getkovri.org / kovri.i2p) Обширная документация от ELI5 для разработчика Что Kovri не станет делать? Жертвовать вашей безопасностью ради дальнейшего использования Предоставлять запутанный, полный боли и страданий пользовательский веб-интерфейс Требовать полномочий для сетевого консенсуса Доступ к веб-сайтам через "выходной прокси"(outproxy) Требовать смертельно-медленную Java VM Выгуливать вашу собаку или любимого питомца, оплачивать ваши налоги На какой стадии находится Kovri? Kovri находится в активной разработке и сейчас на стадии pre-alpha. Kovri еще не интегрирован с Monero, но в дополнение к нескольким основным функциям мы разрабатываем API клиента и ядра для использования с Monero и другими приложениями. То что мы в стадии pre-alpha, не означает, что вы не можете использовать Kovri. В настоящее время вы можете использовать Kovri для подключения к (и участия в) сети I2P, просмотра eepsites, подключения к IRC и запуска клиентских и серверных туннелей. Когда alpha релиз? Alpha-релиз находится в разработке и будет выпущен (мы надеемся!!) до конца 2017 года. После выхода alpha версии мы сразу же начнем работу над beta релизом, который потребует: полной реализации API, решения основных проблем обеспечения качества и различных исправлений ошибок. На чем сейчас сосредоточена команда разработки? В данный момент мы сфокусированы на всем, что находится в нашем трекере проблем(issues tracker). Эти проблемы(issues) охватывают большую часть того, что нам необходимо закончить к официальному alpha выпуску. Насколько удобно и безопасно использовать Kovri на данный момент? Kovri можно использовать теми способами, которые описаны в ./kovri --help. В настоящее время Kovri не имеет взаимодействия с Monero. Что касается конфиденциальности, с момента создания, мы устранили многие проблемы с безопасностью, но имейте ввиду мы все еще находимся на стадии pre-alpha. Требуется доработать еще много кода, поэтому не ожидайте такой гарантии анонимности, как, например, у Tor или java I2P. Эти проекты имеют более чем 10-летний опыт исследований и внедрения, а мы только начали. Не стесняйтесь примерять роль разработчика и экспериментировать с Kovri, но только если отсутствие анонимности не подвергает вас опасности, так как всегда существует вероятность возможной деанонимизации из-за того, что Kovri находится в состоянии pre-alpha (Это касается любых проектов). Какие контакты у разработчиков Kovri? Прочитайте README. Kovri vs i2pd Почему я должен использовать Kovri вместо i2pd? Безопасность: основное внимание уделяется безопасности нашего программного обеспечения; Мы не спешим с релизом в ущерб качеству Качество: вы учавствуете в создании качественного кода, который выдержит испытание временем. Это включает в себя все аспекты обслуживания кода Monero: вы будете поддерживать криптовалюту, которая гордится сохранением конфиденциальности и анонимности, увеличивая как вашу конфиденциальность, так и анонимность. Ключевое отличие Kovri от i2pd? Мы предоставляем Систему Общественного Финансирования (Forum Funding System) для разработки/доработки функционала Мы фокусируемся на создании «безопасного по умолчанию», легкого в обслуживании, более-вероятно-что-будет-рецензирован маршрутизатора I2P. Это будет связано с удалением мало используемых функций, присутствующих в других маршрутизаторах, но основные возможности и API будут идентичными. Создавая компактный, эффективный, «голый» маршрутизатор, мы предоставим разработчикам и исследователям много времени для аудита безопасности, вопросов дизайна и спецификации I2P Мы сфокусированы на создании интуитивного, дружелюбного к разработчикам интерфейса для подключения любого приложения и использования сети I2P; включая Monero Мы предоставляем как пользователям, так и разработчикам гарантию качества и модель разработки, чтобы создать лучшее программное обеспечение для всех Мы реализуем альтернативные способы повторного наполнения(reseeding), чтобы пользователи могли использовать Pluggable Transports вместо HTTPS для повторного наполнения (reseed) Мы реализуем расширенный функционал (hidden mode + disabled inbound) для обеспечения анонимности тем, кто живет в странах с тяжелыми условиями или ограничены на уровне провайдеров NAT'ом или DS-Lite Мы всегда будем обеспечивать благоприятные условия для совместной работы Мы всегда будем слушать ваши отзывы и делать все возможное, чтобы улучшить Kovri! Почему за основу взят i2pd? Мы сделали форк по нескольким причинам: Нам нужна надежная, безопасная и жизнеспособная реализация сети I2P на C ++; и i2pd не удовлетворял этим требованиям. Мы хотели позитивное сообщество сотрудничающее с нами для улучшения программного обеспечения; а не негативное и самовлюбленное. Нам нужен ведущий разработчик, который мог бы возглавить проект; а не тот который будет игнорировать запросы, требующие публичной ответственности или сбежит поджав хвост столкнувшись с проблемой соавторства Каковы были поворотные моменты, которые привели к форку i2pd (и почему у i2pd два репозитория: один на Bitbucket и один GitHub)? Так началась драма с i2pd. В начале/середине 2015 года один из разработчиков с привилегиями push на GitHub отправил коммит(ы), который не понравился первому автору i2pd. Однако, вместо того, чтобы продолжить совместную работу и решить проблему, упомянутый автор перенес i2pd на Bitbucket, удалил всю существующую историю с Git и сделал себя единственным «разработчиком» программного обеспечения. Затем он поклялся никогда не возвращаться в Irc2P. Эти действия оскорбили многих в сообществе I2P, включая разработчиков, и почти убили проект на C ++. Осенью 2015 года вместе с приходом anonimal, который не хотел смотреть на то, как пропадает многолетний совместный труд, возродил проект за счет собственного вклада в разработку и развитие. Затем было дано открытое приглашение всем оставшимся активным разработчикам для обсуждения будущего i2pd. Первый автор i2pd никогда не показывался, но факт встречи , видимо, создал шум вокруг i2pd и вынудил его к ответным мерам и снова начать работать на GitHub - но на этот раз в ветке openssl (которая оказалась репозиторием Bitbucket), вместо управляемой сообществом ветви master. Увидев, что такое неустойчивое поведение только вредит сети I2P и проекту в целом, остальные разработчики провели несколько важных встреч и заложили основу для Kovri. Использование Kovri Я нашел уязвимость! Я нашел ошибку! Что мне делать? Уязвимости: смотри README Ошибки: смотри Contributing Guide Почему мой журнал показывает дату/время, отличающеюся от моего часового пояса? Журналы записываются в UTC для защиты вашей конфиденциальности. Используя UTC, вы находитесь в выгодном положении загружая журналы чтобы показать их с разработчикам или сообществу, без потери анонимности. Установка Kovri building.md Шаг 0. (Необязательный) Пропустить сборку и использовать готовые выпуски Смотри в README как скачать предварительно собранный kovri и checksum файла. Просто установи, запусти kovri и прочь из этого руководства по установке! Шаг 1. Если собирать, то минимальные требования Linux / MacOSX / FreeBSD 11 / OpenBSD 6 Git 1.9.1 GCC 4.9.2 CMake 2.8.12 Boost 1.58 (смотри платформозависимые предупреждения) OpenSSL (всегда последняя стабильная версия) Windows MSYS2 MinGW-w64 Выборочно: Clang 3.5 (3.6 on FreeBSD) MiniUPnP 1.6 (Рекомендуется, если вы находитесь за NAT и не имеете доступа к нему) Doxygen 1.8.6 Graphviz 2.36 MacOSX Homebrew Примечание: минимум 1 GiB RAM рекомендуется для сборки окружающей среды (смотри #403 для получения более подробной информации) Шаг 2. Установить зависимости Примечание: в случае использования контейнеров (таких как Docker и Snapcraft), смотри Руководство пользователя Ubuntu Xenial (16.04) Требуемые зависимости: Код: $ sudo apt-get install git cmake libboost-all-dev libssl-dev # gcc/g++ и libssl установлены по умолчанию Опциональные зависимости: Код: $ sudo apt-get install clang $ sudo apt-get install doxygen graphviz $ sudo apt-get install libminiupnpc-dev #For users behind a restrictive NAT Ubuntu Trusty (14.04) Можете собрать Boost из исходников или использовать PPA Ниже инструкции для PPA: Требуемые зависимости: Код: $ sudo add-apt-repository ppa:ubuntu-toolchain-r/test $ sudo add-apt-repository ppa:kojoley/boost $ sudo apt-get update $ sudo apt-get install libboost-{chrono,log,program-options,date-time,thread,system,filesystem,regex,test}1.58-dev $ sudo apt-get install git g++-4.9 cmake libboost-all-dev libssl-dev libssl1.0.0 Опциональные зависимости: Код: $ sudo apt-get install clang-3.5 $ sudo apt-get install doxygen graphviz $ sudo apt-get install libminiupnpc-dev #для пользователей за ограничительным NAT Debian-9 (stretch/stable) Требуемые зависимости: Код: $ sudo apt-get install git g++ cmake libboost-all-dev libssl-dev libssl1.0.0 Опциональные зависимости: Код: $ sudo apt-get install clang $ sudo apt-get install doxygen graphviz $ sudo apt-get install libminiupnpc-dev #для пользователей за ограничительным NAT Arch Linux Требуемые зависимости: Код: $ sudo pacman -Syu cmake boost # gcc/g++ и openssl установлены по умолчанию Опциональные зависимости: Код: $ sudo pacman -S clang $ sudo pacman -S doxygen graphviz $ sudo pacman -S miniupnpc #для пользователей за ограничительным NAT Mac OSX Требуемые зависимости: Код: $ brew install cmake boost openssl # clang установлен по умолчанию Опциональные зависимости: Код: $ brew install doxygen graphviz $ brew install miniupnpc #для пользователей за ограничительным NAT FreeBSD 11 Требуемые зависимости: Код: $ sudo pkg install git cmake gmake clang36 boost-libs openssl Опциональные зависимости: Код: $ sudo pkg install doxygen graphviz $ sudo pkg install miniupnpc #для пользователей за ограничительным NAT Примечание: см. инструкции по сборке для FreeBSD ниже OpenBSD 6 Требуемые зависимости: Код: $ sudo pkg_add bash git cmake gmake g++ llvm Опциональные зависимости: Код: $ sudo pkg_add miniupnpc #для пользователей за ограничительным NAT $ sudo pkg_add doxygen graphviz Сборка последнего boost Код: # Получить boost $ wget [latest boost] -O latest_boost.tar.bz2 $ tar xvjf latest_boost.tar.bz2 && cd latest_boost/ # Скачать и применить патчи # https://svn.boost.org/trac/boost/attachment/ticket/12575/boost-1.62-asio-libressl.patch # https://gist.githubusercontent.com/laanwj/bf359281dc319b8ff2e1/raw/92250de8404b97bb99d72ab898f4a8cb35ae1ea3/patch-boost_test_impl_execution_monitor_ipp.patch # Собрать boost $ echo 'using gcc : : eg++ : "-fvisibility=hidden -fPIC" "" "ar" "strip" "ranlib" "" : ;' > user-config.jam $ config_opts="runtime-link=shared threadapi=pthread threading=multi link=static variant=release --layout=tagged --build-type=complete --user-config=user-config.jam -sNO_BZIP2=1" $ ./bootstrap.sh --without-icu --with-libraries=chrono,log,program_options,date_time,thread,system,filesystem,regex,test $ sudo ./b2 -d2 -d1 ${config_opts} --prefix=${BOOST_PREFIX} stage $ sudo ./b2 -d0 ${config_opts} --prefix=${BOOST_PREFIX} install Примечание: см. инструкции по сборке для OpenBSD ниже Windows (MSYS2/MinGW-64) загрузите MSYS2 инсталлятор, 64-bit или 32-bit в зависимости от вашей операционной системы, и запустите его. Используйте ярлык, соответствующий вашей архитектуре, для запуска среды MSYS2. В 64-битных системах ярлык MinGW-w64 Win64 Shell. Примечание: если вы используете 64-битную Windows, у вас будут 64-разрядное и 32-разрядное окружение. Обновите пакеты в вашем установленном MSYS2: Код: pacman -Sy pacman -Su --ignoregroup base pacman -Su Для тех, кто уже знаком с pacman, вы можете запустить обычный pacman -Syu для обновления, но могут возникнуть ошибки и потребуется перезапуск MSYS2 если зависимости pacman'a обновятся. Установите зависимости: Код: pacman -S make mingw-w64-x86_64-cmake mingw-w64-x86_64-gcc mingw-w64-x86_64-boost mingw-w64-x86_64-openssl Опционально: mingw-w64-x86_64-doxygen (вам понадобится Graphviz для doxygen) Примечание: Вам понадобится mingw-w64-x86_64-miniupnpc, если вы находитесь за NAT. Шаг 3. Сборка 1. Скопируйте репозиторий Код: $ git clone --recursive https://github.com/monero-project/kovri 2. Соберите Kovri и модули зависимостей одной командой Код: $ make # to decrease build-time, run `make -j <available CPU cores>`. Example: `make -j4` 3. Установите Код: $ make install Пользователи ДОЛЖНЫ ЗАПУСКАТЬ make install для каждой новой установки Разработчикам СЛЕДУЕТ ЗАПУСКАТЬ make install после каждой свежей сборки Другие параметры, которые вы можете использовать на этапе 2: Точный и полный список параметров, ищи в целях(targets) Makefile. Примечание Все результаты\выводы (outputs) сборки (включая Doxygen) будут находиться папке сборки Clang Чтобы осуществить сборку с помощью clang, вам необходимо выполнить следующее: Код: $ export CC=clang CXX=clang++ # замените ```clang``` на версию\путь к clang, который вам нужен FreeBSD Код: $ export CC=clang36 CXX=clang++36 # Или более свежая версия clang $ gmake && gmake install Замените make на gmake для всех других параметров сборки OpenBSD Код: $ export CC=clang CXX=clang++ # clang рекомендуется, иначе egcc/eg++ $ gmake && gmake install Замените make на gmake для всех других параметров сборки (Не обязательно) Изменение пути Вы можете изменить путь для Kovri как вам угодно. Просто добавьте переменную KOVRI_DATA_PATH; например: Код: $ export KOVRI_DATA_PATH=$HOME/.another-kovri-data-path && make && make install Шаг 4. Перейдите к руководству пользователя Прочитайте Руководство пользователя для начала работы Docker Кроме того, если вы используете Docker, следующая команда соберет вам образ. Код: $ docker build -t geti2p/kovri . Fuzz тестирование Из справки : "LibFuzzer активно разрабатывается поэтому вам требуется текущая (или достаточно свежая) версия Clang компилятора" Получить свежую версию clang: Код: $ cd ~/ && mkdir TMP_CLANG && git clone https://chromium.googlesource.com/chromium/src/tools/clang TMP_CLANG/clang $ ./TMP_CLANG/clang/scripts/update.py $ cd -- Получить libFuzzer: Код: $ git clone https://chromium.googlesource.com/chromium/llvm-project/llvm/lib/Fuzzer contrib/Fuzzer Собрать kovri с поддержкой fuzz тестирования: Код: $ PATH="~/third_party/llvm-build/Release+Asserts/bin:$PATH" CC=clang CXX=clang++ make fuzz-tests Использование (Пример для RouterInfo): Код: mkdir RI_CORPUS MIN_RI_CORPUS find ~/.kovri/core/network_database/ -name "router_info*" -exec cp {} RI_CORPUS \; ./build/kovri-util fuzz --target=routerinfo -merge=1 MIN_RI_CORPUS RI_CORPUS ./build/kovri-util fuzz --target=routerinfo -jobs=2 -workers=2 MIN_RI_CORPUS Руководство пользователя user_guide.md Итак, вы установили Коври. Что теперь? Шаг 1. Откройте свой NAT/Firewall Выберите порт между 9111 и 30777 Сохраните этот порт в файле конфигурации (kovri.conf) Добавьте исключение в вашем NAT/Firewall, чтобы разрешить входящие TCP/UDP соединения с этим портом (см. примечания ниже, если у вас нет доступа) Заметки: Если вы не сохраните порт, Kovri будет произвольно генерировать новый при каждом запуске (у вас также есть вариант задавать порт параметром --port при каждом запуске). Если у вас нет доступа к вашему NAT, см. Инструкции в руководстве по сборке для своей ОС. Не сообщайте никому свой номер порта, поскольку это влияет на вашу анонимность! Шаг 2. (Рекомендовано) Рабочая безопасность Подумайте о создании отдельного пользователя kovri и запускайте kovri используя только этого пользователя Если используете Linux, подумайте об использовании защищенного ядра (такого как grsec с RBAC) После установки необходимых ресурсов в папку kovri, рассмотрите возможность установки соответствующего контроля доступа с setfacl, umask, или что использует ваша ОС для ACL Никогда не сообщайте свой номер порта никому, так как это повлияет на вашу анонимность! Примечание: см. kovri.conf, чтобы найти папку для Linux/OSX/Windows Шаг 3. Настройка Kovri, Установка тунелей Для получения полного списка опций выполните: Код: $ ./kovri --help Полный список параметров с описанием: kovri.conf файл конфигурации для маршрутизатора и клиента tunnels.conf файл конфигурации для туннелей клиент/сервер Шаг 4. (Выборочно) Установка тунелей Кратко, клиентские тунели(client tunnels), тунели которые вы используете для подключения к другим сервисам, а серверные тунели(server tunnels) используются, когда сервис(ы) располагается у вас (и другие люди подключаются к вашему сервису). По умолчанию, у вас будут установлены клиентские тунели для IRC (Irc2P) и email (i2pmail). Чтобы добавить\удалить клиентские тунели, смотри tunnels.conf. При создании серверного тунеля(ей), вам необходимо создать (постоянные закрытые ключи(persistent private keys). Для этого раскомментируйте или создайте keys = your-keys.dat и замените your-keys на соответствующее имя. Не передавайте никому ваш личный .dat файл, и не забудьте сделать резервную копию! После настройки, ваш Base32 адрес будет показан в вашем журнале, после запуска kovri. Также можно найти адрес в текстовом файле рядом с файлом закрытых ключей, в папке с kovri в client/keys папке. Адрес внутри этого .txt текстового файла можно спокойно распространять, чтобы люди могли подключиться к вашему сервису. Например: Файл закрытых ключей: client/keys/your-keys.dat Публичный Base32/Base64 адрес: client/keys/your-keys.dat.txt Примечание: см. kovri.conf, чтобы найти папку для Linux/OSX/Windows Шаг 5. (Выборочно) Зарегистрируйте свой новый eepsite Стоп! Пока не решено #498, подумайте над регистрацией вашего сервиса только с Kovri, а не с stats.i2p! Откройте запрос с [Subscription Request] your-host.i2p (замените your-host.i2p на нужное имя хоста) в Kovri issue tracker В тело запроса вставьте содержимое вашего открытого файла .txt, упомянутого на предыдущем шаге После проверки мы добавим ваш хост и подпишем подписку Готово! Шаг 6. Запуск Kovri Код: $ cd build/ && ./kovri Подождите около 5 минут, чтобы присоединиться к сети, прежде чем пробовать использовать сервисы Шаг 7. Присоединяйтесь к нам на IRC Запустите свой IRC-клиент Настройте ваш клиент для подключения к IRC-порту Kovri (по умолчанию 6669). Это соединит вас с сетью Irc2P (ICP IRC-сеть) Присоединитесь к #kovri и #kovri-dev Шаг 8. Просмотрите веб-сайт I2P (garlic-сайт/eep-сайт) Запустите браузер, на ваш выбор (предпочтительно браузер, рекомендованный Kovri) Настройте свой браузер, прочитав эти инструкции, но вместо портов 4444 и 4445 измените порт прокси-сервера HTTP на 4446 и SSL-прокси-порт также на 4446 Посетите сайт http://check.kovri.i2p Заметки: Как и в случае с Tor, не требуется SSL для защищенного и безопасного использования сети Поддержка SSL и служба outproxy в настоящее время не реализованы Если кто-то дает вам адрес .i2p, которого нет в вашей адресной книге, используйте службу Jump по адресу http://stats.i2p/i2p/lookup.html Просмотрите файл hosts.txt в своем каталоге данных, чтобы просмотреть список сайтов по умолчанию, которые вы легко можете посетить. В целом, реализация HTTP-прокси и адресной книги находится в разработке и еще не полностью закончена Шаг 9. Наслаждайтесь! Почитать больше о Kovri в Moneropedia. Открыть запрос на доработку или сообщить об ошибке в наш issues tracker Узнать больше о сети I2P сайте java I2P Варианты с использованием контейнеров Snapcraft В системах Linux используйте snapcraft для легкого развертывания. Шаг 1. Получить исходники Kovri Код: $ git clone --recursive https://github.com/monero-project/kovri Шаг 2. Установить snapcraft Используйте пакетный менеджер вашего дистрибутива для установки snapcraft и snapd В Ubuntu, просто выполните: Код: $ sudo apt-get install snapcraft Шаг 3. Создать snap Код: $ cd kovri/ && snapcraft && sudo snap install *.snap --dangerous Примечание: флаг --dangerous необходим только потому, что snap не был подписан (вы сами его создали, так что это не проблема) Шаг 4. Запустить Kovri в snapcraft Код: $ snap run kovri Docker Шаг 1. Установка Docker Установка Docker выходит за рамки этого документа, см. Документацию docker Шаг 2. Настройка/Открытие брандмауэра Образ docker поставляется со значениями Kovri по умолчанию, но может быть настроен так, как описано в предыдущих разделах. Вы должны выбрать случайный порт и открыть этот порт (см. Предыдущие разделы). Шаг 3. Запуск Настройки по умолчанию Код: KOVRI_PORT=42085 && sudo docker run -p 127.0.0.1:4446:4446 -p 127.0.0.1:6669:6669 -p $KOVRI_PORT --env KOVRI_PORT=$KOVRI_PORT geti2p/kovri Пользовательские настройки Код: KOVRI_PORT=42085 && sudo docker run -p 127.0.0.1:4446:4446 -p 127.0.0.1:6669:6669 -p $KOVRI_PORT --env KOVRI_PORT=$KOVRI_PORT -v kovri-settings:/home/kovri/.kovri/config:ro geti2p/kovri Где в ./kovri-settings/ содержится kovri.conf и tunnels.conf. Благодарности acknowledgements.md В дополнение ко всем контрибьюторам Boost и OpenSSL, а также к программистам всех времен, благодоря которым этот проект стал возможен, мы хотели бы отметить следующих: Wei Dai, Jeffrey Walton, и всех разработчиков Crypto++ за предоставление очень важной и бесплатной криптографической библиотеки на C++ Dean Michael Berris, Glyn Matthews, и всех разработчиков cpp-netlib за предоставление активно развивающейся кроссплатформенной сетевой библиотеки Всех разработчиков учавствующих в ref10 реализации из SUPERCOP, на основе которой мы создали нашу реализацию Ed25519 zzz, str4d, и всех Java I2P разработчиков, прошлых и текущих, которые установили стандарт для всех остальных реализаций I2P orion за предоставление i2pcpp: исходной C++ реализации I2P orignal за предоставление i2pd: наиболее функционально полную C++ реализацию I2P взятую нами EinMByte за совершенствование всех C++ I2P реализаций (включая Kovri) Перевод всей документации будет в kovri-docs, а пока доступен тут Если будет интерес к остальной части документации, таким как гарантия качества, стиль и т.д., дайте знать, вложу перевод здесь. Источник: kovri-docs Перевод: MoneroRus (@MoneroRus) Редактирование: Mr. Pickles (@v1docq47) Коррекция: Kukima (@Kukima)