{"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\/sv\/blog\/administrirovanie\/ton-telegram-open-network-chast-1-vstuplenie-setevoj-uroven-adnl-dht-overlejnye-seti","title":{"rendered":"TON: Telegram Open Network. Del 1: Introduktion, n\u00e4tverksniv\u00e5, ADNL, DHT, \u00f6verlagda n\u00e4tverk","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"TON: Telegram Open Network. Del 1: Introduktion, n\u00e4tverksniv\u00e5, ADNL, DHT, \u00f6verlagda n\u00e4tverk\" src=\"\/wp-content\/uploads\/2019\/05\/65710678b9e432476cf1b6e24348a7ac.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Under tv\u00e5 veckor har Ryssland st\u00e5tt i centrum f\u00f6r diskussioner om Telegram och situationen med dess meningsl\u00f6sa och skoningsl\u00f6sa blockering av Roskomnadzor. M\u00e5nga m\u00e4nniskor har blivit p\u00e5verkade, men allt detta \u00e4r teman f\u00f6r inl\u00e4gg p\u00e5 Geektimes. Det som f\u00f6rv\u00e5nar mig \u00e4r att jag fortfarande inte har sett n\u00e5got p\u00e5 Habr\u00e4 om den planerade Telegram-baserade n\u00e4tverket TON \u2013 Telegram Open Network. Jag ville fylla denna brist, eftersom det finns mycket att studera d\u00e4r \u2013 \u00e4ven utan officiella uttalanden om det.<\/p>\n<p><\/p>\n<p>L\u00e5t mig p\u00e5minna om att det g\u00e5r rykten om att Telegram har lanserat en mycket storskalig sluten ICO som redan har samlat otroliga summor. Det antas att en egen kryptovaluta, Gram, kommer att lanseras redan i \u00e5r \u2013 och varje Telegram-anv\u00e4ndare kommer automatiskt att f\u00e5 en pl\u00e5nbok, vilket i sig skapar en stor f\u00f6rdel j\u00e4mf\u00f6rt med andra kryptovalutor.<\/p>\n<p><\/p>\n<p>Tyv\u00e4rr, eftersom det inte finns n\u00e5gra officiella uttalanden, kan jag endast utg\u00e5 fr\u00e5n <noindex><a rel=\"nofollow\" href=\"https:\/\/denull.ru\/telegram\/ton-tech.pdf\">ett dokument av ok\u00e4nt ursprung<\/a><\/noindex>, vilket jag genast varnar er f\u00f6r. Sj\u00e4lvklart kan det visa sig vara en mycket skicklig f\u00f6rfalskning, men det \u00e4r ocks\u00e5 m\u00f6jligt att detta \u00e4r ett verkligt whitepaper f\u00f6r det framtida systemet, skrivet av Nikolaj Durov (och l\u00e4ckt, troligtvis av n\u00e5gon av investerarna). Men \u00e4ven om det \u00e4r en bluff, f\u00e5r ingen oss att f\u00f6rbjuda att studera och diskutera det, eller hur?<\/p>\n<p><\/p>\n<p>Vad s\u00e4gs i detta dokument? Jag ska f\u00f6rs\u00f6ka \u00e5terber\u00e4tta det med mina egna ord, n\u00e4ra texten, men p\u00e5 svenska och n\u00e5got mer m\u00e4nskligt (l\u00e5t mig f\u00f6rl\u00e5ta Nikolaj f\u00f6r hans ben\u00e4genhet att g\u00e5 in i formell matematik). T\u00e4nk p\u00e5 att \u00e4ven i h\u00e4ndelse av dess \u00e4kthet \u00e4r detta en grov skiss av systemet och det kommer med stor sannolikhet att f\u00f6r\u00e4ndras fram till den offentliga lanseringen.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Vi f\u00e5r veta att f\u00f6rutom kryptovalutan planeras det mycket mer. L\u00e5t oss g\u00e5 igenom det i ordning.<\/p>\n<p><\/p>\n<ul>\n<li><strong>TON Blockchain<\/strong>. Detta \u00e4r grunden f\u00f6r hela systemet. Om du helt och h\u00e5llet inte vet vad en <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\">blockkedja<\/a><\/noindex> \u00e4r \u2013 d\u00e5 rekommenderar jag att du tar reda p\u00e5 det, eftersom det kommer att finnas m\u00e5nga blockkedjor h\u00e4r. Inb\u00e4ddade i varandra, virtuellt uppdelade och till och med \"vertikala\" blockkedjor inom andra blockkedjor. Dessutom kommer det att finnas flera h\u00e4ftiga termer som <em>Instant Hypercube Routing<\/em> och <em>Infinite Sharding Paradigm<\/em>, men mer om det senare. Och sj\u00e4lvklart, proof-of-stake och smarta kontrakt.<\/li>\n<li><strong>TON P2P Network<\/strong>. Peer-to-peer-n\u00e4tverk, p\u00e5 vilket systemet kommer att byggas. Detta kommer att diskuteras f\u00f6rst i denna del av ber\u00e4ttelsen.<\/li>\n<li><strong>TON Storage<\/strong>. En filf\u00f6rvaring som oberoende av blockkedjan kommer att byggas p\u00e5 det ovan n\u00e4mnda peer-to-peer-n\u00e4tverket. Det kan liknas vid torrentfiler.<\/li>\n<li><strong>TON Proxy<\/strong>. Detta \u00e4r en tj\u00e4nst vars syfte \u00e4r att \u00f6ka anonymiteten f\u00f6r n\u00e4tverksdeltagarna. Varje paket kan skickas, inte direkt, utan genom tunnlar som agenter med ytterligare kryptering \u2014 liknande I2P eller TOR. <\/li>\n<li><strong>TON DHT<\/strong>. En distribuerad hash-tabell f\u00f6r lagring av godtyckliga v\u00e4rden. Den \u00e4r ocks\u00e5 byggd ovanp\u00e5 <em>TON Network<\/em> (men anv\u00e4nds av den) och hj\u00e4lper till att <strong>TON Storage<\/strong> hitta \"delande\" noder, och <strong>TON Proxy<\/strong> \u2014 mellanliggande retransmittanter. Men det \u00e4r viktigt att notera att, till skillnad fr\u00e5n blockkedjan, \u00e4r denna hash-tabell inte ett s\u00e4kert f\u00f6rr\u00e5d \u2014 viktig information b\u00f6r inte lagras i den.<\/li>\n<li><strong>TON Services<\/strong>. En plattform f\u00f6r godtyckliga tj\u00e4nster. I grund och botten \u00e4r detta ett nytt internet ovanp\u00e5 allt det ovanst\u00e5ende. Datautbyte \u2014 genom <strong>TON Network<\/strong>\/<strong>TON Proxy<\/strong>, och logik \u2014 i smarta kontrakt av. <strong>TON Blockchain<\/strong>. Och gr\u00e4nssnittet med ganska vanliga URL:er.<\/li>\n<li><strong>TON DNS<\/strong>. Eftersom vi talade om vanliga URL:er, beh\u00f6vs \u00e4ven en omvandlare fr\u00e5n dem till 256-bitarsadresser \u2014 f\u00f6r konton, kontrakt, tj\u00e4nster och noder.<\/li>\n<li><strong>TON Payments<\/strong>. H\u00e4r kommer vi bara in p\u00e5 den ekonomiska aspekten. Och detta kommer att vara inte bara <strong>gram<\/strong> \u2014 som med ether, alla typer av \"tokens\" kommer att vara m\u00f6jliga; gram kommer h\u00e4r att vara endast valutan \"som standard\".<\/li>\n<\/ul>\n<p><\/p>\n<p>Detta \u00e4r f\u00f6rsta delen som beskriver den \"jordade\" niv\u00e5n av TON \u2014 dess n\u00e4tverksdel som byggs ovanp\u00e5 traditionella protokoll. I n\u00e4sta del kommer vi att tala om \"k\u00e4rnan\" \u2014 blockkedjan som kommer att st\u00f6das av det som beskrivs h\u00e4rn\u00e4st. D\u00e4rmed skiljer sig min ber\u00e4ttelse n\u00e5got fr\u00e5n den som anv\u00e4nds i det ovan n\u00e4mnda dokumentet (som b\u00f6rjar direkt med den abstrakta niv\u00e5n).<\/p>\n<p><\/p>\n<h3 id=\"bazovye-ponyatiya\">Grundl\u00e4ggande begrepp<\/h3>\n<p><\/p>\n<p><strong>TL<\/strong> (Type Language). Detta \u00e4r ett abstrakt bin\u00e4rt format f\u00f6r godtyckliga datastukturer. Det anv\u00e4nds i Telegram-protokollet och kommer att anv\u00e4ndas aktivt i TON. Om du vill bekanta dig med det i detalj \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/core.telegram.org\/mtproto\/TL\">h\u00e4r \u00e4r dess beskrivning<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p><strong>Hash<\/strong> (<em>hash<\/em>). En funktion som producerar en o\u00e5terkallelig omvandling av en godtycklig datastruktur till ett enda tal av fast l\u00e4ngd. Inom dokumentationen talas det ofta om funktionen <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/SHA-2\">SHA-256<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p><strong>Nod i n\u00e4tverket<\/strong> (<em>node<\/em>). \u0423\u0437\u0435\u043b \u2014 \u044d\u0442\u043e \u041f\u041e, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u043e\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0422\u0435\u043b\u0435\u0433\u0440\u0430\u043c\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0432 \u0441\u0435\u0431\u044f \u0443\u0437\u0435\u043b TON&#8217;\u0430. \u041d\u0430 \u043d\u0438\u0437\u043a\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u0443\u0437\u043b\u044b \u0438\u043c\u0435\u044e\u0442 IPv4\/IPv6-\u0430\u0434\u0440\u0435\u0441\u0430 \u0438 \u043e\u0431\u0449\u0430\u044e\u0442\u0441\u044f \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 UDP, \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u043c \u2014 \u043e\u0431\u043b\u0430\u0434\u0430\u044e\u0442 <em>abstrakta adresser<\/em> och implementerar ADNL-protokollet (om abstrakta adresser och ADNL - se nedan). N\u00e4r vi talar om att vissa delar av systemet g\u00f6r n\u00e5got eller lagrar viss data, avses det att detta sker av n\u00e4tverksnoder.<\/p>\n<p><\/p>\n<p><strong>Abstrakt adress<\/strong> (eller bara <em>, l\u00f6senord<\/em>, <em>address<\/em>). En nods adress definieras av dess offentliga nyckel. Mer strikt - det \u00e4r en 256-bitars hash (SHA256) av en datastruktur som inneh\u00e5ller den offentliga nyckeln (den specifika kryptografiska algoritmen specificeras inte - exempelvis n\u00e4mns elliptiska kurvor och RSA-2048). F\u00f6r att en nod ska kunna interagera med en annan beh\u00f6ver den veta inte bara adressen, utan \u00e4ven denna datastruktur. Teoretiskt kan en fysisk nod skapa ett obegr\u00e4nsat antal adresser (som motsvarar olika nycklar).<\/p>\n<p><\/p>\n<p>Dessutom anv\u00e4nds ofta just denna koppling: \"urbilden\" i form av TL-strukturen (som kan inneh\u00e5lla praktiskt taget vilken data som helst), och 256-bitars hashen av den, som anv\u00e4nds f\u00f6r adressering.<\/p>\n<p><\/p>\n<p><strong>Blockchain<\/strong> (<em>blockchain<\/em>). Blockchain \u00e4r en datastruktur vars element (<em>block<\/em>) \u00e4r ordnade i en \"kedja\", och varje f\u00f6ljande block i kedjan inneh\u00e5ller en hash av det f\u00f6reg\u00e5ende. P\u00e5 s\u00e5 s\u00e4tt uppn\u00e5s integritet - f\u00f6r\u00e4ndringar kan endast g\u00f6ras genom att l\u00e4gga till nya block.<\/p>\n<p><\/p>\n<p><strong>Tj\u00e4nsten<\/strong> (<em>service<\/em>). Tj\u00e4nster inom TON kan vara av olika typer - beroende p\u00e5 om de anv\u00e4nder blockchain eller inte. Till exempel kan en (eller flera) av n\u00e4tverkets noder behandla vissa RPC-f\u00f6rfr\u00e5gningar enligt det protokoll som beskrivs nedan ADNL, utan att skapa n\u00e5gra poster i blockchain - liknande traditionella webbservrar. Det \u00f6verv\u00e4gs \u00e4ven m\u00f6jligheten till att implementera HTTP \u00f6ver ADNL, samt att sj\u00e4lva meddelandetj\u00e4nsten g\u00e5r \u00f6ver till detta protokoll. P\u00e5 liknande s\u00e4tt som TOR eller I2P, kommer detta att g\u00f6ra den mer motst\u00e5ndskraftig mot olika blockerings\u00e5tg\u00e4rder.<\/p>\n<p><\/p>\n<p>Samtidigt f\u00f6ruts\u00e4tter en del tj\u00e4nster b\u00e5de interaktion med blockchain och bearbetning av f\u00f6rfr\u00e5gningar utanf\u00f6r den. Till exempel, f\u00f6r TON Storage \u2014 filf\u00f6rvaringen \u2014 \u00e4r det inte s\u00e4rskilt klokt att lagra sj\u00e4lva filerna i blockchain. D\u00e4r kommer endast filernas hash (tillsammans med viss metadata om dem) att bevaras, medan specialiserade noder i n\u00e4tverket fungerar som \"filservrar\" som \u00e4r redo att leverera dem till andra noder via ADNL.<\/p>\n<p><\/p>\n<p><strong>Dimtj\u00e4nst<\/strong> (<em>fog service<\/em>). Det handlar om vissa tj\u00e4nster som f\u00f6ruts\u00e4tter decentralisering och \u00f6ppen delaktighet. Till exempel \u00e4r TON Proxy en tj\u00e4nst som alla deltagare kan st\u00f6dja genom att erbjuda sin nod som en mellanhand (proxy) som skickar paket mellan andra noder. Om man s\u00e5 \u00f6nskar kan man ta ut en avgift f\u00f6r detta \u2014 med systemet TON Payments f\u00f6r mikropayments (som i sin tur ocks\u00e5 \u00e4r en dimtj\u00e4nst).<\/p>\n<p><\/p>\n<h3 id=\"adnl-abstract-datagram-network-layer\">ADNL: Abstract Datagram Network Layer<\/h3>\n<p><\/p>\n<p>P\u00e5 den l\u00e4gsta niv\u00e5n kommer interaktionen mellan noder att ske via UDP-protokollet (andra alternativ \u00e4r ocks\u00e5 till\u00e5tna).<\/p>\n<p><\/p>\n<p>Som n\u00e4mnts ovan, f\u00f6r att en nod ska kunna skicka ett paket till en annan, m\u00e5ste den k\u00e4nna till en av dess offentliga nycklar (och d\u00e4rmed adressen som definieras av den). Den krypterar paketet med denna nyckel och l\u00e4gger till en 256-bitars adress f\u00f6r mottagaren i b\u00f6rjan av paketet \u2014 eftersom en nod kan ha flera s\u00e5dana adresser kommer detta att g\u00f6ra det m\u00f6jligt f\u00f6r den att avg\u00f6ra vilken nyckel som ska anv\u00e4ndas f\u00f6r avkryptering.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"TON: Telegram Open Network. Del 1: Introduktion, n\u00e4tverksniv\u00e5, ADNL, DHT, \u00f6verlagda n\u00e4tverk\" src=\"\/wp-content\/uploads\/2019\/05\/570ed97bb0745d074e806e84651af567.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dessutom kan en s\u00e5 kallad identifierare <em>kanal<\/em>. I s\u00e5 fall beror bearbetningen av paketet redan p\u00e5 de specifika \u00f6verenskommelserna mellan noderna \u2014 till exempel kan data som skickas till en viss kanal vara avsedda f\u00f6r en annan nod och m\u00e5ste vidarebefordras till den (detta \u00e4r en tj\u00e4nst <em>TON Proxy<\/em>). Ett annat s\u00e4rskilt fall kan vara interaktion direkt mellan noder, men med kryptering med ett individuellt par nycklar f\u00f6r denna kanal (som tidigare skapades enligt Diffie-Hellman-protokollet).<\/p>\n<p><\/p>\n<p>Till slut finns det ett speciellt fall som kallas \"noll\"-kanalen \u2014 om en nod \u00e4nnu inte k\u00e4nner till sina \"grannars\" offentliga nycklar kan den skicka paket till dem utan kryptering alls. Detta \u00e4r avsett endast f\u00f6r initiering \u2014 s\u00e5 snart noderna skickar information om sina nycklar b\u00f6r dessa anv\u00e4ndas f\u00f6r fortsatt kommunikation.<\/p>\n<p><\/p>\n<p>Den ovan beskrivna protokollet (256 bitars kanalidentifierare + paketets inneh\u00e5ll) kallas ADNL. Dokumentationen n\u00e4mner m\u00f6jligheten att implementera en motsvarighet till TCP ovanf\u00f6r det eller en egen \u00f6verbyggnad \u2014 RLDP (Reliable Large Datagram Protocol), men g\u00e5r inte in p\u00e5 detaljer om deras implementering.<\/p>\n<p><\/p>\n<h3 id=\"ton-dht-raspredelyonnaya-hesh-tablica\">TON DHT: Distribuerad hash-tabell<\/h3>\n<p><\/p>\n<p>Precis som i andra distribuerade system f\u00f6ruts\u00e4tter TON implementeringen av 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\">en distribuerad hash-tabell<\/a><\/noindex>. Mer specifikt \u2014 tabellen \u00e4r <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Kademlia\">Kademlia-liknande<\/a><\/noindex>. Om du inte \u00e4r bekant med denna typ av hash-tabeller \u2014 oroa dig inte, nedan kommer jag att ungef\u00e4rligen beskriva hur de \u00e4r uppbyggda.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"TON: Telegram Open Network. Del 1: Introduktion, n\u00e4tverksniv\u00e5, ADNL, DHT, \u00f6verlagda n\u00e4tverk\" src=\"\/wp-content\/uploads\/2019\/05\/790d623466c72c78ee17fa298ac9d81d.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>I abstrakt mening ger DHT en koppling mellan 256-bitsnycklar och vissa bin\u00e4ra v\u00e4rden av godtycklig l\u00e4ngd. Nycklarna i tabellen \u00e4r hash-v\u00e4rden av en viss TL-struktur (sj\u00e4lva strukturerna lagras ocks\u00e5 tillsammans med DHT). Detta liknar mycket bildandet av noders adresser \u2014 och de kan faktiskt f\u00f6rekomma i DHT (till exempel kan en IP-adress f\u00f6r en nod motsvara den angivna <em>abstrakta adressen<\/em>, om den inte d\u00f6ljer den). Men i allm\u00e4nhet \u00e4r \"prototyper av nycklar\" (deras <em>beskrivningar<\/em>, <em>key descriptions<\/em>) \u2014 detta \u00e4r metadata som anger \"\u00e4garen\" av posten i hash-tabellen (dvs. den offentliga nyckeln f\u00f6r n\u00e5gon nod), typ av det lagrade v\u00e4rdet och reglerna f\u00f6r hur detta post senare kan \u00e4ndras. Till exempel kan en regel till\u00e5ta att \u00e4garen endast f\u00e5r \u00e4ndra v\u00e4rdet \u2014 eller f\u00f6rbjuda att v\u00e4rdet \u00e4ndras ned\u00e5t (f\u00f6r att skydda sig mot replay-attacker).<\/p>\n<p><\/p>\n<p>F\u00f6rutom 256-bitsnycklar introduceras begreppet DHT-adresser. Skillnaden fr\u00e5n vanliga adresser f\u00f6r noder \u00e4r att DHT-adressen alltid \u00e4r kopplad till en IP-adress. Om en nod inte d\u00f6ljer sin IP kan den anv\u00e4nda en vanlig adress f\u00f6r DHT. Men oftare f\u00f6r DHT:s behov skapas en separat, \"halv-permanent\" adress.<br \/>\n<img decoding=\"async\" alt=\"TON: Telegram Open Network. Del 1: Introduktion, n\u00e4tverksniv\u00e5, ADNL, DHT, \u00f6verlagda n\u00e4tverk\" src=\"\/wp-content\/uploads\/2019\/05\/93064abdf9dbfd5276502cd3aa6cf8f8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n\u00d6ver nycklar och DHT-adresser introduceras begreppet avst\u00e5nd \u2014 h\u00e4r \u00f6verensst\u00e4mmer allt med tabellerna <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Kademlia\">Kademlia<\/a><\/noindex> \u2014 avst\u00e5ndet mellan nycklarna \u00e4r XOR (bitvis exklusiv eller) mellan dem. Precis som i Kademlia-tabeller, b\u00f6r v\u00e4rdet som motsvarar en viss nyckel lagras p\u00e5 <em>s<\/em> noder som har det minsta avst\u00e5ndet till denna nyckel (<em>s<\/em> h\u00e4r \u2014 ett relativt litet antal).<\/p>\n<p><\/p>\n<p>F\u00f6r att en DHT-nod ska kunna interagera med andra s\u00e5dana noder, h\u00e5ller den i minnet <em>DHT-routingtabelle<\/em> \u2014 DHT- och IP-adresserna till de noder som den har interagerat med tidigare, grupperade efter avst\u00e5nd till dem. Det finns 256 s\u00e5dana grupper (de motsvarar den mest betydelsefulla uppst\u00e4llda biten i avst\u00e5ndsv\u00e4rdet \u2014 det vill s\u00e4ga noder p\u00e5 avst\u00e5nd fr\u00e5n 0 till 255 hamnar i en grupp, fr\u00e5n 256 till 65535 \u2014 i n\u00e4sta, osv.). Inom varje grupp lagras ett begr\u00e4nsat antal \"b\u00e4sta\" noder (vad g\u00e4ller ping till dem).<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"TON: Telegram Open Network. Del 1: Introduktion, n\u00e4tverksniv\u00e5, ADNL, DHT, \u00f6verlagda n\u00e4tverk\" src=\"\/wp-content\/uploads\/2019\/05\/9db2fef6986010db046f797f1fe68130.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Varje nod m\u00e5ste st\u00f6dja flera operationer: <em>spara v\u00e4rdet f\u00f6r en nyckel<\/em>, <em>s\u00f6ka noder<\/em> och <em>s\u00f6ka v\u00e4rden<\/em>. S\u00f6ka noder inneb\u00e4r att ge de n\u00e4rmaste noderna i routingtabellen kopplade till en given nyckel; s\u00f6ka v\u00e4rden \u2014 samma sak, med undantag f\u00f6r n\u00e4r noden k\u00e4nner till v\u00e4rdet f\u00f6r nyckeln (d\u00e5 \u00e5terg\u00e5r den helt enkelt med det). D\u00e4rf\u00f6r, om en nod vill hitta ett v\u00e4rde i DHT baserat p\u00e5 en nyckel, skickar den f\u00f6rfr\u00e5gningar till ett litet antal av de n\u00e4rmaste noderna till denna nyckel fr\u00e5n sin routingtabell. Om det inte finns n\u00e5got beg\u00e4rt v\u00e4rde bland deras svar men det finns andra nodadresser, upprepas f\u00f6rfr\u00e5gan till dem.<\/p>\n<p><\/p>\n<p>TON DHT kan anv\u00e4ndas f\u00f6r olika syften, till exempel \u2014 f\u00f6r att implementera en torrent-liknande filf\u00f6rvaring (se <em>TON Storage<\/em>); f\u00f6r att best\u00e4mma adresser till noder som implementerar vissa tj\u00e4nster; f\u00f6r att lagra information om kontoinnehavares identiteter i blockkedjan. Men det viktigaste anv\u00e4ndningsomr\u00e5det \u00e4r att uppt\u00e4cka noder via deras abstrakta adresser. F\u00f6r detta anv\u00e4nds adressen som nyckel, och det v\u00e4rde som skall hittas. Som ett resultat av f\u00f6rfr\u00e5gan kan antingen noden sj\u00e4lv hittas (om den s\u00f6kta adressen var dess semi-permanenta DHT-adress), eller s\u00e5 \u00e4r v\u00e4rdet en IP-adress och port f\u00f6r anslutning \u2014 eller en annan adress som ska anv\u00e4ndas som en tunnel-mellanhand.<\/p>\n<p><\/p>\n<h3 id=\"overleynye-seti-v-ton\">\u00d6verliggande n\u00e4tverk i TON<\/h3>\n<p><\/p>\n<p>Protokollet ADNL som beskrivits ovan m\u00f6jligg\u00f6r f\u00f6r alla noder att utbyta information med varandra \u2014 \u00e4ven om det inte n\u00f6dv\u00e4ndigtvis sker p\u00e5 optimala v\u00e4gar. Man kan s\u00e4ga att genom ADNL bildar alla noder en global graf TON (i idealfallet \u2014 sammanh\u00e4ngande). Men det finns dessutom m\u00f6jlighet att skapa \u00f6verliggande n\u00e4tverk \u2014 undergrafer inom denna graf.<br \/>\n<img decoding=\"async\" alt=\"TON: Telegram Open Network. Del 1: Introduktion, n\u00e4tverksniv\u00e5, ADNL, DHT, \u00f6verlagda n\u00e4tverk\" src=\"\/wp-content\/uploads\/2019\/05\/0badd85ba46517c04f63439f7dd1e8d7.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Inom ett s\u00e5dant n\u00e4tverk sker interaktion enbart direkt \u2014 genom f\u00f6rhandsgjorda kopplingar mellan deltagande noder (via ADNL-kanalerna som beskrivits ovan). Bildandet av s\u00e5dana kopplingar mellan grannar, samt s\u00f6kandet efter medlemmar \u2014 \u00e4r en automatiserad process som str\u00e4var efter att uppr\u00e4tth\u00e5lla sammanl\u00e4nkningen i det \u00f6verliggande n\u00e4tverket och minimera f\u00f6rdr\u00f6jningar vid datakommunikation.<\/p>\n<p><\/p>\n<p>Dessutom finns det ett s\u00e4tt att snabbt sprida stora s\u00e4ndningsuppdateringar inom n\u00e4tverket \u2014 de delas upp i delar, kompletteras med felkorrektionskod, och alla dessa bitar vidarebefordras fr\u00e5n en deltagare till en annan. S\u00e5ledes beh\u00f6ver deltagaren inte helt f\u00e5 alla delar innan de kan skicka dem vidare i n\u00e4tverket.<\/p>\n<p><\/p>\n<p>\u00d6verliggande n\u00e4tverk kan vara offentliga och privata. Att bli medlem i ett offentligt n\u00e4tverk \u00e4r inte sv\u00e5rt \u2014 man m\u00e5ste bara hitta en TL-struktur som beskriver det (den kan vara offentlig \u2014 eller tillg\u00e4nglig med en viss nyckel i DHT). I fallet med ett privat n\u00e4tverk m\u00e5ste denna struktur vara k\u00e4nd f\u00f6r noden i f\u00f6rv\u00e4g.<\/p>\n<p><\/p>\n<h3 id=\"prodolzhenie-sleduet\">Forts\u00e4ttning f\u00f6ljer<\/h3>\n<p><\/p>\n<p>Jag har beslutat att dela upp min \u00f6versikt av TON i flera artiklar. Denna del avslutas h\u00e4r, och <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/post\/354568\/\">i n\u00e4sta<\/a><\/noindex> kommer jag att g\u00e5 vidare till att granska strukturen av blockkedjan (eller r\u00e4ttare sagt blockkedjorna) som kommer att utg\u00f6ra TON.<\/p>\n<p>K\u00e4lla: <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.4 - 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\/sv\/blog\/administrirovanie\/ton-telegram-open-network-chast-1-vstuplenie-setevoj-uroven-adnl-dht-overlejnye-seti\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\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\/sv\/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. Del 1: Introduktion, n\u00e4tverksniv\u00e5, ADNL, DHT, \u00f6verliggande n\u00e4tverk | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/sv\/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":"sv_SE","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\/sv\/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\/sv\/wp-json\/wp\/v2\/posts\/34632","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=34632"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/34632\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/26099"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=34632"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=34632"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=34632"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}