cd ~/blog && cat cambiar-el-motor-en-pleno-vuelo.md

Cambiar el motor en pleno vuelo

Cómo se migra un sistema que no puede parar

El 15 de septiembre de 2022, Ethereum cambió por completo su forma de funcionar. Una red que mueve miles de millones cada día sustituyó la pieza que decide qué transacciones son válidas, y lo hizo sin pararse ni un minuto. Casi ninguno de sus usuarios tuvo que hacer nada.

La propia comunidad lo describió con una imagen muy gráfica: cambiar el motor de una nave en pleno vuelo. ¿Cómo se hace algo así? Con bastante menos magia de la que parece.

Dos motores

Hasta entonces, Ethereum funcionaba con prueba de trabajo, el mismo sistema que Bitcoin. Para añadir un bloque, los mineros tienen que realizar un trabajo de cálculo que cuesta energía real y que el resto de la red puede comprobar fácilmente. Ese coste es justo lo que lo hace seguro: ancla la red al mundo físico, y hacer trampa obligaría a gastar esa energía sin obtener nada a cambio. Bitcoin sigue funcionando así desde 2009.

El motor nuevo es la prueba de participación. Los mineros se sustituyen por validadores que, en lugar de energía, ponen en juego sus propios fondos como garantía. Si alguno intenta engañar a la red, pierde parte de lo que depositó.

Cambiar uno por otro no era un ajuste menor: era sustituir el corazón del sistema. Si fue una buena decisión es otro debate, y hay buenos argumentos a favor de la prueba de trabajo. Aquí nos interesa otra cosa: cómo se hizo.

Construir al lado, no encima

La primera decisión fue no tocar el motor que funcionaba. En diciembre de 2020 se lanzó la Beacon Chain, una cadena nueva con prueba de participación que corrió en paralelo a la original durante casi dos años.

En ese tiempo no movía transacciones de nadie. Su trabajo era demostrar que el motor nuevo funcionaba: miles de validadores, bloques cada pocos segundos, fallos reales y correcciones reales. Cuando llegó el momento de unir las dos cadenas, el motor nuevo llevaba 21 meses funcionando de verdad.

Ensayar hasta que aburra

Antes del día real hubo muchos días de prueba. Primero en redes de pruebas creadas para la ocasión, como Kintsugi, a finales de 2021. Después, a mediados de 2022, en las redes de pruebas que los desarrolladores ya usaban a diario: Ropsten en junio, Sepolia en julio, Goerli en agosto.

Además, se hicieron decenas de shadow forks: copias exactas de la red real sobre las que se ensayaba la migración con datos auténticos. Algunos ensayos salieron mal, y para eso estaban. Cada fallo encontrado en un ensayo era un fallo que no llegaría al día importante.

El día que nadie notó nada

El 15 de septiembre de 2022, la red original y la Beacon Chain se unieron. Las transacciones siguieron fluyendo, los saldos siguieron en su sitio y las aplicaciones siguieron funcionando.

Para la mayoría de usuarios, el cambio más grande en la historia de Ethereum fue un día cualquiera. Ese era exactamente el objetivo.

No todos los planes salieron como se anunciaron en 2021. La idea original de dividir la red en 64 cadenas cambió por el camino hacia otro enfoque. Pero el orden de prioridades se mantuvo: primero, que el cambio fuera seguro.

Lo que sirve para cualquier migración

Pocas empresas cambiarán el motor de una red global. Casi todas migrarán algún día: de base de datos, de proveedor, de sistema de pagos. Y las migraciones fallidas cuestan caro.

En abril de 2018, el banco británico TSB trasladó a sus clientes a una plataforma nueva. Los datos se migraron, pero la plataforma falló nada más arrancar, y una parte importante de sus 5,2 millones de clientes tuvo problemas durante meses. En 2022, los reguladores le impusieron una multa de 48,65 millones de libras, señalando, entre otras cosas, que la migración no se planificó adecuadamente.

La experiencia de Ethereum deja cuatro hábitos fáciles de aplicar:

  • Construir al lado. El sistema nuevo funciona en paralelo antes de sustituir al viejo.
  • Ensayar con datos reales. Una copia fiel de producción descubre lo que los entornos de prueba no ven.
  • No pedir nada al usuario. La mejor migración es la que no le obliga a hacer nada.
  • Tener vuelta atrás. Saber de antemano cómo deshacer el cambio si algo sale mal.

Sin magia

Las grandes migraciones no salen bien por suerte. Salen bien porque se construyen al lado, se ensayan hasta aburrir y se diseñan para que nadie tenga que enterarse.

Las mejores migraciones son las que nadie recuerda.

Referencias

¿Tienes algo que construir?

Empezar un proyecto