Actualización de desarrollo semanal # 40 – THORChain

Actualización semanal de desarrollo de THORChain para la semana 21–29 de abril de 2020

Puntos de referencia de THORChain

El equipo ahora está trabajando en cómo optimizar THORChain después de completar los puntos de referencia iniciales.

THORChain (sin optimización) puede procesar:

180 intercambios por minuto 2400 apuestas por minuto

Dadas las conexiones con Bitcoin, Ethereum y Binance Chain, podría procesar lo siguiente:

Los siguientes son los supuestos:

La capacidad de Bifrost se divide entre las tres cadenas: el 75% de las transacciones entrantes son swaps, el 25% son apuestas.

Los resultados muestran que THORChain puede manejar (al mismo tiempo) más del 50% de cada transacción en Bitcoin, el 25% de cada transacción en Ethereum y más de 3 veces el rendimiento actual total de Binance Chain.

En realidad, es probable que THORChain solo reciba un nivel de demanda como máximo 1/10 de esta capacidad teórica. Esta posición se toma al observar cuántas transacciones de arbitraje se realizan en promedio a través de los contratos de UniSwap. Por lo tanto, THORChain tiene mucha capacidad de reserva.

Estado optimizador

Como parte de las optimizaciones, el equipo comenzó a optimizar cómo se consulta y guarda el estado en la máquina de estado para minimizar las escrituras de claves. Como ejemplo, si se va a actualizar un solo grupo, no es necesario almacenarlos todos en una gran variedad de objetos de grupo y luego volver a escribirlos todos cuando solo se necesita modificar un grupo. La solución es dividir cada grupo en su propia consulta, para que pueda leerse y actualizarse mucho más rápido.

Eliminar notas salientes

El equipo también implementó un cambio que elimina todas las notas salientes de la red. Esto minimiza la complejidad en el manejo de las transacciones salientes, permite un mejor procesamiento por lotes y reduce la cantidad de metadatos en cadena que quedan.

THORChain en cambio toma un hash del objeto txOut (que debería ser único) y lo compara para encontrar qué txOut saliente corresponde con cada transacción observada.

Doble firma

CosmosSDK incluye de forma nativa un módulo que puede procesar la evidencia presentada de doble firma de un bloque y barras diagonales. El equipo pasó la semana conectando esta funcionalidad al módulo de nodo THORChain existente, ya que procesa el enlace de manera diferente.

Firmar dos veces un bloque es malo, porque puede conducir a rupturas de consenso rápidamente si los nodos se confunden qué cadena es la correcta. Si todos son castigados por intentar firmar más de un bloque a la vez, nadie lo hará y la única cadena será la correcta, lo que resulta en una finalidad instantánea.

Ragnarök de especificación de cadena

La última característica que implementó el equipo fue la capacidad de los nodos de señalar el soporte de las cadenas conectadas. Si más de 2/3 de la señal indican que desean dejar de soportar una cadena, la cadena se purga inmediatamente y todos los activos se devuelven a quien esté apostando en esa cadena.

Esto será útil para las horquillas duras contenciosas o un error catastrófico en una cadena externa. El resultado final es que se devuelven todos los fondos y si la comunidad va a volver a agregar la cadena más tarde, puede serlo.

Se realizaron las siguientes solicitudes de fusión al repositorio THORNode:

Se realizaron las siguientes solicitudes de fusión para mantener el repositorio de Midgard:

Los clientes se están preparando para fusionarse en uno: ASGARDEX. Esta será una aplicación electrónica de escritorio que se conecta a la red a través del módulo bizantino THORChain.

ASGARDEX tendrá excelentes herramientas de administración de cuentas