{"id":39018,"date":"2019-10-31T22:27:25","date_gmt":"2019-10-31T19:27:25","guid":{"rendered":"https:\/\/prohoster.info\/blog\/kniga-sozdanie-smart-kontraktov-solidity-dlya-blokchejna-ethereum-prakticheskoe-rukovodstvo\/"},"modified":"2019-10-31T22:27:25","modified_gmt":"2019-10-31T19:27:25","slug":"kniga-sozdanie-smart-kontraktov-solidity-dlya-blokchejna-ethereum-prakticheskoe-rukovodstvo","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hu\/blog\/news\/kniga-sozdanie-smart-kontraktov-solidity-dlya-blokchejna-ethereum-prakticheskoe-rukovodstvo","title":{"rendered":"A k\u00f6nyv \u201eOkos szerz\u0151d\u00e9sek Solidity k\u00e9sz\u00edt\u00e9se az Ethereum blokkl\u00e1ncra. Gyakorlati \u00fatmutat\u00f3\u201d","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"A k\u00f6nyv \u201eOkos szerz\u0151d\u00e9sek Solidity k\u00e9sz\u00edt\u00e9se az Ethereum blokkl\u00e1ncra. Gyakorlati \u00fatmutat\u00f3\u201d\" src=\"\/wp-content\/uploads\/2019\/10\/9549e708e99fef6892045ff854231fa7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nT\u00f6bb mint egy \u00e9ve dolgozom a \u201eOkos szerz\u0151d\u00e9sek Solidity k\u00e9sz\u00edt\u00e9se az Ethereum blokkl\u00e1ncra. Gyakorlati \u00fatmutat\u00f3\u201d c\u00edm\u0171 k\u00f6nyv\u00f6n, \u00e9s most m\u00e1r befejeztem ezt a munk\u00e1t, a k\u00f6nyv <noindex><a rel=\"nofollow\" href=\"https:\/\/www.litres.ru\/aleksandr-frolov-198\/sozdanie-smart-kontraktov-solidity-dlya-blokcheyna-et\/\">megjelen\u00e9sre ker\u00fclt \u00e9s el\u00e9rhet\u0151 a Litres-en<\/a><\/noindex>.<\/p>\n<p>Rem\u00e9lem, hogy a k\u00f6nyvem seg\u00edt gyorsan elkezdeni az Ethereum blokkl\u00e1nc Solidity okos szerz\u0151d\u00e9seinek \u00e9s decentraliz\u00e1lt alkalmaz\u00e1sainak DApp l\u00e9trehoz\u00e1s\u00e1t. 12 leck\u00e9b\u0151l \u00e1ll, gyakorlati feladatokkal. Ezek elv\u00e9gz\u00e9s\u00e9vel az olvas\u00f3 saj\u00e1t helyi Ethereum csom\u00f3pontokat hozhat l\u00e9tre, okos szerz\u0151d\u00e9seket publik\u00e1lhat \u00e9s azok met\u00f3dusait h\u00edvhatja, adatokat cser\u00e9lhet a val\u00f3 vil\u00e1g \u00e9s az okos szerz\u0151d\u00e9sek k\u00f6z\u00f6tt or\u00e1kulumokon kereszt\u00fcl, \u00e9s dolgozhat a Rinkeby tesztel\u00e9si \u00e9s hibakeres\u0151 h\u00e1l\u00f3zat\u00e1val. <\/p>\n<p>A k\u00f6nyv mindenkihez sz\u00f3l, aki \u00e9rdekl\u0151dik a blokkl\u00e1ncok \u00e9lvonalbeli technol\u00f3gi\u00e1i ir\u00e1nt, \u00e9s gyorsan szeretne tud\u00e1st szerezni, amely lehet\u0151v\u00e9 teszi sz\u00e1m\u00e1ra, hogy \u00e9rdekes \u00e9s \u00edg\u00e9retes munk\u00e1t v\u00e9gezzen.<\/p>\n<p>Az al\u00e1bbiakban megtal\u00e1lja a k\u00f6nyv tartalomjegyz\u00e9k\u00e9t \u00e9s az els\u0151 fejezetet (szint\u00e9n a <noindex><a rel=\"nofollow\" href=\"https:\/\/www.litres.ru\/aleksandr-frolov-198\/sozdanie-smart-kontraktov-solidity-dlya-blokcheyna-et\/\">Litres-en<\/a><\/noindex> el\u00e9rhet\u0151k a k\u00f6nyv r\u00e9szletei). V\u00e1rom a visszajelz\u00e9seket, megjegyz\u00e9seket \u00e9s javaslatokat. Mindezeket figyelembe fogom venni a k\u00f6nyv k\u00f6vetkez\u0151 kiad\u00e1sa sor\u00e1n.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<b class=\"spoiler_title\">Tartalomjegyz\u00e9k<\/b><b class=\"spoiler_title\">Bevezet\u00e9s<\/b>K\u00f6nyv\u00fcnk azok sz\u00e1m\u00e1ra k\u00e9sz\u00fclt, akik nemcsak az Ethereum blokkl\u00e1nc m\u0171k\u00f6d\u00e9s\u00e9nek alapelveit szeretn\u00e9k meg\u00e9rteni, hanem gyakorlati k\u00e9szs\u00e9geket is szeretn\u00e9nek szerezni a Solidity programoz\u00e1si nyelv haszn\u00e1lat\u00e1val decentraliz\u00e1lt alkalmaz\u00e1sok DApp l\u00e9trehoz\u00e1s\u00e1ban e h\u00e1l\u00f3zaton.<\/p>\n<p>Ezt a k\u00f6nyvet nem csup\u00e1n olvasni kell, hanem dolgozni vele, elv\u00e9gezve a leck\u00e9kben le\u00edrt gyakorlati feladatokat. A munk\u00e1hoz sz\u00fcks\u00e9ge lesz egy helyi sz\u00e1m\u00edt\u00f3g\u00e9pre, virtu\u00e1lis vagy felh\u0151szerverre Debian vagy Ubuntu oper\u00e1ci\u00f3s rendszerrel. Emellett sok feladat elv\u00e9gz\u00e9s\u00e9hez haszn\u00e1lhat\u00f3 Raspberry Pi is.<\/p>\n<p><b>Az els\u0151 leck\u00e9ben <\/b>meg\u00e9rtj\u00fck az Ethereum blokkl\u00e1nc m\u0171k\u00f6d\u00e9si elveit \u00e9s a f\u0151bb terminol\u00f3gi\u00e1t, valamint besz\u00e9l\u00fcnk arr\u00f3l, hol lehet ezt a blokkl\u00e1ncot haszn\u00e1lni. <\/p>\n<p>C\u00e9l <b>a m\u00e1sodik leck\u00e9ben<\/b> \u2014 l\u00e9trehozzuk az Ethereum priv\u00e1t blokkl\u00e1nc egy csom\u00f3pontj\u00e1t a kurzus tov\u00e1bbi folytat\u00e1s\u00e1hoz egy Ubuntu \u00e9s Debian szerveren. Megvizsg\u00e1ljuk a f\u0151 seg\u00e9deszk\u00f6z\u00f6k telep\u00edt\u00e9si saj\u00e1toss\u00e1gait, mint p\u00e9ld\u00e1ul a geth, amely a blokkl\u00e1nc csom\u00f3pontunk m\u0171k\u00f6d\u00e9s\u00e9t biztos\u00edtja, \u00e9s a decentraliz\u00e1lt adat t\u00e1rol\u00f3 swarm d\u00e9monj\u00e1t.<\/p>\n<p><b>A harmadik lecke<\/b> megtan\u00edtja az Ethereum k\u00eds\u00e9rletek lebonyol\u00edt\u00e1s\u00e1ra, egy olcs\u00f3 Raspberry Pi mikrosz\u00e1m\u00edt\u00f3g\u00e9pen. Telep\u00edteni fogja a Raspberry Pi-ra a Rasberian oper\u00e1ci\u00f3s rendszert (OS), a Geth eszk\u00f6zt, amely biztos\u00edtja a blokkl\u00e1nc csom\u00f3pont m\u0171k\u00f6d\u00e9s\u00e9t, valamint a decentraliz\u00e1lt adatt\u00e1rol\u00f3 Swarm d\u00e9monj\u00e1t.<\/p>\n<p><b>Negyedik lecke<\/b> az Ethereum h\u00e1l\u00f3zatain bel\u00fcli fi\u00f3kokkal \u00e9s kriptovaluta egys\u00e9gekkel foglalkozik, valamint a p\u00e9nz \u00e1tutal\u00e1s\u00e1nak m\u00f3djair\u00f3l fi\u00f3kok k\u00f6z\u00f6tt a Geth konzol seg\u00edts\u00e9g\u00e9vel. Megtanulja, hogyan kell fi\u00f3kokat l\u00e9trehozni, kezdem\u00e9nyezni a p\u00e9nz\u00e1tutal\u00e1si tranzakci\u00f3kat, \u00e9s megkapni a tranzakci\u00f3 \u00e1llapot\u00e1t \u00e9s bizonylat\u00e1t.<\/p>\n<p><b>Az \u00f6t\u00f6dik leck\u00e9ben<\/b> megismeri az Ethereum h\u00e1l\u00f3zaton tal\u00e1lhat\u00f3 intelligens szerz\u0151d\u00e9seket, \u00e9s t\u00f6bbet megtud a v\u00e9grehajt\u00e1sukr\u00f3l az Ethereum virtu\u00e1lis g\u00e9pe \u00e1ltal. <\/p>\n<p>L\u00e9trehozta \u00e9s k\u00f6zz\u00e9tette az els\u0151 intelligens szerz\u0151d\u00e9s\u00e9t a mag\u00e1nh\u00e1l\u00f3zaton Ethereum, \u00e9s megtanulja, hogyan h\u00edvja meg annak funkci\u00f3it. Ehhez a Remix Solidity IDE fejleszt\u0151i k\u00f6rnyezetet fogja haszn\u00e1lni. Emellett megtanulja telep\u00edteni \u00e9s haszn\u00e1lni a solc csomag ford\u00edt\u00f3t.<br \/>\nEzenk\u00edv\u00fcl besz\u00e9l\u00fcnk a k\u00e9rd\u00e9ses alkalmaz\u00e1s bin\u00e1ris interf\u00e9sz\u00e9r\u0151l (Application Binary Interface, ABI), \u00e9s megtan\u00edtjuk annak haszn\u00e1lat\u00e1t.<\/p>\n<p><b>A hatodik lecke<\/b> a JavaScript szkriptek l\u00e9trehoz\u00e1s\u00e1ra \u00f6sszpontos\u00edt, amelyek Node.js alatt futnak, \u00e9s m\u0171veleteket hajtanak v\u00e9gre a Solidity intelligens szerz\u0151d\u00e9sekkel.<\/p>\n<p>Telep\u00edti a Node.js-t Ubuntu, Debian \u00e9s Rasberian rendszerre, szkripteket \u00edr, amelyek k\u00f6zz\u00e9teszik az intelligens szerz\u0151d\u00e9seket a helyi Ethereum h\u00e1l\u00f3zaton \u00e9s h\u00edvj\u00e1k meg annak funkci\u00f3it. <\/p>\n<p>Ezenk\u00edv\u00fcl megtanulja, hogyan lehet p\u00e9nzt \u00e1tutalni norm\u00e1l fi\u00f3kok k\u00f6z\u00f6tt a szkriptek seg\u00edts\u00e9g\u00e9vel, valamint hogyan lehet p\u00e9nzt j\u00f3v\u00e1\u00edrni az intelligens szerz\u0151d\u00e9sek fi\u00f3kjaira.<\/p>\n<p><b>A hetedik lecke<\/b> megtan\u00edtja, hogyan kell telep\u00edteni \u00e9s haszn\u00e1lni a Solidity intelligens szerz\u0151d\u00e9sek fejleszt\u00e9s\u00e9re n\u00e9pszer\u0171 Truffle integr\u00e1lt fejleszt\u0151i k\u00f6rnyezetet. Megtanulja, hogyan kell JavaScript szkripteket \u00edrni, amelyek a truffle-contract modul seg\u00edts\u00e9g\u00e9vel h\u00edvj\u00e1k meg a szerz\u0151d\u00e9sek funkci\u00f3it, valamint tesztelni fogja az intelligens szerz\u0151d\u00e9s\u00e9t Truffle eszk\u00f6zeivel.<\/p>\n<p><b>A nyolcadik lecke<\/b> a Solidity adatok t\u00edpusainak szentelt. Olyan intelligens szerz\u0151d\u00e9seket fog \u00edrni, amelyek olyan adat t\u00edpusokkal dolgoznak, mint a jel\u00f6lt \u00e9s jel\u00f6letlen eg\u00e9sz sz\u00e1mok, jel\u00f6lttel rendelkez\u0151 sz\u00e1mok, karakterl\u00e1ncok, c\u00edmek, bonyolult t\u00edpus\u00fa v\u00e1ltoz\u00f3k, t\u00f6mb\u00f6k, felsorol\u00e1sok, strukt\u00far\u00e1k \u00e9s sz\u00f3t\u00e1rak.<\/p>\n<p><b>A kilencedik lecke<\/b> Egy l\u00e9p\u00e9ssel k\u00f6zelebb ker\u00fcl a smart contractok l\u00e9trehoz\u00e1s\u00e1hoz az Ethereum f\u0151h\u00e1l\u00f3zat\u00e1n. Megtudja, hogyan lehet Truffle seg\u00edts\u00e9g\u00e9vel szerz\u0151d\u00e9seket publik\u00e1lni a Geth priv\u00e1tnet\u00e9n, valamint a Rinkeby teszth\u00e1l\u00f3zaton. A smart contractok hibakeres\u00e9se a Rinkeby h\u00e1l\u00f3zaton rendk\u00edv\u00fcl hasznos, miel\u0151tt publik\u00e1ln\u00e1 \u0151ket a f\u0151h\u00e1l\u00f3zaton \u2014 val\u00f3s k\u00f6r\u00fclm\u00e9nyek k\u00f6z\u00f6tt, de ingyenesen.<\/p>\n<p>A leck\u00e9ben l\u00e9trehoz egy Rinkeby teszth\u00e1l\u00f3zati csom\u00f3pontot, felt\u00f6lti az eszk\u00f6z\u00f6ket, \u00e9s publik\u00e1l egy smart contractot.<\/p>\n<p><b>10. lecke<\/b> az Ethereum Swarm elosztott adatt\u00e1rait c\u00e9lozza meg. Az elosztott t\u00e1rol\u00f3k haszn\u00e1lat\u00e1val p\u00e9nzt takar\u00edthat meg az Ethereum blokkl\u00e1nc\u00e1n nagymennyis\u00e9g\u0171 adat t\u00e1rol\u00e1s\u00e1n. <\/p>\n<p>A lecke sor\u00e1n l\u00e9trehoz egy helyi Swarm t\u00e1rol\u00f3t, f\u00e1jlok \u00edr\u00e1si \u00e9s olvas\u00e1si m\u0171veleteit hajtja v\u00e9gre, valamint f\u00e1jlt\u00e1rakat kezel. Ezt k\u00f6vet\u0151en megtanulja, hogyan dolgozhat a nyilv\u00e1nos Swarm \u00e1tj\u00e1r\u00f3val, szkripteket \u00edr a Swarm el\u00e9r\u00e9s\u00e9re Node.js-b\u0151l, valamint a Perl Net::Ethereum::Swarm modul seg\u00edts\u00e9g\u00e9vel.<\/p>\n<p><b>A 11. lecke c\u00e9lja<\/b> a Solidity smart contractokkal val\u00f3 munka elsaj\u00e1t\u00edt\u00e1sa a n\u00e9pszer\u0171 Python programoz\u00e1si nyelven \u00e9s a Web3.py keretrendszeren kereszt\u00fcl. Telep\u00edteni fogja ezt a keretrendszert, szkripteket \u00edr a smart contractok ford\u00edt\u00e1s\u00e1hoz \u00e9s publik\u00e1l\u00e1s\u00e1hoz, valamint azok funkci\u00f3inak megh\u00edv\u00e1s\u00e1hoz. A Web3.py-t \u00f6n\u00e1ll\u00f3an \u00e9s a Truffle integr\u00e1lt fejleszt\u0151i k\u00f6rnyezet\u00e9vel egy\u00fctt is haszn\u00e1lja.<\/p>\n<p><b>A 12. leck\u00e9n<\/b> megtanulja, hogyan k\u00f6zvet\u00edthet adatokat a smart contractok \u00e9s a val\u00f3s vil\u00e1g k\u00f6z\u00f6tt oracle-ok seg\u00edts\u00e9g\u00e9vel. Ez hasznos lesz az adatok megszerz\u00e9s\u00e9hez weboldalakr\u00f3l, IoT eszk\u00f6z\u00f6kr\u0151l, k\u00fcl\u00f6nf\u00e9le m\u00e9r\u0151eszk\u00f6z\u00f6kr\u0151l \u00e9s \u00e9rz\u00e9kel\u0151kr\u0151l, valamint az adatok smart contractok \u00e1ltali k\u00fcld\u00e9s\u00e9hez ezekre az eszk\u00f6z\u00f6kre. A lecke gyakorlati r\u00e9sz\u00e9ben l\u00e9trehoz egy oracle-t \u00e9s egy smart contractot, amely a USD \u00e9s rubel aktu\u00e1lis \u00e1rfolyam\u00e1t szerzi be az Oroszorsz\u00e1gi K\u00f6zponti Bank weboldal\u00e1r\u00f3l.<\/p>\n<p><b class=\"spoiler_title\">1. lecke. R\u00f6viden a blokkl\u00e1ncr\u00f3l \u00e9s az Ethereum h\u00e1l\u00f3zatr\u00f3l<\/b><b>A lecke c\u00e9lja:<\/b> megismerkedni az Ethereum blokkl\u00e1nc m\u0171k\u00f6d\u00e9si elv\u00e9vel, alkalmaz\u00e1si ter\u00fcleteivel \u00e9s alapvet\u0151 terminol\u00f3gi\u00e1j\u00e1val.<br \/>\n<b>Gyakorlati feladatok:<\/b> ebben a leck\u00e9ben nincsenek el\u0151ir\u00e1nyozva.<\/p>\n<p>Val\u00f3sz\u00edn\u0171leg ma m\u00e1r nincs olyan szoftverfejleszt\u0151, aki ne hallott volna a blokkl\u00e1nc (Blockchain) technol\u00f3gi\u00e1r\u00f3l, kriptovalut\u00e1kr\u00f3l (Cryptocurrency vagy Crypto Currency), bitcoinekr\u0151l (Bitcoin), a kezdeti \u00e9rm\u00e9k k\u00edn\u00e1lat\u00e1r\u00f3l (ICO, Initial Coin Offering), smart contractokr\u00f3l (Smart Contract) \u00e9s m\u00e1s, a blokkl\u00e1nc t\u00e9m\u00e1j\u00e1hoz kapcsol\u00f3d\u00f3 fogalmakr\u00f3l \u00e9s kifejez\u00e9sekr\u0151l.<\/p>\n<p>A blokkl\u00e1nc technol\u00f3gia \u00faj piacokat nyit meg \u00e9s munkahelyeket teremt a programoz\u00f3k sz\u00e1m\u00e1ra. Ha elsaj\u00e1t\u00edtod a kriptovaluta technol\u00f3gi\u00e1k \u00e9s az okos szerz\u0151d\u00e9sek minden r\u00e9szlet\u00e9t, akkor nem lesznek probl\u00e9m\u00e1id a tud\u00e1s gyakorlati alkalmaz\u00e1s\u00e1val.<\/p>\n<p>Fontos megjegyezni, hogy a kriptovalut\u00e1k \u00e9s blokkl\u00e1ncok k\u00f6r\u00fcl sok spekul\u00e1ci\u00f3 folyik. Hagyjuk figyelmen k\u00edv\u00fcl a kriptovalut\u00e1k \u00e1rfolyam\u00e1nak ingadoz\u00e1sair\u00f3l, piramisj\u00e1t\u00e9kokr\u00f3l, \u00e9s a kriptovaluta jogszab\u00e1lyok finoms\u00e1gair\u00f3l folytatott \u00e9rtekez\u00e9seket. Oktat\u00e1si tanfolyamunkban f\u0151k\u00e9nt az Ethereum blokkl\u00e1nc okos szerz\u0151d\u00e9seinek (smart contracts) technikai aspektusaira \u00e9s a decentraliz\u00e1lt alkalmaz\u00e1sok (Distributed Application, DApp) fejleszt\u00e9s\u00e9re \u00f6sszpontos\u00edtunk.<\/p>\n<h3>Mi az a blokkl\u00e1nc<\/h3>\n<p>\nA blokkl\u00e1nc (Blockchain, Block Chain) egy adatokb\u00f3l \u00e1ll\u00f3 blokkok l\u00e1ncolata, amelyek bizonyos m\u00f3don kapcsol\u00f3dnak egym\u00e1shoz. A l\u00e1nc elej\u00e9n tal\u00e1lhat\u00f3 az els\u0151 blokk, amelyet az els\u0151dleges blokknak (genesis block) vagy g\u00e9nesis blokknak neveznek. Ezt k\u00f6veti a m\u00e1sodik, majd a harmadik \u00e9s \u00edgy tov\u00e1bb.<\/p>\n<p>Mindezek a adatblokkok automatikusan megkett\u0151z\u0151dnek a blokkl\u00e1nc h\u00e1l\u00f3zat sz\u00e1mos csom\u00f3pontj\u00e1n. Ez biztos\u00edtja a blokkl\u00e1nc adatok decentraliz\u00e1lt t\u00e1rol\u00e1s\u00e1t. <br \/>\nA blokkl\u00e1ncot \u00fagy k\u00e9pzelhetj\u00fck el, mint a h\u00e1l\u00f3zat sok csom\u00f3pontj\u00e1t (fizikai vagy virtu\u00e1lis szerverek), amelyek egyes\u00edtve reproduk\u00e1lj\u00e1k az adatblokk l\u00e1ncban t\u00f6rt\u00e9nt v\u00e1ltoz\u00e1sokat. Ez tulajdonk\u00e9ppen egy \u00f3ri\u00e1si t\u00f6bb szerverb\u0151l \u00e1ll\u00f3 sz\u00e1m\u00edt\u00f3g\u00e9p, ahol ennek a sz\u00e1m\u00edt\u00f3g\u00e9pnek a csom\u00f3pontjai (szerverei) vil\u00e1gszerte sz\u00e9tsz\u00f3rtan helyezkednek el. Te is csatlakozhatsz a blokkl\u00e1nc h\u00e1l\u00f3zathoz a komputereddel. <\/p>\n<h4>Elosztott adatb\u00e1zis<\/h4>\n<p>\nA blokkl\u00e1nc egy elosztott adatb\u00e1zisk\u00e9nt is elk\u00e9pzelhet\u0151, amely minden csom\u00f3ponton megkett\u0151z\u0151dik a blokkl\u00e1nc h\u00e1l\u00f3zatban. Elm\u00e9letileg a blokkl\u00e1nc m\u0171k\u00f6d\u0151k\u00e9pes lesz, am\u00edg legal\u00e1bb egy csom\u00f3pont akt\u00edv, amely t\u00e1rolja az \u00f6sszes blokkj\u00e1t.<\/p>\n<h4>Elosztott adatnyilv\u00e1ntart\u00e1s<\/h4>\n<p>\nA blokkl\u00e1nc egy elosztott adatnyilv\u00e1ntart\u00e1sk\u00e9nt \u00e9s tranzakci\u00f3k (m\u0171veletek) nyilv\u00e1ntart\u00e1sak\u00e9nt is felfoghat\u00f3. Ennek a nyilv\u00e1ntart\u00e1snak egy m\u00e1sik neve a f\u0151k\u00f6nyv. <\/p>\n<p>A decentraliz\u00e1lt nyilv\u00e1ntart\u00e1sba adatokat lehet hozz\u00e1adni, de azokat nem lehet m\u00f3dos\u00edtani vagy t\u00f6r\u00f6lni. Ezt a lehetetlens\u00e9get t\u00f6bbek k\u00f6z\u00f6tt kriptogr\u00e1fiai algoritmusok, speci\u00e1lis blokkok l\u00e1ncba val\u00f3 hozz\u00e1ad\u00e1s\u00e1ra vonatkoz\u00f3 algoritmusok \u00e9s decentraliz\u00e1lt adatb\u00e1zisok alkalmaz\u00e1s\u00e1val \u00e9rik el.<\/p>\n<p>Blokkok hozz\u00e1ad\u00e1sa \u00e9s m\u0171veletek (tranzakci\u00f3k) v\u00e9grehajt\u00e1sa sor\u00e1n priv\u00e1t \u00e9s publikus kulcsokat haszn\u00e1lnak. Ezek korl\u00e1tozz\u00e1k a blokkl\u00e1nc felhaszn\u00e1l\u00f3it, biztos\u00edtva sz\u00e1mukra a hozz\u00e1f\u00e9r\u00e9st csak a saj\u00e1t adataikhoz.<\/p>\n<h4>Tranzakci\u00f3k<\/h4>\n<p>\nA blokkl\u00e1nc t\u00e1rolja az inform\u00e1ci\u00f3kat az oper\u00e1ci\u00f3kr\u00f3l (tranzakci\u00f3kr\u00f3l) a blokkokban. A r\u00e9gi, m\u00e1r v\u00e9grehajtott tranzakci\u00f3k visszavon\u00e1sa vagy m\u00f3dos\u00edt\u00e1sa lehetetlen. Az \u00faj tranzakci\u00f3k \u00fajonnan hozz\u00e1adott blokkokban t\u00e1rol\u00f3dnak.<\/p>\n<p>\u00cdgy a blokkl\u00e1ncban v\u00e1ltozatlan form\u00e1ban r\u00f6gz\u00edthet\u0151 az \u00f6sszes tranzakci\u00f3 t\u00f6rt\u00e9nete. Ez\u00e9rt a blokkl\u00e1ncot p\u00e9ld\u00e1ul megb\u00edzhat\u00f3 banki tranzakci\u00f3k t\u00e1rol\u00e1s\u00e1ra, szerz\u0151i jogi inform\u00e1ci\u00f3k r\u00f6gz\u00edt\u00e9s\u00e9re, ingatlanok tulajdonosainak v\u00e1ltoz\u00e1sainak nyomon k\u00f6vet\u00e9s\u00e9re stb. lehet haszn\u00e1lni.<\/p>\n<p>Az Ethereum blokkl\u00e1nc tartalmazza a rendszer \u00fagynevezett \u00e1llapotait. A tranzakci\u00f3k v\u00e9grehajt\u00e1s\u00e1val az \u00e1llapot a kezdetit\u0151l a jelenlegire v\u00e1ltozik. A tranzakci\u00f3k blokkokba ker\u00fclnek r\u00f6gz\u00edt\u00e9sre.<\/p>\n<h4>Publikus \u00e9s priv\u00e1t blokkl\u00e1ncok<\/h4>\n<p>\nFontos megjegyezni, hogy mindaz, amit eddig mondtunk, csak a \u00fagynevezett publikus blokkl\u00e1nc h\u00e1l\u00f3zatokra vonatkozik, amelyeket nem lehet egyes fizikai vagy jogi szem\u00e9lyek, \u00e1llami hat\u00f3s\u00e1gok vagy korm\u00e1nyok \u00e1ltal ellen\u0151rizni. <br \/>\nA \u00fagynevezett priv\u00e1t blokkl\u00e1nc h\u00e1l\u00f3zatok teljes m\u00e9rt\u00e9kben az alkot\u00f3ik ir\u00e1ny\u00edt\u00e1sa alatt \u00e1llnak, \u00e9s ott b\u00e1rmi lehets\u00e9ges, p\u00e9ld\u00e1ul az \u00f6sszes blokk teljes cser\u00e9je a l\u00e1ncban.<\/p>\n<h4>A blokkl\u00e1nc gyakorlati alkalmaz\u00e1sai<\/h4>\n<p>\nMire lehet hasznos a blokkl\u00e1nc?<\/p>\n<p>R\u00f6viden, a blokkl\u00e1nc biztons\u00e1gos m\u00f3don teszi lehet\u0151v\u00e9 az \u00fczleti tranzakci\u00f3k lebonyol\u00edt\u00e1s\u00e1t olyan szem\u00e9lyek vagy c\u00e9gek k\u00f6z\u00f6tt, akik nem b\u00edznak egym\u00e1sban. A blokkl\u00e1ncba r\u00f6gz\u00edtett adatok (tranzakci\u00f3k, szem\u00e9lyes adatok, dokumentumok, tan\u00fas\u00edtv\u00e1nyok, szerz\u0151d\u00e9sek, sz\u00e1ll\u00edt\u00f3levelek stb.) nem hamis\u00edthat\u00f3k vagy m\u00f3dos\u00edthat\u00f3k a r\u00f6gz\u00edt\u00e9s ut\u00e1n. Ez\u00e9rt a blokkl\u00e1nc alapjain p\u00e9ld\u00e1ul megb\u00edzhat\u00f3, elosztott nyilv\u00e1ntart\u00e1sokat lehet l\u00e9trehozni k\u00fcl\u00f6nf\u00e9le dokumentumokhoz.<\/p>\n<p>Term\u00e9szetesen tudja, hogy blockchain-alap\u00fa kriptovaluta rendszerek j\u00f6nnek l\u00e9tre, amelyek c\u00e9lja a hagyom\u00e1nyos pap\u00edrp\u00e9nz helyettes\u00edt\u00e9se. A pap\u00edrp\u00e9nzt fiat p\u00e9nznek is nevezik (Fiat Money).<br \/>\nA blockchain biztos\u00edtja a tranzakci\u00f3k t\u00e1rol\u00e1s\u00e1t \u00e9s v\u00e1ltozatlans\u00e1g\u00e1t, amelyeket blokkokba r\u00f6gz\u00edtenek, ez\u00e9rt haszn\u00e1lhat\u00f3 kriptovaluta rendszerek l\u00e9trehoz\u00e1s\u00e1ra. Tartalmazza a kriptoeszk\u00f6z\u00f6k k\u00fcl\u00f6nb\u00f6z\u0151 felhaszn\u00e1l\u00f3k (fi\u00f3kok) k\u00f6z\u00f6tti \u00e1tutal\u00e1s\u00e1nak teljes t\u00f6rt\u00e9net\u00e9t, \u00e9s b\u00e1rmely tranzakci\u00f3 nyomon k\u00f6vethet\u0151.<\/p>\n<p>B\u00e1r a kriptovaluta rendszereken bel\u00fcli tranzakci\u00f3k anonimak lehetnek, a kriptovaluta kivezet\u00e9se \u00e9s fiat p\u00e9nzre val\u00f3 v\u00e1lt\u00e1sa \u00e1ltal\u00e1ban a kriptovaluta tulajdonos\u00e1nak szem\u00e9lyazonoss\u00e1g\u00e1nak nyilv\u00e1noss\u00e1gra ker\u00fcl\u00e9s\u00e9hez vezet. <\/p>\n<p>Az \u00fagynevezett okos szerz\u0151d\u00e9sek, amelyek szoftverk\u00e9nt m\u0171k\u00f6dnek az Ethereum h\u00e1l\u00f3zaton, lehet\u0151v\u00e9 teszik a meg\u00e1llapod\u00e1sok l\u00e9trej\u00f6tte \u00e9s v\u00e9grehajt\u00e1suk automatikus kezel\u00e9s\u00e9t. Ez k\u00fcl\u00f6n\u00f6sen hat\u00e9kony, ha a meg\u00e1llapod\u00e1s szerint a kifizet\u00e9s Ether kriptovalut\u00e1val t\u00f6rt\u00e9nik.<\/p>\n<p>Az Ethereum blockchain \u00e9s az Ethereum okos szerz\u0151d\u00e9sek, amelyeket Solidity programoz\u00e1si nyelven \u00edrtak, p\u00e9ld\u00e1ul az al\u00e1bbi ter\u00fcleteken haszn\u00e1lhat\u00f3k:<\/p>\n<ul>\n<li>alternat\u00edv\u00e1ja a dokumentumok k\u00f6zjegyz\u0151i hiteles\u00edt\u00e9s\u00e9nek;<\/li>\n<li>ingatlanok \u00e9s ingatlan tranzakci\u00f3k nyilv\u00e1ntart\u00e1sa;<\/li>\n<li>szellemi tulajdonjogokkal kapcsolatos inform\u00e1ci\u00f3k t\u00e1rol\u00e1sa (k\u00f6nyvek, k\u00e9pek, zenei m\u0171vek stb.);<\/li>\n<li>f\u00fcggetlen szavaz\u00e1si rendszerek l\u00e9trehoz\u00e1sa;<\/li>\n<li>p\u00e9nz\u00fcgyi szektor \u00e9s banki tev\u00e9kenys\u00e9gek;<\/li>\n<li>logisztika nemzetk\u00f6zi szinten, a sz\u00e1ll\u00edtm\u00e1nyok nyomon k\u00f6vet\u00e9se;<\/li>\n<li>szem\u00e9lyes adatok t\u00e1rol\u00e1sa, mint az azonos\u00edt\u00f3 rendszerek anal\u00f3gja;<\/li>\n<li>biztons\u00e1gos tranzakci\u00f3k kereskedelmi ter\u00fcleten;<\/li>\n<li>orvosi vizsg\u00e1latok eredm\u00e9nyeinek \u00e9s a v\u00e9gzett elj\u00e1r\u00e1sok t\u00f6rt\u00e9net\u00e9nek t\u00e1rol\u00e1sa.<\/li>\n<\/ul>\n<p><\/p>\n<h4>Probl\u00e9m\u00e1k a blockchain-nel<\/h4>\n<p>\nDe term\u00e9szetesen nem minden olyan egyszer\u0171, mint amilyennek l\u00e1tszik! <\/p>\n<p>Adatok hiteles\u00edt\u00e9s\u00e9vel kapcsolatos probl\u00e9m\u00e1k mer\u00fclnek fel, miel\u0151tt azok hozz\u00e1ad\u00f3dn\u00e1nak a blockchain-hez (p\u00e9ld\u00e1ul nem hamisak-e?), a blockchain kezel\u00e9se sor\u00e1n haszn\u00e1lt rendszer- \u00e9s alkalmaz\u00e1sprogramok biztons\u00e1g\u00e1val kapcsolatos probl\u00e9m\u00e1k, valamint a kriptovaluta p\u00e9nzt\u00e1rc\u00e1khoz val\u00f3 hozz\u00e1f\u00e9r\u00e9s eltulajdon\u00edt\u00e1s\u00e1t c\u00e9lz\u00f3 social engineering m\u00f3dszerek haszn\u00e1lat\u00e1nak lehet\u0151s\u00e9g\u00e9vel kapcsolatos probl\u00e9m\u00e1k.<\/p>\n<p>Ha ism\u00e9t \u00fcgyezik a nyilv\u00e1nos blokkl\u00e1ncr\u00f3l, amelynek csom\u00f3pontjai vil\u00e1gszerte el\u00e9rhet\u0151k, \u00e9s nem egy mag\u00e1n blokkl\u00e1ncr\u00f3l, amely egy szem\u00e9lyhez vagy int\u00e9zm\u00e9nyhez tartozik, akkor a bizalom szintje nem magasabb, mint az adott szem\u00e9ly vagy int\u00e9zm\u00e9ny ir\u00e1nti bizalom.<\/p>\n<p>Figyelembe kell venni azt is, hogy a blokkl\u00e1ncra r\u00f6gz\u00edtett adatok mindenkinek el\u00e9rhet\u0151k. Ebben az \u00e9rtelemben a blokkl\u00e1nc (k\u00fcl\u00f6n\u00f6sen a nyilv\u00e1nos) nem alkalmas bizalmas inform\u00e1ci\u00f3k t\u00e1rol\u00e1s\u00e1ra. Ugyanakkor az, hogy az inform\u00e1ci\u00f3t a blokkl\u00e1ncon lehetetlen megv\u00e1ltoztatni, seg\u00edthet megel\u0151zni vagy felder\u00edteni k\u00fcl\u00f6nf\u00e9le csal\u00e1sokkal kapcsolatos cselekedeteket.<\/p>\n<p>Az Ethereum decentraliz\u00e1lt alkalmaz\u00e1sai k\u00e9nyelmesek lesznek, ha a haszn\u00e1latuk\u00e9rt kriptovalut\u00e1val fizetnek. Min\u00e9l t\u00f6bben birtokolj\u00e1k a kriptovalut\u00e1t, vagy k\u00e9szs\u00e9gesek a v\u00e1s\u00e1rl\u00e1s\u00e1ra, ann\u00e1l nagyobb n\u00e9pszer\u0171s\u00e9gnek \u00f6rvendenek majd a DApp alkalmaz\u00e1sok \u00e9s az okos szerz\u0151d\u00e9sek.<\/p>\n<p>A blokkl\u00e1nccal kapcsolatos gyakori probl\u00e9m\u00e1k k\u00f6z\u00e9 tartozik az \u00faj blokkok hozz\u00e1ad\u00e1s\u00e1nak korl\u00e1tozott sebess\u00e9ge \u00e9s a viszonylag magas tranzakci\u00f3s k\u00f6lts\u00e9gek. Azonban ezen a ter\u00fcleten a technol\u00f3gi\u00e1k akt\u00edvan fejl\u0151dnek, \u00e9s rem\u00e9lj\u00fck, hogy az id\u0151 m\u00fal\u00e1s\u00e1val a technikai probl\u00e9m\u00e1k megold\u00f3dnak.<\/p>\n<p>Tov\u00e1bbi probl\u00e9ma, hogy az Ethereum blokkl\u00e1nc okos szerz\u0151d\u00e9sei elszigetelt virtu\u00e1lis g\u00e9pek k\u00f6rnyezet\u00e9ben m\u0171k\u00f6dnek, \u00e9s nem rendelkeznek hozz\u00e1f\u00e9r\u00e9ssel a val\u00f3s vil\u00e1g adataihoz. K\u00fcl\u00f6n\u00f6sen az okos szerz\u0151d\u00e9seket futtat\u00f3 program nem olvashat adatokat webhelyekr\u0151l vagy valamilyen fizikai eszk\u00f6z\u00f6kr\u0151l (\u00e9rz\u00e9kel\u0151k, kapcsol\u00f3k stb.), \u00e9s nem tud adatokat k\u00fcldeni k\u00fcls\u0151 eszk\u00f6z\u00f6kre. Ezt a probl\u00e9m\u00e1t \u00e9s a megold\u00e1si m\u00f3djait az \u00fagynevezett Oracle-okkal, az okos szerz\u0151d\u00e9sek inform\u00e1ci\u00f3s k\u00f6zvet\u00edt\u0151ivel fogjuk megvitatni az \u00f3r\u00e1n.<\/p>\n<p>Jogi vonatkoz\u00e1sok is korl\u00e1toz\u00e1sokba \u00fctk\u00f6znek. Egyes orsz\u00e1gokban p\u00e9ld\u00e1ul tiltanak a kriptovaluta mint fizet\u0151eszk\u00f6z haszn\u00e1lata, de birtokolni lehet, mint digit\u00e1lis eszk\u00f6zt, p\u00e9ld\u00e1ul \u00e9rt\u00e9kpap\u00edrokhoz hasonl\u00f3an. Az ilyen eszk\u00f6z\u00f6ket t\u0151zsd\u00e9n lehet v\u00e1s\u00e1rolni \u00e9s eladni. Minden esetben, amikor kriptovalut\u00e1val m\u0171k\u00f6d\u0151 projektet hozunk l\u00e9tre, fontos megismerkedni annak az orsz\u00e1gnak a jogszab\u00e1lyaival, amelynek joghat\u00f3s\u00e1ga al\u00e1 tartozik a projekt.<\/p>\n<h3>Hogyan alakul a blokkl\u00e1nc l\u00e1ncolata<\/h3>\n<p>\nAhogy m\u00e1r eml\u00edtett\u00fck, a blokkl\u00e1nc l\u00e9nyeg\u00e9ben egy egyszer\u0171 adatblokkokb\u00f3l \u00e1ll\u00f3 l\u00e1nc. El\u0151sz\u00f6r l\u00e9trej\u00f6n a l\u00e1nc els\u0151 blokkja, majd hozz\u00e1adjuk a m\u00e1sodik blokkot \u00e9s \u00edgy tov\u00e1bb. Felt\u00e9telezz\u00fck, hogy a tranzakci\u00f3k adatai a blokkokban t\u00e1rol\u00f3dnak, \u00e9s csak az utols\u00f3 blokkba ker\u00fclnek.<\/p>\n<p>Az 1.1. \u00e1br\u00e1n bemutattuk a blokkok legegyszer\u0171bb sorrendj\u00e9t, ahol az els\u0151 blokk a k\u00f6vetkez\u0151re hivatkozik. <\/p>\n<p><img decoding=\"async\" alt=\"A k\u00f6nyv \u201eOkos szerz\u0151d\u00e9sek Solidity k\u00e9sz\u00edt\u00e9se az Ethereum blokkl\u00e1ncra. Gyakorlati \u00fatmutat\u00f3\u201d\" src=\"\/wp-content\/uploads\/2019\/10\/23ca04ba2c8914334032523d01bf8b80.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>1.1. \u00e1bra. Egyszer\u0171 blokksorrend<\/i><\/p>\n<p>Ebben a verzi\u00f3ban azonban nagyon k\u00f6nnyen hamis\u00edthat\u00f3 b\u00e1rmely blokk tartalma, mivel a blokkok nem tartalmaznak semmilyen inform\u00e1ci\u00f3t a m\u00f3dos\u00edt\u00e1sok v\u00e9delme \u00e9rdek\u00e9ben. Figyelembe v\u00e9ve, hogy a blokkl\u00e1ncot olyan emberek \u00e9s c\u00e9gek haszn\u00e1lj\u00e1k, akik k\u00f6z\u00f6tt nincs bizalom, levonhat\u00f3 a k\u00f6vetkeztet\u00e9s, hogy ez a m\u00f3dszer nem alkalmas a blokkl\u00e1nc adatainak t\u00e1rol\u00e1s\u00e1ra.<\/p>\n<p>Most foglalkozzunk a blokkok hamis\u00edt\u00e1st\u00f3l val\u00f3 v\u00e9delm\u00e9vel. Az els\u0151 l\u00e9p\u00e9sben megpr\u00f3b\u00e1ljuk v\u00e9delmezni minden blokkot egy ellen\u0151rz\u0151 \u00f6sszeggel (1.2. \u00e1bra).<\/p>\n<p><img decoding=\"async\" alt=\"A k\u00f6nyv \u201eOkos szerz\u0151d\u00e9sek Solidity k\u00e9sz\u00edt\u00e9se az Ethereum blokkl\u00e1ncra. Gyakorlati \u00fatmutat\u00f3\u201d\" src=\"\/wp-content\/uploads\/2019\/10\/141502accec14e868a9382c612cfc791.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>1.2. \u00e1bra. Adatblokkok v\u00e9delme ellen\u0151rz\u0151 \u00f6sszeggel<\/i><\/p>\n<p>Most a t\u00e1mad\u00f3 nem tudja csak \u00fagy megv\u00e1ltoztatni a blokkot, mivel az a blokk adatainak ellen\u0151rz\u0151 \u00f6sszeg\u00e9t tartalmazza. Az ellen\u0151rz\u0151 \u00f6sszeg ellen\u0151rz\u00e9se megmutatja, hogy az adatok megv\u00e1ltoztak.<\/p>\n<p>Az ellen\u0151rz\u0151 \u00f6sszeg kisz\u00e1m\u00edt\u00e1s\u00e1hoz haszn\u00e1lhatunk egy hash-f\u00fcggv\u00e9nyt, p\u00e9ld\u00e1ul MD-5, SHA-1, SHA-256 stb. A hash-f\u00fcggv\u00e9nyek egy bizonyos \u00e9rt\u00e9ket (p\u00e9ld\u00e1ul \u00e1lland\u00f3 hossz\u00fas\u00e1g\u00fa sz\u00f6veges sorozatot) sz\u00e1m\u00edtanak ki irreverzibilis m\u0171veletek v\u00e9grehajt\u00e1s\u00e1val az adatblokkon. A m\u0171veletek a hash-f\u00fcggv\u00e9ny t\u00edpus\u00e1t\u00f3l f\u00fcggenek. <\/p>\n<p>M\u00e9g egy kis adatv\u00e1ltoztat\u00e1s eset\u00e9n is megv\u00e1ltozik a hash-f\u00fcggv\u00e9ny \u00e9rt\u00e9ke. A hash-f\u00fcggv\u00e9ny \u00e9rt\u00e9k\u00e9nek elemz\u00e9se sor\u00e1n lehetetlen vissza\u00e1ll\u00edtani azt az adatblokkot, amelyre kisz\u00e1m\u00edtott\u00e1k.<\/p>\n<p>El\u00e9gs\u00e9ges lesz ez a v\u00e9delem? Sajnos nem.<\/p>\n<p>Ebben a rendszerben az ellen\u0151rz\u0151 \u00f6sszeg (hash-f\u00fcggv\u00e9ny) csak az egyes blokkokat v\u00e9di, de nem az eg\u00e9sz blokk l\u00e1ncot. Ha a t\u00e1mad\u00f3 ismeri a hash-f\u00fcggv\u00e9ny kisz\u00e1m\u00edt\u00e1s\u00e1nak algoritmus\u00e1t, k\u00f6nnyen hamis\u00edthatja a blokk tartalm\u00e1t. Semmi nem akad\u00e1lyozza meg abban sem, hogy blokkokat t\u00e1vol\u00edtson el a l\u00e1ncb\u00f3l, vagy \u00fajakat adjon hozz\u00e1.<\/p>\n<p>Ahhoz, hogy az eg\u00e9sz l\u00e1ncot v\u00e9dj\u00fck, \u00e9rdemes minden blokkban az adatok mellett a kor\u00e1bbi blokk hash-\u00e9t is t\u00e1rolni (1.3. \u00e1bra).<\/p>\n<p><img decoding=\"async\" alt=\"A k\u00f6nyv \u201eOkos szerz\u0151d\u00e9sek Solidity k\u00e9sz\u00edt\u00e9se az Ethereum blokkl\u00e1ncra. Gyakorlati \u00fatmutat\u00f3\u201d\" src=\"\/wp-content\/uploads\/2019\/10\/f414ab67dbabc763c537a430e01ed065.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>1.3. \u00e1bra. Kor\u00e1bbi blokk hash-\u00e9nek hozz\u00e1ad\u00e1sa az adatblokkhoz<\/i><\/p>\n<p>Ebben a rendszerben, ha meg akarunk v\u00e1ltoztatni egy blokkot, \u00fajra kell sz\u00e1molni az \u00f6sszes k\u00e9s\u0151bbi blokk hash-funkci\u00f3j\u00e1t. \u00dagy t\u0171nik, mi a probl\u00e9ma?<\/p>\n<p>A val\u00f3s blokkl\u00e1ncokban tov\u00e1bbi mesters\u00e9ges neh\u00e9zs\u00e9geket alkalmaznak az \u00faj blokkok hozz\u00e1ad\u00e1s\u00e1ra \u2014 olyan algoritmusok haszn\u00e1latosak, amelyek sok sz\u00e1m\u00edt\u00e1si er\u0151forr\u00e1st ig\u00e9nyelnek. Figyelembe v\u00e9ve, hogy a blokk m\u00f3dos\u00edt\u00e1s\u00e1hoz nemcsak azt a blokkot, hanem az \u00f6sszes k\u00f6vetkez\u0151 blokkot \u00fajra kell sz\u00e1molni, ezt rendk\u00edv\u00fcl neh\u00e9z lesz v\u00e9grehajtani.<\/p>\n<p>Eml\u00e9kezz\u00fcnk arra is, hogy a blokkl\u00e1nc adatai sz\u00e1mos h\u00e1l\u00f3zati csom\u00f3ponton t\u00e1rol\u00f3dnak (m\u00e1sol\u00f3dnak), azaz decentraliz\u00e1lt t\u00e1rol\u00e1st haszn\u00e1lnak. Ez sokszorosan megnehez\u00edti a blokk hamis\u00edt\u00e1s\u00e1t, mivel a v\u00e1ltoztat\u00e1sokat az \u00f6sszes h\u00e1l\u00f3zati csom\u00f3pontban el kell v\u00e9gezni.<\/p>\n<p>Mivel a blokkok tartalmazz\u00e1k az el\u0151z\u0151 blokkra vonatkoz\u00f3 inform\u00e1ci\u00f3kat, \u00edgy ellen\u0151rizni lehet a l\u00e1nc minden blokkj\u00e1nak tartalm\u00e1t.<\/p>\n<h3>Ethereum blokkl\u00e1nc<\/h3>\n<p>\nAz Ethereum blokkl\u00e1nc egy platform, amely lehet\u0151v\u00e9 teszi, hogy elosztott DApp-alkalmaz\u00e1sokat hozzunk l\u00e9tre. M\u00e1s platformokkal ellent\u00e9tben az Ethereum lehet\u0151v\u00e9 teszi az \u00fagynevezett okos szerz\u0151d\u00e9sek (smart contracts) haszn\u00e1lat\u00e1t, amelyeket a Solidity programoz\u00e1si nyelven \u00edrnak.<\/p>\n<p>Ezt a platformot 2013-ban Vitalik Buterin, a Bitcoin Magazine alap\u00edt\u00f3ja alkotta meg, \u00e9s 2015-ben ind\u00edtott\u00e1k el. Minden, amit a tanfolyamunk sor\u00e1n tanulm\u00e1nyozni vagy v\u00e9grehajtani fogunk, kifejezetten az Ethereum blokkl\u00e1nccal \u00e9s a Solidity okos szerz\u0151d\u00e9sekkel kapcsolatos.<\/p>\n<h3>B\u00e1ny\u00e1szat vagy hogyan k\u00e9sz\u00fclnek a blokkok<\/h3>\n<p>\nA b\u00e1ny\u00e1szat (mining) egy meglehet\u0151sen bonyolult \u00e9s er\u0151forr\u00e1s-ig\u00e9nyes folyamat, amely \u00faj blokkok hozz\u00e1ad\u00e1s\u00e1t jelenti a blokkl\u00e1nc l\u00e1nc\u00e1hoz, nem pedig \"kriptovalut\u00e1k b\u00e1ny\u00e1szat\u00e1t\". A b\u00e1ny\u00e1szat biztos\u00edtja a blokkl\u00e1nc m\u0171k\u00f6d\u00e9s\u00e9t, mivel ez a folyamat felel\u0151s a tranzakci\u00f3k hozz\u00e1ad\u00e1s\u00e1\u00e9rt az Ethereum blokkl\u00e1nchoz.<\/p>\n<p>A blokkok hozz\u00e1ad\u00e1s\u00e1val foglalkoz\u00f3 embereket \u00e9s szervezeteket b\u00e1ny\u00e1szoknak (miner) nevezik.<br \/>\nAzok a szoftverek (SW), amelyek a b\u00e1ny\u00e1szok csom\u00f3pontjain m\u0171k\u00f6dnek, megpr\u00f3b\u00e1lj\u00e1k megtal\u00e1lni az utols\u00f3 blokk hash-el\u00e9s param\u00e9ter\u00e9t, amelyet Nonce n\u00e9ven h\u00edvnak, hogy meghat\u00e1rozott hash-funkci\u00f3s \u00e9rt\u00e9ket kapjanak, amelyet a h\u00e1l\u00f3zat ad meg. Az Ethereum \u00e1ltal alkalmazott Ethash hash-el\u00e9si algoritmus lehet\u0151v\u00e9 teszi a Nonce \u00e9rt\u00e9k\u00e9nek el\u0151\u00e1ll\u00edt\u00e1s\u00e1t csakis fokozatos pr\u00f3b\u00e1lkoz\u00e1sokkal. <\/p>\n<p>Ha a b\u00e1ny\u00e1sz csom\u00f3pont megtal\u00e1lta a helyes Nonce \u00e9rt\u00e9ket, akkor ez a munka bizony\u00edt\u00e9k\u00e1nak (PoW, Proof-of-work) nevezhet\u0151. Ebben az esetben, ha a blokk hozz\u00e1ad\u00f3dik az Ethereum h\u00e1l\u00f3zathoz, a b\u00e1ny\u00e1sz bizonyos jutalmat kap a h\u00e1l\u00f3zat valut\u00e1j\u00e1ban \u2014 Etherben. K\u00f6nyv\u00fcnk \u00edr\u00e1s\u00e1nak id\u0151pontj\u00e1ban a jutalom 5 Ether, azonban id\u0151vel ez cs\u00f6kkenni fog.<\/p>\n<p>\u00cdgy az Ethereum b\u00e1ny\u00e1szai biztos\u00edtj\u00e1k a h\u00e1l\u00f3zat m\u0171k\u00f6d\u00e9s\u00e9t, \u00faj blokkok hozz\u00e1ad\u00e1s\u00e1val, \u00e9s ez\u00e9rt kriptovaluta p\u00e9nzt kapnak. Az interneten rengeteg inform\u00e1ci\u00f3t tal\u00e1lhat a b\u00e1ny\u00e1szokr\u00f3l \u00e9s a b\u00e1ny\u00e1szatr\u00f3l, mi pedig a Solidity szerz\u0151d\u00e9sek \u00e9s a decentraliz\u00e1lt alkalmaz\u00e1sok (DApp) Ethereum h\u00e1l\u00f3zaton val\u00f3 l\u00e9trehoz\u00e1s\u00e1ra \u00f6sszpontos\u00edtunk.<\/p>\n<h3>A lecke \u00f6sszefoglal\u00e1sa<\/h3>\n<p>\nAz els\u0151 leck\u00e9ben megismerkedett a blokkl\u00e1nccal, \u00e9s megtudta, hogy az speci\u00e1lis m\u00f3don \u00f6ssze\u00e1ll\u00edtott blokkok sorozatak\u00e9nt m\u0171k\u00f6dik. A kor\u00e1bban r\u00f6gz\u00edtett blokkok tartalm\u00e1t nem lehet megv\u00e1ltoztatni, mivel ehhez \u00fajra kellene sz\u00e1molni az \u00f6sszes k\u00f6vetkez\u0151 blokkot a h\u00e1l\u00f3zat sok csom\u00f3pontj\u00e1n, ami rengeteg er\u0151forr\u00e1st \u00e9s id\u0151t ig\u00e9nyel.<\/p>\n<p>A blokkl\u00e1nc alkalmazhat\u00f3 a tranzakci\u00f3k v\u00e9grehajt\u00e1s\u00e1nak nyilv\u00e1ntart\u00e1s\u00e1ra. F\u0151 c\u00e9lja a tranzakci\u00f3k biztons\u00e1gos lebonyol\u00edt\u00e1sa olyan felek (szem\u00e9lyek \u00e9s szervezetek) k\u00f6z\u00f6tt, akik k\u00f6z\u00f6tt nincs bizalom. Megtudta, hogy a blokkl\u00e1nc Ethereum \u00e9s a Solidity okos szerz\u0151d\u00e9sek konkr\u00e9tan mely \u00fczleti ter\u00fcleteken \u00e9s szektorokban alkalmazhat\u00f3k. Ezek k\u00f6z\u00e9 tartozik a banki szektor, a tulajdonjogok, dokumentumok stb. nyilv\u00e1ntart\u00e1sa.<\/p>\n<p>Azt is megtudta, hogy a blokkl\u00e1nc haszn\u00e1lata sor\u00e1n k\u00fcl\u00f6nf\u00e9le probl\u00e9m\u00e1k mer\u00fclhetnek fel. Ezek k\u00f6z\u00e9 tartozik az inform\u00e1ci\u00f3k ellen\u0151rz\u00e9s\u00e9nek probl\u00e9m\u00e1ja, a blokkl\u00e1nc m\u0171k\u00f6d\u00e9si sebess\u00e9ge, a tranzakci\u00f3k k\u00f6lts\u00e9ge, az okos szerz\u0151d\u00e9sek \u00e9s a val\u00f3s vil\u00e1g k\u00f6z\u00f6tti adatok cser\u00e9j\u00e9nek probl\u00e9m\u00e1ja, valamint a potenci\u00e1lisan lehets\u00e9ges t\u00e1mad\u00e1sok, amelyek a felhaszn\u00e1l\u00f3k kriptovalut\u00e1s eszk\u00f6zeinek ellop\u00e1s\u00e1ra ir\u00e1nyulnak.<\/p>\n<p>R\u00f6viden eml\u00edtett\u00fck a b\u00e1ny\u00e1szatot is, mint \u00faj blokkok hozz\u00e1ad\u00e1s\u00e1nak folyamat\u00e1t a blokkl\u00e1ncban. A b\u00e1ny\u00e1szat sz\u00fcks\u00e9ges a tranzakci\u00f3k v\u00e9grehajt\u00e1s\u00e1hoz. Azok, akik b\u00e1ny\u00e1szattal foglalkoznak, biztos\u00edtj\u00e1k a blokkl\u00e1nc m\u0171k\u00f6d\u00e9s\u00e9t, \u00e9s ez\u00e9rt kriptovaluta jutalmat kapnak.<\/p>\n<p><b class=\"spoiler_title\">2. Lecke. Munkak\u00f6rnyezet el\u0151k\u00e9sz\u00edt\u00e9se Ubuntu \u00e9s Debian oper\u00e1ci\u00f3s rendszereken<\/b>Oper\u00e1ci\u00f3s rendszer v\u00e1laszt\u00e1sa<br \/>\nSz\u00fcks\u00e9ges eszk\u00f6z\u00f6k telep\u00edt\u00e9se<br \/>\nGeth \u00e9s Swarm telep\u00edt\u00e9se Ubuntu-ra<br \/>\nGeth \u00e9s Swarm telep\u00edt\u00e9se Debian-ra<br \/>\nEl\u0151zetes el\u0151k\u00e9sz\u00edt\u00e9s<br \/>\nA Go disztrib\u00faci\u00f3 bet\u00f6lt\u00e9se<br \/>\n\u00c1ll\u00edtsa be az al\u00e1bbi k\u00f6rnyezeti v\u00e1ltoz\u00f3kat a szkript ind\u00edt\u00e1sa el\u0151tt:<br \/>\nA Go verzi\u00f3 ellen\u0151rz\u00e9se<br \/>\nA Geth \u00e9s Swarm telep\u00edt\u00e9se<br \/>\nPriv\u00e1t blokkl\u00e1nc l\u00e9trehoz\u00e1sa<br \/>\n\u0413\u043e\u0442\u043e\u0432\u0438\u043c \u0444\u0430\u0439\u043b genesis.json<br \/>\nMunkak\u00f6nyvt\u00e1r l\u00e9trehoz\u00e1sa<br \/>\nFi\u00f3k l\u00e9trehoz\u00e1sa<br \/>\nA csom\u00f3pont inicializ\u00e1l\u00e1sa<br \/>\nA csom\u00f3pont ind\u00edt\u00e1si param\u00e9terei<br \/>\nCsatlakoz\u00e1s a saj\u00e1t csom\u00f3pontunkhoz<br \/>\nB\u00e1ny\u00e1szat kezel\u00e9se \u00e9s egyenleg ellen\u0151rz\u00e9se<br \/>\nA Geth konzol le\u00e1ll\u00edt\u00e1sa<br \/>\nA lecke \u00f6sszefoglal\u00e1sa<\/p>\n<p><b class=\"spoiler_title\">3. lecke. A munkak\u00f6rnyezet el\u0151k\u00e9sz\u00edt\u00e9se Raspberry Pi 3-hoz<\/b>A Raspberry Pi 3 el\u0151k\u00e9sz\u00edt\u00e9se a munk\u00e1hoz<br \/>\nRasberian telep\u00edt\u00e9se<br \/>\nFriss\u00edt\u00e9sek telep\u00edt\u00e9se<br \/>\nSSH hozz\u00e1f\u00e9r\u00e9s enged\u00e9lyez\u00e9se<br \/>\nStatikus IP c\u00edm be\u00e1ll\u00edt\u00e1sa<br \/>\nSz\u00fcks\u00e9ges eszk\u00f6z\u00f6k telep\u00edt\u00e9se<br \/>\nA Go telep\u00edt\u00e9se<br \/>\nA Go disztrib\u00faci\u00f3 bet\u00f6lt\u00e9se<br \/>\n\u00c1ll\u00edtsa be az al\u00e1bbi k\u00f6rnyezeti v\u00e1ltoz\u00f3kat a szkript ind\u00edt\u00e1sa el\u0151tt:<br \/>\nA Go verzi\u00f3 ellen\u0151rz\u00e9se<br \/>\nA Geth \u00e9s Swarm telep\u00edt\u00e9se<br \/>\nPriv\u00e1t blokkl\u00e1nc l\u00e9trehoz\u00e1sa<br \/>\nFi\u00f3k \u00e9s egyenleg ellen\u0151rz\u00e9se<br \/>\nA lecke \u00f6sszefoglal\u00e1sa<\/p>\n<p><b class=\"spoiler_title\">4. lecke. Fi\u00f3kok \u00e9s eszk\u00f6z\u00f6k k\u00f6z\u00f6tti \u00e1tutal\u00e1s<\/b>Fi\u00f3kok megtekint\u00e9se \u00e9s hozz\u00e1ad\u00e1sa<br \/>\nA fi\u00f3kok list\u00e1j\u00e1nak megtekint\u00e9se<br \/>\nFi\u00f3k hozz\u00e1ad\u00e1sa<br \/>\nA geth account parancs param\u00e9terei<br \/>\nFi\u00f3k jelszavak<br \/>\nKriptovaluta az Ethereumon<br \/>\nEthereum valut\u00e1i<br \/>\nA fi\u00f3kok aktu\u00e1lis egyenleg\u00e9nek meghat\u00e1roz\u00e1sa<br \/>\nEszk\u00f6z\u00f6k \u00e1tutal\u00e1sa egyik fi\u00f3kr\u00f3l a m\u00e1sikra<br \/>\nAz eth.sendTransaction met\u00f3dus<br \/>\nA tranzakci\u00f3 \u00e1llapot\u00e1nak megtekint\u00e9se<br \/>\nA tranzakci\u00f3 bizonylata<br \/>\nA lecke \u00f6sszefoglal\u00e1sa<\/p>\n<p><b class=\"spoiler_title\">5. lecke. Az els\u0151 okos szerz\u0151d\u00e9s k\u00f6zz\u00e9t\u00e9tele<\/b>Okos szerz\u0151d\u00e9sek az Ethereumon<br \/>\nOkos szerz\u0151d\u00e9s v\u00e9grehajt\u00e1sa<br \/>\nEthereum virtu\u00e1lis g\u00e9p<br \/>\nIntegr\u00e1lt fejleszt\u0151i k\u00f6rnyezet Remix Solidity IDE<br \/>\nA ford\u00edt\u00e1s elind\u00edt\u00e1sa<br \/>\nSzerz\u0151d\u00e9s funkci\u00f3inak h\u00edv\u00e1sa<br \/>\nA szerz\u0151d\u00e9s k\u00f6zz\u00e9t\u00e9tele priv\u00e1t h\u00e1l\u00f3zaton<br \/>\nAz ABI \u00e9s a szerz\u0151d\u00e9s bin\u00e1ris k\u00f3dj\u00e1nak meghat\u00e1roz\u00e1sa<br \/>\nSzerz\u0151d\u00e9s k\u00f6zz\u00e9t\u00e9tele<br \/>\nA szerz\u0151d\u00e9s k\u00f6zz\u00e9t\u00e9teli tranzakci\u00f3 \u00e1llapot\u00e1nak ellen\u0151rz\u00e9se<br \/>\nSzerz\u0151d\u00e9s funkci\u00f3inak h\u00edv\u00e1sa<br \/>\nCsomagol\u00f3 ford\u00edt\u00f3 solc<br \/>\nA solc telep\u00edt\u00e9se Ubuntu-ra<br \/>\nA solc telep\u00edt\u00e9se Debian-ra<br \/>\nA HelloSol szerz\u0151d\u00e9s ford\u00edt\u00e1sa<br \/>\nSzerz\u0151d\u00e9s k\u00f6zz\u00e9t\u00e9tele<br \/>\nA solc telep\u00edt\u00e9se Rasberian-ra<br \/>\nA lecke \u00f6sszefoglal\u00e1sa<\/p>\n<p><b class=\"spoiler_title\">\u0423\u0440\u043e\u043a 6. \u0421\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u044b \u0438 Node.js<\/b>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Node.js<br \/>\nTelep\u00edt\u00e9s Ubuntu-ra<br \/>\nTelep\u00edt\u00e9s Debian-ra<br \/>\nA Ganache-cli telep\u00edt\u00e9se \u00e9s ind\u00edt\u00e1sa<br \/>\nA Web3 telep\u00edt\u00e9se<br \/>\nA solc telep\u00edt\u00e9se<br \/>\nNode.js telep\u00edt\u00e9se Rasberian-ra<br \/>\nFi\u00f3klist\u00e1t lek\u00e9rdez\u0151 script a konzolban<br \/>\nOkos szerz\u0151d\u00e9s k\u00f6zz\u00e9t\u00e9teli script<br \/>\nFuttat\u00e1s \u00e9s param\u00e9terek lek\u00e9rdez\u00e9se<br \/>\nInd\u00edt\u00e1si param\u00e9terek lek\u00e9rdez\u00e9se<br \/>\nA szerz\u0151d\u00e9s ford\u00edt\u00e1sa<br \/>\nFi\u00f3k felold\u00e1sa<br \/>\nAz ABI \u00e9s a szerz\u0151d\u00e9s bin\u00e1ris k\u00f3dj\u00e1nak bet\u00f6lt\u00e9se<br \/>\nA sz\u00fcks\u00e9ges g\u00e1z mennyis\u00e9g\u00e9nek becsl\u00e9se<br \/>\nObjektum l\u00e9trehoz\u00e1sa \u00e9s a szerz\u0151d\u00e9s k\u00f6zz\u00e9t\u00e9tel\u00e9nek ind\u00edt\u00e1sa<br \/>\nA szerz\u0151d\u00e9s k\u00f6zz\u00e9t\u00e9teli script futtat\u00e1sa<br \/>\nOkos szerz\u0151d\u00e9s funkci\u00f3inak h\u00edv\u00e1sa<br \/>\nLehets\u00e9ges-e egy k\u00f6zz\u00e9tett okos szerz\u0151d\u00e9s friss\u00edt\u00e9se<br \/>\nA Web3 1.0.x verzi\u00f3j\u00e1val val\u00f3 munka<br \/>\nA fi\u00f3kok list\u00e1j\u00e1nak lek\u00e9rdez\u00e9se<br \/>\nSzerz\u0151d\u00e9s k\u00f6zz\u00e9t\u00e9tele<br \/>\nSzerz\u0151d\u00e9s funkci\u00f3inak h\u00edv\u00e1sa<br \/>\nEszk\u00f6z\u00f6k \u00e1tutal\u00e1sa egyik fi\u00f3kr\u00f3l a m\u00e1sikra<br \/>\nEszk\u00f6z\u00f6k \u00e1tutal\u00e1sa a szerz\u0151d\u00e9s fi\u00f3kj\u00e1ba<br \/>\nA HelloSol okos szerz\u0151d\u00e9s friss\u00edt\u00e9se<br \/>\nScript k\u00e9sz\u00edt\u00e9se a fi\u00f3k egyenleg\u00e9nek ellen\u0151rz\u00e9s\u00e9re<br \/>\n\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432\u044b\u0437\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 getBalance \u0432 \u0441\u043a\u0440\u0438\u043f\u0442 call_contract_get_promise.js<br \/>\nA szerz\u0151d\u00e9s egyenleg\u00e9nek felt\u00f6lt\u00e9se<br \/>\nA lecke \u00f6sszefoglal\u00e1sa<\/p>\n<p><b class=\"spoiler_title\">7. lecke. Bevezet\u00e9s a Truffle-be<\/b>Truffle telep\u00edt\u00e9se<br \/>\nHelloSol projekt l\u00e9trehoz\u00e1sa<br \/>\nA projekt k\u00f6nyvt\u00e1r\u00e1nak \u00e9s f\u00e1jljainak l\u00e9trehoz\u00e1sa<br \/>\ncontracts k\u00f6nyvt\u00e1r<br \/>\nmigrations k\u00f6nyvt\u00e1r<br \/>\ntest k\u00f6nyvt\u00e1r<br \/>\n\u0424\u0430\u0439\u043b truffle-config.js<br \/>\nA HelloSol szerz\u0151d\u00e9s ford\u00edt\u00e1sa<br \/>\nA szerz\u0151d\u00e9s publik\u00e1l\u00e1s\u00e1nak elind\u00edt\u00e1sa<br \/>\nA HelloSol szerz\u0151d\u00e9s funkci\u00f3inak megh\u00edv\u00e1sa a Truffle megh\u00edv\u00e1sakor<br \/>\n\u0412\u044b\u0437\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 HelloSol \u0438\u0437 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 JavaScript \u043f\u043e\u0434 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c Node.js<br \/>\ntruffle-contract modul telep\u00edt\u00e9se<br \/>\nA getValue \u00e9s getString funkci\u00f3k megh\u00edv\u00e1sa<br \/>\nA setValue \u00e9s setString funkci\u00f3k megh\u00edv\u00e1sa<br \/>\nA szerz\u0151d\u00e9s m\u00f3dos\u00edt\u00e1sa \u00e9s \u00fajrapublik\u00e1l\u00e1s<br \/>\nA Web3 1.0.x verzi\u00f3j\u00e1val val\u00f3 munka<br \/>\nM\u00f3dos\u00edt\u00e1sokat hajtunk v\u00e9gre a HelloSol okosszerz\u0151d\u00e9sen<br \/>\nScriptek a szerz\u0151d\u00e9s met\u00f3dusainak megh\u00edv\u00e1s\u00e1ra<br \/>\nTesztel\u00e9s Truffle-ban<br \/>\nTeszt Solidity-ban<br \/>\nTeszt JavaScriptben<br \/>\nA lecke \u00f6sszefoglal\u00e1sa<\/p>\n<p><b class=\"spoiler_title\">8. lecke. Solidity adatszerkezetek<\/b>Szerz\u0151d\u00e9s az adatszerkezetek tanulm\u00e1nyoz\u00e1s\u00e1hoz<br \/>\nLogikai adatszerkezetek<br \/>\nEl\u0151jel n\u00e9lk\u00fcli \u00e9s el\u0151jeles eg\u00e9sz sz\u00e1mok<br \/>\nR\u00f6gz\u00edtett pont\u00fa sz\u00e1mok<br \/>\nC\u00edm<br \/>\n\u00d6sszetett t\u00edpus\u00fa v\u00e1ltoz\u00f3k<br \/>\nFix m\u00e9ret\u0171 t\u00f6mb\u00f6k<br \/>\nDinamikus t\u00f6mb\u00f6k<br \/>\nFelsorol\u00e1s<br \/>\nStrukt\u00far\u00e1k<br \/>\nmapping sz\u00f3t\u00e1rak<br \/>\nA lecke \u00f6sszefoglal\u00e1sa<\/p>\n<p><b class=\"spoiler_title\">9. lecke. Szerz\u0151d\u00e9sek migr\u00e1ci\u00f3ja mag\u00e1n h\u00e1l\u00f3zatra \u00e9s Rinkeby h\u00e1l\u00f3zatra<\/b>A Truffle-b\u00f3l a Geth mag\u00e1n h\u00e1l\u00f3zatra val\u00f3 szerz\u0151d\u00e9s publik\u00e1l\u00e1sa<br \/>\nA mag\u00e1n h\u00e1l\u00f3zat csom\u00f3pontj\u00e1nak el\u0151k\u00e9sz\u00edt\u00e9se<br \/>\nA szerz\u0151d\u00e9s el\u0151k\u00e9sz\u00edt\u00e9se a m\u0171k\u00f6d\u00e9shez<br \/>\nA szerz\u0151d\u00e9s ford\u00edt\u00e1sa \u00e9s migr\u00e1l\u00e1sa a Truffle h\u00e1l\u00f3zatra<br \/>\nMigr\u00e1ci\u00f3 ind\u00edt\u00e1sa a lok\u00e1lis geth h\u00e1l\u00f3zaton<br \/>\nTruffle artefaktumok beszerz\u00e9se<br \/>\nA Truffle-b\u00f3l val\u00f3 szerz\u0151d\u00e9s publik\u00e1l\u00e1sa a Rinkeby teszth\u00e1l\u00f3zaton<br \/>\nA Geth csom\u00f3pont el\u0151k\u00e9sz\u00edt\u00e9se a Rinkeby-hoz<br \/>\nCsom\u00f3pont szinkroniz\u00e1l\u00e1sa<br \/>\nFi\u00f3kok hozz\u00e1ad\u00e1sa<br \/>\nRinkeby fi\u00f3k felt\u00f6lt\u00e9se \u00e9terrel<br \/>\nA szerz\u0151d\u00e9s migr\u00e1ci\u00f3j\u00e1nak ind\u00edt\u00e1sa a Rinkeby h\u00e1l\u00f3zaton<br \/>\nA szerz\u0151d\u00e9s inform\u00e1ci\u00f3inak megtekint\u00e9se a Rinkeby h\u00e1l\u00f3zaton<br \/>\nTruffle konzol a Rinkeby h\u00e1l\u00f3zaton<br \/>\nEgyszer\u0171bb m\u00f3d a szerz\u0151d\u00e9s funkci\u00f3inak megh\u00edv\u00e1s\u00e1ra<br \/>\n\u0412\u044b\u0437\u043e\u0432 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u0430 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 Node.js<br \/>\nP\u00e9nz \u00e1tutal\u00e1sa fi\u00f3kok k\u00f6z\u00f6tt a Truffle konzolon Rinkby sz\u00e1m\u00e1ra<br \/>\nA lecke \u00f6sszefoglal\u00e1sa<\/p>\n<p><b class=\"spoiler_title\">10. lecke. Decentraliz\u00e1lt adathordoz\u00f3 Ethereum Swarm<\/b>Hogyan m\u0171k\u00f6dik az Ethereum Swarm<br \/>\nSwarm telep\u00edt\u00e9se \u00e9s ind\u00edt\u00e1sa<br \/>\nF\u00e1jlokkal \u00e9s k\u00f6nyvt\u00e1rakkal v\u00e9gzett m\u0171veletek<br \/>\nF\u00e1jl felt\u00f6lt\u00e9se az Ethereum Swarm-ba<br \/>\nF\u00e1jl olvas\u00e1sa az Ethereum Swarm-b\u00f3l<br \/>\nA felt\u00f6lt\u00f6tt f\u00e1jl manifesztj\u00e9nek megtekint\u00e9se<br \/>\nK\u00f6nyvt\u00e1rak felt\u00f6lt\u00e9se almapp\u00e1kkal<br \/>\nF\u00e1jl olvas\u00e1sa a felt\u00f6lt\u00f6tt k\u00f6nyvt\u00e1rb\u00f3l<br \/>\nNyilv\u00e1nos Swarm \u00e1tj\u00e1r\u00f3 haszn\u00e1lata<br \/>\n\u041e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a Swarm \u0438\u0437 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 Node.js<br \/>\nPerl Net::Ethereum::Swarm modul<br \/>\nNet::Ethereum::Swarm modul telep\u00edt\u00e9se<br \/>\nAdatok \u00edr\u00e1sa \u00e9s olvas\u00e1sa<br \/>\nA lecke \u00f6sszefoglal\u00e1sa<\/p>\n<p><b class=\"spoiler_title\">11. lecke. Web3.py keretrendszer az Ethereum munk\u00e1hoz Pythonban<\/b>Web3.py telep\u00edt\u00e9se<br \/>\nSz\u00fcks\u00e9ges csomagok friss\u00edt\u00e9se \u00e9s telep\u00edt\u00e9se<br \/>\neasysolc modul telep\u00edt\u00e9se<br \/>\nA Web3.py seg\u00edts\u00e9g\u00e9vel t\u00f6rt\u00e9n\u0151 szerz\u0151d\u00e9s publik\u00e1l\u00e1sa<br \/>\nA szerz\u0151d\u00e9s ford\u00edt\u00e1sa<br \/>\nCsatlakoz\u00e1s a szolg\u00e1ltat\u00f3hoz<br \/>\nA szerz\u0151d\u00e9s publik\u00e1l\u00e1s\u00e1nak v\u00e9grehajt\u00e1sa<br \/>\nA szerz\u0151d\u00e9s c\u00edm\u00e9nek \u00e9s abi-nak ment\u00e9se f\u00e1jlba<br \/>\nA szerz\u0151d\u00e9s k\u00f6zz\u00e9t\u00e9teli script futtat\u00e1sa<br \/>\nA szerz\u0151d\u00e9s met\u00f3dusainak megh\u00edv\u00e1sa<br \/>\nA szerz\u0151d\u00e9s c\u00edm\u00e9nek \u00e9s abi-j\u00e1nak olvas\u00e1sa JSON f\u00e1jlb\u00f3l<br \/>\nCsatlakoz\u00e1s a szolg\u00e1ltat\u00f3hoz<br \/>\nSzerz\u0151d\u00e9s objektum l\u00e9trehoz\u00e1sa<br \/>\nA szerz\u0151d\u00e9s met\u00f3dusainak megh\u00edv\u00e1sa<br \/>\nTruffle \u00e9s Web3.py<br \/>\nA lecke \u00f6sszefoglal\u00e1sa<\/p>\n<p><b class=\"spoiler_title\">12. lecke. Oracleok<\/b>Hogyan b\u00edzhat a smart contract a k\u00fcls\u0151 vil\u00e1g adataiban<br \/>\nOracleok mint inform\u00e1ci\u00f3s k\u00f6zvet\u00edt\u0151k a blokkl\u00e1ncon<br \/>\nAdatforr\u00e1s<br \/>\nK\u00f3d az adatforr\u00e1sb\u00f3l sz\u00e1rmaz\u00f3 adatok megjelen\u00edt\u00e9s\u00e9re<br \/>\nOracle a valuta\u00e1rfolyam blokkl\u00e1ncra t\u00f6rt\u00e9n\u0151 r\u00f6gz\u00edt\u00e9s\u00e9re<br \/>\nUSDRateOracle szerz\u0151d\u00e9s<br \/>\nValuta\u00e1rfolyam friss\u00edt\u00e9se a smart contractban<br \/>\nWeb Socket szolg\u00e1ltat\u00f3 haszn\u00e1lata<br \/>\nRateUpdate esem\u00e9nyre v\u00e1rakoz\u00e1s<br \/>\nRateUpdate esem\u00e9ny feldolgoz\u00e1sa<br \/>\nAdatok friss\u00edt\u00e9s\u00e9nek kezdem\u00e9nyez\u00e9se a smart contractban<br \/>\nA lecke \u00f6sszefoglal\u00e1sa<\/p>\n<p>Forr\u00e1s: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/467347\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0411\u043e\u043b\u044c\u0448\u0435 \u0433\u043e\u0434\u0430 \u044f \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043d\u0430\u0434 \u043a\u043d\u0438\u0433\u043e\u0439 \u00ab\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432 Solidity \u0434\u043b\u044f \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430 Ethereum. \u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e\u00bb, \u0438 \u0432\u043e\u0442 \u0442\u0435\u043f\u0435\u0440\u044c \u044d\u0442\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430, \u0430 \u043a\u043d\u0438\u0433\u0430 \u0438\u0437\u0434\u0430\u043d\u0430 \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0432 \u041b\u0438\u0442\u0440\u0435\u0441\u0435. \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u043c\u043e\u044f \u043a\u043d\u0438\u0433\u0430 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043a \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0430\u043a\u0442\u043e\u0432 Solidity \u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 DApp \u0434\u043b\u044f \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430 Ethereum. \u041e\u043d\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 12 \u0443\u0440\u043e\u043a\u043e\u0432 \u0441 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0437\u0430\u0434\u0430\u043d\u0438\u044f\u043c\u0438. \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0432 \u0438\u0445, \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":29275,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-39018","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/hu\/blog\/news\/kniga-sozdanie-smart-kontraktov-solidity-dlya-blokchejna-ethereum-prakticheskoe-rukovodstvo\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u043d\u0438\u0433\u0430 \u00ab\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432 Solidity \u0434\u043b\u044f \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430 Ethereum. \u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e\u00bb | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/blog\/news\/kniga-sozdanie-smart-kontraktov-solidity-dlya-blokchejna-ethereum-prakticheskoe-rukovodstvo\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:27:25+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:27:25+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47K\u00f6nyv: \u00abOkos szerz\u0151d\u00e9sek Solidity k\u00e9sz\u00edt\u00e9se az Ethereum blokkl\u00e1nchoz. Gyakorlati \u00fatmutat\u00f3\u00bb | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/news\/kniga-sozdanie-smart-kontraktov-solidity-dlya-blokchejna-ethereum-prakticheskoe-rukovodstvo","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u043d\u0438\u0433\u0430 \u00ab\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043c\u0430\u0440\u0442-\u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432 Solidity \u0434\u043b\u044f \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0430 Ethereum. \u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e\u00bb | ProHoster","og:url":"https:\/\/prohoster.info\/hu\/blog\/news\/kniga-sozdanie-smart-kontraktov-solidity-dlya-blokchejna-ethereum-prakticheskoe-rukovodstvo","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:27:25+00:00","article:modified_time":"2019-10-31T19:27:25+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"39018","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 00:24:24","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 00:58:39","updated":"2026-01-24 00:24:24","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/39018","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=39018"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/39018\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/29275"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=39018"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=39018"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=39018"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}