Pametna pogodba Ethereum - Kako izvršiti pametno pogodbo?



V tej vadnici Ethereum Smart Contract boste izvedeli, kako ustvariti, uvesti in izvršiti pametno pogodbo z uporabo zasebnega omrežja Truffle in Ethereum.

Glavni razlog, da se Blockchain Technology uvrsti med najboljše tehnologije, je njegova decentralizirana narava. Čeprav je bil glavni namen Blockchaina vzdrževanje evidenc transakcij brez osrednjega organa, to avtomatizirati, Pametne pogodbe so bile uvedene. A kaj potem ? V tej vadnici Ethereum Smart Contract bomo videli, kako jo uporabljati Tartuf Ethereum in Zasebno omrežje Ethereum za izvedbo pametne pogodbe.

Vas zanima razvoj Ethereuma? Oglejte si to živo .





V tej vadnici Ethereum Smart Contract si bomo ogledali naslednje teme:

  1. Primer uporabe: pametne pogodbe v zavarovalnem postopku
  2. Prednosti pametnih pogodb
  3. Namestitev predpogojev
  4. Konfiguriranje Genesis Block
  5. Zagon zasebnega omrežja Ethereum
  6. Ustvarjanje računa Ethereum
  7. Ustvarjanje pametne pogodbe Ethereum
  8. Izvajanje pametne pogodbe Ethereum

Primer uporabe: pametne pogodbe v zavarovalnem postopku

Blockchain sledi 'No Central Authority' in zato so bile uvedene pametne pogodbe. A ste se kdaj vprašali, kako lahko uporabite pametno pogodbo? No, v tem poglavju pametne pogodbe Ethereum bom razložil primer uporabe pametne pogodbe v postopku zavarovanja.



Oglejmo si primer zavarovanja za zamudo leta. Recimo, da želite opraviti let od vira A do cilja C, vendar nimate neposrednega leta. Torej se odločite za povezovalni let (skozi B). Zdaj bo vaša pot od A do B in nato od B do C, kjer je B letališče, na katerem boste zamenjali lete. Na žalost med letoma od A do B in od B do C. nimate velike časovne razlike, tako da, če slučajno let z A na B zamuja, boste zamudili let z B na C. zavedajte se tega in samo, da se rešite težke izgube, sklenete zavarovanje za zamudo leta.

Zavarovanje zamude leta - Edureka

Če je let z A na B zamudo (zaradi česar boste zamudili let z B na C), vam bo plačan znesek zavarovanja. Običajno to deluje tako, da če vaš let zamuja, zahtevate zavarovanje. Nato bo neka oseba tam preverila in odobrila zavarovanje in končno boste dobili svoj znesek zavarovanja. Toda to je precej dolgotrajen postopek.



Kako lahko s pametnimi pogodbami izboljšate postopek zavarovanja?

Ko gre za finančne transakcije, še posebej, če dobivate denar, 'hitreje, bolje', kajne? Poglejmo torej, kako lahko pametne pogodbe pospešijo postopek zavarovanja. Pametne pogodbe so digitalne pogodbe, ki se samodejno izvršijo, ko so izpolnjeni določeni pogoji. Lahko se napiše pametna pogodba za izplačilo zavarovalnega zneska ljudem, ki so se odločili za zavarovanje zamude leta, če let zamuja. Torej, ko let zamuja in sistem zabeleži to zamudo, se zavarovanje izplača takoj.

Hola! znesek zavarovanja, plačan v nekaj sekundah. Tako se s preprostimi in hitrimi pametnimi pogodbami zgodi postopek.

Prednosti pametnih pogodb

V zgornjem primeru ste videli, kako lahko pametna pogodba pospeši finančne procese. Poleg hitrih transakcij imajo pametne pogodbe še nekaj prednosti. Tu navajam še nekatere prednosti uporabe pametne pogodbe:

  • Samodejno: Vsi postopki v postopku se samodejno izvedejo s pametnimi pogodbami
  • Ni vmesnih proizvodov: Ko uporabljate pametne pogodbe, za opravljeno delo ne potrebujete vmesnega izdelka, saj bodo vse urejene s pametnimi pogodbami
  • Stroškovno učinkovito: Z uporabo pametnih pogodb boste prihranili denar za provizije za transakcije, ki jih zaračunavajo banke, in provizije za storitve, ki jih zaračunajo vmesni produkti

Zdaj, ko vemo, kako lahko pametne pogodbe uporabimo za pospeševanje sveta, pojdimo na praktični del te vadnice Ethereum Smart Contract.

Namestitev predpogojev

Za to vadnico Ethereum Smart Contract bomo potrebovali 5 pomembnih aplikacij:

  • NodeJS
  • NPM
  • Ethereum
  • Tartuf
  • Prevajalnik trdnosti

Namestitev NodeJS

NodeJS je JavaScript Framework, ki se uporablja za izdelavo strežniških aplikacij. Ker uporabljamo zasebno omrežje, bo NodeJS olajšal izdelavo omrežne aplikacije.

Če želite namestiti Nodejs, v terminalu zaženite naslednji ukaz:

$ sudo apt-get install nodejs

Namestitev NPM

NPM pomeni Node Package Manager in se uporablja za zagon aplikacij Nodejs.

Če želite namestiti NPM, v terminalu zaženite naslednji ukaz:

$ sudo apt-get install npm

Namestitev Ethereuma

Ethereum je odprtokodna in javna blockchain, porazdeljena računalniška platforma za gradnjo decentraliziranih aplikacij.

Če želite namestiti Ethereum, v terminalu zaženite naslednji ukaz:

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

Namestitev tartufov

Tartuf je razvojno okolje, preskusni okvir in cevovod za sredstva za Ethereum Blokchains.

Če želite namestiti Truffle, v terminalu zaženite naslednji ukaz:

$ npm namestitev -g tartuf

Namestitev Solidity Compilerja

Solidity je programski jezik, ki se uporablja za pisanje pametnih pogodb. Za izvajanje pametnih pogodb v našem sistemu moramo namestiti Solidity Compiler.

Če želite namestiti Solidity Compiler, v terminalu zaženite naslednji ukaz:

$ sudo npm install -g solc

Konfiguriranje Genesis Block

Genesis Block je začetna točka Blockchaina in za zagon Blockchain potrebujemo datoteko genesis. V tem poglavju pametne pogodbe Ethereum bomo napisali datoteko Genesis in jo konfigurirali tako, da nam bo omogočil izvajanje pametnih pogodb.

Najprej ustvarimo nov imenik, nato pa bomo v njem ustvarili datoteka geneze

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

Zdaj vnesite naslednje vrstice v genesis.json mapa:

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

Shrani to in izstopi.

Zagon zasebnega omrežja Ethereum

V tej vadnici Etheruem Smart Contract bomo v zasebno omrežje uvedli pametno pogodbo Ethereum. Za zagon tega omrežja bomo uporabili naslednji ukaz:

$ 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, rudar'

Pred nadaljevanjem naj razložim nekaj pomembnih zastavic, uporabljenih v zgornjem ukazu:

datadir: Imenik, v katerem so shranjeni podatki, povezani z verigo blokov.

rpc: Omogoča strežnik HTTP-RPC.

rpcport in rpcaddr se uporabljajo za nastavitev vrat oziroma naslova omrežja.

rpcapi: Omogoča nam interakcijo z omrežjem Ethereum z uporabo različnih API-jev.

Povezovanje Geth-a z Ethereum Private Blockchain

Geth console je konzola, od koder lahko komuniciramo z Ethereum Private Blockchain. Če želite Geth povezati z Ethereum Private Blockchain, odprite nov terminal in zaženite spodnji ukaz:

$ geth priložite http://127.0.0.1:8543

Zdaj smo v konzoli Geth, kjer lahko izvajamo ukaze za interakcijo z verigo blokov.

Ustvarjanje računa Ethereum

Za kakršno koli transakcijo potrebujemo račun. V tem razdelku vadnice Ethereum Smart Contract bomo videli, kako iz konzole Geth ustvarimo nov račun Ethereum.

Po dosedanjih korakih smo že v konzoli Geth. Če želite ustvariti nov račun, v konzoli Geth zaženite naslednji ukaz:

> personal.newAccount ('seedphrase')

Zamenjajtesemenska fraza«Z geslom, ki ga želite nastaviti za ta račun.

Ustvarili smo nov račun, vendar ta račun nima etrov. Potrebujemoeterji za kakršno koli transakcijo in za pridobivanje etrovna naš račun bomo začeli rudariti etre. Za začetek rudarjenja moramo najprej odkleniti račun. Odklenimo račun in začnimo z rudarjenjem.

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

Ker se rudarstvo nenehno dogaja, nekaterietribodo položeni na ta račun.

Opomba : Ti etri so navidezni etri in nimajo resnične vrednosti.

Za preverjanje stanjaetriv računu bomo zagnali naslednji ukaz:

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

Ko zaženete ta ukaz v rednih intervalih, boste videli, da jeetrise povečujejo zaradi rudarjenja.

Če želite ustaviti rudarstvo, zaženite naslednji ukaz:

> miner.stop ()

Ustvarjanje pametne pogodbe Ethereum

Ustvarjanje projekta tartufov

Zdaj, ko imamo pripravljen zasebni Blockchain, bomo videli, kako ustvariti pametno pogodbo Ethereum z uporabo tartufov. Za to vadnico bomo ustvarili preprosto pametno pogodbo Ethereum »Hello World«.

Za začetek najprej ustvarimo nov imenik za shranjevanje projekta Tartuf. In potem bomo v tem imeniku ustvarili nov projekt Tartuf. Odprite nov terminal in zaženite spodnje ukaze:

$ mkdir tartuf $ cd tartuf $ tartuf init

The tartuf init ukaz bo ustvaril vse potrebne datoteke, potrebne za projekt tartufov.

Zdaj, ko imamo vse za uvedbo pametne pogodbe Ethereum, se lotimo pisanja pametne pogodbe 'Hello World'.

Pisanje pametne pogodbe 'Hello World'

Vse pogodbe naj bodo zapisane v imeniku „pogodbe“. Preusmerili se bomo v ta imenik in ustvarili pogodbo z imenom 'HelloWorld.sol' ter v to datoteko dodali naslednje vrstice:

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

To je to! Toda te pametne pogodbe ni mogoče izvršiti sama. Za to bomo morali narediti nekaj konfiguracij.

Konfiguriranje selitve tartufov

Za selitev pametne pogodbe bomo morali dodati datoteko v 'Migracije' v imeniku “Tartuf” imenik. V ta imenik bomo dodali datoteko z imenom “2_deploy_contracts.js” z naslednjo vsebino:

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

Shrani in izstopi.

Za zagon tartufov v našem omrežju moramo urediti tartuf.js ”V datoteki “Tartuf” imenik . Odprite to datoteko in vnesite naslednje:

kaj naredi append v javi
module.exports = {rpc: {gostitelj: 'localhost', vrata: 8543}, omrežja: {razvoj: {gostitelj: 'localhost', vrata: 8543, network_id: '*', od: '0xfa2361236b5ac8079cb6cf250e5284922ed9ba9a', plin: 20000000}}}

Opomba: Zamenjajte “Od” naslov z naslovom računa, ki ste ga ustvarili v prejšnjem koraku.

Izvajanje pametne pogodbe Ethereum

V tem zadnjem poglavju vadnice Ethereum Smart Contract bomo videli, kako umestiti našo pametno pogodbo »Hello World« v naše zasebno omrežje Ethereum.

Prevajanje in uvajanje pametne pogodbe

Preden lahko izvedemo svojo pametno pogodbo, jo moramo najprej sestaviti in razporediti v naše zasebno omrežje Ethereum. To bomo storili z naslednjimi ukazi:

$ tartuf prevajanje

Zdaj moramo odkleniti svoj račun in začeti rudariti. Vrnite se na terminal s konzolo Geth in zaženite naslednji ukaz:

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

in se nato vrnite na terminal, ki ga ima “Tartuf” kot sedanji delovni imenik intečinaslednji ukaz:

$ tartuf se preseli

Počakajte, da se razmestitev zaključi.

Izvajanje pametne pogodbe o zasebnem blok-verigi Ethereum

Za izvedbo pametne pogodbe 'Hello World' bomo morali vstopiti v konzolo tartufov. Za to zaženite naslednji ukaz:

$ konzola za tartufe

Zdaj boste v konzoli tartufov. Za izvedbo pametne pogodbe zaženite naslednji ukaz:

> var first_contract> HelloWorld.deployed (). nato (funkcija (primerek) {first_contract = instance})> dApp.message.call ()

Čestitamo! Ustvarili ste svojo prvo pogodbo Ethereum Smart Contract in jo izvedli. Upam, da je bila ta vadnica Ethereum Smart Contract informativna in vam pomagala razumeti, kako izvršiti pametno pogodbo Ethereum. Zdaj pa poskusite napisati druge pametne pogodbe in jih izvršiti.

Imate vprašanje za nas? Prosim, objavite na in se bomo oglasili pri vas.

Če se želite naučiti Blockchain in si ustvariti kariero v Blockchain Technologies, si oglejte našo ki prihaja z usposabljanjem pod vodstvom inštruktorjev v živo in izkušnjami iz resničnega življenja Ta trening vam bo pomagal izčrpno razumeti, kaj je Blockchain, in vam pomagal doseči mojstrstvo nad temo.