比特币实用功能

bitcoin-utils的Python项目详细描述


这是一个比特币库,提供与比特币网络交互的工具/实用程序。图书馆的主要目标之一是解释比特币的低级细节。该代码易于阅读,并有适当的文档记录,详细解释了实现的所有棘手方面。它是一个低级的库,假定对比特币的工作原理有一些高级的理解。将来这种情况可能会改变。

这是库的早期版本(v0.4.0),目前,它支持私钥/公钥、所有类型的地址以及创建所有sigash类型的任何事务(包括segwit)。包括所有脚本操作代码。支持TimeLock和非标准事务。目前,存在一个简单的节点代理,可以轻松调用比特币核心节点。额外的功能将不断增加,文件将随着工作的进展而改进。

api文档可以用sphinx构建,但也可以作为pdf提供,以方便使用。人们现在可以使用这个库来试验和学习比特币的内部工作原理。它还不适合生产,部分api可能会更新为新版本。

安装

python版本3是必需的。然后使用以下命令安装:

$pip安装比特币实用程序

示例

键和地址
https://github.com/karask/python-bitcoin-utils/blob/master/examples/keys_addresses.py-创建一个私钥,我们用它派生一个公钥,然后再派生一个地址。我们还使用私钥对消息进行签名,然后使用公钥进行验证。
segwit地址
https://github.com/karask/python-bitcoin-utils/blob/master/examples/keys_segwit_addresses.py-创建p2wpkh、p2sh-p2wpkh、p2wsh和p2sh-p2wsh地址。
创建p2pkh事务
https://github.com/karask/python-bitcoin-utils/blob/master/examples/p2pkh_transaction.py-创建一个具有一个输入和两个输出的简单事务。
创建具有不同sigash的p2pkh事务
https://github.com/karask/python-bitcoin-utils/blob/master/examples/multi_input_sighash_transaction.py-创建具有不同签名类型的2输入2输出事务。
创建一个p2sh地址
https://github.com/karask/python-bitcoin-utils/blob/master/examples/send_to_p2sh_transaction.py-创建一个p2sh地址,该地址对应于p2pk兑换脚本,并向其发送一些资金。
创建(使用)一个p2sh事务
https://github.com/karask/python-bitcoin-utils/blob/master/examples/spend_p2sh_transaction.py-创建花费p2sh输出的事务。
创建非标准tx
https://github.com/karask/python-bitcoin-utils/blob/master/examples/create_non_std_tx.py-将资金发送到具有非标准tx的地址(脚本:op_add op_5 op_equal)
使用非标准tx
https://github.com/karask/python-bitcoin-utils/blob/master/examples/spend_non_std_tx.py-花费脚本op_add op_5 op_equal中的资金
使用相对时间锁创建p2sh地址
https://github.com/karask/python-bitcoin-utils/blob/master/examples/create_p2sh_csv_p2pkh_address.py-创建一个p2sh地址,该地址使用私钥(p2pkh)锁定资金(发送给它),并且将来的相对锁定时间为200个块。
从时间锁定的地址花费
https://github.com/karask/python-bitcoin-utils/blob/master/examples/spend_p2sh_csv_p2pkh.py-从上面创建的p2sh(csv+p2pkh)地址花费。
使用nodeProxy调用比特币节点
https://github.com/karask/python-bitcoin-utils/blob/master/examples/node_proxy.py-以编程方式进行比特币命令行接口调用(nodeproxy包装jsonrpc请求库)

请浏览代码库或API文档(BitCoinUtilities.pdf)以了解支持的功能和其他选项。

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

推荐PyPI第三方库


热门话题
java出现编译错误,我不理解   java在gnu-trove库中是否有任何有序映射?   java Servlet应该有映射,但找不到Servlet   java时间和第二期显示1:10,而不是13:10   java Play Framework 1.2.7 Heroku更新崩溃   线程“main”java中的opencsv异常。lang.NoClassDefFoundError:org/apache/commons/lang3/ObjectUtils   selenium在java中隐藏警告消息   java使用ID引用将JSON实体反序列化为POJO   java无法在JRE 8中加载字体   一个线程中的异常/错误会使整个应用程序停止吗?   java访问重复子规则的元素标签;e、 g.用ANTLR解析(1,2,3)中的a   java如何从平移旋转中找到新坐标   使用HTML Java小程序托管jar文件存在安全问题   java如何按频率而不是字母顺序排列字符串数组   java清除bufferedReader和块以获得更多输入   java解密SAML2断言