码迷,mamicode.com
首页 > 编程语言 > 详细

python以太坊开发的主要相关技术

时间:2018-09-05 18:02:29      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:抽象   需要   ESS   编写   .com   php   接口   字节   交互   

  使用 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以太坊开发的主要相关技术

标签:抽象   需要   ESS   编写   .com   php   接口   字节   交互   

原文地址:https://www.cnblogs.com/zhangmq-864200/p/9592244.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!