Ethereumi nutikas leping - kuidas nutikat lepingut täita?



Selles Ethereumi nutika lepingu õpetuses saate teada, kuidas luua, juurutada ja täita nutikat lepingut Truffle'i ja Ethereumi eravõrgu abil.

Peamine põhjus, miks Blockchain Technology oma koha tipptehnoloogiate seas saab, on selle detsentraliseeritud olemuse tõttu. Kuigi Blockchaini põhieesmärk oli säilitada tehingute arvestust ilma keskasutuseta, siis selle automatiseerimiseks Nutikad lepingud tutvustati. Aga mis pärast ? Selles Ethereumi nutika lepingu õpetuses näeme, kuidas seda kasutada Trühvel Ethereum ja Ethereumi eravõrk nutika lepingu täitmiseks.

Kas olete huvitatud Ethereumi arendamisest? Vaadake seda Live'i .





Vaatame selles Ethereumi nutika lepingu õpetuses järgmisi teemasid:

  1. Kasutusjuhtum: nutikad lepingud kindlustusprotsessis
  2. Nutikate lepingute eelised
  3. Eeltingimuste installimine
  4. Genesis Blocki konfigureerimine
  5. Ethereumi eravõrgu käitamine
  6. Ethereumi konto loomine
  7. Ethereumi nutika lepingu loomine
  8. Ethereumi nutika lepingu täitmine

Kasutusjuhtum: nutikad lepingud kindlustusprotsessis

'No Central Authority' on see, mida Blockchain järgib ja see on põhjus, miks nutikad lepingud kasutusele võeti. Kuid kas olete kunagi mõelnud, kuidas saab nutikat lepingut kasutada? Noh, selles Ethereumi nutika lepingu osas selgitan nutika lepingu kasutamise juhtumit kindlustusprotsessis.



Vaatame näiteks lennu hilinemise kindlustuse näidet. Oletame, et soovite lennata allikast A sihtkohta C, kuid teil pole otselendu. Niisiis otsustate teha jätkulennu (läbi B). Nüüd on teie marsruut A-st B-ni ja seejärel B-st C-ni, kus B on lennujaam, mille lende muudate. Kahjuks pole teil A-st B-ni ja B-st C. lendude vahel palju ajavahet. Nii et kui mõni võimalus juhtub, et lend A-st B-sse hilineb, siis jätate lennu B-st C-ni vahele. sellest aru saada ja lihtsalt selleks, et päästa end suurte kahjude eest, sõlmite lennu hilinemise kindlustuse.

Lennu hilinemise kindlustus - Edureka

Kui teie lend A-st B-sse hilineb (mis jätab teid lennust B-st C-ni vahele), makstakse teile kindlustussumma. Tavaliselt toimib see juhul, kui teie lend hilineb, nõuate kindlustust. Seejärel kontrollib ja kinnitab mõni sealne inimene kindlustuse ja lõpuks saate oma kindlustussumma. Kuid see on üsna pikk protsess.



Kuidas saate nutikate lepingute abil kindlustusprotsessi parandada?

Mis puutub finantstehingutesse ja eriti siis, kui raha saate, siis 'mida kiiremini, seda parem', kas pole? Vaatame, kuidas nutikad lepingud saavad kindlustusprotsessi kinnitada. Nutikad lepingud on digitaalsed lepingud, mis täidetakse automaatselt, kui teatud tingimused on täidetud. Nutika lepingu saab kirjutada kindlustussumma välja maksmiseks inimestele, kes on valinud lennu hilinemise korral lennu hilinemise. Niisiis, kui lend hilineb ja süsteem registreerib selle hilinemise, makstakse kindlustus kohe välja.

Hola! mõne sekundiga makstud kindlustussumma. Nii panevad lihtsad ja kiired nutilepingud protsessi toimuma.

Nutikate lepingute eelised

Olete ülaltoodud näites näinud, kuidas tark leping saab finantsprotsesse kinnitada. Lisaks kiiretele tehingutele on nutitelepingutel veel mõned eelised. Siin loetlen mõned muud nutika lepingu kasutamise eelised:

  • Automaatne: Kõik protsessi etapid toimuvad nutikate lepingutega automaatselt
  • Vaheaineid pole: Nutikate lepingute kasutamisel pole töö tegemiseks vaja vaheainet, kuna kõike haldab nutikas leping
  • Kuluefektiivne: Nutikate lepingute kasutamine aitab säästa raha pankade nõutavatelt tehingutasudelt ja vahendajate teenustasudelt (kui neid on)

Nüüd, kui teame, kuidas nutikaid lepinguid saab kasutada maailma kiiremaks muutmiseks, asume selle Ethereumi nutika lepingu juhendaja praktilise osa juurde.

Eeltingimuste installimine

Selle Ethereumi nutika lepingu juhendaja jaoks vajame viit olulist rakendust:

  • SõlmJS
  • NPM
  • Ethereum
  • Trühvel
  • Kindluse kompilaator

NodeJS-i installimine

NodeJS on JavaScripti raamistik, mida kasutatakse serverirakenduste loomiseks. Kuna kasutame eravõrku, teeb NodeJS võrgurakenduse loomise lihtsaks.

Nodejs installimiseks käivitage oma terminalis järgmine käsk:

$ sudo apt-get install nodejs

NPM-i installimine

NPM tähistab Node Package Manageri ja seda kasutatakse Nodejs-rakenduste käitamiseks.

NPM-i installimiseks käivitage oma terminalis järgmine käsk:

$ sudo apt-get install npm

Ethereumi installimine

Ethereum on avatud lähtekoodiga ja avalikul plokiahelal põhinev hajutatud arvutusplatvorm detsentraliseeritud rakenduste loomiseks.

Ethereumi installimiseks käivitage oma terminalis järgmine käsk:

$ sudo apt-get install tarkvara-omadused-common $ sudo add-apt-repository -y ppa: ethereum / ethereum $ sudo apt-get update $ sudo apt-get install ethereum

Trühvli installimine

Trühvel on Ethereum Blokchaini arenduskeskkond, testimisraamistik ja varade torujuhe.

Truffle'i installimiseks käivitage oma terminalis järgmine käsk:

$ npm install -g trühvel

Solidity Compiler installimine

Solidity on tarkade lepingute kirjutamiseks kasutatav programmeerimiskeel. Nutikate lepingute sõlmimiseks meie süsteemis peame installima Solidity Compiler.

Solidity Compileri installimiseks käivitage oma terminalis järgmine käsk:

$ sudo npm install -g solc

Genesis Blocki konfigureerimine

Genesis Block on Blockchaini alguspunkt ja me vajame Blockchaini käivitamiseks geneesi faili. Ethereumi nutika lepingu selles jaotises kirjutame Genesise faili ja konfigureerime selle nii, et see võimaldaks meil nutikaid lepinguid käivitada.

Loome kõigepealt uue kataloogi ja seejärel loome selles kataloogis geneesi fail

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

Sisestage nüüd lahtrisse järgmised read genesis.json fail:

{'config': {'chainId': 2019, 'homesteadBlock': 0, 'eip155Block': 0, 'eip158Block': 0},'jaotamine': {}, 'raskus': '200' 'gasLimit': '99999999999999'}

Salvestage see ja väljuge.

Ethereumi eravõrgu käitamine

Selles Etheruemi nutika lepingu õpetuses juurutame Ethereumi nutika lepingu eravõrku. Niisiis, selle võrgu käivitamiseks kasutame järgmist käsku:

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

Enne kaugemale liikumist lubage mul selgitada mõnda ülalolevas käsus kasutatud olulist lippu:

datadir: Kataloog, kuhu on salvestatud Blockchainiga seotud andmed.

RPC: Lubab HTTP-RPC serveri.

rpcport ja rpcaddr vastavalt kasutatakse võrgu pordi ja aadressi määramiseks.

RPCAPI: Võimaldab meil suhelda Ethereumi võrguga, kasutades erinevaid API-sid.

Gethi ühendamine Ethereumi privaatse plokiahelaga

Gethi konsool on konsool, kust saame Ethereumi privaatsete plokiahelaga suhelda. Gethi ühendamiseks Ethereum Private Blockchainiga avage uus terminal ja käivitage järgmine käsk:

$ geth attach http://127.0.0.1:8543

Nüüd oleme Gethi konsoolis, kus saame käivitada käske, et suhelda Blockchainiga.

Ethereumi konto loomine

Mis tahes tehingu tegemiseks vajame kontot. Selles Ethereumi nutika lepingu õpetuse jaotises näeme, kuidas Gethi konsoolilt uut Ethereumi kontot luua.

Seniseid samme järgides oleme juba Gethi konsoolis. Uue konto loomiseks käivitage Gethi konsoolis järgmine käsk:

> personal.newAccount ('sisefraas')

Asendagepõhifraas”Parooliga, mille soovite sellele kontole määrata.

Oleme loonud uue konto, kuid sellel kontol pole eetreid. Me vajameeetrid mis tahes tehingute tegemiseks ja eetrite saamiseksmeie kontole hakkame eetreid kaevandama. Kaevandamise alustamiseks peame kõigepealt konto avama. Avame konto ja alustame kaevandamist.

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

Kuna kaevandamist jätkub, siis mõnedeetriddeponeeritakse sellele kontole.

Märge : Need eetrid on näiv eetrid ja neil pole reaalses maailmas väärtust.

Tasakaalu kontrollimisekseetridkontol käivitame järgmise käsu:

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

Kui käivitate selle käsu korrapäraste ajavahemike järel, näete, eteetridkaevandamise tõttu suurenevad.

Kaevandamise peatamiseks käivitage järgmine käsk:

goto funktsioon c ++
> miner.stop ()

Ethereumi nutika lepingu loomine

Trühvliprojekti loomine

Nüüd, kui meil on kõik oma privaatne Blockchain valmis, näeme, kuidas luua trühvli abil Ethereumi nutikas leping. Selle õpetuse jaoks loome lihtsa Ethereumi nutika lepingu “Tere maailm”.

Alustuseks loome kõigepealt projekti Trühvlid salvestamiseks uue kataloogi. Ja siis loome selles kataloogis uue projekti Trühvlid. Avage uus terminal ja käivitage järgmised käsud:

$ mkdir trühvel $ cd trühvel $ trühvli init

The trühvli inits käsk loob kõik trühvli projekti jaoks vajalikud failid.

Nüüd, kui meil on Ethereumi nutika lepingu valmimiseks kõik olemas, alustame nutika lepingu “Tere maailm” kirjutamist.

Nutika lepingu “Tere maailm” kirjutamine

Kõik lepingud tuleks kirjutada kataloogi „lepingud“. Läheme üle sellele kataloogile ja loome lepingu nimega “HelloWorld.sol” ning lisame sellesse faili järgmised read:

pragma kindlus ^ 0.4.15 leping HelloWorld {string avaliku sõnumi funktsioon Tere () public {message = 'Tere maailm!' }}

See on see! Kuid seda nutikat lepingut ei saa ise täita. Peame selle jaoks mõned konfiguratsioonid tegema.

Trühvlite rände seadistamine

Nutika lepingu üleviimiseks peame faili lisama faili “Ränded” kataloogis 'Trühvel' kataloogi. Sellesse kataloogi lisame faili nimega „2_deploy_contracts.js” järgmise sisuga:

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

Salvesta ja välju.

Trühvli käitamiseks meie võrgus peame redigeerima truffle.js ”Faili 'Trühvel' kataloogi . Avage see fail ja tehke järgmised kirjed:

module.exports = {rpc: {host: 'localhost', port: 8543}, võrgud: {arendus: {host: 'localhost', port: 8543, network_id: '*', pärit: '0xfa2361236b5ac8079cb6cf250e5284922ed9ba9a', gaas: 20000000}}}

Märge: Asendage 'Pärit' aadress koos eelmises etapis loodud konto aadressiga.

Ethereumi nutika lepingu täitmine

Selles viimases Ethereumi nutika lepingu lepingu jaotises näeme, kuidas juurutada nutika lepingu “Tere maailm” meie Ethereumi eravõrku.

Nutika lepingu koostamine ja juurutamine

Enne oma nutika lepingu täitmist peame selle kõigepealt kompileerima ja juurutama oma Ethereumi eravõrku. Teeme seda järgmiste käskude abil:

$ trühvli kompileerimine

Nüüd peame oma konto avama ja kaevandama hakkama. Minge Gethi konsooliga tagasi terminali ja käivitage järgmine käsk:

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

ja siis minge tagasi terminali juurde, kus on 'Trühvel' praeguse töökataloogina jajooksmajärgmine käsk:

$ truffle migreeruvad

Oodake, kuni juurutamine on lõpule jõudnud.

Nutika lepingu täitmine privaatses Ethereumi plokiahelas

Nutika lepingu “Hello World” täitmiseks peame astuma trühvlikonsooli. Selleks käivitage järgmine käsk:

trühvlikonsool $

Nüüd olete trühvlikonsoolis. Nutika lepingu täitmiseks käivitage järgmine käsk:

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

Palju õnne! Olete loonud oma esimese Ethereumi nutika lepingu ja selle täitnud. Loodan, et see Ethereumi nutika lepingu juhendaja oli informatiivne ja aitas teil mõista, kuidas Ethereumi nutikat lepingut täita. Nüüd jätkake ja proovige kirjutada muud nutikad lepingud ja see täita.

Kas teil on meile küsimus? Palun postitage see aadressile ja me pöördume teie poole.

Kui soovite õppida Blockchaini ja luua karjääri Blockchain Technologies'is, vaadake meie mis on varustatud juhendajate juhitud elava koolituse ja reaalse elu projektikogemusega. See koolitus aitab teil ammendavalt mõista, mis on Blockchain, ja aitab teil selle teema üle meisterlikkust saavutada.