Light Client
Il LightClient fornisce un'API semplificata per i consumatori leggeri che necessitano solo di interrogazioni di base alla catena e invio di transazioni.
Configurazione
use savitri_sdk::LightClient;
let client = LightClient::new("http://localhost:8545")?;
API
// Connection check
let connected: bool = client.is_connected().await;
// Health
let health = client.health().await?;
println!("{} - {}", health.mode, health.status);
// Block height
let height: u64 = client.get_block_number().await?;
// Block by height
let block = client.get_block(42).await?;
// Account info
let account = client.get_account("address_hex").await?;
println!("Balance: {}, Nonce: {}", account.balance, account.nonce);
// Balance only
let balance: String = client.get_balance("address_hex").await?;
// Submit transaction
let result = client.send_raw_transaction("signed_tx_hex").await?;
println!("TX hash: {}", result.tx_hash);
// PoU status
let pou = client.pou_local().await?;
Quando Usare LightClient vs RpcClient
| Funzionalità | LightClient | RpcClient |
|---|---|---|
| Stato/ping | Sì | Sì |
| Interrogazioni blocchi | Altezza + per altezza | Tutti i metodi per blocchi |
| Interrogazioni account | Saldo + account | Saldo, nonce, token |
| Transazioni | Invia raw | Invia raw + ottieni + ricevuta |
| PoU | Solo locale | Locale, peer, gruppi, masternode |
| Mempool | No | Dimensione, stato, in attesa |
| Token | No | Info, saldo, trasferimenti |
| Richieste in batch | No | Sì |
| JSON-RPC grezzo | No | Sì (call_raw) |
Usa LightClient per integrazioni semplici. Usa RpcClient direttamente quando hai bisogno dell'intera superficie API. Puoi accedere all'RpcClient interno tramite client.rpc() per operazioni avanzate.