El nacimiento de EOS.IO (The Dawn of EOS.IO)

in #eos7 years ago

DQmPgU9hugYig9dCJWYfpfDkZLA5Tmshk5qhTXg7rcfzuSq_1680x8400.png

fuente:https://steemit.com/eos/@eosio/the-dawn-of-eos-io

Aquí les comparto una traducción al español del siguiente comunicado publicado recientemente por @eosio. Les comento que no soy traductor profesional y no garantizo que esta traducción sea cien por ciento correcta.

https://steemit.com/eos/@eosio/the-dawn-of-eos-io

En el Libro Blanco Técnico de EOS.IO, hemos propuesto el software EOS.IO como el amanecer de una nueva era de la computación de cadena de bloques. El equipo de desarrollo de EOS.IO ha pasado el verano trabajando muy duro. El verano ha terminado y el desarrollo del software EOS.IO está por delante de lo previsto. Ahora se puede utilizar con configuraciones de red distribuidas. Tenemos un montón de avances emocionantes en el software de EOS.IO para informar así que asegúrese de leer hasta el final!

Prueba de rendimiento
Ahora que el software EOS.IO puede utilizarse en configuraciones de red distribuidas, podemos comparar su rendimiento. Nuestras pruebas internas muestran que el software actualmente es capaz de soportar más de 10.000 transacciones de un solo hilo (thread) por segundo en una red multi-nodo. Esto lo pone en marcha para soportar más de 1 millón de transacciones por segundo en máquinas con más de 100 núcleos de CPU.

Avances en el diseño
Los desarrolladores de aplicaciones estarán encantados de saber que nuestras últimas mejoras del software arquitectónico hacen más fácil que nunca la creación de aplicaciones paralelas que se comuniquen entre sí.

Acceso a bases de datos compartidas
Hemos habilitado una aplicación para leer el estado de la base de datos de otra aplicación sin requerir una comunicación asincrónica compleja. Alcanzamos esto mientras preservamos la capacidad de ejecutar en paralelo permitiendo que cada transacción declare el alcance (rango de datos) al que necesita leer o escribir acceso. Los productores (mineros) de bloques programarán transacciones para que no haya conflictos de datos.

Almacenamiento local de datos de aplicación por el usuario
Además de soportar el acceso de lectura en las cuentas, las aplicaciones ahora pueden almacenar datos en otras cuentas. Esto significa que un contrato de monedas puede almacenar el saldo en cuentas de usuario individuales en lugar de dentro de su propio ámbito. Una transferencia de Alice a Bob sólo requiere acceso de lectura / escritura al alcance de Alice y Bob y no afectará el alcance del contrato de monedas. Esto hace que muchas clases de aplicaciones sean trivialmente paralelas y permite el procesamiento de transferencias de monedas que superen el límite de rendimiento de un solo hilo. Por lo que sabemos, ninguna otra plataforma de cadena de bloques soporta un enfoque escalable y fácil para el desarrollo de un software de arquitectura paralela.

Transmisión de mensajes en línea
Ahora es más fácil que nunca enviar un mensaje a otra aplicación y saber con certeza que será aceptado y validado. Una aplicación puede generar cualquier número de mensajes adicionales para anexar al final de la transacción actual. Siempre y cuando estos mensajes generados compartan el mismo alcance de lectura / escritura y puedan ejecutarse dentro del tiempo asignado, se garantiza su entrega o la transacción completa se desenrollará.

Este enfoque es diferente al enfoque síncrono utilizado por otras plataformas. La entrega de mensajes síncronos, que bloquea la ejecución del subproceso actual hasta su devolución, crea el potencial de reentrada no anticipada. La reentrada ha sido una fuente de numerosos errores porque es difícil para los desarrolladores asegurarse de que su contrato esté en un estado consistente antes de realizar una llamada síncrona. Con el paso de mensajes en línea, que retrasa la ejecución hasta el final del controlador de transacciones actual, los desarrolladores pueden enviar un mensaje y proceder como si tuviera éxito. Si falla, toda la transacción se desenrollará sin efectos secundarios dañinos. Esto significa que los manejadores de mensajes nunca son llamados en un estado inconsistente.

Paso de mensaje diferido
A veces no sabes si un mensaje es válido o si hay tiempo suficiente en el reloj para ejecutarlo en línea con la transacción actual. Otras veces debes enviar un mensaje que acceda a datos fuera del ámbito de la transacción actual. En esta situación, las aplicaciones pueden solicitar a los productores de bloques (mineros) programar un mensaje que se entregará en el siguiente ciclo o en un bloque futuro. Si es válida entonces su solicitud puede ser notificada; si no lo es, entonces nunca se programará y su aplicación se puede limpiar después de un tiempo de espera.

Escala horizontal ilimitada
Los últimos avances en el diseño del software EOS.IO proporcionan a los desarrolladores un alto rendimiento posible con una sola máquina; las empresas pueden escalar a un millón de transacciones por segundo antes de requerir una arquitectura asincrónica más compleja.

Dicho esto, el software EOS.IO seguirá soportando el paso de mensajes asincrónicos entre grupos de aplicaciones que no necesitan compartir el estado. Hay muchos beneficios al pasar a mensajes asíncronos (como el soporte de clúster trivial), pero esos beneficios vienen con el costo de una mayor complejidad de desarrollo; el software EOS.IO soporta esto para empresas que requieren varios millones de transacciones por segundo, pero ofrece un enfoque simplificado para aquellos que no lo hacen.

Topología de red de próxima generación
El software EOS.IO está diseñado para capacitar a los productores de bloques (mineros) para proporcionar una infraestructura descentralizada de alto rendimiento como un servicio. Los desarrolladores de aplicaciones necesitan más de un conjunto de productores de bloques que agregan transacciones, necesitan nodos API, nodos de semillas, índices de bases de datos, almacenamiento y hosting.

Las cadenas de bloques de alto rendimiento exigen arquitecturas de red de alto rendimiento con requisitos muy diferentes de las cadenas de bloques existentes. Con un millón de transacciones por segundo cada nodo necesita lograr 100 de megabytes por segundo por conexión. Esto es trivial para los grandes centros de datos, pero inconcebible para los usuarios domésticos.

Además cadenas de bloques de alto rendimiento consisten en nodos heterogéneos que ejecutan diferentes subconjuntos de la cadena de bloques y probablemente podará el historial de transacciones. Esto es una desviación significativa de los sistemas previos de cadenas de bloques donde todos los nodos son idénticos y tienen una historia completa.

Una cadena de bloques tradicional consiste en un conjunto dinámico de nodos conectados aleatoriamente en una red de malla. Se dirigen a usuarios domésticos con ancho de banda limitado y están diseñados para atravesar routers domésticos (NAT) y agregar dinámicamente nodos a la red. Nuestra observación es que esta arquitectura no es adecuada para infraestructura de bloques de alto rendimiento.

El software EOS.IO comienza con la suposición de que todos los nodos están conectados intencionalmente entre sí. Los operadores de nodos trabajan juntos para asegurar que la topología de la red sea segura, bien planificada y eficiente. Esto permite a los productores de bloques establecer conexiones directas (y seguras) entre sí y evita que los atacantes exploren toda la topología de la red en busca de los nodos con objetivo de apagarlos.

Los productores de bloques alojarán puntos finales públicos a los que cualquier usuario puede conectarse y suscribirse a cualquier subconjunto de datos de transacción que deseen. Esto minimizará los requisitos de ancho de banda para nodos completos operados por productores no bloqueados. Los nodos que no quieren confiar en un solo productor de bloques pueden suscribirse a múltiples fuentes o esperar la confirmación de ⅔ de los productores de bloques (unos 45 segundos).

El beneficio de esta arquitectura es que los nuevos nodos pueden conectarse y sincronizarse a muy altas velocidades de la infraestructura de ancho de banda proporcionada por los productores de bloques. Además, esta arquitectura está diseñada para facilitar la transmisión unidireccional eficiente en lugar de protocolos bidireccionales menos eficientes.

A escala, los productores de bloques estarán operando una nueva columna vertebral de Internet con el software EOS.IO. Los productores de bloques serán como los proveedores de Internet Tier-1 con conexiones dedicadas de fibra óptica a través de los continentes. Estos productores operarán centros de datos a los que los suscriptores de Tier-2 pueden conectarse. Tier-2 incluye a cualquiera que busque ejecutar un nodo completo o parcial o una aplicación grande. Por ejemplo, los servicios como exploradores de bloques, carteras web y cripto-monedas serían los suscriptores de Tier-2 a los productores de bloques.

Sentimos que esta arquitectura de construcción de redes cooperativas intencionales permitirá a los productores de bloques ofrecer una calidad de servicio única en la industria de la criptomonedas.

El camino por recorrer
En septiembre de este año, block.one lanzará EOS.IO Dawn 1.0, que debería ser lo suficientemente estable y suficientemente documentado como para que cualquiera pueda lanzar su propia red de pruebas sobre la que puedan construir y desplegar sus aplicaciones. EOS.IO Dawn 1.0 será el primer pre-lanzamiento de nuestro SDK EOS.IO (Software Development Kit).

Aquellos que han seguido nuestra hoja de ruta de EOS.IO estarán felices de saber que estamos adelantados. La fase 1, el entorno de pruebas mínimas viables, que incluye un nodo autónomo, contratos nativos, API de máquina virtual, interfaz RPC, herramientas de línea de comandos (eosc) y documentación básica para desarrolladores, se ha completado. Estaremos haciendo un lanzamiento etiquetado como "EOS.IO Dawn 1.0". Esta fase estaba programada para ser completa en el verano de 2017 que termina el 22 de septiembre.

Ya hemos completado la mitad de la Fase 2, la Red de Pruebas Mínimas Viables. Esta fase está programada para ser completada en el otoño de 2017 e incluye código de trabajo en red, sandboxing de máquinas virtuales, uso de recursos y limitación de velocidad, importación de genesis y comunicación entre bloques. En este momento ya tenemos redes distribuidas funcionales y sandboxing de máquinas virtuales. Estamos seguros de que completaremos la Fase 2 según lo programado.

EOS.IO Dawn 2.0, el próximo gran pre-lanzamiento, llegará a finales de año. EOS.IO Dawn 2.0 incluirá varias características críticas que no están presentes en EOS.IO Dawn 1.0, incluyendo:

• Limitación de la tasa de recursos (prevención de spam / abuso)
• Merkle Tree Generation (para la comunicación de cadena cruzada)
• Gestión de actualizaciones y gobernanza
• SDK más robusto
• Mejoras generales de la infraestructura Ejemplo foto instantánea de las tokens ERC20

El objetivo de EOS.IO Dawn 2.0 es ser lo suficientemente funcional como para lanzar una cadena de bloques en vivo.

Una cosa más….

Almacenamiento EOS.IO!
Por primera vez, los desarrolladores podrán crear e implementar una aplicación descentralizada e interfaces web sin tener que preocuparse por el costo de ancho de banda y almacenamiento, ni siquiera alojar servidores propios; esto permite una serie de nuevos modelos de negocio descentralizados innovadores, como un YouTube descentralizado, Soundcloud, u otros proyectos de almacenamiento intensivo.

Además del ancho de banda computacional, los portadores de EOS tokens ahora tendrán acceso al almacenamiento en el cloud, alojamiento y descarga de ancho de banda a través de IPFS / HTTPS; este acceso se puede utilizar sin consumir ni transferir tokens.

Para lograrlo, los productores de bloques hospedarán archivos a través de IPFS / HTTPS para los usuarios y permitirán a otros usuarios descargar esos archivos. Los recursos de almacenamiento se pagan mediante emisiones de cadenas de bloque y se limitan a los titulares de EOS tokens proporcionalmente a sus participaciones; como el modelo de ancho de banda EOS.IO, el almacenamiento no gasta los tokens y la capacidad de almacenamiento por token aumentará con el tiempo con las actualizaciones de hardware del productor de bloques.

La solución de almacenamiento de software EOS.IO también puede admitir alojamiento público para aquellos que no tienen tokens; más detalles serán lanzados en el evento que ocurrirá en Shangai y Londres.

Negación de responsabilidad
Block.one es una empresa de software y está produciendo el software EOS.IO como software gratuito de código abierto. Este software puede permitir a aquellos que lo desplieguen lanzar una cadena de bloques o aplicaciones descentralizadas con las características descritas anteriormente. block.one no lanzará una cadena de bloque pública basada en el software EOS.IO. Será responsabilidad exclusiva de terceros y de la comunidad y de aquellos que deseen convertirse en productores de bloques para implementar las características y / o proporcionar los servicios descritos arriba como mejor les parezca. block.one no garantiza que nadie implementará tales características o proporcionará tales servicios o que el software EOS.IO será adoptado y desplegado de ninguna manera.

Todas las declaraciones en este documento, aparte de las declaraciones de hechos históricos, incluyendo cualquier declaración sobre la estrategia de negocio de block.one, planes, perspectivas, desarrollos y objetivos son declaraciones a futuro. Estas declaraciones son solo predicciones y reflejan las creencias y expectativas actuales de block.one con respecto a eventos futuros y se basan en suposiciones y están sujetas a riesgos, incertidumbres y cambios en cualquier momento. Operamos en un entorno que cambia rápidamente. De vez en cuando surgen nuevos riesgos. Dado estos riesgos e incertidumbres, se le advierte que no confíe en estas declaraciones prospectivas. Los resultados, desempeño o eventos reales pueden diferir materialmente de los contenidos en las declaraciones prospectivas. Algunos de los factores que podrían causar que los resultados, el desempeño o los hechos reales difieran materialmente de las declaraciones prospectivas contenidas en este documento incluyen, sin limitación: volatilidad del mercado; disponibilidad continua de capital, financiamiento y personal; aceptación de productos; el éxito comercial de los nuevos productos o tecnologías; competencia; regulación y leyes gubernamentales; y las condiciones generales económicas, de mercado o de negocio. Cualquier declaración prospectiva hecha por block.one habla sólo a partir de la fecha en la que se hace y block.one es bajo ninguna obligación de, y renuncia expresamente a cualquier obligación de, actualizar o alterar sus declaraciones a futuro, ya sea como un resultado de nueva información, sucesos posteriores o de otro tipo.