TON: Lìonra Fosgailte Telegram. Pàirt 1: Ro-ràdh, còmhdach lìonra, ADNL, DHT, lìonraidhean ath-chòmhdach

TON: Lìonra Fosgailte Telegram. Pàirt 1: Ro-ràdh, còmhdach lìonra, ADNL, DHT, lìonraidhean ath-chòmhdach

Airson dà sheachdain a-nis, tha an Runet air a bhith a’ dèanamh fuaim mu dheidhinn Telegram agus an suidheachadh leis a’ bhacadh gun chiall agus gun tròcair le Roskomnadzor. Chuir an ricochet oilbheum do mhòran dhaoine, ach tha iad sin uile nan cuspairean airson puist air Geektimes. Chuir rudeigin eile iongnadh orm - chan fhaca mi fhathast aon sgrùdadh air Habré den lìonra TON a chaidh a phlanadh airson a leigeil ma sgaoil air bunait Telegram - Telegram Open Network. Bha mi airson dèanamh suas airson an easbhaidh seo, oir tha rudeigin ri sgrùdadh an sin - eadhon a dh’ aindeoin dìth aithrisean oifigeil mu dheidhinn.

Leig leam mo chuimhneachadh gu bheil fathannan ann gu bheil Telegram air ICO dùinte air sgèile mhòr a chuir air bhog, an dèidh dha suimean iongantach airgid a chruinneachadh. Thathas an dùil gun tèid airgead didseatach Gram fhèin a chuir air bhog am-bliadhna - agus bidh wallet gu fèin-ghluasadach aig a h-uile neach-cleachdaidh Telegram, a tha ann fhèin a’ cruthachadh buannachd mhòr thairis air cryptocurrencies eile.

Gu mì-fhortanach, leis nach eil aithrisean oifigeil ann, chan urrainn dhomh ach a dhol air adhart nas fhaide air adhart sgrìobhainn de thùs neo-aithnichte, air am beil mi toirt rabhadh dhuibh sa bhad. Gu dearbh, is dòcha gu bheil e gu math sgileil meallta, ach tha e comasach cuideachd gur e fìor phàipear geal den t-siostam san àm ri teachd a tha seo, air a sgrìobhadh le Nikolai Durov (agus air a leigeil ma sgaoil, is dòcha, le fear den luchd-tasgaidh). Ach eadhon ged a tha e meallta, cha chuir duine bacadh oirnn a bhith ga sgrùdadh agus ga dheasbad, ceart?

Dè tha an sgrìobhainn seo ag ràdh? Feuchaidh mi ri ath-innse nam fhaclan fhìn, faisg air an teacsa, ach ann an Ruisis agus beagan nas daonnach (faodaidh Nikolai mathanas a thoirt dhomh leis gu bheil e buailteach a dhol gu matamataig foirmeil). Cumaibh cuimhne, eadhon ged a tha seo fìor, is e dreachd de thuairisgeul a tha seo air an t-siostam agus tha e glè choltach gun atharraich e ro àm an fhoillseachadh poblach.

Bidh sinn ag ionnsachadh gu bheil a bharrachd cryptocurrency, tha tòrr a bharrachd a thathar a 'sùileachadh. Gabhamaid e ann an òrdugh.

  • TON Blockchain. Is e seo bunait an t-siostam gu lèir. Mura h-eil fios agad dè a th’ ann blockchain - Tha mi a’ moladh faighinn a-mach, oir bidh tòrr blockchains an seo. Neadaichte taobh a-staigh a chèile, cha mhòr sgapte agus eadhon blockchain “dìreach” taobh a-staigh blocaichean de bhlocaichean eile. Bidh cuid de theirmean fionnar ann cuideachd mar Ùrachadh luath air ìre Hypercube и Paradigm Sharding neo-chrìochnach, ach barrachd air sin nas fhaide air adhart. Agus, gu dearbh, dearbhadh-de-stake agus cùmhnantan snasail.
  • Lìonra TON P2P. Lìonra co-aoisean air a bheil an siostam air a thogail. Thèid a bruidhinn an toiseach sa phàirt seo den sgeulachd.
  • Stòradh TON. Stòradh faidhle, a bhios, ge bith dè an blockchain, a thèid a thogail air an lìonra co-aoisean gu h-àrd. Faodar coimeas a dhèanamh ri torrents.
  • TON Proxy. Is e seirbheis a tha seo a tha ag amas air dìomhaireachd chom-pàirtichean lìonra a mheudachadh. Faodar pacaid sam bith a chuir chan ann gu dìreach, ach tro thunailean eadar-mheadhanach le crioptachadh a bharrachd - leithid I2P no TOR.
  • TON DHT. Clàr hash air a chuairteachadh airson luachan neo-riaghailteach a stòradh. Tha e cuideachd air a thogail air mullach Lìonra TON (ach aig an aon àm tha e air a chleachdadh leis) agus a 'cuideachadh Stòradh TON lorg nodan “sgaoileadh”, agus TON Proxy - luchd-aithris eadar-mheadhanach. Ach bu chòir a thoirt fa-near, eu-coltach ris an blockchain, nach eil an clàr hash seo na stòradh tèarainte - chan urrainn dhut fiosrachadh cudromach a stòradh ann.
  • Seirbheisean TON. Àrd-ùrlar airson seirbheisean àbhaisteach. Gu dearbh, is e eadar-lìn ùr a tha seo a bharrachd air a h-uile dad a chaidh a mhìneachadh gu h-àrd. Malairt dàta - via Lìonra TON/TON Proxy, agus tha an loidsig ann an cùmhnantan snasail an TON Blockchain. Agus eadar-aghaidh le URLan gu math eòlach.
  • TON DNS. Leis gu bheil sinn a 'bruidhinn mu dheidhinn URLan eòlach, feumaidh sinn cuideachd tionndadh bhuapa gu seòlaidhean 256-bit - cunntasan, cùmhnantan, seirbheisean agus nodan.
  • Pàighidhean TON. Agus seo far a bheil cùis an airgid a’ tighinn a-steach. Agus chan ann a-mhàin a bhios gram - mar le ether, bidh “tokens” sam bith comasach; Bidh graman dìreach mar an airgead “bunaiteach” an seo.

Is e seo a ’chiad phàirt a tha a’ toirt cunntas air an ìre “stèidhichte” de TON - am pàirt lìonra aige, air a thogail a bharrachd air protocolaidhean traidiseanta. Anns an ath phàirt bidh sinn a 'bruidhinn mu dheidhinn "bog" - blockchain, a gheibh taic bhon t-siostam a tha air a mhìneachadh gu h-ìosal. Mar sin, tha an òrdugh ath-aithris agam rudeigin eadar-dhealaichte bhon fheadhainn a chaidh a chleachdadh anns an sgrìobhainn gu h-àrd (a thòisicheas sa bhad aig an ìre eas-chruthach).

Bun-bheachdan bunaiteach

TL (Seòrsa Cànain). Is e cruth binary eas-chruthach a th’ ann airson structaran dàta neo-riaghailteach. Tha e air a chleachdadh ann am protocol Telegram agus thèid a chleachdadh gu gnìomhach ann an TON. Ma tha thu airson eòlas fhaighinn air gu mionaideach - seo an tuairisgeul aige.

Hash (hash). Gnìomh a nì cruth-atharrachadh nach gabh atharrachadh air structar dàta neo-riaghailteach gu aon àireamh de dh’fhaid stèidhichte. Tron sgrìobhainnean bidh sinn a’ bruidhinn mun ghnìomh SHA-256.

Nod lìonra (nód). Is e nód am bathar-bog a nì cinnteach gu bheil an siostam ag obair. Gu sònraichte, thathas a’ gabhail ris gum bi nód TON anns gach tagradh teachdaiche Telegram. Aig ìre ìosal, tha seòlaidhean IPv4/IPv6 aig nodan agus bidh iad a’ conaltradh a’ cleachdadh protocol UDP; aig ìre nas àirde, tha seòlaidhean eas-chruthach agus cuir an gnìomh protocol ADNL (mu sheòlaidhean eas-chruthach agus ADNL - faic gu h-ìosal). Nuair a thig e gu bheil cuid de phàirtean den t-siostam a 'dèanamh rudeigin no a' stòradh beagan dàta, thathas a 'tuigsinn gu bheil seo air a dhèanamh le nodan lìonra.

Seòladh abstract (no gu sìmplidh seòladh, seòladh). Tha seòladh nód air a dhearbhadh leis an iuchair phoblach aige. Nas cruaidhe, is e hash 256-bit (SHA256) den structar dàta anns a bheil an iuchair phoblach (chan eil an algairim criptografach sònraichte air a shònrachadh - tha cromagan elliptic agus RSA-2048 air an toirt seachad mar eisimpleirean). Gus am bi aon nód a 'conaltradh ri fear eile, feumaidh fios a bhith aige chan ann a-mhàin air seòladh an tè sin, ach cuideachd air an structar dàta seo. Ann an teòiridh, faodaidh aon nód fiosaigeach àireamh sam bith de sheòlaidhean a chruthachadh (co-fhreagairt ri iuchraichean eadar-dhealaichte).

A bharrachd air an sin, bidh dìreach ceangal mar seo air a chleachdadh gu tric: “prototype” ann an cruth structar TL (anns a bheil cha mhòr dàta sam bith), agus hash 256-bit bhuaithe, air a chleachdadh airson seòladh.

Blockchain (blockchain). Tha Blockchain na structar dàta, eileamaidean (na blocaichean) a tha air an òrdachadh ann an “slabhraidh”, agus anns gach bloc den t-sreath às deidh sin tha hash an fhear roimhe. San dòigh seo, tha ionracas air a choileanadh - chan urrainnear atharrachaidhean a dhèanamh ach le bhith a 'cur bhlocaichean ùra ris.

seirbheis (seirbheis). Faodaidh seirbheisean taobh a-staigh TON a bhith de dhiofar seòrsa, a rèir a bheil iad a’ cleachdadh blockchain no nach eil. Mar eisimpleir, faodaidh aon (no mòran) nodan lìonraidh cuid de dh’ iarrtasan RPC a phròiseasadh a’ cleachdadh a’ phròtacal ADNL a tha air a mhìneachadh gu h-ìosal, gun a bhith a’ cruthachadh clàran sam bith anns an blockchain - leithid frithealaichean lìn traidiseanta. A’ toirt a-steach comas HTTP a chuir an gnìomh thairis air ADNL, a bharrachd air gluasad an teachdaire fhèin chun phròtacal seo. Le samhlachas le TOR no I2P, nì seo e nas seasmhaiche ri diofar bhacadh.

Aig an aon àm, tha grunn sheirbheisean a’ toirt a-steach an dà chuid eadar-obrachadh leis an blockchain agus giullachd iarrtasan taobh a-muigh. Mar eisimpleir, airson TON Storage - stòradh fhaidhlichean - chan eil e gu math reusanta na faidhlichean a stòradh iad fhèin air an blockchain. Cha bhith ann ach hashes faidhle (còmhla ri beagan fiosrachaidh mun deidhinn), agus bidh nodan lìonra sònraichte ag obair mar “fhrithealaichean faidhle”, deiseil airson an cur gu nodan eile tro ADNL.

Seirbheis ceò (seirbheis ceò). Tha sinn a’ bruidhinn air cuid de sheirbheisean a tha a’ ciallachadh dì-mheadhanachadh agus com-pàirteachadh fosgailte annta. Mar eisimpleir, is e seirbheis a th’ ann an TON Proxy a gheibh taic bho chom-pàirtiche sam bith a tha airson an nód aca a thoirt seachad mar eadar-mheadhanair (proxy) a’ cur air adhart pacaidean eadar nodan eile. Ma thogras e, faodaidh e cìs a chuir e air dòigh airson seo - a ’cleachdadh siostam TON Payments airson micropayments (a tha, an uair sin, cuideachd na sheirbheis ceò).

ADNL: Sreath lìonra Datagram Abstract

Aig an ìre as ìsle, thèid conaltradh eadar nodan a dhèanamh a’ cleachdadh protocol UDP (ged a tha roghainnean eile iomchaidh).

Mar a chaidh ainmeachadh gu h-àrd, gus am bi aon nód airson pasgan a chuir gu fear eile, feumaidh fios a bhith aige air aon de na h-iuchraichean poblach aige (agus mar sin an seòladh a tha e a’ mìneachadh). Bidh e a’ cuairteachadh a’ phacaid leis an iuchair seo agus a’ cur an seòladh ceann-uidhe 256-bit gu toiseach a’ phacaid - leis gum faod grunn de na seòlaidhean sin a bhith aig aon nód, leigidh seo leis faighinn a-mach dè an iuchair a chleachdas tu airson dì-chrioptachadh.

TON: Lìonra Fosgailte Telegram. Pàirt 1: Ro-ràdh, còmhdach lìonra, ADNL, DHT, lìonraidhean ath-chòmhdach

A bharrachd air an sin, an àite seòladh an neach a gheibh e, is dòcha gum bi an rud ris an canar toiseach a’ phacaid dàta. aithnichear sianal. Anns a 'chùis seo, tha giullachd a' phacaid mar-thà an urra ri aontaidhean sònraichte eadar nodan - mar eisimpleir, is dòcha gum bi dàta a thèid a chuir gu seanal sònraichte airson nód eile agus feumar a chuir air adhart thuige (is e seo an t-seirbheis TON Proxy). Is dòcha gur e cùis shònraichte eile eadar-obrachadh dìreach eadar nodan, ach le crioptachadh a’ cleachdadh prìomh phaidhir fa leth airson an t-seanail seo (air a ghineadh ro-làimh a’ cleachdadh protocol Diffie-Hellman).

Mu dheireadh, is e cùis shònraichte an sianal “null” - mura h-eil fios fhathast aig nód air iuchraichean poblach a “nàbaidhean,” faodaidh e pacaidean a chuir thuca gun chrioptachadh idir. Chan eil seo ach airson tòiseachadh - aon uair ‘s gu bheil na nodan a’ cur fiosrachadh mu na h-iuchraichean aca, bu chòir an cleachdadh airson tuilleadh conaltraidh.

Canar ADNL ris a’ phròtacal a tha air a mhìneachadh gu h-àrd (256 pìosan de dh’ aithnichear seanail + susbaint pacaid). Tha na sgrìobhainnean a ’toirt iomradh air comasachd analog de TCP a chuir an gnìomh a bharrachd air an tuilleadan aige fhèin - RLDP (Pròtacal Datagram Mòr earbsach), ach chan eil e a’ dol a-steach gu mion-fhiosrachadh mun bhuileachadh.

TON DHT: Clàr Hash air a chuairteachadh

Mar a tha fìor le siostaman sgaoilte eile, tha TON a’ toirt a-steach buileachadh DHT - clàr hash air a sgaoileadh. Nas mionaidiche, tha an clàr coltach ri Kademlia. Mura h-eil thu eòlach air an seòrsa seo de bhòrd hash, na gabh dragh, gu h-ìosal bheir mi cunntas garbh air mar a tha iad ag obair.

TON: Lìonra Fosgailte Telegram. Pàirt 1: Ro-ràdh, còmhdach lìonra, ADNL, DHT, lìonraidhean ath-chòmhdach

Ann an seagh eas-chruthach, tha DHT a’ mapadh iuchraichean 256-bit gu luachan binary de dh’fhaid neo-riaghailteach. Anns a 'chùis seo, tha na h-iuchraichean sa chlàr mar hashes bho structar TL sònraichte (tha na structaran fhèin cuideachd air an stòradh còmhla ris an DHT). Tha seo glè choltach ri bhith a’ cruthachadh seòlaidhean nód - agus gu dearbh faodaidh iad a bhith an làthair anns an DHT (mar eisimpleir, le bhith a’ cleachdadh a leithid de dh’ iuchair seòladh IP nód a tha co-chosmhail ri comharra sònraichte). seòladh eas-chruthach, mura cuir e am falach e). Ach anns a 'chùis choitcheann, tha "prototypes of keys" (an cuid tuairisgeulan, prìomh tuairisgeulan) na mheata-dàta a tha a’ comharrachadh “sealbhadair” inntrig ann an clàr hash (is e sin, iuchair phoblach cuid de nód), an seòrsa luach a tha air a stòradh, agus na riaghailtean leis an urrainnear an inntrig seo atharrachadh às deidh sin. Mar eisimpleir, faodaidh riaghailt leigeil le sealbhadair a-mhàin an luach atharrachadh, no casg a chuir air an luach atharrachadh sìos (gus dìon an aghaidh ionnsaighean ath-chluich).

A bharrachd air iuchraichean 256-bit, tha bun-bheachd seòlaidhean DHT air a thoirt a-steach. Is e an eadar-dhealachadh le seòlaidhean aoigheachd cunbhalach gu bheil an seòladh DHT gu riatanach ceangailte ri seòladh IP. Mura h-eil nód a’ falach an IP aige, faodaidh e seòladh cunbhalach a chleachdadh airson DHT. Ach nas trice, thèid seòladh “leth-mhaireannach” air leth a chruthachadh airson feumalachdan DHT.
TON: Lìonra Fosgailte Telegram. Pàirt 1: Ro-ràdh, còmhdach lìonra, ADNL, DHT, lìonraidhean ath-chòmhdach
Tha bun-bheachd astar air a thoirt a-steach os cionn nan iuchraichean agus seòlaidhean DHT - ann an seo tha a h-uile dad aig an aon àm ris na clàran caidelia - tha an astar eadar na h-iuchraichean co-ionann ris an XOR (beagan a-mhàin OR) dhiubh. Mar ann an clàran Kademlia, feumar an luach a tha co-chosmhail ri iuchair shònraichte a stòradh s nodan aig a bheil an t-astar as giorra chun na h-iuchrach seo (s Seo àireamh an ìre mhath beag).

Gus am bi nód DHT a’ conaltradh le nodan eile den leithid, bidh e a’ cumail cuimhne Clàr slighe DHT - Seòlaidhean DHT agus IP nodan leis an robh e ag eadar-obrachadh roimhe, air an cruinneachadh a rèir astar dhaibh. Tha 256 buidhnean mar seo (tha iad a 'freagairt ris a' phìos as cudromaiche a chaidh a shuidheachadh anns an luach astar - is e sin, bidh nodan aig astar bho 0 gu 255 a 'tuiteam ann an aon bhuidheann, bho 256 gu 65535 - a-steach don ath, msaa). Taobh a-staigh gach buidheann, tha àireamh chuingealaichte de nodan “as fheàrr” air an stòradh (a thaobh ping dhaibh).

TON: Lìonra Fosgailte Telegram. Pàirt 1: Ro-ràdh, còmhdach lìonra, ADNL, DHT, lìonraidhean ath-chòmhdach

Feumaidh gach nód taic a thoirt do ghrunn obrachaidhean: a’ stòradh luach airson iuchair, lorg nod и lorg luachan. Tha rannsachadh airson nodan a’ ciallachadh a bhith a’ toirt a-mach, stèidhichte air iuchair shònraichte, na nodan as fhaisge air bhon chlàr seòlaidh; tha coimhead suas luachan mar an ceudna, ach a-mhàin nuair a tha fios aig an nód air luach na h-iuchrach (an uairsin bidh e dìreach ga thilleadh). Mar sin, ma tha nód ag iarraidh luach a lorg le iuchair anns an DHT, bidh e a’ cur iarrtasan gu àireamh bheag de nodan as fhaisge air an iuchair seo bhon chlàr slighe aige. Mura h-eil an luach riatanach am measg nam freagairtean aca, ach gu bheil seòlaidhean nod eile ann, thèid an t-iarrtas a-rithist dhaibh.

Faodar TON DHT a chleachdadh airson diofar adhbharan, mar eisimpleir, gus stòradh faidhle coltach ri torrent a chuir an gnìomh (faic. Stòradh TON); gus seòlaidhean nodan a dhearbhadh a bhios a’ cur an gnìomh cuid de sheirbheisean; gus fiosrachadh a stòradh mu shealbhadairean chunntasan anns an blockchain. Ach is e an tagradh as cudromaiche lorg nodan leis na seòlaidhean eas-chruthach aca. Gus seo a dhèanamh, tha an seòladh air a chleachdadh mar iuchair a dh'fheumas a luach a lorg. Mar thoradh air an iarrtas, lorgar an nód fhèin (mas e an seòladh DHT leth-mhaireannach an seòladh a chaidh a sgrùdadh), no is e an luach an seòladh IP agus am port airson ceangal - no seòladh eile a bu chòir a chleachdadh mar sheòladh tunail eadar-mheadhanach.

Lìonraidhean ath-chòmhdach ann an TON

Tha am pròtacal ADNL a tha air a mhìneachadh gu h-àrd a’ ciallachadh gu bheil comas aig nodan sam bith fiosrachadh a iomlaid ri chèile - ged nach eil sin riatanach anns na dòighean as fheàrr. Faodaidh sinn a ràdh, le taing do ADNL, gu bheil a h-uile nodan a’ cruthachadh graf TON cruinne (ceangailte gu dòigheil). Ach tha e comasach cuideachd lìonraidhean ath-chòmhdach a chruthachadh - fo-sgrìobhaidhean taobh a-staigh a’ ghraf seo.
TON: Lìonra Fosgailte Telegram. Pàirt 1: Ro-ràdh, còmhdach lìonra, ADNL, DHT, lìonraidhean ath-chòmhdach

Taobh a-staigh lìonra mar sin, chan eil eadar-obrachadh air a dhèanamh ach gu dìreach - tro cheanglaichean ro-chruthaichte eadar nodan a tha a’ gabhail pàirt san lìonra (tro shianalan ADNL a tha air am mìneachadh gu h-àrd). Is e pròiseas fèin-ghluasadach a th ’ann a bhith a’ cruthachadh cheanglaichean leithid seo eadar nàbaidhean, a bhith a ’lorg nàbaidhean iad fhèin, a tha a’ feuchainn ri ceangal an lìonra ath-chòmhdach a chumail suas agus lughdachadh dàil ann an iomlaid dàta ann.

A bharrachd air an sin, tha dòigh ann ùrachaidhean craolaidh mòra a sgaoileadh gu sgiobalta taobh a-staigh an lìonra - tha iad air am briseadh ann am pìosan, le còd ceartachaidh mearachd, agus thèid na pìosan sin uile a chuir bho aon chom-pàirtiche gu fear eile. Mar sin, chan fheum an com-pàirtiche na pàirtean gu lèir fhaighinn mus cuir iad nas fhaide air adhart air an lìonra.

Faodaidh lìonraidhean ath-chòmhdach a bhith poblach no prìobhaideach. Chan eil e duilich a bhith nad bhall de lìonra poblach - feumaidh tu structar TL a lorg a bheir cunntas air (faodaidh e a bhith poblach no ruigsinneach le iuchair sònraichte ann an DHT). Ann an cùis lìonra prìobhaideach, feumaidh an structar seo a bhith eòlach air an nód ro-làimh.

Airson a leantainn

Cho-dhùin mi an lèirmheas TON a roinn ann an grunn artaigilean. Seo far a bheil am pàirt seo a 'crìochnachadh, agus anns an ath Bidh mi a’ gluasad air adhart gus beachdachadh air structar an blockchain (nas mionaidiche, blockchains) a bhios ann an TON.

Source: www.habr.com

Cuir beachd ann