10 jam yang lalu

Bug Solana v1 dapat membekukan pembaca dan menonaktifkan batas biaya

Hidden Solana upgrade bug can freeze network readers and silently disable fee limits

CryptoSlate

Format transaksi v1 Solana menaikkan payload maksimum dari 1.232 byte menjadi 4.096 byte. Kenaikan ini sekitar 3,3 kali lipat. Transaksi legacy dan v0 mempertahankan batas serta perilaku yang ada. Pengguna dan aplikasi yang terus menggunakan format tersebut tidak perlu bermigrasi. Halaman pembaruan langsung Solana mencantumkan v1 sebagai tidak aktif di mainnet per 4 September. Testnet aktif. Devnet berjalan pada epoch 1140. Changelog Solana yang diterbitkan pada 28 Agustus menyebut transaksi v1 akan segera hadir. Konsumen RPC harus mendukung format tersebut sebelum membaca data v1. Opt-in hanya memberi tahu layanan RPC tentang format tertinggi yang dapat didekode oleh klien. Opt-in tidak meminta data v1 atau mengubah cara transaksi legacy dan v0 dikembalikan. V1 memindahkan batas compute unit, batas data akun yang dimuat, dan biaya prioritas ke dalam objek, bukan instruksi. Pengindeks yang terus memindai instruksi dapat melaporkan anggaran komputasi nol untuk setiap transaksi v1 tanpa memunculkan kesalahan. Flag protobuf bernilai true untuk v0 dan v1. Karena itu, konsumen Geyser atau gRPC yang usang dapat melabeli v1 sebagai v0 dan mempertahankan anggaran kosong. Konsumen harus membuat ulang protobuf stub dan memeriksa field 7 sebelum membaca flag. Relayer, paymaster, dan penanda tangan server lain harus memperbarui pemeriksaan kebijakan mereka. Sponsor yang memindai instruksi untuk mencari batas biaya mungkin tidak lagi menerapkan batas yang mengikat, karena instruksi tersebut dapat muncul di v1 tetapi dieksekusi sebagai no-op. Server harus mengidentifikasi awalan v1 dan menerapkan batas biaya serta sumber daya dalam konfigurasi transaksi. Artikel tersebut menyebutnya sebagai kegagalan pengendalian aplikasi, bukan kelemahan konsensus. Artikel itu mengatakan masalah ini bukan bukti bahwa dana otomatis berada dalam risiko. Solana menyatakan tidak ada sysvar atau syscall saat ini yang mengekspos konfigurasi pesan v1. Program yang mengatur perilaku berdasarkan instruksi yang diinspeksi harus berhenti mengandalkan pemeriksaan tersebut ketika v1 aktif. Rilis minimum yang tercantum dan mampu membaca format ini adalah 8.0.0, 3.0.0-rc.3, Rust 4.2.x, Python 0.29.0, dan 1.23.0. Lini web3.js 1.x dapat membaca v1 mulai 1.99.0-beta.0, tetapi tidak dapat membuat, menandatangani, atau mengirimnya. Pengguna Yellowstone memerlukan setidaknya 12.6.0, plugin geyser 15.1.1, klien gRPC 12.0.0 atau 6.0.0, tergantung stack mereka. Pembuatan transaksi v1 bersifat opsional. Tim yang membuatnya harus menetapkan batas compute unit dan data akun yang dimuat secara eksplisit karena keduanya secara default bernilai nol. Mereka harus menghapus instruksi no-op. Mereka harus berhenti menggunakan tabel pencarian alamat. Mereka harus menggunakan base64 untuk payload yang lebih besar dari 1.232 byte. Batas waktu terdekat adalah uji kompatibilitas bagi layanan yang mungkin membaca, mengindeks, atau mensponsori transaksi v1 milik pengguna lain.

This content is an AI-generated summary/analysis for informational purposes only and does not constitute investment advice.