No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Lenguajes y herramientas para el desarrollo blockchain

6/27
Recursos

El mundo de desarrollo sobre blockchain es amplio. Exploremos una serie de conceptos y tecnologías que tienes que conocer para encontrar tu lugar en el desarrollo web3.

Ecosistema de desarrollo blockchain

Cada blockchain es un mundo. Tiene sus propias redes y características, utiliza diferentes lenguajes de programación, frameworks o librerías. Al desarrollar sobre blockchain, podrás encontrarte diversos tipos de profesionales y dependiendo tu interés podrás especializarte en uno u otro.

Tipos blockchain

En el mundo descentralizado, la gran mayoría de las blockchains importantes como Ethereum o Bitcoin son públicas. Cualquiera puede desplegar un nodo, desplegar un contrato inteligente o interactuar con la red. Todo es abierto y transparente.

Pero existe otra categoría de blockchains privadas como Hyperledger, ideales para cumplir con ciertos casos de uso para resguardar información de empresas o datos que no puedan ser guardados en una blockchain pública. No cualquier usuario puede interactuar con este tipo de blockchain, es necesario solicitar permisos y, obviamente, la centralización es alta.

Una tercer categoría, son las blockchains híbridas entre públicas y privadas. Las mismas poseen características tanto de blockchains públicas como de las privadas. El acceso es limitado hasta cierto punto, ya sea para desplegar nodos, contratos o interactuar con la red.

Tipos redes

Podríamos dividir los cientos de blockchains que existen en el mercado en dos categorías. Las basadas en EVM y las que no.

EVM son las siglas de Ethereum Virtual Machine. En pocas palabras, la EVM es la encargada de la ejecución de contratos inteligentes en cada nodo de la red de Ethereum, del cumplimiento de los protocolos, la comunicación entre nodos y de todo el funcionamiento de la red.

Entre las blockchains compatibles con EVM, además de Ethereum, podemos encontrar BNB Chain, Avalanche o Algorand. También existen segundas capas de Ethereum compatibles con EVM como Polygon, Arbitrum u Optimism. En todas estas blockchains suele utilizarse el mismo stack tecnológico, siendo Solidity el lenguaje principal de programación.

Otras blockchains que no están basadas en EVM, como Solana, Tron o Cardano, utilizan otros lenguajes de programación, siendo Rust el más adoptado por este tipo de blockchains alternativas.

A lo largo de este curso, trabajaremos con la blockchain de Ethereum utilizando Solidity como lenguaje de programación.

Blockchain core developer vs. blockchain dapps developer

Los profesionales del desarrollo blockchain se dividen en dos tipos, los core developer, o backend; y los dapps developer, o front-end.

Por un lado, los core developers, son aquellos especialistas en desarrollar contratos inteligentes. Tienen conocimientos de criptografía, de diseño de protocolos y, sobre todo, de seguridad para resguardar la información en el contrato y evitar robos de fondos.

Por otro lado, los dapps developer. Las siglas "DAPPS" hace referencia a decentralize apps, o aplicaciones descentralizadas. Son especialistas en tecnologías front-end como HTML, CSS y Javascript; pero, a ese stack tecnológico, se le añade el conocimiento sobre conexión con wallets e interacción con contratos inteligentes desde la aplicación.

Así como en web2 puedes ser un desarrollador backend, front-end o full-stack, lo mismo ocurre en web3. Si es de tu interés profesional, puedes ser un core developer y dapps developer al mismo tiempo, lo que te convertiría en un "full-stack blockchains developer".

Lenguajes, frameworks y librerías

Los diferentes tipos de profesionales blockchain tienen a su disposición un amplio abanico de tecnologías que puedes utilizar para hacer su trabajo.

  • Lenguajes de programación: Solidity es el lenguaje de programación por excelencia para las blockchains basadas en EVM. Rust es otro lenguaje que ha sido ampliamente adoptado para el desarrollo de smart contracts. Ya sea backend o front-end, conocer Javascript es indispensable. Go es otro lenguaje tradicional que se utiliza mucho en proyectos descentralizados.

Toma el Curso Básico de Programación en Go.

  • Frameworks de desarrollo: Si trabajas con Javascript, herramientas como HardHat o Truffe son entornos de desarrollo excelentes para desarrollar pruebas o automatizar el despliegue de contratos. Si conoces Python, Brownie será el framework ideal para ti.

  • Librerías: Ya hemos dicho que Javascript es crucial en el desarrollo blockchain. Tecnologías como React predominan en el mercado a la hora de desarrollar aplicaciones descentralizadas. Librerías como Web3.js o Ether.js son excelentes para conectarte con un contrato desde un front-end. Cada blockchain tiene sus propias librerías; Solana, por ejemplo, posee @solana/web3.js como principal dependencia para interactuar con la red.

  • CLI: Como devs, ¡amamos los CLI! Encontrarás muchas herramientas que funcionan a través de terminales de línea de comandos que te permitirán ejecutar tareas mucho más rápido. Web3 CLI, Thirdweb o Create Web3 dApp son algunas de ellas. Solana también tiene su propio CLI o casi cualquier blockchain lo tiene. De ahí la importancia de ser amigo de las terminales.

Proceso de desarrollo

Las etapas del desarrollo de software web3 tiene sus diferencias con respecto al software tradicional.

Puedes comenzar desarrollando el smart contract. Cuando consideres que el mismo está listo, deberás interactuar con algún proveedor para el despliegue del mismo a blockchains como Ethereum. Los más conocidos son Infura o Alchemy. A diferencia del software web2 donde utilizamos AWS, Azure o algún proveedor cloud similar para desplegar aplicaciones backend.

Interactuar con ese contrato desde un front-end, requerirá de una wallet, siendo Metamask la principal para blockchains basadas en EVM. En el desarrollo del propio front-end, deberás programar la lógica de conexión con la wallet e interacción con los datos del contrato inteligente.

El proceso de desarrollo posee varias etapas que debes conocer. Ya sea que quieras ser backend o front-end, es recomendable tener un mínimo de experiencia en todo el stack. A lo largo de las siguientes clases, explorarás cada uno de estos pasos para desarrollar tu primera aplicación descentralizada.

Conclusión

Muchísimas tecnologías y conceptos se mencionaron a lo largo de esta clase. Bastante abrumador, seguramente, sobre todo si aún no tienes experiencia en desarrollo. Si te sientes perdido, no te preocupes. En este curso descubrirás poco a poco tu camino como desarrollador web3. Solo se requiere de muchas ganas de aprender.


Contribución creada por: Kevin Fiorentino (Platzi Contributor).

Aportes 4

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Las principales diferencias entre el desarrollo Web2 y Web3 son los lenguajes que se utilizan en el back principalmente (Solidity, Rust, C++). También cambian los protocolos de comunicación, en lugar de utilizar HTTP se utiliza JSON RPC. El típico logueo por usuario y contraseña ya no se suele utilizar, en su lugar identificamos al usuario a través de su wallet. Con respecto al store de la información, ya no se utiliza MySQL o Mongo, la propia blockchain guarda los datos o en su defecto servicios descentralizados como IPFS.
Las tecnologías front-end son las únicas que no cambian, se sigue utilizando React, Angular o Vue o simplemente JS. Si cambian las librerías para conectarnos a cada blockchain, en lugar de clientes HTTP.

Creo que este modelo de desarrollo de una Dapp es muy importante, por eso les muestro un breve resumen.

Soy una apasionado por el blockchain, amo los contratos inteligentes y precisamente por eso quiero desarrollar mi perfil en este lado, inicie la carrera de blockchain en platzi y ahora busco iniciar a escribir mis primera línea de código para mi proyecto personal. Ya en su momento escribir mis primeras líneas de código en remix. generando mi primer smart contract, pero realmente deseo fortalecer y madurar mi perfil en este punto como desarrollar blockchain enfatizado en smart contract.

No conocía Wagmi, thanks ;)