概述
Ethereum 是全球最大的可编程区块链,支持智能合约和去中心化应用(DApp)。2022 年完成从 PoW 到 PoS 的合并升级,大幅降低能耗。作为 Web3 生态的核心基础设施,以太坊拥有最丰富的开发者生态和最多的 DeFi/NFT 应用。
EVMPoS最大生态智能合约
Go 开发教程
连接以太坊节点
使用 go-ethereum 连接以太坊节点,获取区块和交易数据。
go
1package main2 3import (4 "context"5 "fmt"6 "log"7 "math/big"8 9 "github.com/ethereum/go-ethereum/ethclient"10)11 12func main() {13 client, err := ethclient.Dial("https://mainnet.infura.io/v3/YOUR_KEY")14 if err != nil {15 log.Fatal(err)16 }17 18 // 获取最新区块号19 blockNumber, err := client.BlockNumber(context.Background())20 if err != nil {21 log.Fatal(err)22 }23 fmt.Println("Latest block:", blockNumber)24 25 // 获取区块详情26 block, err := client.BlockByNumber(context.Background(), big.NewInt(int64(blockNumber)))27 if err != nil {28 log.Fatal(err)29 }30 fmt.Println("Block hash:", block.Hash().Hex())31 fmt.Println("Transactions:", len(block.Transactions()))32}监听新区块
使用 WebSocket 订阅实时区块头更新。
go
1package main2 3import (4 "context"5 "fmt"6 "log"7 8 "github.com/ethereum/go-ethereum/core/types"9 "github.com/ethereum/go-ethereum/ethclient"10)11 12func main() {13 client, err := ethclient.Dial("wss://mainnet.infura.io/ws/v3/YOUR_KEY")14 if err != nil {15 log.Fatal(err)16 }17 18 headers := make(chan *types.Header)19 sub, err := client.SubscribeNewHead(context.Background(), headers)20 if err != nil {21 log.Fatal(err)22 }23 24 for {25 select {26 case err := <-sub.Err():27 log.Fatal(err)28 case header := <-headers:29 fmt.Println("New block:", header.Number.Uint64())30 }31 }32}探索更多区块链生态
查看所有链