ETHEREUM_RPC_URL=https://sepolia.infura.io/v3/你的_INFURA_API_KEY
?
如果你沒有 Infura Key,注冊 Infura 或 Alchemy,拿一個免費測試網節點就行:
-
Infura:https://infura.io
-
Alchemy:Alchemy - the web3 development platform
非常棒的問題,很多剛接觸以太坊開發的開發者都會疑惑:
“為什么不能直接連接以太坊?”
“為什么還要用什么 Infura、Alchemy?”
我來從底層原理角度解釋一下👇
🧠 以太坊連接本質上是連接“以太坊節點”(Ethereum Node)
你和以太坊互動(比如查詢區塊、發交易、部署合約)時,是在和“以太坊節點”交互。
這個節點運行軟件,比如:
-
geth
(官方 Go Ethereum 客戶端) -
nethermind
-
besu
-
等等
🧱 問題來了:
👉 你自己并沒有運行這樣的節點!
運行一個以太坊主網節點或測試網節點:
-
需要幾十 GB 到幾百 GB 磁盤空間(主網 > 1TB)
-
需要穩定帶寬、運行時間
-
需要理解同步機制、數據驗證
而你只是想開發 DApp、測試合約、發送交易,不想先搞個完整節點吧 😅
? Infura / Alchemy 是“區塊鏈基礎設施提供商”
它們幫你:
-
運行并維護高可用的以太坊節點集群
-
提供穩定、快速的 JSON-RPC API 接口
-
可免費使用(限流)
-
提供儀表盤、監控、速率限制管理、Webhooks、分析等高級功能
你只要注冊賬號、申請一個 project,就能獲得一個 RPC 地址,像這樣:
https://sepolia.infura.io/v3/xxxxxxxxxxxxx https://eth-sepolia.g.alchemy.com/v2/yyyyyyyyyyyy
?那為啥不能直接用“以太坊官網”提供的?
因為:
-
以太坊是協議,不是服務商
它不提供官方公共 RPC 節點(以避免被濫用、攻擊) -
有些人用的是自建節點(比如你以后部署自己的私鏈、企業鏈),那就用本地地址:
http://localhost:8545
-
你也可以找公共 RPC 節點,但多數都有速率限制或不穩定(開發建議不用)
? 總結一句話:
你之所以用 Infura 或 Alchemy,是因為你不想自己運行一個以太坊節點,而他們幫你提供了穩定的節點接口。
🔧 想開始用,應該怎么做?
1. 選一個:推薦 Alchemy(文檔友好、中文也支持)
-
進入:Alchemy - the web3 development platform
-
注冊賬號
-
創建項目(選擇 Sepolia)
-
拿到你的 RPC 地址
像這樣:
https://eth-sepolia.g.alchemy.com/v2/your-api-key
然后寫入 .env
:
ETHEREUM_RPC_URL=https://eth-sepolia.g.alchemy.com/v2/your-api-key
你就可以開始開發和調用合約了!
sepolia是干嘛的為什么url前綴都是它
ChatGPT 說:
很棒的問題,下面我從用途、命名和你的開發使用角度來給你講清楚:
? Sepolia 是什么?
Sepolia 是以太坊官方的“測試網絡”之一,用于開發者測試和調試合約、前后端交互、錢包連接等功能,而不花真幣、不冒真風險。
🧪 為什么要有 Sepolia 測試網?
以太坊主網(Mainnet)上:
-
所有交易都是真實的
-
需要真實 ETH 支付 gas 費
-
錯誤代碼可能造成不可逆損失
所以開發時用 Sepolia 這樣的測試網,可以:
-
用免費的測試幣
-
安全地部署、調試合約和 DApp
-
模擬真實環境交互流程
🌐 為什么 URL 里有 sepolia
?
你看到的 URL:
https://sepolia.infura.io/v3/<你的-api-key>
說明這是:
Infura 提供的通往 Sepolia 網絡的 HTTP RPC 網關接口
類似地,還有:
網絡名 | RPC 前綴 URL 示例(Infura) |
---|---|
主網(Mainnet) | https://mainnet.infura.io/v3/<api-key> |
Goerli(已棄用) | https://goerli.infura.io/v3/<api-key> |
Sepolia | https://sepolia.infura.io/v3/<api-key> |
Polygon 主網 | https://polygon-mainnet.infura.io/v3/<api-key> |
Arbitrum | https://arbitrum-mainnet.infura.io/v3/<api-key> |
👨?💻 你現在為什么用 Sepolia?
因為:
-
你在做開發或測試階段
-
不想燒真 ETH
-
你可能還沒部署合約,或者正在測試代幣轉賬等交互
📌 如何獲得 Sepolia 測試幣?
訪問官方水龍頭(Faucet):
-
Ethereum Sepolia Faucet
-
或 MetaMask Developer 平臺里的 “Faucet” 菜單
? 小結一句話:
Sepolia 就是為你這樣的開發者準備的“以太坊模擬環境”,URL 以
sepolia
開頭說明你連接的是它,而不是主網。
如果你準備上線到主網,到時只需要改 .env
:
ETHEREUM_RPC_URL=https://mainnet.infura.io/v3/<你的主網API KEY>
就完成切換了。
?什么是錢包地址和合約地址?
非常關鍵的問題,下面我給你講清楚:你已經有 API Key(可以訪問網絡),現在需要的是 錢包私鑰 和 合約地址,這兩個是你自己“生成”和“部署”出來的。
? 你缺少的兩個東西從哪里來?
變量名 | 來源 | 如何獲得 |
---|---|---|
ADMIN_PRIVATE_KEY | 錢包 | 用 MetaMask 生成錢包,導出私鑰(測試用) |
TOKEN_CONTRACT_ADDRESS | 智能合約 | 自己用 Remix 或 Hardhat 部署到 Sepolia 測試網 |
🔐 一、如何獲得 ADMIN_PRIVATE_KEY
(管理員私鑰)
?? 僅用于開發環境!不要用于真實錢包!
-
打開 MetaMask(切換到 Sepolia 測試網)
-
點擊你的賬戶圖標 →
Account details
-
點
Export Private Key
(輸入密碼) -
拷貝那串私鑰,填入
.env
文件中:
ADMIN_PRIVATE_KEY=0x開頭的私鑰字符串
🧾 二、如何獲得 TOKEN_CONTRACT_ADDRESS
你要先部署一個代幣合約,比如用 Remix + MetaMask:
🚀 簡單 ERC20 示例部署流程(Remix 快速搞定):
-
打開 Remix IDE
-
新建一個
.sol
文件,粘貼如下示例 ERC20 合約代碼:
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; contract MyToken is ERC20 { constructor() ERC20("MyToken", "MTK") { _mint(msg.sender, 1000000 * 10 ** decimals()); } }
-
在 Remix 左側選擇 "Solidity Compiler" → 編譯合約
-
選擇 "Deploy & Run Transactions":
-
環境選擇:
Injected Provider - MetaMask
-
確保 MetaMask 網絡為 Sepolia
-
點擊 "Deploy" → MetaMask 會彈窗確認 → 執行部署
-
-
部署成功后,你會看到一個合約地址:
-
復制這個地址,填到
.env
:
-
TOKEN_CONTRACT_ADDRESS=0x你部署成功后的合約地址
🧪 示例完整 .env
寫法:
ETHEREUM_RPC_URL=https://sepolia.infura.io/v3/你的ApiKey ADMIN_PRIVATE_KEY=0x你測試錢包私鑰 TOKEN_CONTRACT_ADDRESS=0x你剛部署的代幣合約地址