Nodes blockchain vía JSON-RPC: guía de PHP, Python y JS
Nodes blockchain vía JSON-RPC: guía de PHP, Python y JS — artículo completo en el blog de Chaingateway: APIs, pagos e integraciones.
JSON-RPC es un protocolo de llamada a procedimiento remoto (RPC) codificado en JSON. Es un protocolo ligero que permite la transmisión de datos entre un cliente y un servidor, en este caso un node blockchain. JSON-RPC se usa típicamente para interactuar con sistemas descentralizados como redes blockchain, y puede usarse para enviar transacciones, consultar la blockchain en busca de información, y gestionar cuentas en la red.
En este artículo, exploraremos los fundamentos de JSON-RPC y cómo puede usarse para interactuar con nodes blockchain. También proporcionaremos código de ejemplo en PHP, Python y JavaScript para ayudarle a empezar.
¿Qué es JSON-RPC?
JSON-RPC es un protocolo de llamada a procedimiento remoto que usa JSON para codificar sus llamadas y respuestas. Está diseñado para ser ligero y fácil de implementar, lo que lo convierte en una opción popular para interactuar con sistemas descentralizados como redes blockchain.
El protocolo JSON-RPC define una serie de comandos, o «métodos», que pueden usarse para interactuar con el node blockchain. Estos métodos incluyen enviar transacciones, consultar la blockchain en busca de información, y gestionar cuentas en la red.
Cómo usar JSON-RPC para interactuar con nodes blockchain
Para usar JSON-RPC e interactuar con un node blockchain, primero necesitará establecer una conexión con el node. La conexión puede establecerse usando varias librerías en distintos lenguajes de programación, como HTTP, WebSockets, etc.
Una vez establecida la conexión, puede empezar a enviar requests JSON-RPC al node blockchain. Los requests toman la forma de objetos JSON, e incluyen un campo «method», que especifica la acción a realizar, y un campo «params», que contiene cualquier información adicional necesaria para completar el request.
La response también estará en formato JSON; incluirá un campo «result», que contiene el resultado del request, y un campo «error», que contendrá cualquier mensaje de error que pueda haber ocurrido.
Aquí tiene un ejemplo de request JSON-RPC para obtener el número de block actual en la blockchain de Ethereum:
<pre class="wp-block-code">````{ "jsonrpc": "2.0", "method": "eth_blockNumber", "params": [], "id": 1}`Y la response se verá así```
`{ "jsonrpc": "2.0", "id": 1, "result": "0x4b7"}`
```
```
## Código de ejemplo en PHP, Python y JavaScript
Aquí tiene un ejemplo de cómo enviar un request JSON-RPC usando la librería `curl` de PHP:
```
```
``
```
```
Aquí tiene un ejemplo de cómo enviar un request JSON-RPC usando la librería `requests` de Python:
```
```
import requests headers = {'content-type': 'application/json'}
data = '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
response = requests.post('http://localhost:8545', headers=headers, data=data)
print(response.json())
```
```
Y aquí tiene un ejemplo de cómo enviar un request JSON-RPC usando la función `fetch` de JavaScript:
```
```
fetch('http://localhost:8545',{
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
jsonrpc: '2.0',
method: 'eth_blockNumber',
params: [],
id: 1
})
})
.then(response => response.json())
.then(console.log)
.catch(console.error);
```
```
Vale la pena señalar que los ejemplos anteriores son simples requests GET para obtener el número de block actual en la blockchain de ethereum; puede usar varios métodos diferentes para lograr otras tareas como enviar transacciones, crear cuentas y mucho más.
Al comprender los fundamentos de JSON-RPC y cómo puede usarse para interactuar con nodes blockchain, podrá crear aplicaciones descentralizadas que aprovechen la seguridad y la inmutabilidad que ofrece la tecnología blockchain. Con la ayuda del código de ejemplo proporcionado, podrá enviar requests JSON-RPC a un node blockchain con facilidad y empezar a construir su propia aplicación descentralizada.
¿Listo para construirlo tú mismo? Obtenga su clave de API — prueba de 7 días, sin tarjeta — o consulte API Blockchain para la referencia completa de los endpoints.