首页>资讯>正文

Go语言实现以太坊转账,从环境搭建到代码实战全指南

2026-06-17
OKX欧易app

OKX欧易app

欧易交易所app是全球排名第一的虚拟货币交易所,注册领取6万元盲盒礼包!

APP下载 官网注册

币安app

binance币安交易所app

币安交易所app是全球排名第一的虚拟货币交易所,注册领取盲盒礼包!

APP下载 官网注册

Go语言实现以太坊转账,从环境搭建到代码实战全指南

Go语言实现以太坊转账,从环境搭建到代码实战全指南

以太坊作为全球第二大公链,其原生代币ETH的转账操作是区块链开发中最基础也最核心的功能之一,本文将详细介绍如何使用Go语言结合以太坊官方go-ethereum库,实现从环境搭建、账户管理到交易发送的完整转账流程,帮助开发者快速掌握Go与以太坊交互的实战技巧。

前置准备:环境与依赖安装

在开始编码前,需确保以下环境已配置完成:

  1. Go环境:建议安装Go 1.16及以上版本,可通过go version验证安装。
  2. 以太坊节点:可选择连接公共节点(如Infura、Alchemy)或本地运行节点(如Geth),本文以公共节点为例,需注册获取节点URL(如https://mainnet.infura.io/v3/YOUR_PROJECT_ID)。
  3. 依赖库:安装go-ethereum库,这是Go语言与以太坊交互的核心工具包:
    go get -u github.com/ethereum/go-ethereum
    go get -u github.com/ethereum/go-ethereum/crypto
    go get -u github.com/ethereum/go-ethereum/common
    go get -u github.com/ethereum/go-ethereum/accounts/abi/bind

核心概念与账户准备

以太坊转账本质上是发送一笔包含value(转账金额)和data(可选数据)的交易,需调用eth_sendRawTransaction接口,实现转账需明确以下要素:

  1. 发送方账户:需拥有ETH的账户,并掌握其私钥(用于签名交易)和地址。

    • 账户可通过geth命令行创建,或使用go-ethereum的crypto包生成:

      import "github.com/ethereum/go-ethereum/crypto"
      privateKey, err := crypto.GenerateKey()
      if err != nil {
          log.Fatal(err)
      }
      address := crypto.PubkeyToAddress(privateKey.PublicKey).Hex()
      fmt.Println("生成的地址:", address)
    • 注意:私钥是账户的唯一凭证,严禁硬编码在代码中,建议通过环境变量或加密文件存储。

  2. 接收方地址:需验证地址格式是否正确(以0x开头,42位十六进制字符)。

Go语言实现以太坊转账步骤

以下是完整的转账代码实现,分为连接节点、构建交易、签名交易、发送交易四个核心环节。

初始化客户端,连接以太坊节点

使用go-ethereum的ethclient包连接节点:

package main
import (
    "context"
    "crypto/ecdsa"
    "fmt"
    "log"
    "math/big"
    "github.com/ethereum/go-ethereum/common"
    "github.com/ethereum/go-ethereum/core/types"
    "github.com/ethereum/go-ethereum/crypto"
    "github.com/ethereum/go-ethereum/ethclient"
)
func main() {
    // 替换为你的Infura节点URL
    client, err := ethclient.Dial("https://mainnet.infura.io/v3/YOUR_PROJECT_ID")
    if err != nil {
        log.Fatal(err)
    }
    defer client.Close()
    fmt.Println("成功连接到以太坊节点")
}

加载发送方私钥与地址

假设已有发送方私钥(需从安全来源加载,如环境变量):

// 从环境变量或配置文件加载私钥(示例中直接使用字符串,实际需注意安全)
privateKeyHex := "YOUR_PRIVATE_KEY" // 替换为真实的私钥(以0x开头)
privateKey, err := crypto.HexToECDSA(privateKeyHex[2:]) // 去掉0x前缀
if err != nil {
    log.Fatal("私钥解析失败:", err)
}
senderAddress := crypto.PubkeyToAddress(privateKey.PublicKey)
fmt.Println("发送方地址:", senderAddress.Hex())

获取当前nonce与gas参数

交易发送前需获取发送方的nonce(账户交易序列号,防止交易重放)和预估的gas费用(包括gasLimit和gasPrice):

// 获取nonce
nonce, err := client.PendingNonceAt(context.Background(), senderAddress)
if err != nil {
    log.Fatal("获取nonce失败:", err)
}
// 设置gasPrice(单位:Gwei,1 ETH = 1e9 Gwei)
gasPrice, err := client.SuggestGasPrice(context.Background())
if err != nil {
    log.Fatal("获取gasPrice失败:", err)
}
// 设置gasLimit(普通转账建议21000)
gasLimit := uint64(21000)
// 接收方地址(示例中为以太坊官方测试地址)
receiverAddress := common.HexToAddress("0x742d35Cc6634C0532925a3b844Bc9e7595f8e524")

构建交易数据

以太坊交易的核心数据包括:接收方地址、转账金额(value)、nonce、gasPrice、gasLimit,转账金额需以wei为单位(1 ETH = 1e18 wei):

// 转账金额(示例:0.01 ETH)
value := big.NewInt(0)
value.Mul(value, big.NewInt(1e18)) // 0.01 ETH = 1e16 wei
// 构建交易
tx := types.NewTransaction(nonce, receiverAddress, value, gasLimit, gasPrice, nil)

签名交易

使用发送方私钥对交易进行签名,确保交易的有效性:

// 获取链ID(用于签名,防止跨链交易重放)
chainID, err := client.NetworkID(context.Background())
if err != nil {
    log.Fatal("获取链ID失败:", err)
}
// 签名交易
signedTx, err := types.SignTx(tx, types.NewEIP155Signer(chainID), privateKey)
if err != nil {
    log.Fatal("签名交易失败:", err)
}

发送交易并等待上链

将签名后的交易发送到以太坊网络,并可通过交易哈希查询状态:

// 发送交易
err = client.SendTransaction(context.Background(), signedTx)
if err != nil {
    log.Fatal("发送交易失败:", err)
}
fmt.Printf("交易发送成功!交易哈希: %s\n", signedTx.Hash().Hex())
// 等待交易上链(可选)
receipt, err := client.TransactionReceipt(context.Background(), signedTx.Hash())
if err != nil {
    log.Fatal("获取交易回执失败:", err)
}
if receipt.Status == 1 {
    fmt.Println("交易上链成功!区块号:", receipt.BlockNumber.String())
} else {
    fmt.Println("交易上链失败!")
}

完整代码与注意事项

将上述步骤整合后,完整代码如下(需替换私钥、节点URL等参数):

package main
import (
    "context"
    "crypto/ecdsa"
    "fmt"
    "log"
    "math/big"
    "github.com/ethereum/go-ethereum/common"
    "github.com/ethereum/go-ethereum/core/types"
    "github.com/ethereum/go-ethereum/crypto"
    "github.com/ethereum/go-ethereum/ethclient"
)
func main() {
    // 1. 连接节点
    client, err := ethclient.Dial("https://mainnet.infura.io/v3/YOUR_PROJECT_ID")
    if err != nil {
        log.Fatal(err)
    }
    defer client.Close()
    // 2. 加载私钥与地址
    privateKeyHex := "YOUR_PRIVATE_KEY"
    privateKey, err := crypto.HexToECDSA(privateKeyHex[2:])
    if err != nil {
        log.Fatal(err)
    }
    senderAddress := crypto.PubkeyToAddress(privateKey.PublicKey)
    // 3. 获取nonce与gas参数
    nonce, err := client.PendingNonceAt(context.Background(), senderAddress)
    if err != nil {
        log.Fatal(err)
    }
    gasPrice, err := client.SuggestGasPrice(context.Background())
    if err != nil {
        log.Fatal(err)
    }
    gasLimit := uint64(21000)
    // 4. 构建交易
    receiverAddress := common.HexToAddress("0x742d35Cc6634C0532925a3b844Bc9e7595f8e524")
    value := big.NewInt(1e16) // 0.01 ETH
    tx := types.NewTransaction(nonce, receiverAddress, value, gasLimit, gasPrice, nil)
    // 5. 签名交易
    chainID, err := client.NetworkID(context.Background())
    if err != nil {
        log.Fatal(err)
    }
    signedTx, err := types.SignTx(tx, types.NewEIP155Signer(chainID), privateKey)
    if err != nil {
        log.Fatal(err)
    }
    // 6. 发

狗狗币单价多少钱一枚?实时价格与投资价值解析

狗狗币单价多少钱一枚?实时价格与投资价值解析 狗狗币(Dogecoin,简称DOGE)作为全球知名的“迷因币”,其价格波动一直是加密货币市场关注的焦点,狗狗币单价多少钱一枚?本文将结合最新市场数据、影响因素及投资逻辑,为你全面解读。 当前狗狗币实时价格(截至2024年7月)

探索OE源码网官网,开发者获取优质源码的可靠平台

探索OE源码网官网,开发者获取优质源码的可靠平台 在信息技术飞速发展的今天,开源精神已成为推动软件创新与技术进步的核心动力之一,对于开发者而言,寻找高质量、易理解且可自由使用的源码,不仅能加速项目开发,更能促进技术交流与能力提升,在众多源码分享平台中,“OE源

冷钱包 收币,btc冷钱包怎么样把币转出

一、各大货币交易平台提币到冷钱包手续费怎么算手续费都不一样的,不能统一计算。如果网络上的有一些货币交易平台,他们销售的这些货币只是一些虚拟货币,那么我们就尽量选择不要购买,因为这些平台并不靠谱。比如说,网上销售某一些电子币,声称这些电子币可以在这个平台上产

波网交易所BOBT拆分结果解析,市场影响与投资者应对策略

波网交易所BOBT拆分结果解析,市场影响与投资者应对策略 数字资产领域备受关注的波网交易所(Bob Exchange)对其平台代币BOBT完成了新一轮拆分,这一结果引发了市场广泛讨论,作为交易所生态体系的核心代币,BOBT的拆分不仅关乎代币经济模型的调整,更对投资者信心与市场格局

探索Oyi交易所的理财之道

探索Oyi交易所的理财之道 在当今的数字时代,加密货币交易所已成为投资者实现财富增值的重要平台,Oyi交易所凭借其独特的服务和产品,为投资者提供了多样化的理财选择,本文将深入探讨如何在Oyi交易所进行有效理财,帮助读者更好地利用这一平台实现财务目标。 了解Oyi交易所的

Zora币有潜力吗?从生态创新到市场前景的深度解析

Zora币有潜力吗?从生态创新到市场前景的深度解析 在加密货币赛道日益拥挤的今天,新项目层出不穷,而Zora币($ZORA)凭借其独特的“文化+技术”双轮驱动模式,正成为市场关注的焦点,作为去中心化文化生态系统的核心代币,它的潜力究竟如何?本文将从技术生态、应用场景、市场

欧艺C2C交易自动匹配,开启高效成交新纪元

欧艺C2C交易自动匹配,开启高效成交新纪元 在数字经济蓬勃发展的今天,C2C(个人对个人)交易模式以其便捷性和灵活性赢得了广大用户的青睐,尤其在艺术品、收藏品、二手奢侈品等非标品领域,C2C交易更是成为了主流选择,传统C2C交易往往面临着信息不对称、沟通成本高、匹配效

FTX黑客事件,2万以太坊被盗,加密货币安全再受考验

FTX黑客事件,2万以太坊被盗,加密货币安全再受考验 加密货币交易平台FTX遭受了一起严重的黑客攻击事件,导致约2万枚以太坊(ETH)被盗,这一事件再次引发了人们对加密货币安全的广泛关注和担忧。 据悉,黑客通过某种手段成功入侵了FTX系统,并盗取了大量以太坊,尽管具体的细节

狗狗币最贵多少钱?从梗币到现象的巅峰与启示

狗狗币最贵多少钱?从梗币到现象的巅峰与启示 在加密货币的狂热叙事中,狗狗币(DOGE)始终占据着特殊位置——它诞生于玩笑,却因社区力量和名人效应掀起波澜,而其价格史上最耀眼的一刻,定格在2021年5月8日:据CoinMarketCap数据,狗狗币当日最高触及0.7376美元,这一价格不

什么是SUI币?一文读懂新兴Layer1公链的原生代币价值与应用

什么是SUI币?一文读懂新兴Layer1公链的原生代币价值与应用 在区块链行业高速发展的今天,Layer1(第一层)公链作为底层基础设施,一直是技术创新和生态竞争的核心战场,SUI币作为新兴Layer1公链Sui Network的原生代币,自诞生以来便受到广泛关注,SUI币究竟是什么?它背后有

欧亿一交易所是什么意思?

欧亿一交易所是什么意思? “欧亿一交易所”是一个近年来在加密货币领域频繁出现的名称,但其具体含义和合法性需结合行业背景综合分析,从字面拆解,“欧亿”可能暗指“欧洲”与“亿元”规模的联想,试图传递国际化、高规格的定位;“一”则可能强调“第一”“唯一”的稀缺性

如何注册太坊钱包,在中国想要投资比特币,该如何开始,怎么申请钱包

一、在中国想要投资比特币,该如何开始,怎么申请钱包第一步,当然是了解比特币。先去比特币的论坛,比特币的各大老字号的网站,先逛一圈,进比特币的圈子熟悉下生态。看看比特币的前辈们的一些经验分享,因为比特币这个新兴事物,目前没有监管,基本靠自律。其中有不少骗子,也

欧一交易量怎么看?新手必看指南,快速找到关键数据!

欧一交易量怎么看?新手必看指南,快速找到关键数据! 对于刚接触欧一(通常指欧洲某类金融产品或市场,如欧洲股指、外汇对中的欧系货币等,具体需根据上下文明确,此处按常见理解)交易的朋友来说,“交易量”是一个至关重要的指标,它反映了市场的活跃度、多空双方的力量对

库币交易所客服,数字资产交易中的暖心护航者

库币交易所客服,数字资产交易中的暖心护航者 在数字资产交易的高速赛道上,交易所的安全与体验直接关乎用户信任,而客服团队正是连接平台与用户的核心纽带,作为全球领先的数字资产交易平台之一,库币(KuCoin)始终将“用户至上”刻入服务内核,其客服体系以专业性、响应速度

欧一能交易吗?深度解析其市场价值与交易可能性

欧一能交易吗?深度解析其市场价值与交易可能性 在当今快速发展的新能源与储能领域,各种新兴技术和品牌层出不穷,当人们接触到“欧一能”这个名字时,一个最直接、最核心的问题便会浮现:欧一能交易吗? 这个问题看似简单,但其背后蕴含着对品牌定位、产品价值、市场渠道和投资

以太坊峰会2021,迈向以太坊2.0与Web3.0的未来序曲

以太坊峰会2021,迈向以太坊2.0与Web3.0的未来序曲 2021年,加密货币与区块链行业迎来了爆发式增长,而以太坊作为全球第二大加密货币及去中心化应用(DApps)的核心平台,其年度峰会——以太坊峰会(Devcon)自然成为了行业瞩目的焦点,本届峰会以“以太坊2.0:迈向可扩展、可

以太坊节节攀升,牛市旗手再展雄风,市场信心持续回暖

以太坊节节攀升,牛市旗手再展雄风,市场信心持续回暖 全球加密货币市场迎来了一波强劲的上涨行情,而在这轮热潮中,以太坊(Ethereum)无疑是最耀眼的“明星”之一,其价格节节攀升,屡创阶段性新高,不仅吸引了全球投资者的目光,更成为了引领市场情绪回暖的“牛市旗手”。

AT交易所CAI币最新价格动态及市场分析

AT交易所CAI币最新价格动态及市场分析 数字货币市场波动加剧,AT交易所作为新兴交易平台之一,其上线的CAI币价格走势引发投资者关注,截至最新数据,CAI币在AT交易所的报价为082美元/枚(约合人民币0.59元),24小时最高触及0.089美元,最低回落至0.076美元,日内振幅达17.1%,

在以太坊615,一次改变加密货币未来的网络升级

在以太坊615,一次改变加密货币未来的网络升级 在以太坊发展的壮丽史诗中,每一次网络升级都像一次关键的进化,推动着这个全球去中心化计算机迈向更高效、更安全、更可持续的未来,在这些里程碑式的节点中,“在以太坊615”这个看似简单的数字组合,实际上指向了一次奠定其长期

鸥易,开启社交交易新纪元,让投资更简单、更聪明

鸥易,开启社交交易新纪元,让投资更简单、更聪明 当社交遇上交易,投资不再“孤军奋战” 在数字化浪潮席卷全球的今天,社交与金融的边界正逐渐模糊,人们习惯了在社交平台分享生活、交流观点,却鲜少有一个渠道能将“信任”与“投资”无缝连接。鸥易带着其创新的社交交易功能