使用 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进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和事件等内容。
原文地址:https://www.cnblogs.com/zhangmq-864200/p/9592244.html