Thêm/Tùy biến Consensus
Trang này hướng dẫn hai con đường: (A) chỉ cấu hình để chọn PoA/PoF/BFT hiện có; (B) mở rộng bằng cách thêm cơ chế đồng thuận mới dựa trên BaseConsensus.
Chỉ cấu hình (không cần viết mã)
-
Đặt biến môi trường (ví dụ dùng
.envhoặc shell): -
Bật/tắt BFT (nếu áp dụng luồng sắp xếp/Byzantine):
-
Khởi động API server và xác minh luồng cơ bản hoạt động:
-
Kiểm thử nhanh bằng API v1:
curl -s -X POST http://localhost:2661/api/v1/chains/supply_chain/create curl -s -X POST http://localhost:2661/api/v1/chains/supply_chain/events \ -H 'Content-Type: application/json' \ -d '{"entity_id":"PROD-001","event_type":"production_complete","details":{"quantity":100}}' curl -s -X POST http://localhost:2661/api/v1/chains/supply_chain/submit-proof
Thêm cơ chế đồng thuận mới (viết mã)
-
Xem chuẩn giao diện và triển khai hiện có:
- Base:
hierachain/consensus/base_consensus.py - PoA:
hierachain/consensus/proof_of_authority.py - PoF:
hierachain/consensus/proof_of_federation.py - BFT (phân cấp):
hierachain/consensus/bft/
- Base:
-
Tạo lớp mới kế thừa
BaseConsensus(ví dụ):# hierachain/core/consensus/my_consensus.py (ví dụ mô tả) class MyConsensus(BaseConsensus): def validate_block(self, block, previous_block): # xác thực chữ ký/merkle/tính nhất quán ... return True def finalize_block(self, block): # đóng block/áp dụng chữ ký/metadata đồng thuận ... return block def can_create_block(self, authority_id=None): # kiểm tra quyền tạo block ... return True -
Wiring điểm khởi tạo (factory/điểm tích hợp):
- Tại nơi khởi tạo chuỗi (Sub‑Chain/DomainChain) hoặc dịch vụ Ordering, tham chiếu cơ chế mới khi
HRC_CONSENSUS_TYPE=my_consensus. - Nếu có factory, bổ sung case ánh xạ
my_consensus→MyConsensus.
- Tại nơi khởi tạo chuỗi (Sub‑Chain/DomainChain) hoặc dịch vụ Ordering, tham chiếu cơ chế mới khi
-
Kiểm thử với API v1 như phần A (thêm event → finalize → submit proof). Theo dõi log để xác nhận phương thức
propose/validate/commitmới được gọi.
Liên quan
- Kiến trúc/Đồng thuận: Consensus & Ordering
- Mô‑đun Hierarchical: Hierarchical
- Tham chiếu Config: Config
- API v1: API v1