Trong ngành công nghiệp blockchain, có thể bạn thường nghe nói về cuộc thảo luận về hiệu suất chậm và khả năng mở rộng hạn chế về quy mô của blockchain theo thời gian và số lượng ngày càng lớn những người tham gia mạng mới. Bạn có thể nghe thấy các so sánh blockchain với các công nghệ kế thừa như “thông lượng quy mô VISA” của hàng nghìn giao dịch mỗi giây. Trong bài viết này, chúng tôi sẽ thảo luận về một số hạn chế về hiệu suất trong chuỗi khối Hyperledger Fabric.
Có thể tạo các blockchains yêu cầu lớp kiểm soát truy cập được tích hợp trong các nút blockchain để đọc thông tin bị hạn chế trên blockchain. Điều này sẽ giới hạn số lượng người tham gia trong mạng có thể giao dịch trong cơ chế đồng thuận của mạng blockchain. Loại blockchain này được gọi là blockchain được cấp phép.
Sự khác biệt giữa blockchain công khai và được cấp phép được hiển thị trong bảng sau:
Hyperledger Fabric
Hyperledger Fabric là blockchain được phép sử dụng rộng rãi nhất trong dòng Hyperledger; nó là nền tảng của các dự án Hyperledger do Linux Foundation tổ chức. Là một nền tảng cấp doanh nghiệp mã nguồn mở, Hyperledger Fabric thúc đẩy một kiến trúc có thể định cấu hình và mô-đun cao. Hyperledger Fabric được tối ưu hóa cho nhiều trường hợp sử dụng trong ngành, bao gồm lĩnh vực tài chính, ngân hàng, chăm sóc sức khỏe, bảo hiểm và công cộng, cũng như chuỗi cung ứng và quản lý tài sản kỹ thuật số.
Hyperledger Fabric hỗ trợ phát triển liên hệ thông minh bằng các ngôn ngữ lập trình đa năng, chẳng hạn như Java, Go và Node.js. Hyperledger Fabric cũng đang hoạt động theo mô hình quản trị nhằm xây dựng lòng tin giữa những người tham gia trên mạng chia sẻ.
PoW
Trong blockchain công khai, bất kỳ ai cũng có thể tham gia mạng để thực hiện giao dịch. Bitcoin chạy thuật toán đồng thuận dựa trên Proof of Work (PoW) với thời gian tạo 1 khối là 10 phút và kích thước khối cố định là 1 MB. Thông lượng cao nhất xử lý giao dịch là từ 3,3-7 giao dịch mỗi giây. Thời gian chờ xác nhận sáu khối mất khoảng một giờ. Hiện tại, Ethereum sử dụng sự đồng thuận dựa trên PoW có thể xử lý khoảng 25 giao dịch mỗi giây. Với bản nâng cấp phần mềm quan trọng gần đây nhất của Ethereum, được đặt tên là Istanbul vào ngày 8 tháng 12 năm 2019, với một số cải tiến cho mạng, Ethereum hiện đã cho phép tích hợp giải pháp mở rộng lớp thứ hai để cho phép hơn 3.000 giao dịch mỗi giây (TPS) trong khi vẫn duy trì phân cấp và sự riêng tư.
Sổ cái: Hệ thống này lưu trữ một chuỗi các khối, lưu giữ tất cả các bản ghi lịch sử bất biến của tất cả các chuyển đổi trạng thái.
Các nút: Đây là các thực thể logic của blockchain. Có ba loại nút:
- Máy khách: Máy khách là ứng dụng thay mặt người dùng để gửi các giao dịch đến mạng.
- Peer: Đây là một thực thể thực hiện các giao dịch và duy trì trạng thái sổ cái.
- Người đặt hàng: Điều này tạo ra một kênh giao tiếp được chia sẻ giữa khách hàng và đồng nghiệp và nó đóng gói các giao dịch blockchain thành các khối và gửi chúng đến các đồng nghiệp cam kết.
Cùng với các yếu tố chính này, Hyperledger Fabric dựa trên các đặc điểm thiết kế chính sau:
Chaincode: Chaincode là một khái niệm tương tự như một hợp đồng thông minh trong các mạng khác như Ethereum. Đây là một chương trình được viết bằng ngôn ngữ cấp cao hơn, thực thi dựa trên cơ sở dữ liệu trạng thái hiện tại của sổ cái.
Kênh: Kênh là một mạng con giao tiếp riêng tư để chia sẻ thông tin bí mật giữa nhiều thành viên mạng. Mỗi giao dịch được thực hiện trên kênh chỉ hiển thị cho các bên được xác thực và ủy quyền.
Người xác nhận: Những giao dịch này xác thực và gọi ra mã chaincode, gửi lại kết quả giao dịch đã xác nhận cho các ứng dụng gọi điện.
MSP: Điều này cung cấp quy trình xác thực và xác thực danh tính bằng cách cấp và xác thực chứng chỉ. Nó xác định tổ chức cấp giấy chứng nhận (CA) nào đáng tin cậy để xác định các thành viên của miền đáng tin cậy và xác định các vai trò cụ thể mà một tác nhân có thể đóng (thành viên, quản trị viên, v.v.).
Ở quy trình luồng cấp cao, các thông điệp giao dịch được gửi đến dịch vụ đặt hàng. Sau đó, người đặt hàng nhận các giao dịch từ nhiều kênh khác nhau và xếp hàng các tin nhắn này trên mỗi kênh. Người đặt hàng tạo một khối giao dịch mới trên mỗi kênh và phân phối khối cho tất cả các đồng nghiệp thông qua giao thức gossip. Giao thức gossip kết nối các đồng nghiệp trong kênh và phát sóng sổ cái và dữ liệu kênh theo cách có thể mở rộng. Thông điệp giao dịch có thể được truyền đạt trong cùng một tổ chức hoặc giữa các đồng nghiệp trong các tổ chức khác nhau trong cùng một kênh. Khi thêm nhiều đồng nghiệp hơn vào mạng, điều đó sẽ chỉ ảnh hưởng đến hiệu suất trên các đồng cấp kênh đã tham dự. Các kênh khác sẽ không bị ảnh hưởng. Giao thức tách rời các hoạt động mạng để đảm bảo tính toàn vẹn của dữ liệu, tính nhất quán của dữ liệu và khả năng mở rộng. Trong blockchain bitcoin công khai, tất cả các giao dịch được xử lý thông qua một loạt các hoạt động tuần tự trong các khối và được thêm vào sổ cái. Quá trình tuần tự này sẽ không thu được nhiều lợi ích về hiệu suất khi sử dụng phần cứng mạnh mẽ.
Trong Hyperledger Fabric, sự đồng thuận được thực hiện ở dịch vụ đặt hàng. Bằng cách thêm nhiều đồng nghiệp hơn, bạn có thể đạt được tính đồng thời tốt hơn. Dịch vụ đặt hàng được thiết kế theo cách mô-đun vì nó hoàn toàn có thể cắm được. Bạn cũng có thể chọn các cơ chế đồng thuận có thể mở rộng (Solo, Kafka và BFT) cho các trường hợp sử dụng ứng dụng. Kafka về cơ bản là một nền tảng thông điệp phân tán, có khả năng chịu lỗi, thông lượng cao, có khả năng xử lý hàng loạt. Cơ chế đặt hàng Hyperledger Fabric Kafka sử dụng Apache Kafka để xử lý dữ liệu giao dịch được xác nhận theo thời gian thực. Dịch vụ đặt hàng, có thể được thiết lập như một cụm người đặt hàng, xử lý thông báo với một cụm Kafka, đảm bảo rằng mỗi quy trình của người đặt hàng sẽ nhận được các giao dịch và tạo ra các khối theo cùng một đơn hàng. Thiết kế đồng bộ hóa theo hướng sự kiện này giúp mang lại hiệu suất tốt hơn. Kafka đồng thuận được khuyến khích sử dụng trong sản xuất.
Một số ràng buộc về hiệu suất trong Hyperledger Fabric như sau:
- Chia tỷ lệ kích thước khối
- Mở rộng quy mô chứng thực
- Chính sách xác nhận
- Các kênh và phân bổ nguồn lực
CHIA TỶ LỆ KÍCH THƯỚC KHỐI
Khi chúng tôi tăng kích thước khối, thông lượng giao dịch liên quan trong khối sẽ được tăng lên, nhưng có nhiều thứ khác có thể ảnh hưởng đến hiệu suất. Khi kích thước khối được tăng lên, nó đòi hỏi nhiều khả năng tính toán hơn; yêu cầu lưu trữ sẽ tăng lên và yêu cầu nhiều băng thông mạng hơn.
(configtx.yaml), được cung cấp bởi Fabric như sau:
Dưới đây là một số cấu hình:
MaxMessageCount: Điều này xác định số lượng tin nhắn / giao dịch tối đa để cho phép trong một khối mỗi lô.
AbsoluteMaxBytes: Đây là số byte tối đa tuyệt đối được phép cho các giao dịch / thông điệp được tuần tự hóa trong một lô.
PreferredMaxBytes: Đây là số byte tối đa ưu tiên được phép trong một lô. Giao dịch / tin nhắn lớn hơn byte ưu tiên tối đa sẽ dẫn đến một lô lớn hơn byte tối đa được ưu tiên. Để có được thông lượng cao hơn, bạn có thể tăng MaxMessageCount để tối đa hóa thông lượng. Trong các trường hợp khác, bạn có thể tinh chỉnh các thông số trong configtx.yaml để tối ưu hóa thông lượng giao dịch của mình.
Đây là kết quả nghiên cứu từ nhóm Nghiên cứu của IBM, kết quả xem xét tác động của kích thước khối và giao dịch.
Tỷ lệ đến về hiệu suất:
Khi tỷ lệ đến của giao dịch tăng, tuyến tính thông lượng tăng. Ở khoảng 140 tps, thông lượng đạt đến điểm bão hòa và độ trễ tăng lên đáng kể. Tất cả các kích thước khối sẽ có độ trễ tương tự. Điều này là do, khi một người ngang hàng nhận được một giao dịch đã đặt hàng, nó sẽ gọi Chaincode của hệ thống xác thực (VSCC) để xác định tính hợp lệ của giao dịch. Trong giai đoạn VSCC, số lượng yêu cầu xác thực có thể tăng lên nhanh chóng, điều này có thể ảnh hưởng đến độ trễ cam kết. Khi tốc độ giao dịch tăng trước điểm bão hòa, kích thước khối nhỏ hơn sẽ nhanh hơn. Khi tỷ lệ đến tăng, không có tác động đến việc xác nhận và độ trễ phát sóng, nhưng có tác động đến độ trễ giao dịch. Kết quả của việc này được hiển thị như hình sau:
TỶ LỆ XÁC NHẬN
Là việc truyền thông tin ngang hàng xảy ra trên cùng một kênh. Khi thêm nút của người xác nhận vào một kênh khác, điều đó sẽ không ảnh hưởng đến hiệu suất của kênh. Tuy nhiên, trong cùng một kênh, việc thêm các nút xác nhận sẽ ảnh hưởng đáng kể đến thông lượng hiệu suất.
Ở đây, chúng tôi chủ yếu tập trung vào việc mở rộng quy mô người chứng thực trên cùng một kênh, điều này sẽ thêm người xác nhận trên các kênh khác nhau mà sẽ không có bất kỳ tác động nào đến hiệu suất. Do đó, chúng tôi giới hạn thử nghiệm ở một kênh.
Đây là kết quả của một số nghiên cứu về việc thêm các nút tps so với các nút xác nhận:
Chúng ta có thể thấy rằng thông lượng giảm đáng kể khi các nút xác nhận tăng lên. Khi xác nhận thực thi mã chuỗi, các nút xác nhận này chạy độc lập với nhau.
Mỗi xác nhận phải trao đổi một thông điệp cho mọi nút xác nhận trong cùng một kênh. Điều này sẽ bổ sung đáng kể nỗ lực quy trình cho mỗi giao tiếp mạng thông báo và nó sẽ ảnh hưởng đến thông lượng hiệu suất. Do đó, nó thường được định cấu hình để giới hạn số lượng người xác nhận trong cùng một kênh.
CHÍNH SÁCH XÁC NHẬN
Hyperledger Fabric cho phép người dùng xác định chính sách xác nhận để hướng dẫn một người ngang hàng thực thi một mã chaincode. Điều này yêu cầu VSCC xác thực giao dịch; kết quả giao dịch có thể được thêm vào sổ cái. Chính sách xác nhận có thể được thể hiện qua các nguyên tắc sử dụng cú pháp logic Boolean.
Cú pháp của ngôn ngữ như sau:
EXPR (E [, E…])
Dưới đây là một số ví dụ về chính sách xác nhận:
AND (‘Org1.member’, ‘Org2.member’) yêu cầu 1 chữ ký từ mỗi người trong số hai hiệu trưởng AND (‘Org1.member’, OR (‘Org2.member’, ‘Org3.member’)) yêu cầu một thành viên của Org1 MSP và 1 chữ ký từ một thành viên của Org2 MSP hoặc 1 chữ ký từ một thành viên của Org3 MSP.
Dưới đây là một số kết quả nghiên cứu về tác động của chính sách xác nhận:
Để giảm độ trễ và tiêu thụ tài nguyên của VSCC, chúng ta có thể giảm số lượng nhận dạng vải, chữ ký và các chính sách phụ.
KÊNH VÀ PHÂN BỔ TÀI NGUYÊN
Nghiên cứu cho thấy rằng, khi thêm nhiều kênh, thông lượng sẽ tăng lên và độ trễ giảm xuống. Việc sử dụng tài nguyên cũng tăng lên:
Chỉ các thành viên mạng trong cùng một kênh mới liên quan đến việc xác nhận và sau đó cam kết quy trình sổ cái. Mỗi giao dịch kênh được cách ly với kênh khác. Việc xác nhận, xác thực và cam kết giao dịch có thể được thực hiện song song khi tăng số lượng kênh. Điều này làm tăng việc sử dụng tài nguyên với thông lượng cao hơn.
* Tuyên bố từ chối trách nhiệm: Bài viết này dành cho và chỉ được sử dụng cho mục đích tham khảo. Không có thông tin nào được cung cấp thông qua Bybit cấu thành lời khuyên hoặc khuyến nghị rằng bất kỳ chiến lược đầu tư hoặc giao dịch nào phù hợp với bất kỳ người nào cụ thể. Những dự báo này dựa trên xu hướng ngành, hoàn cảnh liên quan đến khách hàng và các yếu tố khác, đồng thời chúng liên quan đến rủi ro, biến số và sự không chắc chắn. Không có đảm bảo nào được trình bày hoặc ngụ ý về tính chính xác của các dự báo, dự báo hoặc tuyên bố tiên đoán cụ thể có trong tài liệu này. Người sử dụng bài viết này đồng ý rằng Bybit không chịu trách nhiệm về bất kỳ quyết định đầu tư nào của bạn. Vui lòng tìm kiếm lời khuyên chuyên nghiệp trước khi giao dịch.
Đường link: https://learn.bybit.com/blockchain/hyperledger-fabric/