使用golang与智能合约进行交互

使用golang与智能合约进行交互

在开始开发之前,需要了解Golang与以太坊的集成方式。常用的库有web3j(java库)、go-ethereum(golang)等,这些库提供了与以太坊交互的API,使得开发者可以方便地与以太坊进行交互。通过集成这些库,可以实现发送交易、获取区块信息、调用智能合约等功能。

Go和以太坊智能合约交互,是使用了以太坊的JSON-RPC接口,即把所有读取写入请求转换成RPC请求,发送给以太坊节点,并等待回应。这和之前转账是完全一致的,只不过交互的地址从EOA变成了合约而已。

一、go-ethereum

github: github.com/ethereum/go-ethereum/ethclient

Go-Ethereum简称Geth,用golang语言实现 按其官方GitHub的说法,Geth是以太坊协议的官方实现。

go-ethereum自带的abigen可以根据ABI文件,自动生成对应的Go文件。有了这些文件,我们不用费功夫编解码了,可以直接使用所有函数,跟本地函数类似。

获得ABI文件的方法有很多,可以从etherscan网站拷贝,可以从源码编译等。我随便举例其中的一种。

通过 ethClient 可以使用以太坊客户端的功能来查询区块链状态、发送交易等。

​go与智能合约交互的方式有很多种,其中一种方式可以在不知道合约源码的情况下进行调用。

整体思路

以太坊专门为我们提供了一个abigen的工具,他可以根据sol或者abi文件生成特定语言的封装,方便进行交互,支

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

西京刀客

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

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

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

打赏作者

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

抵扣说明:

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

余额充值