Kas yra „Tendermint“?
„Tendermint“ yra žemo lygio protokolas, susidedantis iš dviejų pagrindinių dalių: „blockchain“ sutarimo variklio ir bendrosios programos sąsajos. „Tendermint Core“, „blockchain“ sutarimo variklis, palengvina „peer-to-peer“ tinklą ir suteikia „Pro-of-Stake“ (PoS) sutarimą. Kita vertus, „Application BlockChain Interface“ (ABCI) veikia kaip „blockchain“ įrankis, leidžiantis susieti „Tendermint Core“ protokolą.
„Tendermint“ tikslas yra a „blockchain“ variklis. Tai skirta įrankiui, kurį kūrėjai gali naudoti, norėdami praleisti nemalonią ir techninę kriptografiją ir pereiti į aukštesnio lygio blokų grandinę ir programų kūrimą.
„Tendermint Core“
„Tendermint Core“ yra supakuota atviro kodo programinė įranga, sudaryta iš dviejų pagrindinių dalių. Daugiausia – Bizantijos tolerantiškų gedimų blokų grandinės sutarimo variklis. Antra, p2p tinklo protokolas.
Generalinio sutarimo
Įtrauktas į „Tendermint“ sutarimo algoritmą yra pagrindinė Bizantijos kaltės tolerancijos (BFT) samprata. Norint suprasti BFT, būtina turėti apžvalgą, ką ji sprendžia: Bizantijos generolų problema.
Seniai saujelė generolų ir jų armijos bandė užpulti miestą. Nugalėti miestą visiems generolams, reikalingiems pulti vienu metu – bet koks mažesnis nei visiškas dalyvavimas reikštų, kad generolai pralaimės. Klausimas yra tas, kad nė vienas generolas negalėjo patikimai žinoti, kada pulti miestą. Jie visi buvo nuošalūs kiekvienoje miesto pusėje, o ryšių tarp jų buvo neįmanoma sinchronizuoti. Pranešimai gali būti pamesti, sugadinti arba suklastoti.
Jae Kwon „Tendermint Whitepaper“
Iššūkis, su kuriuo susidūrė generolai, dar labiau padidėja, kai įtraukiama daugiau žmonių ar pranešimų. „Tendermint“ „BFT Proof-of Stake“ leidžia šimtui tikrintojų greitai ir saugiai patvirtinti savo knygas tarpusavyje. Kitaip tariant, visi tikrintojai žino, kada pulti miestą.
„BFT-Stake-Stake“ algoritmas įveikia Bizantijos generolų problemą naudodamas iš dalies sinchroninį tinklo modelį. Iš esmės tai reiškia, kad miestą supantiems generolams – arba patvirtintojams, balsuojantiems už bloką – nereikia veikti iš anksto nustatytu laiku. Blokai nebalsuojami pagal tvarkaraštį ar iš anksto nustatytą dydį.
„Tendermint“ tai pasiekia pirmiausia atsitiktinai priskirdama tikrintojams teisę siūlyti bloką. Siūlę blokus, tvirtintojai balsuoja daugelio ratų deterministiniame procese. Reiškia, pirmas žingsnis yra gana nediskriminuojantis, o antrasis – pagal nustatytą tvarką.
Naudojant „Tendermint“, tikrintuvai pasukami pagal deterministinį svertinį apykaitos formatą. Kuo daugiau validatoriaus akcijų, tuo daugiau kartų jie gali būti išrinkti lyderiais. Šiuo metu protokolas yra ribotas šimtui tikrintojų, tačiau prireikus galima padidinti patvirtintojų skaičių.
Programų „Blockchain“ sąsaja
Virš „Tendermint Core“ yra „Application BlockChain“ sąsaja (ABCI). ABCI yra Bizantijos tolerancija gedimams, bet kuria kalba parašytų programų kopija. Galite nukopijuoti savo „blockchain“ programas, parašytas C ++, „Python“, „Solidity“ ar bet kuria kita kalba, į surenkamą „BFT blockchain“ variklį..
ABCI yra „blockchain“ programų ir „Tendermint blockchain“ variklio, ant kurio jie sėdi, vertėjas, įvyniotojas ir lizdas..
Kova su monolitais
ABCI klojimas ant „Tendermint Core“ yra pagrindinis žingsnis mažinant prieigos kliūtis, besivystančias naudojant „blockchain“..
Dauguma „blockchain“ sistemų yra monolitinės architektūros, dažnai ribojančios kalbas, kurias galima rašyti jų viršuje. Pavyzdžiui, „Ethereum Turing“ užbaigtas virtualiosios mašinos baitų kodas apsiriboja tomis kalbomis, kurios suderinamos žemyn su baitais. Šiuo metu tai tik gyvatė ir tvirtumas.
Priešingai, ABCI leidžia bet kurią programavimo kalbą sukrauti aukščiau ir visapusiškai suderinti su pagrindiniu „Tendermint Core“ varikliu. Kūrėjams nereikia laikytis vienos pasirinktos blokų grandinės monolitinės kamino. Vietoj to, jie gali sutelkti dėmesį į programų logistiką ir likti praktiškai blokų grandinės agnostikai.
„Cosmos“ ekosistema, įskaitant „Tendermint“
„Tendermint“ ateitis yra kosmose
Atvirojo kodo „Tendermint“ kūrėjai įgyvendino daug didesnį projektą „Cosmos“. Sukurtas kaip „blockchain“ internetas, „Cosmos“ tinklai kartu su „Tendermint“ pagrįstomis programomis.
Įdomi „Cosmos“ dalis yra ta, kad, norint dirbti „Cosmos“ ekosistemose, programos nebūtinai turi būti kuriamos ant „Tendermint“. „Cosmos“ naudojasi „Tendermint“ programos replikatoriumi kietas šaukštas esamos blokų grandinės ant „Tendermint Core“. „Tendermint“ yra ne tik moduliuotų „blockchain“ programų, bet ir „blockchain“ klonavimo mašinos, dirva.
Kad būtų aiškiau, štai kaip „Tendermint“ įkūrėjas Jae Kwonas apibūdina kietą šaukštą.
„Kietas šaukštas: nauja grandinė, kurioje atsižvelgiama į esamos grandinės būseną; ne konkuruoti, bet suteikti plačią prieigą “. – Jae Kwon
Keli žinomi projektai, norintys perkelti į „Cosmos“, yra „OmiseGo“, „0x“ ir „FOAM“. Tada kiekvieno projekto žetonas bus „Tendermint“ viršuje, tada susietas su „Cosmos“ blokinių grandinių tinklu.
Išvada
„Tendermint Core“ ir ABCI kartu sudaro „Tendermint“ – atviro kodo „blockchain“ variklį, skirtą bet kurios programavimo kalbos kūrėjams kurti. „Tendermint“ kūrėjai nukreipia dėmesį nuo žemo lygio kriptografijos ir į programos sluoksnį.
„Tendermint“ analogija su „blockchain“ būtų palyginti ją su menininko drobe. Drobėje galite išreikšti begalę idėjų, tačiau šiuolaikiniam menininkui retai reikia galvoti apie savo kūrimą ir plėtojimą. „Tendermint“, kaip drobė, yra pagrindas, ant kurio galite sugalvoti nesibaigiančias „blockchain“ programas.