1 个不稳定版本

0.1.0 2024 年 8 月 19 日

#102魔法豆

Download history 106/week @ 2024-08-14

106 次每月下载

MIT/Apache

105KB
1.5K SLoC

Bittensor 钱包

Bittensor 钱包是一个 Rust crate,为 Bittensor 网络提供钱包功能。它包括管理钱包、密钥对和通过 PyO3 绑定与 Python 集成的功能。

架构

该 crate 结构为几个关键组件

  1. 钱包:处理钱包操作的主要结构,例如创建、密钥管理和加密。
  2. 密钥对:管理加密密钥对,包括签名和加密。
  3. 错误处理:钱包特定错误的自定义错误类型。
  4. Python 绑定:允许从 Python 使用钱包功能。

密钥文件

  • src/wallet.rs:包含 Wallet 结构及其实现。
  • src/keypair.rs:实现 Keypair 结构以进行加密操作。
  • src/errors.rs:定义自定义错误类型。
  • src/python_bindings.rs:使用 PyO3 实现 Python 绑定。

使用 Python 绑定

该项目使用 Maturin 构建和管理 Python 绑定。要在 Python 中使用 Bittensor 钱包

  1. 安装 Maturin

    pip install maturin
    
  2. 构建 Python 模块

    maturin develop
    
  3. 在您的 Python 代码中

    import bittensor_wallet
    
    # Create a new wallet
    wallet = bittensor_wallet.PyWallet("my_wallet", "/path/to/wallet")
    
    # Create a new wallet with a mnemonic
    wallet.create_new_wallet(12, "my_password")
    
    # Create a new hotkey
    wallet.create_new_hotkey("my_hotkey", "my_password")
    
    # Get the coldkey
    coldkey = wallet.get_coldkey("my_password")
    
    # Get a hotkey
    hotkey = wallet.get_hotkey("my_hotkey", "my_password")
    
    # Sign a message
    message = b"Hello, Bittensor!"
    signature = hotkey.sign(message, "my_password")
    

构建和测试

要构建 crate

cargo build

要运行测试

cargo test

依赖项

此 crate 依赖于几个关键依赖项

  • pyo3:用于 Python 绑定
  • sp-coresp-runtime:用于基于 Substrate 的密码学
  • aes-gcmargon2:用于加密和密钥派生
  • bip39:用于助记词生成和处理

有关依赖项的完整列表,请参阅 Cargo.toml 文件。

依赖项

~34–47MB
~815K SLoC