一个自动管理加密货币钱包的包

piggies的Python项目详细描述


小猪

Piggies Logo (a piggybank)

什么是小猪?

piggies是一个使用python自动管理加密货币hot wallets的包。

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

自动的要求:

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

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

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

安全风险

安装

皮皮上有小猪。您可以通过:

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和单独的钱包(PiggyBTCPiggyETH…)

支持的钱包

驻极体(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^{}的文档)。在将来,我们可能集成QuickBlocks以避免这些警告。

其他

我可能支持litecoin、比特币现金、zcash和其他分布式货币,但我不确定。 我认为Ripple和Stellar过于集中,但如果你想自己支持它们,我会为它们或任何其他货币审查减贫战略。

测试

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

反馈

欢迎所有反馈。

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

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

对于非安全问题,可以随意使用github问题,甚至打开pull请求!

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

推荐PyPI第三方库


热门话题
在java中的字符串字符下打印星号(*)   java在比较数据后得到错误的结果   java如何在使用JSP创建的网站中创建父子关系和处理?   java配置单元UDF:无法执行求值方法   java GAE项目Intellij远程调试在关闭时不释放端口   java按钮上的放大和缩小功能点击JfreeChart折线图?   java Selenium Chrome Web驱动程序SessionNotCreatedException   java由ADFactoryBuilder生成的线程工厂是线程安全的吗?   java将字符串[]传递给另一个类Android(使用intent)   我为什么要嘲笑java?   JavaLiferay门户不将对象从流程阶段发送到jsp   java我想在单击每个树节点时将要添加的信息放入jpanel jscrollpane中   在Java中模拟数组引用(即对引用的引用)的按引用传递   Jackson将JSON属性反序列化为不同的Java对象   java使用JSP/servlet在网页上显示Excel工作表?   仿射变换Java:使用仿射变换时游戏速度减慢   Servlet JBoss AS 7的java EJB注入   在Oracle数据库中使用Java的plsql   java管理Maven项目中的库依赖项   JavaEclipseLink(JPA)异常:复合主键@JoinColumn