Apa itu Ethereum Node dan Sharding?
Dalam panduan ini, Anda akan belajar apa itu Ethereum Nodes And Sharding. Jika Anda ingin belajar lebih banyak lagi, silakan lihat kursus blockchain kami .
Jika Anda telah aktif dalam satu atau lain bentuk dalam cryptocurrency selama setahun terakhir maka Anda akan tahu bahwa ada satu masalah yang telah mengganggu bitcoin dan Ethereum: Skalabilitas.
Bitcoin telah sedikit mengatasi masalah ini dengan mengaktifkan Segwit dan dengan susah payah membentuk Bitcoin Cash . Ethereum, bagaimanapun, mencoba untuk menyelesaikan masalah ini dengan cara yang berbeda. Salah satu dari banyak protokol yang ingin mereka aktifkan, saat mereka memasuki fase pertumbuhan berikutnya, adalah “sharding”. Sebelum kita memahami apa artinya itu, kita perlu memiliki pemahaman yang mendalam tentang jaringan dan node.
Apa itu node, jaringan, dan parameter?
Mari kita pahami apa arti konsep itu dengan menggunakan kegiatan sehari-hari yang sederhana.
(Sebelum kita mulai, kredit ke 3dBuzz untuk penjelasan yang luar biasa.)
Pikirkan sebuah kotak:
Kotak ini menerima input, melakukan semacam operasi padanya, dan kemudian memberikan output. Kotak ini adalah “simpul”. Perlu diingat, node tidak persis “kotak”, kami hanya menggunakan kasus hipotetis di sini.
Jaringan adalah kumpulan dari simpul-simpul ini yang saling terkait satu sama lain.
Parameter adalah aturan bahwa node terikat oleh.
Itu, pada dasarnya, adalah apa itu node dan jaringan. Sekarang mari kita periksa beberapa kegiatan sederhana sehari-hari yang dijelaskan melalui node dan jaringan.
Mari kita lihat cara kerja mesin penghancur kertas sederhana.
Jadi, apa yang terjadi di sini?
Anda menggunakan tiga simpul: Kertas penghancur dan …. baiklah … “barang robek”. Tiga node ini membentuk “jaringan Shredding”. Mari kita bersenang-senang lagi dengan ini. Hingga saat ini, kami mengasumsikan bahwa node hanya menerima satu input. Bagaimana jika mereka mengambil lebih dari itu?
Mari kita ambil contoh pemanggang roti. Pemanggang menerima dua input:
- Listrik
- Roti
Jadi seperti inilah tampilannya:
Ingat satu hal, pemanggang tidak dapat bekerja jika salah satu inputnya hilang.
Sekarang, saatnya mengambilnya lagi.
Mari kita pikirkan jaringan yang kompleks, yang menggunakan parameter. Pikirkan pesawat televisi Anda. Perangkat televisi Anda terhubung ke penyedia layanan Anda. Misalkan Anda memiliki PS4, dan karena Anda payah dalam mengambil keputusan, Anda juga memiliki Xbox.
Jadi, jika kita memetakan seluruh “jaringan TV”, seperti inilah tampilannya:
Uh, oh .. kami punya masalah di sini.
Anda hanya dapat mengakses salah satu dari simpul-simpul itu melalui TV Anda. Anda tidak dapat benar-benar menonton Game of Thrones dan bermain Uncharted pada saat yang sama sekarang, bukan? Jadi, bagaimana Anda memastikan bahwa TV Anda hanya dapat mengakses satu node pada satu waktu? Di sinilah Anda memperkenalkan parameter. Parameter inilah yang membuat simpul Anda unik. Misalkan, Anda ingin menambahkan parameter ke televisi yang disebut “Channel Switcher”. Dan inilah yang berfungsi sebagai pemindah saluran:
- Jika Anda menekan “0” maka itu akan menampilkan TV biasa alias penyedia layanan.
- Jika Anda menekan “1” maka Anda akan dapat mengakses PS4.
- Jika Anda menekan “2” maka Anda akan dapat mengakses Xbox.
Hanya dengan penambahan parameter ini Anda membuat simpul Anda yaitu televisi unik. Jadi, mari kita telusuri parameter lain apa yang bisa kita berikan pada televisi agar lebih unik:
- Ukuran: Katakanlah, televisi kami adalah layar 55 inci.
- Warna: TV kami berwarna abu-abu keperakan.
- Merek: Kami memiliki TV Sony.
- Jenis: Kami memiliki layar plasma.
Ok, jadi sekarang berkat parameter kami, kami memiliki televisi yang lebih baik. Sekarang kita tahu bahwa kita memiliki Sony TV layar plasma 55 inci, abu-abu keperakan.
Jadi, dari semua yang telah kita pelajari sejauh ini, mari kita coba mendefinisikan apa arti node, jaringan, dan parameter.
- Node: Komponen individual yang menerima input dan melakukan fungsi padanya dan memberikan output.
- Jaringan: Kumpulan node yang saling terhubung satu sama lain.
- Parameter: Aturan yang menentukan simpul dan membuatnya lebih unik
Node dan Jaringan dalam konteks telekomunikasi
Seluruh sistem telekomunikasi kami bekerja berdasarkan jaringan dan node. Internet, panggilan, SMS Anda, semuanya bekerja karena jaringan dan node yang ditata dengan cermat. Jadi, bagaimana Anda mendefinisikan jaringan telekomunikasi? Menurut Encyclopedia Britannica,
“Jaringan telekomunikasi adalah sistem elektronik tautan dan sakelar, dan kontrol yang mengatur operasinya, yang memungkinkan transfer data dan pertukaran di antara banyak pengguna.”
Mengapa kita membutuhkan jaringan telekomunikasi?
Meskipun dimungkinkan untuk membuat koneksi satu-ke-satu di antara orang-orang, itu akan sangat mahal dan rumit. Plus, itu akan menjadi proses yang sangat tidak efektif karena sebagian besar jalur komunikasi akan menganggur dan kurang / tidak dimanfaatkan.
Untuk membuat proses ini lebih efisien, kami menggunakan jaringan telekomunikasi. Jadi, apa definisi dari sebuah simpul dalam konteks ini?
Dalam konteks ini, simpul adalah titik redistribusi atau titik akhir komunikasi.
Jadi, mari kita lihat contoh cara kerjanya. Pertimbangkan jaringan GSM sederhana. Misalkan, Alice ingin mengirim SMS ke Bob, bagaimana seluruh sistem akan bekerja? (Shoutout to Roviell saluran YouTube untuk penjelasannya).
- Langkah 1: Alice menulis pesan dan menekan kirim. Pesannya pergi ke Base Station alias BST. BST menghubungkan Anda ke jaringan. Ada banyak BST di sekitarnya. Pikirkan mereka sebagai pelayan di restoran. Anda cukup mengangkat tangan (mengirim SMS) dan mendapatkan perhatian mereka.
- Langkah 2: Pengontrol Stasiun Basis alias BSC memastikan bahwa BST semuanya dalam keadaan baik dan bahwa semuanya dalam kondisi kerja. Menggunakan analogi restoran kami, BSC adalah “maître d’hôtel” atau kepala pelayan yang memastikan bahwa setiap meja dilayani oleh pelayan. (Ingat Jean Phillippe dari Hell’s Kitchen? Ya, pria itu.)
- Langkah 3 : Dari BSC, pesan sekarang menuju ke Mobile Switching Center alias MSC. Itu memastikan bahwa data bergerak mulus dari stasiun ke jaringan dan sebaliknya. Dalam analogi restoran kami, MSC adalah kepala koki, yang menerima pesanan dan menyampaikannya ke koki DAN juga memberikan sentuhan akhir pada hidangan sebelum mengirimnya.
- Langkah 4: Sekarang pesan dikirim ke Pusat Layanan Pesan Singkat alias SMSC. Ini adalah koki dalam analogi. Di sini, pesan disimpan sampai mereka mendapatkan informasi lebih lanjut tentang penerima. SMSC mendapat bantuan dari sumber-sumber seperti Home Location Register (HLR) dan Visitor Location Register (VLR), 2 ini adalah database yang berisi semua informasi tentang jaringan. Mereka pada dasarnya membantu melacak pengirim dan penerima untuk melihat apakah pesan dapat dikirim. Mereka memeriksa apakah ponsel penerima dimatikan, atau jika berada di luar area jangkauan dll. Jika karena alasan tertentu pesan tidak dapat dikirim, maka ia akan disimpan dalam SMSC selama maksimal 6 jam sebelum dihapus.
- Langkah 5 : Sekarang, jika SMS itu baik, SMSC menyerahkan pesan ke MSC penerima.
- Langkah 6: SMS masuk ke BSC.
- Langkah 7: BSC meneruskan pesan ke BST.
- Langkah 8 : BST akhirnya mengirim pesan ke penerima.
Jadi, ini adalah gambaran umum tentang cara kerja seluruh sistem SMS. BSC, BST, MSC, SMSC, HLR dan VLR adalah semua node dalam jaringan GSM. Seperti inilah keseluruhannya:
Apa itu Jaringan Peer-to-Peer?
Struktur jaringan normal adalah struktur “client-server “.
Bagaimana cara kerjanya?
Ada server terpusat. Dan setiap orang yang ingin terhubung dengan server dapat mengirim kueri untuk mendapatkan informasi yang diperlukan. Ini adalah cara kerja internet. Ketika Anda ingin Google sesuatu, Anda mengirim permintaan ke server Google, yang kembali dengan hasil yang diperlukan. Jadi, ini adalah sistem client-server. Sekarang, apa masalah dengan model ini?
Karena semuanya tergantung pada server, sangat penting bagi server untuk berfungsi setiap saat agar sistem berfungsi. Ini adalah hambatan. Sekarang anggaplah, untuk alasan apa pun server utama berhenti bekerja, semua orang di jaringan akan terpengaruh. Plus, ada juga masalah keamanan. Karena jaringan terpusat, server itu sendiri menangani banyak informasi sensitif mengenai klien. Ini berarti bahwa siapa pun dapat meretas server dan mendapatkan informasi tersebut. Plus, ada juga masalah sensor. Bagaimana jika server memutuskan bahwa item tertentu (film, lagu, buku, dll.) Tidak disetujui dan memutuskan untuk tidak menyebarkannya di jaringan mereka?
Jadi, untuk mengatasi semua masalah ini, berbagai jenis arsitektur jaringan muncul. Ini adalah jaringan yang memecah seluruh beban kerja antara peserta, yang semuanya sama-sama memiliki hak istimewa, yang disebut “rekan”. Tidak ada lagi satu server pusat, sekarang ada beberapa rekan yang terdistribusi dan terdesentralisasi. Ini adalah jaringan peer-to-peer.
Mengapa orang menggunakan jaringan peer-to-peer?
Salah satu kegunaan utama dari jaringan peer-to-peer adalah berbagi file, juga disebut torrenting. Jika Anda ingin menggunakan model klien-server untuk mengunduh, maka biasanya sangat lambat dan sepenuhnya tergantung pada kesehatan server. Plus, seperti yang kami katakan, ini cenderung sensor.
Namun, dalam sistem peer-to-peer, tidak ada otoritas pusat, dan karenanya jika salah satu rekan dalam jaringan keluar dari perlombaan, Anda masih memiliki lebih banyak teman untuk diunduh. Plus, itu tidak tunduk pada standar idealistik sistem pusat, karenanya tidak rentan terhadap sensor.
Jika kita membandingkan keduanya:
Sifat desentralisasi dari sistem peer-to-peer menjadi kritis ketika kita beralih ke bagian selanjutnya. Seberapa kritis? Ya, ide sederhana (setidaknya di atas kertas) untuk menggabungkan jaringan peer-to-peer ini dengan sistem pembayaran telah sepenuhnya merevolusi industri keuangan dengan melahirkan cryptocurrency.
Penggunaan jaringan dan node dalam cryptocurrency.
Mari kita lihat struktur jaringan Ethereum.
Ethereum disusun sebagai jaringan peer-to-peer, sehingga para peserta alias rekan-rekan alias node tidak diberikan hak istimewa khusus apa pun. Idenya adalah untuk menciptakan jaringan egaliter. Node tidak diberikan hak khusus, namun fungsi dan tingkat partisipasinya mungkin berbeda. Tidak ada server / entitas terpusat, juga tidak ada hierarki. Ini adalah topologi datar.
Semua cryptocurrency terdesentralisasi disusun seperti itu karena alasan sederhana, untuk tetap setia pada filosofi mereka. Idenya adalah untuk memiliki sistem mata uang, di mana setiap orang diperlakukan sama dan tidak ada badan pengatur, yang dapat menentukan nilai mata uang berdasarkan kemauan. Ini berlaku untuk bitcoin dan Ethereum.
Sekarang, jika tidak ada sistem pusat, bagaimana semua orang di sistem mengetahui bahwa transaksi tertentu telah terjadi? Jaringan mengikuti protokol gosip. Pikirkan bagaimana gosip menyebar. Misalkan Alice mengirim 3 ETH ke Bob. Node yang terdekat dengannya akan mengetahui hal ini, dan kemudian mereka akan memberi tahu node yang terdekat dengan mereka, dan kemudian mereka akan memberi tahu tetangga mereka, dan ini akan terus menyebar sampai semua orang tahu. Node pada dasarnya adalah kerabat Anda yang usil dan menyebalkan.
Jadi, apa yang dimaksud simpul dalam konteks Ethereum? Node hanyalah sebuah komputer yang berpartisipasi dalam jaringan Ethereum. Partisipasi ini bisa dalam tiga cara
- Dengan menyimpan salinan dangkal blockchain alias Klien Ringan
- Dengan menyimpan salinan lengkap dari blockchain alias Node Penuh
- Dengan memverifikasi transaksi alias Tambang
Apa itu Klien Terang?
Seperti yang telah kami sebutkan sebelumnya, ide sistem peer-to-peer adalah untuk mendistribusikan tanggung jawab jaringan di antara node yang disebut “rekan”. Tidak ada preferensi untuk salah satu dari mereka. Namun, bagaimana dengan orang-orang yang ingin mengambil bagian dalam jaringan tetapi tidak memiliki sumber daya sistem untuk mengunduh dan memelihara blockchain penuh dalam sistem mereka? Mereka dapat memilih untuk menjadi “Klien Ringan”. Dengan menjadi Klien Ringan, mereka mendapatkan jaminan keamanan tinggi tentang keadaan Ethereum tertentu dan juga kekuatan untuk memverifikasi eksekusi transaksi.
Apa itu Node Penuh?
Komputer apa pun, yang terhubung ke jaringan Ethereum, yang sepenuhnya menegakkan semua aturan konsensus Ethereum disebut Node Penuh. Node lengkap mengunduh seluruh blockchain di desktop pengguna. Node penuh membentuk tulang punggung sistem Ethereum dan menjaga seluruh jaringan tetap jujur. Beberapa aturan konsensus yang diberlakukan oleh node penuh adalah:
- Memastikan bahwa hadiah blok yang benar diberikan untuk setiap blok yang ditambang (5 ETH)
- Transaksi memiliki tanda tangan yang benar
- Transaksi dan blokir dalam format data yang benar
- Tidak ada pengeluaran ganda yang terjadi di salah satu blok
Node penuh pada dasarnya memvalidasi node dan transaksi dan menyampaikan informasi ke node lain (menggunakan protokol gosip).
Penambang vs Nodes
Untuk membuatnya sederhana, semua penambang adalah simpul penuh, tetapi tidak semua simpul penuh adalah penambang. Penambang harus menjalankan node penuh untuk mengakses blockchain. Siapa pun yang menjalankan simpul penuh tidak perlu menambang untuk blok.
Apa masalah skalabilitas yang dihadapi Ethereum?
Bagaimana konsensus terjadi dalam jaringan Ethereum? Setiap node dalam jaringan melakukan perhitungan, dan ketika semuanya mencapai konsensus, transaksi dianggap baik. Sekarang, ini mungkin telah bekerja dengan baik, pada awalnya, bagaimanapun, Ethereum telah menjadi sangat populer dan jumlah transaksi terus meningkat. Lihat grafik ini oleh Etherscan:
Sekarang, meskipun ini adalah hal yang baik, jumlah perhitungan yang harus dilalui jaringan sebelum mencapai konsensus telah meningkat secara eksponensial. Bersamaan dengan itu, ada masalah lain yang muncul. Ethereum telah melihat adopsi luas karena dukungan oleh perusahaan kelas berat tertentu dan popularitas ICO-nya. Sebagai akibatnya, jumlah node pada jaringan Ethereum telah meningkat secara eksponensial. Bahkan, ini adalah cryptocurrency dengan node terbanyak dan karenanya paling terdesentralisasi.
Faktanya, pada Mei 2017, Ethereum memiliki 25.000 node dibandingkan dengan Bitcoin 7000 !! Itu lebih dari 3 kali. Bahkan, jumlah node dari April hingga Mei meningkat 81% … itu hampir dua kali lipat!
Sekarang, Anda mungkin berpikir bahwa memiliki lebih banyak node dalam jaringan akan membantu mempercepat waktu transaksi. Baiklah … pikirkan lagi.
Konsensus terjadi secara linear. Artinya, misalkan ada 3 simpul A, B dan C.
Agar terjadi konsensus, pertama A akan melakukan perhitungan dan memverifikasi dan kemudian B akan melakukan hal yang sama dan kemudian C.
Namun, jika ada simpul baru dalam sistem yang disebut “D”, itu akan menambah satu simpul lagi ke sistem konsensus, yang akan menambah periode waktu keseluruhan. Karena Ethereum menjadi lebih populer, waktu transaksi menjadi lebih lambat.
Bahkan, dalam tes kecepatan, terlihat bahwa Ethereum mengelola 20 transaksi per detik dibandingkan dengan 193 PayPal dan Visa 1667 !!
Sekarang ingat satu hal, Ethereum tidak membayangkan diri mereka hanya sebagai mata uang belaka, visi utama mereka adalah menjadi sesuatu seperti internet baru. Mereka ingin orang membuat DApps pada skala Facebook dan Youtube untuk berjalan di atas blockchain mereka. Agar hal seperti ini terjadi, mereka perlu melakukan sesuatu tentang masalah skalabilitas mereka.
Untuk mengatasinya, tiga proposal diajukan:
- Tambah ukuran blok
- Buat pengguna menggunakan koin alt berbeda
- Sharding
Tambah ukuran blok
Jadi, salah satu solusinya adalah menambah ukuran blok. Meskipun ini pasti akan meningkatkan kinerja dengan meningkatkan jumlah transaksi menjadi satu blok, ada beberapa masalah yang dapat terjadi sebagai hasilnya:
- Pertama, ini masih tidak akan menyelesaikan masalah node yang mencapai konsensus pada kecepatan yang lebih lambat. Bahkan, ketika jumlah transaksi per blok meningkat, jumlah perhitungan dan verifikasi per node juga akan meningkat.
- Untuk mengakomodasi semakin banyak transaksi, ukuran blok perlu ditingkatkan secara berkala. Ini akan lebih memusatkan sistem karena komputer dan pengguna biasa tidak akan dapat mengunduh dan memelihara blockchains besar seperti itu. Ini bertentangan dengan semangat egaliter dari blockchain.
- Akhirnya, peningkatan ukuran blok hanya akan terjadi melalui hardfork, yang dapat memecah komunitas. Terakhir kali hardfork utama terjadi di Ethereum, seluruh komunitas terbagi dan dua mata uang terpisah muncul. Orang tidak benar-benar ingin ini terjadi lagi.
Buat pengguna menggunakan altcoin berbeda.
Proposal lain adalah menjalankan blockchain paralel dan bukannya satu blockchain utama. Pada dasarnya, alih-alih membuat 50 DApps berjalan pada satu blockchain utama, miliki 2 blockchain dan jalankan 25 DApps masing-masing. Ada dua masalah dengan proposal ini:
- Tidak bijaksana untuk membagi hashrate dari sebuah rantai. Bagaimanapun hashrate dari rantai menentukan seberapa aman dari peretas eksternal dan cepatnya sistem.
- Akan lebih mudah bagi penambang jahat untuk mendapatkan mayoritas 51% pada rantai yang lebih kecil.
Sharding
Akhirnya, sharding diputuskan sebagai cara untuk memilih Ethereum. Sebelum kita menyelam lebih jauh ke dalam sharding, mari kita pahami apa artinya. Misalkan ada tiga node A, B dan C dan mereka harus memverifikasi data T. Alih-alih A, B dan C memverifikasi seluruh data T secara individual, data akan dipecah menjadi 3 pecahan: T1, T2 dan T3. Setelah itu, A, B, dan C akan memverifikasi satu beling di setiap sisi. Seperti yang Anda lihat, jumlah waktu yang Anda hemat bersifat eksponensial.
Bagaimanapun, mari kita menyelam lebih dalam!
Apa itu pecahan?
Sharding adalah istilah yang diambil dari sistem basis data. Mari kita lihat apa artinya sharding sehubungan dengan database. Misalkan Anda memiliki database besar yang besar untuk situs web Anda. Memiliki basis data yang besar tidak hanya membuat pencarian data menjadi lebih lambat, tetapi juga menghambat skalabilitas Anda. Jadi, apa yang Anda lakukan dalam kasus ini?
Bagaimana jika Anda melakukan partisi horizontal pada data Anda dan mengubahnya menjadi tabel yang lebih kecil dan menyimpannya di server database yang berbeda?
Seperti begitu?
Sekarang, Anda mungkin bertanya, mengapa partisi horisontal dan bukan partisi vertikal? Itu karena cara tabel dirancang:
Kamu melihat? Ini adalah tabel / database yang sama tetapi dengan data yang lebih sedikit. Basis data yang lebih kecil ini dikenal sebagai pecahan dari basis data yang lebih besar. Setiap pecahan harus identik dengan struktur tabel yang sama.
Sharding dalam konteks blockchain
Sekarang, seperti yang telah kita lihat, masalah dengan konsensus Ethereum adalah bahwa semua node perlu melakukan semua perhitungan dan verifikasi untuk setiap transaksi. Ini membuat seluruh proses sangat lambat dan rumit. Jadi, bagaimana sharding akan membantu ini?
Pertimbangkan keadaan blockchain Ethereum yang akan kita sebut “Negara Global”, yang dapat dilihat oleh semua orang. Mari kita pertimbangkan Merkle Root dari negara global ini. (Untuk pohon dan akar Merkle, baca artikel kami tentang HASHING). Root negara ini akan dipecah menjadi root beling dan masing-masing root ini akan memiliki state sendiri. Negara-negara ini akan diwakili dalam bentuk pohon Merkle.
Ini adalah struktur yang sangat sederhana dari apa yang seharusnya terlihat.
Sekarang, mari masuk ke mekanisme internal.
Jadi apa yang terjadi apa setelah sharding diaktifkan?
- Negara dibagi menjadi pecahan
- Setiap akun unik ada dalam satu pecahan
- Akun hanya dapat bertransaksi dengan akun lain di beling yang sama
Di Devcon, Vitalik Buterin menjelaskan pecahan seperti ini:
Bayangkan Ethereum telah dipecah menjadi ribuan pulau. Setiap pulau dapat melakukan hal sendiri. Masing-masing pulau memiliki fitur uniknya sendiri dan setiap orang yang berada di pulau itu yaitu akun, dapat berinteraksi satu sama lain DAN mereka dapat dengan bebas menikmati semua fitur-fiturnya. Jika mereka ingin kontak dengan pulau lain, mereka harus menggunakan semacam protokol.
Jadi, pertanyaannya adalah, bagaimana itu akan mengubah blockchain?
Seperti apa bentuk blok normal dalam bitcoin atau Ethereum (pre-sharding)?
Jadi, ada header blok dan badan yang berisi semua transaksi di blok. Root Merkle dari semua transaksi akan berada di header blok.
Sekarang, pikirkan ini. Apakah bitcoin benar-benar membutuhkan blokir? Apakah itu benar-benar membutuhkan blockchain? Satoshi bisa saja membuat rantai transaksi dengan memasukkan hash dari transaksi sebelumnya dalam transaksi yang lebih baru, membuat “rantai transaksi” untuk berbicara.
Alasan mengapa mereka mengatur transaksi ini dalam satu blok adalah untuk menciptakan satu tingkat interaksi dan membuat keseluruhan proses lebih terukur. Apa yang disarankan Ethereum adalah bahwa mereka mengubah ini menjadi dua tingkat interaksi.
Tingkat Pertama
Level pertama adalah grup transaksi. Setiap pecahan memiliki grup transaksi sendiri.
Grup transaksi dibagi menjadi header grup transaksi dan badan grup transaksi.
Header Grup Transaksi
Header dibagi menjadi beberapa bagian kiri dan kanan yang berbeda.
Bagian Kiri:
- ID Shard : ID shard yang menjadi milik grup transaksi.
- Pre-state root : Ini keadaan root shard 43 sebelum transaksi diterapkan.
- Post state root: Ini adalah status root shard 43 setelah transaksi diterapkan.
- Akar tanda terima: Akar tanda terima setelah semua transaksi dalam pecahan 43 diterapkan.
Bagian Kanan:
Bagian kanan penuh dengan validator acak yang perlu memverifikasi transaksi di beling itu sendiri. Mereka semua dipilih secara acak.
Badan Grup Transaksi
Ia memiliki semua ID transaksi di beling itu sendiri.
Properti Tingkat Satu
- Setiap transaksi menentukan ID dari beling miliknya.
- Suatu transaksi milik beling tertentu menunjukkan bahwa telah terjadi antara dua akun yang asli ke beling tertentu.
- Grup transaksi memiliki transaksi yang hanya milik ID beling itu dan unik untuknya.
- Menentukan root status pra dan pasca.
Sekarang, mari kita lihat level atas alias level kedua.
Tingkat Kedua
Jangan takut! Lebih mudah dipahami daripada yang terlihat.
Ada blockchain normal, tetapi sekarang mengandung dua akar utama:
- Root negara
- Root grup transaksi
Root negara mewakili seluruh state, dan seperti yang telah kita lihat sebelumnya, state dipecah menjadi pecahan, yang berisi substratnya sendiri.
Root grup transaksi berisi semua grup transaksi di dalam blok tersebut.
Properti Tingkat Dua
- Level dua seperti blockchain sederhana, yang menerima grup transaksi daripada transaksi.
- Grup transaksi hanya valid jika: a) Pre-state root cocok dengan shard root di negara global.
b) Tanda tangan dalam grup transaksi semuanya divalidasi. - Jika grup transaksi masuk, maka root status global menjadi root post-state dari ID shard tertentu.
Jadi bagaimana komunikasi lintas-beling terjadi?
Sekarang, ingat analogi pulau kita?
Pecahan pada dasarnya seperti pulau. Jadi bagaimana pulau-pulau ini saling berkomunikasi? Ingat, tujuan pecahan adalah untuk membuat banyak transaksi paralel terjadi pada saat yang sama untuk meningkatkan kinerja. Jika Ethereum memungkinkan komunikasi cross-shard acak, maka itu mengalahkan seluruh tujuan sharding.
Jadi protokol apa yang perlu diikuti untuk komunikasi lintas-beling?
Ethereum memilih untuk mengikuti paradigma penerimaan untuk komunikasi lintas-beling. Lihat ini:
Seperti yang Anda lihat di sini, setiap tanda terima individu dari transaksi apa pun dapat dengan mudah diakses melalui beberapa pohon Merkle dari grup transaksi root Merkle. Setiap transaksi dalam pecahan akan melakukan dua hal:
- Ubah status beling miliknya
- Buat tanda terima
Berikut ini informasi menarik lainnya. Tanda terima disimpan dalam memori bersama terdistribusi, yang dapat dilihat oleh pecahan lain tetapi tidak dimodifikasi. Oleh karena itu, komunikasi lintas-beling dapat terjadi melalui tanda terima seperti ini:
Gambar milik: Hackernoon
Apa saja tantangan penerapan sharding?
- Perlu ada mekanisme untuk mengetahui simpul mana yang mengimplementasikan shard. Ini perlu dilakukan dengan cara yang aman dan efisien untuk memastikan paralelisasi dan keamanan.
- Bukti pasak perlu diimplementasikan terlebih dahulu untuk mempermudah sharding menurut Vlad Zamfir.
- Node bekerja pada sistem yang tidak dapat dipercaya, yang berarti simpul A tidak memercayai simpul B dan keduanya harus mencapai konsensus terlepas dari kepercayaan itu. Jadi, jika satu transaksi tertentu dipecah menjadi pecahan dan didistribusikan ke simpul A dan simpul B, simpul A harus datang dengan semacam mekanisme pembuktian bahwa mereka telah selesai mengerjakan bagian dari pecahannya.
Apa itu Ethereum Node Dan Sharding: Kesimpulan
Saat Ethereum mengembang dan mengantar di Metropolis dan Serenity, sharding menjadi semakin penting bagi pertumbuhan mereka. Jika Ethereum berencana menjadi internet baru, mereka perlu memperbaiki masalah skalabilitas mereka. Mereka benar-benar perlu menerapkan dan mengatasi sharding untuk memastikan pertumbuhan mereka. Saat-saat yang menyenangkan ada di depan untuk Ethereum!
AMAZONPOLLY-ONLYAUDIO-MULAI-Dalam panduan ini, Anda akan mempelajari apa itu Ethereum Nodes And Sharding. Jika Anda ingin belajar lebih banyak lagi, silakan lihat kursus blockchain kami. Jika Anda telah aktif dalam satu atau lain bentuk dalam cryptocurrency selama setahun terakhir maka Anda akan tahu bahwa ada satu masalah yang telah mengganggu bitcoin dan Ethereum: Skalabilitas. Bitcoin telah sedikit mengatasi masalah ini dengan mengaktifkan Segwit dan dengan susah payah membentuk Bitcoin Cash. Ethereum, bagaimanapun, mencoba untuk menyelesaikan masalah ini dengan cara yang berbeda. Salah satu dari banyak protokol yang ingin mereka aktifkan, saat mereka memasuki fase pertumbuhan berikutnya, adalah “sharding”. Sebelum kita memahami apa artinya itu, kita perlu memiliki pemahaman yang mendalam tentang jaringan dan node.
source:
https://blockgeeks.com/guides/what-are-ethereum-nodes-and-sharding/