API REST
A API REST da Cloud Service fornece endpoints HTTP simples para consultar dados da blockchain sem autenticação para operações somente leitura.
URL Base
http://localhost:16180/rest/Endpoints
Informações da Cadeia
GET /rest/chaininfo
Retorna informações da blockchain.
curl http://localhost:16180/rest/chaininfoResposta:
{
"chain": "main",
"blocks": 524288,
"headers": 524288,
"bestblockhash": "0000...",
"difficulty": 12345678.90,
"verificationprogress": 0.999999
}Detalhes do Bloco
GET /rest/block/<hash>
Retorna detalhes do bloco para o hash fornecido.
curl http://localhost:16180/rest/block/0000...hashGET /rest/block/notxdetails/<hash>
Retorna detalhes do bloco sem detalhes de transação.
curl http://localhost:16180/rest/block/notxdetails/0000...hashInformações de Transação
GET /rest/tx/<txid>
Retorna dados de transação para o ID de transação fornecido.
curl http://localhost:16180/rest/tx/txid_aquiUTXO (Saídas Não Gastas)
GET /rest/getutxos/<checkmempool>/<txid>-<n>/<txid>-<n>/...
Retorna informações de saída de transação não gasta.
# Verificar UTXOs específicos
curl "http://localhost:16180/rest/getutxos/1/txid1-0/txid2-1"Cabeçalhos de Bloco
GET /rest/headers/<count>/<hash>
Retorna os cabeçalhos count a partir do hash fornecido.
# Obter 10 cabeçalhos
curl http://localhost:16180/rest/headers/10/hash_inicialPool de Memória
GET /rest/mempool/info
Retorna informações do pool de memória.
curl http://localhost:16180/rest/mempool/infoResposta:
{
"loaded": true,
"size": 5,
"bytes": 2048,
"usage": 4096,
"maxmempool": 314572800,
"mempoolminfee": 0.00001000
}GET /rest/mempool/contents
Retorna transações no pool de memória.
curl http://localhost:16180/rest/mempool/contentsFormatos de Resposta
A API REST suporta JSON e binário:
# JSON (padrão)
curl http://localhost:16180/rest/chaininfo.json
# Binário
curl http://localhost:16180/rest/chaininfo.bin
# Hex
curl http://localhost:16180/rest/chaininfo.hexHabilitando a API REST
Adicione ao cs.conf:
rest=1Ou inicie com a flag:
csd -rest -daemonExemplos de Integração
Python
import requests
BASE_URL = "http://localhost:16180/rest"
def get_blockchain_info():
response = requests.get(f"{BASE_URL}/chaininfo.json")
return response.json()
def get_block(block_hash):
response = requests.get(f"{BASE_URL}/block/{block_hash}.json")
return response.json()
info = get_blockchain_info()
print(f"Blocos: {info['blocks']}")JavaScript
const axios = require('axios');
const BASE_URL = 'http://localhost:16180/rest';
async function getBlockchainInfo() {
const response = await axios.get(`${BASE_URL}/chaininfo.json`);
return response.data;
}
async function main() {
const info = await getBlockchainInfo();
console.log(`Blocos: ${info.blocks}`);
}
main();Próximos Passos
- Comandos RPC — Para operações de escrita
- WebSockets — Para notificações em tempo real