Halo! Selamat datang di bagian penutup dari seri "Membedah Stellar".
Di dua artikel sebelumnya, kita sudah membahas infrastruktur dasar jaringan Stellar. Kini, saatnya kita masuk ke fitur paling canggihnya: Soroban.
Soroban adalah platform Smart Contract milik Stellar. Jika sebelumnya kita hanya bisa "mengirim dan menerima uang", dengan Soroban kita bisa menanamkan logika backend yang kompleks (seperti lelang, patungan dana, atau game) langsung ke dalam blockchain. Semua ini ditulis menggunakan bahasa pemrograman Rust.
Siapkan terminal kalian, mari kita buat Smart Contract pertama kita!
Pastikan kamu sudah menginstal Rust dan Stellar CLI di komputermu. Jika belum, kamu bisa mengikuti panduan resminya (biasanya menggunakan rustup dan cargo install --locked stellar-cli).
Setelah siap, mari kita inisialisasi project Soroban baru melalui terminal:
cargo new --lib soroban-hello-world
cd soroban-hello-worldBuka file Cargo.toml dan tambahkan dependency Soroban SDK:
[package]
name = "soroban-hello-world"
version = "0.1.0"
edition = "2021"
[dependencies]
soroban-sdk = "20.0.0" # Pastikan menggunakan versi terbaru
[lib]
crate-type = ["cdylib"] # Penting: Format ini dibutuhkan agar bisa di-compile ke WebAssembly (Wasm)Di dalam Soroban, smart contract hanyalah kumpulan fungsi Rust biasa yang dibungkus dengan semacam "label" (macro) khusus.
Buka file src/lib.rs, hapus semua isinya, dan copy-paste kode Hello World sederhana ini:
#![no_std] // Smart contract tidak punya akses ke OS (Standard Library)
use soroban_sdk::{contract, contractimpl, vec, Env, String, Vec};
// 1. Mendefinisikan Contract
#[contract]
pub struct HelloContract;
// 2. Mengimplementasikan Logika Contract
#[contractimpl]
impl HelloContract {
// Fungsi ini menerima input nama, dan mengembalikan kalimat sapaan
pub fn hello(env: Env, to: String) -> Vec<String> {
vec![&env, String::from_str(&env, "Hello"), to]
}
}Penjelasan Singkat:
#[contract]: Memberi tahu compiler bahwa HelloContract adalah sebuah smart contract.#[contractimpl]: Tempat kita menaruh logika fungsinya.hello: Menerima input to (misal: "Dunia") dan akan mengembalikan sebuah array/vector berisi ["Hello", "Dunia"].Blockchain tidak bisa membaca kode Rust secara langsung. Kita harus mengubahnya (compile) menjadi format WebAssembly (.wasm). Jalankan perintah ini di terminal:
cargo build --target wasm32-unknown-unknown --releaseJika berhasil, file hasil compile akan muncul di folder target/wasm32-unknown-unknown/release/soroban_hello_world.wasm. File inilah yang nantinya siap di-deploy ke jaringan Stellar!
Kesimpulan Akhir
Selamat! Kamu baru saja menulis Smart Contract pertamamu menggunakan bahasa Rust di ekosistem Soroban.
Memang rasanya seperti kembali belajar backend dari nol karena sintaks Rust yang ketat. Tapi bayangkan potensinya: kamu bisa membuat aplikasi lelang real-time, mendigitalkan aset dunia nyata, atau membuat sistem otomatisasi pembayaran tanpa perlu pusing menyewa server AWS atau mengurus database tersendiri. Jaringan Stellar yang akan mengeksekusi dan mengamankan kodenya untukmu.
Eksplorasi kita di ekosistem Stellar baru saja dimulai. Selamat bereksperimen di dunia Web3!