Apricot Fase Empat: Snowman++ dan Pengurangan Biaya Transaksi C-Chain

Septian Maulana
Avalanche Indonesia
7 min readSep 17, 2021

Apricot Fase Empat akan aktif di Jaringan Mainnet Avalanche pada jam 5 sore waktu EDT (jam 9 malam waktu UTC) di hari Rabu, 22 September.

Pembaruan (18/09): Setelah aktivasi AP4 yang sukses di Fuji Testnet, maka dilanjutkan dengan aktivasi AP4 di jaringan Mainnet Avalanche yang dijadwalkan pada jam 5 sore waktu EDT (jam 9 malam waktu UTC) di hari Rabu, 22 September. Adapun kode (AvalancheGo@v1.6.0) untuk aktivasi AP4 di Mainnet Avalanche dapat ditemukan di sini.

Karena pemutakhiran ini mencakup pengoptimalan protokol yang tidak kompatibel dengan AvalancheGo versi sebelumnya <v1.6.0, maka node Anda akan ditandai sebagai offline jika Anda tidak memutakhirkan pada waktu aktivasi. Jika node Anda adalah validator, itu berarti node lain akan melaporkan node Anda memiliki waktu aktif yang lebih rendah, yang dapat membahayakan hadiah staking Anda.

Sebagai pengingat, Anda dapat memverifikasi bahwa validator Anda online dan sehat dengan alat statistik staking yang baru di: https://stats.avax.network/dashboard/staking/

Kemarin, kode pra-perilisan telah diterbitkan untuk Fase Empat dari Peningkatan Apricot (“AP4”), yang akan mulai diaktifkan pada pukul 5 sore waktu EDT (9 malam waktu UTC) pada hari Kamis, 16 September di Jaringan Testnet Fuji. Catatan, kode pra-rilis ini hanya berfungsi di Fuji. Jika Anda menjalankannya di Jaringan Mainnet, itu akan otomatis keluar saat startup.

Sambil menunggu aktivasi AP4 yang berhasil di Fuji, waktu aktivasi Avalanche Mainnet AP4 akan diumumkan dan rilis resmi AP4 di AvalancheGo (v1.6.0) juga akan dipublikasikan.

Peningkatan ini mencakup pengoptimalan protokol yang tidak kompatibel dengan versi AvalancheGo sebelumnya <v1.6.0. Jika Anda menjalankan node di Jaringan Testnet Fuji, maka Anda disarankan untuk memperbarui perangkat lunak Anda ke AvalancheGo >= v1.6.0 sebelum melakukan aktivasi di Fuji. Jika Anda adalah Operator Node Mainnet, tidak ada tindakan yang diperlukan hingga kode resmi AvalancheGo@v1.6.0 diterbitkan.

Optimasi 1: Snowman++ (Mengurangi MEV & Contention)

Di Avalanche, setiap node dapat menghasilkan blok kapan saja selama blok itu berisi beberapa transaksi dengan pembayaran biaya yang tidak nol. Setelah menghasilkan blok yang valid, maka diserahkan kepada mesin konsensus, yang dikenal sebagai Snowman, untuk menyelesaikan salah satu dari banyak blok yang berpotensi saling bertentangan pada ketinggian tertentu. Terlepas dari besarnya contention, Snowman akhirnya menyelesaikan semua konflik dan menerima 1 blok di setiap ketinggian (menolak semua yang lain). Namun, sebagai prinsip umum, semakin rendah contention, maka semakin cepat waktu untuk penyelesaian (sehingga lebih sedikit sumber daya yang dihabiskan untuk menyelesaikan konflik ini).

Tanpa melakuka pengoptimalan apa pun, contention di jaringan Avalanche akan meningkat sesuai dengan penggunaan tambahan (karena persaingan untuk nilai yang dapat diekstraksi di jaringan yang semakin meningkat dengan TVL tambahan). Hal ini sudah mulai dilakukan karena beberapa peserta di jaringan mulai memodifikasi perangkat lunak node-nya untuk lebih memanfaatkan “Miner/Maximal Extractable Value” (MEV) dengan melewati beberapa mekanisme pelambatan yang dimaksudkan untuk mencegah produksi blok yang terlalu agresif.

Bagi mereka yang tidak terbiasa dengan MEV, umumnya dianggap “nilai total yang dapat diekstraksi tanpa izin (yaitu tanpa hak khusus) dari pemesanan ulang, penyisipan, atau penyensoran transaksi dalam blok yang diproduksi” (dari Flashbots). Dalam konteks produksi blok yang leaderless di Snowman, maka definisi ini yang sedikit lebih luas tentunya lebih dapat diterapkan, definisi yang juga mencakup nilai yang dapat diekstraksi dari memodifikasi waktu sebuah blok yang diproduksi dan/atau induk yang direferensikan oleh blok yang sedang diproduksi.

Guna mempertahankan kecepatan Avalanche yang cepat dalam waktu finalisasinya dan memastikan persyaratan sumber daya node tidak meningkat secara proporsional dengan pertumbuhan pengguna (yang eksponensial), maka beberapa pengoptimalan yang low-hanging dijamin dapat yang mengurangi contention yang tidak perlu dan biaya yang lebih akurat untuk interaksi yang mahal dengan jaringan. Di Ava Labs, kami memulai upaya R&D sejak ~6 bulan yang lalu untuk meneliti cara mengoptimalkan protokol dan membatasinya secara sistemik dalam kemampuan produsen blok yang membebani jaringan (dan pada semua validator dalam jaringan) dalam persaingan sengit mereka dengan masing-masing lain untuk saling mengalahkan agar dapat melakukan interaksi on-chain tertentu terlebih dahulu. Hari ini, upaya itu terungkap melalui: Snowman++.

Snowman++ akan diimplementasikan sebagai overlay ke Snowman (yang secara otomatis diterapkan ke semua VM yang dibuat pengguna berdasarkan Snowman) sehingga akan membatasi jumlah contention yang dapat dibuat oleh node tertentu dengan memperbesar subset validator secara acak yang dapat menghasilkan blok pada ketinggian tertentu dari waktu ke waktu . Subset validator ini (dan prioritas untuk produksi blok) akan terganggu setelah produksi setiap blok sehingga kemungkinan memproduksi blok berikutnya tidak meningkat jika validator menghasilkan blok sebelumnya. Snowman++ tidak membuat modifikasi apa pun yang dihadapi pengguna, jadi bursa, wallet, dll. tidak diperlukan untuk membuat perubahan apa pun pada integrasi mereka (selain meningkatkan ke AvalancheGo@v1.6.0, jika mereka menjalankan node). Anda dapat membaca spesifikasi teknis Snowman++ selengkapnya di sini.

Para Engineer di Ava Labs telah menemukan fakta bahwa Snowman++ dapat mengurangi jumlah contention yang terlihat di lingkungan yang sangat adversarial sekalipun hingga ~99,7%, dibandingkan dengan Snowman. Ini menghasilkan pengurangan langsung dalam penggunaan bandwidth/CPU/disk IO validator dalam skenario ini.

Optimasi 2: Pengurangan Biaya C-Chain

Apricot Fase 3 memigrasikan C-Chain untuk menggunakan algoritma dengan biaya yang dinamis terbaru disebut “Moderato”. Algoritma ini menargetkan pemanfaatan jaringan tertentu dari waktu ke waktu dan menyesuaikan biaya minimum yang harus dibayarkan setiap transaksi untuk dimasukkan dalam blok berdasarkan jumlah aktivitas (“gas yang dihapus dari jaringan”) selama 10 detik terakhir. Sejak aktivasi AP3, harga gas rata-rata ~98,2 nAVAX, ini telah mengalami penurunan ~56% dari AP2. Harga gas rata-rata per jam selama periode waktu AP3 aktif dapat dilihat pada grafik di bawah ini:

Secara umum, Moderato bertanggung jawab untuk hanya menyesuaikan parameterisasi biaya jaringan ketika beberapa inovasi membatasi dampak bersih dari perubahan berada di suatu tempat yang mendekati netral. Misalnya, ketika DB IO turun ~50%, biaya dapat dikurangi secara bersamaan sebesar ~50%. Saat ini, kisaran harga gas di C-Chain telah diperluas menjadi 25 nAVAX — 1000 nAVAX dari kisaran sebelumnya 75 nAVAX — 225 nAVAX, berkat pengurangan sumber daya yang diperkenalkan oleh Snowman++, terutama secara under load. Selain itu, parameter pemulusan “Moderato” telah diatur sedemikian rupa sehingga biaya akan naik/turun jauh lebih cepat, berdasarkan umpan balik dari komunitas.

Optimasi 3: Biaya Berbasis Blok

Terakhir tetapi tentu tidak kalah pentingnya, Apricot Fase Empat memperkenalkan gagasan biaya blok yang harus dibayar oleh transaksi di blok jika diproduksi lebih cepat dari tingkat target blok. Karena node mana pun dapat menghasilkan blok kapan saja di Snowman, penting agar blok mengkompensasi jaringan secara adil (yaitu membakar AVAX yang cukup) untuk regangan yang mereka hasilkan, terutama ketika diproduksi dalam urutan yang sangat cepat.

Biaya blok adalah fungsi yang terus dievaluasi (seperti “Moderato”) yang nilainya dapat meningkat/menurun berdasarkan berapa banyak blok yang diproduksi lebih cepat dari tingkat target blok. Biaya blok dibayarkan berdasarkan “effective tip” dari semua transaksi di blok, di mana “effective tip” adalah harga gas yang dibayarkan di atas harga gas minimum yang diperlukan dikalikan dengan gas yang digunakan oleh transaksi (yaitu pembakaran yang tidak perlu). Ini terlihat seperti: (“gasPrice” — “minGasPrice”) * “gasUsed”.

Kebanyakan orang (~99%) yang berinteraksi dengan Avalanche, bahkan tidak akan pernah menyadari bahwa ada biaya berbasis blok karena mereka tidak berusaha keras untuk mempercepat penyertaan transaksi mereka ke dalam blok (biasanya tidak perlu melakukannya karena rata-rata waktu hingga finalisasi adalah 1–2 detik). Namun, orang-orang yang mencoba menghasilkan blok secara agresif akan dikenakan biaya untuk kemampuan itu.

Tautan Berguna

  • Kode Peningkatan Apricot Fase Empat dapat ditemukan di sini.
  • Tutorial untuk memperbarui node Anda tersedia di sini.
  • Jika Anda memiliki pertanyaan, silakan hubungi tim pengembang Ava Labs di sini.
  • Untuk daftar lengkap semua item yang ditargetkan dalam peningkatan mendatang, lihat roadmap.

FAQ

Bagaimana cara meningkatkan versi Node yang saya jalankan?

Proses upgrade ke AvalancheGo v1.6.0 sama dengan proses upgrade lainnya. Jika Anda membangun dari source, maka jalankan skrip build seperti sebelumnya. Jika Anda menggunakan binaries yang telah dikompilasi sebelumnya, aktifkan seperti sebelumnya. Jika Anda menggunakan skrip penginstal, gunakan itu seperti sebelumnya.

Setelah Anda memulai AvalancheGo v1.6.0, Anda tidak perlu melakukan hal lain. Informasi lebih lanjut tentang memperbarui node dapat ditemukan di sini. Sebagai pengingat, praktik terbaik adalah memiliki cadangan kunci/sertifikat staking Anda.

Berapa harga gas minimum/maksimum?

25 nAVAX (berkurang 66% dari AP3) dan 1000 nAVAX, masing-masing.
Harap dicatat bahwa harga gas maksimum tidak dibatasi oleh harga gas statis AP2 (225 nAVAX). Jika Anda tidak bermigrasi untuk menggunakan titik akhir biaya dinamis bawaan sebelum aktivasi AP4, ada kemungkinan pemrosesan transaksi Anda akan tertunda (jika harga gas jaringan minimum naik di atas 225 nAVAX).

Anda bisa mendapatkan harga gas yang disarankan saat ini dengan memanggil metode eth_gasPrice API. Sebagai contoh:

Saya menggunakan Metamask. Apakah saya perlu mengubah sesuatu?

Tidak. Metamask akan secara otomatis memperhitungkan harga gas minimum/maksimum yang baru setelah berlaku (seperti yang dilakukan untuk pengenalan biaya dinamis di AP3).

Apakah saya harus meningkatkan versi Node saya?

Jika Anda tidak meningkatkan validator ke v1.6.0 sebelum tanggal aktivasi Avalanche Mainnet (akan dibagikan dalam beberapa hari mendatang), node Anda akan ditandai sebagai offline dan node lain akan melaporkan bahwa node Anda memiliki waktu aktif yang lebih rendah, yang dapat membahayakan Anda dalam mendapatkan hadiah staking.

Apakah ada perubahan persyaratan perangkat keras?

Tidak.

Apakah pembaruan akan mengurangi waktu aktif validator saya?

Tidak.

Saya pikir ada sesuatu yang salah. Apa yang harus saya lakukan?

Pertama, pastikan Anda telah membaca dokumentasi secara menyeluruh dan mencari FAQ. Mungkin menjawab pertanyaan Anda di suatu tempat. Jika Anda tidak melihat jawabannya, buka server Discord kami dan cari pertanyaan Anda. Jika belum pernah ditanyakan, silahkan posting di channel yang paling sesuai.

Sumber dalam Bahasa Inggris

Penulis: Patrick O'Grady

Tentang Avalanche

Avalanche adalah platform kontrak pintar tercepat di industri blockchain saat ini, yang diukur dengan waktu hingga finalisasi per transaksi, dan memiliki validator yang paling banyak dalam mengamankan aktivitasnya dari protokol Proof of Stake apa pun yang ada. Avalanche sangat cepat, dengan biaya yang murah, dan ramah lingkungan. Setiap aplikasi kontrak pintar dapat mengungguli pesaingnya dengan menggunakan Avalanche. Tidak percaya? Coba Avalanche sekarang.

Website | Whitepapers | Twitter | Discord | GitHub | Documentation | Explorer | Avalanche-X | Telegram | Facebook | LinkedIn | Reddit | YouTube

--

--

Avalanche Indonesia
Avalanche Indonesia

Published in Avalanche Indonesia

Avalanche adalah platform sumber terbuka untuk meluncurkan aplikasi keuangan yang terdesentralisasi dan penerapan blockchain perusahaan dalam satu ekosistem sehingga dapat dioperasikan secara interoperable dengan skalabilitas yang sangat tinggi

Septian Maulana
Septian Maulana

Written by Septian Maulana

Translator, Content Creator, Crypto and Blockchain Enthusiast