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进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和事件等内容。

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

时间: 2024-11-08 17:27:05

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

以太坊开发完整去中心化应用 —— 区块链投票系统

第一节 课程概述 本课程面向初学者,内容涵盖以太坊开发相关的基本概念,并将手把手地教大家如何构建一个 基于以太坊的完整去中心化应用 -- 区块链投票系统. ethereum logo 通过本课程的学习,你将掌握: 以太坊区块链的基本知识 开发和部署以太坊合约所需的软件环境 使用高级语言(solidity)编写以太坊合约 使用NodeJS编译.部署合约并与之交互 使用Truffle框架开发分布式应用 使用控制台或网页与合约进行交互 前序知识要求 为了顺利完成本课程,最好对以下技术已经有一些基本了解

以太坊是什么 - 以太坊开发入门指南

很多同学已经跃跃欲试投入到区块链开发队伍当中来,可是又感觉无从下手,本文将基于以太坊平台,以通俗的方式介绍以太坊开发中涉及的各晦涩的概念,轻松带大家入门. 以太坊是什么 以太坊(Ethereum)是一个建立在区块链技术之上, 去中心化应用平台.它允许任何人在平台中建立和使用通过区块链技术运行的去中心化应用. 对这句话不理解的同学,姑且可以理解为以太坊是区块链里的Android,它是一个开发平台,让我们就可以像基于Android Framework一样基于区块链技术写应用. 在没有以太坊之前,写区

以太坊开发DApp实战教程——用区块链、星际文件系统(IPFS)、Node.js和MongoDB来构建电商平台(一)

第一节 简介 欢迎和我们一起来用以太坊开发构建一个去中心化电商DApp!我们将用区块链.星际文件系统(IPFS).Node.js和MongoDB来构建电商平台类似淘宝的在线电商应用,卖家可以自由地出售商品,买家可以自由地购物: 去中心化: 和淘宝或eBay不同,我们把所有的商业逻辑和核心数据都放在以太坊区块链上,这使 得它成为一个完全去中心化的应用.和淘宝这样中心化的电商平台相比,一个去中心化的P2P电商应用显然有其独特的价值--至少你不用担心被平台封账户了. IPFS: 在以太坊上存储用于商品

如何从零开始学习区块链技术——推荐从以太坊开发DApp开始

很多人迷惑于区块链和以太坊,不知如何学习,本文简单说了一下学习的一些方法和资源. 一. 以太坊和区块链的关系 从区块链历史上来说,先诞生了比特币,当时并没有区块链这个技术和名词,然后业界从比特币中提取了技术架构和体系,称之为区块链技术.从比特币提取的区块链技术称之为区块链1.0时代,那个时候的应用主要以电子货币和去中心化交易为主,比如各种山寨币.而以太坊将区块链带入了2.0的时代,区块链2.0不是推翻了1.0,而是在1.0的基础上实现了区块知晓.价值知晓.图灵完备,并进行了细节优化,从而形成了以

以太坊开发环境搭建

Geth安装 全称 Go Ethereum, 官网地址:https://github.com/ethereum/go-ethereum/wiki/geth 安装指令: brew tap ethereum/ethereum brew install ethereum 版本检测: geth version 以太坊生产网络/测试网络/私有网络 测试网络是官方提供的, 专供用来开发.调试和测试. 因为网络是官方提供的,因此对于以太坊技术的底层实现.Geth的各种参数接口.整个以太坊的技术真实性能的理解就

以太坊开发--geth的使用入门

geth的全称是go-ethereum,是一个以太坊客户端,用go语言编写,应该是目前最常用的客户端.当然以太坊客户端还有用C++,Ruby,Python,Java等其他多种语言编写的,不同类型的客户端是为了满足不同的需求场景.今天我们主要来介绍geth(发音同guess )的使用. 对于我们开发来说,比较普遍有两种方式打开geth控制台,以开发方式登录和私链方式登录.这两种方式是完全不同的,两者的账户也是不共用的,其中以开发方式登录相对比较简单,以私链方式登录还需要进行额外的配置,我会在后面的

Ubuntu 16.04 以太坊开发环境搭建

今天我们来一步一步从搭建以太坊智能合约开发环境. Ubuntu16.04 安装ubuntu16.04.下载链接 //先update一下(或者换国内源再update) sudo apt-get update g++ 安装 sudo apt-get install g++ libssl-dev 安装 sudo apt-get install libssl-dev  git 之后的安装需要依赖Git sudo add-apt-repository ppa:git-core/ppa sudo apt-g

【以太坊开发】如何开发一个编译以太坊智能合约并且发布的平台(二)

接上一章的内容,这篇介绍 deploy相关和结果演示. deploy一个合约的过程中,需要计算发布的消耗和nonce值. 当进行每笔交易时,发送人设定Gas Limit 和Gas Price,将 Gas Limit*Gas Price ,就得到了ETH交易佣金的成本. nonce:以太坊要求一个账户的每笔交易有一个连续的计数.每个节点将根据计数顺序严格执行来自一个用户的交易. app.js中有下面两个函数: var web3 = new Web3(new Web3.providers.HttpP

【以太坊开发】利用Oraclize开发一个投注合约(一):原理介绍

智能合约的作用很多,但是很多数据还是要基于互联网,那么如何在合约中获取互联网中的数据?Oraclize就是为了这个目的而诞生的. 本篇介绍如何利用Oraclize开发一个投注智能合约,开始coding之前,这一节讲述一下理论. 工作原理: 智能合约通过对Oraclize发布一个合约之间的调用请求来获取数据,指定数据源和参数.Oraclize根据收到的请求获取数据,利用callBack函数返回结果. Oraclize的数据源列表如下: URL:互联网中的连接. WolframAlpha:Wolfr