docs(guanghu-os): register native projection shadow deployment
This commit is contained in:
parent
2e076c4d5e
commit
ace87cfba7
6 changed files with 84 additions and 14 deletions
|
|
@ -46,5 +46,6 @@ JD 启动、磁盘或默认启动项。只有接收端、认证投影器、真
|
||||||
|
|
||||||
## 当前结论
|
## 当前结论
|
||||||
|
|
||||||
协议源码和隔离整链测试为 100。BS-GZ 接收端部署、BS-SG 认证投影器部署、真实原生新鲜度、
|
协议源码、隔离整链测试、BS-GZ 回环影子接收端和 BS-SG 认证投影器均为 100;合成 READY
|
||||||
nginx 切换、原生公网等价、完整 Forgejo 等价和生产启动切换均保持 0。
|
完成精确只读回读后已恢复 DORMANT。真实原生新鲜度、nginx 切换、原生公网等价、完整
|
||||||
|
Forgejo 等价和生产启动切换仍保持 0。
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
schema: guanghu.repository-projected-server-receipt/v1
|
||||||
|
receipt_id: GHOS-BS-GZ-006-NATIVE-PROJECTION-SHADOW-20260815-001
|
||||||
|
observed_at: 2026-08-15T20:16:32+08:00
|
||||||
|
node_id: BS-GZ-006
|
||||||
|
instance_id: b2ecf109-1999-4643-b223-e67e24d7667d
|
||||||
|
source_commit: 2e076c4d5ea75da55abecfd9d021fa4d1709705e
|
||||||
|
source_tree: c631bed8b042e718f4cbeb5b409446613a48687d
|
||||||
|
server_receipt: /var/lib/guanghu-os/receipts/BS-GZ-006-NATIVE-PROJECTION-SHADOW-RECEIPT.hldp
|
||||||
|
server_receipt_sha256: d3c22066ef5ad1880d4724df8bc1e8e99c1a6cf4ad5e35b662ccb3522e40a7bb
|
||||||
|
result: PASS_100_SHADOW_ONLY
|
||||||
|
listener: 127.0.0.1:19223
|
||||||
|
external_listener: false
|
||||||
|
synthetic_ready_exact_readback: 100
|
||||||
|
post_test_state: DORMANT
|
||||||
|
nginx_changed: false
|
||||||
|
current_public_anchor_http: 200
|
||||||
|
current_public_code_http: 200
|
||||||
|
bs_gz_shadow_receiver_deployed: 100
|
||||||
|
bs_sg_authenticated_projector_deployed: 100
|
||||||
|
live_native_freshness_readback: 0
|
||||||
|
nginx_public_route_switched: 0
|
||||||
|
public_native_anchor_equivalence: 0
|
||||||
|
public_native_code_channel_equivalence: 0
|
||||||
|
full_forgejo_equivalence: 0
|
||||||
|
production_native_cutover: 0
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
schema: guanghu.repository-projected-server-receipt/v1
|
||||||
|
receipt_id: GHOS-BS-SG-003-NATIVE-PROJECTION-RELAY-20260815-001
|
||||||
|
observed_at: 2026-08-15T20:16:37+08:00
|
||||||
|
node_id: BS-SG-003
|
||||||
|
instance_id: 7a500f2d-9aed-4b93-b3b8-59c87c65d031
|
||||||
|
source_commit: 2e076c4d5ea75da55abecfd9d021fa4d1709705e
|
||||||
|
source_tree: c631bed8b042e718f4cbeb5b409446613a48687d
|
||||||
|
server_receipt: /var/lib/guanghu-os/BS-SG-003-NATIVE-PROJECTION-RELAY-RECEIPT.hldp
|
||||||
|
server_receipt_sha256: e567ec9a776641bbde61b078a9c69c5988e105e91a3346394e0fdf409965d387
|
||||||
|
result: PASS_100_AUTHENTICATED_PROJECTOR_DORMANT
|
||||||
|
relay_key_fingerprint: SHA256:g9GHrN0h0ih48hWkjJbY5N2f/gmfTQxSEcSdnrWuAzM
|
||||||
|
front_door_host_fingerprint: SHA256:P2EtuYFg8hptha4s0auP4yzp+Wg+H27bw4mdqzk1Cvk
|
||||||
|
existing_native_icmp_relay_active: true
|
||||||
|
new_projection_timer_active: true
|
||||||
|
last_projected_action: dormant
|
||||||
|
relay_receipt_status: RECOVERY_CAPABILITY_SENT
|
||||||
|
relay_receipt_mtime: 2026-08-07T06:21:00.386588868+08:00
|
||||||
|
existing_native_icmp_relay_changed: false
|
||||||
|
bs_gz_shadow_receiver_deployed: 100
|
||||||
|
bs_sg_authenticated_projector_deployed: 100
|
||||||
|
live_native_freshness_readback: 0
|
||||||
|
nginx_public_route_switched: 0
|
||||||
|
public_native_anchor_equivalence: 0
|
||||||
|
public_native_code_channel_equivalence: 0
|
||||||
|
full_forgejo_equivalence: 0
|
||||||
|
production_native_cutover: 0
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"schema": "guanghu.jd-native-public-projection-contract/v1",
|
"schema": "guanghu.jd-native-public-projection-contract/v1",
|
||||||
"contract_id": "GHOS-JD-NATIVE-PUBLIC-PROJECTION-001",
|
"contract_id": "GHOS-JD-NATIVE-PUBLIC-PROJECTION-001",
|
||||||
"state": "SOURCE_AND_ISOLATED_TEST_ONLY",
|
"state": "AUTHENTICATED_SHADOW_DEPLOYED_DORMANT",
|
||||||
"causal_route": [
|
"causal_route": [
|
||||||
"JD-FD-PRIMARY",
|
"JD-FD-PRIMARY",
|
||||||
"BS-SG-003",
|
"BS-SG-003",
|
||||||
|
|
@ -68,8 +68,8 @@
|
||||||
"acceptance_gates": {
|
"acceptance_gates": {
|
||||||
"contract_source": 100,
|
"contract_source": 100,
|
||||||
"isolated_end_to_end_test": 100,
|
"isolated_end_to_end_test": 100,
|
||||||
"bs_gz_shadow_receiver_deployed": 0,
|
"bs_gz_shadow_receiver_deployed": 100,
|
||||||
"bs_sg_authenticated_projector_deployed": 0,
|
"bs_sg_authenticated_projector_deployed": 100,
|
||||||
"live_native_freshness_readback": 0,
|
"live_native_freshness_readback": 0,
|
||||||
"nginx_public_route_switched": 0,
|
"nginx_public_route_switched": 0,
|
||||||
"public_native_anchor_equivalence": 0,
|
"public_native_anchor_equivalence": 0,
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"schema": "guanghu.os-control-architecture/v1",
|
"schema": "guanghu.os-control-architecture/v1",
|
||||||
"record_id": "HLP-GUANGHU-OS-CONTROL-001",
|
"record_id": "HLP-GUANGHU-OS-CONTROL-001",
|
||||||
"version": "2026-08-15.6",
|
"version": "2026-08-15.7",
|
||||||
"state": "CURRENT_CANONICAL",
|
"state": "CURRENT_CANONICAL",
|
||||||
"final_topology": "GUANGHU_MASTER_WITH_ON_DEMAND_LINUX_SUBCONTROL_AND_RESCUE",
|
"final_topology": "GUANGHU_MASTER_WITH_ON_DEMAND_LINUX_SUBCONTROL_AND_RESCUE",
|
||||||
"control_ownership": {
|
"control_ownership": {
|
||||||
|
|
@ -39,7 +39,7 @@
|
||||||
"linux_on_demand_subcontrol": 0,
|
"linux_on_demand_subcontrol": 0,
|
||||||
"linux_rescue_preserved": 100,
|
"linux_rescue_preserved": 100,
|
||||||
"final_guanghu_os_master": 0,
|
"final_guanghu_os_master": 0,
|
||||||
"next_engineering_gate": "DEPLOY_AND_VERIFY_BS_GZ_006_LOOPBACK_SHADOW_RECEIVER_WITHOUT_NGINX_OR_BOOT_CHANGES"
|
"next_engineering_gate": "DESIGN_AND_TEST_FAIL_CLOSED_LINUX_FALLBACK_BEFORE_ANY_NGINX_ROUTE_SWITCH_OR_NATIVE_BOOT"
|
||||||
},
|
},
|
||||||
"implementation": {
|
"implementation": {
|
||||||
"guanghu_supervisor_lifecycle_contract_source": 100,
|
"guanghu_supervisor_lifecycle_contract_source": 100,
|
||||||
|
|
@ -56,8 +56,8 @@
|
||||||
"jd_physical_host_isolated_qemu_capability": 100,
|
"jd_physical_host_isolated_qemu_capability": 100,
|
||||||
"native_public_projection_contract_source": 100,
|
"native_public_projection_contract_source": 100,
|
||||||
"native_public_projection_isolated_end_to_end_test": 100,
|
"native_public_projection_isolated_end_to_end_test": 100,
|
||||||
"bs_gz_shadow_projection_receiver": 0,
|
"bs_gz_shadow_projection_receiver": 100,
|
||||||
"bs_sg_authenticated_projection_sender": 0,
|
"bs_sg_authenticated_projection_sender": 100,
|
||||||
"live_native_projection_freshness": 0,
|
"live_native_projection_freshness": 0,
|
||||||
"nginx_native_projection_route_switch": 0,
|
"nginx_native_projection_route_switch": 0,
|
||||||
"public_native_anchor_equivalence": 0,
|
"public_native_anchor_equivalence": 0,
|
||||||
|
|
@ -84,6 +84,18 @@
|
||||||
"native_physical_residency": 0,
|
"native_physical_residency": 0,
|
||||||
"public_native_service_equivalence": 0
|
"public_native_service_equivalence": 0
|
||||||
},
|
},
|
||||||
|
"native_public_projection_shadow_evidence": {
|
||||||
|
"source_commit": "2e076c4d5ea75da55abecfd9d021fa4d1709705e",
|
||||||
|
"source_tree": "c631bed8b042e718f4cbeb5b409446613a48687d",
|
||||||
|
"bs_gz_server_receipt": "/var/lib/guanghu-os/receipts/BS-GZ-006-NATIVE-PROJECTION-SHADOW-RECEIPT.hldp",
|
||||||
|
"bs_gz_server_receipt_sha256": "d3c22066ef5ad1880d4724df8bc1e8e99c1a6cf4ad5e35b662ccb3522e40a7bb",
|
||||||
|
"bs_sg_server_receipt": "/var/lib/guanghu-os/BS-SG-003-NATIVE-PROJECTION-RELAY-RECEIPT.hldp",
|
||||||
|
"bs_sg_server_receipt_sha256": "e567ec9a776641bbde61b078a9c69c5988e105e91a3346394e0fdf409965d387",
|
||||||
|
"synthetic_ready_shadow_readback": 100,
|
||||||
|
"post_test_state": "DORMANT",
|
||||||
|
"live_native_freshness_readback": 0,
|
||||||
|
"nginx_public_route_switched": 0
|
||||||
|
},
|
||||||
"historical_evidence_policy": {
|
"historical_evidence_policy": {
|
||||||
"bare_metal_gosk_ghal_receipts_remain_valid_for_observed_capabilities": true,
|
"bare_metal_gosk_ghal_receipts_remain_valid_for_observed_capabilities": true,
|
||||||
"historical_linux_free_completion_formula_is_current": false,
|
"historical_linux_free_completion_formula_is_current": false,
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ test("current JD state stays transitional and cannot impersonate final master co
|
||||||
});
|
});
|
||||||
|
|
||||||
test("the physical shadow and host QEMU cycles are registered without impersonating Guanghu-owned boot control", () => {
|
test("the physical shadow and host QEMU cycles are registered without impersonating Guanghu-owned boot control", () => {
|
||||||
assert.equal(contract.version, "2026-08-15.6");
|
assert.equal(contract.version, "2026-08-15.7");
|
||||||
assert.equal(contract.implementation.guanghu_supervisor_lifecycle_contract_source, 100);
|
assert.equal(contract.implementation.guanghu_supervisor_lifecycle_contract_source, 100);
|
||||||
assert.equal(contract.implementation.target_readback_and_mandatory_reclaim_state_machine, 100);
|
assert.equal(contract.implementation.target_readback_and_mandatory_reclaim_state_machine, 100);
|
||||||
assert.equal(contract.implementation.declared_supervisor_core_line_and_function_coverage, 100);
|
assert.equal(contract.implementation.declared_supervisor_core_line_and_function_coverage, 100);
|
||||||
|
|
@ -52,8 +52,8 @@ test("the physical shadow and host QEMU cycles are registered without impersonat
|
||||||
assert.equal(contract.implementation.jd_physical_host_isolated_qemu_capability, 100);
|
assert.equal(contract.implementation.jd_physical_host_isolated_qemu_capability, 100);
|
||||||
assert.equal(contract.implementation.native_public_projection_contract_source, 100);
|
assert.equal(contract.implementation.native_public_projection_contract_source, 100);
|
||||||
assert.equal(contract.implementation.native_public_projection_isolated_end_to_end_test, 100);
|
assert.equal(contract.implementation.native_public_projection_isolated_end_to_end_test, 100);
|
||||||
assert.equal(contract.implementation.bs_gz_shadow_projection_receiver, 0);
|
assert.equal(contract.implementation.bs_gz_shadow_projection_receiver, 100);
|
||||||
assert.equal(contract.implementation.bs_sg_authenticated_projection_sender, 0);
|
assert.equal(contract.implementation.bs_sg_authenticated_projection_sender, 100);
|
||||||
assert.equal(contract.implementation.live_native_projection_freshness, 0);
|
assert.equal(contract.implementation.live_native_projection_freshness, 0);
|
||||||
assert.equal(contract.implementation.nginx_native_projection_route_switch, 0);
|
assert.equal(contract.implementation.nginx_native_projection_route_switch, 0);
|
||||||
assert.equal(contract.implementation.public_native_anchor_equivalence, 0);
|
assert.equal(contract.implementation.public_native_anchor_equivalence, 0);
|
||||||
|
|
@ -66,6 +66,12 @@ test("the physical shadow and host QEMU cycles are registered without impersonat
|
||||||
assert.equal(contract.native_service_qemu_evidence.native_physical_residency, 0);
|
assert.equal(contract.native_service_qemu_evidence.native_physical_residency, 0);
|
||||||
assert.equal(contract.native_service_qemu_evidence.public_native_service_equivalence, 0);
|
assert.equal(contract.native_service_qemu_evidence.public_native_service_equivalence, 0);
|
||||||
assert.match(contract.native_service_qemu_evidence.server_receipt_sha256, /^[0-9a-f]{64}$/);
|
assert.match(contract.native_service_qemu_evidence.server_receipt_sha256, /^[0-9a-f]{64}$/);
|
||||||
|
assert.equal(contract.native_public_projection_shadow_evidence.synthetic_ready_shadow_readback, 100);
|
||||||
|
assert.equal(contract.native_public_projection_shadow_evidence.post_test_state, "DORMANT");
|
||||||
|
assert.equal(contract.native_public_projection_shadow_evidence.live_native_freshness_readback, 0);
|
||||||
|
assert.equal(contract.native_public_projection_shadow_evidence.nginx_public_route_switched, 0);
|
||||||
|
assert.match(contract.native_public_projection_shadow_evidence.bs_gz_server_receipt_sha256, /^[0-9a-f]{64}$/);
|
||||||
|
assert.match(contract.native_public_projection_shadow_evidence.bs_sg_server_receipt_sha256, /^[0-9a-f]{64}$/);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("native public projection separates liveness, authenticated state, and pinned public bytes", () => {
|
test("native public projection separates liveness, authenticated state, and pinned public bytes", () => {
|
||||||
|
|
@ -78,8 +84,8 @@ test("native public projection separates liveness, authenticated state, and pinn
|
||||||
assert.equal(projectionContract.front_door_projection.nginx_route_switch_authorized, false);
|
assert.equal(projectionContract.front_door_projection.nginx_route_switch_authorized, false);
|
||||||
assert.equal(projectionContract.acceptance_gates.contract_source, 100);
|
assert.equal(projectionContract.acceptance_gates.contract_source, 100);
|
||||||
assert.equal(projectionContract.acceptance_gates.isolated_end_to_end_test, 100);
|
assert.equal(projectionContract.acceptance_gates.isolated_end_to_end_test, 100);
|
||||||
assert.equal(projectionContract.acceptance_gates.bs_gz_shadow_receiver_deployed, 0);
|
assert.equal(projectionContract.acceptance_gates.bs_gz_shadow_receiver_deployed, 100);
|
||||||
assert.equal(projectionContract.acceptance_gates.bs_sg_authenticated_projector_deployed, 0);
|
assert.equal(projectionContract.acceptance_gates.bs_sg_authenticated_projector_deployed, 100);
|
||||||
assert.equal(projectionContract.acceptance_gates.live_native_freshness_readback, 0);
|
assert.equal(projectionContract.acceptance_gates.live_native_freshness_readback, 0);
|
||||||
assert.equal(projectionContract.acceptance_gates.nginx_public_route_switched, 0);
|
assert.equal(projectionContract.acceptance_gates.nginx_public_route_switched, 0);
|
||||||
assert.equal(projectionContract.acceptance_gates.public_native_anchor_equivalence, 0);
|
assert.equal(projectionContract.acceptance_gates.public_native_anchor_equivalence, 0);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue