Solana: Gulf Stream#
La propagación de la información a través de todos los nodos de la red de Solana se realiza de forma determinista, de manera tal que se ahorre ancho de banda y la información fluya con más rapidez.
Protocolo de reenvío de transacciones#
Antes de hablar sobre cómo Solana propaga la información de las transacciones en su red, entendamos cómo lo hace Bitcoin y Ethereum.
Mempool de transacciones#
Estas dos Blockchains utilizan un concepto denominado Mempool. Las transacciones no confirmadas se almacenan en memoría hasta que son tomadas por los validadores y finalmente confirmadas. Es un paso previo a que una transacción de un usuario se concrete.
El Mempool es un espacio en memoria que se encuentra en constante movimiento. Transacciones que entran y transacciones que salen. Los costos de comisión de la red, son determinados por la cantidad de transacciones sin confirmar que se encuentran en determinado momento dentro de esta memoria.
Las transacciones con comisiones más tentadoras para los mineros, tendrán más prioridad en ser tomadas del Mempool y ser confirmada. La oferta y demanda en el uso de cada red determinará las comisiones y el tiempo de espera para confirmar una transacción.
En promedio, la Blockchain de Bitcoin tienen entre 10 mil y 20 mil transacciones sin confirmar. Si esta Blockchain valida aproximadamente 7 transacciones por segundo, un Mempool de 10 mil transacciones puede tardar algo más de 20 minutos en completarse. Por otro lado, la Blockchain de Ethereum suelen tener más de 140 mil transacciones sin confirmar.
Mempool de Bitcoin y Ethereum#
Puedes ver en tiempo real el estado de la Mempool de Bitcoin a lo igual que el estado de la Mempool de Ethereum cuando tú quieras para encontrar un patrón de tiempo donde las comisiones serán más bajas o más altas.
Validación de transacciones sin Mempool#
Solana, por su parte, no utiliza Mempool. Esta Blockchain busca que las tareas sean más deterministas para optimizar la velocidad y la performance de la misma.
En otras Blockchains como la de Bitcoin y Ethereum, la propagación de transacciones se realiza de forma aleatoria utilizando un protocolo denominado Gossip. El mismo puede traducirse como “chisme” o “rumor”, donde la información se comparte entre nodos. La analogía proviene de la viralización de información en redes sociales, donde la misma se comparte entre nodos de forma aleatoria. O también puede imaginarse como la propagación de una pandemia en una sociedad.
En Gossip, la información a los nodos les llega de forma aleatoria. Una misma transacción puede recibirse 4 o 5 veces haciendo que sea redundante y se desperdicie ancho de banda.
Es aquí cuando por fin llegamos al concepto de Gulf Stream que es el mecanismo que Solana implementa para propagar la información sin Mempool. Las transacciones las almacena en memoria caché un nodo maestro que es el encargado de determinar y propagar la información utilizando el protocolo Turbine, donde la misma es enviada en pequeños paquetes y de forma determinada.
Que haya un “nodo maestro” puede sonar como algo centralizado. Pero no es así, Solana cambia constantemente sus nodos maestros, de forma aleatoria, para que la información no se concentre en un único punto y evitar ataques.
Los nodos cambian sus roles y las transacciones se mueven en distintas direcciones. Así se asegura aún más a la red. Solana busca que los validadores y generadores de nuevos bloques sean aleatorios para evitar ataques sobre ellos, pero prioriza que el envío de la información sea de una forma clara y determinista.
Conclusión#
Así es como el protocolo Gulf Stream permite que, de haber 100 mil transacciones en memoria sin confirmar, y teniendo Solana la capacidad de validar 50 mil transacciones por segundo, en cuestión de dos segundos todas las transacciones quedarán confirmadas y serán propagadas por la red creando nuevos bloques.
La información se propaga en forma de paquetes y de manera determinista por la red TDMA gracias a Turbine. Los nodos reconstruyen la información y la ordenan gracias a Proof of History y se mantiene seguro el consenso con mecanismos como Tower BFT.
Post creado en colaboración con el Curso de Solana de Platzi.