API v3
Mục đích
Mô tả các endpoint REST trong phiên bản API v3 (System & Admin) dùng cho các tác vụ quản trị hệ thống: xác minh danh tính node, kiểm tra trạng thái hoạt động (uptime, version, active chains).
Tổng quan endpoint
- POST
/api/v3/verify-identity— Xác minh danh tính node bằng cách ký vào một chuỗi challenge. (Yêu cầu xác thực) - GET
/api/v3/status— Lấy báo cáo chi tiết về trạng thái node. (Yêu cầu API Key nếuAUTH_ENABLED=true)
Schema chính (trích từ hierachain/api/v3/schemas.py)
-
VerifyIdentityRequestchallenge: str(Chuỗi challenge cần ký, hex encoded)
-
VerifyIdentityResponsestatus: str("success")node_id: str(Định danh của node)signature: str(Chữ ký số của challenge)challenge: str(Challenge gốc đã nhận)
-
NodeStatusResponsestatus: str("active")version: str(Phiên bản Ledger)chains_active: int(Số lượng sub-chain đang hoạt động)license_active: bool(Trạng thái bản quyền)uptime: str(Thời gian hoạt động của hệ thống)
Ví dụ sử dụng
Giả định server đang chạy tại http://localhost:2661:
Xác minh danh tính node (Verify Identity)
Endpoint này thường được sử dụng bởi các công cụ quản lý để xác nhận node này là thành viên hợp lệ của mạng lưới.
sequenceDiagram
participant Client
participant Node
Client->>Node: POST /verify-identity {challenge: "abcd"}
Note over Node: Ký challenge bằng Private Key
Node-->>Client: 200 OK {signature: "..."}
Note over Client: Verify signature bằng Node Public Key
Request:
curl -X POST http://localhost:2661/api/v3/verify-identity \
-H "Content-Type: application/json" \
-d '{
"challenge": "abcd1234"
}'
Phản hồi (200 OK):
(Lưu ý: signature sẽ là chuỗi hex thực tế được ký bởi private key của node)
Kiểm tra trạng thái node (Node Status)
Lấy thông tin tổng quan về sức khỏe và trạng thái của node.
Request:
Phản hồi (200 OK):
{
"status": "active",
"version": "0.1.0",
"chains_active": 5,
"license_active": true,
"uptime": "1d 2h 30m"
}
Mã trạng thái & lỗi phổ biến
- 200 OK — Thành công.
- 500 Internal Server Error — Lỗi xác thực danh tính (ví dụ: lỗi crypto khi ký) hoặc lỗi nội bộ khi tính toán trạng thái.
Ghi chú triển khai (rút gọn từ endpoints.py)
- Identity Provider: Sử dụng
LocalKeyProviderđể tải identity từ file (đường dẫn trong settings) hoặc tạo key tạm thời nếu file không tồn tại. - Hierarchy Manager: Được inject vào
get_statusđể đếm số lượng chain active và tính toán uptime.