Kiến trúc phân cấp
Mục đích
Phần này giải thích cách HieraChain tổ chức phân cấp. Nó bao gồm cách Sub-Chain tương tác với Main Chain qua HierarchyManager, cách channel và mô hình multi-org vận hành, cách xử lý private data, cách giao dịch liên chuỗi dùng 2PC, cách neo proof và cách cân bằng lại Sub-Chain.
Thành phần và khái niệm
- Main Chain:
hierachain/hierarchical/main_chain/base.pylưu proof từ Sub-Chain và tổng hợp báo cáo toàn vẹn. - Sub-Chain (Domain Chain):
hierachain/hierarchical/sub_chain/base.pyxử lý event theo domain, sắp xếp và đóng block, tạo proof. - Hierarchy Manager:
hierachain/hierarchical/hierarchy_manager/base.pyđiều phối hệ thống chuỗi, quản lý vòng đời Sub-Chain, giao dịch liên chuỗi và thống kê hệ thống. - Channel:
hierachain/hierarchical/channel/channel.pycung cấp không gian giao tiếp riêng cho nhóm organization và giữ policy tạo channel. - Multi-Org:
hierachain/hierarchical/multi_org.pyxử lý khởi tạo organization, mạng multi-org và quan hệ giữa channel với organization. - Dữ liệu riêng tư:
hierachain/hierarchical/private_data.pycung cấp đối tượng collection và kiểm tra truy cập, với kho dữ liệu trong bộ nhớ ở cấp thư viện. Manager không lưu bền các collection này; API REST ghi dữ liệu riêng tư trả HTTP 501. - Cross-Chain Transaction Manager:
hierachain/hierarchical/transaction_manager.pyđiều phối giao dịch 2PC giữa các Sub-Chain.
Luồng tiêu biểu
graph TD
User[Client/User] -->|Submit Event| SubChain
SubChain -->|1. Ordering| Orderer[Ordering Service]
Orderer -->|2. Finalize| Consensus[Consensus Layer]
Consensus -->|Finalized block| Orderer
Orderer -->|3. Sign and persist| Blocks[Block Storage]
Blocks -->|4. Queue and apply unchanged block| SubChain
SubChain -->|5. Submit Proof| MainChain[Main Chain]
MainChain -->|6. Persist Proof Anchor| Storage[Proof Storage]
SubChain -->|Apply Finalized Events| Projection[WorldState Projection]
- Tạo Sub-Chain bằng
HierarchyManager.create_sub_chain(name, domain_type, metadata). Lệnh này khởi tạo DomainChain và nối vào Main Chain. - Gửi sự kiện bằng
SubChain.add_event(). Kết quả xác nhận sự kiện đã được journal/hàng đợi tiếp nhận; orderer sau đó hoàn tất, ký và lưu block trước khi consumer áp dụng nó. - Neo proof lên Main Chain bằng
SubChain.submit_proof_to_main(main_chain, ...)hoặcHierarchyManager.submit_proof_to_main_chain(name). - Chạy giao dịch liên chuỗi (2PC) bằng
HierarchyManager.transaction_manager.initiate_transaction(src, dst, payload), xử lý prepare, commit và rollback. - Channel: tạo channel giữa các tổ chức. Ứng dụng phải quản lý việc lưu bền đối tượng collection dữ liệu riêng tư; API REST ghi dữ liệu riêng tư chưa được triển khai (HTTP 501).
Cấu hình liên quan (settings.py, thực tế HRC_*)
- Consensus/Ordering: xem Consensus & Ordering và
HRC_CONSENSUS_TYPE/HRC_MAINCHAIN_CONSENSUS,VALIDATOR_TIMEOUT,HRC_BLOCK_INTERVAL.
Tính năng và hạn chế
- Chức năng: tách dữ liệu theo domain, neo bằng chứng có chữ ký, quyết định 2PC được lưu bền trong journal, cùng registry channel/đa tổ chức trên các backend hỗ trợ.
- Giới hạn: lời gọi Python trực tiếp tới channel/dữ liệu riêng tư cần caller đáng tin cậy; API REST không cung cấp kho dữ liệu riêng tư. Xác nhận journal của 2PC tách biệt với việc commit block bất đồng bộ. Xem Module phân cấp.
Liên quan
- Tổng quan: Tổng quan
- Consensus & Ordering: Consensus & Ordering
- Mô-đun Hierarchical: Hierarchical
- Config: Config