Resumen
Bitcoin no utiliza JSON-RPC al estilo EVM. En su lugar, el software de nodo como Bitcoin Core expone una interfaz JSON-RPC para operaciones de wallet, blockchain y mempool, mientras que la mayoría de las aplicaciones dependen de APIs indexadas o proveedores de nodos gestionados para búsquedas de direcciones y datos de transacciones. Este artículo explica los patrones de acceso disponibles, la configuración de la cadena que necesitas y cómo decidir entre endpoints públicos, APIs RPC gestionadas y nodos Bitcoin dedicados. OnFinality proporciona API RPC gestionada e infraestructura de nodos dedicados para redes compatibles, incluida Bitcoin, para que puedas conectarte sin ejecutar tu propio nodo completo.
La capa RPC de Bitcoin funciona de manera diferente a las interfaces JSON-RPC que la mayoría de los desarrolladores EVM esperan. Si estás creando una wallet, un explorador, un procesador de pagos o una herramienta de trading, necesitas entender qué patrón de acceso se ajusta a tu carga de trabajo antes de elegir un endpoint. Esta página recorre las opciones prácticas: JSON-RPC de Bitcoin Core, APIs indexadas, endpoints públicos y servicios de nodos gestionados como OnFinality.
¿Qué patrón de acceso a Bitcoin se ajusta a tu carga de trabajo?
Empieza por identificar qué necesita hacer realmente tu aplicación. Bitcoin Core expone una interfaz JSON-RPC, pero está diseñada principalmente para operadores de nodos y software de wallet, no para consultas de direcciones de alto nivel. Muchos equipos descubren esto después de intentar consultar el saldo de una dirección y encontrar que getbalance solo devuelve el saldo de la propia wallet del nodo.
Usa esta tabla para asignar tu carga de trabajo al patrón de acceso adecuado.
| Carga de trabajo | Qué necesitas | Patrón de acceso recomendado |
|---|---|---|
| Enviar y recibir BTC desde una wallet custodial | Métodos RPC de wallet, gestión de UTXO | JSON-RPC de Bitcoin Core con wallet habilitada, o un nodo gestionado |
| Consultar saldos de direcciones e historial de transacciones | Indexación de direcciones | API indexada o proveedor gestionado con índice de direcciones |
| Difundir transacciones en bruto | sendrawtransaction | Cualquier nodo Bitcoin Core, público o dedicado |
| Monitorizar la mempool y las estimaciones de comisiones | getmempoolinfo, estimatesmartfee | Nodo Bitcoin Core con acceso a la mempool |
| Crear un explorador de bloques | Datos completos de bloques y transacciones | Nodo de archivo o API indexada |
| Ejecutar un nodo de Lightning Network | Bitcoin Core con txindex y ZMQ | Nodo dedicado con configuración personalizada |
Si tu carga de trabajo es intensiva en lectura y centrada en direcciones, una API RPC gestionada con indexación suele ser la vía más rápida. Si necesitas control total sobre la configuración del nodo, el estado de la wallet o las notificaciones ZMQ, un nodo Bitcoin dedicado encaja mejor. OnFinality ofrece tanto acceso a la API RPC como nodos dedicados para redes compatibles, incluida Bitcoin.
JSON-RPC de Bitcoin Core: qué es y qué no es
Bitcoin Core incluye un servidor JSON-RPC que escucha en el puerto 8332 por defecto para mainnet. Admite una amplia gama de métodos para datos de blockchain, transacciones en bruto, inspección de mempool y operaciones de wallet. Sin embargo, no es un indexador de propósito general. Métodos como getblock, getrawtransaction y gettxout funcionan como se espera, pero no existe un método nativo getAddressBalance ni getAddressHistory.
Para consultar datos a nivel de dirección, o ejecutas un indexador junto a Bitcoin Core (como un servidor Electrum, Esplora o un índice personalizado) o usas un proveedor que ya haya construido esa capa de indexación. Esta es la fuente de confusión más común para los desarrolladores que vienen de RPC al estilo Ethereum.
Una solicitud JSON-RPC básica a un nodo Bitcoin tiene este aspecto:
curl --user "rpcuser:rpcpassword" \
--data-binary '{"jsonrpc":"1.0","id":"onf","method":"getblockchaininfo","params":[]}' \
-H 'content-type: text/plain;' \
http://127.0.0.1:8332/
La respuesta incluye la altura de la cadena, el progreso de verificación y el estado de los softforks. Para un endpoint gestionado, sustituye la URL local por el endpoint proporcionado por tu proveedor de infraestructura y usa el método de autenticación que especifique.
Configuración de la cadena y del nodo de un vistazo
Los parámetros de red de Bitcoin son estables, pero deberías confirmarlos antes de conectar cualquier herramienta. La siguiente tabla resume los valores por defecto de mainnet.
| Configuración | Valor en mainnet | Notas |
|---|---|---|
| Puerto RPC | 8332 | Por defecto en Bitcoin Core |
| Puerto P2P | 8333 | Red peer-to-peer |
| Prefijo de dirección | 1, 3, bc1 | Legacy, P2SH y Bech32 |
| Tiempo de bloque | ~10 minutos | Intervalo objetivo |
| Guía de confirmaciones | 1–6 bloques | Depende del valor y el riesgo |
| Chain ID | N/A | Bitcoin no usa chain IDs de EVM |
Para testnet, el puerto RPC es 18332 y las direcciones usan prefijos diferentes. Si estás probando una integración, usa testnet o signet antes de pasar a mainnet. La página de la red Bitcoin de OnFinality enumera las opciones de acceso compatibles y la disponibilidad de testnet.
Endpoints públicos vs RPC gestionado vs nodos dedicados
Una vez que conoces tu carga de trabajo, la siguiente decisión es cuánta infraestructura quieres operar. Los endpoints públicos de Bitcoin son útiles para experimentos rápidos, pero a menudo limitan la tasa de solicitudes, carecen de indexación de direcciones y no ofrecen garantías de disponibilidad. Los proveedores de RPC gestionado añaden autenticación, monitorización y soporte, mientras que los nodos dedicados te dan una instancia privada con configuración personalizada.
| Opción | Control | Indexación de direcciones | Carga operativa | Ideal para |
|---|---|---|---|---|
| Endpoint público | Bajo | Rara vez | Ninguna | Prototipos y scripts puntuales |
| API RPC gestionada (p. ej., OnFinality) | Medio | Depende del proveedor | Baja | Aplicaciones en producción que necesitan fiabilidad y soporte |
| Nodo Bitcoin dedicado | Alto | Tú lo configuras | Alta | Indexación personalizada, RPC de wallet, ZMQ, Lightning |
La API RPC gestionada de OnFinality está diseñada para equipos que quieren un endpoint estable sin ejecutar un nodo completo. Si necesitas RPC de wallet, ajustes personalizados de bitcoin.conf o notificaciones de bloques ZMQ, un nodo dedicado es la opción adecuada. Puedes revisar los precios de RPC para comparar opciones según tu volumen de solicitudes previsto.
Conexión y autenticación a un endpoint RPC de Bitcoin
Bitcoin Core usa autenticación básica HTTP por defecto. Cuando te conectas a un endpoint gestionado, el proveedor suministra credenciales o una clave de API. El siguiente ejemplo muestra un patrón de conexión genérico usando variables de entorno, que puedes adaptar a las credenciales de tu proveedor.
const axios = require('axios');
const rpcUrl = process.env.BITCOIN_RPC_URL; // e.g., https://your-endpoint.example.com
const rpcUser = process.env.BITCOIN_RPC_USER;
const rpcPass = process.env.BITCOIN_RPC_PASS;
async function callBitcoinRpc(method, params = []) {
const response = await axios.post(
rpcUrl,
{ jsonrpc: '1.0', id: 'onf', method, params },
{
auth: { username: rpcUser, password: rpcPass },
headers: { 'content-type': 'text/plain;' },
}
);
return response.data.result;
}
callBitcoinRpc('getblockcount').then(console.log);
Para proveedores basados en clave de API, sustituye el objeto auth por la cabecera requerida, como Authorization: Bearer <token>. Mantén siempre las credenciales fuera del código del lado del cliente y rótalas si se exponen.
Modos de fallo comunes y cómo depurarlos
Los errores de RPC de Bitcoin suelen ser explícitos, pero la causa puede no ser obvia. La siguiente tabla asigna síntomas comunes a posibles soluciones.
| Síntoma | Causa probable | Solución |
|---|---|---|
-32601 Method not found | Método no habilitado o tipo de nodo incorrecto | Comprueba bitcoin.conf o la compatibilidad de métodos del proveedor |
-28 Loading block index | El nodo aún se está sincronizando | Espera a que termine la descarga inicial de bloques |
-5 Invalid address | Red incorrecta (mainnet vs testnet) | Verifica el prefijo de dirección y la red del nodo |
-25 General error en sendrawtransaction | Faltan entradas o comisión demasiado baja | Reconstruye la transacción y comprueba la mempool |
| Conexión rechazada | El servidor RPC no escucha o hay un firewall | Confirma server=1 y el enlace de puerto |
| 401 Unauthorized | Credenciales incorrectas | Revisa el nombre de usuario, la contraseña o la clave de API |
Si usas un proveedor gestionado, empieza por confirmar que el método que necesitas es compatible. Algunos proveedores exponen solo un subconjunto de los métodos de Bitcoin Core. La documentación y los canales de soporte de OnFinality pueden confirmar la disponibilidad de métodos para tu plan.
Cuándo usar un proveedor de RPC de Bitcoin gestionado
Un proveedor gestionado tiene sentido cuando tu equipo quiere centrarse en la lógica de la aplicación en lugar de en las operaciones del nodo. Ejecutar un nodo completo de Bitcoin requiere espacio en disco, ancho de banda, tiempo de sincronización inicial y monitorización continua. Para equipos sin personal dedicado a infraestructura, un endpoint gestionado reduce el riesgo operativo.
OnFinality proporciona acceso a la API RPC e infraestructura de nodos dedicados para una variedad de redes. Para Bitcoin, puedes usar la API gestionada para llamadas JSON-RPC estándar, o solicitar un nodo dedicado si necesitas configuración personalizada. Revisa las redes RPC compatibles para ver la disponibilidad y los precios de RPC para los detalles del plan. Si aún estás evaluando proveedores, la guía sobre cómo elegir un proveedor de RPC cubre criterios como compatibilidad de métodos, failover y monitorización.
Puntos clave
- Bitcoin usa JSON-RPC a través de Bitcoin Core, no RPC al estilo EVM; las consultas a nivel de dirección requieren un indexador o un proveedor con indexación.
- Confirma la configuración de la cadena, como el puerto RPC 8332 para mainnet y los prefijos de dirección, antes de conectarte.
- Los endpoints públicos sirven para prototipos; las APIs RPC gestionadas y los nodos dedicados son mejores para cargas de trabajo en producción.
- La autenticación suele ser autenticación básica HTTP o una clave de API; mantén las credenciales en el lado del servidor.
- Errores comunes como
-32601y-28suelen indicar disponibilidad de métodos o estado de sincronización. - OnFinality ofrece API RPC gestionada y opciones de nodos dedicados para Bitcoin; consulta la página de la red Bitcoin para más detalles.
Preguntas frecuentes
¿Bitcoin usa JSON-RPC?
Sí. Bitcoin Core expone una interfaz JSON-RPC para operaciones de nodo, funciones de wallet y consultas de blockchain. No es lo mismo que el JSON-RPC de Ethereum y no incluye indexación de direcciones por defecto.
¿Puedo consultar el saldo de una dirección con RPC de Bitcoin?
No directamente con un nodo estándar de Bitcoin Core. Necesitas un indexador o un proveedor que ofrezca APIs a nivel de dirección. Algunos servicios gestionados incluyen esta capa de indexación.
¿Qué puerto usa RPC de Bitcoin?
Mainnet usa el puerto 8332 por defecto. Testnet usa 18332. Los proveedores gestionados pueden usar HTTPS en el puerto 443.
¿Cómo difundo una transacción de Bitcoin?
Usa el método sendrawtransaction con el hex de una transacción en bruto firmada. El nodo la validará y la retransmitirá a la red.
¿Es mejor un nodo Bitcoin dedicado que un endpoint compartido?
Depende de tu carga de trabajo. Los nodos dedicados te dan control total sobre la configuración, el estado de la wallet y la indexación, pero requieren más esfuerzo operativo. Los endpoints gestionados compartidos son más sencillos para operaciones estándar de lectura y difusión.
¿Dónde puedo encontrar los detalles de RPC de Bitcoin de OnFinality?
Visita la página de la red Bitcoin para ver las opciones de acceso compatibles, o revisa los precios de RPC y las redes RPC compatibles.