Referencia de la API RPC
Savitri Network expone una API JSON-RPC 2.0 sobre HTTP. Todas las solicitudes se envían como POST a / o /rpc.
Conexión
- Endpoint predeterminado:
http://127.0.0.1:8545/rpc - Protocolo: JSON-RPC 2.0 (sin endpoints REST)
- TLS: No terminado por el servidor RPC. Usa un proxy inverso (nginx, Caddy) para producción.
- CORS: Restringido a los orígenes
localhosty127.0.0.1de forma predeterminada.
Limitación de Velocidad
| Límite | Valor |
|---|---|
| Global | 200 solicitudes/segundo |
| Por IP | 50 solicitudes/segundo |
| Tamaño máximo de lote | 100 solicitudes |
| Tamaño máximo del cuerpo | 1 MB |
Superar los límites devuelve HTTP 429 (Demasiadas Solicitudes).
Formato de Solicitud
{
"jsonrpc": "2.0",
"method": "method_name",
"params": [],
"id": 1
}
Los parámetros pueden pasarse como array posicional u objeto con nombre.
Solicitudes en Lote
Envía un array de solicitudes para procesar múltiples llamadas en una sola solicitud HTTP:
[
{"jsonrpc": "2.0", "method": "savitri_blockNumber", "params": [], "id": 1},
{"jsonrpc": "2.0", "method": "savitri_health", "params": [], "id": 2}
]
Máximo 100 solicitudes por lote.
Códigos de Error
| Código | Significado |
|---|---|
| -32700 | Error de análisis (JSON inválido) |
| -32600 | Solicitud inválida (no es JSON-RPC 2.0) |
| -32601 | Método no encontrado |
| -32602 | Parámetros inválidos |
| -32603 | Error interno del servidor |
| -32001 | Recurso no encontrado |
| -32002 | Servicio no disponible (almacenamiento/mempool) |
| -32003 | No implementado |
Referencia de Métodos
Métodos de Cadena
| Método | Parámetros | Descripción |
|---|---|---|
chain_getBlockHeight | [] | Obtener la altura actual del bloque |
savitri_blockNumber | [] | Alias de chain_getBlockHeight |
chain_getBlock | [height] | Obtener bloque por altura |
savitri_getBlockByHeight | [height] | Alias de chain_getBlock |
chain_getBlockByNumber | [height] | Obtener bloque por altura |
chain_getBlockByHash | [hash] | Obtener bloque por hash (escanea los últimos 1000 bloques) |
chain_getLatestBlock | [] | Obtener el bloque más reciente |
chain_getChainInfo | [] | Obtener metadatos de la cadena (id, nombre, altura, versión) |
savitri_getBlockHash | [height] | Obtener el hash del bloque en la altura indicada |
Métodos de Transacción
| Método | Parámetros | Descripción |
|---|---|---|
tx_sendTransaction | [raw_tx_hex] | Enviar transacción firmada |
savitri_sendRawTransaction | [raw_tx_hex] | Alias de tx_sendTransaction |
tx_getTransaction | [hash] | Obtener transacción por hash |
savitri_getTransaction | [hash] | Alias de tx_getTransaction |
tx_getTransactionReceipt | [hash] | Obtener recibo de transacción con estado |
tx_getTransactionsByBlock | [height] | Obtener todas las transacciones de un bloque |
tx_getPendingTransactions | [] | Listar transacciones pendientes en el mempool |
Métodos de Cuenta
| Método | Parámetros | Descripción |
|---|---|---|
account_getAccount | [address] | Obtener saldo y nonce |
savitri_getAccount | [address] | Alias de account_getAccount |
account_getBalance | [address] | Obtener solo el saldo |
account_getNonce | [address] | Obtener solo el nonce |
account_getTokenBalance | [address, token_id] | Obtener saldo de token |
Métodos de Red
| Método | Parámetros | Descripción |
|---|---|---|
net_version | [] | Obtener versión de red |
net_peerCount | [] | Obtener número de pares conectados |
net_listening | [] | Verificar si el nodo está escuchando |
net_peers | [] | Listar pares conectados con puntuaciones |
net_nodeInfo | [] | Obtener información del nodo (id, modo, pares, altura) |
Métodos de Mempool
| Método | Parámetros | Descripción |
|---|---|---|
mempool_getSize | [] | Obtener conteos pendientes y en cola |
mempool_getPendingTransactions | [] | Listar transacciones pendientes |
mempool_getTransactionStatus | [hash] | Verificar si una transacción está en el mempool |
Métodos de Consenso / PoU
| Método | Parámetros | Descripción |
|---|---|---|
pou_getConsensusState | [] | Obtener puntuación PoU local, líder, época |
savitri_pouLocal | [] | Alias de pou_getConsensusState |
savitri_pouPeers | [] | Obtener todas las puntuaciones PoU de los pares |
pou_getValidators | [] | Listar validadores con puntuaciones |
pou_getStakeInfo | [address] | Obtener información de stake para una dirección |
pou_getEpochInfo | [] | Obtener detalles de la época actual |
savitri_pouGroups | [] | Listar grupos PoU (solo masternode) |
savitri_pouMasternodes | [] | Listar masternodes (solo masternode) |
savitri_pouGroupNodes | [group_id] | Listar nodos de un grupo (solo masternode) |
Métodos de Token
| Método | Parámetros | Descripción |
|---|---|---|
token_getTokenInfo | [token_id] | Obtener metadatos del token (nombre, símbolo, decimales, suministro) |
token_getTokenBalance | [address, token_id] | Obtener saldo de token |
token_getTokenTransfers | [token_id] | Obtener historial de transferencias |
Métodos de Utilidad
| Método | Parámetros | Descripción |
|---|---|---|
savitri_health | [] | Verificación de estado (status, servicio, modo) |
savitri_protocolVersion | [] | Obtener versión del protocolo |
savitri_syncing | [] | Obtener estado de sincronización (bloque actual/más alto) |
savitri_gasPrice | [] | Obtener precio actual del gas |
savitri_estimateGas | [] | Estimar gas para una transacción |
savitri_faucetClaim | [address] | Reclamar tokens de testnet (5 SAVT) |
Métodos de Monolith
| Método | Parámetros | Descripción |
|---|---|---|
savitri_getMonolithHead | [] | Obtener los últimos metadatos del monolith |
savitri_getMonolithsForRange | [start, end] | Obtener monoliths en un rango de altura |
savitri_getMonolith | [monolith_id] | Obtener el bloque monolith completo |
Tipos de Respuesta
Consulta Tipos de Respuesta para los esquemas JSON detallados de cada objeto de respuesta.