Démarrage Rapide
Lancez un nœud Savitri local et envoyez votre première transaction en moins de 5 minutes.
1. Générer des Clés
# Générer une paire de clés pour le nœud
cargo run -p savitri-sdk --bin key_generator
Cela produit une paire de clés ed25519 :
- Clé privée : 64 caractères hexadécimaux (32 octets) -- gardez-la secrète
- Clé publique : 64 caractères hexadécimaux (32 octets) -- c'est votre adresse
2. Démarrer un Lightnode
cargo run -p savitri-lightnode --bin lightnode -- \
--listen-port 4001 \
--tx-interval-secs 2 \
--block-interval-secs 10 \
--max-block-txs 32
Le lightnode commence à écouter sur le port 4001 (P2P) et 8545 (RPC).
3. Vérifier l'État du Nœud
curl -X POST http://localhost:8545/rpc \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "savitri_health",
"params": [],
"id": 1
}'
Réponse :
{
"jsonrpc": "2.0",
"result": {
"status": "ok",
"service": "savitri-rpc",
"mode": "lightnode"
},
"id": 1
}
4. Obtenir la Hauteur de Bloc
curl -X POST http://localhost:8545/rpc \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "savitri_blockNumber",
"params": [],
"id": 2
}'
5. Vérifier le Solde d'un Compte
curl -X POST http://localhost:8545/rpc \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "savitri_getAccount",
"params": ["YOUR_ADDRESS_HEX_64_CHARS"],
"id": 3
}'
6. Réclamer des Jetons de Réseau de Test (Faucet)
Sur le réseau de test, réclamez des jetons SAVT gratuits :
curl -X POST http://localhost:8545/rpc \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "savitri_faucetClaim",
"params": ["YOUR_ADDRESS_HEX_64_CHARS"],
"id": 4
}'
Réponse :
{
"jsonrpc": "2.0",
"result": {
"result": {
"tx_hash": "0x...",
"amount": "5000000000000000000"
}
},
"id": 4
}
Le faucet distribue 5 SAVT par demande avec un délai de recharge de 24 heures.
7. Utiliser le SDK (Rust)
Ajoutez à votre Cargo.toml :
[dependencies]
savitri-sdk = { path = "../savitri-sdk" }
tokio = { version = "1", features = ["full"] }
use savitri_sdk::{RpcClient, Wallet, TransactionBuilder};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let client = RpcClient::from_url("http://localhost:8545")?;
// Vérification de l'état
let health = client.health().await?;
println!("Mode du nœud : {}", health.mode);
// Hauteur de bloc
let height = client.get_block_number().await?;
println!("Hauteur de bloc : {}", height);
// Créer un portefeuille et vérifier le solde
let wallet = Wallet::new();
let account = client.get_account(wallet.address()).await?;
println!("Adresse : {}", wallet.address());
println!("Solde : {}", account.balance);
Ok(())
}
Étapes Suivantes
- Référence SDK -- Documentation complète du SDK
- Référence API RPC -- Toutes les méthodes JSON-RPC
- Envoyer une Transaction -- Construire, signer et envoyer des transactions