Користувальницькькі налаштування

Налаштування сайту


tox

Це стара версія документу!


Tox

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

Согласно сайту разработчиков, установить Tox можно из официального репозитория. Для этого нужно добавить этот репозиторий в список источников APT, а также установить GPG-ключ этого репозитория. Разработчики предлагают воспользоваться следующим готовым скриптом1):

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"

После добавления репозитория, можно стандартным образом установить 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

Согласно 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 с параметром –enable-daemon.

После установки отредактировать конфигурационный файл демона. Файл может находиться в произвольном месте. Представим, что он находится в /etc/tox/conf.

В нём следует указать порт, путь к файлу, где будут храниться ключи, путь к PID-файлу, а также узлы2), с которыми демон будет связываться сначала.

/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"
  }
)

После первого запуска демон сгенерирует уникальный ключ для данного узла, и запишет его в файл ключей, указанный в конфигурации. Этот файл секретен, и должен быть доступен для чтения только демону Tox!

Ресурсы

По состоянию на 05.08.2014 свежеустановленный демон Tox в среднем создаёт поток ~200 кбит/с входящих данных и ~200 кбит/с исходящих.

https://wiki.tox.im/Run_a_node

Сборка DEB-пакета

Архив с папкой настроек для сборки .deb-пакета: tox-debian.tar.xz

Последовательность сборки можно посмотреть [[debian|здесь]. В целом логика создания .deb-пакета при имеющейся готовой папке “debian” такова:

  1. Скачивание архива с исходниками
  2. Создание копии архива с именем, оканчивающимся на .orig.tar.gz, .orig.tar.bz2 и т.п.
  3. Распаковка скачанного архива
  4. Копирование папки debian внутрь распакованной папки с исходниками
  5. Запуск команды debuild -us -uc

Ссылки

1)
скрипт с официального сайта с более подробным выводом на экран
tox.1424893394.txt.bz2 · В останнє змінено: 2015/02/25 21:43 by wombat