Đồng thuận & Sắp xếp (Consensus & Ordering)
Mục đích
Phần này mô tả cơ chế consensus và Ordering Service mà HieraChain dùng để giữ block và event được sắp xếp, toàn vẹn và có thể xác minh.
Kiến trúc & khái niệm
- Base Consensus:
hierachain/consensus/base_consensus.pyđịnh nghĩa interface và khung chung cho các thuật toán đồng thuận. - Proof of Authority (PoA):
hierachain/consensus/proof_of_authority.pyxử lý đồng thuận trong một organization, một MainChain quản lý các Sub-Chain nội bộ. - Proof of Federation (PoF):
hierachain/consensus/proof_of_federation.pyxử lý đồng thuận liên minh P2P giữa các MainChain độc lập, không cần RootChain trung tâm. - BFT Consensus:
hierachain/consensus/bft/bổ sung khả năng chịu lỗi Byzantine ở tầng phân cấp. - Ordering Service:
hierachain/consensus/ordering/sắp xếp event trước khi tạo block và gồm nhiều thành phần (Processor, Certifier, BlockBuilder).
Luồng điển hình
sequenceDiagram
participant SC as Sub-Chain
participant OS as Ordering Service
participant C as Consensus (PoA/PoF)
participant MC as Main Chain
SC->>OS: 1. Submit Event
OS->>OS: Queue & Batch
OS->>C: 2. Propose Batch
C->>C: Validate & Sign
C-->>SC: 3. Approved Block
SC->>SC: Finalize & Store
SC->>MC: 4. Submit Proof (Root Hash)
MC-->>SC: Acknowledge
- Sub-Chain nhận event và đẩy vào hàng đợi của Ordering Service.
- Ordering Service gom batch theo ngưỡng kích thước và thời gian rồi gửi cho cơ chế consensus đã chọn.
- Cơ chế consensus (PoA, PoF hoặc BFT) xác nhận batch hoặc block, sau đó Sub-Chain đóng block.
- Nếu bật neo lên Main Chain, Sub-Chain gửi proof (Merkle root hoặc hash) để Main Chain ghi nhận.
Cấu hình
Các biến trong hierachain/config/settings.py:
CONSENSUS_TYPE:proof_of_authority(mặc định) hoặcproof_of_federation.BFT_ENABLED: bật hoặc tắt lớp BFT cho các kịch bản cần chịu lỗi Byzantine.VALIDATOR_TIMEOUT: timeout giữa các validator.CONSENSUS_FEDERATION_CONFIG: tham số liên minh (ví dụmin_validatorsvàblock_interval).
Ví dụ môi trường:
Tính năng & hạn chế
- PoA triển khai đơn giản và độ trễ thấp, nhưng phụ thuộc vào validator tập trung để bảo đảm tin cậy.
- PoF cân bằng giữa tin cậy và phân tán, nhưng cần quản lý thành viên liên minh.
- BFT chịu lỗi Byzantine tốt, nhưng làm tăng độ phức tạp và chi phí thông điệp.
- Ordering giữ thứ tự event và việc gom batch ổn định trước khi đóng block.
Liên quan
- Kiến trúc tổng quan: Tổng quan
- Hierarchical module: Hierarchical
- Data Models: Data Models
- Config: Config