#60
转方向 web3 golang 以太坊应用
这是课表部分(Golang以太坊方向) Sheet
b站up学习计划
第一阶段:基础能力构建(1-2 个月)
学习目标
掌握 Golang 核心语法与以太坊底层基础概念,建立开发知识框架。
核心内容
-
Golang 进阶强化
-
重点掌握:goroutine与channel并发模型、接口(interface)设计、指针操作、标准库(encoding/json、net/http、sync等)
-
实践任务:编写并发爬虫工具(模拟多节点数据获取场景)、实现基于接口的模块化代码(为后续合约交互抽象做准备)
-
以太坊基础理论
-
核心概念:区块链结构(区块头、交易列表)、账户模型(外部账户 EOA 与合约账户 CA)、Gas 机制、共识算法(PoW/PoS)
-
学习资源:以太坊黄皮书(精简版)、《Mastering Ethereum》第 1-3 章
-
开发环境搭建
-
安装配置:Golang(1.20+)、Geth 客户端、Remix IDE(合约编译工具)、Postman(API 测试)
-
实践操作:启动本地测试网(geth --dev)、创建测试账户、进行本地转账交易
阶段成果
能独立编写 Golang 并发程序,理解以太坊核心概念,成功搭建本地开发环境并完成基础交易。
第二阶段:核心工具与库应用(1-2 个月)
学习目标
熟练使用go-ethereum库,实现与以太坊节点的各类交互操作。
核心内容
-
go-ethereum 库核心模块
-
ethclient:节点连接(Dial方法)、区块查询(BlockByNumber)、交易获取(TransactionByHash)
-
实践任务:编写程序查询指定地址的历史交易记录,按时间排序并输出
-
账户与私钥管理
-
crypto包:私钥生成(GenerateKey)、公钥推导(FromECDSA)、地址计算(PubkeyToAddress)
-
安全实践:私钥加密存储(使用scrypt算法)、硬件钱包交互(Ledger 接入原理)
-
实践任务:开发简易密钥管理器,支持私钥导入、地址生成、加密备份
-
交易构建与发送
-
交易结构:types.Transaction字段解析(To、Value、Gas等)
-
签名流程:NewKeyedTransactor创建签名器、SignTx签名交易、SendTransaction上链
-
实践任务:实现 ETH 转账功能,支持自定义 Gas 价格与 Gas 限额,处理交易确认回调
阶段成果
能使用go-ethereum库完成节点连接、账户管理、交易发送等核心操作,理解交易生命周期。
第三阶段:智能合约交互(1-2 个月)
学习目标
掌握智能合约的部署、调用及测试方法,理解 ABI 交互原理。
核心内容
-
合约基础与 ABI
-
Solidity 基础:变量类型(uint256、address)、函数可见性(public/external)、事件(event)
-
ABI 解析:JSON 格式说明、函数选择器(4字节哈希)、参数编码 / 解码(abi.Pack/abi.Unpack)
-
实践任务:使用 Remix 编写简单存储合约(Storage.sol),生成 ABI 与字节码
-
abigen 工具使用
-
代码生成:通过 ABI 生成 Golang 绑定代码(abigen --abi=Storage.abi --pkg=storage --out=storage.go)
-
实践任务:调用生成的代码部署合约,实现setValue与getValue方法交互
-
合约测试与调试
-
测试框架:go test结合ethclient模拟测试网环境
-
调试技巧:使用Geth日志(--verbosity 5)查看合约执行细节、处理revert错误
-
实践任务:为 Storage 合约编写完整测试用例,覆盖正常调用与异常场景(如权限校验)
阶段成果
能独立部署智能合约,通过 Golang 代码完成合约方法调用与事件监听,编写合约测试用例。
第四阶段:进阶开发与优化(1-2 个月)
学习目标
掌握高级特性与性能优化技巧,应对复杂开发场景。
核心内容
-
ERC 标准实现
-
ERC20:转账(transfer)、授权(approve)、余额查询(balanceOf)
-
ERC721:NFT 铸造(mint)、所有权转移(transferFrom)
-
实践任务:用 Golang 开发 ERC20 代币转账批量处理工具,支持多地址批量分发
-
Gas 优化策略
-
代码层面:减少链上存储(storage→memory)、复用计算结果
-
交易层面:动态 Gas 价格(SuggestGasPrice)、批量交易打包
-
实践任务:对比优化前后的合约调用 Gas 消耗,量化优化效果
-
多链与 Layer2 适配
-
链 ID 管理:不同网络(以太坊主网、Sepolia 测试网、Arbitrum)链 ID 配置
-
RPC 差异处理:Layer2 特有的estimateGasL1等方法适配
-
实践任务:修改现有工具支持 Arbitrum 测试网,实现跨链资产查询
阶段成果
能开发符合 ERC 标准的工具,实现 Gas 优化,适配多链环境,解决复杂场景问题。
第五阶段:实战项目开发(2-3 个月)
学习目标
通过完整项目整合所学知识,提升工程化能力。
推荐项目
-
去中心化钱包后端
-
核心功能:账户管理、多链资产查询、交易签名、NFT 收藏夹
-
技术要点:goroutine处理异步交易确认、channel实现事件通知、数据库存储交易记录
-
扩展任务:接入 Chainlink 价格预言机,实现资产估值功能
-
区块浏览器 API 服务
-
核心功能:区块实时同步、交易详情查询、地址持仓分析
-
技术要点:ethclient批量数据获取、缓存策略(redis)、API 限流
-
扩展任务:实现交易可视化图表(集成 ECharts 前端)
-
DeFi 流动性挖矿监控工具
-
核心功能:实时收益计算、风险预警(如无常损失)、自动复投触发
-
技术要点:合约事件监听(FilterLogs)、数学计算(浮点数精确处理)
-
扩展任务:对接通知渠道(Telegram / 邮件),推送关键信息
阶段成果
完成 1-2 个实战项目,具备独立开发以太坊相关应用的能力,理解工程化开发流程。
学习资源与工具推荐
-
官方文档
-
go-ethereum 官方文档
-
以太坊开发者文档
-
书籍与课程
-
《Ethereum Development with Go》
-
Udemy 课程《Go Programming for Ethereum Developers》
-
社区与工具
-
GitHub:ethereum/go-ethereum(源码学习)
-
测试网水龙头:Sepolia Faucet、Alchemy Faucet
-
调试工具:Etherscan(交易查询)、Tenderly(合约调试)
时间规划与里程碑
-
1-2 个月:完成基础阶段,输出 Golang 并发程序与本地节点交互 demo
-
3-4 个月:掌握核心库使用,输出交易管理工具(含私钥安全存储)
-
5-6 个月:完成智能合约交互模块,输出 ERC20 代币批量转账工具
-
7-9 个月:完成实战项目,部署去中心化钱包后端或区块浏览器 API
通过按阶段推进,逐步积累知识与实践经验,最终具备 Golang 以太坊开发的核心竞争力,可胜任区块链开发工程师、Web3 后端开发等岗位。