No tengo claro qué elementos del código de fondo de una Dapp están realmente descentralizados.
El siguiente enlace indica que el backend de una Dapp se almacena completamente en la cadena de bloques. Sin embargo, si tuviera que crear una aplicación web Dapp, ¿cuánto de lo que generalmente se denominaría en un sentido de desarrollo web como "backend" estaría realmente ubicado en la cadena de bloques?
Por ejemplo, si tuviera que desarrollar una aplicación web usando Python, ¿se reemplazaría toda la función de mi código Python por un contrato inteligente si estuviera desarrollando una Dapp, o solo los elementos clave de la lógica comercial?
La siguiente imagen me ayudó a comprender cómo encajaban las aplicaciones descentralizadas. Por lo general, soy un desarrollador de Java, por lo que estoy más familiarizado con la escritura de middleware para algún servidor J2EE y el alojamiento de la aplicación de esa manera. Mantengo esta explicación de muy alto nivel.
Actualmente estoy optando por el enfoque de:
IPFS NODE ----> REQUESTS
con contenido#
IPFS NODE <---- RECEIVES
contenido correspondiente de la redTengo una aplicación web estándar que permite a los usuarios cargar sus perfiles. El alcance del código Java es leer los datos a través de puntos finales y almacenarlos en una base de datos. El servidor de aplicaciones también serviría el contenido estático a un usuario que accede a una determinada URL. La versión descentralizada de esta sencilla aplicación sería la siguiente:
Gran parte de la lógica de la aplicación ha migrado al código frontal. Tenga en cuenta que esta es una aplicación ficticia y solo se ha utilizado como ejemplo.
Aquí hay un gran ejemplo de cómo conectar IPFS con un contrato de Solidity y consultar ambos a través de la consola JS en su navegador.
¡Gracias, espero que esto ayude!
Si consideramos DAPP= frontend+backend
, entonces el Frontend (no en la cadena de bloques) será el frontend web estándar, por ejemplo, javascript(web3js)+HTML, la tecnología utilizada necesita disponer de una API RPC que interactúa con el cliente ethereum.
Backend = contrato inteligente (almacenado en la cadena de bloques), por ejemplo, contratos de solidez donde define su lógica comercial (transacciones, etc.) y tenga en cuenta que el contrato inteligente tiene su almacenamiento (ubicado en la cadena de bloques) donde puede almacenar los datos de su aplicación.
Excepto los contratos inteligentes, todo está fuera de la cadena de bloques.
kyle burkett
Ender