Mạng ngang hàng (P2P)

Các node Cardano và sự tương tác giữa chúng được kết hợp với nhau trong một lớp (layer) mạng, mạng phân phối thông tin về các giao dịch và tạo khối giữa tất cả các node đang hoạt động. Bằng cách này, hệ thống xác nhận và thêm các khối vào chuỗi và cũng xác minh các giao dịch. Một mạng lưới phân tán gồm các node phải hạn chế sự chậm trễ ở mức tối thiểu và đủ khả năng phục hồi để đối phó với các sự cố hoặc hạn chế về dung lượng.

Trong hệ thống liên kết Byron, các node được kết nối bằng cấu hình tĩnh được xác định trong tệp cấu trúc liên kết. Kể từ khi Shelley ra đời, hệ thống đã hoạt động ở chế độ kết hợp. Chuyển từ trạng thái kết nối mạng liên hợp (federated) sang trạng thái kết hợp (hybrid), chúng tôi đã thêm một mạng ngang hàng (P2P – peer-to-peer) được xây dựng thủ công gồm các relay node của nhà điều hành stake pool (SPO). Điều này có nghĩa là các core node SPO có thể kết nối với cả các relay node được liên hợp và với các relay node khác của SPO. Tuy nhiên, kết nối này không tự động hóa, nó cho phép trao đổi thông tin khối và giao dịch mà không cần dựa vào các federated node. Trong giai đoạn này, các relay node liên kết đang dần bị tắt để các SPO có thể kết nối với các relay của nhau.

Để đảm bảo giao tiếp hiệu quả giữa các node, điều cần thiết là kích hoạt các kết nối tự động của các relay SPO với nhau, do đó cần ít cấu hình tĩnh hơn. Điều này hiện đang được thực hiện thông qua các nâng cấp cho stack (ngăn xếp) mạng, điều này cuối cùng sẽ kích hoạt cấu trúc liên kết P2P đầy đủ cho tất cả các node Cardano. Giao tiếp P2P sẽ tăng cường luồng thông tin giữa các node, do đó giảm (và cuối cùng là loại bỏ) sự phụ thuộc của mạng vào các node được liên kết và cho phép phân cấp hoàn toàn mạng Cardano.

Lưu ý: Việc triển khai P2P hiện đang trong giai đoạn thử nghiệm. Team đang tập trung vào việc cung cấp các tính năng cuối cùng cho SPO và chuẩn bị các bài kiểm tra mô phỏng QuickCheck. Việc triển khai P2P đầy đủ sẽ diễn ra vào cuối năm 2021. Tài liệu này mô tả chức năng P2P chỉ dành cho mục đích thông tin trước bản phát hành này.

Khả năng P2P

Ngăn xếp (stack) mạng trải qua một số cải tiến để đạt được khả năng phục hồi mạng mong muốn. Những cải tiến này không yêu cầu thay đổi giao thức mà cho phép lựa chọn peer tự động và giao tiếp giữa các peer và các node.

Mạng P2P được bật để sử dụng các thành phần sau:

  • P2P governor – quản lý việc bắt đầu tự động kết nối giữa các peer.
  • Trình quản lý kết nối – tích hợp với trình P2P governor để giám sát các kết nối và giao thức mới, đảm bảo giao tiếp hiệu quả và cải thiện theo dõi sự cố.
  • Máy chủ (server) – chấp nhận các kết nối và giới hạn tốc độ động đồng bộ hóa các kết nối này với trình quản lý kết nối.
  • Quản lý giao thức Inbound – nhận dữ liệu từ trình quản lý kết nối để bắt đầu hoặc khởi động lại các giao thức nhỏ của bộ phản hồi trên các kết nối hai chiều đến và đi (inbound và outbound).

Tiếp theo, chúng tôi xem xét kỹ hơn cách hoạt động của trình P2P governor để đảm bảo kết nối tự động giữa các peer node trên mạng.

Chức năng P2P governor

Mạng Cardano bao gồm nhiều peer node. Một số peer node hoạt động tích cực hơn những node khác, một số đã thiết lập kết nối và một số node nên được thúc đẩy để đảm bảo hệ thống hoạt động tốt nhất. Mỗi node tạo khối duy trì một tập hợp các ứng dụng ngang hàng được ánh xạ thành ba loại:

  • Cold peer – peer hiện tại mà không có kết nối mạng được thiết lập
  • Warm peer – peer với kết nối mạng được thiết lập, chỉ được sử dụng cho các phép đo mạng mà không triển khai bất kỳ giao thức mini node-to-node nào.
  • Hot peer – peer có kết nối, đang được sử dụng bởi cả ba giao thức mini node-to-node

Các peer mới được phát hiện ban đầu được thêm vào tập hợp cold peer. Sau đó, P2P governor chịu trách nhiệm quản lý kết nối peer: nó xác định những peer nào có lợi cho mục đích kết nối và nên thăng cấp hoặc hạ cấp giữa các trạng thái cold, warm hoặc hot.

Mục tiêu chính của P2P governor là duy trì số lượng mục tiêu của các peer cold, warm, và hot. Điều này xây dựng và duy trì một bản đồ kết nối của toàn bộ mạng và đơn giản hóa quá trình tạo kết nối bằng cách xử lý chúng một cách tự động.

Để thiết lập kết nối giữa các node, P2P governor tham gia vào các hoạt động sau:

  • Giao thức gossip ngẫu nhiên được sử dụng để phát hiện ra số lượng cao hơn những cold peer
  • thăng cấp của những cold peer thành những warm peer
  • hạ cấp của những warm peer thành những cold peer
  • thăng cấp những warm peer thành những hot peer
  • hạ cấp các hot peer xuống warm peer

P2P governor cần thiết lập và duy trì:

  • một số mục tiêu của các cold peer (ví dụ: 100)
  • một số mục tiêu của các hot peer (ví dụ: từ 2–20)
  • một số lượng mục tiêu của những warm peer (ví dụ: từ 10–50)
  • một tập hợp các warm peer đủ đa dạng về khoảng cách và vị trí địa lý
  • tần số thay đổi mục tiêu cho các thay đổi hot hoặc warm
  • tần số thay đổi mục tiêu cho các thay đổi warm hoặc cold
  • một tần số thay đổi mục tiêu cho những thay đổi cold hoặc không xác định

Việc sử dụng 2–20 hot peer sẽ tiết kiệm chi phí, vì các peer chỉ trao đổi tiêu đề khối của chúng. Đến lượt nó, phần thân khối thường chỉ được yêu cầu một lần và nó có xu hướng đi theo đường ngắn nhất thông qua biểu đồ kết nối.

Mục đích của các warm peer là cung cấp quyền truy cập vào những peer có thể nhanh chóng được thăng cấp lên những hot peer (trong trường hợp bất kỳ warm peer nào thất bại), đồng thời cung cấp các ứng cử viên cho thay đổi của các hot peer.

Chính sách lựa chọn các warm peer để quảng bá thăng cấp lên (hot) phụ thuộc vào các phép đo ở phần upstream. Mục đích của một mức độ chênh lệch giữa các cold peer và warm peer, một phần, là để khám phá khoảng cách mạng giữa các peer khác và cho phép các warm peer hơn có khả năng tiếp quản các hot peer hiện có. Điều này cho phép tối ưu hóa và điều chỉnh thêm. Duy trì sự đa dạng trong khoảng cách bước nhảy góp phần vào thời gian phân phối khối tốt hơn trên mạng phân tán toàn cầu.

Nhìn chung, cách tiếp cận này tuân theo một mô hình chung cho tìm kiếm hoặc tối ưu hóa có xác suất sử dụng sự cân bằng giữa tối ưu hóa cục bộ với một số yếu tố của sự gián đoạn bậc cao hơn để tránh bị mắc kẹt trong tối ưu cục bộ kém.

Những peer duy trì một tập hợp thông tin hạn chế, dựa trên các tương tác trực tiếp trước đó của họ. Ví dụ, các cold peer có thể không duy trì bất kỳ dữ liệu nào, vì chúng chưa thiết lập các tương tác. Dữ liệu như vậy có thể được so sánh với thuộc tính ‘danh tiếng’ (reputation), tuy nhiên, những chi tiết này hoàn toàn là cục bộ và không được chia sẻ giữa các node khác. Thông tin reputation peer cục bộ cũng được cập nhật khi kết nối peer không thành công. Mạng không duy trì thông tin peer tiêu cực trong thời gian dài: liên quan đến tài nguyên bị ràng buộc và vì sự đơn giản của các cuộc tấn công Sybil.

Việc triển khai phân loại các trường hợp ngoại lệ gây ra lỗi kết nối thành ba lớp:

  • ngoại lệ node nội bộ (ví dụ: hư hỏng disk cục bộ)
  • lỗi mạng (ví dụ: kết nối TCP bị gián đoạn)
  • hành vi đối nghịch (ví dụ: vi phạm giao thức được phát hiện bởi lớp (layer) giao thức type hoặc bởi lớp (layer) đồng thuận).

Trong trường hợp có hành vi đối nghịch, peer có thể bị giáng cấp ngay lập tức khỏi nhóm hot, warm hoặc cold.