Apa Itu Ganache?
Ganache adalah simulator blockchain lokal yang memungkinkan developer membuat, men-deploy, menguji, dan men-debug smart contract yang kompatibel dengan Ethereum tanpa menggunakan mata uang kripto sungguhan.Ganache menciptakan lingkungan blockchain privat di komputer developer dan meniru banyak perilaku penting Ethereum Virtual Machine, yang umum disebut EVM.Developer dapat menggunakan Ganache untuk membuat akun uji, men-deploy kontrak Solidity, mengirim transaksi, memeriksa blok, mengukur penggunaan gas, serta mengamati perubahan pada state blockchain.Dokumentasi resmi Ganache yang diarsipkan menjelaskan bahwa Ganache adalah blockchain pribadi untuk pengembangan aplikasi terdesentralisasi secara cepat dalam lingkungan yang aman dan deterministik.
Ganache populer karena developer dapat langsung mulai menguji tanpa menjalankan node blockchain publik secara penuh atau memperoleh crypto testnet.Transaksi dapat dikonfirmasi secara instan, akun dapat dimulai dengan saldo ETH simulasi yang besar, dan seluruh blockchain dapat di-reset kapan saja.Ganache tersedia sebagai aplikasi desktop dengan antarmuka grafis, antarmuka command-line, dan paket JavaScript yang dapat disertakan dalam alur kerja pengembangan.Ganache bukan mata uang kripto, blockchain publik, wallet, token, atau platform trading terdesentralisasi.Ganache adalah software pengembangan yang dirancang untuk menyimulasikan perilaku blockchain pada jaringan lokal yang terkendali.Apakah Ganache Masih Dipelihara?
Ganache tidak lagi dipelihara secara aktif.Consensys mengumumkan penghentian Ganache dan rangkaian pengembangan Truffle yang lebih luas pada 21 September 2023.Pengumuman resmi penghentian Ganache menyatakan bahwa kodenya akan tetap tersedia untuk umum setelah masa transisi.
Repositori source code Ganache diarsipkan pada 26 Februari 2024 dan kini hanya dapat dibaca.
Software yang diarsipkan mungkin tetap dapat digunakan di lingkungan yang mendukung dependensi dan aturan Ethereum yang diharapkan.Namun, software yang diarsipkan umumnya tidak menerima fitur baru, patch keamanan, pembaruan dependensi, perbaikan bug, atau dukungan untuk peningkatan jaringan berikutnya.Keterbatasan ini penting karena Ethereum terus memperkenalkan opcode, format transaksi, aturan gas, fitur akun, dan perubahan eksekusi baru.Kontrak Solidity modern mungkin menggunakan instruksi yang tidak dikenali oleh Ganache versi lama.Kontrak yang lolos semua pengujian di Ganache juga dapat berperilaku berbeda di blockchain publik saat ini jika Ganache menyimulasikan aturan protokol yang lebih lama.Karena itu, Ganache sebaiknya diperlakukan sebagai software pengembangan Ethereum lama, bukan standar pengujian produksi terkini.Bagaimana Cara Kerja Ganache?
Ganache menjalankan proses blockchain terisolasi yang dikendalikan oleh developer.Proses ini menyimpan akun lokal, saldo, blok, transaksi, kode smart contract, penyimpanan, log, dan state blockchain lainnya.Ganache menyediakan endpoint JSON-RPC yang kompatibel dengan Ethereum, yang dapat dihubungkan ke skrip pengembangan, wallet, aplikasi browser, dan alat pengujian.Dokumentasi Ethereum JSON-RPC menjelaskan antarmuka standar yang digunakan aplikasi untuk berkomunikasi dengan klien eksekusi Ethereum.
Saat transaksi dikirim ke Ganache, simulator memvalidasi permintaan, menjalankan instruksi EVM yang relevan, mengubah state lokal, lalu mengembalikan tanda terima transaksi.Ganache dapat membuat blok baru segera setelah menerima transaksi atau menambang blok sesuai interval waktu yang dikonfigurasi.Karena developer mengendalikan blockchain tersebut, mereka tidak perlu bersaing dengan pengguna lain untuk memperoleh ruang blok publik.Developer juga dapat memulai ulang chain, mengubah konfigurasinya, mengganti akun, atau menghapus riwayatnya.Kontrol ini membuat Ganache cepat dan mudah diprediksi, tetapi juga menjadikannya sangat berbeda dari blockchain publik terdesentralisasi.Apa Itu Blockchain Pribadi?
Blockchain pribadi adalah lingkungan blockchain privat yang dijalankan untuk pengembangan, edukasi, atau pengujian.Berbeda dengan Ethereum mainnet, blockchain ini tidak diamankan oleh sekumpulan validator independen secara ekonomi yang tersebar.Orang yang menjalankan blockchain mengendalikan state awal, akun, perilaku mining, timestamp, dan pengaturan jaringan.Operator biasanya dapat me-reset atau menulis ulang lingkungan lokal tanpa persetujuan peserta jaringan lainnya.Fleksibilitas ini memungkinkan developer mengulangi pengujian yang sama dalam kondisi identik.Namun, blockchain pribadi tidak mereproduksi keamanan ekonomi, desentralisasi, kemacetan, urutan transaksi, atau aktivitas adversarial pada jaringan crypto publik.Ganache lebih tepat disebut simulator blockchain pribadi daripada blockchain produksi.Akun Ganache dan ETH Simulasi
Sesi Ganache biasa membuat beberapa akun uji saat blockchain lokal dimulai.Setiap akun biasanya diberi saldo besar berupa ETH simulasi.ETH ini dapat digunakan untuk membayar gas simulasi, men-deploy kontrak, mentransfer nilai, dan berinteraksi dengan aplikasi terdesentralisasi di Ganache.ETH Ganache tidak memiliki nilai pasar karena hanya ada di basis data blockchain lokal.ETH tersebut tidak dapat langsung ditransfer ke Ethereum mainnet atau ditukar dengan mata uang kripto sungguhan melalui protokol blockchain.Ganache dapat menghasilkan akun dari frasa mnemonic deterministik.Penggunaan mnemonic, jalur derivasi, dan konfigurasi yang sama dapat menghasilkan kembali alamat dan kunci privat yang sama di sesi Ganache lain.Akun deterministik berguna karena pengujian otomatis dapat mengetahui alamat dan saldo yang tersedia sebelum pengujian dimulai.Kunci privat akun ini sengaja dapat diakses karena akun tersebut dibuat untuk pengembangan.Frasa seed wallet sungguhan dan kunci privat produksi tidak boleh dimasukkan ke Ganache.Kunci pengembangan juga tidak boleh digunakan kembali untuk alamat yang akan menyimpan mata uang kripto bernilai di jaringan publik.Antarmuka Grafis Ganache
Antarmuka grafis Ganache menyediakan cara visual untuk membuat dan memeriksa blockchain pribadi.Layar akun menampilkan alamat lokal, saldo, jumlah transaksi, dan kunci privat.Layar blok dan transaksi memungkinkan developer meninjau aktivitas yang ditambang secara lokal.Halaman terkait kontrak dapat menampilkan kontrak yang di-deploy, event, informasi penyimpanan, dan detail eksekusi jika informasi proyek tersedia.Antarmuka ini memudahkan developer yang masih mempelajari alat blockchain command-line untuk menggunakan Ganache.Pengguna dapat membuat workspace dengan konfigurasi akun, mining, jaringan, dan forking yang berbeda.Panduan memulai cepat Ganache yang diarsipkan menjelaskan proses historis untuk membuat blockchain pribadi melalui aplikasi desktop.
Antarmuka grafis ini kini merupakan software lama dan tidak dapat diharapkan mendukung fitur Ethereum terkini.Antarmuka Command-Line Ganache
Antarmuka command-line Ganache memungkinkan developer menjalankan dan mengonfigurasi blockchain lokal dari terminal.Instalasi lama biasanya dapat dijalankan dengan perintah seperti
Referensi opsi Ganache CLI yang diarsipkan mendokumentasikan kategori konfigurasi historis yang tersedia bagi developer Ethereum.
Program command-line juga dapat dijalankan dalam mode detached agar blockchain lokal terus berjalan terpisah dari perintah terminal awal.Karena paketnya diarsipkan, pemasangan di lingkungan software modern dapat menimbulkan masalah kompatibilitas dependensi, sistem operasi, atau runtime.Workspace Ganache
Workspace Ganache menyimpan konfigurasi untuk proyek blockchain lokal tertentu.Workspace dapat menentukan akun, mnemonic, pengaturan chain, perilaku mining, lokasi basis data, dan proyek smart contract yang terhubung.Workspace persisten memungkinkan riwayat blockchain dan state kontrak yang di-deploy tetap tersedia setelah aplikasi ditutup.Workspace sementara dapat dimulai dari state bersih setiap kali Ganache dijalankan ulang.State lokal persisten praktis selama pengembangan, tetapi dapat menimbulkan perbedaan nonce, deployment, atau saldo yang membingungkan antarpengujian.Pengujian otomatis sering kali lebih baik dilakukan di lingkungan deterministik yang bersih daripada di basis data lokal lama yang menyimpan transaksi sebelumnya.Instant Mining di Ganache
Ganache dapat mengonfirmasi transaksi secara langsung dengan menambang blok segera setelah transaksi diterima.Instant mining membuat rangkaian pengujian smart contract berjalan jauh lebih cepat daripada di blockchain publik.Developer dapat men-deploy kontrak dan berinteraksi dengannya tanpa menunggu interval blok publik.Ganache juga dapat dikonfigurasi untuk menambang blok secara berkala.Kontrol mining manual memungkinkan pengujian membuat transaksi tertunda sebelum menentukan waktu pembuatan blok.Fitur ini berguna untuk menguji aplikasi blockchain, tetapi instant mining dapat menyembunyikan masalah produksi terkait penundaan, persaingan biaya, transaksi pengganti, dan perubahan state.Aplikasi terdesentralisasi tidak boleh mengasumsikan bahwa transaksi sungguhan akan langsung dikonfirmasi hanya karena transaksi tersebut langsung terkonfirmasi di Ganache.Snapshot dan Revert Ganache
Ganache mendukung snapshot yang merekam state blockchain lokal saat ini.Developer dapat membuat snapshot, menjalankan beberapa transaksi, lalu mengembalikan blockchain ke state tersimpan tersebut.Fitur ini memungkinkan pengujian dimulai berulang kali dengan saldo akun, penyimpanan kontrak, timestamp, dan riwayat blok yang sama.Snapshot mengurangi kebutuhan untuk men-deploy ulang setiap kontrak sebelum masing-masing pengujian.Snapshot juga membantu developer mereproduksi bug dari state blockchain yang diketahui.Snapshot Ganache hanya merupakan fitur pengujian lokal dan tidak memengaruhi blockchain publik.Pengguna tidak dapat membatalkan transaksi Ethereum mainnet yang telah difinalisasi dengan perintah snapshot Ganache.Manipulasi Waktu di Ganache
Ganache memungkinkan developer memajukan waktu blockchain dan mengontrol timestamp blok yang dihasilkan secara lokal.Fitur ini berguna untuk menguji vesting token, jadwal staking, periode tata kelola, lelang, tenggat pinjaman, sistem langganan, dan kontrak time-locked.Developer dapat menyimulasikan berlalunya beberapa bulan tanpa menunggu waktu sungguhan.Pengujian juga dapat memeriksa perilaku tepat sebelum dan sesudah waktu kedaluwarsa.Timestamp Ethereum publik dihasilkan berdasarkan aturan jaringan dan tidak dikendalikan oleh developer aplikasi.Karena itu, kontrak sebaiknya diuji dengan variasi timestamp yang realistis, bukan hanya nilai lokal yang sepenuhnya dapat diprediksi.Forking Jaringan Ganache
Ganache dapat membuat fork lokal dari jaringan publik yang kompatibel dengan Ethereum.Fork dimulai dari akun, saldo, kode kontrak, dan penyimpanan yang tersedia pada blok jarak jauh yang dipilih.Setelah titik awal tersebut, transaksi baru dieksekusi secara lokal dan tidak mengubah blockchain publik asli.Forking memungkinkan developer menguji interaksi dengan token yang sudah ada, protokol terdesentralisasi, atau sistem kontrak yang telah di-deploy.Fitur ini juga dapat membantu mereproduksi bug historis dalam kondisi blockchain yang serupa dengan saat masalah terjadi.Biasanya, endpoint JSON-RPC jarak jauh diperlukan untuk mengambil state blockchain yang disalin.Ganache dapat meminta informasi tambahan dari node jarak jauh tersebut jika transaksi lokal mengakses state yang belum diunduh.Pengujian fork tidak memberikan izin untuk mengendalikan aset sungguhan karena saldo dan state kontrak yang disalin hanya ada di simulator.Ganache versi arsip mungkin gagal melakukan fork jaringan terkini dengan benar jika menemukan blok, transaksi, opcode, atau perubahan protokol yang tidak didukung.Impersonasi Akun pada Fork Ganache
Ganache dapat membuka kunci atau menyimulasikan secara lokal alamat blockchain tertentu di lingkungan fork.Dengan demikian, pengujian dapat mengirim transaksi seolah-olah transaksi tersebut berasal dari pemegang token, administrator, peserta tata kelola, atau akun kontrak tertentu.Impersonasi tidak mengungkap kunci privat asli alamat tersebut.Fitur ini juga tidak memberikan kendali atas alamat di jaringan publik asli.Fitur ini hanya berfungsi karena developer mengendalikan simulator lokal dan dapat mengubah aturan otorisasinya.Impersonasi akun berguna untuk menguji skenario sulit, tetapi transaksi produksi tetap memerlukan otorisasi yang valid berdasarkan aturan jaringan sungguhan.Ganache dan Deployment Smart Contract
Developer dapat men-deploy kontrak Solidity yang telah dikompilasi ke Ganache dengan mengirim transaksi pembuatan kontrak ke endpoint JSON-RPC lokalnya.Transaksi tersebut memuat bytecode pembuatan dan parameter constructor yang telah dienkode.Ganache menjalankan constructor dan menyimpan bytecode runtime yang dihasilkan di alamat kontrak lokal.Kontrak tersebut kemudian dapat menerima pemanggilan dari skrip, wallet, aplikasi browser, atau kontrak lokal lainnya.Deployment yang berhasil di Ganache tidak berarti kontrak telah di-deploy ke Ethereum mainnet atau testnet publik.Setiap blockchain memiliki state kontrak dan riwayat transaksi masing-masing.Transaksi deployment dan biaya jaringan terpisah diperlukan saat beralih dari pengujian lokal ke jaringan publik.Menguji Token Kripto dengan Ganache
Ganache memungkinkan developer membuat dan menguji token fungibel lokal, NFT, token tata kelola, sistem nilai stabil, kontrak staking, dan aplikasi crypto lainnya.Developer dapat menguji transfer, saldo, allowance, persetujuan, minting, burning, kepemilikan, kontrol akses, dan log event.Akun lokal dapat menerima token simulasi tanpa biaya finansial.Wallet yang terhubung ke Ganache dapat menampilkan token lokal setelah alamat kontrak lokal yang benar ditambahkan.Token tersebut hanya ada di blockchain Ganache tertentu itu.Me-reset blockchain dapat menghapus token, saldonya, dan seluruh riwayat transaksinya.Token lokal yang menggunakan nama atau simbol mata uang kripto sungguhan tetap hanya merupakan simulasi.Blockchain dan alamat kontrak merupakan pengenal token yang lebih andal daripada nama atau ticker yang ditampilkan.Gas Fee Ganache
Ganache menyimulasikan gas EVM agar developer dapat mengamati biaya eksekusi deployment kontrak dan pemanggilan fungsi.Penulisan storage, calldata, log event, pembuatan kontrak, pemanggilan eksternal, dan operasi komputasi dapat berkontribusi pada penggunaan gas yang ditampilkan.Biaya simulasi dibayar dari saldo ETH lokal akun uji.Transaksi lokal Ganache biasa tidak menggunakan ETH sungguhan.Developer dapat mengatur harga gas, batas gas blok, batas transaksi, dan pengaturan terkait biaya lainnya.Fleksibilitas ini berguna untuk menguji kegagalan out-of-gas dan fungsi kontrak yang mahal.Namun, pengukuran gas Ganache mungkin tidak mencerminkan Ethereum saat ini secara akurat jika simulator menggunakan EVM lama atau jadwal gas yang sudah usang.Benchmark gas sebaiknya diulang di lingkungan yang dipelihara dan mendukung peningkatan jaringan serta target compiler yang sama dengan rencana deployment.Ganache dan Pengujian Deterministik
Pengujian deterministik berarti kondisi awal dan input transaksi yang sama seharusnya menghasilkan keluaran yang sama sesuai harapan.Ganache mendukung akun, saldo, produksi blok, chain identifier, dan urutan deployment yang deterministik.Rangkaian pengujian dapat memulai Ganache dengan mnemonic yang diketahui, men-deploy kontrak dalam urutan tetap, lalu memprediksi alamat lokal yang dihasilkan.Blockchain kemudian dapat di-reset sebelum pengujian berikutnya.Prediktabilitas ini membantu developer mengetahui apakah perubahan kode mengubah perilaku kontrak.Blockchain publik sungguhan lebih sulit diprediksi karena pengguna lain dapat mengubah state kontrak bersama, urutan transaksi, permintaan gas, likuiditas, dan timestamp.Karena itu, pengujian lokal deterministik sebaiknya dilengkapi dengan pengujian integrasi yang lebih luas dan pengujian adversarial.Ganache vs. Ethereum Mainnet
Ethereum mainnet adalah blockchain publik terdesentralisasi tempat ETH, token, dan smart contract dapat memiliki nilai finansial sungguhan.Ganache adalah simulasi yang dikendalikan secara lokal; operatornya dapat mengubah saldo, waktu blok, akun, dan riwayat.Transaksi mainnet bersaing untuk mendapatkan ruang blok yang terbatas dan membayar biaya yang ditentukan oleh kondisi jaringan saat ini.Ganache dapat menggunakan instant mining dan pengaturan biaya yang dapat dikonfigurasi.Mainnet memiliki aktivitas pengguna dan aplikasi dari seluruh dunia yang tidak dapat diprediksi.Chain Ganache baru hanya berisi akun, kontrak, dan transaksi yang ditambahkan developer.Keamanan mainnet bergantung pada protokol Ethereum dan jaringan validator yang lebih luas.Keamanan Ganache bergantung pada komputer lokal dan konfigurasi yang dikendalikan oleh satu operator.Lolos pengujian Ganache tidak membuktikan bahwa kontrak aman atau kompatibel dengan perilaku mainnet terkini.Ganache vs. Testnet Publik
Testnet publik adalah blockchain pengembangan bersama yang dioperasikan oleh banyak peserta.Panduan jaringan pengembangan Ethereum menjelaskan perbedaan antara lingkungan lokal dan jaringan pengujian publik bersama.
Testnet publik menyediakan kondisi jaringan, produksi blok, persaingan transaksi, dan interaksi dengan kontrak yang di-deploy secara independen dengan lebih realistis.Ganache menyediakan eksekusi lebih cepat, saldo lokal gratis, kendali penuh, dan reset state secara langsung.Pengujian lokal biasanya lebih sesuai untuk unit test cepat, sedangkan testnet publik yang dipelihara dapat memberikan pengujian integrasi yang lebih kuat.Crypto testnet juga tidak dimaksudkan memiliki nilai finansial, meskipun asetnya berada di jaringan bersama dan bukan hanya di komputer satu developer.Pengujian lokal maupun testnet publik tidak menggantikan peninjauan keamanan profesional untuk kontrak yang akan mengendalikan aset crypto bernilai.Ganache vs. Jaringan Ethereum Privat
Jaringan Ethereum privat dapat terdiri dari beberapa node eksekusi dan konsensus yang saling terhubung tanpa bergabung dengan Ethereum mainnet.Ganache biasanya menyimulasikan eksekusi blockchain dalam proses yang lebih sederhana dan berfokus pada pengembangan.Jaringan privat multi-node dapat menguji jaringan peer-to-peer, propagasi blok, sinkronisasi, perilaku konsensus, dan kegagalan node.Ganache lebih berfokus pada pengembangan aplikasi yang cepat, akun yang dapat diprediksi, akses RPC lokal, dan kontrol pengujian yang praktis.Dokumentasi jaringan privat Geth menjelaskan bahwa jaringan Ethereum privat dapat mendukung skenario pengujian multi-node dan multi-pengguna.
Karena itu, pengujian protokol tingkat lanjut mungkin memerlukan jaringan multi-klien, bukan satu proses Ganache.Keterbatasan Ganache
Ganache tidak mereproduksi seluruh kondisi ekonomi, jaringan, konsensus, dan adversarial Ethereum mainnet.Konfirmasi instan dapat menyembunyikan masalah terkait transaksi tertunda, perubahan base fee, konflik nonce, atau aturan penggantian transaksi.Urutan transaksi yang dapat diprediksi dapat menyembunyikan risiko front-running, back-running, persaingan likuidasi, dan risiko urutan lainnya.Saldo uji tanpa batas dapat menyembunyikan masalah pendanaan akun dan onboarding.Jaringan lokal tidak otomatis berisi oracle, bridge, pool likuiditas, token, sistem tata kelola, atau kontrak eksternal lainnya yang sungguhan.Forking dapat menambahkan state publik yang disalin, tetapi tetap tidak dapat mereproduksi setiap peristiwa yang mungkin terjadi antara simulasi dan eksekusi produksi.Status Ganache yang diarsipkan menimbulkan risiko tambahan bahwa keluaran compiler atau perilaku Ethereum terkini tidak didukung.Proses pengujian lengkap sebaiknya mencakup alat lokal yang dipelihara, pengujian di jaringan bersama, analisis keamanan, fuzzing, dan peninjauan konfigurasi deployment.Risiko Keamanan Ganache
Akun Ganache tidak dirancang untuk melindungi mata uang kripto bernilai.Kunci privatnya dapat tercetak di output terminal, ditampilkan di antarmuka grafis, disimpan di file proyek, atau dihasilkan dari frasa default yang dikenal luas.Server RPC Ganache dapat membuka fungsi pengembangan yang kuat dan tidak boleh tersedia bagi pengguna internet yang tidak tepercaya.Mengikat server pengembangan lokal ke antarmuka jaringan publik dapat menimbulkan paparan keamanan yang tidak perlu.Data blockchain hasil fork dapat menampilkan saldo akun sungguhan, tetapi saldo lokal tersebut tidak membuktikan bahwa operator mengendalikan aset aslinya.Skrip yang ditulis untuk Ganache mungkin berisi jalan pintas yang berbahaya jika digunakan kembali dengan kunci produksi.Kredensial pengembangan dan produksi harus dipisahkan sepenuhnya.Tidak ada situs web, lingkungan pengujian, atau perwakilan dukungan yang memerlukan frasa seed sungguhan untuk membuat blockchain Ganache lokal.Kesalahan Umum Ganache
Kesalahan koneksi dapat terjadi jika aplikasi menggunakan host RPC, port, atau protokol yang salah.Kesalahan chain identifier dapat terjadi jika wallet dikonfigurasi untuk jaringan lokal yang berbeda.Kesalahan nonce dapat muncul ketika wallet mengingat transaksi dari sesi Ganache sebelumnya yang telah di-reset.Kesalahan saldo tidak mencukupi dapat terjadi jika alamat yang dipilih bukan salah satu akun lokal yang didanai.Kesalahan out-of-gas dapat disebabkan oleh batas gas transaksi yang terlalu rendah atau jalur eksekusi kontrak yang memerlukan lebih banyak komputasi daripada perkiraan.Kesalahan opcode yang tidak didukung dapat menunjukkan bahwa kontrak dikompilasi untuk versi EVM yang lebih baru daripada yang didukung Ganache.Kesalahan fork dapat disebabkan oleh endpoint RPC jarak jauh yang tidak tersedia, data blok yang tidak kompatibel, pembatasan rate, atau perilaku protokol yang tidak didukung.Alamat kontrak yang tidak sesuai perkiraan dapat disebabkan oleh deployer, nonce, mnemonic, atau urutan deployment yang berbeda.Apakah Ganache Masih Bisa Digunakan?
Ganache masih dapat digunakan jika versi arsipnya berhasil dipasang dan beroperasi di lingkungan developer.Ganache mungkin tetap berguna untuk mereproduksi hasil pengujian proyek lama atau memahami alur kerja pengembangan Ethereum terdahulu.Proyek lama dapat mengunci versi paket Ganache, runtime, compiler, dan dependensi untuk menjaga reproduktibilitas.Namun, software yang terus berjalan bukan berarti software tersebut mutakhir, aman, atau kompatibel dengan Ethereum modern.Tim yang memelihara aplikasi bernilai sebaiknya membandingkan setiap rangkaian pengujian lama dengan hasil dari implementasi EVM yang dipelihara secara aktif.Pengembangan baru sebaiknya tidak menambah ketergantungan jangka panjang pada simulator yang tidak lagi didukung.Beralih dari Ganache
Proses migrasi sebaiknya dimulai dengan mencatat pengaturan Ganache yang digunakan proyek secara persis.Pengaturan penting mencakup mnemonic, jumlah akun, saldo akun, chain ID, network ID, port RPC, mode mining, batas gas, timestamp, lokasi basis data, dan konfigurasi fork.Tim perlu mengidentifikasi pengujian yang menggunakan metode RPC khusus Ganache untuk snapshot, perubahan waktu, mining, perubahan saldo, atau impersonasi akun.Fitur setara harus dikonfigurasi di lingkungan lokal pengganti.Skrip deployment harus diuji karena estimasi gas, tanda terima transaksi, pesan kesalahan, dan perilaku mining dapat berbeda.Snapshot gas sebaiknya dibuat ulang, bukan disalin dari hasil Ganache.Pengujian fork perlu diulang menggunakan node terkini dan versi EVM yang kompatibel dengan jaringan deployment yang dituju.Migrasi akhir harus mempertahankan perilaku fungsional sekaligus meningkatkan dukungan terhadap aturan protokol Ethereum terkini.Pengembangan Ethereum Lokal Modern
Panduan pengembangan Ethereum terkini merekomendasikan jaringan dan framework pengembangan lokal yang dipelihara untuk menulis, menguji, dan men-debug smart contract.Dokumentasi resmi jaringan pengembangan Ethereum mencantumkan opsi pengujian lokal saat ini.
Developer yang memerlukan perilaku yang mendekati klien eksekusi sungguhan juga dapat membuat chain pengembangan dengan Geth.Panduan mode developer Geth menjelaskan cara memulai jaringan Ethereum lokal dan men-deploy kontrak ke dalamnya.
Tim tingkat lanjut dapat menggunakan jaringan pengujian multi-klien yang dapat dikonfigurasi untuk menguji jaringan, konsensus, dan kompatibilitas klien.Lingkungan terbaik bergantung pada bahasa pemrograman, compiler, target EVM, framework pengujian, kebutuhan forking, dan jaringan deployment.Apakah Ganache Memiliki Token?
Ganache tidak memiliki mata uang kripto atau token resmi yang diperdagangkan di pasar.ETH simulasi yang digunakan di Ganache hanya merupakan data pengembangan lokal.Token yang menggunakan nama Ganache tidak boleh dianggap berhubungan dengan software pengembangan yang telah diarsipkan tersebut.Siapa pun dapat membuat token dan memberinya nama software atau perusahaan yang sudah dikenal.Pengguna sebaiknya mengidentifikasi mata uang kripto berdasarkan blockchain dan alamat kontrak yang tepat, bukan hanya nama atau logonya.Klaim bahwa ETH uji Ganache dapat dibeli, ditarik, atau dikonversi menjadi ETH sungguhan merupakan tanda peringatan kemungkinan penipuan.FAQ
Apa itu Ganache secara sederhana?
Ganache adalah simulator blockchain Ethereum lokal yang digunakan untuk menguji smart contract dan aplikasi terdesentralisasi tanpa mengeluarkan mata uang kripto sungguhan.Apakah Ganache masih dipelihara?
Tidak. Ganache dihentikan pada 2023 dan repositori source code publiknya diarsipkan pada 2024.Apakah Ganache masih bisa dipasang?
Paket yang diarsipkan mungkin masih dapat dipasang di lingkungan yang kompatibel, tetapi merupakan software lama yang tidak didukung.Apakah Ganache merupakan blockchain mata uang kripto sungguhan?
Ganache menyimpan blok, transaksi, akun, dan kontrak lokal, tetapi bukan jaringan mata uang kripto publik yang terdesentralisasi.Apakah Ganache menggunakan ETH sungguhan?
Tidak. Akun Ganache menggunakan ETH simulasi yang hanya bernilai di blockchain pengembangan lokal.Bisakah ETH Ganache dikirim ke Ethereum mainnet?
Tidak. Saldo Ganache lokal tidak ada di Ethereum mainnet dan tidak dapat ditarik ke sana.Apakah Ganache memiliki token resmi?
Tidak. Ganache adalah software pengembangan dan tidak memiliki mata uang kripto resmi yang diperdagangkan di pasar.Bisakah wallet terhubung ke Ganache?
Ya. Wallet yang kompatibel dengan Ethereum dapat terhubung menggunakan endpoint RPC Ganache dan konfigurasi chain lokal yang benar.Bisakah Ganache men-deploy smart contract Solidity?
Ya. Kontrak Solidity yang telah dikompilasi dapat di-deploy dan dijalankan pada EVM lokal Ganache.Bisakah Ganache menguji token dan NFT?
Ya. Developer dapat men-deploy dan menguji transfer token lokal, persetujuan, minting, burning, kepemilikan, dan logika izin.Apa itu Ganache CLI?
Ganache CLI adalah versi command-line dari simulator blockchain lokal.Apa itu antarmuka grafis Ganache?
Ini adalah aplikasi desktop yang menampilkan akun, blok, transaksi, kontrak, event, dan pengaturan konfigurasi secara visual.Apa itu workspace Ganache?
Workspace adalah konfigurasi Ganache tersimpan yang memuat pengaturan blockchain lokal, akun, mining, dan proyek.Apa itu snapshot Ganache?
Snapshot merekam state blockchain lokal agar pengujian dapat kembali ke titik awal yang sama.Bisakah Ganache mengubah waktu blockchain?
Ya. Metode pengembangan Ganache dapat memajukan waktu dan mengubah timestamp blok lokal untuk pengujian.Apa itu forking Ganache?
Forking Ganache membuat blockchain lokal berdasarkan state akun dan kontrak yang disalin dari blok tertentu di jaringan publik.Apakah transaksi fork Ganache memengaruhi jaringan publik?
Tidak. Transaksi yang dibuat setelah fork tetap berada di simulator lokal.Bisakah Ganache menyimulasikan alamat publik?
Ganache dapat menyimulasikan transaksi lokal dari alamat tertentu, tetapi tidak mengungkap kunci privat atau memberikan kendali atas aset sungguhan.Apakah Ganache menghitung gas?
Ya. Ganache menyimulasikan penggunaan dan biaya gas berdasarkan aturan EVM yang diterapkan versi arsipnya.Apakah estimasi gas Ganache akurat untuk Ethereum saat ini?
Belum tentu, karena peningkatan Ethereum yang lebih baru dan keluaran compiler mungkin tidak didukung.Mengapa Ganache menampilkan opcode yang tidak didukung?
Kontrak mungkin menargetkan versi EVM yang memuat instruksi yang tidak diterapkan oleh versi Ganache yang terpasang.Apakah Ganache sama dengan Ethereum mainnet?
Tidak. Mainnet adalah jaringan publik terdesentralisasi dengan aset sungguhan, sedangkan Ganache dikendalikan oleh developer lokal.Apakah Ganache sama dengan testnet publik?
Tidak. Testnet publik digunakan bersama oleh banyak peserta, sedangkan chain Ganache biasa berjalan secara privat di satu sistem pengembangan.Bisakah Ganache digunakan tanpa akses internet?
Blockchain Ganache lokal dasar dapat berjalan secara offline, sedangkan forking jaringan memerlukan akses ke node jarak jauh.Apakah Ganache aman untuk produksi?
Tidak. Kunci uji yang terekspos, riwayat yang dapat dikendalikan, metode RPC pengembangan, dan statusnya yang tidak didukung membuat Ganache tidak sesuai untuk menyimpan aset produksi.Haruskah frasa seed sungguhan diimpor ke Ganache?
Tidak. Frasa seed sungguhan dan kunci privat produksi tidak boleh digunakan di simulator pengembangan lokal.Bisakah proyek lama terus menggunakan Ganache?
Proyek lama dapat mempertahankan versi yang dikunci untuk pengujian historis, tetapi migrasi ke lingkungan yang dipelihara lebih disarankan.Mengapa developer sebaiknya beralih dari Ganache?
Migrasi memberikan dukungan protokol terkini, pemeliharaan dependensi, perbaikan keamanan, dan kompatibilitas dengan keluaran Solidity modern.Apakah lolos pengujian Ganache membuktikan kontrak aman?
Tidak. Pengujian lokal tidak dapat menggantikan pengujian adversarial, integrasi dengan jaringan terkini, peninjauan kode, atau audit smart contract independen.Kesimpulan
Ganache adalah simulator blockchain lokal yang penting secara historis dan membantu developer Ethereum membuat serta menguji smart contract dengan cepat.Ganache menyediakan akun dengan saldo, kunci deterministik, instant mining, snapshot, kontrol waktu, pencatatan gas lokal, forking jaringan, dan impersonasi akun.ETH dan token simulasinya hanya ada di blockchain lokal dan tidak memiliki nilai pasar sungguhan.Ganache berbeda dari Ethereum mainnet karena satu developer mengendalikan akun, produksi blok, riwayat, dan kondisi jaringan.Ganache juga berbeda dari testnet publik karena state-nya biasanya privat, dapat diprediksi, dan mudah di-reset.Ganache resmi dihentikan pada 2023 dan repositori source code-nya menjadi hanya-baca pada 2024.Versi yang diarsipkan mungkin masih berguna untuk memelihara proyek lama, tetapi tidak dapat diharapkan mendukung peningkatan Ethereum atau perilaku compiler terkini.Developer tidak boleh menggunakan kunci privat sungguhan, mengekspos server RPC Ganache ke publik, atau menganggap keberhasilan pengujian lokal sebagai bukti keamanan produksi.Proyek yang beralih dari Ganache sebaiknya mempertahankan pengaturan akun, chain, mining, snapshot, timestamp, RPC, gas, dan fork di lingkungan pengganti yang dipelihara.Ganache paling tepat dipahami sebagai infrastruktur pengembangan Ethereum lama yang konsep pengujiannya terus memengaruhi alat blockchain lokal modern.Anda Mungkin Juga Menyukai
ZK-Rollup
ZK-Rollup-as-a-Service
zk-SNARK
POPULER
Mata uang kripto yang sedang tren saat ini dan menarik perhatian pasar yang signifikan
Volume TERATAS
Mata uang kripto dengan volume trading tertinggi
Baru Ditambahkan
Mata uang kripto yang baru saja masuk listing dan tersedia untuk trading

