Rust + Solana Increment & Reset - Solana-rust Typing CST Test
Loading…
Rust + Solana Increment & Reset — Solana-rust Code
Solana program in Rust to increment and reset a counter stored in account data.
use borsh::{BorshDeserialize, BorshSerialize};
use solana_program::{account_info::AccountInfo, entrypoint, entrypoint::ProgramResult, msg, pubkey::Pubkey};
#[derive(BorshSerialize, BorshDeserialize, Debug)]
pub struct Counter {
pub value: u64
}
entrypoint!(process_instruction);
fn process_instruction(_program_id: &Pubkey, _accounts: &[AccountInfo], instruction_data: &[u8]) -> ProgramResult {
let mut counter = Counter { value: 0 }
match instruction_data[0] {
0 => counter.value += 1
1 => counter.value = 0
_ => msg!("Unknown instruction")
}
msg!("Counter value: {}", counter.value)
Ok(())
}Solana-rust Language Guide
Solana Rust is the primary language used to write smart contracts (called programs) on the Solana blockchain. It leverages Rust’s safety and performance features to build high-throughput, low-latency decentralized applications.
Primary Use Cases
- ▸Building high-performance DeFi protocols
- ▸NFT minting, marketplaces, and auctions
- ▸On-chain gaming logic
- ▸Cross-program interactions on Solana
- ▸Real-time data feeds and oracles
Notable Features
- ▸Memory safety via Rust’s ownership model
- ▸High-performance programs for parallel execution
- ▸Low-latency transactions
- ▸Strong type system prevents many bugs
- ▸BPF compilation for Solana runtime
Origin & Creator
Rust-based smart contracts on Solana were promoted by Solana Labs around 2017-2018, adopting Rust for its safety, concurrency, and performance benefits.
Industrial Note
Solana Rust programs are preferred in projects requiring high TPS (transactions per second), low fees, and efficient on-chain computation like decentralized exchanges, NFT marketplaces, and real-time gaming.