Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
Both sides previous revision Попередня ревізія Наступна ревізія | Попередня ревізія | ||
tox [2014/08/06 10:57] wombat [Сборка DEB-пакета] архив |
tox [2015/02/25 22:01] (поточний) wombat [Добавление друзей] |
||
---|---|---|---|
Рядок 1: | Рядок 1: | ||
====== Tox ====== | ====== Tox ====== | ||
- | Tox is a distributed, secure messenger with audio and video chat capabilities. | + | {{ tox-logo_head.png |Tox logo}} |
+ | |||
+ | **Tox** -- это распределённая сеть для обмена сообщениями, а также для аудио- и видеозвонков. | ||
+ | |||
+ | Поиск участников сети и установление связи с ними в сети Tox происходит очень похоже на torrent-обмен с поиском т.н. "пиров" по технологии DHT. Это означает, что все данные передаются от одного участника сети другому напрямую, а обращение к остальным узлам сети нужно лишь для обмена IP-адресами. | ||
+ | |||
+ | Ключевым отличием от многих других популярных способов аудио-видеосвязи и обмена сообщениями является то, что в сети Tox отсутствует понятие логин-сервера, поскольку проверка личности пользователя происходит на основании его пары ключей: открытого и закрытого. Открытый ключ пользователя одновременно является основной частью его пользовательского идентификатора. | ||
+ | |||
+ | Единственное, для чего Tox использует заранее заданные серверы, это для т.н. "bootstrap", т.е. для получения списка нескольких запущенных узлов сети при запуске программы. После этого bootstrap-серверы могут быть больше не нужны, т.к. поиск пользователей осуществляется посредством распределённой одноранговой (ячеистой?) сети, состоящей из таких же Tox-клиентов. | ||
+ | |||
+ | == Tox ID == | ||
+ | |||
+ | Определение личности пользователя происходит на основе его т.н. "Tox ID" -- идентификатора Tox. | ||
+ | Tox ID состоит из открытого ключа шифрования, антиспам-числа и контрольной суммы: | ||
+ | |||
+ | [открытый ключ (32 байта)][nospam (4 байта)][контрольная сумма (2 байта] | ||
+ | |||
+ | Обычно ключ записывается в шестнадцатеричном виде, и выглядит примерно так: | ||
+ | |||
+ | 56A1ADE4B65B86BCD51CC73E2CD4E542179F47959FE3E0E21B4B0ACDADE51855D34D34D37CB5 | ||
+ | [------------------------------ ключ --------------------------][nospam][CS] | ||
+ | |||
+ | Антиспам-число (nospam) позволяет быстро изменять полный Tox ID без изменения ключа шифрования. | ||
+ | |||
+ | Контрольная сумма предотвращает неправильный или неполный ввод Tox ID. Вычисляется простым XOR'ом. | ||
+ | |||
+ | ===== Установка ===== | ||
+ | |||
+ | ==== Debian/Ubuntu/Mint ==== | ||
+ | |||
+ | Согласно [[https://wiki.tox.im/Binaries#Apt.2FAptitude_.28Debian.2C_Ubuntu.2C_Mint.2C_etc..29 | сайту разработчиков]], установить Tox можно из официального репозитория. Для этого нужно добавить этот репозиторий в список источников APT, а также установить GPG-ключ этого репозитория. Разработчики предлагают воспользоваться следующим готовым скриптом((скрипт с официального сайта с более подробным выводом на экран)): | ||
+ | |||
+ | <file bash tox-add-repo.sh> | ||
+ | echo "Removing the old GPG key" | ||
+ | sudo apt-key del 0C2E03A0 | ||
+ | |||
+ | echo | ||
+ | echo "Adding the new repo to /etc/apt/sources.list.d/" | ||
+ | sudo sh -c 'echo "deb https://repo.tox.im/ nightly main" > /etc/apt/sources.list.d/tox.list' | ||
+ | |||
+ | echo | ||
+ | echo "Installing a new GPG key" | ||
+ | wget -qO - https://repo.tox.im/pubkey.gpg | sudo apt-key add - | ||
+ | |||
+ | echo | ||
+ | echo "Installing 'apt-transport-https' package" | ||
+ | sudo apt-get install apt-transport-https | ||
+ | |||
+ | echo | ||
+ | echo "Running 'apt-get update'" | ||
+ | sudo apt-get update -qq | ||
+ | |||
+ | echo | ||
+ | echo "Tox Repository Installed." | ||
+ | echo "You can now install utox, qtox, toxic, ratox and tox-bootstrapd" | ||
+ | </file> | ||
+ | |||
+ | После добавления репозитория, можно стандартным образом установить utox или qtox. Например, | ||
+ | |||
+ | sudo apt-get install utox | ||
+ | |||
+ | PPA, указанная ниже, устарела. Лучше воспользоваться официальным репозиторием, как указано выше. | ||
+ | |||
+ | sudo add-apt-repository ppa:v-2e/tox | ||
+ | sudo apt-get update | ||
+ | sudo apt-get install utox | ||
+ | ==== Gentoo ==== | ||
+ | |||
+ | Согласно [[https://wiki.tox.im/Overlays | Tox Wiki]], | ||
+ | |||
+ | layman -f -o https://raw.github.com/fr0stycl34r/gentoo-overlay-tox/master/repository.xml -a tox-overlay | ||
+ | layman -S | ||
+ | emerge -va utox | ||
+ | |||
+ | |||
+ | ===== Добавление друзей ===== | ||
+ | |||
+ | Чтобы установить связь с другими пользователями, нужно добавить каждого из них в свой список контактов. Следует иметь в виду, что в отличие от большинства подобных программ, список контактов в Tox хранится только на компьютере пользователя((Напомним, что логин-серверов в Tox не существует)). Поэтому потеря списка контактов на компьютере приведёт к тому, что нужно будет составлять этот список заново. | ||
+ | |||
+ | Чтобы добавить пользователя, нужно, чтобы он выслал вам свой Tox ID по какому-то другому каналу (например, по e-mail), а затем добавить этот ID в своей программе-клиенте. | ||
+ | |||
+ | Чтобы выслать другому пользователю свой Tox ID, его нужно сгенерировать в программе-клиенте. Обычно для этой цели в настройках программы есть кнопка "Скопировать Tox ID". | ||
+ | |||
+ | Поскольку в сети Tox не существует (по идее) единого центра хранения адресов абонентов, при добавлении нового пользователя в список контактов, а также при запуске программы-клиента маршрут ко всем контактам из списка как бы "вычисляется" заново. Ваша программа-клиент "запускает" запрос нужных Tox ID в сеть Tox. При этом узлы, которые знают текущий IP-адрес искомого абонента, откликаются на этот запрос, и далее уже устанавливается прямая связь с абонентом. Побочным эффектом такого подхода является длительное время поиска контактов в сети и их медленное "появление" в списке контактов (обычно - несколько минут или дольше). | ||
+ | |||
+ | ===== Запуск узла Tox-сети ===== | ||
+ | |||
+ | Во-первых, надо собрать Tox с параметром ''--enable-daemon''. | ||
+ | |||
+ | После установки отредактировать конфигурационный файл демона. Файл может находиться в произвольном месте. Представим, что он находится в ''/etc/tox/conf''. | ||
+ | |||
+ | В нём следует указать порт, путь к файлу, где будут храниться ключи, путь к PID-файлу, а также узлы((https://wiki.tox.im/Nodes)), с которыми демон будет связываться сначала. | ||
+ | |||
+ | <file conf /etc/tox/conf> | ||
+ | // ProjectTox dht bootstrap node daemon configuration file. | ||
+ | |||
+ | // Listening port. | ||
+ | port = 33445 | ||
+ | |||
+ | // A key file is like a password, so keep it where no one can read it. | ||
+ | // The daemon should have permission to read/write to it. | ||
+ | // Remember to replace the provided example with your own path. | ||
+ | keys_file_path = "/etc/tox/keys" | ||
+ | |||
+ | // The PID file written to by daemon. | ||
+ | // Make sure that the user who runs the daemon has permissions to write to the | ||
+ | // PID file. | ||
+ | // Remember to replace the provided example with your own path. | ||
+ | pid_file_path = "/var/run/tox/tox_bootstrap_daemon.pid" | ||
+ | |||
+ | // Enable IPv6. | ||
+ | enable_ipv6 = false | ||
+ | |||
+ | // Automatically bootstrap with nodes on local area network. | ||
+ | enable_lan_discovery = true | ||
+ | |||
+ | enable_tcp_relay = true | ||
+ | |||
+ | // Tox uses 443, 3389 and 33445 ports by default, so it's highly recommended to keep | ||
+ | // them. | ||
+ | //tcp_relay_ports = [443, 3389, 33445] | ||
+ | tcp_relay_ports = [3389, 33445] | ||
+ | |||
+ | // It's planned to use message of the day as a convenient method of checking | ||
+ | // whether a node is up or not, though there are other methods of doing that. | ||
+ | enable_motd = true | ||
+ | |||
+ | motd = "tox_bootstrap_daemon" | ||
+ | |||
+ | // Any number of nodes the daemon will bootstrap itself from. | ||
+ | // Remember to replace the provided example with your own node list. | ||
+ | // There is a maintained list of bootstrap nodes on Tox's wiki, if you need it. | ||
+ | // You may leave the list empty or remove "bootstrap_nodes" complitely, | ||
+ | // in both cases this will be interpreted as if you don't want to bootstrap | ||
+ | // from anyone. | ||
+ | bootstrap_nodes = ( | ||
+ | { // Node 1 | ||
+ | // Any ipv4 or ipv6, depending on whether `enable_ipv6` is set or not, and | ||
+ | // also any US-ASCII domain name. | ||
+ | address = "23.226.230.47" | ||
+ | port = 33445 | ||
+ | public_key = "A09162D68618E742FFBCA1C2C70385E6679604B2D80EA6E84AD0996A1AC8A074" | ||
+ | }, | ||
+ | { // Node 2 | ||
+ | address = "192.254.75.98" | ||
+ | port = 33445 | ||
+ | public_key = "951C88B7E75C867418ACDB5D273821372BB5BD652740BCDF623A4FA293E75D2F" | ||
+ | }, | ||
+ | { // Node 3 | ||
+ | address = "144.76.60.215" | ||
+ | port = 33445 | ||
+ | public_key = "04119E835DF3E78BACF0F84235B300546AF8B936F035185E2A8E9E0A67C8924F" | ||
+ | }, | ||
+ | { // Node 4 | ||
+ | address = "37.187.20.216" | ||
+ | port = 33445 | ||
+ | public_key = "5DA6883A3DAB3DA8A32930182F7E50FBB4B379E844B821FC8C4F5EDE176EA164" | ||
+ | }, | ||
+ | { // Node 5 | ||
+ | address = "54.199.139.199" | ||
+ | port = 33445 | ||
+ | public_key = "7F9C31FE850E97CEFD4C4591DF93FC757C7C12549DDD55F8EEAECC34FE76C029" | ||
+ | }, | ||
+ | { // Node 6 | ||
+ | address = "37.59.102.176" | ||
+ | port = 33445 | ||
+ | public_key = "B98A2CEAA6C6A2FADC2C3632D284318B60FE5375CCB41EFA081AB67F500C1B0B" | ||
+ | }, | ||
+ | { // Node 7 | ||
+ | address = "192.210.149.121" | ||
+ | port = 33445 | ||
+ | public_key = "F404ABAA1C99A9D37D61AB54898F56793E1DEF8BD46B1038B9D822E8460FAB67" | ||
+ | }, | ||
+ | { // Node 8 | ||
+ | address = "37.187.46.132" | ||
+ | port = 33445 | ||
+ | public_key = "5EB67C51D3FF5A9D528D242B669036ED2A30F8A60E674C45E7D43010CB2E1331" | ||
+ | } | ||
+ | ) | ||
+ | </file> | ||
+ | |||
+ | После первого запуска демон сгенерирует уникальный ключ для данного узла, и запишет его в файл ключей, указанный в конфигурации. **Этот файл секретен, и должен быть доступен для чтения только демону Tox!** | ||
+ | |||
+ | ==== Ресурсы ==== | ||
+ | |||
+ | По состоянию на 05.08.2014 свежеустановленный демон Tox в среднем создаёт поток ~200 кбит/с входящих данных и ~200 кбит/с исходящих. | ||
+ | |||
+ | https://wiki.tox.im/Run_a_node | ||
===== Сборка DEB-пакета ===== | ===== Сборка DEB-пакета ===== | ||
Архив с папкой настроек для сборки .deb-пакета: {{::tox-debian.tar.xz|}} | Архив с папкой настроек для сборки .deb-пакета: {{::tox-debian.tar.xz|}} | ||
+ | |||
+ | Последовательность сборки можно посмотреть [[debian|здесь]. В целом логика создания .deb-пакета при имеющейся готовой папке "debian" такова: | ||
+ | |||
+ | - Скачивание архива с исходниками | ||
+ | - Создание копии архива с именем, оканчивающимся на ''.orig.tar.gz'', ''.orig.tar.bz2'' и т.п. | ||
+ | - Распаковка скачанного архива | ||
+ | - Копирование папки debian внутрь распакованной папки с исходниками | ||
+ | - Запуск команды ''debuild -us -uc'' | ||
====== Ссылки ====== | ====== Ссылки ====== | ||