Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
users:techfaq [2015/09/07 23:09] – [Technical FAQ] cmotcusers:techfaq [2020/05/23 17:04] (current) – fix link skeleton1
Line 8: Line 8:
 Tox users are connected by a modified version of [[https://en.wikipedia.org/wiki/Distributed_hash_table | DHT]], and bootstrap nodes are used to assist connections to the pool. The hash table consists of each Tox ID and an encrypted entry of each users' IP, which is only readable when a friend request is made with a proper Tox ID, including the nospam. When a user friends another user, their IPs are exchanged in order to facilitate a direct connection. Once a handshake occurs, a connection is established, and users converse through a crypto stream. Tox users are connected by a modified version of [[https://en.wikipedia.org/wiki/Distributed_hash_table | DHT]], and bootstrap nodes are used to assist connections to the pool. The hash table consists of each Tox ID and an encrypted entry of each users' IP, which is only readable when a friend request is made with a proper Tox ID, including the nospam. When a user friends another user, their IPs are exchanged in order to facilitate a direct connection. Once a handshake occurs, a connection is established, and users converse through a crypto stream.
  
-It consists of a [[https://github.com/irungentoo/toxcore| core]], and a number of [[users:clients]].+It consists of a [[https://github.com/TokTok/c-toxcore| core]], and a number of [[:clients]]. [[http://cr.yp.to/highspeed/coolnacl-20120725.pdf| Go here]] for more information about the advantages of NaCl, libsodium, and peer-reviewed cryptographic primitives.
  
 Tox is just the core, the part of the program which handles the messages and encryption, for instance. But it can only function in the context of a complete instant messaging program. All the fancy user interfaces you see all over the place, are the clients. The client is a separate program which utilizes the core, providing a convenient way to use the program. So when you use Tox, you are in fact using one of the clients. The most clients are graphical clients, in other words, you will make use of all kinds of graphical elements which are part of the client. You usually won't get to see the core (unless you look into the source on GitHub). There are various clients available which each have a different name, are independent from each-other, in various programming languages. Tox is just the core, the part of the program which handles the messages and encryption, for instance. But it can only function in the context of a complete instant messaging program. All the fancy user interfaces you see all over the place, are the clients. The client is a separate program which utilizes the core, providing a convenient way to use the program. So when you use Tox, you are in fact using one of the clients. The most clients are graphical clients, in other words, you will make use of all kinds of graphical elements which are part of the client. You usually won't get to see the core (unless you look into the source on GitHub). There are various clients available which each have a different name, are independent from each-other, in various programming languages.
Line 15: Line 15:
  
   * When you are referring to the Tox protocol or in general, you are talking about Tox.   * When you are referring to the Tox protocol or in general, you are talking about Tox.
-  * When you are referring to the Tox program itself, you are talking about the Tox core, usually written as toxcore (see the [[https://github.com/irungentoo/toxcore| Git]]) +  * When you are referring to the Tox program itself, you are talking about the Tox core, usually written as toxcore (see the [[https://github.com/TokTok/c-toxcore| Git]]) 
-  * When you are referring to one of the clients, you should mention the name of the client instead of 'Tox' or 'toxcore', such as [[clients:Toxic]] or [[clients:qTox]] (see [[Clients]])+  * When you are referring to one of the clients, you should mention the name of the client instead of 'Tox' or 'toxcore', such as [[clients:Toxic]] or [[clients:qTox]] (see [[:clients]])
  
  
-==== Servers? ==== +==== Does Tox Rely on Central Servers? ==== 
-No.+No. That said, in some situations a client will choose to use central node to jump onto the distributed network.
  
 ==== Encryption ==== ==== Encryption ====
Line 28: Line 28:
 Thanks to [[https://en.wikipedia.org/wiki/Public-key_cryptography| public key cryptography]], it is also impossible to pretend to be another Tox user, unless you were to steal that user's private key. Thanks to [[https://en.wikipedia.org/wiki/Public-key_cryptography| public key cryptography]], it is also impossible to pretend to be another Tox user, unless you were to steal that user's private key.
  
-== Which encryption algorithms does Tox employ? ==+=== Which encryption algorithms does Tox employ? ===
 Tox uses the encryption algorithms present in the [[http://nacl.cr.yp.to/| NaCl crypto library]], via [[http://doc.libsodium.org/| libsodium]] Tox uses the encryption algorithms present in the [[http://nacl.cr.yp.to/| NaCl crypto library]], via [[http://doc.libsodium.org/| libsodium]]
  
Line 35: Line 35:
 More info: https://github.com/irungentoo/toxcore/blob/master/docs/updates/Crypto.md More info: https://github.com/irungentoo/toxcore/blob/master/docs/updates/Crypto.md
  
-== How does Tox's Encryption compare to OTR? ==+=== How does Tox's Encryption compare to OTR? ===
 The encryption used in Tox not only provides same features as OTR, but is also the default, and only operation mode of Tox. The encryption used in Tox not only provides same features as OTR, but is also the default, and only operation mode of Tox.
  
Line 57: Line 57:
 ==== What is stopping people from tracking me through the public DHT? ==== ==== What is stopping people from tracking me through the public DHT? ====
  
-Tox generates a temporary public/private key pair used to make connections to peers in the DHT. Onion routing is used to store and locate Tox IDs, to make it more difficult to, for example, associate Alice and Bob together by who they are looking for in the network.+Tox generates a temporary public/private key pair used to make connections to peers in the DHT. Onion routing is used to store and locate Tox IDs, to make it more difficult to, for example, associate Alice and Bob together by who they are looking for in the network. [[https://github.com/irungentoo/toxcore/blob/5ea703c844b12e86702c35b53b0b798fe5f86634/docs/Prevent_Tracking.txt| 1]]
  
 ===== Source ===== ===== Source =====
  
-=== Where do I get the Tox source code? === +==== Where do I get the Tox source code? ==== 
-The core library: https://github.com/irungentoo/toxcore+The core library: https://github.com/TokTok/c-toxcore
  
-=== How do I compile Tox? === +==== How do I compile Tox? ==== 
-Check out the instructions found in [[http://github.com/irungentoo/toxcore/blob/master/INSTALL.md| INSTALL.md]] in the root of the toxcore repository.+Check out the instructions found in [[https://github.com/TokTok/c-toxcore/blob/master/INSTALL.md| INSTALL.md]] in the root of the toxcore repository.
  
 ===== Community ===== ===== Community =====
Print/export