Cómo crear una API de Node.js para Ethereum Blockchain

 

 

 

  • Typography Masterclass, with Elliot Jay Stocks
  • Smart Interface Design Patterns, 10h video + UX training

  • Índice
    1. Aplicaciones comunes de blockchain
    2. Desventajas de blockchain
    3. Comencemos a construir nuestra API
    4. Cosas que debemos saber primero
    5. Crear una API de backend desde cero

    En este artículo, John Agbanusi explica cómo se puede crear una API de Node.js desde cero mediante la creación e implementación de una cadena de bloques Ethereum para la descentralización. También le muestra un proceso paso a paso para integrar tanto la API como la cadena de bloques en una única API llamada "API de aplicación descentralizada".

     

    La tecnología Blockchain ha ido en aumento en los últimos diez años y ha dado vida a una buena cantidad de productos y plataformas, como Chainalysis (tecnología financiera), Burstiq (tecnología de salud), Filament (IoT), Opus (transmisión de música). y Ocular (ciberseguridad).

    A partir de estos ejemplos, podemos ver que blockchain abarca muchos productos y casos de uso, lo que la hace muy esencial y útil. En fintech (tecnología financiera), se utiliza como libros de contabilidad descentralizados para seguridad y transparencia en lugares como Chain, Chainalysis, y también es útil en tecnología de salud para la seguridad de datos de salud confidenciales en Burstiq y Robomed, sin olvidar la tecnología de medios como Opus. y Audius, que también utiliza blockchain para la transparencia de las regalías y, por lo tanto, obtiene regalías completas.

    Ocular utiliza la seguridad que viene con blockchain para la gestión de identidades de sistemas biométricos, mientras que Filament utiliza libros de contabilidad de blockchain para comunicaciones cifradas en tiempo real. Esto demuestra cuán esencial se ha vuelto blockchain para nosotros al mejorar nuestras vidas. Pero ¿qué es exactamente una cadena de bloques?

    Una cadena de bloques es una base de datos que se comparte a través de una red de computadoras. Una vez que se ha agregado un registro a la cadena, es bastante difícil cambiarlo. Para garantizar que todas las copias de la base de datos sean iguales, la red realiza comprobaciones constantes.

     

    Entonces, ¿por qué necesitamos blockchain ? Blockchain es una forma segura de registrar actividades y mantener los datos actualizados mientras se mantiene un registro de su historial en comparación con los registros o bases de datos tradicionales donde los ataques, los errores y los tiempos de inactividad son muy posibles. Los datos no pueden ser dañados por nadie ni eliminados accidentalmente, y usted se beneficia tanto de un rastro histórico de datos como de un registro actualizado instantáneamente que no se puede borrar ni volverse inaccesible debido al tiempo de inactividad de un servidor.

    Debido a que toda la cadena de bloques está duplicada en muchas computadoras, cualquier usuario puede verla completa. Las transacciones o registros no son procesados ​​por un administrador central, sino por una red de usuarios que trabajan para verificar los datos y lograr un consenso.

    Las aplicaciones que utilizan blockchain se denominan dApps (Aplicaciones Descentralizadas). Si miramos a nuestro alrededor hoy en día, encontraremos principalmente aplicaciones descentralizadas en fintech, pero blockchain va más allá de las finanzas descentralizadas. Tenemos plataformas de salud, plataformas de transmisión/intercambio de música, plataformas de comercio electrónico, plataformas de ciberseguridad e IOT que avanzan hacia aplicaciones descentralizadas (dApps) como se mencionó anteriormente.

    Entonces, ¿cuándo tendría sentido considerar el uso de blockchain para nuestras aplicaciones, en lugar de una base de datos o un registro estándar?

    Aplicaciones comunes de blockchain

    • Gestión y seguridad de las relaciones digitales
      Siempre que desee mantener un registro transparente y a largo plazo de sus activos (por ejemplo, para registrar derechos de propiedad o de apartamento), blockchain podría ser la solución ideal. Los 'contratos inteligentes' de Ethereum, en particular, son excelentes para facilitar las relaciones digitales. Con un contrato inteligente, los pagos automatizados se pueden liberar cuando las partes de una transacción acuerdan que se han cumplido sus condiciones.
    • Eliminación de intermediarios/guardianes
      Por ejemplo, la mayoría de los proveedores actualmente tienen que interactuar con los huéspedes a través de una plataforma agregadora centralizada, como Airbnb o Uber (que, a su vez, se lleva una parte de cada transacción). Blockchain podría cambiar todo eso.
      Por ejemplo, TUI está tan convencido del poder de blockchain que es pionera en formas de conectar a hoteleros y clientes directamente . De esa manera, pueden realizar transacciones a través de blockchain de una manera fácil, segura y consistente, en lugar de hacerlo a través de una plataforma central de reservas.
    • Registre transacciones seguras entre socios para garantizar la confianza
      Una base de datos tradicional puede ser buena para registrar transacciones simples entre dos partes, pero cuando las cosas se vuelven más complicadas, blockchain puede ayudar a reducir los cuellos de botella y simplificar las relaciones. Es más, la seguridad adicional de un sistema descentralizado hace que blockchain sea ideal para transacciones en general.
      Un ejemplo es la Universidad de Melbourne que comenzó a almacenar sus registros en blockchain . El caso de uso más prometedor de blockchain en la educación superior es transformar el “mantenimiento de registros” de títulos, certificados y diplomas. Esto ahorra muchos costos de servidores dedicados para almacenamiento o registros.
    • Mantener registros de acciones pasadas para aplicaciones donde los datos están en constante flujo
      Blockchain es una forma mejor y más segura de registrar la actividad y mantener los datos actualizados mientras se mantiene un registro de su historial. Los datos no pueden ser dañados por nadie ni eliminados accidentalmente, y usted se beneficia tanto de un rastro histórico de datos como de un registro actualizado instantáneamente. Un ejemplo de un buen caso de uso es blockchain en el comercio electrónico; tanto blockchain como el comercio electrónico implican transacciones.
      Blockchain hace que estas transacciones sean más seguras y rápidas, mientras que las actividades de comercio electrónico dependen de ellas. La tecnología Blockchain permite a los usuarios compartir y almacenar de forma segura activos digitales tanto de forma automática como manual. Esta tecnología tiene la capacidad de manejar actividades de los usuarios como procesamiento de pagos, búsquedas de productos, compras de productos y atención al cliente. También reduce los gastos gastados en la gestión de inventario y el procesamiento de pagos.
    • La descentralización hace posible su uso en cualquier lugar.
      A diferencia de antes, donde teníamos que restringirnos a una región en particular debido a diversas razones, como las políticas de cambio de divisas, las limitaciones de las pasarelas de pago dificultan el acceso a los recursos financieros de muchos países que no están en su región o continente. Con el auge y el poder de la descentralización de blockchain o sistema peer-to-peer, resulta más fácil trabajar con otros países.
      Por ejemplo, una tienda de comercio electrónico en Europa puede tener consumidores en África y no requerir un intermediario para procesar sus solicitudes de pago. Además, estas tecnologías están abriendo puertas para que los minoristas en línea utilicen los mercados de consumo en países lejanos con bitcoin, es decir, una criptomoneda.
    • Blockhain es tecnológicamente neutral
      Blockchain funciona con todas y cada una de las pilas de tecnología que utiliza un desarrollador. No es necesario que aprendas Node como desarrollador de Python para usar blockchain o aprender Golang. Esto hace que blockchain sea muy fácil de usar.
      De hecho, podemos usarlo directamente con nuestras aplicaciones front-end en Vue/React con blockchain actuando como nuestra única base de datos para tareas simples y sin complicaciones y casos de uso como cargar datos u obtener hashes para mostrar registros para nuestros usuarios, o crear juegos frontend como casino. juegos y juegos de apuestas (en los que se necesita mucha confianza). Además, con el poder de web3, podemos almacenar datos en la cadena directamente.

    Ahora, hemos visto bastantes ventajas de usar blockchain, pero ¿cuándo no deberíamos molestarnos en usar blockchain?

     

     

    Desventajas de blockchain

    • Velocidad reducida para transacciones digitales
      Las cadenas de bloques requieren enormes cantidades de potencia informática, lo que tiende a reducir la velocidad de las transacciones digitales, aunque existen soluciones: es recomendable utilizar bases de datos centralizadas cuando se necesitan transacciones de alta velocidad en milisegundos.
    • Inmutabilidad de datos
      La inmutabilidad de datos siempre ha sido una de las mayores desventajas de blockchain. Está claro que múltiples sistemas se benefician de ello, incluida la cadena de suministro, los sistemas financieros, etc. Sin embargo, sufre el hecho de que una vez que se escriben los datos, no se pueden eliminar. Toda persona en la tierra tiene derecho a la privacidad. Sin embargo, si la misma persona utiliza una plataforma digital que se ejecuta en tecnología blockchain, entonces no podrá eliminar su rastro del sistema cuando no lo quiera allí. En palabras simples, no hay manera de que pueda eliminar su rastro, dejando los derechos de privacidad en pedazos.
    • Requiere experiencia Conocimiento
      Implementar y gestionar un proyecto blockchain es difícil. Requiere un conocimiento profundo para pasar por todo el proceso. Por eso es difícil encontrar especialistas o expertos en blockchain porque se necesita mucho tiempo y esfuerzo para capacitar a un experto en blockchain. Por lo tanto, este artículo es un buen lugar para comenzar y una buena guía si ya ha comenzado.
    • Interoperabilidad
      Múltiples redes blockchain que trabajan arduamente para resolver el problema del libro mayor distribuido hacen que sea difícil relacionarlas o integrarlas entre sí. Esto dificulta la comunicación entre diferentes cadenas.
    • Integración de aplicaciones heredadas
      Muchas empresas y aplicaciones todavía utilizan sistemas y arquitectura heredados; La adopción de la tecnología blockchain requiere una revisión completa de estos sistemas, lo que debo decir que no es factible para muchos de ellos.

    Blockchain sigue evolucionando y madurando todo el tiempo, así que no se sorprenda si estas desventajas mencionadas hoy se transforman en ventajas más adelante. Bitcoin, que es una criptomoneda, es un ejemplo popular de cadena de bloques, una cadena de bloques popular que ha ido en aumento además de la criptomoneda bitcoin es la cadena de bloques Ethereum. Bitcoin se centra en las criptomonedas, mientras que Ethereum se centra más en los contratos inteligentes, que han sido la principal fuerza impulsora de las nuevas plataformas tecnológicas. Camas articuladas

    Lectura recomendada : Bitcoin vs. Ethereum: ¿Cuál es la diferencia?

    Comencemos a construir nuestra API

    Con un conocimiento sólido de blockchain, ahora veamos cómo construir una blockchain de Ethereum e integrarla en una API estándar en Node.js. El objetivo final es comprender bien cómo se están construyendo las dApps y las plataformas Blockchain.

     

    La mayoría de las dApps tienen una arquitectura y estructura similares. Básicamente, tenemos un usuario que interactúa con la interfaz de la dApp, ya sea web o móvil, que luego interactúa con las API del backend. Luego, el backend, previa solicitud, interactúa con los contratos inteligentes o la cadena de bloques a través de nodos públicos; estos ejecutan aplicaciones Node.js o el backend usa blockchain ejecutando directamente el software Node.js. Todavía hay muchas cosas entre estos procesos, desde elegir crear una aplicación totalmente descentralizada o una aplicación semidescentralizada hasta elegir qué debe descentralizarse y cómo almacenar de forma segura las claves privadas.

    Lectura recomendada : Arquitectura de aplicaciones descentralizadas: back-end, seguridad y patrones de diseño

    Cosas que debemos saber primero

    Para este tutorial, intentaremos crear el backend de una aplicación de tienda de música descentralizada que utiliza el poder de la cadena de bloques Ethereum para almacenar música y compartirla para descargarla o transmitirla.

    La estructura básica de la aplicación que intentamos crear tiene tres partes:

    1. Autenticación , que se realiza mediante correo electrónico; Por supuesto, necesitamos agregar una contraseña cifrada a la aplicación.
    2. Almacenamiento de datos , los datos de música se almacenan primero en ipfs y la dirección de almacenamiento se almacena en la cadena de bloques para su recuperación.
    3. Recuperación , pudiendo cualquier usuario autenticado acceder a los datos almacenados en nuestra plataforma y utilizarlos.

    Construiremos esto con Node.js, pero también puedes construir con Python o cualquier otro lenguaje de programación. También veremos cómo almacenar datos multimedia en IPFS , obtener la dirección y escribir funciones para almacenar esta dirección y recuperar esta dirección de una cadena de bloques con el lenguaje de programación Solidity.

    Aquí hay algunas herramientas que deberíamos tener a nuestra disposición para construir o trabajar con Ethereum y Node.js.

    • Node.js
      El primer requisito es una aplicación Node. Estamos intentando crear una aplicación Node.js, por lo que necesitamos un compilador. Asegúrese de tener Node.js instalado y descargue el último binario de soporte a largo plazo ( LTS ).
    • Truffle Suite
      Truffle es un entorno de prueba y desarrollo de contratos, así como una canalización de activos para la cadena de bloques Ethereum. Proporciona un entorno para compilar, canalizar y ejecutar scripts. Una vez que se habla de desarrollar blockchain, Truffle es una parada popular a la que acudir. Consulte Truffle Suite en Truffle Suite: Sweet Tools for Smart Contracts .
    • Ganache CLI
      Otra herramienta que funciona bien con Truffle es Ganache-CLI. Está construido y mantenido por el equipo de Truffle Suite. Después de construir y compilar, necesita un emulador para desarrollar y ejecutar aplicaciones blockchain y luego implementar contratos inteligentes para su uso. Ganache le facilita la implementación de un contrato en un emulador sin utilizar dinero real para costos de transacción, cuentas reciclables y mucho más. Lea más sobre Ganache CLI en Ganache CLI y Ganache .
    • Remix
      Remix es como una alternativa a Ganache, pero también viene con una GUI para ayudar a navegar en la implementación y prueba de contratos inteligentes de Ethereum. Puede obtener más información al respecto en Remix: Ethereum IDE y comunidad . Todo lo que tienes que hacer es visitar https://remix.ethereum.org y usar la GUI para escribir e implementar contratos inteligentes.
    • Web3
      Web3 es una colección de bibliotecas que le permite interactuar con un nodo Ethereum. Estos podrán ser nodos locales o remotos del contrato a través de HTTP, IPC o Web Sockets. Introducción a Web3.js · El curso intensivo para desarrolladores de Ethereum Blockchain es un buen lugar para aprender un poco sobre Web3.
    • IPFS
      Un protocolo central que se utiliza en la creación de dApps. El sistema de archivos interplanetario (IPFS) es un protocolo y una red de igual a igual para almacenar y compartir datos en un sistema de archivos distribuido. IPFS Powers the Distributed Web explica más sobre IPFS y cómo se usa habitualmente.

    Crear una API de backend desde cero

    Entonces, primero tenemos que crear un backend para usarlo y estamos usando Node.js. Cuando queremos crear una nueva API de Node.js, lo primero que haremos es inicializar un paquete npm. Como probablemente sepa, npm significa Node Package Manager y viene empaquetado con el binario Node.js. Entonces creamos una nueva carpeta y la llamamos "blockchain-music" . Abrimos la terminal en ese directorio de carpetas, y luego ejecutamos el siguiente comando:

     

    $ npm init -y touch server.js routes.js

    Esto inicia el proyecto con un archivo package.json y responde sí a todas las preguntas. Luego también creamos un archivo server.js y un archivo route.js para escribir las routesfunciones en la API.

    Después de todo esto, deberá instalar los paquetes que necesitamos para que nuestra compilación sea fácil y directa. Este proceso es continuo, es decir, puedes instalar un paquete en cualquier momento durante el desarrollo de tu proyecto.

    Instalemos los más importantes que necesitamos ahora mismo:

    • expreso.js
    • @trufa/contrato
    • Trufa.js
    • web3.js
    • dotenv
    • short-id
    • MongoDB
    • nodemonio

    También tendrás que instalar Truffle.js globalmente , para que puedas usarlo en todas partes de tu entorno local. Si desea instalarlos todos a la vez, ejecute el siguiente código en su Terminal:

    $ npm install nodemon truffle-contract dotenv mongodb shortid express web3 --save npm install truffle -g

    La --savebandera es guardar el nombre del paquete en el archivo package.json . La -gbandera es almacenar este paquete en particular globalmente, para que podamos usarlo en cualquier proyecto en el que vayamos a trabajar.

    Luego creamos un archivo .env donde podemos almacenar el URI secreto de nuestra base de datos MongoDB para su uso. Lo hacemos ejecutando touch.env en la Terminal. Si aún no tiene una cuenta de base de datos con MongoDB, comience primero con la página de MongoDB .

    El paquete dotenv exporta nuestra variable almacenada al entorno de proceso Node.js. Asegúrese de no enviar el archivo .env cuando lo envíe a repositorios públicos para evitar la filtración de sus contraseñas y datos privados.

    A continuación, tenemos que agregar scripts para las fases de construcción y desarrollo de nuestro proyecto en nuestro archivo package.json . Actualmente nuestro paquete.json se ve así:

    { "name": "test", "version": "1.0.0", "description": "", "main": "server.js", "scripts": { "test": "echo "Error: no test specified"" exit 1"" } 




    Tal vez te puede interesar:

    1. Hacer un Polyfill completo para el elemento de detalles HTML5
    2. Más allá del navegador: de aplicaciones web a aplicaciones de escritorio
    3. Creación de un detector de habitaciones para dispositivos IoT en Mac OS
    4. Creación de una aplicación basada en Spotify utilizando Nuxt.js

    Cómo crear una API de Node.js para Ethereum Blockchain

    Cómo crear una API de Node.js para Ethereum Blockchain

    Aplicaciones comunes de blockchainDesventajas de blockchainComencemos a construir nuestra APICosas que debemos saber primeroCrear una API de backend desde cero

    programar

    es

    https://pseint.es/static/images/programar-como-crear-una-api-de-node-1083-0.jpg

    2024-05-21

     

    Cómo crear una API de Node.js para Ethereum Blockchain
    Cómo crear una API de Node.js para Ethereum Blockchain

    Si crees que alguno de los contenidos (texto, imagenes o multimedia) en esta página infringe tus derechos relativos a propiedad intelectual, marcas registradas o cualquier otro de tus derechos, por favor ponte en contacto con nosotros en el mail [email protected] y retiraremos este contenido inmediatamente

     

     

    Update cookies preferences