wasm-icp-canister
英文权威文档:../../targets/internet-computer.md
结论
Internet Computer canister 应归入 Wasm-host 家族,但必须是独立目标,不能和 NEAR、CosmWasm 或 Stellar/Soroban 合并。对 ProofForge 的含义
wasm-icp-canister 应先作为文档优先的 Research candidate。第一步不直接加入 ProofForge.Target.Registry。
目标特有问题包括:
- Motoko 有 actor、async/await、Candid 和 orthogonal persistence 的一等支持;
- Rust canister 使用
ic-cdk等 CDK glue 暴露方法、做 Candid serialization、stable memory 和 System API 调用; - update、query、composite query 不是同一种 entrypoint;
- principal 是用户和 canister identity 的基础;
- persistent state 可能来自 canister memory、stable memory 或 CDK-managed stable structures;
- inter-canister call 是异步消息流;
- cycles 是 compute、memory、message 和 lifecycle operation 的资源计量单位;
- deployment 和 upgrade 通过 canister lifecycle 与 management canister API 完成;
- Candid
.did是公开合约接口的一部分。
候选能力
现有 Wasm-host 能力可以覆盖一部分基础语义,例如storage.scalar、storage.map、caller.sender、crosscall.invoke 和 crypto.hash。
但以下能力应先作为候选项保留在文档中:
两条接入路线
- Native canister package sourcegen:先生成或包装 Motoko / Rust CDK canister package,通过本地 replica、PocketIC 或 ICP CLI 验证。这个路线最保守。
- Direct Wasm host bridge:Lean 直接降级到 Wasm canister module + ICP host bridge。这个路线应等待 Wasm runtime split 足够清楚后再做。
第一阶段非目标
- 不把
wasm-icp-canister加入代码 registry。 - 不把 ICP 和
wasm-near、wasm-cosmwasm或wasm-stellar-soroban合并。 - 不把 query 和 update method 当成同一种 entrypoint。
- 不把 cycles 当成普通 native token value。
- 不忽略 upgrade 和 stable-memory 行为。
- 不把 inter-canister calls 当成同步 cross-contract calls。