You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Anchor程序中emit_cpi调用前缀为e4 45 a5 2e 51 cb 9a 1d(十六进制)?

Anchor emit_cpi 8字节前缀的映射说明
  • emit_cpi是Anchor框架内置的跨程序事件转发指令,不属于用户自定义指令范畴,所以不会出现在程序的IDL里。你看到的e4 45 a5 2e 51 cb 9a 1d,是框架对固定标识global:emit_cpi做SHA-256哈希后截取的前8字节,属于框架层面固定的指令鉴别符。
  • 这类内置指令的前缀映射,可通过两个渠道获取准确信息:
    • Anchor核心源码:在anchor-lang的指令处理相关模块(比如src/instructions.rs)中,能找到所有内置指令的定义和鉴别符生成逻辑,直接对应到具体前缀。
    • Anchor官方内部机制文档:官方文档里的框架底层逻辑章节,会区分用户自定义指令和内置指令的鉴别符生成规则,内置指令的前缀多由框架预定义或通过固定全局标识哈希生成,和用户指令的global:function_name规则一致,但标识是框架内部固定的。
  • 你也可以手动验证这个前缀:执行以下命令计算global:emit_cpi的哈希并截取前8字节,结果和你看到的前缀一致:
    echo -n "global:emit_cpi" | sha256sum | head -c 16
    

内容的提问来源于stack exchange,提问作者Morgan Wilde

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 20:54:50