Tổng quan ngắn gọn về các công cụ đo điểm chuẩn và kiểm tra chuỗi khối

Tổng quan ngắn gọn về các công cụ đo điểm chuẩn và kiểm tra chuỗi khối

Ngày nay, các giải pháp kiểm tra và đo điểm chuẩn của chuỗi khối được điều chỉnh cho phù hợp với một chuỗi khối cụ thể hoặc các nhánh của nó. Nhưng cũng có một số giải pháp tổng quát hơn có chức năng khác nhau: một số trong số đó là các dự án nguồn mở, một số khác được cung cấp dưới dạng SaaS, nhưng hầu hết là các giải pháp nội bộ do nhóm phát triển blockchain tạo ra. Tuy nhiên, tất cả đều giải quyết được những vấn đề tương tự. Trong bài viết này, tôi đã cố gắng xem xét ngắn gọn một số sản phẩm được thiết kế đặc biệt để thử nghiệm chuỗi khối.

Hoạt động của mạng blockchain giống như hoạt động của cơ sở dữ liệu phân tán, do đó, các công cụ và phương pháp tương tự có thể được sử dụng để thử nghiệm. Để hiểu rõ hơn cách kiểm tra cơ sở dữ liệu phân tán, hãy xem tuyển tập các tài nguyên và bài viết hay do đó. Ví dụ: độ trễ được sắp xếp thành từng phần trong phần này Bài viếtvà để hiểu cách họ tìm kiếm lỗi trong thuật toán sao chép, tôi khuyên bạn nên đọc phần này bài báo.

Tôi sẽ mô tả một số giải pháp phổ biến để thử nghiệm và đánh giá các chuỗi khối. Tôi sẽ rất vui nếu trong phần nhận xét bạn mô tả các sản phẩm phần mềm hữu ích khác để giải quyết các vấn đề tương tự.

Tổng quan ngắn gọn về các công cụ đo điểm chuẩn và kiểm tra chuỗi khối

Tôi sẽ bắt đầu với một công cụ, mặc dù không được tạo riêng cho các chuỗi khối, nhưng cho phép bạn kiểm tra hoạt động của chúng một cách hiệu quả, miễn là có một mạng đang chạy mà bạn có thể thử nghiệm trên đó. Yếu tố quan trọng nhất tạo nên độ tin cậy của hệ thống phân tán là khả năng tiếp tục hoạt động trong trường hợp xảy ra sự cố với máy chủ và mạng. Điều này có thể là do mạng bị trễ, ổ đĩa đầy, không có sẵn các dịch vụ bên ngoài (DNS), lỗi phần cứng và hàng trăm lý do khác. Để kiểm tra tính ổn định của bất kỳ hệ thống nào hoạt động đồng bộ trên một số lượng lớn máy hệ thống, bạn có thể sử dụng Gremlin. Nó sử dụng một cách tiếp cận cực kỳ hiệu quả được gọi là Kỹ thuật hỗn loạn.

Sử dụng tác nhân mạng của riêng mình, Gremlin tạo ra nhiều loại sự cố khác nhau trên số lượng máy được yêu cầu: mạng bị trễ, quá tải bất kỳ tài nguyên nào (CPU, đĩa, bộ nhớ, mạng), vô hiệu hóa các giao thức riêng lẻ, v.v. Đối với blockchain, Gremlin có thể được sử dụng trên các máy chủ testnet, mô phỏng các vấn đề thực tế và quan sát hành vi của mạng. Với nó, các nhà phát triển và quản trị viên có thể quan sát trong một môi trường được kiểm soát điều gì sẽ xảy ra nếu hệ thống gặp sự cố hoặc khi mã được cập nhật. Trong trường hợp này, mạng phải được cấu hình và triển khai trước, cũng như được cấu hình để thu thập các số liệu cần thiết.

Gremlin là một công cụ tiện lợi dành cho các kiến ​​trúc sư, nhà phát triển và chuyên gia bảo mật, đồng thời là giải pháp phổ quát để thử nghiệm mọi hệ thống phân tán được tạo sẵn và đang chạy, bao gồm cả chuỗi khối.

Tổng quan ngắn gọn về các công cụ đo điểm chuẩn và kiểm tra chuỗi khối

Hyperledger Caliper là một giải pháp chuyên biệt hơn nhiều Thước cặp Hyperledger. Hiện tại, Caliper hỗ trợ một số blockchain cùng lúc - đại diện của gia đình Hyperledger (Fabric, Sawtooth, Iroha, Burrow, Besu), cũng như Ethereum và mạng FISCO BCOS.

Sử dụng Caliper, bạn có thể thiết lập cấu trúc liên kết của mạng blockchain và các hợp đồng để thử nghiệm, cũng như mô tả cấu hình của nút. Các nút chuỗi khối được nâng lên trong các thùng chứa docker trên một máy. Tiếp theo, bạn có thể chọn những thứ cần thiết cấu hình thử nghiệm và nhận file báo cáo kết quả kiểm tra sau khi ra mắt. Bạn có thể tìm thấy danh sách đầy đủ các số liệu của Caliper và phương pháp đo điểm chuẩn tại đây Số liệu hiệu suất chuỗi khối Hyperledger, đây là một bài viết tuyệt vời nếu bạn quan tâm đến chủ đề đo điểm chuẩn blockchain. Bạn cũng có thể thiết lập bộ sưu tập số liệu trong Prometheus/Grafana riêng.

Hyperledger Caliper là một công cụ dành cho các nhà phát triển và kiến ​​trúc sư hệ thống, vì nó cung cấp khả năng lặp lại thử nghiệm và tự động hóa quá trình thử nghiệm và đo điểm chuẩn. Nó được sử dụng để phát triển cốt lõi của chuỗi khối: thuật toán đồng thuận, máy ảo để xử lý hợp đồng thông minh, lớp ngang hàng và các cơ chế hệ thống khác.

Tổng quan ngắn gọn về các công cụ đo điểm chuẩn và kiểm tra chuỗi khối

Xe tăng MixBytes là một công cụ xuất hiện trong quá trình phát triển các thuật toán đồng thuận và cuối cùng cho các mạng dựa trên EOS và thử nghiệm các parachain dựa trên Nền tảng chẵn lẻ (Polkadot). Về chức năng, nó gần giống với Hyperledger Caliper, vì nó cho phép bạn thu thập các số liệu quan trọng từ các nút của bất kỳ hệ thống phân tán và máy khách nào mà tập lệnh kiểm tra đang chạy trên đó.

MixBytes Tank sử dụng một số dịch vụ đám mây (Digital Ocean, Google Cloud Engine, v.v.), trong đó nó có thể khởi chạy nhiều nút, thực hiện quy trình cấu hình sơ bộ, chạy song song một số điểm chuẩn trên các máy khác nhau, thu thập số liệu cần thiết và tự động tắt mạng.

MixBytes Tank cho phép bạn tiết kiệm tiền trên máy chủ đám mây bằng cách tự động giảm thiểu các tài nguyên không cần thiết sau khi thử nghiệm. Một tính năng đặc biệt khác là sử dụng gói Molecule, cho phép nhà phát triển thử nghiệm việc triển khai blockchain mong muốn cục bộ.

MixBytes Tank cho phép bạn phát hiện sớm các tắc nghẽn và lỗi trong thuật toán phát sinh trong mạng thực với số lượng lớn máy chủ và máy khách được phân bổ theo địa lý. Bể chứa sẽ giúp bạn hiểu điều gì sẽ xảy ra trên các nút nếu khách hàng gửi giao dịch với tốc độ tps nhất định trong điều kiện có độ lặp lại cao và với số lượng nút thực trải rộng trên các lục địa khác nhau, nếu cần.

Tổng quan ngắn gọn về các công cụ đo điểm chuẩn và kiểm tra chuỗi khối

Whiteblock Genesis là một nền tảng thử nghiệm các chuỗi khối dựa trên Ethereum. Công cụ này có chức năng khá rộng: nó cho phép bạn khởi chạy mạng, tạo số lượng tài khoản cần thiết trong đó, tăng số lượng khách hàng cần thiết, định cấu hình cấu trúc liên kết mạng, chỉ định các tham số băng thông và mất gói và chạy thử nghiệm.

Whiteblock Genesis cung cấp các cơ sở thử nghiệm riêng. Các nhà phát triển chỉ cần chỉ định các tham số thử nghiệm, chạy chúng bằng API tạo sẵn và nhận kết quả bằng bảng điều khiển tiện lợi.

Whiteblock Genesis cho phép bạn định cấu hình một thử nghiệm khá chi tiết mà nền tảng sẽ tự động tiến hành đối với mọi thay đổi mã quan trọng. Điều này sẽ cho phép bạn phát hiện lỗi ở giai đoạn đầu và đánh giá ngay tác động của những thay đổi đối với các thông số mạng quan trọng, chẳng hạn như tốc độ giao dịch và tài nguyên mà các nút tiêu thụ.

Madt

Một sản phẩm trẻ thú vị khác để thử nghiệm các hệ thống phân tán là điên. Nó được viết bằng Python và cho phép bạn tạo cấu trúc liên kết mạng cần thiết cũng như số lượng máy chủ và máy khách cần thiết bằng cách sử dụng tập lệnh cấu hình đơn giản (Ví dụ). Sau đó, dịch vụ sẽ triển khai mạng trong một số vùng chứa Docker và mở giao diện web trong đó bạn có thể quan sát các thông báo từ máy chủ và máy khách của mạng. Madt có thể được sử dụng để thử nghiệm chuỗi khối - kho lưu trữ dự án có thử nghiệm mạng p2p dựa trên giao thức Kademlia, trong đó độ trễ trong việc cung cấp dữ liệu đến các nút tăng dần và trạng thái của dữ liệu này được kiểm tra.

Madt chỉ mới xuất hiện gần đây nhưng với kiến ​​trúc rất linh hoạt, nó có thể phát triển thành một sản phẩm chức năng.

Các giải pháp khác

Hầu như bất kỳ thử nghiệm nào đối với phần hệ thống của chuỗi khối đều yêu cầu chạy các tập lệnh sơ bộ, chuẩn bị tài khoản và điều kiện cho thử nghiệm (đây có thể là thử nghiệm các lỗi đồng thuận có thể tạo ra nhiều nhánh của chuỗi, thử nghiệm các kịch bản hard fork, thay đổi tham số hệ thống, v.v.). Tất cả các thao tác này được thực hiện khác nhau trong các chuỗi khối khác nhau, do đó, các nhóm sẽ dễ dàng điều chỉnh dần việc thử nghiệm và đo điểm chuẩn sản phẩm cho phù hợp với CI/CD nội bộ và sử dụng các phát triển của riêng họ, dần dần trở nên phức tạp hơn khi chức năng của chuỗi khối phát triển.

Tuy nhiên, việc sử dụng các giải pháp làm sẵn có thể giảm đáng kể thời gian thử nghiệm cho các nhóm này, vì vậy tôi nghĩ rằng phần mềm này sẽ được phát triển tích cực trong những năm tới.

Kết luận

Để kết thúc bài đánh giá ngắn này, tôi sẽ liệt kê một số đặc điểm quan trọng của các công cụ kiểm tra blockchain:

  • Khả năng tự động triển khai mạng blockchain trong các điều kiện lặp lại. Yếu tố này rất quan trọng khi phát triển các bộ phận hệ thống của blockchain: thuật toán đồng thuận, tính hữu hạn, hợp đồng thông minh hệ thống.
  • Chi phí sở hữu hệ thống, tài nguyên tiêu thụ và sự thuận tiện khi sử dụng liên tục. Yếu tố này cung cấp cho dự án những bài kiểm tra chất lượng cao với số tiền ít.
  • Tính linh hoạt và đơn giản của cấu hình thử nghiệm. Yếu tố này làm tăng cơ hội xác định các sự cố của hệ thống - ít có khả năng bỏ sót điều gì đó quan trọng.
  • Tùy chỉnh cho các loại blockchain cụ thể. Phát triển một giải pháp dựa trên giải pháp hiện có có thể cải thiện đáng kể chất lượng và giảm chi phí thời gian.
  • Sự thuận tiện và khả năng tiếp cận các kết quả thu được và loại của chúng (báo cáo, số liệu, đồ thị, nhật ký, v.v.). Điều này thực sự cần thiết nếu bạn muốn theo dõi lịch sử phát triển của sản phẩm hoặc nếu bạn yêu cầu phân tích sâu về hoạt động của mạng blockchain.

Chúc bạn thử nghiệm may mắn và chuỗi khối của bạn có thể hoạt động nhanh và có khả năng chịu lỗi!

Nguồn: www.habr.com

Thêm một lời nhận xét