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

ENS域名zh4ck.eth的两种IPNS格式是什么?如何转换?

关于ENS域名Content Hash的IPNS格式疑问

假设有ENS域名zh4ck.eth,其在ENS管理器中显示的content hash为:

ipns://k51qzi5uqu5dlodad1tur2ti64q55m1w8ipohvk0a52ebm4qlntay45hgdxqyb

但通过Infura或Cloudflare等API查询该域名的content hash时,得到的结果是:

ipns://2D3KooWQepL1NNdw3RuvJp9f4cjUkkUZjwLHPn2HFWV6iTXVtKt

疑问点

  • 第二种IPNS格式是什么?
  • 如何将其转换为原始的k51qzi...格式?

已尝试的代码(ethers + Infura)

var ethers = require('ethers')
const provider = new ethers.InfuraProvider("homestead", 'MY_API')
const resolver = await provider.getResolver('zh4ck.eth')
await resolver.getContentHash()
// 返回结果: 'ipns://2D3KooWQepL1NNdw3RuvJp9f4cjUkkUZjwLHPn2HFWV6iTXVtKt'

解答

第二种IPNS格式是什么?

2D3KooWQepL1NNdw3RuvJp9f4cjUkkUZjwLHPn2HFWV6iTXVtKt 是IPNS密钥的Base58btc编码格式(Multibase Base58btc编码),而原始的k51qzi...格式是IPNS密钥的Kubo(原IPFS)默认编码格式(Multicodec + Multibase Base32编码)。

两者本质指向同一个IPNS标识符,仅编码规则不同:

  • k51qzi...:以k开头,是包含libp2p-key多编码前缀的Base32编码IPNS节点ID
  • 2D3Koo...:以2开头,是直接编码公钥原始字节的Base58btc格式(无多编码前缀)

如何转换为原始格式?

可以借助IPFS生态的工具库或命令行完成转换,以下是两种可行方案:

方案1:使用multiformats库(Node.js环境)

const { CID, multibase, multicodec } = require('multiformats')

// 将Base58btc编码的公钥转换为Kubo默认的IPNS格式
async function convertBase58ToKuboIPNS(base58Key) {
  // 解码Base58btc格式的公钥字节(补z前缀作为Base58btc的多编码标识)
  const pubKeyBytes = multibase.decode(`z${base58Key}`)
  // 创建V1版本的CID,指定多编码类型为libp2p-key,编码格式为Base32
  const cid = CID.createV1(multicodec.get('libp2p-key').code, pubKeyBytes)
  // 返回带ipns://前缀的目标格式
  return `ipns://${cid.toString()}`
}

// 调用示例
convertBase58ToKuboIPNS('2D3KooWQepL1NNdw3RuvJp9f4cjUkkUZjwLHPn2HFWV6iTXVtKt')
// 输出结果: ipns://k51qzi5uqu5dlodad1tur2ti64q55m1w8ipohvk0a52ebm4qlntay45hgdxqyb

方案2:使用IPFS命令行工具

若本地已安装IPFS,可直接通过命令完成转换:

# 将Base58公钥导入为临时IPFS密钥
ipfs key import temp-key --type=rsa --data=<(echo "2D3KooWQepL1NNdw3RuvJp9f4cjUkkUZjwLHPn2HFWV6iTXVtKt" | base58 -d)
# 列出所有密钥,其中temp-key对应的ID就是k51qzi...格式
ipfs key list -l

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 04:10:17