pub struct HookModuleRegister {
pub schema_version: u16,
pub manifest_digest: [u8; 32],
pub module_digest: [u8; 32],
pub register_tick: Tick,
pub attestation_class: RuntimeSignatureClass,
}Expand description
HookModuleRegister — chain-anchored Hook host v2 module-registration
receipt (E14.L2 axiom).
Emitted by the wasmtime hook host on every successful
register_module(bytes, expected_digest). Pairs the operator’s
manifest digest (which pins the expected module digest) with the
actually-registered module digest — replay validates the host
instantiated the module the manifest demanded, not a substitute.
3-tier ingestion anchored here:
- Tier 1 (BLAKE3 digest pin) —
module_digestmatches the value the operator pinned inmanifest_digest-anchored manifest TOML. Catches operator config typos + accidental file substitution. This tier ships fully. - Tier 2 (sigstore sign-before-load) — recorded via
attestation_classfield; the verification closure is provided by an integration layer above this crate. Tier 1 alone is sufficient for the runtime contract: operator config is the trust root. - Tier 3 (cargo-vet provenance) — build-time check; runtime only records the attestation hash for chain-anchored audit.
Fields§
§schema_version: u16Wire schema version.
manifest_digest: [u8; 32]BLAKE3 digest of the manifest TOML that pinned the expected module digest. Replay uses this to verify the manifest itself was unchanged between registration time and replay time.
Caller responsibility: this field is host-side recorded but
NOT host-side enforced. The integration layer
(arkhe-forge-platform/src/manifest.rs) is responsible for
hashing the operator’s manifest TOML and passing the result
through to the event emission, alongside the manifest-signature
verification closure that makes the field cryptographically
meaningful.
module_digest: [u8; 32]BLAKE3 digest of the registered wasm module bytes. Equals the
expected_digest parameter the operator passed; recorded so
replay can re-verify the module bytes against the same hash.
register_tick: TickTick at which the module was registered.
attestation_class: RuntimeSignatureClassAttestation class signalling Tier 2/3 presence. The default
path is RuntimeSignatureClass::None (Tier 1 BLAKE3 digest
pin only); Tier 2 sigstore integrations set the field to
Ed25519 / MlDsa65 / HybridEd25519MlDsa65 once a
verification closure is wired in.
Semantics distinction: in this HookModuleRegister context
None means “Tier 1 BLAKE3 digest pin only; no Tier 2/3
attestation present”. Distinct from the audit-receipt
None (= “no signature class”) which carries different
operational semantics. Same enum, context-specific reading.
Trait Implementations§
Source§impl ArkheEvent for HookModuleRegister
impl ArkheEvent for HookModuleRegister
Source§impl Clone for HookModuleRegister
impl Clone for HookModuleRegister
Source§fn clone(&self) -> HookModuleRegister
fn clone(&self) -> HookModuleRegister
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for HookModuleRegister
impl Debug for HookModuleRegister
Source§impl<'de> Deserialize<'de> for HookModuleRegister
impl<'de> Deserialize<'de> for HookModuleRegister
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for HookModuleRegister
impl PartialEq for HookModuleRegister
Source§fn eq(&self, other: &HookModuleRegister) -> bool
fn eq(&self, other: &HookModuleRegister) -> bool
self and other values to be equal, and is used by ==.