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

如何在Python中不依赖运行中IPFS节点生成PeerID

IPFS PeerID 生成步骤与Python离线实现

一、PeerID完整生成步骤

IPFS的PeerID基于libp2p规范生成,核心流程完全离线,无需依赖运行中的IPFS节点:

  • 生成加密密钥对:默认采用Ed25519椭圆曲线算法(也支持RSA、secp256k1等)
  • 处理公钥:提取公钥的原始字节数据,对其进行SHA-256哈希运算,截取前20字节(160位)
  • 封装为Multihash:给截取后的哈希值添加前缀——0x12(代表SHA-256算法)和0x14(代表哈希长度20字节)
  • Base58编码:将最终的Multihash字节数据进行Base58编码,得到可读的PeerID字符串

二、Python离线生成脚本

以下脚本无需启动IPFS节点,可直接生成合法的PeerID及配套密钥对,需要先安装依赖包:

pip install cryptography multihash base58

完整代码示例

from cryptography.hazmat.primitives.asymmetric import ed25519
from cryptography.hazmat.primitives import serialization
import multihash
import base58

def generate_peer_id():
    # 生成Ed25519密钥对
    private_key = ed25519.Ed25519PrivateKey.generate()
    public_key = private_key.public_key()

    # 序列化公钥为原始字节
    public_key_raw = public_key.public_bytes(
        encoding=serialization.Encoding.Raw,
        format=serialization.PublicFormat.Raw
    )

    # 生成符合PeerID要求的Multihash:SHA-256哈希+前20字节+算法/长度前缀
    sha256_hash = multihash.digest(public_key_raw, 'sha2-256').digest[:20]
    peer_id_mh = b'\x12\x14' + sha256_hash

    # Base58编码得到最终PeerID
    peer_id = base58.b58encode(peer_id_mh).decode('utf-8')

    # 格式化私钥为PEM格式(方便后续存储/使用)
    private_key_pem = private_key.private_bytes(
        encoding=serialization.Encoding.PEM,
        format=serialization.PrivateFormat.PKCS8,
        encryption_algorithm=serialization.NoEncryption()
    ).decode('utf-8')

    return {
        'peer_id': peer_id,
        'private_key_pem': private_key_pem,
        'public_key_hex': public_key_raw.hex()
    }

# 测试生成
if __name__ == '__main__':
    output = generate_peer_id()
    print(f"PeerID: {output['peer_id']}")
    print("\nPrivate Key (PEM):")
    print(output['private_key_pem'])
    print(f"\nPublic Key (Hex): {output['public_key_hex']}")

代码说明

  • 密钥生成:用cryptography库生成标准Ed25519密钥对,符合IPFS默认规范
  • Multihash处理:严格遵循libp2p的PeerID格式要求,确保生成的ID能被IPFS网络识别
  • 全离线运行:所有操作都在本地完成,无需连接IPFS节点或网络

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 13:30:09