Pametni ugovor Ethereum - Kako izvršiti pametni ugovor?



U ovom vodiču za Ethereum Smart Contract naučit ćete kako stvoriti, implementirati i izvršiti pametni ugovor pomoću privatne mreže Truffle i Ethereum.

Glavni razlog zašto Blockchain tehnologija dobiva svoje mjesto među vrhunskim tehnologijama je zbog svoje decentralizirane prirode. Iako je glavna svrha Blockchaina bila održavanje evidencije transakcija bez središnjeg tijela, da bi se to automatiziralo, Pametni ugovori uvedeni su. Ali što poslije ? U ovom uputstvu za Ethereum Smart Contract vidjet ćemo kako ga koristiti Tartuf Ethereum i Privatna mreža Ethereum za izvršenje pametnog ugovora.

Zanima vas razvoj Ethereuma? Pogledajte ovo uživo .





U ovom uputstvu za Ethereum Smart Contract proučit ćemo sljedeće teme:

  1. Slučaj upotrebe: pametni ugovori u postupku osiguranja
  2. Prednosti pametnih ugovora
  3. Instaliranje preduvjeta
  4. Konfiguriranje Genesis bloka
  5. Pokretanje privatne mreže Ethereum
  6. Stvaranje računa Ethereum
  7. Izrada pametnog ugovora Ethereum
  8. Izvršenje pametnog ugovora Ethereum

Slučaj upotrebe: pametni ugovori u postupku osiguranja

'Bez središnjeg tijela' slijedi Blockchain i to je razlog uvođenja pametnih ugovora. No jeste li se ikad zapitali kako se može koristiti pametni ugovor? Pa, u ovom dijelu Ethereum pametnog ugovora objasnit ću vam slučaj upotrebe pametnog ugovora u postupku osiguranja.



Razmotrimo primjer osiguranja od kašnjenja u letu. Pretpostavimo da želite letjeti od izvora A do odredišta C, ali nemate izravan let. Dakle, odlučili ste se za povezujući let (kroz B). Sada će vaša ruta biti od A do B, a zatim od B do C, gdje je B aerodrom za koji ćete mijenjati letove. Nažalost, nemate puno vremenskog razmaka između letova od A do B i od B do C. Dakle, ako kojim slučajem let s A na B odgodi, propustit ćete let s B na C. Vi shvatite to i samo da biste se spasili od velikih gubitaka, uzimate osiguranje za kašnjenje u letu.

Osiguranje od kašnjenja u letu - Edureka

Sada, ako vaš let od A do B kasni (zbog čega ćete propustiti let od B do C), bit će vam plaćen iznos osiguranja. Uobičajeni način na koji to funkcionira je da ako vaš let kasni, zatražite osiguranje. Tada će neka osoba ovjeriti i odobriti osiguranje i konačno ćete dobiti iznos osiguranja. Ali ovo je prilično dugotrajan proces.



Kako pametnim ugovorima možete poboljšati postupak osiguranja?

Što se tiče financijskih transakcija, a posebno kada primate novac, 'što brže, to bolje', zar ne? Pa, pogledajmo kako pametni ugovori mogu ubrzati postupak osiguranja. Pametni ugovori su digitalni ugovori koji se automatski izvršavaju kada su ispunjeni određeni uvjeti. Pametni ugovor može se napisati za isplatu iznosa osiguranja ljudima koji su se odlučili za osiguranje od kašnjenja u letu ako let kasni. Dakle, kad let kasni i sustav zabilježi to kašnjenje, osiguranje se odmah isplaćuje.

Hola! iznos osiguranja plaćen u nekoliko sekundi. Na ovaj način jednostavni i brzi pametni ugovori omogućuju proces.

Prednosti pametnih ugovora

U gornjem ste primjeru vidjeli kako Smart Contract može učvrstiti financijske procese. Osim brzih transakcija, pametni ugovori imaju još neke pogodnosti. Ovdje navodim neke druge pogodnosti korištenja pametnog ugovora:

  • Automatski: Svi koraci u procesu automatski se odvijaju pomoću pametnih ugovora
  • Nema međuprodukata: Kada upotrebljavate pametne ugovore, ne trebate posrednik da biste obavili posao jer će sve rješavati pametni ugovori
  • Isplativo: Korištenjem pametnih ugovora uštedjet ćete novac na naknadama za transakcije koje naplaćuju banke i naknadama za usluge posrednika (ako ih ima)

Sada, kad znamo kako se pametni ugovori mogu koristiti za stvaranje svijeta bržim, prijeđimo na praktični dio ovog vodiča za Ethereum Smart Contract.

slučajni razred u primjeru Java

Instaliranje preduvjeta

Za ovaj vodič Ethereum Smart Contract trebat će nam 5 važnih aplikacija:

  • NodeJS
  • NPM
  • Ethereum
  • Tartuf
  • Sastavljač solidnosti

Instaliranje NodeJS

NodeJS je JavaScript Framework koji se koristi za izgradnju poslužiteljskih aplikacija. Kako koristimo privatnu mrežu, NodeJS će olakšati izgradnju mrežne aplikacije.

Da biste instalirali Nodejs, pokrenite sljedeću naredbu u svom terminalu:

$ sudo apt-get install nodejs

Instaliranje NPM-a

NPM je kratica za Node Package Manager i koristi se za pokretanje Nodejs aplikacija.

Da biste instalirali NPM, pokrenite sljedeću naredbu u svom terminalu:

$ sudo apt-get instalacija npm

Instaliranje Ethereuma

Ethereum je open-source i javna blockchain, distribuirana računalna platforma za izgradnju decentraliziranih aplikacija.

Da biste instalirali Ethereum, pokrenite sljedeću naredbu na svom terminalu:

$ sudo apt-get instalacija softverskih svojstava-zajednička $ sudo add-apt-repozitorij -y ppa: ethereum / ethereum $ sudo apt-get update $ sudo apt-get install ethereum

Instaliranje tartufa

Truffle je razvojno okruženje, okvir za testiranje i cjevovod imovine za Ethereum Blokchains.

Da biste instalirali Truffle, pokrenite sljedeću naredbu na svom terminalu:

$ npm instalacija -g tartufa

Instaliranje Solidity Compilera

Solidity je programski jezik koji se koristi za pisanje pametnih ugovora. Da bismo na našem sustavu pokrenuli pametne ugovore, moramo instalirati Solidity Compiler.

Da biste instalirali Solidity Compiler, pokrenite sljedeću naredbu u svom terminalu:

$ sudo npm instaliraj -g solc

Konfiguriranje Genesis bloka

Genesis Block je početna točka Blockchaina i za pokretanje Blockchaina potrebna nam je genesis datoteka. U ovom ćemo odjeljku Ethereum Smart Contract napisati Genesis datoteku i konfigurirati je tako da nam omogući pokretanje Smart Contracts.

Prvo napravimo novi direktorij, a zatim ćemo u njemu stvoriti datoteka geneze

$ mkdir mreža ethereuma $ cd mreža ethereuma $ nano genesis.json

Sada unesite sljedeće retke u genesis.json datoteka:

{'config': {'chainId': 2019, 'homesteadBlock': 0, 'eip155Block': 0, 'eip158Block': 0},'alloc': {}, 'poteškoća': '200' 'gasLimit': '99999999999999'}

Spremite ovo i izađite.

fibonaccijev rekurzivni c ++

Pokretanje privatne mreže Ethereum

U ovom uputstvu za Etheruem Smart Contract rasporedit ćemo Ethereum Smart Contract na privatnu mrežu. Dakle, za pokretanje ove mreže koristit ćemo sljedeću naredbu:

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

Prije nego što krenem dalje, dopustite mi da objasnim neke važne zastavice korištene u gornjoj naredbi:

datadir: Direktorij u kojem su pohranjeni podaci povezani s Blockchainom.

rpc: Omogućuje HTTP-RPC poslužitelj.

rpcport i rpcaddr koriste se za postavljanje porta i adrese mreže.

rpcapi: Omogućuje nam interakciju s mrežom Ethereum koristeći različite API-je.

Spajanje Geth-a na Ethereum Private Blockchain

Geth konzola je konzola odakle možemo komunicirati s Ethereum Private Blockchainom. Da biste povezali Geth s Ethereum Private Blockchainom, otvorite novi terminal i pokrenite donju naredbu:

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

Sada smo u Geth konzoli gdje možemo pokretati naredbe za interakciju s Blockchainom.

Stvaranje računa Ethereum

Za bilo kakvu transakciju potreban nam je račun. U ovom odjeljku vodiča za Ethereum Smart Contract vidjet ćemo kako stvoriti novi račun Ethereum iz Geth konzole.

Slijedeći dosadašnje korake, već smo u Geth konzoli. Da biste stvorili novi račun, pokrenite sljedeću naredbu u Geth konzoli:

> personal.newAccount ('seedphrase')

Zamijenite 'sjemena fraza”S lozinkom koju želite postaviti za ovaj račun.

Stvorili smo novi račun, ali ovaj račun nema etere. Trebamoeteri za obavljanje bilo kakve transakcije i za dobivanje eterana naš račun započet ćemo iskopavati etere. Da bismo započeli rudarenje, prvo moramo otključati račun. Otključamo račun i krenimo s rudarstvom.

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

Kako se rudarstvo neprestano događa, nekieteribit će položeni na ovaj račun.

Bilješka : Ovi eteri jesu lažni eteri i nemaju stvarnu vrijednost.

Da biste provjerili ravnotežueterina računu ćemo pokrenuti sljedeću naredbu:

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

Kada ovu naredbu pokrećete u redovitim intervalima, vidjet ćete da seeterise povećavaju zbog rudarstva.

google podaci znanstvenik pitanja za intervju

Da biste zaustavili rudarstvo, pokrenite sljedeću naredbu:

> rudar.stop ()

Izrada pametnog ugovora Ethereum

Izrada projekta tartufa

Sad kad smo spremni za svoj privatni Blockchain, vidjet ćemo kako stvoriti pametni ugovor Ethereum koristeći tartufe. Za ovaj ćemo vodič stvoriti jednostavan pametni ugovor Ethereum 'Hello World'.

Za početak prvo napravimo novi direktorij za pohranu projekta tartufa. A onda ćemo u tom direktoriju stvoriti novi projekt tartufa. Otvorite novi terminal i pokrenite naredbe u nastavku:

$ mkdir tartuf $ cd tartuf $ tartuf init

The tartuf init naredba će stvoriti sve potrebne datoteke potrebne za projekt tartufa.

Sad kad imamo sve za implementaciju pametnog ugovora Ethereum, idemo na pisanje pametnog ugovora 'Hello World'.

Pisanje pametnog ugovora 'Hello World'

Svi ugovori trebaju biti zapisani u direktoriju 'ugovori'. Prebacit ćemo se u ovaj direktorij i stvoriti ugovor s imenom 'HelloWorld.sol' i dodati sljedeće redove u ovu datoteku:

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

To je to! Ali ovaj pametni ugovor ne može se izvršiti sam. Morat ćemo napraviti neke konfiguracije za to.

Konfiguriranje migracije tartufa

Da bismo premjestili naš pametni ugovor, morat ćemo dodati datoteku u “Migracije” direktorij u 'tartuf' imenik. U ovaj ćemo direktorij dodati datoteku s imenom '2_deploy_contracts.js' sa sljedećim sadržajem:

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

Spremi i izađi.

Da bismo pokrenuli tartufe na našoj mreži, moramo urediti ' tartuf.js ”U datoteci 'tartuf' imenik . Otvorite ovu datoteku i unesite sljedeće:

module.exports = {rpc: {host: 'localhost', port: 8543}, mreže: {development: {host: 'localhost', port: 8543, network_id: '*', from: '0xfa2361236b5ac8079cb6cf250e5284922ed9ba9a', gas: 20000000}}}

Bilješka: Zamijenite 'iz' adresa s adresom računa koji ste stvorili u prethodnom koraku.

Izvršenje pametnog ugovora Ethereum

U ovom posljednjem odjeljku vodiča za Ethereum Smart Contract vidjet ćemo kako rasporediti naš pametni ugovor „Hello World“ na našoj privatnoj mreži Ethereum.

Priprema i primjena pametnog ugovora

Prije nego što možemo izvršiti svoj pametni ugovor, prvo ga moramo kompajlirati i rasporediti na našu privatnu mrežu Ethereum. To ćemo učiniti pomoću sljedećih naredbi:

Kompilacija $ tartufa

Sada moramo otključati svoj račun i započeti rudarenje. Vratite se na terminal s Geth konzolom i pokrenite sljedeću naredbu:

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

a zatim se vratite na terminal koji ima 'tartuf' kao sadašnji radni direktorij itrčanjesljedeću naredbu:

$ tartuf migrira

Pričekajte da se implementacija dovrši.

Izvršenje pametnog ugovora na privatnom Ethereum Blockchainu

Da bismo izvršili pametni ugovor 'Hello World', morat ćemo ući u konzolu s tartufima. Pokrenite sljedeću naredbu da biste to učinili:

$ konzola za tartufe

Sad ćete biti u konzoli s tartufima. Da biste izvršili pametni ugovor, pokrenite sljedeću naredbu:

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

Čestitamo! Stvorili ste svoj prvi pametni ugovor Ethereum i izvršili ga. Nadam se da je ovaj vodič za Ethereum Smart Contract bio informativan i da vam je pomogao da shvatite kako izvršiti Ethereum Smart Contract. Sada, samo naprijed, pokušajte napisati druge pametne ugovore i izvršiti ih.

Imate pitanje za nas? Molimo vas objavite na i javit ćemo vam se.

Ako želite naučiti Blockchain i izgraditi karijeru u Blockchain Technologies, onda pogledajte našu koja dolazi s treningom uživo pod vodstvom instruktora i iskustvom u stvarnom životu. Ovaj trening pomoći će vam da iscrpno shvatite što je Blockchain i pomoći vam da postignete ovladavanje tom temom.