{"id":36157,"date":"2019-10-31T22:09:55","date_gmt":"2019-10-31T19:09:55","guid":{"rendered":"https:\/\/prohoster.info\/blog\/skolko-tps-v-vashem-blokchejne\/"},"modified":"2019-10-31T22:09:55","modified_gmt":"2019-10-31T19:09:55","slug":"skolko-tps-v-vashem-blokchejne","status":"publish","type":"post","link":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/skolko-tps-v-vashem-blokchejne","title":{"rendered":"Kolik TPS m\u00e1 va\u0161e blockchainov\u00e1 s\u00ed\u0165?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Obl\u00edbenou ot\u00e1zkou, kterou se netechnick\u00fd odborn\u00edk pt\u00e1 na jak\u00fdkoli distribuovan\u00fd syst\u00e9m, je \u201eKolik tps m\u00e1 v\u00e1\u0161 blockchain?\u201c. \u010c\u00edslo zm\u00edn\u011bn\u00e9 v odpov\u011bdi v\u0161ak obvykle m\u00e1 m\u00e1lo spole\u010dn\u00e9ho s t\u00edm, co by cht\u011bl sly\u0161et dotazuj\u00edc\u00ed se. Ve skute\u010dnosti se cht\u011bl zeptat \u201eHod\u00ed se v\u00e1\u0161 blockchain pro m\u00e9 obchodn\u00ed po\u017eadavky?\u201c, a tyto po\u017eadavky nejsou jedno \u010d\u00edslo, ale cel\u00e1 \u0159ada podm\u00ednek \u2014 zahrnuj\u00ed jak odolnost s\u00edt\u011b, tak po\u017eadavky na kone\u010dnost, velikosti, charakter transakc\u00ed a \u0159adu dal\u0161\u00edch parametr\u016f. Odpov\u011b\u010f na ot\u00e1zku \u201ekolik tps\u201c tedy pravd\u011bpodobn\u011b nebude jednoduch\u00e1 a t\u00e9m\u011b\u0159 nikdy nebude \u00fapln\u00e1. Distribuovan\u00fd syst\u00e9m se des\u00edtkami a stovkami uzl\u016f prov\u00e1d\u011bj\u00edc\u00edch pom\u011brn\u011b slo\u017eit\u00e1 v\u00fdpo\u010dty m\u016f\u017ee b\u00fdt ve velk\u00e9m mno\u017estv\u00ed r\u016fzn\u00fdch stav\u016f v z\u00e1vislosti na stavu s\u00edt\u011b, obsahu blockchainu, technick\u00fdch poruch\u00e1ch, ekonomick\u00fdch probl\u00e9mech, \u00fatoc\u00edch na s\u00ed\u0165 a z mnoha dal\u0161\u00edch d\u016fvod\u016f. Etapy, ve kter\u00fdch mohou probl\u00e9my s v\u00fdkonem nastat, se li\u0161\u00ed od tradi\u010dn\u00edch slu\u017eeb, a server blockchainov\u00e9 s\u00edt\u011b je s\u00ed\u0165ov\u00e1 slu\u017eba, kter\u00e1 kombinuje funkce datab\u00e1ze, webov\u00e9ho serveru a torrent klienta, co\u017e z n\u011bj \u010din\u00ed extr\u00e9mn\u011b slo\u017eit\u00e9 z pohledu zat\u00ed\u017een\u00ed v\u0161ech subsyst\u00e9m\u016f: procesoru, pam\u011bti, s\u00edt\u011b, \u00falo\u017ei\u0161t\u011b.<\/p>\n<p><\/p>\n<p>Tak se stalo, \u017ee decentralizovan\u00e9 s\u00edt\u011b a blockchainy jsou pro v\u00fdvoj\u00e1\u0159e centralizovan\u00e9ho softwaru pom\u011brn\u011b specifick\u00fdm a nezvykl\u00fdm softwarem. Proto bych r\u00e1d osv\u011btlil d\u016fle\u017eit\u00e9 aspekty v\u00fdkonu a spolehlivosti decentralizovan\u00fdch s\u00edt\u00ed, p\u0159\u00edstupy k jejich m\u011b\u0159en\u00ed a hled\u00e1n\u00ed \u00fazk\u00fdch m\u00edst. Prozkoum\u00e1me r\u016fzn\u00e9 probl\u00e9my s v\u00fdkonem, kter\u00e9 omezuj\u00ed rychlost poskytov\u00e1n\u00ed slu\u017eeb u\u017eivatel\u016fm blockchain\u016f, a upozorn\u00edme na charakteristiky, kter\u00e9 jsou pro tento typ softwaru typick\u00e9.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"etapy-zaprosa-servisa-klientom-blokcheyna\">Etapy po\u017eadavku na slu\u017ebu klientem blockchainu<\/h2>\n<p><\/p>\n<p>Aby bylo mo\u017en\u00e9 \u010destn\u011b hovo\u0159it o kvalit\u011b jak\u00e9hokoli alespo\u0148 trochu slo\u017eit\u00e9ho slu\u017eby, je t\u0159eba vz\u00edt v \u00favahu nejen pr\u016fm\u011brn\u00e9 hodnoty, ale tak\u00e9 maxim\u00e1ln\u00ed\/minim\u00e1ln\u00ed hodnoty, medi\u00e1ny a percentily. Teoreticky lze hovo\u0159it o 1000 tps v n\u011bjak\u00e9m blockchainu, ale pokud 900 transakc\u00ed prob\u011bhlo obrovskou rychlost\u00ed a 100 \u201euv\u00edzlo\u201c na n\u011bkolik sekund, pr\u016fm\u011brn\u00fd \u010das, kter\u00fd byl vypo\u010d\u00edt\u00e1n ze v\u0161ech transakc\u00ed, nen\u00ed zcela spravedlivou metrikou pro klienta, kter\u00fd za n\u011bkolik sekund nebyl schopen dokon\u010dit obchod. \u010casov\u00e9 \u201ejamy\u201c zp\u016fsoben\u00e9 vynechan\u00fdmi koly konsensu nebo rozd\u011blen\u00edm s\u00edt\u011b mohou v\u00fdrazn\u011b zhor\u0161it slu\u017ebu, kter\u00e1 na testovac\u00edch st\u00e1nc\u00edch vykazovala vynikaj\u00edc\u00ed v\u00fdkonnost.<\/p>\n<p><\/p>\n<p>Abychom identifikovali takov\u00e9 bottlenecky, mus\u00edme dob\u0159e porozum\u011bt etap\u00e1m, ve kter\u00fdch m\u016f\u017ee skute\u010dn\u00fd blockchain za\u017e\u00edvat pot\u00ed\u017ee p\u0159i obsluze u\u017eivatel\u016f. Poj\u010fme popsat cyklus dod\u00e1vky a zpracov\u00e1n\u00ed transakce, stejn\u011b jako z\u00edsk\u00e1n\u00ed nov\u00e9ho stavu blockchainu, ze kter\u00e9ho se klient m\u016f\u017ee ujistit, \u017ee jeho transakce byla zpracov\u00e1na a zapo\u010d\u00edt\u00e1na.<\/p>\n<p><\/p>\n<ol>\n<li>transakce je vytv\u00e1\u0159ena na klientovi<\/li>\n<li>transakce je podepisov\u00e1na na klientovi<\/li>\n<li>klient si vyb\u00edr\u00e1 jednu z uzl\u016f a pos\u00edl\u00e1 do n\u00ed svou transakci<\/li>\n<li>klient se p\u0159ihla\u0161uje k aktualizac\u00edm datab\u00e1ze stavu uzlu a \u010dek\u00e1 na v\u00fdsledky zpracov\u00e1n\u00ed sv\u00e9 transakce<\/li>\n<li>uzel \u0161\u00ed\u0159\u00ed transakci po p2p s\u00edti<\/li>\n<li>n\u011bkolik, nebo jeden BP (block producer) zpracov\u00e1v\u00e1 nahromad\u011bn\u00e9 transakce a aktualizuje datab\u00e1zi stavu<\/li>\n<li>BP vytv\u00e1\u0159\u00ed nov\u00fd blok zpracov\u00e1n\u00edm pot\u0159ebn\u00e9ho po\u010dtu transakc\u00ed<\/li>\n<li>BP \u0161\u00ed\u0159\u00ed nov\u00fd blok po p2p s\u00edti<\/li>\n<li>nov\u00fd blok je doru\u010den uzlu, na kter\u00fd se klient obrac\u00ed<\/li>\n<li>uzel aktualizuje datab\u00e1zi stavu<\/li>\n<li>uzel vid\u00ed aktualizaci t\u00fdkaj\u00edc\u00ed se klienta a pos\u00edl\u00e1 mu upozorn\u011bn\u00ed o transakci<\/li>\n<\/ol>\n<p><\/p>\n<p>Nyn\u00ed se pod\u00edvejme podrobn\u011bji na tyto etapy a popi\u0161me potenci\u00e1ln\u00ed probl\u00e9my s v\u00fdkonem v ka\u017ed\u00e9 f\u00e1zi. Na rozd\u00edl od centralizovan\u00fdch syst\u00e9m\u016f se tak\u00e9 zam\u011b\u0159\u00edme na vykon\u00e1v\u00e1n\u00ed k\u00f3du na klientech s\u00edt\u011b. Pom\u011brn\u011b \u010dasto, p\u0159i m\u011b\u0159en\u00ed TPS, se \u010das zpracov\u00e1n\u00ed transakc\u00ed shroma\u017e\u010fuje z uzl\u016f, nikoli z klienta \u2014 to nen\u00ed zcela f\u00e9r. Klientovi je jedno, jak rychle uzel zpracoval jeho transakci, pro n\u011bj je nejd\u016fle\u017eit\u011bj\u0161\u00ed okam\u017eik, kdy se spolehliv\u00e9 informace o t\u00e9to transakci, za\u010dlen\u011bn\u00e9 do blockchainu, stanou dostupn\u00e9. Tato metrika je v podstat\u011b \u010dasem vykon\u00e1n\u00ed transakce. To znamen\u00e1, \u017ee r\u016fzn\u00ed klienti, i kdy\u017e pos\u00edlaj\u00ed tut\u00e9\u017e transakci, mohou z\u00edskat zcela odli\u0161n\u00e9 \u010dasy, kter\u00e9 z\u00e1vis\u00ed na kan\u00e1lu, zat\u00ed\u017een\u00ed a bl\u00edzkosti uzlu atd. Je tedy naprosto nezbytn\u00e9 m\u011b\u0159it tento \u010das na klientech, proto\u017ee pr\u00e1v\u011b tento parameter je t\u0159eba optimalizovat.<\/p>\n<p><\/p>\n<h2 id=\"podgotovka-tranzakcii-na-storone-klienta\">P\u0159\u00edprava transakce na stran\u011b klienta<\/h2>\n<p><\/p>\n<p>Za\u010dn\u011bme s prvn\u00edmi dv\u011bma body: transakce je formov\u00e1na a podepisov\u00e1na klientem. Jak to m\u016f\u017ee b\u00fdt p\u0159ekvapiv\u00e9, tak\u00e9 to m\u016f\u017ee b\u00fdt v\u00fdkonov\u00fdm \u00fazk\u00fdm m\u00edstem blockchainu z pohledu klienta. To je nezvykl\u00e9 pro centralizovan\u00e9 slu\u017eby, kter\u00e9 ve\u0161ker\u00e9 v\u00fdpo\u010dty a operace s daty berou na sebe, zat\u00edmco klient prost\u011b p\u0159ipravuje kr\u00e1tk\u00fd dotaz, schopn\u00fd po\u017eadovat velk\u00e9 objemy dat nebo v\u00fdpo\u010dt\u016f a z\u00edsk\u00e1v\u00e1 hotov\u00fd v\u00fdsledek. V blockchainech se klientsk\u00fd k\u00f3d st\u00e1v\u00e1 \u010d\u00edm d\u00e1l t\u00edm mocn\u011bj\u0161\u00edm, zat\u00edmco j\u00e1dro blockchainu je \u010d\u00edm d\u00e1l t\u00edm leh\u010d\u00ed, a masivn\u00ed v\u00fdpo\u010detn\u00ed \u00fakoly jsou b\u011b\u017en\u011b sv\u011b\u0159ov\u00e1ny klientsk\u00e9mu softwaru. V blockchainech existuj\u00ed klienti, kte\u0159\u00ed mohou p\u0159ipravovat jednu transakci docela dlouho (mluv\u00edm o r\u016fzn\u00fdch merkle proofech, succinct proofech, threshold podpisech a dal\u0161\u00edch slo\u017eit\u00fdch operac\u00edch na stran\u011b klienta). P\u0159\u00edkladem snadn\u00e9 on-chain verifikace a t\u011b\u017ek\u00e9 p\u0159\u00edpravy transakce na klientovi je d\u016fkaz p\u0159\u00edslu\u0161nosti k seznamu zalo\u017een\u00fd na Merkle-trees. <noindex><a rel=\"nofollow\" href=\"https:\/\/hackernoon.com\/evolution-of-airdrop-from-common-spam-to-the-merkle-tree-30caa2344170\">neaktu\u00e1ln\u00ed statistika<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Tak\u00e9 je d\u016fle\u017eit\u00e9 si uv\u011bdomit, \u017ee klientsk\u00fd k\u00f3d ne pouze odes\u00edl\u00e1 transakce do blockchainu, ale nejprve \u017e\u00e1d\u00e1 o stav blockchainu - a tato \u010dinnost m\u016f\u017ee ovlivnit zat\u00ed\u017een\u00ed s\u00edt\u011b a uzl\u016f blockchainu. P\u0159i m\u011b\u0159en\u00ed je tedy rozumn\u00e9 co nejv\u00edce emulovat chov\u00e1n\u00ed klientsk\u00e9ho k\u00f3du. I kdy\u017e ve va\u0161em blockchainu b\u011b\u017e\u00ed oby\u010dejn\u00ed lehc\u00ed klienti, kte\u0159\u00ed podepisuj\u00ed oby\u010dejnou digit\u00e1ln\u00ed transakci na p\u0159evod n\u011bjak\u00e9ho aktiva, s ka\u017ed\u00fdm rokem se mno\u017estv\u00ed v\u00fdpo\u010dt\u016f na klientovi zvy\u0161uje, kryptografick\u00e9 algoritmy se posiluj\u00ed a tato \u010d\u00e1st zpracov\u00e1n\u00ed se m\u016f\u017ee v budoucnu st\u00e1t v\u00fdznamn\u00fdm \u00fazk\u00fdm m\u00edstem. Proto bu\u010fte opatrn\u00ed a nep\u0159ehl\u00e9dn\u011bte situaci, kdy u transakce trvaj\u00edc\u00ed 3,5 sekundy trv\u00e1 2,5 sekundy na p\u0159\u00edpravu a podpis transakce, a 1,0 sekundy na odesl\u00e1n\u00ed do s\u00edt\u011b a \u010dek\u00e1n\u00ed na odpov\u011b\u010f. Pro hodnocen\u00ed rizika vzniku tohoto \u00fazk\u00e9ho m\u00edsta je nutn\u00e9 shroma\u017e\u010fovat metriky z klientsk\u00fdch stroj\u016f, a ne pouze z uzl\u016f blockchainu.<\/p>\n<p><\/p>\n<h2 id=\"otpravka-tranzakcii-i-monitoring-ee-statusa\">Odesl\u00e1n\u00ed transakce a sledov\u00e1n\u00ed jej\u00edho stavu<\/h2>\n<p><\/p>\n<p>Dal\u0161\u00edm krokem je odesl\u00e1n\u00ed transakce do vybran\u00e9ho uzlu blockchainu a z\u00edsk\u00e1n\u00ed stavu jej\u00edho p\u0159ijet\u00ed do transak\u010dn\u00edho poolu. Tento krok je podobn\u00fd b\u011b\u017en\u00e9mu dotazu na datab\u00e1zi, uzel mus\u00ed zaznamenat transakci do poolu a za\u010d\u00edt \u0161\u00ed\u0159it informace o n\u00ed prost\u0159ednictv\u00edm p2p s\u00edt\u011b. P\u0159\u00edstup k hodnocen\u00ed v\u00fdkonu zde je podobn\u00fd hodnocen\u00ed pr\u00e1ce tradi\u010dn\u00edch mikroslu\u017eeb Web API, p\u0159i\u010dem\u017e samotn\u00e9 transakce v blockchainech mohou b\u00fdt aktualizov\u00e1ny a aktivn\u011b m\u011bnit sv\u016fj status. Obecn\u011b m\u016f\u017ee aktualizace informac\u00ed o transakci v n\u011bkter\u00fdch blockchainech prob\u00edhat n\u011bkolikr\u00e1t, nap\u0159\u00edklad p\u0159i p\u0159ep\u00edn\u00e1n\u00ed mezi forky \u0159et\u011bzce nebo kdy\u017e BP oznamuj\u00ed \u00famysl zahrnout transakci do bloku. Omezen\u00ed na objem tohoto poolu a po\u010det transakc\u00ed v n\u011bm mohou m\u00edt vliv na v\u00fdkon blockchainu. Pokud je transak\u010dn\u00ed pool zapln\u011bn na maxim\u00e1ln\u00ed mo\u017enou velikost, nebo se nevejde do opera\u010dn\u00ed pam\u011bti - v\u00fdkon s\u00edt\u011b m\u016f\u017ee v\u00fdrazn\u011b klesnout. Blockchainy nemaj\u00ed centralizovan\u00e9 prost\u0159edky na ochranu p\u0159ed tokem spamov\u00fdch zpr\u00e1v, a pokud blockchain podporuje transakce velk\u00e9ho objemu a n\u00edzk\u00e9 poplatky, m\u016f\u017ee to v\u00e9st k p\u0159epln\u011bn\u00ed transak\u010dn\u00edho poolu - to je dal\u0161\u00ed potenci\u00e1ln\u00ed \u00fazk\u00e9 m\u00edsto v\u00fdkonu.<\/p>\n<p><\/p>\n<p>V blockchainu klient ode\u0161le transakci jak\u00e9koli n\u00f3d\u011b blockchainu, kter\u00e1 se mu l\u00edb\u00ed, hash transakce je obvykle klientovi zn\u00e1m je\u0161t\u011b p\u0159ed odesl\u00e1n\u00edm, tak\u017ee to, co pot\u0159ebuje, je nav\u00e1zat spojen\u00ed a pot\u00e9 \u010dekat, a\u017e blockchain zm\u011bn\u00ed sv\u016fj stav a zahrne jeho transakci. V\u0161imn\u011bte si, \u017ee m\u011b\u0159en\u00edm \u201etps\u201c lze z\u00edskat naprosto odli\u0161n\u00e9 v\u00fdsledky v z\u00e1vislosti na zp\u016fsobu p\u0159ipojen\u00ed k nodu blockchainu. M\u016f\u017ee to b\u00fdt b\u011b\u017en\u00fd HTTP RPC nebo WebSocket, kter\u00fd umo\u017e\u0148uje realizovat vzor \u201esubscribe\u201c. V druh\u00e9m p\u0159\u00edpad\u011b klient obdr\u017e\u00ed ozn\u00e1men\u00ed d\u0159\u00edve a n\u00f3d vynalo\u017e\u00ed m\u00e9n\u011b zdroj\u016f (p\u0159ev\u00e1\u017en\u011b pam\u011bti a datov\u00e9ho toku) na odpov\u011bdi o stavu transakce. Proto je p\u0159i m\u011b\u0159en\u00ed \u201etps\u201c d\u016fle\u017eit\u00e9 vz\u00edt v \u00favahu zp\u016fsob p\u0159ipojen\u00ed klient\u016f k nod\u016fm. Proto by m\u011bl benchmark blockchainu um\u011bt emulovat klienty jak s WebSocket, tak s HTTP RPC po\u017eadavky, v pom\u011brech odpov\u00eddaj\u00edc\u00edch skute\u010dn\u00fdm s\u00edt\u00edm, a tak\u00e9 m\u011bnit charakter transakc\u00ed a jejich velikost.<\/p>\n<p><\/p>\n<p>Pro hodnocen\u00ed rizik vzniku tohoto bottlenecku je tak\u00e9 nutn\u00e9 sb\u00edrat metriky z klientsk\u00fdch stroj\u016f, ne jen z blockchainov\u00fdch uzl\u016f.<\/p>\n<p><\/p>\n<h2 id=\"peredacha-tranzakciy-i-blokov-po-p2p-seti\">P\u0159enos transakc\u00ed a blok\u016f p\u0159es p2p s\u00ed\u0165<\/h2>\n<p><\/p>\n<p>V blockchainu se pro p\u0159enos mezi \u00fa\u010dastn\u00edky transakc\u00ed a blok\u016f pou\u017e\u00edv\u00e1 peer-to-peer (p2p) networking. Transakce se \u0161\u00ed\u0159\u00ed s\u00edt\u00ed, po\u010d\u00ednaje jedn\u00edm uzlem, dokud nedos\u00e1hnou peer\u016f - producent\u016f blok\u016f, kte\u0159\u00ed bal\u00ed transakce do blok\u016f a s pomoc\u00ed t\u00e9\u017ee p2p s\u00edt\u011b \u0161\u00ed\u0159\u00ed nov\u00e9 bloky po v\u0161ech uzlech s\u00edt\u011b. Z\u00e1klad v\u011bt\u0161iny modern\u00edch p2p s\u00edt\u00ed tvo\u0159\u00ed r\u016fzn\u00e9 modifikace protokolu Kademlia. <noindex><a rel=\"nofollow\" href=\"https:\/\/cardanodocs.com\/technical\/protocols\/p2p\/\">Tady<\/a><\/noindex> dobr\u00fd stru\u010dn\u00fd p\u0159ehled tohoto protokolu, a <noindex><a rel=\"nofollow\" href=\"https:\/\/web.njit.edu\/~dingxn\/papers\/BT-JSAC.pdf\">tady je<\/a><\/noindex> \u2014 \u010dl\u00e1nek s r\u016fzn\u00fdmi m\u011b\u0159en\u00edmi v s\u00edti BitTorrent, podle kter\u00e9ho lze pochopit, \u017ee tento typ s\u00edt\u00ed je slo\u017eit\u011bj\u0161\u00ed a m\u00e9n\u011b p\u0159edv\u00eddateln\u00fd ne\u017e pevn\u011b konfigurovan\u00e1 s\u00ed\u0165 centralizovan\u00e9 slu\u017eby. Tak\u00e9, <noindex><a rel=\"nofollow\" href=\"https:\/\/zanema.com\/papers\/imc18_ethpeers.pdf\">tady je<\/a><\/noindex> \u010dl\u00e1nek o m\u011b\u0159en\u00ed r\u016fzn\u00fdch zaj\u00edmav\u00fdch metrik pro uzly Ethereum.<\/p>\n<p><\/p>\n<p>Stru\u010dn\u011b \u0159e\u010deno, ka\u017ed\u00fd peer v takov\u00fdch s\u00edt\u00edch udr\u017euje sv\u016fj vlastn\u00ed dynamick\u00fd seznam dal\u0161\u00edch peer\u016f, od kter\u00fdch po\u017eaduje bloky informac\u00ed podle obsahu. P\u0159i obdr\u017een\u00ed po\u017eadavku peer bu\u010f poskytne po\u017eadovan\u00e9 informace, nebo p\u0159ed\u00e1 po\u017eadavek dal\u0161\u00edmu pseudo-n\u00e1hodn\u00e9mu peerovi ze seznamu, a pot\u00e9, co obdr\u017e\u00ed odpov\u011b\u010f, p\u0159ed\u00e1 ji po\u017eaduj\u00edc\u00edmu a na ur\u010ditou dobu ji ukl\u00e1d\u00e1 do cache, \u010d\u00edm\u017e tento blok informac\u00ed dod\u00e1 d\u0159\u00edve p\u0159i p\u0159\u00ed\u0161t\u00edm po\u017eadavku. Tak se popul\u00e1rn\u00ed informace ocit\u00e1 v mnoha cache r\u016fzn\u00fdch peer\u016f, zat\u00edmco nep\u0159\u00edli\u0161 popul\u00e1rn\u00ed se postupn\u011b vytla\u010duje. Peery eviduj\u00ed, kdo komu kolik informac\u00ed p\u0159edal, a s\u00ed\u0165 se sna\u017e\u00ed stimulovat aktivn\u00ed distributory t\u00edm, \u017ee zvy\u0161uje jejich hodnocen\u00ed a zaji\u0161\u0165uje jim vy\u0161\u0161\u00ed \u00farove\u0148 slu\u017eby, automatem vytla\u010duj\u00edc neaktivn\u00ed \u00fa\u010dastn\u00edky ze seznam\u016f peer\u016f.<\/p>\n<p><\/p>\n<p>Nyn\u00ed je pot\u0159eba transakci roz\u0161\u00ed\u0159it po s\u00edti, aby ji block-produce\u0159i vid\u011bli a zahrnuli ji do bloku. Nod aktivn\u011b 'distribuuje' novou transakci v\u0161em, kte\u0159\u00ed maj\u00ed z\u00e1jem, a naslouch\u00e1 s\u00edti, \u010dekaj\u00edc na blok, ve kter\u00e9m se objev\u00ed pot\u0159ebn\u00e1 transakce, aby mohl informovat o\u010dek\u00e1vaj\u00edc\u00edho klienta. Doba, po kterou si s\u00ed\u0165 vym\u011b\u0148uje informace o nov\u00fdch transakc\u00edch a bloc\u00edch v p2p s\u00edt\u00edch, z\u00e1vis\u00ed na velk\u00e9m mno\u017estv\u00ed faktor\u016f: po\u010dtu poctiv\u00fdch, funk\u010dn\u00edch nod\u016f v bl\u00edzkosti (z pohledu s\u00edt\u011b), 'oh\u0159\u00e1tosti' cache t\u011bchto nod\u016f, velikosti blok\u016f, transakc\u00ed, povaze zm\u011bn, geografii s\u00edt\u011b, po\u010dtu nod\u016f a mnoha dal\u0161\u00edch faktorech. Slo\u017eit\u00e1 m\u011b\u0159en\u00ed metrik v\u00fdkonnosti v t\u011bchto s\u00edt\u00edch jsou obt\u00ed\u017en\u00e1, je nutn\u00e9 sou\u010dasn\u011b posuzovat \u010das zpracov\u00e1n\u00ed po\u017eadavk\u016f jak na klientech, tak na peer-\u00e1ch (blockchain nodech). Probl\u00e9my v n\u011bkter\u00e9m z p2p mechanism\u016f, nespr\u00e1vn\u00e9 vymaz\u00e1v\u00e1n\u00ed a caching dat, neefektivn\u00ed spr\u00e1va seznam\u016f aktivn\u00edch peer-\u016f a mnoho dal\u0161\u00edch faktor\u016f mohou zp\u016fsobit zpo\u017ed\u011bn\u00ed, kter\u00e1 ovliv\u0148uj\u00ed efektivitu cel\u00e9 s\u00edt\u011b, a tento bottleneck je nejkomplexn\u011bj\u0161\u00ed pro anal\u00fdzu, testov\u00e1n\u00ed a interpretaci v\u00fdsledk\u016f.<\/p>\n<p><\/p>\n<h2 id=\"processing-cepochki-blokov-i-obnovlenie-state-database\">Zpracov\u00e1n\u00ed \u0159et\u011bzce blok\u016f a aktualizace state database<\/h2>\n<p><\/p>\n<p>Nejd\u016fle\u017eit\u011bj\u0161\u00ed \u010d\u00e1st\u00ed fungov\u00e1n\u00ed blockchainu je konsensu\u00e1ln\u00ed algoritmus, jeho aplikace na nov\u00e9 bloky z\u00edskan\u00e9 ze s\u00edt\u011b a zpracov\u00e1n\u00ed transakc\u00ed se zaznamen\u00e1n\u00edm v\u00fdsledk\u016f do state database. P\u0159id\u00e1n\u00ed nov\u00e9ho bloku do \u0159et\u011bzce a n\u00e1sleduj\u00edc\u00ed v\u00fdb\u011br hlavn\u00edho \u0159et\u011bzce by m\u011blo prob\u011bhnout co nejrychleji. Nicm\u00e9n\u011b, v re\u00e1ln\u00e9m \u017eivot\u011b 'm\u011blo by' neznamen\u00e1 'funguje', a m\u016f\u017eeme si nap\u0159\u00edklad p\u0159edstavit situaci, kdy se dv\u011b dlouh\u00e9 konkuren\u010dn\u00ed \u0159et\u011bzce neust\u00e1le p\u0159ep\u00ednaj\u00ed mezi sebou, m\u011bn\u00edc\u00ed metadata tis\u00edc\u016fm transakc\u00ed v poolu p\u0159i ka\u017ed\u00e9m p\u0159epnut\u00ed a prov\u00e1d\u011bj\u00edc\u00ed neust\u00e1l\u00e9 vracen\u00ed stavu state database. Tento krok, co se t\u00fd\u010de ur\u010dov\u00e1n\u00ed bottlenecku, je jednodu\u0161\u0161\u00ed ne\u017e s\u00ed\u0165ov\u00e1 p2p vrstva, proto\u017ee prov\u00e1d\u011bn\u00ed transakc\u00ed a konsensu\u00e1ln\u00ed algoritmus jsou p\u0159\u00edsn\u011b deterministick\u00e9 a m\u011b\u0159it zde cokoliv je snaz\u0161\u00ed.<br \/>\nHlavn\u00ed je nepl\u00e9st n\u00e1hodnou degradaci v\u00fdkonu t\u00e9to f\u00e1ze s probl\u00e9my s\u00edt\u011b \u2014 uzly pomaleji d\u00e1vaj\u00ed bloky a informace o hlavn\u00edm \u0159et\u011bzci a pro extern\u00edho klienta to m\u016f\u017ee vypadat jako pomal\u00e1 s\u00ed\u0165, i kdy\u017e probl\u00e9m spo\u010d\u00edv\u00e1 \u00fapln\u011b n\u011bkde jinde.<\/p>\n<p><\/p>\n<p>Pro optimalizaci v\u00fdkonu v t\u00e9to f\u00e1zi je u\u017eite\u010dn\u00e9 shroma\u017e\u010fovat a monitorovat metriky z samotn\u00fdch uzl\u016f a zahrnout do nich i ty, kter\u00e9 se t\u00fdkaj\u00ed aktualizace state-database: po\u010det blok\u016f zpracov\u00e1van\u00fdch na uzlu, jejich velikost, po\u010det transakc\u00ed, po\u010det p\u0159epnut\u00ed mezi forky \u0159et\u011bzc\u016f, po\u010det neplatn\u00fdch blok\u016f, \u010das pr\u00e1ce virtu\u00e1ln\u00edho stroje, doba zafixov\u00e1n\u00ed dat atd. To umo\u017en\u00ed nepl\u00e9st s\u00ed\u0165ov\u00e9 probl\u00e9my s chybami v algoritmech zpracov\u00e1n\u00ed \u0159et\u011bzc\u016f.<\/p>\n<p><\/p>\n<p>Proces zpracov\u00e1n\u00ed transakc\u00ed ve virtu\u00e1ln\u00edm stroji m\u016f\u017ee b\u00fdt u\u017eite\u010dn\u00fdm zdrojem informac\u00ed, kter\u00e9 mohou optimalizovat pr\u00e1ci blockchainu. Po\u010det alokac\u00ed pam\u011bti, po\u010det read\/write instrukc\u00ed a dal\u0161\u00ed metriky t\u00fdkaj\u00edc\u00ed se \u00fa\u010dinnosti prov\u00e1d\u011bn\u00ed k\u00f3du kontrakt\u016f mohou poskytnout mnoho u\u017eite\u010dn\u00fdch informac\u00ed v\u00fdvoj\u00e1\u0159\u016fm. Z\u00e1rove\u0148 jsou chytr\u00e9 kontrakty programy, a tedy teoreticky mohou spot\u0159ebov\u00e1vat jak\u00e9koli zdroje: cpu\/memory\/network\/storage, tak\u017ee zpracov\u00e1n\u00ed transakc\u00ed je pom\u011brn\u011b neur\u010dit\u00e1 f\u00e1ze, kter\u00e1 se nav\u00edc v\u00fdrazn\u011b m\u011bn\u00ed p\u0159i p\u0159echodu mezi verzemi a p\u0159i zm\u011bn\u011b k\u00f3du kontrakt\u016f. Proto jsou metriky t\u00fdkaj\u00edc\u00ed se zpracov\u00e1n\u00ed transakc\u00ed tak\u00e9 pot\u0159ebn\u00e9 pro efektivn\u00ed optimalizaci v\u00fdkonu blockchainu.<\/p>\n<p><\/p>\n<h2 id=\"poluchenie-klientom-uvedomleniya-o-vklyuchenii-tranzakcii-v-blokcheyn\">Ozn\u00e1men\u00ed z\u00e1kazn\u00edkovi o zapnut\u00ed transakce v blockchainu<\/h2>\n<p><\/p>\n<p>Toto je z\u00e1v\u011bre\u010dn\u00e1 f\u00e1ze z\u00edsk\u00e1n\u00ed blockchainov\u00e9 slu\u017eby klientem, ve srovn\u00e1n\u00ed s ostatn\u00edmi f\u00e1zemi zde nejsou velk\u00e9 n\u00e1klady, ale stejn\u011b je t\u0159eba vz\u00edt v \u00favahu mo\u017enost, \u017ee klient obdr\u017e\u00ed objemnou odpov\u011b\u010f z uzlu (nap\u0159\u00edklad chytr\u00fd kontrakt vracej\u00edc\u00ed pole dat). V ka\u017ed\u00e9m p\u0159\u00edpad\u011b je tento moment nejd\u016fle\u017eit\u011bj\u0161\u00ed pro toho, kdo se pt\u00e1: \u201ekolik tps m\u00e1 v\u00e1\u0161 blockchain?\u201c, proto\u017ee v tuto chv\u00edli se zaznamen\u00e1v\u00e1 doba z\u00edsk\u00e1n\u00ed slu\u017eby. <\/p>\n<p><\/p>\n<p>V tomto m\u00edst\u011b mus\u00ed b\u00fdt odesl\u00e1no celkov\u00e9 mno\u017estv\u00ed \u010dasu, kter\u00e9 z\u00e1kazn\u00edk str\u00e1vil \u010dek\u00e1n\u00edm na odpov\u011b\u010f od blockchainu, pr\u00e1v\u011b tento \u010das bude u\u017eivatel o\u010dek\u00e1vat jako potvrzen\u00ed ve sv\u00e9 aplikaci, a jeho optimalizace je hlavn\u00edm \u00fakolem v\u00fdvoj\u00e1\u0159\u016f.<\/p>\n<p><\/p>\n<h1 id=\"zaklyuchenie\">Z\u00e1v\u011br<\/h1>\n<p><\/p>\n<p>Na z\u00e1klad\u011b v\u00fdsledk\u016f lze popsat typy operac\u00ed prov\u00e1d\u011bn\u00fdch v blockchainech a rozd\u011blit je do n\u011bkolika kategori\u00ed:<\/p>\n<p><\/p>\n<ol>\n<li>kryptografick\u00e9 transformace, tvorba d\u016fkaz\u016f<\/li>\n<li>peer-to-peer networking, replikace transakc\u00ed a blok\u016f<\/li>\n<li>zpracov\u00e1n\u00ed transakc\u00ed, prov\u00e1d\u011bn\u00ed chytr\u00fdch kontrakt\u016f<\/li>\n<li>aplikace zm\u011bn v blockchainu na state database, aktualizace dat o transakc\u00edch a bloc\u00edch<\/li>\n<li>read-only dotazy na state database, API blockchainov\u00e9ho uzlu, subscribe slu\u017eby <\/li>\n<\/ol>\n<p><\/p>\n<p>Obecn\u011b plat\u00ed, \u017ee technick\u00e9 po\u017eadavky na uzly modern\u00edch blockchain\u016f jsou velmi p\u0159\u00edsn\u00e9 \u2014 to jsou rychl\u00e9 CPU pro kryptografii, velk\u00e9 mno\u017estv\u00ed opera\u010dn\u00ed pam\u011bti pro ukl\u00e1d\u00e1n\u00ed a rychl\u00fd p\u0159\u00edstup ke state database, s\u00ed\u0165ov\u00e1 interakce vyu\u017e\u00edvaj\u00edc\u00ed velk\u00e9 mno\u017estv\u00ed sou\u010dasn\u011b otev\u0159en\u00fdch p\u0159ipojen\u00ed, rozs\u00e1hl\u00e9 \u00falo\u017ei\u0161t\u011b. Tyto vysok\u00e9 po\u017eadavky a r\u016fzn\u00e9 typy operac\u00ed nevyhnuteln\u011b vedou k tomu, \u017ee uzl\u016fm m\u016f\u017ee chyb\u011bt zdroj, a pak se jak\u00e1koli z v\u00fd\u0161e uveden\u00fdch f\u00e1z\u00ed m\u016f\u017ee st\u00e1t dal\u0161\u00edm \u00fazk\u00fdm hrdlem pro celkov\u00fd v\u00fdkon s\u00edt\u011b.<\/p>\n<p><\/p>\n<p>P\u0159i v\u00fdvoji a hodnocen\u00ed v\u00fdkonnosti blockchain\u016f je t\u0159eba br\u00e1t v \u00favahu v\u0161echny tyto aspekty. Je nutn\u00e9 sb\u00edrat a analyzovat metriky sou\u010dasn\u011b z klient\u016f a uzl\u016f s\u00edt\u011b, hledat korelace mezi nimi, hodnotit dobu poskytov\u00e1n\u00ed slu\u017eeb klient\u016fm a br\u00e1t v \u00favahu v\u0161echny hlavn\u00ed zdroje: cpu\/memory\/network\/storage, porozum\u011bt tomu, jak jsou vyu\u017e\u00edv\u00e1ny a jak na sebe vz\u00e1jemn\u011b p\u016fsob\u00ed. To v\u0161e \u010din\u00ed porovn\u00e1v\u00e1n\u00ed rychlost\u00ed r\u016fzn\u00fdch blockchain\u016f na z\u00e1klad\u011b \u201ekolik TPS\u201c vysoce nevd\u011b\u010dn\u00fdm \u00fakolem, proto\u017ee existuje obrovsk\u00e9 mno\u017estv\u00ed r\u016fzn\u00fdch konfigurac\u00ed a stav\u016f. V rozs\u00e1hl\u00fdch centralizovan\u00fdch syst\u00e9mech, clusterech ze stovek server\u016f, jsou tyto probl\u00e9my tak\u00e9 slo\u017eit\u00e9 a vy\u017eaduj\u00ed sb\u011br mnoha r\u016fzn\u00fdch metrik, ale v blockchainech, kv\u016fli p2p s\u00edt\u00edm, virtu\u00e1ln\u00edm stroj\u016fm, prov\u00e1d\u011bj\u00edc\u00edm kontrakty, vnit\u0159n\u00ed ekonomice, je po\u010det stup\u0148\u016f svobody mnohem v\u011bt\u0161\u00ed, co\u017e \u010din\u00ed test i na n\u011bkolika serverech nevypov\u00eddaj\u00edc\u00edm a ukazuj\u00edc\u00edm pouze velmi orienta\u010dn\u00ed hodnoty, kter\u00e9 t\u00e9m\u011b\u0159 nemaj\u00ed \u017e\u00e1dnou vazbu na realitu.<\/p>\n<p><\/p>\n<p>Proto p\u0159i v\u00fdvoji v j\u00e1dru blockchainu, pro hodnocen\u00ed v\u00fdkonu a odpov\u011b\u010f na ot\u00e1zku \u201ezlep\u0161ilo se to ve srovn\u00e1n\u00ed s minul\u00fdm p\u0159\u00edpadem\u201c pou\u017e\u00edv\u00e1me relativn\u011b slo\u017eit\u00fd software, kter\u00fd orchestruji spu\u0161t\u011bn\u00ed blockchainu s des\u00edtkami uzl\u016f a automatick\u00fdm spu\u0161t\u011bn\u00edm benchmarku a sb\u011brem metrik. Bez t\u011bchto informac\u00ed je extr\u00e9mn\u011b obt\u00ed\u017en\u00e9 ladit protokoly, kter\u00e9 pracuj\u00ed s mnoha \u00fa\u010dastn\u00edky.<\/p>\n<p><\/p>\n<p>Tak\u017ee, kdy\u017e obdr\u017e\u00edte ot\u00e1zku \u201ekolik TPS m\u00e1 v\u00e1\u0161 blockchain?\u201c, nab\u00eddn\u011bte sv\u00e9mu prot\u011bj\u0161ku \u010daj a zeptejte se, zda je p\u0159ipraven se sezn\u00e1mit s des\u00edtkami graf\u016f a tak\u00e9 si vyslechnout v\u0161echny t\u0159i n\u00e1doby probl\u00e9m\u016f v\u00fdkonnosti blockchain\u016f a va\u0161e n\u00e1vrhy na jejich \u0159e\u0161en\u00ed\u2026<\/p>\n<p>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/459763\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041b\u044e\u0431\u0438\u043c\u044b\u043c \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u043c \u043e \u043b\u044e\u0431\u043e\u0439 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043e\u0442 \u043d\u0435\u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u201c\u0421\u043a\u043e\u043b\u044c\u043a\u043e tps \u0432 \u0432\u0430\u0448\u0435\u043c \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0435?\u201d. \u041e\u0434\u043d\u0430\u043a\u043e, \u043d\u0430\u0437\u0432\u0430\u043d\u043d\u043e\u0435 \u0432 \u043e\u0442\u0432\u0435\u0442 \u0447\u0438\u0441\u043b\u043e \u043e\u0431\u044b\u0447\u043d\u043e \u0438\u043c\u0435\u0435\u0442 \u043c\u0430\u043b\u043e \u043e\u0431\u0449\u0435\u0433\u043e \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0443\u0441\u043b\u044b\u0448\u0430\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0448\u0430\u044e\u0449\u0438\u0439. \u041d\u0430 \u0434\u0435\u043b\u0435, \u043e\u043d \u0445\u043e\u0442\u0435\u043b \u0441\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u201c\u043f\u043e\u0434\u043e\u0439\u0434\u0435\u0442 \u043b\u0438 \u0432\u0430\u0448 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d \u043f\u043e\u0434 \u043c\u043e\u0438 \u0431\u0438\u0437\u043d\u0435\u0441 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u201d, \u0438 \u044d\u0442\u0438 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u2014 \u044d\u0442\u043e \u043d\u0435 \u043e\u0434\u043d\u043e \u0447\u0438\u0441\u043b\u043e, \u0430 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u0439 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36157","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041b\u044e\u0431\u0438\u043c\u044b\u043c \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u043c \u043e \u043b\u044e\u0431\u043e\u0439 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043e\u0442 \u043d\u0435\u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u201c\u0421\u043a\u043e\u043b\u044c\u043a\u043e tps \u0432 \u0432\u0430\u0448\u0435\u043c \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0435?\u201d.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/skolko-tps-v-vashem-blokchejne\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u043a\u043e\u043b\u044c\u043a\u043e TPS \u0432 \u0432\u0430\u0448\u0435\u043c \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0435? | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041b\u044e\u0431\u0438\u043c\u044b\u043c \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u043c \u043e \u043b\u044e\u0431\u043e\u0439 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043e\u0442 \u043d\u0435\u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u201c\u0421\u043a\u043e\u043b\u044c\u043a\u043e tps \u0432 \u0432\u0430\u0448\u0435\u043c \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0435?\u201d.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/skolko-tps-v-vashem-blokchejne\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:09:55+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:09:55+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Kolik TPS ve va\u0161em blockchainu? | ProHoster","description":"Obl\u00edbenou ot\u00e1zkou ohledn\u011b jak\u00e9hokoli distribuovan\u00e9ho syst\u00e9mu od netechnick\u00e9ho specialisty je \u201eKolik tps je ve va\u0161em blockchainu?\u201c.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/skolko-tps-v-vashem-blokchejne","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u043a\u043e\u043b\u044c\u043a\u043e TPS \u0432 \u0432\u0430\u0448\u0435\u043c \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0435? | ProHoster","og:description":"\u041b\u044e\u0431\u0438\u043c\u044b\u043c \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u043c \u043e \u043b\u044e\u0431\u043e\u0439 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043e\u0442 \u043d\u0435\u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u201c\u0421\u043a\u043e\u043b\u044c\u043a\u043e tps \u0432 \u0432\u0430\u0448\u0435\u043c \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0435?\u201d.","og:url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/skolko-tps-v-vashem-blokchejne","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:09:55+00:00","article:modified_time":"2019-10-31T19:09:55+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36157","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 02:15:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:49:44","updated":"2026-01-22 02:15:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/36157","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=36157"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/36157\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=36157"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=36157"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=36157"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}