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:
- Kasutusjuhtum: nutikad lepingud kindlustusprotsessis
- Nutikate lepingute eelised
- Eeltingimuste installimine
- Genesis Blocki konfigureerimine
- Ethereumi eravõrgu käitamine
- Ethereumi konto loomine
- Ethereumi nutika lepingu loomine
- 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.
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.