OKEx Lightning 2.0-Upgrade

Ein Handelssystem der nächsten Generation, das eine schnellere Leistung liefert

I. Entwicklung des elektronischen Handelssystems

Die steigenden Anforderungen an Kerntechnologien des Handels mit Vermögenswerten spiegelten das schnelle Wachstum der globalen Finanzindustrie in der ersten Hälfte des 20. Jahrhunderts wider. In den 50er Jahren handelten Käufer und Verkäufer durch Verhandlungen, und die Briefkurse wurden manuell auf Papier aufgezeichnet. Vor dem Hintergrund verschiedener Wertpapierarten und steigenden Handelsvolumens führte diese Art des Umgangs mit Quotes in den 60er und 70er Jahren aufgrund ihrer Ineffizienz und hohen Kosten allmählich zu einer Papierkramkrise. Die New Yorker Börse (NYSE) hatte keine andere Wahl, als den Handel jeden Mittwoch auszusetzen und die Stunden an anderen Handelstagen zu verkürzen, um ihre Aktivitäten einzuschränken. Mit ihrer unübertroffenen Fähigkeit, eine große Anzahl von Transaktionen gleichzeitig zu verarbeiten, kamen Computer ins Spiel. Ein papierloser Prozess oder eine elektronische Revolution war ein entscheidender Wendepunkt in der globalen Finanzgeschichte. Transaktionen wurden auf elektronische Handelsplattformen migriert und bieten schnellere und kostengünstigere Abläufe ohne Zeit- oder geografische Barrieren.

Die papierlose US-Krise in den 70er Jahren

Weltweit sind elektronische Handelssysteme entstanden, darunter Currenex von State Street, INET von HKEX, EBS Spot Ai von ICAP und LIFFE CONNECT von LIFFE. Da Krypto-Assets nur in elektronischer Form existieren, sind sie natürlich mit elektronischen Handelsplattformen verbunden, aber die Anforderungen für den Krypto-Handel und traditionelle Handelssysteme unterscheiden sich geringfügig. Insgesamt sollte ein Krypto-Handelssystem die folgenden Eigenschaften aufweisen:

ein. Geringe Latenz und hoher Durchsatz

Latenz und Durchsatz sind die Schlüsselindikatoren zur Messung der Leistung eines Handelssystems. Unser Hauptziel ist es, beim Entwurf eines Handelssystems eine geringe Latenz und einen hohen Durchsatz zu erzielen.

Im Zusammenhang mit dem Handel bezieht sich die Latenz auf ein Zeitintervall zwischen einer von einem Handelssystem empfangenen Anfrage und einer von einem Handelssystem gemachten Antwort. Der Anstieg des Hochfrequenzhandelsvolumens treibt in hohem Maße die Nachfrage des Marktes nach geringer Latenz an. Um Hochfrequenzhändlern den Cross-Trade an Krypto-Börsen zu ermöglichen, sollten ihre Handelssysteme mit Handels-Engines mit geringer Latenz ausgestattet sein, um Aufträge schnell zu bearbeiten und die Marktrealitäten im hart umkämpften Krypto-Markt widerzuspiegeln.

Der Durchsatz ist die Anzahl der Anfragen oder Ereignisse, die ein Handelssystem innerhalb einer Sekunde verarbeiten kann. Der Durchsatz kann sich direkt auf die Handelseffizienz auswirken, sodass Krypto-Handelssysteme so konzipiert sein sollten, dass sie extremen Szenarien standhalten und Verarbeitungseinheiten verwenden.

b. Wartbarkeit und Skalierbarkeit

Im Vergleich zu herkömmlichen Assets sind die Kryptopreise volatiler und anfälliger für globale Schocks. Da Krypto-Handelssysteme Anfragen rund um die Uhr kontinuierlich bearbeiten, sind sie so konzipiert, dass sie möglichst wenig offline gewartet werden. Darüber hinaus ist es offensichtlich, dass der Kryptosektor einen raschen Wandel durchläuft, da verschiedene digitale Derivatedienste, die so unterschiedlich sind wie Margen-, Futures- und Optionshandel, erst in einem Jahrzehnt seit seinem Aufstieg eingeführt wurden. Die Verbreitung innovativer Dienste hat die Anforderungen an die Wartbarkeit und Skalierbarkeit von Krypto-Handelssystemen erhöht.

II. OKEx Lightning System 2.0: Lichtgeschwindigkeitsleistung

Als einer der weltweit führenden Börsen für digitale Assets bedient OKEx Zehntausende von Benutzern mit seinen umfassenden Krypto-Assets und Derivaten mit einem durchschnittlichen täglichen Handelsvolumen von Milliarden USD. Als Branchenführer setzen wir extrem höhere Standards für unsere Handelssysteme. Zusätzlich zum Upgrade unseres Handelssystems im August 2018 haben wir unser Lightning 2.0-System der nächsten Generation mit weltweit führender Leistung nach mehreren Upgrades implementiert. Die wichtigsten Funktionen des Lightning 2.0-Upgrades sind folgende:

Lightning 2.0-Upgrade-Framework

1. Auswendiglernen

In der frühen Entwicklungsphase von Krypto-Handelssystemen rufen Plattformen normalerweise Details einer Gebotsbestellung der Gegenpartei ab, indem sie diese automatisch in der Datenbank abgleichen, bis die Bestellung abläuft oder ausgeführt wird. Das System berechnet dann den gehandelten Betrag und generiert nach dem Abgleich einen Transaktionseintrag. Diese Methode könnte die Datenkonsistenz sicherstellen, konnte jedoch aufgrund ihrer langen Verarbeitungszeit viele Marktanforderungen nicht gleichzeitig bearbeiten.

Unser Handelssystem der nächsten Generation, Lightning 2.0, hat die neueste In-Memory-Matching-Technik übernommen, bei der unser System während des Auto-Matchings Auftragsdaten im Speicher in der Order-Matching-Engine speichert und während des Handels weniger häufig auf die Datenbank zugreift. Alle Übereinstimmungsergebnisse und Zwischendaten werden auch im Speicher gespeichert, wodurch die Anzahl der beteiligten Ein- und Ausgänge reduziert und somit die Ordnungsanpassungsgeschwindigkeit erheblich erhöht werden kann.

Obwohl das Auswendiglernen die Handelslatenz erheblich reduzieren kann, können Krypto-Handelssysteme aufgrund der Unterbrechung der Stromversorgung zu Datenverlusten führen. Um dieses Problem zu lösen, verwenden wir den Event-Sourcing-Ansatz, um den Status einer Geschäftseinheit beizubehalten und Daten ereignisorientiert zu speichern. Das Handelssystem speichert traditionell Daten des aktuellen Status in der Datenbank, aber Ereignisse werden gespeichert, um Statusänderungen im Event-Sourcing-Ansatz widerzuspiegeln, wodurch das System den Status neu erstellen kann. Das System erstellt regelmäßig Snapshots des Status und ordnet die Ereignisse neu, nachdem Snapshots erstellt wurden, wenn eine Neuerstellung erforderlich ist.

Darüber hinaus greifen moderne Zentraleinheiten (CPUs) langsamer als erwartet auf Daten im Speicher zu. Nach a Prüfung, Das Abrufen von Daten aus dem L2-Cache einer CPU dauert im Vergleich zur In-Memory-Matching-Technik nur 1/7 der Zeit. Um die Latenz weiter zu reduzieren, ist es wichtig zu verstehen, wie der CPU-Cache gut genutzt wird. Die Einheit der Datenübertragung ist die Cache-Zeile, die normalerweise 64 Bytes beträgt. Während die CPU Daten in den Speicher lädt, überträgt sie benachbarte Daten in 64 Bytes in den Cache. Dementsprechend haben wir die folgenden Verbesserungen an unserem Lightning-System vorgenommen, indem wir die Verteilung der speicherinternen Daten gesteuert haben:

  • Steuern Sie die In-Memory-Verteilung, indem Sie Daten zusammenfassen, die kontinuierlich verarbeitet werden müssen. Nachdem alle Daten zusammengefügt wurden, ist nur das erste Laden vom In-Memory-Speicher in den Cache erforderlich, während mehrere Datenelemente gelesen werden. Danach können nachfolgende Lesevorgänge den Cache treffen, um die Systemleistung zu verbessern.
  • Steuern Sie die In-Memory-Verteilung, indem Sie Daten, die sich möglicherweise schneller ändern (z. B. Daten auf Zählern), in verschiedene Cache-Zeilen einfügen. Wenn mehrere CPUs gleichzeitig unterschiedliche Bytes in einer einzelnen Cache-Zeile ändern, tritt eine falsche Freigabe auf. Nachdem CPU1 beispielsweise seine eigenen Daten geändert hat, muss CPU2 die gesamte Cache-Zeile neu laden, wenn sie ihre eigenen Daten erneut liest, da die Daten in der Cache-Zeile aktualisiert wurden. Infolgedessen müssen beide CPUs aufeinander warten. Aus diesem Grund speichern wir Daten in verschiedenen Cache-Zeilen, um dieses Problem zu vermeiden.

2. Publish-Subscribe-Modell und Binärprotokoll

Die beiden Haupttypen von Messaging-Modellen lauten wie folgt:

Vergleich von Lightning 1.0 und Lightning 2.0

Im Publish-Subscribe-Modell wird eine Warteschlange für Messaging verwendet. Wenn ein Dienst andere Dienste anfordern muss, werden die Informationen in der Anforderung in eine Nachricht eingekapselt und in die Warteschlange gestellt. Andere Dienste abonnieren die Nachrichtenwarteschlange, um die Informationen abzurufen und die Anforderung zu verarbeiten.

Im Request-Response-Modell sind Client und Server stark miteinander verbunden. Sie müssen gleichzeitig verfügbar sein. Der Client kann nur warten, bis der Server die Verarbeitung der Anforderung abgeschlossen hat, wodurch die Verarbeitungsgeschwindigkeit verringert wird. Im Publish-Subscribe-Modell ist die Anforderungsverarbeitung jedoch abgeschlossen, nachdem der Herausgeber die Nachricht in die Warteschlange gestellt hat. Der Verlag ist vom Abonnenten entkoppelt. Wenn andererseits der Dienst des Teilnehmers unterbrochen wird, bleibt die Nachricht in der Warteschlange und die Verarbeitung wird fortgesetzt, wenn sein Dienst wieder aufgenommen wird, ohne dass der Herausgeber die Nachricht erneut senden muss, wodurch die Zuverlässigkeit der Systemkommunikation verbessert wird. Daher wird dieses Muster in fast allen Szenarien angewendet, um die Verfügbarkeit und den Durchsatz unseres Lightning 2.0-Systems zu verbessern.

Nachdem wir das Anforderungs-Antwort-Muster ausgewählt haben, ist der nächste Schritt die Auswahl eines geeigneten Informationsaustauschformats. Die Essenz der Kommunikation besteht darin, Nachrichten auszutauschen, die normalerweise Daten enthalten. Unterschiedliche Austauschformate haben unterschiedliche Übertragungsgeschwindigkeiten und Kommunikationsentwicklungsgrade und verwenden unterschiedliche Programmiersprachen. Daher ist es eine wichtige Überlegung bei der Gestaltung eines Handelssystems.

Zwei gängige Arten von Nachrichtenformaten: textbasiert & binär

Die Mängel eines textbasierten Kommunikationsprotokolls liegen auf der Hand. Es erzeugt leicht Fehler und ist bandbreitenintensiv, wenn eine große Textdatei analysiert wird. Dies funktioniert nicht gut für Handelssysteme, die äußerst empfindlich auf Effizienz- und Leistungsprobleme reagieren. Ein binäres Protokoll kann jedoch leicht zum Parsen verwendet werden, um eine bessere Leistung zu erzielen. Daher haben wir das Binärprotokoll in unser Lightning 2.0-System übernommen.

3. Horizontale Skalierung

Um die Verarbeitungsfähigkeit eines Handelssystems zu verbessern und zu erweitern, sind sowohl horizontale als auch vertikale Skalierung erwünscht. Vertikale Skalierung bezieht sich auf Server-Upgrades, während horizontale Skalierung das Hinzufügen von Servern bedeutet. Die Hardwareleistung eines Servers hängt von der Produktionskapazität des Menschen ab. Während die Hardwarekonfiguration (Hardwareleistung) eines Servers ein bestimmtes Niveau (Limit) erreicht, kann sie nicht weiter verbessert werden, daher ist die horizontale Skalierung die einzige Option. Der horizontale Skalierungsansatz kann jedoch zu einem Lastausgleich führen. So verteilen Sie die Lasten des gesamten Systems angemessen auf verschiedene Server?

Die erste Überlegung ist das Datenrennen. Obwohl das Hinzufügen von Servern die Fähigkeit des Systems verbessern kann, Daten parallel zu verarbeiten, kann seine Verarbeitungskapazität nicht effektiv verbessert werden, wenn eine unangemessene Verteilung auftritt, da Parallel-Computing dazu führen kann, dass seine Server häufig um dieselben Daten rennen.

Ein Handelssystem speichert grundsätzlich Auftrags-, Fonds- und Positionsdaten. Um die Anzahl der Datenrennen zu verringern, wird ein Load-Sharding durchgeführt, um diese Daten entsprechend der Anzahl unserer verfügbaren Benutzer in Shards zu partitionieren. Die Bestell-, Fonds- und Positionsdaten der Benutzer werden unabhängig voneinander verarbeitet, um Datenrennen zu vermeiden. Darüber hinaus haben wir unser System weiter optimiert, indem wir für jeden Shard eine Runde Stapelverarbeitung hinzugefügt haben, um die Verarbeitungskapazität unseres Systems zu verbessern. Auf der anderen Seite sind die Margin-Daten von Derivat-Handelspaaren ein weiteres Ziel für das Load-Sharding. Für einen Benutzer ist jedes Handelspaar völlig unabhängig. Auf diese Weise setzen wir Load Sharding in zwei Phasen ein. Wenn unser System mehr Server benötigt, wird der Lastausgleich basierend auf Sharding verwendet, um die Flexibilität der Systemerweiterung zu erreichen.

4. Systemskalierung

Ein grundlegender Weg, um die Wartbarkeit und Skalierbarkeit eines Handelssystems zu verbessern, besteht darin, seine Funktionalität zu trennen. Bei diesem Upgrade haben wir die Funktionalität unseres Systems weiter in drei Module aufgeteilt, nämlich Auftragsabgleich, Zähler und Risikokontrolle. Jedes Modul enthält seine eigenen internen Daten und seinen eigenen Status. Insbesondere ist das Auftragsabgleichsmodul für die Pflege des Auftragsbuchs verantwortlich, und das Zählermodul speichert Daten zu Positionen und Kontensalden, während das Risikokontrollmodul die Funktion des Risikomanagements übernimmt.

Da die Module zusammenarbeiten, um die Funktionalität des gesamten Handelssystems zu ermöglichen, ist ein Mechanismus für ihre Kommunikation erforderlich. Es gibt zwei Optionen für die Kommunikation zwischen Diensten: Datenfreigabe und Messaging.

Die gemeinsame Nutzung von Daten ist die grundlegendste Methode, die so ausgeführt wird, dass ein Modul seine Daten aktualisiert und ein anderes Modul nach der Abfrage neue Daten erhält. Dieser Ansatz weist jedoch zwei wesentliche Nachteile auf. Erstens, wenn mehrere Module Änderungen an denselben Daten vornehmen und diese abfragen, führt dies normalerweise zu Datenrennen, bei denen die Antwortzeit der Datenbank weitaus länger ist. Zweitens ist es schwierig, Änderungen in anderen Modulen in Echtzeit zu verstehen, und wir können solche Änderungen erst nach der Abfrage erfahren.

Daher sind die Module unseres Lightning 2.0-Systems so konzipiert, dass sie ihre eigenen Daten speichern und keine Daten miteinander teilen. Wenn sich der interne Status der Module ändert, wird die Änderung in ein Ereignis eingekapselt und in die Ereignisschleife eingefügt. Dies kann die Kopplung und den Wettbewerb zwischen Systemmodulen verringern und sie können nach dem Einkapseln des Ereignisses mit einer optimalen Geschwindigkeit miteinander kommunizieren, was die Kommunikationsgeschwindigkeit unseres Systems erheblich verbessert.

III. Lightning 2.0-Datenleistung

Wir haben in der zweiten Hälfte des Jahres 2019 ein umfassendes Upgrade unseres Lightning 2.0-Systems abgeschlossen. Wie hat sich die Leistung im Vergleich zu Lightning 1.0 verbessert??

Hier sind die neuesten Statistiken unserer Servertests in Hongkong im November:

In Bezug auf die Auftragsabwicklungskapazität verfügt unser System über eine Spitzenauftragsabwicklungskapazität von 100.000 txn / s, vergleichbar mit den gängigen Handelssystemen auf dem globalen Aktienmarkt.

Die folgenden drei Indikatoren werden zum Testen der Systemlatenz verwendet:

Drei gängige Indikatoren zum Testen der Latenz: ACK, Live und Abbrechen

Wir haben Testdaten von September und November verwendet, um die Leistung unseres Handelssystems vor und nach dem Upgrade zu vergleichen (siehe unten). Wie unten angegeben, verringerte sich die durchschnittliche ACK-Latenz von 50 ms auf 25 ms, die durchschnittliche Live-Latenz von 134 ms auf 63 ms und die durchschnittliche Abbruchlatenz von 230 ms auf 180 ms.

Es zeigt, dass unser Lightning 2.0-Handelssystem eine geringere Latenz hat.

Vor dem Upgrade / Nach dem Upgrade

IV. Branchenführer in Technologie

Aufgrund der unbegrenzten Skalierbarkeit, Reproduzierbarkeit und Flexibilität der Blockchain warten noch viel mehr neue Assets darauf, entdeckt zu werden. Die ständige Weiterentwicklung der Blockchain-Technologie wird in Zukunft zunehmendes geistiges Eigentum, Urheberrecht und kreative Vermögenswerte in Krypto umwandeln. Wir werden sehen, dass der Markt und die Benutzer nach höherer Zuverlässigkeit und Leistung in Handelssystemen suchen.

Als weltweit führender Kryptowährungsaustausch mit umfassenden C2C-, Spot- und Derivatehandelsdiensten verbessern wir ständig unsere Handelsprodukte, das Risikomanagementsystem, die Order Matching Engine, den Speicherdienst für Krypto-Assets und den Kundenservice. Wir sind die weltweit größte Krypto Derivate-Handelsplattform erfreut sich bei globalen Nutzern großer Beliebtheit. Es ist unser oberstes Ziel, mit dem Blockchain- und Krypto-Sektor zu wachsen, indem wir zusätzliche Ressourcen bereitstellen, um eine höhere Handelssicherheit und -effizienz zu erreichen und die Entwicklung einer Blockchain-gesteuerten Welt voranzutreiben, von der jeder im Krypto-Bereich träumt.

Folgen Sie OKEx auf:

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

Website: https://www.okex.com

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Our Socials
Facebooktwitter
Promo
banner
Promo
banner