Salah satu cara paling mudah untuk menghemat bahan bakar adalah dengan membuat kode Anda lebih sederhana. Semakin sedikit kode yang harus dieksekusi, semakin sedikit bahan bakar yang dikonsumsi.
Pertimbangkan fungsi berikut:
Soliditas
pragma soliditas ^0.8.9;
Contoh Pengoptimalan kontrak {
alamat[] admin publik;
fungsi isUserAdmin(pengguna alamat) tampilan publik kembali (bool) {
for (uint i = 0; i < admins.length; i++) {
if (admins[i] == user) return true;
}
menghasilkan nilai salah;
}
}
Fungsi di atas menggunakan loop, yang menjadi lebih mahal seiring bertambahnya admin. Struktur yang lebih hemat gas akan menggunakan pemetaan:
Soliditas
kontrak OptimizationExampleOptimized {
pemetaan(alamat => bool) admin publik;
fungsi isUserAdmin(pengguna alamat) tampilan publik kembali (bool) {
return admins[user];
}
}
Saat bekerja dengan Ethereum, ingatlah bahwa Anda membayar untuk setiap penyimpanan. Jika Anda menyimpan data yang sama di beberapa tempat, pertimbangkan bagaimana Anda dapat menyimpannya satu kali dan mereferensikannya di tempat lain.
Perpustakaan di Solidity adalah potongan kode yang dapat digunakan kembali. Mereka dapat membantu Anda menulis kode modular, dan karena mereka diterapkan hanya sekali dan dihubungkan dengan kontrak lain, mereka dapat menghemat bahan bakar dalam jangka panjang.
Soliditas
perpustakaan SafeMath {
fungsi tambah(uint a, uint b) pengembalian murni internal (uint) {
uint c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
//... fungsi matematika lainnya
}
kontrak MenggunakanSafeMath {
menggunakan SafeMath untuk uint;
tidak memiliki nilai publik;
kenaikan fungsi (uint _value) publik {
value = value.add(_value);
}
}
Kata kunci delete
di Solidity memungkinkan Anda untuk membatalkan variabel, yang mengembalikan sebagian bahan bakar. Jika Anda sudah selesai dengan bagian penyimpanan tertentu, hapus penyimpanan tersebut untuk mengklaim pengembalian dana ini.
Meskipun menyimpan data di blockchain membutuhkan biaya yang mahal, pencatatan peristiwa logging relatif lebih murah. Jika Anda memiliki data yang tidak perlu dibaca dari kontrak namun harus dapat diverifikasi, pertimbangkan untuk menggunakan log peristiwa.
Beberapa operasi memerlukan penggunaan gas yang lebih intensif dibandingkan operasi lainnya. Contohnya:
Optimalisasi kontrak pintar untuk gas adalah seni sekaligus sains. Pendekatan-pendekatan yang dibahas dalam kursus ini, jika digabungkan, berpotensi menurunkan biaya bahan bakar kontrak Anda secara drastis. Perlu diingat bahwa ekosistem Ethereum dan alat-alatnya, termasuk Remix, selalu berubah. Ikuti perkembangan terkini, dan uji serta tingkatkan kontrak Anda secara rutin untuk pengoptimalan. Komunitas Ethereum sangat besar dan bermanfaat, jadi jangan pernah takut untuk mencari panduan atau praktik terbaik. Selamat bersenang-senang coding!
Salah satu cara paling mudah untuk menghemat bahan bakar adalah dengan membuat kode Anda lebih sederhana. Semakin sedikit kode yang harus dieksekusi, semakin sedikit bahan bakar yang dikonsumsi.
Pertimbangkan fungsi berikut:
Soliditas
pragma soliditas ^0.8.9;
Contoh Pengoptimalan kontrak {
alamat[] admin publik;
fungsi isUserAdmin(pengguna alamat) tampilan publik kembali (bool) {
for (uint i = 0; i < admins.length; i++) {
if (admins[i] == user) return true;
}
menghasilkan nilai salah;
}
}
Fungsi di atas menggunakan loop, yang menjadi lebih mahal seiring bertambahnya admin. Struktur yang lebih hemat gas akan menggunakan pemetaan:
Soliditas
kontrak OptimizationExampleOptimized {
pemetaan(alamat => bool) admin publik;
fungsi isUserAdmin(pengguna alamat) tampilan publik kembali (bool) {
return admins[user];
}
}
Saat bekerja dengan Ethereum, ingatlah bahwa Anda membayar untuk setiap penyimpanan. Jika Anda menyimpan data yang sama di beberapa tempat, pertimbangkan bagaimana Anda dapat menyimpannya satu kali dan mereferensikannya di tempat lain.
Perpustakaan di Solidity adalah potongan kode yang dapat digunakan kembali. Mereka dapat membantu Anda menulis kode modular, dan karena mereka diterapkan hanya sekali dan dihubungkan dengan kontrak lain, mereka dapat menghemat bahan bakar dalam jangka panjang.
Soliditas
perpustakaan SafeMath {
fungsi tambah(uint a, uint b) pengembalian murni internal (uint) {
uint c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
//... fungsi matematika lainnya
}
kontrak MenggunakanSafeMath {
menggunakan SafeMath untuk uint;
tidak memiliki nilai publik;
kenaikan fungsi (uint _value) publik {
value = value.add(_value);
}
}
Kata kunci delete
di Solidity memungkinkan Anda untuk membatalkan variabel, yang mengembalikan sebagian bahan bakar. Jika Anda sudah selesai dengan bagian penyimpanan tertentu, hapus penyimpanan tersebut untuk mengklaim pengembalian dana ini.
Meskipun menyimpan data di blockchain membutuhkan biaya yang mahal, pencatatan peristiwa logging relatif lebih murah. Jika Anda memiliki data yang tidak perlu dibaca dari kontrak namun harus dapat diverifikasi, pertimbangkan untuk menggunakan log peristiwa.
Beberapa operasi memerlukan penggunaan gas yang lebih intensif dibandingkan operasi lainnya. Contohnya:
Optimalisasi kontrak pintar untuk gas adalah seni sekaligus sains. Pendekatan-pendekatan yang dibahas dalam kursus ini, jika digabungkan, berpotensi menurunkan biaya bahan bakar kontrak Anda secara drastis. Perlu diingat bahwa ekosistem Ethereum dan alat-alatnya, termasuk Remix, selalu berubah. Ikuti perkembangan terkini, dan uji serta tingkatkan kontrak Anda secara rutin untuk pengoptimalan. Komunitas Ethereum sangat besar dan bermanfaat, jadi jangan pernah takut untuk mencari panduan atau praktik terbaik. Selamat bersenang-senang coding!