Core Module (hierachain/core/*)
1. Tổng quan
Module core chứa các cấu trúc dữ liệu nền tảng của sổ cái. Khối lưu trữ các sự kiện trong bảng Apache Arrow giúp lọc dữ liệu trong bộ nhớ với tốc độ cao và tính toán mã băm xác định. Cây Merkle mật mã cung cấp bằng chứng chứng minh sự kiện có mặt trong khối, kết hợp với bộ nhớ đệm đa tầng tăng tốc độ tra cứu khối, sự kiện và thực thể.
2. Các thành phần nền tảng
Toàn bộ thành phần cốt lõi nằm tại hierachain/core/.
2.1 Khối (block.py)
- Lưu trữ bản ghi sự kiện trong một
pyarrow.Table. - Truy vấn các trường sự kiện qua biểu thức tính toán của Arrow thay vì vòng lặp Python.
- Tính toán mã băm khối và Merkle root xác định.
2.2 Chuỗi khối (blockchain.py)
- Quản lý trạng thái chuỗi, khởi tạo khối nguyên thủy (genesis) và hàng đợi sự kiện đang chờ.
- Thực thi cơ chế khóa an toàn đa luồng kèm phát hiện bế tắc (deadlock).
- Duy trì chỉ mục thực thể phục vụ tra cứu lịch sử sự kiện nhanh chóng.
2.3 Cây Merkle (merkle_tree.py)
- Xây dựng cây Merkle nhị phân từ mã băm các sự kiện.
- Tạo bằng chứng bao hàm (inclusion proof) phục vụ kiểm toán.
- Xác thực Merkle root giữa các tầng chuỗi trong kiến trúc phân cấp.
2.4 Bộ nhớ đệm và Trình quản lý Caching (cache.py, cache_manager.py)
- Triển khai các thuật toán dọn dẹp cache: LRU, LFU, FIFO và TTL.
BlockchainCacheManagerđiều phối lưu cache đồng bộ cho khối, sự kiện và trạng thái thực thể.
3. Cấu trúc bộ nhớ và lưu trữ của Block
Mỗi đối tượng Block đóng gói một bảng Arrow cùng metadata có cấu trúc:
- Bố cục nhị phân gọn gàng giảm tải bộ nhớ cho các đối tượng Python.
- Thao tác lọc theo
entity_idvàeventchạy trực tiếp trên nhân C++ của Arrow. - Dữ liệu nhị phân tuần tự hóa bảo đảm tính ổn định của mã băm trên mọi nền tảng.
4. An toàn đa luồng và cơ chế khóa
Lớp Blockchain điều phối truy cập đồng thời thông qua cơ chế khóa có giới hạn thời gian:
- Theo dõi thời gian giữ khóa với ngưỡng cấu hình linh hoạt.
- Hàm
safe_lock(timeout)ngăn chặn tình trạng treo luồng khi xảy ra tranh chấp ghi đồng thời. - Cơ chế callback thông báo cảnh báo tắc nghẽn lên tầng giám sát hệ thống.
5. Hệ thống Caching đa tầng
BlockchainCacheManager quản lý ba tầng bộ nhớ đệm chuyên biệt:
| Tầng Cache | Chính sách mặc định | Thao tác đích |
|---|---|---|
| Block Cache | LRU (Least Recently Used) | Truy xuất khối theo chỉ mục hoặc mã băm |
| Event Cache | TTL (Time To Live) | Truy vấn luồng sự kiện gần đây |
| Entity Cache | LFU (Least Frequently Used) | Truy vết lịch sử vòng đời thực thể |
6. Thực thi đồng thời
Các tác vụ xác thực mật mã và đồng bộ liên chuỗi chạy đồng thời thông qua các worker ThreadPoolExecutor do môi trường thực thi quản lý. Quá trình băm và kiểm tra chữ ký được mở rộng trên nhiều lõi CPU trong khi vẫn bảo toàn thứ tự khối tuần tự.