Ở phần này, tôi sẽ mô tả một số kịch bản hệ thống có thể gặp phải trong quá trình vận hành để thử nghiệm khía cạnh chịu tải và chịu lỗi của hệ thống.
Bảng 4.9 Testcase TC02-01
Testcase ID TC02-01
Mô tả Một nút vật lý dừng hoạt động
Điều kiện tiền đề Nút dừng hoạt động không phải nút master của cụm Các bước thực hiện Bước 1: Tắt máy vật lý
Bước 2: Kiểm tra trạng thái của các dịch vụ Kết quả mong muốn Các dịch vụ được triển khai sang các nút vật lý khác
và hoạt động bình thường.
Kết quả thực tế Hệ thống có thể không xử lý được yêu cầu trong một khoảng thời gian. Sau đó các dịch vụ sẽ được triển khai lại trên 2 nút còn hoạt động và có thể nhận yêu cầu từ phía người dùng
61
Bảng 4.10 Testcase TC02-02
Testcase ID TC02-02
Mô tả Consensus Driver dừng hoạt động Điều kiện tiền đề Message Queue vẫn hoạt động
Các bước thực hiện Bước 1: Tắt Consensus Driver
Bước 2: Gửi một yêu cầu tạo mạng chuỗi khối và giao thức đồng thuận
Bước 3: Kiểm tra trạng thái của việc tạo mạng chuỗi khối
Bước 4: Sau 5 phút, chạy lại Consensus Driver Bước 5: Kiểm tra trạng thái của việc tạo mạng
chuỗi khối
Kết quả mong muốn Mạng chuỗi khối ở trạng thái CREATE_PENDING Consensus Driver không hoạt động. Yêu cầu tạo mạng được lưu trữ tại message queue
Mạng chuỗi khối được triển khai sau khi Consensus Driver hoạt động trở lại. Chuyển trạng thái mạng sang CREATED
Kết quả thực tế Mạng chuỗi khối ở trạng thái CREATE_PENDING Consensus Driver không hoạt động. Yêu cầu tạo mạng được lưu trữ tại message queue
Mạng chuỗi khối được triển khai sau khi Consensus Driver hoạt động trở lại. Chuyển trạng thái mạng sang CREATED
62
Bảng 4.11 Testcase TC02-03
Testcase ID TC02-03
Mô tả Infrastructure Controllers dừng hoạt động Điều kiện tiền đề Message Queue vẫn hoạt động
Các bước thực hiện Bước 1: Tắt Infrastructure Controllers
Bước 2: Gửi một yêu cầu tạo mạng chuỗi khối và giao thức đồng thuận
Bước 3: Kiểm tra trạng thái của việc tạo mạng chuỗi khối
Bước 4: Sau 5 phút, chạy lại Infrastructure Controllers
Bước 5: Kiểm tra trạng thái của việc tạo mạng chuỗi khối
Kết quả mong muốn Mạng chuỗi khối ở trạng thái CREATE_PENDING Infrastructure Controllers không hoạt động. Yêu cầu tạo mạng được lưu trữ tại message queue
Mạng chuỗi khối được triển khai sau khi Infrastructure Controllers hoạt động trở lại. Chuyển trạng thái mạng sang CREATED Kết quả thực tế Mạng chuỗi khối ở trạng thái
CREATE_PENDING Infrastructure Controllers không hoạt động. Yêu cầu tạo mạng được lưu trữ tại message queue
Mạng chuỗi khối được triển khai sau khi Infrastructure Controllers hoạt động trở lại. Chuyển trạng thái mạng sang CREATED
63
Bảng 4.12 Testcase TC02-04
Testcase ID TC02-04
Mô tả Message Queue dừng hoạt động
Điều kiện tiền đề Các dịch vụ khác vẫn hoạt động bình thường Các bước thực hiện Bước 1: Tắt Message Queue
Bước 2: Gửi một yêu cầu tạo mạng chuỗi khối và giao thức đồng thuận
Bước 3: Kiểm tra trạng thái của việc tạo mạng chuỗi khối
Bước 4: Sau 5 phút, chạy lại Message Queue Bước 5: Kiểm tra trạng thái của việc tạo mạng
chuỗi khối
Kết quả mong muốn Mạng chuỗi khối ở trạng thái CREATE_PENDING Message Queue không hoạt động.
Mạng chuỗi khối được triển khai sau khi Message Queue hoạt động trở lại. Chuyển trạng thái mạng sang CREATED
Kết quả thực tế Các dịch vụ không kết nối được với message queue
Sau vài lần kết nối không thành công, các dịch vụ bị dừng hoạt động
64
Bảng 4.13 Testcase TC02-05
Testcase ID TC02-05
Mô tả Tăng số lượng bản sao của Consensus Driver khi có nhiều yêu cầu gửi đến từ người dùng
Điều kiện tiền đề Các dịch vụ trong hệ thống hoạt động bình thường Các bước thực hiện Bước 1: Gửi 11 yêu cầu liên tục tới hệ thống
Bước 2: Thiết lập hệ thống tạo một bản sao của Consenus Driver nếu số message trên message queue lớn hơn 10 message và chỉ cho phép tồn tại 1 bản sao của Consensus Driver khi số message nhỏ hơn 3
Bước 3: Kiểm tra số lượng bản sao của Consensus Driver trong cụm
Bước 4: Dừng gửi yêu cầu đến hệ thống
Bước 5: Kiểm tra số lượng bản sao của Consensus Driver khi số lượng message nhỏ hơn 3
Kết quả mong muốn Một bản sao mới của Consenus Driver được tạo khi số message trong message queue lớn hơn 10
Hệ thống chỉ tồn tại một bản sao khi số lượng message nhỏ hơn 3
Kết quả thực tế Một bản sao mới của Consenus Driver được tạo khi số message trong message queue lớn hơn 10
Hệ thống chỉ tồn tại một bản sao khi số lượng message nhỏ hơn 3
Với một số kịch bản thử nghiệm trên, ta có thể thấy rằng hệ thống triển khai thử nghiệm có thể vượt qua được một số vấn đề gặp phải trong quá trình vận hành như: một số dịch vụ bị dừng hoạt động đột ngột hay đảm bảo các dịch vụ được triển khai lên các nút vật lý khác khi xảy ra sự cố, tự động mở rộng và thu hẹp tài nguyên khi cần thiết. Điều này đã chứng minh được rằng, hệ thống thử nghiệm có khả năng chịu tải, chịu lỗi nhờ sử dụng nguyên lý thiết kế microservice, message queue
65 và một số công nghệ hỗ trợ như Docker, Kubernetes... Tuy nhiên, qua các thử nghiệm ta cũng có thể thấy hệ thống không thể vượt qua được trường hợp message queue dừng hoạt động, đặc biệt là trường hợp chỉ có một nút message queue duy nhất. Để khắc phục điều này, ta có thể triển khai phân tán một cụm message queue để tăng tính sẵn có (Availability) của dịch vụ này, giúp hệ thống vận hành ổn định hơn.
66
CHƯƠNG 5.KẾT LUẬN 5.1 Kết luận
Với sự phát triển mạnh mẽ của công nghệ chuỗi khối, các giao thức đồng thuận và các nền tảng chuỗi khối mới liên tục được ra đời nhằm giải quyết những bài toán khác nhau trong thực tế. Quá trình lựa chọn, triển khai một giao thức đồng thuận cho một nền tảng chuỗi khối phải trải qua nhiều bước từ tìm hiểu công nghệ, đến cài đặt, thử nghiệm với những thông số cấu hình phức tạp và khối lượng kiến thức lớn. Điều này dẫn đến nhiều rắc rối trong quá trình triển khai gây nên lãng phí về thời gian, công sức và tiệc bạc của các tổ chức, doanh nghiệp. Do đó, tôi đã nghiên cứu và phát triển một giải pháp cho phép tự động triển khai giao thức đồng thuận cho mạng chuỗi khối riêng tư. Giải pháp đã hoàn thành bốn mục tiêu như đã đề ra tại chương 1, gồm có:
1. Tự động triển khai được giao thức đồng thuận trong mạng chuỗi khối riêng tư. Giải pháp đã tự động triển khai được các giao thức đồng thuận như: PoET, PBFT, RAFT. Giải pháp rút ngắn thời gian triển khai tính bằng tuần thậm chí bằng tháng xuống đơn vị phút.
2. Có tính mở rộng cao, cho phép thêm các giao thức đồng thuận và các nền tảng chuỗi khối mới. Để đạt được mục tiêu này, tại chương 3, tôi đã trình bày một kiến trúc gồm các dịch vụ đảm nhận các chức năng chuyên biệt, các thành phần kết nối (driver) cho từng giao thức đồng thuận riêng và một mô hình dữ liệu chung.
3. Đảm bảo hiệu năng của các ứng dụng phi tập trung khi xây dựng trên mạng chuỗi chuỗi khối có giao thức đồng thuận được triển khai nhờ giải pháp mà luận văn đề xuất. Các ứng dụng phi tập trung được xây dựng trong chương 4 đều đạt được hiệu năng theo đúng yêu cầu của tổ chức tiến hành thử nghiệm.
4. Giao diện cấu hình thân thiện, dễ dàng cho người dùng thậm chí là những người không có kiến thức chuyên sâu về chuỗi khối. Chỉ cần một số thao tác đơn giản trên giao diện trực quan, người sử dụng có thể triển khai cơ thuật đồng thuận cho mạng chuỗi khối riêng tư mà không phải trải qua các bước cài đặt, tương tác với các nút mạng phức tạp.
67 Giải pháp đã được áp dụng thành công trong nền tảng V-Chain. Bên cạnh đó, một phiên bản thử nghiệm cũng đã được triển trong “Hệ thống cung cấp dịch vụ công trực tuyến trong lĩnh vực quản lý đất đai ứng dụng công nghệ chuỗi khối” của Trung tâm Thông tin Lưu trữ và Thư viện tài nguyên môi trường quốc gia, Cục Công nghệ thông tin và Dữ liệu tài nguyên môi trường, Bộ Tài Nguyên và Môi trường. Các thông số và kết quả thử nghiệm đã chứng minh rằng giải pháp mà tôi đề xuất trong luận văn này hoạt động chính xác, hiệu quả và rút ngắn thời gian triển khai hệ thống dịch vụ công.
5.2 Hướng phát triển của luận văn trong tương lai
Trong quá trình thực hiện đề tài, do giới hạn về thời gian tìm hiểu, triển khai nên hệ thống không tránh khỏi còn sai sót, nhược điểm cần chỉnh sửa, tối ưu. Trong tương lai, để mở rộng hệ thống, tôi sẽ tích hợp thêm nhiều giao thức đồng thuận và các nền tảng chuỗi khối khác nhau, triển khai nhiều ứng dụng phi tập trung trong nhiều lĩnh vực hơn để có một góc nhìn tổng quát, đa chiều. Từ đó, xây dựng được một cơ chế tự động triển khai giao thức đồng thuận đáp ứng đầy đủ yêu cầu của các hệ thống thực tế.
68
TÀI LIỆU THAM KHẢO
[1] De Meijer, CRW, "Remaining challenges of blockchain adoption and possible solutions," Finextra, 2020.
[2] Pawczuk, L and Holdowsky, J and Rob Massey, "Global Blockchain Survey: Blockchain gets down to business," Deloitte Insights, vol. 6, 2019.
[3] "V-Chain Platform," [Online]. Available: https://v-chain.vn/. [4] "Resonate," [Online]. Available: https://resonate.is/.
[5] "Copytrack," [Online]. Available: https://www.copytrack.com/.
[6] "How Walmart brought unprecedented transparency to the food supply chain with Hyperledger Fabric," [Online]. Available: https://www.hyperledger.org/learn/publications/walmart-case-study.
[7] "How ScanTrust Brought Transparency to the Supply Chain with Hyperledger Sawtooth," [Online]. Available: https://www.hyperledger.org/learn/publications/scantrust-case-study.
[8] "Splinterlands," [Online]. Available: https://splinterlands.com/.
[9] "MakerDao - a better, smarter currency," [Online]. Available: https://makerdao.com/en/.
[10] "Medchain - Rebuilding Healthcare," [Online]. Available: https://www.medchain.us/.
[11] "IPSE - The web 3.0's network traffic portal, Search Engine Based on the decentralized storage network," [Online]. Available: https://ipfssearch.io/en/.
[12] "Blockcerts - The open standard for blockchain credentials," [Online]. Available: https://www.blockcerts.org/.
[13] "Certifaction," [Online]. Available: https://certifaction.io/education/. [14] "EmPow," [Online]. Available: https://empow.io/.
[15] "Dlive," [Online]. Available: https://dlive.tv/.
[16] "0x - Powering the decentralized exchage of tokens on Ethereum," [Online]. Available: https://0x.org/.
69 [17] "Airswap," [Online]. Available: https://www.airswap.io/#/.
[18] "Exodus Bitcoin & Crypto Wallet," [Online]. Available: https://www.exodus.com/.
[19] "uPort open-source identity management system: An assessment of self- sovereign identity and user-centric data platform built on blockchain," in
2020 IEEE International Symposium on Systems Engineering (ISSE), IEEE, 2020, pp. 1--7.
[20] Jakobsson, Markus and Juels, Ari, Proofs of work and bread pudding protocols, Springer, 1999.
[21] F. Saleh, "Blockchain without waste: Proof-of-stake," The Review of financial studies, vol. 34, pp. 1156--1190, 2021.
[22] Schuh, Fabian and Larimer, Daniel, "Bitshares 2.0: general overview,"
[Online]. Available:
https://cryptorating.eu/whitepapers/BitShares/bitshares-general.pdf.
[23] Chen, Lin and Xu, Lei and Shah, Nolan and Gao, Zhimin and Lu, Yang and Shi, Weidong, On security analysis of proof-of-elapsed-time (poet).
[24] Castro, Miguel and Liskov, Barbara and others, "Practical byzantine fault tolerance".