Cấu hình hệ thống
Mục đích
Tài liệu này liệt kê các biến cấu hình chính của HieraChain (đọc từ biến môi trường và hằng số), nguồn định nghĩa tại hierachain/config/settings.py, kèm giá trị mặc định và gợi ý sử dụng.
Phạm vi
- Áp dụng cho runtime API/CLI và các thành phần Sub-Chain/Main Chain trong cùng tiến trình Python.
- Không bao gồm thông số triển khai hạ tầng (k8s manifests, reverse proxy), chỉ mô tả phần biến môi trường mà Ledgerc trực tiếp.
Cách truy cập cấu hình trong mã
from hierachain.config.settings import settings
print(settings.API_HOST, settings.API_PORT)
print(settings.CONSENSUS_TYPE)
print(settings.AUTH_ENABLED)
Biến môi trường và mặc định (nhóm chính)
Môi trường chạy
HRC_ENV: môi trường cấu hình, giá trị:dev(mặc định) |test|product. Ảnh hưởng lớp cấu hình được chọn (Development/Testing/Production).
API
HRC_API_HOST(mặc định:localhostở dev,127.0.0.1ở production)HRC_API_PORT(mặc định:2661)API_VERSION(constant:v1)
Đồng thuận/Blockchain
HRC_CONSENSUS_TYPE(mặc định:proof_of_authority; hỗ trợ:proof_of_authority,proof_of_federation)CONSENSUS_FEDERATION_CONFIG: cấu hình cho federation (min_validators: 3, block_interval: 5.0)VALIDATOR_TIMEOUT(mặc định:30giây)BFT_ENABLED(mặc định:True),BFT_FAULT_TOLERANCE(mặc định:1),BFT_NODE_COUNT(mặc định:4)- Giới hạn khối:
BLOCK_SIZE_LIMIT(mặc định:1000events/block ở dev,10ở test) PROOF_SUBMISSION_INTERVAL(mặc định:300giây ở dev,10ở test)HRC_VALIDATOR_IDENTITY: đường dẫn file validator identity (mặc định:validator_key.json)
Lưu trữ & Cache
HRC_STORAGE_BACKEND(mặc định:sqliteở dev,memoryở test,redisở production; chấp nhận:memory|redis|sqlite)WORLD_STATE_CACHE_SIZE(mặc định:1000)- Caching nâng cao:
ADVANCED_CACHING_ENABLED(mặc định:True) BLOCK_CACHE_SIZE(mặc định:5000),EVENT_CACHE_SIZE(20000),ENTITY_CACHE_SIZE(10000)- Cache policies:
BLOCK_CACHE_POLICY(lru),EVENT_CACHE_POLICY(ttl),ENTITY_CACHE_POLICY(lfu) ENTITY_TTL(mặc định:3600giây)- DB:
DATABASE_URL(mặc định:sqlite:///hierachain.db) - Redis:
REDIS_HOST(localhost),REDIS_PORT(6379),REDIS_DB(0)
IPFS (Lưu trữ Off-chain)
HRC_IPFS_ENABLED(mặc định:false): Bật/tắt tích hợp IPFS cho dữ liệu lớn.HRC_IPFS_HOST(mặc định:/ip4/127.0.0.1/tcp/5001): Địa chỉ API của IPFS daemon.HRC_IPFS_AUTO_PIN(mặc định:true): Tự động pin dữ liệu sau khi upload để tránh bị dọn rác.HRC_IPFS_TIMEOUT(mặc định:120giây): Thời gian chờ tối đa cho các thao tác IPFS.HRC_IPFS_ENCRYPTION_KEY: Khóa mã hóa AES-256 (32-byte hex). Bắt buộc phải giống nhau giữa các Node trong cùng Channel/Organization.
Xử lý song song & tài nguyên
PARALLEL_PROCESSING_ENABLED(True),MAX_WORKERS(None→ tự động 50% CPU cores),PROCESSING_CHUNK_SIZE(100)- Bảo vệ DoS:
HRC_EVENT_POOL_MAX_SIZE(mặc định:10000),HRC_RAM_CRITICAL_THRESHOLD(95.0%)
Bảo mật & Authentication
- Authentication:
HRC_AUTH_ENABLED(falseở dev/test;Truecưỡng bức ở production) HRC_API_KEY_LOCATION(header),HRC_API_KEY_NAME(X-API-Key)- Secret Backend:
HRC_SECRET_BACKEND(giá trị:env|vault|aws). Mặc định làenv. - Master Key:
HRC_MASTER_KEY_SOURCE(autoở dev/test,envở production),HRC_MASTER_KEY_FILE(mặc định:config/master_backup_key.key) - Brute-force protection:
HRC_BF_MAX_FAILURES(mặc định:5)HRC_BF_LOCKOUT_SECONDS(mặc định:900= 15 phút)HRC_BF_WINDOW_SECONDS(mặc định:300= 5 phút)
- Identity & Organization:
IDENTITY_MANAGER_ENABLED(True),REQUIRE_ORGANIZATION_VALIDATION(True),MSP_ENABLED(True)
P2P Network Security
HRC_P2P_TRUST_POLICY(mặc định:openở dev,strictở production; giá trị:open|strict)HRC_P2P_PEER_ALLOWLIST(danh sách peer IDs phân tách bằng dấu phẩy cho chế độ strict)HRC_P2P_REQUIRE_SIGNATURES(falseở dev,trueở production)
CORS
HRC_CORS_ALLOW_ALL(trueở dev,falseở production)HRC_CORS_ORIGINS(chuỗi CSV domain; production yêu cầu chỉ định rõ)CORS_ALLOW_METHODS(danh sách phương thức cho phép)CORS_ALLOW_HEADERS(danh sách headers cho phép)
HTTPS/HSTS
HRC_HSTS_ENABLED(falseở dev/test;trueở production)HRC_HSTS_MAX_AGE(mặc định:31536000= 1 năm)
Rate Limiting
HRC_RATE_LIMIT(falseở dev/test;trueở production)HRC_RATE_LIMIT_RPM(mặc định:100requests/phút)HRC_RATE_LIMIT_BACKEND:memory(đơn node) hoặcredis(đa node/cluster).
Monitoring & Metrics
HRC_METRICS_ENABLED(mặc định:false): Bật endpoint/metricscho Prometheus.HRC_TRUSTED_PROXIES(mặc định:127.0.0.1): Danh sách IP của Reverse Proxy tin cậy (cho HTTP/2, HTTP/3).
Multi-Organization
MULTI_ORG_ENABLED(True),MSP_ENABLED(True)ORGANIZATION_ADMIN_THRESHOLD(mặc định:1)CHANNEL_CREATION_POLICY(mặc định:majority; giá trị:majority|unanimous|admin_only)AFFILIATION_HIERARCHY_ENABLED(True)
Zero-Knowledge (ZK)
HRC_ENABLE_ZK_PROOFS(mặc định:false)HRC_ZK_MODE(mockhoặcproduction, mặc địnhmock)HRC_ZK_VERIFICATION_KEY,HRC_ZK_PROVING_KEY,HRC_ZK_CIRCUIT(đường dẫn)HRC_ZK_REQUIRED_MAINCHAIN(mặc định:false)
Kubernetes (cách ly namespace Sub-Chain)
HRC_K8S_ENABLED(mặc định:false)HRC_K8S_NAMESPACE_PREFIX(mặc định:hrc-subchain-)HRC_K8S_CONFIG(đường dẫn kubeconfig, rỗng nếu in-cluster)-
Giới hạn/tài nguyên:
HRC_K8S_CPU_LIMIT(mặc định:1000m)HRC_K8S_MEMORY_LIMIT(mặc định:1Gi)HRC_K8S_CPU_REQUEST(mặc định:250m)HRC_K8S_MEMORY_REQUEST(mặc định:256Mi)
Proof Aggregation
HRC_PROOF_AGGREGATION(mặc định:true)HRC_PROOF_BATCH_SIZE(mặc định:10)HRC_PROOF_BATCH_TIMEOUT(mặc định:30.0giây)HRC_PROOF_COMPRESSION(mặc định:true)
Sub-chain Rebalancing
HRC_REBALANCE_ENABLED(mặc định:true)HRC_REBALANCE_THRESHOLD_EPS(mặc định:1000events/sec)HRC_REBALANCE_CHECK_INTERVAL(mặc định:60.0giây)HRC_REBALANCE_MIN_EVENTS(mặc định:5000events trước khi split)HRC_REBALANCE_COOLDOWN(mặc định:300.0giây = 5 phút)
Đồng bộ trạng thái Cross-level
HRC_CROSS_LEVEL_SYNC(mặc định:true)HRC_CROSS_LEVEL_BATCH(mặc định:100)HRC_CROSS_LEVEL_TIMEOUT(mặc định:30.0giây)
Integration
ERP_INTEGRATION_ENABLED(True)SUPPORTED_ERP_SYSTEMS(danh sách:sap,oracle,microsoft_dynamics)
Logging
LOG_LEVEL(mặc định:INFOở dev,DEBUGở test,WARNINGở production)LOG_FORMAT(chuỗi định dạng Python logging tiêu chuẩn).HRC_LOG_FORMAT:text(mặc định) hoặcjson(cho hệ thống log tập trung như ELK/Loki).HRC_LOG_SQL_DETAIL(mặc định:trueở dev,falseở production)
CLI
CLI_CONFIG_FILE(mặc định:chains.json)CLI_LOG_LEVEL(mặc định:INFO)
Ví dụ .env (phát triển)
HRC_ENV=dev
HRC_API_HOST=0.0.0.0
HRC_API_PORT=2661
HRC_CONSENSUS_TYPE=proof_of_authority
HRC_AUTH_ENABLED=false
HRC_CORS_ALLOW_ALL=true
DATABASE_URL=sqlite:///hierachain.db
LOG_LEVEL=DEBUG
Gợi ý cấu hình production (tối thiểu)
HRC_ENV=product
HRC_API_HOST=0.0.0.0
HRC_AUTH_ENABLED=true
HRC_CORS_ALLOW_ALL=false
HRC_CORS_ORIGINS=https://portal.example.com
HRC_RATE_LIMIT=true
DATABASE_URL=postgresql+psycopg://user:pass@db:5432/hierachain
DEFAULT_STORAGE_BACKEND=redis
REDIS_HOST=redis
REDIS_PORT=6379
HRC_IPFS_ENABLED=true
HRC_IPFS_HOST=/ip4/ipfs/tcp/5001
HRC_IPFS_ENCRYPTION_KEY=your_32_byte_hex_key_here