Hlavní navigace

Tomáš Eminger (Rockaway): Servery na blockchain stojí stovky tisíc, Solana pojídá disky za živa

6. 6. 2022
Doba čtení: 14 minut

Sdílet

 Autor: Rockaway
Rozhovor se šéfem blockchainové staking infrastruktury v Rockaway Blockchain Fund o tom, jaké jsou potřeba servery pro Solanu nebo RPC nody.

Tomáš EmingerRockaway Blockchain Fund (RBF) spadajícím pod Rockaway vede takzvanou staking infrastrukturu. Mimo jiné má na starost servery, které slouží jako validátory a RPC nody pro blockchainovou infrastrukturu typu Solana. V rozhovoru pro Lupu popisuje, jak takové servery musí být vybavené, na kolik vyjdou a jak byznys kolem funguje.

Čím se v Rockaway Blockchain Fund zabýváte?

V rámci fondu je to staking, což je aktivita, kterou jsme rozjeli loni v lednu. Kolega Dušan Kovačič si udělal víkendový projekt. Zrovna vyšel nejnovější AMD Threadripper, takže si koupil herní počítač do serverové bedny a postavil na něm validátor pro Solanu. Ukázalo se, že provozování validátoru umožňuje získávat cenné informace přímo z blockchainu, takže padlo rozhodnutí, že půjdeme dělat staking pro více blockchainových sítí a na profesionální úrovni.

Já jsem byl osloven s tím, jestli se nechci o infrastrukturu starat a rozvíjet ji. V té době jsem doma experimentoval s Ethereem a úplně mě to pohltilo. V RBF jsme začínali se Solanou, přidali jsme Agoric testnet a mainnet, Cosmos, Vega, Sommelier, AxelarCelestia a další.

Nyní provozujeme jak validátory, tak RPC nody pro dotazování sítě na transakce. Hodně sítí, které validujeme, potřebuje přístup na Ethereum pro oboustranné posílání zpráv, proto máme také několik Ethereum RPC nodů. Dále provozujeme farmu uzlů pro Pocket Network, což je něco jako decentralizovaná Infura (RPC endpoint pro Ethereum). Na rozdíl od Infury se všechno děje decentralizovaně a pro více než dvacet sítí. Pro všechny sítě, které v rámci Pocketu děláme relay, provozujeme privátní RPC uzly.

Kolik lidí v RBF na hardwarové infrastruktuře pro blockchain dělá?

Jsem to já společně s menším týmem, postupně nabíráme další kolegy se zájmem o blockchain. Rockaway začalo investovat do technologie blockchain v roce 2018. V červnu 2020 Rockaway spustilo první venture fond. Nyní máme nejenom venture fond, ale nově i RBSF (Rockaway Blockchain Stable Fund), což je fond poskytující likviditu do blockchain ekosystému, vývojářské studio pro blockchainové projekty (RBF Labs) a v neposlední řadě i divizi RBF staking, která provozuje PoS validátory.

Co vás ve fondu motivovalo k tomu postavit přímo hardwarovou infrastrukturu?

V RBF nechceme být pouze investoři, ale také celé oblasti velmi dobře rozumět a přispívat zpět komunitě. Není lepší cesty než infrastrukturu sami provozovat. Má to i další výhody. Když například měla Solana minulý rok v září výpadek, okamžitě jsem díky monitoringu věděl, že je problém, a z našeho validátoru jsem velmi rychle zjistil, co se děje, zatímco lidé na Twitteru panikařili a vymýšleli různé divoké teorie.

Jak se na provozu takové infrastruktury vydělává?

Dá se na tom získat množství tokenů. Pokud máte hodně nadelegovaného staku, je to rentabilní byznys, který je velmi závislý na aktuální ceně tokenu, který získáváte jako odměnu v rámci PoS.

Jak se do vaší infrastruktury lákají staky?

To je na tom celém ve výsledku nejsložitější. Samozřejmě postavit samotnou infrastrukturu vůbec není jednoduché. Není to tak, že si doma rozjedu několik grafických karet, dám je do kouta a bude mi to vydělávat obrovské peníze. To už dnes nejde, například pro Solanu je nutné nakoupit dobré servery za deset, spíše dvacet tisíc dolarů jeden. Dnes máme na serveru 2,3 milionu SOL a validátor měsíčně vygeneruje zhruba 800 SOL.

Začínali jsme tak, že jsme měli stake od fondu. Fond nakupoval tokeny a dal je na vlastní validátor, tím jsme získali prvotní stake a dostali se v žebříčku nahoru a začali přicházet další externí a většinou institucionální delegátoři. Druhou možností, jak získat stake, je dostávat stake od protokolů s likvidním stakingem, jako je Marinade (projekt s českou stopou) nebo Lido, kde tyto projekty delegují na nejkvalitnější validátory v síti.

Mimochodem máme velkou výhodu v tom, že máme infrastrukturu v Praze. Asi dvacet procent aktivního Solana staku dnes běží v Hetzneru v Německu a ve Finsku. Kdyby celý Hetzner vypadl, Solana bude mít již malý buffer pro výpadek dalších uzlů. Byl by problém s udržením konsenzu nutného k produkování bloků.

Asi 25 procent workloadů Etherea zase běží na AWS.

Ethereum PoW je úplně specifický případ, reálně tam jsou před mergem tři velké pooly (Ethermine, F2pool a Hiveon), které drží dohromady 57procentní hashrate (měřítko v PoW). Často se říká, že Solana je hodně centralizovaná, ale v realitě super minoritu tvoří 25 zcela nezávislých validátů z celého světa. Ethereum je na tom dnes mnohem hůře, na 51procentní útok stačí ovládnout tři pooly. S mergem a nástupem Ethereum 2.0 se situace zlepší, ale rozhodně ne tak, jak se prezentuje. Uvádí se, že Ethereum 2.0 má třicet tisíc nodů, to však vůbec neznamená, že to je třicet tisíc fyzických serverů. Ethereum 2.0 má stále nízkou hardwarovou náročnost na úrovni Raspberry Pi, takže naprosto logická volba Ethereum 2.0 providerů je dát více procesů na jeden server, klidně padesát.

Jak velká je u Solany hardwarová infrastruktura a jak velký máte podíl?

Jsme asi čtyřicátý šestý největší validátor. Prvních 25 tvoří super minoritu, která když se všichni naráz zastaví, spadne celá síť. Pak je tam 20 privátních validátorů a následně jsme my. Konstantně dosahujeme v rámci 50 největších validátoru nejnižšího skip rate, tedy počtu bloků, které nepodepíšeme/přeskočíme.

Kolik máte v chodu serverů?

Dnes jsou to dva racky serverů ve dvou zcela oddělených datacentrech. Máme hyperscale řešení VxRail od Dell EMC s VMware vSphere jako virtualizační vrstvou. Sítě s menší hardwarovou náročností provozujeme ve virtualizaci a ty náročné, jako Solana, mají dedikované stroje. Pro Solana servery instalujeme dva procesory AMD Epyc 7343 a 1 TB RAM. Solana dokumentace říká, že stačí 128 GB RAM, ale to pro provoz validátoru naší velikosti není dostatečné.

Oficiální specifikace Solany mimo to uvádí dvanáctijádro, to také nestačí?

Solana funguje tak, že je předem daný rozpis validátorů, kteří budou tvořit bloky. To se liší podle velikosti delegovaného staku. Čím větší je stake na vašem validátoru, tím více dostanete leader slotů (váš validátor produkuje blok).

Poslední dobou často probíhají „útoky“, kde boti podle předem daného pořadí posílají na slot leadera obrovské množství dat, ve kterém se snaží „nacpat“ svoje transakce do bloku. Což znamená, že k nám rutinně chodí 10Gb/s datový tok. 10 Gb/s UDP trafficu dorazí na náš server a ten si s tím musí poradit, tedy dekódovat transakce, zkontrolovat podpisy a tak dále. Slabší servery takový objem dat prostě nezvládnou zpracovat ve vymezeném čase a buď spadnou na nedostatek paměti, nebo blok, který vytvoří, obsahuje minimum transakcí (to jsou ty poklesy TPS, o kterých se často mluví). Když si někdo nepořídí Epyc, ale třeba desktopový procesor typu AMD Ryzen 9 5950X, v budoucnu mu nastanou problémy s maximálně podporovaným množstvím operační paměti, což je v tomto případě 128 GB.

Jak velký problém představují disky?

Solana doslova pojídá disky za živa. Na prvním validátoru jsme měli běžné spotřební NVMe disky s nejvyšším dostupným TBW, avšak už za devět měsíců byly z 94 procent vypsané. Solana si vždy drží zhruba posledních 500 GB ledgeru a ještě si dělá každých pár minut snapshoty. Neustále dochází k zápisům na disky, jde dlouhodobě o 200 MB/s. Do aktuálních strojů jsme dali 2TB disky Intel P5600, které se dají pětkrát denně kompletně přepsat. Zároveň máme nejvyšší podporu od Dellu, takže když disk přestane fungovat, Dell by měl do čtyř hodin dodat nový. Pro všechny případy máme přímo v serveru hot spare disk.

Servery berete od Dellu?

Bereme mix serverů od více značek, konkrétně Dell, Supermicro nebo Asus. Produkce je primárně na Dellu, zbylé dvě značky na speciální konfigurace serverů a testovací prostředí. Náš byznys je velmi dynamický a občas přijde požadavek, že do týdne musí běžet server s velmi atypickou konfigurací, takže bereme to, co je zrovna v Česku skladem.

Proč je pro provoz Solany populární AMD Epyc na architektuře Zen 3, a nikoliv Intel Xeon?

Epyc má celkový vícejádrový výkon vyšší a je levnější než Intel. A zrovna Solana hodně jader umí využít. Pokud máte aplikaci, která umí plně využít více jader, kupuje se AMD. Když je potřeba výkon na jedno jádro, je většinou výhodnější Intel. 32jádrový Intel stojí až o 50 procent více než AMD se srovnatelným počtem jader.

Jak tedy vypadá váš typický server?

Pro Solanu jde o dvousocketový 2U server, který má NVMe disky s vysokou odolností (dva na systém v RAID 1 a dva na Solanu jako takovou, konkrétně na logy, ledger a hot spare), dále obsahuje 10Gb síťové karty a 1 TB RAM. Jeden stroj vyjde na stovky tisíc korun. Dají se koupit levnější modely třeba na Threadripperu, ale je celkem pravděpodobné, že takový server za dva roky nebude stačit. My hardware kupujeme tak, aby vydržel v horizontu pěti let.

V dokumentaci Solany jsou uvedené také grafické karty, jsou reálně potřeba?

Z naší zkušenosti teď GPU nemají přidanou hodnotu. Pipeline na zpracování transakce není pro GPU optimalizovaná. Snížení zátěže CPU je nepozorovatelné. Kupujeme servery, kam se GPU dají dát, ale zatím toho nevyužíváme. Ani dle aktuálně dostupných informací nevidíme, že by se na výraznější podporu GPU v roadmapě mělo dostat.

Řeší se jiné problémy. Největší vývoj teď probíhá na síťové vrstvě –⁠ náhrada UDP za QUIC od Googlu. Solana používá UDP/IP, přes který si validátoři mezi sebou „povídají“ a říkají si, jaké transakce se musí dát do bloku. To se děje přes standardní „hloupý“ UDP, který je sice velmi rychlý, ale pouze jednosměrný a kdokoliv může poslat kamkoliv libovolný objem dat, která na Linuxu protečou přes kernel až do programu. Proto na validátorech vznikají 10Gb špičky kvůli botům. To síť umí zpomalit. Kvůli slabším validátorům, kteří tyto datové toky nezvládají zpracovat, je to velmi podobné DDoSu. Tím, že jde o UDP, se s tím nedá moc dobře bojovat, tyto peaky trvají pár vteřin. Proto chce Solana Labs ve verzi 1.11 uvést do produkce nový protokol, který bude rychlý jako UDP, ale má řízení toků. V rámci implementace bude možné identifikovat odesílatele zprávy, takže bude možné zjistit, zda jde o zastakovaný validátor, nebo ne, a podle toho mu přiřadit prioritu v rámci zpracování.

Tomáš Eminger, Rockaway Blockchain Fund

Tomáš Eminger, Rockaway Blockchain Fund

Autor: Rockaway

Proč používáte VxRail, a ne třeba KVM?

Nemáme kapacitu starat se o nižší vrstvy, než je operační systém. Chceme mít funkce cloudu v on-premise prostředí. To KVM samo o sobě neudělá. Je tam stále nutné něco ladit, psát utilitní skripty a tak dále. U VxRailu ve spojení s VMware vSphere sice platíme příplatek Dellu a VMwaru, ale infrastruktura prostě šlape, takže ve výsledku je to levnější než platit dedikované inženýry na infrastrukturu.

Dříve jsem pracoval v Mallu, kde jsme provozovali i OpenStack, ale neustále jsme řešili nutné upgrady, výpadky nodů, nekompatibility a další různé neočekávané komplikace. Oproti tomu VMwarová farma prostě fungovala. Takže i nyní mám VMware na hyperscale vysoce dostupné platformě a nevím o tom, což byl můj cíl. Blockchain i celý byznys se neuvěřitelně rychle mění, takže potřebujeme mít stabilní základy, které podrží i překotný vývoj decentralizovaných sítí a nebudou nás brzdit, což toto řešení splňuje.

A proč VxRail, a ne samostatné ESXi?

VxRail je proprietární řešení od Dellu, které garantuje, že se hardware chová jako lego. Když koupím nový server, připojím ho do infrastruktury a VxRail se ve spojení s vSphere o vše postará, včetně připojení do sítě, nastavení storage, aktualizací a podobně.

Nebojíte se vendor lock-inu?

Děláme to s plným vědomím vendor lock-inu, ale výhody pro nás převažují. Jistě, jde jít cestou větší otevřenosti a menšího vendor lock-inu, ale často zjistíte, že to vyjde velmi draho, protože je nutné platit lidi, kteří se o takovou otevřenou infrastrukturu starají. Lidé jsou dnes to nejdražší, a navíc skoro nejsou. V našem případě hledáme lidi, kteří umí infrastrukturu, a k tomu navíc blockchain. Takoví téměř neexistují. Proto máme interní akademii, kde šikovné adminy učíme blockchainu.

Jak vypadají vaše RPC nody?

V rámci RBF Labs máme vlastní vývoj, kde náš tým extrahuje data z blockchainu. Aby data byla důvěryhodná, stahují je z interních nodů. Dále podporujeme český projekt ChainKeepers, kterému dodáváme RPC formou endpoint-as-a-service. ChainKeepers přes nás posílají transakce do sítě a velmi rychle se k nim dostávají změny na blockchainu, což je pro tento projekt zásadní. Rockaway Blockchain Fund má také investici ve firmě bloXroute zabývající se infrastrukturou, přes kterou bude možné rychleji dostávat data do bloků. V rámci pomoci portfoliovým společnostem pro ně provozujeme dedikovaný Solana validátor / RPC node.

Hardwarově se Solana RPC nody nějak liší?

Jsou to podobné stroje, o kterých jsme mluvili, jen je tam CPU s více jádry. Je to AMD Epyc 7443. Když se oba procesory rozjedou, spotřeba celého serveru ve špičce je kolem 600 wattů.

Co je na provozu takové infrastruktury nejdražší?

V našem případě je to náročné na CAPEX, nákladné je tedy zejména pořízení hardwarového vybavení. Měsíční provoz zatím není tak drahý, ale do budoucna předpokládám, že na Solaně bude nejdražší položkou konektivita. Dnes standardně náš Solana node dělá 800 Mb/s uploadu. I proto nepoužíváme cloud, tam jsou nesmyslně velké poplatky za upload konektivitu. Objem uploadu na Solaně se za rok zdvojnásobil a poroste i nadále.

Kupujete si vlastní tranzit?

Tak daleko nejsme, konektivitu kupujeme od datacenter, konkrétně od Českých Radiokomunikací a DataSpringu (AutoCont). Výhledově nejspíše budeme řešit vlastní ASN, multihoming a další pokročilou síťařinu.

Budete chtít hardware umisťovat i mimo Česko?

Přemýšlíme o Švýcarsku nebo Irsku, chceme se rozšířit do více zemí, zejména kvůli odezvě. Dnes většinu řešíme z Česka. Zakládáme si na tom, že k serverům mohou jenom naši lidé, tedy žádná třetí strana jako u některých validátorů. 

Jak řešíte bezpečnost?

Do detailů zacházet nebudu, ale držíme se pravidla, že pokud to konkrétní technologie blockchainu umožňuje, tak na žádném serveru není privátní klíč. Z pohledu fyzické bezpečnosti jsou všude uzamykatelné racky a biometrický přístup pro vybrané osoby.

Co na serverech kromě již zmíněného provozujete za software?

Vedle samotných blockchainů jde o virtualizaci od VMwaru a Ubuntu Linux Server. Ubuntu je v komunitě standard, nemá cenu jít proti proudu. Z mého pohledu jsou distribuce spíše náboženská věc. Drtivá většina blockchainového softwaru je právě testována na Ubuntu. Infrastruktura blockchainu je postavená na zelené louce, což je fajn. Není třeba všude mít uzavřené databáze od Oraclu, middleware na Javě a další historické relikty. Solana umí běžet i v Dockeru, ale z hlediska výkonu to nedává smysl a je lepší, když běží přímo na fyzickém hardwaru bez dalších vrstev.

Jak je to s poplatky do blockchainové sítě?

U Solany se hlasuje na transakce. Za to je třeba platit z hlasovacího účtu zhruba 3 SOL za epochu (přibližně za dva až tři dny), na druhou stranu validátor dostává odměnu za vytvoření bloku. To, kolik bloků denně vytvoříme, záleží na tom, jak velký je nadelegovaný stake. Pro menší validátory to znamená často doplňovat vote account. Druhou část odměn tvoří staking jako takový. Aby validátor vydělával, je třeba mít hodně delegovaného staku. Třeba na Solaně je potřeba minimálně deset tisíc delegovaného SOL, abyste se dostali na break even a vydělali si na onen jeden SOL denně.

Jaké máte plány s ekosystémem Cosmos?

V půlce května jsem s kolegou Davidem Rakušanem pořádal největší vývojářskou konferenci pro Cosmos ekosystém – Gateway to COSMOS 2022, takže plány máme velké a tomuto ekosystému hodně věříme. Komunita vývojářů, co přijela do Prahy, ukázala široké spektrum novinek a rozhodně se máme na co těšit.

Cosmos je něco jako internet blockchainů. Jeho základním pilířem je protokol IBC (Inter Blockchain Communication) pro komunikaci mezi blockchainy v rámci jednoho ekosystému. Lze to přirovnat ke standardizaci přepravních kontejnerů v lodní dopravě. Není problém vzít věci z Cosmos Hubu a přesunout je na Agoric, Osmosis DEX či kamkoliv jinam. Dalo by se říci, že vzniká něco jako TCP/IP vrstva pro blockchainy. Toto chceme podporovat a podílet se na tom. 

Je v takové výměně dat nějaká režie?

Na Cosmosu je blocktime kolem šesti až sedmi sekund. V nejhorším případě je tedy prodleva součet dvou časů blocktime, což je stále skvělá hodnota oproti bridgům, jako je například Wormhole.

Věříte, že nyní stavíte transakční infrastrukturu nové generace?

V zásadě dnes vidím dva budoucí přístupy. Jeden je takový ten klasický mainframový, avšak decentralizovaný, který dělá Solana. Používá jeden L1 blockchain, který má na papíře 65 tisíc transakcí za sekundu a všechno se děje právě na tom jedno chainu.

Druhý přístup k řešení je právě interoperabilní ekosystém, jako je Cosmos, kde každá aplikace může mít svůj chain, který má přesně ty vlastnosti (blocktime, programovací jazyk, moduly a podobně), které nejlépe vyhovují danému účelu, ale zároveň jsou mezi sebou jednoduše propojitelné.

V dnešním světě dominují Bitcoin a Ethereum. Ethereum bylo nadesignováno již dávno (viděno očima blockchainu) a v dlouhodobém horizontu bude technologicky zaostávat. Merge sice přinese zásadní snížení energetické náročnosti, ale propustnost výrazně nezlepší. Tomu pomůžou až L2 rollupy, které nejsou nativní součástí architektury. Bitcoin vnímám čistě jako digitální zlato, ne jako platformu pro budoucnost financí a internetu.

MIF22_Early

Často slýchám přirovnání, že budování blockchainové infrastruktury pokládá podobné základy jako svého času budování internetu. Vnímáte to stejně?

Já to tak vnímám a jsem o tom čím dál více přesvědčený. Aktuální křivka adopce blockchainu má velmi podobnou trajektorii jako adopce internetu v devadesátých letech. Jsme stále na začátku, těsně za „krypto starověkem“. Z mého pohledu jde o další vrstvu internetu, nad kterou budou postaveny uživatelské aplikace, o kterých se nám aktuálně ani nezdá. Blockchain je nový internet a díky smart kontraktům se otevírají zcela nové možnosti digitalizace. Představte si, o kolik by bylo jednodušší si vytáhnout něco z katastru nemovitostí, kdyby byl uložen na blockchainu a pro dotaz bych poslal jednoduchý JSON na RPC server a dostal kompletní odpověď během sekundy.