{"id":34632,"date":"2019-10-31T21:59:31","date_gmt":"2019-10-31T18:59:31","guid":{"rendered":"https:\/\/prohoster.info\/blog\/ton-telegram-open-network-chast-1-vstuplenie-setevoj-uroven-adnl-dht-overlejnye-seti\/"},"modified":"2019-10-31T21:59:31","modified_gmt":"2019-10-31T18:59:31","slug":"ton-telegram-open-network-chast-1-vstuplenie-setevoj-uroven-adnl-dht-overlejnye-seti","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/ton-telegram-open-network-chast-1-vstuplenie-setevoj-uroven-adnl-dht-overlejnye-seti","title":{"rendered":"TON : Telegram Open Network. Partie 1 : Introduction, niveau r\u00e9seau, ADNL, DHT, r\u00e9seaux superpos\u00e9s","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"TON : Telegram Open Network. Partie 1 : Introduction, niveau r\u00e9seau, ADNL, DHT, r\u00e9seaux superpos\u00e9s\" src=\"\/wp-content\/uploads\/2019\/05\/65710678b9e432476cf1b6e24348a7ac.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Depuis deux semaines, Runet parle de Telegram et de la situation concernant son blocage absurde et impitoyable par Roskomnadzor. Cela a touch\u00e9 beaucoup de gens en ricochet, mais tout cela constitue des sujets pour des publications sur Geektimes. Ce qui m'a surpris, c'est que je n'ai toujours pas vu sur Habr une seule analyse du r\u00e9seau TON \u2014 Telegram Open Network, qui est pr\u00e9vu sur la base de Telegram. J'ai voulu pallier ce manque, car il y a beaucoup \u00e0 \u00e9tudier l\u00e0-bas \u2014 m\u00eame sans d\u00e9clarations officielles \u00e0 son sujet.<\/p>\n<p><\/p>\n<p>Je rappelle que des rumeurs circulent selon lesquelles Telegram aurait lanc\u00e9 un ICO ferm\u00e9 de grande envergure, ayant d\u00e9j\u00e0 rassembl\u00e9 des sommes incroyables. On suppose que d\u00e8s cette ann\u00e9e, une cryptomonnaie nomm\u00e9e Gram sera lanc\u00e9e \u2014 et chaque utilisateur de Telegram aura automatiquement un portefeuille, ce qui cr\u00e9e en soi un avantage consid\u00e9rable par rapport aux autres cryptomonnaies.<\/p>\n<p><\/p>\n<p>Malheureusement, comme il n'y a pas de d\u00e9clarations officielles, je ne peux me baser que sur <noindex><a rel=\"nofollow\" href=\"https:\/\/denull.ru\/telegram\/ton-tech.pdf\">un document d'origine inconnue<\/a><\/noindex>, ce dont je vous avertis tout de suite. Bien s\u00fbr, il pourrait s'agir d'un faux tr\u00e8s habile, mais il se peut \u00e9galement que ce soit un v\u00e9ritable livre blanc du futur syst\u00e8me, \u00e9crit par Nikolai Durov (et probablement divulgu\u00e9 par quelqu'un des investisseurs). Mais m\u00eame si c'est un faux, personne ne nous interdira de l'\u00e9tudier et d'en discuter, n'est-ce pas ?<\/p>\n<p><\/p>\n<p>Que dit ce document ? Je vais essayer de le r\u00e9sumer avec mes propres mots, fid\u00e8lement au texte, mais en fran\u00e7ais et de mani\u00e8re un peu plus humaine (que Nikolai me pardonne pour sa tendance \u00e0 s'\u00e9garer dans les math\u00e9matiques formelles). Gardez \u00e0 l'esprit que m\u00eame en cas d'authenticit\u00e9, il s'agit d'une description pr\u00e9liminaire du syst\u00e8me, et il est tr\u00e8s probable qu'elle change d'ici au lancement public.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Nous d\u00e9couvrons qu'en plus de la cryptomonnaie, il est pr\u00e9vu encore beaucoup, beaucoup d'autres choses. D\u00e9taillons cela dans l'ordre.<\/p>\n<p><\/p>\n<ul>\n<li><strong>TON Blockchain<\/strong>. C'est la base du syst\u00e8me entier. Si vous ne savez absolument pas ce qu'est un <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%91%D0%BB%D0%BE%D0%BA%D1%87%D0%B5%D0%B9%D0%BD\">blockchain<\/a><\/noindex> , je vous recommande de vous renseigner, car il y aura de nombreux blockchains ici. Imbriqu\u00e9s les uns dans les autres, virtuellement fragment\u00e9s et m\u00eame des blockchains \u00ab verticaux \u00bb \u00e0 l'int\u00e9rieur des blocs d'autres blockchains. Et il y aura aussi plusieurs termes qui sonnent bien, comme <em>Instant Hypercube Routing<\/em> et <em>Infinite Sharding Paradigm<\/em>, mais nous en reparlerons plus tard. Et bien s\u00fbr, la preuve d'enjeu et les contrats intelligents.<\/li>\n<li><strong>TON P2P Network<\/strong>. Un r\u00e9seau pair-\u00e0-pair, sur la base duquel le fonctionnement du syst\u00e8me sera construit. C'est de cela qu'il sera principalement question dans cette partie de la narration.<\/li>\n<li><strong>Stockage TON<\/strong>. Un stockage de fichiers qui sera construit ind\u00e9pendamment de la blockchain sur le r\u00e9seau peer-to-peer mentionn\u00e9 ci-dessus. On peut le comparer aux torrents.<\/li>\n<li><strong>Proxy TON<\/strong>. C'est un service dont le but est d'augmenter l'anonymat des participants au r\u00e9seau. Tout paquet peut \u00eatre envoy\u00e9 non pas directement, mais par des tunnels interm\u00e9diaires avec un chiffrement suppl\u00e9mentaire \u2014 similaire \u00e0 I2P ou TOR. <\/li>\n<li><strong>DHT TON<\/strong>. Une table de hachage distribu\u00e9e pour stocker des valeurs arbitraires. Elle est \u00e9galement construite au-dessus de <em>R\u00e9seau TON<\/em> (mais l'utilise \u00e9galement) et aide <strong>Stockage TON<\/strong> \u00e0 trouver des n\u0153uds \u00ab partageurs \u00bb, et <strong>Proxy TON<\/strong> \u2014 des relais interm\u00e9diaires. Cependant, il convient de noter qu'\u00e0 la diff\u00e9rence de la blockchain, cette table de hachage n'est pas un espace de stockage s\u00e9curis\u00e9 \u2014 il ne faut pas y conserver d'informations importantes.<\/li>\n<li><strong>Services TON<\/strong>. Une plateforme pour des services vari\u00e9s. En fait, c'est un nouvel internet par-dessus tout ce qui a \u00e9t\u00e9 d\u00e9crit pr\u00e9c\u00e9demment. L'\u00e9change de donn\u00e9es se fait par <strong>R\u00e9seau TON<\/strong>\/<strong>Proxy TON<\/strong>, et la logique r\u00e9side dans les smart contracts eux-m\u00eames <strong>TON Blockchain<\/strong>. Et l'interface avec des URL assez famili\u00e8res.<\/li>\n<li><strong>DNS TON<\/strong>. Puisqu'il s'agit des URL famili\u00e8res, il faut \u00e9galement un convertisseur de celles-ci en adresses de 256 bits \u2014 comptes, contrats, services et n\u0153uds.<\/li>\n<li><strong>Paiements TON<\/strong>. Et c'est ici que la question mon\u00e9taire entre en jeu. Ce ne sera pas seulement <strong>gram<\/strong> \u2014 comme avec l'Ethereum, tous les \u00ab tokens \u00bb seront possibles ; les grams ne seront qu'une monnaie \u00ab par d\u00e9faut \u00bb.<\/li>\n<\/ul>\n<p><\/p>\n<p>C'est la premi\u00e8re partie d\u00e9crivant le niveau \u00ab terrestre \u00bb du TON \u2014 sa partie r\u00e9seau, construite au-dessus de protocoles traditionnels. La prochaine partie traitera de la \u00ab chair \u00bb \u2014 blockchain qui sera soutenue par le syst\u00e8me d\u00e9crit ci-dessous. Ainsi, mon ordre de r\u00e9cit diff\u00e8re quelque peu de celui utilis\u00e9 dans le document mentionn\u00e9 ci-dessus (qui commence directement par le niveau abstrait).<\/p>\n<p><\/p>\n<h3 id=\"bazovye-ponyatiya\">Concepts de base<\/h3>\n<p><\/p>\n<p><strong>TL<\/strong> (Type Language). C'est un format binaire abstrait pour des structures de donn\u00e9es arbitraires. Il est utilis\u00e9 dans le protocole de Telegram et sera activement utilis\u00e9 dans le TON. Si vous voulez vous familiariser avec lui en d\u00e9tail \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/core.telegram.org\/mtproto\/TL\">voici sa description<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p><strong>Hachage<\/strong> (<em>hash<\/em>). Une fonction qui produit une transformation irr\u00e9versible d'une structure de donn\u00e9es arbitraire en un num\u00e9ro unique de longueur fixe. Dans la documentation, on parle beaucoup de la fonction <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/SHA-2\">SHA-256<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p><strong>N\u0153ud du r\u00e9seau<\/strong> (<em>node<\/em>). Un n\u0153ud est un logiciel qui assurera le fonctionnement du syst\u00e8me. En particulier, il est pr\u00e9vu que chaque application cliente de Telegram inclura un n\u0153ud du TON. \u00c0 un niveau inf\u00e9rieur, les n\u0153uds ont des adresses IPv4\/IPv6 et communiquent via le protocole UDP, \u00e0 un niveau sup\u00e9rieur, ils poss\u00e8dent <em>des adresses abstraites<\/em> et mettent en \u0153uvre le protocole ADNL (pour plus d'informations sur les adresses abstraites et ADNL, voir ci-dessous). Lorsque l'on parle de certaines parties du syst\u00e8me effectuant des actions ou stockant des donn\u00e9es, cela signifie que ce sont les n\u0153uds du r\u00e9seau qui le font.<\/p>\n<p><\/p>\n<p><strong>Adresse abstraite<\/strong> (ou simplement <em>adresse<\/em>, <em>address<\/em>). L'adresse d'un n\u0153ud est d\u00e9termin\u00e9e par sa cl\u00e9 publique. Plus strictement, il s'agit d'un hachage de 256 bits (SHA256) de la structure de donn\u00e9es contenant la cl\u00e9 publique (l'algorithme cryptographique sp\u00e9cifique n'est pas pr\u00e9cis\u00e9 \u2014 les courbes elliptiques et RSA-2048 sont cit\u00e9es comme exemples). Pour qu'un n\u0153ud puisse interagir avec un autre, il doit conna\u00eetre non seulement l'adresse de celui-ci, mais aussi cette structure de donn\u00e9es. Th\u00e9oriquement, un n\u0153ud physique peut cr\u00e9er un nombre illimit\u00e9 d'adresses (correspondant \u00e0 diff\u00e9rentes cl\u00e9s).<\/p>\n<p><\/p>\n<p>Ensuite, une telle association est souvent utilis\u00e9e : une \u00ab pr\u00e9-image \u00bb sous forme de structure TL (contenant pratiquement toutes les donn\u00e9es), et un hachage de 256 bits de celle-ci, utilis\u00e9 pour l'adressage.<\/p>\n<p><\/p>\n<p><strong>Blockchain<\/strong> (<em>blockchain<\/em>). La blockchain est une structure de donn\u00e9es dont les \u00e9l\u00e9ments (<em>blocs<\/em>) sont ordonn\u00e9s en une \u00ab cha\u00eene \u00bb, chaque bloc suivant de la cha\u00eene contenant le hachage du pr\u00e9c\u00e9dent. Cela assure l'int\u00e9grit\u00e9 \u2014 les modifications ne peuvent \u00eatre effectu\u00e9es que par l'ajout de nouveaux blocs.<\/p>\n<p><\/p>\n<p><strong>Service<\/strong> (<em>service<\/em>). Les services dans le cadre de TON peuvent \u00eatre de diff\u00e9rents types, en fonction de leur utilisation ou non de la blockchain. Par exemple, un (ou plusieurs) n\u0153ud du r\u00e9seau peut traiter certaines demandes RPC via le protocole ADNL d\u00e9crit ci-dessous, sans cr\u00e9er de nouvelles entr\u00e9es dans la blockchain \u2014 comme des serveurs web traditionnels. Il est \u00e9galement envisag\u00e9 de mettre en \u0153uvre HTTP sur ADNL, ainsi que de faire passer le messager lui-m\u00eame \u00e0 ce protocole. \u00c0 l'instar de TOR ou I2P, cela le rendra plus r\u00e9sistant \u00e0 diverses censures.<\/p>\n<p><\/p>\n<p>Dans le m\u00eame temps, plusieurs services impliquent \u00e0 la fois l'interaction avec la blockchain et le traitement des requ\u00eates en dehors de celle-ci. Par exemple, pour TON Storage \u2014 un stockage de fichiers \u2014 il n'est pas tr\u00e8s judicieux de stocker les fichiers eux-m\u00eames dans la blockchain. Seuls les hachages des fichiers (ainsi que certaines m\u00e9tainformations \u00e0 leur sujet) seront contenus, et des n\u0153uds sp\u00e9cialis\u00e9s du r\u00e9seau agiront en tant que \u00ab serveurs de fichiers \u00bb pr\u00eats \u00e0 les fournir \u00e0 d'autres n\u0153uds via ADNL.<\/p>\n<p><\/p>\n<p><strong>Service brouillard<\/strong> (<em>fog service<\/em>). Il s'agit de certains services qui supposent la d\u00e9centralisation et la participation ouverte. Par exemple, TON Proxy est un service qui peut \u00eatre soutenu par tout participant souhaitant fournir son n\u0153ud en tant qu'interm\u00e9diaire (proxy) pour transmettre des paquets entre d'autres n\u0153uds. S'il le d\u00e9sire, il peut exiger un tarif qu'il a fix\u00e9 \u2014 en utilisant le syst\u00e8me TON Payments pour les micropaiements (qui, \u00e0 son tour, est \u00e9galement un service de brouillard).<\/p>\n<p><\/p>\n<h3 id=\"adnl-abstract-datagram-network-layer\">ADNL : Abstract Datagram Network Layer<\/h3>\n<p><\/p>\n<p>Au niveau le plus bas, l'interaction entre les n\u0153uds se fera via le protocole UDP (bien que d'autres options soient acceptables).<\/p>\n<p><\/p>\n<p>Comme mentionn\u00e9 ci-dessus, afin qu'un n\u0153ud puisse envoyer un paquet \u00e0 un autre, il doit conna\u00eetre l'une de ses cl\u00e9s publiques (et, par cons\u00e9quent, l'adresse qui lui est associ\u00e9e). Il chiffre le paquet avec cette cl\u00e9 et ajoute au d\u00e9but du paquet une adresse de 256 bits du destinataire \u2014 puisque chaque n\u0153ud peut avoir plusieurs adresses de ce type, cela lui permettra de d\u00e9terminer quelle cl\u00e9 utiliser pour le d\u00e9cryptage.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"TON : Telegram Open Network. Partie 1 : Introduction, niveau r\u00e9seau, ADNL, DHT, r\u00e9seaux superpos\u00e9s\" src=\"\/wp-content\/uploads\/2019\/05\/570ed97bb0745d074e806e84651af567.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>De plus, au lieu de l'adresse du destinataire, un identifiant peut se trouver au d\u00e9but du paquet de donn\u00e9es. <em>canal<\/em>. Dans ce cas, le traitement du paquet d\u00e9pendra des accords sp\u00e9cifiques entre les n\u0153uds \u2014 par exemple, les donn\u00e9es envoy\u00e9es dans un certain canal peuvent \u00eatre destin\u00e9es \u00e0 un autre n\u0153ud et doivent lui \u00eatre r\u00e9adress\u00e9es (c'est cela le service <em>Proxy TON<\/em>). Un autre cas particulier peut \u00eatre une interaction directe entre les n\u0153uds, mais avec un cryptage selon une paire de cl\u00e9s individuelle pour ce canal (pr\u00e9alablement form\u00e9es selon le protocole de Diffie-Hellman).<\/p>\n<p><\/p>\n<p>Enfin, un cas sp\u00e9cial est le canal \u00ab z\u00e9ro \u00bb \u2014 si un n\u0153ud ne conna\u00eet pas encore les cl\u00e9s publiques de ses \u00ab voisins \u00bb, il peut leur envoyer des paquets sans aucun chiffrement. Cela est pr\u00e9vu uniquement pour l'initialisation \u2014 une fois que les n\u0153uds auront envoy\u00e9 des informations sur leurs cl\u00e9s, celles-ci doivent \u00eatre utilis\u00e9es pour les interactions futures.<\/p>\n<p><\/p>\n<p>Le protocole d\u00e9crit ci-dessus (256 bits d'identifiant de canal + contenu du paquet) s'appelle ADNL. La documentation mentionne la possibilit\u00e9 de mettre en \u0153uvre un \u00e9quivalent de TCP au-dessus de celui-ci ou une superstructure propre \u2014 RLDP (Reliable Large Datagram Protocol), mais ne donne pas de d\u00e9tails sur leur mise en \u0153uvre.<\/p>\n<p><\/p>\n<h3 id=\"ton-dht-raspredelyonnaya-hesh-tablica\">TON DHT : Table de hachage distribu\u00e9e<\/h3>\n<p><\/p>\n<p>Comme dans d'autres syst\u00e8mes distribu\u00e9s, TON pr\u00e9voit la mise en \u0153uvre d'une DHT \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A0%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D1%91%D0%BD%D0%BD%D0%B0%D1%8F_%D1%85%D0%B5%D1%88-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0\">table de hachage distribu\u00e9e<\/a><\/noindex>. Plus pr\u00e9cis\u00e9ment \u2014 la table est <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Kademlia\">de type Kademlia.<\/a><\/noindex>Si vous n'\u00eates pas familiaris\u00e9 avec ce type de tables de hachage \u2014 ne vous inqui\u00e9tez pas, je vais expliquer bri\u00e8vement comment elles fonctionnent.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"TON : Telegram Open Network. Partie 1 : Introduction, niveau r\u00e9seau, ADNL, DHT, r\u00e9seaux superpos\u00e9s\" src=\"\/wp-content\/uploads\/2019\/05\/790d623466c72c78ee17fa298ac9d81d.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Au sens abstrait, la DHT associe des cl\u00e9s de 256 bits \u00e0 certaines valeurs binaires de longueur arbitraire. Les cl\u00e9s dans la table sont des hachages d'une structure TL d\u00e9finie (ces structures elles-m\u00eames sont \u00e9galement stock\u00e9es avec la DHT). Cela ressemble beaucoup \u00e0 la formation des adresses des n\u0153uds \u2014 et elles peuvent effectivement appara\u00eetre dans la DHT (par exemple, une adresse IP d'un n\u0153ud correspondant \u00e0 une <em>adresse abstraite<\/em>, si elle ne la masque pas). Mais dans l'ensemble, les \u00ab prototypes de cl\u00e9s \u00bb (leurs <em>des descriptions<\/em>, <em>descriptions de cl\u00e9s<\/em>) sont des m\u00e9tadonn\u00e9es qui pointent vers le \u00ab propri\u00e9taire \u00bb de l'enregistrement dans la table de hachage (c'est-\u00e0-dire la cl\u00e9 publique d'un n\u0153ud quelconque), le type de valeur stock\u00e9e et les r\u00e8gles selon lesquelles cet enregistrement peut ensuite \u00eatre modifi\u00e9. Par exemple, une r\u00e8gle peut autoriser la modification de la valeur uniquement par le propri\u00e9taire \u2014 ou interdire de r\u00e9duire la valeur (pour se prot\u00e9ger des attaques par r\u00e9p\u00e9tition).<\/p>\n<p><\/p>\n<p>En plus des cl\u00e9s de 256 bits, le concept d'adresses DHT est introduit. La diff\u00e9rence avec les adresses de n\u0153uds classiques est que l'adresse DHT est toujours li\u00e9e \u00e0 une adresse IP. Si un n\u0153ud ne cache pas son IP, il peut utiliser une adresse classique pour la DHT. Cependant, plus souvent pour les besoins de la DHT, une adresse distincte, \u00ab semi-permanente \u00bb, sera cr\u00e9\u00e9e.<br \/>\n<img decoding=\"async\" alt=\"TON : Telegram Open Network. Partie 1 : Introduction, niveau r\u00e9seau, ADNL, DHT, r\u00e9seaux superpos\u00e9s\" src=\"\/wp-content\/uploads\/2019\/05\/93064abdf9dbfd5276502cd3aa6cf8f8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nUn concept de distance est introduit pour les cl\u00e9s et les adresses DHT \u2014 tout cela est conforme aux tables. <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Kademlia\">Kademlia<\/a><\/noindex> La distance entre les cl\u00e9s est \u00e9gale au XOR (OU exclusif Bit \u00e0 Bit) de celles-ci. Comme dans les tables Kademlia, la valeur correspondante \u00e0 une cl\u00e9 donn\u00e9e doit \u00eatre stock\u00e9e sur <em>s<\/em> les n\u0153uds ayant la distance la plus courte \u00e0 cette cl\u00e9 (<em>s<\/em> ici \u2014 un nombre relativement petit).<\/p>\n<p><\/p>\n<p>Pour qu'un n\u0153ud DHT puisse interagir avec d'autres n\u0153uds similaires, il maintient en m\u00e9moire <em>une table de routage DHT<\/em> \u2014 les adresses DHT et IP des n\u0153uds avec lesquels il a interagi auparavant, regroup\u00e9es par distance. Il y a 256 de ces groupes (correspondant au bit le plus significatif de la valeur de distance \u2014 c'est-\u00e0-dire que les n\u0153uds \u00e0 une distance de 0 \u00e0 255 iront dans un groupe, de 256 \u00e0 65535 dans le suivant, etc.). \u00c0 l'int\u00e9rieur de chaque groupe, un nombre limit\u00e9 de \u00ab meilleurs \u00bb n\u0153uds (en termes de latence) est stock\u00e9.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"TON : Telegram Open Network. Partie 1 : Introduction, niveau r\u00e9seau, ADNL, DHT, r\u00e9seaux superpos\u00e9s\" src=\"\/wp-content\/uploads\/2019\/05\/9db2fef6986010db046f797f1fe68130.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Chaque n\u0153ud doit supporter plusieurs op\u00e9rations : <em>stockage de valeur pour une cl\u00e9<\/em>, <em>recherche de n\u0153uds<\/em> et <em>recherche de valeurs<\/em>. La recherche de n\u0153uds implique de renvoyer les n\u0153uds les plus proches d'une cl\u00e9 donn\u00e9e \u00e0 partir de la table de routage ; la recherche de valeurs est similaire, sauf dans le cas o\u00f9 le n\u0153ud conna\u00eet la valeur d'une cl\u00e9 (il la renvoie simplement). Par cons\u00e9quent, si un n\u0153ud veut trouver une valeur dans le DHT pour une cl\u00e9, il envoie des requ\u00eates \u00e0 un petit nombre de n\u0153uds les plus proches de cette cl\u00e9 dans sa table de routage. Si parmi leurs r\u00e9ponses, la valeur recherch\u00e9e n\u2019est pas trouv\u00e9e, mais qu\u2019il y a d'autres adresses de n\u0153uds, la requ\u00eate est r\u00e9p\u00e9t\u00e9e \u00e0 ces derniers.<\/p>\n<p><\/p>\n<p>Le DHT TON peut \u00eatre utilis\u00e9 \u00e0 diverses fins, par exemple pour mettre en \u0153uvre un stockage de fichiers similaire au torrent (voir <em>Stockage TON<\/em>); pour d\u00e9terminer les adresses des n\u0153uds mettant en \u0153uvre certains services ; pour stocker des informations sur les propri\u00e9taires de comptes dans la blockchain. Mais l'application la plus importante est la d\u00e9couverte de n\u0153uds par leurs adresses abstraites. Pour cela, l'adresse est utilis\u00e9e comme cl\u00e9, et la valeur \u00e0 trouver est n\u00e9cessaire. \u00c0 la suite d'une requ\u00eate, soit le n\u0153ud lui-m\u00eame sera trouv\u00e9 (si l'adresse recherch\u00e9e \u00e9tait son adresse DHT semi-permanente), soit la valeur sera une adresse IP et un port pour la connexion \u2014 ou une autre adresse \u00e0 utiliser comme tunnel interm\u00e9diaire.<\/p>\n<p><\/p>\n<h3 id=\"overleynye-seti-v-ton\">Les r\u00e9seaux superpos\u00e9s dans TON<\/h3>\n<p><\/p>\n<p>Le protocole ADNL d\u00e9crit ci-dessus permet \u00e0 n'importe quel n\u0153ud d'\u00e9changer des informations avec les autres \u2014 certes, pas n\u00e9cessairement par les chemins les plus optimaux. On peut dire qu'avec ADNL, tous les n\u0153uds forment un graphe global TON (id\u00e9alement \u2014 connexe). Mais il est \u00e9galement pr\u00e9vu de cr\u00e9er des r\u00e9seaux superpos\u00e9s \u2014 des sous-graphes \u00e0 l'int\u00e9rieur de ce graphe.<br \/>\n<img decoding=\"async\" alt=\"TON : Telegram Open Network. Partie 1 : Introduction, niveau r\u00e9seau, ADNL, DHT, r\u00e9seaux superpos\u00e9s\" src=\"\/wp-content\/uploads\/2019\/05\/0badd85ba46517c04f63439f7dd1e8d7.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00c0 l'int\u00e9rieur de ce r\u00e9seau, l'interaction se fait uniquement directement \u2014 \u00e0 travers des connexions pr\u00e9alablement \u00e9tablies entre les n\u0153uds participants du r\u00e9seau (via les canaux ADNL d\u00e9crits ci-dessus). La formation de ces connexions entre voisins et la recherche de ces voisins est un processus automatique qui vise \u00e0 maintenir la connectivit\u00e9 du r\u00e9seau superpos\u00e9 et \u00e0 minimiser les latences lors des \u00e9changes de donn\u00e9es.<\/p>\n<p><\/p>\n<p>De plus, un moyen est pr\u00e9vu pour diffuser rapidement de grandes mises \u00e0 jour en mode broadcast \u00e0 l'int\u00e9rieur du r\u00e9seau \u2014 elles sont d\u00e9coup\u00e9es en morceaux, compl\u00e9t\u00e9es par un code de correction d'erreurs, et toutes ces parties sont transmises d'un participant \u00e0 un autre. Ainsi, un participant n'a pas besoin de recevoir toutes les parties en entier avant de les transmettre plus loin dans le r\u00e9seau.<\/p>\n<p><\/p>\n<p>Les r\u00e9seaux superpos\u00e9s peuvent \u00eatre publics ou priv\u00e9s. Devenir participant d'un r\u00e9seau public n'est pas difficile \u2014 il suffit de trouver une structure TL la d\u00e9crivant (elle peut \u00eatre publique \u2014 ou accessible par une certaine cl\u00e9 dans le DHT). Dans le cas d'un r\u00e9seau priv\u00e9, cette structure doit \u00eatre connue du n\u0153ud \u00e0 l'avance.<\/p>\n<p><\/p>\n<h3 id=\"prodolzhenie-sleduet\">La suite \u00e0 suivre<\/h3>\n<p><\/p>\n<p>J'ai d\u00e9cid\u00e9 de diviser la pr\u00e9sentation de TON en plusieurs articles. Cette partie se termine ici, et <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/post\/354568\/\">dans le suivant,<\/a><\/noindex> je passe \u00e0 l'examen de la structure de la blockchain (plus pr\u00e9cis\u00e9ment, des blockchains) qui composera TON.<\/p>\n<p>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/354366\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0423\u0436\u0435 \u0434\u0432\u0435 \u043d\u0435\u0434\u0435\u043b\u0438 \u0420\u0443\u043d\u0435\u0442 \u0448\u0443\u043c\u0438\u0442 \u043f\u0440\u043e Telegram \u0438 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e \u0441 \u0435\u0433\u043e \u0431\u0435\u0441\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u043e\u0439 \u0438 \u0431\u0435\u0441\u043f\u043e\u0449\u0430\u0434\u043d\u043e\u0439 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u043e\u0439 \u0420\u043e\u0441\u043a\u043e\u043c\u043d\u0430\u0434\u0437\u043e\u0440\u043e\u043c. \u0420\u0438\u043a\u043e\u0448\u0435\u0442\u043e\u043c \u0437\u0430\u0434\u0435\u043b\u043e \u043c\u043d\u043e\u0433\u0438\u0445, \u043d\u043e \u0432\u0441\u0451 \u044d\u0442\u043e \u2014 \u0442\u0435\u043c\u044b \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u043e\u0432 \u043d\u0430 Geektimes. \u041c\u0435\u043d\u044f \u0436\u0435 \u0443\u0434\u0438\u0432\u0438\u043b\u043e \u0434\u0440\u0443\u0433\u043e\u0435 \u2014 \u044f \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u043d\u0435 \u0432\u0438\u0434\u0435\u043b \u043d\u0430 \u0425\u0430\u0431\u0440\u0435 \u043d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u0437\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043a \u0432\u044b\u0445\u043e\u0434\u0443 \u043d\u0430 \u0431\u0430\u0437\u0435 Telegram \u0441\u0435\u0442\u0438 TON \u2014 Telegram Open [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":26099,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-34632","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/ton-telegram-open-network-chast-1-vstuplenie-setevoj-uroven-adnl-dht-overlejnye-seti\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47TON: Telegram Open Network. \u0427\u0430\u0441\u0442\u044c 1: \u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435, \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c, ADNL, DHT, \u043e\u0432\u0435\u0440\u043b\u0435\u0439\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/ton-telegram-open-network-chast-1-vstuplenie-setevoj-uroven-adnl-dht-overlejnye-seti\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:59:31+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:59:31+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47TON : Telegram Open Network. Partie 1 : Introduction, niveau r\u00e9seau, ADNL, DHT, r\u00e9seaux superpos\u00e9s | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/ton-telegram-open-network-chast-1-vstuplenie-setevoj-uroven-adnl-dht-overlejnye-seti","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47TON: Telegram Open Network. \u0427\u0430\u0441\u0442\u044c 1: \u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435, \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c, ADNL, DHT, \u043e\u0432\u0435\u0440\u043b\u0435\u0439\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 | ProHoster","og:url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/ton-telegram-open-network-chast-1-vstuplenie-setevoj-uroven-adnl-dht-overlejnye-seti","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:59:31+00:00","article:modified_time":"2019-10-31T18:59:31+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"34632","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 20:00:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:17:24","updated":"2026-01-21 20:00:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/34632","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=34632"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/34632\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/26099"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=34632"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=34632"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=34632"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}