Ethereum Smart Contract - Hvordan utføre en Smart Contract?



I denne Ethereum Smart Contract-opplæringen lærer du hvordan du oppretter, distribuerer og utfører en smart kontrakt ved hjelp av Truffle og Ethereum Private Network.

Hovedårsaken til at Blockchain Technology får sin plass blant de beste teknologiene, er på grunn av dens desentraliserte natur. Mens hovedformålet med Blockchain var å opprettholde transaksjonsregistre uten sentralmyndighet, for å automatisere dette, Smarte kontrakter ble introdusert. Men hva etter ? I denne Ethereum Smart Contract-opplæringen vil vi se hvordan du bruker Truffle Ethereum og Ethereum Private Network å utføre en smart kontrakt.

Interessert i Ethereum Development? Sjekk ut dette Live .





Vi vil se på følgende emner i denne Ethereum Smart Contract-opplæringen:

  1. Brukssak: Smarte kontrakter i forsikringsprosessen
  2. Fordeler med smarte kontrakter
  3. Installere forhåndskrav
  4. Konfigurerer Genesis Block
  5. Kjører Ethereum Private Network
  6. Opprette Ethereum-konto
  7. Opprette Ethereum Smart Contract
  8. Utfører Ethereum Smart Contract

Brukssak: Smarte kontrakter i forsikringsprosessen

'No Central Authority' følger Blockchain, og det er grunnen til at Smart Contracts ble introdusert. Men har du noen gang lurt på hvordan en smart kontrakt kan brukes? Vel, i denne delen av Ethereum Smart Contract, vil jeg forklare en brukstilfelle av Smart Contract i forsikringsprosessen.



La oss se på et eksempel på en flyforsinkelsesforsikring. Anta at du vil ta en flytur fra kilde A til destinasjon C, men at du ikke har en direkte flytur. Så du bestemmer deg for å ta en flyrute (gjennom B). Nå vil ruten din være fra A til B og deretter fra B til C, hvor B er flyplassen du skal endre flyvningene på. Dessverre har du ikke mye tidsforskjell mellom flyvningene fra A til B og fra B til C. Så hvis flyet fra A til B er forsinket, vil du savne flyet fra B til C. innser dette og bare for å redde deg selv fra store tap, tar du en forsinkelse for flyforsinkelse.

Forsinkelse av flyforsinkelse - Edureka

Nå, hvis flyet ditt fra A til B er forsinket (som får deg til å savne flyet fra B til C), får du betalt forsikringsbeløpet. Den normale måten dette fungerer på er at hvis flyet ditt er forsinket, krever du forsikringen. Deretter vil noen der bekrefte og godkjenne forsikringen, og til slutt vil du få forsikringsbeløpet ditt. Men dette er ganske langvarig prosess.



Hvordan kan du bruke smarte kontrakter for å forbedre forsikringsprosessen?

Når det gjelder økonomiske transaksjoner, og spesielt når du får penger, 'jo raskere, jo bedre', er det ikke? Så la oss se hvordan smarte kontrakter kan feste forsikringsprosessen. Smarte kontrakter er digitale kontrakter som automatisk utføres når visse vilkår er oppfylt. En smart kontrakt kan skrives for å betale forsikringsbeløpet til personer som har valgt flyforsinkelsesforsikring hvis flyet er forsinket. Så når flyet er forsinket og denne forsinkelsen registreres av systemet, betales forsikringen umiddelbart.

Hola! forsikringsbeløpet betalt på få sekunder. Slik får enkle og raske smarte kontrakter en prosess til å skje.

Fordeler med smarte kontrakter

Du har sett i eksemplet ovenfor hvordan Smart Contract kan feste økonomiske prosesser. Bortsett fra raske transaksjoner, har smarte kontrakter noen flere fordeler. Her lister jeg opp noen andre fordeler ved å bruke en smart kontrakt:

  • Automatisk: Alle trinnene i prosessen skjer automatisk med Smart Contracts
  • Ingen mellomprodukter: Når du bruker smarte kontrakter, trenger du ikke et mellomledd for å få jobben gjort, da alt blir håndtert av smarte kontrakter
  • Kostnadseffektiv: Ved å bruke smarte kontrakter sparer du penger på transaksjonsgebyrer som bankene krever og servicegebyrene fra mellommenn (hvis noen)

Nå som vi vet hvordan smarte kontrakter kan brukes til å gjøre verden til et raskere sted, la oss komme til den praktiske delen av denne Ethereum Smart Contract-opplæringen.

Installere forhåndskrav

For denne Ethereum Smart Contract-opplæringen vil vi kreve 5 viktige applikasjoner:

  • NodeJS
  • NPM
  • Ethereum
  • Trøffel
  • Solidity Compiler

Installere NodeJS

NodeJS er et JavaScript Framework som brukes til å bygge serverapplikasjoner. Ettersom vi bruker et privat nettverk, vil NodeJS gjøre det enkelt å bygge nettverksapplikasjonen.

For å installere Nodejs, kjør følgende kommando i terminalen:

$ sudo apt-get install nodejs

Installere NPM

NPM står for Node Package Manager og brukes til å kjøre Nodejs-applikasjoner.

For å installere NPM, kjør følgende kommando i terminalen:

$ sudo apt-get install npm

Installere Ethereum

Ethereum er en åpen kildekode og offentlig, blockchain-basert distribuert databehandlingsplattform for å bygge desentraliserte applikasjoner.

For å installere Ethereum, kjør følgende kommando i terminalen din:

$ sudo apt-get install software-properties-common $ sudo add-apt-repository -y ppa: ethereum / ethereum $ sudo apt-get update $ sudo apt-get install ethereum

Installere trøffel

Truffle er et utviklingsmiljø, Testing Framework og Asset pipeline for Ethereum Blokchains.

c ++ navneplasseksempel

For å installere Truffle, kjør følgende kommando i terminalen:

$ npm installer -g trøffel

Installere Solidity Compiler

Solidity er et programmeringsspråk som brukes til å skrive smarte kontrakter. For å kjøre smarte kontrakter på systemet vårt, må vi installere Solidity Compiler.

For å installere Solidity Compiler, kjør følgende kommando i terminalen:

$ sudo npm install -g solc

Konfigurerer Genesis Block

En Genesis Block er startpunktet for en Blockchain, og vi trenger en genese-fil for å starte Blockchain. I denne delen av Ethereum Smart Contract vil vi skrive en Genesis-fil og konfigurere den slik at vi kan kjøre Smart Contracts.

La oss først opprette en ny katalog, og deretter skal vi opprette den i den katalogen genese-fil

$ mkdir ethereum-network $ cd ethereum-network $ nano genesis.json

Skriv inn følgende linjer i genesis.json fil:

{'config': {'chainId': 2019, 'homesteadBlock': 0, 'eip155Block': 0, 'eip158Block': 0},'alloc': {}, 'problems': '200' 'gasLimit': '99999999999999'}

Lagre dette og gå ut.

Kjører Ethereum Private Network

I denne Etheruem Smart Contract-opplæringen vil vi distribuere en Ethereum Smart Contract på et privat nettverk. Så for å starte dette nettverket vil vi bruke følgende kommando:

$ geth --datadir ./dataDir init ./genesis.json

$ geth --port 4321 --networkid 1234 --datadir =. / dataDir --rpc --rpcport 8543 --rpcaddr 127.0.0.1 --rpcapi 'eth, net, web3, personal, miner'

Før jeg går videre, la meg forklare noen viktige flagg som brukes i kommandoen ovenfor:

datadir: Katalogen der dataene knyttet til Blockchain er lagret.

RPC: Aktiverer HTTP-RPC-server.

rpcport og rpcaddr brukes til å angi henholdsvis port og adresse til nettverket.

rpcapi: Tillater oss å samhandle med Ethereum-nettverket ved hjelp av forskjellige API-er.

Koble Geth til Ethereum Private Blockchain

Geth-konsollen er konsollen der vi kan samhandle med Ethereum Private Blockchain. For å koble Geth til Ethereum Private Blockchain, åpne en ny terminal og kjør kommandoen nedenfor:

$ geth vedlegg http://127.0.0.1:8543

Nå er vi i Geth-konsollen der vi kan kjøre kommandoer for å samhandle med Blockchain.

Opprette Ethereum-konto

For å foreta en transaksjon trenger vi en konto. I denne delen av opplæringen til Ethereum Smart Contract vil vi se hvordan du oppretter ny Ethereum-konto fra Geth-konsollen.

Etter å ha fulgt trinnene så langt, er vi allerede i Geth-konsollen. For å opprette en ny konto, kjør følgende kommando i Geth-konsollen:

> personal.newAccount ('seedphrase')

Bytt ut “seedphrase”Med passordet du vil angi for denne kontoen.

Vi har opprettet en ny konto, men denne kontoen har ingen eter. Vi trengeretere for å gjøre noen transaksjoner og for å få eteretil vår konto, vil vi starte gruvedriftetere. For å starte gruvedrift, må vi først låse opp kontoen. La oss låse opp kontoen og starte gruvedrift.

> personal.unlockAccount (web3.eth.coinbase, 'seedphrase')> miner.start ()

Som gruvedrift fortsetter å skje, noeneterevil bli satt inn på denne kontoen.

Merk : Disse etrene er det dummy etere og har ingen virkelig verdi.

For å sjekke saldoeneterei kontoen vil vi kjøre følgende kommando:

> web3.fromWei (eth.getBalance (eth.coinbase), 'eter')

Når du kjører denne kommandoen med jevne mellomrom, vil du se atetereblir økt på grunn av gruvedrift.

For å stoppe gruvedrift, kjør følgende kommando:

> miner.stop ()

Opprette Ethereum Smart Contract

Opprette trøffelprosjekt

Nå som vi har vår private Blockchain klar, vil vi se hvordan vi lager en Ethereum Smart Contract ved hjelp av Truffle. For denne opplæringen vil vi lage en enkel “Hello World” Ethereum Smart Contract.

For å starte med dette, la oss først opprette en ny katalog for å lagre Truffle-prosjektet. Og i den katalogen vil vi lage et nytt trøffelprosjekt. Åpne en ny terminal og kjør kommandoene nedenfor:

$ mkdir trøffel $ cd trøffel $ trøffel init

De trøffel init kommandoen vil opprette alle nødvendige filer som kreves for et trøffelprosjekt.

Nå som vi har alt for å distribuere en Ethereum Smart Contract, la oss komme til å skrive en 'Hello World' Smart Contract.

Å skrive en “Hello World” Smart Contract

Alle kontraktene skal skrives i katalogen 'kontrakter'. Vi bytter til denne katalogen og oppretter en kontrakt med navnet “HelloWorld.sol” og legger til følgende linjer i denne filen:

pragma soliditet ^ 0.4.15 kontrakt HelloWorld {string public message function Hello () public {message = 'Hello World!' }}

Det var det! Men denne smarte kontrakten kan ikke utføres av seg selv. Vi må lage noen konfigurasjoner for det.

Konfigurere trøffelmigrasjon

For å overføre Smart-kontrakten vår, må vi legge til en fil i “Migrasjoner” katalog i “Trøffel” katalog. I denne katalogen vil vi legge til en fil som heter “2_deploy_contracts.js” med følgende innhold i seg:

var HelloWorld = artifacts.require ('./ HelloWorld.sol') module.exports = funksjon (distribusjon) {deployer.deploy (HelloWorld)}

Lagre og lukk.

For å kjøre trøffel på nettverket vårt, må vi redigere “ truffle.js ”-Fil i “Trøffel” katalog . Åpne denne filen og skriv inn følgende:

hva er data i vitenskap
module.exports = {rpc: {host: 'localhost', port: 8543}, nettverk: {development: {host: 'localhost', port: 8543, network_id: '*', from: '0xfa2361236b5ac8079cb6cf250e5284922ed9ba9a', gas: 20000000}}}

Merk: Bytt ut 'fra' adresse med adressen til kontoen du opprettet i forrige trinn.

Utfører Ethereum Smart Contract

I denne siste delen av opplæringen til Ethereum Smart Contract vil vi se hvordan vi kan distribuere vår 'Hello World' Smart Contract på vårt Ethereum Private Network.

Kompilering og implementering av smart kontrakt

Før vi kan utføre vår smarte kontrakt, må vi først kompilere og distribuere den til Ethereum Private Network. Vi vil gjøre dette ved hjelp av følgende kommandoer:

$ trøffel kompilere

Nå må vi låse opp kontoen vår og starte gruvedrift. Gå tilbake til terminalen med Geth-konsollen og kjør følgende kommando:

> personal.unlockAccount (web3.eth.coinbase) > miner.start ()

og deretter, gå tilbake til terminalen som har “Trøffel” som nåværende arbeidskatalog ogløpefølgende kommando:

$ trøffel migrerer

Vent til distribusjonen er fullført.

Gjennomføre smart kontrakt på privat Ethereum Blockchain

For å utføre 'Hello World' Smart Contract, må vi inngå trøffelkonsollen. Kjør følgende kommando for å gjøre dette:

$ trøffelkonsoll

Du vil nå være i trøflekonsollen. For å utføre Smart Contract, kjør følgende kommando:

> var first_contract> HelloWorld.deployed (). deretter (function (instance) {first_contract = instance})> dApp.message.call ()

Gratulerer! Du har opprettet din første Ethereum Smart Contract og utført den. Jeg håper denne Ethereum Smart Contract-opplæringen var informativ og hjalp deg med å forstå hvordan du utfører en Ethereum Smart Contract. Nå kan du prøve å skrive andre smarte kontrakter og utføre den.

Har du et spørsmål til oss? Vennligst legg den ut på og vi kommer tilbake til deg.

Hvis du ønsker å lære Blockchain og bygge en karriere innen Blockchain Technologies, så sjekk ut vår som kommer med instruktørledet live-opplæring og reell prosjektopplevelse. Denne opplæringen vil hjelpe deg å forstå hva som er Blockchain på en uttømmende måte og hjelpe deg med å mestre emnet.