golang eth获取当前最新区块和区块时间,给个可以用的代码
时间: 2025-01-01 10:42:09 浏览: 97
在Golang中,你可以使用`go-ethereum`库来连接到以太坊节点并获取当前最新的区块和其时间戳。下面是一个基本的示例代码:
```go
package main
import (
"context"
"fmt"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/client"
"github.com/ethereum/go-ethereum/ethclient"
"time"
)
func main() {
// 创建一个默认的RPC客户端
rpcClient, err := client.NewDefaultHTTPProvider("http://localhost:8545") // 请替换为你的Geth节点地址
if err != nil {
panic(err)
}
// 创建ethclient实例
.ethClient, err := ethclient.New(rpcClient, nil)
if err != nil {
panic(err)
}
// 获取当前最新的区块
header, err := ethClient.HeaderByNumber(context.Background(), common.Latest)
if err != nil {
fmt.Printf("Failed to get latest block header: %v\n", err)
return
}
// 输出区块时间和编号
timestamp := header.Timestamp.Unix()
blocksNumber := header.Number.Int64()
fmt.Printf("Latest Block Number: %d, Timestamp: %s (%d)\n", blocksNumber, time.Unix(timestamp, 0).Format(time.RFC3339Nano), timestamp)
}
阅读全文
相关推荐










