Rust VM SDK: Bangun Mesin Virtual secara Kustom di Avalanche menggunakan Rust

Mari luncurkan blockchain Anda sendiri di Subnet Avalanche menggunakan Rust sepenuhnya

Kami sangat senang mengumumkan rilis SDK kedua kami untuk membuat Mesin Virtual Avalanche, yaitu . Sebagai alternatif untuk menggunakan Golang, Anda dapat menggunakan untuk meluncurkan blockchain Anda sendiri di Subnet Avalanche. Lihat contoh VMnya kami di untuk memulai membangun (peringatan spoiler: HANYA bahasa pemograman Rust yang perlu Anda gunakan saat menulis Rust VM Anda)!

Di Ava Labs, kami terus berinvestasi dalam memberdayakan para kreator dengan menghadirkan SDK dan alat untuk mempermudah peluncuran blockchain Anda sendiri di Avalanche. Kami menantikan untuk melihat apa yang dibuat oleh developer Rust menggunakan SDK baru ini dan dengan senang hati memberikan dukungan di .

Primer: Membangun Blockchain Anda sendiri di Avalanche

Untuk membuat blockchain Anda sendiri di Avalanche, Anda harus terlebih dahulu menulis Anda sendiri. VM menentukan logika bahwa blockchain Anda akan berjalan dan mampu melakukan apa saja selama itu mengimplementasikan yang diekspos oleh AvalancheGo, yang akan berkomunikasi menggunakan antarmuka ini melalui gRPC.

Penggunaan gRPC dan protobuf memungkinkan model objek yang konsisten, sehingga meningkatkan pemahaman sistem. Skema didefinisikan terlebih dahulu dan dapat dengan mudah diperluas dengan informasi baru tanpa membatalkan data yang ada. Model komunikasi ini juga memungkinkan developer untuk mengimplementasikan VM dalam bahasa apa pun yang mereka inginkan selama mendukung gRPC dan protobuf. Seperti disebutkan sebelumnya, saat ini kami memiliki SDK untuk Golang dan Rust, tetapi berencana untuk menambahkan yang lain di masa mendatang.

Lebih khusus lagi, AvalancheGo adalah klien ke server plugin, dan mesin virtual adalah server yang mengimplementasikan antarmuka gRPC. Mari kita lihat contoh di , menginisialisasi VM:

message InitializeRequest {
uint32 network_id = 1;
bytes subnet_id = 2;
bytes chain_id = 3;
bytes node_id = 4;
bytes x_chain_id = 5;
bytes avax_asset_id = 6;
bytes genesis_bytes = 7;
bytes upgrade_bytes = 8;
bytes config_bytes = 9;
repeated VersionedDBServer db_servers = 10;
// server_addr is the address of the gRPC server which serves
// the messenger, keystore, shared memory, blockchain alias,
// subnet alias, and appSender services
string server_addr = 11;
}

Permintaan inisialisasi dibuat saat AvalancheGo menginisialisasi VM. Setelah menerima permintaan ini, VM dapat menyiapkan saluran antara VM dan Mesin Konsensus Snowman, dan mengonfigurasi instans database yang dikelola oleh AvalancheGo, tempat byte asal yang diterima dapat disimpan.

Menggunakan Rust SDK

Mesin virtual di Golang menggunakan sebagai middleware untuk mengabstraksi aspek yang lebih kasar dari orkestrasi plugin (logging, pemeriksaan kompatibilitas, dll.). Rust SDK baru tidak hanya mengimplementasikan logika orkestrasi boilerplate ini, tetapi juga menyediakan sekumpulan library yang menyederhanakan VM dan pengembangan alat di Rust. Misalnya, menggunakan Rust SDK untuk mengotomatiskan penginstalan subnet di cloud, dan melakukan uji beban menggunakan AWS KMS untuk menandatangani transaksi. diterbitkan di .

Implementasi VM minimal, seperti , hanya memerlukan beberapa ratus baris kode dan tidak memerlukan penambahan dalam bahasa pemrograman lain untuk membuat VM berfitur lengkap (meskipun node Avalanche seluruhnya ditulis dalam Golang) . Berikut adalah contoh cara memulai menggunakan :

[dependencies]
avalanche-types = { version = "0.0.x", features = ["subnet", "codec_base64"] }
use avalanche_types::subnet;
use timestampvm::vm;
use tokio::sync::broadcast::{self, Receiver, Sender};
#[tokio::main]
async fn main() -> std::io::Result<()> {
let (stop_ch_tx, stop_ch_rx): (Sender<()>, Receiver<()>) = broadcast::channel(1);
let vm_server = subnet::rpc::vm::server::Server::new(vm::Vm::new(), stop_ch_tx);
subnet::rpc::plugin::serve(vm_server, stop_ch_rx).await
}

Lihatlah untuk panduan lengkap tentang cara membuat Mesin Virtual khusus menggunakan SDK baru.

Kesimpulan

Kami sangat senang dengan potensi yang dimiliki Rust untuk membangun blockchain yang efisien dan dapat diskalakan. Kami berharap dapat terus meningkatkan SDK dan bekerja sama dengan komunitas dalam semua jenis desain blockchain baru. Anda dapat mengikuti dengan berlangganan . Jika Anda memiliki saran tentang cara meningkatkan SDK, silahkan buka PR!

Terjemahan dalam Bahasa Inggris

Penulis: Gyuho Lee

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.

| | | | | | | | | | | |

--

--

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

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store