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

如何查询CKB链上已部署的Omnilock脚本代码及代码哈希?

在CKB区块链查询已部署脚本(以Omnilock为例)及代码哈希的方法

一、获取Omnilock的代码哈希

方式1:直接使用公开标准代码哈希

Omnilock作为CKB生态常用多签脚本,主网标准代码哈希为:0x9bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce8。若需验证,可通过以下方式自行生成。

方式2:本地编译生成代码哈希

  1. 获取Omnilock源代码后,用CKB编译工具链生成兼容二进制文件:
    ckb-build --release
    
  2. 用CKB命令行工具计算二进制的blake2b哈希,得到代码哈希:
    ckb-cli blake2b --binary target/riscv64imac-unknown-none-elf/release/omnilock
    

二、通过代码哈希查询已部署的脚本代码

方法1:CKB节点RPC查询

  1. 确保已连接到CKB主网/测试网节点(本地启动或使用可访问的节点服务)。
  2. 调用get_cells RPC接口,过滤匹配目标代码哈希的type脚本cell:
    curl -X POST http://localhost:8114 -H "Content-Type: application/json" -d '{
      "jsonrpc": "2.0",
      "method": "get_cells",
      "params": [
        {
          "script": {
            "code_hash": "0x9bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce8",
            "hash_type": "data",
            "args": ""
          },
          "script_type": "type"
        },
        "asc",
        "0x100"
      ]
    }'
    
  3. 返回结果中,cell的data字段即为Omnilock的脚本二进制代码。

方法2:CKB命令行工具(ckb-cli)查询

  1. 配置ckb-cli连接到目标节点:
    ckb-cli config set rpc_url http://localhost:8114
    
  2. 执行查询命令获取包含脚本代码的cell:
    ckb-cli cell get-cells --type-script-code-hash 0x9bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce8 --type-script-hash-type data --limit 1
    
  3. 提取结果中的data值,可保存为二进制文件用于后续验证或分析。

三、验证脚本代码的有效性

  • 对查询到的二进制代码重新计算blake2b哈希,确认与目标代码哈希完全一致,确保脚本未被篡改:
    echo -n "<查询到的data值>" | xxd -r -p > omnilock-query.bin
    ckb-cli blake2b --binary omnilock-query.bin
    
  • 若持有Omnilock源码,可将本地编译的二进制与查询到的二进制对比,完全匹配则说明脚本代码正确。

内容的提问来源于stack exchange,提问作者Michael.Andromeda

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 12:37:40