使用Infura和Python学习开发Web3

译者 | 李睿
Web3、区块链技术和加密货币如今都是令人关注的热门话题 。技术、应用、生态系统以及对社会的影响都在以惊人的速度发展 。本文将从开发人员Alvin Lee的角度来讨论如何学习开发Web3,虽然他开发经验丰富,但是在开发Web3方面则是一名新手 。本文将了解Web3开发的先决条件,如何使用Python/ target=_blank class=infotextkey>Python通过Web3的顶级API服务Infura访问区块链,最后介绍用于管理钱包的一个简单项目 。

使用Infura和Python学习开发Web3

文章插图
如何开始尽管Alvin Lee从20世纪90年代末就开始进行编程,但在Web3世界里,他却是一名初学者 。他并不是专家,所以不会试图解释Web3基本原理 。但市面上有很多很好的指南和教程,因此他建议从Infura文档开始,它非常全面且易于理解 。
如果用户喜欢更互动的学习方式,也可以从技术社区获得支持 。
现在,学习Web3先从一些基础知识开始 。首先需要创建一个Infura账户,一个存储加密货币的钱包,当然还需要一些钱 。
创建Infura账户Infura公司是区块链API和开发人员使用工具的提供商 。这意味着如果服务商想访问区块链,不需要自己运行节点 。与其相反,只需采用一个友好的API,Infura就会完成所有繁重的工作 。Infura免费并且安全,因为它不会存储用户的私钥,也无法修改其交易或多次重放它们 。
用户可以免费开户,不需要采用信用卡 。
创建Infura项目创建项目是事情变得有趣的地方 。每个项目都有一个API密钥,用于标识它并允许用户使用Infura,用户可以按照说明进行操作 。
设置加密钱包下一个难题是设置加密钱包 。在区块链环境中,加密钱包持有的余额完全由一组数字密钥控制,因此没有所谓的个人账户所有权,每个帐户都有一个公钥(在区块链中可见)和一个控制该帐户的私钥 。持有私钥的用户完全控制了一个账户 。用户还可以将多个帐户作为一组私钥进行管理 。加密钱包为用户提供了一种安全的方式来管理其帐户/私钥以及其他好处,例如便利性、便携性和兼容性 。
Infura推荐使用MetaMask,用户可以将MetaMask作为浏览器扩展安装 。
在设置加密钱包之后,可以开始讨论如何赚钱 。
如何赚钱区块链不是免费使用的,加密货币经济学需要投入更多的资金 。简单地说,每笔交易都要支出费用 。如果想尝试区块链技术则需要投入资金 。幸运的是,对于开发人员来说,有一些测试网络可以免费获得测试资金,虽然不能用它来换取真实的货币,但是可以用它来开发和测试Web3应用程序 。
说到这一点,有不同类型的区块链 。在这里将重点关注以太坊区块链 。
Alvin Lee在这个项目中使用了测试网Sepolia 。他可以通过faucet站点从Sepolia获得测试ETH(ETH是以太坊的原生加密货币,可以用它来支付以太坊网络上的交易 。而测试ETH是以太坊开发的必要条件)。
faucet站点可以将少量的测试网ETH转移到加密钱包中 。faucet站点要求用户挖矿来赚钱,有些会定期给用户一些钱 。Alvin Lee成功地使用了ConsenSys Sepolia faucet,它每天向一个地址发送0.5个Sepolia ETH 。
在介绍了这些基础知识之后,以下了解Infura API 。
访问Infura APIInfura通过HTTPS(REST)和WebSockets提供了一个JSON-RPC API 。它有几个类别,用户可以通过一些文章了解关于它们的内容 。
此外,Infura API支持多种不同的网络 。每个网络都有自己的https端点,可以在访问API时将其用作基本URL 。
以下是以太坊的端点:
(1)Mai.NET
  • 以太坊主网JSON-RPC基于HTTPS—https://mainnet.infura.io/v3/<API-KEY>
  • 以太坊主网JSON-RPC基于WebSocket — wss://mainnet.infura.io/ws/v3/<API-KEY>
(2)Goerli
  • 以太坊Goerli测试网JSON-RPC基于 HTTPS— https://goerli.infura.io/v3/<API-KEY>
  • 以太坊Goerli测试网JSON-RPC基于WebSocket—wss://goerli.infura.io/ws/v3/<API-KEY>
(3)Sepolia
  • 以太坊Sepolia测试网JSON-RPC 基于HTTPS—https://sepolia.infura.io/v3/<API-KEY>
  • 以太坊Sepolia测试网JSON-RPC基于WebSocket—wss://sepolia.infura.io/ws/v3/<API-KEY>
为了测试是否可以访问API,可以使用curl获取钱包余额 。
将Infura API密钥和API密钥秘密存储在环境变量中,简单地称为:INFURA_API_KEY和INFURA_API_KEY_SECRET 。还将MetaMask钱包的公钥存储在一个名为SEPOLIA_ACCOUNT的环境变量中 。
curl命令如下:
复制
$ curl --user ${INFURA_API_KEY}:${INFURA_API_KEY_SECRET}


推荐阅读