---
概述: 用Go初始化客戶端以連接以太坊的教程
---
# 初始化客戶端
用Go初始化以太坊客戶端是和區塊鏈交互所需的基本步驟。首先,導入go-etherem的`ethclient`包并通過調用接收區塊鏈服務提供者URL的`Dial`來初始化它。
若您沒有現有以太坊客戶端,您可以連接到infura網關。Infura管理著一批安全,可靠,可擴展的以太坊[geth和parity]節點,并且在接入以太坊網絡時降低了新人的入門門檻。
```go
client, err := ethclient.Dial("https://mainnet.infura.io")
```
若您運行了本地geth實例,您還可以將路徑傳遞給IPC端點文件。
```go
client, err := ethclient.Dial("/home/user/.ethereum/geth.ipc")
```
對每個Go以太坊項目,使用ethclient是您開始的必要事項,您將在本書中非常多的看到這一步驟。
## 使用Ganache
[Ganache](https://github.com/trufflesuite/ganache-cli)(正式名稱為testrpc)是一個用Node.js編寫的以太坊實現,用于在本地開發去中心化應用程序時進行測試。現在我們將帶著您完成安裝并連接到它。
首先通過[NPM](https://www.npmjs.com/package/ganache-cli)安裝ganache。
```bash
npm install -g ganache-cli
```
然后運行ganache cli客戶端。
```bash
ganache-cli
```
現在連到`http://localhost:8584`上的ganache RPC主機。
```go
client, err := ethclient.Dial("http://localhost:8545")
if err != nil {
log.Fatal(err)
}
```
在啟動ganache時,您還可以使用相同的助記詞來生成相同序列的公開地址。
```bash
ganache-cli -m "much repair shock carbon improve miss forget sock include bullet interest solution"
```
我強烈推薦您通過閱讀其[文檔](http://truffleframework.com/ganache/)熟悉ganache。
---
### 完整代碼
```go
package main
import (
"fmt"
"log"
"github.com/ethereum/go-ethereum/ethclient"
)
func main() {
client, err := ethclient.Dial("https://mainnet.infura.io")
if err != nil {
log.Fatal(err)
}
fmt.Println("we have a connection")
_ = client // we'll use this in the upcoming sections
}
```
- 客戶端
- 創建客戶端
- 以太坊賬戶
- 賬戶余額
- 賬戶代幣余額
- 生成新錢包
- 密匙庫
- 硬件錢包
- 地址驗證
- 交易
- 查詢區塊
- 查詢交易
- ETH轉賬
- 代幣轉賬
- 監聽新區塊
- 創建裸交易
- 發送裸交易
- 智能合約
- 智能合約 & ABI
- 部署智能合約
- 加載智能合約
- 查詢智能合約
- 寫入智能合約
- 讀取智能合約二進制碼
- 查詢ERC20代幣智能合約
- 事件日志
- 監聽事件日志
- 讀取時間日志
- 讀取ERC20代幣的事件日志
- 讀取0x Protocol事件日志
- 簽名
- 生成簽名
- 驗證簽名
- 測試
- 發幣龍頭
- 使用模擬客戶端
- Swarm存儲
- 創建 Swarm存儲
- 上傳文件到Swarm
- 從Swarm下載文件
- Whisper通信協議
- 創建Whisper客戶端
- 生成Whisper密匙對
- 在Whisper上發送消息
- 監聽Whisper消息
- 工具
- 工具集合
- 專有詞匯表
- 資源