¿Qué es JSON-RPC en Ethereum?

JSON-RPC se utiliza para comunicarse con una aplicación que ejecuta en su computadora. Utiliza el protocolo HTTP para llamadas a procedimientos remotos y JSON para la representación de datos. Es un protocolo RPC liviano y sin estado que está escrito en JavaScript. Por ejemplo, JSON-RPC hace que la comunicación entre el cliente y el servidor sea más sencilla y fácil de implementar que Java Server Pages (JSP) o XML Web Services. Debido a que JSON-RPC se basa en HTTP, no requiere que ejecute un servidor web separado. Solo se necesita tener al menos un navegador web con conexión a Internet.

¿Qué es JSON-RPC?

  • JSON-RPC es un protocolo de llamada a procedimiento remoto codificado en JSON y utiliza requests HTTP, formando un puente entre los lenguajes de programación web y la string de bloques de Ethereum.
  • La implementación de la interfaz JSON-RPC consistirá en una API HTTP JSON o puede ser impulsada por un Node Ethereum a través de IPC (Comunicación entre procesos). Los contenidos de todas las requests de datos de los clientes se analizan como objetos JSON y se construyen en respuestas con datos serializados.
  • El cliente para ejecutar consultas de RPC no necesita implementar ninguna capa de red, por lo que puede permanecer independiente de cómo se ejecutan los RPC, solo proporciona una interfaz genérica para interactuar con contratos inteligentes según el nombre, el tipo de argumento y los tipos de valor.

¿Qué son los RPC?

  • Los RPC son la forma principal de obtener datos en un sistema de string de bloques. Cuando se crean nuevos bloques y se actualizan los antiguos, se necesita un RPC para asegurarse de que todos los Nodes (copias individuales de la string de bloques) tengan la misma información.
  • Una función llamada getmemorypool devuelve el estado actual del grupo de transacciones, que incluye listas de transacciones no confirmadas y direcciones de memoria con una cantidad específica de monedas.
  • Una función RPC pasa tiempo con la red, ya que tiene que esperar a que los Nodes de retransmisión aprendan sobre los cambios en otros puntos finales antes de poder procesarlos nuevamente. Esto ralentiza la velocidad de procesamiento y aumenta la latencia, pero no afecta la validez ni la seguridad de los datos recuperados por una llamada RPC.

Interacción del lado del cliente

Existe la necesidad de un nuevo enfoque para la comunicación en las redes blockchain. 

  • El modelo tradicional de interacción cliente-servidor implica que un cliente solicita información del servidor y luego espera que el servidor responda con los datos solicitados, que luego son procesados ​​por el cliente antes de continuar con su operación. 
  • Este modelo no permite un tiempo de respuesta instantáneo y, por lo tanto, crea demoras para los usuarios que intentan comunicarse con los servidores, lo que dificulta el rendimiento.
  • La interacción cliente-servidor tradicional también se basa en tipos de datos estáticos que no admiten modelos de datos dinámicos y, por lo tanto, requieren que el cliente tenga información precompilada sobre todos los datos posibles. 
  • Esto limita la flexibilidad e impide que se creen nuevos servicios para satisfacer necesidades futuras.

Aquí es donde entra en juego el concepto de interacción del lado del cliente en blockchain. Un ejemplo común de este concepto es una aplicación de chat que permite a los usuarios interactuar entre sí e intercambiar información, mientras que al mismo tiempo los servidores conservan esta información en sus propias bases de datos. . La flexibilidad se logra al permitir la comunicación entre clientes directamente o mediante el paso de mensajes, según la complejidad de la operación que se esté realizando.

Llamadas locales frente a RPC

En una string de bloques, la API RPC se puede usar para ejecutar transacciones y también se puede usar para registrar transacciones que deben ejecutarse en el futuro.

Llamadas locales

RPC

Las llamadas locales son más rápidas… Los RPC son más lentos.
Tienen limitaciones en la cantidad de requests que se les envían a lo largo del tiempo. Pueden manejar conjuntos de datos más grandes de manera rápida y eficiente.

¿Por qué usar RPC?

RPC es un método para realizar una operación usando la API (interfaz de programación de aplicaciones) en lugar de usar un programa llamado línea de comando e invocar un script de comando, esto nos permite hacer las tareas más rápido. 

  • Por ejemplo, si hay miles de millones de usuarios y solo unas pocas docenas de Nodes completos y todos ellos están trabajando actualmente en el procesamiento de transacciones, significa que no pueden enviar ninguna nueva hasta que terminen de ejecutarse y sincronizarse con la red. 
  • Supongamos que hay un usuario que quiere enviar fondos a otra persona en la red y es entonces cuando puede hacer uso de RPC porque si el Node completo al que envió una transacción está actualmente ocupado con otras operaciones, aún puede enviarse a través de RPC. . 
  • Esto también puede ser utilizado por desarrolladores que desean acceder a cierta información en el sistema blockchain en tiempo real, por ejemplo, con fines de depuración o para recuperar información pública sobre una dirección.

Ventajas de JSON-RPC

  • Simple y elegante: JSON-RPC es un protocolo simple y elegante para encapsular llamadas a procedimientos remotos. Originalmente se desarrolló como parte del proyecto Netscape/Mozilla, pero ahora se usa ampliamente para comunicarse entre aplicaciones basadas en navegador, servicios web o cualquier otra comunicación cliente-servidor.
  • JSON-RPC tiene algunas ventajas sobre sus predecesores HTTP POST y HTTP GET: . La sintaxis JSON es menos detallada que XML y viene con una base de código pequeña que se escala bien en una amplia variedad de plataformas. Todo el protocolo fue diseñado para ser extensible mediante la definición de nuevos tipos de datos además de las operaciones.

Ethereum JSON-RPC

Ethereum JSON-RPC es una interfaz de línea de comando universal para Ethereum que proporciona una interfaz uniforme a través de una conexión Weka, RPC y Web3 sin formato. 

  • Es un servicio web HTTP que utiliza JSON, que se puede conectar en cualquier entorno de programación. Permite la interacción con los Nodes de Ethereum desde fuera del entorno del navegador y también desde dentro.
  • JSON-RPC es un protocolo simple de llamada a procedimiento remoto codificado en JSON (Extensible Markup Language), sobre el protocolo HTTP 1.1. La API JSON-RPC de Ethereum se implementa como un conjunto de métodos de objetos Web3 que permiten a los clientes interactuar con la string de bloques de Ethereum.
  • La API JSON RPC también es utilizada por Mist (monedero Ethereum popular), Ethereum Wallet y varias otras carteras y aplicaciones populares.
  • Las llamadas a la API de Ethereum JSON-RPC siguen el patrón: TransactionHash (string, opcional): el hash de la transacción que contiene el código del contrato. Si no se proporciona un hash de transacción, se intentará crear un contrato en la cuenta seleccionada actualmente.

Publicación traducida automáticamente

Artículo escrito por tejaswipkle y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *