跳到主要内容

初始化客户端

用Go初始化以太坊客户端是和区块链交互所需的基本步骤。首先,导入go-etherem的ethclient包并通过调用接收区块链服务提供者URL的Dial来初始化它。

若您没有现有以太坊客户端,您可以连接到infura网关。Infura管理着一批安全,可靠,可扩展的以太坊[geth和parity]节点,并且在接入以太坊网络时降低了新人的入门门槛。

client, err := ethclient.Dial("https://cloudflare-eth.com")

若您运行了本地geth实例,您还可以将路径传递给IPC端点文件。

client, err := ethclient.Dial("/home/user/.ethereum/geth.ipc")

对每个Go以太坊项目,使用ethclient是您开始的必要事项,您将在本书中非常多的看到这一步骤。

使用Ganache

Ganache(正式名称为testrpc)是一个用Node.js编写的以太坊实现,用于在本地开发去中心化应用程序时进行测试。现在我们将带着您完成安装并连接到它。

首先通过NPM安装ganache。

npm install -g ganache-cli

然后运行ganache cli客户端。

ganache-cli

现在连到http://localhost:8584上的ganache RPC主机。

client, err := ethclient.Dial("http://localhost:8545")
if err != nil {
log.Fatal(err)
}

在启动ganache时,您还可以使用相同的助记词来生成相同序列的公开地址。

ganache-cli -m "much repair shock carbon improve miss forget sock include bullet interest solution"

我强烈推荐您通过阅读其文档熟悉ganache。


完整代码

client.go

package main

import (
"fmt"
"log"

"github.com/ethereum/go-ethereum/ethclient"
)

func main() {
client, err := ethclient.Dial("https://cloudflare-eth.com")
if err != nil {
log.Fatal(err)
}

fmt.Println("we have a connection")
_ = client // we'll use this in the upcoming sections
}

title: 创建客户端 description: "这本迷你书的本意是给任何想用Go进行以太坊开发的同学一个概括的介绍。本意是如果你已经对以太坊和Go有一些熟悉,但是对于怎么把两者结合起来还有些无从下手,那这本书就是一个好的起点。" image: "https://ipfs.decert.me/QmfZm4ZahZBcpLNoMwNBX5kNLNaQ6PsPRV7oiJXTudvYWy" sidebar_label: "创建客户端"

概述: 用Go初始化客户端以连接以太坊的教程

初始化客户端

用Go初始化以太坊客户端是和区块链交互所需的基本步骤。首先,导入go-etherem的ethclient包并通过调用接收区块链服务提供者URL的Dial来初始化它。

若您没有现有以太坊客户端,您可以连接到infura网关。Infura管理着一批安全,可靠,可扩展的以太坊[geth和parity]节点,并且在接入以太坊网络时降低了新人的入门门槛。

client, err := ethclient.Dial("https://cloudflare-eth.com")

若您运行了本地geth实例,您还可以将路径传递给IPC端点文件。

client, err := ethclient.Dial("/home/user/.ethereum/geth.ipc")

对每个Go以太坊项目,使用ethclient是您开始的必要事项,您将在本书中非常多的看到这一步骤。

使用Ganache

Ganache(正式名称为testrpc)是一个用Node.js编写的以太坊实现,用于在本地开发去中心化应用程序时进行测试。现在我们将带着您完成安装并连接到它。

首先通过NPM安装ganache。

npm install -g ganache-cli

然后运行ganache cli客户端。

ganache-cli

现在连到http://localhost:8584上的ganache RPC主机。

client, err := ethclient.Dial("http://localhost:8545")
if err != nil {
log.Fatal(err)
}

在启动ganache时,您还可以使用相同的助记词来生成相同序列的公开地址。

ganache-cli -m "much repair shock carbon improve miss forget sock include bullet interest solution"

我强烈推荐您通过阅读其文档熟悉ganache。


完整代码

client.go

package main

import (
"fmt"
"log"

"github.com/ethereum/go-ethereum/ethclient"
)

func main() {
client, err := ethclient.Dial("https://cloudflare-eth.com")
if err != nil {
log.Fatal(err)
}

fmt.Println("we have a connection")
_ = client // we'll use this in the upcoming sections
}