Skip to main content

自动管理加密货币钱包的软件包

项目描述

小猪

Piggies Logo(存钱罐)

什么是小猪?

Piggies 是一个使用 Python自动管理加密货币热钱包的包。

它的工作原理是使用 启动钱包pexpect,并通过 RPC 与它们通信。

自动化的要求:

  • 消除硬件钱包(您需要检查地址并按下按钮)
  • 使其更加危险,因为软件中可能存在安全漏洞

我这样做是因为有些人(包括我自己)仍然想要自动钱包(即他们的交易所网站接受硬币和提款);然而:

因此,这个工具可以帮助你生活在加密的管道时代:)

安全风险

安装

Piggies 在 PyPI 上可用。您可以通过以下方式安装它:

pip3 install piggies

或通过:

python3 -m pip install piggies

跑步

这是以太坊的基本演示:它从/usr/bin/parity已配置的datastore_path.

#!/usr/bin/env python3

import logging

from piggies import PiggyETH

logger = logging.getLogger('piggy_logs')

def main():
    piggy = PiggyETH(
        wallet_bin_path='/usr/bin/parity',
        datastore_path='datastores/ETH',
        wallet_password='your_ETH_wallet_password_here'
    )

    piggy.start_server()

    print("Balance:", piggy.get_balance())
    print("Suggested miner fee:", piggy.suggest_miner_fee())

    piggy.stop_server()


if __name__ == '__main__':
    logger.addHandler(logging.StreamHandler())
    logger.setLevel(logging.INFO)
    main()

如需更高级的演示,包括MasterPiggy,请查看demo.py

支持的操作

我想要一种一致的方式来使用各种加密货币。支持的操作有:

  • 启动和停止钱包 RPC 服务器
  • 取回余额
  • 检索地址以接收资金
  • 检索最近传入的交易
  • 建议矿工费
  • 执行指定发送金额和指定矿工费的交易

这些操作既可MasterPiggy用于钱包也可单独用于钱包(PiggyBTCPiggyETH...)

支持的钱包

电子(BTC)

对于比特币,我决定使用Electrum而不是官方的比特币客户端。这是因为两个原因:

  • 与官方客户一起准确指定发送的金额和费用似乎是不可能的
  • Electrum 允许您将计算卸载到 Electrum 服务器(尽管存在集中比特币网络的风险)。

门罗币 (XMR)

通过其官方客户端支持门罗币(需要您同步区块链)。注意:如果执行命令时出现问题,并且调用挂起或超时,请检查以下内容:

  • 确保您拥有最新的区块链。
    • 时间:从你第一次启动守护进程开始,需要两天左右
    • 空间:现在大约需要 55GB
  • 查看由 Monero 在二进制文件旁边创建的钱包日志。
  • 查看守护程序日志,通常位于顶层的数据存储目录中。
  • 稍等片刻(但不应超过 30 秒),尤其是在执行交易或询问交易费用估算时。
  • 尝试使用 monero-wallet-cli 加载同一个钱包,看看会发生什么。新钱包必须从区块链刷新,我们还没有自动这样做。

奇偶校验 (ETH)

我通过Parity支持以太坊,因为它具有区块链选项的灵活性。

一旦气体估算在轻客户端中起作用,我们将使用它。但是现在轻客户端是实验性的,那个特定的查询似乎对我在以太坊主网络上不起作用。

我们还将日志发送到 ETH 的数据存储目录。

我们这里不检查钱包版本兼容性,因为 Web3.py 处理得很好,你甚至可以使用不同的客户端

与 Parity 的连接是通过 IPC,而不是 HTTP,因此我们使用在 上运行的任何节点datastore_path,并且不需要进一步设置(端口等)。它也更安全一些。

对于transactions_since,我们使用外部服务,因为它不切实际。这有一些警告(请参阅 ETH 的文档transactions_since)。将来,我们可能会集成QuickBlocks以避免这些警告。

其他

我可能支持 Litecoin、Bitcoin Cash、ZCash 和其他分布式货币,但我不确定。我认为 Ripple 和 Stellar 过于集中,但是如果你想自己支持它们,我会审查它们或任何其他货币的 PR。

测试

要执行测试,请运行./setup.py test.

反馈

欢迎所有反馈。

我特别欢迎有关安全性或如何进行测试的任何想法/问题。如果你能想出一种在这里使用Hypothesis的方法,那就太好了!

要私下披露某些内容(即安全漏洞),请发送电子邮件至danuthaiduc (monkeytail) gmail (period) com

对于非安全问题,请随意使用 GitHub 问题,甚至打开拉取请求!

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

piggies-0.0.1.tar.gz (13.6 kB 查看哈希)

已上传 source

内置分布

piggies-0.0.1-py3-none-any.whl (16.3 kB 查看哈希)

已上传 py3