Comunicación Frontend-Backend en Aplicaciones Blockchain

Clase 3 de 23Curso de Desarrollo Frontend de Aplicaciones Descentralizadas con Web3.Js

Resumen

¿Cómo funciona la comunicación de frontend descentralizado con el backend en blockchain?

El mundo de las aplicaciones descentralizadas (DApps) en blockchain transforma la manera en que se comunican los frontends con los backends, rompiendo con los moldes tradicionales de APIs y servidores. Descubrir cómo funciona esta comunicación en Ethereum y otras blockchains es clave para comprender la razón detrás de la adopción de herramientas como Web3.js y proveedores como MetaMask.

¿Qué distingue a la comunicación en blockchain de la tradicional?

En aplicaciones convencionales, la comunicación se basa en APIs tradicionales, como REST o GraphQL, facilitando el intercambio de datos entre el frontend y el backend. Sin embargo, en el entorno web3, el backend se sitúa en nodos de blockchain, lo que requiere comprender cómo estos nodos sirven no solo como servidores sino como clientes. Estos nodos utilizan el protocolo JSON-RPC para recibir instrucciones dirigidas a la red.

¿Cómo opera JSON-RPC en nodos de Ethereum?

JSON-RPC es esencial en el ecosistema blockchain, permitiendo envío de comandos a nodos que luego se transmiten a toda la red. Si bien estos métodos recuerdan a las API REST, aquí las transacciones son difundidas en blockchain, y la interacción se lleva a cabo mediante una serie de comandos. Los proveedores, como MetaMask, ayudan al usuario a confirmar transacciones, que son enviadas en específicas estructuras JSON-RPC.

¿Cómo se estructura una transacción en web3?

Las transacciones hacia Ethereum incluyen componentes fundamentales como:

  • Destino: Dirección del contrato inteligente.
  • Data: Información codificada que define la acción a ejecutar.

Este último suele confundir a los desarrolladores, ya que contienen instrucciones que no son fácilmente legibles, representadas en hexadecimal. Esta sección de data juega un papel crucial al interactuar con contratos inteligentes, al incluir el método específico y parámetros requeridos.

¿Cómo se llama a una función dentro de un contrato inteligente?

Llamar a una función en un contrato inteligente implica enviar una transacción con destino y datos codificados. Este proceso conlleva varios pasos:

  • Forma Canónica de la Función: Representación simplificada que omite el nombre de la función, reteniendo solo tipos de datos.
  • Hash keccak256: Se aplica a la forma canónica para generar un identificador único.
  • Método ID: Extraído de los primeros cuatro bytes del hash hexadecimal, para identificar la función en el contrato.

Los parámetros que la función acepta se incluyen en la data codificada con el método ID, lo que permite al nodo correspondiente procesar correctamente la función solicitada.

¿Qué papel juegan las herramientas como Web3.js?

Las bibliotecas como Web3.js alivian la complejidad del manejo de interacciones directas con nodos blockchain, ejecutando internamente:

  • Creación de la forma canónica.
  • Generación del método ID.
  • Codificación de parámetros.

Web3.js se encarga de todas estas tareas técnicas, permitiendo a los desarrolladores centrarse en crear aplicaciones robustas y eficientes. Conocer estos detalles es vital no solo para asegurarse de que las herramientas hacen su trabajo correctamente, sino también para entender el entorno en que operan.

Estos conocimientos son fundamentales para cualquier desarrollador involucrado en el desarrollo de DApps, permitiéndole mejorar la interacción y el diseño de experiencias de usuario efectivas sobre blockchain en Ethereum y más allá. ¡Te invitamos a continuar explorando más sobre Web3 y sus capacidades en futuras sesiones!