Teknologjitë e aplikuara mbi rrënojat e etheve të blockchain ose përfitimet praktike të shpërndarjes së burimeve

Vitet e fundit, burimet e lajmeve janë përmbytur me mesazhe rreth një lloji të ri rrjetesh kompjuterike të shpërndara që shfaqen fjalë për fjalë nga askund, duke zgjidhur (ose më saktë, duke u përpjekur të zgjidhin) një sërë problemesh - duke e bërë një qytet të zgjuar, duke shpëtuar botën nga e drejta e autorit shkelësit ose anasjelltas, duke transferuar fshehurazi informacion ose burime, duke ikur nga -nën kontrollin e shtetit në një zonë ose në një tjetër. Pavarësisht nga fusha, të gjitha ato kanë një sërë karakteristikash të përbashkëta për faktin se karburanti për rritjen e tyre ishin algoritmet dhe teknikat që erdhën në publik gjatë bumit të fundit të kriptomonedhave dhe teknologjive të ngjashme. Ndoshta çdo artikull i tretë mbi burimet e specializuara në atë kohë kishte fjalën "blockchain" në titull - diskutimi i zgjidhjeve të reja softuerike dhe modeleve ekonomike u bë tendenca mbizotëruese për ca kohë, në sfondin e të cilit ishin fusha të tjera të aplikimit të sistemeve kompjuterike të shpërndara. u zhvendos në plan të dytë.

Në të njëjtën kohë, vizionarët dhe profesionistët panë thelbin kryesor të fenomenit: llogaritja masive e shpërndarë, e lidhur me ndërtimin e rrjeteve nga një numër i madh pjesëmarrësish të ndryshëm dhe heterogjenë, ka arritur një nivel të ri zhvillimi. Mjafton të flakësh nga koka temat e zhurmës dhe ta shikosh temën nga ana tjetër: të gjitha këto rrjete, të mbledhura nga pishina të mëdha, të cilat përbëhen nga mijëra pjesëmarrës të izoluar heterogjenë, nuk u shfaqën më vete. Të apasionuarit pas lëvizjes së kriptove ishin në gjendje të zgjidhnin problemet komplekse të sinkronizimit të të dhënave dhe shpërndarjes së burimeve dhe detyrave në një mënyrë të re, gjë që bëri të mundur bashkimin e një mase të ngjashme pajisjesh dhe krijimin e një ekosistem të ri të krijuar për të zgjidhur një problem të fokusuar ngushtë.

Sigurisht, kjo nuk kaloi nga ekipet dhe komunitetet e përfshira në zhvillimin e informatikës së shpërndarë falas dhe projektet e reja nuk vonuan të vinin.
Sidoqoftë, megjithë rritjen e konsiderueshme të vëllimit të informacionit të disponueshëm në lidhje me zhvillimet në fushën e ndërtimit të rrjeteve dhe punës me pajisje, krijuesit e sistemeve premtuese do të duhet të zgjidhin probleme serioze.

E para prej tyre, sado e çuditshme të duket, është problemi i zgjedhjes së një drejtimi.

Drejtimi mund të jetë i saktë, ose mund të çojë në një rrugë pa krye - nuk ka shpëtim nga kjo; furnizimet e centralizuara të klerikëve për komunitetin e IT janë ende vonë. Por zgjedhja duhet bërë në mënyrë që të mos bie në grackën tradicionale të ekipit që merr një fushë shumë të gjerë dhe përpiqet të krijojë një projekt tjetër informatikë të shpërndarë të përgjithshëm jo të specializuar që në fillim. Duket se qëllimi i punës nuk është aq i frikshëm, në pjesën më të madhe thjesht duhet të aplikojmë zhvillimet ekzistuese: të kombinojmë nyjet në një rrjet, të përshtatim algoritme për përcaktimin e topologjive, shkëmbimin e të dhënave dhe monitorimin e konsistencës së tyre, të prezantojmë metoda për renditjen e nyjeve dhe gjetjen konsensus, dhe, natyrisht, thjesht krijoni gjuhën tuaj të pyetjeve dhe të gjithë mjedisin gjuhësor dhe kompjuterik. Ideja e një mekanizmi universal është shumë joshëse dhe shfaqet vazhdimisht në një zonë ose në një tjetër, por rezultati përfundimtar është ende një nga tre gjërat: zgjidhja e krijuar ose rezulton të jetë një prototip i kufizuar me një mori "ToDos" të pezulluara. ” në grumbullin e mbetur, ose bëhet një përbindësh i papërdorshëm i gatshëm për të tërhequr këdo që prek “kënetën Turing” të fetusit, ose thjesht vdes i sigurt nga fakti se mjellma, karavidhe dhe piku, që po tërhiqnin projektin në një drejtim të pakuptueshëm, thjesht e mbingarkuan veten.

Le të mos përsërisim gabimet budallaqe dhe të zgjedhim një drejtim që ka një gamë të qartë detyrash dhe i përshtatet mirë modelit të llogaritjes së shpërndarë. Ju mund t'i kuptoni njerëzit që përpiqen të bëjnë gjithçka menjëherë - natyrisht, ka shumë për të zgjedhur. Dhe shumë gjëra duken jashtëzakonisht interesante si nga pikëpamja e R&D dhe zhvillimit, ashtu edhe nga pikëpamja e ekonomisë. Duke përdorur një rrjet të shpërndarë, ju mund të:

  • Trajnimi i rrjeteve nervore
  • Përpunoni rrjedhat e sinjalit
  • Llogaritni strukturën e proteinave
  • Paraqit skena XNUMXD
  • Simuloni hidrodinamikën
  • Testoni strategjitë e tregtimit për bursat

Për të mos u mërzitur me përpilimin e një liste me gjëra interesante që janë paralelizuar mirë, ne do të zgjedhim paraqitjen e shpërndarë si temën tonë të mëtejshme.

Vetë renderimi i shpërndarë nuk është, natyrisht, asgjë e re. Paketat ekzistuese të renderit kanë mbështetur prej kohësh shpërndarjen e ngarkesës nëpër makina të ndryshme; pa këtë, të jetosh në shekullin e njëzet e një do të ishte mjaft e trishtueshme. Sidoqoftë, nuk duhet të mendoni se tema është mbuluar gjerësisht dhe nuk ka asgjë për të bërë atje - ne do të shqyrtojmë një problem të veçantë urgjent: krijimin e një mjeti për krijimin e një rrjeti render.

Rrjeti ynë i renderimit është një kombinim i nyjeve që duhet të kryejnë detyra renderimi me nyje që kanë burime të lira llogaritëse për të përpunuar renderimin. Pronarët e burimeve do të lidhin stacionet e tyre me rrjetin e renderit për të marrë dhe ekzekutuar punë renderimi duke përdorur një nga motorët e renderit të mbështetur nga rrjeti. Në këtë rast, ofruesit e detyrave do të punojnë me rrjetin sikur të ishte një re, duke shpërndarë në mënyrë të pavarur burimet, duke monitoruar korrektësinë e ekzekutimit, duke menaxhuar rreziqet dhe probleme të tjera.

Kështu, ne do të konsiderojmë krijimin e një kornize që duhet të mbështesë integrimin me një grup motorësh renderues të njohur dhe të përmbajë komponentë që ofrojnë mjete për organizimin e një rrjeti nyjesh heterogjene dhe menaxhimin e rrjedhës së detyrave.

Modeli ekonomik i ekzistencës së një rrjeti të tillë nuk është i një rëndësie thelbësore, kështu që ne do të marrim si skemë fillestare një skemë të ngjashme me atë të përdorur në llogaritjet në rrjetet e kriptomonedhave - konsumatorët e burimit do të dërgojnë token tek furnitorët që kryejnë punën e renderimit. Është shumë më interesante të kuptojmë se cilat veçori duhet të ketë një kornizë, për të cilën do të shqyrtojmë skenarin kryesor të ndërveprimit midis pjesëmarrësve të rrjetit.

Ekzistojnë tre anë të ndërveprimit në rrjet: ofruesi i burimeve, ofruesi i detyrave dhe operatori i rrjetit (aka qendra e kontrollit, rrjeti, etj. në tekst).

Operatori i rrjetit i siguron ofruesit të burimeve një aplikacion klienti ose një imazh të sistemit operativ me një grup të dislokuar softuerësh, të cilin ai do ta instalojë në makinë, burimet e së cilës dëshiron të sigurojë, dhe një llogari personale të aksesueshme përmes ndërfaqes së internetit, duke e lejuar atë të vendosni parametrat e aksesit në burim dhe menaxhoni në distancë peizazhin e serverit të tij: kontrolloni parametrat e harduerit, kryeni konfigurimin në distancë, rindizni.

Kur lidhet një nyje e re, sistemi i menaxhimit të rrjetit analizon pajisjet dhe parametrat e specifikuar të aksesit, e rendit atë, duke caktuar një vlerësim të caktuar dhe e vendos atë në regjistrin e burimeve. Në të ardhmen, për të menaxhuar rrezikun, parametrat e aktivitetit të nyjës do të analizohen dhe vlerësimi i nyjës do të rregullohet për të siguruar stabilitetin e rrjetit. Askush nuk do të jetë i kënaqur nëse skena e tyre dërgohet për t'u paraqitur në karta të fuqishme që shpesh ngrijnë për shkak të mbinxehjes?

Një përdorues që duhet të renderojë një skenë mund të shkojë në dy mënyra: të ngarkojë skenën në një depo të rrjetit nëpërmjet ndërfaqes në internet, ose të përdorë një plugin për të lidhur paketën e tij të modelimit ose interpretuesin e instaluar në rrjet. Në këtë rast, midis përdoruesit dhe rrjetit inicohet një kontratë inteligjente, kusht standard për përfundimin e së cilës është gjenerimi i rezultatit të llogaritjes së skenës nga rrjeti. Përdoruesi mund të monitorojë procesin e përfundimit të një detyre dhe të menaxhojë parametrat e saj përmes ndërfaqes në internet të llogarisë së tij personale.

Detyra dërgohet në server, ku analizohet vëllimi i skenës dhe numri i burimeve të kërkuara nga iniciatori i detyrës, pas së cilës vëllimi i përgjithshëm zbërthehet në pjesë të përshtatura për llogaritjen e numrit dhe llojit të burimeve të alokuara nga rrjeti. . Ideja e përgjithshme është se vizualizimi mund të ndahet në shumë detyra të vogla. Motorët përfitojnë nga kjo duke i shpërndarë këto detyra midis ofruesve të shumtë të burimeve. Mënyra më e thjeshtë është të jepni pjesë të vogla të skenës të quajtura segmente. Kur çdo segment është gati, detyra lokale konsiderohet e përfunduar dhe burimi kalon në detyrën tjetër të pazgjidhur.

Kështu, nuk ka asnjë ndryshim si i tillë për interpretuesin nëse llogaritjet kryhen në një makinë të vetme ose në një rrjet të shumë stacioneve individuale kompjuterike. Renderimi i shpërndarë thjesht shton më shumë bërthama në grupin e burimeve të përdorura për një detyrë. Nëpërmjet rrjetit, ai merr të gjitha të dhënat e nevojshme për të dhënë një segment, e llogarit atë, e dërgon atë segment prapa dhe kalon në detyrën tjetër. Përpara se të hyjë në grupin e përgjithshëm të rrjetit, çdo segment merr një grup metainformacioni që lejon nyjet ekzekutuese të zgjedhin detyrat kompjuterike më të përshtatshme për to.

Problemet e segmentimit dhe shpërndarjes së llogaritjeve duhet të zgjidhen jo vetëm nga pikëpamja e optimizimit të kohës së ekzekutimit, por edhe nga pikëpamja e përdorimit optimal të burimeve dhe kursimit të energjisë, pasi efikasiteti ekonomik i rrjetit varet nga kjo. . Nëse zgjidhja është e pasuksesshme, do të ishte më e këshillueshme të instaloni një minator në nyje ose ta fikni atë në mënyrë që të mos bëjë zhurmë dhe të mos harxhojë energji elektrike.

Megjithatë, le të kthehemi te procesi. Kur merret një detyrë, formohet gjithashtu një kontratë inteligjente midis grupit dhe nyjës, e cila ekzekutohet kur rezultati i detyrës llogaritet saktë. Bazuar në rezultatet e përmbushjes së kontratës, nyja mund të marrë një shpërblim në një formë ose në një tjetër.

Qendra e kontrollit kontrollon procesin e ekzekutimit të detyrës, mbledhjen e rezultateve të llogaritjes, dërgimin e atyre të pasakta për ripërpunim dhe renditjen e radhës, monitorimin e afatit standard për përfundimin e detyrës (në mënyrë që të mos ndodhë që segmenti i fundit të mos merret nga çdo nyje).

Rezultatet e llogaritjeve kalojnë në fazën e përbërjes, pas së cilës përdoruesi merr rezultatet e paraqitjes dhe rrjeti mund të marrë një shpërblim.

Kështu, përbërja funksionale e një kornize peizazhi të projektuar për ndërtimin e sistemeve të shpërndarjes së shpërndarjes shfaqet:

  1. Llogaritë personale të përdoruesve me qasje në ueb
  2. Kompleti i softuerit për instalim në nyje
  3. Sipas sistemit të kontrollit:
    • Nënsistemi i kontrollit të aksesit
    • Nënsistemi i zbërthimit të detyrës për rendering
    • Nënsistemi i shpërndarjes së detyrave
    • Nënsistemi i përbërë
    • Nënsistemi i menaxhimit të peizazhit të serverit dhe topologjisë së rrjetit
    • Nënsistemi i regjistrimit dhe auditimit
    • Nënsistemi i ekspertit mësimor
    • Rest API ose ndërfaqe tjetër për zhvilluesit e jashtëm

Çfarë mendoni ju? Çfarë pyetjesh ngre tema dhe cilat përgjigje ju interesojnë?

Burimi: www.habr.com

Shto një koment