Actualización de OKEx Lightning 2.0

Un sistema comercial de próxima generación que ofrece un rendimiento más rápido

I. Desarrollo del sistema de comercio electrónico

Los crecientes requisitos sobre las tecnologías centrales de la negociación de activos reflejaron el rápido crecimiento de la industria financiera mundial durante la primera mitad del siglo XX. En los años 50, compradores y vendedores comercian mediante negociación y los precios de venta se registraban manualmente en papel. En el contexto de diversos tipos de valores y el aumento del volumen de negociación, esta forma de lidiar con las cotizaciones creó gradualmente una crisis de papeleo durante los años 60-70 debido a su ineficiencia y alto costo. La Bolsa de Valores de Nueva York (NYSE) no tuvo más remedio que suspender la negociación todos los miércoles y recortar horas en otros días de negociación para limitar su actividad. Con su capacidad incomparable para procesar una gran cantidad de transacciones simultáneamente, las computadoras comenzaron a entrar en juego. Un proceso sin papel, o revolución electrónica, fue un punto de inflexión crucial en la historia financiera mundial. Las transacciones han migrado a plataformas de comercio electrónico, ofreciendo operaciones más rápidas y económicas sin barreras de tiempo o geográficas..

La crisis sin papel de Estados Unidos en los años 70

Los sistemas de comercio electrónico han surgido en todo el mundo, incluidos Currenex de State Street, INET de HKEX, EBS Spot Ai de ICAP y LIFE CONNECT de LIFFE. Dado que los activos criptográficos existen solo en forma electrónica, están naturalmente asociados con las plataformas de comercio electrónico, pero los requisitos para el comercio criptográfico y los sistemas comerciales tradicionales son ligeramente diferentes. En general, un sistema de comercio de cifrado debe poseer las siguientes características:

una. Baja latencia y alto rendimiento

La latencia y el rendimiento son los indicadores clave para medir el rendimiento de un sistema comercial. Nuestro principal objetivo es lograr una baja latencia y un alto rendimiento al diseñar un sistema comercial..

En el contexto de la negociación, la latencia se refiere a un intervalo de tiempo entre una solicitud recibida y una respuesta realizada por un sistema de negociación. El aumento del volumen de operaciones de alta frecuencia, en gran medida, impulsa la demanda del mercado de baja latencia. Para permitir que los comerciantes de alta frecuencia realicen transacciones cruzadas en intercambios de cifrado, sus sistemas de negociación deben estar equipados con motores de negociación de baja latencia para gestionar rápidamente los pedidos y reflejar las realidades del mercado en el mercado de cifrado altamente competitivo..

El rendimiento es la cantidad de solicitudes o eventos que un sistema comercial puede procesar en un segundo. El rendimiento puede afectar directamente la eficiencia comercial, por lo que los sistemas de comercio criptográfico deben diseñarse para resistir escenarios extremos y utilizar unidades de procesamiento..

B. Mantenibilidad y escalabilidad

En comparación con los activos tradicionales, los precios de las criptomonedas son más volátiles y vulnerables a los impactos globales. Como los sistemas de comercio de criptomonedas manejan solicitudes continuamente las 24 horas del día, los 7 días de la semana, están diseñados para someterse al menor mantenimiento fuera de línea posible. Además, es obvio que el sector de las criptomonedas experimenta una rápida transformación porque diferentes servicios de derivados digitales tan variados como el comercio de márgenes, futuros y opciones se han implementado solo en una década desde su auge. La proliferación de servicios innovadores ha elevado los requisitos para el mantenimiento y la escalabilidad de los sistemas de comercio de cifrado..

II. OKEx Lightning System 2.0: rendimiento a la velocidad de la luz

Como uno de los principales intercambios globales de activos digitales, OKEx sirve a decenas de miles de usuarios con sus productos criptoactivos y derivados integrales, con un volumen de negociación diario promedio de miles de millones de USD. Como líder de la industria, establecemos estándares extremadamente más altos para nuestros sistemas comerciales. Además de la actualización de nuestro sistema comercial en agosto de 2018, hemos implementado nuestro sistema Lightning 2.0 de próxima generación con un rendimiento líder en el mundo después de múltiples actualizaciones. Las características clave de la actualización Lightning 2.0 son las siguientes:

Marco de actualización Lightning 2.0

1. Memorización

En la etapa inicial de desarrollo de los sistemas de comercio de cifrado, las plataformas generalmente recuperan los detalles de una orden de licitación de la contraparte comparándola automáticamente en la base de datos hasta que la orden expira o se completa. Luego, el sistema calcula el monto negociado y genera una entrada de transacción después de la coincidencia. Este método podría garantizar la coherencia de los datos, pero no pudo atender muchas solicitudes del mercado al mismo tiempo debido a su largo tiempo de procesamiento..

Nuestro sistema de negociación de próxima generación, Lightning 2.0, ha adoptado la última técnica de coincidencia en memoria, donde nuestro sistema almacena datos de pedidos en la memoria en el motor de coincidencia de pedidos durante la coincidencia automática, y un acceso menos frecuente a la base de datos durante la negociación. Todos los resultados coincidentes y los datos intermedios también se almacenan en la memoria, lo que puede reducir las cantidades de entradas y salidas involucradas y, por lo tanto, aumentar significativamente la velocidad de coincidencia de pedidos..

Aunque la memorización puede reducir en gran medida la latencia comercial, los sistemas de comercio criptográfico pueden correr el riesgo de perder datos debido a la suspensión del suministro de energía. Para resolver este problema, adoptamos el enfoque de abastecimiento de eventos para conservar el estado de una entidad comercial y almacenar datos de una manera centrada en el evento. El sistema de comercio tradicionalmente almacena datos del estado actual en la base de datos, pero los eventos se almacenan para reflejar los cambios de estado en el enfoque de abastecimiento de eventos, lo que permite al sistema reconstruir el estado. El sistema toma periódicamente instantáneas del estado y reordena los eventos después de que se crean instantáneas cuando se requiere la reconstrucción..

Además, las unidades centrales de procesamiento (CPU) modernas acceden a los datos en la memoria a una velocidad más lenta de lo esperado. De acuerdo a un prueba, Solo se necesita 1/7 del tiempo para recuperar datos de la caché L2 de una CPU en comparación con la técnica de comparación en memoria. Para reducir aún más la latencia, es importante comprender cómo hacer un buen uso de la caché de la CPU. La unidad de transferencia de datos es la línea de caché, que suele ser de 64 bytes. Mientras que la CPU carga datos en la memoria, transfiere datos adyacentes en 64 bytes a la caché. En consecuencia, hemos realizado las siguientes mejoras en nuestro sistema Lightning controlando la distribución de datos en memoria:

  • Controle la distribución en memoria empaquetando piezas de datos que deben procesarse de forma continua. Una vez reunidos todos los datos, solo se requiere la primera carga desde el almacenamiento en memoria al caché mientras se leen varias partes de los datos. Posteriormente, las lecturas posteriores pueden afectar al caché para mejorar el rendimiento del sistema..
  • Controle la distribución en memoria colocando los datos que pueden cambiar a una velocidad mayor (como los datos en los contadores) en diferentes líneas de caché. Cuando varias CPU modifican diferentes bytes en una sola línea de caché al mismo tiempo, se produce un intercambio falso. Por ejemplo, después de que CPU1 modifica sus propios datos, CPU2 debe recargar toda la línea de caché cuando vuelve a leer sus propios datos porque los datos de la línea de caché se han actualizado. Como resultado, ambas CPU deben esperar el uno al otro. Es por eso que almacenamos datos en diferentes líneas de caché a modo de relleno para evitar este problema..

2. Publicar-suscribir modelo y protocolo binario

Los dos tipos principales de modelos de mensajería son los siguientes:

Comparación de Lightning 1.0 y Lightning 2.0

En el modelo de publicación-suscripción, se utiliza una cola para la mensajería. Cuando un servicio necesita solicitar otros servicios, la información de la solicitud se encapsula en un mensaje y se coloca en la cola. Otros servicios se suscribirán a la cola de mensajes para obtener la información y procesar la solicitud..

En el modelo de solicitud-respuesta, el cliente y el servidor están fuertemente acoplados. Deben estar disponibles al mismo tiempo. El cliente solo puede esperar hasta que el servidor complete el procesamiento de la solicitud, lo que reduce su velocidad de procesamiento. Sin embargo, en el modelo de publicación-suscripción, el procesamiento de la solicitud se completa después de que el editor coloca el mensaje en la cola. El editor está desacoplado del suscriptor. Por otro lado, si se interrumpe el servicio del suscriptor, el mensaje persiste en la cola y el procesamiento continúa cuando su servicio se reanuda sin la necesidad de que el editor reenvíe el mensaje, mejorando así la confiabilidad de la comunicación del sistema. Por lo tanto, este patrón se adopta en casi todos los escenarios para mejorar la disponibilidad y el rendimiento de nuestro sistema Lightning 2.0..

Después de seleccionar el patrón de solicitud-respuesta, el siguiente paso es elegir un formato de intercambio de información adecuado. La esencia de la comunicación es intercambiar mensajes, que generalmente incluyen datos. Los diferentes formatos de intercambio tienen diferentes velocidades de transmisión y niveles de evolución de la comunicación, además de utilizar diferentes lenguajes de programación. Por lo tanto, es una consideración clave en el diseño de un sistema comercial..

Dos tipos comunes de formatos de mensajes: basados ​​en texto & binario

Las deficiencias de un protocolo de comunicación basado en texto son obvias. Genera fácilmente errores y consume ancho de banda cuando se realiza el análisis de un archivo de texto grande, lo que no funciona bien para los sistemas comerciales que son extremadamente sensibles a los problemas de eficiencia y rendimiento. Sin embargo, se puede utilizar fácilmente un protocolo binario para analizar, de modo que genera un mejor rendimiento. Por lo tanto, hemos adoptado el protocolo binario en nuestro sistema Lightning 2.0..

3. Escala horizontal

Para mejorar y expandir la capacidad de procesamiento de un sistema de comercio, se desean tanto el escalado horizontal como el vertical. El escalamiento vertical se refiere a las actualizaciones del servidor, mientras que el escalamiento horizontal significa que la adición de servidores. El rendimiento del hardware de un servidor está sujeto a la capacidad de producción humana. Si bien la configuración del hardware (rendimiento del hardware) de un servidor alcanza un cierto nivel (límite), no se puede mejorar más, por lo que el escalado horizontal es la única opción. Sin embargo, el enfoque de escalado horizontal podría conducir a un equilibrio de carga. Cómo distribuir razonablemente las cargas de todo el sistema a diferentes servidores?

La primera consideración es la carrera de datos. Aunque la adición de servidores puede mejorar la capacidad del sistema para procesar datos en paralelo, su capacidad de procesamiento aún no puede mejorarse de manera efectiva si ocurre una distribución irrazonable, ya que la computación en paralelo puede hacer que sus servidores compitan con frecuencia por los mismos datos..

Un sistema de negociación básicamente almacena datos de órdenes, fondos y posiciones. Para reducir el número de carreras de datos, se realiza una división de carga para dividir esos datos en fragmentos de acuerdo con la cantidad de usuarios disponibles. Los datos de pedidos, fondos y posiciones de los usuarios se procesan de forma independiente, lo que ayuda a evitar carreras de datos. Además, optimizamos aún más nuestro sistema al agregar una ronda de procesamiento por lotes para cada fragmento para mejorar la capacidad de procesamiento de nuestro sistema. Por otro lado, los datos de margen de los pares de negociación de derivados son otro objetivo para someterse a la división de carga. Para un usuario, cada par comercial es completamente independiente. De esta forma, empleamos la división de carga en dos fases. Cuando nuestro sistema necesita más servidores, se utiliza el reequilibrio de carga basado en la fragmentación para lograr la flexibilidad de la expansión del sistema..

4. Escalado del sistema

Una forma básica de mejorar la capacidad de mantenimiento y la escalabilidad de un sistema comercial es separar su funcionalidad. En esta actualización, dividimos aún más la funcionalidad de nuestro sistema en 3 módulos, a saber, correspondencia de pedidos, contador y control de riesgos. Cada módulo contiene su propio estado y datos internos. Específicamente, el módulo de comparación de pedidos es responsable de mantener el libro de pedidos y el módulo de contador almacena datos sobre posiciones y saldos de cuentas, mientras que el módulo de control de riesgos realiza la función de gestión de riesgos..

Dado que los módulos funcionan entre sí para permitir la funcionalidad de todo el sistema comercial, se requiere un mecanismo para su comunicación. Hay dos opciones para la comunicación entre servicios: intercambio de datos y mensajería..

El intercambio de datos es el método más básico que se ejecuta de una manera en la que un módulo actualiza sus datos y otro módulo obtiene nuevos datos después de la consulta. Sin embargo, este enfoque tiene dos desventajas importantes. En primer lugar, si varios módulos realizan cambios y consultas sobre los mismos datos, normalmente se producirán carreras de datos, durante las cuales el tiempo de respuesta de la base de datos será mucho mayor. En segundo lugar, es difícil comprender en tiempo real los cambios en otros módulos, y solo podemos conocer dichos cambios después de la consulta..

Como resultado, los módulos de nuestro sistema Lightning 2.0 están diseñados para guardar sus propios datos y no para compartir datos entre ellos. Si el estado interno de los módulos cambia, el cambio se encapsulará en un evento y se colocará en el bucle de eventos. Esto puede reducir el acoplamiento y la competencia entre los módulos del sistema, y ​​pueden comunicarse entre sí a una velocidad óptima después de encapsular el evento, lo que mejora en gran medida la velocidad de comunicación de nuestro sistema..

III. Rendimiento de datos Lightning 2.0

Hemos completado una actualización integral de nuestro sistema Lightning 2.0 en la segunda mitad de 2019. ¿Cómo ha mejorado su rendimiento en comparación con Lightning 1.0??

Aquí están las últimas estadísticas de nuestras pruebas de servidor de Hong Kong en noviembre:

En términos de capacidad de procesamiento de pedidos, nuestro sistema tiene una capacidad máxima de procesamiento de pedidos de 100,000 txn / s, comparable a los sistemas comerciales convencionales en el mercado de valores global..

Los siguientes tres indicadores se utilizan para probar la latencia del sistema:

Tres indicadores comunes para probar la latencia: ACK, Live y Cancel

Utilizamos datos de prueba de septiembre y noviembre para comparar el rendimiento anterior y posterior a la actualización de nuestro sistema de negociación (ver más abajo). Como se indica a continuación, la latencia ACK promedio disminuyó de 50 ms a 25 ms, la latencia en vivo promedio pasó de 134 ms a 63 ms, y la latencia de cancelación promedio se redujo de 230 ms a 180 ms.

Muestra que nuestro sistema de comercio Lightning 2.0 tiene una latencia más baja.

Antes de la actualización / después de la actualización

IV. Líder de la industria en tecnología

La escalabilidad, reproducibilidad y flexibilidad ilimitadas de blockchain significa que hay muchos más activos nuevos esperando ser descubiertos. El desarrollo continuo de la tecnología blockchain transformará el aumento de la propiedad intelectual, los derechos de autor y los activos creativos en cripto en el futuro. Veremos que el mercado y los usuarios buscan una mayor confiabilidad y rendimiento en los sistemas comerciales..

Como un intercambio de criptomonedas líder en el mundo con servicios integrales de comercio de derivados, al contado y C2C, estamos mejorando constantemente nuestros productos comerciales, sistema de gestión de riesgos, motor de comparación de pedidos, servicio de almacenamiento de activos criptográficos y servicio al cliente, nos hemos convertido en el criptográfico más grande del mundo. plataforma de negociación de derivados recibiendo gran popularidad entre los usuarios globales. Nuestro objetivo final es crecer con los sectores de la cadena de bloques y las criptomonedas comprometiendo recursos adicionales para lograr una mayor seguridad y eficiencia comercial para impulsar aún más el desarrollo de un mundo impulsado por la cadena de bloques con el que todos en el espacio de las criptomonedas están soñando..

Siga OKEx en:

Steemit: https://steemit.com/@okex-official

Sitio web: https://www.okex.com

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
map