Intercambio de bitcoins Intercambio de bitcoins
Ctrl+D Intercambio de bitcoins
ads
Casa > ICP > Info

Lectura recomendada por Golden丨¿Cuáles son los cuellos de botella y los umbrales del desarrollo de Dapp en Ethereum?

Author:

Time:

Las aplicaciones descentralizadas (Dapps) se consideran innovaciones disruptivas en áreas como la banca (Di-Fi) y los juegos. Pero incluso las soluciones más innovadoras no serán reconocidas si no cumplen con las expectativas del consumidor.

Lo que los consumidores quieren es una experiencia de usuario fluida y madura, y lograr este objetivo es otro gran desafío para los desarrolladores de Ethereum Dapp.

Este artículo proporciona una descripción general de una arquitectura Dapp típica y señala algunas de las limitaciones inherentes de la pila Ethereum estándar actual que dificultan que los desarrolladores creen una experiencia de usuario convincente. Luego, presentaré algunas innovaciones en el campo de la infraestructura de Ethereum que pueden ayudar a los desarrolladores a superar estos desafíos.

Arquitectura clásica de Ethereum Dapp

En general, una Dapp en Ethereum consta de tres partes principales:

Los contratos inteligentes, generalmente escritos en Solidity, se crean utilizando marcos como Truffle Suite y se implementan en la cadena de bloques Ethereum.

Código front-end, escrito en Java.

Backend: normalmente un nodo de cadena de bloques de Ethereum estándar. La comunicación entre el front-end y el back-end generalmente usa la API JSON-RPC o GraphQL proporcionada por el nodo.

También hay varias bibliotecas que facilitan la comunicación front-end con los nodos Eth, las más populares son web3.js y ethers.js. También hay bibliotecas web3 para muchos otros lenguajes (Java, Python, Rust…).

Nodo de back-end autoconstruido

En los primeros días de Ethereum, los desarrolladores tenían que operar sus propios nodos de Ethereum. Una vez que se lanza el Dapp, también deben operar nodos de grado de producción (o grupos de nodos). Operar un nodo de blockchain es una gran carga de trabajo y también afectará la eficiencia de los desarrolladores.

Proveedor de nodo como servicio (NaaS)

Este desafío anterior ha llevado al surgimiento de plataformas de "nodo como servicio" como Infura y compañías relativamente nuevas como Nodesmith, Quiknode, Blockdaemon, Ethernode, Chainstack, Alchemy, CloudFlare y otras.

Se sospecha que el protocolo de opciones en cadena FinNexus está siendo atacado: Jinse Finance informó que, según el analista de investigación de The Block en Twitter, se sospecha que el protocolo de opciones en cadena FinNexus está siendo atacado. Su implementador de contrato cambia el propietario del token a una dirección en Ethereum y BSC. Esta dirección ha acuñado 323 millones de FNX (6 millones de dólares) en Ethereum y 60 millones de FNX (1,6 millones de dólares) en BSC y ha comenzado a vender tokens. [2021/5/18 22:12:37]

Estas plataformas proporcionan a los desarrolladores nodos de Ethereum basados ​​en la nube, lo que les ahorra el esfuerzo de operar los nodos. Soluciones para desarrollo y producción. Estas plataformas descargan la gestión del sistema, como parches y actualizaciones, para el sistema operativo base y el propio software de nodo a los desarrolladores.

Limitaciones inherentes a los nodos de Ethereum

Incluso si el servicio de nodo puede reemplazar con éxito al desarrollador como administrador del sistema, no puede ayudar a los desarrolladores a lograr una mejor experiencia de usuario para crear una Dapp mejor, debido a la arquitectura del servicio de nodo y las limitaciones inherentes y JSON-RPC de las interfaces de GraphQL.

Las principales limitaciones incluyen:

1. La información del estado observado es inconsistente

Para escalar más allá de la capacidad de un solo nodo y brindar mayor confiabilidad, los nodos como plataformas de servicio brindan acceso a grupos de nodos a través de balanceadores de carga.

Dado que todos estos nodos funcionan de manera autónoma como nodos pares en la red Ethereum, cuando la información se transmite a través de la red en un momento determinado, los diferentes nodos pueden estar en diferentes alturas de bloque, o incluso en diferentes bifurcaciones. Esto significa que una Dapp puede recibir información inconsistente sobre el estado de la cadena de bloques porque sus solicitudes obtienen resultados de diferentes nodos detrás del balanceador de carga.

Las plataformas de servicio de nodo generalmente intentan resolver este problema a través de la permanencia de la sesión en el balanceador de carga, que siempre intentará enviar la consulta de la interfaz especificada al mismo nodo de backend, pero este método fallará en varias situaciones:

Cuando el front-end genera más solicitudes de las que puede manejar un solo nodo de back-end;

Cuando un problema de red hace que el frontend se desconecte del backend y deba volver a conectarse;

Las plataformas de servicio de múltiples nodos enrutarán diferentes tipos de solicitudes de front-end (por ejemplo, el envío de transacciones o el historial de la cadena de búsqueda) a diferentes conjuntos de nodos de back-end optimizados para ese tipo de consulta.

LTC cayó por debajo de la marca de $ 170 con una caída intradía del 12,31 %: según datos de Huobi Global, LTC cayó a corto plazo y cayó por debajo de la marca de $ 170. Ahora se reporta en $ 169,95, con una caída intradía del 12,31 %. fluctúa mucho, por favor haga un buen trabajo en el control de riesgos. [2021/3/25 19:18:07]

Entonces, es difícil para Dapp manejar la reorganización de la cadena porque el front-end a menudo accede a múltiples nodos de back-end, y los estados de blockchain obtenidos por estos nodos de back-end son inconsistentes entre sí. Al rastrear el historial de la cadena hacia atrás, un Dapp puede encontrar repentinamente que el bloque principal que estaba buscando ya no existe (porque ahora está interactuando con otro nodo en una bifurcación diferente). Luego, los desarrolladores de Dapp tienen que escribir código para resolver este problema (generalmente volviendo a conectarse repetidamente hasta que encuentra un nodo). Esto agrega una complejidad innecesaria a la Dapp y puede generar discrepancias en la información presentada al usuario.

2. La búsqueda de información en blockchain es lenta y limitada

Las dapps tienen una capacidad limitada para buscar transacciones o el historial en cadena, ya que los nodos Ethereum estándar no son adecuados para admitir búsquedas precisas o realizar escuchas filtradas de datos en tiempo real. Para hacer esto de una manera eficiente, necesitamos hacer mucha indexación de millones de bloques y transacciones, pero:

Los nodos de Ethereum solo indexan ciertos campos en el registro enviado por la ejecución de la transacción (los campos que se indexarán deben ser marcados por el desarrollador al implementar el contrato)

Los nodos de Ethereum no indexan datos para transacciones internas (que suceden cuando un contrato inteligente llama a un método de otro contrato)

Los desarrolladores son reacios a agregar campos de índice adicionales, porque el costo de cada transacción aumentará por cada campo de índice adicional, lo que generará costos adicionales para los usuarios contratados.

Los nodos de Ethereum realizan búsquedas utilizando filtros Bloom, por lo que siempre es una búsqueda difusa y producirá coincidencias falsas positivas. La coincidencia exacta requiere un procesamiento adicional por parte del front-end. El front-end debe obtener el bloque completo o la transacción de la coincidencia aproximada y recuperarlo nuevamente para encontrar el resultado de una coincidencia exacta. Esto no solo requiere el esfuerzo del desarrollador, sino que también desperdicia ancho de banda entre la interfaz y los nodos.

La sintaxis de búsqueda disponible es muy limitada: solo se admiten selecciones básicas y sustituciones simples.

La obtención de resultados de búsqueda es lenta: realizar búsquedas en bloques grandes puede llevar horas

JSON-RPC es una gran pérdida de ancho de banda: devuelve muchos más datos de los que realmente necesita. La interfaz de GraphQL usa menos ancho de banda, pero no proporciona capacidades de transmisión (el frontend debe sondear las actualizaciones)

3. Falta de atomicidad

En la mayoría de los entornos modernos, como las bases de datos relacionales, las transacciones son generalmente atómicas, pero en Ethereum (u otras cadenas de bloques) no lo son. Cada transacción pasará por una serie de transiciones de estado y se pueden encontrar varios problemas o fallas durante este proceso. Dapps debe llamar a múltiples API, consultando muchas fuentes de datos diferentes (bloques, mempool, estado de la red) para rastrear el ciclo de vida de una transacción hasta su finalización.

Una vez más, la carga recae en el código de front-end para sondear repetidamente para descubrir exactamente qué sucedió, mientras que los usuarios de Dapp experimentan retrasos y la necesidad de actualizar a medida que Dapp realiza todo este trabajo adicional.

4. El nodo es pasivo

Los nodos de Ethereum son pasivos, lo que significa que no pueden generar eventos o devoluciones de llamadas e invocar webhooks. Todas las operaciones deben ser iniciadas por la interfaz, que a su vez debe sondear los nodos para obtener información actualizada. Las capacidades de lectura del flujo de eventos de los nodos de Ethereum son demasiado limitadas para satisfacer las necesidades de la mayoría de las Dapps y solo están disponibles en las interfaces JSON-RPC, no en las interfaces GraphQL.

Repensar la infraestructura Dapp

Lo que proporciona dfuse es una plataforma para API de cadena de bloques de nivel superior que les permite hacer más trabajo más fácilmente que las API nativas proporcionadas por los nodos de cadena de bloques. Está diseñado sobre la base de brindar a los desarrolladores de Dapp la funcionalidad que necesitan para crear aplicaciones modernas de blockchain con una interfaz rápida y fluida que brinde una excelente experiencia de usuario.

Se espera que a través de la plataforma se puedan resolver todas las limitaciones mencionadas anteriormente y se puedan romper las limitaciones de los nodos tradicionales de Ethereum.

1. Una visión coherente

dfuse es una plataforma de datos de hiperescala integrada, no una colección de múltiples nodos Ethereum en un balanceador de carga. La plataforma dfuse proporciona información sobre el estado de la cadena en todas las conexiones y en todos los momentos. Ver un bloque (detectando tanto una bifurcación de cadena como una reorganización), o no informar el bloque en absoluto (en el caso de un bloque que experimenta una reorganización rápida y no viaja lejos).

De esta manera, Dapp nunca enfrenta una visión inconsistente del estado de la cadena y puede enfocarse en su función principal en lugar de intentar verificar los detalles de la cadena de bloques.

2. Búsqueda detallada y de alta velocidad

Permite a los desarrolladores de Dapp buscar los registros históricos de la cadena de bloques con una granularidad extremadamente fina, una velocidad y una eficiencia extraordinarias. También puede realizar filtrado en tiempo real y lectura de transmisión a través de las interfaces GraphQL, gRPC y Websocket.

Indexación completa de todos los campos del registro: todos los datos emitidos por cada transacción en el registro se aplican directamente a búsquedas de alta precisión.

Indexación completa de todas las transacciones internas (remitente, receptor, valor, método, parámetros de entrada), por lo que se realiza un seguimiento completo de la operación del contrato en la estructura de árbol de toda la llamada

La indexación no genera costos adicionales de gas para sus usuarios: la indexación de dfuse es una característica integrada de la plataforma dfuse y no aumenta el costo de recursos de la ejecución del contrato

La búsqueda encuentra coincidencias exactas, no búsquedas aproximadas. No es necesario escribir código front-end adicional para verificar dos veces los resultados de la búsqueda, y no es necesario desperdiciar ancho de banda para obtener datos innecesarios en lotes.

Proporciona un lenguaje de consulta estructurado, similar al lenguaje de consulta de Kibana o GitHub, con operaciones booleanas completas y la capacidad de profundizar directamente en la transacción o comando específico que está buscando.

Proporciona un rendimiento excelente: en menos de un segundo, de acuerdo con los criterios de búsqueda especificados, busque en todo el historial de la cadena para encontrar un conjunto de coincidencias exactas.

Lo mejor de ambos mundos con GraphQL que puede proporcionar respuestas concisas sin sacrificar las capacidades de transmisión: nuestra interfaz GraphQL proporciona una búsqueda filtrada completa en tiempo real para brindar de manera eficiente actualizaciones dinámicas a los usuarios.

El rendimiento es consistente independientemente del tráfico en la red Ethereum

3. Operaciones atómicas

Proporciona un punto final de lectura de flujo que comprende todos los estados complejos en los que puede ingresar una transacción y le notifica cuando alcanza la finalidad. En lugar de navegar por encuestas repetidas o verificar múltiples fuentes de datos para rastrear el estado de las transacciones, simplemente puede aumentar las transacciones y mantenerse conectado para recibir actualizaciones de estado en tiempo real, y así también proporcionar el estado de las transacciones en tiempo real a sus usuarios.

4. Servidor activo

Una buena plataforma le brindará un backend activo que puede iniciar eventos. Por ejemplo, se puede invocar una función lambda (o función de nube) de su elección según los criterios precisos que especifique (a través de la búsqueda mencionada anteriormente y otras funciones). Esto permite que Dapps implemente una arquitectura asíncrona donde las actualizaciones de datos se pueden enviar a los usuarios de manera fluida y en tiempo real a través de múltiples canales de comunicación.

5. Una plataforma moderna construida para Dapps de vanguardia

dfuse proporciona una capa de infraestructura moderna para su Dapp, a saber:

Rápido

Extensible

Proporciona acceso detallado y de alta precisión en tiempo real a los eventos de la cadena de bloques

Admite devoluciones de llamadas activas en forma de webhooks

Admite operaciones atómicas

La más alta confiabilidad en la industria

Por lo tanto, al desarrollar Dapps en Ethereum y encontrar los problemas anteriores, puede intentar usar diferentes herramientas para resolver los problemas Solo después de pulir el producto y capacitar al usuario, pueden surgir Dapps más refinados, prácticos y maduros.

Tags:

ICP
Golden Sentinel丨 Autoridad Europea de Valores y Mercados: Presentación de un marco legal para la moneda digital

Golden Finance Blockchain, 10 de enero La Autoridad Europea de Valores y Mercados (ESMA) anunció el jueves (9 de enero), hora local.

¿Cómo asegurarse de que el precio de la moneda no vuelva a cero? Estas habilidades básicas también deben mejorarse

Las criptomonedas como Bitcoin deben mejorar continuamente su seguridad para enfrentar los numerosos desafíos del futuro desarrollo tecnológico.

Zuckerberg sobre la próxima década: autogobierno comunitario u "otra forma de supervisión aún mejor"

El presidente ejecutivo de Facebook, Mark Zuckerberg, dijo que el mundo digital necesitaba supervisión, citando la regulación gubernamental como una posible solución.

Lectura recomendada por Golden丨¿Cuáles son los cuellos de botella y los umbrales del desarrollo de Dapp en Ethereum?

Las aplicaciones descentralizadas (Dapps) se consideran innovaciones disruptivas en áreas como la banca (Di-Fi) y los juegos.

Si hay otro gran mercado alcista, más del 90 % de la gente no aguantará ese momento

Ha pasado otro año desde el invierno del cifrado, y muchas personas, proyectos e instituciones se han estado apretando el cinturón con sus propios "sueños" y quieren sobrevivir.

Escuela de Periodismo, Universidad Renmin de China "Tocando la cadena": La reunión preparatoria del grupo de expertos de la industria de la cadena de bloques de medios se llevó a cabo con éxito y los expertos discutieron nuevas oportunidades para.

El 12 de enero, se llevó a cabo el "Seminario avanzado de blockchain de medios 2020 y la reunión preparatoria de think tanks de la industria de blockchain de medios" en el edificio de noticias Mingde de la Universidad.

Una imagen para entender la historia de la evolución del núcleo duro de TRON ¿Hacia dónde irá en 2020?

TRON|Historia de la evolución extrema de TRONDe la Edad de Piedra de TRON a la Edad de la Cerámica, a la Edad del Bronce y la Edad del Hierro, y luego a la Edad del Vapor.

ads