Kuinka luoda hajautettu sovellus, joka skaalautuu? Käytä vähemmän lohkoketjua

Ei, hajautetun sovelluksen (dapp) käynnistäminen lohkoketjussa ei johda menestyvään liiketoimintaan. Itse asiassa useimmat käyttäjät eivät edes ajattele, toimiiko sovellus lohkoketjussa - he yksinkertaisesti valitsevat tuotteen, joka on halvempi, nopeampi ja yksinkertaisempi.

Valitettavasti, vaikka lohkoketjulla on omat ainutlaatuiset ominaisuudet ja edut, useimmat siinä toimivat sovellukset ovat paljon kalliimpia, hitaampia ja vähemmän intuitiivisia kuin keskitetyt kilpailijansa.

Kuinka luoda hajautettu sovellus, joka skaalautuu? Käytä vähemmän lohkoketjua

Usein lohkoketjulle rakennettujen sovellusten julkaisuista löytää kappaleen, jossa sanotaan: "Lohkoketju on kallis eikä pysty tukemaan vaadittua määrää tapahtumia sekunnissa. Onneksi monet älykkäät ihmiset työskentelevät lohkoketjun skaalauttamiseksi ja sovelluksemme käynnistyessä siitä tulee melko skaalautuva."

Yhdessä yksinkertaisessa kappaleessa dapp-kehittäjä voi luopua syvemmästä keskustelusta skaalautuvuusongelmista ja vaihtoehtoisista ratkaisuista ongelmiin. Tämä johtaa usein tehottomaan arkkitehtuuriin, jossa lohkoketjussa käynnissä olevat älykkäät sopimukset toimivat sovelluksen taustana ja ytimenä.

Hajautettuun sovellusarkkitehtuuriin on kuitenkin vielä testaamattomia lähestymistapoja, jotka mahdollistavat paljon paremman skaalautuvuuden vähentämällä riippuvuutta lohkoketjusta. Esimerkiksi Blockstack työskentelee arkkitehtuurissa, jossa suurin osa sovellustiedoista ja logiikasta on tallennettu ketjun ulkopuolelle.

Katsotaanpa ensin perinteisempää lähestymistapaa, joka käyttää lohkoketjua suorana välittäjänä sovellusten käyttäjien välillä ja joka ei skaalaudu erityisen hyvin.

Lähestymistapa #1: Blockchain taustajärjestelmänä

Asioiden selventämiseksi otetaan esimerkkinä hotelliala. Tämä on valtava toimiala, jolla välittäjät, kuten Booking.com, he veloittavat valtavan maksun vieraiden ja hotellien yhdistämiseen.

Kaikissa tilanteissa, joissa haluamme voittaa tällaisen välittäjän tällä lähestymistavalla, yritämme toistaa sen liiketoimintalogiikkaa käyttämällä älykkäitä sopimuksia lohkoketjussa, kuten Ethereum.

"Maailmatietokoneella" toimivat avoimen lähdekoodin älykkäät sopimukset voivat yhdistää kauppiaat kuluttajiin ilman kolmatta osapuolta, mikä lopulta alentaa välittäjän veloittamia maksuja ja palkkioita.

Kuten alla olevasta kuvasta näkyy, hotellit lähettävät lohkoketjuun hajautetun sovelluksen tietoja huoneista, niiden saatavuudesta ja hinnoista arkisin tai viikonloppuisin ja ehkä jopa huonekuvauksen ja kaiken muun asiaankuuluvan tiedon.

Kuinka luoda hajautettu sovellus, joka skaalautuu? Käytä vähemmän lohkoketjua

Jokainen, joka haluaa varata huoneen, käyttää tätä sovellusta lohkoketjussa olevien hotellien ja huoneiden etsimiseen. Kun käyttäjä on valinnut huoneen, varaus tehdään lähettämällä vaadittu määrä tokeneja hotellille talletuksena. Ja vastauksena älykäs sopimus päivittää lohkoketjun tiedot, että numero ei ole enää saatavilla.

Tässä lähestymistavassa skaalautuvuusongelmalla on kaksi puolta. Ensinnäkin tapahtumien enimmäismäärä sekunnissa. Toiseksi tietomäärä, joka voidaan tallentaa lohkoketjuun.

Tehdään karkeita laskelmia. Booking.com kertoo, että heillä on lähes 2 miljoonaa hotellia rekisteröityneenä. Oletetaan, että keskimääräisessä hotellissa on 10 huonetta ja jokainen niistä varataan vain 20 kertaa vuodessa – se antaa meille keskimäärin 13 varausta sekunnissa.

Tämän luvun arvioimiseksi on syytä huomata, että Ethereum pystyy käsittelemään noin 15 tapahtumaa sekunnissa.

Samalla on syytä harkita, että sovelluksemme sisältää myös tapahtumia hotelleista - heidän huoneidensa tietojen lataamiseen ja jatkuvaan päivittämiseen. Hotellit päivittävät huonehintoja hyvin usein, joskus jopa päivittäin, ja jokainen hinnan tai kuvauksen muutos vaatii tapahtuman lohkoketjussa.

Tässä on myös kokoongelmia - Ethereum-lohkoketjun paino ylitti äskettäin 2TB merkin. Jos tätä lähestymistapaa käyttävistä sovelluksista tulisi todella suosittuja, Ethereum-verkosta tulisi erittäin epävakaa.

Tällainen lohkoketjupohjainen järjestelmä voi sulkea pois ulkopuoliset puolueettomuutensa ja keskittämättömyytensä vuoksi, jotka ovat lohkoketjuteknologian tärkeimmät edut. Mutta lohkoketjulla on myös muita ominaisuuksia - se on hajautettu eikä kirjoitettu uudelleen, nämä ovat erinomaisia ​​ominaisuuksia, mutta sinun on maksettava niistä tapahtumien nopeudessa ja provisioissa.

Siksi dapp-kehittäjien on arvioitava huolellisesti, tarvitseeko jokainen lohkoketjua käyttävä ominaisuus todella jakelua ja ei-kirjoitettavuutta.

Esimerkiksi: mitä hyötyä on kunkin hotellin tietojen jakamisesta satoihin koneisiin ympäri maailmaa ja tallentamisesta sinne pysyvästi? Onko todella tärkeää, että historialliset tiedot huonehinnoista ja saatavuudesta sisällytetään aina lohkoketjuun? Luultavasti ei.

Jos alamme esittää tällaisia ​​kysymyksiä, alamme nähdä, että emme välttämättä tarvitse kaikkia kalliita lohkoketjuominaisuuksia kaikkiin toimintoihimme. Joten mikä on vaihtoehto?

Lähestymistapa #2: Blockstackin inspiroima arkkitehtuuri

Vaikka pääpaino Blockstack sovelluksissa, joissa käyttäjät ovat tietojensa omistajia (esim Ilmateksti, BentenSound, Image Optimizer tai grafiitti), blockstackin filosofiana on myös käyttää lohkoketjua kevyesti – vain silloin, kun se on ehdottoman välttämätöntä. Heidän pääargumenttinsa on, että lohkoketju on hidas ja kallis, ja siksi sitä tulisi käyttää vain yksittäisiin tai harvoin tapahtuviin tapahtumiin. Muun vuorovaikutuksen sovellusten kanssa tulisi tapahtua vertaisverkon kautta, ts. hajautettujen sovellusten käyttäjien on jaettava tietoja suoraan toistensa kanssa lohkoketjun kautta. Loppujen lopuksi vanhimmat ja menestyneimmät hajautetut sovellukset, kuten BitTorrent, sähköposti ja Tor, luotiin ennen itse blockchain-konseptia.

Kuinka luoda hajautettu sovellus, joka skaalautuu? Käytä vähemmän lohkoketjua
Vasemmalla: Ensimmäinen lähestymistapa, jossa käyttäjät ovat vuorovaikutuksessa lohkoketjun kautta. Oikealla: Käyttäjät ovat suoraan vuorovaikutuksessa toistensa kanssa, ja lohkoketjua käytetään vain tunnistamiseen ja vastaaviin.

Palataanpa hotellivarausesimerkkiin. Haluamme puolueettoman, riippumattoman ja avoimen protokollan vieraiden yhdistämiseksi hotelleihin. Toisin sanoen haluamme poistaa keskitetyn välittäjän. Meidän ei tarvitse esimerkiksi jatkuvasti tallentaa huonehintoja yhteiseen hajautettuun kirjanpitoon.

Miksi emme vain anna vieraiden ja hotellien olla vuorovaikutuksessa suoraan lohkoketjun kautta. Hotellit voivat tallentaa hintansa, huoneiden saatavuustiedot ja muut tiedot jonnekin, jossa ne ovat kaikkien saatavilla - esimerkiksi IPFS, Amazon S3 tai jopa oma paikallinen palvelin. Juuri tätä Blockstackin hajautettu tallennusjärjestelmä kutsui Gaia. Sen avulla käyttäjät voivat valita, mihin he haluavat tietonsa tallentaa, ja hallita, kuka voi käyttää niitä kutsutun lähestymistavan avulla monen käyttäjän tallennustila.

Luottamuksen luomiseksi hotelli itse allekirjoittaa salausteknisesti kaikki hotellitiedot. Riippumatta siitä, mihin nämä tiedot on tallennettu, sen eheys voidaan varmistaa käyttämällä kyseisen hotellin identiteettiin liittyviä julkisia avaimia, jotka on tallennettu lohkoketjuun.

Blockstackin tapauksessa vain henkilötietosi tallennetaan lohkoketjuun. Tiedot kunkin käyttäjän tietojen hankkimisesta tallennetaan vyöhyketiedostoihin ja jaetaan vertaisverkon kautta solmujen avulla. Ja jälleen kerran, sinun ei tarvitse luottaa solmujen antamiin tietoihin, koska voit varmistaa sen aitouden vertaamalla sitä lohkoketjuun ja muihin käyttäjiin tallennettuihin tiivisteisiin.

Järjestelmän yksinkertaistetussa versiossa vieraat käyttävät Blockstack-peer-to-peer-verkkoa hotellien etsimiseen ja tietojen hankkimiseen huoneistaan. Ja kaikkien vastaanottamiesi tietojen aitous ja eheys voidaan varmistaa käyttämällä tallennettuja julkisia avaimia ja hajautusarvoja virtuaalinen piiri Blockstack.

Tämä arkkitehtuuri on monimutkaisempi kuin ensimmäinen lähestymistapa ja vaatii kattavamman infrastruktuurin. Itse asiassa tämä on juuri Blockstack, joka tarjoaa kaikki tarvittavat komponentit tällaisen hajautetun järjestelmän luomiseen.

Kuinka luoda hajautettu sovellus, joka skaalautuu? Käytä vähemmän lohkoketjua

Tämän arkkitehtuurin avulla tallennamme lohkoketjuun vain tietoja, jotka todella tarvitsevat jakaa eikä ylikirjoittaa. Blockstackin tapauksessa tarvitset vain tapahtumia lohkoketjussa rekisteröityäksesi ja ilmoittaaksesi, mihin tietosi tulisi säilyttää. Saatat joutua tekemään lisää tapahtumia, jos haluat muuttaa jotakin näistä tiedoista, mutta tämä ei ole toistuva tapahtuma.

Lisäksi sovelluslogiikka, toisin kuin ensimmäinen lähestymistapa, toimii asiakaspuolella eikä älykkäissä sopimuksissa. Näin kehittäjä voi muuttaa tätä logiikkaa ilman kalliita tai joskus jopa mahdottomia älykkäitä sopimuspäivityksiä. Ja pitämällä sovellustiedot ja logiikka ketjun ulkopuolella, hajautetut sovellukset voivat saavuttaa perinteisten keskitettyjen järjestelmien suorituskyvyn ja skaalautuvuuden.

Johtopäätös

Blockstack-sovellukset voivat skaalata paljon paremmin kuin perinteiset blockchain-sovellukset, mutta se on nuorempi lähestymistapa, jolla on omat ongelmansa ja vastaamattomia kysymyksiä.

Esimerkiksi, jos hajautettu sovellus ei toimi älykkäillä sopimuksilla, tämä vähentää apuvälinetunnusten tarvetta. Tämä voi aiheuttaa ongelmia yrityksille, koska ICO:t ovat olleet hajautettujen sovellusten (mukaan lukien itse Blockstack) pääasiallinen rahoituslähde.

Tässä on myös teknisiä ongelmia. Esimerkiksi älysopimukseen on suhteellisen helppo toteuttaa hotellivaraustoiminto, jossa atomioperaatiossa huonevaraukset tehdään tokeneita vastaan. Eikä ole kovin selvää, kuinka varaus toimii Blockstack-sovelluksessa ilman älykkäitä sopimuksia.

Sovellusten, jotka on kohdistettu maailmanlaajuisille markkinoille miljoonille käyttäjille, on skaalattava erittäin hyvin menestyäkseen. On virhe luottaa pelkästään lohkoketjuihin tämän skaalautuvuuden saavuttamiseksi lähitulevaisuudessa. Voidakseen kilpailla suurten keskitettyjen markkinatoimijoiden, kuten Booking.comin, kanssa, hajautettujen sovelluskehittäjien tulisi harkita vaihtoehtoisia lähestymistapoja sovellusten suunnitteluun, kuten Blockstackin tarjoamaa lähestymistapaa.

Lähde: will.com

Lisää kommentti