Ipinaliwanag ang Tendermint
HomeMga Artikulo

Ipinaliwanag ang Tendermint

Intermediya
2w ago
6m

TL;DR

Ang mga blockchain na alam mo at gusto mo ay may medyo matibay na istraktura. Bilang isang developer, bibigyan ka nito ng dalawang pagpipilian na bumuo ng mga aplikasyon sa loob ng isang mahigpit na kapaligiran o mag-fork ng code at gumawa ng iyong sariling chain. Gayunpaman, ang paglikha ng iyong sariling chain – ay kailangan mo ring magsimula ng isang network at alamin kung anong ang consensus mechanism na gagamitin.

Ang Tendermint ay isang open-source na software para sa paglulunsad ng mga blockchain na nagbibigay-daan sa iyo upang sumulat ng mga application sa anumang wika. Mas mabuti pa, puwede silang makipag-usap sa iba pang mga blockchain.


Panimula

Ang paglikha ng isang cryptocurrencyblockchain network ay tumatagal ng mas maraming pagsisikap kaysa sa pagsisimula lang ng isang database. Nangangailangan ito ng isang maselan na balanse ng mga insentibo at trade-off sa pagitan ng seguridad, desentralisasyon, at kakayahang sumukat.

Hindi nakakagulat, ang isang hanay ng iba't ibang mga diskarte ay nasaliksik ng mga koponan na naghahanap upang mabuo ang pinakamalakas na mga ecosystem ng blockchain. Sa artikulong ito, titingnan namin ang isa sa gayong diskarte Tendermint.


Ano ang kailangan mong malaman tungkol sa Tendermint

Karamihan sa Tendermint ay tila pamilyar kung may alam ka tungkol sa mga blockchain. Balikan natin ang ilang pangunahing mga konsepto bago natin ito tuklasin.


Pag-unawa sa arkitektura ng blockchain

Ang Tendermint ay isang uri ng blockchain stack. Pagkatapos ay muli, ang mga bagay tulad ng Bitcoin at Ethereum ay kapareho din. Tandaan, hindi lang tungkol sa blockchain database mismo, ngunit tungkol sa peer-to-peer network ng mga node, kung paano sila nakikipag-ugnayan, at ang mga nakakatuwang bagay sa iyo puwedeng gawin sa mga transaksyon at mga smart contract. Ang layunin dito ay upang sumang-ayon ang lahat sa isang estado (tulad ng isang snapshot ng database), kahit na wala silang tiwala sa iba pa.

Sa karamihan ng bahagi, ang mga pangunahing blockchain ngayon ay nakatagpo ng lihim na sarsa na ginagawang posible ito. Gayunpaman, madalas silang umaasa sa monolithic architecture isang konsepto ng software engineering na nangangahulugang magkakaugnay at magkakaugnay ang mga bahagi. Hindika puwedeng kumuha ng isang piraso nito at i-plug ito sa iba pa.

Ang monolithic na arkitektura ay hindi mahusay kung nais mo ng kakayahang umangkop. Sa kabaligtaran na uri ng modelo (na may modular na arkitektura), puwede mong i-tweak ang mga indibidwal na bahagi nang hindi nag-aalala tungkol sa paglabag sa anumang bagay. Sa isang istrakturang monolitik, kailangan mong tiyakin na ang bawat bahagi ay mananatiling katugma kapag na-upgrade mo ang isang solo lang. 

Ngayon na naiintindihan na namin ang pagkakaiba na ito, puwede na kaming makipag-usap nang kaunti pa tungkol sa Tendermint na protocol.


Byzantine fault tolerance (BFT)

Puwede mong malaman na ang malaking pagbabago sa Bitcoin ay na malutas nito ang isang bagay na tinawag na Byzantine Generals ’Problem . Hindi namin tatalakayin ang mga detalye tungkol sa problema (tingnan ang aming artikulo sa Byzantine fault tolerance  kung interesado ka). Ang kailangan mo lang malaman ay detalyado nito ang isang senaryo kung saan dapat makipag-usap ang mga kalahok sa isang ibinahaging setting. 

Hindi alam ng mga kalahok kung ang iba ay nagsisinungaling o kung ang mga mensahe na ipinadala sa pagitan nila ay binabago. Sinasabi na ang isang system ay mayroong Byzantine fault tolerance (BFT) kung ang mga kalahok ay puwedeng sumang-ayon sa isang hanay ng mga katotohanan, kahit na ang mga isyung mayroon.

Malinaw na, sa isang desentralisadong setting, ang pagkuha ng karapatang ito ay mahalaga. Ang mga Cryptocurrency na hindi Byzantine fault-tolerant ay hindi talaga gagana - kakailanganin mo ng ilang uri ng sentralisadong partido na pagsasaayos, na tinalo ang layunin. Tulad ng maraming mga digital na currency, napapaligiran ito ng Bitcoin sa pamamagitan ng paggamit ng isang Proof of Work (PoW) consensus algorithm.


Ang tatlong mga layer ng isang blockchain

Kaya alam namin ang pagkakaiba sa pagitan ng monolithic/modular na arkitektura, at alam namin na ang desentralisadong mga network ng cryptocurrency ay kailangang maging mapagparaya sa Byzantine. Banggitin natin ang mga layer na karaniwang nakikita natin sa isang blockchain: ang application layer, ang consensuslayer, at ang networking layer.

Ang mga concensus at mga layer ng networking ay kung saan mayroon kang mga network node na nagsasalita sa bawat isa, at sinusubukang sumang-ayon sa isang hanay ng mga katotohanan. Ang layer ng application ay kung saan mo magagawa ang iyong sarili – isipin ang decentralized applications at mga smart contractEthereum o  mga pasadyang transaksyon sa Bitcoin.


➟ Nagbabalak na makapagsimula sa cryptocurrency? Bumili ng Bitcoin (BTC) sa Binance!


Tendermint Core

Una, isang mabilis na paglilinaw sa terminolohiya. Gagamitin namin ang mga salitang “Tendermint” at “Tendermint Core” na mapagpapalit dito dahil nakatuon lang kami sa tech. 

Gayunpaman, ang Tendermint ay ang pangalan ng kumpanya (itinatag ng developer na sumulat ng orihinal na whitepaper, Jae Kwon), habang ang Tendermint Core ay ang aktwal na software na pinagtatrabahuhan ng kumpanya. Mas partikular, ang software ay may dalawang pangunahing mga sangkap ng pangunahing engine ng pinagkasunduan (Tendermint Core) at ang interface ng aplikasyon (ABCI).

Ang Tendermint Core ay isang sistema na nakakamit ang fault tolerance. Sa esensya, ito ay malaki, ipinamamahagi na computer na nagpapakita sa lahat ng parehong estado sa parehong oras. Hangga't hindi bababa sa dalawang-katlo ng mga kalahok ay matapat, lahat ay maayos na gumagana. Ngunit iyan ay halos bawat blockchain, tama? Ano ang nagpapa-espesyal dito?

Una, ang ginamit na mekanismo ng consensus ay isang Proof of Stake (PoS). Para sa bawat panahon, isang random na node mula sa isang set ng validator ang napili. Kailangang imungkahi ng node na iyon ang susunod na block (sa isang bagay na tinawag na round-robin system). Kung ang iba pang mga nagpapatunay ay nasisiyahan dito, pagkatapos ang maidagdag ang bagong block, at ang chain ay na-update. Ang wakas ay mabilis – hindi tulad ng Bitcoin o Ethereum, hindi kailangang maghintay para sa  mga kumpirmasyon upang matiyak na wasto ang iyong transaksyon.

Ngunit teka, mayroon pa! Ang arkitektura ng Tendermint Core ay modular, kasama ang layer ng aplikasyon na hiwalay mula sa mga consensus at mga layer ng networking. Sa simpleng Ingles, nangangahulugan iyon na puwede mong mai-plug ang iyong sariling layer ng application sa stack. Hindi kailangang mag-alala tungkol sa mga pesky na insentibo o consensus algorithm. 

Marahil hindi ito masyadong nakakaganyak para sa end-user. Ngunit para sa mga tagabuo, ang kakayahang makamit ang isang mayroon nang balangkas ay nangangahulugang puwede silang sumisid papunta mismo sa pagbuo ng mga application nang hindi binabalot ng isang buong network. Ang data mula sa blockchain ay puwedeng mai-pipe sa pinagsamang layer, na nagbibigay-daan sa mga dev na magsulat ng software sa anumang wika.

Nangyayari ang mahika sa isang bagay na tinatawag na Application Blockchain Interface, o sa simple, ABCI. Isipin ito tulad ng mga GPIO pin na nakukuha mo sa isang computer na Raspberry Pi. Puwede mong i-hook up ang lahat ng mga uri ng mga bahagi ng third-party sa mga, mula sa mga LED hanggang sa mas detalyadong mga sistema ng pandilig para sa iyong mga halaman. Sa katulad na paraan, ang ABCI ang tumutukoy sa hangganan sa pagitan ng blockchain at ng mga application na tumatakbo sa itaas nito.


Ano ang nagpapahusay tungkol sa Tendermint Core?

Ang paghihiwalay ng interface ng aplikasyon at mekanismo ng consensus ay nagbibigay-daan sa higit na kakayahang umangkop para sa isang hanay ng mga desentralisadong aplikasyon upang isama ang anumang mga wika sa programa sa kanilang lohika sa negosyo.

Para sa isang nasasalat na halimbawa ng kung ano ang puwedeng gawin, kailangan mo lamang tingnan ang Ethermint isang proyekto na kinuha ang Ethereum codebase, tinanggal ang mekanismo ng Proof of Work, at isinara ang Ethereum Virtual Machine sa tuktok ng Tendermint.

Ginawa nitong posible ang ilang mga kagiliw-giliw na bagay. Ang una ay ang mga developer ng Ethereum na puwedeng maipadala ang kanilang mga smart contract sa bagong engine nang madali, o sumulat ng mga bagong contract sa wikang Solidity. Sa tuktok ng pagbibigay ng mga function ng Ethereum, ang Ethermint ay kumikilos tulad ng isang Proof of Stake Ethereum, na binibigyan kami ng isang sulyap sa kung ano ang puwedeng kahinatnan ng  Ethereum 2.0 sa pagpapatupad ng Casper.


Blockchain interoperability

Ang pangako ng isang “internet ng mga blockchain” ay ang umaakit sa marami sa mga protocol na nakabatay sa Tendermint. Ang Interoperabilityay isang pinakahihintay na karagdagan sa mundo ng cryptocurrency, dahil nangangahulugan ito na daan-daang mga indibidwal na mga blockchain na magiging cross-compatible.

Sa kasalukuyan, maraming trabaho ang inilagay sa Cosmos SDK, isang open-source framework na nagbibigay-daan sa sinuman na lumikha ng isang partikular na pampubliko o pribadong blockchain na tinukoy ng application. Ang mga blockchain na ito ay puwedeng mai-plug sa mas malawak na network ng Cosmos, sa pamamagitan ng isang bagay na tinatawag na Cosmos Hub, kung saan puwede silang makipag-usap sa iba.

Maraming mga tanyag na proyekto ang naitayo kasama ang Cosmos SDK, tulad ng Binance Smart Chain (BSC),  KAVA,  Band ProtocolTerra, at  IRISnet.


Pangwakas na mga ideya

Bilang isang makina ng blockchain, nakuha ng Tendermint ang pansin ng maraming mga stakeholder sa mundo ng cryptocurrency, mula sa mga developer hanggang sa mga end-user. 

Kung ang software ay patuloy na nakakakuha ng traksyon, puwede itong maging mahusay na magsilbing gulugod para sa isang internet ng mga blockchain. Tulad ng nakita natin, ang isang maliit na mga proyekto ay inilunsad kasama ang Cosmos SDK upang mapagtanto ang pangitain na ito.

Mayroong maraming mga katanungan sa Tendermint, mga algorithm ng consensus, o teknolohiya ng blockchain sa pangkalahatan? Tumungo sa  Magtanong sa Academy, kung saan sasagutin sila ng komunidad.