Buku "Nggawe kontrak cerdas Solidity kanggo pamblokiran Ethereum. Panduan praktis"

Buku "Nggawe kontrak cerdas Solidity kanggo pamblokiran Ethereum. Panduan praktis"
Kanggo luwih saka setahun aku wis nggarap buku "Nggawe Solidity Smart Contracts kanggo Ethereum Blockchain. Pandhuan Praktis", lan saiki karya iki rampung, lan buku diterbitake lan kasedhiya ing Liter.

Muga-muga bukuku bakal mbantu sampeyan nggawe kontak cerdas Solidity lan nyebarake DApps kanggo blockchain Ethereum. Iki kalebu 12 pelajaran kanthi tugas praktis. Sawise rampung, sing maca bakal bisa nggawe simpul Ethereum lokal dhewe, nerbitake kontrak cerdas lan nelpon metode, ijol-ijolan data ing antarane jagad nyata lan kontrak cerdas nggunakake oracle, lan nggarap jaringan debug test Rinkeby.

Buku kasebut ditujokake kanggo sapa wae sing kasengsem ing teknologi canggih ing bidang pamblokiran lan pengin cepet entuk kawruh sing ngidini dheweke bisa nindakake karya sing menarik lan janjeni.

Ing ngisor iki sampeyan bakal nemokake tabel isi lan bab pisanan saka buku kasebut (uga ing Litrese pecahan saka buku kasedhiya). Aku ngarep-arep kanggo nampa saran, komentar lan saran. Aku bakal nyoba kanggo njupuk kabeh iki menyang akun nalika nyiapake edition sabanjuré saka buku.

Daftar IsiPambukaBuku kita ditujokake kanggo wong-wong sing pengin ora mung ngerti prinsip pamblokiran Ethereum, nanging uga entuk katrampilan praktis kanggo nggawe DApps sing disebarake ing basa pamrograman Solidity kanggo jaringan iki.

Iku luwih apik ora mung kanggo maca buku iki, nanging kanggo nggarap, nindakake tugas praktis sing diterangake ing pawulangan. Kanggo bisa, sampeyan butuh komputer lokal, server virtual utawa maya kanthi Debian utawa Ubuntu OS diinstal. Sampeyan uga bisa nggunakake Raspberry Pi kanggo nindakake akeh tugas.

Ing wulangan pisanan Kita bakal ndeleng prinsip operasi blockchain Ethereum lan terminologi dhasar, lan uga ngomong babagan ngendi blok kasebut bisa digunakake.

Tujuane wulangan kapindho - nggawe simpul blockchain Ethereum pribadi kanggo kerja luwih lanjut ing kursus iki ing server Ubuntu lan Debian. Kita bakal ndeleng fitur nginstal utilitas dhasar, kayata geth, sing njamin operasi simpul pamblokiran kita, uga daemon panyimpenan data sing didesentralisasi.

wulangan katelu bakal mulang sampeyan carane eksprimen karo Ethereum ing mikrokomputer Raspberry Pi sing murah. Sampeyan bakal nginstal sistem operasi (OS) Rasberian ing Raspberry Pi, utilitas Geth sing nguwasani simpul pamblokiran, lan daemon panyimpenan data desentralisasi Swarm.

Pawulangan papat darmabakti kanggo akun lan unit cryptocurrency ing jaringan Ethereum, uga cara kanggo nransfer dana saka akun siji menyang akun liyane saka konsol Geth. Sampeyan bakal sinau carane nggawe akun, miwiti transaksi transfer dana, lan entuk status transaksi lan kuitansi.

Ing wulangan kaping lima Sampeyan bakal kenal karo kontrak cerdas ing jaringan Ethereum lan sinau babagan eksekusi dening mesin virtual Ethereum.

Sampeyan bakal nggawe lan nerbitake kontrak pinter pisanan sampeyan ing jaringan pribadi Ethereum lan sinau carane nelpon fungsi kasebut. Kanggo nindakake iki, sampeyan bakal nggunakake Remix Solidity IDE. Sampeyan uga bakal sinau carane nginstal lan nggunakake compiler kumpulan solc.
Kita uga bakal ngomong babagan sing diarani Application Binary Interface (ABI) lan mulang sampeyan carane nggunakake.

wulangan kaping enem darmabakti kanggo nggawe skrip JavaScript sing nganggo Node.js lan nindakake operasi kanthi kontrak cerdas Solidity.

Sampeyan bakal nginstal Node.js ing Ubuntu, Debian lan Rasberian OS, nulis skrip kanggo nerbitake kontrak cerdas ing jaringan lokal Ethereum lan nelpon fungsine.

Kajaba iku, sampeyan bakal sinau carane nransfer dana antarane akun biasa nggunakake skrip, uga kredit menyang akun kontrak pinter.

Ing wulangan kapitu Sampeyan bakal sinau carane nginstal lan nggunakake framework Truffle, populer ing antarane pangembang kontrak pinter Solidity. Sampeyan bakal sinau carane nggawe skrip JavaScript sing nelpon fungsi kontrak nggunakake modul truffle-kontrak, lan nyoba kontrak pinter nggunakake Truffle.

wulangan kaping wolu darmabakti kanggo jinis data Solidity. Sampeyan bakal nulis kontrak cerdas sing bisa digunakake karo jinis data kayata integer sing ditandatangani lan ora ditandatangani, nomer sing ditandatangani, string, alamat, variabel kompleks, susunan, enumerasi, struktur, lan kamus.

Ing wulangan kaping sanga Sampeyan bakal dadi siji langkah nyedhaki nggawe kontrak pinter kanggo mainnet Ethereum. Sampeyan bakal sinau carane nerbitake kontrak nggunakake Truffle ing jaringan pribadi Geth, uga ing testnet Rinkeby. Debugging kontrak pinter ing jaringan Rinkeby banget migunani sadurunge nerbitake ing jaringan utama - meh kabeh nyata ana, nanging gratis.

Minangka bagéan saka pawulangan, sampeyan bakal nggawe simpul jaringan test Rinkeby, mbiayai karo dana, lan nerbitaké kontrak pinter.

Wulangan 10 darmabakti kanggo panyimpenan data sing disebarake Ethereum Swarm. Kanthi nggunakake panyimpenan sing disebarake, sampeyan bisa nyimpen akeh data ing pamblokiran Ethereum.

Ing tutorial iki, sampeyan bakal nggawe panyimpenan Swarm lokal, nulis lan maca operasi ing file, lan direktori file. Sabanjure, sampeyan bakal sinau cara nggarap gateway Swarm umum, nulis skrip kanggo ngakses Swarm saka Node.js, uga nggunakake modul Perl Net :: Ethereum :: Swarm.

Tujuan Pelajaran 11 — master nggarap kontrak cerdas Solidity nggunakake basa pemrograman Python sing populer lan kerangka Web3.py. Sampeyan bakal nginstal kerangka, nulis skrip kanggo ngumpulake lan nerbitake kontrak cerdas, lan nelpon fungsine. Ing kasus iki, Web3.py bakal digunakake dhewe lan bebarengan karo lingkungan pangembangan terintegrasi Truffle.

Ing wulangan 12 sampeyan bakal sinau nransfer data antarane kontrak pinter lan donya nyata nggunakake oracles. Iki bakal migunani kanggo sampeyan nampa data saka situs web, piranti IoT, macem-macem piranti lan sensor, lan ngirim data saka kontrak cerdas menyang piranti kasebut. Ing bagean praktis saka pawulangan, sampeyan bakal nggawe oracle lan kontrak pinter sing nampa kurs saiki antarane USD lan rubles saka situs web Bank Sentral Federasi Rusia.

Pelajaran 1. Sedhela babagan blockchain lan jaringan EthereumTujuan pelajaran: kenalan karo prinsip operasi blockchain Ethereum, area aplikasi lan terminologi dhasar.
Tugas praktis: ora kalebu ing wulangan iki.

Ora ana pangembang piranti lunak saiki sing durung krungu babagan teknologi pamblokiran (Blockchain), mata uang kripto (Cryptocurrency utawa Mata Uang Crypto), Bitcoin (Bitcoin), penawaran koin dhisikan (ICO, Penawaran koin awal), kontrak cerdas (Smart Contract), uga konsep lan istilah liyane sing ana gandhengane karo pamblokiran.

Teknologi Blockchain mbukak pasar anyar lan nggawe proyek kanggo programer. Yen sampeyan ngerti kabeh seluk-beluk teknologi cryptocurrency lan teknologi kontrak cerdas, mula sampeyan ora bakal duwe masalah kanggo ngetrapake kawruh kasebut ing praktik.

Perlu dikandhakake manawa ana akeh spekulasi babagan cryptocurrencies lan blockchain. Kita bakal ninggalake diskusi babagan owah-owahan ing tingkat cryptocurrency, nggawe piramida, kerumitan undang-undang cryptocurrency, lan liya-liyane. Ing kursus latihan, kita bakal fokus utamane ing aspek teknis aplikasi kontrak cerdas saka blockchain Ethereum (Ethereum, Ether) lan pangembangan aplikasi sing diarani desentralisasi (Aplikasi Distributed, DApp).

Apa sing diarani blockchain

Blockchain (Block Chain) minangka rantai blok data sing disambungake kanthi cara tartamtu. Ing wiwitan ranté ana blok pisanan, sing diarani blok utama (block genesis) utawa blok genesis. Dipuntedahaken ingkang kaping kalih, lajeng ingkang kaping tiga lan salajengipun.

Kabeh blok data kasebut kanthi otomatis diduplikasi ing pirang-pirang simpul jaringan pamblokiran. Iki njamin panyimpenan desentralisasi data blockchain.
Sampeyan bisa mikir sistem pamblokiran minangka nomer akeh simpul (server fisik utawa virtual) sing disambungake ing jaringan lan niru kabeh owah-owahan ing rantai pamblokiran data. Iki kaya komputer multi-server raksasa, lan node komputer kasebut (server) bisa kasebar ing saindenging jagad. Lan sampeyan uga bisa nambah komputer menyang jaringan blockchain.

Database sing disebarake

Blockchain bisa dianggep minangka basis data sing disebarake sing ditiru ing kabeh simpul jaringan pamblokiran. Ing teori, pamblokiran bakal operasional anggere paling ora siji simpul bisa digunakake, nyimpen kabeh blok pamblokiran.

Registri data sing disebarake

Blockchain bisa dianggep minangka ledger data lan operasi sing disebarake (transaksi). Jeneng liya kanggo register kasebut yaiku buku besar.

Data bisa ditambahake menyang buku gedhe sing disebarake, nanging ora bisa diganti utawa dibusak. Impossibility iki digayuh, utamane, kanthi nggunakake algoritma kriptografi, algoritma khusus kanggo nambah blok menyang rantai lan panyimpenan data desentralisasi.

Nalika nambahake pamblokiran lan nindakake operasi (transaksi), kunci pribadi lan umum digunakake. Dheweke mbatesi pangguna blockchain kanthi mung menehi akses menyang blok data dhewe.

Transaksi

Blockchain nyimpen informasi babagan operasi (transaksi) ing blok. Ing wektu sing padha, transaksi lawas sing wis rampung ora bisa digulung maneh utawa diganti. Transaksi anyar disimpen ing blok anyar sing ditambahake.

Kanthi cara iki, kabeh riwayat transaksi bisa direkam ora owah ing blockchain. Mulane, pamblokiran bisa digunakake, contone, kanggo nyimpen transaksi perbankan kanthi aman, informasi hak cipta, riwayat owah-owahan ing pemilik properti, lsp.

Blockchain Ethereum ngemot negara sistem sing disebut. Nalika transaksi dieksekusi, negara diganti saka negara wiwitan dadi negara saiki. Transaksi dicathet ing blok.

Blockchain umum lan pribadi

Perlu dicathet ing kene yen kabeh sing diomongake mung bener kanggo jaringan pamblokiran umum, sing ora bisa dikontrol dening individu utawa entitas legal, lembaga pemerintah utawa pemerintah.
Jaringan pamblokiran sing disebut pribadi ana ing sangisore kontrol sing nggawe, lan ana apa wae sing bisa ditindakake, contone, panggantos lengkap kabeh blok rantai kasebut.

Aplikasi praktis saka blockchain

Blockchain bisa migunani kanggo apa?

Ing cendhak, pamblokiran ngidini sampeyan nindakake transaksi (transaksi) kanthi aman antarane wong utawa perusahaan sing ora percaya. Data sing direkam ing pamblokiran (transaksi, data pribadi, dokumen, sertifikat, kontrak, invoice, lan liya-liyane) ora bisa dipalsukan utawa diganti sawise direkam. Mulane, adhedhasar pamblokiran, sampeyan bisa nggawe, contone, registri sing disebarake sing dipercaya saka macem-macem jinis dokumen.

Mesthi, sampeyan ngerti yen sistem cryptocurrency digawe kanthi basis pamblokiran, dirancang kanggo ngganti dhuwit kertas biasa. Dhuwit kertas uga diarani fiat (saka Fiat Money).
Blockchain njamin panyimpenan lan immutability transaksi sing dicathet ing blok, mula bisa digunakake kanggo nggawe sistem cryptocurrency. Isine kabeh riwayat transfer dana crypto antarane pangguna (akun) sing beda-beda, lan operasi apa wae bisa dilacak.

Sanajan transaksi ing sistem cryptocurrency bisa dadi anonim, mbatalake cryptocurrency lan ijol-ijolan karo dhuwit fiat biasane nyebabake identitas pemilik aset cryptocurrency.

Kontrak cerdas sing diarani, yaiku piranti lunak sing mlaku ing jaringan Ethereum, ngidini sampeyan ngotomatisasi proses ngrampungake transaksi lan ngawasi implementasine. Iki luwih efektif yen pembayaran kanggo transaksi ditindakake nggunakake mata uang digital Ether.

Kontrak cerdas Ethereum blockchain lan Ethereum sing ditulis ing basa pamrograman Solidity bisa digunakake, contone, ing wilayah ing ngisor iki:

  • alternatif kanggo notarization saka dokumen;
  • panyimpenan saka dhaptar obyek real estate lan informasi babagan transaksi karo obyek real estate;
  • panyimpenan informasi hak cipta ing properti intelektual (buku, gambar, karya musik, etc.);
  • nggawe sistem voting independen;
  • keuangan lan perbankan;
  • logistik ing skala internasional, nelusuri gerakan barang;
  • panyimpenan data pribadhi minangka analog kanggo sistem kertu identitas;
  • transaksi aman ing lapangan komersial;
  • nyimpen asil pemeriksaan medis, uga riwayat prosedur sing diwènèhaké

Masalah karo blockchain

Nanging, mesthine, ora kabeh gampang kaya sing katon!

Ana masalah karo verifikasi data sadurunge ditambahake menyang pamblokiran (contone, apa palsu?), Masalah keamanan sistem lan piranti lunak aplikasi sing digunakake kanggo nggarap pamblokiran, masalah karo kemungkinan nggunakake metode teknik sosial kanggo nyolong akses kanggo dompet cryptocurrency, etc. .P.

Maneh, yen kita ora ngomong babagan blokir umum, simpul sing kasebar ing saindenging jagad, nanging babagan blokir pribadi sing diduweni wong utawa organisasi, mula tingkat kepercayaan ing kene ora bakal luwih dhuwur tinimbang tingkat kepercayaan. ing wong utawa organisasi iki.

Sampeyan uga kudu dianggep yen data sing direkam ing pamblokiran kasedhiya kanggo kabeh wong. Ing pangertèn iki, pamblokiran (utamané umum) ora cocok kanggo nyimpen informasi rahasia. Nanging, kasunyatan manawa informasi babagan pamblokiran ora bisa diganti bisa mbantu nyegah utawa nyelidiki macem-macem jinis kegiatan penipuan.

Aplikasi desentralisasi Ethereum bakal trep yen sampeyan mbayar nggunakake cryptocurrency. Luwih akeh wong sing duwe cryptocurrency utawa gelem tuku, DApps lan kontrak pinter sing luwih populer bakal dadi.

Masalah umum karo pamblokiran sing ngalangi aplikasi praktis kalebu kacepetan winates ing ngendi pamblokiran anyar bisa ditambahake lan biaya transaksi sing relatif dhuwur. Nanging teknologi ing wilayah iki aktif berkembang, lan ana pangarep-arep sing masalah technical bakal ditanggulangi liwat wektu.

Masalah liyane yaiku kontrak cerdas ing pamblokiran Ethereum beroperasi ing lingkungan mesin virtual sing terisolasi, lan ora duwe akses menyang data donya nyata. Utamane, program kontrak cerdas ora bisa maca data saka situs utawa piranti fisik (sensor, kontak, lsp.), lan uga ora bisa ngasilake data menyang piranti eksternal. Kita bakal ngrembug masalah iki lan cara kanggo ngatasi ing pawulangan sing dikhususake kanggo Oracles - perantara informasi saka kontrak cerdas.

Ana uga watesan hukum. Ing sawetara negara, contone, dilarang nggunakake cryptocurrency minangka sarana pembayaran, nanging sampeyan bisa duwe minangka aset digital, kaya sekuritase. Aset kasebut bisa dituku lan didol ing ijol-ijolan. Ing kasus apa wae, nalika nggawe proyek sing bisa digunakake karo cryptocurrencies, sampeyan kudu familiarize dhewe karo undang-undang negara sing dadi yurisdiksi proyek sampeyan.

Carane chain blockchain kawangun

Kaya sing wis dakkandhakake, pamblokiran minangka rantai blok data sing gampang. Pisanan, blok pisanan saka rantai iki dibentuk, banjur sing kapindho ditambahake, lan sateruse. Data transaksi dianggep disimpen ing blok, lan ditambahake menyang blok paling anyar.

Ing Fig. 1.1 kita nuduhake versi paling gampang saka urutan pamblokiran, ing ngendi blok pisanan nuduhake sing sabanjure.

Buku "Nggawe kontrak cerdas Solidity kanggo pamblokiran Ethereum. Panduan praktis"
Gabah. 1.1. Urutan prasaja saka pamblokiran

Nanging kanthi pilihan iki, gampang banget kanggo ngrusak isi blok apa wae ing rantai kasebut, amarga blok kasebut ora ngemot informasi kanggo nglindhungi saka owah-owahan. Ngelingi yen pamblokiran kasebut dimaksudake kanggo digunakake dening wong lan perusahaan sing ora ana kepercayaan, kita bisa nyimpulake yen cara nyimpen data iki ora cocok kanggo pamblokiran kasebut.

Ayo miwiti nglindhungi blok saka pemalsuan. Ing tahap pisanan, kita bakal nyoba kanggo nglindhungi saben blok kanthi checksum (Fig. 1.2).

Buku "Nggawe kontrak cerdas Solidity kanggo pamblokiran Ethereum. Panduan praktis"
Gabah. 1.2. Nambahake proteksi kanggo blok kasebut kanthi checksum

Saiki panyerang ora bisa mung ngganti blok, amarga ngemot checksum data blok. Priksa checksum bakal nuduhake yen data wis diganti.

Kanggo ngetung checksum, sampeyan bisa nggunakake salah sawijining fungsi hashing kayata MD-5, SHA-1, SHA-256, lsp. Fungsi hash ngitung nilai (contone, string teks kanthi dawa konstan) kanthi nindakake operasi sing ora bisa dibatalake ing blok data. Operasi gumantung ing jinis fungsi hash.

Sanajan isi blok data rada owah, nilai hash uga bakal diganti. Kanthi nganalisa nilai fungsi hash, mokal kanggo mbangun maneh blok data sing diwilang.

Apa pangayoman kuwi cukup? Sayange ora.

Ing skema iki, checksum (fungsi hash) mung nglindhungi blok individu, nanging ora kabeh blok. Ngerti algoritma kanggo ngitung fungsi hash, penyerang bisa kanthi gampang ngganti isi blok. Uga, ora ana sing bakal nyegah dheweke mbusak blok saka rantai utawa nambah sing anyar.

Kanggo nglindhungi kabeh chain sakabèhé, sampeyan uga bisa nyimpen ing saben blok, bebarengan karo data, hash data saka blok sadurungé (Fig. 1.3).

Buku "Nggawe kontrak cerdas Solidity kanggo pamblokiran Ethereum. Panduan praktis"
Gabah. 1.3. Tambah hash saka blok sadurunge menyang blok data

Ing skema iki, kanggo ngganti blok, sampeyan kudu ngetung maneh fungsi hash kabeh blok sabanjure. Iku bakal katon, apa masalah?

Ing pamblokiran nyata, kangelan gawean tambahan digawe kanggo nambah pamblokiran anyar-algoritma sing mbutuhake akeh sumber daya komputasi digunakake. Menimbang manawa kanggo nggawe owahan ing blok, sampeyan kudu ngetung maneh ora mung blok siji iki, nanging kabeh blok sabanjure, iki bakal angel banget ditindakake.

Ayo kita uga elinga yen data pamblokiran disimpen (duplikat) ing akeh node jaringan, yaiku. Panyimpenan desentralisasi digunakake. Lan iki ndadekake luwih angel kanggo palsu pemblokiran, amarga owah-owahan kudu digawe kanggo kabeh simpul jaringan.

Wiwit pamblokiran nyimpen informasi babagan pemblokiran sadurunge, sampeyan bisa mriksa isi kabeh blok ing rantai kasebut.

pamblokiran Ethereum

Blockchain Ethereum minangka platform sing bisa disebarake DApps. Ora kaya platform liyane, Ethereum ngidini panggunaan kontrak cerdas (kontrak cerdas), sing ditulis ing basa pamrograman Solidity.

Platform iki digawe ing 2013 dening Vitalik Buterin, pangadeg Majalah Bitcoin, lan diluncurake ing 2015. Kabeh sing bakal kita sinau utawa ditindakake ing kursus latihan kita ana hubungane khusus karo kontrak cerdas Ethereum blockchain lan Solidity.

Mining utawa carane pamblokiran digawe

Pertambangan minangka proses sing rada rumit lan intensif sumber daya kanggo nambah blok anyar menyang rantai pamblokiran, lan dudu "penambangan cryptocurrency." Pertambangan njamin fungsi pamblokiran, amarga proses iki sing tanggung jawab kanggo nambah transaksi menyang pamblokiran Ethereum.

Wong lan organisasi sing melu nambah blok diarani penambang.
Piranti lunak sing mlaku ing simpul penambang nyoba nemokake parameter hashing sing diarani Nonce kanggo blok pungkasan kanggo entuk nilai hash tartamtu sing ditemtokake dening jaringan. Algoritma hashing Ethash sing digunakake ing Ethereum ngidini sampeyan entuk nilai Nonce mung liwat panelusuran urutan.

Yen simpul penambang nemokake nilai Nonce sing bener, mula iki sing diarani bukti kerja (PoW, Proof-of-work). Ing kasus iki, yen blok ditambahake menyang jaringan Ethereum, penambang nampa ganjaran tartamtu ing mata uang jaringan - Ether. Ing wektu nulis, ganjaran 5 Ether, nanging iki bakal suda liwat wektu.

Mangkono, penambang Ethereum njamin operasi jaringan kanthi nambah pamblokiran, lan nampa dhuwit cryptocurrency kanggo iki. Ana akeh informasi ing internet babagan penambang lan pertambangan, nanging kita bakal fokus ing nggawe kontrak Solidity lan DApps ing jaringan Ethereum.

Ringkesan pelajaran

Ing pawulangan pisanan, sampeyan wis kenal karo pamblokiran lan sinau manawa iki minangka urutan blok sing disusun khusus. Isi pamblokiran sing direkam sadurunge ora bisa diganti, amarga iki mbutuhake ngetung kabeh blok sabanjure ing akeh simpul jaringan, sing mbutuhake akeh sumber daya lan wektu.

Blockchain bisa digunakake kanggo nyimpen asil transaksi. Tujuan utamane yaiku ngatur transaksi aman antarane pihak (wong lan organisasi) sing ora ana kepercayaan. Sampeyan sinau babagan area bisnis tartamtu lan ing wilayah sing bisa digunakake kanggo kontrak cerdas Ethereum blockchain lan Solidity. Iki minangka sektor perbankan, registrasi hak properti, dokumen, lsp.

Sampeyan uga sinau manawa macem-macem masalah bisa muncul nalika nggunakake pamblokiran. Iki minangka masalah verifikasi informasi sing ditambahake ing pamblokiran, kacepetan pamblokiran, biaya transaksi, masalah ijol-ijolan data antarane kontrak cerdas lan donya nyata, uga serangan potensial dening panyerang sing ngarahake nyolong dana cryptocurrency saka akun pangguna. .

Kita uga sedhela ngomong babagan pertambangan minangka proses nambah blok anyar menyang pamblokiran. Mining perlu kanggo ngrampungake transaksi. Sing melu pertambangan njamin fungsi pamblokiran lan nampa ganjaran ing cryptocurrency kanggo iki.

Pelajaran 2. Nyiapake lingkungan kerja ing Ubuntu lan Debian OSMilih sistem operasi
Nginstal keperluan sing dibutuhake
Nginstal Geth lan Swarm ing Ubuntu
Nginstal Geth lan Swarm ing Debian
Persiyapan awal
Ngundhuh distribusi Go
Nyetel variabel lingkungan
Priksa versi Go
Nginstal Geth lan Swarm
Nggawe blockchain pribadi
Nyiyapake file genesis.json
Nggawe direktori kanggo karya
Nggawe akun
Miwiti initialization simpul
Pilihan Bukak Node
Sambungake menyang simpul kita
Manajemen pertambangan lan mriksa imbangan
Mateni konsol Geth
Ringkesan pelajaran

Pelajaran 3. Nyiapake lingkungan kerja ing Raspberry Pi 3Nyiyapake Raspberry Pi 3 kanggo kerja
Nginstal Rasberian
Nginstal nganyari
Ngaktifake Akses SSH
Nyetel Alamat IP Statis
Nginstal keperluan sing dibutuhake
Nginstal Go
Ngundhuh distribusi Go
Nyetel variabel lingkungan
Priksa versi Go
Nginstal Geth lan Swarm
Nggawe blockchain pribadi
Priksa akun lan imbangan
Ringkesan pelajaran

Pelajaran 4. Akun lan transfer dana antarane akunNdeleng lan nambah akun
Deleng dhaptar akun
Nambahake akun
opsi printah akun geth
Sandi akun
Cryptocurrency ing Ethereum
Unit Mata Uang Ethereum
Kita nemtokake imbangan saiki akun kita
Transfer dana saka siji akun menyang akun liyane
eth.sendTransaction method
Ndeleng status transaksi
Kuitansi transaksi
Ringkesan pelajaran

Pelajaran 5. Nerbitake kontrak pisanan sampeyanKontrak cerdas ing Ethereum
Eksekusi Kontrak Smart
Mesin Virtual Ethereum
Lingkungan pangembangan terintegrasi Remix Solidity IDE
Running kompilasi
Fungsi Kontrak Telpon
Nerbitake kontrak ing jaringan pribadi
Entuk definisi ABI lan kode binar kontrak
Publikasi kontrak
Priksa status transaksi nerbitake kontrak
Fungsi Kontrak Telpon
Batch compiler solc
Nginstal solc ing Ubuntu
Nginstal solc ing Debian
Nglumpukake kontrak HelloSol
Publikasi kontrak
Nginstal solc ing Rasberian
Ringkesan pelajaran

Pelajaran 6. Kontrak cerdas lan Node.jsNginstal Node.js
Instalasi ing Ubuntu
Instalasi ing Debian
Nginstal lan mbukak Ganache-cli
Instalasi Web3
Nginstal solc
Nginstal Node.js ing Rasberian
Skrip kanggo entuk dhaptar akun ing konsol
Skrip kanggo nerbitake kontrak cerdas
Bukak lan entuk paramèter
Entuk opsi peluncuran
Kompilasi Kontrak
Mbukak kunci akun sampeyan
Loading ABI lan kontrak kode binar
Ngira-ngira jumlah gas sing dibutuhake
Nggawe obyek lan miwiti nerbitake kontrak
Nglakokake skrip penerbitan kontrak
Telpon fungsi kontrak pinter
Apa bisa nganyari kontrak pinter sing diterbitake?
Nggarap Web3 versi 1.0.x
Njupuk dhaptar akun
Publikasi kontrak
Fungsi Kontrak Telpon
Transfer dana saka siji akun menyang akun liyane
Transfer dana menyang akun kontrak
Nganyari kontrak pinter HelloSol
Gawe skrip kanggo ndeleng imbangan akun sampeyan
Tambah telpon kanggo fungsi getBalance kanggo script call_contract_get_promise.js
Kita ngisi akun kontrak cerdas
Ringkesan pelajaran

wulangan 7. Pambuka kanggo TruffleNginstal Truffle
Nggawe proyek HelloSol
Nggawe Direktori Proyek lan File
Direktori kontrak
Migrasi Katalog
Tes direktori
file truffle-config.js
Nglumpukake kontrak HelloSol
Miwiti nerbitake kontrak
Nelpon Fungsi Kontrak HelloSol ing Prompt Truffle
Nelpon HelloSol kontrak fungsi saka script JavaScript mlaku Node.js
Nginstal modul truffle-kontrak
Nelpon fungsi kontrak getValue lan getString
Fungsi kontrak nelpon setValue lan setString
Modifikasi kontrak lan publikasi maneh
Nggarap Web3 versi 1.0.x
Nggawe owah-owahan ing kontrak pinter HelloSol
Scripts kanggo nelpon cara kontrak
Testing ing Truffle
Tes soliditas
tes JavaScript
Ringkesan pelajaran

Wulangan 8. Jinis Data SoliditasKontrak kanggo sinau jinis data
Tipe data Boolean
Unsigned integers lan signed integers
Nomer titik tetep
Alamat
Variabel saka jinis kompleks
Fixed Size Arrays
Susunan dinamis
Enumerasi
Struktur
Pemetaan kamus
Ringkesan pelajaran

Pelajaran 9. Migrasi kontrak menyang jaringan pribadi lan menyang jaringan RinkebyNerbitake kontrak saka Truffle menyang jaringan Geth pribadi
Nyiyapake simpul jaringan pribadi
Nyiapake kontrak kanggo karya
Kompilasi lan migrasi kontrak menyang jaringan Truffle
Miwiti migrasi jaringan lokal geth
Njupuk artefak Truffle
Nerbitake kontrak saka Truffle menyang testnet Rinkeby
Nyiyapake simpul Geth kanggo nggarap Rinkeby
Sinkronisasi simpul
Nambahake akun
Top munggah akun Rinkeby karo ether
Migrasi kontrak mbukak menyang jaringan Rinkeby
Ndeleng informasi kontrak ing jaringan Rinkeby
Truffle Console kanggo Rinkeby Network
Cara sing luwih gampang kanggo nelpon fungsi kontrak
Nelpon cara kontrak nggunakake Node.js
Transfer dana antarane akun ing console Truffle kanggo Rinkby
Ringkesan pelajaran

Pelajaran 10. Panyimpenan Data Terdesentralisasi Ethereum SwarmKepiye cara kerja Ethereum Swarm?
Nginstal lan miwiti Swarm
Operasi karo file lan direktori
Ngunggah File menyang Ethereum Swarm
Maca file saka Ethereum Swarm
Deleng manifest file sing diunggah
Loading direktori karo subdirektori
Maca file saka direktori sing diundhuh
Nggunakake gateway Swarm umum
Ngakses Swarm saka skrip Node.js
Perl Net :: Ethereum :: modul Swarm
Nginstal Net :: Ethereum :: modul Swarm
Nulis lan maca data
Ringkesan pelajaran

Pelajaran 11. Framework Web3.py kanggo nggarap Ethereum ing PythonNginstal Web3.py
Nganyari lan nginstal paket sing dibutuhake
Nginstal modul easysolc
Nerbitake kontrak nggunakake Web3.py
Kompilasi Kontrak
Nyambung menyang panyedhiya
Nglakokaké publikasi kontrak
Nyimpen alamat kontrak lan abi ing file
Nglakokake skrip penerbitan kontrak
Metode Kontrak Telpon
Maca alamat lan abi kontrak saka file JSON
Nyambung menyang panyedhiya
Nggawe Obyek Kontrak
Metode Kontrak Telpon
Truffle lan Web3.py
Ringkesan pelajaran

Wulangan 12. OraclesApa kontrak pinter bisa dipercaya data saka donya njaba?
Oracles minangka perantara informasi blockchain
Sumber data
Kode kanggo makili data saka sumber
Oracle kanggo ngrekam kurs ing blockchain
Kontrak USDRateOracle
Nganyari kurs ing kontrak cerdas
Nggunakake Web Socket Provider
Nunggu acara RateUpdate
Nangani acara RateUpdate
Miwiti nganyari data ing kontrak pinter
Ringkesan pelajaran

Source: www.habr.com

Add a comment