Hermes: một Light Node giám sát cho mạng lưới Gossipsub của Ethereum

Bài viết này được dịch máy
Xem bản gốc

Nhóm ProbeLab vui mừng thông báo về Hermes, được xây dựng chủ yếu bởi @dennis-tra@cortze. Hermes là một trình nghe và truy vết GossipSub cho các mạng dựa trên libp2p. Chúng tôi hy vọng rằng công cụ này sẽ được cộng đồng sử dụng rộng rãi và có thêm nhiều tính năng và hỗ trợ cho các mạng khác.

Hermes là gì và bạn có thể làm gì với nó

Hermes hoạt động như một nút nhẹ và kết nối với các thành viên khác trong mạng. Nó dựa vào một nút địa phương đáng tin cậy để đảm bảo chúng tôi có thể trả lời bất kỳ yêu cầu đến và duy trì các kết nối ổn định.

Các thử nghiệm dựa trên Hermes nhằm đo lường hiệu quả và hiệu suất của giao thức phát sóng GossipSub trong bất kỳ mạng dựa trên libp2p nào. Hermes có thể giúp các nhà phát triển điều chỉnh các giao thức mạng của họ dựa trên độ trễ lan truyền tin nhắn và kiểm soát lưu lượng tin nhắn.

Công cụ này hiện hỗ trợ bất kỳ mạng Ethereum nào (ở Lớp Consensus), mặc dù sẽ có thêm nhiều mạng được hỗ trợ trong tương lai.

Nó hoạt động như thế nào

Các thành phần

Hermes hoạt động như một thành phần duy nhất, nút nhẹ, cho mỗi mạng nó được triển khai. Tuy nhiên, nó có hai yêu cầu chính để hoạt động: 1) một nút địa phương đáng tin cậy sẽ cung cấp quan điểm đúng về trạng thái của chuỗi và 2) một người tiêu thụ sự kiện sẽ nhận tất cả các vết tích libp2p và lưu trữ chúng. Nút nhẹ chịu trách nhiệm khám phá các ngang hàng, duy trì các kết nối với họ và theo dõi các sự kiện nội bộ tại máy chủ libp2p.

Nút nhẹ

Hermes hoạt động như một nút libp2p tiêu chuẩn, khám phá và kết nối với mạng trong khi hỗ trợ tất cả các giao thức libp2p để đảm bảo giao tiếp đáng tin cậy và an toàn. Nó kết nối với một nút địa phương đáng tin cậy, hoặc từ xa cho một số RPC cần thông tin trạng thái chuỗi, tận dụng những nguồn đáng tin cậy này để tăng cường khả năng của nó.

Hermes đăng ký tất cả các chủ đề GossipSub có sẵn, cho phép nó nhận toàn diện, tiết lộ và truy vết tất cả các tương tác với mạng. Điều này cho phép công cụ theo dõi hoạt động mạng một cách hiệu quả.

Ngoài ra, Hermes có thể gửi các vết tích này đến bất kỳ người tiêu thụ được xác định nào, với sự hỗ trợ hiện tại cho AWS KinesisXatu từ Quỹ Ethereum (EF). Tính năng này tạo điều kiện cho việc tích hợp dữ liệu mạng với các công cụ phân tích và giám sát, giúp tăng cường an ninh và chức năng tổng thể của mạng.

Triển khai

Hermes được phát triển để chạy liên tục. Tuy nhiên, để tăng tính ổn định của kết nối của nút nhẹ, nút phải phản hồi thành công các cuộc gọi RPC định hướng chuỗi mà các ngang hàng từ xa có thể yêu cầu. Vì Hermes được thiết kế để không phụ thuộc vào chuỗi, chúng tôi phải dựa vào một nút đáng tin cậy bên ngoài để cung cấp thông tin đó.

Hermes phải được ghép nối với một máy khách chuỗi: trong trường hợp của chúng tôi và đối với Lớp Consensus của Ethereum, chúng tôi đã sử dụng Prysm. Cung cấp cho Hermes API HTTP và các điểm cuối gRPC của máy chủ, Hermes có thể tự thêm mình vào "danh sách trắng", để sau đó chuyển tiếp hầu hết các cuộc gọi RPC liên quan đến chuỗi hoặc trạng thái. Tuy nhiên, cùng một nút Prysm có thể được kết nối với nhiều phiên bản Hermes như biểu đồ sau đây cho thấy, điều này giúp giảm các yêu cầu triển khai.

Hermes đã được mở rộng để hỗ trợ một tập hợp khác nhau các người tiêu thụ dữ liệu hoặc luồng dữ liệu. Vì tất cả các vết tích sự kiện cần được lưu trữ ở đâu đó, công cụ này cung cấp ba tùy chọn khác nhau:

  • AWS Kinesis (triển khai của chúng tôi)
  • Xatu callbacks (được EF sử dụng)
  • Trình ghi nhật ký vết tích ra stdout (để phát triển cục bộ)

Nếu bạn quan tâm đến việc sử dụng hoặc nâng cấp công cụ để hỗ trợ các mạng hoặc luồng dữ liệu khác, liên hệ với chúng tôi.

Hermes thu thập dữ liệu gì

Khi Hermes duy trì các kết nối ổn định với các nút mạng khác, nó có thể phát ra các vết tích gỡ lỗi về cách libp2p và GossipSub hoạt động trong thực tế.

Hermes thu thập các thông tin sau đây ngay từ đầu từ máy chủ libp2p và giao thức GossipSub:

  • Các kết nối và ngắt kết nối từ máy chủ libp2p
  • Các tin nhắn điều khiển GossipSub:
    • Các đăng ký từ các nút khác vào các chủ đề
    • Các tin nhắn điều khiển GRAFTPRUNE
    • Điểm số ngang hàng GossipSub
    • Các tin nhắn điều khiển IHAVEIWANT
    • Các tin nhắn điều khiển IDONTWANT gần đây
  • Tin nhắn đã gửi và nhận
  • Các RPC giao thức

Đây là một tập hợp dữ liệu rất có giá trị, vì nó bao phủ một diện tích lớn về hành vi của Gossipsub trong một mạng nhất định. Phân tích dữ liệu tương đối đơn giản có thể tiết lộ các chỉ số rất quan trọng và thông báo cho các kỹ sư về hoạt động lành mạnh (hoặc không) của giao thức. Trong những trường hợp mà Gossipsub phục vụ như giao thức truyền bá khối của một mạng blockchain, có những hiểu biết sâu sắc về các chỉ số này là rất quan trọng!

Chúng tôi đã sử dụng nó như thế nào cho đến nay

Hermes đã giúp nhóm ProbeLab thực hiện một nghiên cứu toàn diện về hoạt động của Gossipsub trên mạng Ethereum. Dưới đây là các liên kết đến các bài đăng ethresear.ch liên quan:

Hơn nữa, nó đã giúp phát hiện lỗi trong hoạt động của Gossipsub trên các triển khai và cung cấp bằng chứng hỗ trợ về nhu cầu áp dụng tin nhắn IDONTWANT.

Kế hoạch tương lai & cách đóng góp

Hermes là mã nguồn mở - kho lưu trữ Github của nó là: GitHub - probe-lab/hermes: A Gossipsub listener and tracer.. Chúng tôi chào đón các Github Issues để thảo luận với cộng đồng, nhận yêu cầu tính năng và nghe ph

Nguồn
Tuyên bố từ chối trách nhiệm: Nội dung trên chỉ là ý kiến của tác giả, không đại diện cho bất kỳ lập trường nào của Followin, không nhằm mục đích và sẽ không được hiểu hay hiểu là lời khuyên đầu tư từ Followin.
Thích
Thêm vào Yêu thích
Bình luận