Bỏ qua

Cơ chế đồng thuận

Lựa chọn runtime

MainChain chọn HRC_MAINCHAIN_CONSENSUS, fallback về HRC_CONSENSUS_TYPE; mặc định là proof_of_authority. Sub-Chain mặc định PoA và nhận config Python với consensus_type="proof_of_federation". BFT là triển khai riêng trong hierachain/consensus/bft/; đặt BFT_ENABLED không nối BFT vào các đường chain này. Dùng selector PoA/PoF được tài liệu hóa; giá trị khác không phải công tắc kích hoạt BFT.

So sánh triển khai

Thuộc tính PoA PoF Thành phần BFT
Runtime hierarchy Mặc định MainChain/Sub-Chain Chọn federation rõ ràng Cần tích hợp riêng
Signer finalization Authority đã đăng ký Validator đã đăng ký; validation buộc đúng leader nếu bật rotation Giao thức bỏ phiếu PBFT
Interval mặc định 0.0 giây 5.0 giây Cấu hình timeout giao thức
Kiểm tra giãn cách timestamp Ít nhất nửa interval dương Ít nhất 80% interval (mặc định 4 giây) Giao thức riêng
Thành viên Ít nhất một authority min_validators=3 để tạo block n >= 3f + 1
ZK Xác minh tùy chọn dùng chung Xác minh tùy chọn dùng chung Cờ môi trường dùng chung; xem giới hạn đầu vào BFT

Ordering và độ bền dữ liệu

SubChain.add_event() ghi journal và đưa event vào hàng đợi. Ordering gom event, finalize đồng thuận, ký header và lưu block trước khi đưa vào commit queue. Consumer Sub-Chain xác minh và áp dụng block đã commit mà không ghi lại. Xác nhận gửi event xảy ra trước finality. Ordering Sub-Chain mặc định dùng 50 event và batch timeout 1 giây; thời gian chờ này độc lập với giãn cách block PoA.

Giới hạn PoF

get_current_leader(index) dùng danh sách validator đã sắp xếp và index % count. validate_block() kiểm tra cấu trúc, giãn cách timestamp, identity leader, chữ ký leader trên payload dựng lại trước finalization, và bước ZK tùy chọn dùng chung. Dù tên là _verify_block_quorum(), hàm này kiểm tra một chữ ký leader. verify_quorum_signatures() kiểm tra riêng chữ ký của các validator khác nhau với ngưỡng mặc định floor(2n/3)+1; đường finalize/validate block thông thường không thu thập hoặc bắt buộc quorum đó. Class này chưa triển khai failover leader tự động.

Đăng ký public key thật của validator. Nếu bỏ public_key khi gọi add_validator(), class tạo khóa không thuộc validator từ xa; không dùng cách này để cấp cấu hình mạng.

Giới hạn ZK

HRC_ENABLE_ZK_PROOFS=false tắt kiểm tra ZK dùng chung. Nếu bật, xử lý proof thiếu còn phụ thuộc HRC_ZK_REQUIRED_MAINCHAIN. PoF không bắt buộc ZK riêng theo mặc định. Mock proof là fixture phát triển có thể tự tạo; tạo/xác minh production chưa triển khai. Block có chữ ký và Merkle anchor vẫn là các cơ chế toàn vẹn riêng.

Cấu hình

HRC_MAINCHAIN_CONSENSUS=proof_of_authority
HRC_BLOCK_INTERVAL=0.0
HRC_ENABLE_ZK_PROOFS=false
HRC_ZK_REQUIRED_MAINCHAIN=false

block_interval của PoF là cấu hình đồng thuận riêng; HRC_BLOCK_INTERVAL điều khiển PoA. Hàm khởi tạo chuỗi hiện không áp dụng CONSENSUS_FEDERATION_CONFIG. BFT dùng cờ ZK chung, nhưng helper và lớp bọc request đặt operation ở các vị trí khác nhau; xem BFT trước khi dựa vào kiểm tra đó.

Liên quan