Panduan Pengguna: Transaksi dan Transaksi yang Gagal
Baru mengenal kripto dan web3?
Kunjungi MetaMask Learn untuk menikmati pengalaman belajar langsung yang dirancang khusus bagi pendatang baru di web3. Ini sepenuhnya gratis, tersedia dalam berbagai bahasa, dan mencakup alat yang berguna seperti simulasi untuk membantu menemukan pijakan Anda dengan MetaMask.
Artikel ini berisi penjelasan dan tautan ke sumber daya seputar transaksi dan mengapa transaksi tersebut gagal, dan lebih jauh lagi, tautan ke skenario transaksi umum yang gagal dan cara mengatasinya:
- Anatomi transaksi blockchain
- Masalah umum
- Perbaikan utama
- Sumber daya tambahan dan langkah selanjutnya
- Tanya Jawab Umum
Anatomi transaksi blockchain
Saat berbicara tentang 'transaksi' di jaringan blockchain publik, kita biasanya berbicara tentang interaksi antara dua alamat; dengan kata lain, token, baik yang dapat dipertukarkan atau tidak, atau aset kripto lainnya yang 'dikirim' dari satu alamat ke alamat lainnya. Ada pula transaksi yang disebut sebagai "transaksi internal", yang merupakan interaksi yang terjadi antara kontrak cerdas, dan sebagian besarnya berada di luar cakupan artikel ini.
Ingin informasi lebih lanjut?
Untuk informasi lebih lanjut seputar jaringan blockchain dan cara kerjanya secara umum, lihat artikel pengantar kami di sini, dan jika Anda mengalami kendala pada kata-kata yang tidak dikenal, glosarium kami selalu tersedia.
Demi kejelasan, sebenarnya tidak ada yang dikirim ke mana pun. Jaringan blockchain yang mendukung kontrak cerdas seperti Ethereum memiliki sejumlah komponen atau fungsi yang berbeda. Salah satunya adalah apa yang kita sebut "komputer": Mesin Virtual Ethereum, atau EVM, yang mampu menjalankan program ('kontrak cerdas'). Namun, tulang punggung sistem ini adalah ledger terdistribusi: bayangkan sebuah lembar kerja yang memuat, di satu sisi, setiap alamat dompet Ethereum, dan masing-masing alamat memiliki kolom untuk tiap jenis aset kripto yang dimilikinya.
Mari kita gunakan contoh sebagai ilustrasi. Katakanlah Guillaume ingin mengirim transaksi ke Dolores. Guillaume memiliki 1,36 ETH di akunnya, dan ia berencana mengirim 0,5 ETH kepada Dolores. Kedengarannya seperti hari yang baik bagi Dolores, bahkan di pasar yang sedang lesu.
Guillaume membuka dompet MetaMask miliknya, memasukkan alamat Dolores, mengonfigurasi parameter gas yang ingin dibayarkannya, lalu menekan 'kirim'.
Pada tahap ini, transaksi memasuki status penahanan sementara secara lokal, yang dikenal sebagai pool memori lokal, atau mempool lokal. Kemudian, transaksi akan 'diambil' oleh node terdekat di jaringan; bergantung pada pengaturan gas Guillaume, transaksinya akan diprioritaskan (semakin tinggi Guillaume bersedia membayar per unit gas, semakin cepat transaksinya akan diproses), dan disebarkan ke node lain di jaringan. Node-node tersebut akan melakukan pekerjaan verifikasi bahwa Guillaume memiliki ETH untuk digunakan, kemudian akan benar-benar melakukan 'transaksi': ledger akan dimodifikasi; 0,5 akan didebit dari saldo Guillaume, dan 0,5 akan dikreditkan ke saldo Dolores.
'Tangan yang bergerak, setelah menulis, akan terus bergerak': ETH tidak bergerak melalui jaringan pada hakikatnya; itu bukanlah email yang terkirim dari komputer Guillaume ke kotak masuk MetaMask milik Dolores atau semacamnya. Guillaume mengirim permintaan, yang diautentikasi oleh kunci pribadinya melalui MetaMask, ke jaringan untuk mendebit akunnya dan mengkredit akun Dolores, dan setelah proses verifikasi yang diprogramkan ke dalam protokol jaringan, maka selesailah.
Hanya itu saja yang ada dalam sebuah transaksi: permintaan ke ledger untuk mengalokasikan kembali sesuatu dari satu alamat ke alamat lainnya.
Saat terjadi kesalahan
Kesalahan dapat terjadi karena sejumlah alasan. Sering kali, masalahnya 'pada perangkat lunak': MetaMask mengalami bug, atau ada yang salah dikonfigurasikan terkait jaringan yang Anda coba gunakan; terjadi kesalahan konektivitas.
Masalah yang umum terjadi adalah pengguna, dalam upaya membayar lebih sedikit untuk transaksi mereka, menetapkan batas gas yang sangat rendah, dan kondisi jaringan sangat padat sehingga tidak ada ruang di blok mana pun untuk transaksi "murah" seperti itu, terkadang untuk waktu yang sangat lama: pada akhirnya, transaksi ini akan menjadi "basi" dan harus dibatalkan oleh pengguna.
Jika Anda telah mengirim transaksi dan belum diselesaikan, statusnya akan ditampilkan sebagai "tertunda" di MetaMask.
Jika Anda mengirim transaksi, dan gagal, kemungkinan besar penyebabnya adalah kekurangan gas: Anda "kehabisan gas", dengan kata lain, transaksi tersebut memerlukan biaya gas yang, jika dikalikan dengan harga gas, menghasilkan jumlah total mata uang asli jaringan yang lebih besar dibandingkan yang Anda miliki di dompet Anda.
Informasi
Untuk informasi lebih lanjut seputar perhitungan gas, lihat panduan gas kami di sini.
Hal ini dapat terjadi karena sejumlah alasan, tetapi satu hal yang perlu dipertimbangkan adalah transaksi apa yang hendak Anda lakukan. Mencetak NFT selama jam-jam sibuk jaringan dapat sangat menguras gas; jika Anda mencoba transaksi baru atau eksperimental, mungkin ada baiknya mencoba pada jaringan uji sebelum membayar biaya jaringan sebenarnya.
Memperbaiki masalah
Faktor Kunci #1: lokal atau broadcast ke jaringan
Saat Anda mendiagnosis masalah transaksi, khususnya yang berkaitan dengan transaksi yang tertunda, Anda perlu melihat apakah transaksi tersebut masih ada di mempool lokal, atau apakah transaksi tersebut telah sampai ke jaringan dan terhenti di sana karena alasan apa pun. Jika hanya ada di mempool lokal, solusinya bisa semudah mengunci dan membuka kunci dompet MetaMask Anda (pastikan Anda mengetahui kata sandi dan mencadangkan Frasa Pemulihan Rahasia sebelum melakukannya). Jika sudah sampai ke jaringan, solusinya bisa lebih rumit.
Untuk informasi lebih lanjut terkait cara memperbaiki masalah ini, lihat tautan berikut.
Faktor Kunci #2: Nonce
Kata ini dapat memiliki beberapa arti yang berbeda. Ini adalah singkatan dari "nomor yang hanya digunakan satu kali", dan dalam konteks ini, artinya secara kasar adalah 'nomor transaksi', dimulai dari transaksi pertama yang dilakukan oleh alamat pengirim. Anda bisa mendapat masalah nyata jika, sebagai contoh, Anda menjalankan dua transaksi berbeda dari beberapa instansi MetaMask dengan alamat dompet yang sama pada saat bersamaan. Transaksi alamat Anda harus berurutan naik sesuai dengan nonce-nya. Akan tetapi, sebagaimana nonce yang dapat menyebabkan transaksi macet, nonce dapat menjadi kunci untuk mengeluarkan transaksi yang macet.
Untuk informasi lebih lanjut seputar teknik tersebut, lihat di sini.
Langkah selanjutnya
Jika Anda memiliki transaksi yang gagal atau tertunda, lihat sumber daya berikut untuk mendapatkan bantuan.
Cara mengirim token dari dompet MetaMask
Cara mempercepat atau membatalkan transaksi yang tertunda
Mengapa transaksi saya gagal dengan kesalahan "Kehabisan Gas"? Bagaimana cara memperbaikinya?
Bisakah saya membatalkan transaksi yang sudah dikonfirmasi?
Tanya jawab umum
T: Satu akun di dompet saya memiliki transaksi yang tertunda atau sedang dalam antrean. Bisakah saya memulai transaksi lain dari akun berbeda dalam dompet yang sama?
J: Ya, bisa. Nonce dihitung per akun, bukan per dompet.