以太坊开发入门
这是一份关于以太坊开发的初学者指南。 在本教程中,我们将使用 Alchemy,这是一个领先的区块链开发者平台,为 70% 的顶级区块链应用程序(包括 Maker、0x、MyEtherWallet、Dharma 和 Kyber)的数百万用户提供支持。 Alchemy 使我们能够访问以太坊链上的 API 端点,这样我们就可以读写交易。
我们将带您注册 Alchemy 来编写您的第一个 web3 脚本! 无需区块链的开发经验!
1. 注册免费 Alchemy 帐户
创建 Alchemy 帐户很容易,点击此处免费注册。
2. 创建一个 Alchemy 应用程序
为了与以太坊通信,以及为了使用 Alchemy 的产品,您需要一个 API 密钥来验证您的请求。
您可以通过仪表板创建 API 密钥。 要创建一个新密钥,导航到如下所示的“Create App”:
特别感谢ShapeShift让我们展示他们的仪表板!
填写“Create App”下的详细信息以获取您的新密钥。 在此处还可以看到您以前创建的应用以及您的团队创建的应用。 通过点击任何应用的“View Key”来查看现有密钥。
您也可以通过将鼠标悬停在“Apps”上并选择一个来获取现有 API 密钥。 您可以在这里“查看密钥”,以及“编辑应用程序”来特定域名加入白名单、查看几个开发者工具,并查看分析。
3. 在命令行中发送请求
使用 JSON-RPC 和 curl 通过 Alchemy 与以太坊区块链交互。
对于手动请求,我们建议通过JSON RPC
发送POST
请求来进行交互。 只需传入Content-Type: application/json
标头和查询作为POST
主体,具有以下字段:
jsonrpc
: JSON-RPC 版本,目前只支持2.0
。method
:ETH API 方法。 请参阅 API 参考。params
:要传递到方法的参数列表。id
:请求的 ID。 将通过响应返回,这样就可以跟踪一个响应属于哪个请求。
这是一个可通过命令行运行的示例,用于查询当前燃气价格:
curl https://eth-mainnet.alchemyapi.io/v2/demo \-X POST \-H "Content-Type: application/json" \-d '{"jsonrpc":"2.0","method":"eth_gasPrice","params":[],"id":73}'
注意:将 https://eth-mainnet.alchemyapi.io/v2/demo 替换成你自己的应用程序接口密钥 https://eth-mainnet.alchemyapi.io/v2/**your-api-key
。
结果:
1{ "id": 73,"jsonrpc": "2.0","result": "0x09184e72a000" // 10000000000000 }2复制
4. 设置 Web3 客户端
如果您已有客户端, 将您当前的节点提供商的 URL 更改为您的 API 密钥的 Alchemy URL: “https://eth-mainnet.alchemyapi.io/v2/your-api-key”
注意:下面的脚本需要在一个节点环境中运行或保存到一个文件运行,而不是通过命令行运行。 如果您尚未安装节点或 npm ,请查看此适用于 mac 的快速设置指南。
许多 Web3 库都可以和 Alchemy 集成。但是,我们建议使用 Alchemy Web3,它是 web3.js 的替代插件,可与 Alchemy 无缝协作。 这个库有很多优点,例如自动重试和可靠的 WebSocket 支持。
要安装 AlchemyWeb3.js,请导航到项目目录并运行:
使用 yarn:
1yarn add @alch/alchemy-web32
使用 NPM:
1npm install @alch/alchemy-web32
要与 Alchemy 的节点基础设施交互,请在 NodeJS 中运行或将其添加到 JavaScript 文件:
1const { createAlchemyWeb3 } = require("@alch/alchemy-web3")2const web3 = createAlchemyWeb3(3 "https://eth-mainnet.alchemyapi.io/v2/your-api-key"4)5复制
5. 编写您的第一个 Web3 脚本!
现在用一个小的 web3 编程来练习,我们将编写一个简单的脚本,用于打印出以太坊主网中最新的区块高度。
1. 在终端中创建一个新的项目目录并通过 cd 命令进入该目录(如果尚未这样做):
1mkdir web3-example2cd web3-example3
2. 在项目中安装 Alchemy Web3(或任何 Web3)依赖项(如果尚未这样做):
1npm install @alch/alchemy-web32
3. 创建一个名为 index.js
的文件并添加以下内容:
最终应将
demo
替换为您的 Alchemy HTTP API 密钥 。
1async function main() {2 const { createAlchemyWeb3 } = require("@alch/alchemy-web3")3 const web3 = createAlchemyWeb3("https://eth-mainnet.alchemyapi.io/v2/demo")4 const blockNumber = await web3.eth.getBlockNumber()5 console.log("The latest block number is " + blockNumber)6}7main()8复制
不熟悉 async 函数? 来看看这篇 Medium 文章。
4. 使用节点在终端中运行该脚本
1node index.js2
5. 现在应该会在控制台中看到最新的区块编号输出结果!
1The latest block number is 110439122
哇! 恭喜! 您刚刚使用 Alchemy 编写了您的第一个 Web3 脚本 🎉
不知道下一步该怎么做? 尝试部署您的第一个智能合约,开始练习 Solidity 编程同时参阅我们的 Hello World 智能合约指南,或使用 Dashboard Demo App 测试您的仪表板知识!
免费注册 Alchemy,查看我们的相关文档,并关注我们的 Twitter 了解最新消息。