Tutorial Ethereum - Pandangan Lebih Dalam ke Ethereum!



Tutorial Ethereum ini menerangkan Ethereum dari sudut seni bina dan juga bagaimana ia menjadikan platform terbaik untuk membina DAPPS dan DAO.

Ethereum Tutorial:

Dalam blog Ethereum Tutorial ini, saya akan menerangkan cara kerja dalaman seni bina ethereum dan saya juga akan menunjukkan kepada anda pelaksanaan ethereum melalui kaedah ringkas kontrak pintar .

Saya melihat Ethereum sebagai blockchain yang dapat diprogramkan yang akan melayani sebahagian besar syarikat B2C pada masa akan datang. Ethereum memberi kebebasan kepada para pembangun untuk membuat model yang kompleks untuk dilaksanakan pada blockchain, dan bukannya menyekatnya pada operasi yang telah ditentukan seperti blockchain Bitcoin.





menyusun susunan c ++

Dengan pendekatan ini, Ethereum telah berubah menjadi platform untuk banyak aplikasi dan organisasi yang terdesentralisasi yang merangkumi, tetapi tidak terhad kepada mata wang kripto.

Saya akan membahas pelbagai topik secara menyeluruh melalui menjalankan blog 'Ethereum Tutorial' ini. Topik-topik ini merangkumi:



Anda boleh melalui rakaman Tutorial Ethereum ini di mana pengajar kami telah menerangkan topik secara terperinci dengan yang akan membantu anda memahami konsep ini dengan lebih baik.

Tutorial Ethereum | Kontrak Pintar Ethereum | Edureka

Tutorial Ethereum: Akaun Ethereum

Rangkaian Ethereum mempunyai dua jenis akaun, iaitu:



  • Akaun Luaran
  • Akaun Kontrak

Akaun ini, baik Luar dan Kontrak disebut sebagai 'objek negara' dan terdiri dari 'keadaan' jaringan ethereum. Setiap objek keadaan mempunyai keadaan yang jelas. Untuk akaun luaran, keadaan terdiri daripada baki akaun sementara untuk akaun kontrak negeri ditentukan oleh penyimpanan memori dan baki.

Saya akan merujuk kepada akaun luaran hanya sebagai akaun. Akaun ini dimiliki oleh diwakili oleh ejen luaran rangkaian yang merangkumi setiap pengguna biasa, pelombong, ejen automatik, dll.

Akaun ini umumnya dikendalikan dengan bantuan algoritma kriptografi kunci awam seperti RSA. Tujuan utama akaun Luaran adalah untuk berfungsi sebagai media untuk pengguna berinteraksi dengan Ethereum Blockchain.

Akaun kontrak, sebaliknya, adalah kumpulan kod yang terdapat di blockchain pada alamat tertentu. Kontrak ini dipanggil oleh akaun luaran, atau oleh kontrak lain melalui fungsi ajakan bertindak tertentu. Kontrak ini ditulis dalam bahasa skrip peringkat tinggi seperti Solidity, Serpent atau LLL. Setiap kontrak yang terdapat pada ethereum blockchain disimpan dalam format tertentu yang dipanggil EVM (Ethereum Virtual Machine) bytecode yang merupakan format binari khusus ethereum.

Cukup adil jika saya menerangkan EVM sekarang kerana saya telah memberitahu anda mengenai EVM-bytecode.

Tutorial Ethereum: Mesin Maya Ethereum

Ethereum, secara pedesaan, menentukan satu set protokol umum yang telah menjadi tonggak pengembangan aplikasi terdesentralisasi. Inti dari ini, terdapat Mesin Maya Ethereum. Gambar di bawah menerangkan seni bina:

Senibina Ethereum - Tutorial Ethereum - Edureka

Penting untuk diperhatikan bahawa, Mesin Maya Ethereum bukan sahaja kotak pasir sepenuhnya, tetapi juga terpencil sepenuhnya. Ini bermaksud bahawa kod yang sedang berjalan di EVM tidak memiliki akses ke rangkaian atau sistem file dan dapat mengakses kontrak lain dengan hemat.

Sekarang setelah kita memahami inti platform, mari kita lihat node rangkaian dengan lebih mendalam.

Tutorial Ethereum: Rangkaian Ethereum

Rangkaian ethereum adalah rangkaian blockchain awam. Ini membentuk asas bagi semua aplikasi dan organisasi peer-to-peer yang terdesentralisasi yang dijalankan di rangkaian. Rangkaian ini terdiri daripada dua jenis nod iaitu, nod penuh dan simpul ringan.

Nod penuh mengandungi keseluruhan sejarah transaksi sejak blok genesis. Ini adalah bukti lengkap mengenai integriti rangkaian blockchain. Node penuh harus mengandungi setiap transaksi yang telah disahkan mengikut peraturan yang ditetapkan oleh spesifikasi Ethereum.

Nod ringan sebaliknya hanya mengandungi sebahagian daripada keseluruhan blockchain. Jenis nod ini kebanyakannya digunakan dalam e-dompet yang sifatnya ringan dan oleh itu keseluruhan blockchain tidak dapat disimpan di dalamnya. Node ini, sebaliknya, tidak mengesahkan setiap blok atau transaksi dan mungkin tidak mempunyai salinan keadaan blockchain semasa. Mereka bergantung pada node penuh untuk memberikan mereka butiran yang hilang (atau hanya kekurangan fungsi tertentu). Kelebihan simpul cahaya ialah mereka dapat bangun dan berjalan dengan lebih cepat, dapat berjalan pada perangkat yang lebih terkira / memori, dan tidak menghabiskan hampir penyimpanan.

Setiap blockchain awam mempunyai mata wang yang melekat padanya. Ethereum tidak berbeza. Mari kita lihat lebih mendalam mengenai cryptocurrency Ethereum.

Tutorial Ethereum: Ether dan Gas

Ether adalah nama mata wang kripto yang digunakan untuk membayar transaksi di rangkaian ethereum. Selain membayar untuk transaksi dan perkhidmatan umum, Ether juga digunakan untuk membeli Gas, yang pada gilirannya digunakan untuk membayar perhitungan dalam EVM.

Ether adalah unit metrik dan mempunyai banyak nilai yang membantu membayar transaksi dan gas dengan tepat. Unit asas a.k.a denominasi terkecil dipanggil Wei. Denominasi dan nama khasnya dapat dilihat pada jadual di bawah:

UnitNilai WeiWei
wei1 weisatu
Kwei1e3 wei1,000
Mwei1e6 wei1,000,000
Bersatu1e9 wei1,000,000,000
mikroEter1e12 wei1,000,000,000,000
milliEther1e15 wei1,000,000,000,000,000
Eter1e18 wei1,000,000,000,000,000,000

Seperti yang telah dibincangkan sebelumnya, kita tahu bahawa EVM bertanggungjawab untuk menjalankan kod yang disebarkan di rangkaiannya. Oleh itu, apa yang menghalang seseorang daripada menjalankan gelung tanpa had pada EVM dan benar-benar memuatkan ingatannya? Di sinilah konsep Gas masuk.

Gas digunakan sebagai metrik untuk membayar sumber komputasi di rangkaian. Setiap kontrak di rangkaian mempunyai jumlah maksimum gas yang dapat digunakan untuk pengiraannya. Ini dikenali sebagai ' Had Gas Istilah gas lain yang berkaitan adalah seperti berikut:

  • Harga Gas : Ini adalah kos gas dari segi token seperti Ether dan denominasinya yang lain. Untuk menstabilkan nilai gas, Harga Gas adalah nilai terapung sehingga jika kos token atau mata wang berubah-ubah, Harga Gas berubah untuk mengekalkan nilai nyata yang sama.
  • Bayaran Gas : Ini adalah jumlah Gas yang perlu dibayar untuk menjalankan transaksi atau program tertentu (disebut kontrak).

Oleh itu, jika seseorang cuba menjalankan sekeping kod yang berjalan selama-lamanya, kontrak akhirnya akan melebihi had gasnya dan keseluruhan urus niaga yang menggunakan kontrak akan dikembalikan ke keadaan sebelumnya.


Setelah mengetahui tentang mata wang, mari kita lihat proses menghasilkan mata wang baru.

Tutorial Ethereum: Perlombongan

Ethereum, seperti teknologi blockchain awam yang lain memastikan keselamatan melalui model berasaskan insentif. Ini dipanggil mekanisme bukti kerja. Gambar di bawah menunjukkan bagaimana perlombongan ethereum berfungsi:

Dari perspektif yang lebih teknikal, algoritma proof-of-work yang digunakan dipanggil Ethash, yang merupakan algoritma hashing yang diilhamkan oleh Algoritma Dagger-Hashimoto.

Sekarang kita telah melihat seni bina ethereum yang berfungsi dan membincangkan elemen pentingnya, mari kita lihat masalah dunia nyata dan pendekatan ethereum untuk menyelesaikannya.

Tutorial Ethereum: Kes Penggunaan Pendanaan Orang Ramai yang Terdesentralisasi

Pernyataan masalah : 'Idea' yang baik bukanlah segala-galanya dalam dunia hari ini untuk memulakan perniagaan yang berjaya. Banyak dana dan usaha diperlukan untuk menerapkan idea. Di sinilah organisasi seperti 'Kickstarter' masuk ke dalam gambar. Mereka memberikan projek dengan pendedahan kepada masyarakat yang diperlukan untuk sumbangan terhadap projek mereka agar dapat berjalan, tetapi seni bina yang berpusat pada motif semacam itu mempunyai kelemahan, terutama dalam cara penghargaan diberikan. Oleh kerana pihak berkuasa berpusat membuat semua keputusan, sistem terdedah kepada peraturan seperti:

  • sesiapa yang terlepas tarikh akhir kempen tidak boleh masuk lagi
  • mana-mana penderma yang berubah fikiran tidak dapat keluar

Pendekatan :

Kami menggunakan metodologi yang terdesentralisasi untuk mengatasi masalah seperti yang dijelaskan dalam gambar di bawah:

perbezaan antara override dan overload

Penyelesaian :

Berikut adalah kontrak pintar padu untuk penyataan masalah di atas.

pragma solidity ^ 0.4.16 token antara muka {transfer function (penerima alamat, jumlah uint)} kontrak Crowdsale {alamat benefisiari awam uint pendanaan awamGoal uint jumlah awamAnggaran tarikh akhir awam uint token harga awam token awamPetaan ganjaran (alamat => uint256) baki awamObool pembiayaanGoalReached = false bool crowdsaleClosed = false event GoalReached (penerima alamat, uint totalAmountRaised) acara FundTransfer (penyokong alamat, jumlah uint, bool isContribution) / ** * Fungsi konstruktor * * Siapkan pemilik * / fungsi Crowdsale (alamat ifSuccessfulSendTo // alamat pemilik apabila pembiayaan berjaya uint pendanaanGoalInEther // jumlah sasaran untuk meningkatkan tempoh uintInMinutes // diberi masa uint etherCostOfEachToken // kos ekuiti dalam alamat alamat eterOfTokenUsedAsReward // alamat token) {beneficier = ifSuccessfulSendTo pendanaanGoal = pembiayaanGoalInEther * 1 sekarang + tempohInminit * harga 1 minit = etherCostOfEachToken * 1 eter ke kenReward = token (addressOfTokenUsedAsReward)} / ** * Fungsi fallback * * Fungsi tanpa nama adalah fungsi lalai yang dipanggil setiap kali ada orang menghantar dana ke kontrak * / fungsi () yang perlu dibayar {memerlukan (! crowdsaleClosed) jumlah wang = msg. nilai keseimbanganDari [msg.sender] + = jumlah jumlahRaised + = jumlah tokenReward.transfer (msg.sender, jumlah / harga) FundTransfer (msg.sender, number, true)} pengubah selepasDeadline () {if (now = danaGoal) {fundGoalReached = true GoalReached (benefisiari, numberRaised)} crowdsaleClosed = true} / ** * Tarik balik dana * * Periksa untuk melihat apakah matlamat atau had masa telah tercapai, dan jika demikian, dan matlamat pembiayaan tercapai, * mengirimkan keseluruhan jumlah kepada waris. Sekiranya matlamat tidak tercapai, setiap penyumbang boleh mengeluarkan * jumlah yang mereka sumbangkan. * / function safeWithdrawal () afterDeadline {if (! danaGoalReached) {uint jumlah = balanceOf [msg.sender] balanceOf [msg.sender] = 0 if (jumlah> 0) {if (msg.sender.send (jumlah)) { FundTransfer (msg.sender, number, false)} lain-lain {balanceOf [msg.sender] = jumlah}}} jika (danaGoalReached && beneficier == msg.sender) {if (benefici.send (jumlahRaised)) {FundTransfer (benefisiari, jumlahRaised, false)} lain-lain {// Sekiranya kita gagal menghantar dana kepada benefisiari, buka kunci dana baki danaGoalReached = false}}}}

Sekiranya anda berminat untuk belajar kekukuhan, lihat blog kami di , yang digunakan untuk membangundiperibadikankontrak pintar.

Sekiranya anda ingin belajar Blockchain dan membina karier di Blockchain Technologies, maka periksa kami yang dilengkapi dengan latihan langsung yang dipimpin oleh instruktur dan pengalaman projek kehidupan sebenar. Latihan ini akan membantu anda memahami Blockchain secara mendalam dan membantu anda mencapai penguasaan terhadap subjek ini.

Ada soalan untuk kami? Sila sebutkan di bahagian komen dan kami akan menghubungi anda secepat mungkin.