🇸🇰 Cardano: robustné, odolné a flexibilné

Cardano: robustné, odolné a flexibilné

Vďaka modulárnemu prístupu založenému na parametroch bolo Cardano navrhnuté s ohľadom na skutočnú škálovateľnosť

Cardano je navrhnuté tak, aby mohlo slúžiť miliónom používateľov globálne distribuovaným spôsobom. Rovnako ako pri každom inom decentralizovanom blockchaine to znamená, že musíme vytvárať predvídateľný a konzistentný prísun nových blokov, ktoré kolektívne zväčšujú reťazec a transparentne zaznamenávajú transakcie medzi používateľmi. Aby sa zabezpečilo efektívne a bezpečné šírenie nových blokov v celej sieti, je dôležité, aby systém efektívne využíval výpočtové, pamäťové, úložné a sieťové zdroje.

Flexibilita je kľúčová, takže dôležitou vlastnosťou protokolu Cardano je, že bol navrhnutý s ohľadom na skutočnú škálovateľnosť. Nejde len o dlhodobejšiu schopnosť poskytnúť infraštruktúru do skutočne globálneho, plne decentralizovaného operačného systému; jeho prístup k parametrizácii je tiež navrhnutý tak, aby sa flexibilne prispôsoboval napríklad cenovým výkyvom, nasýteniu siete alebo zvýšenému dopytu. K dispozícii je množstvo parametrov protokolu, ktoré umožňujú vyladiť správanie systému bez potreby hard fork . Aj v takom prípade sa dajú výraznejšie aktualizácie, ktoré si to vyžadujú, šikovne zvládnuť pomocou našej technológie hard fork combinator (HFC). Spolu sú to významné odlišnosti pre Cardano, ktoré nám dnes poskytujú robustnosť a spoľahlivosť a veľmi agilné cesty aktualizácie, keď sieť rastie a jej používanie sa vyvíja.

Plán Cardano bol tiež koncipovaný v sérii etáp, ktoré nás krok za krokom privedú k nášmu konečnému cieľu. Byron sa týkal základných transakčných schopností v rámci federatívnej siete. To nám dalo možnosť začať budovať komunitu a partnerstvá a zároveň pracovať na ďalšej etape. Reštart Byronu nám poskytol pevné základy na budovanie ďalších schopností, zatiaľ čo Shelley zaviedol stake pooly, ďalej rozšíril komunitu a zaviedol 100 % decentralizovanú produkciu blokov.

Tento rok sme predstavili niekoľko nových, veľmi očakávaných funkcií. Od začiatku roka 2021, s érou Mary, Cardano podporuje vytváranie multi-assets a non-fungible tokenov (NFT) v účtovnej knihe. Vďaka nízkym poplatkom a bez potreby inteligentných kontraktov sme v tejto vzrušujúcej oblasti zaznamenali explóziu aktivity. Septembrová aktualizácia Alonzo priniesla podporu inteligentných zmlúv Plutus, ktoré umožňujú vývoj širokej škály decentralizovaných aplikácií (DApps). V oblasti inteligentných zmlúv je ešte relatívne skoro, ale s desiatkami projektov pracujúcich na DApps a viacerými, ktoré sa blížia k fáze nasadenia, sa situácia čoskoro začne zrýchľovať. Tieto nové možnosti ovplyvňujú spôsob, akým účtovná kniha spracováva nové skripty a transakcie, a kladú nové nároky na dostupné zdroje. S rastúcou aktivitou nám naša architektúra umožní pružnosť a prispôsobenie sa podľa potreby.

Kapacita siete

Siete sú základom všetkých operácií Cardano. Sieť Cardano rozdeľuje transakcie a bloky medzi globálne distribuované uzly, ktoré vytvárajú a overujú blockchain. Toto sa nazýva rozširovanie údajov a je nevyhnutné na poskytovanie potrebných informácií uzlom, aby mohol algoritmus konsenzu prijímať rozhodnutia. Tieto rozhodnutia poháňajú reťazec vpred, pretože konsenzus medzi uzlami zabezpečuje, že všetky transakcie sú overené, validované, a teda môžu byť transparentne zahrnuté do nového bloku.

Cardano je založené na decentralizovanom konsenzuálnom protokole Ouroboros Praos. Cardano plynule prešlo na Praos z predchádzajúceho federatívneho protokolu Ouroboros Classic prostredníctvom série zmien parametra protokolu d . Protokol Ouroboros Praos zavádza zvýšené bezpečnostné záruky a bol dodaný s recenzovanými výskumnými prácami prezentovanými na špičkových konferenciách a časopisoch o kybernetickej bezpečnosti a kryptografii.

Sieťový výkon ovplyvňuje rýchlosť fungovania systému ako celku. Zahŕňa také opatrenia, ako napr:

  • priepustnosť (objem prenesených údajov)
    časovosť (čas prijatia bloku)

Tieto dve požiadavky sú vo vzájomnom napätí. Priepustnosť môžeme maximalizovať vtedy, keď sú generované bloky využívané čo najefektívnejšie. To zase predpokladá dostatočnú vyrovnávaciu pamäť na skrytie oneskorenia , čo zmierňuje dôsledky globálne distribuovaného systému.

Viac vyrovnávacej pamäte môže často znamenať lepšie využitie blokov (a siete), ale je to za cenu zvýšeného oneskorenia (času na prijatie v reťazci), keď je systém silne nasýtený.

Blokový rozpočet

Aby sme pochopili, ako rýchlo sa dajú vykonávať transakcie a skripty v systéme Cardano, mali by sme najprv definovať pojem block budget . Celková veľkosť bloku je v súčasnosti obmedzená na maximálne 64 KB, čo predstavuje rovnováhu medzi zabezpečením dobrého využitia siete a minimalizáciou oneskorenia transakcií. Jeden blok môže obsahovať zmes transakcií vrátane transakcií so skriptami Plutus (inteligentné kontrakty), natívnymi tokenmi, metadátami a jednoduchými transakciami ada (platby). Podobne je jedna transakcia v súčasnosti obmedzená na maximálne 16 kB. To zabezpečuje, že jeden blok bude vždy obsahovať viacero transakcií (minimálne 4, ale spravidla oveľa viac), čím sa zlepší celková priepustnosť transakcií.

Časový rozpočet bloku je ďalšia vlastnosť, ktorá predstavuje pevne stanovený čas, ktorý je k dispozícii na spracovanie všetkých transakcií obsiahnutých v jednom bloku. Tento čas je rozdelený medzi čas, ktorý možno použiť na vykonanie skriptu Plutus, a čas, ktorý je k dispozícii na vykonanie iných transakcií. Táto vlastnosť zabezpečuje, že transakcie so skriptami Plutus nemôžu monopolizovať dostupný časový rozpočet a systém bude môcť vždy spracovať jednoduché platby v tom istom bloku, ktorý obsahuje skripty Plutus. Celkový časový rozpočet na vytvorenie každého bloku (vrátane sieťových nákladov) je nastavený na 1 sekundu, pričom na vykonávanie skriptov Plutus je k dispozícii rozpočet približne 50 milisekúnd. V praxi je to veľkorysý príspevok - naše porovnávacie testy ukázali, že mnohé skutočné skripty sa na referenčnom systéme vykonajú za 1 milisekundu alebo menej.

Časový rozpočet bloku je v súčasnosti nastavený na 1 sekundu. Z bezpečnostných dôvodov konsenzuálny protokol Praos vyberá len malú časť (jeden z 20) blokov, ktoré by mohli byť potenciálne pridané do reťazca. Pri súčasných parametroch protokolu je potom maximálna priepustnosť transakcií (pre jednoduché transakcie) približne 11 transakcií za sekundu (TPS). Je zrejmé, že rôzne transakcie sa budú líšiť veľkosťou a budú mať rôzne efektívne užitočné zaťaženie. Jediná transakcia by mohla napríklad dokončiť celé kolo hlasovania v Catalyst, čím by sa previedla hodnota v hodnote miliónov dolárov.

Ako bolo uvedené vyššie, každý blok je naplnený množstvom transakcií, ktoré odoslali koncoví používatelia z peňaženiek, rozhrania príkazového riadka (CLI) atď. Tieto transakcie sa uchovávajú v dočasnej oblasti na uchovávanie v pamäti ( pamäťový fond ), kým nie sú pripravené na spracovanie a zaradenie do bloku. Čakajúce transakcie sa z mempoolu odstránia, keď je blok vyťažený, a potom sa do mempoolu môžu pridať nové transakcie. Použitím mempoolu s pevnou veľkosťou sa vyhneme možnosti preťaženia uzlov počas období vysokého dopytu, čo však znamená, že môže byť potrebné, aby peňaženka alebo aplikácia opätovne odoslala transakcie. Veľkosť mempoolu je v súčasnosti nastavená na 128 KB: dvojnásobok aktuálnej veľkosti bloku. Táto hodnota bola zvolená na základe modelov vytvárania front.

Rozťahovanie siete

Systém Ouroboros je navrhnutý tak, aby zvládal veľký objem údajov, ako aj transakcie a skripty rôznej zložitosti a veľkosti. V súčasnosti a pri súčasných parametroch využíva sieť Cardano v priemere len približne 25 % svojej kapacity. Samozrejme, najefektívnejším scenárom je, že Cardano beží na 100 % alebo takmer na 100 % svojej kapacity (sieť je nasýtená). Zatiaľ čo mnohé sieťové riešenia by za takýchto podmienok trpeli, Ouroboros aj sieťový zásobník Cardano boli navrhnuté tak, aby boli férové a vysoko odolné aj pri veľkom nasýtení. Analýza porovnávacích testov ukazuje, že pri 200 % nasýtení je celkový výkon stále odolný a nedochádza k žiadnym výpadkom siete. Aj pri záťažovom testovaní pod 44-násobným nasýtením celková dostupná kapacita siete tiež nevykazuje žiadne zlyhania (hoci niektoré transakcie môžu byť mierne oneskorené). Sieť je navrhnutá tak, aby fungovala týmto spôsobom, pričom na riadenie celkového zaťaženia systému využíva spätný tlak. Takže hoci niektorí jednotliví používatelia, ktorí sa zúčastňujú na veľkom poklese NFT, môžu napríklad zaznamenať dlhšie čakanie na svoje transakcie alebo musia opätovne odoslať príležitostnú transakciu z veľkej dávky (alebo rozložiť poklesy na dlhšie časové obdobie), neznamená to, že sieť “zápasí”. V skutočnosti to znamená, že sieť funguje tak, ako má. Nazývame to “graceful degradation” a môžete si o tom viac prečítať v dokumente o návrhu siete.

Peňaženky

Peňaženky konajú v mene koncových používateľov, aby do blockchainu odosielali platby a iné transakcie a sledovali stav blockchainu. Jednou z kľúčových služieb, ktoré peňaženka poskytuje, je predkladanie transakcií v mene používateľa, potvrdzovanie, že boli prijaté do blockchainu, a ich opakovanie v jeho mene, ak sa predloženie nepodarilo. To znamená, že peňaženka by mala brať do úvahy účinky spätného tlaku v sieti, keď sa nasýti, ako aj iné účinky siete (dočasné odpojenie, možné rozvetvenie reťazca atď.). Peňaženky môžu byť buď:

  • Full-node peňaženky (ako Daedalus), ktoré využívajú miestne výpočtové a sieťové zdroje na prevádzku uzla, ktorý sa pripája priamo k sieti Cardano.
  • Light wallets : tie naopak využívajú zdieľané výpočtové a sieťové zdroje na obsluhu viacerých koncových používateľov.

Počas období vysokého dopytu (napr. výpredaj NFT) môžu oba typy peňaženiek potrebovať opakovať transakcie. Keďže zdieľajú zdroje medzi mnohými používateľmi, ľahké peňaženky môžu potrebovať dočasne škálovať dostupné výpočtové a sieťové zdroje (vrátane replikácie koncových bodov), aby sa zabezpečilo uspokojenie dopytu používateľov. Toto škálovanie dopytu je podobné požiadavkám, ktoré sa kladú napríklad pri vydaní populárneho nového produktu spoločnosťou. Naopak, peňaženky s plnými uzlami môžu byť v podstate nedotknuté. Transakcie sa môžu mierne oneskoriť, ale každá peňaženka bude mať vyhradené zdroje, ktoré sú potrebné na opakovanie podania, vrátane vlastných sieťových pripojení. Podobné princípy platia aj pre poskytovateľov DApp - ak sa poskytujú špecifické sieťové koncové body, systémové zdroje by mali byť škálované tak, aby vyhovovali dopytu.

Optimalizácia procesu

Prirodzene vítame inovácie (a dialóg), ktorých sme v súčasnosti svedkami v komunite NFT. Na zlepšenie používateľského zážitku je potrebné optimalizovať vývojové postupy tak, aby napríklad proces tvorby NFT fungoval dobre aj vtedy, keď spôsobuje nasýtenie systému. Mnohí tvorcovia NFT používajú napríklad dávkové razenie na zvýšenie efektivity.

Odporúčame tvorcom, aby sa pozreli na to, ako môžu pokračovať v optimalizácii vlastného úsilia s cieľom minimalizovať preťaženie siete. Taktiež by sme chceli vyzvať všetkých, aby sa zapojili do diskusií na Discorde ako súčasť našej komunity tvorcov a dali sme k dispozícii našich inžinierov, aby sme našli najlepšie zodpovedajúce riešenie pre konkrétny prípad.

Okrem flexibility, ktorú poskytujú úpravy parametrov - ktoré je možné v prípade potreby vykonať v rámci epochy - v strednodobom a dlhodobom horizonte, vstúpia do hry aj ďalšie možnosti. Systém Hydra umožňuje paralelné vykonávanie viacerých operácií, čo poskytuje zvýšenú škálovateľnosť. Jej state-channel solutions zvyšuje priepustnosť systému, čím sa tiež znižujú nároky na vykonávanie v reťazci. Hoci však Hydra pomáha pri viacerých prípadoch použitia škálovateľnosti, nerieši špecificky efektívnosť vytvárania NFT. Keďže Cardano naďalej dozrieva a rastie, budeme sa naďalej zaoberať tým, ako optimalizovať sieť a riadiť jej kapacitu. Ako som nedávno hovoril v našej októbrovej aktualizácii v polovici mesiaca, keď sieť začne fungovať s vyššou kapacitou, budeme môcť tieto parametre Cardana vyladiť podľa potreby. Napríklad znížiť časový rozpočet blokov, optimalizovať veľkosť a čas vykonávania skriptov Plutus alebo znížiť náklady na ich vykonávanie a zlepšiť priepustnosť.


(Napísal Kevin Hammond z IOHK) - preklad @Martin.M
Pôvodný článok: Cardano: robust, resilient – and flexible