用于与Trezor硬件钱包通信的Python库

trezor的Python项目详细描述


蟒蛇树

imagerepologyimage

用于与trezor通信的python库和命令行客户机 硬件钱包

有关详细信息,请参见https://trezor.io

安装

python trezor需要python 3.5或更高版本,以及libusb 1.0。最容易 安装方法是使用pip。本指南的其余部分假设您 a workingpip;如果没有,可以参考 指南

快速安装

在典型的linux/mac/bsd系统上,您已经拥有了所需的一切。 使用以下命令安装Trezor

pip3 install --upgrade setuptools
pip3 install trezor

在Windows上,还需要安装 libusb和 适当的驱动程序。不幸的是,这是 主题大于此自述文件。

旧款Trezor One支持

如果您的Trezor One使用的是固件1.6.3或更早版本,则需要HIDAPI支持 让它被认可。这需要额外的软件包。

debian/ubuntu

在基于debian或ubuntu的系统上,您可以安装这些:

sudo apt-get install python3-dev python3-pip cython3 libusb-1.0-0-dev libudev-dev

窗口

在基于Windows的系统上,您可以安装这些程序(有关Choco的更多信息,请参阅this):

choco install vcbuildtools python3 protoc
refreshenv
pip3 install protobuf

安装trezor库时,需要指定 hidapi

pip3 install --upgrade setuptools
pip3 install trezor[hidapi]

以太坊支持

以太坊需要额外的python包。而不是 pip3安装trezor,指定pip3安装trezor[ethereum]

你可以把它和上面的结合起来,得到hidapi和ethereum 支持:

pip3 install trezor[ethereum,hidapi]

FreeBSD

在FreeBSD上,您可以安装软件包:

pkg install security/py-trezor

或通过端口生成:

cd /usr/ports/security/py-trezor
make install clean

从源头建设

有时您可能需要安装最新和最新的未发布版本 直接从Github。您首先需要一些先决条件:

sudo apt-get install protobuf-compiler protobuf-dev
pip3 install protobuf

如果您只需要安装软件包,可以再次使用pip:

pip3 install git+https://github.com/trezor/python-trezor

如果要处理源,请制作本地克隆:

pip3 install --upgrade setuptools
pip3 install trezor
0

命令行客户端(trezorctl)

包含的trezorctlpython脚本可以执行各种任务,例如 更改trezor中的设置,签署事务,检索帐户 信息和地址。有关详细信息,请参阅子文件夹 示例和选项。

注意:对于 Debian拉伸 (并预装在Tails OS)。

python库

您可以使用这个python库与比特币trezor交互,并 在应用程序中使用它的功能。请参阅此处的示例 工具/子文件夹。

插脚输入

当你被要求的时候密码,你必须输入加密密码。跟随 显示在Trezor显示屏上的数字,并使用 数字键盘映射:

<表><广告>< T/>< T/>< T/>< /广告><正文>

示例:您的PIN为1234,Trezor显示以下信息:

<表><广告>< T/>< T/>< T/>< /广告><正文>

您必须输入:3795

贡献

python trezor从 trezor-common存储库。如果 你正在为Trezor开发新功能,你需要开始 那里。一旦您的更改被接受为trezor common,您可以 针对此存储库的PR。别忘了用以下命令更新子模块:

pip3 install --upgrade setuptools
pip3 install trezor
1

然后,重新生成protobuf消息,通过运行:

pip3 install --upgrade setuptools
pip3 install trezor
2

为了获得对类似BTC的硬币的支持,这些步骤已经足够了,而且没有进一步的步骤了 必须更改库。

更改日志

此项目的所有显著更改都将记录在此文件中。

格式基于保持更改日志

目前,该项目没有遵守语义版本控制。在版本1.0中预期会发生变化。

0.11.4-2019-07-31

添加

  • Trezorctl支持SLIP-39 Shamir备份
  • 支持二进制链

0.11.3-2019-05-29

添加

  • trezorctl现在可以发送erc20令牌
  • Trezorctl USB Reset将在状态不一致的设备上执行USB Reset
  • 为TT固件2.1.1添加的设置显示旋转命令
  • EOS支持f 87
  • Tezos:添加投票支持f 41
  • dict_to_proto现在允许枚举值作为字符串

更改

  • 最低固件版本提升至1.8.0和2.1.0
  • 未提供UI对象时出现清除错误
  • 生成的文件现在又是源tarball的一部分。这意味着不再需要protoc。

已修复

  • trezorctl中的ethereum命令现在可以工作了
  • 内存调试工具现在又可以工作了

删除

  • tron和ontology支持被删除,直到trezor固件中存在实现

0.11.2-2019-02-27

添加

  • 完全支持Bootloader 1.8.0和相关固件升级功能
  • trezorctl:支持完全脱机签名json编码的事务数据
  • trezorctl:dry run for firmware upgrade命令
  • 客户端:新的方便功能get_default_client用于简单的脚本使用
  • Dash:支持DIP-2特殊输入
  • 以太坊:添加get_public_键方法

更改

  • 带有BIP-143叉子ID(BCH,BTG)的硬币不需要预先发送。I>
  • 设备恢复将恢复U2F计数器
  • 卡达诺:将网络更改为协议魔术
  • 设置环境变量时,测试可以交互运行
  • protobuf:改进了到'u dict函数

已弃用

  • trezorctl:使用sign tx进行交互式签名被视为不推荐使用

0.11.1-2018-12-28

已修复

  • 使用trezor t在设备上输入密码短语时崩溃
  • qt小部件应该只导入qtcore\349

0.11.0-2018-12-06

不兼容的更改

  • 删除了对Python3.3和3.4的支持
  • trezorclient的主要重构和ui处理。现在,实现者必须提供一个"ui"对象,而不是重写回调。
  • protobuf类现在使用aget_fields()方法而不是fieldsfield\312
  • trezorclient类上的所有方法现在都在单独的模块中,并以atrezorclient实例作为参数
  • mixin类也被删除,您不应该再扩展trezorclient
  • trezorclientdebuglink已移动到debuglink模块
  • 更改了trezorlib.btc.sign_tx的签名
  • @fielddecorator被@expect
  • 的参数替换

添加

  • Trezorlib现在有一个硬编码的检查,防止使用过时的固件版本
  • Ripple支持
  • Zencash支持287
  • Cardano支持
  • 本体论支持
  • Tezos支持302
  • Capricoin支持325
  • Monero支持有限(只能获取地址/监视密钥,签名需要Monerowallet)
  • 测试中对输入流的支持使控制复杂的ui工作流变得更容易\314
  • protobuf.dict_to_proto可以从普通dict创建protobuf实例
  • 支持Trezord 2.0.25及更高版本中的智能方法
  • 支持无籽设置
  • trezorctl:固件处理得到了极大的改进\304\308
  • trezorctl:类似比特币的签名流更方便用户
  • tx_api现在支持blockbook后端服务器

更改

  • 更好地报告DebugLink预期的消息
  • 将ED25519模块替换为更干净、优化的版本
  • 当缺少依赖项时,进一步的传输重组使它们更加健壮
  • <鱼>鳕鱼ebase现在遵循黑色的代码样式。
  • 在qt模块中,首先导入qt5
  • txapiInsight只是txapi
  • device.resetdevice.recover现在对所有参数都有合理的默认值
  • protobuf类不再是源发行版的一部分,必须在本地编译。
  • 恒星:地址总是字符串

删除

  • trezorclient上的set-tx-api方法替换为sign-tx
  • txapi的缓存功能已移动到单独的测试支持类
  • 恒星:删除了公钥方法
  • 加密消息解密消息操作消失

固定:

  • trezorclient现在可以检测HID设备何时被卸下,以及在同一路径上插入另一个设备的时间
  • trezorctl现在可以与click 7.0一起工作,并认为"/code>"和"-"在命令名中是相同的\314
  • bash完成修复
  • Stellar:xdr解析器中的几个错误已修复

0.10.2-2018-06-21

添加

  • stellar_get_addressu public_key函数支持show_display参数
  • trezorctl:stellar_get_addressu public_key用于各自功能的命令

删除

  • trezorctl:列表硬币被删除,因为我们不再解析相关的protobuf字段 (而且新的Trezor固件不会发送它)\277

已修复

  • 测试支持模块未包含在发行版中,因此依赖于已弃用的ckd\u public模块的代码将失败\280

0.10.1-2018-06-11

已修复

  • 以前的版本无法在Windows上构建

0.10.0-2018-06-08

添加

  • Lisk支持
  • 明星支持\167\268
  • wanchain支持
  • 支持"自动锁定延迟"功能
  • trezorclient接受一个附加的参数state允许重用先前输入的密码短语
  • USB传输在异常消息中提到UDEV规则
  • log.enable_debug_output函数打开有线日志记录,而不必使用trezorclientverbose
  • bip32路径现在支持123h以及123'以指示硬化
  • trezorctl:-p现在支持设备路径的前缀搜索或/python trezor/issues/226" rel="nofollow">226
  • trezorctl:更智能地处理固件更新

更改

  • 重新组织传输并移动到它们自己的传输子模块
  • protobuf消息和硬币信息现在在构建时从trezor common存储库中重新生成
  • ed25519raw重命名为\u ed25519以表示其私有性
  • ed25519cosi重命名为cosi并扩展了其api
  • protobuf消息现在通过python的日志记录工具记录,而不是通过verbosewiremixin自定义打印
  • 将client.format\u protobuf移动到protobuf.format\u消息
  • tools.hash被重命名为tools.btc_hash
  • coins模块coins\u tx api被重命名为tx\u api硬币slip44被重命名为slip44
  • 构造:更严格的薄片8检查
  • 构建:分离要求以分离文件
  • 测试:统一查找测试设备,同时考虑trezor\u pathenv变量。
  • 测试:根据Trezor设备版本自动跳过适当标记的测试
  • 测试:仅在使用-v
  • 运行时显示导线输出
  • 测试:允许基于pytest.ini有选择地运行xfail
  • 文档:用更清晰的安装说明更新了自述文件
  • 文档:切换更改日志以保持更改日志格式

已弃用

  • ckd_public仅在测试中维护。支持子模块并将其视为私有的
  • trezorclient.expand_path被移到普通函数tools.parse_path
  • trezordevice被弃用,取而代之的是传输。枚举设备和传输。获取传输
  • 工具中与xpub相关的处理计划删除

删除

  • 大多数Python2兼容性结构都消失了\229
  • trezorclientverboseverbosewiremixin被删除
  • 特定的tx_api.tx api*类被删除,以支持coins.tx_api
  • client.prime_derivation_flag被删除,取而代之的是tools.hardend_flagtools.h_()
  • 对以太坊库和hidapi的硬依赖性已更改为需要 明确指定。需要trezor[hidapi]trezor[ethereum]才能获取它们。

已修复

  • WebUSB枚举返回Windows 10上的坏设备
  • 签署TX发送空地址字符串的操作\237
  • 以太坊签名格式错误
  • protobuf层会错误地对有符号整数进行编码。
  • python 3.4上的protobuf pretty printing中断
  • trezorctl:windows上的矩阵恢复不允许退格\207
  • aes_encfs_getpass.py:修复了python 3错误\169

0.9.1-2018-03-05

添加

  • 对Trezor T型的适当支持
  • 支持Monacoin
  • 对trezorctl的改进:
    • 添加功能和调试转储协议的漂亮打印(修复\199
    • 支持trezor路径环境变量以预选trezor设备。

删除

  • 逐渐降低Python2的兼容性(Pypi包现在将标记为仅限Python3)

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

推荐PyPI第三方库


热门话题
java访问私有字段而不使用getter方法?   使用PowerMockito在JavaEWSAPI中模拟测试拉订阅   启动活动时未保存java首选项并清除变量   java如何在servlet中检索子域?斯普林有帮手吗   java使用Docker从命令行构建Android项目   java Android,ActionBar后退按钮(setDisplayHomeAsUpEnabled(true))重新创建父活动   java在重用FileOutputStream时应该关闭流吗?   java使用RESTAPI将文件上载到s3 bucket   Java SOAP Web服务应用程序中的mysql用户登录方法不工作   java使用多个数字计算百分比并转换为长   java Android SQLiteDatabase查询忽略空格   java如何在Javafx中比较两个字段文本   java错误:未设置java_HOME,在Eclipse安装后找不到   java在安卓中保存对象   java如何使用jaxws从返回List<Object>的服务中检索值   java Google OAuth2 JWT令牌验证异常   SpringMVC中的JavaUTF8编码问题,当从JSP表单发送POST请求中的越南语信件时   java从webview重定向到安卓应用程序   JUnit 5中多个扩展的java顺序