TON: Tora Vekirî ya Telegram. Beş 1: Danasîn, qata torê, ADNL, DHT, torên sergirtî

TON: Tora Vekirî ya Telegram. Beş 1: Danasîn, qata torê, ADNL, DHT, torên sergirtî

Ev du hefte ye ku Runet bi astengkirina xwe ya bêaqil û bêmerhemet ji hêla Roskomnadzor ve li ser Telegram û rewşê deng derdixe. Rikoşet gelek kes aciz kir, lê ev hemî mijarên ji bo postên li ser Geektimes in. Ez ji tiştekî din matmayî mam - min hîn jî yek analîzek li ser Habré ya tora TON nedîtiye ku ji bo serbestberdana li ser bingeha Telegram - Telegram Open Network hatî plansaz kirin. Min xwest ku ez vê kêmasiyê bişopînim, ji ber ku li wir tiştek heye ku meriv lêkolîn bike - tevî nebûna daxuyaniyên fermî di derbarê wê de.

Bihêle ez ji we re bînim bîra we ku gotegot hene ku Telegram ICO-ya girtî ya pir mezin daye destpêkirin, ku berê dravê bêbawer berhev kiriye. Tê çaverêkirin ku dê di vê salê de cryptocurrency-a xweya Gram were dest pê kirin - û her bikarhênerek Telegram-ê bixweber xwedan walletek be, ku bi serê xwe avantajek girîng li ser diravên din ên krîptoyê diafirîne.

Mixabin, ji ber ku tu daxuyaniyên fermî nînin, ez tenê dikarim ji wir pêşde biçim belgeya bi eslê xwe nenas, ku ez di cih de we hişyar dikim. Bê guman, dibe ku ew derewînek pir jêhatî be, lê di heman demê de mimkun e ku ev kaxezek rastîn a pergala pêşerojê ye, ku ji hêla Nikolai Durov ve hatî nivîsandin (û dibe ku ji hêla yek ji veberhêneran ve hatî derxistin). Lê eger ew sexte be jî, kes dê me qedexe neke ku em li ser wê bixwînin û nîqaş bikin, ne?

Ev belge çi dibêje? Ez ê hewl bidim ku wê bi gotinên xwe, nêzikî nivîsê, lê bi rûsî û hinekî bi mirovahî vebêjim (dibe ku Nîkolay min bi meyla xwe ya ku çûyîna matematîka fermî li min bibore). Bînin bîra xwe ku heke ev rast be jî, ev pêşnumayek pergalê ye û bi îhtîmalek mezin dê di dema destpêkirina gelemperî de biguhere.

Em fêr dibin ku ji bilî pereyê krîptoyê, hêviyek pir zêde heye. Werin em li rêzê bigirin.

  • TON Blockchain. Ev bingehê hemû sîstemê ye. Heke hûn nizanin ew çi ye blockchain - Ez pêşniyar dikim ku hûn fêr bibin, ji ber ku dê li vir gelek zincîrên blokê hebin. Di nav hevûdu de hêlîn, blokên bi rastî perçebûyî û tewra "vertikal" di nav blokên blokên din de ne. Di heman demê de dê hin şertên dengbêj ên mîna Rêvekirina Hîperkubê ya Yekser и Paradîgmaya Parzûna Bêdawî, lê bêtir li ser wê paşê. Û, bê guman, peymanên îsbatkirî û biaqil.
  • Tora TON P2P. Tora peer-to-peer ku dê li ser bingehê pergalê were avakirin. Ew ê pêşî di vê beşa çîrokê de were nîqaş kirin.
  • TON Storage. Hilberîna pelan, ku bêyî zencîreya blokê, dê li ser tora peer-to-peer ya jorîn were çêkirin. Dikare bi torrentan re were berhev kirin.
  • TON Proxy. Ev karûbarek e ku armanca wê ew e ku nenasiya beşdarên torê zêde bike. Her pakêt dikare ne rasterast, lê bi navgîniya tunelên navbeynkar bi şîfrekirina zêde were şandin - mîna I2P an TOR.
  • TON DHT. Ji bo hilanîna nirxên keyfî tabloya haş a belavkirî. Li ser jî hatiye avakirin Tora TON (lê di heman demê de ji hêla wî ve tê bikar anîn) û dibe alîkar TON Storage girêkên "belavkirin" bibînin, û TON Proxy - dubarekerên navîn. Lê divê were zanîn ku, berevajî zincîra blokê, ev tabloya hash ne hilanînek ewledar e; agahdariya girîng di wê de nayê hilanîn.
  • Xizmetên TON. Platforma ji bo karûbarên xwerû. Di eslê xwe de, ev Înternetek nû ye li ser her tiştê ku li jor hatî destnîşan kirin. Danûstandina daneyan - bi rêya Tora TON/TON Proxy, û mantiq di peymanên jîr ên ya TON Blockchain. Û navgînek bi URL-yên pir naskirî.
  • TON DNS. Ji ber ku em li ser URL-yên naskirî diaxivin, ji me re jî pêdivî ye ku ji wan veguherînek nav navnîşanên 256-bit - hesab, peyman, karûbar û nod.
  • TON Payments. Û ev e ku pirsgirêka drav tê lîstikê. Û ew ê ne tenê be xiram - wekî etherê, her "nîşan" dê gengaz be; Gram dê li vir tenê pereyê "defall" be.

Ev beşa yekem e ku qata "zemîn" a TON - beşa torê ya wê, li ser protokolên kevneşopî hatî çêkirin, vedibêje. Di beşa pêş de em ê li ser "nerm" - zincîra blokê, ku dê ji hêla pergala jêrîn ve hatî destnîşan kirin piştgirî bikin. Ji ber vê yekê, rêzika min a vegotinê ji ya ku di belgeya jorîn de hatî bikar anîn (ku yekser di asta razber de dest pê dike) hinekî cûda ye.

Têgehên bingehîn

TL (Ziman binivîsin). Ew ji bo strukturên daneya keyfî formatek binary ya razber e. Ew di protokola Telegram de tê bikar anîn û dê di TON de bi rengek çalak were bikar anîn. Ger hûn dixwazin bi berfirehî pê re nas bikin - li vir şiroveya wî ye.

Hash (hash). Fonksiyonek ku veguheztinek bêveger a avahiyek daneya kêfî li hejmarek yekane ya dirêjiyek sabît pêk tîne. Li seranserê belgeyê em li ser fonksiyonê diaxivin SHA-256.

girêka torê (Node). Nod nermalava ku dê pêbaweriya pergalê bixebite ye. Bi taybetî, tê texmîn kirin ku her serîlêdana xerîdar a Telegram dê girêkek TON hebe. Di astek nizm de, girêkan navnîşanên IPv4/IPv6 hene û bi protokola UDP re têkilî daynin; di astek bilind de, wan heye navnîşanên razber û protokola ADNL bicîh bikin (li ser navnîşanên razber û ADNL - li jêr binêrin). Dema ku ew tê vê rastiyê ku hin beşên pergalê tiştek dikin an hin daneyan hilînin, tê fêm kirin ku ev ji hêla girêkên torê ve tê kirin.

Navnîşana abstract (an bi hêsanî navnîşan, navnîşan). Navnîşanek girêk ji hêla mifteya giştî ve tê destnîşankirin. Zêdetir, ew hashek 256-bit e (SHA256) ya sazûmana daneyê ye ku mifteya giştî vedihewîne (algorîtmaya krîptografî ya taybetî nehatiye diyar kirin - kelûpelên elîptîk û RSA-2048 wekî mînak têne dayîn). Ji bo ku yek nodek bi yekî din re têkilî daynin, pêdivî ye ku ew ne tenê navnîşana wê yekê, lê her weha vê avahiya daneyê jî zanibe. Di teorîyê de, yek nodek laşî dikare her jimare navnîşanan biafirîne (bi keysên cûda re têkildar).

Wekî din, tenê girêdanek wusa bi gelemperî tête bikar anîn: "prototîp" di forma avahiyek TL de (hema hema her daneyê vedihewîne), û haşek 256-bit jê, ku ji bo navnîşanê tête bikar anîn.

Blockchain (blockchain). Blockchain avahiyek daneyê ye, hêmanên (blokan) yên ku di nav "zincîrek" de têne rêz kirin, û her blokek paşîn a zincîrê haşa ya berê dihewîne. Bi vî rengî, yekbûn tête bidestxistin - guhertin tenê bi lê zêdekirina blokên nû têne çêkirin.

xizmeta (xizmetkar). Karûbarên di hundurê TON de dikarin cûrbecûr bin, li gorî ka ew zincîra blokê bikar tînin an na. Mînakî, yek (an gelek) girêkên torê dikarin hin daxwazên RPC-ê bi karanîna protokola ADNL ku li jêr hatî destnîşan kirin bişoxilînin, bêyî ku di zincîra blokê de tomar biafirînin - mîna serverên tevnvî yên kevneşopî. Di nav de îhtîmala pêkanîna HTTP-ê li ser ADNL, û her weha veguheztina peyamberê bixwe ji vê protokolê re. Bi analogî bi TOR an I2P re, ev ê wê li hember astengkirina cûrbecûr berxwedêrtir bike.

Di heman demê de, hejmarek karûbar hem pêwendiya bi zincîra blokê re hem jî daxwazên pêvajoyê li derveyî wê vedihewîne. Mînakî, ji bo TON Storage - hilanîna pelan - ne pir maqûl e ku pelan bixwe li ser zincîra blokê hilînin. Ew ê tenê haşeyên pelan hebe (ligel hin meta-agahiyên li ser wan), û girêkên torê yên pispor dê wekî "pêşkêşkerên pelan" tevbigerin, amade ne ku wan bi ADNL-ê ji nokên din re bişînin.

xizmeta fog (xizmeta mijê). Em behsa hin xizmetguzariyan dikin ku tê wateya nenavendîbûn û beşdarbûna vekirî di wan de. Mînakî, TON Proxy karûbarek e ku dikare ji hêla her beşdarek ve were piştgirî kirin ku dixwaze girêka xwe wekî navbeynkar (proxy) pakêtên şandina di navbera girêkên din de peyda bike. Ger bixwaze, ew dikare ji bo vê yekê xercek ku ji hêla wî ve hatî destnîşan kirin - bi karanîna pergala TON Payments ji bo mîkrodayinan bikar bîne (ku, di encamê de, karûbarek mijê jî ye).

ADNL: Tebeqeya Tora Datagramê ya Abstract

Di asta herî jêrîn de, danûstendina di navbera nokan de dê bi karanîna protokola UDP ve were kirin (her çend vebijarkên din têne pejirandin).

Wekî ku li jor hatî behs kirin, ji bo ku nodek pakêtek ji yekî din re bişîne, divê ew yek ji mifteyên xwe yên gelemperî (û ji ber vê yekê navnîşana ku ew destnîşan dike) bizanibe. Ew pakêtê bi vê mifteyê şîfre dike û navnîşana mebestê ya 256-bit li destpêka pakêtê zêde dike - ji ber ku yek girêk dikare çend ji van navnîşanan hebin, ev ê bihêle ku ew diyar bike ka kîjan mifteyê ji bo deşîfrekirinê bikar bîne.

TON: Tora Vekirî ya Telegram. Beş 1: Danasîn, qata torê, ADNL, DHT, torên sergirtî

Digel vê yekê, li şûna navnîşana wergir, dibe ku destpêka pakêta daneyê ya ku jê re tê gotin hebe. nasname qenal. Di vê rewşê de, hilberandina pakêtê jixwe bi peymanên taybetî yên di navbera girêkan de ve girêdayî ye - mînakî, daneyên ku ji kanalek diyarkirî re têne şandin dibe ku ji bo nodek din were armanc kirin û pêdivî ye ku jê re were şandin (ev karûbar e TON Proxy). Dibe ku bûyerek taybetî ya din rasterast di navbera girêkan de danûstendinê be, lê bi şîfrekirinê re ku ji bo vê kanalê cotek kilîtek kesane bikar tîne (bi karanîna protokola Diffie-Hellman-ê berê hatî afirandin).

Di dawiyê de, rewşek taybetî kanala "null" e - heke girêk hîna mifteyên gelemperî yên "cîranên" xwe nizane, ew dikare ji wan re pakêtan bêyî şîfrekirinê bişîne. Ev tenê ji bo destpêkirinê tête armanc kirin - gava ku nod agahdariya li ser mifteyên xwe bişînin, divê ew ji bo pêwendiya bêtir werin bikar anîn.

Protokola ku li jor hatî diyar kirin (256 bit nasnameya kanalê + naveroka pakêtê) jê re ADNL tê gotin. Di belgeyê de îhtîmala pêkanîna analogek TCP-ê li ser serê wê an pêveka wê - RLDP (Protokola Daneya Mezin a Pêbawer) destnîşan dike, lê di derheqê pêkanîna wan de hûrgulî nake.

TON DHT: Tabloya Haş a Belavkirî

Mîna ku bi pergalên din ên belavbûyî re ye, TON pêkanîna DHT-ê vedigire - tabloya hash belav kirin. Bi taybetî, tablo ye Kademlia-wek. Ger hûn bi vî celebê tabloya hash-ê nizanin, meraq nekin, li jêr ez ê bi giranî diyar bikim ka ew çawa dixebitin.

TON: Tora Vekirî ya Telegram. Beş 1: Danasîn, qata torê, ADNL, DHT, torên sergirtî

Di wateyek razber de, DHT mifteyên 256-bit bi nirxên binary yên dirêjahiya keyfî nexşe dike. Di vê rewşê de, mifteyên di tabloyê de ji avahiyek TL-ya diyarkirî haşe ne (avahiyên xwe bi DHT-ê re jî têne hilanîn). Ev pir dişibihe damezrandina navnîşanên nodê - û ew bi rastî dikarin di DHT-ê de hebin (mînak, mifteyek wusa bikar bînin navnîşana IP-ya girêkek ku bi diyariyek diyarkirî re têkildar e. navnîşana razber, heke ew venaşêre). Lê di rewşa gelemperî de, "prototîpên kilîtan" (wan danasînan, danasînên sereke) metadata ye ku "xwediyê" navnîşek di tabloyek hash de (ango mifteya giştî ya hin girêk), celebê nirxa ku hatî hilanîn, û qaîdeyên ku bi wan re ev têketin paşê dikare were guheztin destnîşan dike. Mînakî, rêgezek dikare bihêle ku tenê xwedan nirxê biguhezîne, an guheztina nirxê ber bi xwarê ve qedexe bike (ji bo parastina li hember êrîşên dubarekirinê).

Ji bilî bişkojkên 256-bit, têgeha navnîşanên DHT-ê tê destnîşan kirin. Cûdahiya bi navnîşanên mêvandar ên birêkûpêk ev e ku navnîşana DHT bi pêdivî bi navnîşanek IP-yê ve girêdayî ye. Ger nodek IP-ya xwe venaşêre, ew dikare ji bo DHT navnîşek birêkûpêk bikar bîne. Lê pir caran, navnîşek veqetandî, "nîv-daîmî" dê ji bo hewcedariyên DHT were afirandin.
TON: Tora Vekirî ya Telegram. Beş 1: Danasîn, qata torê, ADNL, DHT, torên sergirtî
Têgeha dûrbûnê li jor bişkok û navnîşanên DHT-ê tête destnîşan kirin - di vê yekê de her tişt bi tabloyan re hevaheng e kademlia - Dûrahiya di navbera bişkokan de bi XOR (OR-ya taybetî ya bitwise) ya wan re wekhev e. Mîna di tabloyên Kademlia de, divê nirxa ku bi keyek diyarkirî re têkildar be li ser were hilanîn s girêkên ku dûrahiya herî kurt ji vê mifteyê re hene (s li vir jimarek nisbeten hindik e).

Ji bo ku girêkek DHT bi girêkên din ên weha re têkiliyê deyne, ew di bîranînê de dimîne Tabloya rêveçûna DHT - Navnîşanên DHT û IP yên girêkên ku berê pê re têkilî danî, ji hêla dûrbûna wan ve têne kom kirin. 256 komên weha hene (ew di nirxa dûrbûnê de bi bîta herî girîng re têkildar in - ango girêkên ji dûr ve ji 0 heta 255 dê bikevin nav komekê, ji 256 heta 65535 - nav koma din, hwd.). Di nav her komê de, hejmarek sînorkirî ya girêkên "baş" têne hilanîn (di warê ping ji wan re).

TON: Tora Vekirî ya Telegram. Beş 1: Danasîn, qata torê, ADNL, DHT, torên sergirtî

Divê her nod çend operasyonan piştgirî bike: tomarkirina nirxek ji bo key, lêgerîna nodê и lêgerîna nirxên. Lêgerîna li girêkan, li ser bingeha kilîtek diyarkirî, girêkên herî nêzê wê ji tabloya rêgezê têne derxistin; lêgerîna li nirxan yek e, ji bilî dema ku girêk nirxa mifteyê dizane (wê hingê ew tenê vedigerîne). Li gorî vê yekê, ger girêkek bixwaze nirxek bi mifteyê di DHT-ê de bibîne, ew ji tabloya xweya rêvekirinê ji hejmareke piçûk a girêkên ku herî nêzê vê mifteyê ne, daxwazan dişîne. Ger nirxa pêwîst ne di nav bersivên wan de be, lê navnîşanên nodên din hebin, wê hingê daxwaz ji wan re tê dubare kirin.

TON DHT dikare ji bo mebestên cihêreng were bikar anîn, mînakî, ji bo bicîhkirina hilanîna pelê mîna torrent (binêre. TON Storage); destnîşankirina navnîşanên girêkên ku hin karûbaran bicîh dikin; ji bo hilanîna agahdariya li ser xwediyên hesabên li ser blokê. Lê serîlêdana herî girîng vedîtina girêkan ji hêla navnîşanên wan ên razber ve ye. Ji bo vê yekê, navnîşan wekî mifteyek ku pêdivî ye ku nirxa wê were dîtin tê bikar anîn. Di encama daxwazê ​​de, an girêk bixwe dê were dîtin (heke navnîşana lêgerînkirî navnîşana wê ya DHT ya nîv-daîmî bû), an jî nirx dê navnîşana IP-yê û porta ji bo girêdanê be - an navnîşek din ku divê wekî navnîşek were bikar anîn. tunela navbeynkar.

torên Overlay li TON

Protokola ADNL ya ku li jor hatî destnîşan kirin kapasîteya her girêkan ku agahdariya bi hevûdu re biguhezînin - her çend ne hewce ne bi awayên çêtirîn be. Em dikarin bibêjin ku bi saya ADNL, hemî girêk grafikek TON ya gerdûnî ava dikin (bi îdeal ve girêdayî ye). Lê di heman demê de gengaz e ku meriv di nav vê grafikê de torên sergirtî - binegrafan biafirîne.
TON: Tora Vekirî ya Telegram. Beş 1: Danasîn, qata torê, ADNL, DHT, torên sergirtî

Di nav torgilokek wusa de, danûstendin tenê rasterast tête kirin - bi girêdanên pêş-avakirî yên di navbera girêkên ku di torê de beşdar dibin (bi kanalên ADNL yên ku li jor hatine destnîşan kirin). Damezrandina girêdanên weha di navbera cîranan de, lêgerîna cîranan bixwe, pêvajoyek otomatîkî ye ku hewl dide girêdana tora sergirtî biparêze û dereng di danûstendina daneyan de kêm bike.

Wekî din, rêyek heye ku meriv zû nûvekirinên weşana mezin di hundurê torê de belav bike - ew perçe perçe dibin, bi koda rastkirina xeletiyê têne zêdekirin, û van hemî perçeyan ji beşdarek ji beşdarek din re têne şandin. Ji ber vê yekê, beşdar ne hewce ye ku hemî beşan bi tevahî bi dest bixe berî ku wan li ser torê bêtir bişîne.

Torên sergirtî dikarin gelemperî an taybet bin. Bûyîna endamek torgilokek gelemperî ne dijwar e - hûn hewce ne ku avahiyek TL-ya ku wê diyar dike bibînin (dibe ku ew di DHT-ê de ji hêla mifteyek diyarkirî ve gelemperî be an jî bigihîje). Di rewşa torgilokek taybet de, divê ev avahî ji berê de ji girêkê re were zanîn.

Pêdivî ye

Min biryar da ku vekolîna TON-ê li çend gotaran dabeş bikim. Ev e ku ev beş bi dawî dibe, û di paşerojê de Ez diçim ku strukturê zincîra blokê (bi rastî, zincîra blokê) ya ku TON ji wê pêk tê bihesibînim.

Source: www.habr.com

Add a comment