自动管理加密货币钱包的软件包
项目描述
小猪
什么是小猪?
Piggies 是一个使用 Python自动管理加密货币热钱包的包。
它的工作原理是使用 启动钱包pexpect,并通过 RPC 与它们通信。
自动化的要求:
- 消除硬件钱包(您需要检查地址并按下按钮)
- 使其更加危险,因为软件中可能存在安全漏洞
我这样做是因为有些人(包括我自己)仍然想要自动钱包(即他们的交易所网站接受硬币和提款);然而:
- 一个人不应该在交易所持有他们的加密货币
- 不应相信任何闭源多钱包
- 甚至不应该相信开源网络钱包。
因此,这个工具可以帮助你生活在加密的管道时代:)
安全风险
- 确保不要将您正在使用的 RPC 端口暴露给攻击者。
- 进行自己的安全研究(并请分享发现!)
- 练习OPSEC。
- 如果你丢了钱,我概不负责。
安装
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用于钱包也可单独用于钱包(PiggyBTC,PiggyETH...)
支持的钱包
电子(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 问题,甚至打开拉取请求!
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。