ááᯠááŸá áºáááºááŒá¬á¡á±á¬áẠRunet ááẠáááºáá®ááááºááŸáá·áº Roskomnadzor á០á¡ááááá¬ážáá²á·áᬠááá¯áá¬áááºážá áœá¬ ááááºááá¯á·ááŒááºážááŸáá·áºá¡áá° á¡ááŒá±á¡áá±ááᯠáá°áá¶áá±áá²á·áááºá áá±á«ááºááŒá¬ážáá±á«ááºááẠáá°áá»á¬ážá áœá¬ááᯠá áááºá¡ááŸá±á¬áá·áºá¡ááŸááºááŒá áºá á±áá±á¬áºáááºáž áááºážááá¯á·á¡á¬ážáá¯á¶ážááẠGeektimes ááœáẠááá¯á·á áºáá»á¬ážá¡ááœáẠá¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááŒá áºáááºá á¡ááŒá¬ážá¡áá¬áá áºáá¯áá¯ááŒá±á¬áá·áº áá»áœááºáá±á¬áº á¡á¶á·á¡á¬ážááá·áºáá²á·áááẠ- Telegram - Telegram Open Network ááᯠá¡ááŒá±áá¶á áá¯ááºáá±ááẠá á®á ááºáá¬ážáá±á¬ TON ááœááºáááºá Habré ááœáẠááœá²ááŒááºážá áááºááŒá¬ááŸá¯áá áºáá¯áá»áŸ áááœá±á·ááá±ážáá«á ááá¬ážáááºáá¯ááºááŒááºáá»ááºáááŸááá±ááá·áºáááºáž á¡á²áá®ááŸá¬ áá±á·áá¬á áá¬áá áºáá¯ááŸáááá¯á· áá®áá»áá¯á·áá²á·ááŸá¯ááᯠááŒáá·áºáááºážáá±ážáá»ááºáá«áááºá
Telegram ááẠá¡ááœááºááŒá®ážáá¬ážáá±á¬áááẠICO ááᯠááœáŸáá·áºáááºáá²á·áááºáá°áá±á¬ áá±á¬ááá¬ááá»á¬ážááŸááá±áááºááŸá¬ ááá¯á¶ááŒááºááá¯ááºáá±á¬ááºá¡á±á¬ááºááẠááœá±ááá¬ááá»á¬ážá áœá¬ááᯠá á¯áá±á¬ááºážáá¬ážááŒá®ážááŒá áºááŒá±á¬ááºáž ááááá±ážáá«áá á±á Gram áááá¯ááºááá¯áẠcryptocurrency ááᯠááá¯ááŸá áºááœáẠá áááºá¡áá¯á¶ážááŒá¯ááá¯ááºáááºáᯠáá»áŸá±á¬áºááá·áºáááŒá®áž Telegram á¡áá¯á¶ážááŒá¯áá°ááá¯ááºážááẠá¡ááŒá¬ážáá±á¬ cryptocurrencies áá»á¬ážááẠáááá¬áááºááŸá¬ážáá±á¬ á¡á¬ážáá¬áá»ááºáá»á¬ážááᯠáááºáá®ážáá±ážááá·áº ááá¯ááºáá¶á¡áááºáá áºáᯠá¡ááá¯á¡áá»á±á¬ááºáááŸááááºááŒá áºáááºá
áá¶ááá±á¬ááºážá
áœá¬áá²á ááá¬ážáááºáá¯ááºááŒááºáá»ááºáá»á¬ážáááŸááá±á¬ááŒá±á¬áá·áºá áá»áœááºá¯ááºááẠáá±á¬ááºáááºáááºáááºáá¯ááºáá±á¬ááºááá¯ááºáááºááŒá
áºáááºá
áá®á á¬áááºážá áá¬ááŒá±á¬áá¬áá²á á á¬áá¬ážááŸáá·áºáá®ážá ááºáá±á¬ áá»áœááºá¯ááºáááá¯ááºááá¯ááºá áá¬ážááŒáá·áº ááŒááºááŒá±á¬áááºááŒáá¯ážá á¬ážáá«áááºá ááá¯á·áá±á¬áº áá¯ááŸá¬ážáá¬áá¬ááŒáá·áº á¡áááºážáááºááá¯á áá°áá¬ážáááºá áœá¬ (áá®ááá¯ááá¯ááºááẠááá¬ážáááºáááºá¹áá»á¬ááá¯á·ááœá¬ážááá¯áá±á¬ á áááºááá±á¬áá¬ážááŒáá·áº áá»áœááºá¯ááºá¡á¬áž ááœáá·áºááœáŸááºááá¯ááºáá«á á±)á áááºážááẠá á áºááŸááºáá±á¬áºáááºážá áááºážááẠá áá áºááá°ááŒááºážáá±á¬áºááŒáá»ááºááŒá áºááŒá®áž á¡áá»á¬ážáá°ááŸá¬ á áááºáá±á¬ááºážáá»ááá·áºá¡áá»áááºááœáẠá¡ááœááºááŒá±á¬ááºážáá²ááœá¬ážááœááºááŸáááŒá±á¬ááºáž ááŸááºáá¬ážáá¬ážáá«á
cryptocurrency á¡ááŒááºá áá»áŸá±á¬áºááá·áºáá¬ážááá·áºá¡áá¬áá»á¬ážá áœá¬ááŸááááºááá¯áá»áœááºá¯ááºááá¯á·ááááŸáááá«áááºá áá¡á±á¬ááºáá°áá«á
- áá
áºááẠBlockchain. á€áááºááŸá¬ á
áá
áºáá
áºáá¯áá¯á¶ážá á¡ááŒá±áá¶ááŒá
áºáááºá áá¬áá² ááááááº
ПкÑейМ - á€áá±áá¬ááœáẠblockchains á¡áá»á¬ážá¡ááŒá¬ážááŸááááºááŒá áºáá±á¬ááŒá±á¬áá·áºááŸá¬ááœá±áááºá¡ááŒá¶ááŒá¯áá«áááºá á¡ááŒá¬áž blockchains áá»á¬ážááá¯ááºááœááºáá»á¬ážá¡ááœááºážá á¡ááœá²ááœá²áá¯áá®ážáá«ážáá®ážáá«ážááŸáá·áº "áá±á«ááºááá¯ááº" blockchains á¡áá»ááºážáá»ááºážá¡ááœááºážááœááºá¡ááá¯ááºá¡ááŒá¯ááºááŸááááºá á¡ááá¯ááºá á¬áž á¡áá¶ááœááºáá²á· áá±á«áá¬áááœá±áááºáž ááŸááá«áááá·áºáááºá áá»ááºááŒááºáž Hypercube áááºážááŒá±á¬ááºážáááºááŸááºááŒááºážá О Infinite Sharding Paradigmáá«áá±ááá·áº áá±á¬ááºááá¯ááºážááŸá¬ ááá¯áá»á¬ážáááºá ááŒá®ážáá±á¬á·á áá±áá»á¬áá«áááºá á¡á á¯ááŸááºáᬠá¡áá±á¬ááºá¡áá¬ážáá²á· á áááºá á¬áá»á¯ááºááœá±áá«á - TON P2P ááœááºáááº. á áá áºáááºáá±á¬ááºááá·áºá¡áá±á«áº á¡ááŒá±áá¶á Peer-to-peer ááœááºáááºá áá°áááᯠáá®áá¬ááºáááºážáá²á· á¡ááá¯ááºážááŸá¬ ááááá¯á¶áž ááœá±ážááœá±ážáá«áááºá
- TON ááá¯ááŸá±á¬ááºááŸá¯. blockchain áááºááá¯áá²ááŒá áºááŒá Ạá¡áááºáá±á¬áºááŒáá« peer-to-peer network áá±á«áºááŸá¬ áááºáá±á¬ááºááá·áº ááá¯ááºááá¯ááŸá±á¬ááºááŸá¯á torrent áá»á¬ážááŸáá·áº ááŸáá¯ááºážááŸááºááá¯ááºáááºá
- TON Proxy. á€áááºááŸá¬ ááœááºáááºáá«áááºáá°áá»á¬ážá á¡áááºááŸááºááᯠááá¯ážááœá¬ážá á±ááẠáááºááœááºááá·áº áááºáá±á¬ááºááŸá¯áá áºáá¯ááŒá áºáááºá áááºááá·áºáááºáááºááá¯áááᯠááá¯ááºááá¯ááºáááá¯á·ááá¯ááºáá±á¬áºáááºáž I2P ááá¯á·ááá¯áẠTOR áá²á·ááá¯á· áááºáá±á¬ááºážá á¬ááŸááºá áá áºáá«ááŸááá±á¬ ááŒá¬ážáá¶á¥áááºááŸáá¯ááºáá±á«ááºážáá»á¬ážááŸáááá·áº áá±ážááá¯á·ááá¯ááºáá«áááºá
- áá áºááẠDHT. áááá¬ážáá±á¬áááºááá¯ážáá»á¬ážááᯠááááºážáááºážáááºá¡ááœáẠááŒáá·áºáá±áá¬ážáá±á¬ hash ááá¬ážá á¡áá±á«áºááŸá¬áááºáž áááºáá±á¬ááºáá¬ážáá«áááºá TON ááœááºááẠ(áá«áá±ááá·áº áá áºáá»áááºáááºážááŸá¬ áá°á·ááᯠá¡áá¯á¶ážááŒá¯áááº) áá²á· áá°áá®áá±ážáááºá TON ááá¯ááŸá±á¬ááºááŸá¯ "ááŒáá·áºáá±ááŒááºáž" node ááá¯ááŸá¬áá«á ááŸáá·áº TON Proxy - á¡áááºá¡áááºááŒááºáá¯ááºáá°áá»á¬ážá ááá¯á·áá±á¬áº blockchain ááŸáá·áºááá°áá²á ဠhash table áááºáá¯á¶ááŒá¯á¶áá±á¬ááá¯ááŸá±á¬ááºááŸá¯áá áºáá¯ááá¯áẠ- áááºáááºážááœááºá¡áá±ážááŒá®ážáá±á¬á¡áá»ááºá¡áááºáá»á¬ážááá¯ááááºážáááºážáá¬ážáááºááá¯ááºááŒá±á¬ááºážáááááŒá¯ááá·áºáááºá
- áá áºáááºááºáá±á¬ááºááŸá¯áá»á¬áž. á áááºááŒáá¯ááºáááºáá±á¬ááºááŸá¯áá»á¬ážá¡ááœáẠááááºáá±á¬ááºážá á¡ááŸá áºáá¬áá¡á¬ážááŒáá·áºá á€áááºááŸá¬ á¡áááºáá±á¬áºááŒáá«á¡áá¬á¡á¬ážáá¯á¶ážáááááºááœáẠá¡ááºáá¬áááºá¡áá áºáá áºáá¯ááŒá áºáááºá áá±áá¬áááŸááºááŒááºáž - ááŸáááá·áº TON ááœááºáááº/TON Proxy, áá¯áá¹áááá±ááá áááºá á¬áá»á¯ááºáá»á¬ážááœááºáááºááŸááá áá áºááẠBlockchain. ááŸáá·áº á¡áá±á¬áºá¡ááẠáááºážááŸá®ážááŒá®ážáá¬áž URL áá»á¬ážáá«ááŸááá±á¬ á¡ááºáá¬áá±á·á áºáá áºáá¯á
- TON DNS. áá»áœááºá¯ááºááá¯á·ááẠáááºážááŸá®ážááŒá®ážáá¬áž URL áá»á¬ážá¡ááŒá±á¬ááºážááŒá±á¬áá±áá±á¬ááŒá±á¬áá·áº áááºážááá¯á·á០256-bit ááááºá á¬áá»á¬ážááŒá áºááá·áº á¡áá±á¬áá·áºáá»á¬ážá á á¬áá»á¯ááºáá»á¬ážá áááºáá±á¬ááºááŸá¯áá»á¬ážááŸáá·áº node á¡ááŒá áºááá¯á· ááŒá±á¬ááºážáá±ážáááºááá¯á¡ááºáá«áááºá
- áá áºáááºááœá±áá»á±ááŸá¯. ááŒá®ážáá±á¬á· áá®áá±áá¬á ááœá±áá±ážááŒá±ážáá±ážááá á¹á áá±á«áºáá¬áááºá áá«áááºáááá°ážá áááẠâ ether áá²á·ááá¯á·áááºá áááºááá·áº âááá¯áááºáá»á¬ážâ ááŒá áºááá¯ááºáááºáááºážá Grams ááẠá€áá±áá¬ááœáẠ"áá°á" ááœá±ááŒá±ážááŒá áºáááºá
á€áááºááŸá¬ TON á "á¡ááŒá±áá¶" á¡ááœáŸá¬ááᯠáá±á¬áºááŒááá·áº ááááá¯á¶ážá¡ááá¯ááºážááŒá áºááẠ- áááºážáááœááºáááºá¡ááá¯ááºážá ááá¯ážáá¬áááá¯ááá¯áá±á¬áá»á¬ážááááºááœáẠáááºáá±á¬ááºáá¬ážáááºá áá±á¬ááºá¡ááá¯ááºážááŸá¬áá±á¬á· á¡á±á¬ááºááŸá¬áá±á¬áºááŒáá¬ážáá²á· á áá áºá áá¶á·ááá¯ážáá±ážááá·áº "soft" - blockchain á¡ááŒá±á¬ááºáž ááœá±ážááœá±ážáá«áááºá ááá¯á·ááŒá±á¬áá·áºá áá»áœááºá¯ááºáááŒááºáááºááŒá±á¬ááŒááŒááºážá¡á á®á¡á á¥áºááẠá¡áááºáá±á¬áºááŒáá«á á¬ááœááºá á¬áááºážááœááºá¡áá¯á¶ážááŒá¯ááá·áº (á ááá¹ááá¡ááá·áºááŸáá»ááºáá»ááºážá áááºáááº) ááŸáá·áº á¡áááºážáááºááœá¬ááŒá¬ážáá«áááºá
á¡ááŒá±áá¶ááá±á¬ááá¬ážáá»á¬áž
TL (Type Language)á áááºážááẠáááá¬ážáá±á¬áá±áá¬ááœá²á·á
ááºážáá¯á¶áá»á¬ážá¡ááœáẠá
ááá¹ááááœááá±á¬áºáááºáá
áºáá¯ááŒá
áºáááºá áááºážááᯠTelegram áááá¯ááá¯áá±á¬ááœáẠá¡áá¯á¶ážááŒá¯ááŒá®áž TON ááœáẠáááºááŒáœá
áœá¬ á¡áá¯á¶ážááŒá¯áááºááŒá
áºáááºá á¡áá±ážá
ááẠáááá»ááºáááº-
Hash (hash) áá¯á¶áá±á¡ááŸááºáá
áºáá¯á áá¶áá«ááºáá
áºáá¯áááºážááá¯á· ááááºáááᯠáá±áá¬ááœá²á·á
ááºážáá¯á¶á áá±á¬ááºááŒááºááá¯ááºááá¯ááºáá±á¬ ááŒá±á¬ááºážáá²ááŸá¯ááᯠáá¯ááºáá±á¬ááºááá·áº áá¯ááºáá±á¬ááºáá»ááºá á
á¬ááœááºá
á¬áááºážáá
áºáá»áŸá±á¬ááºáá¯á¶áž function á¡ááŒá±á¬ááºážááŒá±á¬áá±áá¬
ááœááºáááºáá¯á¶ááŸáẠ(node ááá¯) Node ááẠá áá áºáááºáááºááŸá¯ááᯠáá±áá»á¬á á±ááá·áº áá±á¬á·ááºáá²ááŒá áºáááºá á¡áá°ážáááŒáá·áºá Telegram client á¡ááá®áá±ážááŸááºážáá áºáá¯á á®ááœáẠTON node áá áºáá¯áá«áááºáááºáᯠáá°ááá«áááºá á¡áááá·áºáá¯á¶ážá¡ááá·áºááœááºá node áá»á¬ážááœáẠIPv4/IPv6 ááááºá á¬áá»á¬ážááŸáááŒá®áž UDP áááá¯ááá¯áá±á¬ááᯠá¡áá¯á¶ážááŒá¯á áááºááœááºáááºá ááá¯ááá¯ááŒáá·áºáá¬ážáá±á¬á¡ááá·áºááœáẠáááºážááá¯á·ááœááºá á ááá¹ááááááºá á¬áá»á¬áž ADNL áááá¯ááá¯áá±á¬ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá« (á ááá¹ááááááºá á¬áá»á¬ážááŸáá·áº ADNL á¡ááŒá±á¬ááºáž - á¡á±á¬ááºááœááºááŒáá·áºáá«)á á áá áºá á¡áá»áá¯á·áá±á¬ á¡á áááºá¡ááá¯ááºážáá»á¬ážááẠáá áºáá¯áá¯áá¯ááºáá±á¬ááºááŒááºáž ááá¯á·ááá¯áẠáá±áá¬á¡áá»áá¯á·ááᯠááááºážáááºážááŒááºáž ááŸáá·áºáááºáááºáá¬áá»áŸáẠáááºážááᯠnetwork node áá»á¬ážá០áá¯ááºáá±á¬ááºáááºáᯠáá¬ážáááºáá«áááºá
á ááá¹ááááááºá ᬠ(ááá¯á·ááá¯ááºááá¯ážááá¯ážáá±áž ááááºá á¬, ááááºá á¬) node á ááááºá á¬ááᯠáááºážá á¡áá»á¬ážáá°ááŸá¬áá±á¬á·ááŒáá·áº áá¯á¶ážááŒááºáááºá ááá¯ááá¯áááºážááŒááºá áœá¬ááŒá±á¬ááá»áŸáẠáááºážááẠá¡áá»á¬ážáá°ááŸá¬áá±á¬á·áá«ááŸááá±á¬ áá±áá¬ááœá²á·á ááºážáá¯á¶á 256-bit hash (SHA256) áá áºáá¯ááŒá áºááẠ(áááá»áá±á¬ cryptographic algorithm ááᯠáááºááŸááºáá¬ážááŒááºážáááŸááá« - elliptic curves ááŸáá·áº RSA-2048 ááᯠááá°áá¬á¡ááŒá áºáá±ážáááº)á node áá áºáá¯ááẠá¡ááŒá¬ážáá áºáá¯ááŸáá·áº áááºááœááºáááºá¡ááœááºá áááºážááẠáááºážááááºá á¬ááá¯áá¬áá á€áá±áá¬áááºáá±á¬ááºáá¯á¶ááá¯áááºáž ááááẠááá¯á¡ááºáááºá áá®á¡áá¯áá®á¡áá Physical Node áá áºáá¯ááẠááááºá á¬á¡áá±á¡ááœáẠ(á¡áá»áá¯ážáá»áá¯ážáá±á¬áá±á¬á·áá»á¬ážááŸáá·áº áááºááá¯ááºáááº) ááᯠáááºáá®ážááá¯ááºáááºá
ááá¯á·á¡ááŒááºá ááá¯áá²á·ááá¯á·áá±á¬ááá·áºááºááᯠáááŒá¬ááá¡áá¯á¶ážááŒá¯áááº- TL áááºáá±á¬ááºáá¯á¶ (áá±áá¬á¡á¬ážáá¯á¶ážáá®ážáá«ážáá«ááŸááá±á¬) ááŸáá·áº ááááºá á¬áá±á¬áºááŒáááºá¡ááœáẠá¡áá¯á¶ážááŒá¯ááá·áº "ááŸá±á·ááŒá±ážáá¯á¶á á¶" ááŸáá·áº áááºážá០256-bit hash áá áºáá¯ááá¯á·ááᯠá¡áá¯á¶ážááŒá¯áááºá
ááá±á¬áẠ(blockchain) Blockchain ááẠáá±áá¬ááœá²á·á ááºážáá¯á¶á á¡á áááºá¡ááá¯ááºážáá»á¬áž (áá¯ááºááœááºáá»á¬áž) "ááœááºážáááº" ááá¯á· á¡áááá·áºáá±ážáá¬ážááŒá®áž ááœááºážáááºá áá±á¬ááºáááºááœá² ááá±á¬ááºáá áºáá¯á á®ááœáẠááááºáá áºáá¯á hash áá«ááŸááááºá á€áááºážá¡á¬ážááŒáá·áºá ááá¬ááááá¯áááŸáááẠ- ááááºááá¯á·á¡áá áºáá»á¬ážááá·áºááŒááºážááŒáá·áºáᬠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠááŒá¯áá¯ááºááá¯ááºáááºá
áááºáá±á¬ááºááŸá¯ (áááºáá±á¬ááºááŸá¯) TON á¡ááœááºážááŸááááºáá±á¬ááºááŸá¯áá»á¬ážááẠblockchain ááá¯á¡áá¯á¶ážááŒá¯áááºááŸááááŸáá¡áá±á«áº áá°áááºá á¡áá»áá¯ážá¡á á¬ážá¡áá»áá¯ážáá»áá¯ážááŸáááá¯ááºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá ááá¬ážááá¯ážáá» áááºáá¬áá¬áá»á¬ážáá²á·ááá¯á· blockchain ááœáẠáááºááá·áºááŸááºáááºážááá¯áá»áŸ ááááºáá®ážáá² á¡á±á¬ááºááœááºáá±á¬áºááŒáá¬ážáá±á¬ ADNL áááá¯ááá¯áá±á¬ááᯠá¡áá¯á¶ážááŒá¯á á¡áá»áá¯á·áá±á¬ RPC áá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠáá¯ááºáá±á¬ááºááá¯ááºáááºá ADNL ááœáẠHTTP ááᯠââá¡áá±á¬ááºá¡áááºáá±á¬áºááá¯ááºááŒá±á¡ááŒáẠmessenger ááá¯ááºááá¯ááºá á€áááá¯ááá¯áá±á¬ááá¯á· áá°ážááŒá±á¬ááºážááŒááºážáááºáž áá«áááºáá«áááºá TOR ááá¯á·ááá¯áẠI2P ááŸáá·áº ááŸáá¯ááºážááŸááºááŒááºážááŒáá·áºá áááºážááẠá¡áá»áá¯ážáá»áá¯ážáá±á¬ááááºááá¯á·ááŒááºážááᯠááá¯ááá¯áá¶ááá¯ááºáááºááŸáá á±áááºááŒá áºáááºá
áá áºáá»áááºáááºážááŸá¬áááºá áááºáá±á¬ááºááŸá¯á¡áá»á¬ážá¡ááŒá¬ážááẠblockchain ááŸáá·áºáááºážáá¡ááŒááºáááºááŸááá±á¬ááºážááá¯ááŸá¯áá»á¬ážááá¯áá¯ááºáá±á¬ááºááŒááºážááŸáá·áºáá¯ááºáá±á¬ááºááŒááºážááŸá áºáá¯áá¯á¶ážáá« á ááºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá TON Storage - ááá¯ááºááá¯ááŸá±á¬ááºááŸá¯á¡ááœáẠ- áááºážááẠblockchain ááœááºááá¯ááºáá»á¬ážááá¯áá°ááá¯á·ááá¯ááºáá°ááá¯á·ááááºážáááºážáááºá¡ááœááºááá·áºáá»á±á¬áºááŸá¯áááŸááá«á áááºážááœáẠááá¯áẠhashes áá»á¬ážáᬠáá«áááºáááá·áºááẠ(áááºážááá¯á·ááŸáá·áºáááºáááºááá·áº áááºáá¬á¡áá»ááºá¡áááºá¡áá»áá¯á·ááŸáá·áºá¡áá°) ááŸáá·áº á¡áá°ážááŒá¯ááœááºááẠnode áá»á¬ážááẠADNL ááŸáá áºááá·áº áááºážááá¯á·á¡á¬áž á¡ááŒá¬áž node áá»á¬ážááá¯á· áá±ážááá¯á·ááẠá¡áááºááá·áºááŒá áºááá·áº "ááá¯ááºáá¬áá¬áá»á¬áž" á¡ááŒá Ạáá¯ááºáá±á¬ááºáááºááŒá áºáááºá
ááŒá°ááá¯áž (ááŒá°ááá¯áž) áááá¯áá»á¯ááºááá¯ááºááŸá¯áá»áŸá±á¬á·áá»ááŒááºážááŸáá·áº áááºážááá¯á·ááœáẠááœáá·áºáááºážá áœá¬áá«áááºááŸá¯ááᯠááá¯ááá¯ááá·áº áááºáá±á¬ááºááŸá¯á¡áá»áá¯á·á¡ááŒá±á¬ááºáž áá»áœááºá¯ááºááá¯á·ááŒá±á¬áá±áá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá TON Proxy ááẠá¡ááŒá¬áž node áá»á¬ážááŒá¬ážááœáẠááŒá¬ážáᶠ(proxy) áá±ážááá¯á·ááŒááºáž packets á¡ááŒá Ạáááºážááá¯á·á node ááᯠáá¶á·ááá¯ážáá±ážááá¯áá±á¬ áá«áááºáá°ááá¯ááºážá០áá¶á·ááá¯ážáá±ážááá¯ááºáá±á¬ áááºáá±á¬ááºááŸá¯áá áºáá¯ááŒá áºáááºá ááá¹áááŸááá«á áááºážá¡ááœáẠáá°áááºááŸááºáá¬ážáá±á¬ á¡áááŒá±ážááœá±ááᯠáá±á¬ááºáá¶ááá¯ááºááẠ- á¡áá±ážá á¬ážááœá±áá±ážáá»á±ááŸá¯áá»á¬ážá¡ááœáẠTON ááœá±áá±ážáá»á±ááŸá¯á áá Ạ(ááá¯á·á¡ááŒááºá áááºážááẠááŒá°áááºáá±á¬ááºááŸá¯áá áºáá¯áááºážááŒá áºáááº)á
ADNL- Abstract Datagram Network Layer
á¡áááá·áºáá¯á¶ážá¡ááá·áºááœááºá UDP áááá¯ááá¯áá±á¬ááᯠá¡áá¯á¶ážááŒá¯á node áá»á¬ážá¡ááŒá¬áž áááºááœááºááŸá¯ááᯠáá¯ááºáá±á¬ááºááẠ(á¡ááŒá¬ážááœá±ážáá»ááºá áá¬áá»á¬áž áááºáá¶ááá¯ááºáá±á¬áºáááºáž)á
á¡áááºááœááºáá±á¬áºááŒáá²á·ááá·áºá¡ááá¯ááºážá node áá áºáá¯ááŸá¡ááŒá¬ážáá áºáá¯ááá¯á· packet áá áºáá¯áá±ážááá¯á·áááºá¡ááœááºá áááºážááẠáááºážá public keys áá»á¬ážáá²á០áá áºáá¯ááᯠáááááẠ(ááá¯á·ááŒá±á¬áá·áº áááºážááááºá á¬ááᯠáááºááŸááºáááº)á áááºážááẠáááºáááºááᯠá€áá±á¬á·ááŒáá·áº áá¯ááºááŸááºááŒá®áž 256-bit áááºáá±áá¬ááááºá á¬ááᯠáááºáááºáá¡á ááœáẠáá±á«ááºážááá·áºááẠ- node áá áºáá¯ááœáẠá€ááááºá á¬áá»á¬ážá áœá¬ááŸáááá¯ááºáá±á¬ááŒá±á¬áá·áºá áááºážááẠáááºááá·áºáá±á¬á·ááᯠá á¬ááŸááºá¡áá¯á¶ážááŒá¯ááááºááᯠáá¯á¶ážááŒááºááá¯ááºá á±áááºááŒá áºáááºá
ááá¯á·á¡ááŒááºá áááºáá¶áá°áááááºá á¬á¡á á¬áž áá±áá¬áááºáá±á·áá»áºáá¡á ááœáẠáááºážáá¯áá±á«áºáá±á¬ á¡áá¬áá»á¬ážáá«ááŸááááºá á¡ááŸááºá¡áá¬áž áá»ááºáááº. á€ááá á¹á ááœááºá packet ááá¯ááºáá±á¬ááºááŸá¯ááẠnode áá»á¬ážááŒá¬áž áá®ážááŒá¬ážááá±á¬áá°áá®áá»ááºáá»á¬ážáá±á«áºááœááºáá°áááºááŒá®ážááŒá áºááẠ- á¥ááá¬á¡á¬ážááŒáá·áºá á¡áá»áá¯á·áá±á¬áá»ááºáááºáá áºáá¯ááá¯á· áá±ážááá¯á·ááá·áºáá±áá¬ááẠá¡ááŒá¬áž node á¡ááœááºáááºááœááºááŒá®áž áááºážáá¶ááá¯á· áááºááá·áºáá±ážááá¯á·áááẠ(áááºážááẠáááºáá±á¬ááºááŸá¯ááŒá áºááẠTON Proxy) á¡ááŒá¬áž á¡áá°ážááá á¹á áááºááŸá¬ node áá»á¬ážááŒá¬áž ááá¯ááºááá¯áẠá¡ááŒááºá¡ááŸáẠáá¯á¶á·ááŒááºááŸá¯ ááŒá áºááá¯ááºáááºá ááá¯á·áá±á¬áº á€áá»ááºáááºá¡ááœáẠáá áºáŠážáá»ááºážáá±á¬á·á¡ááœá²ááᯠá¡áá¯á¶ážááŒá¯á áá¯ááºááŸááºááŒááºáž (Diffie-Hellman protocol ááᯠá¡áá¯á¶ážááŒá¯á ááŒáá¯áááºáá¯ááºáá¯ááºáá¬ážáááº)á
áá±á¬ááºáá¯á¶ážááœááºá á¡áá°ážááá á¹á áááºááŸá¬ ânullâ áá»ááºáááºááŒá áºááẠ- á¡áááºá node áá áºáá¯ááẠáááºážá âá¡áááºáá®ážáá¬ážáá»ááºážáá»á¬ážâ á á¡áá»á¬ážáá°ááŸá¬áá±á¬á·áá»á¬ážááᯠááááá±ážáá«áá áááºážááá¯á·á¡á¬áž áá¯ááºááŸááºááŒááºážáá¯á¶ážááááŒá¯áá¯ááºáá² packet áá»á¬ážááᯠáá±ážááá¯á·ááá¯ááºáá«áááºá áááºážááẠáááŠážáá¯ááºáá±á¬ááºáááºá¡ááœááºáᬠáááºááœááºááẠ- node áá»á¬ážááẠáááºážááá¯á·ááá±á¬á·áá»á¬ážá¡ááŒá±á¬ááºáž á¡áá»ááºá¡áááºáá»á¬áž áá±ážááá¯á·ááŒá®ážáááºááŸáá·áº áááºážááá¯á·ááᯠáááºáá¶áááºááœááºáááºá¡ááœáẠá¡áá¯á¶ážááŒá¯ááá·áºáá«áááºá
á¡áááºááœááºáá±á¬áºááŒáá¬ážáá±á¬ áááá¯ááá¯áá±á¬ (256 bits of channel identifier + packet contents) ááᯠADNL áá¯áá±á«áºáááºá á á¬áááºážááœáẠáááºážáááááºááœáẠTCP á analogue ááá¯á·ááá¯áẠáááºážáááá¯ááºááá¯áẠadd-on - RLDP (Reliable Large Datagram Protocol) ááᯠáá±á¬áºááŒáá¬ážáá±á¬áºáááºáž áááºážááá¯á·á á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ááŸáá·áºáááºáááºáá±á¬ á¡áá±ážá áááºá¡áá»ááºá¡áááºáá»á¬ážááᯠáá±á¬áºááŒáá¬ážááŒááºážáááŸááá±á
TON DHT- ááŒáá·áºáá±áá¬ážáá±á¬ Hash ááá¬áž
á¡ááŒá¬ážááŒáá·áºáá±ááá·áºá
áá
áºáá»á¬ážáá²á·ááá¯á·áááºá TON ááẠDHT á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ááœáẠáá«áááºáá«áááºá
á ááá¹ááááá±á¬á¡áá DHT ááẠ256-bit áá±á¬á·áá»á¬ážááᯠááááºáááᯠá¡ááŸááºá ááœááááºááá¯ážáá»á¬ážááᯠááŒá±áá¯á¶ááœá²áááºá á€ááá á¹á ááœááºá ááá¬ážááŸááá±á¬á·áá»á¬ážááẠá¡áá»áá¯á·áá±á¬ TL ááœá²á·á ááºážáááºáá±á¬ááºáá¯á¶á០hashe áá»á¬ážááŒá áºááẠ(áááºáá±á¬ááºáá¯á¶áá»á¬ážááá¯ááºááá¯áẠDHT ááŸáá·áºáááºáž ááœá²ááááºážáá¬ážáááº)á áááºážááẠnode ááááºá á¬áá»á¬ážááœá²á·á ááºážááŒááºážááŸáá·áºá¡ááœááºáááºáá°ááẠ- áááºážááá¯á·ááẠDHT ááœááºá¡ááŸááºááááºááŸááá±ááá¯ááºááẠ(á¥ááá¬á áá±ážáá¬ážáá±á¬ node áá áºáá¯á IP ááááºá á¬ááᯠá€áá²á·ááá¯á·áá±á¬áá±á¬á·ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááŒáá·áºá á ááá¹ááááááºá á¬áááœáŸá²ááẠá)á ááá¯á·áá±á¬áº áá±áá°áá»á¡á¬ážááŒáá·áº âáá±á¬á·áá»á¬ážá ááŸá±á·ááŒá±ážáá¯á¶á á¶áá»á¬ážâ (áááºážááá¯á·á áá±á¬áºááŒáá»ááº, á¡ááááá±á¬áºááŒáá»ááºáá»á¬áž) ááẠhash ááá¬ážáá áºáá¯ááŸá entry á "ááá¯ááºááŸááº" ááá¯ááœáŸááºááŒáá±á¬ metadata (ááá¯ááá¯áááºááŸá¬ node á¡áá»áá¯á·á á¡áá»á¬ážáá°ááŸá¬áá±á¬á·)á ááááºážáááºážáá¬ážáá±á¬ áááºááá¯ážá¡áá»áá¯ážá¡á á¬ážááŸáá·áº ဠentry ááᯠáá±á¬ááºááá¯ááºážááœáẠááŒá±á¬ááºážáá²ááá¯ááºááá·áº á ááºážáá»ááºážáá»á¬ážááŒá áºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá á ááºážáá»ááºážáá áºáá¯ááẠááá¯ááºááŸááºááá¯áᬠáááºááá¯ážááŒá±á¬ááºážááẠááœáá·áºááŒá¯ááá¯ááºáááºá ááá¯á·ááá¯áẠáááºááá¯ážá¡á±á¬ááºááá¯á· ááŒá±á¬ááºážáá²ááŒááºážááᯠáá¬ážááŒá áºááá¯ááºááẠ(ááŒááºáááºáá á¬ážááŒááºážá០áá¬ááœááºáááº)á
256-bit áá±á¬á·áá»á¬ážá¡ááŒáẠDHT ááááºá
á¬áá»á¬ážá ááá±á¬ááá¬ážááᯠááááºáááºáá±ážáá²á·áááºá áá¯á¶ááŸááºá¡áááºááŸááºááááºá
á¬áá»á¬ážááŸáá·áº ááœá¬ááŒá¬ážáá»ááºááŸá¬ DHT ááááºá
á¬ááẠIP ááááºá
á¬áá
áºáá¯ááŸáá·áº áá±áá»á¬áá±á«áẠáá»áááºáááºáá¬ážááŒááºážááŒá
áºáááºá Node áá
áºáá¯ááẠáááºážá IP ááᯠââáááŸááºáá¬ážáá«áá áááºážááẠDHT á¡ááœáẠáá¯á¶ááŸááºááááºá
á¬ááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá ááá¯á·áá±á¬áº áááŒá¬ááááá¯áááá¯á DHT ááá¯á¡ááºáá»ááºáá»á¬ážá¡ááœáẠáá®ážááŒá¬ážá "áá
áºááá¯ááºážá¡ááŒá²áááºáž" ááááºá
á¬áá
áºáá¯ááᯠáááºáá®ážáá«áááºá
á¡ááœá¬á¡áá±ážááá±á¬ááá¬ážááᯠáá±á¬á·áá»á¬ážááŸáá·áº DHT ááááºá
á¬áá»á¬ážá¡áááºááœáẠááááºáááºáá¬ážááẠ- á€á¡áá¬á¡á¬ážáá¯á¶ážááẠááá¬ážáá»á¬ážááŸáá·áº ááá¯ááºááá¯ááºáááº
DHT node ááẠá¡ááŒá¬ážááá¯áá²á·ááá¯á·áá±á¬ node áá»á¬ážááŸáá·áº áááºááœááºáááºá¡ááœááºá áááºážááẠmemory ááœáẠááááºážáááºážáá¬ážáááºá DHT áááºážááŒá±á¬ááºážááá¬áž â áááºážááá¯á·ááŸáá·áº á¡ááœá¬á¡áá±ážá¡ááá¯áẠá¡á¯ááºá á¯ááœá²á·ááŒá®áž ááááºá á¡ááŒááºá¡ááŸááºáá¯á¶á·ááŒááºááá·áº áá¯á¶ááŸááºáá»á¬ážá DHT ááŸáá·áº IP ááááºá á¬áá»á¬ážá ááá¯ááá¯á·áá±á¬á¡á¯ááºá ᯠ256 áá¯ááŸáááẠ(áááºážááá¯á·ááẠá¡ááœá¬á¡áá±ážáááºááá¯ážááœáẠá¡áá°ážááŒá¬ážáá¯á¶ážáááºááŸááºáá¬ážáá±á¬áá áºáá»á¬ážááŸáá·áº ááá¯ááºáá®ááẠ- ááá¯ááá¯áááºááŸá¬ 0 á០255 á¡ááœá¬á¡áá±ážááŸá node áá»á¬ážááẠ256 á០65535 á០áá±á¬ááºáá áºá¡á¯ááºá á¯ááá¯á· áá»áá±á¬ááºáááá·áºáááº)á á¡á¯ááºá á¯áá áºáá¯á á®ááœááºá "á¡áá±á¬ááºážáá¯á¶áž" áá¶áá«ááºáá»á¬ážááᯠá¡ááá·áºá¡áááºááŒáá·áº ááááºážáááºážáá¬ážáá«ááẠ(áááºážááá¯á·á¡á¬áž ping ááááºááŸááºáá»ááºá¡á)á
node áá áºáá¯á á®ááẠáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážá áœá¬ááᯠáá¶á·ááá¯ážáá±ážááááº- áá±á¬á·áá áºáá¯á¡ááœáẠáááºááá¯ážáá áºáá¯ááᯠááááºážáááºážááŒááºážá, node ááŸá¬ááœá±ááŸá¯ О áááºááá¯ážáá»á¬ážááá¯ááŸá¬ááœá±áá«á. áá¯á¶ááŸááºáá»á¬ážááᯠááŸá¬ááœá±ááŒááºážááœáẠáá±ážáá¬ážáá±á¬ áá±á¬á·ááᯠá¡ááŒá±áá¶á áááºážááŒá±á¬ááºážááŒááá¬ážá០áááºážááŸáá·áºá¡áá®ážáá¯á¶áž áá¯á¶ááŸááºáá»á¬ážááᯠáá¯ááºáá±ážááŒááºáž áá«áááºáááºá Node ááẠáá±á¬á·ááááºááá¯ážááᯠáááá±á¬á¡áá«ááŸááœá²á áááºááá¯ážáá»á¬ážááᯠááŸá¬ááœá±áá±ááẠ(ááá¯á·áá±á¬áẠáááºážááẠáááºážááᯠááŒááºáá±ážáááº)á ááá¯á·ááŒá±á¬áá·áºá node áá áºáá¯ááẠDHT ááœáẠáá±á¬á·ááŒáá·áºáááºááá¯ážáá áºáá¯ááᯠááŸá¬ááá¯áá«áá áááºážááẠáááºážááááºážááŒá±á¬ááºážáááºááá¬ážá០á€áá®ážááŸáá·áºá¡áá®ážáá¯á¶áž áá¶áá«ááºá¡áááºážáááºáá®ááá¯á· áá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠáá±ážááá¯á·áááºá ááá¯á¡ááºáá±á¬áááºááá¯ážááẠáááºážááá¯á·ááá¯á¶á·ááŒááºááŸá¯áá»á¬ážááœááºááá«áááºáá±á¬áºáááºáž á¡ááŒá¬áž node ááááºá á¬áá»á¬ážááŸááá±áá«áá áá±á¬ááºážááá¯áá»ááºá¡á¬áž áááºážááá¯á·áᶠáááºáá«ááá²áá²áá¯ááºáá±á¬ááºáááºá
TON DHT ááᯠáááºááœááºáá»ááºá¡áá»áá¯ážáá»áá¯ážááŒáá·áº á¡áá¯á¶ážááŒá¯ááá¯ááºááŒá®ážá á¥ááá¬á¡á¬ážááŒáá·áºá torrent áá²á·ááá¯á· ááá¯ááºááá¯ááŸá±á¬ááºááŸá¯ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááẠ(ááŒáá·áºáá«á TON ááá¯ááŸá±á¬ááºááŸá¯); á¡áá»áá¯á·áá±á¬áááºáá±á¬ááºááŸá¯áá»á¬ážááá¯á¡áá±á¬ááºá¡áááºáá±á¬áºáá±á¬ node áá»á¬ážáááááºá á¬áá»á¬ážááá¯áá¯á¶ážááŒááºáááºá blockchain ááœááºá¡áá±á¬áá·áºááá¯ááºááŸááºáá»á¬ážá¡ááŒá±á¬ááºážá¡áá»ááºá¡áááºáá»á¬ážááá¯ááááºážáááºážáááºá ááá¯á·áá±á¬áº á¡áá±ážááŒá®ážáá¯á¶áž application ááŸá¬ áááºážááá¯á·á abstract address áá»á¬ážá០node áá»á¬ážááᯠááŸá¬ááœá±ááŒááºáž ááŒá áºáááºá áá®ááá¯áá¯ááºááá¯á·á ááááºá á¬ááᯠáá±á¬á·áá áºáá¯á¡áá±áá²á· á¡áá¯á¶ážááŒá¯ááŒá®áž áááºááá¯ážááᯠááŸá¬ááá«áááºá áá±á¬ááºážááá¯ááŸá¯áááááºá¡áá±ááŒáá·áºá node ááá¯ááºááá¯ááºááœá±á·áááá·áºááẠ(ááŸá¬ááœá±áá²á·ááá·áºááááºá á¬ááẠáááºážááá áºááá¯ááºážá¡ááŒá²áááºáž DHT ááááºá á¬ááŒá áºáá«á) ááá¯á·ááá¯áẠáááºááá¯ážááẠáá»áááºáááºááŸá¯á¡ááœáẠIP ááááºá á¬ááŸáá·áº ááá¯á·ááºááŒá áºáááá·áºááẠ- ááá¯á·ááá¯áẠá¡ááŒá¬ážááááºá á¬áá áºáá¯á¡ááŒá Ạá¡áá¯á¶ážááŒá¯ááá·áºááẠááŒá¬ážáá¶á¥áááºááá¯ááºáá±á«ááºážá
TON ááœáẠáááºááá·áºááœááºáááºáá»á¬áž
á¡áááºááœááºáá±á¬áºááŒáá¬ážáá±á¬ ADNL áááá¯ááá¯áá±á¬ááẠáááºááá·áº node áá»á¬ážá¡ááœááºáááᯠááááºážá¡áá»ááºá¡áááºáááŸááºááẠá
áœááºážáááºááᯠááá¯ááá¯ááẠ- á¡áá±á¬ááºážáá¯á¶ážáááºážáááºážáá»á¬ážááŒáá·áº áááá¯á¡ááºáá±á¬áºáááºážá ADNL ááŒá±á¬áá·áº áá¯á¶ááŸááºáá»á¬ážá¡á¬ážáá¯á¶ážááẠááá¹áá¬áá¯á¶ážááá¯ááºáᬠTON áááẠ(á
á¶ááŒáá»áááºáááºááŸá¯) á¡ááŒá
ẠááŒá
áºáá±á«áºáá¬áááºáᯠáá»áœááºá¯ááºááá¯á·ááŒá±á¬ááá¯ááºáááºá ááá¯á·áá±á¬áº áááºááá·áºááœááºáááºáá»á¬áž - á€ááááºá¡ááœááºáž á¡ááœá²áá»á¬ážááᯠáááºáá®ážááá¯ááºáááºá
ááá¯ááá¯á·áá±á¬ááœááºáááºá¡ááœááºážá á¡ááŒááºá¡ááŸááºáááºááœááºááŸá¯ááᯠááá¯ááºááá¯ááºáá¯ááºáá±á¬ááºááẠ- ááœááºáááºááœááºáá«áááºáá±á¬ node áá»á¬ážá¡ááŒá¬áž (á¡áááºááœááºáá±á¬áºááŒáá¬ážáá±á¬ ADNL áá»ááºáááºáá»á¬ážááŸáá áºááá·áº) ááŒáá¯áááºááœá²á·á ááºážáá¬ážáá±á¬áá»áááºáááºááŸá¯áá»á¬ážááŸáááá·áº ááá¯ááºááá¯ááºáá¯ááºáá±á¬ááºáá«áááºá á¡áááºáá®ážáá»ááºážáá»á¬ážááŒá¬ážááœáẠááá¯ááá¯á·áá±á¬áá»áááºáááºááŸá¯áá»á¬ážááœá²á·á ááºážááŒááºážá á¡áááºáá®ážáá»ááºážáá»á¬ážááá¯ááºááá¯ááºááŸá¬ááœá±ááŒááºážááẠáááºááá·áºááœááºáááºááá»áááºáááºááŸá¯ááᯠááááºážááááºážáááºááŸáá·áº áááºážááŸááá±áá¬áááŸááºáá¬ááœáẠááŸá±á¬áá·áºááŸá±ážááŸá¯áá»á¬ážááᯠáá»áŸá±á¬á·áá»ááẠá¡ááá¯á¡áá»á±á¬ááºáá¯ááºáááºážá ááºáá áºáá¯ááŒá áºáááºá
ááá¯á·á¡ááŒááºá ááœááºáááºá¡ááœááºáž ááŒá®ážáá¬ážáá±á¬ áá¯ááºááœáŸáá·áºááœááºážáá¶ááŸá¯áá»á¬ážááᯠáá»ááºááŒááºá áœá¬ ááŒáá·áºáá±ááẠáááºážáááºážáá áºáᯠááŸáááẠ- áááºážááá¯á·ááᯠá¡ááá¯ááºážááá¯ááºážááœá²áᬠá¡ááŸá¬ážááŒááºáááºáá»ááºáá¯ááºááŒáá·áº ááŒáá·áºá áœááºááŒá®áž á€á¡ááá¯ááºážá¡á áá»á¬ážá¡á¬ážáá¯á¶ážááᯠáá«áááºáá°áá áºáŠážá០á¡ááŒá¬ážáá áºáŠážááá¯á· áá±ážááá¯á·áá«áááºá ááá¯á·ááŒá±á¬áá·áº áá«áááºáá°ááẠááœááºáááºáá áºáá»áŸá±á¬áẠáááºážááá¯á·ááᯠáááºáá¶ááá±ážááá¯á·áá® á¡á áááºá¡ááá¯ááºážá¡á¬ážáá¯á¶ážááᯠá¡ááŒáá·áºá¡áááá°ááẠáááá¯á¡ááºáá«á
áááºááá·áºááœááºáááºáá»á¬ážááẠá¡áá»á¬ážááá¯áẠááá¯á·ááá¯áẠáá®ážááá·áºááŒá áºááá¯ááºáááºá á¡áá»á¬ážáá°ááŸá¬ááœááºáááºáá áºáá¯áá¡ááœá²á·áááºáá áºáŠážááŒá áºáá¬áááºááŸá¬ ááááºáá²áá« - áááºážááá¯áá±á¬áºááŒááá·áº TL ááœá²á·á ááºážáá¯á¶ááᯠáááºááŸá¬ááœá±ááẠááá¯á¡ááºááẠ(áááºážááᯠDHT ááœáẠá¡áá»áá¯á·áá±á¬áá±á¬á·áá áºáá¯ááŒáá·áº á¡áá»á¬ážáá°ááŸá¬á¡áá¯á¶ážááŒá¯ááá¯ááºááẠááá¯á·ááá¯áẠáááºážááá¯á¡áá¯á¶ážááŒá¯ááá¯ááºáááº)á áá®ážááá·áºááœááºáááºáá áºáá¯ááœááºá á€ááœá²á·á ááºážáá¯á¶ááᯠnode ááœáẠááŒáá¯áááºááááŸááá¬ážááááºááŒá áºáááºá
áááºáá¶áááá¯á·
TON áá¯á¶ážáááºáá»ááºááᯠáá±á¬ááºážáá«ážáá»á¬ážá
áœá¬á¡ááŒá
Ạááœá²áá¯ááºááẠáá¯á¶ážááŒááºáá²á·áááºá á€á¡ááá¯ááºážááẠá€áá±áá¬ááœáẠááŒá®ážáá
source: www.habr.com