Buku "Nyieun Solidity Smart Contracts pikeun Ethereum Blockchain. Pituduh Praktis »

Buku "Nyieun Solidity Smart Contracts pikeun Ethereum Blockchain. Pituduh Praktis »
Pikeun leuwih ti sataun kuring geus dipake dina buku "Nyieun Solidity Kontrak Smart pikeun Ethereum Blockchain. Guide Praktis", sarta ayeuna karya ieu réngsé, sarta buku diterbitkeun na sadia dina Liter.

Abdi ngarepkeun buku kuring bakal ngabantosan anjeun gancang ngamimitian nyiptakeun kontak pinter Solidity sareng disebarkeun DApps pikeun blockchain Ethereum. Ieu ngawengku 12 palajaran kalawan tugas praktis. Sanggeus réngsé éta, nu maca bakal bisa nyieun titik Ethereum lokal sorangan, nyebarkeun kontrak pinter jeung nelepon métode maranéhanana, bursa data antara dunya nyata jeung kontrak pinter ngagunakeun oracles, sarta gawé bareng jaringan Rinkeby test debug.

Buku ieu ditujukeun ka sadayana anu resep kana téknologi canggih dina widang blockchain sareng hoyong gancang nampi pangaweruh anu bakal ngamungkinkeun aranjeunna kalibet dina karya anu pikaresepeun sareng ngajangjikeun.

Di handap ieu anjeun bakal mendakan daptar eusi sareng bab kahiji buku (ogé dina Liter fragmen buku sadia). Abdi ngarepkeun eupan balik, koméntar sareng saran. Kuring bakal nyobian nyandak sadayana ieu kana akun nalika nyiapkeun édisi buku salajengna.

daptar eusiperkenalanBuku kami dimaksudkeun pikeun jalma anu hoyong henteu ngan ukur ngartos prinsip-prinsip blockchain Ethereum, tapi ogé kéngingkeun kaahlian praktis dina nyiptakeun DApps anu disebarkeun dina basa pamrograman Solidity pikeun jaringan ieu.

Éta langkung saé henteu ngan ukur maca buku ieu, tapi pikeun damel sareng éta, ngalaksanakeun tugas praktis anu dijelaskeun dina palajaran. Pikeun damel, anjeun peryogi komputer lokal, server maya atanapi awan sareng Debian atanapi Ubuntu OS dipasang. Anjeun ogé tiasa nganggo Raspberry Pi pikeun ngalaksanakeun seueur tugas.

Dina palajaran kahiji Urang bakal ningali prinsip operasi tina blockchain Ethereum sareng terminologi dasar, sareng ogé ngobrol ngeunaan dimana blockchain ieu tiasa dianggo.

tujuan palajaran kadua - jieun titik blockchain Ethereum swasta pikeun digawé salajengna dina kursus ieu dina server Ubuntu sareng Debian. Urang bakal ningali fitur masang utilitas dasar, sapertos geth, anu ngajamin operasi node blockchain kami, ogé daemon panyimpen data desentralisasi ngagimbung.

palajaran katilu bakal ngajarkeun anjeun kumaha ékspérimén sareng Ethereum dina mikrokomputer Raspberry Pi anu murah. Anjeun bakal masang sistem operasi (OS) Rasberian dina Raspberry Pi, utilitas Geth anu ngawasa titik blockchain, sareng daemon panyimpen data desentralisasi Swarm.

Pangajaran opat dedicated ka akun jeung unit cryptocurrency dina jaringan Ethereum, kitu ogé cara nransper dana ti hiji akun ka sejen tina konsol Geth. Anjeun bakal diajar kumaha cara nyieun akun, ngamimitian transaksi transfer dana, sareng kéngingkeun status transaksi sareng resi.

Dina palajaran kalima Anjeun bakal kenal sareng kontrak pinter dina jaringan Ethereum sareng diajar ngeunaan palaksanaanna ku mesin virtual Ethereum.

Anjeun bakal nyiptakeun sareng nyebarkeun kontrak pinter munggaran anjeun dina jaringan pribadi Ethereum sareng diajar kumaha nyauran fungsina. Jang ngalampahkeun ieu, anjeun bakal nganggo Remix Solidity IDE. Anjeun ogé bakal diajar kumaha masang sareng nganggo kompiler angkatan solc.
Urang ogé bakal ngobrol ngeunaan anu disebut Application Binary Interface (ABI) sareng ngajarkeun anjeun kumaha ngagunakeunana.

Pangajaran kagenep dedicated ka nyieun skrip JavaScript ngajalankeun Node.js sarta ngajalankeun operasi kalawan Solidity kontrak pinter.

Anjeun bakal masang Node.js dina Ubuntu, Debian sareng Rasberian OS, nyerat skrip pikeun nyebarkeun kontrak pinter dina jaringan lokal Ethereum sareng nyauran fungsina.

Salaku tambahan, anjeun bakal diajar kumaha cara nransfer dana antara akun biasa nganggo skrip, ogé kiridit kana rekening kontrak pinter.

Dina palajaran katujuh Anjeun bakal diajar kumaha masang sareng nganggo kerangka Truffle, populer di kalangan pamekar kontrak pinter Solidity. Anjeun bakal diajar kumaha carana nyieun skrip JavaScript nu nelepon fungsi kontrak ngagunakeun modul truffle-kontrak, sarta nguji kontrak pinter anjeun ngagunakeun Truffle.

Pangajaran kadalapan dedicated ka tipe data Solidity. Anjeun bakal nyerat kontrak pinter anu tiasa dianggo sareng jinis data sapertos integer anu ditandatanganan sareng henteu ditandatanganan, nomer anu ditandatanganan, senar, alamat, variabel kompleks, arrays, enumerations, struktur, sareng kamus.

Dina palajaran kasalapan Anjeun bakal janten salengkah langkung caket kana nyiptakeun kontrak pinter pikeun mainnet Ethereum. Anjeun bakal diajar kumaha cara nyebarkeun kontrak nganggo Truffle dina jaringan pribadi Geth, ogé dina testnet Rinkeby. Debugging kontrak pinter dina jaringan Rinkeby pohara kapaké saméméh medarkeun dina jaringan utama - ampir sagalana nyata aya, tapi haratis.

Salaku bagian tina palajaran, anjeun bakal nyieun titik jaringan test Rinkeby, ngabiayaan eta kalawan dana, sarta nyebarkeun kontrak pinter.

pangajaran 10 dedicated ka Ethereum ngagimbung disebarkeun gudang data. Ku ngagunakeun gudang disebarkeun, anjeun simpen dina nyimpen jumlah badag data dina blockchain Ethereum.

Dina tutorial ieu, anjeun bakal nyiptakeun gudang Swarm lokal, nyerat sareng maca operasi dina file, sareng diréktori file. Salajengna, anjeun bakal diajar kumaha damel sareng gerbang Swarm umum, nyerat skrip pikeun ngaksés Swarm ti Node.js, ogé nganggo modul Perl Net:: Ethereum:: Swarm.

Tujuan Pangajaran 11 — master damel sareng kontrak pinter Solidity nganggo basa pamrograman Python populér sareng kerangka Web3.py. Anjeun bakal masang kerangka, nyerat skrip pikeun nyusun sareng nyebarkeun kontrak pinter, sareng nyauran fungsina. Dina hal ieu, Web3.py bakal dianggo nyalira sareng babarengan sareng lingkungan pangembangan terpadu Truffle.

Dina palajaran 12 anjeun bakal diajar nransper data antara kontrak pinter jeung dunya nyata ngagunakeun oracles. Ieu bakal mangpaat pikeun anjeun nampi data tina situs Wéb, alat IoT, sababaraha alat sareng sensor, sareng ngirim data tina kontrak pinter ka alat ieu. Dina bagian praktis tina palajaran, anjeun bakal nyieun hiji oracle jeung kontrak pinter nu narima kurs ayeuna antara USD jeung rubles ti ramatloka Bank Séntral Féderasi Rusia.

Pangajaran 1. Sakeudeung ngeunaan blockchain jeung jaringan EthereumTujuan palajaran: kenal sareng prinsip operasi tina blockchain Ethereum, daérah aplikasi sareng terminologi dasar.
Tugas Praktis: teu katutupan dina ieu palajaran.

Aya boro pamekar software kiwari anu teu ngadéngé nanaon ngeunaan téhnologi blockchain (Blockchain), cryptocurrencies (Cryptocurrency atanapi Crypto Mata Artos), Bitcoin (Bitcoin), kurban koin awal (ICO, kurban koin awal), kontrak pinter (Smart Kontrak), kitu ogé konsép sarta istilah séjén nu patali jeung blockchain.

Téknologi Blockchain muka pasar anyar sareng nyiptakeun padamelan pikeun programer. Upami anjeun ngartos sadayana intricacies téknologi cryptocurrency sareng téknologi kontrak pinter, maka anjeun henteu kedah ngagaduhan masalah pikeun nerapkeun pangaweruh ieu dina prakték.

Ieu kudu ngomong yén aya loba spekulasi sabudeureun cryptocurrencies na blockchains. Urang bakal ninggalkeun kumisan diskusi ngeunaan parobahan dina ongkos cryptocurrency, kreasi piramida, nu intricacies panerapan cryptocurrency, jsb. Dina kursus palatihan kami urang bakal difokuskeun utamana dina aspék téknis tina aplikasi kontrak pinter tina blockchain Ethereum (Ethereum, Éter) jeung ngembangkeun nu disebut aplikasi desentralisasi (Aplikasi Distribusi, DApp).

Naon blockchain

Blockchain (Block Chain) mangrupikeun ranté blok data anu dihubungkeun sareng anu sanés dina cara anu tangtu. Dina awal ranté aya blok kahiji, nu disebut blok primér (block genesis) atawa blok genesis. Diteruskeun ku nu kadua, nu katilu jeung saterusna.

Sadaya blok data ieu otomatis diduplikasi dina sababaraha titik jaringan blockchain. Ieu ensures neundeun desentralisasi data blockchain.
Anjeun tiasa nganggap sistem blockchain salaku sajumlah ageung titik (server fisik atanapi virtual) disambungkeun dina jaringan sareng ngulang sadaya parobihan dina ranté blok data. Ieu sapertos komputer multi-server raksasa, sareng titik-titik komputer (server) sapertos kitu tiasa sumebar di sakumna dunya. Sareng anjeun ogé tiasa nambihan komputer anjeun kana jaringan blockchain.

Database anu disebarkeun

A blockchain bisa dianggap salaku database disebarkeun nu replicated sakuliah sakabéh titik jaringan blockchain. Dina tiori, blockchain bakal operasional salami sahenteuna hiji titik berpungsi, nyimpen sakabeh blok blockchain nu.

pendaptaran Data disebarkeun

Blockchain bisa dianggap salaku ledger disebarkeun data jeung operasi (transaksi). Ngaran séjén pikeun register misalna hiji ledger a.

Data bisa ditambahkeun kana ledger disebarkeun, tapi teu bisa dirobah atawa dihapus. Kamungkinan ieu dihontal, khususna, ku ngagunakeun algoritma kriptografi, algoritma khusus pikeun nambihan blok kana ranté sareng neundeun data desentralisasi.

Nalika nambihan blok sareng ngajalankeun operasi (transaksi), konci pribadi sareng umum dianggo. Aranjeunna ngawatesan pamaké blockchain ku ukur masihan aranjeunna aksés ka blok data sorangan.

Transaksi

Blockchain nyimpen inpormasi ngeunaan operasi (transaksi) dina blok. Dina waktu nu sarua, heubeul, geus réngsé transaksi teu bisa digulung deui atawa dirobah. Transaksi anyar disimpen dina blok anyar, tambah.

Ku cara kieu, sakabéh sajarah transaksi bisa dirékam unchanged on blockchain nu. Ku alatan éta, blockchain bisa dipaké, contona, pikeun nyimpen transaksi perbankan aman, informasi hak cipta, sajarah parobahan nu boga harta, jsb.

The Ethereum blockchain ngandung nu disebut nagara sistem. Nalika transaksi dieksekusi, kaayaan robah tina kaayaan awal ka kaayaan ayeuna. Transaksi dirékam dina blok.

blockchains umum jeung swasta

Ieu kudu dicatet di dieu yén sagalana ceuk bener ukur keur nu disebut jaringan blockchain publik, nu teu bisa dikawasa ku sagala individu atawa badan hukum, agénsi pamaréntah atawa pamaréntah.
Anu disebut jaringan blockchain swasta aya dina kadali pinuh ku panyiptana, sareng naon waé anu mungkin aya, contona, ngagantian lengkep sadaya blok ranté.

Aplikasi praktis tina blockchain

Naon tiasa blockchain mangpaat pikeun?

Pondokna, blockchain ngamungkinkeun anjeun pikeun aman ngalaksanakeun transaksi (transaksi) antara jalma atanapi perusahaan anu henteu percanten. Data kacatet dina blockchain (transaksi, data pribadi, dokumén, sertipikat, kontrak, invoices, jsb) teu bisa falsified atawa diganti sanggeus dirékam. Ku alatan éta, dumasar kana blockchain, kasebut nyaéta dimungkinkeun pikeun nyieun, contona, registries disebarkeun dipercaya tina rupa-rupa dokumén.

Tangtosna, anjeun terang yén sistem cryptocurrency didamel dina dasar blockchains, dirancang pikeun ngagentos artos kertas biasa. Duit kertas disebut ogé fiat (tina Fiat Money).
Blockchain ensures neundeun jeung immutability tina transaksi kacatet dina blok, naha éta bisa dipaké pikeun nyieun sistem cryptocurrency. Ieu ngandung sakabéh sajarah mindahkeun dana crypto antara pamaké béda (akun), sarta sagala operasi bisa dilacak.

Sanajan transaksi dina sistem cryptocurrency bisa jadi anonim, withdrawing cryptocurrency tur exchanging eta duit fiat biasana ngakibatkeun nembongkeun identitas nu boga asset cryptocurrency.

Nu disebut kontrak pinter, nu software ngajalankeun dina jaringan Ethereum, ngidinan Anjeun pikeun ngajadikeun otomatis prosés concluding transaksi jeung ngawas palaksanaan maranéhanana. Ieu hususna efektif upami pamayaran transaksi dilaksanakeun nganggo cryptocurrency éter.

Kontrak pinter Ethereum blockchain sareng Ethereum anu ditulis dina basa program Solidity tiasa dianggo, contona, di daérah ieu:

  • alternatif pikeun notarization dokumén;
  • neundeun hiji register objék real estate jeung informasi ngeunaan transaksi jeung objék real estate;
  • neundeun inpormasi hak cipta ngeunaan hak cipta intelektual (buku, gambar, karya musik, jsb.);
  • nyiptakeun sistem voting mandiri;
  • keuangan sarta perbankan;
  • logistik dina skala internasional, nyukcruk gerakan barang;
  • neundeun data pribadi salaku analog kana sistem kartu idéntitas;
  • transaksi aman dina widang komérsial;
  • nyimpen hasil pamariksaan médis, kitu ogé sajarah prosedur prescribed

Masalah sareng blockchain

Tapi, tangtosna, henteu sadayana saderhana sapertos sigana!

Aya masalah sareng verifikasi data sateuacan nambihkeun kana blockchain (contona, naha éta palsu?), Masalah kaamanan sistem sareng parangkat lunak aplikasi anu dianggo pikeun damel sareng blockchain, masalah sareng kamungkinan ngagunakeun metode rékayasa sosial pikeun maok aksés. mun dompet cryptocurrency, jsb .P.

Sakali deui, upami urang henteu ngobrol ngeunaan blockchain umum, titik-titik anu sumebar di sakumna dunya, tapi ngeunaan blockchain swasta milik hiji jalma atanapi organisasi, maka tingkat kapercayaan di dieu moal langkung luhur tibatan tingkat kapercayaan. dina jalma ieu atanapi organisasi ieu.

Éta ogé kedah diperhatoskeun yén data anu kacatet dina blockchain janten sayogi pikeun sadayana. Dina hal ieu, blockchain (utamana umum) henteu cocog pikeun nyimpen inpormasi rahasia. Sanajan kitu, kanyataan yén informasi dina blockchain teu bisa dirobah bisa mantuan nyegah atawa nalungtik rupa-rupa kagiatan curang.

aplikasi desentralisasi Ethereum bakal merenah lamun mayar pamakéan maranéhanana jeung cryptocurrency. Langkung seueur jalma anu gaduh cryptocurrency atanapi daék ngagaleuhna, DApps sareng kontrak pinter anu langkung populér bakal janten.

Masalah umum sareng blockchain anu ngahalangan aplikasi praktisna kalebet kacepetan kawates dimana blok énggal tiasa ditambah sareng biaya transaksi anu kawilang luhur. Tapi téhnologi di wewengkon ieu aktip ngamekarkeun, sarta aya harepan yén masalah teknis bakal direngsekeun kana waktu.

Masalah sejen nyaeta kontrak pinter dina blockchain Ethereum beroperasi dina lingkungan terasing tina mesin virtual, sarta teu boga aksés ka data real-dunya. Khususna, program kontrak pinter henteu tiasa maca data tina situs atanapi alat fisik naon waé (sensor, kontak, sareng sajabana), sareng ogé henteu tiasa ngaluarkeun data kana alat éksternal. Urang bakal ngabahas masalah ieu sareng cara pikeun ngabéréskeunana dina palajaran anu dikhususkeun pikeun anu disebut Oracles - perantara inpormasi ngeunaan kontrak pinter.

Aya ogé larangan hukum. Di sababaraha nagara, contona, dilarang ngagunakeun cryptocurrency salaku sarana pembayaran, tapi anjeun bisa sorangan salaku jenis asset digital, kawas jaminan. Aset sapertos kitu tiasa dibeli sareng dijual di bursa. Dina naon waé, nalika nyiptakeun proyék anu tiasa dianggo sareng cryptocurrencies, anjeun kedah familiarize diri sareng panerapan nagara anu aya yurisdiksi proyék anjeun.

Kumaha ranté blockchain kabentuk

Salaku geus kami geus ngomong, blockchain mangrupakeun ranté basajan tina blok data. Kahiji, blok mimiti ranté ieu kabentuk, lajeng nu kadua ditambahkeun kana eta, jeung saterusna. Data transaksi dianggap disimpen dina blok, sarta ditambahkeun kana blok panganyarna.

Dina Gbr. 1.1 kami nunjukkeun versi pangbasajanna tina sekuen blok, dimana blok kahiji nujul kana anu salajengna.

Buku "Nyieun Solidity Smart Contracts pikeun Ethereum Blockchain. Pituduh Praktis »
Sangu. 1.1. Sekuen basajan tina blok

Kalawan pilihan ieu, kumaha oge, eta pisan gampang tamper kalawan eusi sagala blok dina ranté nu, saprak blok teu ngandung émbaran naon ngajaga ngalawan parobahan. Nganggap yén blockchain dimaksudkeun pikeun dianggo ku jalma sareng perusahaan anu teu aya kapercayaan, urang tiasa nyimpulkeun yén metode nyimpen data ieu henteu cocog pikeun blockchain.

Hayu urang mimitian ngajaga blok tina pemalsuan. Dina tahap kahiji, urang bakal coba ngajaga unggal blok ku checksum a (Gbr. 1.2).

Buku "Nyieun Solidity Smart Contracts pikeun Ethereum Blockchain. Pituduh Praktis »
Sangu. 1.2. Nambahkeun panyalindungan pikeun blok ieu kalawan checksum a

Ayeuna panyerang teu tiasa ngan saukur ngarobih blok, sabab ngandung checksum data blok. Mariksa checksum bakal nunjukkeun yén data parantos dirobih.

Pikeun ngitung checksum, anjeun tiasa nganggo salah sahiji fungsi hashing sapertos MD-5, SHA-1, SHA-256, jsb. Fungsi Hash ngitung nilai (contona, string téks anu panjangna konstan) ku ngalakukeun operasi anu teu tiasa dibalikkeun dina blok data. Operasi gumantung kana jinis fungsi hash.

Sanaos eusi blok data rada robih, nilai hash ogé bakal robih. Ku analisa nilai fungsi hash, mustahil pikeun ngarekonstruksikeun blok data anu diitung.

Naha panyalindungan sapertos kitu cekap? Hanjakal henteu.

Dina skéma ieu, checksum (fungsi hash) ngan ngajaga blok individu, tapi henteu sakabéh blockchain. Nyaho algoritma pikeun ngitung fungsi hash, panyerang tiasa kalayan gampang ngagentos eusi blok. Ogé, teu aya anu bakal nyegah anjeunna ngaleungitkeun blok tina ranté atanapi nambihan anu énggal.

Pikeun ngajaga sakabéh ranté sakabéhna, anjeun ogé tiasa nyimpen dina unggal blok, babarengan jeung data, a Hash data ti blok saméméhna (Gbr. 1.3).

Buku "Nyieun Solidity Smart Contracts pikeun Ethereum Blockchain. Pituduh Praktis »
Sangu. 1.3. Tambahkeun hash tina blok saméméhna kana blok data

Dina skéma ieu, pikeun ngarobih blok, anjeun kedah ngitung deui fungsi hash sadaya blok anu salajengna. Éta sigana, naon masalahna?

Dina blockchains nyata, kasusah jieunan ogé dijieun pikeun nambahkeun blok anyar-algoritma nu merlukeun loba sumber komputasi dipaké. Nganggap yén pikeun ngarobih blok, anjeun kedah ngitung deui sanés ngan ukur hiji blok ieu, tapi sadayana anu salajengna, ieu bakal sesah pisan.

Hayu urang ogé émut yén data blockchain disimpen (duplikat) dina seueur titik jaringan, nyaéta. Panyimpenan desentralisasi dianggo. Sarta ieu ngajadikeun eta leuwih hese blok palsu a, sabab parobahan kudu dilakukeun ka sadaya titik jaringan.

Kusabab blok nyimpen inpormasi ngeunaan blok saméméhna, anjeun tiasa pariksa eusi sadaya blok dina ranté éta.

blockchain Ethereum

Blockchain Ethereum mangrupikeun platform dimana DApps anu disebarkeun tiasa didamel. Teu kawas platform sejen, Ethereum ngamungkinkeun pamakéan disebut kontrak pinter (kontrak pinter), ditulis dina basa programming Solidity.

Platform ieu didamel dina 2013 ku Vitalik Buterin, pangadeg Majalah Bitcoin, sareng diluncurkeun dina 2015. Sadayana anu bakal urang pelajari atanapi laksanakeun dina kursus pelatihan urang khususna hubunganana sareng kontrak pinter Ethereum blockchain sareng Solidity.

Pertambangan atawa kumaha blok dijieun

Pertambangan mangrupikeun prosés anu rada rumit sareng intensif sumberdaya pikeun nambihan blok énggal kana ranté blockchain, sareng sanés "pertambangan cryptocurrency." Pertambangan mastikeun fungsionalitas blockchain, sabab prosés ieu anu tanggung jawab pikeun nambahkeun transaksi kana blockchain Ethereum.

Jalma jeung organisasi aub dina nambahkeun blok disebut panambang.
Parangkat lunak anu dijalankeun dina titik panambang nyobian mendakan parameter hashing anu disebut Nonce pikeun blok terakhir pikeun kéngingkeun nilai hash khusus anu ditangtukeun ku jaringan. Algoritma hashing Ethash dipaké dina Ethereum ngidinan Anjeun pikeun ménta nilai Nonce ukur ngaliwatan pilarian sequential.

Upami titik panambang mendakan nilai Nonce anu leres, maka ieu mangrupikeun anu disebut proof of work (PoW, Proof-of-work). Dina hal ieu, lamun blok ditambahkeun kana jaringan Ethereum, panambang narima ganjaran tangtu dina mata uang jaringan - éter. Dina waktu tulisan, ganjaran mangrupa 5 éter, tapi ieu bakal ngurangan kana waktu.

Ku kituna, panambang Ethereum mastikeun operasi jaringan ku nambahkeun blok, sarta nampa duit cryptocurrency pikeun ieu. Aya seueur inpormasi dina internét ngeunaan panambang sareng pertambangan, tapi kami bakal difokuskeun nyiptakeun kontrak Solidity sareng DApps dina jaringan Ethereum.

Ringkesan palajaran

Dina palajaran kahiji, anjeun meunang acquainted jeung blockchain sarta diajar yén éta téh runtuyan husus diwangun tina blok. Eusi blok anu dirékam saméméhna teu bisa dirobah, sabab ieu bakal merlukeun recalculating sakabeh blok saterusna dina loba titik jaringan, nu merlukeun loba sumber jeung waktu.

Blockchain tiasa dianggo pikeun nyimpen hasil transaksi. Tujuan utami nyaéta pikeun ngatur transaksi aman antara pihak (jalma sareng organisasi) anu teu aya amanah. Anjeun diajar di mana wewengkon husus tina bisnis jeung di wewengkon mana nu Ethereum blockchain jeung kontrak pinter Solidity bisa dipaké. Ieu mangrupikeun sektor perbankan, pendaptaran hak milik, dokumén, jsb.

Anjeun ogé diajar yén sagala rupa masalah tiasa timbul nalika nganggo blockchain. Ieu mangrupikeun masalah verifikasi inpormasi anu ditambihkeun kana blockchain, laju blockchain, biaya transaksi, masalah bursa data antara kontrak pinter sareng dunya nyata, ogé poténsi serangan ku panyerang anu ditujukeun pikeun maok dana cryptocurrency tina akun pangguna. .

Urang ogé sakeudeung ngobrol ngeunaan pertambangan salaku prosés nambahkeun blok anyar kana blockchain nu. Pertambangan diperlukeun pikeun ngalengkepan transaksi. Anu kalibet dina pertambangan mastikeun fungsi blockchain sareng nampi ganjaran dina cryptocurrency pikeun ieu.

Pangajaran 2. Nyiapkeun lingkungan gawé di Ubuntu jeung Debian OSMilih hiji sistem operasi
Masang utilitas anu diperyogikeun
Masang Geth sareng Swarm dina Ubuntu
Masang Geth sareng Swarm dina Debian
Persiapan awal
Ngundeur distribusi Go
Netepkeun variabel lingkungan
Mariksa versi Go
Masang Geth sareng Swarm
Nyiptakeun blockchain swasta
Nyiapkeun file genesis.json
Jieun diréktori pikeun digawé
Ngadamel akun
Ngamimitian initialization titik
Pilihan Peluncuran Node
Nyambung ka node urang
Manajemén pertambangan sareng cek kasaimbangan
Pareuman konsol Geth
Ringkesan palajaran

Pangajaran 3. Nyiapkeun lingkungan gawé dina Raspberry Pi 3Nyiapkeun Raspberry Pi 3 pikeun digawé
Masang Rasberian
Masang apdet
Aktipkeun Aksés SSH
Nyetél Alamat IP statik
Masang utilitas anu diperyogikeun
Masang Go
Ngundeur distribusi Go
Netepkeun variabel lingkungan
Mariksa versi Go
Masang Geth sareng Swarm
Nyiptakeun blockchain swasta
Mariksa akun sareng kasaimbangan anjeun
Ringkesan palajaran

Pangajaran 4. Akun jeung mindahkeun dana antara rekeningNingali sareng tambahkeun akun
Nempo daptar akun
Nambahkeun hiji akun
pilihan paréntah akun geth
kecap akses akun
Cryptocurrency dina Ethereum
Unit Mata Artos Ethereum
Urang nangtukeun kasaimbangan ayeuna tina rekening urang
Mindahkeun dana tina hiji akun ka anu sanés
eth.sendTransaction métode
Nempo status transaksi
Resi transaksi
Ringkesan palajaran

Pangajaran 5. Nerbitkeun kontrak munggaran anjeunkontrak pinter dina Ethereum
Palaksanaan Kontrak Smart
Mesin Virtual Ethereum
Lingkungan ngembangkeun terpadu Remix Solidity IDE
Ngajalankeun kompilasi
Nelepon Fungsi Kontrak
Nyebarkeun kontrak dina jaringan pribadi
Kéngingkeun definisi ABI sareng kode binér kontrak
Publikasi kontrak
Mariksa status kontrak nyebarkeun transaksi
Nelepon Fungsi Kontrak
Angkatan kompiler solc
Masang solc dina Ubuntu
Masang solc dina Debian
Nyusun kontrak HelloSol
Publikasi kontrak
Masang solc dina Rasberian
Ringkesan palajaran

Pangajaran 6. Kontrak pinter jeung Node.jsMasang Node.js
Pamasangan dina Ubuntu
Pamasangan dina Debian
Masang sareng ngajalankeun Ganache-cli
Pamasangan Web3
Pamasangan solc
Masang Node.js dina Rasberian
Skrip pikeun kéngingkeun daptar akun dina konsol
Skrip pikeun medarkeun kontrak pinter
Jalankeun sareng kéngingkeun parameter
Meunangkeun pilihan peluncuran
Kompilasi Kontrak
Ngabuka blokir akun anjeun
Loading ABI jeung kontrak kode binér
Estimasi jumlah diperlukeun gas
Jieun obyék tur mimitian medarkeun kontrak
Ngajalankeun naskah penerbitan kontrak
Nelepon fungsi kontrak pinter
Naha mungkin pikeun ngapdet kontrak pinter anu diterbitkeun?
Gawe sareng Web3 versi 1.0.x
Meunang daptar akun
Publikasi kontrak
Nelepon Fungsi Kontrak
Mindahkeun dana tina hiji akun ka anu sanés
Mindahkeun dana ka rekening kontrak
Ngamutahirkeun kontrak pinter HelloSol
Jieun skrip pikeun ningali kasaimbangan akun anjeun
Tambahkeun panggero kana fungsi getBalance kana skrip call_contract_get_promise.js
Urang top up akun kontrak pinter
Ringkesan palajaran

Pangajaran 7: Bubuka pikeun TruffleMasang Truffle
Jieun proyék HelloSol
Nyiptakeun Diréktori Proyék sareng File
Diréktori kontrak
Migrasi katalog
Tés diréktori
file truffle-config.js
Nyusun kontrak HelloSol
Mimitian nyebarkeun kontrak
Nelepon Fungsi Kontrak HelloSol dina Prompt Truffle
Nelepon fungsi kontrak HelloSol tina skrip JavaScript ngajalankeun Node.js
Masang modul truffle-kontrak
Nyauran fungsi kontrak getValue sareng getString
Nelepon fungsi kontrak setValue na setString
modifikasi kontrak jeung ulang publikasi
Gawe sareng Web3 versi 1.0.x
Nyieun parobahan kontrak pinter HelloSol
Skrip pikeun nelepon métode kontrak
Nguji dina Truffle
Uji soliditas
tés JavaScript
Ringkesan palajaran

Pangajaran 8. Tipe Data SoliditasKontrak pikeun diajar tipe data
tipe data Boolean
Unsigned integers and signed integers
angka titik dibereskeun
alamat
Variabel tina tipe kompléks
Arrays Ukuran Maneuh
Asép Sunandar Sunarya dinamis
Mindahkeun
Struktur
Pemetaan kamus
Ringkesan palajaran

Pangajaran 9. Migrasi kontrak ka jaringan pribadi jeung jaringan RinkebyNerbitkeun kontrak ti Truffle ka jaringan Geth swasta
Nyiapkeun titik jaringan pribadi
Nyiapkeun kontrak pikeun digawé
Nyusun sareng migrasi kontrak ka jaringan Truffle
Ngamimitian migrasi jaringan lokal geth
Meunangkeun artefak Truffle
Nyebarkeun kontrak ti Truffle ka testnet Rinkeby
Nyiapkeun titik Geth pikeun gawé bareng Rinkeby
Sinkronisasi titik
Nambahan rekening
Topping akun Rinkeby anjeun kalawan éter
Ngaluncurkeun migrasi kontrak ka jaringan Rinkeby
Ningali inpormasi kontrak dina jaringan Rinkeby
Truffle konsol pikeun Rinkeby Network
Cara anu langkung gampang pikeun nelepon fungsi kontrak
Nelepon métode kontrak maké Node.js
Mindahkeun dana antara rekening dina konsol Truffle pikeun Rinkby
Ringkesan palajaran

palajaran 10. Ethereum ngagimbung desentralisasi Panyimpenan DataKumaha Ethereum Swarm dianggo?
Masang sareng ngaluncurkeun Swarm
Operasi sareng file sareng diréktori
Unggah File ka Ethereum Swarm
Maca file tina Ethereum Swarm
Ningali manifes tina file anu diunggah
Loading directories kalawan subdirectories
Maca file tina diréktori anu diunduh
Ngagunakeun gateway ngagimbung umum
Ngaksés Swarm tina skrip Node.js
Perl Net :: Ethereum :: modul ngagimbung
Masang Net :: Ethereum :: modul ngagimbung
Nulis jeung maca data
Ringkesan palajaran

Palajaran 11. kerangka Web3.py pikeun gawé bareng Ethereum dina PythonMasang Web3.py
Ngamutahirkeun sareng masang pakét anu diperyogikeun
Masang modul easysolc
Nyebarkeun kontrak nganggo Web3.py
Kompilasi Kontrak
Nyambungkeun ka panyadia
Ngalaksanakeun publikasi kontrak
Nyimpen alamat kontrak sareng abi dina file
Ngajalankeun naskah penerbitan kontrak
Métode Kontrak Telepon
Maca alamat sareng abi kontrak tina file JSON
Nyambungkeun ka panyadia
Nyiptakeun Objék Kontrak
Métode Kontrak Telepon
Truffle jeung Web3.py
Ringkesan palajaran

Pangajaran 12. OraclesNaha kontrak pinter tiasa percanten data ti dunya luar?
Oracles salaku perantara inpormasi blockchain
Sumber data
Kode pikeun ngagambarkeun data tina sumber
Oracle pikeun ngarékam Nilai tukeur dina blockchain
Kontrak USDRateOracle
Ngamutahirkeun Nilai tukeur dina kontrak pinter
Ngagunakeun Panyadia Socket Wéb
Ngadagoan acara RateUpdate
Nanganan acara RateUpdate
Mimitian update data dina kontrak pinter
Ringkesan palajaran

sumber: www.habr.com

Tambahkeun komentar