El interés activo en el ICO de Polybius que alimentamos activamente fue un éxito rotundo, esta vez casi en el sentido literal de la palabra. Sorprendido por la atención de 14,000 personas que vinieron a comprar nuestros tokens en los primeros minutos después del lanzamiento de las ventas, el sitio web de Polybius colapsó. Y eso fue solo el comienzo. Según lo prometido, contamos lo que sucedió el 31 de mayo y qué podríamos hacer mejor para evitar lo que sucedió.

Por supuesto, al comienzo del ICO, estábamos listos para ataques DDoS y una gran carga en los servidores, sin embargo, admitimos que simplemente subestimamos las capacidades de los piratas informáticos malvados y el grado de interés en el proyecto, así como la probabilidad de situaciones de emergencia.
Ambisafe proporcionó la plataforma técnica (oficina del inversor, toda la infraestructura) para Polybius ICO. Comenzando con el desarrollo de productos blockchain, la compañía con el tiempo amplió sus intereses para proporcionar a las empresas un conjunto de servicios y herramientas necesarias para realizar ICO. Al elegir un contratista experimentado, confiamos completamente en sus conocimientos y habilidades, no una vez más controlando esas cosas que podríamos (¡y deberíamos!) Controlar. Y ese fue nuestro primer error.
Hierro demasiado débil
La buena potencia del servidor es un detalle crítico si no desea que el sitio se bloquee al comienzo de las ventas. Al predecir la posible carga en el servidor en las primeras horas del ICO, el contratista nos proporcionó los requisitos para su capacidad, pero incluso entonces sugerimos que estos indicadores podrían no ser suficientes y duplicamos el rendimiento. Para compartir la carga entre los servidores, también ubicamos la oficina del usuario y el sitio de Polybius en diferentes lugares, pero no separamos la base de datos y los archivos principales del gabinete. Y ese fue el error número dos.
La base de datos sufrió cada vez que llegaron demasiadas solicitudes a la oficina del inversor (y viceversa), y el servidor se bloqueó, dejando de estar disponible periódicamente. Cuando el problema se hizo evidente, aumentamos la capacidad del servidor en casi 10 veces en comparación con las características originales. Sin embargo, tomó tiempo reconfigurar el gabinete y volver a cargar todos los archivos en los nuevos servidores.
La emoción alrededor del comienzo de Polybius ICO fue tan fuerte que tan pronto como el contador de cuenta regresiva en el sitio polybius.io llegó a cero, multitudes de usuarios se apresuraron a comprar tokens, y algunos de nuestros usuarios incluso lograron hacer un comienzo falso. La exageración de los usuarios reales no es un gran problema. El problema fue la mayor atención a Polybius ICO por parte de los bots: comenzó un ataque DDoS. En aproximadamente 6 horas, cerca de 30 millones de solicitudes llegaron de ddosers a la cuenta personal del inversor, que simplemente se ahogaron en ellas. La situación se agravó por el hecho de que las primeras horas fueron doblemente difíciles de combatir el tráfico malicioso: no siempre estaba claro que esta es una persona real sentada y presiona "Actualizar" con la esperanza de ver su cuenta personal, o es un bot que hace lo mismo.
Como había muchas personas que querían participar al principio, persistentemente se dirigieron al sitio a través de DDoS y continuaron comprando tokens cuando el sitio se hizo más fácil. Como resultado, el sistema ha acumulado una gran cantidad de transacciones que no se completaron a tiempo y se quedaron dentro. Y aquí estamos avanzando sin problemas hacia otro problema que, por razones obvias, preocupó sobre todo a los participantes del crowdfunding.
Congestión de red
Como el sistema en el que se realizaban las transacciones era grande y de múltiples módulos, cada operación tenía que pasar por una ruta clara. Debido a un ataque DDoS en ciertos lugares del sistema, los módulos comenzaron a disminuir, por lo que al mismo tiempo que filtraba el tráfico malicioso, tuve que ordenar manualmente las transacciones atascadas en el sistema. Pero incluso después de impulsar las operaciones atascadas, no pudimos garantizar la recepción oportuna de los tokens comprados debido a la obstrucción que ocurrió en la red Ethereum. Fue una situación de emergencia que generó pánico y una ráfaga de comentarios del tipo “
Se me retiró dinero, pero no se cargaron tokens. Ya han pasado media hora / hora / 5 horas ... ”Ahora que los tokens se han acumulado durante mucho tiempo a todos los inversores afectados, solo podemos disculparnos una vez más por la situación y explicar qué la causó.
En el momento del lanzamiento de Polybius ICO, se llevó a cabo otra gran ICO (BAT -
BasicAttentionToken ) en la cadena de bloques de la red Ethereum, y la competencia entre los inversores llevó a la congestión de la red. Para comprender a aquellos de nuestros lectores que no saben mucho sobre Ethereum, la red funciona de tal manera que para enviarle una transacción, debe pagar una comisión. Y cuanto mayor sea la comisión, más rápida será la transacción en la red. En el contexto de la segunda ICO, cuyos participantes comenzaron a establecer enormes comisiones, las transacciones de Polybius con la comisión óptima en términos de la relación de costo y cantidad de tiempo para la confirmación dejaron de confirmarse y se alinearon en la red Ethereum, esta vez estancada en algún lugar en la frontera entre nuestro sistema y blockchain
Para llevar a cabo no solo una, sino un paquete de transacciones en Ethereum, como fue el caso en nuestro caso, deben ponerse en cola asignando un número de serie (condicionalmente) a cada transacción. Los números de secuencia deben estar en incrementos absolutos, es decir, cada transacción posterior debe tener un número uno mayor que el anterior. Esto significa que no podemos enviar la transacción número 10 a la red hasta que se procesen los primeros nueve. Para no cargar aún más la red y no aumentar el número de transacciones atascadas, nos vimos obligados a aumentar la comisión para todos los nuevos pedidos: las nuevas transacciones comenzaron a confirmarse normalmente y en un plazo más aceptable. Las primeras transacciones (estamos hablando de una gran cantidad de pedidos, más de mil) tuvieron que dejarse "como están", por lo que pasaron varios días antes de que los primeros inversores pudieran obtener sus tokens.
Este es un comportamiento anormal del sistema y la situación que nuestros contratistas tuvieron que resolver por primera vez, por lo que es difícil juzgar si se eligieron las tácticas óptimas o si podríamos hacer aún más.
Que hemos aprendido
La comprensión más importante, si no única, es que cuando el problema ya ha aparecido, todo lo que puede hacer es comenzar a resolverlo lo más rápido posible. Lo primero que hicimos fue aumentar las características del servidor, tomar hardware más potente, extender la base de datos a diferentes servidores, configurar un firewall y filtrar los ataques DDoS. Y todos estos procesos tomaron alrededor de un día. Se dedicó más tiempo a organizar el proceso de realizar transacciones a través de Ethereum.
Ahora que ya tenemos experiencia en ICO, podemos decir con seguridad que es imposible ser demasiado prudente en este asunto. Es mejor volver a estar seguro, por lo que si de repente decide realizar su propia ICO, piense de inmediato en lo siguiente:
- la carga en las primeras horas puede estar fuera de escala y superar incluso las expectativas más salvajes;
- Si su proyecto es bien conocido, entonces la atención de los ddosers está garantizada para usted, así que tenga cuidado de protegerse contra posibles ataques;
- si otras 10 ICO se ejecutan simultáneamente con las suyas, es mejor pasar tiempo pensando en qué tácticas elegir con anticipación, ya sea esperar unos días cuando las transacciones se realicen de una forma u otra, o invertir recursos adicionales y forzar la ejecución de órdenes a través de la red;
- Vale la pena prestar más atención a informar oportunamente a los inversores sobre los problemas que han surgido; esto definitivamente ayudará a reducir la cantidad de solicitudes idénticas de soporte técnico y a liberar sus recursos para resolver otros problemas apremiantes.
Y, lo más importante, nunca podrá prever todos los problemas posibles, así que prepárese para cualquier sorpresa. Puede pasar mucho tiempo contando los errores cometidos por la supervisión, pero aprenden de los errores y nos complace que no se hayan convertido en un obstáculo serio para la finalización exitosa de nuestra campaña.