No tienes acceso a esta clase

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

Flujo de trabajo de desarrollo en Solana

14/15
Recursos

El desarrollo de un dApp (Aplicación Descentralizada) en Solana, o en cualquier Blockchain, sigue una arquitectura definida para desarrollar cualquier programa a lo igual que el desarrollo de aplicaciones tradicionales.

Desarrollo de aplicaciones descentralizadas

Comprendamos y diferenciemos cómo se desarrollan aplicaciones Web2 como en Web3, tanto su stack tecnológico y arquitectura.

Desarrollo de software Web2

Si tomamos como punto de comparación al desarrollo de software Web2, normalmente tenemos un front-end (Angular, React, Vue, Svelte) que consume una o más API de un backend (NodeJS, Java, Python, PHP, etc.) a través del protocolo HTTP.

El backend, a su vez, consume una base de datos (MySQL, PostgreSQL, MongoDB) u otros servicios que la aplicación necesite. Estas aplicaciones puede estar alojado en servidores como los de AWS, Azure, Google Cloud, Heroku, entre otros.

Desarrollo de software Web3

Haciendo la comparación con el stack de desarrollo de software convencional, veremos que no hay grandes cambios en el front-end, las tecnologías son las mismas. Con la salvedad de que aparece una nueva herramienta para el usuario como son las wallets como Metamask o Phantom.

El protocolo es el primer factor que cambia, ya que dejamos de utilizar HTTP para utilizar JSON RPC para comunicarnos con el backend.

Tanto las tecnologías backend como las bases de datos son las que cambian por completo, dado que la lógica de la aplicación y el almacenamiento de los datos se realiza en contratos inteligentes desarrollados en Solidity, Vyper, Rust o C/C++, dependiendo la Blokchain.

Con respecto a los servidores, también dejamos de utilizar las soluciones cloud, debido a que los contratos inteligentes se despliegan en los nodos de las propias Blockchains de forma descentralizada.

Solana vs. Ethereum

Cada Blockchain tiene sus particularidades para el desarrollo de software Web3. Dependiendo la misma, utilizaremos uno u otro Cliente JSON RPC. Las wallets también cambian, ya que no todas permiten conectarnos a las redes correspondientes a cada Blockchain.

En el caso de Solana, cuando desarrollamos un contrato inteligente, el lenguaje que utilizamos debe ser compatible con BPF (Berkeley Packet Filter). En pocas palabras, es la capacidad de un lenguaje de ser compilado para ser interpretado correctamente por el runtime de Solana. Por este motivo, Solana actualmente permite desarrollar contratos en Rust, C/C++. Si deseamos usar otro, este tiene que ser compatible con BPF.

Otra Blockchain como la de Ethereum requieren que sus lenguajes de programación sean compatibles con la Ethereum Virtual Machine (EVM) como Solidity o Vyper.

Bitcoin, por otro lado, es una Blockchain que no permite el desarrollo de contratos inteligentes y posee un lenguaje Turing incompleto denominado Bitcoin Script. Sin embargo, existen actualmente implementaciones layer two de para Bitcoin que permiten el desarrollo de contratos inteligentes en Solidity como RSK.

Conclusión

Ser un desarrollador Web2 sin duda te prepara para ser un desarrollador Web3. Aunque, con el correr de los años, existirán profesionales del desarrollo de software que dieron sus primeros pasos en Web3 sin necesidad de utilizar y conocer el ecosistema Web2.

La tecnología continúa evolucionando y las tecnologías o el stack que utilizamos para el desarrollo de software también se encuentra en constante evolución.

Depende de cada uno y de nuestros intereses como profesionales en la programación, adaptarnos a las nuevas tecnologías, tener la curiosidad por nunca parar de aprender y subirse a la ola en el desarrollo con este set de nuevas herramientas.


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

Aportes 8

Preguntas 4

Ordenar por:

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

o inicia sesión.

No sale el link en los recursos aunque mencionas que si :c

Cuando un programa es desplegado en el Runtime este programa se encarga de verificar si este Bytecode esta bien además de verificar si es una cuenta ejecutable, para que cuando un cliente lo va a llamar este BFP sea cargado y ejecutado

Cuando vamos a desarrollar en Solana lo podemos ver como una arquitectura Cliente servidor donde el servidor es la red de Solana y el cliente son cada uno de los que ya hemos hablado.

Cuando yo despliego un programa que esta desarrollado en Rust c o C++ el cual tiene que ser compatible con BPF lo puede hacer por medio de la línea de comandos o por medio de cualquier cliente esto se hace por medio de las transacciones y estas transacciones tienen instrucciones las cuales son básicamente Query que se hacen a la red de Solana, de esta manera es que podemos interactuar con la red de Solana.

Y cual es el curso que no hay recurso.
Me salio hasta en verso.lol

y cual es la trilogia! a caray! ya me tienen hipeado

Mas perdido que la mama del chavo jajajaja

El término que aparece en las diapositivas BPF (Berkeley Packet Filter) entiendo que es, en pocas palabras, la capacidad de un lenguaje de ser compilado de una determinada manera para ser interpretado correctamente por el runtime de Solana.
Solana actualmente solo permite desarrollar contratos en Rust, C/C++. Si deseamos utilizar otro, este tiene que ser compatible con BPF.

RESUMEN CLASE 14:
FLUJO DE TRABAJO
DE DESARROLLO EN SOLANA

Cuándo estará disponible el curso que nombraste? porque en recursos aún no figura