Ethereum Tutorial - Et dypere blikk i Ethereum!



Denne Ethereum-opplæringen forklarer Ethereum fra et arkitektonisk ståsted og også hvordan den utgjør den største plattformen for å bygge DAPPS og DAOs.

Ethereum Opplæringen:

I denne Ethereum-opplæringsbloggen vil jeg forklare det indre arbeidet med ethereums arkitektur, og jeg vil også vise deg implementeringen av ethereum gjennom en enkel smart kontrakt .

Jeg ser Ethereum som en programmerbar blockchain som vil tjene et flertall av B2C-virksomheten i fremtiden. Ethereum gir utviklere frihet til å lage komplekse modeller som skal utføres på blockchain, i stedet for å begrense dem til forhåndsdefinerte operasjoner som Bitcoin blockchain.





Med denne tilnærmingen har Ethereum forvandlet seg til en plattform for en mengde desentraliserte applikasjoner og organisasjoner som inkluderer, men ikke er begrenset til kryptovalutaer.

Jeg vil dekke en rekke emner på en uttømmende måte gjennom løpet av denne 'Ethereum Tutorial' -bloggen. Disse emnene inkluderer:



Du kan gå gjennom dette opptaket av Ethereum Tutorial der instruktørene våre har forklart emnene på en detaljert måte med som vil hjelpe deg med å forstå dette konseptet bedre.

Ethereum Tutorial | Ethereum Smart Contracts | Edureka

Ethereum Tutorial: Ethereum Accounts

Ethereum-nettverket har to typer kontoer, nemlig:



  • Eksterne kontoer
  • Kontraktskontoer

Disse kontoene, både eksterne og kontrakter, blir referert til som 'statsobjekter' og utgjør 'tilstanden' til eterinnettverket. Hvert statsobjekt har en veldefinert tilstand. For eksterne kontoer består staten av kontosaldoen, mens for kontrakontoer er staten definert av minnelagring og saldo.

Jeg vil bare referere til eksterne kontoer som kontoer. Disse kontoene eies av er representert av eksterne agenter i nettverket som inkluderer alle vanlige brukere, gruvearbeidere, automatiserte agenter, etc.

Disse kontoene blir generelt kontrollert ved hjelp av krypteringsalgoritmer med offentlig nøkkel som RSA. Hovedformålet med eksterne kontoer er å tjene som et medium for brukere å samhandle med Ethereum Blockchain.

Kontraktskontoer er derimot en samling kode som ligger på blockchain på en bestemt adresse. Disse kontraktene påkalles av eksterne kontoer, eller av andre kontrakter gjennom en spesifikk oppfordringsfunksjon. Disse avtalene er skrevet på høyt nivå skriptspråk som Solidity, Serpent eller LLL. Hver kontrakt som ligger på ethereum blockchain lagres i et spesifikt format kalt EVM (Ethereum Virtual Machine) bytekode som er et eterspesifikt binært format.

Det vil bare være rettferdig at jeg forklarer EVM nå som jeg har fortalt deg om EVM-bytecode.

Ethereum Tutorial: Ethereum Virtual Machine

Ethereum definerer på en rustikk måte et sett med generaliserte protokoller som har blitt pilarene i utviklingen av desentraliserte applikasjoner. I hjertet av dette ligger Ethereum Virtual Machine. Figuren nedenfor forklarer arkitekturen:

Ethereum Architecture - Ethereum Tutorial - Edureka

installer php på Windows 8

Det er viktig å merke seg at Ethereum Virtual Machine ikke bare er fullstendig sandkasset, men også fullstendig isolert. Dette betyr at koden som kjører på EVM ikke har tilgang til nettverket eller filsystemet og sparsomt kan få tilgang til andre kontrakter.

Nå som vi forstår kjernen av plattformen, la oss se nærmere på nettverksnodene.

Ethereum Tutorial: The Ethereum Network

Ethereum-nettverket er et offentlig blockchain-nettverk. Det danner grunnlaget for alle desentraliserte peer-to-peer-applikasjoner og organisasjoner som kjøres på nettverket. Nettverket består av to typer noder, nemlig fulle noder og lette vektnoder.

Full noder inneholder hele historikken til transaksjoner siden genese-blokken. De er et fullverdig bevis på integriteten til blockchain-nettverket. Fullstendige noder må inneholde hver eneste transaksjon som er bekreftet i henhold til reglene satt opp av Ethereums spesifikasjoner.

Lette noder derimot inneholder bare en delmengde av hele blockchain. Disse typer noder brukes for det meste i e-lommebøker som må ha lett vekt, og dermed kan ikke hele blockchain lagres på dem. Disse nodene verifiserer derimot ikke hver blokk eller transaksjon og har kanskje ikke en kopi av gjeldende blockchain-tilstand. De er avhengige av fulle noder for å gi dem manglende detaljer (eller bare mangler spesiell funksjonalitet). Fordelen med lysnoder er at de kan komme i gang mye raskere, kan kjøre på mer beregningsmessige / minnebegrensede enheter og ikke spiser nesten like mye lagringsplass.

Hver offentlig blockchain har en valuta knyttet til seg. Ethereum er ikke annerledes. La oss se nærmere på Ethereums kryptovaluta.

Ethereum Tutorial: Ether and Gas

Ether er navnet på kryptovalutaen som brukes til å betale for transaksjoner i eterinnettverket. Bortsett fra å betale for generelle transaksjoner og tjenester, brukes Ether også til å kjøpe gass, som igjen brukes til å betale for beregning innen EVM.

Ether er den metriske enheten og har mange valører som hjelper å betale nøyaktig for transaksjoner og gass. Den minste betegnelsen a.k.a baseenhet kalles Wei. Valørene sammen med deres spesifikke navn kan sees i tabellen nedenfor:

EnheterWei verdiWei
wei1 weien
Kwei1e3 wei1000
Mwei1e6 wei1.000.000
Strikke1e9 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

Som diskutert tidligere vet vi at EVM er ansvarlig for å kjøre kode som er distribuert på nettverket. Så hva hindrer noen i å kjøre en uendelig løkke på EVM og overbelaste minnet helt? Det er her konseptet med gass kommer inn.

Gass brukes som beregning for å betale for beregningsressurser på nettverket. Hver kontrakt i nettverket har en bestemt maksimal mengde gass som den kan bruke til beregningene. Dette er kjent som “ Gassgrense ”Andre tilknyttede gassuttrykk er som følger:

  • Bensinpris : Dette er kostnaden for bensin når det gjelder tokens som Ether og dets andre valører. For å stabilisere gassens verdi er bensinprisen en flytende verdi slik at hvis prisen på tokens eller valuta svinger, endres bensinprisen for å holde den samme reelle verdien.
  • Bensinavgift : Dette er faktisk mengden gass som må betales for å kjøre en bestemt transaksjon eller et bestemt program (kalt en kontrakt).

Derfor, hvis noen prøver å kjøre et stykke kode som går for alltid, vil kontrakten til slutt overstige gassgrensen, og hele transaksjonen som påberopte seg kontrakten, vil bli rullet tilbake til sin forrige tilstand.


Nå som vi vet om valutaen, la oss ta en titt på prosessen som genererer ny valuta.

Ethereum Tutorial: Mining

Ethereum, i likhet med andre offentlige blockchain-teknologier, sikrer sikkerhet gjennom en insentivbasert modell. Dette kalles en proof-of-work-mekanisme. Figuren nedenfor viser hvordan eteredrift fungerer:

Fra et mer teknisk perspektiv kalles proof-of-work-algoritmen Ethash, som er en hashingalgoritme inspirert av Dagger-Hashimoto-algoritmen.

Nå som vi har sett eterets arbeidsarkitektur og diskutert de essensielle elementene, la oss se et problem i den virkelige verden og eteremetoden for å løse det samme.

Ethereum Tutorial: Decentralized Crowd Funding Use Case

Problemstilling : En god ‘idé’ er ikke alt i dagens verden for å starte en vellykket bedrift. Det kreves mye finansiering og krefter for å implementere en idé. Det er her organisasjoner som “Kickstarter” kommer inn i bildet. De gir prosjekter den offentlige eksponeringen som er nødvendig for donasjoner mot prosjektet for å få det til å løpe, men den sentraliserte arkitekturen til et slikt motiv har sine ulemper, hovedsakelig i måten belønningene blir håndtert på. Siden den sentraliserte myndigheten tar alle avgjørelser, er systemer utsatt for regler som:

  • alle som savnet fristen for kampanjen, kan ikke komme inn mer
  • enhver giver som ombestemte seg, kan ikke komme seg ut

Nærme seg :

Vi tar en desentralisert metodikk for å løse problemet som forklart i bildet nedenfor:

Løsning :

Her er soliditets smart kontrakt for ovennevnte problemstilling.

pragma soliditet ^ 0.4.16 grensesnitt token {funksjonsoverføring (adressemottaker, uint beløp)} kontrakt Crowdsale {adresse offentlig mottaker uint offentlig finansieringMål uint offentlig beløpHøyet uint offentlig frist uint offentlig pris token offentlig tokenLønningskartlegging (adresse => uint256) offentlig saldoFor bool fundingGoalReached = false bool crowdsaleClosed = false event GoalReached (adressemottaker, uint totalAmountRaised) hendelse FundTransfer (adressestøtte, uint beløp, bool isContribution) / ** * Constrctor-funksjon * * Konfigurer eier * / funksjon Crowdsale (adresse ifSuccessfulSendTo // adressen av eieren når finansieringen er vellykket uint-finansieringGoalInEthers // målbeløp for å øke uint-varighetInMinutter // gitt tid uint etherCostOfEachToken // kostnad for egenkapital i eter-adresse adresseOfTokenUsedAsReward // token-adresse) {beneficiary = ifSuccessfulSendTo fundingGoal = fundingGoalInEthers * 1 ether nå + durationInMinutes * 1 minutter pris = etherCostOfEachToken * 1 eter til kenReward = token (addressOfTokenUsedAsReward)} / ** * Fallback-funksjon * * Funksjonen uten navn er standardfunksjonen som kalles når noen sender penger til en kontrakt * / funksjon () betales {krever (! crowdsaleClosed) uint beløp = msg. verdi saldoOf [msg.sender] + = beløpbeløpRaised + = beløp tokenReward.transfer (msg.sender, beløp / pris) FundTransfer (msg.sender, beløp, sant)} modifikator etterDeadline () {if (now = fundingGoal) {fundingGoalReached = true GoalReached (beneficiary, amountRaised)} crowdsaleClosed = true} / ** * Trekk ut midlene * * Sjekker om målet eller tidsfristen er nådd, og i så fall, og finansieringsmålet ble nådd, * sender hele beløpet til mottakeren. Hvis målet ikke ble nådd, kan hver bidragsyter ta ut * beløpet de bidro med. * / function safeWithdrawal () afterDeadline {if (! fundingGoalReached) {uint amount = balanceOf [msg.sender] balanceOf [msg.sender] = 0 if (amount> 0) {if (msg.sender.send (amount)) { FundTransfer (msg.sender, amount, false)} else {balanceOf [msg.sender] = amount}}} if (fundingGoalReached && beneficiary == msg.sender) {if (beneficiary.send (amountRaised)) {FundTransfer (begunstiget, amountRaised, false)} else {// Hvis vi ikke klarer å sende midlene til mottakeren, låser du opp finansieringsbalansen balanceGoalReached = false}}}}

Hvis du er interessert i å lære soliditet, kan du sjekke bloggen vår på , som brukes til utviklingpersonligsmarte kontrakter.

Hvis du ønsker å lære Blockchain og bygge en karriere innen Blockchain Technologies, så sjekk ut vår som kommer med instruktørstyrt liveopplæring og reell prosjektopplevelse. Denne opplæringen vil hjelpe deg med å forstå Blockchain i dybden og hjelpe deg med å mestre emnet.

Har du spørsmål til oss? Vennligst nevn det i kommentarfeltet og vi kommer tilbake til deg så snart som mulig.