Kiến trúc tổng quan

Một phần của tài liệu Nghiên cứu và phát triển giải pháp tự động triển khai giao thức đồng thuận cho mạng chuỗi khối riêng tư trong nền tảng v chain (Trang 33 - 37)

Trong phần này tôi sẽ đề xuất một kiến trúc hệ thống để phục vụ cho việc tự động triển khai các giao thức đồng thuận trong mạng chuỗi khối.

Hình 3.1 Kiến trúc phân tầng của hệ thống

Hình 3.1 cho chúng ta thấy một góc nhìn của hệ thống theo các tầng phân biệt gồm có:

 Hạ tầng: Là các dịch vụ đám mây (cloud services) như Digital Ocean, AWS… hoặc các hạ tầng tính toán riêng biệt để triển khai mạng chuỗi khối và các thành phần liên quan

 Mạng chuỗi khối: gồm các thành phần chính thiết yếu như:

o Mạng và dữ liệu: phục vụ cho việc truyền thông, trao đổi dữ liệu giữa các nút trong mạng chuỗi khối

o Giao thức thuật đồng thuận: là thành phần mà chúng ta quan tâm nhất trong phạm vi đề tài. Nó giúp cho các nút trong mạng đi tới các quyết định thống nhất.

34

o Hợp đồng thông minh: là thành phần đặc trưng của mạng chuỗi khối, cho phép người dùng định nghĩa các nghiệp vụ, logic thực hiện tự động và minh bạch.

 Các dịch vụ triển khai: là tầng bao gồm các dịch vụ mà tôi sẽ đề xuất để giải quyết các vấn đề mà đề tài đưa ra.

o Drivers: phục vụ cho việc kết nối, tương tác với các nền tảng khác nhau. Có thể xuất hiện nhiều loại drivers trong hệ thống cho các mục đích khác nhau, ví dụ: drivers cho việc kết nối các nền tảng chuỗi khối, driver cho các giao thức đồng thuận, driver kết nối hạ tầng triển khai…

o Management Service: phục vụ cho việc quản lý các dữ liệu của hệ thống, ví dụ: các thông số cấu hình, thông tin về các nền tảng, đang giao thức được sử dụng, triển khai…

o API: cung cấp cho người dùng một phương thức để tương tác với hệ thống.

Kiến trúc phân tầng cho ta thấy vị trí của các thành phần trong hệ thống. Các thành phần ở tầng dưới sẽ bổ trợ cho các thành phần ở tầng trên, hay nói cách khác các dịch vụ tầng trên có thể sử dụng các chức năng, giải pháp được cung cấp bởi các dịch vụ tầng dưới. Cụ thể, Drivers có thể sử dụng các phương thức giao tiếp khác nhau được cung cấp bởi các tầng Mạng Chuỗi Khối hoặc tầng Hạ Tầng để cung cấp dữ liệu, chuẩn giao tiếp chung cho tầng Management Service phía trên.

Từ kiến trúc phân tầng của hệ thống, tôi đề xuất một kiến trúc triển khai chi tiết hơn cho các dịch vụ tại Hình 3.2.

 Các thành phần Public Cloud Services, Private Cloud Services thể hiện cho các hạ tầng để triển khai các dịch vụ. Mỗi hạ tầng sẽ có một giao thức kết nối riêng.

 Infrastructure Controllers: chứa các driver để kết nối giúp tương tác với tài nguyên tính toán, lưu trữ của các hạ tầng triển khai. Mỗi driver sẽ tương ứng với một hạ tầng riêng biệt.

 Monitoring Service: chịu trách nhiệm theo dõi việc sử dụng tài nguyên của hạ tầng triển khai, cho phép người dùng có một cái nhìn về mức

35 tiêu thụ tài nguyên trong hệ thống từ đó đưa ra các phương án triển khai, mở rộng phù hợp.

Hình 3.2 Kiến trúc triển khai các dịch vụ

 Logging Service: Thu thập các bản ghi log từ các thành phần được triển khai, giúp người dùng dễ dàng nắm bắt được trạng thái hiện tại của hệ thống và thuận tiện trong việc gỡ lỗi (debug).

 Consensus Drivers: chứa các thông tin cấu hình, các bước để triển khai giao thức đồng thuận. Do cách vận hành của từng giao thức đồng thuận là khác nhau nên mỗi giao thức sẽ có một driver tương ứng.

 Driver Database: một số giao thức đồng thuận có các bước cấu hình khá phức tạp khi triển khai trên một nền tảng chuỗi khối. Do vậy, một số Consensus Driver có thể có các Driver Database để lưu trữ các

36 thông tin cấu hình, phục vụ cho các bước triển khai đặc biệt chỉ xuất hiện ở giao thức đồng thuận đó.

 Management Service: quản lý các thông tin chung của hệ thống.  Account Service: Quản lý các thông tin về người dùng.

 Single Unified Interface (API): cho phép người dùng tương tác với hệ thống thông qua một API thống nhất.

 System Database: lưu trữ các thông tin phục vụ cho quá trình quản lý hệ thống.

 Message Queue: để các dịch vụ trong hệ thống giao tiếp với nhau.

Kiến trúc hệ thống đề xuất có những đặc điểm sau:

 Tính mở rộng: với thiết kế hệ thống sử dụng các driver để giao tiếp sẽ giúp việc thêm mới các nền tảng mới, giao thức mới vào hệ thống một cách dễ dàng hơn. Các driver đều được lập trình theo một mô hình dữ liệu sẽ được trình bày tại phần 3.3, giúp dữ liệu được chuẩn hoá và thống nhất trong quá trình quản lý.

 Tính độc lập: bằng cách chia thành các dịch vụ nhỏ với nhiệm vụ riêng dẫn đến các dịch vụ trong hệ thống có thể được phát triển một cách độc lập, dưới nhiều ngôn ngữ lập trình khác nhau.

 Khả năng chịu tải: việc tách thành cách dịch vụ (service) nhỏ giúp người quản trị hệ thống có thể tạo thêm các bản sao (replica) của dịch vụ khi thấy một dịch vụ hoạt động quá tải hoặc giảm các bản sao (replica) để tiết kiệm tài nguyên khi hệ thống nhàn rỗi.

 Khả năng chịu lỗi: khi một dịch vụ bị lỗi hệ thống vẫn có thể vận hành chứ không bị dừng hoàn toàn (crash). Các yêu cầu xử lý có thể được lưu trữ tại các message queue để xử lý khi dịch vụ khởi động lại.

37

Một phần của tài liệu Nghiên cứu và phát triển giải pháp tự động triển khai giao thức đồng thuận cho mạng chuỗi khối riêng tư trong nền tảng v chain (Trang 33 - 37)

Tải bản đầy đủ (PDF)

(69 trang)