以太坊开发入门
这是一份以太坊开发入门指南。在本教程中,我们将使用 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 密钥。你可以在此处“View Key”(查看密钥),以及“Edit App”(编辑应用程序)以将特定域名列入白名单、查看多种开发者工具并查看分析数据。
3. 从命令行发起请求
使用 JSON-RPC 和 curl 通过 Alchemy 与以太坊区块链进行交互。
对于手动请求,我们建议通过 POST 请求与 JSON-RPC 进行交互。只需传入 Content-Type: application/json 标头,并将你的查询作为 POST 主体,包含以下字段:
jsonrpc:JSON-RPC 版本——目前仅支持2.0。method:ETH API 方法。请参阅 API 参考。params:要传递给该方法的参数列表。id:你的请求 ID。将由响应返回,以便你可以跟踪响应属于哪个请求。
以下是一个你可以从命令行运行以检索当前 Gas 价格的示例:
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 替换为你自己的 API 密钥 https://eth-mainnet.alchemyapi.io/v2/**your-api-key。
结果:
{ "id": 73,"jsonrpc": "2.0","result": "0x09184e72a000" // 10000000000000 }
4. 设置你的 Web3 客户端
如果你已有客户端,请将你当前的节点提供者 URL 更改为带有你 API 密钥的 Alchemy URL:“https://eth-mainnet.alchemyapi.io/v2/your-api-key"
注意:以下脚本需要在 Node 环境中运行或保存在文件中,而不是从命令行运行。如果你尚未安装 Node 或 npm,请遵循 Node.js 安装说明 (在新标签页中打开)。
有许多 Web3 库可以与 Alchemy 集成,但是,我们建议使用 Alchemy Web3 (在新标签页中打开),它是 Web3.js 的直接替代品,经过构建和配置,可与 Alchemy 无缝协作。这提供了多种优势,例如自动重试和强大的 WebSocket 支持。
要安装 AlchemyWeb3.js,请导航到你的项目目录并运行:
使用 Yarn:
yarn add @alch/alchemy-web3
使用 NPM:
npm install @alch/alchemy-web3
要与 Alchemy 的节点基础设施进行交互,请在 NodeJS 中运行或将其添加到 JavaScript 文件中:
const { createAlchemyWeb3 } = require("@alch/alchemy-web3")
const web3 = createAlchemyWeb3(
"https://eth-mainnet.alchemyapi.io/v2/your-api-key"
)
5. 编写你的第一个 Web3 脚本!
现在,为了亲自动手进行一些 Web3 编程,我们将编写一个简单的脚本,打印出以太坊主网的最新区块号。
1. 如果你还没有这样做,请在终端中创建一个新的项目目录并进入该目录:
mkdir web3-example
cd web3-example
2. 如果你尚未安装,请将 Alchemy Web3(或任何 Web3)依赖项安装到你的项目中:
npm install @alch/alchemy-web3
3. 创建一个名为 index.js 的文件并添加以下内容:
你最终应该将
demo替换为你的 Alchemy HTTP API 密钥。
async function main() {
const { createAlchemyWeb3 } = require("@alch/alchemy-web3")
const web3 = createAlchemyWeb3("https://eth-mainnet.alchemyapi.io/v2/demo")
const blockNumber = await web3.eth.getBlockNumber()
console.log("The latest block number is " + blockNumber)
}
main()
不熟悉异步(async)操作?请查看这篇 Medium 文章 (在新标签页中打开)。
4. 使用 node 在终端中运行它
node index.js
5. 你现在应该会在控制台中看到输出的最新区块号!
The latest block number is 11043912
哇!恭喜!你刚刚使用 Alchemy 编写了你的第一个 Web3 脚本 🎉
不确定接下来该做什么?尝试部署你的第一个智能合约,并在我们的 Hello World 智能合约指南中亲自动手进行一些 Solidity 编程,或者继续探索 Alchemy 的文档 (在新标签页中打开)以获取更多示例。
免费注册 Alchemy (在新标签页中打开),查看我们的文档 (在新标签页中打开),如需获取最新消息,请在 Twitter (在新标签页中打开) 上关注我们。


