SDK de Savitri
savitri-sdk es la biblioteca cliente oficial en Rust para interactuar con Savitri Network. Proporciona:
- RpcClient -- Cliente JSON-RPC 2.0 para todas las APIs del nodo
- LightClient -- Envoltorio simplificado para operaciones comunes
- Wallet -- Gestión de claves Ed25519 y firma de transacciones
- ContractClient -- Helpers de alto nivel para contratos, oráculos y gobernanza
- TransactionBuilder -- Constructor fluido para construir transacciones
Instalación
Agrega a tu Cargo.toml:
[dependencies]
savitri-sdk = { path = "../savitri-sdk" }
tokio = { version = "1", features = ["full"] }
anyhow = "1"
Para soporte de cliente HTTP:
savitri-sdk = { path = "../savitri-sdk", features = ["http-client"] }
Inicio Rápido
use savitri_sdk::{RpcClient, Wallet, TransactionBuilder};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
// Conectar a un nodo
let client = RpcClient::from_url("http://localhost:8545")?;
// Verificación de estado
let health = client.health().await?;
println!("Node: {} ({})", health.service, health.mode);
// Altura del bloque
let height = client.get_block_number().await?;
println!("Height: {}", height);
// Crear una billetera
let wallet = Wallet::new();
println!("Address: {}", wallet.address());
// Consultar saldo
let account = client.get_account(wallet.address()).await?;
println!("Balance: {} (nonce: {})", account.balance, account.nonce);
Ok(())
}
Módulos
| Módulo | Descripción |
|---|---|
| Cliente RPC | Cliente JSON-RPC 2.0 completo |
| Wallet | Generación de claves, firma, consultas de saldo |
| Transacciones | Construir, firmar y enviar transacciones |
| Contratos | Llamadas a contratos, oráculo, gobernanza |
| Cliente Ligero | API simplificada para consumidores ligeros |
Seguridad
- Aplicación de HTTPS: Los endpoints remotos (que no son localhost) requieren HTTPS de forma predeterminada. Establece
allow_insecure: truepara omitirlo (no recomendado). - TLS 1.2 mínimo: Las conexiones HTTPS aplican TLS 1.2+.
- Puesta a cero de claves: Las claves privadas se ponen a cero en
Wallet::drop()para evitar filtraciones de memoria. - Tiempo de espera: Tiempo de espera de solicitud predeterminado de 30 segundos.
Herramientas CLI
El SDK incluye tres herramientas binarias:
# Generar pares de claves ed25519
cargo run -p savitri-sdk --bin key_generator
# Firmar transacciones sin conexión
cargo run -p savitri-sdk --bin transaction_signer
# Monitorear el estado del nodo
cargo run -p savitri-sdk --bin network_monitor