`
阅读更多

以太坊作为最流行区块链平台,最大的特点是运行各种智能合约。我们已经出过node.js、java、php的以太坊开发实战教程,这一次是python。Python官方提供了一系列的Python包用于支持在Python应用中访问以太坊,其中最流行的就是web3.py —— 对JSON RPC接口的Python封装包。在本课程中,我们将主要使用web3.py,同时结合一些其他的包,来开发支持以太坊的Python应用。

本教程的目的是帮助Python工程师快速掌握开发以太坊应用的技能,同时穿插 讲解以太坊的一些核心概念,例如:账户、交易和智能合约等,大概的目录结构是:

Hi,以太坊

将通过一个简单的Python应用的开发来讲解使用 Python进行以太坊应用开发的最简流程,通过这一部分的学习,你就可以在自己 的Python应用中引入基本的以太坊支持了。

账户管理

将详细介绍以太坊的账户管理接口。如果你对开发中心化钱包应用感兴趣,或者需要在自己的网站中动态创建账户(例如,你 希望为网站增加对以太坊支付的支持),那么这部分内容会有很大的帮助。

理解状态与交易

讲解以太坊的交易操作接口,同时也介绍一些 重要的概念,例如状态、裸交易、gas等。这部分内容将帮助你理清Python 应用与以太坊交互的大多数问题。

智能合约的开发与应用

将通过一个ERC20代币合约的开发、编译、代码生成、部署与交互 的完整流程,讲解使用Python操作solitiy合约的方法。如果你希望为自己的 应用增加代币支持,这一部分的内容是必须的。

过滤器与事件

讲解以太坊的通知机制以及如何在Python中使用过滤器来监视 块和交易的生成与合约事件的触发。

web3.py示例

web3.py是以太坊官方维护的Python版rpc接口封装库,因此我们优先 选择它。下面是使用web3.py获取节点版本信息的代码:

from web3 import Web3, HTTPProvider

provider = Web3.HTTPProvider('http://localhost:8545') 
w3 = Web3(provider)
  • 1
  • 2
  • 3
  • 4

Web3是web3.py的入口类,我们与以太坊的交互,基本上是通过这个入口 来完成的,实例化Web3需要指定一个通信服务提供器,即明确采用何种通信 方式与哪一个节点进行交互。

web3.py目前实现了IPC、HTTP和Websocket这三种网络服务提供器。 HTTPProvider则声明了与以太坊节点旳连接采用HTTP协议,只需要指定 节点旳URL即可。由于我们使用本机的gaanche-cli仿真器,因此使用http://localhost:8545 这个URL。

Web3实例的manager属性是一个RequestManager实例,它负责利用指定 的通信服务提供器来进行json rpc交互,因此它是通信传输无关的(provider agnostic)。 调用其request_blocking()方法来提交请求:

version = w3.manager.request_block('web3_clientVersion',[])
  • 1

注意:request_block()返回的结果不是完整的json rpc响应,而仅仅是包含其result字段。

本教程地址: python以太坊

分享到:
评论

相关推荐

    Windows下使用python-web3.py进行以太坊Dapp开发笔记–第1篇

    找到对应的操作系统安装最新的版本就好(一般这里如果安装最新的,下面的web3.py也需要最新版,不然可能会出现各种错误!!!) 我的版本是: 使用(这里仅介绍创建私链及geth命令行的简单使用) A.创建私链 a.创建...

    如何使用 Vue.js 开发以太坊 DApp

    如何使用 Vue.js 开发以太坊 DApp Vue 是一套在前端开发中广泛采用的用于构建用户界面的渐进式 JavaScript 框架。Vue 通过响应的数据绑定和组合的视图组件让界面开发变得非常的简单。这边文章来看看如何使用 Vue ...

    以太坊DApp开发环境搭建-windows

    安装完Node.js后,需要通过npm(Node.js的包管理器)安装以太坊开发所需的几个关键工具:ganache-cli、solidity编译器solc以及web3.js库。这些工具分别承担着节点仿真、智能合约编译和与以太坊区块链交互的功能。 ...

    Ethereum-DAPP-Vue.JS:使用Web3和Vue.JS学习以太坊DAPP

    维以太坊一个Vue.js项目构建设置 # install dependenciesnpm install# serve with hot reload at localhost:8080npm run dev# build for production with minificationnpm run build# build for production and view...

    开发和部署以太坊DApp(宠物商店)1

    以太坊DApp开发和部署指南 以太坊(Ethereum)是基于区块链技术的去中心化平台,能够运行智能合约和去中心化应用程序(DApp)。本文将指导读者开发和部署一个基于以太坊的宠物商店DApp。 智能合约 智能合约是以太...

    开发和部署以太坊DApp——投票系统1

    Truffle是一个流行的以太坊DApp开发框架,提供了一个完整的开发环境,包括编译、部署、测试和调试工具。Truffle使用 solidity语言来编写智能合约,并提供了一个命令行界面来管理DApp的整个生命周期。 MetaMask ...

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

    通过一个去中心化电商DApp的完整开发过程,引导学习者在实战中深入理解并掌握如何基于以太坊开发去中心化应用。课程涵盖以太坊、IPFS、MongDB、Express等诸多技术点,采用敏捷开发思路,内容深入浅出,是不可多得的...

    区块链技术实战 以太坊DApp开发环境搭建-Ubuntu 共7页.pdf

    Truffle是一个非常流行的以太坊开发框架,提供了开发、测试和部署DApp的一整套工具。执行以下命令安装Truffle: ```bash npm install -g truffle ``` 安装验证: ```bash truffle version ``` **2.6 安装Webpack...

    DAPP开发技术课件:Web3.js 基础与案例.pptx

    Web3.js是基于JavaScript的以太坊开发库,它的主要功能是为开发者提供与以太坊节点的通信接口。在Web3.js出现之前,与智能合约交互通常需要直接使用JSON-RPC协议,这是一项相对复杂的任务。Web3.js简化了这个过程,...

    以太坊DApp开发环境搭建 区块链

    以太坊DApp开发环境搭建,自带区块链的一个小Demo,希望对大家学习区块链有帮助

    以太坊DApp入门教程区块链投票系统

    本课程面向初学者,内容涵盖以太坊去中心化应用开发相关的诸多概念,如区块链、ganache仿真器、Solidity语言、solc编译器、web3js库、通证(代币)发行等,并将手把手地教大家如何构建一个基于以太坊的完整去中心化...

    web3.js API中文文档

    它是以太坊开发的重要工具之一,提供了丰富的API接口来帮助开发者轻松地进行智能合约的部署、交易的发送等操作。 - **作用**: 通过封装底层复杂的通信细节,让开发者能够更加专注于业务逻辑而不是底层实现。同时,...

    DAPP开发技术课件:web3.js 常用 API.pptx

    在DAPP开发技术中,Web3.js是一个至关重要的库,它允许开发者与以太坊区块链进行交互。Web3.js库提供了丰富的API,使得开发者能够轻松地执行各种操作,如读取区块信息、管理账户、调用智能合约等。在本课件中,我们...

    DAPP开发技术课件:web3.js 合约操作.pptx

    本课程主要介绍了DAPP开发技术中的Web3.js合约操作,涵盖了合约的创建、调用和事件处理等知识点。以下是相关知识点的详细解释: ABI接口文件 ABI(Application Binary Interface)接口文件是一种标准方式,用于在...

    区块链技术实战 以太坊DApp开发环境搭建-windows 共6页.pdf

    通过本指南的学习,读者可以掌握必要的步骤和技术要点,从而能够快速开始以太坊DApp的开发工作。 #### 二、开发环境搭建步骤 ##### 1.1 安装Node.js - **版本选择**:推荐使用官方长期支持的8.10.0 LTS版本。 - *...

    区块链技术实战 以太坊DApp开发-Geth私链环境搭建-Ubuntu 共13页.pdf

    ### 区块链技术实战:以太坊DApp开发-Geth私链环境搭建-Ubuntu #### 一、概述 本文旨在详细介绍如何在Ubuntu平台上搭建一个完整的以太坊去中心化应用(DApp)开发环境,包括Geth私链环境的配置与部署。通过本指南...

    react-ethereum-dapp-example:使用web3.js v1.0,松露,react和奇偶校验的以太坊dapp入门模板

    这个用于构建react / redux dapps的入门资料库使用最新的尖端以太坊开发技术。 请注意,该存储库仍在开发中; 我将添加其他智能合约/ UI示例。 产品特点 一流的技术,包括Web3.js v1.0 该存储库旨在实施最新的技术...

    区块链 基于IPFS去中心化相册以太坊Dapp的设计与实现+详细文档+全部资料(优秀项目).zip

    区块链 基于IPFS去中心化相册以太坊Dapp的设计与实现+详细文档+全部资料(优秀项目).zip区块链 基于IPFS去中心化相册以太坊Dapp的设计与实现+详细文档+全部资料(优秀项目).zip区块链 基于IPFS去中心化相册以太坊...

Global site tag (gtag.js) - Google Analytics