【使用go开发区块链】之获取链上数据(03)

上篇文章,我们完成了数据库的连接,本章节,我们将完成ethclient的配置以及初始化

本系列文章
1、【使用go开发区块链】之获取链上数据(01)
2、【使用go开发区块链】之获取链上数据(02)
3、【使用go开发区块链】之获取链上数据(03)
4、【使用go开发区块链】之获取链上数据(04)

1·、ethclient配置

1.1、安装go-ethereum

在命令行终端输入下面代码安装:

go get github.com/ethereum/go-ethereum

1.2、Ethclient配置

1.2.1、新建ethclient.go

在config目录下新建ethclient.go,添加下面代码:

package config

import (
	"github.com/ethereum/go-ethereum/ethclient"
	"go-chain-data/global"
)

func NewEthRpcClient() (*ethclient.Client, error) {
	client, err := ethclient.Dial(global.BlockChainConfig.RpcUrl)
	if err != nil {
		return nil, err
	}
	return client, nil
}

通过ethclient.Dial()方法,传入区块链的Rpc调用地址,就可以创建一个ethclient的实例对象,通过该对象,我们就可以跟区块链进行交互

2、初始化ethclient

2.1、新增配置

2.1.1、修改global.go,

打开global.go,在全局变量里加入 EthRpcClient定义:

	EthRpcClient     *ethclient.Client

2.1.2、修改config.go

打开config.go,新增SetupEthClient()方法, 代码如下:

func SetupEthClient() {
	var err error
	EthRpcClient, err = config.NewEthRpcClient()
	if err != nil {
		log.Panic("config.NewEthRpcClient error : ", err)
	}
}

2.2、调用方法

修改main.go里面的init()方法,在最后面加上对SetupEthClient()的调用:

func init() {
	config.SetupConfig()
	config.SetupDBEngine()

	err := config.MigrateDb()
	if err != nil {
		log.Panic("config.MigrateDb error : ", err)
	}
	config.SetupEthClient()
}

3、验证配置

3.1、测试获取区块链最新高度

打开main.go文件,在main()方法里,添加下面代码:

	blockNumber, err := global.EthRpcClient.BlockNumber(context.Background())
	if err != nil {
		log.Panic("EthRpcClient.BlockNumber error : ", err)
	}
	log.Println("blockNumber is : ", blockNumber)

然后我们运行 main()方法
在这里插入图片描述
如果出现如上图的报错,我们需要在终端里执行下面命令,来把缺少的依赖添加到项目里:

go mod tidy

然后,我们再来运行main()方法,终端输出如下:
在这里插入图片描述
说明我们ethclient已经正确配置完成了

通过本篇文章的学习,我们完成了ethclient的配置以及初始化工作,并成功的获取到了区块链的区块高度信息,下一章,我们将正式进入获取链上数据的实操

请关注公众号:外柏叁布道者(web3_preacher),回复 “go获取链上数据” 领取完整代码

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

外柏叁布道者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值