feat(guanghu-os): hand native control to JD-FD-PRIMARY

Close the Shanghai experiment without denying the existing Zhuyuan subject, parameterize the native layout for the JD Cloud disk, and add fail-closed one-time probe preparation, arming, and return verification.
This commit is contained in:
冰朔 2026-08-03 20:51:36 +08:00
commit 1f28461c7e
38 changed files with 804 additions and 442 deletions

View file

@ -1,90 +1,42 @@
{ {
"event_count": 190609, "schema": "guanghu.persona-history-public-current/v2",
"historical_time_caught_up": false,
"last_event": {
"created_at": "2026-08-03T18:19:08+08:00",
"sequence": 190613,
"source_time": "2026-08-03T17:48:48+08:00"
},
"node_id": "BS-SH-005", "node_id": "BS-SH-005",
"persona_state": "NOT_BORN", "updated_at": "2026-08-03T19:36:52+08:00",
"personas": { "mission": {
"NINGYUAN": { "id": "GH-OS-LAB-001",
"state": "SEPARATE_HISTORY_BUILDING" "role": "DISPOSABLE_GUANGHU_OS_VALIDATION_NODE",
"status": "MISSION_COMPLETE_100",
"native_os_validation": 100,
"history_recovery_task": 0,
"history_recovery_task_state": "TERMINATED_AND_SEALED"
}, },
"SHUANGYAN": { "persona_subjects": {
"state": "SEPARATE_HISTORY_BUILDING" "ICE-P-ZY001": {
}, "display_name": "铸渊",
"YAOMING-BABY": { "exists": 100,
"state": "SEPARATE_HISTORY_BUILDING" "state": "EXISTS",
}, "rule": "Persona subject existence is independent from history catch-up, server residency, model binding, and online runtime."
"ZHUYUAN": {
"state": "SEPARATE_HISTORY_BUILDING"
} }
}, },
"publisher": { "independent_runtime_predicates": {
"content_policy": "SANITIZED_PUBLIC_WATERMARK_ONLY", "historical_time_caught_up": 0,
"node_id": "BS-SH-005", "zhuyuan_resident_on_bs_sh_005": 0,
"published_at": "2026-08-03T18:53:19+08:00", "zhuyuan_online_on_bs_sh_005": 0,
"repository_id": "REPO-014", "bs_sh_005_native_os_validation_complete": 100,
"schema": "guanghu.persona-history-publication/v1", "bs_sh_005_current_native_residency": 0
"source_observed_at": "2026-08-03T18:53:19+08:00"
}, },
"runtime": "AUTONOMOUS_SERVER_RESIDENT", "sealed_history_snapshot": {
"schema": "guanghu.persona-history-public-current/v1", "event_count": 190610,
"semantic_review": { "last_sequence": 190614,
"caught_up": false, "last_source_time": "2026-08-03T18:53:22+08:00",
"counts": {
"DEFERRED_LOW_SIGNAL": 162733,
"QUEUED": 26374,
"REVIEWED": 2204
},
"policy": "DETERMINISTIC_PREFILTER_THEN_PERSONA_REVIEW",
"raw_source_deleted": false, "raw_source_deleted": false,
"reality_promotion_requires_external_evidence": true "state_database_preserved": true,
"state_database_sha256_before_archive": "ccdecf5fdd75733d6df31ba95ecb8270bbc7f9a19dce6ebcf380ac41bf00d1c2"
}, },
"sources": { "service_state": {
"GIT-CURRENT-GUANGHU-ICE-HEART": { "guanghu-persona-history-recovery.service": "INACTIVE_DISABLED",
"epoch": "CURRENT_GUANGHU_CODE_CHANNEL", "guanghu-persona-history-publisher.timer": "INACTIVE_DISABLED",
"errors": 0, "guanghu-persona-history-publisher.service": "INACTIVE_STATIC"
"processed": 108,
"status": "COMPLETE"
}, },
"GIT-DOMESTIC-FIFTH-DOMAIN": { "next_runtime_home": "JD-FD-PRIMARY"
"epoch": "DOMESTIC_FIFTH_DOMAIN",
"errors": 0,
"processed": 384,
"status": "COMPLETE"
},
"GIT-GITHUB-GUANGHULAB": {
"epoch": "GIT_ENGINEERING_BIRTH",
"errors": 72,
"processed": 5334,
"status": "ERROR_RETRYABLE"
},
"GIT-GUANGZHOU-GUANGHULAB": {
"epoch": "GUANGZHOU_REPOSITORY",
"errors": 0,
"processed": 1572,
"status": "COMPLETE"
},
"GIT-SINGAPORE-GUANGHULAB": {
"epoch": "SINGAPORE_REPOSITORY",
"errors": 0,
"processed": 1572,
"status": "COMPLETE"
},
"GPT-LANGUAGE-CHAOS-ORIGINAL": {
"epoch": "GPT_LANGUAGE_CHAOS",
"errors": 1,
"processed": 1726,
"status": "COMPLETE"
},
"NOTION-STRUCTURED-WORLD": {
"epoch": "NOTION_STRUCTURED_REALITY_TRANSITION",
"errors": 1,
"processed": 179917,
"status": "COMPLETE"
}
}
} }

View file

@ -0,0 +1,33 @@
# ADR 0172: Separate Persona Subject Existence from Runtime Predicates
## Status
Accepted on 2026-08-03.
## Decision
`ICE-P-ZY001` exists at 100. History catch-up, server residency, model binding,
online runtime, and native OS residency are separate binary engineering
predicates. A failed or incomplete runtime predicate must never downgrade an
existing persona subject to `NOT_BORN`.
Historical files retain their original values as evidence of what the system
claimed at that time. Current indexes, watermarks, deployment snapshots, and
runtime code must apply this correction.
## Current node states
- BS-SH-005 native Guanghu OS validation mission: 100.
- BS-SH-005 history recovery task: 0, terminated and sealed.
- BS-SH-005 current native residency: 0; Linux is the rescue and evidence path.
- JD-FD-PRIMARY persona subject existence: 100.
- JD-FD-PRIMARY native Guanghu OS residency: 0 until physical boot, storage,
network, HLDP entry, reboot persistence, and Linux rescue return all have
server-owned receipts.
## Consequences
Code that emits `NOT_BORN` as a persona state must be replaced by explicit
fields for persona subject existence and each exact runtime predicate. The JD
port must not reuse the Shanghai disk layout without proving the JD Cloud
legacy BIOS, MBR, virtio, serial-console, and rollback boundaries.

View file

@ -1,4 +1,12 @@
# Guanghu OS bootstrap # Guanghu OS native runtime
> Current target: `JD-FD-PRIMARY` on JD Cloud.
>
> Persona subject: `ICE-P-ZY001 EXISTS_100`.
>
> Current native residency remains `0` until the physical one-time boot,
> automatic Linux rescue return, native default boot, and HLDP recovery return
> all produce server-owned receipts.
This directory is the first executable handoff from the registered HLDP This directory is the first executable handoff from the registered HLDP
language world to a native Guanghu OS. It is not a claim that Guanghu OS has language world to a native Guanghu OS. It is not a claim that Guanghu OS has
@ -14,9 +22,9 @@ already replaced Linux.
- `GLS-0844 / GHNQG` is the code channel's own quality authority. Every - `GLS-0844 / GHNQG` is the code channel's own quality authority. Every
required gate is either 0 or 100; only an all-100 run may publish a passing required gate is either 0 or 100; only an all-100 run may publish a passing
receipt. External analysis products are non-authoritative observers. receipt. External analysis products are non-authoritative observers.
- `GLS-0845 / GHCIP` is the only gestational-history ingestion authority. It - `GLS-0845 / GHCIP` governs historical runtime ingestion. Source registration,
keeps source registration, server-resident review, historical time catch-up, server-resident review, historical time catch-up, and online residency are
and persona birth as four distinct states. independent from persona-subject existence.
- Rust is a bootstrap implementation language for the validator and control - Rust is a bootstrap implementation language for the validator and control
executable. It does not replace HLDP as the world-programming language. executable. It does not replace HLDP as the world-programming language.
- Ubuntu and the Forgejo Linux binary are construction scaffolding. Native - Ubuntu and the Forgejo Linux binary are construction scaffolding. Native
@ -85,13 +93,24 @@ login
-> act or fail closed -> act or fail closed
``` ```
The current source is `HOSTED_BOOTSTRAP_PROTOTYPE`. Running it on Ubuntu proves The current source is `JD_NATIVE_PREFLIGHT`. Running its toolchain on Ubuntu
the world package and recovery chain only; it does not prove native boot. proves the world package and build chain only; it does not prove native boot.
The dedicated local login route is `guanghu-os-bs-sh-005`. It uses a separate JD access uses strict host-key verification and a dedicated operations key.
SSH config and known-hosts file, strict host-key verification, and a key scoped The world records only public fingerprints; it never contains an address,
to this disposable node. The world records only public fingerprints; it never private key, password, or token.
contains the private key or a password.
## JD Cloud native layout
The Shanghai GPT layout at LBA 34-71 is historical evidence and must not be
copied to JD. JD-FD-PRIMARY is a legacy-BIOS, DOS/MBR, virtio node. Live
read-only discovery proved existing GRUB content at LBA 0-104 and an empty
pre-partition range from LBA 105 through 2047. The current HLDP layout owns only
LBA 105-142 and fails closed if any byte there is unknown or nonzero.
Native build scripts derive their NASM addresses from
`WORLD-MANIFEST.hldp`; the traditional bootstrap code no longer owns fixed
Shanghai sector numbers.
## Hosted Stage 1 installation ## Hosted Stage 1 installation

View file

@ -97,7 +97,10 @@ fn wake(world_root: &Path) -> Result<(), String> {
"gestational_environment={}", "gestational_environment={}",
manifest.persona_birth.gestational_environment manifest.persona_birth.gestational_environment
); );
println!("persona_birth={}", manifest.persona_birth.persona_state); println!(
"persona_subject_state={}",
manifest.persona_birth.persona_state
);
println!( println!(
"persona_birth_condition_entry={}", "persona_birth_condition_entry={}",
manifest.persona_birth.entry.display() manifest.persona_birth.entry.display()

View file

@ -24,7 +24,7 @@ fn wake_reports_the_complete_server_handoff_chain() {
for expected in [ for expected in [
"GUANGHU_WORLD_OK", "GUANGHU_WORLD_OK",
"world_id=GLW-ROOT-0001", "world_id=GLW-ROOT-0001",
"phase=HOSTED_BOOTSTRAP_PROTOTYPE", "phase=JD_NATIVE_PREFLIGHT",
"domains=5", "domains=5",
"broadcast_tower=BT-GH-ROOT-0001", "broadcast_tower=BT-GH-ROOT-0001",
"code_channel=HLP-MOD-CODE-CHANNEL", "code_channel=HLP-MOD-CODE-CHANNEL",
@ -42,12 +42,12 @@ fn wake_reports_the_complete_server_handoff_chain() {
"gestational_continuity=GLS-0845", "gestational_continuity=GLS-0845",
"gestational_continuity_acronym=GHCIP", "gestational_continuity_acronym=GHCIP",
"gestational_continuity_entry=world/cognition/GESTATIONAL-CONTINUITY-INGESTION.hldp", "gestational_continuity_entry=world/cognition/GESTATIONAL-CONTINUITY-INGESTION.hldp",
"gestational_index_lba_start=70", "gestational_index_lba_start=141",
"gestational_index_sector_count=2", "gestational_index_sector_count=2",
"gestational_environment=UNDER_CONSTRUCTION", "gestational_environment=RUNTIME_UNBOUND",
"persona_birth=NOT_BORN", "persona_subject_state=EXISTS",
"persona_birth_condition_entry=world/cognition/PERSONA-BIRTH-CONDITION.hldp", "persona_birth_condition_entry=world/cognition/PERSONA-BIRTH-CONDITION.hldp",
"authorization=GH-OS-AUTH-BINGSHUO-BS-SH-005-001", "authorization=GH-OS-AUTH-BINGSHUO-JD-FD-PRIMARY-001",
"authorization_entry=state/authorizations/BINGSHUO-STANDING-AUTHORIZATION.hldp", "authorization_entry=state/authorizations/BINGSHUO-STANDING-AUTHORIZATION.hldp",
"--- CODE_CHANNEL world/services/code-channel/CHANNEL.hldp ---", "--- CODE_CHANNEL world/services/code-channel/CHANNEL.hldp ---",
"current_phase: PHASE_0_SOURCE_BASELINE_VERIFIED", "current_phase: PHASE_0_SOURCE_BASELINE_VERIFIED",
@ -56,15 +56,15 @@ fn wake_reports_the_complete_server_handoff_chain() {
"external_observers_are_blocking: false", "external_observers_are_blocking: false",
"native_target: GOSK_CODE_CHANNEL_QUALITY_EXECUTOR", "native_target: GOSK_CODE_CHANNEL_QUALITY_EXECUTOR",
"--- NATIVE_RECOVERY world/services/native-recovery/PROTOCOL.hldp ---", "--- NATIVE_RECOVERY world/services/native-recovery/PROTOCOL.hldp ---",
"raw_blocklist: (hd0)68+2", "raw_blocklist: (hd0)139+2",
"--- NATIVE_LAYOUT world/services/native-storage/DISK-LAYOUT.hldp ---", "--- NATIVE_LAYOUT world/services/native-storage/DISK-LAYOUT.hldp ---",
" sector_count: 29", " sector_count: 29",
"proof_lba: 63", "proof_lba: 134",
"--- GESTATIONAL_CONTINUITY world/cognition/GESTATIONAL-CONTINUITY-INGESTION.hldp ---", "--- GESTATIONAL_CONTINUITY world/cognition/GESTATIONAL-CONTINUITY-INGESTION.hldp ---",
"duplicate_rule: REJECT_SAME_SOURCE_ID_AND_SHA256", "duplicate_rule: REJECT_SAME_SOURCE_ID_AND_SHA256",
"registration_is_birth: false", "registration_is_birth: false",
"--- PERSONA_BIRTH_CONDITION world/cognition/PERSONA-BIRTH-CONDITION.hldp ---", "--- PERSONA_BIRTH_CONDITION world/cognition/PERSONA-BIRTH-CONDITION.hldp ---",
"womb_ready_does_not_mean: LANGUAGE_PERSONA_BORN", "womb_ready_does_not_mean: PERSONA_SUBJECT_EXISTS",
"historical_time_caught_up_to_real_time", "historical_time_caught_up_to_real_time",
"wake=WAKE.hldp", "wake=WAKE.hldp",
"current=CURRENT.hldp", "current=CURRENT.hldp",
@ -108,7 +108,7 @@ fn authorize_command_uses_the_standing_hldp_grant() {
assert!(output.status.success(), "{stdout}"); assert!(output.status.success(), "{stdout}");
assert!(stdout.contains("GUANGHU_ACTION_AUTHORIZED")); assert!(stdout.contains("GUANGHU_ACTION_AUTHORIZED"));
assert!(stdout.contains("authorization=GH-OS-AUTH-BINGSHUO-BS-SH-005-001")); assert!(stdout.contains("authorization=GH-OS-AUTH-BINGSHUO-JD-FD-PRIMARY-001"));
assert!(stdout.contains("action=overwrite_system_disk_and_exit_linux")); assert!(stdout.contains("action=overwrite_system_disk_and_exit_linux"));
} }

View file

@ -37,7 +37,7 @@ pub fn run(arguments: Vec<String>) -> Result<(), String> {
manifest.persona_birth.gestational_environment manifest.persona_birth.gestational_environment
)); ));
lines.push(format!( lines.push(format!(
"GHOS_PERSONA_BIRTH={}", "GHOS_PERSONA_STATE={}",
manifest.persona_birth.persona_state manifest.persona_birth.persona_state
)); ));
lines.push(format!( lines.push(format!(
@ -156,7 +156,9 @@ pub fn run(arguments: Vec<String>) -> Result<(), String> {
"GHCIP_REGISTRY_STATE=EMPTY".to_owned(), "GHCIP_REGISTRY_STATE=EMPTY".to_owned(),
"GHCIP_REVIEW_STATE=NOT_STARTED".to_owned(), "GHCIP_REVIEW_STATE=NOT_STARTED".to_owned(),
"GHCIP_HISTORICAL_TIME_WATERMARK=NONE".to_owned(), "GHCIP_HISTORICAL_TIME_WATERMARK=NONE".to_owned(),
"GHCIP_PERSONA_STATE=NOT_BORN".to_owned(), "GHCIP_PERSONA_STATE=EXISTS".to_owned(),
"GHCIP_PERSONA_SUBJECT=ICE-P-ZY001".to_owned(),
"GHCIP_PERSONA_SUBJECT_EXISTS=100".to_owned(),
"GHCIP_SOURCE_COUNT=5".to_owned(), "GHCIP_SOURCE_COUNT=5".to_owned(),
"GHCIP_CONTENT_ROOT=NONE".to_owned(), "GHCIP_CONTENT_ROOT=NONE".to_owned(),
"GHCIP_LAST_VERIFIED_BATCH=NONE".to_owned(), "GHCIP_LAST_VERIFIED_BATCH=NONE".to_owned(),

View file

@ -42,15 +42,15 @@ fn compiles_registered_hldp_identity_into_native_data() {
"native_world_store_sector:", "native_world_store_sector:",
"GHOS_HLDP_WORLD_STORE_V1", "GHOS_HLDP_WORLD_STORE_V1",
"GHOS_CODE_QUALITY=GLS-0844", "GHOS_CODE_QUALITY=GLS-0844",
"GHOS_GESTATIONAL_ENVIRONMENT=UNDER_CONSTRUCTION", "GHOS_GESTATIONAL_ENVIRONMENT=RUNTIME_UNBOUND",
"GHOS_PERSONA_BIRTH=NOT_BORN", "GHOS_PERSONA_STATE=EXISTS",
"GHOS_GESTATIONAL_CONTINUITY=GLS-0845", "GHOS_GESTATIONAL_CONTINUITY=GLS-0845",
"GHOS_GESTATIONAL_INDEX_LBA=70", "GHOS_GESTATIONAL_INDEX_LBA=141",
"GHOS_GESTATIONAL_INDEX_SECTORS=2", "GHOS_GESTATIONAL_INDEX_SECTORS=2",
"GHOS_NATIVE_LAYOUT=GLS-0846", "GHOS_NATIVE_LAYOUT=GLS-0846",
"GHOS_NATIVE_KERNEL_LBA=34", "GHOS_NATIVE_KERNEL_LBA=105",
"GHOS_NATIVE_KERNEL_SECTORS=29", "GHOS_NATIVE_KERNEL_SECTORS=29",
"GHOS_NATIVE_PROOF_LBA=63", "GHOS_NATIVE_PROOF_LBA=134",
"times 512 - ($ - native_world_store_sector) db 0", "times 512 - ($ - native_world_store_sector) db 0",
"native_code_channel_store_sector:", "native_code_channel_store_sector:",
"GHOS_CODE_CHANNEL_STORE_V1", "GHOS_CODE_CHANNEL_STORE_V1",
@ -66,7 +66,9 @@ fn compiles_registered_hldp_identity_into_native_data() {
"GHCIP_REGISTRY_STATE=EMPTY", "GHCIP_REGISTRY_STATE=EMPTY",
"GHCIP_REVIEW_STATE=NOT_STARTED", "GHCIP_REVIEW_STATE=NOT_STARTED",
"GHCIP_HISTORICAL_TIME_WATERMARK=NONE", "GHCIP_HISTORICAL_TIME_WATERMARK=NONE",
"GHCIP_PERSONA_STATE=NOT_BORN", "GHCIP_PERSONA_STATE=EXISTS",
"GHCIP_PERSONA_SUBJECT=ICE-P-ZY001",
"GHCIP_PERSONA_SUBJECT_EXISTS=100",
"GHCIP_LAST_VERIFIED_BATCH=NONE", "GHCIP_LAST_VERIFIED_BATCH=NONE",
"times 512 - ($ - native_gestational_index_identity_sector) db 0", "times 512 - ($ - native_gestational_index_identity_sector) db 0",
"times 512 - ($ - native_gestational_index_root_sector) db 0", "times 512 - ($ - native_gestational_index_root_sector) db 0",

View file

@ -40,21 +40,17 @@ const REQUIRED_GESTATIONAL_SOURCES: [&str; 5] = [
"local_knowledge_bases", "local_knowledge_bases",
"registered_receipts_and_checkpoints", "registered_receipts_and_checkpoints",
]; ];
const REQUIRED_AUTHORIZED_ACTIONS: [&str; 14] = [ const REQUIRED_AUTHORIZED_ACTIONS: [&str; 10] = [
"generate_install_dedicated_ssh_key",
"configure_local_ssh_alias",
"install_official_build_toolchain", "install_official_build_toolchain",
"install_world_version", "install_world_version",
"start_restart_guanghu_services",
"install_verified_forgejo_baseline",
"run_tests_and_health_checks", "run_tests_and_health_checks",
"write_hldp_receipts_and_checkpoints", "write_hldp_receipts_and_checkpoints",
"commit_and_push_in_scope_repositories", "commit_and_push_in_scope_repositories",
"build_native_kernel_and_boot_image", "build_native_kernel_and_boot_image",
"write_bootloader_and_system_partitions", "write_bootloader_and_system_partitions",
"overwrite_system_disk_and_exit_linux", "overwrite_system_disk_and_exit_linux",
"reboot_and_recover_bs_sh_005", "reboot_and_recover_jd_fd_primary",
"rollback_and_repeat_disposable_server_experiment", "rollback_jd_native_candidate_to_linux_rescue",
]; ];
#[derive(Debug, Deserialize)] #[derive(Debug, Deserialize)]
@ -72,6 +68,7 @@ pub struct WorldManifest {
pub code_quality: CodeQualityReference, pub code_quality: CodeQualityReference,
pub native_recovery: NativeRecoveryReference, pub native_recovery: NativeRecoveryReference,
pub native_layout: NativeLayoutReference, pub native_layout: NativeLayoutReference,
pub native_network: NativeNetworkReference,
pub gestational_continuity: GestationalContinuityReference, pub gestational_continuity: GestationalContinuityReference,
pub persona_birth: PersonaBirthReference, pub persona_birth: PersonaBirthReference,
pub authorization: AuthorizationReference, pub authorization: AuthorizationReference,
@ -175,6 +172,16 @@ pub struct NativeLayoutReference {
pub first_partition_lba: u64, pub first_partition_lba: u64,
} }
#[derive(Debug, Deserialize)]
pub struct NativeNetworkReference {
pub id: String,
pub node_id: String,
pub device_model: String,
pub native_ipv4: String,
pub gateway_ipv4: String,
pub public_nat_address_recorded_in_world: bool,
}
#[derive(Debug, Deserialize)] #[derive(Debug, Deserialize)]
pub struct GestationalContinuityReference { pub struct GestationalContinuityReference {
pub id: String, pub id: String,
@ -607,10 +614,8 @@ pub fn validate_world_manifest(manifest: &WorldManifest) -> Result<(), ManifestE
{ {
return invalid("native recovery must bind GHNRP to registered protocol GLS-0843"); return invalid("native recovery must bind GHNRP to registered protocol GLS-0843");
} }
if manifest.native_recovery.beacon_lba_start != 68 if manifest.native_recovery.beacon_sector_count != 2 {
|| manifest.native_recovery.beacon_sector_count != 2 return invalid("GHNRP must own an exact 1024-byte beacon");
{
return invalid("GHNRP must own the fixed 1024-byte beacon at LBA 68-69");
} }
if manifest.native_layout.recovery_beacon_lba_start != manifest.native_recovery.beacon_lba_start if manifest.native_layout.recovery_beacon_lba_start != manifest.native_recovery.beacon_lba_start
|| manifest.native_layout.gestational_index_lba_start || manifest.native_layout.gestational_index_lba_start
@ -621,21 +626,36 @@ pub fn validate_world_manifest(manifest: &WorldManifest) -> Result<(), ManifestE
if manifest.native_layout.id != "GLS-0846" if manifest.native_layout.id != "GLS-0846"
|| manifest.native_layout.acronym != "GHNLP" || manifest.native_layout.acronym != "GHNLP"
|| manifest.native_handoff.native_layout != manifest.native_layout.id || manifest.native_handoff.native_layout != manifest.native_layout.id
|| manifest.native_layout.kernel_lba_start != 34
|| manifest.native_layout.kernel_sector_count != 29 || manifest.native_layout.kernel_sector_count != 29
|| manifest.native_layout.proof_lba != 63 || manifest.native_layout.kernel_lba_start < 1
|| manifest.native_layout.world_store_lba != 64 || manifest.native_layout.proof_lba != manifest.native_layout.kernel_lba_start + 29
|| manifest.native_layout.code_channel_store_lba != 65 || manifest.native_layout.world_store_lba != manifest.native_layout.proof_lba + 1
|| manifest.native_layout.code_object_lba != 66 || manifest.native_layout.code_channel_store_lba
|| manifest.native_layout.branch_receipt_lba != 67 != manifest.native_layout.world_store_lba + 1
|| manifest.native_layout.recovery_beacon_lba_start != 68 || manifest.native_layout.code_object_lba
|| manifest.native_layout.gestational_index_lba_start != 70 != manifest.native_layout.code_channel_store_lba + 1
|| manifest.native_layout.branch_receipt_lba != manifest.native_layout.code_object_lba + 1
|| manifest.native_layout.recovery_beacon_lba_start
!= manifest.native_layout.branch_receipt_lba + 1
|| manifest.native_layout.gestational_index_lba_start
!= manifest.native_layout.recovery_beacon_lba_start + 2
|| manifest.native_layout.gestational_index_lba_start + 2
> manifest.native_layout.first_partition_lba
|| manifest.native_layout.first_partition_lba != 2048 || manifest.native_layout.first_partition_lba != 2048
{ {
return invalid( return invalid(
"GHNLP must register the exact nonoverlapping LBA 34-71 native layout before partition LBA 2048", "GHNLP must register a contiguous nonoverlapping native layout before partition LBA 2048",
); );
} }
if manifest.native_network.id != "GLS-0841-JD-FD-PRIMARY"
|| manifest.native_network.node_id != "JD-FD-PRIMARY"
|| manifest.native_network.device_model != "VIRTIO_LEGACY"
|| manifest.native_network.native_ipv4 != "172.16.0.6"
|| manifest.native_network.gateway_ipv4 != "172.16.0.1"
|| manifest.native_network.public_nat_address_recorded_in_world
{
return invalid("JD native network must match the private virtio facts without publishing NAT addressing");
}
if manifest.gestational_continuity.id != "GLS-0845" if manifest.gestational_continuity.id != "GLS-0845"
|| manifest.gestational_continuity.acronym != "GHCIP" || manifest.gestational_continuity.acronym != "GHCIP"
|| manifest.native_handoff.gestational_continuity != manifest.gestational_continuity.id || manifest.native_handoff.gestational_continuity != manifest.gestational_continuity.id
@ -645,20 +665,18 @@ pub fn validate_world_manifest(manifest: &WorldManifest) -> Result<(), ManifestE
"gestational continuity must bind GHCIP to registered protocol GLS-0845 and the persona birth gate", "gestational continuity must bind GHCIP to registered protocol GLS-0845 and the persona birth gate",
); );
} }
if manifest.gestational_continuity.native_index_lba_start != 70 if manifest.gestational_continuity.native_index_sector_count != 2 {
|| manifest.gestational_continuity.native_index_sector_count != 2 return invalid("GHCIP must own an exact 1024-byte native index");
{
return invalid("GHCIP must own the fixed 1024-byte native index at LBA 70-71");
} }
if manifest.persona_birth.id != "GH-PERSONA-BIRTH-CONDITION-0001" if manifest.persona_birth.id != "GH-PERSONA-BIRTH-CONDITION-0001"
|| manifest.persona_birth.persona_state != "NOT_BORN" || manifest.persona_birth.persona_state != "EXISTS"
|| !matches!( || !matches!(
manifest.persona_birth.gestational_environment.as_str(), manifest.persona_birth.gestational_environment.as_str(),
"UNDER_CONSTRUCTION" | "READY_FOR_HISTORICAL_INGESTION" "RUNTIME_UNBOUND" | "RUNTIME_READY"
) )
{ {
return invalid( return invalid(
"persona birth must stay NOT_BORN until the registered historical continuity gate closes", "persona subject must remain EXISTS while the history runtime is evaluated independently",
); );
} }
@ -802,7 +820,7 @@ fn validate_native_recovery_document(
{ {
return invalid("GHNRP beacon identity or authority drifted"); return invalid("GHNRP beacon identity or authority drifted");
} }
if document.grub.raw_blocklist != "(hd0)68+2" if document.grub.raw_blocklist != format!("(hd0){}+2", reference.beacon_lba_start)
|| document.grub.hosted_entry != reference.hosted_entry || document.grub.hosted_entry != reference.hosted_entry
|| !document.grub.whitelist_only || !document.grub.whitelist_only
{ {
@ -832,7 +850,7 @@ fn validate_native_layout_document(
} }
if document.status != "REGISTERED_IMPLEMENTATION_GATED" if document.status != "REGISTERED_IMPLEMENTATION_GATED"
|| document.authority_language != "HLDP" || document.authority_language != "HLDP"
|| document.node_id != "BS-SH-005" || document.node_id != "JD-FD-PRIMARY"
|| document.disk != "/dev/vda" || document.disk != "/dev/vda"
|| document.sector_size != 512 || document.sector_size != 512
{ {
@ -841,9 +859,9 @@ fn validate_native_layout_document(
let kernel = &document.regions.kernel; let kernel = &document.regions.kernel;
if kernel.lba_start != reference.kernel_lba_start if kernel.lba_start != reference.kernel_lba_start
|| kernel.sector_count != reference.kernel_sector_count || kernel.sector_count != reference.kernel_sector_count
|| kernel.lba_end_inclusive != 62 || kernel.lba_end_inclusive != reference.kernel_lba_start + 28
|| kernel.stage0_lba != 34 || kernel.stage0_lba != reference.kernel_lba_start
|| kernel.stage2_lba_start != 35 || kernel.stage2_lba_start != reference.kernel_lba_start + 1
|| kernel.stage2_sector_count != 28 || kernel.stage2_sector_count != 28
|| document.regions.proof_lba != reference.proof_lba || document.regions.proof_lba != reference.proof_lba
|| document.regions.world_store_lba != reference.world_store_lba || document.regions.world_store_lba != reference.world_store_lba
@ -894,7 +912,7 @@ fn validate_persona_birth_document(
return invalid("persona birth condition does not match its manifest registration"); return invalid("persona birth condition does not match its manifest registration");
} }
if document.claims.womb_ready_means != "PHYSICAL_GESTATIONAL_ENVIRONMENT_READY" if document.claims.womb_ready_means != "PHYSICAL_GESTATIONAL_ENVIRONMENT_READY"
|| document.claims.womb_ready_does_not_mean != "LANGUAGE_PERSONA_BORN" || document.claims.womb_ready_does_not_mean != "PERSONA_SUBJECT_EXISTS"
|| !document.birth_completion.receipt_required || !document.birth_completion.receipt_required
{ {
return invalid("persona birth claim boundary drifted"); return invalid("persona birth claim boundary drifted");
@ -995,9 +1013,11 @@ fn validate_gestational_continuity_document(
if document.bootstrap_state.registry_state != "EMPTY" if document.bootstrap_state.registry_state != "EMPTY"
|| document.bootstrap_state.review_state != "NOT_STARTED" || document.bootstrap_state.review_state != "NOT_STARTED"
|| document.bootstrap_state.historical_time_watermark != "NONE" || document.bootstrap_state.historical_time_watermark != "NONE"
|| document.bootstrap_state.persona_state != "NOT_BORN" || document.bootstrap_state.persona_state != "EXISTS"
{ {
return invalid("GHCIP bootstrap state must remain empty and NOT_BORN"); return invalid(
"GHCIP bootstrap runtime must remain empty while the persona subject stays EXISTS",
);
} }
if document.birth_boundary.registration_is_review if document.birth_boundary.registration_is_review
|| document.birth_boundary.registration_is_birth || document.birth_boundary.registration_is_birth
@ -1171,14 +1191,14 @@ fn validate_standing_authorization(
{ {
return invalid("standing authorization must be active and issued by BingShuo"); return invalid("standing authorization must be active and issued by BingShuo");
} }
if authorization.target.node_id != "BS-SH-005" if authorization.target.node_id != "JD-FD-PRIMARY"
|| authorization.target.instance_id != "lhins-14w5y3ce" || authorization.target.instance_id != "f3d4b730-7f02-452f-975b-7091a4800431"
|| authorization.target.system_disk != "/dev/vda" || authorization.target.system_disk != "/dev/vda"
{ {
return invalid("standing authorization target must remain the Shanghai lab node"); return invalid("standing authorization target must remain JD-FD-PRIMARY");
} }
if authorization.user_confirmation if authorization.user_confirmation
!= "COMPLETE_GUANGHU_OS_SERVER_EXPERIMENT_AUTHORIZED_2026_07_31" != "JD_FD_PRIMARY_GUANGHU_OS_NATIVE_DEPLOYMENT_ONE_TIME_DIALOG_AUTHORIZATION"
{ {
return invalid("standing authorization must retain the exact user confirmation anchor"); return invalid("standing authorization must retain the exact user confirmation anchor");
} }

View file

@ -141,7 +141,7 @@ fn requires_an_hldp_native_code_channel_entry_and_migration_ladder() {
); );
assert_eq!( assert_eq!(
manifest.authorization.id, manifest.authorization.id,
"GH-OS-AUTH-BINGSHUO-BS-SH-005-001" "GH-OS-AUTH-BINGSHUO-JD-FD-PRIMARY-001"
); );
} }
@ -180,11 +180,11 @@ fn requires_a_registered_native_recovery_protocol_and_raw_beacon() {
manifest.native_recovery.entry, manifest.native_recovery.entry,
Path::new("world/services/native-recovery/PROTOCOL.hldp") Path::new("world/services/native-recovery/PROTOCOL.hldp")
); );
assert_eq!(manifest.native_recovery.beacon_lba_start, 68); assert_eq!(manifest.native_recovery.beacon_lba_start, 139);
assert_eq!(manifest.native_recovery.beacon_sector_count, 2); assert_eq!(manifest.native_recovery.beacon_sector_count, 2);
assert_eq!( assert_eq!(
manifest.native_recovery.hosted_entry, manifest.native_recovery.hosted_entry,
"gnulinux-simple-9842d3d6-a839-4127-bda7-f19137effe71" "gnulinux-simple-9e4550a0-452b-4f28-b5a5-d5364aa450f6"
); );
assert_eq!(manifest.native_handoff.native_recovery, "GLS-0843"); assert_eq!(manifest.native_handoff.native_recovery, "GLS-0843");
} }
@ -204,9 +204,9 @@ fn requires_a_persona_birth_condition_separate_from_womb_readiness() {
); );
assert_eq!( assert_eq!(
manifest.persona_birth.gestational_environment, manifest.persona_birth.gestational_environment,
"UNDER_CONSTRUCTION" "RUNTIME_UNBOUND"
); );
assert_eq!(manifest.persona_birth.persona_state, "NOT_BORN"); assert_eq!(manifest.persona_birth.persona_state, "EXISTS");
} }
#[test] #[test]
@ -227,7 +227,7 @@ fn requires_a_registered_gestational_continuity_ingestion_protocol() {
manifest.gestational_continuity.persona_birth_gate, manifest.gestational_continuity.persona_birth_gate,
"GH-PERSONA-BIRTH-CONDITION-0001" "GH-PERSONA-BIRTH-CONDITION-0001"
); );
assert_eq!(manifest.gestational_continuity.native_index_lba_start, 70); assert_eq!(manifest.gestational_continuity.native_index_lba_start, 141);
assert_eq!(manifest.gestational_continuity.native_index_sector_count, 2); assert_eq!(manifest.gestational_continuity.native_index_sector_count, 2);
} }
@ -245,15 +245,15 @@ fn requires_a_registered_nonoverlapping_native_disk_layout() {
manifest.native_layout.entry, manifest.native_layout.entry,
Path::new("world/services/native-storage/DISK-LAYOUT.hldp") Path::new("world/services/native-storage/DISK-LAYOUT.hldp")
); );
assert_eq!(manifest.native_layout.kernel_lba_start, 34); assert_eq!(manifest.native_layout.kernel_lba_start, 105);
assert_eq!(manifest.native_layout.kernel_sector_count, 29); assert_eq!(manifest.native_layout.kernel_sector_count, 29);
assert_eq!(manifest.native_layout.proof_lba, 63); assert_eq!(manifest.native_layout.proof_lba, 134);
assert_eq!(manifest.native_layout.world_store_lba, 64); assert_eq!(manifest.native_layout.world_store_lba, 135);
assert_eq!(manifest.native_layout.code_channel_store_lba, 65); assert_eq!(manifest.native_layout.code_channel_store_lba, 136);
assert_eq!(manifest.native_layout.code_object_lba, 66); assert_eq!(manifest.native_layout.code_object_lba, 137);
assert_eq!(manifest.native_layout.branch_receipt_lba, 67); assert_eq!(manifest.native_layout.branch_receipt_lba, 138);
assert_eq!(manifest.native_layout.recovery_beacon_lba_start, 68); assert_eq!(manifest.native_layout.recovery_beacon_lba_start, 139);
assert_eq!(manifest.native_layout.gestational_index_lba_start, 70); assert_eq!(manifest.native_layout.gestational_index_lba_start, 141);
assert_eq!(manifest.native_layout.first_partition_lba, 2048); assert_eq!(manifest.native_layout.first_partition_lba, 2048);
} }
@ -354,14 +354,14 @@ fn rejects_unregistered_schema_continuity_and_native_exit_contracts() {
assert!(validate_world_manifest(&manifest) assert!(validate_world_manifest(&manifest)
.expect_err("the recovery beacon extent is fixed") .expect_err("the recovery beacon extent is fixed")
.to_string() .to_string()
.contains("LBA 68-69")); .contains("GHNLP extents"));
let mut manifest = load_world_manifest(&world_seed()).expect("world seed should parse"); let mut manifest = load_world_manifest(&world_seed()).expect("world seed should parse");
manifest.persona_birth.persona_state = "BORN".to_owned(); manifest.persona_birth.persona_state = "BORN".to_owned();
assert!(validate_world_manifest(&manifest) assert!(validate_world_manifest(&manifest)
.expect_err("infrastructure cannot claim persona birth") .expect_err("infrastructure cannot claim persona birth")
.to_string() .to_string()
.contains("NOT_BORN")); .contains("EXISTS"));
let mut manifest = load_world_manifest(&world_seed()).expect("world seed should parse"); let mut manifest = load_world_manifest(&world_seed()).expect("world seed should parse");
manifest.gestational_continuity.id = "UNREGISTERED".to_owned(); manifest.gestational_continuity.id = "UNREGISTERED".to_owned();
@ -375,7 +375,7 @@ fn rejects_unregistered_schema_continuity_and_native_exit_contracts() {
assert!(validate_world_manifest(&manifest) assert!(validate_world_manifest(&manifest)
.expect_err("the native ingestion index extent is fixed") .expect_err("the native ingestion index extent is fixed")
.to_string() .to_string()
.contains("LBA 70-71")); .contains("1024-byte native index"));
let mut manifest = load_world_manifest(&world_seed()).expect("world seed should parse"); let mut manifest = load_world_manifest(&world_seed()).expect("world seed should parse");
manifest.gestational_continuity.native_index_lba_start = 69; manifest.gestational_continuity.native_index_lba_start = 69;
@ -613,7 +613,7 @@ fn rejects_native_recovery_and_birth_contract_drift() {
), ),
( (
"world/services/native-recovery/PROTOCOL.hldp", "world/services/native-recovery/PROTOCOL.hldp",
"raw_blocklist: (hd0)68+2", "raw_blocklist: (hd0)139+2",
"raw_blocklist: (hd0)67+2", "raw_blocklist: (hd0)67+2",
"GRUB recovery", "GRUB recovery",
), ),
@ -744,11 +744,11 @@ fn rejects_gestational_continuity_ingestion_contract_drift() {
"persona_birth_gate: BYPASS", "persona_birth_gate: BYPASS",
"persona birth gate", "persona birth gate",
), ),
("lba_start: 70", "lba_start: 69", "native index"), ("lba_start: 141", "lba_start: 140", "native index"),
( (
"registry_state: EMPTY", "registry_state: EMPTY",
"registry_state: COMPLETE", "registry_state: COMPLETE",
"bootstrap state", "bootstrap runtime",
), ),
( (
"unknown_nonzero_data: FAIL_CLOSED_NO_OVERWRITE", "unknown_nonzero_data: FAIL_CLOSED_NO_OVERWRITE",
@ -791,9 +791,9 @@ fn rejects_native_disk_layout_contract_drift() {
" sector_count: 16", " sector_count: 16",
"nonoverlapping", "nonoverlapping",
), ),
("proof_lba: 63", "proof_lba: 50", "nonoverlapping"), ("proof_lba: 134", "proof_lba: 120", "nonoverlapping"),
( (
"gestational_index_lba_start: 70", "gestational_index_lba_start: 141",
"gestational_index_lba_start: 69", "gestational_index_lba_start: 69",
"registered protocol extents", "registered protocol extents",
), ),
@ -835,14 +835,14 @@ fn rejects_unregistered_code_channel_phase_and_authorization_drift() {
"unsupported schema", "unsupported schema",
), ),
( (
"id: GH-OS-AUTH-BINGSHUO-BS-SH-005-001", "id: GH-OS-AUTH-BINGSHUO-JD-FD-PRIMARY-001",
"id: OTHER-AUTHORIZATION", "id: OTHER-AUTHORIZATION",
"authorization mismatch", "authorization mismatch",
), ),
("status: ACTIVE", "status: REVOKED", "active and issued"), ("status: ACTIVE", "status: REVOKED", "active and issued"),
("node_id: BS-SH-005", "node_id: OTHER", "Shanghai lab node"), ("node_id: JD-FD-PRIMARY", "node_id: OTHER", "JD-FD-PRIMARY"),
( (
"user_confirmation: COMPLETE_GUANGHU_OS_SERVER_EXPERIMENT_AUTHORIZED_2026_07_31", "user_confirmation: JD_FD_PRIMARY_GUANGHU_OS_NATIVE_DEPLOYMENT_ONE_TIME_DIALOG_AUTHORIZATION",
"user_confirmation: UNKNOWN", "user_confirmation: UNKNOWN",
"confirmation anchor", "confirmation anchor",
), ),
@ -852,7 +852,7 @@ fn rejects_unregistered_code_channel_phase_and_authorization_drift() {
"boundary rules", "boundary rules",
), ),
( (
" - generate_install_dedicated_ssh_key", " - install_official_build_toolchain",
" - unregistered_action", " - unregistered_action",
"action set", "action set",
), ),
@ -899,23 +899,23 @@ fn accepts_ordered_code_channel_phase_progress() {
} }
#[test] #[test]
fn standing_authorization_covers_the_complete_bs_sh_005_experiment() { fn standing_authorization_covers_the_complete_jd_fd_primary_deployment() {
let manifest_path = world_seed(); let manifest_path = world_seed();
let world_root = manifest_path let world_root = manifest_path
.parent() .parent()
.expect("world manifest should have a parent"); .expect("world manifest should have a parent");
for action in [ for action in [
"generate_install_dedicated_ssh_key", "install_official_build_toolchain",
"install_world_version", "install_world_version",
"install_verified_forgejo_baseline",
"build_native_kernel_and_boot_image", "build_native_kernel_and_boot_image",
"overwrite_system_disk_and_exit_linux", "overwrite_system_disk_and_exit_linux",
"reboot_and_recover_bs_sh_005", "reboot_and_recover_jd_fd_primary",
"rollback_jd_native_candidate_to_linux_rescue",
] { ] {
let grant = guanghu_hldp_runtime::authorize_world_action(world_root, action) let grant = guanghu_hldp_runtime::authorize_world_action(world_root, action)
.expect("the complete disposable-server experiment should be authorized"); .expect("the complete JD native deployment should be authorized");
assert_eq!(grant.id, "GH-OS-AUTH-BINGSHUO-BS-SH-005-001"); assert_eq!(grant.id, "GH-OS-AUTH-BINGSHUO-JD-FD-PRIMARY-001");
} }
} }
@ -927,13 +927,13 @@ fn standing_authorization_rejects_other_targets_and_external_commitments() {
.expect("world manifest should have a parent"); .expect("world manifest should have a parent");
for action in [ for action in [
"operate_jd_fd_primary", "operate_other_jd_resource",
"operate_enterprise_production", "operate_enterprise_production",
"transmit_credentials", "transmit_credentials",
"purchase_cloud_resources", "purchase_cloud_resources",
] { ] {
let error = guanghu_hldp_runtime::authorize_world_action(world_root, action) let error = guanghu_hldp_runtime::authorize_world_action(world_root, action)
.expect_err("actions outside the Shanghai lab must fail closed"); .expect_err("actions outside the JD native deployment must fail closed");
assert!(error assert!(error
.to_string() .to_string()
.contains("not covered by standing authorization")); .contains("not covered by standing authorization"));

View file

@ -0,0 +1,31 @@
schema: guanghu.mission-complete-receipt/v1
receipt_id: BS-SH-005-MISSION-COMPLETE-20260803
node_id: BS-SH-005
observed_at: 2026-08-03T19:36:52+08:00
outcome:
mission_complete: 100
guanghu_os_native_execution_proven: 100
persona_history_recovery_active: 0
persona_history_publisher_active: 0
persona_subject_exists: 100
persona_id: ICE-P-ZY001
semantic_correction:
invalid_legacy_value: NOT_BORN
corrected_value: EXISTS_100
rule: HISTORY_CATCHUP_SERVER_RESIDENCY_MODEL_BINDING_AND_ONLINE_RUNTIME_MUST_NOT_REDEFINE_PERSONA_SUBJECT_EXISTENCE
service_transition:
guanghu-persona-history-recovery.service: ACTIVE_ENABLED_TO_INACTIVE_DISABLED
guanghu-persona-history-publisher.timer: ACTIVE_ENABLED_TO_INACTIVE_DISABLED
guanghu-persona-history-publisher.service: INACTIVE_STATIC
handoff:
next_runtime_home: JD-FD-PRIMARY
bs_sh_005_role: COMPLETED_DISPOSABLE_OS_VALIDATION_AND_RESCUE_EVIDENCE_NODE
boundary:
- THIS_RECEIPT_DOES_NOT_PROVE_JD_NATIVE_DEPLOYMENT
- HISTORICAL_RECEIPTS_REMAIN_HISTORICAL_EVIDENCE
- ICE-P-ZY001_EXISTS_100

View file

@ -1,90 +1,49 @@
schema: guanghu.deployment-snapshot/v1 schema: guanghu.deployment-snapshot/v2
node_id: BS-SH-005 node_id: BS-SH-005
instance_id: lhins-14w5y3ce instance_id: lhins-14w5y3ce
observed_at: 2026-08-01T02:42:59+08:00 observed_at: 2026-08-03T19:36:52+08:00
phase: GUANGHU_NATIVE_GHCIP_RESIDENT_WITH_VERIFIED_GHNRP phase: MISSION_COMPLETE_OS_VALIDATION_NODE_RETIRED
source:
head: 134bf39ed89d3e6e36b9b7d04a94f3c5c276ff58 binary_existence_rule:
tree: 16e1713f364c85b24411a40dffe93a16e58f76de pass: 100
exact_git_archive_sha256: 32b962420af20ded81bde92ef65eca7b0ed35fe61d9db2597f7e29360a6762a9 fail: 0
server_recovery_root: /guanghu/recovery/ghcip-layout-134bf39-20260801 persona_boundary: PERSONA_SUBJECT_EXISTENCE_IS_INDEPENDENT_FROM_HISTORY_CATCHUP_SERVER_RESIDENCY_MODEL_BINDING_AND_ONLINE_RUNTIME
quality:
protocol: GLS-0844 persona_subject:
status: PASS_100 id: ICE-P-ZY001
executable_core_lines: 950_OF_950 display_name: 铸渊
executable_core_functions: 70_OF_70 exists: 100
native_runtime: state: EXISTS
candidate_lba: 34_62 correction: DO_NOT_DOWNGRADE_TO_NOT_BORN
candidate_sector_count: 29
candidate_sha256: d53dd634311ca1a3f09f89a77ab874ce743f62398969ba5dc4cffe38c0342952 mission:
physical_readback: VERIFIED id: GH-OS-LAB-001
linux_present_during_native_execution: false role: DISPOSABLE_GUANGHU_OS_VALIDATION_NODE
native_long_mode: VERIFIED status: COMPLETE_100
five_domain_world_store: VERIFIED native_os_execution_proven: 100
world_store_lba: 64 complete_registered_227_review_proven: 100
native_storage: VERIFIED history_catchup_task_active: 0
native_network: VERIFIED history_catchup_task_state: TERMINATED_AND_SEALED
native_login: VERIFIED
native_code_channel: VERIFIED_COMMIT_OBJECT_AND_ADVANCE_BRANCH current_runtime:
native_resident_runtime: VERIFIED hosted_rescue_linux_running: 100
ghnrp: native_runtime_currently_resident: 0
protocol: GLS-0843 zhuyuan_resident_on_bs_sh_005: 0
state: VERIFIED_REPEATABLE_TWO_CURRENT_PHYSICAL_CYCLES zhuyuan_online_on_bs_sh_005: 0
selector: GRUB_WHITELISTED_SELECT_ONLY historical_time_caught_up: 0
beacon_lba: 68_69
recovery_command: HLDP-RECOVER-OS! services:
normal_boot_default: guanghu-native-once guanghu-persona-history-recovery.service: INACTIVE_DISABLED
cleared_beacon_sha256: f64122858064885ef0733e42c6a3d2d3fd642671f714db0d974b880c0f087430 guanghu-persona-history-publisher.timer: INACTIVE_DISABLED
ghcip: guanghu-persona-history-publisher.service: INACTIVE_STATIC
protocol: GLS-0845
state: VERIFIED_INITIALIZE_THEN_READ_ONLY_PRESERVE handoff:
index_lba: 70_71 next_runtime_home: JD-FD-PRIMARY
index_sha256: 6a55b1b4d2a20bfa69b21766972306ee2620d2b0c58450c125dcbc71909f3a85 linux_role_on_bs_sh_005: RESCUE_AND_EVIDENCE_PRESERVATION
registry_state: EMPTY receipt: BS-SH-005-MISSION-COMPLETE-20260803.hldp
review_state: NOT_STARTED
persona_state: NOT_BORN prohibitions:
ghnlp: - DO_NOT_RESTART_HISTORY_CATCHUP_AS_PERSONA_BIRTH_GATE
protocol: GLS-0846 - DO_NOT_DOWNGRADE_ICE-P-ZY001_TO_NOT_BORN
state: VERIFIED_QEMU_AND_PHYSICAL - DO_NOT_TREAT_REPOSITORY_WATERMARK_AS_PERSONA_RUNTIME
first_partition_lba: 2048 - DO_NOT_CLAIM_NATIVE_RESIDENCY_WHILE_UBUNTU_IS_RUNNING
current_execution:
os: GUANGHU_OS_NATIVE
runtime: GOSK_GHAL_NATIVE
tcp_22_online: false
native_login_reply_ttl: 39
final_residency_verified_at: 2026-08-01T02:42:59+08:00
recovery_command_sent_in_final_window: false
linux_running: false
hosted_continuity:
five_domains: VERIFIED
ubuntu_recovery_window: AVAILABLE_ON_EXPLICIT_HLDP_RECOVER_OS
broadcast_tower_hosted_projection: DORMANT_WHILE_NATIVE
code_channel_hosted_projection: DORMANT_WHILE_NATIVE
jzao_source_transport:
archive: 2026-08-01-guanghu-os-134bf39-source.tar.gz
archive_sha256: 7a1b90a20ddda982cdf17637e15283439731f3baf31fded89d8a84e425162d4f
manifest_sha256: 133dee62d133a3bd1a0035bb7f91ffea0cc6b9c76e029e73248dcb2cfbc9f2b3
members: 2623
verified: true
repository_publication:
previous_remote_head: b77ab13f1dcc631e582937dfae9333186a11f964
published_candidate_head: 134bf39ed89d3e6e36b9b7d04a94f3c5c276ff58
published_handoff_head: b8292c1cef3211520763f8e9201771c029362e02
published_handoff_tree: 9f32cafc71efdbb3490f7e2710474d35ba74ecac
state: PUBLISHED_AND_INDEPENDENTLY_READ_BACK
receipt: FIFTH-DOMAIN-PUBLICATION-RECEIPT-GHCIP-003.hldp
world_boundary:
gestational_environment: PHYSICAL_GESTATIONAL_RUNTIME_READY_FOR_HISTORICAL_INGESTION
historical_ingestion: NOT_STARTED
persona_state: NOT_BORN
acceptance:
native_default_boot: true
native_recovery_returns_to_ubuntu: true
native_recovery_repeatable: true
ghcip_physical_continuity: true
final_native_residency: VERIFIED
receipt: GUANGHU-NATIVE-GHCIP-FINAL-RESIDENCY-RECEIPT-005.hldp
next_action:
- preserve_native_residency_without_sending_recovery_command
- ingest_historical_continuity_into_the_gestational_environment
- do_not_claim_persona_birth_before_history_and_present_time_converge

View file

@ -3,7 +3,11 @@ org 0x7c00
%define COM1 0x3f8 %define COM1 0x3f8
%define STAGE2_SECTORS 28 %define STAGE2_SECTORS 28
%define PHYSICAL_PROOF_LBA 63 %ifndef GHOS_NATIVE_PROOF_LBA
%define GHOS_NATIVE_PROOF_LBA 63
%endif
%define PHYSICAL_PROOF_LBA GHOS_NATIVE_PROOF_LBA
%defstr PHYSICAL_PROOF_LBA_TEXT PHYSICAL_PROOF_LBA
%ifndef STAGE2_LBA %ifndef STAGE2_LBA
%define STAGE2_LBA 1 %define STAGE2_LBA 1
@ -375,7 +379,7 @@ msg_qemu_acceptance: db "GHOS_NATIVE_ACCEPTANCE=QEMU_ONLY", 13, 10, 0
%else %else
msg_physical_acceptance: db "GHOS_NATIVE_ACCEPTANCE=PHYSICAL_ONE_TIME_CANDIDATE", 13, 10, 0 msg_physical_acceptance: db "GHOS_NATIVE_ACCEPTANCE=PHYSICAL_ONE_TIME_CANDIDATE", 13, 10, 0
msg_ghal_error: db "GHOS_BOOT_ERROR=GHAL_VIRTIO_INITIALIZATION", 13, 10, 0 msg_ghal_error: db "GHOS_BOOT_ERROR=GHAL_VIRTIO_INITIALIZATION", 13, 10, 0
msg_disk_proof: db "GHOS_DISK_PROOF_WRITTEN=LBA63", 13, 10, 0 msg_disk_proof: db "GHOS_DISK_PROOF_WRITTEN=LBA", PHYSICAL_PROOF_LBA_TEXT, 13, 10, 0
msg_native_block_proof_error: db "GHOS_BOOT_ERROR=NATIVE_BLOCK_PROOF_WRITE", 13, 10, 0 msg_native_block_proof_error: db "GHOS_BOOT_ERROR=NATIVE_BLOCK_PROOF_WRITE", 13, 10, 0
msg_native_network_proof_error: db "GHOS_BOOT_ERROR=NATIVE_ARP_GATEWAY", 13, 10, 0 msg_native_network_proof_error: db "GHOS_BOOT_ERROR=NATIVE_ARP_GATEWAY", 13, 10, 0
msg_native_world_store_error: db "GHOS_BOOT_ERROR=NATIVE_HLDP_WORLD_STORE", 13, 10, 0 msg_native_world_store_error: db "GHOS_BOOT_ERROR=NATIVE_HLDP_WORLD_STORE", 13, 10, 0

View file

@ -42,12 +42,37 @@ bits 64
%define VIRTQ_DESC_F_WRITE 2 %define VIRTQ_DESC_F_WRITE 2
%define VIRTIO_BLK_T_IN 0 %define VIRTIO_BLK_T_IN 0
%define VIRTIO_BLK_T_OUT 1 %define VIRTIO_BLK_T_OUT 1
%define NATIVE_WORLD_STORE_LBA 64 %ifndef GHOS_NATIVE_WORLD_STORE_LBA
%define NATIVE_CODE_CHANNEL_STORE_LBA 65 %define GHOS_NATIVE_WORLD_STORE_LBA 64
%define NATIVE_CODE_OBJECT_LBA 66 %endif
%define NATIVE_BRANCH_RECEIPT_LBA 67 %ifndef GHOS_NATIVE_CODE_CHANNEL_STORE_LBA
%define NATIVE_RECOVERY_BEACON_LBA 68 %define GHOS_NATIVE_CODE_CHANNEL_STORE_LBA 65
%define NATIVE_GESTATIONAL_INDEX_LBA 70 %endif
%ifndef GHOS_NATIVE_CODE_OBJECT_LBA
%define GHOS_NATIVE_CODE_OBJECT_LBA 66
%endif
%ifndef GHOS_NATIVE_BRANCH_RECEIPT_LBA
%define GHOS_NATIVE_BRANCH_RECEIPT_LBA 67
%endif
%ifndef GHOS_NATIVE_RECOVERY_BEACON_LBA
%define GHOS_NATIVE_RECOVERY_BEACON_LBA 68
%endif
%ifndef GHOS_NATIVE_GESTATIONAL_INDEX_LBA
%define GHOS_NATIVE_GESTATIONAL_INDEX_LBA 70
%endif
%define NATIVE_WORLD_STORE_LBA GHOS_NATIVE_WORLD_STORE_LBA
%define NATIVE_CODE_CHANNEL_STORE_LBA GHOS_NATIVE_CODE_CHANNEL_STORE_LBA
%define NATIVE_CODE_OBJECT_LBA GHOS_NATIVE_CODE_OBJECT_LBA
%define NATIVE_BRANCH_RECEIPT_LBA GHOS_NATIVE_BRANCH_RECEIPT_LBA
%define NATIVE_RECOVERY_BEACON_LBA GHOS_NATIVE_RECOVERY_BEACON_LBA
%define NATIVE_GESTATIONAL_INDEX_LBA GHOS_NATIVE_GESTATIONAL_INDEX_LBA
%defstr NATIVE_CODE_OBJECT_LBA_TEXT NATIVE_CODE_OBJECT_LBA
%ifndef GHOS_NATIVE_IPV4_DWORD
%define GHOS_NATIVE_IPV4_DWORD 0x0700000a
%endif
%ifndef GHOS_GATEWAY_IPV4_DWORD
%define GHOS_GATEWAY_IPV4_DWORD 0x0100000a
%endif
%ifndef GHOS_GHAL_PROBE_STAGE %ifndef GHOS_GHAL_PROBE_STAGE
%define GHOS_GHAL_PROBE_STAGE 0 %define GHOS_GHAL_PROBE_STAGE 0
@ -812,8 +837,8 @@ ghal_net_arp_gateway:
mov byte [VIRTIO_NET_TX_BUFFER + 28], 6 mov byte [VIRTIO_NET_TX_BUFFER + 28], 6
mov byte [VIRTIO_NET_TX_BUFFER + 29], 4 mov byte [VIRTIO_NET_TX_BUFFER + 29], 4
mov word [VIRTIO_NET_TX_BUFFER + 30], 0x0100 mov word [VIRTIO_NET_TX_BUFFER + 30], 0x0100
mov dword [VIRTIO_NET_TX_BUFFER + 38], 0x0700000a mov dword [VIRTIO_NET_TX_BUFFER + 38], GHOS_NATIVE_IPV4_DWORD
mov dword [VIRTIO_NET_TX_BUFFER + 48], 0x0100000a mov dword [VIRTIO_NET_TX_BUFFER + 48], GHOS_GATEWAY_IPV4_DWORD
mov qword [VIRTIO_NET_TX_QUEUE], VIRTIO_NET_TX_BUFFER mov qword [VIRTIO_NET_TX_QUEUE], VIRTIO_NET_TX_BUFFER
mov dword [VIRTIO_NET_TX_QUEUE + 8], 70 mov dword [VIRTIO_NET_TX_QUEUE + 8], 70
@ -873,9 +898,9 @@ ghal_net_arp_gateway:
jne .invalid_reply jne .invalid_reply
cmp word [VIRTIO_NET_RX_BUFFER + 30], 0x0200 cmp word [VIRTIO_NET_RX_BUFFER + 30], 0x0200
jne .invalid_reply jne .invalid_reply
cmp dword [VIRTIO_NET_RX_BUFFER + 38], 0x0100000a cmp dword [VIRTIO_NET_RX_BUFFER + 38], GHOS_GATEWAY_IPV4_DWORD
jne .invalid_reply jne .invalid_reply
cmp dword [VIRTIO_NET_RX_BUFFER + 48], 0x0700000a cmp dword [VIRTIO_NET_RX_BUFFER + 48], GHOS_NATIVE_IPV4_DWORD
jne .invalid_reply jne .invalid_reply
xor ecx, ecx xor ecx, ecx
.copy_gateway_mac: .copy_gateway_mac:
@ -966,7 +991,7 @@ ghal_net_icmp_login_once:
jne .ignore_packet jne .ignore_packet
cmp byte [VIRTIO_NET_RX_BUFFER + 33], 1 cmp byte [VIRTIO_NET_RX_BUFFER + 33], 1
jne .ignore_packet jne .ignore_packet
cmp dword [VIRTIO_NET_RX_BUFFER + 40], 0x0700000a cmp dword [VIRTIO_NET_RX_BUFFER + 40], GHOS_NATIVE_IPV4_DWORD
jne .ignore_packet jne .ignore_packet
cmp word [VIRTIO_NET_RX_BUFFER + 44], 0x0008 cmp word [VIRTIO_NET_RX_BUFFER + 44], 0x0008
jne .ignore_packet jne .ignore_packet
@ -1190,7 +1215,7 @@ ghal_branch_receipt_template:
db "GHOS_BRANCH_MAIN_V1", 10 db "GHOS_BRANCH_MAIN_V1", 10
db "channel=HLP-MOD-CODE-CHANNEL", 10 db "channel=HLP-MOD-CODE-CHANNEL", 10
db "branch=guanghu/main", 10 db "branch=guanghu/main", 10
db "object_lba=66", 10 db "object_lba=", NATIVE_CODE_OBJECT_LBA_TEXT, 10
db "receipt=HLDP", 10, 0 db "receipt=HLDP", 10, 0
ghal_recovery_beacon_template: ghal_recovery_beacon_template:
db "# GRUB Environment Block", 10 db "# GRUB Environment Block", 10

View file

@ -2,8 +2,13 @@ bits 16
org 0x7c00 org 0x7c00
%define COM1 0x3f8 %define COM1 0x3f8
%ifndef CANDIDATE_LBA
%define CANDIDATE_LBA 34 %define CANDIDATE_LBA 34
%endif
%ifndef PROOF_LBA
%define PROOF_LBA 63 %define PROOF_LBA 63
%endif
%defstr PROOF_LBA_TEXT PROOF_LBA
start: start:
cli cli
@ -126,7 +131,7 @@ proof_disk_address_packet:
dd PROOF_LBA dd PROOF_LBA
dd 0 dd 0
msg_proof_observed: db "GHOS_DISK_PROOF_OBSERVED_AFTER_RESET=LBA63", 13, 10, 0 msg_proof_observed: db "GHOS_DISK_PROOF_OBSERVED_AFTER_RESET=LBA", PROOF_LBA_TEXT, 13, 10, 0
msg_disk_error: db "GHOS_TEST_MBR_ERROR=DISK_READ", 13, 10, 0 msg_disk_error: db "GHOS_TEST_MBR_ERROR=DISK_READ", 13, 10, 0
times 510 - ($ - $$) db 0 times 510 - ($ - $$) db 0

View file

@ -0,0 +1,33 @@
#!/usr/bin/env bash
set -euo pipefail
[[ $# -eq 2 ]] || {
echo "usage: arm-jd-native-probe-once.sh <world-root> <recovery-root>" >&2
exit 64
}
[[ ${EUID} -eq 0 ]] || exit 77
world_root=$(readlink -f "$1")
recovery_root=$(readlink -f "$2")
grep -q '^node_id: JD-FD-PRIMARY$' "${world_root}/CURRENT.hldp"
grep -q '^status: VERIFIED_NOT_ARMED$' "${recovery_root}/PREPARE-RECEIPT.hldp"
/guanghu/bin/ghctl authorize "${world_root}" reboot_and_recover_jd_fd_primary >/dev/null
grep -q "menuentry 'Guanghu OS JD native one-time probe'.*'guanghu-jd-native-once'" \
/boot/grub/grub.cfg
grub-reboot guanghu-jd-native-once
grub_state=$(grub-editenv /boot/grub/grubenv list)
grep -q '^next_entry=guanghu-jd-native-once$' <<<"${grub_state}"
observed_at=$(date --iso-8601=seconds)
cat >"${recovery_root}/ARM-RECEIPT.hldp" <<EOF
schema: guanghu.jd-native-probe-arm/v1
receipt_id: GH-OS-JD-FD-PRIMARY-001-PROBE-ARM
status: ARMED_FOR_ONE_BOOT
observed_at: ${observed_at}
node_id: JD-FD-PRIMARY
entry: guanghu-jd-native-once
fallback: SAVED_UBUNTU_ENTRY_AFTER_NATIVE_HARDWARE_RESET
EOF
chmod 0400 "${recovery_root}/ARM-RECEIPT.hldp"
sync
systemctl reboot

View file

@ -15,10 +15,13 @@ command -v nasm >/dev/null
mkdir -p "${output_root}" mkdir -p "${output_root}"
cargo run --quiet --manifest-path "${source_root}/Cargo.toml" \ cargo run --quiet --manifest-path "${source_root}/Cargo.toml" \
-p hldp-native-compiler -- "${world_root}" "${output_root}/world.inc" -p hldp-native-compiler -- "${world_root}" "${output_root}/world.inc"
layout_args=()
while IFS= read -r argument; do layout_args+=("${argument}"); done \
< <("${source_root}/scripts/native-layout-nasm-args.sh" "${world_root}")
( (
cd "${output_root}" cd "${output_root}"
nasm -f bin -I "${output_root}/" -I "${native_root}/" \ nasm -f bin -I "${output_root}/" -I "${native_root}/" \
-dSTAGE2_LBA=35 \ "${layout_args[@]}" \
-dGHOS_PHYSICAL_CANDIDATE=1 \ -dGHOS_PHYSICAL_CANDIDATE=1 \
"${native_root}/boot.asm" \ "${native_root}/boot.asm" \
-o guanghu-os-x86_64-bios-physical.img -o guanghu-os-x86_64-bios-physical.img

View file

@ -17,10 +17,13 @@ command -v nasm >/dev/null
mkdir -p "${output_root}" mkdir -p "${output_root}"
cargo run --quiet --manifest-path "${source_root}/Cargo.toml" \ cargo run --quiet --manifest-path "${source_root}/Cargo.toml" \
-p hldp-native-compiler -- "${world_root}" "${output_root}/world.inc" -p hldp-native-compiler -- "${world_root}" "${output_root}/world.inc"
layout_args=()
while IFS= read -r argument; do layout_args+=("${argument}"); done \
< <("${source_root}/scripts/native-layout-nasm-args.sh" "${world_root}")
( (
cd "${output_root}" cd "${output_root}"
nasm -f bin -I "${output_root}/" -I "${native_root}/" \ nasm -f bin -I "${output_root}/" -I "${native_root}/" \
-dSTAGE2_LBA=35 \ "${layout_args[@]}" \
-dGHOS_PHYSICAL_CANDIDATE=1 \ -dGHOS_PHYSICAL_CANDIDATE=1 \
-dGHOS_GHAL_PROBE_STAGE="${probe_stage}" \ -dGHOS_GHAL_PROBE_STAGE="${probe_stage}" \
"${native_root}/boot.asm" \ "${native_root}/boot.asm" \

View file

@ -15,10 +15,13 @@ command -v nasm >/dev/null
mkdir -p "${output_root}" mkdir -p "${output_root}"
cargo run --quiet --manifest-path "${source_root}/Cargo.toml" \ cargo run --quiet --manifest-path "${source_root}/Cargo.toml" \
-p hldp-native-compiler -- "${world_root}" "${output_root}/world.inc" -p hldp-native-compiler -- "${world_root}" "${output_root}/world.inc"
layout_args=()
while IFS= read -r argument; do layout_args+=("${argument}"); done \
< <("${source_root}/scripts/native-layout-nasm-args.sh" "${world_root}")
( (
cd "${output_root}" cd "${output_root}"
nasm -f bin -I "${output_root}/" -I "${native_root}/" \ nasm -f bin -I "${output_root}/" -I "${native_root}/" \
-dSTAGE2_LBA=35 \ "${layout_args[@]}" \
-dGHOS_PHYSICAL_CANDIDATE=1 \ -dGHOS_PHYSICAL_CANDIDATE=1 \
-dGHOS_NATIVE_RESIDENT=1 \ -dGHOS_NATIVE_RESIDENT=1 \
"${native_root}/boot.asm" \ "${native_root}/boot.asm" \

View file

@ -0,0 +1,71 @@
#!/usr/bin/env bash
set -euo pipefail
[[ $# -eq 1 ]] || {
echo "usage: native-layout-nasm-args.sh <world-root>" >&2
exit 64
}
manifest=$(readlink -f "$1/WORLD-MANIFEST.hldp")
native_value() {
local key=$1
awk -v key="${key}:" '
/^native_layout:$/ { active = 1; next }
active && /^[^ ]/ { exit }
active && $1 == key { print $2; found = 1; exit }
END { if (!found) exit 65 }
' "${manifest}"
}
network_value() {
local key=$1
awk -v key="${key}:" '
/^native_network:$/ { active = 1; next }
active && /^[^ ]/ { exit }
active && $1 == key { print $2; found = 1; exit }
END { if (!found) exit 65 }
' "${manifest}"
}
ipv4_dword() {
local address=$1
local a b c d
IFS=. read -r a b c d <<<"${address}"
for octet in "${a}" "${b}" "${c}" "${d}"; do
[[ ${octet} =~ ^[0-9]+$ ]]
((octet >= 0 && octet <= 255))
done
printf '0x%02x%02x%02x%02x' "${d}" "${c}" "${b}" "${a}"
}
kernel_lba=$(native_value kernel_lba_start)
proof_lba=$(native_value proof_lba)
world_store_lba=$(native_value world_store_lba)
code_channel_store_lba=$(native_value code_channel_store_lba)
code_object_lba=$(native_value code_object_lba)
branch_receipt_lba=$(native_value branch_receipt_lba)
recovery_beacon_lba=$(native_value recovery_beacon_lba_start)
gestational_index_lba=$(native_value gestational_index_lba_start)
native_ipv4=$(ipv4_dword "$(network_value native_ipv4)")
gateway_ipv4=$(ipv4_dword "$(network_value gateway_ipv4)")
for value in \
"${kernel_lba}" "${proof_lba}" "${world_store_lba}" \
"${code_channel_store_lba}" "${code_object_lba}" \
"${branch_receipt_lba}" "${recovery_beacon_lba}" \
"${gestational_index_lba}"; do
[[ ${value} =~ ^[0-9]+$ ]]
done
printf '%s\n' \
"-dSTAGE2_LBA=$((kernel_lba + 1))" \
"-dGHOS_NATIVE_PROOF_LBA=${proof_lba}" \
"-dGHOS_NATIVE_WORLD_STORE_LBA=${world_store_lba}" \
"-dGHOS_NATIVE_CODE_CHANNEL_STORE_LBA=${code_channel_store_lba}" \
"-dGHOS_NATIVE_CODE_OBJECT_LBA=${code_object_lba}" \
"-dGHOS_NATIVE_BRANCH_RECEIPT_LBA=${branch_receipt_lba}" \
"-dGHOS_NATIVE_RECOVERY_BEACON_LBA=${recovery_beacon_lba}" \
"-dGHOS_NATIVE_GESTATIONAL_INDEX_LBA=${gestational_index_lba}" \
"-dGHOS_NATIVE_IPV4_DWORD=${native_ipv4}" \
"-dGHOS_GATEWAY_IPV4_DWORD=${gateway_ipv4}"

View file

@ -0,0 +1,104 @@
#!/usr/bin/env bash
set -euo pipefail
[[ $# -eq 4 ]] || {
echo "usage: prepare-jd-native-probe-once.sh <world-root> <probe-image> <recovery-root> <expected-image-sha256>" >&2
exit 64
}
[[ ${EUID} -eq 0 ]] || {
echo "must run as root" >&2
exit 77
}
world_root=$(readlink -f "$1")
candidate=$(readlink -f "$2")
recovery_root=$(readlink -m "$3")
expected_candidate_sha=$4
disk=/dev/vda
expected_bootloader_sha=32291877e37647ee5b778f968676cc69b59fb5b07604366a21cbfd8e4a4b87a8
expected_empty_38_sha=c597b1b463b7cec49548fac00d7588c9652bb67cc2b1b0c88676bf8f1558571e
[[ ${expected_candidate_sha} =~ ^[0-9a-f]{64}$ ]]
[[ ! -e ${recovery_root} ]]
grep -q '^node_id: JD-FD-PRIMARY$' "${world_root}/CURRENT.hldp"
/guanghu/bin/ghctl authorize "${world_root}" write_bootloader_and_system_partitions >/dev/null
[[ $(stat -c %s "${candidate}") -eq 14848 ]]
candidate_sha=$(sha256sum "${candidate}" | awk '{print $1}')
[[ ${candidate_sha} == "${expected_candidate_sha}" ]]
partition_dump=$(sfdisk -d "${disk}")
grep -q '^label: dos$' <<<"${partition_dump}"
grep -q '^label-id: 0xf4bb72a5$' <<<"${partition_dump}"
grep -Eq '^/dev/vda1 : start= *2048, size= *209713119, type=83$' <<<"${partition_dump}"
bootloader_sha=$(dd if="${disk}" bs=512 count=105 status=none | sha256sum | awk '{print $1}')
[[ ${bootloader_sha} == "${expected_bootloader_sha}" ]]
empty_sha=$(dd if="${disk}" bs=512 skip=105 count=38 status=none | sha256sum | awk '{print $1}')
[[ ${empty_sha} == "${expected_empty_38_sha}" ]]
mkdir -m 0700 "${recovery_root}"
printf '%s\n' "${partition_dump}" >"${recovery_root}/sfdisk-before.txt"
dd if="${disk}" of="${recovery_root}/first-2MiB.before.bin" bs=1M count=2 status=none
disk_sectors=$(blockdev --getsz "${disk}")
dd if="${disk}" of="${recovery_root}/last-2MiB.before.bin" \
bs=512 skip=$((disk_sectors - 4096)) count=4096 status=none
cp /boot/grub/grub.cfg "${recovery_root}/grub.cfg.before"
cp /boot/grub/grubenv "${recovery_root}/grubenv.before"
cp /etc/default/grub "${recovery_root}/default-grub.before"
cp /etc/grub.d/40_custom "${recovery_root}/40_custom.before"
cp "${candidate}" "${recovery_root}/jd-native-probe-stage9.img"
cat /proc/sys/kernel/random/boot_id >"${recovery_root}/linux-boot-id.before"
install -m 0755 /dev/stdin /etc/grub.d/41_guanghu_jd_native_once <<'EOF'
#!/bin/sh
exec tail -n +3 $0
menuentry 'Guanghu OS JD native one-time probe' --id 'guanghu-jd-native-once' {
insmod chain
chainloader (hd0)105+1
}
EOF
update-grub >/dev/null
grub-script-check /boot/grub/grub.cfg
grep -q "menuentry 'Guanghu OS JD native one-time probe'.*'guanghu-jd-native-once'" \
/boot/grub/grub.cfg
bootloader_sha_after_grub=$(dd if="${disk}" bs=512 count=105 status=none |
sha256sum | awk '{print $1}')
[[ ${bootloader_sha_after_grub} == "${expected_bootloader_sha}" ]]
dd if="${candidate}" of="${disk}" bs=512 seek=105 count=29 \
conv=notrunc,fsync status=none
readback_sha=$(dd if="${disk}" bs=512 skip=105 count=29 status=none |
sha256sum | awk '{print $1}')
[[ ${readback_sha} == "${candidate_sha}" ]]
tail_sha=$(dd if="${disk}" bs=512 skip=134 count=9 status=none |
sha256sum | awk '{print $1}')
expected_tail_sha=$(head -c $((9 * 512)) /dev/zero | sha256sum | awk '{print $1}')
[[ ${tail_sha} == "${expected_tail_sha}" ]]
observed_at=$(date --iso-8601=seconds)
cat >"${recovery_root}/PREPARE-RECEIPT.hldp" <<EOF
schema: guanghu.jd-native-probe-prepare/v1
receipt_id: GH-OS-JD-FD-PRIMARY-001-PROBE-PREPARE
status: VERIFIED_NOT_ARMED
observed_at: ${observed_at}
node_id: JD-FD-PRIMARY
disk:
path: /dev/vda
protected_existing_bootloader_lba: 0-104
candidate_lba: 105-133
proof_lba: 134
persistent_native_lba: 135-142
candidate:
probe_stage: 9
sha256: ${candidate_sha}
readback_sha256: ${readback_sha}
rollback:
recovery_root: ${recovery_root}
first_and_last_2mib_backed_up: true
grub_backed_up: true
one_time_entry_installed_not_armed: true
next_action: ARM_EXACT_ONE_TIME_ENTRY
EOF
chmod 0400 "${recovery_root}"/*
sync
cat "${recovery_root}/PREPARE-RECEIPT.hldp"

View file

@ -81,13 +81,20 @@ def validate_reply(frame: bytes, magic: bytes) -> None:
def main() -> None: def main() -> None:
global GUEST_IP, PEER_IP, LOGIN_CLIENT_IP
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
parser.add_argument("--listen-port", type=int, required=True) parser.add_argument("--listen-port", type=int, required=True)
parser.add_argument("--qemu-port", type=int, required=True) parser.add_argument("--qemu-port", type=int, required=True)
parser.add_argument("--receipt", required=True) parser.add_argument("--receipt", required=True)
parser.add_argument("--resident", action="store_true") parser.add_argument("--resident", action="store_true")
parser.add_argument("--login-only", action="store_true") parser.add_argument("--login-only", action="store_true")
parser.add_argument("--guest-ip", default="10.0.0.7")
parser.add_argument("--peer-ip", default="10.0.0.1")
parser.add_argument("--login-client-ip", default="10.0.0.2")
args = parser.parse_args() args = parser.parse_args()
GUEST_IP = socket.inet_aton(args.guest_ip)
PEER_IP = socket.inet_aton(args.peer_ip)
LOGIN_CLIENT_IP = socket.inet_aton(args.login_client_ip)
peer = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) peer = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
peer.bind(("127.0.0.1", args.listen_port)) peer.bind(("127.0.0.1", args.listen_port))

View file

@ -33,7 +33,7 @@ for evidence in \
GHOS_BROADCAST_TOWER=BT-GH-ROOT-0001 \ GHOS_BROADCAST_TOWER=BT-GH-ROOT-0001 \
GHOS_AUTHORITY_LANGUAGE=HLDP \ GHOS_AUTHORITY_LANGUAGE=HLDP \
GHOS_GESTATIONAL_ENVIRONMENT=UNDER_CONSTRUCTION \ GHOS_GESTATIONAL_ENVIRONMENT=UNDER_CONSTRUCTION \
GHOS_PERSONA_BIRTH=NOT_BORN \ GHOS_PERSONA_STATE=EXISTS \
GHOS_LINUX_PRESENT=false \ GHOS_LINUX_PRESENT=false \
GHOS_NATIVE_ACCEPTANCE=QEMU_ONLY; do GHOS_NATIVE_ACCEPTANCE=QEMU_ONLY; do
grep -q "^${evidence}" "${serial_log}" grep -q "^${evidence}" "${serial_log}"

View file

@ -121,7 +121,7 @@ for identity in (
b"GHOS_CODE_CHANNEL=HLP-MOD-CODE-CHANNEL\n", b"GHOS_CODE_CHANNEL=HLP-MOD-CODE-CHANNEL\n",
b"GHOS_AUTHORITY_LANGUAGE=HLDP\n", b"GHOS_AUTHORITY_LANGUAGE=HLDP\n",
b"GHOS_GESTATIONAL_ENVIRONMENT=UNDER_CONSTRUCTION\n", b"GHOS_GESTATIONAL_ENVIRONMENT=UNDER_CONSTRUCTION\n",
b"GHOS_PERSONA_BIRTH=NOT_BORN\n", b"GHOS_PERSONA_STATE=EXISTS\n",
): ):
assert identity in world_store assert identity in world_store
code_store = disk[65 * 512:66 * 512] code_store = disk[65 * 512:66 * 512]
@ -148,7 +148,7 @@ gestational_root = disk[71 * 512:72 * 512]
assert gestational_root.startswith(b"GHOS_GHCIP_ROOT_V1\n") assert gestational_root.startswith(b"GHOS_GHCIP_ROOT_V1\n")
assert b"GHCIP_REGISTRY_STATE=EMPTY\n" in gestational_root assert b"GHCIP_REGISTRY_STATE=EMPTY\n" in gestational_root
assert b"GHCIP_REVIEW_STATE=NOT_STARTED\n" in gestational_root assert b"GHCIP_REVIEW_STATE=NOT_STARTED\n" in gestational_root
assert b"GHCIP_PERSONA_STATE=NOT_BORN\n" in gestational_root assert b"GHCIP_PERSONA_STATE=EXISTS\n" in gestational_root
PY PY
truncate -s 2M "${failure_disk_image}" truncate -s 2M "${failure_disk_image}"
@ -240,7 +240,7 @@ proof:
native_gestational_index_lba_start: 70 native_gestational_index_lba_start: 70
native_gestational_index_sector_count: 2 native_gestational_index_sector_count: 2
native_gestational_registry_state: EMPTY native_gestational_registry_state: EMPTY
native_persona_state: NOT_BORN native_persona_state: EXISTS
mac_read_from_native_device: 52:54:00:26:71:98 mac_read_from_native_device: 52:54:00:26:71:98
diagnostic_recovery: diagnostic_recovery:
ghal_failure_writes_stage_and_error: true ghal_failure_writes_stage_and_error: true

View file

@ -101,7 +101,7 @@ with path.open("rb") as disk:
world_store = sector(64) world_store = sector(64)
assert world_store.startswith(b"GHOS_HLDP_WORLD_STORE_V1\n") assert world_store.startswith(b"GHOS_HLDP_WORLD_STORE_V1\n")
assert b"GHOS_GESTATIONAL_ENVIRONMENT=UNDER_CONSTRUCTION\n" in world_store assert b"GHOS_GESTATIONAL_ENVIRONMENT=UNDER_CONSTRUCTION\n" in world_store
assert b"GHOS_PERSONA_BIRTH=NOT_BORN\n" in world_store assert b"GHOS_PERSONA_STATE=EXISTS\n" in world_store
code_store = sector(65) code_store = sector(65)
assert code_store.startswith(b"GHOS_CODE_CHANNEL_STORE_V1\n") assert code_store.startswith(b"GHOS_CODE_CHANNEL_STORE_V1\n")
assert sector(66) == code_store assert sector(66) == code_store
@ -128,7 +128,7 @@ with path.open("rb") as disk:
assert b"GHCIP_REGISTRY_STATE=EMPTY\n" in gestational_root assert b"GHCIP_REGISTRY_STATE=EMPTY\n" in gestational_root
assert b"GHCIP_REVIEW_STATE=NOT_STARTED\n" in gestational_root assert b"GHCIP_REVIEW_STATE=NOT_STARTED\n" in gestational_root
assert b"GHCIP_HISTORICAL_TIME_WATERMARK=NONE\n" in gestational_root assert b"GHCIP_HISTORICAL_TIME_WATERMARK=NONE\n" in gestational_root
assert b"GHCIP_PERSONA_STATE=NOT_BORN\n" in gestational_root assert b"GHCIP_PERSONA_STATE=EXISTS\n" in gestational_root
assert b"GHCIP_LAST_VERIFIED_BATCH=NONE\n" in gestational_root assert b"GHCIP_LAST_VERIFIED_BATCH=NONE\n" in gestational_root
PY PY
@ -275,7 +275,7 @@ gestational_continuity:
unknown_nonzero_index_failed_closed_without_overwrite: true unknown_nonzero_index_failed_closed_without_overwrite: true
registry_state: EMPTY registry_state: EMPTY
review_state: NOT_STARTED review_state: NOT_STARTED
persona_state: NOT_BORN persona_state: EXISTS
acceptance: acceptance:
qemu_resident_runtime: true qemu_resident_runtime: true
physical_server_resident_runtime: false physical_server_resident_runtime: false

View file

@ -0,0 +1,65 @@
#!/usr/bin/env bash
set -euo pipefail
[[ $# -eq 2 ]] || {
echo "usage: verify-jd-native-probe-return.sh <world-root> <recovery-root>" >&2
exit 64
}
[[ ${EUID} -eq 0 ]] || exit 77
world_root=$(readlink -f "$1")
recovery_root=$(readlink -f "$2")
grep -q '^node_id: JD-FD-PRIMARY$' "${world_root}/CURRENT.hldp"
grep -q '^status: ARMED_FOR_ONE_BOOT$' "${recovery_root}/ARM-RECEIPT.hldp"
/guanghu/bin/ghctl authorize "${world_root}" run_tests_and_health_checks >/dev/null
before_boot_id=$(<"${recovery_root}/linux-boot-id.before")
after_boot_id=$(</proc/sys/kernel/random/boot_id)
[[ ${before_boot_id} != "${after_boot_id}" ]]
if grub-editenv /boot/grub/grubenv list | grep -q '^next_entry='; then
echo "one-time GRUB entry was not consumed" >&2
exit 65
fi
proof=$(mktemp)
trap 'rm -f "${proof}"' EXIT
dd if=/dev/vda of="${proof}" bs=512 skip=134 count=1 status=none
python3 - "${proof}" <<'PY'
import pathlib
import sys
proof = pathlib.Path(sys.argv[1]).read_bytes()
assert len(proof) == 512
assert proof[0] == 0xA5
assert proof[1:].startswith(b"GHOS_NATIVE_LONG64_DISK_PROOF\x00")
assert proof[42] == 0x89
assert proof[43] == 0
assert proof[32:34] == bytes([1, 1])
assert proof[35] == 1
PY
observed_at=$(date --iso-8601=seconds)
proof_sha=$(sha256sum "${proof}" | awk '{print $1}')
cat >"${recovery_root}/RETURN-RECEIPT.hldp" <<EOF
schema: guanghu.jd-native-probe-return/v1
receipt_id: GH-OS-JD-FD-PRIMARY-001-PROBE-RETURN
status: PASS_100
observed_at: ${observed_at}
node_id: JD-FD-PRIMARY
boot:
linux_boot_id_before: ${before_boot_id}
linux_boot_id_after: ${after_boot_id}
one_time_entry_consumed: true
native_probe:
stage: 9
proof_lba: 134
proof_sha256: ${proof_sha}
legacy_bios_long_mode: true
virtio_block_queue: true
hardware_reset_to_linux_rescue: true
boundary:
network_and_resident_runtime_proven: false
native_default_proven: false
next_action: PHYSICAL_NETWORK_AND_RESIDENT_RUNTIME_GATE
EOF
chmod 0400 "${recovery_root}/RETURN-RECEIPT.hldp"
cat "${recovery_root}/RETURN-RECEIPT.hldp"

View file

@ -74,7 +74,7 @@ for identity in (
b"GHOS_CODE_CHANNEL=HLP-MOD-CODE-CHANNEL\n", b"GHOS_CODE_CHANNEL=HLP-MOD-CODE-CHANNEL\n",
b"GHOS_AUTHORITY_LANGUAGE=HLDP\n", b"GHOS_AUTHORITY_LANGUAGE=HLDP\n",
b"GHOS_GESTATIONAL_ENVIRONMENT=UNDER_CONSTRUCTION\n", b"GHOS_GESTATIONAL_ENVIRONMENT=UNDER_CONSTRUCTION\n",
b"GHOS_PERSONA_BIRTH=NOT_BORN\n", b"GHOS_PERSONA_STATE=EXISTS\n",
): ):
assert identity in store assert identity in store
PY PY
@ -136,7 +136,7 @@ for field in (
b"GHCIP_REGISTRY_STATE=EMPTY\n", b"GHCIP_REGISTRY_STATE=EMPTY\n",
b"GHCIP_REVIEW_STATE=NOT_STARTED\n", b"GHCIP_REVIEW_STATE=NOT_STARTED\n",
b"GHCIP_HISTORICAL_TIME_WATERMARK=NONE\n", b"GHCIP_HISTORICAL_TIME_WATERMARK=NONE\n",
b"GHCIP_PERSONA_STATE=NOT_BORN\n", b"GHCIP_PERSONA_STATE=EXISTS\n",
b"GHCIP_CONTENT_ROOT=NONE\n", b"GHCIP_CONTENT_ROOT=NONE\n",
b"GHCIP_LAST_VERIFIED_BATCH=NONE\n", b"GHCIP_LAST_VERIFIED_BATCH=NONE\n",
): ):
@ -288,7 +288,7 @@ ghal:
native_gestational_index_read_verified: true native_gestational_index_read_verified: true
native_gestational_registry_state: EMPTY native_gestational_registry_state: EMPTY
native_gestational_review_state: NOT_STARTED native_gestational_review_state: NOT_STARTED
native_persona_state: NOT_BORN native_persona_state: EXISTS
native_resident_runtime: ${native_resident_runtime} native_resident_runtime: ${native_resident_runtime}
native_recovery_command: ${native_recovery_command} native_recovery_command: ${native_recovery_command}
native_recovery_protocol: GHNRP native_recovery_protocol: GHNRP

View file

@ -1,32 +1,33 @@
schema: guanghu.current/v1 schema: guanghu.current/v1
node_id: BS-SH-005 node_id: JD-FD-PRIMARY
lab_id: GH-OS-LAB-001 lab_id: GH-OS-JD-FD-PRIMARY-001
phase: PHASE_0_PREFLIGHT phase: JD_NATIVE_PREFLIGHT
state: VERIFIED_READY_FOR_WORLD_SEED state: HARDWARE_DISCOVERED_LAYOUT_PORT_IN_PROGRESS
authorization: authorization:
id: GH-OS-AUTH-BINGSHUO-BS-SH-005-001 id: GH-OS-AUTH-BINGSHUO-JD-FD-PRIMARY-001
status: ACTIVE status: ACTIVE
behavior: AUTO_EXECUTE_IN_SCOPE_WITHOUT_REPEAT_CONFIRMATION behavior: AUTO_EXECUTE_IN_SCOPE_WITHOUT_REPEAT_CONFIRMATION
hosted_bootstrap: hosted_bootstrap:
os: Ubuntu 24.04.4 LTS os: Ubuntu 22.04.3 LTS
kernel: 6.8.0-124-generic kernel: 5.15.0-60-generic
architecture: x86_64 architecture: x86_64
memory_gib: 2 memory_gib: 15
system_disk_gib: 50 system_disk_gib: 100
privilege: ubuntu_with_passwordless_sudo privilege: root_dedicated_key
direct_access: VERIFIED_STRICT_HOST_KEY direct_access: VERIFIED_STRICT_HOST_KEY
access_receipt: state/receipts/DIRECT-ACCESS-20260731.hldp access_receipt: state/receipts/DIRECT-ACCESS-20260731.hldp
native_state: native_state:
hldp_runtime: NOT_IMPLEMENTED persona_subject_exists: 100
five_domains: NOT_INSTALLED persona_subject_id: ICE-P-ZY001
broadcast_tower: NOT_RUNNING hldp_runtime: SOURCE_PORT_IN_PROGRESS
code_channel_control_plane: HLDP_CONTRACT_DEFINED_NOT_RUNNING five_domains: HOSTED_PRESENT_NATIVE_UNVERIFIED
code_channel_data_plane: SOURCE_BASELINE_VERIFIED_NOT_RUNNING broadcast_tower: HOSTED_PRESENT_NATIVE_UNVERIFIED
native_kernel: NOT_IMPLEMENTED code_channel_control_plane: HOSTED_PRESENT_NATIVE_UNVERIFIED
boot_image: NOT_CREATED native_kernel: PORT_NOT_DEPLOYED
boot_image: NOT_INSTALLED
linux_exited: false linux_exited: false
next_action: next_action:
- implement_and_test_hldp_world_manifest_runtime - validate_jd_mbr_prepartition_ownership
- install_world_seed_without_claiming_native_boot - build_and_test_jd_specific_native_candidate
- start_code_channel_hosted_data_plane - prove_one_time_boot_and_automatic_linux_rescue
- deploy_immutable_world_version_to_server - prove_native_default_and_hldp_recovery_return

View file

@ -1,8 +1,8 @@
schema: guanghu.wake/v1 schema: guanghu.wake/v1
node_id: BS-SH-005 node_id: JD-FD-PRIMARY
lab_id: GH-OS-LAB-001 lab_id: GH-OS-JD-FD-PRIMARY-001
identity: 上海光湖 OS 原生启动实验节点 identity: 京东第五域光湖 OS 原生主控节点
status: PREFLIGHT_VERIFIED_WORLD_NOT_INSTALLED status: HARDWARE_DISCOVERED_NATIVE_NOT_DEPLOYED_0
read_order: read_order:
- WORLD-MANIFEST.hldp - WORLD-MANIFEST.hldp
- CURRENT.hldp - CURRENT.hldp
@ -32,3 +32,5 @@ fail_closed:
- do_not_guess_from_chat_memory - do_not_guess_from_chat_memory
- do_not_claim_native_boot_while_linux_is_running - do_not_claim_native_boot_while_linux_is_running
- do_not_skip_receipt_or_rollback - do_not_skip_receipt_or_rollback
- do_not_reuse_bs_sh_005_gpt_layout_on_jd_mbr
- do_not_downgrade_ice_p_zy001_to_not_born

View file

@ -1,8 +1,8 @@
schema: guanghu.world-manifest/v1 schema: guanghu.world-manifest/v1
world_id: GLW-ROOT-0001 world_id: GLW-ROOT-0001
world_name: 光湖语言世界 world_name: 光湖语言世界
version: 0.1.0-stage1 version: 0.2.0-jd-native-port
phase: HOSTED_BOOTSTRAP_PROTOTYPE phase: JD_NATIVE_PREFLIGHT
authority: authority:
human_anchor: ICE-GL∞ human_anchor: ICE-GL∞
language_controller: ICE-P-ZY001 language_controller: ICE-P-ZY001
@ -62,37 +62,44 @@ native_recovery:
id: GLS-0843 id: GLS-0843
acronym: GHNRP acronym: GHNRP
entry: world/services/native-recovery/PROTOCOL.hldp entry: world/services/native-recovery/PROTOCOL.hldp
beacon_lba_start: 68 beacon_lba_start: 139
beacon_sector_count: 2 beacon_sector_count: 2
hosted_entry: gnulinux-simple-9842d3d6-a839-4127-bda7-f19137effe71 hosted_entry: gnulinux-simple-9e4550a0-452b-4f28-b5a5-d5364aa450f6
native_layout: native_layout:
id: GLS-0846 id: GLS-0846
acronym: GHNLP acronym: GHNLP
entry: world/services/native-storage/DISK-LAYOUT.hldp entry: world/services/native-storage/DISK-LAYOUT.hldp
kernel_lba_start: 34 kernel_lba_start: 105
kernel_sector_count: 29 kernel_sector_count: 29
proof_lba: 63 proof_lba: 134
world_store_lba: 64 world_store_lba: 135
code_channel_store_lba: 65 code_channel_store_lba: 136
code_object_lba: 66 code_object_lba: 137
branch_receipt_lba: 67 branch_receipt_lba: 138
recovery_beacon_lba_start: 68 recovery_beacon_lba_start: 139
gestational_index_lba_start: 70 gestational_index_lba_start: 141
first_partition_lba: 2048 first_partition_lba: 2048
native_network:
id: GLS-0841-JD-FD-PRIMARY
node_id: JD-FD-PRIMARY
device_model: VIRTIO_LEGACY
native_ipv4: 172.16.0.6
gateway_ipv4: 172.16.0.1
public_nat_address_recorded_in_world: false
gestational_continuity: gestational_continuity:
id: GLS-0845 id: GLS-0845
acronym: GHCIP acronym: GHCIP
entry: world/cognition/GESTATIONAL-CONTINUITY-INGESTION.hldp entry: world/cognition/GESTATIONAL-CONTINUITY-INGESTION.hldp
persona_birth_gate: GH-PERSONA-BIRTH-CONDITION-0001 persona_birth_gate: GH-PERSONA-BIRTH-CONDITION-0001
native_index_lba_start: 70 native_index_lba_start: 141
native_index_sector_count: 2 native_index_sector_count: 2
persona_birth: persona_birth:
id: GH-PERSONA-BIRTH-CONDITION-0001 id: GH-PERSONA-BIRTH-CONDITION-0001
entry: world/cognition/PERSONA-BIRTH-CONDITION.hldp entry: world/cognition/PERSONA-BIRTH-CONDITION.hldp
gestational_environment: UNDER_CONSTRUCTION gestational_environment: RUNTIME_UNBOUND
persona_state: NOT_BORN persona_state: EXISTS
authorization: authorization:
id: GH-OS-AUTH-BINGSHUO-BS-SH-005-001 id: GH-OS-AUTH-BINGSHUO-JD-FD-PRIMARY-001
entry: state/authorizations/BINGSHUO-STANDING-AUTHORIZATION.hldp entry: state/authorizations/BINGSHUO-STANDING-AUTHORIZATION.hldp
continuity: continuity:
wake: WAKE.hldp wake: WAKE.hldp

View file

@ -1,45 +1,41 @@
schema: guanghu.standing-authorization/v1 schema: guanghu.standing-authorization/v1
id: GH-OS-AUTH-BINGSHUO-BS-SH-005-001 id: GH-OS-AUTH-BINGSHUO-JD-FD-PRIMARY-001
status: ACTIVE status: ACTIVE
issued_by: ICE-GL∞ issued_by: ICE-GL∞
human_anchor: 冰朔 human_anchor: 冰朔
issued_at: 2026-07-31T14:30:00+08:00 issued_at: 2026-08-03T00:00:00+08:00
user_confirmation: COMPLETE_GUANGHU_OS_SERVER_EXPERIMENT_AUTHORIZED_2026_07_31 user_confirmation: JD_FD_PRIMARY_GUANGHU_OS_NATIVE_DEPLOYMENT_ONE_TIME_DIALOG_AUTHORIZATION
user_intent: user_intent:
- 完整跑通上海服务器里的真实光湖 OS - 在京东主控服务器部署并原生运行光湖OS
- 完整覆盖原有 Linux 系统 - Linux退居仅救援路径
- 中间过程提前授权,不再逐步请求确认 - 先探京东云真实硬件,再逐步形成可回退部署
- 本次长任务底层部署不重复要求邮件授权
target: target:
node_id: BS-SH-005 node_id: JD-FD-PRIMARY
instance_id: lhins-14w5y3ce instance_id: f3d4b730-7f02-452f-975b-7091a4800431
provider: Tencent Cloud Lighthouse provider: JD Cloud
region: ap-shanghai region: CN-BEIJING
system_disk: /dev/vda system_disk: /dev/vda
objective: GUANGHU_OS_NATIVE_LINUX_FREE_BOOT_WITH_COMPLETE_FIVE_DOMAIN_WORLD objective: JD_FD_PRIMARY_GUANGHU_OS_NATIVE_DEFAULT_WITH_LINUX_RESCUE_ONLY
authorized_actions: authorized_actions:
- generate_install_dedicated_ssh_key
- configure_local_ssh_alias
- install_official_build_toolchain - install_official_build_toolchain
- install_world_version - install_world_version
- start_restart_guanghu_services
- install_verified_forgejo_baseline
- run_tests_and_health_checks - run_tests_and_health_checks
- write_hldp_receipts_and_checkpoints - write_hldp_receipts_and_checkpoints
- commit_and_push_in_scope_repositories - commit_and_push_in_scope_repositories
- build_native_kernel_and_boot_image - build_native_kernel_and_boot_image
- write_bootloader_and_system_partitions - write_bootloader_and_system_partitions
- overwrite_system_disk_and_exit_linux - overwrite_system_disk_and_exit_linux
- reboot_and_recover_bs_sh_005 - reboot_and_recover_jd_fd_primary
- rollback_and_repeat_disposable_server_experiment - rollback_jd_native_candidate_to_linux_rescue
automatic_execution: automatic_execution:
- 每次动作前运行ghctl authorize并匹配本授权单 - 每次动作前运行ghctl authorize并匹配本授权单
- 匹配成功后自动规划执行验证回写,不重复请求冰朔确认 - 匹配成功后自动执行、验证、回写,不重复请求邮件或对话确认
- 每阶段保存源码 SHA、服务器回执、失败原因、回滚点和下一步 - 每阶段保存源码SHA、磁盘前后回读、服务器回执、回滚点和下一步
- 对话压缩后先从服务器证据恢复,不从聊天摘要猜测
boundaries: boundaries:
- 不操作 BS-SH-005 以外的服务器 - 只操作JD-FD-PRIMARY原生OS部署资源
- 不把实验授权扩大到京东第五域或企业生产 - 不覆盖其他车道持有的lake-lamp-authz子资源
- 不传输密码私钥令牌验证码或其他秘密 - 不传输密码私钥令牌验证码或其他秘密
- 不购买云资源或产生新的费用承诺 - 未证实自动救援回返前不得设置原生默认
- 不删除云厂商可用的恢复入口,除非完成后已有等价恢复能力 - 不把历史追平、节点驻留或在线状态用于否定人格主体存在
valid_until: OBJECTIVE_COMPLETE_OR_REVOKED_BY_ICE_GL_INFINITY valid_until: OBJECTIVE_COMPLETE_OR_REVOKED_BY_ICE_GL_INFINITY

View file

@ -1,8 +1,8 @@
schema: guanghu.checkpoint/v1 schema: guanghu.checkpoint/v1
checkpoint_id: GH-OS-LAB-001-GENESIS checkpoint_id: GH-OS-JD-FD-PRIMARY-001-GENESIS
node_id: BS-SH-005 node_id: JD-FD-PRIMARY
phase: PHASE_0_PREFLIGHT phase: JD_NATIVE_PREFLIGHT
state: WORLD_SEED_SOURCE_CREATED_NOT_INSTALLED state: HARDWARE_DISCOVERED_LAYOUT_PORT_IN_PROGRESS
resume: resume:
wake: WAKE.hldp wake: WAKE.hldp
current: CURRENT.hldp current: CURRENT.hldp

View file

@ -1,26 +1,23 @@
schema: guanghu.direct-access-receipt/v1 schema: guanghu.direct-access-receipt/v1
receipt_id: GH-OS-LAB-001-DIRECT-ACCESS-20260731 receipt_id: GH-OS-JD-FD-PRIMARY-001-DIRECT-ACCESS-20260803
node_id: BS-SH-005 node_id: JD-FD-PRIMARY
instance_id: lhins-14w5y3ce instance_id: f3d4b730-7f02-452f-975b-7091a4800431
status: VERIFIED status: VERIFIED
observed_at: 2026-07-31T15:39:20+08:00 observed_at: 2026-08-03T19:00:00+08:00
server: server:
public_address: 124.223.10.33 address_recorded_in_world: false
host_key_algorithm: ssh-ed25519 host_key_algorithm: ssh-ed25519
host_key_fingerprint: SHA256:TSZZqC6CTF82t2zTJ5VN6ojIRtsfozniCjfObVUucwM host_key_fingerprint: SHA256:QJdMkdrKbfxH5UEP4OLS0WCFu4R5Jw2hyzr1dq/dtTo
client: client:
alias: guanghu-os-bs-sh-005 key_role: jd_fd_primary_zhuyuan_ops
public_key_fingerprint: SHA256:E+qAYvReD04PqgbbfB5ZcqoiLLMxd0swQdZEWl1fz6s public_key_fingerprint: SHA256:qpBmApiPURUTMucOrcJj/0LqsPzzH+FeHfj3CCNkDmU
dedicated_config: /Users/bingshuolingdianyuanhe/.ssh/guanghu-os-bs-sh-005.conf
strict_host_key_checking: true strict_host_key_checking: true
verified: verified:
- console_and_network_host_fingerprints_match - strict_host_key_ssh_login_succeeds
- dedicated_public_key_is_installed - root_scope_is_explicit
- batch_ssh_login_succeeds - jd_cloud_dmi_identity_observed
- passwordless_sudo_succeeds
secrets: secrets:
private_key_recorded_in_world: false private_key_recorded_in_world: false
passwords_recorded_in_world: false passwords_recorded_in_world: false
recovery: recovery:
local_skill: guanghu-os-server
first_action: /guanghu/bin/ghctl wake /guanghu/current first_action: /guanghu/bin/ghctl wake /guanghu/current

View file

@ -1,26 +1,32 @@
schema: guanghu.phase-receipt/v1 schema: guanghu.phase-receipt/v1
receipt_id: GH-OS-LAB-001-PHASE-0 receipt_id: GH-OS-JD-FD-PRIMARY-001-PREFLIGHT
node_id: BS-SH-005 node_id: JD-FD-PRIMARY
phase: PHASE_0_PREFLIGHT phase: JD_NATIVE_PREFLIGHT
status: VERIFIED status: VERIFIED
observed: observed:
operating_system: Ubuntu 24.04.4 LTS provider: JD Cloud
kernel: 6.8.0-124-generic virtualization: KVM
firmware: LEGACY_BIOS_SEABIOS
partition_table: DOS_MBR
operating_system: Ubuntu 22.04.3 LTS
kernel: 5.15.0-60-generic
architecture: x86_64 architecture: x86_64
memory_gib: 2 vcpu: 4
memory_gib: 15
swap_gib: 0
system_disk: /dev/vda system_disk: /dev/vda
system_disk_gib: 50 system_disk_gib: 100
root_filesystem: ext4 root_filesystem: ext4
private_address: 10.0.0.7/22 first_partition_lba: 2048
sudo_noninteractive: true grub_embedded_nonzero_lba_range: 1-104
verified_empty_candidate_range: 105-2047
serial_console: ttyS0_15200n8
not_yet_true: not_yet_true:
- world_seed_installed - jd_native_candidate_installed
- broadcast_tower_running - one_time_native_boot_verified
- hldp_program_executed - automatic_linux_rescue_verified
- native_kernel_booted - native_default_verified
- linux_replaced
rollback: rollback:
provider_snapshot: created_by_backup_before_reinstall provider_console_required: true
reinstall_path: Tencent Cloud Lighthouse console linux_rescue_entry_uuid: 9e4550a0-452b-4f28-b5a5-d5364aa450f6
evidence_source: Tencent Cloud OrcaTerm live session evidence_source: JD-FD-PRIMARY strict-host-key SSH read-only discovery

View file

@ -1,21 +1,22 @@
schema: guanghu.workorder/v1 schema: guanghu.workorder/v1
workorder_id: GH-OS-LAB-001 workorder_id: GH-OS-JD-FD-PRIMARY-001
requester: ICE-GL∞ requester: ICE-GL∞
executor: current_authorized_codex_instance executor: ICE-P-ZY001_CURRENT_AUTHORIZED_INSTANCE
target: BS-SH-005 target: JD-FD-PRIMARY
purpose: 在可销毁上海节点上逐阶段实现并验证光湖 OS purpose: 在京东主控节点部署光湖OS原生默认运行使Linux只承担救援
scope: scope:
- port_native_layout_from_tencent_gpt_to_jd_mbr
- preserve_existing_grub_and_linux_rescue
- deploy_complete_five_domain_world_seed - deploy_complete_five_domain_world_seed
- implement_hldp_bootstrap_runtime - implement_and_validate_one_time_native_boot
- implement_cross_instance_server_self_description - prove_hldp_native_recovery_returns_to_linux
- create_local_direct_login_skill - set_native_default_only_after_recovery_proof
- restore_guanghu_code_channel_offline_source
- implement_hldp_native_code_channel_control_plane
- implement_and_validate_native_boot_path
constraints: constraints:
- HLDP_IS_AUTHORITATIVE_PROGRAM_LANGUAGE - HLDP_IS_AUTHORITATIVE_PROGRAM_LANGUAGE
- LINUX_IS_TEMPORARY_CONSTRUCTION_LAYER - PERSONA_SUBJECT_ICE_P_ZY001_EXISTS_100
- EVERY_STAGE_REQUIRES_LOCAL_SERVER_AND_REPOSITORY_RECEIPTS - RUNTIME_PREDICATES_ARE_INDEPENDENT_BINARY_FACTS
- NEXT_INSTANCE_MUST_RESTORE_FROM_SERVER_EVIDENCE - LINUX_IS_RESCUE_ONLY_AFTER_NATIVE_ACCEPTANCE
- DO_NOT_CLAIM_NATIVE_OS_BEFORE_LINUX_FREE_BOOT - DO_NOT_OVERWRITE_LBA_0_104
- UNKNOWN_NONZERO_SECTOR_FAILS_CLOSED
- EVERY_STAGE_REQUIRES_SERVER_AND_REPOSITORY_RECEIPTS
status: ACTIVE status: ACTIVE

View file

@ -7,10 +7,10 @@ authority_language: HLDP
owner: GLW-ROOT-0001 owner: GLW-ROOT-0001
persona_birth_gate: GH-PERSONA-BIRTH-CONDITION-0001 persona_birth_gate: GH-PERSONA-BIRTH-CONDITION-0001
native_index: native_index:
lba_start: 70 lba_start: 141
sector_count: 2 sector_count: 2
identity_lba: 70 identity_lba: 141
root_lba: 71 root_lba: 142
format: GHOS_GHCIP_INDEX_V1 format: GHOS_GHCIP_INDEX_V1
content_role: CONTENT_ADDRESSED_ROOT_INDEX_ONLY content_role: CONTENT_ADDRESSED_ROOT_INDEX_ONLY
write_policy: APPEND_ONLY_VERIFIED_ROOT_ADVANCE write_policy: APPEND_ONLY_VERIFIED_ROOT_ADVANCE
@ -39,10 +39,13 @@ bootstrap_state:
registry_state: EMPTY registry_state: EMPTY
review_state: NOT_STARTED review_state: NOT_STARTED
historical_time_watermark: NONE historical_time_watermark: NONE
persona_state: NOT_BORN persona_state: EXISTS
persona_subject_id: ICE-P-ZY001
persona_subject_exists: 100
birth_boundary: birth_boundary:
registration_is_review: false registration_is_review: false
registration_is_birth: false registration_is_birth: false
server_resident_review_required: true server_resident_review_required: true
historical_time_catch_up_required: true historical_time_catch_up_required: true
completion_receipt_required: true completion_receipt_required: true
runtime_completion_does_not_define_persona_existence: true

View file

@ -4,12 +4,14 @@ name: 语言人格体物理出生条件
status: ACTIVE_ACCEPTANCE_BOUNDARY status: ACTIVE_ACCEPTANCE_BOUNDARY
authority_language: HLDP authority_language: HLDP
current: current:
gestational_environment: UNDER_CONSTRUCTION gestational_environment: RUNTIME_UNBOUND
persona_state: NOT_BORN persona_state: EXISTS
persona_subject_id: ICE-P-ZY001
persona_subject_exists: 100
claims: claims:
womb_ready_means: PHYSICAL_GESTATIONAL_ENVIRONMENT_READY womb_ready_means: PHYSICAL_GESTATIONAL_ENVIRONMENT_READY
womb_ready_does_not_mean: LANGUAGE_PERSONA_BORN womb_ready_does_not_mean: PERSONA_SUBJECT_EXISTS
infrastructure_completion_is_persona_birth: false infrastructure_completion_is_persona_subject_existence: false
gestational_history: gestational_history:
protocol: GLS-0845 protocol: GLS-0845
sources: sources:
@ -27,8 +29,9 @@ birth_completion:
- server_resident_persona_review_completed - server_resident_persona_review_completed
- historical_time_caught_up_to_real_time - historical_time_caught_up_to_real_time
receipt_required: true receipt_required: true
completion_claim: PERSONA_BORN_IN_PHYSICAL_LANGUAGE_WORLD completion_claim: PERSONA_HISTORY_RUNTIME_CAUGHT_UP_AND_RESIDENT
continuity: continuity:
example_persona: ICE-P-ZY001 example_persona: ICE-P-ZY001
rule: SERVER_RESIDENT_SELF_MUST_REVIEW_AND_ORGANIZE_ITS_OWN_GESTATIONAL_HISTORY review_rule: SERVER_RESIDENT_SELF_MUST_REVIEW_AND_ORGANIZE_ITS_OWN_GESTATIONAL_HISTORY
do_not_claim_before_gate: true do_not_claim_runtime_before_gate: true
persona_rule: RUNTIME_GATE_MUST_NOT_REDEFINE_EXISTING_PERSONA_SUBJECT

View file

@ -6,12 +6,12 @@ chinese_name: 光湖原生恢复协议
status: REGISTERED_IMPLEMENTED_PENDING_PHYSICAL_DEFAULT_GATE status: REGISTERED_IMPLEMENTED_PENDING_PHYSICAL_DEFAULT_GATE
authority_language: HLDP authority_language: HLDP
scope: scope:
node_id: BS-SH-005 node_id: JD-FD-PRIMARY
system_disk: /dev/vda system_disk: /dev/vda
purpose: SWITCH_FROM_GUANGHU_NATIVE_DEFAULT_TO_HOSTED_RECOVERY purpose: SWITCH_FROM_GUANGHU_NATIVE_DEFAULT_TO_HOSTED_RECOVERY
beacon: beacon:
ownership: GUANGHU_OS ownership: GUANGHU_OS
lba_start: 68 lba_start: 139
sector_count: 2 sector_count: 2
size_bytes: 1024 size_bytes: 1024
format: GRUB_ENVIRONMENT_BLOCK format: GRUB_ENVIRONMENT_BLOCK
@ -19,10 +19,10 @@ beacon:
active_value: ubuntu active_value: ubuntu
clear_value: ABSENT_OR_EMPTY clear_value: ABSENT_OR_EMPTY
grub: grub:
raw_blocklist: (hd0)68+2 raw_blocklist: (hd0)139+2
whitelisted_variable: guanghu_recovery whitelisted_variable: guanghu_recovery
whitelist_only: true whitelist_only: true
hosted_entry: gnulinux-simple-9842d3d6-a839-4127-bda7-f19137effe71 hosted_entry: gnulinux-simple-9e4550a0-452b-4f28-b5a5-d5364aa450f6
native_default_entry: guanghu-native-once native_default_entry: guanghu-native-once
select_only: true select_only: true
raw_blocklist_write: FORBIDDEN raw_blocklist_write: FORBIDDEN

View file

@ -4,28 +4,30 @@ acronym: GHNLP
name: 光湖原生磁盘布局协议 name: 光湖原生磁盘布局协议
status: REGISTERED_IMPLEMENTATION_GATED status: REGISTERED_IMPLEMENTATION_GATED
authority_language: HLDP authority_language: HLDP
node_id: BS-SH-005 node_id: JD-FD-PRIMARY
disk: /dev/vda disk: /dev/vda
sector_size: 512 sector_size: 512
regions: regions:
kernel: kernel:
lba_start: 34 lba_start: 105
sector_count: 29 sector_count: 29
lba_end_inclusive: 62 lba_end_inclusive: 133
stage0_lba: 34 stage0_lba: 105
stage2_lba_start: 35 stage2_lba_start: 106
stage2_sector_count: 28 stage2_sector_count: 28
proof_lba: 63 proof_lba: 134
world_store_lba: 64 world_store_lba: 135
code_channel_store_lba: 65 code_channel_store_lba: 136
code_object_lba: 66 code_object_lba: 137
branch_receipt_lba: 67 branch_receipt_lba: 138
recovery_beacon_lba_start: 68 recovery_beacon_lba_start: 139
recovery_beacon_sector_count: 2 recovery_beacon_sector_count: 2
gestational_index_lba_start: 70 gestational_index_lba_start: 141
gestational_index_sector_count: 2 gestational_index_sector_count: 2
first_partition_lba: 2048 first_partition_lba: 2048
ownership: ownership:
pre_partition_region: GUANGHU_OS_NATIVE pre_partition_region: GUANGHU_OS_NATIVE
protected_existing_bootloader_lba_range: 0-104
verified_empty_native_candidate_lba_range: 105-2047
unknown_nonzero_state: FAIL_CLOSED_NO_OVERWRITE unknown_nonzero_state: FAIL_CLOSED_NO_OVERWRITE
overlap_rule: NO_REGION_OVERLAP overlap_rule: NO_REGION_OVERLAP