- Volver al menú
- Volver al menúPrecios
- Volver al menúInvestigación
- Volver al menúConsenso
- Volver al menú
- Volver al menú
- Volver al menú
- Volver al menúWebinars y Eventos
Hinchazón de la cadena de bloques: cómo Ethereum está abordando los problemas de almacenamiento
Aunque aún faltan soluciones a largo plazo como la fragmentación, los desarrolladores de Ethereum están haciendo que el software funcione de manera más eficiente para facilitar los crecientes requisitos de almacenamiento.
24.270 tokens. 27.358 transacciones pendientes. 463.713gatitos digitales.
Ethereum ha albergado mucha actividad recientemente, y aunque muchos entusiastas de las Cripto lo ven como una señal positiva, a medida que el uso de la red aumenta, su historia se hace más larga y su cadena de bloques más rebelde.
Y aunque la congestión de la red que genera retrasos en las transacciones y tarifas en aumento ha acaparado la atención, hay otro problema que esta escala causa: una base de datos en crecimiento que impone costos de almacenamiento significativos a los usuarios que desean ejecutar un nodo completo.
Esa base de datos, llamada estado de Ethereum , contiene todos los cálculos que deben memorizar las computadoras que soportan la plataforma y la propia cadena de bloques de Ethereum . Y dado el aumento de los costes (tanto en tiempo como en dinero) de almacenar el estado, cada vez menos personas optan por ejecutar nodos completos, lo que a muchos les preocupa que centralice la red en manos de unos pocos árbitros.
Y los desarrolladores reconocen el problema.
Por un lado, los desarrolladores de Ethereum están muy avanzados en la ingeniería de cambios a nivel de protocolo, como la fragmentación, destinada a minimizar la base de datos.
Pero como estas tecnologías aún están en desarrollo, otras partes interesadas, es decir, aquellas que ejecutan clientes de Ethereum (el software necesario para que los usuarios se comuniquen con la cadena de bloques) han estado bajo nueva presión para hacer frente al crecimiento de la base de datos estatal.
"Que mejorar esto es crucial se sabe desde finales de 2016; las ideas han estado dando vueltas entre medio año y más de un año. ¿Dónde están las implementaciones?", preguntó recientemente el creador de Ethereum , Vitalik Buterin, en un canal para desarrolladores.
La frustración es palpable tanto en Buterin como en Afri Schoedon, quien gestiona las comunicaciones técnicas en Parity, proveedor de software para clientes de Ethereum . Schoedon declaró a CoinDesk:
"Al ritmo de crecimiento actual, es previsible que el estado crezca muy rápido este año, hasta un punto en que resultaría difícil gestionarlo con dispositivos pequeños".
En un esfuerzo por limitar los efectos de este estado difícil de manejar, los dos clientes más populares de Ethereum , Geth y Parity, han lanzado recientemente actualizaciones que intentan mejorar la situación.
Turboalimentado
El primera actualización, lanzado la semana pasada por Parity, redujo los requisitos de almacenamiento al eliminar archivos temporales innecesarios que se producen a medida que el software memoriza el historial de Ethereum.
Al minimizar considerablemente los requisitos de almacenamiento, los usuarios que se conectan para ejecutar nodos completos experimentan tiempos de sincronización más rápidos. Con esto, la compañía afirmó que su software de Ethereum ahora puede ejecutarse en un disco duro en lugar de en un... unidad de estado sólido (SSD), una hazaña particularmente notable ya que los largos tiempos de sincronización han hecho que Ethereum no pueda ejecutarse en un disco duro desde el verano pasado.
La actualización incluso recibió una respuesta entusiasta de Buterin, quien dijo en un canal de desarrolladores: "Guau. ¿Cómo lograron eso?".
Como resultado de la actualización, los usuarioshan estado informandoUna experiencia enormemente mejorada.
Al mismo tiempo, el desarrollador independiente Alexey Akhunov ha estado trabajando en una reescritura del cliente geth, llamada "turbo geth". Akhunov lo describe como un"obsesión,"El proyecto tiene como objetivo eliminar gran parte de la repetición innecesaria en cómo los clientes de Ethereum procesan el estado general.
Si bien NEAR no está listo, ha abierto algunas vías interesantes de "optimización especulativa", dijo Akhunov en una reciente charla con desarrolladores.
Por ejemplo, Akhunov sugiere codificar de forma rígida cierta información sobre el estado de Ethereum en los propios clientes. En última instancia, el objetivo es adaptar el software para que se ejecute simplemente usando memoria de acceso aleatorio (RAM), lo que podría aumentar considerablemente la velocidad de los clientes y permitirles sincronizarse potencialmente con la red al instante.
Los desarrolladores de Geth también están trabajando en optimizaciones, por ONE , para corregir un error en el almacenamiento de información cuando un cliente se sincroniza con la red en el llamado modo "rápido". Descrito por Péter Szilágyi, desarrollador CORE de Geth, como "realmente horrible", es probable que el código existente sea reemplazado junto con numerosas actualizaciones que agilicen la sincronización y consuman menos almacenamiento.
Los límites
También se está investigando un tipo de cliente llamado "clientes sin estado", que solo almacenan una compresión del estado general.
Incluso Buterin se ha mostrado interesado en la idea recientemente.realizando un estudioque describe un escenario donde "los mineros y los nodos completos en general ya no necesitan almacenar ningún estado". Además, Buterin dijo más tarde en un canal para desarrolladores, los clientes sin estado también aliviarían la necesidad de limpiar el estado mediante otras medidas, como la poda de datos antiguos e irrelevantes, por ejemplo, cuentas vacías o inactivas durante mucho tiempo.
"Ahora estoy a favor del enfoque del cliente sin estado", escribió Buterin.
E incluso se especula que podría ser posible tener clientes sin estado sin realizar cambios a nivel de protocolo.
Promocionando a estos clientes como una posible solución a los obstáculos de escalamiento que enfrenta Ethereum luego del éxito de CryptoKitties, Akhunov escribió en un artículo reciente entrada de blogCreo que (los clientes sin estado) ya pueden implementarse, sin necesidad de una bifurcación dura, simplemente modificando los clientes de Ethereum . Esto significa que los nodos no necesitan acceder al almacenamiento desde los archivos y los tiempos de validación de bloques deberían reducirse significativamente.
Sin embargo, las optimizaciones del cliente no pueden ser lo único en lo que confíe la red para reducir los problemas de estado.
Con el tiempo, las optimizaciones de los clientes llegarán a su límite. Y entonces, los desarrolladores tendrán que centrarse en tecnologías en desarrollo, como la fragmentación, que divide la base de datos de Ethereum en fragmentos más pequeños almacenados en diferentes nodos para aliviar la presión de almacenar la base de datos completa en clientes individuales.
Quizás en respuesta a las recientes tensiones en la red, el desarrollo de fragmentación ha avanzado en los últimos meses, con una especificación de etapa inicial esbozada enGithub.
"Podemos optimizar la base de datos y hacerla diez veces más rápida y óptima, lo que nos da espacio para crecer hasta diez veces nuestro tamaño actual", dijo Szilágyi, y agregó:
"Pero, con el tiempo, llegaremos al punto en que ya no podremos realizar optimizaciones de bases de datos, y para entonces necesitaremos poder fragmentar nuestros datos".
Disco duroimagen vía Shutterstock
Rachel-Rose O'Leary
Rachel-Rose O'Leary es programadora y escritora en Dark Renaissance Technologies. Fue redactora principal de tecnología para CoinDesk entre 2017 y 2018, cubriendo temas de Privacidad y Ethereum. Tiene formación en arte digital y filosofía, y escribe sobre Cripto desde 2015.
