python以太坊开发的主要相关技术
Posted zhangmq-864200
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python以太坊开发的主要相关技术相关的知识,希望对你有一定的参考价值。
使用 python 开发以太坊,有很多技术知识需要学习,也有很多资源可以推荐,我们来看几个主要的:
Web3.Py
https://github.com/ethereum/web3.py
https://pypi.python.org/pypi/web3
web3.py代码库现在已经比较完善了。整个代码库已经被彻底检测,基本实现JavaScript web3.js库中用户熟悉使用的100%的功能。
这个库支持Python 2.7、3.4和3.5。
我最喜欢的一个部分是TestRPCProvider。它提供程序自动为你提供eth-testrpc服务,以便你可以测试Web3.Py代码像是在EVM内存中。这提供了一种快速测试方法,保证你编写的任何代码在与geth支持的JSON-RPC服务器直接进行交互时也能正常工作。
py-geth 和 py-solc
https://github.com/ethereum/py-geth
https://pypi.python.org/pypi/py-geth
https://github.com/ethereum/py-solc
https://pypi.python.org/pypi/py-solc
这两个库都提供了围绕底层可执行文件的Python包。
py-solc提供高级的compile_files和compile_sources函数为了使你可以用python代码编译solidity源程序。它还提供了一个link_code函数来处理库链接。如果你想做更底层的事情,你也可以深入代码,可以找到访问底层solc API的任何接口,你需要通过solc.wrapper.solc_wrappe函数来访问。
同样,py-geth提供了用于从Python代码运行 go-ethereum geth客户端的高级工具。它提供了预先配置好的类LiveGethProcess和TestnetGethProcess用他们来运行主网或者测试网,以及用于运行测试的本地私有链DevGethProcess。
所有以下这些类都有比较友好的API。
GethProcess.accounts:返回帐户地址列表
GethProcess.data_dir:返回geth进程的底层数据目录的路径。
GethProcess.rpc_enabled/rpc_port/rpc_host:关于JSON-RPC接口的信息。
GethProcess.is_rpc_ready:返回JSON-RPC服务器是否已启动并侦听。
GethProcess.wait_for_rpc(timeout=0):等待JSON-RPC服务器联机。
GethProcess.ipc_*/is_ipc_ready/wait_for_ipc(timeout=0):与相应的RPC方法和属性相同的功能。
py-geth库还提供了一些混合类,可以用来编写所有geth输出到stdout/stderr,或者通过geth.mixins模块将其写入日志记录器。项目说明文件中可用的示例。
这两个都支持Python 2.7、3.4和3.5。
以太坊测试相关的 TestRPC 和测试客户端
https://github.com/pipermerriam/eth-testrpc/
https://pypi.python.org/pypi/eth-testrpc
https://github.com/pipermerriam/ethereum-tester-client
https://pypi.python.org/pypi/ethereum-tester-client
这两个库都是pyethereum存储库的ethereum.tester EVM 之上的抽象。
如果想直接通过Python代码与测试EVM进行交互,我建议使用thereum-tester-client库。它实现了绝大多数APIs的可以让我们使用geth的各种接口。
如果需要测试RPC交互,那么我建议使用eth-testrpc,它实现了绝大多数由geth公开的JSON-RPC逻辑接口。在以太坊引擎下它自己是一层,位于ethereum-tester-client库的顶部。
这两个库都支持Python 2.7、3.4和3.5。
Populus
https://github.com/ethereum/populus
http://populus.readthedocs.org/
Populus是一个以太坊智能合约开发框架,几乎可以做任何以太坊区块链开发相关的事。
大量的Populus代码库,可以更好地作为独立的Python程序包。py-solc和py-geth库都删除了大量复杂的子过程逻辑。基于Web3.Py开发可以从代码库中减少非常多的工作量,同时使以太坊区块链交互更加健壮和可靠。
如果你的目标是提供一个框架来自动http://www.gyslssty.com/xszzxm/xstfzz/434.html化复杂的部署以及设置一个完整的打包和发布系统的话,Populus是一个很好的选择。
Populus依赖关系:
solidity 编译器:智能合约是以solidity语言编写的,然后编译到以太坊虚拟机(EVM)的字节码中。
geth:以太坊协议的go语言实现。geth客户端运行在区块链节点,让我们与区块链进行交互,并在开发过程中可以运行并部署到测试链。
此外,Populus需要一些系统依赖性,才能安装PyEthereum库。
Populus支持Python 2.7、3.4和3.5。
python以太坊,主要是针对python工程师使用web3.py进行区块链以太坊开发的详解。
web3j教程,主要是针对java和android程序员进行区块链以太坊开发的web3j详解。
以太坊教程,主要介绍智能合http://www.chinamaofa.com约与dapp应用开发,适合入门。
以太坊开发,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。
php以太坊,主要是介绍使用php进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和事件等内容。
以上是关于python以太坊开发的主要相关技术的主要内容,如果未能解决你的问题,请参考以下文章
头歌-信息安全技术-用Python实现自己的区块链支持以太坊的云笔记服务器端开发编写并测试用于保存云笔记的智能合约支持以太坊的云笔记小程序开发基础