Changelog
Unreleased
Breaking Changes (60)
-
2026-10-18
- API (Phản hồi Secure Event Ở trạng thái Queued):
add_secure_event(hierachain/api/admin/endpoints.py) đóng dấuevent/timestamp, giữ nguyên nội dung đã ký trongevent_data["signature_content"]trước khi ghi journal, trảSecureEventResponse(status="queued")với ID event từ ordering trongevent_hashvà thời gian phản hồi trongtimestamp, đồng thời chuyểnOrderingBackpressureErrorthành HTTP 503 ({message, event_id, journaled}) vàValueErrorthành 422;SecureEventResponse(hierachain/api/admin/schemas.py) nay mô tảstatuslàqueuedvới cam kết block bất đồng bộ — response không còn báo"committed", nên client đang chờ trạng thái committed phải coi phản hồi là queued và chờ block commit.
- API (Phản hồi Secure Event Ở trạng thái Queued):
-
2026-10-15
- Packaging (Ngừng Hỗ Trợ Python 3.10):
requires-pythontrongpyproject.tomltăng từ>=3.10lên>=3.11và bỏ classifier3.10; Rufftarget-versionchuyển sangpy311, Black bỏpy310, Mypypython_versionchuyển sang3.11, ma trận tương thích CI trong.github/workflows/test.ymlchỉ còn3.11–3.14, vàuv.lockđược tạo lại — môi trường còn ở Python 3.10 phải nâng cấp lên 3.11+ trước khi cài checkout này.
- Packaging (Ngừng Hỗ Trợ Python 3.10):
-
2026-10-06
- Config & Core (Bỏ Metadata Cache Không dùng): Bỏ
Settings.ADVANCED_CACHING_ENABLED,BLOCK_CACHE_SIZE,EVENT_CACHE_SIZE,ENTITY_CACHE_SIZE,BLOCK_CACHE_POLICY,EVENT_CACHE_POLICY,ENTITY_CACHE_POLICY,ENTITY_TTLvàhierachain.core.cache.DEFAULT_CACHE_CONFIG. Import/truy cập trực tiếp cần chuyển sang cấu hình instance cache hoặc service thực tế; các tên này không có nơi đọc trong runtime.AdvancedCache, cache củaKeyManagervàblock_cache_sizecủa Ordering giữ nguyên hành vi. Kiểm tra số node BFT nay nhận trực tiếp ID node, không tạo lớp bọc; kiểm tra quorum không đổi. - Giảm thiểu Lỗi (Log Khuyến nghị): Sự kiện log tài nguyên đổi thành
consensus_capacity_recommendation(cả payload và wrapper) vàresource_capacity_recommendation; cần cập nhật bộ lọc choauto_scaling_triggered,consensus_scalingvàresource_scaling_triggered. Bỏ sự kiện giảkey_rotation_scheduledvà deadlinenext_rotation. Phương thức public, cấu hình legacy, đường dẫn Parquet, kiểm tra quorum BFT và hành vi AES-256-GCM dùng khóa lưu giữ giữ nguyên; cấp phát và xoay khóa thuộc ứng dụng host. - Đồng thuận (Hợp nhất Ordering Processor): Bỏ
OrderingExecutor(hierachain/consensus/ordering/processor.py) và gộpprocess_batch()/process_single_event()vàoOrderingProcessor;__init__nhậnOrderingServicecó kiểu và đọcevent_pool/pending_events/metrics/certifier/block_builder/storage_handler/should_stop/configtrực tiếp từservicethay vì cache bản sao thuộc tính, kèm annotation-> Nonecho các phương thức vòng đời. Import trực tiếpOrderingExecutorvà truy cậpprocessor.event_pool/processor.should_stop/processor.executor(cùng các thuộc tính cache tương tự) cần chuyển sangprocessor.service.*hoặcprocess_batch/process_single_eventtrên processor; luồng certification/batch/replay (process_replayed_event()vớiallow_stale_timestamp) giữ nguyên.
- Config & Core (Bỏ Metadata Cache Không dùng): Bỏ
-
2026-10-05
- Đồng thuận & Config (PoA Interval Opt-in, Bỏ Delay Ngầm):
ProofOfAuthority.__init__(hierachain/consensus/proof_of_authority.py) đổi mặc địnhblock_intervaltừ10.0sang0.0(None=0.0), từ chối giá trị không hữu hạn/âm bằngValueError, và_check_block_timing()chỉ ép spacing đã cấu hình tường minh nhưng vẫn chặn timestamp giảm dần;Settings.BLOCK_INTERVAL(hierachain/config/settings.py) đổi mặc địnhHRC_BLOCK_INTERVALtừ"10.0"sang"0.0"— trước đây ép delay spacing 10s nếu không override. - Channel (Ledger Stream Append-only Bền):
ChannelLedger(hierachain/hierarchical/channel/ledger.py) thay callback_persistbằngbind_storage()bắt buộcappend_channel_record/load_channel_records, append bản ghievent/blockcó kiểu kèm chặnexpected_sequencevàrevisionregistry, thêmrefresh()/_replay_record()với validate block theo trusted-key chỉ rollback các bản ghi mới áp dụng, và dùng chung_validate_block()/_validate_pending_event()giữarestore()và replay;Channel(hierachain/hierarchical/channel/channel.py) refresh ledger trong_registry_operation, ghi stat qua_record_event_statistics()bỏ qua event thiếusubmitter_org, và bỏ rollback thủ công trongadd_event()/finalize_block()— trước đây persist qua callback mờ với rollback toàn trạng thái. - Hierarchy (Tách Recovery/Registry & Seed Ledger Có Version):
HierarchyManager(hierachain/hierarchical/hierarchy_manager/base.py) ủy quyền replay main-chain/khôi phục sub-chain chohierarchy_manager/recovery.pymới và persist/restore/apply snapshot chohierarchy_manager/registry.pymới, ngừng nhúng snapshot channel-ledger trong state registry, persist ledger channel nguyên tử cùngrevisionregistry qua seed_channel_ledger_versionghi bằngappend_channel_record/load_channel_records(ledger đã bind khởi động lại từ sequence1), validate toàn bộ snapshot trước khi mutate object coordinator, và migrate snapshot legacy tại chỗ với retry 3 lần — trước đây lưu snapshot nguyên khối kèm dữ liệu ledger nhúng. - Database (Bảng Ledger Channel & Ghi Registry+Ledger Nguyên tử): thêm mixin
ChannelLedgerSQLStoragecùngcreate_channel_ledger_tables()(hierachain/adapters/database/channel_ledger_sql.py) giúpSQLBase(SQLite/PostgreSQL) cóappend_channel_record/load_channel_recordsvới chặn revision registry và sequence ledger (bảngchannel_ledger_heads/channel_ledger_recordstạo trongpostgres_schema.py/sqlite_schema.py);save_hierarchy_registry()nhận thêmchannel_ledgersvà commit registry kèm seed ledger trong một transaction (chuyển commit ra khỏi_execute_save_hierarchy_registry, override placeholder/lock/BEGIN IMMEDIATEcho Postgres);RedisStorageAdapter(hierachain/adapters/database/redis_adapter.py) thêm seed/append có điều kiện/đọc suffix ledger qua WATCH/MULTI và sửa xử lý key trongload_hierarchy_registry— trước đây chưa có lưu trữ ledger channel và commit registry đơn lẻ.
- Đồng thuận & Config (PoA Interval Opt-in, Bỏ Delay Ngầm):
-
2026-10-04
- Serialization (JSON Chuẩn stdlib, Bỏ orjson): thêm
hierachain/serialization.py(dumps_json/loads_json/dumps_canonical_json) thayorjsontrên ~40 module (hierachain/adapters/database/base/sql_adapter.py,hierachain/adapters/database/postgres_adapter.py,hierachain/adapters/database/redis_adapter.py,hierachain/core/block.py,hierachain/core/blockchain.py,hierachain/core/merkle_tree.py,hierachain/network/zmq_transport.py,hierachain/network/message_cryptographic.py,hierachain/security/*,hierachain/api/**/*,hierachain/sdk/client.py,hierachain/sdk/async_client.py,hierachain/consensus/ordering/utils.py,hierachain/error_mitigation/*,hierachain/monitoring/*,hierachain/risk_management/types.py,hierachain/config/*,hierachain/cli/key.py) với encoding compact(",", ":"),allow_nan=False, giữ nguyên integer và từ chốiNaN/Infinity;RedisEventManagernay raiseRedisStorageErrorkhi bản ghi event sai/thiếu thay vì trả[], và_execute_delete_chaincủa SQLite nay xóa cả dòngproofskèmevents/blocks/chains— trước đây serialize quaorjson, cho qua float không hữu hạn, bỏ qua lặng lẽ bản ghi Redis hỏng và để sót proofs. - Core (Cache MutableMapping & Ép Kiểu Key):
AdvancedCache(hierachain/core/cache.py) nay implementcollections.abc.MutableMapping[str, Any]thay vì kế thừadict, bỏkeys() -> list[str]để dùng__iter__, ép mọi key quastr(key)trongget/set/delete/contains/__getitem__, phân biệt giá trịNoneđã lưu với miss bằng sentinel trong__getitem__, và chỉ loại bỏ khievict_key is not None— trước đây hành xử nhưdictkhông ép key, nhầm lẫn giá trịNonevới miss và bỏ qua key loại bỏ falsy. - Hierarchy (Ledger Channel Bền & Rebuild Registration Có Ký):
Channel.__init__(hierachain/hierarchical/channel/channel.py) nhận thêmnode_identity/trusted_public_keysvà dựngChannelLedger(node_identity, trusted_public_keys, channel_id)có ký;ChannelLedger(hierachain/hierarchical/channel/ledger.py) thêmsnapshot()/restore()kèm validate đầy đủ chữ ký/thứ tự/channel_id,threading.RLock, persist fail-closed_save()với rollback khiadd_event/finalize_block, cô lậpdeepcopykèm đóng dấuchannel_id/timestamp, cùngChannel.restore_statistics();HierarchyManager(hierachain/hierarchical/hierarchy_manager/base.py) lấytransaction_managerlười (raiseRuntimeErrorkhi đã đóng), thêmclose(), và rebuildregistered_sub_chains/sub_chain_metadata/authorities từ eventsub_chain_registrationMainChain đã ký với kiểm tra timestamp hữu hạn, shape metadata và xung đột domain — trước đây chấp nhận ledger không ký/không kiểm tra và append trùng registration mỗi lần restart. - Đồng thuận (Digest Chuẩn & Pipeline Quorum Chặt):
hash_request(hierachain/consensus/bft/types.py,hierachain/consensus/bft/helpers.py) dùngdumps_canonical_jsonvới_request_digest_is_valid()mới;BFTConsensus/BFTConsensusEngine(hierachain/consensus/bft/consensus.py,hierachain/consensus/bft/engine.py)deepcopyoperation/message, chặn đề xuất mới khipending_apply_eventscòn tồn đọng, từ chối trùng sequencePRE_PREPARE, ghi votePREPAREcục bộ trước khi broadcast quarecord_local_prepare_vote(), ép commit đúng thứ tự (seq == committed_sequence + 1, đệm future, drain sau phục hồi), và persist/apply qua_build_consensus_eventkèm retry;OrderingService(hierachain/consensus/ordering/service.py) thêm sinh ID ổn định cho kiểm tra cross-tier — trước đây bămstr(operation), cho phép đề xuất chồng lấn/commit lệch thứ tự và mutate message dùng chung. - Domain & Sync (Projection Giao dịch & Chữ ký Lockdown Chuẩn):
BaseChain(hierachain/domains/chains/base_chain.py) tuần tự hóaregister_entity/handler operation dưới lock, chặn khi_domain_projection_healthysai, persistinitial_data_json(bytes chuẩn) chorebuild_domain_state()khi restart với dedup theoevent_idrồi nội dung vàdomain_projection_errors, phân biệt handler mặc định vs custom, cô lập payload quadeepcopy/snapshot cloning trongCrossChainValidator(hierachain/domains/utils/cross_chain_validator.py);DomainChain/TxManager(hierachain/domains/chains/domain_chain.py,hierachain/domains/chains/tx_manager.py) replay projection từ log đã chấp nhận;CrossLevelSyncManager(hierachain/cluster/cross_level_sync.py) thêmRLockkèm context batch_operationvới theo dõi operation đang chạy, cònLockdownMessageGuard/lockdown_types.pygiới hạn admission với replay tracking khi chữ ký chuyển sang helper JSON chặt — trước đây mutate state dùng chung không lock, mất dữ liệu khởi tạo khi rebuild và ký quaorjsonnên chữ ký cũ không còn hợp lệ. - API (Siết Auth, Phân quyền & Stub 501): helper JSON chặt thay
orjsontronghierachain/api/*(hierachain/api/ledger/blocks.py,hierachain/api/ledger/chains.py,hierachain/api/ledger/events.py,hierachain/api/ledger/schemas.py,hierachain/api/graphql/resolvers.py,hierachain/api/graphql/types.py,hierachain/api/storage/*,hierachain/api/websocket/*);graphql_handler.pythêm thực thi async kèm kiểm tra quyền và auth theo context,websocket/endpoints.pyép auth subscription,business/contracts.py/business/private_data.pytrả HTTP 501 cho contract/private-data chưa triển khai, endpoint ledger validate tham số query chặt hơn, vàdepds.py/server.pythêm helper đóng/vòng đời hierarchy-manager — trước đây cho phép GraphQL/WS không auth, stub lặng lẽ endpoint chưa xong và chấp nhận query param lỏng lẻo. - CLI & Config (Config Node Thống nhất & Bỏ Master-Key):
load_chains_from_fileđược thay bằngload_node_config(ctx, config)(hierachain/cli/store.py,hierachain/cli/__init__.py) hỗ trợ YAML/JSON, mặc địnhsettings.CLI_CONFIG_FILEđổi từchains.jsonsangdata/config.yaml, vàcreate/list_chains/add_event/show_events/init_node(hierachain/cli/chain.py,hierachain/cli/event.py,hierachain/cli/node.py) validate chặt hơn kèmget_hierarchy_manager()bền;Settings(hierachain/config/settings.py) xóaMASTER_KEY_SOURCE/MASTER_KEY_FILE(HRC_MASTER_KEY_SOURCE/HRC_MASTER_KEY_FILEnay raiseValueError), nạp dotenv quaHRC_ENV_FILEngay khi import, tập trung parse trong_first_nonblank_environment_value()/_environment_csv()(HRC_NODE_ID/NODE_ID,HRC_P2P_PORT/NODE_PORT,HRC_PEERS/PEERS,HRC_REDIS_HOST/REDIS_HOST,HRC_REDIS_PORT/REDIS_PORT), và bỏmaster_keykhỏi diagnostics — trước đây nhận file chain legacy, mặc địnhchains.jsonvà lặng lẽ bỏ qua nguồn key không hỗ trợ. - Journal, Network, Audit & ERP (Fail-closed Chặt):
TransactionJournal(hierachain/error_mitigation/journal.py) duyệt thư mục qua descriptor ghim từ chối symlink (O_NOFOLLOW,0600/0700), giữ độc quyền ghi bằng lockfcntlPOSIX, serialize qua helper chặt, mở rộng envelope journal vớifields/detailsvà rollback khi ghi lỗi;DataValidator(hierachain/error_mitigation/data_validator.py) siết tương thích schema;SecureConnectionManager(hierachain/network/secure_connection.py) thêm chống replaytimestamp/noncevới kiểm tra certificate/org/signing-key chặt và từ chối handshake ack cũ/không mời;ArrowAuditStorage(hierachain/risk_management/audit_logger.py,hierachain/risk_management/__init__.py) thêmAuditReadResult/AuditIntegrityStatus, chuẩn hóa event lưu trữ và raise thay vì fail lặng với hỗ trợ legacy tốt hơn; ERP (hierachain/integration/enterprise.py,hierachain/integration/erp/base.py,hierachain/integration/erp/change_detector.py,hierachain/integration/erp/mapping.py) cô lập profile/metadata bằngdeepcopy, validateconfig/key_fields/detect_changesvà ép simulation mode cho fixture tổng hợp — trước đây cho phép path symlink, writer đồng thời, handshake cũ, drop audit lặng lẽ và mutate profile ERP dùng chung.
- Serialization (JSON Chuẩn stdlib, Bỏ orjson): thêm
-
2026-10-03
- Database (Chặn Ghi Registry Theo Revision):
SQLBase.save_hierarchy_registry()/RedisStorageAdapter.save_hierarchy_registry()(hierachain/adapters/database/base/sql_adapter.py,hierachain/adapters/database/postgres_adapter.py,hierachain/adapters/database/redis_adapter.py) nay bắt buộcstate["_revision"]làstrmới khácexpected_revision(SQL INSERT/UPDATE có điều kiện theo_revisionđã lưu, Redis so sánh qua WATCH/MULTI, Postgres dùng placeholder%s) và từ chối revision thiếu/không đổi — trước đây chấp nhận mọi snapshot và ghi đè vô điều kiện. - Hierarchy (Đồng thời Lạc quan & Siết Quyền Admin):
_persist_hierarchy_registry()(hierachain/hierarchical/hierarchy_manager/base.py) đóng dấuuuid4_revisionvà từ chối bản ghi cũ quaexpected_revision,get_organization()/get_channel()/_restore_hierarchy_registry()refresh từ state đã persist (raise khi snapshot thiếu/không hợp lệ), cùng_apply_hierarchy_registry()/_mutate_registry()retry kèm rollback;_build_channel_orgs()(hierachain/hierarchical/hierarchy_manager/organization.py) nay nhậnregistereddict thay vì manager, vàregister_organization_member(..., actor_user_id)raisePermissionErrorqua_is_organization_admin()dùng chung khi không phải admin — trước đây ghi đè state mới hơn và cho phép mọi caller. - Channel (Refresh Trực tiếp & Cổng ACTIVE):
Channel(hierachain/hierarchical/channel/channel.py) tuần tự hóa thao tác registry qua RLock_registry_operationkèm_refresh_registry()trực tiếp trước mỗi lệnh gọi (thêm/xóa org, tạo private-collection, truy vấn/thông tin event, cập nhật policy, suspend/resume), vàsubmit_event()trảFalsekhistatus != ACTIVEtrước khi phân giải vai trò — trước đây phục vụ membership cũ và nhận event trên channel không active. - Ordering (Backpressure, Validate Timeout & Phát hiện Gap):
OrderingService(hierachain/consensus/ordering/service.py) validateenqueue_timeout(0 < timeout <= 60, mặc định1.0) và raiseValueErrornếu ngoài biên, giữ chỗ hàng đợi trước khi ghi journal qua_enqueue_event()vớiOrderingBackpressureError(event_id, journaled)(hierachain/consensus/ordering/types.py) khi đầy/không active, cònOrderingStorageHandler._load_from_db()(hierachain/consensus/ordering/storage.py) tải quaget_blocks_from_index()và raiseValueErrorkhi gap index — trước đây queue vô điều kiện và dừng lặng lẽ ở block thiếu đầu tiên. - API (Backpressure 503 & Admin 403):
add_event(hierachain/api/ledger/events.py) chuyểnOrderingBackpressureErrorthành HTTP 503 kèm{message, event_id, journaled}để client retry;register_organization_member(hierachain/api/business/organizations.py) dùng chung_is_organization_admin()và chuyểnPermissionErrorcủa manager thành 403 đồng thời chuyển tiếpactor_user_id— trước đây event nghẽn hiện lỗi chung và kiểm tra admin viết inline trùng lặp. - Core (Snapshot Event Block Độc lập):
Block.to_event_list()(hierachain/core/block.py) chuyển đổi bảng Arrow đã verify ở mỗi lần gọi để trả snapshot độc lập, loại bỏ memoization_cached_eventsvà entry__slots__(kèm dọn_block_from_dicttronghierachain/consensus/ordering/storage.py) — trước đây trả về list cache dùng chung có thể lệch với events gốc.
- Database (Chặn Ghi Registry Theo Revision):
-
2026-10-01
- Giảm thiểu Lỗi (Khóa Lưu giữ & Validator Chặt):
EncryptionValidator(hierachain/error_mitigation/encryption_validator.py) nay resolve khóa 32-byte do caller quản lý theokey_idquakey_resolver(không còn fallbackos.urandomtạm thời) với AES-256-GCM gắn AAD (algorithm/key_id/timestamp), bổ sungdecrypt_data()kèm kiểm tra bytes/độ dài tag-IV/thuật toán/timestamp hữu hạn, và che lỗi nội bộ sauSecurityErrorchung;_run_single_custom_validator(hierachain/error_mitigation/data_validator.py) ép kiểu trả về(bool, str)và chuyển lỗi/ngoại lệ của validator từ warning sangadd_errorkèm tên field — các validation trước đây cho qua nay sẽ fail. - ERP (Transformer Fail-closed):
EventTranslator(hierachain/integration/erp/mapping.py) dùng chungMappingEnginecủa caller (hierachain/integration/erp/base.py) để áp transformer đã đăng ký nhất quán, và têntransformerkhông tồn tại nay raiseMappingErrorthay vì lặng lẽ trả về giá trị gốc. - Cluster (Payload Chữ ký Quarantine):
QuarantineReport.compute_signature(hierachain/cluster/lockdown_types.py) ký toàn bộ payloadorjsonsort-key thay vìnode_id:timestamp:last_block_index,from_dict()kiểm tramsg_type/lockdown_typevà từ chối timestamp không hữu hạn trước khi ký, cònverify_signature()trảFalsekhi thiếu/chữ ký sai thay vì raise — các chữ ký đã phát hành trước đây không còn verify được. - Config (Field Secret JSON AWS):
_get_from_aws/SecretManager._get_aws(hierachain/config/secret_manager.py) parseSecretStringthành object JSON quaorjsonvà trả về field chuỗi tên theokey, bắt buộcHRC_AWS_SECRET_NAMElàmSecretIdthay vì fallback sangkey— secret không phải JSON, field không phải chuỗi và thiếu tên secret nay đều trảNone.
- Giảm thiểu Lỗi (Khóa Lưu giữ & Validator Chặt):
-
2026-09-30
- Domain (Validate Phân bổ Tài nguyên Chặt):
BaseChain.add_domain_event(hierachain/domains/chains/base_chain.py) nay từ chối event của entity chưa đăng ký và chuyển đổi tài nguyên không hợp lệ qua_can_apply_resource_allocation()(kiểu event phải bằngresource_{allocation_type}, kiểm tra thành viên choassigned/reserved/released/transferredkèm kiểm tra tồn tạitarget_entity_id);ResourceAllocationEvent.is_valid(hierachain/domains/events/custom_events.py) bắt buộctarget_entity_idkhác rỗng và khácentity_idvới kiểutransferred— các event trước đây được chấp nhận nay trảFalse. - Validator (Validate Field Proof Chặt):
ProofValidator._validate_single_proof(hierachain/domains/utils/cross_chain_validator.py) bắt buộcsub_chain_name/proof_hashlàstrkhác rỗng vàtimestamplàint/floatdương (không phảibool), ghi nhậnmissing_proof_fieldskèm tănginconsistent_proofsthay vì lặng lẽ bỏ qua proof thiếu field.
- Domain (Validate Phân bổ Tài nguyên Chặt):
-
2026-09-29
- Core & Hierarchical (Validate Event Nghiêm ngặt):
Blockchain.add_event(hierachain/core/blockchain.py) vàSubChain.add_event(hierachain/hierarchical/sub_chain/base.py) nay épvalidate_event_structure()(kèm kiểm tra kiểudicttrongSubChain) và raiseValueErrorkhi cấu trúc không hợp lệ;add_eventcủa ledger (hierachain/api/ledger/events.py) chuyển thành HTTP 422 thay vì chấp nhận event sai định dạng. - API (Rate Limiting Redis Fail-closed):
RedisRateLimiterchuyển sang (hierachain/adapters/database/redis_rate_limiter.py) vớicheck()/RateLimiterBackendError;add_rate_limit(hierachain/api/middleware.py) chạy kiểm tra Redis quaasyncio.to_threadvà trả 503 khi backend không khả dụng thay vì fail-open cho qua như trước, đồng thời tái dùng quotaremainingđã kiểm tra cho header. - API (GraphQL Giới hạn Kết quả): resolver (
hierachain/api/graphql/resolvers.py) chặn kết quả qua_bounded_limit()/MAX_QUERY_RESULTS=100vớilimit=Nonenghĩa là 100, cắt látfrom_index/to_index/start+limitcó kẹp biên, và thoát sớm khilimit=0— limit yêu cầu lớn hơn nay chỉ trả tối đa 100 bản ghi. - Network (Kiểm tra Replay & Nonce Chặt):
_is_valid_replay(hierachain/network/zmq_transport.py) bắt buộcnoncelàstrdài1..128ký tự, timestamp số hữu hạn trongreplay_tolerance, và từ chối khi replay buffer1000entry vẫn đầy sau khi tỉa hết hạn thay vì âm thầm loại bỏ.
- Core & Hierarchical (Validate Event Nghiêm ngặt):
-
2026-09-28
- Core & Bảo mật (Chữ ký Block Tin cậy Bắt buộc):
Blockchain.__init__/add_block/is_valid_new_block/is_chain_valid(hierachain/core/blockchain.py) nay resolve signer quarequire_block_identity()và xác minh theotrusted_public_keysvới_sign_block()/sign_block();BlockVerifier(hierachain/security/verify/block_verifier.py) bắt buộcstrict_mode=True, từ chối tuyệt đối block thiếu/chữ ký sai định dạng và chỉ xác minh với trusted key do caller cung cấp;load_trusted_block_keys()/require_block_identity()(hierachain/security/identity_loader.py) bắt buộcHRC_BLOCK_TRUSTED_KEYS_FILE(mớiSettings.BLOCK_TRUSTED_KEYS_FILE) dạng map Ed25519 hex kèm kiểm tra khớp key của node;initialize_default_keys()(hierachain/security/key_manager.py) chặn tạo key mặc định khiSettings().env == "production". - Đồng thuận & Ordering (Block Ký, Quorum & ZK): bổ sung
creator_idkhi dựng block với kiểm tra vị trí finalization trongverify_quorum_signatures(hierachain/consensus/base_consensus.py,hierachain/consensus/proof_of_federation.py); xác minh ZK proof trong quá trình verify, từ chối proof thiếu/không hợp lệ khi bắt buộc và kiểm tra cấu trúc/thứ tự/hashconsensus_finalization;BlockManagerký khi tạo block, storage từ chối block thiếu/thiếu tin cậy vớireconcile_journal_event()chống trùng khi replay (hierachain/consensus/ordering/block_manager.py,hierachain/consensus/ordering/service.py,hierachain/consensus/ordering/storage.py). - Hierarchical Main/Sub-Chain (Proof Bền & Ký Tin cậy): thay đếm proof in-memory bằng lưu trữ bền với
_refresh_durable_proofs()/proof_sequence/_durable_block_events(hierachain/hierarchical/main_chain/base.py,hierachain/hierarchical/main_chain/proofs.py,hierachain/hierarchical/main_chain/registry.py);SubChainbắt buộc persist proof bền, chặn nộp trùng, validate metadata ZK-proof chặt hơn và ký finalization bằng trusted key theo consensus type (hierachain/hierarchical/sub_chain/base.py,hierachain/hierarchical/sub_chain/block.py,hierachain/hierarchical/sub_chain/proof.py). - Hierarchical Registry (Hierarchy Bền & Validate Chặt):
_persist_hierarchy_registry()/_restore_hierarchy_registry()kèm locking (hierachain/hierarchical/hierarchy_manager/base.py); khôi phục hỗ trợ sub-chain placeholder với thay thế động; registry organization/channel siết kiểm tra member (hierachain/hierarchical/hierarchy_manager/organization.py,hierachain/hierarchical/hierarchy_manager/validation.py). - Channel (Chữ ký, Endorsement & Vai trò): finalization block xác minh chữ ký theo trusted key, đánh giá endorsement hỗ trợ tập org đủ điều kiện cấu hình được, cập nhật policy/org/status có rollback, và
submit_event/persist registry bắt buộc validate vai trò member (hierachain/hierarchical/channel/channel.py,hierachain/hierarchical/channel/ledger.py,hierachain/hierarchical/channel/policy.py,hierachain/hierarchical/channel/types.py). - Cluster (Đồng bộ Cross-level Không Copy): nộp proof không còn merge history hay copy block cross-chain (
hierachain/cluster/cross_level_sync.py); anchor persist qua_persist_proof_anchor()với xác minh bền dưới storage lock. - Audit (Schema & Đổi Hash):
AuditEventthêmaffected_entitieskèm migration SQLite, xử lý JSON cho field tùy chọn, vàcalculate_hash()trên toàn bộ dict sort-key (hierachain/risk_management/types.py,hierachain/risk_management/audit_logger.py) — digest đã lưu thay đổi; thêmPostgresAuditManifest(hierachain/adapters/database/audit_manifest.py) vớiverify_integrity()và validate persist chặt hơn. - Config (Env & Backend Nghiêm):
Settings.env(hierachain/config/settings.py) raiseValueErrorvớiHRC_ENV/ENVkhông hỗ trợ (chỉ aliasproduction/prod/product,dev,test),STORAGE_BACKENDallowlistmemory/redis/sqlite/postgres/postgresqlqua_configured_database_url()(DATABASE_URL/HRC_DATABASE_URL), thêmBLOCK_TRUSTED_KEYS_FILE, vàProductionSettings.AUTH_ENABLEDluônTruekèm bắt buộcHRC_AUTH_ENABLED=true;get_settings()chỉ route theoproduction/testđã chuẩn hóa. - API/CLI/Business (Auth Prod & HierarchyManager): lifespan server bắt buộc
require_block_identity()kèmDATABASE_URL/HRC_DATABASE_URLtường minh cho Postgres production, bắt buộcHRC_API_KEYS_FILEqua_load_production_key_manager()(key ≥32 ký tự, cópermissions, còn hiệu lực), thayENVbằngenv, siết CORS/logging theoproduction(hierachain/api/server.py,hierachain/api/graphql_handler.py); business channels/organizations chuyển khỏi_channels/_organizationsin-memory sangHierarchyManagervới validate chặt và schema vai trò member (hierachain/api/business/channels.py,hierachain/api/business/organizations.py,hierachain/api/business/schemas.py,hierachain/api/business/state.py); nộp proof ledger ủy quyền choHierarchyManager(hierachain/api/ledger/proofs.py); CLIsubmit_prooftừ chối nộp qua registry (bắt buộc API xác thực bền) vàverifyép validate chain theo trusted key (hierachain/cli/chain.py,hierachain/cli/verify.py).
- Core & Bảo mật (Chữ ký Block Tin cậy Bắt buộc):
-
2026-09-27
- Lưu trữ (Khóa mã hóa IPFS):
create_ipfs_client_from_env()(hierachain/api/storage/ipfs_client.py) nay bắt buộcHRC_IPFS_ENCRYPTION_KEYphải đúng 64 ký tự hex (32 byte) và raiseIPFSErrornếu thiếu/không hợp lệ — không còn tự sinh key tạm kèm warning, nên deployment thiếu key ổn định sẽ fail-fast ngay khi khởi động thay vì tạo payload không thể giải mã.
- Lưu trữ (Khóa mã hóa IPFS):
-
2026-09-26
- Config (Journal Sync): Loại bỏ
Settings.JOURNAL_FSYNC/HRC_JOURNAL_FSYNC(hierachain/config/settings.py);TransactionJournal(hierachain/error_mitigation/journal.py) bỏ hàng đợi/luồng ghi nền và luôn ghi đồng bộ kèmos.fsync. - Core (Merkle Payload): Hợp nhất serialize payload event thành
serialize_event_payload()(hierachain/core/merkle_tree.py) dùng chung chohierachain/core/block.py; Merkle leaves nay bao gồm trườngdata(trước đây bị loại), nên leaves/roots/hashes thay đổi với cùng event. - Database (Fail-hard Reads & Event Envelope):
SQLBase.get_block_by_index/get_latest_block/get_event_by_id(hierachain/adapters/database/base/sql_adapter.py) nay lan truyền lỗi database thay vì trảNone;PostgresAdapter._execute_save_block(hierachain/adapters/database/postgres_adapter.py) persist toàn bộ event envelope (orjson.dumps(event)) với fallbacksubmitted_by/sender_id, các hàm fetch giải mã qua_create_event_from_row/_decode_jsonbdùng chung. - Hierarchical (Storage Fail-fast):
HierarchyManager._create_storage()(hierachain/hierarchical/hierarchy_manager/base.py) không còn fallback về SQLite khi PostgreSQL đã cấu hình nhưng không khả dụng — nay raiseRuntimeError;__init__/add_sub_chainpersist metadata và khôi phục qualist_chains(), raise khi thất bại.
- Config (Journal Sync): Loại bỏ
-
2026-09-24
- Core (Parquet Logs):
write_parquet_log()hiện ghi các segment bất biến tối đa 1.024 bản ghi trong<path>.segments;read_parquet_log()đọc các segment và cả log một tệp legacy. Bên dùng đang đọc trực tiếp<path>cần chuyển sang helper này.
- Core (Parquet Logs):
-
2026-09-22
- Giảm thiểu Lỗi (Validators): Loại bỏ
APIValidator(kèm entry"api"trong factorycreate_validatorvà logic kiểm tra thuật ngữ cấm trên Arrow/legacy) khỏihierachain/error_mitigation/validator.pyvà các export của package (hierachain/error_mitigation/__init__.py); đồng thời chỉnh đường dẫn importConsensusValidatorsanghierachain/error_mitigation/consensus_validator.pytronghierachain/consensus/bft/helpers.py. - Giám sát (Monitoring): Loại bỏ singleton toàn cục
alert_managervà export khỏihierachain/monitoring/__init__.py(các lớpAlertManager/PerformanceMonitorvẫn khả dụng). - Config (Storage Backend): Đổi backend lưu trữ mặc định từ
sqlitesangpostgrestronghierachain/config/settings.py(DEFAULT_STORAGE_BACKEND,DATABASE_URLmặc định nay làpostgresql://hiera:hiera@localhost:5432/hierachain, hỗ trợHRC_DATABASE_URLvới xử lý tường minhsqlite://) vàhierachain/config/product_config_template.py(HRC_STORAGE_BACKEND=postgreskèmDATABASE_URL/HRC_DATABASE_URLtheo từng node);ProductionSettings.DEFAULT_STORAGE_BACKENDchuyển từredissangpostgres.
- Giảm thiểu Lỗi (Validators): Loại bỏ
-
2026-09-21
- Giám sát (Monitoring): Loại bỏ
PrometheusMetricsvà singletonmetricskhỏihierachain/monitoring/metrics.py(xóa file), loại bỏ các tiện ích thu thập số liệu Prometheus. - Quản trị Rủi ro (Risk Management): Loại bỏ
RotatingAuditStoragekhỏihierachain/risk_management/audit_logger.pyvà các export của package (hierachain/risk_management/__init__.py).
- Giám sát (Monitoring): Loại bỏ
-
2026-09-20
- Core (Cache): Loại bỏ
BlockchainCacheManager,CacheInvalidator,EntityEventFetchervàCachePerformanceTrackerkhỏihierachain/core/cache_manager.py(xóa file). - Giảm thiểu Rủi ro (Recovery & Rollback): Loại bỏ
RollbackManagervà các kiểu dữ liệu liên quan (RollbackType,RollbackStatus,StateSnapshot,RollbackOperation), các engine phục hồi (NetworkRecoveryEngine,ConsensusRecoveryEngine,BackupRecoveryEngine,AutoScaler), cùngRecoveryErrorkhỏihierachain/error_mitigation/. - Quản trị Rủi ro (Risk Management): Loại bỏ
RiskAnalyzer,MitigationManager,MitigationStrategiesvà các kiểu dữ liệu liên quan (RiskAssessment,RiskSeverity,RiskCategory,MitigationAction,MitigationResult,MitigationStatus) khỏihierachain/risk_management/, chỉ giữ lại các nguyên thủy ghi log kiểm toán. - Giám sát (Monitoring): Loại bỏ
PerformanceMetrics,MetricTypevàPerformanceSnapshotkhỏihierachain/monitoring/performance_metrics.py(xóa file). - Cluster: Loại bỏ
ClusterManager,ClusterLockdownManager,ClusterStatevà cơ chế điều phối lockdown theo quorum khỏihierachain/cluster/(xóacluster_manager.pyvàlockdown_protocol.py).
- Core (Cache): Loại bỏ
-
2026-09-19
- Hierarchical & Config: Loại bỏ các gói deprecated
k8s_namespace_manager,proof_aggregationvàrebalancerkhỏihierachain/hierarchical/(K8sNamespaceManager,ProofAggregator,SubChainRebalancer) cùng các cấu hình liên quan (K8S_*,PROOF_*,REBALANCE_*) tronghierachain/config/settings.py.
- Hierarchical & Config: Loại bỏ các gói deprecated
-
2026-09-18
- Cluster: Loại bỏ
StateSyncManager(hierachain/cluster/state_sync_manager.py) và các export liên quan khỏihierachain/cluster/__init__.py.
- Cluster: Loại bỏ
Improvements (59)
-
2026-10-24
- Hierarchy (Cấp quyền Tổ chức → SubChain Bền):
HierarchyManager(hierachain/hierarchical/hierarchy_manager/base.py) thayassign_organization_to_chain()no-op bằng mapchain_accessđược persist theo chain rồi tổ chức, ghi qua_mutate_registry()với mặc địnhread/writekhi bỏ trốngpermissionsvàValueErrorkhi danh sách rỗng, không phải list hoặc chứa giá trị lạ, đồng thời thêmrevoke_organization_from_chain(),get_chain_access()(trả bản sao grants,Nonevới chain chưa quản lý) vàcan_access_chain()đối chiếu membership, identity đã lưu và role của caller vớiread/write/proofstrong khi vẫn cho qua chain chưa quản lý; registry hierarchy (hierachain/hierarchical/hierarchy_manager/registry.py) persistchain_accessdưới cơ chế retry revision sẵn có và validate tên chain, tổ chức đã đăng ký cùng giá trị quyền khi restore, còn snapshot legacy thiếu field này được nạp ở trạng thái chưa quản lý — trước đây assignment luôn trảFalsevà không cấp quyền gì. - API (Kiểm soát Truy cập Theo Chain & Quản lý Cấp quyền): các dependency mới
require_chain_read/require_chain_write/require_chain_proof(hierachain/api/ledger/access.py) kết hợp kiểm tra resource của API key vớican_access_chain()và trả HTTP 403 khi bị từ chối, thay các guard thô cho blocks, thống kê/tạo chain, events, proofs và/api/admin/chains/{chain_name}/secure-events;list_chainsvà trace entity liên chain (hierachain/api/ledger/chains.py,hierachain/api/ledger/entities.py) bỏ qua SubChain không đọc được; resolver GraphQL (hierachain/api/graphql/resolvers.py) raisePermissionErrorkhi truy cập block, event, trạng thái và add-event đồng thời lọcallChains; endpoint mớiGET/PUT/DELETE /api/ledger/chains/{chain_name}/organizations(hierachain/api/ledger/chain_access.py) liệt kê, thay và thu hồi grant tổ chức sau quyềnchains:manage, trả 422 với danh sách quyền không hợp lệ và 404 khi thiếu chain/tổ chức/assignment; subscription và broadcast WebSocket (hierachain/api/websocket/endpoints.py,hierachain/api/websocket/manager.py,hierachain/api/websocket/registry.py) từ chối chain không có quyền ngay khi kết nối, đóng với mã1008, kiểm tra lại grant khi đổi subscription và trước mỗi lần gửi (kể cả stream wildcard và event-type), đồng thời giới hạnget_statstheo chain đọc được — trước đây API key có resource scope đọc, ghi hoặc stream mọi SubChain. Grants vẫn độc lập (writekhông bao hàmread) và chain chưa có assignment giữ hành vi scope thô như cũ.
- Hierarchy (Cấp quyền Tổ chức → SubChain Bền):
-
2026-10-22
- Phụ thuộc (Sàn PyArrow & aiohttp):
pyproject.tomlnângpyarrowtừ>=24.0.0lên>=25.0.0vàaiohttptừ>=3.14.3lên>=3.14.5,uv.lockđược tạo lại — môi trường ghim dưới các sàn này phải nâng cấp, và các sửa lỗi compute API bên dưới bám theo bề mặt PyArrow 25.
- Phụ thuộc (Sàn PyArrow & aiohttp):
-
2026-10-15
- Database & Ordering (Backend Ledger Redis Bền): thêm
RedisLedgerAdapter(hierachain/adapters/database/redis_ledger.py, export từhierachain/adapters/database/__init__.py) kế thừaRedisStorageAdaptervới ledger block có ký dạng append-only theo khóa SHA-256chain_name,save_block()nguyên tử WATCH/MULTI kèm validatecreator_id/signature/merkle_root, chặn sequence index cộng liên kếtprevious_hashvà cấm expire với retry idempotent cùng vị trí, các hàm đọcget_blocks_from_index()/get_block_by_index()/get_latest_block()/list_block_chain_names()kiểm tra sequence nghiêm và raiseRedisStorageErrorkhi lịch sử rỗng/hỏng/thiếu, truy vấn quét ledgerget_entity_events()/get_events_by_type()/get_event_by_id()(trạng tháiordered) vàget_chain_statistics(), các ghistore_chain()/save_hierarchy_registry()/append_channel_record()/store_proof()đều qua cổng bềnrequire_durable_storage()(appendonly=yes,appendfsync=always,no-appendfsync-on-rewrite=no,maxmemory-policy=noeviction,aof-load-truncated=no, AOF khỏe, vai trò primary) vàcleanup_old_data()từ chối cắt tỉa;OrderingStorageHandler(hierachain/consensus/ordering/storage.py) chọn adapter này khistorage_backend == "redis"(giữ nguyên lựa chọn PostgreSQL/SQLite),HierarchyManager._create_storage()(hierachain/hierarchical/hierarchy_manager/base.py) trả về adapter cho backendredisthay vì raise, vàSubChain(hierachain/hierarchical/sub_chain/base.py) chuyển tiếpstorage_backendvào cấu hình ordering — trước đây backendredisbị raiseRuntimeErrorở hierarchy manager và ordering bỏ qua lựa chọn Redis.
- Database & Ordering (Backend Ledger Redis Bền): thêm
-
2026-10-07
- Core (Đầu vào Merkle Dạng Sequence):
MerkleTree.__init__(hierachain/core/merkle_tree.py) nớidata_listtừlist[str | dict]sangcollections.abc.Sequence[str | dict]và thêm annotation-> None, chấp nhận tuple và các sequence chỉ đọc khác mà không cần copy — trước đây yêu cầulistcụ thể.
- Core (Đầu vào Merkle Dạng Sequence):
-
2026-10-06
- Giám sát (Lazy-load Submodule):
hierachain/monitoring/__init__.pyhoãn importalert_system/performance_monitorqua__getattr__PEP 562 để mỗi module chỉ tải khiAlertManager/PerformanceMonitorđược yêu cầu lần đầu;__all__và tên public giữ nguyên. Khởi tạo rule/notifier mặc định củaAlertManagerthành method với khớp rule gộp vàocheck_metric(), giữ luồng đánh giá một chỗ — trước đây cả hai submodule đều import eager khi nạp package. - Giảm thiểu Lỗi (Hợp nhất Kiểm tra Tài nguyên):
ResourceValidator(hierachain/error_mitigation/resource_validator.py) gộp_check_cpu_usage()/_check_memory_usage()/_check_disk_usage()thành một vòng lặp CPU/memory/disk duy nhất với chuỗi violation giống hệt và chỉ phát advisoryresource_capacity_recommendation(auto_scaleopt-in, trừ disk), bỏ importcastkhông dùng — trước đây là ba helper private trùng lặp.
- Giám sát (Lazy-load Submodule):
-
2026-10-05
- Core (Phân trang Event Giới hạn): thêm
select_event_page()(hierachain/core/event_query.py) phân trang theo cursor(block_index, event_index), lọc cột Arrow theo batch, dừng giải mã khi chạmlimit, và fallback sang list thường cho chain ngoài;Blockchain(hierachain/core/blockchain.py) ghi thêmevent_indextrong_index_block_eventsdùng chung một entry cache giữaentity_event_indexvà_event_query_type_indexmới, thêmget_event_page()chọn index entity/type hẹp nhất dưới lock với ủy quyền time-range/cursor, và reset index mới trong_rebuild_event_indexes(). - API (Phân trang Cursor GraphQL):
resolve_events(hierachain/api/graphql/resolvers.py) ủy quyền lọc choBlockchain.get_event_page/select_event_page(thay_filter_event*/_get_events_from_chain), thêm_decode_event_cursor()/_encode_event_cursor()với cursor base64url mờ có version, gắn chain, chứa(block_index, event_index)kèm validate kích thước/hình dạng/giá trị, và expose thêm tham sốafter(hierachain/api/graphql/schema.py) cùng fieldcursorcho mỗi event (hierachain/api/graphql/types.py). - Đồng thuận (Index ID Journal Tăng dần): thêm
JournalEventLookup(hierachain/consensus/ordering/journal_lookup.py) theo dõi tăng dần cam kết ID/channel/content-SHA256 dưới lock và từ chối bind ID xung đột bằngValueError;OrderingService(hierachain/consensus/ordering/service.py) tra index cho event ID lạ thay vì quét lại toàn bộ journal, chỉ phục hồi payload đầy đủ từ đĩa cho hit journal-only kèm validate từng occurrence. - Journal (Theo dõi File-state Đã Sync):
TransactionJournal(hierachain/error_mitigation/journal.py) thêm_file_write_state()(st_dev,st_ino,st_size,st_mtime_ns,st_ctime_ns) cùng_synced_file_statecập nhật sau mỗifsyncthành công trong append/rollback/flush, bỏfsyncthừa trongread_since()khi state không đổi, và fail-closed (ValueError) khi file active bị thay thế (lệch(st_dev, st_ino)) — trước đâyfsyncvô điều kiện mỗi lần đọc đuôi mà không phát hiện thay thế.
- Core (Phân trang Event Giới hạn): thêm
-
2026-10-04
- Parquet (Publish Snapshot & fsync Thư mục):
write_parquet_log()(hierachain/core/parquet_log.py) nay publish mỗi lần append thành snapshot Parquet hoàn chỉnh (pq.write_tablera file tạm,fsyncfile,os.replacenguyên tử,fsyncthư mục qua_sync_directory()), chỉ giữ segment active giới hạn trong_writers, niêm phong segment khi publish lỗi để append sau không ghi đè dữ liệu chưa chắc chắn, và serializedataquadumps_json;read_parquet_log()chụp snapshot nhất quán dưới lock; loại bỏ finalizeratexitvà stateParquetWriterthường trực. - Hierarchy (Coordinator Lười & Đóng Graceful):
HierarchyManager(hierachain/hierarchical/hierarchy_manager/base.py) hoãn tạoCrossChainTransactionManagertới lần dùng đầu (bỏ qua writer 2PC cho worker chỉ registry/channel nhưng vẫn phục hồi decision cũ dưới lease journal), bọc bootstrap/restore trongExitStack, và thêmclose()giải phóng storage, journal coordinator và orderer sub-chain mà không mở tài nguyên mới; nhánh proofSubChain(hierachain/hierarchical/sub_chain/proof.py,hierachain/hierarchical/main_chain/proofs.py) bổ sung lý do pending/lịch nộp chi tiết với cập nhật nguyên tử và rollback an toàn. - Đồng thuận (Drain Commit Có Thứ tự & ID Ổn định):
BFTConsensusEngine(hierachain/consensus/bft/engine.py) tách helperrecord_local_prepare_vote()/_record_message(), khử trùng vote commit qua_add_to_votes, và drain các quorum future đã đệm sau mỗi lần apply thành công;OrderingService(hierachain/consensus/ordering/service.py) retry khi apply chain thất bại và sinh ID event ổn định cho kiểm tra cross-tier. - Domain (Sức khỏe Projection & Rebuild):
BaseChain(hierachain/domains/chains/base_chain.py) exposedomain_projection_healthy/domain_projection_errorscùngrebuild_domain_state()replay block đã commit và pending events với projection handler xác định, đồng thời phân biệt handler mặc định vs custom qua_default_event_handler_methods. - Cluster (Sync Theo Batch & Chặn Lockdown Giới hạn):
CrossLevelSyncManager(hierachain/cluster/cross_level_sync.py) tuần tự hóasync_to_mainchain/sync_from_mainchain/resolve_sync_conflicttrong batch_operationkèm theo dõi operation đang chạy và trạng thái tổng hợp;LockdownMessageGuardmới giới hạn admission message với replay tracking và authentication. - API & Server (GraphQL Async & Helper Vòng đời):
graphql_handler.py(hierachain/api/graphql_handler.py) hỗ trợ thực thi async với request context;api/__init__.py/api/server.pytập trung envelope lỗi JSON chặt và shutdown hierarchy-manager;api/middleware.pycăn chỉnh xử lý giới hạn payload theo serializer mới. - Bảo mật (Theo dõi Failure Brute-force & Gọn MSP): kho auth SQLite/Redis (
hierachain/adapters/database/auth_state.py) thêm bảngauth_failurescó index,get_failure_count()theo cửa sổ thời gian, tạo failure/lockout trongrecord_failure(), và script Lua Redis nguyên tử cho tăng đếm/khóa với xóa failure nhất quán;MSP(hierachain/security/msp.py) bỏ cache xác minh certificate để đơn giản và nhất quán. - ERP, Scheduler & State (Backoff, Validation & Docs):
SyncScheduler(hierachain/integration/erp/scheduler.py) chuyển sang backoff mũ với quản lý task bằng timer và logicchange_detected;MappingEngine/ChangeDetector(hierachain/integration/erp/base.py,hierachain/integration/erp/change_detector.py,hierachain/integration/erp/mapping.py,hierachain/integration/enterprise.py) validateconfig/key_fields/detect_changeskể cả key lồng sâu;WorldState(hierachain/state/world_state.py) làm rõ cách dùng Merkle-root và yêu cầu rebuild projection.
- Parquet (Publish Snapshot & fsync Thư mục):
-
2026-10-03
- Journal (Đọc Đuôi Theo Cursor): thêm
TransactionJournal.read_since(cursor)(hierachain/error_mitigation/journal.py) flush/fsync journal active, quét xuyên file xoay vòng bằng cursor(st_ino, offset), chỉ đọc Parquet legacy ở lần quét đầu, và fail-closed (ValueError/RuntimeError) khi cursor thiếu/cụt hoặc thiếu file active. - Domains & Hierarchical (Phục hồi 2PC Tăng dần):
DomainChain._load_transaction_event_markers()(hierachain/domains/chains/domain_chain.py) vàCrossChainTransactionManager._read_latest_records()(hierachain/hierarchical/transaction_manager.py) chỉ tiêu thụ frame mới quaread_since()với_transaction_journal_cursor/_journal_cursorkèm cache_durable_recordsdưới lock, fallback vềreplay()đầy đủ khi thiếu API cursor. - Sub-chain (Giữ Bootstrap & Tái dùng Index):
SubChain(hierachain/hierarchical/sub_chain/base.py) dựng ordering vớiretain_bootstrap=True;_rehydrate_chain_from_ordering_service()/_apply_rehydrated_blocks()(hierachain/hierarchical/sub_chain/ordering.py) ưu tiêntake_bootstrap_blocks()một lần rồiget_blocks_from_db(start_index=0)và rebuild index quaBlockchain._rebuild_event_indexes(), loại bỏ_update_event_statistics(). - Database (Truy vấn Block Range Một Câu lệnh): thêm
SQLBase.get_blocks_from_index()(hierachain/adapters/database/base/sql_adapter.py, Postgres dùng placeholder%stronghierachain/adapters/database/postgres_adapter.py) tải header kèm events có thứ tự trong một JOIN (ORDER BY chain_name, index, event id) gom theo từng block; payload event có thứ tự từget_event_by_idnay gồmchain_name. - Ordering (Snapshot Bootstrap & Giới hạn Certification):
OrderingService.take_bootstrap_blocks()(hierachain/consensus/ordering/service.py, append tronghierachain/consensus/ordering/block_manager.py) chuyển snapshot khởi động đã verify một lần khiretain_bootstrap=True;EventCertifier(max_history=10000)(hierachain/consensus/ordering/certifier.py) giới hạn LRU chocertified_eventskèm truy cập có lock;get_event_statustrả nhanhorderedđã bền quaget_event_by_id. - Core (Dọn TTL Eager cho Cache):
AdvancedCache(hierachain/core/cache.py) bỏ luồng nền TTL/_cleanup_stoptheo từng instance, chạycleanup_ttl()eager dưới một lock khisetloại bỏ kèmget_stats()/get_keys()/__len__().
- Journal (Đọc Đuôi Theo Cursor): thêm
-
2026-10-02
- Đồng thuận (Finalizer Ordering & Toàn vẹn Khởi động):
OrderingService(hierachain/consensus/ordering/service.py) nhận thêm hookblock_finalizer(block, previous_block)tùy chọn và kiểm tra chuỗi đã persist (so hash đuôiget_blocks_from_db(0)với block mới nhất) trước khi replay journal, raise khi history thiếu/hỏng;wait_for_active()nhậntimeout=Noneđể chờ recovery vô hạn với deadline monotonic kèm kiểm trashould_stop/luồng còn sống;OrderingBlockManager.commit_block(hierachain/consensus/ordering/block_manager.py) hủy khi service đang dừng, gáncreator_iddưới lock index, ủy quyền đồng thuận cho finalizer và kiểm tra lại shutdown trước khi ký. - Hierarchical (Finalization Block Ordered của Sub-chain): thêm
SubChain._finalize_ordered_block()(hierachain/hierarchical/sub_chain/base.py) hoàn tất đồng thuận trước khi orderer ký và persist (delay theo timing có thể ngắt qua_shutdown_event, giữcreator_idsau finalization, từ chốivalidate_blockthànhValueError);SubChaindùngthreading.RLockcho xử lý block, chờ recovery ordering vô hạn (wait_for_active(timeout=None)để backlog journal chạy xong thay vì replay lại), rút gọn shutdown quafinalize_sub_chain_block(), và truyền finalizer vàoOrderingService. - Hierarchical (Áp dụng Block Sub-chain):
_process_and_finalize_single_block()(hierachain/hierarchical/sub_chain/block.py) nay áp block ordering đã finalize nguyên trạng (không tính lại index/hash, không finalization/ký lại), chuyển orderer sangMAINTENANCEkèm tín hiệu dừng khiadd_blockthất bại;_finalize_sub_chain_block_for_chain()tuần tự hóa dequeue kèm apply dướiblock_processing_lockđể giữ thứ tự FIFO; loại bỏ_reset_ordering_service_state()(hierachain/hierarchical/sub_chain/ordering.py), rehydration dựa vào đồng bộ chain thay vì ghi đèblock_history/blocks_created. - Hierarchical (Quản lý Tài nguyên Recovery):
HierarchyManager.__init__/_restore_sub_chains()(hierachain/hierarchical/hierarchy_manager/base.py) bọc bootstrap và khôi phục sub-chain trongExitStack(callbackshutdowncho journal/storage/từng chain, chỉpop_all()khi thành công) thay cho cleanup try/except thủ công.
- Đồng thuận (Finalizer Ordering & Toàn vẹn Khởi động):
-
2026-09-30
- Database (Liệt kê Tên Chain): thêm
SQLBase.list_block_chain_names()(hierachain/adapters/database/base/sql_adapter.py) trả vềDISTINCT chain_namecó thứ tự từ bảngblockskèm lan truyền lỗi database cho CLI verification. - State (Snapshot Bất biến):
WorldState.get_entity_state()/get_all_states()(hierachain/state/world_state.py) nay trả về snapshotdeepcopy(kèmdeepcopycholast_detailskhi cập nhật) để caller không thể thay đổi state nội bộ. - Audit (Đọc Sealed & Retention):
ArrowAuditStorage(hierachain/risk_management/audit_logger.py) tập trung_seal_active_file(), sửa xử lýlimit=0/Nonetrongretrieve_events, đếm qua metadata Parquet/batch4096dòng trongget_event_count(), và thêmcleanup_old_events()chỉ xóa archive Parquet đã hết hạn toàn bộ;DatabaseAuditStorage._filter_sql()hợp nhất predicateevent_type/severity/source_component/user_id/time_rangecho cả truy vấn và đếm. - CLI (Key File & Verify Đa-backend):
hierachain/cli/key.pyghi key mới bằngO_EXCL0600, đọc JSON hoặc hex hai dòng qua_read_key_file(), và che hoàn toàn private key khishow;hierachain/cli/verify.pythêm_open_backend()cho URLpostgres/postgresql/sqlitevà backend đường dẫn trênSQLBase, theo dõi riêngevents_unsigned(unsigned được phép, thiếu chữ ký là invalid, fallbacksender_public_key, dùngto_event_list()), và fail audit khi event invalid chứ không chỉ block. - Domain (Vòng đời Tài nguyên):
BaseChain(hierachain/domains/chains/base_chain.py) xử lýresource_released/resource_reserved/resource_transferredvới vòng đờiallocated_resources/reserved_resources(reserve, release từ cả hai list, chuyểnreserved→assigned, chuyển entity), chỉ đăng ký entity sau khiadd_eventthành công, và trảFalsekhi handler lỗi thay vì nuốt lỗi.
- Database (Liệt kê Tên Chain): thêm
-
2026-09-29
- Database (Kho Auth State Dùng chung): thêm
SQLiteRevocationStore/SQLiteLockoutStore(dùng chung qua file,0600, key băm digest) vàRedisRevocationStore/RedisLockoutStorecùngRedisRateLimiter(hierachain/adapters/database/auth_state.py,hierachain/adapters/database/redis_rate_limiter.py);hierachain/adapters/database/__init__.pychuyển sang import lười__getattr__. - Config (Backend Auth State): thêm
HRC_AUTH_STATE_REDIS_URL(Settings.AUTH_STATE_REDIS_URL) vàHRC_API_KEY_REVOCATIONS_DB(Settings.API_KEY_REVOCATIONS_DB), vớiget_auth_config()chọn backend lockoutredis/sqlite/file(hierachain/config/settings.py). - Bảo mật & API (Thu hồi Dùng chung & Kiểm tra Async):
KeyManagernhậnrevocation_storevà kiểm tra trongis_revoked()(hierachain/security/key_manager.py);BruteForceProtectorủy quyền cho lockout store SQLite/Redis dùng chung (hierachain/security/brute_force_protector.py);APIKeyVerifieroffload kiểm tra brute-force/thu hồi/is_validquaasyncio.to_threadvà kiểm tra thu hồi trước tính hợp lệ (hierachain/security/verify/api_key_verifier.py); server production đấu nốiRedisRevocationStore/SQLiteRevocationStorevàoKeyManager(hierachain/api/server.py). - Hierarchical & Core (Làm sạch Metadata):
MainChain.register_sub_chainsanitize một lần quasanitize_metadata_for_main_chain()cho cả metadata registry và authority (hierachain/hierarchical/main_chain/base.py);sanitize_metadata_for_main_chainthêm_sanitize_summary_value()đệ quy (tỉa dict/list lồng nhau, bỏ dict>5key / list>10phần tử) và các field loại bỏ mớiinternal_data/complete_log/detailed_data, kèm validate list chặt hơn (hierachain/core/utils.py). - SDK (Circuit Breaker An toàn Luồng & Response):
CircuitBreaker(hierachain/sdk/types.py) thêm locking với một probeHALF_OPENduy nhất (acquire_request()/release_probe(),record_success()/record_failure()theo probe); client sync/async xử lýHEAD/GET/OPTIONSvà body rỗngHTTPStatus.NO_CONTENTvới phân loại lỗi retryable/non-retryable (hierachain/sdk/client.py,hierachain/sdk/async_client.py). - Network (Quản lý Peer & Health):
NetworkClienttheo dõipublic_key/_last_activity,PEER_TIMEOUT=60.0với_refresh_peer_health(), giữ key khi đăng ký lại, và thêmunregister_peer()kèm dọn socket;ZmqNode.register_peer()reset socket khi đổi vàunregister_peer()hủy message chờ (hierachain/network/network_client.py,hierachain/network/zmq_transport.py).
- Database (Kho Auth State Dùng chung): thêm
-
2026-09-28
- Database (Hierarchy Registry & Audit Manifest): lưu/tải hierarchy registry trên cả PostgreSQL/SQLite/Redis, thêm
PostgresAuditManifestquản lý digest audit, gọn lọc event/xử lý metadata, SQLitesynchronous=FULLbền dữ liệu, và kiểm tra toàn vẹn chain-state chặt hơn (hierachain/adapters/database/__init__.py,hierachain/adapters/database/audit_manifest.py,hierachain/adapters/database/base/sql_adapter.py,hierachain/adapters/database/postgres_adapter.py,hierachain/adapters/database/redis_adapter.py,hierachain/adapters/database/sqlite_adapter.py). - Hierarchical (Journal 2PC Bền): journal phase bền với
_journal_record()/_load_journal(), lifecycle prepare/commit/rollback có cấu trúc, validate participant và retry cho decision chưa phân giải (hierachain/hierarchical/transaction_manager.py,hierachain/hierarchical/private_data.py,hierachain/hierarchical/types.py). - Domains (Khôi phục Committed Transaction): theo dõi
committed_transactionsvới_tx_commit_lock, nạp/đối soát marker và khôi phục sau COMMIT bền cho ack idempotent (hierachain/domains/chains/domain_chain.py,hierachain/domains/chains/tx_manager.py). - API (Nộp Event theo Channel): endpoint mới
POST /channels/{channel_id}/organizations/{org_id}/eventskèm xác thực và validation (hierachain/api/ledger/events.py). - Journal (Liệt kê File): gọn
_get_journal_files()giữ thứ tự/khử trùng không sort thừa (hierachain/error_mitigation/journal.py).
- Database (Hierarchy Registry & Audit Manifest): lưu/tải hierarchy registry trên cả PostgreSQL/SQLite/Redis, thêm
-
2026-09-27
- Lưu trữ (IPFS Async & Auto-pin):
upload_to_ipfs_background()/download_from_ipfs()(hierachain/api/storage/endpoint_helpers.py) nay offload các lệnh gọi IPFS blocking quaasyncio.to_threadđể tránh nghẽn event loop; upload củaIPFSClient(hierachain/api/storage/ipfs_client.py) truyền auto-pin qua query parameter của lệnhaddthay vì gọipin()riêng.
- Lưu trữ (IPFS Async & Auto-pin):
-
2026-09-26
- API (Readiness): Thêm
GET /api/ledger/ready(hierachain/api/ledger/health.py) chỉ báoreadykhi mọi ordering service của sub-chain ở trạng tháiACTIVE(ngược lại 503); miễn xác thực tronghierachain/api/server.py;get_hierarchy_manager()khởi tạo lười an toàn luồng và trả 503 khi recovery chưa xong (hierachain/api/ledger/depds.py); tạo sub-chain chuyển tiếpmanager.node_identity(hierachain/api/ledger/chains.py). - Đồng thuận (Ordering Genesis & Replay):
OrderingServicenhận thêmgenesis_blocktùy chọn (hierachain/consensus/ordering/service.py) để persist khi database rỗng;EventCertifier.validate()/OrderingExecutor.process_single_event()nhậnallow_stale_timestampvới kiểm tra timestamp số hữu hạn nghiêm ngặt (hierachain/consensus/ordering/certifier.py,hierachain/consensus/ordering/processor.py); event journal replay đi quaprocess_replayed_event()(hierachain/consensus/ordering/recovery.py,hierachain/consensus/ordering/processor.py). - Database (Chain Listing & SQLite Memory): Bổ sung
list_chains()choSQLBase/RedisChainManager/RedisStorageAdapter(hierachain/adapters/database/base/sql_adapter.py,hierachain/adapters/database/redis_adapter.py);SQLiteAdapter(hierachain/adapters/database/sqlite_adapter.py) hỗ trợ:memory:dùng chung qua keeper connection;SQLBase._create_event_from_rowtrả trực tiếp envelope đầy đủ khi cột khớp;RedisChainManager.store_chainbỏ quadomain_typekhi làNone.
- API (Readiness): Thêm
-
2026-09-24
- API (Xác thực Server): Nới
auth_dependency(hierachain/api/server.py) từRequestsangHTTPConnectionkèm guardverifier is None, đồng thời expose verifier quafast_app.state.auth_verifierđể dùng chung. - Bảo mật (Xác minh API Key): Chuyển
APIKeyVerifier(hierachain/security/verify/api_key_verifier.py) sang tương thíchHTTPConnection(_extract_client_ip/__call__/_extract_api_key); bổ sungKeyManager.get_permissions()tập trung (hierachain/security/key_manager.py), context xác thực nay mangpermissionsở top-level (ResourcePermissionCheckerfallback vềapp_details);_get_active_verifier(connection)lấy verifier từ application state.
- API (Xác thực Server): Nới
-
2026-09-23
- Database (PostgreSQL Adapter): Gom các lệnh insert event trong
_execute_save_block(hierachain/adapters/database/postgres_adapter.py) thành một lượtcursor.executemany()trênevent_rowsđã thu thập thay vìcursor.execute()từng event, giảm số round-trip khi persist block nhiều event. - Đồng thuận (Ordering Service): Đơn giản hóa khởi động
OrderingService(hierachain/consensus/ordering/service.py) bằng cách loại bỏ lượt đếm-and-log trùng lặp_recover_pending_events_from_journal()và giao toàn bộ replay journal cho processor (recover_state_async()); tách helper dùng chung_start_processing_thread()cho cả__init__vàstart().
- Database (PostgreSQL Adapter): Gom các lệnh insert event trong
-
2026-09-22
- Journal (Giảm thiểu Lỗi & Ordering): Chuyển
TransactionJournal(hierachain/error_mitigation/journal.py) từParquetWritersang ghi nối tiếp Arrow IPC (đóng khungRecordBatchkèm tiền tố độ dài qua_serialize_arrow_batch, đảm bảo bền dữ liệu bằngos.fsync, replay nhiều dòng/batch với fallback stream cũ); đổi tên file log active mặc địnhcurrent.parquetthànhcurrent.arrow(file xoay vòng*_*.parquetthành*_*.arrow, tương tựnode_{id}_journal.parquetthành.arrowcủaOrderingServicetronghierachain/consensus/ordering/service.py) đồng thời vẫn replay được file Parquet legacy (tự đổi tên file active cũ sang*_legacy_*.parquetqua guard_is_parquet_file). - Hierarchical (SubChain Proof & Events): Tinh gọn
SubChain.add_event()(hierachain/hierarchical/sub_chain/base.py) để trả vềevent_idcó thẩm quyền từordering_service.receive_event()thay vì digest tổng hợporjson+SHA-256 (loại bỏ importhashlib/orjson); chuyểnshould_submit_proof()sang theo dõi theo chỉ số block qualast_proof_block_indexmới (cập nhật tronghierachain/hierarchical/sub_chain/proof.py) thay vì kiểm tra pending events; củng cố_process_and_finalize_single_block(hierachain/hierarchical/sub_chain/block.py) để log lỗi persist ở mứcerrorvà trảFalsemà không append block vào bộ nhớ. - Database (PostgreSQL Adapter): Củng cố
PostgresAdapter(hierachain/adapters/database/postgres_adapter.py) vớiconnect_timeout: 3khi khởi tạo pool, parse độngdataevent thô bằngorjsontrong_execute_fetch_block_events,_execute_save_blocktự khép kín bắt buộcchain_name(tự chèn dòngchainscòn thiếu, chấp nhận fallbackmetadata/merkle_root), và các hàm fetch block trả về dict block đầy đủ vớichain_nametùy chọn (_execute_get_block_by_index/_execute_get_latest_blockchuyển thành instance methods). - Hierarchical (Storage Fallback): Tăng khả năng chống lỗi cho
HierarchyManager._create_storage()(hierachain/hierarchical/hierarchy_manager/base.py) bằng cách kiểm tra PostgreSQL (SELECT 1 FROM chains LIMIT 0) và fallback vềSQLiteAdapterkèm warning khi PostgreSQL không khả dụng.
- Journal (Giảm thiểu Lỗi & Ordering): Chuyển
-
2026-09-18
- Đồng thuận (Ordering Service): Giới hạn dung lượng hàng đợi
event_poolbằngSettings.EVENT_POOL_MAX_SIZEtronghierachain/consensus/ordering/service.pynhằm chống tràn bộ nhớ, đồng thời bổ sung xử lý chế độ bảo trì trongsubmit_eventđể chờ kích hoạt (wait_for_active()) và từ chối gửi event khi dịch vụ không ở trạng thái hoạt động. - API (Ledger Events): Cập nhật endpoint
add_eventtại/api/ledger/events(hierachain/api/ledger/events.py) để trả vềevent_idcó thẩm quyền trực tiếp từsub_chain.add_event(event)thay vì tạo mã định danh vị trí giả lập.
- Đồng thuận (Ordering Service): Giới hạn dung lượng hàng đợi
Fix (33)
-
2026-10-22
- Mạng (Giải phóng Transport & Kiểm tra MSP Tường minh):
ZmqNode.start()(hierachain/network/zmq_transport.py) nay gọistop()và nối lỗi gốc bằngraise ... from ekhi thiết lập socket thất bại,NetworkClient.start()(hierachain/network/network_client.py) gọistop()khi lỗi, vàstop()không còn thoát sớm khi_is_runninglà false — lần khởi động lỗi có thể thử lại mà không rò rỉ socket.validate_msp_from_message()(hierachain/network/secure_connection.py) thay generatorall(...)bằng kiểm trastr/khác rỗng tường minh cho từng trường handshake để mỗi trường thiếu có lý do từ chối riêng. - Adapter (Biên Runtime):
PostgresAuditManifest.__init__(hierachain/adapters/database/audit_manifest.py) chấp nhậnfetchone()trảNone;PostgresAdapter(hierachain/adapters/database/postgres_adapter.py) nạp fallbackpsycopg2quaimport_module, chuyển_execute_store_proof()thành static vớisubmitted_at/created_atmặc địnhtime.time(), và kiểu trả về của_execute_update_state()(SQLite) nới thànhbool | None(hierachain/adapters/database/base/sql_adapter.py);ChannelLedgerSQLStorage(hierachain/adapters/database/channel_ledger_sql.py) khai báo_get_connection()dướiTYPE_CHECKING, cònRedisLedgerAdapter.get_latest_block()(hierachain/adapters/database/redis_ledger.py) lọc tip rỗng trướcmax()và trảNonekhi không chain nào có block. - API (Lọc GraphQL & Siết Kiểu):
resolve_events(hierachain/api/graphql/resolvers.py) truyền tường minhentity_id/event_type/from_timestamp/to_timestamp/limit/afterchoselect_event_page()với chain ngoàiBlockchain,_to_event_type()gán từng field củaEventTypesau khi khởi tạo nêndetails_metadatakhông còn rơi vào keyword không hợp lệ, và_required_graphql_permissions()(hierachain/api/graphql_handler.py) nhận diện fragment quaisinstance(..., FragmentDefinitionNode)thay vì so chuỗidefinition.kind; các field GraphQL tronghierachain/api/graphql/types.pyđược annotate bằngcast()(vàEventType.resolve_events()được phép trảNone), còn tham sốchain_namecủa WebSocket (hierachain/api/websocket/endpoints.py) đổi sang kiểustrvới mặc định"all"giữ nguyên. - Đồng thuận (Requeue Journal & Tên Rule):
OrderingService.receive_event()(hierachain/consensus/ordering/service.py) raiseValueErrorkhi hitjournalkhông có bản ghi trước khi requeue, và_find_stable_event()từ chối payload lưu không phảidictbằng cùngValueErrorthay vìAttributeError;_run_custom_rules()(hierachain/consensus/ordering/certifier.py) lấy tên rule thiếu__name__quatype(rule).__name__nên callable object không còn làm hỏng certification, vàBFTConsensus(hierachain/consensus/bft/consensus.py) băm trực tiếpself.current_request. - Hierarchical & Cluster (Guard Phục hồi Bền):
_restore_main_chain()(hierachain/hierarchical/hierarchy_manager/recovery.py) raiseRuntimeErrorkhi storage bền không khả dụng và cast timestamp đăng ký trướcfloat();ChannelLedger._replay_record()(hierachain/hierarchical/channel/ledger.py) từ chối payload snapshot/event/block không phảidictqua đúng đường validate vàRuntimeErrorsẵn có;_durable_block_events()(hierachain/hierarchical/main_chain/proofs.py) và_verify_anchor_exists()(hierachain/cluster/cross_level_sync.py) xemproof_storagethiếu là không khả dụng một cách tường minh để nhánh strict và non-strict trả kết quả đúng tài liệu thay vì dựa vàogetattr(None, ...). - Core & Giảm thiểu Lỗi (API Compute PyArrow 25):
_iter_block_rows()(hierachain/core/event_query.py) dựng mask entity/timestamp bằngpc.call_function("and"/"equal"/"greater_equal"/"less_equal"/"indices_nonzero"), và_check_forbidden_terms_in_array()(hierachain/error_mitigation/validator_helpers.py) hạ chữ thường và so khớp quapc.call_functionvớipc.MatchSubstringOptions(term);_open_safe_file()(hierachain/error_mitigation/journal.py) thu hẹpmodevềLiteral["rb", "ab", "wb", "r+b"], cònAdvancedCache.get()(hierachain/core/cache.py) nhận mọi key object trước khi épstr(). - Domains (Marker Event & Thu hẹp Validator):
_rebuild_domain_state()(hierachain/domains/chains/base_chain.py) bỏ qua event replay có kiểueventkhông phảistrtrước khi dispatch,recover_committed_transaction()/commit_transaction()(hierachain/domains/chains/domain_chain.py) trảFalsekhi_transaction_event_markerslàNonethay vì index vào đó, vàProofValidator._validate_single_proof()(hierachain/domains/utils/cross_chain_validator.py) castsub_chain_name/proof_hashđã validate trước khi tra cứu. - SDK & Bảo mật (Timeout & Nguồn API Key):
HieraChainAsyncClient(hierachain/sdk/async_client.py) bọcconfig.timeouttrongaiohttp.ClientTimeout(total=...), vàHieraChainClient(hierachain/sdk/client.py) raiseHieraChainAPIErrorkhi response không có HTTP status code;APIKeyVerifier._extract_api_key()(hierachain/security/verify/api_key_verifier.py) chọn nguồn tường minh —query_paramschoAPIKeyQuery, còn lại là header — và gọicheck_api_key()trên mapping đó thay vì gọi dependency FastAPI với connection, trong khiKeyManager.storage(hierachain/security/key_manager.py) được annotateAny. - Giám sát & CLI (Kiểu Thống kê Alert & Đăng ký Lệnh):
AlertManager.stats(hierachain/monitoring/alert_system.py) được định kiểu bằngTypedDict_AlertStatisticsnên các lần tăng counter bỏ đượccast()lặp lại, vàhierachain/cli/__init__.pyđăng ký lệnh không còn bọccast(Command, ...)dư thừa.
- Mạng (Giải phóng Transport & Kiểm tra MSP Tường minh):
-
2026-10-18
- API (Danh tính Sender Ledger & Validate Nonce Mặc định):
_build_event_data(hierachain/api/ledger/events.py) nay ghi thêmsenderbên cạnhsubmitted_byđể ordering đọc được danh tính ký ở cả hai trường, vàEventRequest.details_nonce(hierachain/api/ledger/schemas.py) bậtvalidate_default=Trueđể giá trị mặc địnhNonecũng được validate — trước đây nonce mặc định bỏ qua validate hex/độ dài và event lưu thiếusender. - Đồng thuận (Kiểm tra lại Chữ ký Canonical & Drain khi Shutdown):
_extract_verification_items(hierachain/consensus/ordering/processor.py) bỏ qua event cósignature_content(đã được certifier xác minh khi xử lý trực tiếp và replay), xác minh chữ ký kiểu cũ với sender/signature hex đã bỏ tiền tố0x, và pollevent_pooltối đa mỗi0.1smà vẫn giữbatch_timeout;_verify_canonical_event()mới (hierachain/consensus/ordering/utils.py) ràng buộc lại các trường nghiệp vụ được đưa vào block (entity_id,event_type,event,timestamp) vớisignature_contentgốc đã ký, từ chối trường bị sửa hoặc thêm ngoài danh sách quaSignatureVerifier().verify_event_signature(), cònverify_event_signature()chạy nhánh canonical cho các envelope này thay vì đường payload kiểu cũ;OrderingService.stop()(hierachain/consensus/ordering/service.py) join processing thread không còn timeout 5 giây để thao tác đang chạy hoàn tất trước khi đóng storage và journal — trước đây event secure canonical chỉ được xác minh lại như payload kiểu cũ, trường bị sửa/thêm lọt qua kiểm tra ràng buộc, và shutdown có thể đóng storage khi batch còn đang chạy.
- API (Danh tính Sender Ledger & Validate Nonce Mặc định):
-
2026-10-07
- Ordering (Tính Latency Theo Event Đã Commit):
OrderingStorageHandler.save_block()(hierachain/consensus/ordering/storage.py) chỉ tiêu thụ các entry timing trongprocessed_eventscho nhữngevent_idthuộc block đã persist, giữ lại timing của event còn chờ ở batch khác, và định kiểutrusted_public_keyslàdict[str, bytes]giữ nguyên fallback cấu hình/file — trước đây xóa toàn bộ timing map ở mỗi lần commit. - Lưu trữ (Kiểm tra Khả dụng IPFS):
IPFSClient.is_available()(hierachain/api/storage/ipfs_client.py) gọi/api/v0/files/statvớiarg=/ipfs/<cid>thay cho/api/v0/object/stat?arg=<cid>đã bị loại bỏ, trảFalsekhi phản hồi thất bại hoặc lỗi kết nối — trước đây gọi endpoint không còn hỗ trợ.
- Ordering (Tính Latency Theo Event Đã Commit):
-
2026-10-04
- Parquet (Niêm phong Khi Lỗi & Không Ghi đè Lặng):
write_parquet_log()(hierachain/core/parquet_log.py) niêm phong segment active khifsyncfile/thư mục hoặc publish thất bại và xóa file tạm, nên lần append lỗi không bao giờ bị ghi đè lặng lẽ bởi lần sau. - Journal & Monitoring (Rollback & Kiểu Chặt): ghi journal lỗi được rollback để giữ toàn vẹn envelope (
hierachain/error_mitigation/journal.py);ErrorClassifier(hierachain/error_mitigation/error_classifier.py) và kiểu monitoring (hierachain/monitoring/alert_system.py,hierachain/monitoring/performance_monitor.py,hierachain/monitoring/types.py) chuyển sang helper JSON chặt với kiểu payload alert đã sửa thay vì ép kiểuorjsonhao hụt.
- Parquet (Niêm phong Khi Lỗi & Không Ghi đè Lặng):
-
2026-10-03
- Ordering (Tuần tự hóa Commit & Lockdown): dùng chung một RLock
service._commit_lockchoOrderingBlockManager/OrderingMaintenance/OrderingProcessor(hierachain/consensus/ordering/block_manager.py,hierachain/consensus/ordering/maintenance.py,hierachain/consensus/ordering/processor.py,hierachain/consensus/ordering/service.py); commit đang bay retry quaOrderingPausedErrorgiữ nguyên batch đã cắt,LOCKDOWN/SHUTDOWN/ERRORkhông còn bịMAINTENANCEghi đè, tạm dừng thu thập khiLOCKDOWN, shutdown đánh thức producer đang nghẽn, và event bị từ chối được xóa khỏi pending map. - Hierarchy (Refresh Registry Tại chỗ):
_apply_hierarchy_registry()refresh orgs/channels tại chỗ giữ nguyên tham chiếu objectChannelvà đếmevents_by_orgđồng thời đóng các channel đã xóa, còn_mutate_registry()retry thay đổi registry 3 lần kèm rollback (hierachain/hierarchical/hierarchy_manager/base.py). - Channel (Tuần tự hóa Truy cập Registry): decorator
_registry_operation(hierachain/hierarchical/channel/channel.py) tuần tự hóa thêm/xóa org, tạo private-collection, truy vấn event, thông tin channel/org, cập nhật policy và suspend/resume dưới RLock registry dùng chung kèm refresh trực tiếp. - API (Tập trung Kiểm tra Admin Org):
register_organization_member(hierachain/api/business/organizations.py) dùng chung_is_organization_admin()(hierachain/hierarchical/hierarchy_manager/organization.py) thay cho các kiểm tra role/identity viết inline trùng lặp.
- Ordering (Tuần tự hóa Commit & Lockdown): dùng chung một RLock
-
2026-10-02
- Hierarchical (Dọn dẹp Journal khi Load lỗi):
CrossChainTransactionManager.__init__(hierachain/hierarchical/transaction_manager.py) đóng journal tự tạo khi_load_journal()raise (journal do caller truyền vào để caller tự quản) thay vì rò rỉ handle. - Core (Validate Sender):
validate_event_structure()(hierachain/core/utils.py) loại trường khóa công khaisendercủa envelope đã ký khỏi quét thuật ngữ tiền mã hóa của nội dung nghiệp vụ và validate riêngsender, giữ key envelope ngoài kiểm tra nội dung. - API (Đồng thời khi Recovery Hierarchy):
get_hierarchy_manager()(hierachain/api/ledger/depds.py) dùng lock non-blocking (trả 503 "in progress" khi luồng khác đang recovery) với backoff retry monotonic 5 giây giới hạn số lần thử trong bão request thay vì block các request đồng thời.
- Hierarchical (Dọn dẹp Journal khi Load lỗi):
-
2026-10-01
- ERP (Deadlock Scheduler):
SyncScheduler.get_all_tasks(hierachain/integration/erp/scheduler.py) dựng trạng thái qua snapshot tách rời_task_status()dưới một lock duy nhất thay vì gọiget_status()cho từng task, khắc phục deadlock lock lồng nhau khi liệt kê tasks.
- ERP (Deadlock Scheduler):
-
2026-09-28
- Mạng (Kiểm tra Env Production):
SecureConnectionManager(hierachain/network/secure_connection.py) kiểm trasettings.env == "production"thay vì"product"cũ, khôi phục cảnh báo P2P kém an toàn.
- Mạng (Kiểm tra Env Production):
-
2026-09-27
- Lưu trữ (Phân giải CID):
resolve_cid_field()(hierachain/api/storage/endpoint_helpers.py) nay re-raise lỗi khi phân giải CID thất bại thay vì lặng lẽ trả về dữ liệu gốc chưa phân giải, ngăn consumer xử lý nhầm payload chưa resolve.
- Lưu trữ (Phân giải CID):
-
2026-09-26
- Journal (Framing & Replay): Bổ sung envelope
_JOURNAL_MAX_FRAME_SIZE/_JOURNAL_DATA_MARKERtáchdatavàextrafields, vòng lặp ghi từng phần, tự sửa đuôi file rách khi mở, nhận diệnPAR1bằng magic đầu file, và replay fail-hard raiseValueErrorkhi gặp frame hỏng/cụt thay vì bỏ qua (hierachain/error_mitigation/journal.py). - Đồng thuận (Ordering Fail-closed):
OrderingBlockManager.commit_block/vòng lặp processor/executor (hierachain/consensus/ordering/block_manager.py,hierachain/consensus/ordering/processor.py) chuyểnMAINTENANCEvà re-raise; recovery ép tạo block (force=True) và raiseRuntimeErrorkhi gặp entry null/hỏng;_block_from_dict(hierachain/consensus/ordering/storage.py) kiểm tra Merkle root trước hash với điều kiện dừng chặtdata is None. - Hierarchical (Recovery Validation): Khởi tạo
SubChain(hierachain/hierarchical/sub_chain/base.py) fail-fast khiwait_for_active()timeout kèm shutdown ordering và giao persist genesis choOrderingService;_process_and_finalize_single_block(hierachain/hierarchical/sub_chain/block.py) kiểm tra quais_valid_new_block; rehydration (hierachain/hierarchical/sub_chain/ordering.py) raiseValueErrorkhi xung đột toàn vẹn/hàng đợi và loại bỏ block đã rehydrate khỏi queue.
- Journal (Framing & Replay): Bổ sung envelope
-
2026-09-25
- Journal (Giảm thiểu Lỗi): Chuyển
TransactionJournal.log_event()(hierachain/error_mitigation/journal.py) sang fail-closed cho ghi async bằng cách chờFuturetheo từng event do background writer hoàn tất thay vì ack ngay khi enqueue; nhánh queue đầy vẫn fallback sang ghi đồng bộ. - Đồng thuận (Phục hồi Ordering): Đặt
OrderingStatus.MAINTENANCEngay đầu_initialize_service(hierachain/consensus/ordering/processor.py) để service không bao giờ ở trạng tháiACTIVEtrong lúc replay, và buộcOrderingRecovery(hierachain/consensus/ordering/recovery.py) raiseRuntimeErrorkhi gặp entry journalerrorthay vì âm thầm bỏ qua.
- Journal (Giảm thiểu Lỗi): Chuyển
-
2026-09-24
- Database (PostgreSQL Adapter): Củng cố
_execute_save_block(hierachain/adapters/database/postgres_adapter.py) xóa các dòngeventscũ của(chain_name, index)trước khi insert, và upsert block bằngON CONFLICT (chain_name, "index") DO UPDATEthay vìON CONFLICT (hash) DO NOTHING, giữ ghi đè block nhất quán với events của nó. - Đồng thuận (Ordering Service & Storage):
submit_event(hierachain/consensus/ordering/service.py) nay raiseRuntimeErrorkhijournal.log_event()thất bại thay vì âm thầm queue event chưa persist, vàOrderingStorageHandler.save_block(hierachain/consensus/ordering/storage.py) raise khi storage adapter từ chối kèm cập nhậtblock_history/last_blockidempotent (thay thế khi trùng index, chỉ append khi tiến lên).
- Database (PostgreSQL Adapter): Củng cố
-
2026-09-23
- API (Admin Secure Event): Sửa
add_secure_event(hierachain/api/admin/endpoints.py) để gọirequest.model_dump(exclude_unset=True), tránh chuyển các trường tùy chọn chưa thiết lập (nonce/timestamp/chain_id) thànhNonekhi thêm event vào chain.
- API (Admin Secure Event): Sửa
v0.2.0 (2026-09-12)
Improvements (26)
-
2026-09-05
- Core (Block, Blockchain & Merkle Tree): Củng cố cache
Blockvà kiểm tra kiểustored_hashtronghierachain/core/block.py, bổ sung sinhevent_idxác định (orjson+SHA-256evt-{16}) và xác minh Merkle-root trong_is_block_linked_correctly/Blockchain.add_event()nay trả vềstr(hierachain/core/blockchain.py), và sửa xử lý node lẻ trongMerkleTree._build_treeđể truyền thẳng leaf thay vì hash trùng (hierachain/core/merkle_tree.py). - Core (Logging & Xử lý Lỗi): Thu hẹp
except ExceptionsangOSError/ArrowException/ValueError/TypeErrortronghierachain/core/parquet_log.pyvàhierachain/error_mitigation/journal.py, bổ sung annotationpa.Table | None, và thêm fallbackImportErrorchokubernetesclient tronghierachain/hierarchical/k8s_namespace_manager/operations.py. - Đồng thuận (BFT & PoA/PoF & Ordering): Bổ sung kiểm tra nghiêm ngặt
isinstance(str)chosignature/public_key/block_hashtronghierachain/consensus/proof_of_federation._verify_block_quorumvà loại bỏ fallbackKeyPairkém an toàn tronghierachain/consensus/proof_of_authority.py; thắt chặt xác thực BFT tronghierachain/consensus/bft/helpers.py(guardstrictnessvà khớp quorum theo digest/view trong_process_commit_quorum_logic); đơn giản hóa xử lý kiểu tronghierachain/consensus/ordering/recovery.py(int(block_index_raw),dict|None). - Đồng thuận & Hierarchical (Types & Schema): Thay thế
TYPE_CHECKINGbằngAnyruntime trênhierachain/consensus/bft/dispatcher.py|engine.py|view_change.pyvàhierachain/hierarchical/main_chain/proofs.py|registry.py|rebalancer/split_ops.py|sub_chain/*.py; tập trungEVENT_SCHEMA(pa.schema) tạihierachain/core/block.pyvà tái sử dụng tronghierachain/consensus/ordering/certifier.py,hierachain/error_mitigation/journal.py,hierachain/hierarchical/channel/ledger.py; mở rộngBFTViewChangeManagerđể phátprepared_proofs. - Hierarchical (Hierarchy Manager & SubChain): Nâng cấp
_shared_pooltronghierachain/hierarchical/hierarchy_manager/base.pyhỗ trợmax_workersđộng (tạo pool tạm khi thay đổi, ngược lại tái dùng global); thayhash()bằngorjson+SHA-256evt-ID tronghierachain/hierarchical/sub_chain/base.py; xóa module legacyhierachain/hierarchical/sub_chain.pykhông dùng. - Hierarchical (Rollback & Rebalancer): Củng cố
hierachain/error_mitigation/rollback_manager.pyvới_capture_storage_statetheo component, guard path-traversal quaos.path.realpathtrong_rollback_configuration, log số section và kiểm tra toàn vẹndata_hash; dọnhierachain/error_mitigation/validator_helpers.pyvà gọn import; tinh giản importhierachain/hierarchical/rebalancer/split_ops.py. - API (Middleware, Server & WebSocket): Chuyển giới hạn payload sang
request.stream()với đếmbytes_readvà replayrequest._receivetronghierachain/api/middleware.py; kiểm tra trusted-proxyclient_ip in TRUSTED_PROXIESchoX-Forwarded-Forvà sửa fallback IP; tách CORS thành_add_cors_middlewaretronghierachain/api/server.pyvà bắt buộcuvloop; tinh giản khởi tạoPingLoopRunnertronghierachain/api/websocket/manager.py. - API (Ledger, GraphQL, Explorer & Business): Tập trung xử lý field mặc định trong
hierachain/api/storage/explorer_helpers.py; thêm guardasserttronghierachain/api/ledger/depds.pyvà thay kiểm tra depth đệ quy bằng stack lặp (depth >10) tronghierachain/api/ledger/schemas.py; điều chỉnhhierachain/api/graphql/resolvers.py|types.pychoBlockchain.add_event()->strvà logicis_cid_string; định kiểuprivate_data_entry: dict[str,Any]tronghierachain/api/business/private_data.py. - API (Admin Identity - Tính năng): Thêm trường tùy chọn
nonce/timestamp/chain_idvàoSecureEventRequest(hierachain/api/admin/schemas.py), thực thi kiểm tra lệchchain_id(422) và độ tươi timestamp 300s, tiền tố challengeb"HRC_IDENTITY_CHALLENGE:"và khôi phục dependencyrequire_chain_accesscho/verify-identity(hierachain/api/admin/endpoints.py). - Bảo mật, Events, Database & Dọn dẹp: Tinh giản
_sanitize_html_contextthànhre.sub(..., "[TEMPLATE_BLOCKED]")(hierachain/security/sanitization.py) và chuyển xác minh ZK mock sangZKVerifier(mode="mock").verify(hierachain/security/zk_prover.py); chặt kiểuBaseEvent.__eq__(other: object)(hierachain/domains/events/base_event.py); tập trung khởi tạo schema DB thànhinit_database_schematronghierachain/adapters/database/postgres_schema.py|sqlite_schema.pyvà gọn adapter; xóa 17 import thừa trênapi/storage,consensus/ordering,core/utils,error_mitigation/*,risk_management/*.
- Core (Block, Blockchain & Merkle Tree): Củng cố cache
-
2026-09-01
- Database (PostgreSQL): Bổ sung
PostgresAdapter(hierachain/adapters/database/postgres_adapter.py) kế thừaSQLBasevới connection poolingpsycopg/psycopg2(truy cập row dạng dict) vàpostgres_schema.pyđịnh nghĩa các bảng (chains,blocks,events,proofs,chain_state) cùng composite indexes tối ưu (chain_name+timestamp,entity_id+chain_name,block_hash) và đầy đủ CRUD cho dữ liệu blockchain. - Config: Nâng cao linh hoạt cấu hình lưu trữ/cơ sở dữ liệu trong
hierachain/config/settings.pyvàhierachain/config/product_config_template.py— thêmBLOCK_CREATION_MODE/BLOCK_MAX_WAIT_SECđiều khiển tạo block,PARQUET_ROLL_INTERVAL(monthly/daily/by_size_mb),POSTGRES_SYNC_MODE(realtime/batch_worker/disabled),SQL_RETENTION_DAYS;STORAGE_BACKENDtự động nhận diệnpostgrestừDATABASE_URLvới fallbacksqlitevà thống nhất xử lýDATABASE_URL/HRC_DATABASE_URL; tinh gọn template product về các backendsqlite,postgres,redis,memory,parquet_only. - Storage (Hierarchical & Ordering): Thêm lựa chọn adapter động trong
hierachain/consensus/ordering/storage.py(OrderingStorageHandler),hierachain/hierarchical/hierarchy_manager/base.py(_create_storage) vàhierachain/hierarchical/sub_chain/base.py— chọnPostgresAdapterkhidb_urlbắt đầu bằngpostgres:///postgresql://ngược lại dùngSQLiteAdapter; tái cấu trúc sinh đường dẫn DB củaSubChainđể luôn đảm bảodata/{safe_name}/journaltồn tại kèm guard chống path traversal. - Database (Query & Indexes): Tối ưu
hierachain/adapters/database/sqlite_schema.py(create_indexeschuyển sang dùng câu lệnhCREATE INDEXđầy đủ) và tái cấu trúchierachain/adapters/database/base/sql_adapter.pysang dùng template query tái sử dụng (_QUERIES_WITH_CHAIN/_QUERIES_WITHOUT_CHAIN) với parameterized queries cho lọc event theo chain, đồng thời sửa dọn dẹp block để xóa quahash/block_hashthay vìid/block_id.
- Database (PostgreSQL): Bổ sung
-
2026-08-31
- SDK: Thay thế câu lệnh
assertbằng kiểm tra ngoại lệRuntimeErrortường minh trong phương thức_get_sessiontạihierachain/sdk/client.pyvàhierachain/sdk/async_client.pynhằm đảm bảo tính hợp lệ của session khi chạy ở chế độ tối ưu byte-code (-O). - Logging & Giảm thiểu Rủi ro: Thay thế các khối
except Exception: passvàcontinueẩn danh bằng thông điệplogger.debug()chi tiết tronghierachain/core/parquet_log.py,hierachain/error_mitigation/journal.pyvàhierachain/risk_management/audit_logger.pykhi đóng file, xóa file lỗi, phục hồi xoay vòng log và replay batch, nâng cao khả năng gỡ lỗi mà vẫn giữ an toàn vận hành.
- SDK: Thay thế câu lệnh
-
2026-08-29
- Journal: Chuyển
TransactionJournal(hierachain/error_mitigation/journal.py) sang lưu trữ Parquet (pyarrow.parquet) với giới hạn file 100MB, rotate tự độngcurrent_{ns}.parquet, hàng đợi async giới hạn 10k và quản lýParquetWriteran toàn luồng, hỗ trợ replay nhiều file Parquet tương thích ngược.arrow/.log. - Audit: Thêm
ArrowAuditStorage(hierachain/risk_management/audit_logger.py) làm backend mặc định, lưuAuditEventqua Parquet với schema Arrow, rotate 100MB, đọc/ghi theoAuditFilter, giữ tương thích*.jsonl. - Logging: Đồng nhất toàn bộ log
log/sang Parquet quahierachain/core/parquet_log.py(write_parquet_log,ParquetLogHandler), chuyểnconsensus_scaling,view_changes,error_classifications,restoration_events,scaling_events,network_alerts,resource_scaling,rollback_operations,quarantine_dump,risk_analyzer,mitigation_strategiessang*.parquet, đổiOrderingServicesangnode_{id}_journal.parquet.
- Journal: Chuyển
-
2026-08-27
- API: Điều chỉnh xử lý xác thực trong
hierachain/api/server.py(thêm annotationRequestchoauth_dependency, hợp nhất khởi tạoverifiervà mở rộngEXEMPT_PATHSvới/api/admin/verify-identity) và loại bỏ dependencyrequire_chain_accessdư thừa tronghierachain/api/admin/endpoints.pycho/verify-identityvà/statusđể health check và xác minh identity hoạt động đúng khiHRC_ENV=product.
- API: Điều chỉnh xử lý xác thực trong
-
2026-08-24
- API: Bổ sung module
hierachain/api/context.pyquản lý vòng đời instancep2p_clientruntime theo ngữ cảnh, loại bỏ import phụ thuộc vòng khi khởi tạo/dừng server và xử lý endpoint network ping. - Hierarchical (Rebalancer): Tập trung các hàm tiện ích kiểm tra Sub-Chain vào
hierachain/hierarchical/rebalancer/utils.pyvà tối ưu hóa luồng di chuyển trạng thái khi phân tách Sub-Chain (chuyển giaopending_eventsvà kế thừa State Snapshot thay vì làm biến đổi lịch sử block đã commit). - Domains: Tái cấu trúc cấu trúc module domain event trong
hierachain/domains/events/, loại bỏ các import phụ thuộc vòng giữa lớp cơ sởDomainEventvà các định nghĩa sự kiện cụ thể.
- API: Bổ sung module
-
2026-08-23
- Mạng: Bổ sung xác thực độ lệch thời gian (
max_drift, mặc định 300 giây) cho hàmverify_messagetronghierachain/network/message_cryptographic.pynhằm đảm bảo tính tươi của các gói tin P2P và từ chối các thông điệp cũ hoặc lặp lại. - API (Rate Limiter): Tối ưu hóa
RateLimiterbộ nhớ tronghierachain/api/middleware.pyvới cơ chế dọn dẹp hết hạn theo lô định kỳ (_cleanup_expired), loại bỏ việc tái tạo toàn bộ dict $O(N)$ trong lock ở mỗi request dưới tải cao; bổ sung trích xuất IP client từ headerX-Forwarded-Forkhi chạy sau proxy/gateway. - Core & Hierarchical: Tối ưu hóa
finalize_blocktrongBlockchain(hierachain/core/blockchain.py) vàMainChain(hierachain/hierarchical/main_chain/base.py) để bảo toàn danh sáchpending_eventskhi quá trình tạo hoặc xác thực block thất bại, ngăn ngừa mất dữ liệu sự kiện; bổ sung khóa đồng bộself.lockcho các phương thức đóng block củaMainChain.
- Mạng: Bổ sung xác thực độ lệch thời gian (
-
2026-08-15
- Dọn dẹp mã thừa: Loại bỏ các hàm tiện ích không dùng trên các module hierarchical và domain (
hierachain/core/utils.py,consensus/proof_of_federation.py,domains/chains/domain_chain.py,domains/chains/metrics.py,domains/utils/cross_chain_validator.py,domains/utils/entity_tracer.py,hierarchical/multi_org.py): xóagroup_events_by_entity,_is_block_valid,_extract_signature_from_block,_analyze_compliance_status,_calculate_performance_stats,_process_string_value,_process_bytes_value,_generate_recommendations, vàcreate_multi_org_networkđể codebase gọn gàng và dễ bảo trì hơn.
- Dọn dẹp mã thừa: Loại bỏ các hàm tiện ích không dùng trên các module hierarchical và domain (
Fix (15)
-
2026-08-31
- Bảo mật (Secret Manager): Chuẩn hóa lại các template log thông báo lỗi trong
_get_from_aws(hierachain/config/secret_manager.py) nhằm loại bỏ cảnh báo nhận diện nhầm rò rỉ credential khi quét bảo mật tĩnh.
- Bảo mật (Secret Manager): Chuẩn hóa lại các template log thông báo lỗi trong
-
2026-08-29
- Bảo mật (Sanitization): Sửa
_sanitize_html_context(hierachain/security/sanitization.py) vô hiệu hóa SSTI bằng[TEMPLATE_BLOCKED]thay vìhtml.escapeno-op, và làm chặt_sanitize_filename_contextbằng allowlist^[a-zA-Z0-9_\-~.]+$và lọc../.để ngăn path traversal.
- Bảo mật (Sanitization): Sửa
-
2026-08-27
- Bảo mật (Key Manager): Bổ sung guard
PYTEST_CURRENT_TEST/pytesttronginitialize_default_keys(hierachain/security/key_manager.py) để ngăn tạo API key mặc định trong môi trường kiểm thử khiHRC_ENV=productvà cho phép khởi tạo an toàn dướipytest. - Hierarchical (Rebalancer): Xử lý cả pending events dạng
callablevànon-callabletrong_get_pending_events(hierachain/hierarchical/rebalancer/split_ops.py) bằng cách kiểm tracallable()và fallbackpending_eventslist. - Đồng thuận (BFT): Nới lỏng ngưỡng drift timestamp từ 30s lên 120s trong
verify_message_signature(hierachain/consensus/bft/helpers.py) để tránh lỗi drift khi suite chạy lâu với message tĩnh tạo lúc import. - Config (Env Manager): Bổ sung kiểm tra
HRC_ENV=test/PYTEST_CURRENT_TESTtronginit_env_config(hierachain/config/env_manager.py) để ngăn tạo.env.HRC.examplevà load.envproduct trong khi chạypytest. - Cluster (Lockdown): Chuẩn hóa
verify_signaturetronghierachain/cluster/lockdown_types.pyvới kiểm tra kiểustrrỗng vàtry/exceptquanhhmac.compare_digestđể xử lý signature không hợp lệ an toàn, duy trì tương thích với chữ ký 32 ký tự cũ.
- Bảo mật (Key Manager): Bổ sung guard
-
2026-08-24
- Đồng thuận (Ordering): Bổ sung kiểm tra batch rỗng (
if not self.current_batch: return False) cho hàmis_batch_readytrongBlockBuilder(hierachain/consensus/ordering/block_builder.py) nhằm ngăn chặn việc kích hoạt kiểm tra sẵn sàng sai lệch và gọi tạo block rỗng khi hệ thống ở trạng thái nhàn rỗi. - Core (Merkle Tree): Bổ sung tiền tố phân tách miền (
0x01) cho các phép băm node trung gian trongMerkleTree._build_tree(hierachain/core/merkle_tree.py) để ngăn ngừa rủi ro va chạm nhánh và trùng lặp băm. - API (Payload Limit): Bổ sung kiểm tra kích thước stream body trực tiếp trong
add_payload_limit(hierachain/api/middleware.py) nhằm kiểm soát giới hạn tải lên tối đa (1MB) cho các request dạng chunked transfer không cóContent-Length.
- Đồng thuận (Ordering): Bổ sung kiểm tra batch rỗng (
-
2026-08-23
- Đồng thuận (BFT): Áp dụng xác thực chữ ký nghiêm ngặt trong
_validate_consensus_message(hierachain/consensus/bft/helpers.py), đảm bảo các thông điệp đồng thuận BFT (PRE-PREPARE,PREPARE,COMMIT) có chữ ký không hợp lệ luôn bị từ chối (return False) trên mọi chế độ strictness. - Hierarchical (Proof Verification): Bổ sung cơ chế quét chuỗi dự phòng (fallback chain scan) trong
_verify_proof_in_main_chain(hierachain/hierarchical/main_chain/proofs.py) để tìm kiếm proof trên các block đã commit khi chỉ mụcproof_indexchưa kịp đồng bộ. - Cluster (Lockdown Protocol): Chuẩn hóa chữ ký HMAC-SHA256 của
LockdownMessagetronghierachain/cluster/lockdown_types.pysang định dạng 64 ký tự hex đầy đủ (256-bit), đồng thời duy trì khả năng tương thích ngược với chữ ký cắt ngắn 32 ký tự cũ trongverify_signature.
- Đồng thuận (BFT): Áp dụng xác thực chữ ký nghiêm ngặt trong
-
2026-08-14
- Bảo mật (ZK Mock Proof):
_generate_mock_prooftronghierachain/security/zk_prover.pynhận thêm tham sốsub_chain_namevà đưa vàopublic_inputs, khắc phục tình trạng commitment SHA-256 được tính vớisub_chain_name=""trong khi verifier hash với tên sub-chain thật (làm mọi proof bị reject khiENABLE_ZK_PROOFS=true)._verify_mock_proofthay thế kiểm tra prefixmock_proofthiếu chặt chẽ bằng logic_verify_mockchuẩn từzk_verifier(so hash commitment vớipublic_inputs), từ chối fake proof. - Hierarchical: Chuyển guard chain chỉ có genesis block lên trước
get_latest_block()trong_submit_proof_for_sub_chain(hierachain/hierarchical/sub_chain/proof.py), tránhIndexErrorkhi SubChain rỗng thay vì trảFalseđúng quy ước.
- Bảo mật (ZK Mock Proof):
v0.1.0 (2026-08-10)
Phiên bản cột mốc quan trọng này đánh dấu sự củng cố kiến trúc thư viện cốt lõi của HieraChain (hierachain/). Các điểm nổi bật bao gồm chuẩn hóa hoàn toàn thuật ngữ, hoàn thiện cơ chế đồng thuận hai tầng (PoA cho SubChain nội bộ và PoF cho liên minh MainChain inter-org), tích hợp các thư viện hiệu năng cao (orjson, uvloop), dọn dẹp mã nguồn thừa và tái cấu trúc router API.
Improvements (52)
-
2026-07-27
- Đồng thuận: Giới thiệu biến môi trường
HRC_MAINCHAIN_CONSENSUSvới bí danh tương thích ngượcHRC_CONSENSUS_TYPE.MainChain.__init__chấp nhận tham sốconsensus_typetùy chọn.SubChainmặc định sử dụng PoA cho sự kiện nội bộ, có thể cấu hình quaconfig["consensus_type"].
- Đồng thuận: Giới thiệu biến môi trường
-
2026-07-23
- Tái cấu trúc: Chuyển toàn bộ import nội tuyến/muộn (
os,sys,time,uuid,asyncio,warnings,httpx,pyarrow,cast) lên đầu file (module-level) trên 14 file nguồn, tuân thủ hoàn toàn PEP 8 về thứ tự import.
- Tái cấu trúc: Chuyển toàn bộ import nội tuyến/muộn (
-
2026-07-22
- API: Bổ sung thư viện
uvloopvà kích hoạt event loop bất đồng bộ hiệu năng cao trong API Server. - Blockchain: Bổ sung chỉ mục
event_type_indextrênBlockchainvà hàmto_event_listtrênBlockcho phép tra cứu sự kiện theo loại với độ phức tạp O(1). - Cache: Thay thế danh sách mặc định bằng
OrderedDictcho quản lý thứ tự LRU/TTL và đơn giản hóa vòng đời thread dọn dẹp. - Bảo mật: Tái cấu trúc logic kiểm duyệt thuật ngữ crypto bằng phương pháp duyệt đệ quy, loại bỏ serialization JSON tốn kém.
- Hierarchical: Tối ưu hóa
HierarchyManagersử dụng chung ngữ cảnh thread pool executor, giảm overhead khởi tạo thread khi đồng bộ proof. - State: Khắc phục lỗi tranh chấp (race condition) khi tính toán Root Hash trong
WorldStatebằng cách đưa sắp xếp và dựng Merkle Tree ra ngoài phạm vi Lock. - Mạng: Tối ưu hóa bộ đệm Replay Buffer trong ZMQ Transport với cơ chế chỉ dọn dẹp khi kích thước vượt ngưỡng (>1000 entries).
- Đồng thuận: Hạ ngưỡng kích hoạt xác minh chữ ký hàng loạt từ 15 xuống 4 để tận dụng tăng tốc đa luồng sớm hơn.
- API: Bổ sung thư viện
-
2026-07-18
- Lưu trữ: Tối ưu hóa giới hạn connection pool của IPFS (
max_keepalive_connections=50,max_connections=150) giúp đẩy nhanh tốc độ upload/download đồng thời. - Core: Khắc phục lỗi tranh chấp chỉ mục (race conditions) khi tạo block đồng thời bằng cách đưa các phép tính hash và index vào phạm vi Lock.
- Database: Tối ưu hóa SQLite Adapter bằng cách tăng thời gian timeout kết nối cơ sở dữ liệu lên 30.0 giây, loại bỏ lỗi khóa ghi (database lock) dưới tải song song cực lớn.
- Lưu trữ: Tối ưu hóa giới hạn connection pool của IPFS (
-
2026-07-17
- Hiệu năng: Thay thế
jsonbằngorjsontrên toàn bộ codebase (security, risk_management, network, monitoring, privacy, config, CLI, API và hierachain modules) cho serialization/deserialization nhanh hơn. - Core: Thêm tính năng phục hồi dữ liệu payload block tối ưu với phân tích cột
datatrực tiếp khi khả dụng. - Bảo mật: Tối ưu xác minh chữ ký với thread pool cấu hình được (CPU count) và tách
_get_verify_keyhelper để giải mã public key.
- Hiệu năng: Thay thế
-
2026-07-12
- Mạng: Sửa giải mã public key của seed node với xử lý đặc biệt cho ký tự phân cách
$$.
- Mạng: Sửa giải mã public key của seed node với xử lý đặc biệt cho ký tự phân cách
-
2026-07-09
- Risk Management: Cải thiện xử lý kết nối cơ sở dữ liệu trong audit logger.
- Policy: Sửa đánh giá giá trị Null trong Arrow
StructArray.
-
2026-07-05
- Database: Nâng cấp SQL adapter hỗ trợ metadata và merkle root.
- API: Đổi tên các tag phiên bản API (
v1→ledger,v2→business,v3→admin); cập nhật script test bảo mật và endpoint kiểm tra sức khỏe tương ứng.
-
2026-07-04
- API: Tái cấu trúc các module API nâng cao bảo mật và khả năng bảo trì; sử dụng background tasks để ghi log sự kiện bảo mật bất đồng bộ.
- Giám sát: Triển khai module giám sát hiệu năng toàn diện; thêm hệ thống cảnh báo phát hiện bất thường và thông báo.
- Risk Management: Triển khai
DatabaseAuditStoragecho lưu trữ audit log bền vững. - Tái cấu trúc: Loại bỏ detector phát hiện deadlock và các test liên quan; xóa các tham chiếu
sql_backend; tổ chức lại quản lý phiên bản.
-
2026-07-02
- Chuyển đổi Storage: Thay thế
SqlStorageBackendbằngSQLiteAdapter; xóa module storage cũ. - Database: Thêm bảng chain state cho tra cứu trạng thái nhanh; thêm hàm lưu trữ và truy xuất dữ liệu blockchain.
- Chuyển đổi Storage: Thay thế
-
2026-07-01
- API Routing: Tái cấu trúc lớn cấu trúc định tuyến API và tên module; tối ưu hóa middleware và WebSocket manager.
- Domains: Tái cấu trúc logic trích xuất sự kiện và quản lý transaction; loại bỏ lớp generic-level re-export shim.
-
2026-06-30
- Dọn dẹp mã thừa: Loại bỏ các module không dùng trong core (performance, parallel_engine), storage (
ChainModel), network (các class ngoại lệ mã hóa message), error_mitigation, domains (entity reporting, compliance), consensus, API và adapters. - State: Loại bỏ hàm
apply_event_listkhỏi world state. - Event Ledger: Tái dựng cấu trúc dữ liệu event và logic lưu trữ.
- Dọn dẹp mã thừa: Loại bỏ các module không dùng trong core (performance, parallel_engine), storage (
-
2026-06-24
- Dependencies: Thêm
vultuređể phát hiện mã thừa.
- Dependencies: Thêm
-
2026-06-23
- Hierarchical: Modular hóa
MainChain(proof + registry),SubChain(logic rehydration),Rebalancer(trích xuất event),HierarchyManager(khởi tạo đồng bộ cross-level), K8s namespace manager; thêmcompliance_checker. - Đồng thuận: Cải thiện logic trích xuất và xác minh chữ ký.
- Giám sát/Cảnh báo: Modular hóa thành các gói riêng biệt với types dùng chung.
- ERP: Modular hóa các thành phần tích hợp cho khả năng bảo trì tốt hơn.
- Bảo mật: Cải thiện lưu trữ API key và quản lý caching.
- Events: Chuyển các domain event class kèm hàm factory; chuyển metrics và transaction manager sang module riêng.
- Core: Cải thiện truy vấn event và xử lý type.
- Hierarchical: Modular hóa
-
2026-06-22
- BFT Consensus: Tái cấu trúc thành các thành phần modular (engine, dispatcher, view_change).
- Ordering: Tái cấu trúc xử lý batch và logic xác thực.
- Cluster: Tách các helper xác thực node và authentication.
- Redis: Tái cấu trúc adapter thành các manager class với các thao tác ủy quyền.
- Bảo mật: Tách các kiểm tra bảo mật production thành hàm helper.
- API: Tách các helper tra cứu và tạo block chain.
- WebSocket: Thêm explicit
Nonetype annotations cho các tham số tùy chọn. - Schemas: Tối ưu hóa kiểm tra độ sâu payload sử dụng duyệt stack.
-
2026-06-21
- Hiệu năng: Thay thế
jsonbằngorjsontrên tầng cơ sở dữ liệu cho serialization nhanh hơn. - Journal: Thêm ghi file nền bất đồng bộ cho event logging.
- Bảo mật: Tối ưu hóa xác minh chữ ký hàng loạt và serialization proof.
- Hiệu năng: Thay thế
-
2026-06-20
- Đồng thuận: Tối ưu hóa xác minh chữ ký hàng loạt; ủy quyền kiểm tra thuật ngữ crypto cho core utility.
-
2026-06-19
- Domains: Tái cấu trúc gói; di chuyển các module generic; loại bỏ lớp
generic/. - Hierarchical: Triển khai
HierarchyManagerđiều phối chuỗi; tái cấu trúc xử lý sub-chain proof. - Core: Cải thiện xử lý block event và Merkle tree.
- Đồng thuận: Tái cấu trúc BFT consensus; cập nhật các lớp PoA và PoF.
- Bảo mật: Loại bỏ module certificate và backup cũ; đơn giản hóa imports.
- Lưu trữ: Loại bỏ các module memory storage và world state cũ.
- State: Thêm class
WorldStatequản lý trạng thái entity. - Error Mitigation: Loại bỏ các module rollback và recovery cũ.
- Integration: Loại bỏ
ArrowClientvà các kiểu dữ liệu liên quan. - Mạng: Loại bỏ wrapper đồng bộ
NetworkClientSync. - Database: Thêm
RedisStorageAdaptercho lưu trữ blockchain trên Redis. - Config: Loại bỏ các cài đặt cache và xử lý song song không dùng.
- CLI: Sửa đường dẫn import cho
DomainChain. - Version: Đơn giản hóa module version; loại bỏ các hàm không dùng.
- Dependencies: Thêm
orjson 3.11.9.
- Domains: Tái cấu trúc gói; di chuyển các module generic; loại bỏ lớp
-
2026-06-17
- SDK: Tái cấu trúc thành async và sync clients với shared types và exceptions.
- Bảo mật: Modular hóa quản lý certificate và backup key.
- Risk Management: Tái cấu trúc và tối ưu các module.
-
2026-06-16
- Core Cache: Thay thế
caching.pyđơn khối bằng các thành phầnCachevàCacheManagermodular. - BFT: Hợp nhất các BFT helper thành module đơn.
- Cluster: Di chuyển các kiểu dữ liệu sang các module riêng (
lockdown_types,cross_level_sync_types). - Giám sát: Hợp nhất các kiểu alert và performance vào module dùng chung.
- Integration: Di chuyển các class error và sync sang module types.
- Hierarchical: Tập trung các types dùng chung vào module
types.pymới. - Error Mitigation: Thêm các module error mitigation toàn diện (consensus_validator, resource_validator, network_recovery, auto_scaler, backup_recovery).
- Core Cache: Thay thế
-
2026-06-15
- Tái cấu trúc API: Tách
v1/endpoints.pyđơn khối thành các thành phần modular; modular hóav2/endpoints.py; sửa đường dẫn importv3. - GraphQL: Tái cấu trúc schema và resolvers cho cấu trúc tốt hơn.
- Database: Thêm base SQL adapter và tích hợp vào
SQLiteAdapter. - Server: Modular hóa middleware và GraphQL handler; tối ưu hóa khởi tạo server; modular hóa blockchain explorer thành các thành phần.
- Tái cấu trúc API: Tách
Breaking Changes (1)
- API Routing & Data Schemas: Tái cấu trúc toàn bộ đường dẫn API theo các không gian tên domain (
/api/ledger,/api/business,/api/admin), đổi tên các trường payload từtransaction_*sangevent/details, và tái cấu trúc SDK client.
v0.0.6 (2026-07-15)
Phiên bản này tập trung vào củng cố bảo mật cho logging subsystem, đơn giản hóa core blockchain và các tầng hierarchical, cùng với hardening consensus với xử lý lỗi chính xác.
Improvements (6)
- Secure Logging: Thêm redaction dữ liệu nhạy cảm dựa trên regex trong
hierachain/security/: các giá trị nhạy cảm được thay bằng'***'để ngăn rò rỉ thông tin xác thực. Giới thiệu_SEVERITY_MAPđể logging nhất quán, thay thế các method log level trực tiếp bằnglogger.log(), giảm trùng lặp trên toàn bộ call sites. - Core Blockchain Refactoring: Thêm
_rebuild_event_indexesđể reset và rebuild event indexes sau khi load blocks, đảm bảo index consistency giữa các lần khởi động. Thay đổi hash mismatch từ silent correction thành exception, không còn che giấu corruption tiềm ẩn. Thay thế dictionary access bằngblock.to_event_list()cho event filtering sạch hơn. - Consensus Hardening: Cải thiện
_contains_forbidden_termsvới regex word-boundary matching để loại bỏ false positives. Loại bỏ fallback random signature generation; signing fail rõ ràng với error message khi thiếu private key.ProofOfFederationtự động sinh key pairs cho validators, exposepublic_keyproperty, thêmblock_hashvào consensus metadata._verify_block_quorumnhận optionalsigner_idđể tránh quét event dư thừa. - Hierarchical Layer Simplification: Loại bỏ temporary entity index mapping, local chain clear, event statistics reset trong sub-chain rehydration. Xóa redundant event addition vào
Blockchain.pending_events. Streamline_recover_pending_events_from_journalđể chỉ đếm uncommitted events, chuyển event reconstruction sangOrderingRecovery. - Testing & Benchmark: Nâng cấp ZK Proof-of-Federation test với keypair thật, chữ ký thật và pre-consensus block validation. Cập nhật storage benchmark dùng
Blockclass từhierachain.core, đổi tênevent_typethànhevent. Thêm helper function choProofOfFederationinstantiation với signing key.
Fix (1)
- Logger Test Alignment: Cập nhật test assertions để khớp với method signatures mới của logger (
mock_info→mock_log,call_argsindexing thay đổi).
v0.0.5 (2026-06-20)
Phiên bản này tập trung vào cải thiện core package hierachain/, bao gồm thay thế ipfshttpclient bằng httpx cho Kubo RPC, tạo sub-chain idempotent, củng cố toàn vẹn chain, persist block và xử lý an toàn các trường hợp biên.
Improvements (6)
- Kubo RPC Migration: Thay thế
ipfshttpclientbằnghttpxtronghierachain/api/storage/ipfs_client.py, thực thi IPFS operations trực tiếp qua Kubo HTTP RPC API. Thêm_parse_multiaddrđể trích xuất host/port từ multiaddress strings. Refactor core operations (upload, download, pin, unpin, list_pins, stats) sanghttpx.ClientPOST requests. Loại bỏ_IPFSClientContextwrapper class. - Idempotent Sub-Chain Creation: API v1 (
hierachain/api/v1/endpoints.py) kiểm tra sub-chain tồn tại trước khi tạo, trả về201 Createdvới audit trail"already_exists"cho duplicate. Xử lý409 Conflictkhimanager.add_sub_chainbáo duplicate quaValueError. - Chain Integrity Hardening: Thêm
_verify_chain_links()tronghierachain/consensus/ordering/storage.pyđể xác thực chuỗiprevious_hashgiữa các block._block_from_dictraiseValueErrorkhi computed hash mismatch stored hash, thay vì chỉ log error. - Event Enrichment & Block Persistence: Ordering service (
hierachain/consensus/ordering/service.py) tiêmevent_idvàoevent_datapayload trước khi tạo pending event. Recovery (recovery.py) ưu tiênevent_idtừ enrichedevent_data. Sub-chain finalize (hierachain/hierarchical/sub_chain.py) persist block qua storage handler, đảm bảo rehydration giữ nguyên consensus events. - Block Overwrite: Trong
hierachain/storage/sql_backend.py,save_blockquery existing block theoindex/chain_name, xóa và ghi đè thay vì silentUNIQUE constrainthandling. - Zero Children Safeguard: Rebalancer (
hierachain/hierarchical/rebalancer.py) trả về0an toàn khinum_children <= 0, ngăn lỗi modulo-by-zero.
Fix (1)
- Integrity Check Locking: Di chuyển post-rehydration chain integrity validation ra ngoài lock trong
hierachain/hierarchical/sub_chain.py. Downgrade mismatch log từ error xuống warning để tính đến pending consumer thread blocks.
v0.0.4 (2026-05-25)
Phiên bản này tập trung vào Node Identity với keypairs Ed25519/Curve25519, mã hóa ZeroMQ CURVE cho P2P, endpoint API v3 cho event an toàn, chữ ký Ed25519 cho Proof of Federation, xác thực timestamp BFT chống replay, và củng cố bảo mật toàn diện trong hierachain/.
Improvements (4)
- Node Identity & P2P Networking: Giới thiệu
NodeIdentitytronghierachain/security/identity_loader.py, mã hóa ZeroMQ CURVE trongNetworkClient,send_direct/broadcast, ping-pong heartbeat. Tích hợp node identity quaHierarchyManager,DomainChain,OrderingServicevà BFT consensus. - API v3 & Chữ ký số: Endpoint
POST /api/v3/chains/{chain_name}/secure-eventsvới xác thực chữ ký Ed25519, giới hạn payload 1MB và độ sâu tối đa 10. Thêm trườngsender/signaturevào schema v1 với validation hex nghiêm ngặt. - Củng cố Consensus: Chữ ký Ed25519 cho Proof of Federation (
_create_federation_signature,_verify_block_quorum), xác thực timestamp BFT 30 giây chống replay, xác minh block hash khi reconstruction,block_intervalcấu hình quaHRC_BLOCK_INTERVAL. - Bảo mật: Từ chối ZK proof giả trong production (cho phép test), so sánh hằng số thời gian HMAC (
hmac.compare_digest),threading.RLocktrong LockdownProtocol, tăng PBKDF2 lên 310,000 iterations,AdvancedCachevới TTL/LRU choKeyManager.
Fix (2)
- Consensus & Storage: Sửa xác thực block signature và sinh key tự động trong PoA, sửa return value mặc định trong BFT handler từ
TruesangFalse, thêm validation proof_hash 64-ký tự SHA-256, xác thực toàn vẹn chain sau deserialization, thêm cộtcreator_id/signaturevào block DB model. - API & SDK: Cập nhật default base URL SDK từ 8000 sang 2661, validation tên sub-chain bằng regex, thread-safe
RateLimiter, validation CID/nonce trong IPFS client.
v0.0.3 (2026-05-02)
Phiên bản này tập trung vào cải thiện type safety toàn diện trong hierachain/, đạt full Mypy compliance, xác thực Ed25519 64-byte nghiêm ngặt, canonicalization JSON cho xác minh deterministic, HMAC lockdown protocol, middleware giới hạn payload, và validation timestamp 24 giờ.
Improvements (4)
- Tuân thủ Mypy đầy đủ: Giải quyết các cảnh báo static typing trên tất cả module: consensus, API, security, network, monitoring, error mitigation, storage, adapters, hierarchical, domains, core và cluster.
- Xác thực Signature Ed25519: Thực thi chiều dài 64-byte nghiêm ngặt cho signature Ed25519 trong
verify_signature_standaloneđể ngăn chặn bypass validation. - Canonicalization JSON: Triển khai
get_canonical_bytesvới sắp xếp dict đệ quy, chuẩn hóa Unicode NFC, định dạng float nhất quán cho xác minh chữ ký deterministic. - Bảo mật: Thêm
PayloadLimitMiddlewaretừ chối POST/PUT/PATCH trên 1MB, validation proof timestamp 24h, ngăn chặn API key mặc định trong production (RuntimeError), refactor HMAC lockdown protocol (hmac.newSHA256).
Fix (1)
- BFT & Validation: Giới hạn BFT message log ở 10,000 entries ngăn memory growth vô hạn, cải thiện IPFS connection handling (
_ensure_connectedvới None checks), sửa bare except clauses, thêm\bword-boundary matching cho validation thuật ngữ cryptocurrency.
v0.0.2 (2026-04-04)
Phiên bản này tập trung vào tăng cường bảo mật, khả năng quan sát hệ thống và các cải thiện quan trọng về ổn định cho core package hierachain/, giải quyết các vấn đề thực tế phát hiện trong quá trình kiểm thử và đánh giá.
Improvements (5)
-
Quản lý Secret & Thông tin xác thực:
- Giới thiệu
SecretManagerthống nhất trongconfigđể quản lý thông tin xác thực an toàn với hỗ trợ nhiều backend. - Ngăn chặn vô tình làm lộ bí mật trong logs bằng cách che tên secret và định danh backend.
- Ngăn chặn tự động sinh master key trong môi trường production để yêu cầu cấp phát key rõ ràng.
- Giới thiệu
-
Bảo mật & Chính sách:
- Thêm lưu trữ persistent cho brute force lockouts và chủ động từ chối các mẫu input nguy hiểm trong policy engine.
- Tăng cường kiểm tra tạo thư mục để ngăn chặn tấn công path traversal trong đường dẫn cơ sở dữ liệu SQLite của SubChain.
- Thêm module bảo mật chuyên dụng cho endpoint GraphQL với xác thực input và kiểm soát truy cập.
-
Khả năng Quan sát & Giám sát:
- Tích hợp thu thập metrics Prometheus để giám sát thời gian thực độ trễ API, thông lượng khối và sức khỏe consensus.
- Thêm hỗ trợ logging JSON để tích hợp tốt hơn với các hệ thống tổng hợp logs như ELK và Loki.
- Thêm phương thức alert đơn giản và instance manager toàn cục để thông báo sự kiện chủ động.
- Tăng cường rate limiting API với backend Redis cho các deployment phân tán.
-
Cải thiện Core & Hierarchical Chain:
- Triển khai phát hiện deadlock với timeout và cơ chế phục hồi trong quản lý lock.
- Leo thang mức độ nghiêm trọng của ZK proof bị thiếu lên mức critical và tích hợp trigger alert tự động.
- Cải thiện độ mạnh mẽ của việc submit proof và xử lý shutdown trong hierarchical chains.
- Thêm xác thực input cho
ChannelLedger.add_eventđể ngăn chặn events bị malformed.
-
Công cụ Nhà phát triển & CLI:
- Thêm lệnh CLI chuyên dụng cho sinh, backup và phục hồi key (
python -m hierachain key ...). - Thêm endpoint để fetch khối cụ thể theo index hoặc hash cho audit mục tiêu.
- Cập nhật SDK client để hỗ trợ đầy đủ multi-chain API v3.
- Đồng bộ block schema với event schema để có cấu trúc dữ liệu nhất quán.
- Thêm lệnh CLI chuyên dụng cho sinh, backup và phục hồi key (
Fix (2)
-
Ổn định Consensus & Ordering:
- Giải quyết race condition quan trọng trong commit khối và xử lý sự kiện chờ trong
OrderingService. - Đảm bảo các hoạt động lockdown và resume là atomic để ngăn chặn trạng thái không nhất quán trong quá trình bảo trì.
- Ngăn chặn mất dữ liệu im lặng trong quá trình phục hồi transaction journal với xác thực đúng đắn.
- Cải thiện logic phục hồi state với xác thực config và modularized recovery từ transaction journal.
- Giải quyết race condition quan trọng trong commit khối và xử lý sự kiện chờ trong
-
Core & Hierarchical Chain:
- Sửa race condition trong quản lý hierarchical chain và thêm thủ tục shutdown graceful.
v0.0.1 (2026-03-22)
Phiên bản này đánh dấu việc hoàn thiện định hướng kiến trúc ban đầu của HieraChain, tập trung vào việc hợp nhất các thành phần cốt lõi thành một khung nguyên mẫu thống nhất.
Improvements (4)
- Tích hợp Lưu trữ IPFS: Hỗ trợ lưu trữ dữ liệu off-chain với mã hóa AES-256-GCM và định danh CID trên toàn bộ các giao diện API (REST, GraphQL, WebSocket).
-
Tối ưu Hiệu suất & Khả năng mở rộng:
- Xử lý khối song song trong
OrderingService. - Caching cho xác thực chứng chỉ và quyền hạn.
- Tối ưu hóa worker pool (75% CPU) và hỗ trợ đa luồng cho SQLite.
- Xử lý khối song song trong
-
Công cụ cho Nhà phát triển: Ra mắt
BlockchainExplorerdashboard và hệ thống tài liệu kỹ thuật chi tiết. -
Bảo mật & Toàn vẹn:
- Hỗ trợ Merkle Root trong block header và lưu trữ.
- Đảm bảo tính nhất quán của hash và thread-safe cho các thành phần core.
- Chuẩn hóa logging bảo mật với
SecureLogger.
Fix (1)
-
Ổn định & QA:
- Sửa lỗi Chain Rehydration giúp khôi phục trạng thái chính xác sau khi restart.