使用 Quicknode 在以太坊上开始开发的最快方法,是向您的端点发送一个 JSON-RPC 请求。在本快速入门指南中,您将创建一个端点,复制其提供商 URL,并发送您的第一个请求。代码示例提供cURL格式,以及常用 SDK 和编程语言的版本。
获取您的以太坊端点
如需了解 Quicknode 仪表盘的详细操作指南,请参阅我们的 指南
发送您的第一个请求
您的端点已准备就绪。现在,让我们向以太坊区块链发起第一次调用。我们将使用 eth_blockNumber 该方法返回最新的区块号。 选择您首选的语言或 SDK,并按照以下步骤发送您的第一个请求.
- cURL
- Quicknode SDK
Python
- JavaScript
- Ruby
- 去
- Ethers.js
Web3.py
- Eth.rb
- Ethgo
检查 cURL 的安装情况
大多数基于 *nix 的系统默认都支持 cURL。打开终端,运行以下命令检查 cURL 的版本:
curl --version
发送一个 JSON-RPC 请求
在终端中,复制并粘贴以下 cURL 命令以获取最新的区块号:
curl -X POST YOUR_QUICKNODE_ENDPOINT_URL/ \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
示例回答
{
"jsonrpc": "2.0",
"id": 1,
"result": "0x1234567"
}
设置您的项目
首先,使用 `node --version` 命令验证 Node.js 是否已安装。如果尚未安装,请从 https://nodejs.org 下载。然后创建一个新目录并初始化一个 Node.js 项目:
mkdir ethereum-api-quickstart
cd ethereum-api-quickstart
npm init -y
安装 Quicknode SDK
安装 Quicknode SDK 软件包:
npm 安装 @quicknode/sdk
创建主文件
为您的代码创建一个 index.js 文件:
touch index.js
将此代码添加到你的 index.js 文件中
将以下代码复制并粘贴到你的 index.js 文件中:
const { Core } = require('@quicknode/sdk');
const main = async () => {
const core = new Core({
endpointUrl: 'YOUR_QUICKNODE_ENDPOINT_URL/',
});
const blockNumber = await core.client.request({
method: 'eth_blockNumber',
});
console.log('Block number:', parseInt(blockNumber, 16));
};
main();
运行你的项目
运行您的脚本以查看最新的区块号:
node index.js
设置您的项目
为您的 Python 项目创建一个新目录:
mkdir ethereum-python-quickstart
cd ethereum-python-quickstart
创建并激活虚拟环境
创建一个虚拟环境来管理依赖项:
python3 -m venv venv
source venv/bin/activate
安装请求
安装 requests 库以进行 HTTP 请求:
pip 安装 requests
编写一个 Python 脚本(app.py)
创建一个包含以下代码的 Python 文件:
import requests
import json
# Your Quicknode endpoint URL
endpoint_url = "YOUR_QUICKNODE_ENDPOINT_URL/"
# JSON-RPC request payload
payload = {
"jsonrpc": "2.0",
"id": 1,
"method": "eth_blockNumber",
"params": []
}
# Make the request
response = requests.post(endpoint_url, json=payload)
result = response.json()
print("Latest block number (hex):", result["result"])
print("Latest block number (decimal):", int(result["result"], 16))
运行该脚本
运行您的 Python 脚本:
python app.py
设置您的项目
创建一个新目录并初始化一个 Node.js 项目:
mkdir ethereum-js-quickstart
cd ethereum-js-quickstart
npm init -y
创建一个 JavaScript 文件(app.js)
创建一个名为 app.js 的文件,并输入以下代码(使用 Node.js 18 及以上版本中提供的原生 fetch 功能):
const url = 'YOUR_QUICKNODE_ENDPOINT_URL/';
const options = {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
jsonrpc: '2.0',
method: 'eth_blockNumber',
params: [],
id: 1
})
};
async function main() {
try {
const response = await fetch(url, options);
const data = await response.json();
console.log('Block Number (hex):', data.result);
console.log('Block Number (decimal):', parseInt(data.result, 16));
} catch (error) {
console.error('Error:', error);
}
}
main();
运行该脚本
执行您的 JavaScript 脚本:
node app.js
设置您的项目
为您的 Ruby 项目创建一个新目录:
mkdir ethereum-ruby-quickstart
cd ethereum-ruby-quickstart
检查 Ruby 安装情况
请确认您的系统上已安装 Ruby。如果尚未安装,请从 https://ruby-lang.org 安装:
ruby --version
创建一个 Ruby 脚本(main.rb)
创建一个名为 main.rb 的文件,并输入以下代码:
require "uri"
require "json"
require "net/http"
url = URI("YOUR_QUICKNODE_ENDPOINT_URL/")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request.body = JSON.dump({
"method": "eth_blockNumber",
"params": [],
"id": 1,
"jsonrpc": "2.0"
})
response = https.request(request)
result = JSON.parse(response.read_body)
hex_result = result["result"]
decimal_result = hex_result.to_i(16)
puts "Block number (hex): #{hex_result}"
puts "Block number (decimal): #{decimal_result}"
运行该脚本
运行您的 Ruby 脚本以查看最新的区块编号:
ruby main.rb
设置您的项目
为您的 Go 项目创建一个新目录:
mkdir ethereum-go-quickstart
cd ethereum-go-quickstart
检查围棋布局
请确认您的系统上已安装 Go。如果尚未安装,请从 https://golang.org 安装:
go version
创建一个 Go 脚本(main.go)
创建一个名为 main.go 的文件,并输入以下代码:
package main
import (
"encoding/json"
"fmt"
"strings"
"net/http"
"io/ioutil"
"strconv"
)
type Response struct {
Result string `json:"result"`
}
func main() {
url := "YOUR_QUICKNODE_ENDPOINT_URL/"
method := "POST"
payload := strings.NewReader(`{"method":"eth_blockNumber","params":[],"id":1,"jsonrpc":"2.0"}`)
client := &http.Client{}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
var response Response
err = json.Unmarshal(body, &response)
if err != nil {
fmt.Println("Error parsing JSON:", err)
return
}
// Convert hex to decimal
blockNumber, err := strconv.ParseInt(response.Result, 0, 64)
if err != nil {
fmt.Println("Error converting hex to decimal:", err)
return
}
fmt.Printf("Block number (hex): %s\n", response.Result)
fmt.Printf("Block number (decimal): %d\n", blockNumber)
}
运行该脚本
运行您的 Go 脚本以查看最新的区块号:
运行 main.go
设置您的项目
创建一个新目录并初始化一个 Node.js 项目(假设已安装 Node.js):
mkdir ethereum-ethers-quickstart
cd ethereum-ethers-quickstart
npm init -y
npm pkg set 类型=模块
安装 ethers.js
安装用于与以太坊交互的 ethers.js 库:
npm 安装 ethers
创建主文件(index.js)
创建一个名为 index.js 的文件,并输入以下代码:
import { ethers } from "ethers";
(async () => {
const provider = new ethers.JsonRpcProvider("YOUR_QUICKNODE_ENDPOINT_URL/");
const blockNum = await provider.getBlockNumber();
console.log('Current block number (decimal):', blockNum);
console.log('Block number (hex):', '0x' + blockNum.toString(16));
})();
运行你的项目
运行您的脚本以查看最新的区块号:
node index.js
设置您的项目
为您的 web3.py 项目创建一个新目录:
mkdir ethereum-web3py-quickstart
cd ethereum-web3py-quickstart
安装 web3.py(如果尚未安装)
使用 `pip list | grep web3` 检查是否已安装 web3.py。如果未找到,请安装它:
pip 安装 web3
编写一个 Python 脚本(main.py)
创建一个名为 main.py 的文件,并输入以下代码:
from web3 import Web3
w3 = Web3(Web3.HTTPProvider("YOUR_QUICKNODE_ENDPOINT_URL/"))
try:
latest_block_number = w3.eth.block_number
print(f"Latest Block Number: {latest_block_number}")
print(f"Block number (hex): {hex(latest_block_number)}")
except Exception as e:
print(f"Error: {e}")
设置您的项目
为您的 eth.rb 项目创建一个新目录:
mkdir ethereum-ethrb-quickstart
cd ethereum-ethrb-quickstart
安装 eth.rb(如果尚未安装)
使用 `gem list eth` 检查 eth.rb 是否已安装。如果未找到,请安装它:
gem 安装 eth
创建一个 Ruby 脚本(main.rb)
创建一个名为 main.rb 的文件,并输入以下代码:
require 'eth'
client = Eth::Client.create "YOUR_QUICKNODE_ENDPOINT_URL/"
begin
block_number = client.eth_block_number
hex_result = block_number["result"]
decimal_result = hex_result.to_i(16)
puts "Block number (hex): #{hex_result}"
puts "Block number (decimal): #{decimal_result}"
rescue => e
puts "Error: #{e.message}"
end
运行该脚本
运行您的 Ruby 脚本以查看最新的区块编号:
ruby main.rb
设置您的项目
为您的 Ethgo 项目创建一个新目录:
mkdir ethereum-ethgo-quickstart
cd ethereum-ethgo-quickstart
初始化 Go 模块并安装 ethgo
初始化一个 go.mod 文件以跟踪依赖项,然后安装 ethgo SDK:
go mod init ethereum-ethgo-quickstart
go get github.com/umbracle/ethgo
go mod tidy
创建一个 Go 脚本(main.go)
创建一个名为 main.go 的文件,并输入以下代码:
package main
import (
"fmt"
"log"
"github.com/umbracle/ethgo/jsonrpc"
)
func main() {
client, err := jsonrpc.NewClient("YOUR_QUICKNODE_ENDPOINT_URL/")
if err != nil {
log.Fatalf("Failed to connect to Ethereum: %v", err)
}
blockNumber, err := client.Eth().BlockNumber()
if err != nil {
log.Fatalf("Failed to get latest block number: %v", err)
}
fmt.Printf("Latest block number (decimal): %d\n", blockNumber)
fmt.Printf("Latest block number (hex): 0x%x\n", blockNumber)
}
运行该脚本
运行您的 Go 脚本以查看最新的区块号:
运行 main.go
如果您想进一步了解如何发送 API 请求,请查看我们的指南和示例应用。
我们 ❤️ 您的反馈!
如果您对本文档有任何反馈或疑问,请告诉我们。我们非常期待您的反馈!