Cấu hình hệ thống
Mục đích
Trang này liệt kê các thiết lập chính của HieraChain, giá trị mặc định và cách override. Mọi giá trị đều định nghĩa trong hierachain/config/settings.py và đọc từ biến môi trường hoặc hằng số.
Phạm vi
- Áp dụng cho API, CLI và các thành phần Sub-Chain/Main Chain chạy trong cùng tiến trình Python.
- Không bao gồm phần triển khai hạ tầng như Kubernetes manifest hay reverse proxy. Chỉ bao gồm biến mà HieraChain đọc 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
Môi trường chạy
HRC_ENVchọn lớp cấu hình. Giá trị làdev(mặc định),testhoặcproduct.
API
HRC_API_HOST(mặc định:localhostở dev,127.0.0.1ở production)HRC_API_PORT(mặc định:2661)API_VERSION(hằng số:ledgernhư định nghĩa tronghierachain/config/settings.py:189, không phảiadmin)
Đồng thuận và blockchain
HRC_CONSENSUS_TYPE/HRC_MAINCHAIN_CONSENSUS(alias, mặc định:proof_of_authority; hỗ trợ:proof_of_authority,proof_of_federation)CONSENSUS_FEDERATION_CONFIG: cấu hình federation (min_validators: 3, block_interval: 5.0). Đây là thuộc tính Settings, không phải biến môi trường.VALIDATOR_TIMEOUT(mặc định:30giây). Thuộc tính Settings.BFT_ENABLED(mặc định:True),BFT_FAULT_TOLERANCE(mặc định:1),BFT_NODE_COUNT(mặc định:4). Là thuộc tính Settings (không có biến môi trườngHRC_BFT_ENABLED).- Giới hạn block:
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 identity của validator (mặc định:validator_key.json)
Lưu trữ và cache
HRC_STORAGE_BACKEND/DATABASE_URL/HRC_DATABASE_URL(tự phát hiệnpostgrestừ URL; mặc định:sqlitedev,memorytest,redisprod; giá trị:sqlite,postgres,redis,memory,parquet_only)WORLD_STATE_CACHE_SIZE(mặc định:1000)- Cache 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)- Chính sách cache:
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 hoặc tắt IPFS cho dữ liệu lớn.HRC_IPFS_HOST(mặc định:/ip4/127.0.0.1/tcp/5001). Địa chỉ daemon IPFS.HRC_IPFS_AUTO_PIN(mặc định:true). Pin dữ liệu sau khi upload để không bị garbage collect.HRC_IPFS_TIMEOUT(mặc định:120giây). Thời gian chờ tối đa cho thao tác IPFS.HRC_IPFS_ENCRYPTION_KEY: khóa AES-256 (32-byte hex). Mọi node trong cùng channel hoặc organization phải dùng cùng một giá trị.
Xử lý song song và tài nguyên
PARALLEL_PROCESSING_ENABLED(True),MAX_WORKERS(Nonenghĩa là tự động 50% số core CPU),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 và 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) - Bảo vệ brute-force:
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 và organization:
IDENTITY_MANAGER_ENABLED(True),REQUIRE_ORGANIZATION_VALIDATION(True),MSP_ENABLED(True)
Bảo mật mạng P2P
HRC_P2P_TRUST_POLICY(mặc định:openở dev,strictở production; giá trị:open|strict)HRC_P2P_PEER_ALLOWLIST(danh sách peer ID 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(danh sách CSV domain; production cần giá trị cụ thể)CORS_ALLOW_METHODS(danh sách method cho phép)CORS_ALLOW_HEADERS(danh sách header cho phép)
HTTPS và 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 hoặc cluster).
Monitoring và metrics
HRC_METRICS_ENABLED(mặc định:false). Bật endpoint/metricscho Prometheus.HRC_TRUSTED_PROXIES(mặc định:127.0.0.1). IP của reverse proxy tin cậy (cho HTTP/2, HTTP/3).
Đa tổ chức
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 file)HRC_ZK_REQUIRED_MAINCHAIN(mặc định:false)
Kubernetes (cô lập namespace cho 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 chạy 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)
Cân bằng lại Sub-Chain
HRC_REBALANCE_ENABLED(mặc định:true)HRC_REBALANCE_THRESHOLD_EPS(mặc định:1000events/giây)HRC_REBALANCE_CHECK_INTERVAL(mặc định:60.0giây)HRC_REBALANCE_MIN_EVENTS(mặc định:5000events trước khi tách)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 logging Python chuẩn).HRC_LOG_FORMAT:text(mặc định) hoặcjson(cho 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 (development)
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
Cấu hình production khuyến nghị (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