„Ethereum“ išmanioji sutartis - kaip įvykdyti išmaniąją sutartį?



Šioje „Ethereum“ išmaniosios sutarties pamokoje sužinosite, kaip sukurti, diegti ir vykdyti išmaniąją sutartį naudojant „Truffle“ ir „Ethereum“ privatųjį tinklą.

Pagrindinė priežastis, kodėl „Blockchain Technology“ užima vietą tarp populiariausių technologijų, yra dėl savo decentralizuoto pobūdžio. Nors pagrindinis „Blockchain“ tikslas buvo išlaikyti operacijų įrašus be centrinės valdžios, tai automatizuoti, Išmaniosios sutartys buvo pristatyti. Bet kas po to ? Šioje „Ethereum Smart Contract“ pamokoje pamatysime, kaip tai naudoti Trumas Ethereum ir „Ethereum“ privatus tinklas vykdyti išmaniąją sutartį.

Domina „Ethereum“ plėtra? Peržiūrėkite šį „Live“ .





Šioje „Ethereum Smart Contract“ pamokoje apžvelgsime šias temas:

  1. Naudojimo atvejis: sumanios sutartys draudimo procese
  2. Išmaniųjų sutarčių pranašumai
  3. Išankstinių rekvizitų diegimas
  4. „Genesis Block“ konfigūravimas
  5. „Ethereum Private Network“ valdymas
  6. „Ethereum“ paskyros kūrimas
  7. „Ethereum“ išmaniosios sutarties kūrimas
  8. „Ethereum Smart“ sutarties vykdymas

Naudojimo atvejis: sumanios sutartys draudimo procese

„Jokia centrinė institucija“ yra tai, ko seka „Blockchain“, ir tai yra priežastis, kodėl buvo įvestos išmaniosios sutartys. Bet ar kada susimąstėte, kaip galima naudoti išmaniąją sutartį? Na, šiame „Ethereum“ išmaniosios sutarties skyriuje paaiškinsiu „Pažangiosios sutarties“ naudojimo atvejį draudimo procese.



Panagrinėkime skrydžio vėlavimo draudimo pavyzdį. Tarkime, kad norite skristi iš A šaltinio į tikslą C, bet neturite tiesioginio skrydžio. Taigi, jūs nusprendėte leistis į jungiamąjį skrydį (per B). Dabar jūsų maršrutas bus iš A į B, tada iš B į C, kur B yra oro uostas, kuriame keisite skrydžius. Deja, jūs neturite daug laiko tarpų tarp skrydžių iš A į B ir iš B į C. Taigi, jei tikėtina, kad skrydis iš A į B vėluoja, praleisite skrydį iš B į C. tai supraskite ir tik tam, kad sutaupytumėte nuo didelių nuostolių, jūs draudžiate skrydžio vėlavimo draudimą.

Skrydžio vėlavimo draudimas - „Edureka“

Dabar, jei jūsų skrydis iš A į B bus atidėtas (dėl to praleisite skrydį iš B į C), jums bus sumokėta draudimo suma. Paprastai tai veikia, jei jūsų skrydis vėluoja, jūs reikalaujate draudimo. Tada kai kurie žmonės ten patikrins ir patvirtins draudimą, o jūs gausite savo draudimo sumą. Bet tai yra gana ilgas procesas.



Kaip galite naudoti pažangias sutartis, kad pagerintumėte draudimo procesą?

Kalbant apie finansines operacijas, o ypač kai gaunate pinigus, „kuo greičiau, tuo geriau“, ar ne? Taigi, pažiūrėkime, kaip išmaniosios sutartys gali paspartinti draudimo procesą. Išmaniosios sutartys yra skaitmeninės sutartys, kurios automatiškai vykdomos įvykdžius tam tikras sąlygas. Išmanioji sutartis gali būti parašyta išmokėti draudimo sumą žmonėms, pasirinkusiems skrydžio vėlavimo draudimą, jei skrydis vėluoja. Taigi, kai skrydis vėluoja ir šią vėlavimą užfiksuoja sistema, draudimas išmokamas nedelsiant.

Hola! draudimo suma sumokėta per kelias sekundes. Taip paprastas ir greitas išmanusis kontraktas lemia procesą.

Išmaniųjų sutarčių pranašumai

Ankstesniame pavyzdyje matėte, kaip „Smart Contract“ gali paspartinti finansinius procesus. Be greitų operacijų, „Smart Contracts“ turi dar daugiau privalumų. Čia išvardiju keletą kitų „Smart Contract“ naudojimo pranašumų:

  • Automatinis: Visi proceso veiksmai vyksta automatiškai naudojant „Smart Contracts“
  • Tarpinių produktų nėra: Kai naudojate išmaniąsias sutartis, darbui atlikti nereikia tarpinio, nes viską tvarkys išmaniosios sutartys
  • Taupus: Išmaniųjų sutarčių naudojimas padės jums sutaupyti pinigų iš bankų taikomų operacijų mokesčių ir tarpininkų (jei tokių yra) paslaugų mokesčių.

Dabar, kai žinome, kaip išmaniosios sutartys gali būti naudojamos norint padaryti pasaulį greitesnį, pereikime prie šios „Ethereum Smart Contract“ pamokos praktinės dalies.

Išankstinių rekvizitų diegimas

Šiai „Ethereum Smart Contract“ pamokai reikės 5 svarbių programų:

  • MazgasJS
  • NPM
  • Ethereum
  • Trumas
  • „Solidity Compiler“

Diegiama „NodeJS“

„NodeJS“ yra „JavaScript“ sistema, naudojama kuriant serverio programas. Kadangi mes naudojame privatų tinklą, „NodeJS“ leis lengvai sukurti tinklo programą.

Norėdami įdiegti „Nodejs“, terminale vykdykite šią komandą:

$ sudo apt-get install nodejs

NPM diegimas

NPM reiškia „Node Package Manager“ ir naudojamas „Nodejs“ programoms paleisti.

Norėdami įdiegti NPM, terminale vykdykite šią komandą:

$ sudo apt-get install npm

„Ethereum“ diegimas

Ethereum yra atviro kodo ir viešoji „blockchain“ pagrindu sukurta paskirstytoji skaičiavimo platforma, skirta kurti decentralizuotas programas.

Norėdami įdiegti „Ethereum“, vykdykite šią komandą savo terminale:

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

Trumų diegimas

Trumas yra „Ethereum Blokchains“ kūrimo aplinka, testavimo sistema ir turto dujotiekis.

Norėdami įdiegti „Truffle“, terminale vykdykite šią komandą:

$ npm install -g triufelis

„Solidity Compiler“ diegimas

„Solidity“ yra programavimo kalba, naudojama „Smart Contracts“ rašyti. Norėdami vykdyti pažangias sutartis savo sistemoje, turime įdiegti „Solidity Compiler“.

Norėdami įdiegti „Solidity Compiler“, terminale vykdykite šią komandą:

$ sudo npm install -g solc

kaip mesti dvigubai į int java

„Genesis Block“ konfigūravimas

„Genesis Block“ yra „Blockchain“ pradžios taškas, o mums reikia „Genezės“ failo, kad galėtume paleisti „Blockchain“. Šiame „Ethereum“ išmaniosios sutarties skyriuje parašysime „Genesis“ failą ir sukonfigūruosime jį taip, kad galėtume vykdyti „Smart Contracts“.

Pirmiausia sukursime naują katalogą, tada tame kataloge sukursime genezės byla

$ mkdir ethereum-tinklas $ cd ethereum-tinklas $ nano genezė.json

Dabar įveskite šias eilutes genezė.json failas:

{'config': {'chainId': 2019, 'homesteadBlock': 0, 'eip155Block': 0, 'eip158Block': 0},'paskirstyti': {}, 'sunkumas': '200' 'gasLimit': '99999999999999'}

Išsaugokite tai ir išeikite.

„Ethereum Private Network“ valdymas

Šioje „Etheruem“ išmaniosios sutarties pamokoje mes įdiegsime „Ethereum“ išmaniąją sutartį privačiame tinkle. Taigi, norėdami paleisti šį tinklą, naudosime šią komandą:

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

Prieš eidamas toliau, leiskite man paaiškinti keletą svarbių vėliavų, naudojamų pirmiau pateiktoje komandoje:

datadir: Katalogas, kuriame saugomi su „Blockchain“ susiję duomenys.

RPK: Įgalina HTTP-RPC serverį.

rpcport ir rpcaddr yra naudojami nustatyti tinklo prievadą ir adresą.

rpcapi: Leidžia mums sąveikauti su „Ethereum“ tinklu naudojant skirtingas API.

„Geth“ prijungimas prie „Ethereum Private Blockchain“

„Geth“ konsolė yra konsolė, iš kurios galime bendrauti su „Ethereum Private Blockchain“. Norėdami prijungti „Geth“ prie „Ethereum Private Blockchain“, atidarykite naują terminalą ir vykdykite žemiau esančią komandą:

$ geth pridėti http://127.0.0.1:8543

Dabar mes esame „Geth“ konsolėje, kur galime vykdyti komandas sąveikai su „Blockchain“.

„Ethereum“ paskyros kūrimas

Norint atlikti bet kokią operaciją, mums reikia sąskaitos. Šiame „Ethereum Smart Contract“ pamokos skyriuje pamatysime, kaip iš „Geth“ konsolės sukurti naują „Ethereum“ paskyrą.

Vykdydami iki šiol atliktus veiksmus, mes jau esame „Geth“ pultelyje. Norėdami sukurti naują paskyrą, „Geth“ konsolėje vykdykite šią komandą:

> personal.newAccount ('pradinė frazė')

Pakeiskite „pagrindinė frazė“Su slaptažodžiu, kurį norite nustatyti šiai paskyrai.

Sukūrėme naują paskyrą, tačiau šioje paskyroje nėra eterių. Mums reikiaeteriai atlikti bet kokius sandorius ir gauti eteriusį savo sąskaitą pradėsime kasyti eterius. Norėdami pradėti kasimą, pirmiausia turime atrakinti sąskaitą. Atrakinkime sąskaitą ir pradėkime kasybą.

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

Kai kasyba vis vyksta, kai kurieeteriaibus pervesti į šią sąskaitą.

Pastaba : Šie eteriai yra manekenių eteriai ir neturi realios vertės.

Norėdami patikrinti balansąeteriaipaskyroje vykdysime šią komandą:

> web3.fromWei (eth.getBalance (eth.coinbase), „eteris“)

Kai vykdysite šią komandą reguliariais laiko tarpais, pamatysite, kadeteriaikasybos vis didėja.

Norėdami sustabdyti kasybą, vykdykite šią komandą:

> miner.stop ()

„Ethereum“ išmaniosios sutarties kūrimas

Kuriamas triufelių projektas

Dabar, kai turime pasirengę privatų „Blockchain“, pamatysime, kaip sukurti „Ethereum“ išmaniąją sutartį naudojant triufelius. Šiai pamokai sukursime paprastą „Hello World“ „Ethereum“ išmaniąją sutartį.

Norėdami tai pradėti, pirmiausia sukurkime naują katalogą, kuriame išsaugosime „Truffle“ projektą. Tada tame kataloge sukursime naują projektą „Truffle“. Atidarykite naują terminalą ir vykdykite šias komandas:

$ mkdir truffle $ cd truffle $ truffle init

The triufelių inic komanda sukurs visus reikalingus failus, reikalingus triufelių projektui.

Dabar, kai turime viską, kad galėtume įdiegti „Ethereum“ išmaniąją sutartį, pradėkime rašyti „Sveikas pasaulis“ išmaniąją sutartį.

„Sveiko pasaulio“ išmaniosios sutarties rašymas

Visos sutartys turėtų būti surašytos „sutarčių“ kataloge. Mes pereisime prie šio katalogo ir sukursime sutartį su pavadinimu „HelloWorld.sol“ ir šiame faile pridėsime šias eilutes:

pragmos solidumas ^ 0.4.15 sutartis HelloWorld {string public message function Hello () public {message = 'Hello World!' }}

Tai štai! Tačiau šios sumanios sutarties negalima įvykdyti atskirai. Turėsime atlikti tam tikras konfigūracijas.

Trumų migracijos konfigūravimas

Norėdami perkelti savo išmaniąją sutartį, turėsime pridėti failą „Migracijos“ kataloge „Triufelis“ kataloge. Šiame kataloge pridėsime failą pavadinimu „2_deploy_contracts.js“ su tokiu turiniu:

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

Išsaugoti ir išeiti.

Norėdami paleisti triufelį savo tinkle, turime redaguoti triufeliai.js Failą „Triufelis“ kataloge . Atidarykite šį failą ir atlikite šiuos įrašus:

module.exports = {rpc: {host: 'localhost', port: 8543}, tinklai: {development: {host: 'localhost', portas: 8543, network_id: '*', nuo: '0xfa2361236b5ac8079cb6cf250e5284922ed9ba9a', dujos: 20000000}}}

Pastaba: Pakeiskite „Nuo“ adresas su paskyros, kurią sukūrėte atlikdami ankstesnį veiksmą, adresu.

„Ethereum Smart“ sutarties vykdymas

Šiame paskutiniame „Ethereum“ išmaniosios sutarties pamokos skyriuje pamatysime, kaip įdiegti mūsų „Sveikas pasaulis“ išmaniąją sutartį „Ethereum“ privačiame tinkle.

Išmaniosios sutarties sudarymas ir diegimas

Kad galėtume įvykdyti savo išmaniąją sutartį, pirmiausia turime ją sukompiliuoti ir pritaikyti privačiame „Ethereum“ tinkle. Tai atliksime naudodami šias komandas:

$ truffile kompiliacija

Dabar turime atrakinti savo sąskaitą ir pradėti kasinėti. Grįžkite į terminalą naudodami „Geth“ konsolę ir vykdykite šią komandą:

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

tada grįžkite į terminalą, kuriame yra „Triufelis“ kaip dabartinis darbo katalogas irpaleistišią komandą:

java algoritmai ir duomenų struktūros
$ triufeliai migruoja

Palaukite, kol dislokavimas bus baigtas.

Išmaniosios sutarties vykdymas privačiame „Ethereum Blockchain“

Norėdami įvykdyti išmaniąją sutartį „Sveikas pasaulis“, turėsime įeiti į triufelių konsolę. Norėdami tai padaryti, paleiskite šią komandą:

trumų konsolė $

Dabar būsite triufelių konsolėje. Norėdami įvykdyti išmaniąją sutartį, vykdykite šią komandą:

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

Sveikiname! Sukūrėte savo pirmąją „Ethereum“ išmaniąją sutartį ir ją įvykdėte. Tikiuosi, kad ši „Ethereum Smart Contract“ pamoka buvo informatyvi ir padėjo suprasti, kaip vykdyti „Ethereum Smart Smart“ sutartį. Dabar eikite į priekį ir pabandykite parašyti kitas išmaniąsias sutartis ir jas vykdyti.

Turite mums klausimą? Prašau paskelbti ir mes su jumis susisieksime.

Jei norite išmokti „Blockchain“ ir kurti „Blockchain Technologies“ karjerą, patikrinkite mūsų kuris ateina su instruktorių vedamomis tiesioginėmis treniruotėmis ir realių projektų patirtimi. Šie mokymai padės jums išsamiai suprasti, kas yra „Blockchain“, ir padės jums įsisavinti šį dalyką.