一个自动管理加密货币钱包的包
piggies的Python项目详细描述
小猪
什么是小猪?
piggies是一个使用python自动管理加密货币hot wallets的包。
它的工作原理是使用pexpect
启动钱包,并通过rpc与它们通信。
自动的要求:
- 省去了硬件钱包(您需要检查地址并按下按钮)
- 使其更危险,因为软件中可能存在安全漏洞
我这样做是因为有些人(包括我自己)仍然想要自动钱包(即他们的兑换网站接受硬币和取款);但是:
- 一个should not hold their cryptocurrencies on an exchange
- 一个人不应该信任any closed-source multiwallet
- 一个人甚至不应该信任an open source web wallet。
因此,这个工具可以帮助您生活在加密的管道时代:)
安全风险
- 一定不要expose the RPC ports you're using to attackers。
- 做你自己的安全调查(请分享调查结果!)
- 练习OPSEC。
- 如果你丢了钱,我不负责任。
安装
皮皮上有小猪。您可以通过:
pip3 install piggies
或通过:
python3 -m pip install piggies
运行
这是以太坊的一个基本演示:它在配置的datastore_path
上启动/usr/bin/parity
。
#!/usr/bin/env python3importloggingfrompiggiesimportPiggyETHlogger=logging.getLogger('piggy_logs')defmain():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
,请查看^{
支持的操作
我想要一个一致的方法来使用各种加密货币。支持的操作有:
- 启动和停止Wallet RPC服务器
- 检索余额
- 检索接收资金的地址
- 检索最近传入的事务
- 建议收取采矿费
- 以指定的发送金额和指定的矿工费用执行交易
这些操作可用于MasterPiggy
和单独的钱包(PiggyBTC
,PiggyETH
…)
支持的钱包
驻极体(BTC)
对于比特币,我决定使用Electrum而不是官方的比特币客户端。这是因为两个原因:
- 对于官方客户,似乎不可能准确地指定发送的金额和费用
- Electrum允许您将计算卸载到Electrum服务器(尽管有可能集中比特币网络)。
莫内罗(xmr)
Monero通过其official client支持(需要同步区块链)。 注意:如果执行命令时出现问题,并且呼叫挂起或超时,请检查以下内容:
- 确保你有最新的区块链。
- 时间:自从您第一次启动守护程序以来,大约需要两天时间
- 空间:现在大约需要55GB
- 看看Monero在二进制文件旁边创建的钱包日志。
- 查看守护进程日志,通常在顶层的datastore目录中。
- 稍等(但不应超过30秒),尤其是在执行交易或要求估计交易费用时。
- 尝试使用monero wallet cli加载同一个钱包,看看会发生什么。新钱包必须从区块链中刷新,我们还没有自动刷新。
奇偶性(eth)
我通过^ a10}支持EtUnm,因为它具有BaseCu链选项的灵活性。
一旦gas estimation works in the light client,我们将使用它。但现在,light客户机是实验性的,在主要的以太坊网络上,这个特定的查询似乎不适合我。
我们还将日志发送到eth的数据存储目录。
我们不检查钱包版本的兼容性,因为这是由web3.pyso well that you can even use different clients处理的。
到奇偶校验的连接是通过ipc而不是http,因此我们使用datastore_path
上运行的任何节点,并且不需要进一步的设置(端口等)。它也更安全一些。
对于transactions_since
,我们使用an external service,因为它不实际这有一些注意事项(参见eth^{
其他
我可能支持litecoin、比特币现金、zcash和其他分布式货币,但我不确定。 我认为Ripple和Stellar过于集中,但如果你想自己支持它们,我会为它们或任何其他货币审查减贫战略。
测试
要执行测试,请运行./setup.py test
。
反馈
欢迎所有反馈。
我特别欢迎任何有关安全性或如何进行测试的想法/问题。 如果你能想出一种使用Hypothesis的方法,那就太好了!
要私下泄露某些信息(即安全漏洞),请发送电子邮件至danuthaiduc (monkeytail) gmail (period) com
。
对于非安全问题,可以随意使用github问题,甚至打开pull请求!