Tutorial sa Ethereum - Isang Mas Malalim na Pagtingin sa Ethereum!



Ipinapaliwanag ng Tutorial sa Ethereum na ito ang Ethereum mula sa isang pananaw sa arkitektura at kung paano din binubuo ang pinakadakilang platform para sa pagbuo ng DAPPS at DAOs.

Ethereum Pagtuturo:

Sa blog ng Ethereum Tutorial na ito, ipapaliwanag ko ang panloob na pagtatrabaho ng arkitektura ng Ethereum at ipapakita ko rin sa iyo ang pagpapatupad ng Ethereum sa pamamagitan ng isang simpleng matalinong kontrata .

Nakikita ko ang Ethereum bilang isang nai-program na blockchain na magsisilbi sa karamihan ng B2C enterprise sa hinaharap. Ibinibigay ng Ethereum ang mga developer sa kalayaan na lumikha ng mga kumplikadong modelo upang maipatupad sa blockchain, sa halip na paghigpitan ang mga ito sa paunang natukoy na mga operasyon tulad ng Bitcoin blockchain.





Sa pamamaraang ito, ang Ethereum ay naging isang platform para sa isang kalabisan ng mga desentralisadong aplikasyon at samahan na kasama, ngunit hindi limitado sa mga crypto-currency.

Saklaw ko ang iba't ibang mga paksa sa isang lubusang pamamaraan sa pamamagitan ng pagpapatakbo ng blog na 'Ethereum Tutorial' na ito. Kasama sa mga paksang ito ang:



Maaari kang dumaan sa pag-record na ito ng Ethereum Tutorial kung saan ipinaliwanag ng aming mga nagtuturo ang mga paksa sa isang detalyadong pamamaraan makakatulong sa iyo na maunawaan ang konseptong ito nang mas mabuti.

Tutorial sa Ethereum | Mga Smart Contract ng Ethereum | Edureka

Tutorial sa Ethereum: Mga Ethereum Account

Ang network ng Ethereum ay may dalawang uri ng mga account, katulad:



  • Mga Panlabas na Account
  • Mga Account sa Kontrata

Ang mga account na ito, kapwa sa Panlabas at Kontrata ay tinutukoy bilang 'mga bagay ng estado' at binubuo ng 'estado' ng ethereum network. Ang bawat bagay ng estado ay may mahusay na natukoy na estado. Para sa mga panlabas na account, ang estado ay binubuo ng balanse ng account habang para sa mga account ng kontrata ang estado ay tinukoy ng imbakan ng memorya at balanse.

Magtutukoy ako sa mga panlabas na account bilang mga account lamang. Ang mga account na ito ay pagmamay-ari ng ay kinakatawan ng mga panlabas na ahente ng network na kasama ang bawat ordinaryong gumagamit, mga minero, mga awtomatikong ahente, atbp.

Ang mga account na ito ay karaniwang kinokontrol sa tulong ng mga pampublikong key cryptography algorithm tulad ng RSA. Ang pangunahing layunin ng mga Panlabas na account ay upang maglingkod bilang isang daluyan para sa mga gumagamit na makipag-ugnay sa Ethereum Blockchain.

Ang mga account sa kontrata, sa kabilang banda, ay isang koleksyon ng code na naninirahan sa blockchain sa isang tukoy na address. Ang mga kontratang ito ay tinawag ng mga panlabas na account, o ng iba pang mga kontrata sa pamamagitan ng isang tiyak na pagpapaandar na call-to-action. Ang mga kontratang ito ay nakasulat sa mataas na antas ng mga wika ng pag-script tulad ng Solidity, Ahas o LLL. Ang bawat kontrata na naninirahan sa ethereum blockchain ay nakaimbak sa isang tukoy na format na tinawag na EVM (Ethereum Virtual Machine) bytecode na isang tukoy na binary format na ethereum.

Makatarungan lamang na ipaliwanag ko ang EVM ngayong sinabi ko sa iyo ang tungkol sa EVM-bytecode.

Tutorial sa Ethereum: Ethereum Virtual Machine

Ang Ethereum, sa isang simpleng pamamaraan, ay tumutukoy sa isang hanay ng mga pangkalahatang mga protokol na naging haligi ng pagbuo ng mga desentralisadong aplikasyon. Sa gitna nito, nakasalalay ang Ethereum Virtual Machine. Ang pigura sa ibaba ay nagpapaliwanag ng arkitektura:

Arkitektura ng Ethereum - Tutorial sa Ethereum - Edureka

pl sql developer tutorial para sa mga nagsisimula

Mahalagang tandaan na, ang Ethereum Virtual Machine ay hindi lamang kumpletong naka-sandbox, ngunit ganap din na nakahiwalay. Nangangahulugan ito na ang code na kasalukuyang tumatakbo sa EVM ay walang access sa network o ng file-system at maaaring matipid na ma-access ang iba pang mga kontrata.

Ngayong naiintindihan na natin ang core ng platform, tingnan natin nang mas malalim ang mga node ng network.

Tutorial sa Ethereum: Ang Ethereum Network

Ang Ethereum network ay isang pampublikong blockchain network. Ito ang bumubuo ng batayan ng lahat ng desentralisadong mga aplikasyon ng peer-to-peer at mga samahan na tumatakbo sa network. Ang network ay binubuo ng dalawang uri ng mga node namely, full node at light-weight-node.

Mga buong node naglalaman ng buong kasaysayan ng mga transaksyon mula pa noong genesis block. Ang mga ito ay isang ganap na patunay ng integridad ng blockchain network. Ang mga buong node ay kailangang maglaman ng bawat transaksyon na na-verify ayon sa mga patakaran na na-set up ng mga pagtutukoy ng Ethereum.

Mga light node na node sa kabilang banda ay naglalaman lamang ng isang subset ng buong blockchain. Ang mga uri ng node na ito ay kadalasang ginagamit sa mga e-wallet na kailangang maging light-weight sa likas na katangian at samakatuwid ang buong blockchain ay hindi maiimbak sa kanila. Ang mga node na ito, sa kaibahan, ay hindi nagpapatunay sa bawat bloke o transaksyon at maaaring walang kopya ng kasalukuyang estado ng blockchain. Umasa sila sa buong mga node upang maibigay sa kanila ang mga nawawalang detalye (o kulang sa partikular na pagpapaandar). Ang bentahe ng mga light node ay maaari silang tumayo at tumakbo nang mas mabilis, maaaring tumakbo sa mas maraming computationally / memory hadlang na aparato, at huwag kumain ng halos kasing dami ng imbakan.

Ang bawat pampublikong blockchain ay may naka-attach na pera dito. Ang Ethereum ay hindi naiiba. Tingnan natin nang mas malalim ang cryptocurrency ng Ethereum.

Tutorial sa Ethereum: Ether at Gas

Ang Ether ay ang pangalan ng crypto-currency na ginamit upang magbayad para sa mga transaksyon sa Ethereum network. Bukod sa pagbabayad para sa mga pangkalahatang transaksyon at serbisyo, ang Ether ay ginagamit din upang bumili ng Gas, na siya namang ginagamit upang magbayad para sa pagkalkula sa loob ng EVM.

Ang Ether ay ang sukatan na yunit at mayroong maraming mga denominasyon na makakatulong na tumpak na magbayad para sa mga transaksyon at gas. Ang pinakamaliit na denominasyon a.k.a base unit ay tinatawag na Wei. Ang mga denominasyon kasama ang kanilang mga tukoy na pangalan ay maaaring makita sa talahanayan sa ibaba:

Mga YunitWei HalagaWei
wei1 weiisa
Kwei1e3 wei1,000
Mwei1e6 wei1,000,000
Maghilom1e9 wei1,000,000,000
microEther1e12 wei1,000,000,000,000
milliEther1e15 wei1,000,000,000,000,000
Ether1e18 wei1,000,000,000,000,000,000

Tulad ng tinalakay nang mas maaga, alam namin na responsable ang EVM para sa pagpapatakbo ng code na na-deploy sa network nito. Kaya't ano ang pumipigil sa isang tao mula sa pagpapatakbo ng isang walang katapusang loop sa EVM at ganap na labis na karga ang memorya nito? Dito pumapasok ang konsepto ng Gas.

Ginagamit ang gas bilang isang sukatan para sa pagbabayad para sa mga mapagkukunan ng computational sa network. Ang bawat kontrata sa network ay may isang nakatakdang maximum na dami ng gas na maaari nitong magamit para sa mga pagkalkula nito. Kilala ito bilang “ Hangganan ng Gas 'Ang iba pang nauugnay na mga term ng gas ay ang mga sumusunod:

  • Presyo ng Gas : Ito ang gastos ng gas sa mga tuntunin ng mga token tulad ng Ether at iba pang mga denominasyon. Upang patatagin ang halaga ng gas, ang Presyo ng Gas ay isang lumulutang na halaga na kung ang halaga ng mga token o currency ay nagbabagu-bago, nagbabago ang Presyo ng Gas upang mapanatili ang parehong tunay na halaga.
  • Bayad sa Gas : Ito ay mabisang halaga ng Gas na kinakailangan upang mabayaran upang magpatakbo ng isang partikular na transaksyon o programa (tinatawag na isang kontrata).

Samakatuwid, kung ang isang tao ay sumusubok na magpatakbo ng isang piraso ng code na tumatakbo magpakailanman, ang kontrata ay kalaunan lumalagpas sa limitasyon ng gas nito at ang buong transaksyon na nagtawag sa kontrata ay ibabalik sa dating estado nito.


Ngayong alam na natin ang tungkol sa pera, tingnan natin ang proseso na bumubuo ng bagong pera.

Tutorial sa Ethereum: Pagmimina

Ang Ethereum, kagaya ng ibang mga pampublikong teknolohiya ng blockchain ay nagsisiguro ng seguridad sa pamamagitan ng isang modelong batay sa insentibo. Tinatawag itong mekanismo ng proof-of-work. Ipinapakita ng pigura sa ibaba kung paano gumagana ang pagmimina ng Ethereum:

Mula sa isang mas teknikal na pananaw, ang ginamit na proof-of-work algorithm ay tinatawag na Ethash, na isang hashing algorithm na inspirasyon ng Dagger-Hashimoto Algorithm.

Ngayon na nakita namin ang gumaganang arkitektura ng ethereum at tinalakay ang mga mahahalagang elemento, tingnan natin ang isang problema sa totoong mundo at ang diskarte ng ethereum upang malutas ang pareho.

Ethereum Tutorial: Desentralisadong Crowd Funding Use Case

Pahayag ng Suliranin : Ang isang magandang 'ideya' ay hindi lahat ng bagay sa mundo ngayon upang magsimula ng isang matagumpay na negosyo. Maraming pondo at pagsisikap ang kinakailangan upang magpatupad ng isang ideya. Dito makikita ang larawan ng mga samahang tulad ng 'Kickstarter'. Nagbibigay ang mga ito ng mga proyekto ng publikong pagkakalantad na kinakailangan para sa mga donasyon patungo sa kanilang proyekto upang maisakatuparan ito, ngunit ang sentralisadong arkitektura ng gayong motibo ay mayroong mga kabiguan, pangunahin sa paraan ng paghawak ng mga gantimpala. Dahil ang sentralisadong awtoridad ang gumagawa ng lahat ng mga desisyon, ang mga system ay madaling kapitan ng mga patakaran tulad ng:

  • ang sinumang hindi nakuha ang deadline para sa kampanya ay hindi maaaring makapasok pa
  • ang sinumang donor na nagbago ng kanilang isip ay hindi makalabas

Lapitan :

Kumuha kami ng isang desentralisadong pamamaraan upang matugunan ang problema tulad ng ipinaliwanag sa larawan sa ibaba:

Solusyon :

Narito ang solidity smart contract para sa pahayag sa problema sa itaas.

pragma solidity ^ 0.4.16 interface token {function transfer (address receiver, uint halaga)} kontrata Crowdsale {address public beneficiary uint public pendance Goint uint public amountRaised uint public deadline uint public price token public tokenReward mapping (address => uint256) public balanse Of bool pagpopondoGoalReached = maling bool crowdsaleClosed = maling kaganapan GoalReached (tatanggap ng address, uint totalAmountRaised) kaganapan FundTransfer (tagasuporta ng address, halaga ng uint, bool isContribution) / ** * Pag-andar ng constrctor * * I-set up ang may-ari * / pag-andar ng Crowdsale (address kung Matagumpay na Pag-sendTo // ang address ng may-ari kapag matagumpay ang pagpopondo uint pondoGoalInEthers // target na halaga upang itaas ang tagal ng uintInMinutes // naibigay na oras uint etherCostOfEachToken // gastos ng equity sa ether address addressOfTokenUsedAsReward // token address) {beneficiary = ifSuccessfulSendTo pondo Goal = pagpopondoGoalInEthers * 1 ether + durationInMinutes * 1 minuto na presyo = etherCostOfEachToken * 1 eter hanggang kenReward = token (addressOfTokenUsedAsReward)} / ** * Fallback function * * Ang pagpapaandar nang walang pangalan ay ang default na pagpapaandar na tinatawag tuwing may nagpadala ng mga pondo sa isang kontrata * / pagpapaandar () mababayaran {nangangailangan (! crowdsaleClosed) uint halaga = msg. halaga ng balanseOf [msg.sender] + = halaga ng halagaRaised + = halaga tokenReward.transfer (msg.sender, halaga / presyo) FundTransfer (msg.sender, halaga, totoo)} nagbabago pagkatapos ngDeadline () {kung (ngayon = pagpupuntaGoal) {pagpopondoGoalReached = true GoalReached (beneficiary, amountRaised)} crowdsaleClosed = true} / ** * Bawiin ang mga pondo * * Mga pagsusuri upang malaman kung naabot na ang layunin o limitasyon ng oras, at kung gayon, at naabot ang layunin sa pagpopondo, * ipinapadala ang buong halaga sa beneficiary. Kung hindi naabot ang layunin, maaaring bawiin ng bawat nag-ambag * ang halagang kanilang naambag. * / function safeWithdrawal () afterDeadline {if (! fundingGoalReached) {uint halaga = balanseOf [msg.sender] balanseOf [msg.sender] = 0 kung (halaga> 0) {kung (msg.sender.send (halaga)) { FundTransfer (msg.sender, halaga, false)} iba pa {balanseOf [msg.sender] = halaga}}} kung (pagpopondoGoalReached && beneficiary == msg.sender) {kung (beneficiary.send (amountRaised)) {FundTransfer (beneficiary, amountRaised, false)} iba pa {// Kung nabigo kaming ipadala ang mga pondo sa beneficiary, i-unlock ang pagpopondo ng balanse ng mga nagpopondoGoalReached = false}}}}

Kung sakaling interesado ka sa pag-aaral ng pagiging solido, tingnan ang aming blog sa , na ginagamit para sa pagbuonaisapersonalmatalinong mga kontrata.

Kung nais mong malaman ang Blockchain at bumuo ng isang karera sa Blockchain Technologies, pagkatapos ay suriin ang aming na kasama ng live na pagsasanay na pinamunuan ng magtuturo at karanasan sa proyekto sa totoong buhay. Tutulungan ka ng pagsasanay na ito na maunawaan ang Blockchain nang malalim at tutulong sa iyo na makamit ang mastery sa paksa.

May tanong ba sa amin? Mangyaring banggitin ito sa seksyon ng mga komento at babalik kami sa iyo sa lalong madaling panahon.