Kuidas luua skalaarne detsentraliseeritud rakendus? Kasutage vÀhem plokiahelat

Ei, det sentraliserte applikasjonen (dapp) pĂ„ blockchain vil ikke fĂžre til en vellykket virksomhet. Faktisk tenker ikke de fleste brukere engang pĂ„ om applikasjonen fungerer pĂ„ blockchain — de velger bare et produkt som er billigere, raskere og enklere.

Dessverre, selv om blockchain har sine unike egenskaper og fordeler, er de fleste applikasjoner som kjÞrer pÄ den mye dyrere, tregere og mindre forstÄelige enn deres sentraliserte konkurrenter.

Kuidas luua skalaarne detsentraliseeritud rakendus? Kasutage vÀhem plokiahelat

Ganske ofte i whitepaperne til applikasjoner bygget pÄ blockchain kan man finne et avsnitt som sier: "blockchain er dyrt og ikke i stand til Ä hÄndtere det nÞdvendige antallet transaksjoner per sekund. Heldigvis jobber mange smarte mennesker med Ä skalere blockchain, og ved lansering av applikasjonen vÄr vil den bli tilstrekkelig skalerbar."

I et enkelt avsnitt kan utvikleren av dapp'en unngÄ en dypere diskusjon om skalerbarhetsproblemene og alternative lÞsninger pÄ problemene. Dette fÞrer ofte til en ineffektiv arkitektur, der backend og kjernen i applikasjonen er smarte kontrakter som kjÞrer pÄ blockchain.

Det finnes imidlertid fortsatt uprĂžvde tilnĂŠrminger i arkitekturen for desentraliserte applikasjoner som muliggjĂžr mye bedre skalerbarhet ved Ă„ redusere avhengigheten av blockchain. For eksempel arbeider Blockstack med en arkitektur der de fleste dataene og logikken i applikasjonen lagres utenfor blockchain.

La oss fÞrst se pÄ en mer tradisjonell tilnÊrming, der blockchain brukes som en direkte mellommann mellom brukerne av applikasjonen, og som ikke skalerer spesielt godt.

TilnĂŠrming #1: Blockchain som backend

For Ă„ gjĂžre det mer illustrerende, la oss bruke hotellbransjen som et eksempel. Dette er en enorm industri der mellomledd som Booking.com, tar hĂžye avgifter for Ă„ koble gjester og hoteller.

I enhver situasjon der vi Þnsker Ä overvinne et slikt mellomledd ved Ä bruke denne tilnÊrmingen, vil vi prÞve Ä gjenskape forretningslogikken deres ved Ä bruke smarte kontrakter pÄ en blockchain som for eksempel Ethereum.

Avalikeskkoodiga nutilepingud, mis töötavad "ĂŒlemaailmses arvutis", saavad ĂŒhendada mĂŒĂŒjad tarbijatega ilma vahelise kolmandat osapoolt ning lĂ”puks vĂ€hendavad tasusid ja komisjonitasu, mida vahendaja rakendab.

Kuidas on nÀidatud alloleval pildil, kasutavad hotellid detsentraliseeritud rakendust, et salvestada plokiahelas teavet tubade, nende saadavuse ja hindade kohta nÀdalapÀevadel vÔi nÀdalavahetustel, ning vÔib-olla isegi tubade kirjeldust koos kogu muu sobiva teabega.

Kuidas luua skalaarne detsentraliseeritud rakendus? Kasutage vÀhem plokiahelat

IgaĂŒks, kes soovib tuba broneerida, kasutab seda rakendust hotellide ja tubade otsimiseks, mis on plokiahelas registreeritud. Kui kasutaja valib toa, toimub broneering, saates hotelli vajalik summa tokenitena tagatisena. Vastuseks vĂ€rskendab nutileping plokiahelas teavet, et tuba ei ole enam saadaval.

Selles lÀhenemisviisis on kaks probleemiga seotud mastaapsuse aspekti. Esiteks on maksimaalne tehingute arv sekundis. Teiseks on andmemaht, mida saab plokiahelas salvestada.

Tehkem umbkaudsed arvutused. Booking.com teatab, et neil on registreeritud peaaegu 2 miljonit hotelli. Oletame, et keskmiselt on igal hotellil 10 tuba ja igaĂŒht broneeritakse vaid 20 korda aastas - see annab meile keskmiselt 13 broneeringut sekundis.

Seda arvu hinnates tasub mainida, et Ethereum suudab töödelda umbes 15 tehingut sekundis.

Samuti on oluline arvestada, et meie rakenduses on samuti tehingud hotellide poolt - nende tubade teabe laadimiseks ja pidevaks vÀrskendamiseks. Hotellid uuendavad tubade hindu vÀga sageli, mÔnikord isegi igapÀevaselt, ja iga hinnamuutus vÔi kirjelduse muutmine nÔuab plokiahelas tehingut.

Siin on ka suuruse probleem - Ethereum plokiahela kaal on hiljuti ĂŒletanud 2TB. Kui sellised rakendused muutuksid tĂ”eliselt populaarseks, siis muutuks Ethereum'i vĂ”rk ÀÀrmiselt ebastabiilseks.

Selline plokiahelal pĂ”hinev sĂŒsteem suudab vĂ€listada kolmandad osalised oma erapooletuse ja kesksete elementide puudumise tĂ”ttu - plokiahela tehnoloogia peamised eelised. Kuid plokiahelal on ka teisi omadusi - see on jaotatud ja mitte ĂŒmberkirjutatav, need on suurepĂ€rased omadused, kuid nende eest tuleb maksta tehingute kiirus ja komisjonitasud.

SeetÔttu peavad dappide arendajad hoolikalt hindama, kas iga funktsioon, mis kasutab plokiahelat, vajab tÔeliselt hajutatust ja muutumatust.

NĂ€iteks: mis on eelised, kui iga hotelli andmeid jagatakse sadade masinate vahel ĂŒle kogu maailma ja hoitakse seal pidevalt? Kas on tĂ”eliselt oluline, et ajaloolised andmed hindade ja numbrite saadavuse kohta oleksid alati plokiahelas? TĂ”enĂ€oliselt mitte.

Kui hakkame selliseid kĂŒsimusi esitama, hakkame nĂ€gema, et me ei vaja kĂ”iki kalleid plokiahela omadusi kĂ”igi meie funktsioonide jaoks. Nii milline on alternatiiv?

LĂ€htekoht #2: Blockstacki inspireeritud arhitektuur

Kuigi peamine rĂ”hk Blockstackil on rakendustel, kus kasutajad on oma andmete omanikud (nĂ€iteks sellised nagu Airtext, BentenSound, ImageOptimizer vĂ”i Graphite), on Blockstackil ka filosoofia plokiahela vĂ€hese kasutamise kohta — ainult siis, kui see on absoluutselt vajalik. Nende peamine argument on, et plokiahel on aeglane ja kallis, seega tuleks seda kasutada ainult ĂŒksikute vĂ”i harvade tehingute jaoks. KĂ”ik muu rakendusega suhtlemine peaks toimuma peer-to-peer, st hajutatud rakenduste kasutajad peaksid andmeid vahetama otse ĂŒksteisega, mitte plokiahela kaudu. LĂ”ppude lĂ”puks olid kĂ”ige vanemad ja edukamad hajutatud rakendused, nagu BitTorrent, e-post ja Tor, loodud juba enne plokiahela kontseptsiooni tekkimist.

Kuidas luua skalaarne detsentraliseeritud rakendus? Kasutage vÀhem plokiahelat
Vasakul: esimene lĂ€henemine, kus kasutajad suhtlevad plokiahela kaudu. Paremal: kasutajad suhtlevad otse ĂŒksteisega, plokiahel kasutatakse ainult identifitseerimiseks ja sarnaseks..

Naaseme hotelli broneerimise nĂ€ite juurde. Soovime objektiivset, sĂ”ltumatut ja avatud protokolli, et siduda kĂŒlalisi hotellidega. TeisisĂ”nu, soovime eemaldada tsentraliseeritud vahendaja. Meil ei ole vaja nĂ€iteks pidevalt hoida numbrite hindu ĂŒldises hajutatud registris.

Miks me lihtsalt ei luba kĂŒlalistel ja hotellidel omavahel otse suhelda, mitte lĂ€bi plokiahela? Hotellid saavad salvestada oma hinnad, tubade saadavuse ja muu teabe, kus iganes see on kĂ”igile kergesti kĂ€ttesaadav — nĂ€iteks IPFS, Amazon S3 vĂ”i isegi nende enda kohaliku serveri kaudu. Just selle pakub Blockstacki nime all tuntud detsentraliseeritud salvestussĂŒsteem Gaia. See vĂ”imaldab kasutajatel valida, kus nad soovivad oma andmeid hoida, ja kontrollida, kellel on ligipÀÀs nendele andmetele lĂ€henemise kaudu, mida nimetatakse mitmekasutuseks mĂ”eldud salvestuseks.

Usalduse loomiseks allkirjastab hotell kogu teabe krĂŒptograafiliselt. ÜkskĂ”ik, kus need andmed on salvestatud, on nende terviklikkust vĂ”imalik kontrollida, kasutades avalikke vĂ”tmeid, mis on seotud selle hotelli tuvastamisinformatsiooniga, mis on salvestatud plokiahelas.

Blockstacki puhul salvestatakse plokiahelas ainult teie tuvastamisinformatsioon. Teave, kuidas iga kasutaja andmetele ligi pÀÀseda, salvestatakse tsoonifailidesse ja jagatakse peer-to-peer vĂ”rgu kaudu sĂ”lmede abil. Ja veel kord — te ei pea usaldama sĂ”lmede edastatavaid andmeid, kuna vĂ”ite kontrollida nende autentsust, vĂ”rreldes neid plokiahelas ja teistel kasutajatel hoitavate hash'idega.

Lihtsustatud versioonis kasutavad kĂŒlalised Blockstacki peer-to-peer vĂ”rku hotellide leidmiseks ja nende tubade kohta teabe saamiseks. Ja kĂ”igi saadud andmete autentsust ja terviklikkust on vĂ”imalik kontrollida, kasutades avalikke vĂ”ti ja hashesid, mis on salvestatud virtuaalsesse ahelasse Blockstack.

See arhitektuur on keerulisem kui esialgne lĂ€henemine ja nĂ”uab keerukamat infrastruktuuri. Tegelikult on see just see, kus Blockstack astub mĂ€ngu, pakkudes kĂ”iki vajalikke komponente sellise detsentraliseeritud sĂŒsteemi loomiseks.

Kuidas luua skalaarne detsentraliseeritud rakendus? Kasutage vÀhem plokiahelat

Sellise arhitektuuri korral salvestame plokiahelas ainult andmed, mis peavad tĂ”eliselt olema jagatud ja mitte ĂŒlekirjutatavad. Blockstacki puhul vajate plokiahelas tehinguid ainult selleks, et registreeruda ja nĂ€idata, kus teie andmed peaksid olema salvestatud. Teil vĂ”ib vaja minna rohkem tehinguid, kui soovite muuta midagi sellest teabest, kuid see ei ole korduv sĂŒndmus.

Lisaks sellele töötab rakenduse loogika, erinevalt esimesest lĂ€henemisest, kliendi poolel, mitte nutilepingutes. See vĂ”imaldab arendajal seda loogikat muuta ilma kulukate vĂ”i mĂ”nikord isegi vĂ”imatute nutilepingute uuendusteta. Hoides andmeid ja rakenduse loogikat vĂ€ljaspool plokiahelat, saavad detsentraliseeritud rakendused saavutada tootlikkuse ja skaalautuvuse taset, mis vastab traditsioonilistele kesksetele sĂŒsteemidele.

KokkuvÔte

Blockstackil töötavad rakendused saavad skaleeruda palju paremini kui tavalised plokiahela rakendused, kuid see on noorem lĂ€henemine, millel on oma probleemid ja vastamata kĂŒsimused.

NÀiteks, kui detsentraliseeritud rakendus ei tööta nutilepingute peal, vÀhendab see utiliit-tokenite vajadust. See vÔib ettevÔtetele probleeme tekitada, kui arvestada, et ICO-d olid peamine rahastamisallikas detsentraliseeritud rakenduste jaoks (sealhulgas Blockstack ise).

Siin on ka tehnilised probleemid. NÀiteks on suhteliselt lihtne rakendada hotellide broneerimise funktsiooni nutilepingus, kus atomaarse tehingu kÀigus toimub ruumide broneerimine tokenite vahetamise eest. Ja ei ole vÀga ilmne, kuidas broneerimine töötab Blockstacki rakenduses ilma nutilepinguteta.

Rakendused, mis sihivad globaalseid turge, millel on potentsiaal miljoneid kasutajaid, peavad olema vĂ€ga hĂ€sti skaleeritavad, et olla edukad. Ekslik on loota ainult plokiahelatele, et saavutada sellist skaleeritavust lĂ€hiajal. Suuremate kesksete turu mĂ€ngijatega, nagu Booking.com, konkurentsis pĂŒsimiseks peavad detsentraliseeritud rakenduste arendajad kaaluma alternatiivseid lĂ€henemisviise oma rakenduste projekteerimisele, nĂ€iteks Blockstacki pakutavat.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster