用python实现比特币spv

pyspv的Python项目详细描述


Pyspv

_警告:这是实验软件。自行承担使用风险

pyspv是一个实现完整比特币的简单易用的python模块。 SPV客户端协议。连接比特币网络非常简单:

`python import pyspv spv = pyspv.pyspv("my-application-name") ... `

…但是仅仅连接到比特币网络是很无聊的。真正的目标 这个项目的目的是让比特币嵌入到你的项目中变得如此简单 每个人都这么做。pyspv处理诸如区块链同步、 对等网络、支付管理、钱包等,并允许您 开始快速制作比特币应用程序的原型。

我打算使这个spv客户端尽可能地可扩展,目标是 支持使用简单的硬币定义的所有硬币。因为pyspv是模块化的, 现在很容易连接到 同一个应用程序-只需使用不同的硬币初始化两个pyspv类 定义

你可以开发一个漂亮的用户界面钱包,或者只是一个简单的实用程序来发送一个 当一个地址收到付款时给你发电子邮件。可能真的 无止境的。

要求

pyspv只依赖于一小部分依赖项:

功能

  • SPV实现,因此相对轻量级
  • python,对服务器和用户应用程序有用
  • 多签名支持,可以创建、发送到和使用多签名付款
  • 隐形地址支持,可以创建、发送和使用隐形地址支付
  • TOR/袜子支持
  • testnet支持
  • 可扩展的支付监控和交易构建系统

示例

简单钱包.py

这个例子运行一个基本的钱包。不带参数运行它将启动rpc 服务器。使用参数进行rpc调用。程序的行为类似于 比特币,有几个明显的区别。

可用命令:

  • 获取新地址[标签]?-返回标准公钥哈希地址
  • 获取新闻地址[标签]?-返回新的隐藏地址
  • GetNewPubKey[标签]?[压缩=假]?-返回新的公钥(十六进制)
  • getbalance-返回钱包中的总余额
  • getinfo-返回有关spv节点状态的信息
  • listfirs[include_spend=false]-返回描述钱包中花费的字典
  • 发送地址[地址][金额][备注]?-将硬币数量发送到地址。地址可以是隐形地址、多sig地址或标准地址。
  • sendspendtoaddress[花费哈希][地址][金额][备注]?-强制将特定开销包含到指定地址。如果完成交易需要更多的硬币,可以从钱包中选择。
  • dumppubkey[地址]-如果指定地址的公钥在钱包中,则返回该地址的公钥
  • dumpprivkey[地址]-如果在钱包中,则返回指定地址的私钥(WIF格式)
  • genmultisig[nreq][mtotal][pubkey1,pubkey2,…]?-生成新的多重签名地址。如果未提供全部公钥,则会生成新的公钥并将其存储在电子钱包中。多签名地址需要nreq签名才能使用。
  • sendrawtransation[tx_hex]-向网络广播事务

测试隐形钥匙.py

这个例子贯穿数学,并演示了隐形地址在理论上是如何工作的。

任何人都可以支付新的.py

使用指定的创建新事务ED输出和零输入。显示的事务可以用作anyonecanpay-add.py的输入。

任何人都可以支付add.py

给定一个事务和支出id,添加这些输入并使用anyonecanpay对其进行签名。此程序与anyonecanpay-new.py相结合 有效地允许轻松创建[保证合同](https://en.bitcoin.it/wiki/Contracts#Example_3:_Assurance_contracts)。

文档

待办事项

文档将很快在http://docs.pyspv.org/

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

推荐PyPI第三方库


热门话题
java如何使用JNA创建同一库的多个实例?   java在将Graphql查询作为JSON字符串传递时收到意外的令牌错误   OAuth2 oltu的java问题   java桌面应用程序使用的好的嵌入式数据库是什么?   java Firebase数据库高级查询选项   java正在使磁盘上的EhCache元素过期   java 安卓还原处于backstack中的片段的实例状态   XMemcached中的java异步集   java TimescaleDB是否使用与Postgresql完全相同的JDBC驱动程序?   java从网站c读取信息#   检查java Android中的字符串是否只包含数字和空格   c#如何向web服务发送特殊字符?   grails无法调用需要java的方法。lang.类参数?   java我在组合框中调用的方法不会运行所有代码,它只运行部分代码   java发送带有标头的HTTP GET请求