Chịu lỗi và toàn vẹn
Giới hạn tài nguyên và kiểm tra toàn vẹn ledger chạy tại API middleware, ordering service và block verifier.
Bảo vệ tài nguyên
- Giới hạn rate và payload nằm trong
hierachain/api/middleware.py(add_rate_limit,add_payload_limitvớiHRC_RATE_LIMIT,HRC_RATE_LIMIT_RPM,HRC_RATE_LIMIT_BACKEND,HRC_TRUSTED_PROXIES). Với request POST, PUT và PATCH, middleware kiểm traContent-Lengthhợp lệ với giới hạn 1 MiB; chỉ đếm byte quarequest.stream()khi thiếu header này. HRC_EVENT_POOL_MAX_SIZEmặc định là 10.000 và giới hạn hàng đợi ordering.HRC_RAM_CRITICAL_THRESHOLDđược khai báo với mặc định 95% nhưng không có runtime consumer tronghierachain/. Khi được gọi,ResourceValidatorbáo các ngưỡng CPU, memory và disk được cấu hình riêng; nó không thực thi ngưỡng RAM này trong ordering hay storage.- Dùng middleware ứng dụng kết hợp giới hạn tại reverse proxy.
PerformanceMonitorbáo cáo metric; nó không cài guard CPU/RAM cho từng request.
Kiểm tra toàn vẹn
Việc nạp và xác minh ledger dùng các cơ chế sau:
- Merkle và chain link trong
hierachain/core/block.pyvàcore/merkle_tree.py(tiền tố phân tách domain0x01) vàconsensus/ordering/storage.py:_verify_chain_links()(chuỗiprevious_hash). - Xác minh proof trong
hierachain/hierarchical/main_chain/proofs.py:_verify_proof_in_main_chain(quét fallback) vàsecurity/verify/block_verifier.py. - Cơ chế toàn vẹn runtime dùng chain link, Merkle root, xác minh proof và consensus validation. Snapshot trạng thái và rollback thuộc trách nhiệm deployment.
BlockVerifier.verify_chain()kiểm tra chuỗi được truyền vào. Với chuỗi không rỗng, block đầu phải là genesis ở index0vớiprevious_hashbằng"0", và các liên kết giữa những block đã cung cấp được kiểm tra. Chuỗi rỗng trảVALID. API không nhận tip height hoặc hash dự kiến, nên một tiền tố hợp lệ nhưng thiếu các block phía sau vẫn có thể được chấp nhận.
graph LR
A[Block finalize] --> B[previous_hash check]
B --> C[Merkle root verify]
C --> D[Proof verify on MainChain]
D --> E[Operational recovery if needed]