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

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 Android:在ListView上使用setOnItemClickListener   使用Netbeans 7.0连接到SQL Server的java正在挂起   java Spring3依赖项注入不适用于mule   java Flink SQL结果字段与LocalDateTime上请求的类型错误不匹配   java找不到文件的结尾   考虑到NamingStrategy,java有没有办法将字符串转换为JsonNode?   使用Netbeans/ant部署java(命令行)应用程序   java如何修复Spring引导多部分上载中的“所需请求部分不存在”   java在应用程序启动时通过引用获取映射未知目标实体属性异常   java形状旋转问题Java2d   Weblogic服务器上的java ExecuteAndWaitInterceptor问题   JavaSpringBoot:project将图像保存在错误的路径中,并且在使用IDEIntellji打开时不显示图像   类向java接口添加方法   Swing组件上的Java 7泛型   sql server如何从java获取用户名。sql。联系   java如何检查该行是否与正则表达式(regex)冲突?   java如何在spring引导安全中为计数失败登录设置验证登录为false   图像如何在Java中使PNG的白色透明?