如果你想用几行代码就完成钱包、私钥、交易、脚本调试等 比特币开发 的常规需求,那么 bitcoinlib 就是为你量身打造的瑞士军刀。本文手把手教会你从零安装、核心功能速览,到真实用例拆解与进阶技巧,带你在 10 分钟内跑通「建钱包 → 收币 → 发币」的完整流程。
为什么选 bitcoinlib?
核心优势一览
| 关键词:比特币库、Python、钱包、脚本、BIP32
- 纯 Python:无加密原生依赖,Windows、macOS、Linux 一键安装。
- 功能齐全:钱包创建、HD 密钥衍生、多重签名、隔离见证、脚本 asm 解析,应有尽有。
- 链上/链下双模式:既可连接本地 Bitcoin Core/ElectrumX/Blockbook 做全节点验证,也能用公开 API 在线查询。
- 跨币种扩展:内置 Litecoin、Dogecoin 及测试网参数,10 行配置即可支持任何比特币系资产。
- BIP 全家桶:支持从 BIP32 到 BIP350 的主流提案,项目长期更新,社区活跃。
三步完成安装
关键词:安装、Ubuntu、pip、Docker
Linux(Ubuntu)
先装系统依赖
sudo apt update && sudo apt install -y build-essential python3-dev libgmp3-dev再装库
pip install bitcoinlibmacOS & Windows
参考 官方完整指引:Homebrew 与 MinGW-w64 依赖说明都能找到。
Docker 方案
官方仓库 docker/ 目录已提供常用镜像,直接在容器里跑,无需折腾本地依赖。
Quick Start:5 分钟跑通「收 → 发」
1. 创建钱包并获得收款地址
from bitcoinlib.wallets import Wallet
w = Wallet.create('Wallet1') # 本地数据库默认 SQLite
addr = w.get_key().address
print("我的新地址:", addr)
# 输出示例: bc1qk25wwkvz3am9smmm3372xct5s7cwf0hmnq8szj复制地址,发 0.0001 BTC 做测试,用不了 10 分钟就能到账。
2. 扫描链上数据,查看余额
w.scan()
w.info()控制台会打印:
- 总余额、所有衍生地址、UTXO 列表、交易历史。
3. 把余额发送给好友
tx = w.send_to('bc1qemtr8ywkzg483g8m34ukz2l4pl3730776vzq54', '0.001 BTC', offline=False)
print("交易哈希:", tx.txid)若一切顺利,立刻返回类似 b7feea5e7c79d4f6f343b5ca28fa2a1fcacfe9a2b7f44f3d2fd8d6c2d82c4078 的 TxID。
你可以用任何区块浏览器实时追踪。
深挖 5 大高频场景
关键词:HD 钱包、隔离见证、多重签名、脚本调试、测试网
场景 1:用 BIP44 生成企业级分层账户
from bitcoinlib.wallets import wallet_create_or_open
w = wallet_create_or_open('CompanyWallet', keys='xprv9s...', network='bitcoin', scheme='bip44')
acc0 = w.new_account('运营账户')
acc1 = w.new_account('财务账户')每个账户会自动衍生 2ⁿ 个地址空间,方便内部对账。
场景 2:构建隔离见证 3/5 多签
from bitcoinlib.keys import HDKey
from bitcoinlib.wallets import Wallet
keys = [HDKey.from_passphrase(p) for p in ['alice', 'bob', 'charlie', 'david', 'eve']]
w = Wallet.create('Multisig3of5', keys=keys, sigs_required=3, witness_type='segwit')
addr = w.get_key().address
print("多签地址:", addr)场景 3:编写并解析比特币脚本 asm
from bitcoinlib.transactions import Output
script = 'OP_2 PUBLIC_KEY_1 PUBLIC_KEY_2 OP_2 OP_CHECKMULTISIG'
output = Output(script_type='p2sh', script=script)
print('锁定脚本:', output.script_hex)调试脚本再也不用手动拼装 op-codes。
场景 4:连接自托管 Bitcoin Core 👉 这里教你 3 步自建全节点保障隐私
- 配置
~/.bitcoinlib/config.ini - Rpcuser、rpcpassword、端口填好
lib.connect_to_node('bitcoind')即可查询或广播交易。
场景 5:测试网水龙头一条龙
from bitcoinlib.wallets import Wallet
w = Wallet.create('TestnetFaucet', network='testnet')
t = w.send_to(w.get_key().address, '0.00001 TBTC')想要 无风险 地实战支付流,测试网 TBTC 0 成本。
常见问题 Q&A
Q1:bitcoinlib 生成的私钥可以用在其他钱包吗?
A:完全可以。它遵循 BIP39/BIP32 标准,助记词与扩展私钥 (xprv/xpub) 都通用,可直接导入 Electrum、Trezor、Ledger 等主流钱包。
Q2:能不能离线签名?
A:能。把 offline=True 即可在离线设备里签名 Raw Tx,再把 hex 拿到线上节点广播。适合冷钱包/硬件钱包开发场景。
Q3:能对接以太坊吗?
A:目前专注于比特币系 UTXO 模型,ETH 不在支持范围。但你可以 fork 代码,修改参数就能复用大部分钱包、密钥、交易结构逻辑。
Q4:库的安全性如何?
A:所有加密计算依赖成熟的 libsecp256k1 与 Python cryptography,建议在测试网磨合充分后再上线。官方免责声明也提醒:仍在开发迭代,生产环境务必备份+多重验证。
Q5:有 GUI 或 Web 界面吗?
A:bitcoinlib 是底层库。你可以自己动手用 Django/Flask 包装,已有社区项目如 Blocksmurfer Explorer 采用它做区块浏览器后端。
Q6:如何参与社区贡献?
A:直接在 GitHub Discussions 提 issue、PR 或提问。作者响应速度相当快。
即将到来的新功能:Taproot & Schnorr
| 关键词:Taproot、Schnorr、Timelock、Roadmap
官方路线图已敲定的下一版本亮点:
- 完整支持 Taproot(BIP340-342)
- Schnorr 签名验证与创建
- 全链扫描工具 & 极简 SPV 客户端
- 硬件钱包插件:Trezor、Ledger、Coldcard…
开发者可以提前在 develop 分支体验,API 保持向后兼容,迁移平滑。
小结 & 行动清单
- 安装:
pip install bitcoinlib - 跑通示例:建钱包 → 收币 → 发币
- 选任一「五大场景」拓深:HD 企业账户、多签、脚本调试、连接本地节点、离线签名
- 关注 Taproot 更新,提前适配 Schnorr 签名
- 加入 GitHub 社区,一起把库做得更健壮
将你的第一个钱包名字起成 「HelloBitcoin」,在评论区告诉我你的地址吧!