使用比特币硬件钱包的库

hwi的Python项目详细描述


比特币硬件钱包接口

Build Status

比特币硬件钱包接口是一个python库和命令行工具,用于与硬件钱包交互。 它提供了一种标准的软件与硬件钱包协同工作的方式,而无需实现特定于设备的驱动程序。 python软件可以使用提供的库(hwilib)。其他语言的软件可以执行hwi工具。

先决条件

python 3是必需的。还必须安装每个设备的库和udev rules。需要安装一些库

对于ubuntu/debian:

sudo apt install libusb-1.0-0-dev libudev-dev

对于MacOS:

brew install libusb

此项目使用Poetry依赖关系管理器。 一旦用git clone下载了hwi的源代码,就可以通过poetry在根源目录中执行以下命令来安装它及其依赖项:

poetry install

pip还可用于安装操作和开发所需的所有依赖项(在virtualenv或系统中)。有关所有依赖项,请参见pyproject.toml[tool.poetry.dependecies]下的依赖项是用户依赖项,而基于开发的依赖项是[tool.poetry.dev-dependencies]

安装

git clone https://github.com/bitcoin-core/HWI.git
cd HWI

用法

要使用,请首先枚举所有设备并找到要与之一起使用的设备

./hwi.py enumerate

一旦知道设备类型和设备路径,就可以像这样向其发出命令:

./hwi.py -t <type> -d <path> <command> <command args>

所有输出都将以json格式发送到stdout。 附加信息或提示将发送到stderr,不一定是json格式的。 此附加信息用于调试目的。

设备支持

下表列出了每个设备支持的设备和功能。

有关每个设备的其他信息,请参见docs

Feature \ DeviceLedger Nano STrezor OneTrezor Model TDigital BitBoxKeepKeyColdcard
Support PlannedYesYesYesYesYesYes
ImplementedYesYesYesYesYesYes
xpub retrievalYesYesYesYesYesYes
Message SigningYesYesYesYesYesYes
Device SetupN/AYesYesYesYesN/A
Device WipeN/AYesYesYesYesN/A
Device RecoveryN/AYesYesN/AYesN/A
Device BackupN/AN/AN/AYesN/AYes
P2PKH InputsYesYesYesYesYesYes
P2SH-P2WPKH InputsYesYesYesYesYesYes
P2WPKH InputsYesYesYesYesYesYes
P2SH Multisig InputsYesYesYesYesYesYes
P2SH-P2WSH Multisig InputsYesYesYesYesNoYes
P2WSH Multisig InputsYesYesYesYesYesYes
Bare Multisig InputsYesN/AN/AYesN/AN/A
Arbitrary scriptPubKey InputsYesN/AN/AYesN/AN/A
Arbitrary redeemScript InputsYesN/AN/AYesN/AN/A
Arbitrary witnessScript InputsYesN/AN/AYesN/AN/A
Non-wallet inputsYesYesYesYesYesYes
Mixed Segwit and Non-Segwit InputsN/AYesN/AYesYesYes
Display on device screenYesYesYesN/AYesYes

与比特币核心一起使用

Using Bitcoin Core with Hardware Wallets

许可证

这个项目是在麻省理工学院的许可下,版权安德鲁周。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaSpring重定向请求处理程序   SwingJava:拆分字符串并将其放入文本区域的   Java:标记“”上出现语法错误,此标记后面应为表达式   web服务Java RestService从日志文件写入和读取数据   java如何将ArrayList<String>转换为char数组,然后向后打印每个单词?   java SimpleDataFormat解析返回年终日期   加密Java aes解密bytebuffer,包括填充为空字节   java有没有办法从特定的if语句调用变量?   java从更新返回到渲染   spring GRPC Java登录测试   java为什么下面的代码不工作(StringBuffer.toString!=null)   java是一种可行的模式吗?   使用Spring集成测试的JavaOSGi片段   java jCommander为未知和未使用的值引发异常?   在imageView的editText中输入的java图像URL