Inteligentná zmluva Ethereum - Ako uzavrieť inteligentnú zmluvu?



V tomto výučbovom programe Ethereum Smart Contract sa naučíte, ako vytvoriť, nasadiť a vykonať inteligentnú zmluvu pomocou Truffle a Ethereum Private Network.

Hlavným dôvodom, prečo si Blockchain Technology získala svoje miesto medzi top technológiami, je jeho decentralizovaný charakter. Aj keď hlavným účelom Blockchainu bolo udržiavať záznamy o transakciách bez ústredného orgánu, automatizovať to, Inteligentné zmluvy boli zavedené. Ale čo potom ? V tomto výučbovom programe Ethereum Smart Contract sa dozvieme, ako sa používa Hľuzovka Ethereum a Súkromná sieť Etherea uzavrieť inteligentnú zmluvu.

Máte záujem o vývoj éteru? Vyskúšajte toto naživo .





V tomto výučbovom programe Ethereum Smart Contract sa pozrieme na nasledujúce témy:

  1. Prípad použitia: Inteligentné zmluvy v procese poistenia
  2. Výhody inteligentných zmlúv
  3. Inštalácia predbežných predpokladov
  4. Konfigurácia bloku Genesis
  5. Prevádzka privátnej siete Ethereum
  6. Vytvorenie účtu Ethereum
  7. Vytvorenie inteligentnej zmluvy Ethereum
  8. Plnenie zmluvy Smart Ethereum

Prípad použitia: Inteligentné zmluvy v procese poistenia

Blockchain sleduje slovo „žiadny ústredný orgán“, a preto boli zavedené inteligentné zmluvy. Ale zamysleli ste sa niekedy nad tým, ako sa dá Smart zmluva využiť? V tejto časti inteligentnej zmluvy Ethereum vysvetlím prípad použitia inteligentnej zmluvy v poistnom procese.



Uvažujme o príklade poistenia meškania letu. Predpokladajme, že chcete letieť zo zdroja A do cieľa C, ale nemáte priamy let. Takže sa rozhodnete pre nadväzujúci let (cez B). Teraz bude vaša trasa z bodu A do bodu B a potom z bodu B do bodu C, kde B je letisko, kde budete meniť lety. Bohužiaľ medzi letmi z A do B a z B do C nemáte veľký časový odstup. Takže ak sa náhodou stane, že let z A do B bude meškať, zmeškáte let z B do C. Vy uvedomte si to a len aby ste sa zachránili pred veľkými stratami, uzatvárate poistenie oneskorenia letu.

Poistenie oneskorenia letu - Edureka

Ak teraz váš let z bodu A do bodu B mešká (kvôli čomu zmeškáte let z bodu B do bodu C), bude vám vyplatená suma poistenia. Normálny spôsob, ako to funguje, je, že ak má váš let meškanie, nárokujete si poistenie. Potom tam niekto overí a schváli poistenie a nakoniec získate svoju poistnú sumu. Je to však dosť zdĺhavý proces.



Ako môžete použiť inteligentné zmluvy na zlepšenie procesu poistenia?

Pokiaľ ide o finančné transakcie, a najmä keď získavate peniaze, „čím rýchlejšie, tým lepšie“, nie? Pozrime sa teda, ako môžu inteligentné zmluvy urýchliť proces poistenia. Inteligentné kontrakty sú digitálne kontrakty, ktoré sa automaticky uskutočňujú pri splnení určitých podmienok. Môže byť napísaná inteligentná zmluva na vyplatenie poistnej sumy ľuďom, ktorí sa rozhodli pre poistenie oneskoreného letu, ak sa let oneskorí. Takže keď mešká let a toto meškanie zaznamená systém, poistenie sa vyplatí okamžite.

Ahoj! poistná suma vyplatená za pár sekúnd. Takto jednoduché a rýchle inteligentné zmluvy uskutočňujú proces.

Výhody inteligentných zmlúv

Na vyššie uvedenom príklade ste videli, ako môže inteligentná zmluva zrýchliť finančné procesy. Okrem rýchlych transakcií majú inteligentné zmluvy aj ďalšie výhody. Tu uvádzam niektoré ďalšie výhody plynúce z používania inteligentnej zmluvy:

  • Automaticky: Všetky prebiehajúce kroky prebiehajú automaticky s inteligentnými zmluvami
  • Žiadne medziprodukty: Ak používate inteligentné zmluvy, na splnenie úlohy nepotrebujete nijakého prostredníka, pretože všetko bude riešené pomocou inteligentných zmlúv
  • Nákladovo efektívne: Používanie inteligentných zmlúv vám ušetrí peniaze za transakčné poplatky účtované bankami a poplatky za služby sprostredkovateľmi (ak existujú)

Teraz, keď vieme, ako je možné pomocou inteligentných zmlúv urobiť svet rýchlejším, poďme k praktickej časti tohto výukového programu Ethereum Smart Contract.

Inštalácia predbežných predpokladov

Pre tento tutoriál Ethereum Smart Contract budeme vyžadovať 5 dôležitých aplikácií:

  • NodeJS
  • NPM
  • Ethereum
  • Hľuzovka
  • Kompilátor solídnosti

Inštalácia NodeJS

NodeJS je rámec JavaScript, ktorý sa používa na vytváranie serverových aplikácií. Pretože používame súkromnú sieť, NodeJS uľahčí vytvorenie sieťovej aplikácie.

čo je inštancia v pythone

Ak chcete nainštalovať Nodejs, spustite vo svojom termináli nasledujúci príkaz:

$ sudo apt-get nainštalovať nodejs

Inštalácia NPM

NPM znamená Node Package Manager a používa sa na spustenie aplikácií Nodejs.

Ak chcete nainštalovať NPM, spustite vo svojom termináli nasledujúci príkaz:

$ sudo apt-get install npm

Inštaluje sa Ethereum

Ethereum je open-source a verejná blockchainová, distribuovaná výpočtová platforma na vytváranie decentralizovaných aplikácií.

Ak chcete nainštalovať Ethereum, spustite vo svojom termináli nasledujúci príkaz:

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

Inštalácia hľuzovky

Hľuzovka je vývojové prostredie, testovací rámec a potrubie aktív pre Ethereum Blokchains.

Ak chcete nainštalovať Truffle, spustite vo svojom termináli nasledujúci príkaz:

$ npm inštalácia -g hľuzovka

Inštalácia kompilátora Solidity

Solidity je programovací jazyk používaný na písanie inteligentných zmlúv. Ak chcete v našom systéme spúšťať inteligentné zmluvy, musíme si nainštalovať kompilátor Solidity.

Ak chcete nainštalovať kompilátor Solidity, spustite vo svojom termináli nasledujúci príkaz:

$ sudo npm install -g solc

Konfigurácia bloku Genesis

Genesis Block je východiskovým bodom blockchainu a na spustenie blockchainu potrebujeme súbor genesis. V tejto časti Ethereum Smart Contract napíšeme súbor Genesis a nakonfigurujeme ho tak, aby nám umožňoval spúšťať Smart Contracts.

Najprv si vytvoríme nový adresár a potom v ňom vytvoríme súbor genesis

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

Teraz zadajte nasledujúce riadky do genesis.json spis:

{'config': {'chainId': 2019, 'homesteadBlock': 0, 'eip155Block': 0, 'eip158Block': 0},'alloc': {}, 'obtiažnosť': '200' 'gasLimit': '99999999999999'}

Uložte to a ukončite prácu.

Prevádzka privátnej siete Ethereum

V tomto výučbovom programe Etheruem Smart Contract nasadíme Ethereum Smart Contract na súkromnú sieť. Na spustenie tejto siete teda použijeme nasledujúci príkaz:

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

Pred ďalším pohybom mi dovoľte vysvetliť niektoré dôležité príznaky použité vo vyššie uvedenom príkaze:

datadir: Adresár, kde sú uložené údaje týkajúce sa blockchainu.

RPC: Povolí server HTTP-RPC.

rpcport a rpcaddr sa používajú na nastavenie portu a adresy siete.

rpcapi: Umožňuje nám komunikovať so sieťou Ethereum pomocou rôznych rozhraní API.

Connecting Geth to Ethereum Private Blockchain

Konzola Geth je konzola, odkiaľ môžeme komunikovať s Ethereum Private Blockchain. Ak chcete pripojiť Geth k Ethereum Private Blockchain, otvorte nový terminál a spustite nasledujúci príkaz:

$ geth pripojiť http://127.0.0.1:8543

Teraz sme v konzole Geth, kde môžeme spúšťať príkazy na interakciu s Blockchainom.

Vytvorenie účtu Ethereum

Na uskutočnenie akejkoľvek transakcie potrebujeme účet. V tejto časti tutoriálu Ethereum Smart Contract uvidíme, ako vytvoriť nový účet Ethereum z konzoly Geth.

Podľa doterajších krokov sme už v konzole Geth. Ak chcete vytvoriť nový účet, spustite v konzole Geth nasledujúci príkaz:

> personal.newAccount ('seedphrase')

Vymeňte „semenná fráza”S heslom, ktoré chcete pre tento účet nastaviť.

Vytvorili sme nový účet, ale tento účet nemá étery. Potrebujemeétery vykonať akúkoľvek transakciu a získať éteryna náš účet začneme ťažiť étery. Ak chcete začať ťažiť, musíme najskôr odomknúť účet. Odomkneme účet a začneme ťažiť.

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

Keďže ťažba stále prebieha, niektorééterybudú uložené na tento účet.

Poznámka : Tieto étery sú atrapy éterov a nemajú skutočnú hodnotu.

Pre kontrolu zostatkuéteryv účte spustíme nasledujúci príkaz:

> web3.fromWei (eth.getBalance (eth.coinbase), 'éter')

Keď tento príkaz spustíte v pravidelných intervaloch, uvidíte, žeéterysa vďaka ťažbe zvyšujú.

Ak chcete ťažbu zastaviť, spustite nasledujúci príkaz:

> miner.stop ()

Vytvorenie inteligentnej zmluvy Ethereum

Vytvára sa projekt Hľuzovka

Teraz, keď máme všetky naše súkromné ​​blockchainy pripravené, uvidíme, ako vytvoriť zmluvu Ethereum Smart pomocou Truffle. Pre tento tutoriál vytvoríme jednoduchú „Hello World“ zmluvu Ethereum Smart.

preťaženie funkcií v c ++

Začneme tým, že najskôr vytvoríme nový adresár na uloženie projektu Truffle. A potom v tomto adresári vytvoríme nový projekt Truffle. Otvorte nový terminál a spustite nasledujúce príkazy:

$ mkdir hľuzovka $ cd hľuzovka $ truffle init

The hľuzovka init príkaz vytvorí všetky potrebné súbory potrebné pre projekt hľuzovky.

Teraz, keď už máme všetko na nasadenie inteligentnej zmluvy Ethereum, poďme k napísaniu inteligentnej zmluvy „Hello World“.

Písanie inteligentnej zmluvy „Hello World“

Všetky zmluvy by mali byť napísané v adresári „contract“. Prejdeme do tohto adresára a vytvoríme zmluvu s názvom „HelloWorld.sol“ a do tohto súboru pridáme nasledujúce riadky:

pragma solidity ^ 0.4.15 kontrakt HelloWorld {funkcia verejnej správy reťazca Hello () public {message = 'Hello World!' }}

Toto je ono! Táto inteligentná zmluva však nemôže byť vykonaná sama. Budeme pre to musieť urobiť nejaké konfigurácie.

Konfigurácia migrácie hľuzoviek

Na migráciu našej inteligentnej zmluvy budeme musieť pridať súbor do „Migrácie“ adresár v priečinku „Hľuzovka“ adresár. V tomto adresári pridáme súbor s názvom „2_deploy_contracts.js“ s nasledujúcim obsahom:

var HelloWorld = artifacts.require ('./ HelloWorld.sol') modul.exports = funkcia (nasadenie) {deployer.deploy (HelloWorld)}

Uložiť a ukončiť.

Ak chcete v našej sieti spustiť hľuzovku, musíme upraviť „ truffle.js ”Súbor v „Hľuzovka“ adresár . Otvorte tento súbor a vykonajte nasledujúce zadania:

module.exports = {rpc: {host: 'localhost', port: 8543}, siete: {development: {host: 'localhost', port: 8543, network_id: '*', from: '0xfa2361236b5ac8079cb6cf250e5284922ed9ba9a', plyn: 20000000}}}

Poznámka: Vymeňte „Od“ adresa s adresou účtu, ktorý ste vytvorili v predchádzajúcom kroku.

Plnenie zmluvy Smart Ethereum

V tejto poslednej časti tutoriálu Ethereum Smart Contract sa dozvieme, ako nasadiť našu inteligentnú zmluvu „Hello World“ do našej súkromnej siete Ethereum.

Zostavenie a nasadenie inteligentnej zmluvy

Predtým, ako budeme môcť vykonať našu inteligentnú zmluvu, musíme ju najskôr skompilovať a nasadiť do našej súkromnej siete Ethereum. Urobíme to pomocou nasledujúcich príkazov:

$ hľuzovka zostaviť

Teraz musíme odomknúť náš účet a začať ťažiť. Vráťte sa do terminálu pomocou konzoly Geth a spustite nasledujúci príkaz:

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

a potom sa vráťte späť k terminálu, ktorý má „Hľuzovka“ ako súčasný pracovný adresár abežaťnasledujúci príkaz:

$ hľuzovka migruje

Počkajte na dokončenie nasadenia.

Plnenie inteligentnej zmluvy o súkromnom ethereovom blockchaine

Na vykonanie inteligentnej zmluvy „Hello World“ budeme musieť vstúpiť do konzoly hľuzoviek. Spustíte nasledujúci príkaz:

$ hľuzovka konzola

Teraz budete v konzole hľuzovky. Ak chcete vykonať inteligentnú zmluvu, spustite nasledujúci príkaz:

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

Blahoželáme! Vytvorili ste svoju prvú zmluvu Ethereum Smart a vykonali ju. Dúfam, že tento návod Ethereum Smart Contract bol informačný a pomohol vám pochopiť, ako vykonať zmluvu Ethereum Smart Contract. Teraz pokračujte a skúste napísať ďalšie inteligentné zmluvy a vykonať ich.

Máte na nás otázku? Zverejnite to prosím a ozveme sa vám.

Ak sa chcete naučiť blockchain a budovať si kariéru v blockchainových technológiách, pozrite sa na naše ktorá prináša živé školenie vedené inštruktorom a skúsenosti s projektmi v reálnom živote. Toto školenie vám pomôže vyčerpávajúcim spôsobom pochopiť, čo je Blockchain, a pomôže vám dosiahnuť ovládnutie predmetu.