以太坊作为全球领先的智能合约平台和去中心化应用(DApp)生态系统,其学习和实践离不开与区块链网络的直接交互,而命令行工具(如Geth、Nethermind等以太坊客户端)为我们提供了强大而灵活的方式来执行各种操作,对于初学者而言,掌握一些常用命令是迈出以太坊开发、测试和交互的第一步,也是理解其底层运作机制的关键,本文将介绍一些以太坊学习中常用的命令,主要基于最流行的以太坊客户端之一——Geth。

环境准备:启动Geth节点

在执行命令之前,你需要先安装Geth客户端,安装完成后,通常需要启动一个节点来连接到以太坊网络(主网、测试网如Goerli,或私有网络)。

  1. 连接到以太坊主网:

    geth --syncmode "fast" --http
    • --syncmode "fast":使用快速同步模式,只下载区块头和相关的状态数据,同步速度较快。
    • --http:启用HTTP-RPC服务,默认端口8545,方便与其他工具(如MetaMask、Truffle)或自定义脚本交互。
  2. 连接到测试网(以Goerli为例):

    geth --goerli --syncmode "fast" --http
    • --goerli:指定连接到Goerli测试网。
  3. 创建并启动私有网络:

    geth --datadir "./my-private-chain" init genesis.json
    geth --datadir "./my-private-chain" --networkid "12345" --http --mine --miner.threads "1"
    • init genesis.json:使用指定的创世块文件(genesis.json)初始化私有链数据目录。
    • --networkid "12345":设置私有网络的网络ID,确保唯一性。
    • --mine:开启挖矿。
    • --miner.threads "1":设置挖矿使用的线程数。

节点与网络信息查询

了解节点状态和网络信息是排查和学习的重要环节。

  1. 查看节点信息:

    geth attach
    > admin.nodeInfo
    • 进入Geth的交互式控制台(REPL),执行admin.nodeInfo可以获取节点的详细信息,包括节点ID、名称、版本、网络监听地址、 peers等。
  2. 查看已连接的对等节点(Peers):

    geth attach
    > admin.peers

    查看当前节点连接的其他节点信息。

  3. 查看同步状态:

    geth attach
    > eth.syncing
    • 如果返回false,表示节点已同步完成;如果返回一个对象,则表示正在同步,其中包含当前已同步的区块号(currentBlock)、最高区块号(highestBlock)等。
    随机配图