____14DS — Events dưới dạng Flags-Enum và events_result
Yếu tố kích hoạt S6, phát hiện AP7
Chuỗi Event từ DS03 (máy trạng thái với prev_event_sha256) trong lần sử dụng đầu tiên đã dừng lại dưới dạng các tệp đơn lẻ — phát hiện (Repo-Bloat) và việc sửa chữa đã dẫn đến cách biểu diễn Flags trong Container: Các bước là Bits, kết quả là một Bitmask.
Định nghĩa Enum
Được quy định mang tính quy phạm trong Schema (không lặp lại trong từng Container):
| Bước | Bit | Ý nghĩa |
|---|---|---|
offered |
1 | Đã yêu cầu chữ ký (tài liệu được trình để ký) |
accepted |
2 | Người nhận đã ghi nhận (§ 126b Abs. 1 BGB: truy cập) |
denied |
4 | Người nhận từ chối (loại trừ sign) |
sign |
8 | Việc ký đã được thực hiện (tham chiếu Facsimile/khóa) |
withdraw |
16 | Việc ký đã được rút lại (loại trừ sign) |
Tập Flags
"events": {
"enum_definition": {
"offered": 1, "accepted": 2, "denied": 4, "sign": 8, "withdraw": 16
},
"flags_set": {
"offered": { "set": true, "timestamp_utc": "2026-09-13T17:31:00Z", "uuidV7": "…", "sha256": "f1358236…" },
"accepted": { "set": true, "timestamp_utc": "2026-09-13T17:33:00Z", "uuidV7": "01a09bd4…", "sha256": "71905eea…" },
"denied": { "set": false, "timestamp_utc": null, "uuidV7": null, "sha256": null },
"sign": { "set": true, "timestamp_utc": "2026-09-13T17:35:00Z", "uuidV7": "01a09bd6…", "sha256": "dab7ddfe…" },
"withdraw": { "set": false, "timestamp_utc": null, "uuidV7": null, "sha256": null }
},
"events_result": 11,
"chain_valid": true
}
Kết quả: events_result = 11
offered(1) + accepted(2) + sign(8) = 11
| Kết quả | Diễn giải |
|---|---|
| 1 | chỉ có offered — pending |
| 2 | chỉ có accepted — không có offered (bất thường, cần kiểm tra) |
| 3 | offered + accepted — sẵn sàng để ký |
| 11 | offered + accepted + sign — đã ký đầy đủ |
| 4 | denied — bị từ chối (không có sign) |
| 16 | withdrawn — đã rút lại |
| 7 | offered + accepted + denied — mâu thuẫn (chain_valid=false) |
Bitmask có thể kiểm chứng một cách tất định — người kiểm tra sẽ tính lại để đối chiếu:
jq -r '.events.events_result' container.gcpn.md
jq -r '[.events.flags_set[] | select(.set == true)] | length' container.gcpn.md
# → Anzahl der gesetzten Bits muss mit Popcount(events_result) übereinstimmen
Không thể xảy ra mâu thuẫn
Máy trạng thái (DS03) và ngữ nghĩa Bits cùng nhau ngăn chặn các diễn biến bất thường:
denied(4) loại trừsign— sau khi bị từ chối thì không thể ký.withdraw(16) loại trừsign— sau khi rút lại thì thủ tục đã kết thúc.chain_valid: false= chuỗiprev_event_sha256bị đứt đoạn — giá trị chứng cứ bị giảm (DS04).
Biên bản kết quả nghiên cứu (AP7)
| AP | Phát hiện | Thực hiện |
|---|---|---|
| AP7 | Events dưới dạng tệp đơn lẻ → Bloat; trình tự trạng thái dưới dạng văn bản | Flags-Enum với events_result-Bitmask + chain_valid |
Chuỗi prev_event_sha256 vẫn được giữ lại (được tóm gọn dưới dạng xác nhận chain_valid) — các Bits thay thế cho việc lặp lại máy trạng thái, không phải cho việc kiểm tra tính toàn vẹn.
Ngày tạo: 260913 | Phần III, Bài viết ____14DS | Loạt bài: digital-signage