{"id":30047,"date":"2019-10-31T21:33:25","date_gmt":"2019-10-31T18:33:25","guid":{"rendered":"https:\/\/prohoster.info\/blog\/razbiraemsya-v-protokole-konsensusa-stellar\/"},"modified":"2019-10-31T21:33:25","modified_gmt":"2019-10-31T18:33:25","slug":"razbiraemsya-v-protokole-konsensusa-stellar","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/razbiraemsya-v-protokole-konsensusa-stellar","title":{"rendered":"Uurime Stellar konsensusprotokolli","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Uurime Stellar konsensusprotokolli\" src=\"\/wp-content\/uploads\/2019\/03\/09b61160286ae40c21269e1590fc2b92.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nStellar konsensusprotokoll on esmakordselt kirjeldatud <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stellar.org\/papers\/stellar-consensus-protocol.pdf\">teadusartiklis<\/a><\/noindex> David Mazieri poolt 2015. aastal. See on 'f\u00f6deratiivne b\u00fctsantsi kokkulepe', mis v\u00f5imaldab juhtideta detsentraliseeritud arvutiv\u00f5rkudel efektiivselt saavutada konsensust mis tahes otsuse osas. Stellar maksev\u00f5rk kasutab Stellar Consensus Protocol (SCP) s\u00fcsteemi, et hoida koosk\u00f5lastatud tehingute ajalugu, mida n\u00e4evad k\u00f5ik osalejad.<\/p>\n<p>Peetakse, et konsensusprotokollid on keerulised arusaada. SCP on lihtsam kui enamik neist, kuid jagab siiski seda mainet \u2014 osaliselt vale arusaama t\u00f5ttu, et 'f\u00f6deratiivne h\u00e4\u00e4letamine', millele p\u00fchendatakse teadusartikli esimene pool, on SCP. Kuid see pole t\u00f5si! See on lihtsalt oluline ehitusplokk, mida artikli teises pooles kasutatakse <i>t\u00f5elise<\/i> Stellar konsensusprotokolli loomiseks.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nSelles artiklis k\u00e4sitleme l\u00fchidalt, mis on \u201ekokkuleppete s\u00fcsteem\u201d, mis v\u00f5ib muuta selle \u201eb\u00fcrokraatlikuks\u201d, ja miks muuta b\u00fcrokraatlik s\u00fcsteem \u201ef\u00f6deraalseks\u201d. Seej\u00e4rel selgitame f\u00f6deraalse h\u00e4\u00e4letamisprotseduuri, millest r\u00e4\u00e4gitakse SCP artiklis, ja l\u00f5puks tutvustame SCP protokolli.<\/p>\n<h1>Kokkuleppete s\u00fcsteemid<\/h1>\n<p>\nKokkuleppete s\u00fcsteem v\u00f5imaldab osalejate grupil saavutada konsensuse mingi teema \u00fcle, n\u00e4iteks selle \u00fcle, mida l\u00f5unaks tellida.<\/p>\n<p>Meie ettev\u00f5ttes Interstellar oleme rakendanud oma s\u00f6\u00f6gikokkuleppe s\u00fcsteemi: me tellime seda, mida \u00fctleb meie operatsioonijuht John. See on lihtne ja t\u00f5hus kokkuleppete s\u00fcsteem. Me k\u00f5ik usaldame Johni ja usume, et ta leiab iga p\u00e4ev midagi huvitavat ja toitevat.<\/p>\n<p>Aga mis siis, kui John kuritarvitab meie usaldust? Ta v\u00f5ib \u00fcksi otsustada, et me k\u00f5ik peame veganiteks saama. N\u00e4dala v\u00f5i kahe p\u00e4rast kukutame t\u00f5en\u00e4oliselt ta ja anname v\u00f5imu Elizabethile. Aga \u00e4kki talle meeldivad avokaadod an\u0161oovistega ja ta arvab, et k\u00f5ik peavad olema nagu tema. V\u00f5im rikub. Seet\u00f5ttu on parem leida m\u00f5ni demokraatlikum meetod: mingi viis, et tagada, et erinevad eelistused on arvesse v\u00f5etud, samal ajal tagades \u00f5igeaegse ja \u00fcheselt m\u00f5istetava tulemuse, et v\u00e4ltida olukorda, kus keegi ei telli l\u00f5unat v\u00f5i viis inimest esitavad erinevaid tellimusi v\u00f5i arutelu venib \u00f5htuni.<\/p>\n<p>Tundub, et lahendus on lihtne: korraldada h\u00e4\u00e4letus! Aga see on petlik mulje. Kes kogub h\u00e4\u00e4letussed ja teatab tulemustest? Ja miks peaksid teised uskuma seda, mida tema \u00fctleb? V\u00f5ib-olla saame <i>eesm\u00e4rkide kohaselt<\/i> h\u00e4\u00e4letada juhtimise usaldusv\u00e4\u00e4rse juhi poolt \u2014 aga kes juhib seda <i>esimest<\/i> h\u00e4\u00e4letust? Mis siis, kui me ei suuda kokku leppida juhis? V\u00f5i kui saame kokku lepitud, aga see juht j\u00e4\u00e4b koosolekule v\u00f5i l\u00e4heb haiglasse?<\/p>\n<p>Sarnased probleemid esinevad jaotatud arvutiv\u00f5rkudes. K\u00f5ik osalised v\u00f5i s\u00f5lmed peavad kokku leppima mingisuguses lahenduses, n\u00e4iteks kelle kord on ajakohastada \u00fchist faili v\u00f5i v\u00f5tta \u00fclesanne t\u00f6\u00f6tlemise j\u00e4rjekorrast. Kr\u00fcptovaluuta v\u00f5rgus on s\u00f5lmedel korduvalt vaja valida, milline t\u00e4ielik ajalugu v\u00e4lja n\u00e4eb, mitmest v\u00f5imalikust versioonist, mis m\u00f5nikord konfliktivad. See v\u00f5rguleping tagab saajale, et m\u00fcnt on (a) kehtiv (mitte vale) ja (b) veel mitte kulutatud teises kohas. See tagab ka, et ta saab tulevikus m\u00fcndi kulutada, sest uuel saajal on samad garantiid samadel p\u00f5hjustel.<\/p>\n<p>Igas jaotatud arvutusv\u00f5rgus peab konsensus s\u00fcsteem olema t\u00f5rkekindel: see peab andma j\u00e4rjepidevaid tulemusi, hoolimata vigadest, nagu aeglased sidekanalid, mitte reageerivad s\u00f5lmed ja vale s\u00f5numite j\u00e4rjekord. <i>Byzantine<\/i> kokkulepete s\u00fcsteem on lisaks vastupidav \u00abb\u00fctsantsi\u00bb vigadele: s\u00f5lmedele, mis annavad valeinfot, olgu need siis eksimuse t\u00f5ttu v\u00f5i teadlikust katsest s\u00fcsteemi \u00f5\u00f5nestada v\u00f5i mingit eelist saada. \u00abB\u00fctsantslik\u00bb talitlush\u00e4iretaluvus \u2014 usaldus grupi otsusele, isegi kui m\u00f5ned grupiliikmed v\u00f5ivad vale anda v\u00f5i muul viisil otsuste tegemise reegleid rikkuda \u2014 sai oma nime <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%B2%D0%B8%D0%B7%D0%B0%D0%BD%D1%82%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D1%85_%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D0%BB%D0%BE%D0%B2\">B\u00fctsantsi impeeriumi kindralite allegooriast<\/a><\/noindex>, kes p\u00fc\u00fcdsid korraldada r\u00fcnnakut. <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/coinmonks\/a-note-from-anthony-if-you-havent-already-please-read-the-article-gaining-clarity-on-key-787989107969\">Hea kirjeldus<\/a><\/noindex> Anthony Stevensilt.<\/p>\n<p>Vaatleme kr\u00fcptoraha omanikku Alice'i, kes peab valima maitsva j\u00e4\u00e4tise ostmise Bobile ja Carolile oma v\u00f5la tasumise vahel. V\u00f5ib-olla tahab Alice m\u00f5lemale korraga maksta, petlikult kulutades sama m\u00fcndi. Selleks peab ta veenma Bobi arvutit, et m\u00fcnt polnud kunagi Carolile makstud, ja veenma Carol'i arvutit, et m\u00fcnt polnud kunagi Bobile makstud. B\u00fctsantsi kokkulepete s\u00fcsteem muudab selle tegelikult v\u00f5imatuks, kasutades enamusreeglist tuntud <i>kvoorumi<\/i>. Sellises v\u00f5rgus keeldub s\u00f5lmimast teatud ajalooversiooni, kuni piisav hulk v\u00f5rdsete s\u00f5lmede \u2014 kvoorum \u2014 on n\u00f5us selle \u00fcleminekuga. Kui see juhtub, moodustavad nad piisavalt suure valimibloki, et sundida \u00fclej\u00e4\u00e4nud v\u00f5rgu s\u00f5lmi nende otsusega n\u00f5ustuma. Alissa v\u00f5ib sundida m\u00f5ningaid s\u00f5lmi valetama tema nimel, kuid kui v\u00f5rk on piisavalt suur, siis tema katse summutatakse ausate s\u00f5lmede h\u00e4\u00e4ltega.<\/p>\n<p>Kui palju s\u00f5lmi on kvoorumi saavutamiseks vajalik? V\u00e4hemalt enamus, t\u00e4psemalt kvalifitseeritud enamus veaparandamiseks ja pettuse vastu. Kuid enamat arvestamiseks on vajalik teada \u00fcldine osalejate arv. Interstellar'i kontoris v\u00f5i ringkonnavalimistel saab need numbrid kergesti teada. Kuid kui teie grupp on halvasti m\u00e4\u00e4ratletud v\u00f5rk, kuhu s\u00f5lmed saavad vabalt siseneda ja v\u00e4ljuda ilma keskuseta kokkuleppimata, siis on vajalik <i>f\u00f6deratiivne<\/i> Byzantine lepingus\u00fcsteem, mis suudab m\u00e4\u00e4rata kvoorumeid mitte ette m\u00e4\u00e4ratud s\u00f5lmede loendist, vaid d\u00fcnaamiliselt pidevalt muutuva ja paratamatult mittet\u00e4ieliku s\u00f5lmede v\u00e4ljav\u00f5tte p\u00f5hjal kindlal hetkel.<\/p>\n<p>\u00dche s\u00f5lme vaatenurgast v\u00f5ib tunduda v\u00f5imatu luua kvoorumit ulatuslikus v\u00f5rgustikus, kuid see on siiski v\u00f5imalik. Selline kvoorum v\u00f5ib isegi tagada detsentraliseeritud h\u00e4\u00e4letamise tulemused. Tehniline dokument SCP n\u00e4itab, kuidas seda teha protseduuri kaudu, mida nimetatakse <i>f\u00f6deratiivne h\u00e4\u00e4letamine<\/i>.<\/p>\n<h1>Kauakestev k\u00e4itumine<\/h1>\n<p>\nArtikli \u00fclej\u00e4\u00e4nud osa kirjeldab p\u00f5hjalikumalt f\u00f6deratiivset h\u00e4\u00e4letamist ja Stellar'i konsensuse protokolli. Kui Teil ei ole huvi \u00fcksikasjade vastu, siis siin on \u00fcldine \u00fclevaade protsessist.<\/p>\n<ol>\n<li>S\u00f5lmed viivad l\u00e4bi f\u00f6deratiivse h\u00e4\u00e4letamise voorud \u00abnomineeritud\u00bb \u00fcle. F\u00f6deratiivse h\u00e4\u00e4letamise voor t\u00e4hendab:\n<ul>\n<li>S\u00f5lm h\u00e4\u00e4letab mingi kinnituse \u00fcle, n\u00e4iteks: \u00abMa soovitan v\u00e4\u00e4rtust V\u00bb;\n<\/li>\n<li>S\u00f5lm kuulab osaliste h\u00e4\u00e4li, kuni leiab sellise, kes suudab \u00abaktsepteerida\u00bb;\n<\/li>\n<li>S\u00f5lm otsib \u00abkvoorumi\u00bb selle kinnituse jaoks. Kvoorum \u00abkinnitab\u00bb nomineeritud.<\/li>\n<\/ul>\n<\/li>\n<li>Kui s\u00f5lm suudab kinnitada \u00fcht v\u00f5i mitut kandidaati, proovib ta \"valimis\" ette valmistada mitmete f\u00f6deratiivsete h\u00e4\u00e4lte ringide kaudu.\n<\/li>\n<li>Kui s\u00f5lm on v\u00f5imeline kontrollima valimis valmistumist, p\u00fc\u00fcab ta seda kinnitada veelgi suuremate f\u00f6deratiivsete h\u00e4\u00e4lte ringide kaudu.\n<\/li>\n<li>Kui s\u00f5lm suudab kinnitada valimise, v\u00f5ib ta selle valimise v\u00e4\u00e4rtust \"v\u00e4ljastada\", kasutades seda konsensuse tulemuseks.<\/li>\n<\/ol>\n<p>\nNeed sammud sisaldavad mitmeid f\u00f6deratiivsete h\u00e4\u00e4lte ringe, mis kokku moodustavad \u00fche SCP ringi. Uurime l\u00e4hemalt, mis igas sammus toimub.<\/p>\n<h1>F\u00f6deratiivne h\u00e4\u00e4letamine<\/h1>\n<p>\nF\u00f6deratiivne h\u00e4\u00e4letamine on protseduur, et m\u00e4\u00e4rata, kas v\u00f5rk suudab kokku leppida ettepanekus. H\u00e4\u00e4lte ringis peab iga s\u00f5lm valima \u00fche paljusid v\u00f5imalikke v\u00e4\u00e4rtusi, kuid ta ei saa seda teha, enne kui ei ole kindel, et teised s\u00f5lmed ei vali erinevat tulemust. Selleks, et selles veenduda, vahetavad s\u00f5lmed massiliselt s\u00f5numeid edasi-tagasi. <i>kinnitas<\/i>, et <i>kvorum<\/i> s\u00f5lmed <i>vastu v\u00f5tma<\/i> \u00fcks ja sama <i>lahendus<\/i>. J\u00e4rgmised osad selgitavad selles lauses kasutatud termineid ja kogu protseduuri.<\/p>\n<h1>Kvoorumeid ja kvoorumi jagunemisi<\/h1>\n<p>\nAlustame kvoorumi m\u00e4\u00e4ratlemisest. Nagu eespool arutasime, on hajutatud v\u00f5rkus, kus liikmed muudavad pidevalt oma koosseisu, v\u00f5imatu ette teada s\u00f5lmede arvu ning seega, kui palju on vaja enamuse saavutamiseks. F\u00f6deraalsed h\u00e4\u00e4letused lahendavad selle probleemi, esitades uue idee <i>kvoorumi jagunemisest<\/i> (quorum slice): v\u00e4ike hulk v\u00f5rdselt omavahel \u00fchendatud s\u00f5lmi, kellele s\u00f5lm usaldab teabe edastamise h\u00e4\u00e4letamise oleku kohta \u00fclej\u00e4\u00e4nud v\u00f5rgus. Iga s\u00f5lm m\u00e4\u00e4rab oma kvoorumi jagunemise (millega ta tegelikult liitub).<\/p>\n<p>Kvoorumi moodustamine algab kvoorumi jagunemisest. Iga s\u00f5lme juurde lisatakse tema jagunemise s\u00f5lmed. Seej\u00e4rel lisatakse nende s\u00f5lmede jagunemise liikmed <i>ja nii edasi. Aja jooksul satub \u00fcha rohkem s\u00f5lmi, mida te ei saa lisada, kuna nad on juba jagunemises. Kui uusi s\u00f5lmi enam pole, l\u00f5ppeb protsess: oleme moodustanud kvoorumi algse s\u00f5lme kvoorumi jagunemise kaudu 'transitiivse sulgemisega'.<\/i> ja nii edasi. Protsessi k\u00e4igus satute j\u00e4rjest rohkemate s\u00f5lmedega, mida ei saa lisada, kuna need on juba kvoodis. Kui uusi s\u00f5lmi enam pole, peatutakse: oleme loonud kvoori \u201etransitiivse sulgemise\u201d abil (transitive closure) algse s\u00f5lme kvoorist.<\/p>\n<p><img decoding=\"async\" alt=\"Uurime Stellar konsensusprotokolli\" src=\"\/wp-content\/uploads\/2019\/03\/6991e3f9a22d920e4a5e9c161f32dee1.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Ette leida antud s\u00f5lmest kvorumit...<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Uurime Stellar konsensusprotokolli\" src=\"\/wp-content\/uploads\/2019\/03\/52b3d435a8f4a67b56deb43c83fee828.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>...lisame tema l\u00f5ike liikmeid...<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Uurime Stellar konsensusprotokolli\" src=\"\/wp-content\/uploads\/2019\/03\/0820e9ca560caf9ebfa92db8e7a1da85.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>...siis lisame nende s\u00f5lmede l\u00f5ikude liikmeid.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Uurime Stellar konsensusprotokolli\" src=\"\/wp-content\/uploads\/2019\/03\/539933eb3c279fa7da68fc9049516fc8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>J\u00e4tkame, kuni lisamiseks pole enam s\u00f5lmi.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Uurime Stellar konsensusprotokolli\" src=\"\/wp-content\/uploads\/2019\/03\/48058639262412514641063a10503a01.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Uurime Stellar konsensusprotokolli\" src=\"\/wp-content\/uploads\/2019\/03\/d068fb06f35337ae68c35b4606f329ae.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Lisamiseks pole s\u00f5lmi j\u00e4\u00e4nud. See on kvorum.<\/i><\/p>\n<p>Tegelikult v\u00f5ib iga s\u00f5lm kuuluda rohkem kui \u00fchte l\u00f5iku. Kvorumi moodustamiseks valige ainult \u00fcks l\u00f5ik ja lisage liikmed; seej\u00e4rel valige iga liikme jaoks m\u00f5ni muu l\u00f5ik ja lisage liikmed <i>sellest<\/i> l\u00f5ik ja nii edasi. See t\u00e4hendab, et iga s\u00f5lm on osa mitmest v\u00f5imalikust kvorumist.<\/p>\n<p><img decoding=\"async\" alt=\"Uurime Stellar konsensusprotokolli\" src=\"\/wp-content\/uploads\/2019\/03\/3427406c132cfd1cd174b856a1239908.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Valige igal sammul vaid \u00fcks kvorumi l\u00f5ik.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Uurime Stellar konsensusprotokolli\" src=\"\/wp-content\/uploads\/2019\/03\/79a8728890ecb36b2e127b1b76c44fc8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Uurime Stellar konsensusprotokolli\" src=\"\/wp-content\/uploads\/2019\/03\/22fe0422c73cdf5fb5416e389934c5c3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Uurime Stellar konsensusprotokolli\" src=\"\/wp-content\/uploads\/2019\/03\/60379efdde3b88fb9c86de6c5b4a0b62.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>\u00dcks v\u00f5imalik kvorum. V\u00f5i alternatiivne variant...<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Uurime Stellar konsensusprotokolli\" src=\"\/wp-content\/uploads\/2019\/03\/341f1e897be1474ee2d67324da2134b1.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>...valime teisi l\u00f5ike...<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Uurime Stellar konsensusprotokolli\" src=\"\/wp-content\/uploads\/2019\/03\/8a6d605050b075bf935e6151bd1cbe2c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Uurime Stellar konsensusprotokolli\" src=\"\/wp-content\/uploads\/2019\/03\/865567aa370605b7cf10da3457c3d158.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>\u2026(kui see on v\u00f5imalik)\u2026<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Uurime Stellar konsensusprotokolli\" src=\"\/wp-content\/uploads\/2019\/03\/6343f774104454d62e7c8681bf25dbcb.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>...moodustab teise kvorumi.<\/i><\/p>\n<p>Kuidas s\u00f5lm teab, millistes l\u00f5ikudes teised s\u00f5lmed on? Just nagu teavet teiste s\u00f5lmede kohta: edastustest, mida iga s\u00f5lm v\u00f5rku edastab, kui tema h\u00e4\u00e4letamise olek muutub. Iga edastus sisaldab teavet edastava s\u00f5lme l\u00f5ikude kohta. Tehnilises dokumendis SCP ei ole suhtlemismehhanismi m\u00e4\u00e4ratletud. Teostustes kasutatakse tavaliselt <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Gossip_protocol\">gossip protokolli<\/a><\/noindex> \u00f5igustatud s\u00f5numite edastamiseks kogu v\u00f5rgus.<\/p>\n<p>Tuletame meelde, et mittefederatiivses B\u00fctsantsi konsensuse s\u00fcsteemis m\u00e4\u00e4ratakse kvoorum kui enamus k\u00f5igist s\u00f5lmpunktidest. B\u00fctsantsi konsensuse s\u00fcsteem on v\u00e4lja t\u00f6\u00f6tatud k\u00fcsimuse seisukohalt: kui palju ebaausaid s\u00f5lmpunkte suudab s\u00fcsteem taluda? N s\u00f5lmpunktiga s\u00fcsteemis, mis on projekteeritud taluma f riket (pettuseid), peab s\u00f5lm suutma saavutada edusamme, saades vastuse N\u2212f osalejalt, kuna f neist ei pruugi t\u00f6\u00f6tada. Kuid vastuse saades N\u2212f osalejalt, v\u00f5ib eeldada, et k\u00f5ik f osalejat (kellest s\u00f5lm vastust ei saanud) on tegelikult ausad. Seega on pahatahtlikud f N\u2212f osalejast (kellest saadi vastus). Et s\u00f5lmed j\u00f5uaksid \u00fchisele konsensusele, peab aus olema enamus \u00fclej\u00e4\u00e4nud s\u00f5lmpunktidest, s.t. meil on vajalik, et N\u2212f oleks suurem kui 2f v\u00f5i N &gt; 3f. Seega on tavaliselt s\u00fcsteem, mis on projekteeritud taluma f riket, kokku N=3f+1 s\u00f5lmpunkti ja kvoorumi suurus on 2f+1. Kui ettepanek \u00fcletab kvoorumi piiri, on \u00fclej\u00e4\u00e4nud v\u00f5rgu liikmed veendunud, et k\u00f5ik konkurentsiv\u00f5imelised ettepanekud eba\u00f5nnestuvad. Nii j\u00f5uab v\u00f5rk tulemusele.<\/p>\n<p>Kuid f\u00f6deratiivses B\u00fctsantsi lepingute s\u00fcsteemis ei saa mitte ainult olla enamus (sest keegi ei tea v\u00f5rgu \u00fcldist suurust), vaid enamuse m\u00f5isted on t\u00e4ielikult kasutud! Kui liitumine s\u00fcsteemiga on avatud, v\u00f5ib keegi saavutada enamuse, tehes nn Sybilli r\u00fcnnaku: liitudes mitmeid kordi v\u00f5rku eri s\u00f5lmede kaudu. Miks siis v\u00f5ib \u00fclemineku sulgemist l\u00f5igata nimetada <i>kvoorumi<\/i>, ja kuidas see suudab maha suruda konkurentide ettepanekuid?<\/p>\n<p>Tehniliselt ei suuda! Kujutage ette v\u00f5rgustikku, kus on kuus s\u00f5lme, kus kaks kolmikute r\u00fchma on \u00fcksteise kvorumis l\u00f5igatud. Esimene alagrupp v\u00f5ib teha otsuse, millest teine kunagi kuulda ei saa ja vastupidi. Selle v\u00f5rgu jaoks ei ole mingit v\u00f5imalust konsensuse saavutamiseks (v\u00e4lja arvatud juhuslikult).<\/p>\n<p>Seet\u00f5ttu n\u00f5uab SCP, et f\u00f6deratiivse h\u00e4\u00e4letamise jaoks (ja artikli oluliste teoreemide kohaldamiseks) peab v\u00f5rgul olema omadus, mida nimetatakse <i>kvorumite ristumiseks<\/i>. Selle omadusega v\u00f5rgus kattuvad alati v\u00e4hemalt \u00fches s\u00f5lmes k\u00f5ik kaks kvroomi, mille saate koostada. Selleks, et m\u00e4\u00e4ratleda v\u00f5rgu valitsevad meeleolud, on see sama hea kui omada enamust. Intuitiivselt t\u00e4hendab see, et kui m\u00f5ni kvroom n\u00f5ustub v\u00e4itega X, siis ei saa \u00fckski teine kvroom kunagi n\u00f5ustuda millegi muuga, sest see peab tingimata sisaldama m\u00f5nda s\u00f5lme esimesest kvroomist, mis on juba h\u00e4\u00e4letanud X-i poolt.<\/p>\n<p><img decoding=\"async\" alt=\"Uurime Stellar konsensusprotokolli\" src=\"\/wp-content\/uploads\/2019\/03\/5b0aeec99e285b4bbeb92ec5b8dfe69d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Kui v\u00f5rgus on kvroomide kattuvus...<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Uurime Stellar konsensusprotokolli\" src=\"\/wp-content\/uploads\/2019\/03\/bdb3866cb02fb5991446f0cb0fa5a4fd.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>...siis k\u00f5ik kaks kvroomi, mida saate koostada...<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Uurime Stellar konsensusprotokolli\" src=\"\/wp-content\/uploads\/2019\/03\/29ee8d1ce9fba6c5c24386ce1c1c639b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>...kattuvad alati.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Uurime Stellar konsensusprotokolli\" src=\"\/wp-content\/uploads\/2019\/03\/6f1ef2b9896669c10fd19f1acd52db70.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Uurime Stellar konsensusprotokolli\" src=\"\/wp-content\/uploads\/2019\/03\/6849569e849ac3b5487d31e0bf22a596.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n(Muidugi v\u00f5ivad kattuvad s\u00f5lmed osutuda bijantsiete-lahkudeks v\u00f5i halbades aspektides n\u00f5rkadeks. Sel juhul ei aita kvroomide kattumine \u00fcldse v\u00f5rku kokku leppida. Seet\u00f5ttu p\u00f5hinevad paljud tulemused tehnilises dokumendis SCP avalikult v\u00e4ljendatud eeldustel, n\u00e4iteks et v\u00f5rgu kvroomide kattuvus j\u00e4\u00e4b alles... <i>...isegi p\u00e4rast halbade s\u00f5lmede eemaldamist.<\/i>. Lihtsuse huvides j\u00e4tame need eeldused... <i>...varjatuks.<\/i> ...artikli \u00fclej\u00e4\u00e4nud osas).<\/p>\n<p>M\u00f5nikord v\u00f5ib tunduda m\u00f5istlik, et s\u00f5ltumatute s\u00f5lmede v\u00f5rgus on usaldusv\u00e4\u00e4rne kvoorumi \u00fcletamine v\u00f5imalik. Kuid on kaks p\u00f5hjust, miks see nii on.<\/p>\n<p>Esimene p\u00f5hjus on interneti olemasolu. Internet on ideaalne n\u00e4ide s\u00f5ltumatute s\u00f5lmede v\u00f5rgust, millel on kvoorumi \u00fcletamine. Enamik interneti s\u00f5lmi on \u00fchendatud ainult m\u00f5ne teise kohaliku s\u00f5lmega, kuid need v\u00e4ikesed kogumid kattuvad piisavalt, et iga s\u00f5lm oleks kergesti k\u00e4tte saadav mistahes muust s\u00f5lmest mingi marsruudi kaudu.<\/p>\n<p>Teine p\u00f5hjus on spetsiifiline Stellar maksev\u00f5rgustikule (SCP k\u00f5ige levinum rakendus). Igal varal Stellar v\u00f5rgus on emitter ning Stellar soovitused n\u00f5uavad, et igal emitteril oleks m\u00e4\u00e4ratud \u00fcks v\u00f5i mitu s\u00f5lme, mis t\u00f6\u00f6tlevad lunamisp\u00e4ringud. On teie huvides kaasata otse v\u00f5i kaudselt need s\u00f5lmed iga teid huvitava vara kvora l\u00f5ikes. Siis kattuvad k\u00f5ikide s\u00f5lmede kvora, mis on huvitatud antud varast, v\u00e4hemalt nende lunamis\u00f5lmedega. S\u00f5lmed, mis on huvitatud mitmest varast, kaasavad oma kvora l\u00f5ikesse k\u00f5ik vastava emitentide lunamis\u00f5lmed ja p\u00fc\u00fcavad \u00fchendada k\u00f5ik varad kokku. Lisaks, igasuguseid varasid, mis ei ole omavahel seotud, ja <i>ei tohiks olla omavahel seotud<\/i> \u2014 on see planeeritud, et sellel v\u00f5rgul ei oleks kvora kattuvust (n\u00e4iteks dollaritsooni pangad tahavad m\u00f5nikord kaubelda eurotsooni pankade ja peso tsooni pankadega, mist\u00f5ttu nad on \u00fches v\u00f5rgus, kuid neil ei ole mingit huvi eraldi laste v\u00f5rgustiku, mis kaupleb pesapallikaartidega, vastu).<\/p>\n<p>Muidugi, <i>ootamine<\/i> kvorumite ristumised ei ole <i>garantii<\/i>. Teised b\u00fctsantsi lepingus\u00fcsteemid on oma keerukuses suuresti t\u00e4nu kvorumite garantiile. Oluline uuendus SCP-s on see, et see vabastab kvorumite loomise vastutusest konsensuse algoritmi ning toob selle rakendustasemele. Seega, kuigi f\u00f6deratiivne h\u00e4\u00e4letamine on piisavalt \u00fcldine igasuguste k\u00fcsimuste h\u00e4\u00e4letamiseks, s\u00f5ltub selle usaldusv\u00e4\u00e4rsus tegelikult kriitiliselt nende t\u00e4henduste laiemast m\u00f5ttest. M\u00f5ned h\u00fcpoteetilised kasutusmood v\u00f5ivad osutuda v\u00e4hem mugavaks h\u00e4sti seotud v\u00f5rkude loomisel kui teised.<\/p>\n<h1>H\u00e4\u00e4letamine, vastuv\u00f5tt ja kinnitamine<\/h1>\n<p>\nF\u00f6deratiivse h\u00e4\u00e4letamise voorus hakkab s\u00f5lm n-\u00f6 valima mingit v\u00e4\u00e4rtust V. See t\u00e4hendab s\u00f5numi: \u201eMina olen s\u00f5lm N, minu kvorumite l\u00f5iked Q ja ma h\u00e4\u00e4letan V poolt.\u201d Kui s\u00f5lm h\u00e4\u00e4letab selliselt, lubab ta, et ta ei ole kunagi V vastu h\u00e4\u00e4letanud ja ei tee seda kunagi.<\/p>\n<p>\u00dcksus n\u00e4eb, kuidas teised h\u00e4\u00e4letavad \u00fchtse v\u00f5rgu\u00fclekande kaudu. Kui \u00fcksus kogub piisavalt selliseid s\u00f5numeid, suudab ta j\u00e4lgida kvoorumite l\u00f5ike ja proovida leida kvoorume. Kui ta n\u00e4eb kvoorumit, mis h\u00e4\u00e4letab V poolt, v\u00f5ib ta edasi liikuda <i>vastuv\u00f5tmiseni<\/i> V ja edastada selle uue s\u00f5numi v\u00f5rku: \u00abMina olen \u00fcksus N, minu kvoorumi l\u00f5iked Q ja ma v\u00f5tan vastu V\u00bb. Vastuv\u00f5tt tagab tugevama garantii kui lihtsalt h\u00e4\u00e4letamine. Kui \u00fcksus h\u00e4\u00e4letab V poolt, ei v\u00f5i ta kunagi h\u00e4\u00e4letada teiste valikute poolt. Kuid kui \u00fcksus v\u00f5tab vastu V, siis ei v\u00f5ta \u00fckski v\u00f5rgu \u00fcksus kunagi vastu teisi valikuid (teoreem 8 SCP tehnilises dokumendis t\u00f5estab seda).<\/p>\n<p>Muidugi, on suur t\u00f5en\u00e4osus, et kohe ei leita kvoorumit, mis n\u00f5ustuks V-ga. Teised \u00fcksused v\u00f5ivad h\u00e4\u00e4letada teiste v\u00e4\u00e4rtuste eest. Kuid \u00fcksusel on veel \u00fcks v\u00f5imalus liikuda lihtsast h\u00e4\u00e4letamisest vastuv\u00f5tmiseni. N v\u00f5ib v\u00f5tta vastu teise v\u00e4\u00e4rtuse W, isegi kui ta ei ole selle jaoks h\u00e4\u00e4letanud, ja isegi kui ta ei n\u00e4e selle jaoks kvoorumit. Selleks, et muuta oma h\u00e4\u00e4lt, piisab n\u00e4gemisest <i>blokeeriv komplekt<\/i> s\u00f5lmed, mis on vastu v\u00f5tnud W. Blokeeriv hulk \u2014 see koosneb \u00fchest s\u00f5lmest iga kvoorumi l\u00f5igust N. Nimi viitab sellele, et see suudab <i>blokeerida<\/i> iga muud v\u00e4\u00e4rtust. Kui k\u00f5ik selles hulgas olevad s\u00f5lmed v\u00f5tavad vastu W, siis (teoreem 8) ei \u00f5nnestu kunagi moodustada kvoorumit, mis v\u00f5taks vastu muud v\u00e4\u00e4rtust, ja seega on N-i jaoks ka W vastuv\u00f5tmine ohutu.<\/p>\n<p><img decoding=\"async\" alt=\"Uurime Stellar konsensusprotokolli\" src=\"\/wp-content\/uploads\/2019\/03\/6dd4ec5595ab863daf684fec670d83a6.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>S\u00f5lm N, millel on kolm kvoorumi l\u00f5iku.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Uurime Stellar konsensusprotokolli\" src=\"\/wp-content\/uploads\/2019\/03\/b65e32160570af2883eef9990a74e3bd.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>B-D-F \u2014 blokeeriv hulk N jaoks: see sisaldab \u00fchte s\u00f5lme iga N-i l\u00f5igu kohta.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Uurime Stellar konsensusprotokolli\" src=\"\/wp-content\/uploads\/2019\/03\/7e17b4a9ee83aac7fa2b68b2f9fae066.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>B-E on samuti blokeeriv hulk N jaoks, kuna E esindab kahes N-i l\u00f5igus.<\/i><\/p>\n<p>Kuid blokeeriv hulk ei ole kvoorum. Oleks liiga lihtne petta s\u00f5lme N, et see aktsepteeriks vajalikku v\u00e4\u00e4rtust, kui on piisav, et h\u00e4kkida \u00fcks ainus s\u00f5lm igas N l\u00f5ikes. Seet\u00f5ttu ei t\u00e4henda v\u00e4\u00e4rtuse aktsepteerimine veel h\u00e4\u00e4letamise l\u00f5ppu. Selle asemel peab N v\u00e4\u00e4rtust kinnitama, see t\u00e4hendab n\u00e4gema kvoorumit s\u00f5lmedest, mis selle aktsepteerivad. Kui ta j\u00f5uab selleni, t\u00f5estab tehniline dokument SCP (teoreem 11), et \u00fclej\u00e4\u00e4nud v\u00f5rgu osa kinnitab samuti sama v\u00e4\u00e4rtust, seega l\u00f5petab N f\u00f6deratiivse h\u00e4\u00e4letamise kindla v\u00e4\u00e4rtuse tulemusega.<\/p>\n<p><img decoding=\"async\" alt=\"Uurime Stellar konsensusprotokolli\" src=\"\/wp-content\/uploads\/2019\/03\/bd68dc5172460c17fa2de54fcc0d9017.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>F\u00f6deratiivne h\u00e4\u00e4letamine.<\/i><\/p>\n<p>H\u00e4\u00e4letamise, aktsepteerimise ja kinnitamise protsess moodustab \u00fche t\u00e4ispika f\u00f6deratiivse h\u00e4\u00e4letamise ringi. Stellar konsensusprotokoll kogub palju selliseid ringe, et luua t\u00e4iskonsensuslik s\u00fcsteem.<\/p>\n<h1>Stellar konsensusprotokoll<\/h1>\n<p>\nKaks k\u00f5ige olulisemat omadust konsensuslikust s\u00fcsteemist on <i>turvalisus<\/i> ja <i>eluj\u00f5ud<\/i>. Konsensusalgotitm on \"turvaline\", kui see ei saa kunagi anda erinevaid tulemusi erinevatele osalejatele (Bob'i ajalugu ei ole kunagi vastuolus Caroliga). \"Eluj\u00f5ud\" t\u00e4hendab, et algoritm annab alati tulemuse, st ei j\u00e4\u00e4 kinni.<\/p>\n<p>K\u00e4esolev f\u00f6deraalne h\u00e4\u00e4letamisprotseduur <i>on turvaline<\/i> selle t\u00e4henduses, et kui s\u00f5lm kinnitab v\u00e4\u00e4rtust V, ei tohi \u00fckski teine s\u00f5lm kinnitada teist v\u00e4\u00e4rtust. Kuid \"mitte kinnitada teist v\u00e4\u00e4rtust\" ei t\u00e4henda, et see peab tingimata midagi kinnitama. Osalejad v\u00f5ivad h\u00e4\u00e4letada nii paljude erinevate v\u00e4\u00e4rtuste \u00fcle, et \u00fckski ei j\u00f5ua vastuv\u00f5tu k\u00fcnniseni. See t\u00e4hendab, et f\u00f6deraalsetes h\u00e4\u00e4letustes puudub <i>eluj\u00f5ud<\/i>.<\/p>\n<p>Stellar konsensusprotokoll kasutab f\u00f6deratiivset h\u00e4\u00e4letamist, et tagada nii turvalisus kui ka eluj\u00f5ud. (SCP turvalisuse ja eluj\u00f5udluse garantiil on teoreetiline piir. Konstruktsioon valib v\u00e4ga tugeva turvalisuse garanteerimise, ohverdades veidi eluj\u00f5udlust, kuid arvestades piisavat aega, saavutatakse k\u00f5rge t\u00f5en\u00e4osusega konsensus.) \u00dcldiselt seisneb idee selles, et korraldatakse mitmeid f\u00f6deratiivseid h\u00e4\u00e4letusi mitmete v\u00e4\u00e4rtuste \u00fcle, kuni \u00fcks neist l\u00e4bib t\u00e4ielikult k\u00f5ik SCP h\u00e4\u00e4letamisfaasid, nagu allpool kirjeldatud.<\/p>\n<p>V\u00e4\u00e4rtused, mille \u00fcle SCP konsensusele p\u00fc\u00fcab, v\u00f5ivad olla tehingute ajalugu, l\u00f5unaeine tellimus v\u00f5i midagi muud, kuid oluline on m\u00e4rkida, et need ei ole v\u00e4\u00e4rtused, mis on vastu v\u00f5etud v\u00f5i kinnitatud. Selle asemel toimub f\u00f6deratiivne h\u00e4\u00e4letamine <i>nende v\u00e4\u00e4rtuste v\u00e4idete \u00fcle<\/i>.<\/p>\n<p>Esimesed f\u00f6deratiivse h\u00e4\u00e4letamise voorud toimuvad <i>esitamisseerval<\/i> (nomination phase), avalike selgituste kogumisel, mis on m\u00e4\u00e4ratud vormingule \u00abMa esitan V\u00bb, on v\u00f5imalik paljude erinevate v\u00e4\u00e4rtuste V jaoks. Esitamise eesm\u00e4rk on leida \u00fcks v\u00f5i mitu selgitust, mis l\u00e4hevad edasi vastuv\u00f5tmise ja kinnitamise protsessi.<\/p>\n<p>Kinnitatavate kandidaatide leidmisel liigub SCP h\u00e4\u00e4letamise etappi, kus eesm\u00e4rk on leida teatud <i>h\u00e4\u00e4letus<\/i> (st ettepaneku v\u00e4\u00e4rtuse anum) ja kvoorum, mis suudab kuulutada <i>kommitt<\/i> selle jaoks (commit). Kui kvoorum teeb h\u00e4\u00e4letuse kommitti, v\u00f5etakse selle v\u00e4\u00e4rtus konsensuse p\u00f5hjal vastu. Kuid enne, kui s\u00f5lm saab kommitti h\u00e4\u00e4letada, peab ta k\u00f5igepealt kinnitama <i>t\u00fchistuse<\/i> k\u00f5igi madalama arvu h\u00e4\u00e4letuste puhul. Need sammud \u2014 h\u00e4\u00e4letuste t\u00fchistamine, et leida see, mille jaoks saab kommitti kinnitada \u2014 h\u00f5lmavad mitmeid ringe f\u00f6deraalset h\u00e4\u00e4letamist mitmete h\u00e4\u00e4letuste deklaratsioonide \u00fcle.<\/p>\n<p>J\u00e4rgnevates osades k\u00e4sitletakse l\u00e4hemalt esitamise ja h\u00e4\u00e4letamise protsesse.<\/p>\n<h1>Esitamine<\/h1>\n<p>\nEtapi alguses v\u00f5ib iga s\u00f5lm spontaanselt valida v\u00e4\u00e4rtuse V ja h\u00e4\u00e4letada kinnituse \u00fcle, et \"Ma esitan V\". Selle etapi eesm\u00e4rk on kinnitada m\u00f5ne v\u00e4\u00e4rtuse esitamine f\u00f6deratiivse h\u00e4\u00e4letamise kaudu.<\/p>\n<p>V\u00f5imalik, et piisav arv s\u00f5lmi h\u00e4\u00e4letab piisavalt erinevate ettepanekute poolt ja \u00fckski esitamine ei saavuta vastuv\u00f5tu piiri. Seet\u00f5ttu, peale oma nomineerimise h\u00e4\u00e4lte edastamise, \"peegeldavad\" s\u00f5lmed oma v\u00f5rgustiku nomineerimisi. Peegeldamine (echo) t\u00e4hendab, et kui s\u00f5lm h\u00e4\u00e4letab ettepaneku V poolt, aga n\u00e4eb naabri s\u00f5numit, kes h\u00e4\u00e4letab ettepaneku W poolt, h\u00e4\u00e4letab ta n\u00fc\u00fcd nii ettepaneku V kui ka W poolt. (K\u00f5iki v\u00f5rgustiku h\u00e4\u00e4lte peegeldusi ei saa h\u00e4\u00e4letamisel kajastada, kuna see v\u00f5ib viia erinevate nominentide plahvatuseni. SCP sisaldab nende h\u00e4\u00e4lte reguleerimise mehhanismi. L\u00fchidalt \u00f6eldes, on olemas valem, et m\u00e4\u00e4rata \u201eprioriteet\u201d v\u00f5rgu vaates, ja peegeldatakse ainult k\u00f5rge prioriteediga s\u00f5lmede h\u00e4\u00e4li. Mida kauem ettepanek kestab, seda madalam on piir, seega laiendab s\u00f5lm seeria s\u00f5lmi, kelle h\u00e4\u00e4li ta peegeldab. Prioriteedi valem sisaldab \u00fche sisendidena slotinumbrit, seega v\u00f5ib k\u00f5rge prioriteediga v\u00f5rgu s\u00f5lm \u00fche sloti jaoks olla madala prioriteediga teise jaoks ja vastupidi).<\/p>\n<p>Kontseptuaalselt on samaaegne esitlemine nii V kui ka W eraldi f\u00f6deratiivsed h\u00e4\u00e4led, millest iga\u00fcks on v\u00f5imeline j\u00f5udma vastu v\u00f5tmiseni v\u00f5i heakskiitmiseni. Praktiliselt pakivad SCP protokolli s\u00f5numid need eraldi h\u00e4\u00e4led kokku.<\/p>\n<p>Kuigi h\u00e4\u00e4letamine V esitlemise poolt on lubadus mitte h\u00e4\u00e4letada V esitlemise vastu, m\u00e4\u00e4ratleb rakenduse tasand \u2014 antud juhul SCP \u2014, mida t\u00e4hendab \u201evastu\u201d. SCP ei n\u00e4e v\u00e4idet, mis on vastuolus h\u00e4\u00e4ltega \u201eMa esitan X\u201d, see t\u00e4hendab, et ei ole s\u00f5numit \u201eMa olen vastu X esitlemisele\u201d, seega v\u00f5ib s\u00f5lm h\u00e4\u00e4letada \u00fcksk\u00f5ik milliste v\u00e4\u00e4rtuste esitlemise poolt. Paljud neist kandidaatidest ei vii kuhugi, kuid l\u00f5ppkokkuv\u00f5ttes suudab s\u00f5lm heaks kiita v\u00f5i kinnitada \u00fche v\u00f5i mitu v\u00e4\u00e4rtust. Kui kandidaat on kinnitatud, siis ta muutub <i>kandidaadiks<\/i>.<\/p>\n<p><img decoding=\"async\" alt=\"Uurime Stellar konsensusprotokolli\" src=\"\/wp-content\/uploads\/2019\/03\/794f55d076ec3e1773c49d32e29c084d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>SCP esitlemine f\u00f6deratiivse h\u00e4\u00e4letamisega. \u00dchtselt pingereas olevate s\u00f5lmede poolt v\u00f5ib olla palju v\u00e4\u00e4rtusi 'B', mis on esitatud ja 'peegelduvad' s\u00f5lme.<\/i> <\/p>\n<p>Kandidaatide esitlemine v\u00f5ib viia mitme kinnitatava kandidaadi tekkimiseni. Seet\u00f5ttu n\u00f5uab SCP, et rakendustase pakuks mingisugust meetodit kandidaatide \u00fchtsesse andmesse \u00fchendamiseks. <i>komposiit<\/i> (composite). \u00dchendamise meetod v\u00f5ib olla \u00fcksk\u00f5ik milline. Peaasi, et kui see meetod on m\u00e4\u00e4ratletud, \u00fchendab iga s\u00f5lm samu kandidaate. Toitlustamise h\u00e4\u00e4letuss\u00fcsteemis v\u00f5ib \u00ab\u00fchendamine\u00bb t\u00e4hendada lihtsalt \u00fche kandidaadi tagasil\u00fckkamist. (Aga m\u00e4\u00e4ratletud viisil: iga s\u00f5lm peab valima sama v\u00e4\u00e4rtuse l\u00e4htestamiseks. N\u00e4iteks varasema valiku p\u00f5hjal t\u00e4hestikulises j\u00e4rjekorras). Stellar'i maksev\u00f5rgus, kus toimub tehingute ajaloo h\u00e4\u00e4letamine, eeldab kahe esitatud kandidaadi \u00fchendamine tehingute \u00fchendamist, mida nad sisaldavad, ja nende kahe ajatempli viimast.<\/p>\n<p>SCP-i tehniline kirjeldus t\u00f5estab (teoreem 12), et esitlemise faasi l\u00f5puks j\u00f5uab v\u00f5rk l\u00f5puks \u00fchte komposiiti. Kuid probleem on j\u00e4rgmine: f\u00f6deraalne h\u00e4\u00e4letamine on as\u00fcnkrooniline protokoll (nagu ka SCP). Teisis\u00f5nu, s\u00f5lmed ei koordineeru ajaliselt, vaid ainult s\u00f5numite kaudu, mida nad saadavad. S\u00f5lme vaatenurgast pole selge, millal <i>l\u00f5ppes<\/i> esitlemise faas. Ja kuigi k\u00f5ik s\u00f5lmed j\u00f5uavad l\u00f5puks samasse komposiiti, v\u00f5ivad nad sellel teel valida erinevaid marsruute, luues erinevaid kandidaate, ja kunagi ei saa nad \u00f6elda, milline neist on l\u00f5plik.<\/p>\n<p>Aga see pole probleem. Esitlemine on vaid ettevalmistus. Peamine on piirata kandidaatide arvu konsensuse saavutamiseks, mis toimub <i>h\u00e4\u00e4letamise<\/i> (h\u00e4\u00e4letamine).<\/p>\n<h1>H\u00e4\u00e4letamine<\/h1>\n<p>\nB\u00fcletten on paar , kus counter on t\u00e4isarv, mis algab numbrist 1, ja value on esitatud kandidaat. See v\u00f5ib olla node'i oma kandidaat v\u00f5i naabernode'i kandidaat, mille see node on vastu v\u00f5tnud. \u00dcldiselt, kui h\u00e4\u00e4letatakse, on eesm\u00e4rgiks \u00fcritada korduvalt saavutada \u00fcksmeelt v\u00f5rgu poolt mingi kandidaadi \u00fcle teatud b\u00fcletis kaudu, v\u00f5imaldades potentsiaalselt mitmeid f\u00f6deraalseid h\u00e4\u00e4letusi b\u00fcletise avalduste \u00fcle. B\u00fclettenites olevad loendurid j\u00e4lgivad tehtud katseid, ja suurema loenduriga b\u00fcletendid on eelistatud v\u00e4iksema loenduriga b\u00fcletistest. Kui b\u00fcletten  j\u00e4\u00e4b seisma, algab uus h\u00e4\u00e4letus, n\u00fc\u00fcd b\u00fcletisel .<\/p>\n<p>Oluline on eristada <i>v\u00e4\u00e4rtusi<\/i> (n\u00e4iteks mis peaks olema l\u00f5unas\u00f6\u00f6gi tellimus: pitsat v\u00f5i salateid), <i>b\u00fclette<\/i> (paar counter-value) ja <i>b\u00fclette avaldusi. SCP voor h\u00f5lmab mitmeid voorusid f\u00f6deraalsest h\u00e4\u00e4letamisest, sealhulgas j\u00e4rgmiste avalduste osas:<\/i> b\u00fcllet\u00e4\u00e4nidest. SCP voor sisaldab mitmeid voorude f\u00f6deraalse h\u00e4\u00e4letamise ringe, mille k\u00e4igus arutatakse j\u00e4rgmisi avaldusi:<\/p>\n<ul>\n<li>\u201eOlen valmis b\u00fcletise B komiteeks\u201c ja\n<\/li>\n<li>\u201eMa kuulutan v\u00e4lja b\u00fcletise B komitee\u201c<\/li>\n<\/ul>\n<p>\nSelle s\u00f5lme vaatenurgast saavutatakse konsensus, kui see leiab B-b\u00fclet\u00e4i, mille jaoks suudetakse kinnitada (st leida kvoot, mis aktsepteerib) avaldust \u201eMa kuulutan v\u00e4lja B-b\u00fcleti komitee\u201c. Sellest hetkest alates saab ohutult tegutseda, tuginedes B-s m\u00e4rgitud t\u00e4hendusele \u2014 n\u00e4iteks esitada selle l\u00f5unas\u00f6\u00f6gi tellimuse. Seda nimetatakse <i>eksternaliseerimiseks<\/i> t\u00e4henduseks. Kui b\u00fcletsl\u00e4te on kinnitatud, v\u00f5ib s\u00f5lm olla kindel, et mis tahes muu s\u00f5lm on sama t\u00e4henduse eksternaliseerinud v\u00f5i kindlasti teeb seda tulevikus.<\/p>\n<p>Kuigi kontseptuaalselt toimub paljusid f\u00f6deraalseid h\u00e4\u00e4letusi erinevate b\u00fclettide avalduste osas, vahetatakse neid siiski mitte v\u00e4ga suure hulga s\u00f5numite kaudu, sest iga s\u00f5num kapseldab hulga b\u00fclette. \u00dcks s\u00f5num edendab seega samaaegselt paljusid f\u00f6deraalseid h\u00e4\u00e4letusi, n\u00e4iteks: \u201eMa aktsepteerin b\u00fclettide komiteed vahemikus  kuni \u201c.<\/p>\n<p>Mida t\u00e4hendavad terminid \u201evalmistatud\u201c (prepared) ja \u201ekomitee\u201c (commit)?<\/p>\n<p>S\u00f5lm h\u00e4\u00e4letab valimisnimekirja kinnitamise poolt, kui ta on veendunud, et teised s\u00f5lmed ei tee valimisnimekirja kinnitamisega teisi v\u00e4\u00e4rtusi. Selle veendumise saavutamine on avalduse ettevalmistamise eesm\u00e4rk. H\u00e4\u00e4letamine, kus \u00f6eldakse: \"Olen valmis kinnitama valimisnimekirja B\", on lubadus mitte kunagi kinnitada valimisnimekirja v\u00e4iksemas osas kui B, st v\u00e4iksema loenduri kohaselt (SCP n\u00f5uab, et valimisnimekirjades oleksid v\u00e4\u00e4rtused kindlas j\u00e4rjekorras. Niisiis, valimisnimekiri  on v\u00e4iksem kui , kui N1&lt;N2, ja samuti kui N1=N2 ja V1&lt;V2). Need v\u00e4iksemad valimisnimekirjad \u201et\u00fchistatakse\u201d (aborted) ettevalmistava h\u00e4\u00e4letamise k\u00e4igus, samal ajal kui B loetakse \u201evalmis\u201d seremooniad.<\/p>\n<p>Miks t\u00e4hendab \u201eOlen valmis kinnitama valimisnimekirja B\u201d \u201eLubadus mitte kunagi lubada valimisnimekirju, mis on v\u00e4iksemad kui B\u201d? Sellep\u00e4rast, et SCP m\u00e4\u00e4ratleb t\u00fchistamise vastandina kinnitamisele. Valimisnimekirja ettevalmistamisel t\u00e4hendab h\u00e4\u00e4letamine ka teiste valimisnimekirjade t\u00fchistamise h\u00e4\u00e4letamist ja nagu me varem arutasime, on h\u00e4\u00e4letamine millegi poolt lubadus mitte kunagi h\u00e4\u00e4letada selle vastu.<\/p>\n<p>Enne kui s\u00f5num v\u00e4ljastatakse, peab s\u00f5lm esmalt leidma h\u00e4\u00e4letuse, mille ta v\u00f5ib kinnitada kui koostatud. Teisis\u00f5nu, ta viib l\u00e4bi f\u00f6deratiivse h\u00e4\u00e4letuse teema \"Olen valmis h\u00e4\u00e4letama B h\u00e4\u00e4letuse \u00fcle\", mis v\u00f5ib kehtida paljude erinevate h\u00e4\u00e4letuste kohta, kuni ta leiab selle, mis saavutab kvoorumi.<\/p>\n<p>Kust tulevad h\u00e4\u00e4letused h\u00e4\u00e4letamiseks? Esmalt edastab s\u00f5lm ettevalmistuse h\u00e4\u00e4letuseks &lt;1,C&gt;, kus C on kandidaat-komposiit, mis luuakse kandidaatide esitamise etapis. Kuid isegi p\u00e4rast h\u00e4\u00e4letamise ettevalmistamise algust v\u00f5ivad kandidaadid, kes on \u00fcles seatud, tuua esile uusi kandidaate, mis muutuvad valikute h\u00e4\u00e4letusteks. Samal ajal v\u00f5ivad osalistel olla erinevad kandidaadid ning nad v\u00f5ivad moodustada blokimeeriva hulga, mis aktsepteerib \"Olen valmis h\u00e4\u00e4letama B2 h\u00e4\u00e4letuse \u00fcle\", veenides s\u00f5lme seda samuti aktsepteerima. L\u00f5puks on olemas ajamisseade, mis genereerib uusi f\u00f6deratiivse h\u00e4\u00e4letuse vooru k\u00f5rgemate loenduritega, kui praegused h\u00e4\u00e4letused on kinni j\u00e4\u00e4nud.<\/p>\n<p>Kui s\u00f5lm leiab B-b\u00fcllet\u00e4\u00e4ni, mida saab kinnitada kui ettevalmistatud, edastab ta uue s\u00f5numi \"B b\u00fcllet\u00e4\u00e4ni kinnitamine\". See h\u00e4\u00e4lteandmise protsess \u00fctleb piramidele, et s\u00f5lm ei loobu kunagi B-st. Tegelikult, kui B on b\u00fcllet\u00e4\u00e4n , siis \"B b\u00fcllet\u00e4\u00e4ni kinnitamine \" t\u00e4hendab tingimusteta n\u00f5usolekut h\u00e4\u00e4letada iga b\u00fcllet\u00e4\u00e4ni eest  kuni . See lisamine aitab teistel s\u00f5lmedel piramidele kinnitada, kui nad on endiselt protokollis varasematel etappidel.<\/p>\n<p>Sellel etapil on oluline r\u00f5hutada, et tegu on as\u00fcnkroonsete protokollidega. Ainult seet\u00f5ttu, et \u00fcks s\u00f5lm saadab h\u00e4\u00e4lte kinnitamiseks, ei t\u00e4henda see, et tema eakaaslased teevad sama. M\u00f5ned neist v\u00f5ivad ikka veel h\u00e4\u00e4letada ettepanekute kinnitamiseks, teised v\u00f5ivad juba v\u00e4\u00e4rtuse eksternaliseerida. SCP selgitab, kuidas s\u00f5lm peaks iga t\u00fc\u00fcpi peer-to-peer s\u00f5numit s\u00f5ltumata selle faasist k\u00e4sitlema.<\/p>\n<p>Kui teade \"Ma kuulutan v\u00e4lja komitee &lt;N,C&gt;\" ei saa olla aktsepteeritud ega kinnitatud, siis on t\u00f5en\u00e4osus, et teade &lt;N+1,C&gt; v\u00f5i &lt;N+2,C&gt; \u2014 v\u00f5i igal juhul m\u00f5ni teade v\u00e4\u00e4rtusega C, mitte miski muu, kuna s\u00f5lm on juba lubanud kunagi mitte t\u00fchistada &lt;N,C&gt;. kui s\u00f5lm edastab h\u00e4\u00e4li komiteele, siis on see C v\u00f5i mitte midagi, s\u00f5ltuvalt sellest, kui kaugele konsensus l\u00e4heb. Kuid selleks ei ole s\u00f5lmele veel piisavalt, et v\u00e4ljastada C. M\u00f5ned b\u00fctsantsi peod (mis on v\u00e4hem kui kvoorum, tuginedes meie turvalisuse oletustele) v\u00f5ivad s\u00f5lmele vale anda. Teatud teate (v\u00f5i teate vahemiku) vastuv\u00f5tmine ja seej\u00e4rel kinnitamine on see, mis annab s\u00f5lmele l\u00f5puks kindluse, et v\u00e4ljastada C.<\/p>\n<p><img decoding=\"async\" alt=\"Uurime Stellar konsensusprotokolli\" src=\"\/wp-content\/uploads\/2019\/03\/c59f036bb8aa189bb3d4540f54121391.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>SCP h\u00e4\u00e4letamine f\u00f6deratiivse h\u00e4\u00e4letamise kaudu. Ei n\u00e4idata: igal hetkel v\u00f5ib t\u00f6\u00f6sse minna taimer, suurendades h\u00e4\u00e4letuse arvestit (ja v\u00f5ib-olla luua uusi komposiitkandidaate).<\/i> <\/p>\n<p>Ja see ongi k\u00f5ik! Niipea kui v\u00f5rgu konsensus saavutatakse, on see valmis seda uuesti ja uuesti tegema. Stellar'i maksev\u00f5rgus juhtub see umbes iga 5 sekundi j\u00e4rel: saavutus, mis n\u00f5uab nii turvalisust kui ka vastupidavust, mida garanteerib SCP.<\/p>\n<p>SCP saavutab selle, tuginedes mitmele voorule f\u00f6deratiivsetest h\u00e4\u00e4letustest. F\u00f6deratiivne h\u00e4\u00e4letus on v\u00f5imalik t\u00e4nu kvora l\u00f5ike m\u00f5istele: rikkaid, v\u00f5rdselt usaldatavaid s\u00f5lmed, millele iga s\u00f5lm otsustas toetuda oma (subjektiivse) kvora osana. See konfiguratsioon t\u00e4hendab, et konsensuseni on v\u00f5imalik j\u00f5uda isegi avatud liikmelisuse ja b\u00fctsantsi petetega v\u00f5rgu keskkonnas.<\/p>\n<h1>Edasi lugemine<\/h1>\n<p><\/p>\n<ul>\n<li>SCP algne tehniline dokument on saadaval <noindex><a rel=\"nofollow\" href=\"https:\/\/www.stellar.org\/papers\/stellar-consensus-protocol.pdf\">siit<\/a><\/noindex>, ja <noindex><a rel=\"nofollow\" href=\"https:\/\/datatracker.ietf.org\/doc\/draft-mazieres-dinrg-scp\/\">siin<\/a><\/noindex> rakendamise projektispetsiifikatsioonides.\n<\/li>\n<li>Protokolli SCP originaalautor David Mazier selgitab seda lihtsustatult (kuid siiski tehniliselt) <noindex><a rel=\"nofollow\" href=\"http:\/\/www.scs.stanford.edu\/~dm\/blog\/simplified-scp.html\">siit<\/a><\/noindex>.\n<\/li>\n<li>V\u00f5ib-olla olite \u00fcllatunud, et ei leidnud artiklis termineid \u201ekaevandamine\u201d v\u00f5i \u201et\u00f6\u00f6 t\u00f5end\u201d. SCP ei kasuta neid meetodeid, kuid m\u00f5ned teised konsensuse algoritmid kasutavad. Zane Witherspoon on kirjutanud saadaval <noindex><a rel=\"nofollow\" href=\"https:\/\/hackernoon.com\/a-hitchhikers-guide-to-consensus-algorithms-d81aae3eb0e3\">koond\u00fclevaate konsensusalgoritmidest<\/a><\/noindex>.\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bobg\/scp\/blob\/master\/Lunch.md\">Samm-sammult kirjeldus<\/a><\/noindex> lihtne v\u00f5rgu, mis saavutab konsensuse \u00fche t\u00e4ieliku SCP-ringiga.\n<\/li>\n<li>Lugejatele, keda huvitavad SCP-lahendused: vt. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/stellar\/stellar-core\/tree\/master\/src\/scp\">C++ kood<\/a><\/noindex>, mida Stellari maksev\u00f5rk kasutab, v\u00f5i <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/bobg\/scp\">Go kood<\/a><\/noindex>, mille ma kirjutasin SCP parema m\u00f5istmise jaoks.<\/li>\n<\/ul>\n<p>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/444710\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 Stellar \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u043e\u043f\u0438\u0441\u0430\u043d \u0432 \u043d\u0430\u0443\u0447\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0414\u044d\u0432\u0438\u0434\u0430 \u041c\u0430\u0437\u044c\u0435\u0440\u0430 \u0432 2015 \u0433\u043e\u0434\u0443. \u042d\u0442\u043e \u00ab\u0444\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0432\u0438\u0437\u0430\u043d\u0442\u0438\u0439\u0441\u043a\u043e\u0433\u043e \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f\u00bb, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0441\u0435\u0442\u044f\u043c \u0431\u0435\u0437 \u043b\u0438\u0434\u0435\u0440\u043e\u0432 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 \u043f\u043e \u043a\u0430\u043a\u043e\u043c\u0443-\u043b\u0438\u0431\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044e. \u041f\u043b\u0430\u0442\u0451\u0436\u043d\u0430\u044f \u0441\u0435\u0442\u044c Stellar \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 Stellar Consensus Protocol (SCP) \u0434\u043b\u044f \u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0432\u0438\u0434\u044f\u0442 \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0438. \u0421\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 \u0442\u0440\u0443\u0434\u043d\u044b \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f. [&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":[],"tags":[],"class_list":["post-30047","post","type-post","status-publish","format-standard","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 Stellar \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u043e\u043f\u0438\u0441\u0430\u043d \u0432 \u043d\u0430\u0443\u0447\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0414\u044d\u0432\u0438\u0434\u0430 \u041c\u0430\u0437\u044c\u0435\u0440\u0430 \u0432 2015 \u0433\u043e\u0434\u0443. \u042d\u0442\u043e \u00ab\u0444\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0432\u0438\u0437\u0430\u043d\u0442\u0438\u0439\u0441\u043a\u043e\u0433\u043e \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f\u00bb, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0441\u0435\u0442\u044f\u043c \u0431\u0435\u0437 \u043b\u0438\u0434\u0435\u0440\u043e\u0432 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 \u043f\u043e \u043a\u0430\u043a\u043e\u043c\u0443-\u043b\u0438\u0431\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044e. \u041f\u043b\u0430\u0442\u0451\u0436\u043d\u0430\u044f \u0441\u0435\u0442\u044c Stellar \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 Stellar Consensus Protocol (SCP) \u0434\u043b\u044f \u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0432\u0438\u0434\u044f\u0442 \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0438. \u0421\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 \u0442\u0440\u0443\u0434\u043d\u044b \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f.\" \/>\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\/et\/blog\/razbiraemsya-v-protokole-konsensusa-stellar\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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\u0420\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0432 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0435 \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 Stellar | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 Stellar \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u043e\u043f\u0438\u0441\u0430\u043d \u0432 \u043d\u0430\u0443\u0447\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0414\u044d\u0432\u0438\u0434\u0430 \u041c\u0430\u0437\u044c\u0435\u0440\u0430 \u0432 2015 \u0433\u043e\u0434\u0443. \u042d\u0442\u043e \u00ab\u0444\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0432\u0438\u0437\u0430\u043d\u0442\u0438\u0439\u0441\u043a\u043e\u0433\u043e \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f\u00bb, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0441\u0435\u0442\u044f\u043c \u0431\u0435\u0437 \u043b\u0438\u0434\u0435\u0440\u043e\u0432 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 \u043f\u043e \u043a\u0430\u043a\u043e\u043c\u0443-\u043b\u0438\u0431\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044e. \u041f\u043b\u0430\u0442\u0451\u0436\u043d\u0430\u044f \u0441\u0435\u0442\u044c Stellar \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 Stellar Consensus Protocol (SCP) \u0434\u043b\u044f \u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0432\u0438\u0434\u044f\u0442 \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0438. \u0421\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 \u0442\u0440\u0443\u0434\u043d\u044b \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/razbiraemsya-v-protokole-konsensusa-stellar\" \/>\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-31T18:33:25+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:33:25+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\udd47Selgitame Stellari konsensuse protokolli | ProHoster","description":"Stellari konsensuse protokoll kirjeldati esmakordselt David Mazi\u00e8re'i teadusartiklis 2015. aastal. See on \u2018f\u00f6deratiivne b\u00fctsantsi kokkuleppemehanism\u2019, mis v\u00f5imaldab detsentraliseeritud arvutiv\u00f5rkudel ilma liidriteta t\u00f5husalt saavutada konsensust mis tahes otsuse \u00fcle. Stellari maksev\u00f5rk kasutab konsensuse ajaloos \u00fchtset ajalugu, mida k\u00f5ik osalejad n\u00e4evad. Konsensuse protokollide arusaamine peetakse keeruliseks.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/razbiraemsya-v-protokole-konsensusa-stellar","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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\u0420\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0432 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0435 \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 Stellar | ProHoster","og:description":"\u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 Stellar \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u043e\u043f\u0438\u0441\u0430\u043d \u0432 \u043d\u0430\u0443\u0447\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0414\u044d\u0432\u0438\u0434\u0430 \u041c\u0430\u0437\u044c\u0435\u0440\u0430 \u0432 2015 \u0433\u043e\u0434\u0443. \u042d\u0442\u043e \u00ab\u0444\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0432\u0438\u0437\u0430\u043d\u0442\u0438\u0439\u0441\u043a\u043e\u0433\u043e \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f\u00bb, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0441\u0435\u0442\u044f\u043c \u0431\u0435\u0437 \u043b\u0438\u0434\u0435\u0440\u043e\u0432 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0442\u044c \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 \u043f\u043e \u043a\u0430\u043a\u043e\u043c\u0443-\u043b\u0438\u0431\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044e. \u041f\u043b\u0430\u0442\u0451\u0436\u043d\u0430\u044f \u0441\u0435\u0442\u044c Stellar \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 Stellar Consensus Protocol (SCP) \u0434\u043b\u044f \u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0432\u0438\u0434\u044f\u0442 \u0432\u0441\u0435 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0438. \u0421\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 \u0442\u0440\u0443\u0434\u043d\u044b \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f.","og:url":"https:\/\/prohoster.info\/et\/blog\/razbiraemsya-v-protokole-konsensusa-stellar","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-31T18:33:25+00:00","article:modified_time":"2019-10-31T18:33:25+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"30047","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":"Article","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-20 23:34:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:43:15","updated":"2026-01-20 23:34:19"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/30047","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=30047"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/30047\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=30047"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=30047"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=30047"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}