Nâng cấp OKEx Lightning 2.0

Hệ thống giao dịch thế hệ tiếp theo mang lại hiệu suất nhanh hơn

I. Phát triển hệ thống giao dịch điện tử

Yêu cầu ngày càng tăng về công nghệ cốt lõi của giao dịch tài sản phản ánh tốc độ phát triển nhanh chóng của ngành tài chính toàn cầu trong nửa đầu thế kỷ 20. Vào những năm 50, người mua và người bán giao dịch bằng cách thương lượng, và giá bán được ghi lại thủ công trên giấy. Trong bối cảnh các loại chứng khoán đa dạng và khối lượng giao dịch ngày càng tăng, cách xử lý báo giá này dần tạo ra một cuộc khủng hoảng về thủ tục giấy tờ trong những năm 60-70 do tính kém hiệu quả và chi phí cao. Sở giao dịch chứng khoán New York (NYSE) không có lựa chọn nào khác ngoài việc tạm ngừng giao dịch vào thứ Tư hàng tuần và cắt giảm giờ làm việc trong các ngày giao dịch khác để hạn chế hoạt động của nó. Với khả năng vô song của họ để xử lý một số lượng lớn các giao dịch đồng thời, máy tính bắt đầu phát huy tác dụng. Một quy trình không cần giấy tờ hay còn gọi là cuộc cách mạng điện tử, là một bước ngoặt quan trọng trong lịch sử tài chính toàn cầu. Các giao dịch đã chuyển sang các nền tảng giao dịch điện tử, cung cấp các hoạt động nhanh hơn và rẻ hơn mà không có rào cản về thời gian hoặc địa lý.

Cuộc khủng hoảng không giấy tờ của Hoa Kỳ trong những năm 70

Các hệ thống giao dịch điện tử đã nổi lên trên toàn thế giới, bao gồm State Street’s Currenex, HKEX’s INET, ICAP’s EBS Spot Ai và LIFFE’s LIFE CONNECT. Vì tài sản tiền điện tử chỉ tồn tại ở dạng điện tử, chúng tự nhiên được liên kết với các nền tảng giao dịch điện tử, nhưng các yêu cầu đối với giao dịch tiền điện tử và hệ thống giao dịch truyền thống hơi khác nhau. Nhìn chung, một hệ thống giao dịch tiền điện tử phải có các đặc điểm sau:

a. Độ trễ thấp và thông lượng cao

Độ trễ và thông lượng là các chỉ số quan trọng để đo lường hiệu suất của hệ thống giao dịch. Mục tiêu hàng đầu của chúng tôi là đạt được độ trễ thấp và thông lượng cao khi thiết kế hệ thống giao dịch.

Trong bối cảnh giao dịch, độ trễ đề cập đến khoảng thời gian giữa một yêu cầu nhận được và phản hồi được thực hiện bởi hệ thống giao dịch. Sự gia tăng của khối lượng giao dịch tần suất cao, ở một mức độ lớn, thúc đẩy nhu cầu của thị trường về độ trễ thấp. Để cho phép các nhà giao dịch tần suất cao giao dịch chéo trên các sàn giao dịch tiền điện tử, hệ thống giao dịch của họ nên được trang bị các công cụ giao dịch có độ trễ thấp để xử lý nhanh các lệnh và phản ánh thực tế thị trường trong thị trường tiền điện tử cạnh tranh cao..

Thông lượng là số lượng yêu cầu hoặc sự kiện mà hệ thống giao dịch có thể xử lý trong vòng một giây. Thông lượng có thể ảnh hưởng trực tiếp đến hiệu quả giao dịch, do đó các hệ thống giao dịch tiền điện tử phải được thiết kế để chịu được các tình huống khắc nghiệt và sử dụng các đơn vị xử lý.

b. Khả năng bảo trì và khả năng mở rộng

So với các tài sản truyền thống, giá tiền điện tử dễ biến động hơn và dễ bị ảnh hưởng bởi các cú sốc toàn cầu. Vì các hệ thống giao dịch tiền điện tử liên tục xử lý các yêu cầu 24/7, chúng được thiết kế để ít phải bảo trì ngoại tuyến nhất có thể. Ngoài ra, rõ ràng là lĩnh vực tiền điện tử trải qua một sự chuyển đổi nhanh chóng vì các dịch vụ phái sinh kỹ thuật số khác nhau như giao dịch ký quỹ, hợp đồng tương lai và quyền chọn đã được triển khai chỉ trong một thập kỷ kể từ khi nó nổi lên. Sự gia tăng của các dịch vụ sáng tạo đã nâng cao các yêu cầu về khả năng bảo trì và khả năng mở rộng của các hệ thống giao dịch tiền điện tử.

II. OKEx Lightning System 2.0: Hiệu suất tốc độ ánh sáng

Là một trong những sàn giao dịch tài sản kỹ thuật số toàn cầu hàng đầu, OKEx phục vụ hàng chục nghìn người dùng với các tài sản tiền điện tử và các sản phẩm phái sinh toàn diện, với khối lượng giao dịch trung bình hàng ngày hàng tỷ USD. Là một công ty hàng đầu trong ngành, chúng tôi đặt ra các tiêu chuẩn cực kỳ cao hơn cho hệ thống giao dịch của mình. Ngoài việc nâng cấp hệ thống giao dịch của chúng tôi vào tháng 8 năm 2018, chúng tôi đã triển khai hệ thống Lightning 2.0 thế hệ tiếp theo với hiệu suất hàng đầu thế giới sau nhiều lần nâng cấp. Các tính năng chính của bản nâng cấp Lightning 2.0 như sau:

Khung nâng cấp Lightning 2.0

1. Ghi nhớ


Ở giai đoạn phát triển ban đầu của hệ thống giao dịch tiền điện tử, các nền tảng thường truy xuất thông tin chi tiết về lệnh đặt giá thầu của đối tác bằng cách tự động khớp lệnh đó trong cơ sở dữ liệu cho đến khi lệnh hết hạn hoặc được lấp đầy. Sau đó, hệ thống sẽ tính toán số tiền đã giao dịch và tạo một mục giao dịch sau khi khớp. Phương pháp này có thể đảm bảo tính nhất quán của dữ liệu nhưng không thể xử lý nhiều yêu cầu thị trường cùng một lúc vì thời gian xử lý lâu.

Hệ thống giao dịch thế hệ tiếp theo của chúng tôi, Lightning 2.0, đã áp dụng kỹ thuật khớp trong bộ nhớ mới nhất, trong đó hệ thống của chúng tôi lưu trữ dữ liệu lệnh trong bộ nhớ trong công cụ khớp lệnh trong quá trình khớp lệnh tự động và ít truy cập thường xuyên hơn vào cơ sở dữ liệu trong quá trình giao dịch. Tất cả kết quả khớp và dữ liệu trung gian cũng được lưu trữ trong bộ nhớ, có thể giảm số lượng đầu vào và đầu ra liên quan, do đó tăng đáng kể tốc độ khớp lệnh.

Mặc dù ghi nhớ có thể làm giảm đáng kể độ trễ giao dịch, nhưng các hệ thống giao dịch tiền điện tử có thể có nguy cơ mất dữ liệu do việc ngừng cung cấp điện. Để giải quyết vấn đề này, chúng tôi sử dụng phương pháp tìm nguồn cung ứng sự kiện để duy trì trạng thái của một thực thể kinh doanh và lưu trữ dữ liệu theo cách tập trung vào sự kiện. Hệ thống giao dịch theo truyền thống lưu trữ dữ liệu về trạng thái hiện tại trong cơ sở dữ liệu, nhưng các sự kiện được lưu trữ để phản ánh những thay đổi trạng thái trong cách tiếp cận tìm nguồn cung ứng sự kiện, cho phép hệ thống xây dựng lại trạng thái. Hệ thống định kỳ chụp ảnh nhanh trạng thái và sắp xếp lại thứ tự các sự kiện sau khi ảnh chụp nhanh được tạo khi yêu cầu xây dựng lại.

Hơn nữa, các đơn vị xử lý trung tâm hiện đại (CPU) truy cập dữ liệu trong bộ nhớ với tốc độ chậm hơn mong đợi. Theo một kiểm tra, chỉ mất 1/7 thời gian để truy xuất dữ liệu từ L2 Cache của CPU so với kỹ thuật đối sánh trong bộ nhớ. Để giảm độ trễ hơn nữa, điều quan trọng là phải hiểu cách sử dụng tốt bộ nhớ cache của CPU. Đơn vị truyền dữ liệu là dòng cache, thường là 64 byte. Trong khi CPU tải dữ liệu trong bộ nhớ, nó sẽ truyền dữ liệu liền kề với kích thước 64 byte vào bộ nhớ đệm. Theo đó, chúng tôi đã thực hiện những cải tiến sau cho hệ thống Lightning của mình bằng cách kiểm soát việc phân phối dữ liệu trong bộ nhớ:

  • Kiểm soát phân phối trong bộ nhớ bằng cách đóng gói các phần dữ liệu được yêu cầu xử lý liên tục với nhau. Sau khi tất cả dữ liệu được ghép lại với nhau, chỉ cần tải lần đầu tiên từ bộ nhớ trong bộ nhớ vào bộ nhớ đệm trong khi đọc nhiều phần dữ liệu. Sau đó, các lần đọc tiếp theo có thể nhấn vào bộ nhớ cache để cải thiện hiệu suất hệ thống.
  • Kiểm soát phân phối trong bộ nhớ bằng cách đưa dữ liệu có thể thay đổi ở tốc độ cao hơn (chẳng hạn như dữ liệu trên bộ đếm) trên các dòng bộ nhớ cache khác nhau. Khi nhiều CPU sửa đổi các byte khác nhau trong một dòng bộ nhớ cache cùng một lúc, việc chia sẻ sai sẽ xảy ra. Ví dụ: sau khi CPU1 sửa đổi dữ liệu của chính nó, CPU2 phải tải lại toàn bộ dòng bộ đệm khi nó đọc lại dữ liệu của chính nó vì dữ liệu trong dòng bộ đệm đã được cập nhật. Do đó, cả hai CPU cần phải chờ nhau. Đó là lý do tại sao chúng tôi lưu trữ dữ liệu trong các dòng bộ nhớ cache khác nhau bằng cách đệm để tránh vấn đề này.

2. Xuất bản-đăng ký mô hình và giao thức nhị phân

Hai loại mô hình nhắn tin chính như sau:

So sánh Lightning 1.0 và Lightning 2.0

Trong mô hình đăng ký xuất bản, một hàng đợi được sử dụng để nhắn tin. Khi một dịch vụ cần yêu cầu các dịch vụ khác, thông tin về yêu cầu được đóng gói thành một thông báo và được đưa vào hàng đợi. Các dịch vụ khác sẽ đăng ký vào hàng đợi tin nhắn để lấy thông tin và xử lý yêu cầu.

Trong mô hình yêu cầu-phản hồi, máy khách và máy chủ được kết hợp chặt chẽ với nhau. Chúng bắt buộc phải có cùng một lúc. Máy khách chỉ có thể đợi cho đến khi máy chủ hoàn tất việc xử lý yêu cầu, điều này làm giảm tốc độ xử lý của nó. Tuy nhiên, trong mô hình đăng ký xuất bản, quá trình xử lý yêu cầu hoàn tất sau khi nhà xuất bản đặt thông báo vào hàng đợi. Nhà xuất bản được tách ra khỏi người đăng ký. Mặt khác, nếu dịch vụ của người đăng ký bị gián đoạn, tin nhắn vẫn còn trong hàng đợi và quá trình xử lý sẽ tiếp tục khi dịch vụ của người đó tiếp tục hoạt động mà không cần nhà xuất bản gửi lại tin nhắn, do đó nâng cao độ tin cậy của giao tiếp hệ thống. Do đó, mô hình này được áp dụng trong hầu hết các trường hợp để cải thiện tính khả dụng và thông lượng của hệ thống Lightning 2.0 của chúng tôi.

Sau khi chúng tôi chọn mẫu phản hồi yêu cầu, bước tiếp theo là chọn một định dạng trao đổi thông tin phù hợp. Bản chất của giao tiếp là trao đổi thông điệp, thường bao gồm dữ liệu. Các định dạng trao đổi khác nhau có tốc độ truyền và mức độ truyền thông khác nhau, cũng như sử dụng các ngôn ngữ lập trình khác nhau. Do đó, việc thiết kế một hệ thống giao dịch là một điều cần cân nhắc chính.

Hai loại định dạng thông báo phổ biến: dựa trên văn bản & nhị phân

Những thiếu sót của một giao thức truyền thông dựa trên văn bản là rõ ràng. Nó dễ dàng tạo ra lỗi và tiêu tốn băng thông khi phân tích cú pháp của một tệp văn bản lớn, điều này không hoạt động tốt đối với các hệ thống giao dịch cực kỳ nhạy cảm với các vấn đề về hiệu suất và hiệu suất. Tuy nhiên, một giao thức nhị phân có thể dễ dàng được sử dụng để phân tích cú pháp, do đó tạo ra hiệu suất tốt hơn. Do đó, chúng tôi đã áp dụng giao thức nhị phân trong hệ thống Lightning 2.0 của mình.

3. Chia tỷ lệ ngang

Để cải thiện và mở rộng khả năng xử lý của hệ thống giao dịch, cả hai đều mong muốn mở rộng quy mô theo chiều ngang và quy mô theo chiều dọc. Tỷ lệ theo chiều dọc đề cập đến việc nâng cấp máy chủ, trong khi tỷ lệ theo chiều ngang có nghĩa là việc bổ sung các máy chủ. Hiệu suất phần cứng của máy chủ phụ thuộc vào năng lực sản xuất của con người. Trong khi cấu hình phần cứng (hiệu suất phần cứng) của một máy chủ đạt đến một mức (giới hạn) nhất định, nó không thể được cải thiện thêm, do đó tỷ lệ mở rộng theo chiều ngang là lựa chọn duy nhất. Tuy nhiên, cách tiếp cận theo tỷ lệ ngang có thể dẫn đến cân bằng tải. Làm thế nào để phân phối hợp lý các tải của toàn bộ hệ thống cho các máy chủ khác nhau?

Cân nhắc đầu tiên là cuộc chạy đua dữ liệu. Mặc dù việc bổ sung các máy chủ có thể cải thiện khả năng xử lý dữ liệu song song của hệ thống, nhưng khả năng xử lý của hệ thống vẫn không thể được cải thiện một cách hiệu quả nếu xảy ra phân phối không hợp lý vì tính toán song song có thể khiến các máy chủ của nó thường xuyên chạy đua cho cùng một dữ liệu.

Một hệ thống giao dịch về cơ bản lưu trữ dữ liệu đặt hàng, quỹ và vị trí. Để giảm số lượng chủng tộc dữ liệu, tính năng tải sharding được thực hiện để phân vùng dữ liệu đó thành các phân đoạn theo số lượng người dùng của chúng tôi có sẵn. Dữ liệu đơn đặt hàng, quỹ và vị trí của người dùng được xử lý độc lập, giúp tránh chạy đua dữ liệu. Hơn nữa, chúng tôi còn tối ưu hóa hệ thống của mình bằng cách thêm một vòng xử lý hàng loạt cho mỗi phân đoạn để nâng cao năng lực xử lý của hệ thống của chúng tôi. Mặt khác, dữ liệu ký quỹ của cặp giao dịch phái sinh là một mục tiêu khác để trải qua quá trình tải sharding. Đối với người dùng, mỗi cặp giao dịch hoàn toàn độc lập. Bằng cách này, chúng tôi sử dụng phân bổ tải theo hai giai đoạn. Khi hệ thống của chúng tôi cần nhiều máy chủ hơn, việc cân bằng lại tải được sử dụng dựa trên sharding để đạt được sự linh hoạt khi mở rộng hệ thống.

4. Mở rộng hệ thống

Một cách cơ bản để nâng cao khả năng bảo trì và khả năng mở rộng của hệ thống giao dịch là tách riêng chức năng của nó. Trong lần nâng cấp này, chúng tôi chia tách thêm chức năng của hệ thống thành 3 mô-đun, đó là khớp lệnh, bộ đếm và kiểm soát rủi ro. Mỗi mô-đun chứa dữ liệu nội bộ và trạng thái của riêng nó. Cụ thể, phân hệ khớp lệnh chịu trách nhiệm duy trì sổ lệnh và phân hệ bộ đếm lưu trữ dữ liệu về vị thế và số dư tài khoản, còn phân hệ kiểm soát rủi ro thực hiện chức năng quản lý rủi ro..

Khi các mô-đun hoạt động với nhau để kích hoạt chức năng của toàn bộ hệ thống giao dịch, cần có một cơ chế để giao tiếp giữa chúng. Có hai tùy chọn để liên lạc giữa các dịch vụ: chia sẻ dữ liệu và nhắn tin.

Chia sẻ dữ liệu là phương pháp cơ bản nhất chạy theo cách mà một mô-đun cập nhật dữ liệu của nó và một mô-đun khác nhận được dữ liệu mới sau khi truy vấn. Tuy nhiên, cách tiếp cận này có hai nhược điểm đáng kể. Đầu tiên, nếu nhiều mô-đun thực hiện thay đổi và truy vấn trên cùng một dữ liệu, nó thường sẽ dẫn đến việc chạy đua dữ liệu, trong đó thời gian phản hồi của cơ sở dữ liệu sẽ lâu hơn. Thứ hai, rất khó để hiểu theo thời gian thực về những thay đổi trong các mô-đun khác và chúng tôi chỉ có thể biết những thay đổi đó sau khi truy vấn.

Do đó, các mô-đun của hệ thống Lightning 2.0 của chúng tôi được thiết kế để lưu dữ liệu của riêng chúng và không chia sẻ dữ liệu với nhau. Nếu trạng thái bên trong của mô-đun thay đổi, thay đổi sẽ được đóng gói thành một sự kiện và được đưa vào vòng lặp sự kiện. Điều này có thể làm giảm sự ghép nối và cạnh tranh giữa các mô-đun hệ thống và chúng có thể giao tiếp với nhau ở tốc độ tối ưu sau khi sự kiện được đóng gói, điều này giúp tăng cường đáng kể tốc độ giao tiếp của hệ thống của chúng tôi.

III. Hiệu suất dữ liệu Lightning 2.0

Chúng tôi đã hoàn thành nâng cấp toàn diện hệ thống Lightning 2.0 của mình vào nửa cuối năm 2019. Hiệu suất của nó đã được cải thiện như thế nào so với Lightning 1.0?

Dưới đây là số liệu thống kê mới nhất về đợt thử nghiệm máy chủ Hồng Kông của chúng tôi vào tháng 11:

Về năng lực xử lý đơn đặt hàng, hệ thống của chúng tôi có công suất xử lý đơn đặt hàng cao nhất là 100.000 tấn / giây, có thể so sánh với các hệ thống giao dịch chính thống trên thị trường chứng khoán toàn cầu.

Ba chỉ số sau được sử dụng để kiểm tra độ trễ của hệ thống:

Ba chỉ báo phổ biến để kiểm tra độ trễ: ACK, Trực tiếp và Hủy

Chúng tôi đã sử dụng dữ liệu thử nghiệm từ tháng 9 và tháng 11 để so sánh hiệu suất trước khi nâng cấp và sau nâng cấp của hệ thống giao dịch của mình (xem bên dưới). Như được chỉ ra bên dưới, độ trễ ACK trung bình giảm từ 50 ms xuống 25 ms, độ trễ Trực tiếp trung bình giảm từ 134 ms xuống 63 ms và độ trễ Hủy trung bình giảm từ 230 ms xuống 180 ms.

Nó cho thấy rằng hệ thống giao dịch Lightning 2.0 của chúng tôi có độ trễ thấp hơn.

Trước khi nâng cấp / Sau khi nâng cấp

IV. Đầu ngành về công nghệ

Khả năng mở rộng không giới hạn, khả năng tái tạo và tính linh hoạt của blockchain có nghĩa là có rất nhiều tài sản mới đang chờ được khám phá. Sự phát triển không ngừng của công nghệ blockchain sẽ chuyển đổi tài sản trí tuệ, bản quyền và tài sản sáng tạo ngày càng tăng thành tiền điện tử trong tương lai. Chúng tôi sẽ thấy thị trường và người dùng đang tìm kiếm độ tin cậy và hiệu suất cao hơn trong các hệ thống giao dịch.

Là một sàn giao dịch tiền điện tử hàng đầu thế giới với các dịch vụ giao dịch C2C, giao ngay và phái sinh toàn diện, chúng tôi không ngừng cải tiến các sản phẩm giao dịch, hệ thống quản lý rủi ro, công cụ khớp lệnh, dịch vụ lưu trữ tài sản tiền điện tử và dịch vụ khách hàng, chúng tôi đã trở thành nhà cung cấp tiền điện tử lớn nhất thế giới nền tảng giao dịch phái sinh nhận được sự phổ biến rộng rãi với người dùng toàn cầu. Mục tiêu cuối cùng của chúng tôi là phát triển với lĩnh vực blockchain và tiền điện tử bằng cách cam kết thêm nguồn lực để theo đuổi hiệu quả và bảo mật giao dịch cao hơn nhằm thúc đẩy hơn nữa sự phát triển của một thế giới dựa trên blockchain mà mọi người trong không gian tiền điện tử đang mơ ước.

Theo dõi OKEx trên:

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

Trang 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:
Adblock
detector
map