Es muy importante antes de cualquier desarrollo entender los diferentes componentes que incluye una aplicación. En este caso la arquitectura de una Dapp.
- Dapp: Aplicacion Descentralizada. Tiene partes hosteadas en una blockchain e interactuan tambien con otros componentes fuera de ella.
Los aspectos importantes a considerar cuando diseñamos una app en Ethereum son los siguientes:
-
** Escoger la blockchain o el proveedor de nuestro nodo. **Tener una local o implementarla uno mismo es cara y costosa de hacer. Generalmente se escoge una empresa que nos provea los nodos. Ejemplo: Alchemy, Infura etc.
-
Tener una red de Test y Prod para preparar los ambientes. En test hay facilidad de despliegue y costos mas bajos. En cambio en produccion ya necesitamos fondos reales en Ether. En estas redes se almacenaran nuestros smart contracts.
-
Front-end / Cliente / Third Party: Puede ser una app web o mobile. Esta relacion nos permitira hacer queries o solicitudes directamnete con el proveedor, hacer actualizaciones dentro de la blockchain etc.
Ejemplo React, Angular. -
Definir un Signer: nos permite autenticarnos por medio de una wallet. Todos los procesos que involucren actualizacion implican un costo, y quien abona ese costo es un signer.
-
En el mundo NFT generalmente guardamos metadata. Tenemos la opcion de IPFS, Infura entre otros. No es necesario que toda la data se guarde en la blockchain por los costos que conlleva.
-
Componente de graph: queries sencillos o complejos que nos permite ir a los smart contracts y traer cierto tipo de informacion.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?