Tutorial Ethereum - Melihat Lebih Dalam ke Ethereum!



Tutorial Ethereum ini menjelaskan Ethereum dari sudut pandang arsitektur dan juga bagaimana Ethereum menjadi platform terhebat untuk membangun DAPPS dan DAO.

Ethereum Tutorial:

Di blog Tutorial Ethereum ini, saya akan menjelaskan cara kerja bagian dalam arsitektur ethereum dan saya juga akan menunjukkan kepada Anda penerapan ethereum melalui kontrak pintar .

Saya melihat Ethereum sebagai blockchain yang dapat diprogram yang akan melayani sebagian besar perusahaan B2C di masa depan. Ethereum memberi pengembang kebebasan untuk membuat model kompleks untuk dieksekusi di blockchain, alih-alih membatasi mereka pada operasi yang telah ditentukan seperti blockchain Bitcoin.





Dengan pendekatan ini, Ethereum telah mengubah dirinya menjadi platform untuk sejumlah besar aplikasi dan organisasi terdesentralisasi yang mencakup, tetapi tidak terbatas pada mata uang kripto.

Saya akan membahas berbagai topik secara lengkap melalui blog 'Tutorial Ethereum' ini. Topik-topik ini meliputi:



Anda dapat melalui rekaman Tutorial Ethereum ini di mana instruktur kami telah menjelaskan topik secara rinci dengan yang akan membantu Anda memahami konsep ini dengan lebih baik.

Tutorial Ethereum | Kontrak Cerdas Ethereum | Edureka

Tutorial Ethereum: Akun Ethereum

Jaringan Ethereum memiliki dua jenis akun, yaitu:



  • Akun Eksternal
  • Akun Kontrak

Akun-akun ini, baik Eksternal dan Kontrak disebut sebagai 'objek negara' dan terdiri dari 'status' jaringan ethereum. Setiap objek status memiliki status yang terdefinisi dengan baik. Untuk akun eksternal, status terdiri dari saldo akun sedangkan untuk akun kontrak negara ditentukan oleh penyimpanan dan saldo memori.

Saya akan merujuk ke akun eksternal hanya sebagai akun. Akun ini dimiliki oleh diwakili oleh agen eksternal jaringan yang mencakup setiap pengguna biasa, penambang, agen otomatis, dll.

Akun ini biasanya dikontrol dengan bantuan algoritma kriptografi kunci publik seperti RSA. Tujuan utama akun Eksternal adalah berfungsi sebagai media bagi pengguna untuk berinteraksi dengan Ethereum Blockchain.

Akun kontrak, di sisi lain, adalah kumpulan kode yang berada di blockchain di alamat tertentu. Kontrak ini dipanggil oleh akun eksternal, atau oleh kontrak lain melalui fungsi ajakan bertindak tertentu. Kontrak ini ditulis dalam bahasa skrip tingkat tinggi seperti Solidity, Serpent, atau LLL. Setiap kontrak yang berada di ethereum blockchain disimpan dalam format tertentu yang disebut bytecode EVM (Ethereum Virtual Machine) yang merupakan format biner khusus ethereum.

Akan adil jika saya menjelaskan EVM sekarang setelah saya memberi tahu Anda tentang EVM-bytecode.

Tutorial Ethereum: Mesin Virtual Ethereum

Ethereum, dengan cara yang sederhana, mendefinisikan satu set protokol umum yang telah menjadi pilar pengembangan aplikasi terdesentralisasi. Inti dari ini, terletak Mesin Virtual Ethereum. Gambar di bawah menjelaskan arsitekturnya:

Arsitektur Ethereum - Tutorial Ethereum - Edureka

Penting untuk dicatat bahwa, Mesin Virtual Ethereum tidak hanya sepenuhnya di-sandbox, tetapi juga sepenuhnya diisolasi. Ini berarti bahwa kode yang sedang berjalan di EVM tidak memiliki akses ke jaringan atau sistem file dan dapat dengan hemat mengakses kontrak lain.

Sekarang setelah kita memahami inti dari platform, mari kita lihat lebih dalam pada node jaringan.

Tutorial Ethereum: Jaringan Ethereum

Jaringan ethereum adalah jaringan blockchain publik. Ini membentuk dasar dari semua aplikasi dan organisasi peer-to-peer terdesentralisasi yang berjalan di jaringan. Jaringan terdiri dari dua jenis node yaitu, node penuh dan node ringan.

Node penuh berisi seluruh riwayat transaksi sejak blok genesis. Mereka adalah bukti lengkap dari integritas jaringan blockchain. Node penuh harus berisi setiap transaksi yang telah diverifikasi sesuai dengan aturan yang ditetapkan oleh spesifikasi Ethereum.

Node berbobot ringan di sisi lain hanya berisi sebagian dari seluruh blockchain. Jenis node ini sebagian besar digunakan dalam e-wallet yang harus bersifat ringan dan karenanya seluruh blockchain tidak dapat disimpan di dalamnya. Node ini, sebaliknya, tidak memverifikasi setiap blok atau transaksi dan mungkin tidak memiliki salinan status blockchain saat ini. Mereka mengandalkan node penuh untuk memberi mereka detail yang hilang (atau hanya kekurangan fungsionalitas tertentu). Keuntungan dari light node adalah bahwa mereka dapat bangun dan berjalan jauh lebih cepat, dapat berjalan pada perangkat yang lebih komputasi / memori terbatas, dan tidak menghabiskan banyak penyimpanan.

Setiap blockchain publik memiliki mata uang yang menyertainya. Ethereum tidak berbeda. Mari kita lihat lebih dalam cryptocurrency Ethereum.

ansible vs puppet vs chef

Tutorial Ethereum: Eter dan Gas

Ether adalah nama mata uang kripto yang digunakan untuk membayar transaksi di jaringan ethereum. Selain untuk membayar transaksi dan layanan umum, Ether juga digunakan untuk membeli Gas, yang kemudian digunakan untuk membayar komputasi dalam EVM.

Eter adalah unit metrik dan memiliki banyak denominasi yang membantu pembayaran transaksi dan gas secara akurat. Denominasi terkecil a.k.a unit dasar disebut Wei. Denominasi beserta nama spesifiknya dapat dilihat pada tabel di bawah ini:

UnitNilai WeiWei
wei1 weisatu
Kwei1e3 wei1.000
Mwei1e6 wei1.000.000
Merajut1e9 wei1.000.000.000
microEther1e12 wei1.000.000.000.000
milliEther1e15 wei1.000.000.000.000.000
Eter1e18 wei1.000.000.000.000.000.000

Seperti yang telah dibahas sebelumnya, kita tahu bahwa EVM bertanggung jawab untuk menjalankan kode yang digunakan di jaringannya. Jadi, apa yang menghentikan seseorang untuk menjalankan loop tak terbatas pada EVM dan membebani memori sepenuhnya? Di sinilah konsep Gas masuk.

Gas digunakan sebagai metrik untuk membayar sumber daya komputasi di jaringan. Setiap kontrak di jaringan memiliki jumlah gas maksimum yang dapat digunakan untuk penghitungannya. Ini dikenal sebagai ' Batas Gas Istilah gas terkait lainnya adalah sebagai berikut:

  • Harga Gas : Ini adalah biaya gas dalam hal token seperti Ether dan denominasi lainnya. Untuk menstabilkan nilai gas, Harga Gas adalah nilai mengambang sehingga jika harga token atau mata uang berfluktuasi, Harga Gas berubah untuk mempertahankan nilai riil yang sama.
  • Biaya Gas : Ini secara efektif adalah jumlah Gas yang perlu dibayar untuk menjalankan transaksi atau program tertentu (disebut kontrak).

Oleh karena itu, jika seseorang mencoba menjalankan sepotong kode yang berjalan selamanya, kontrak tersebut pada akhirnya akan melebihi batas gasnya dan seluruh transaksi yang meminta kontrak tersebut akan dikembalikan ke keadaan sebelumnya.


Sekarang setelah kita mengetahui tentang mata uang, mari kita lihat proses yang menghasilkan mata uang baru.

Tutorial Ethereum: Menambang

Ethereum, seperti teknologi blockchain publik lainnya memastikan keamanan melalui model berbasis insentif. Ini disebut mekanisme bukti kerja. Gambar di bawah ini menunjukkan cara kerja penambangan ethereum:

Dari perspektif yang lebih teknis, algoritma proof-of-work yang digunakan disebut Ethash, yang merupakan algoritma hashing yang terinspirasi oleh Algoritma Dagger-Hashimoto.

Sekarang kita telah melihat arsitektur ethereum yang berfungsi dan membahas elemen esensial itu, mari kita lihat masalah dunia nyata dan pendekatan ethereum untuk menyelesaikannya.

Tutorial Ethereum: Kasus Penggunaan Pendanaan Massal Terdesentralisasi

Pernyataan masalah : 'Ide' yang baik bukanlah segalanya di dunia saat ini untuk memulai bisnis yang sukses. Banyak dana dan upaya dibutuhkan untuk mengimplementasikan sebuah ide. Di sinilah organisasi seperti 'Kickstarter' muncul. Mereka menyediakan proyek dengan eksposur publik yang diperlukan untuk sumbangan terhadap proyek mereka untuk menjalankannya, tetapi arsitektur terpusat dari motif semacam itu memiliki kelemahan, terutama dalam cara pemberian hadiah. Karena otoritas terpusat membuat semua keputusan, sistem rentan terhadap aturan seperti:

buat instance ec2 dari snapshot
  • siapa pun yang melewatkan tenggat waktu kampanye tidak dapat masuk lagi
  • donor mana pun yang berubah pikiran tidak dapat keluar

Pendekatan :

Kami menggunakan metodologi desentralisasi untuk mengatasi masalah seperti yang dijelaskan pada gambar di bawah ini:

Larutan :

Berikut adalah kontrak pintar soliditas untuk pernyataan masalah di atas.

pragma solidity ^ 0.4.16 token antarmuka {transfer fungsi (penerima alamat, jumlah uint)} kontrak Crowdsale {alamat penerima publik uint pendanaan publik Tujuan uint publik jumlah Ditingkatkan batas waktu publik uint token harga publik token publik Pemetaan hadiah (alamat => uint256) saldo publikOf bool fundingGoalReached = false bool crowdsaleClosed = false acara GoalReached (alamat penerima, uint totalAmountRaised) acara FundTransfer (penyokong alamat, jumlah uint, bool isContribution) / ** * Fungsi pembina * * Siapkan pemilik * / fungsi Crowdsale (alamat ifSuccessfulSendTo // alamat pemilik jika pendanaan berhasil uint fundingGoalInEthers // jumlah target untuk meningkatkan durasi uintInMinutes // waktu yang diberikan uint etherCostOfEachToken // biaya ekuitas di alamat alamat eter addressOfTokenUsedAsReward // alamat token) {beneficiary = ifSuccessfulSendTo fundingGoal = fundingGoalInEthers * sekarang 1 ether deadline = sekarang + durasiInMinutes * 1 menit harga = etherCostOfEachToken * 1 eter ke kenReward = token (addressOfTokenUsedAsReward)} / ** * Fungsi fallback * * Fungsi tanpa nama adalah fungsi default yang dipanggil setiap kali ada yang mengirim dana ke kontrak * / function () hutang {membutuhkan (! crowdsaleClosed) uint amount = msg. nilai balanceOf [msg.sender] + = jumlah jumlahRaised + = jumlah tokenReward.transfer (msg.sender, jumlah / harga) FundTransfer (msg.sender, jumlah, true)} pengubah afterDeadline () {if (now = fundingGoal) {fundingGoalReached = true GoalReach (penerima, jumlahRaised)} crowdsaleClosed = true} / ** * Menarik dana * * Memeriksa untuk melihat apakah tujuan atau batas waktu telah tercapai, dan jika demikian, dan tujuan pendanaan tercapai, * mengirimkan seluruh jumlah kepada penerima. Jika tujuan tidak tercapai, setiap kontributor dapat menarik * jumlah yang mereka kontribusikan. * / function safeWithdrawal () afterDeadline {if (! fundingGoalReached) {uint amount = balanceOf [msg.sender] balanceOf [msg.sender] = 0 if (jumlah> 0) {if (msg.sender.send (jumlah)) { Transfer Dana (pengirim pesan, jumlah, salah)} lain {balanceOf [msg.sender] = jumlah}}} if (fundingGoalReached && beneficiary == msg.sender) {if (beneficiary.send (amountRaised)) {FundTransfer (penerima, jumlahRaised, false)} lain {// Jika kami gagal mengirim dana ke penerima, buka saldo penyandang dana fundingGoalReached = false}}}}

Jika Anda tertarik untuk mempelajari soliditas, lihat blog kami di , yang digunakan untuk mengembangkandipersonalisasikontrak pintar.

Jika Anda ingin mempelajari Blockchain dan membangun karier di Teknologi Blockchain, lihat kami yang dilengkapi dengan pelatihan langsung yang dipimpin instruktur dan pengalaman proyek kehidupan nyata. Pelatihan ini akan membantu Anda memahami Blockchain secara mendalam dan membantu Anda mencapai penguasaan atas subjek tersebut.

Ada pertanyaan untuk kami? Silakan sebutkan di bagian komentar dan kami akan menghubungi Anda kembali secepatnya.