Geth常用操作命令(Windows)

一、什么是Geth?

Geth(Go Ethereum)是以太坊的一个开源客户端,用Go语言编写。它可以用来运行以太坊节点、参与开发和部署智能合约。Geth允许用户连接到以太坊网络,验证交易和区块链状态,是开发者和用户与以太坊区块链交互的主要工具之一。

二、常用操作命令

 1. 创建账户

1.1 打开命令提示符(CMD),按下 `Win + R`,输入 `cmd`,然后按下回车。
1.2 导航到解压后的 Geth 目录。例如:
 
cd C:\Geth
1.3 使用 `clef` 工具创建一个新账户。选择一个目录来存储你的账户文件(keystore),例如:
clef newaccount --keystore C:\Geth\keystore
1.4 系统会提示你输入一个密码。这个密码用于加密你的账户文件。输入后按下回车(注意,密码不会在屏幕上显示)。然后会显示账户地址,如:
Address: {0x1234567890abcdef1234567890abcdef12345678}
1.5 记录下生成的地址和密码,并妥善保管。

 2. 打印默认创世块信息

2.1 为了生成一个定制的创世块配置,可以先查看默认的配置。运行以下命令:
geth --dev dumpgenesis > genesis.json
2.2 这将在当前目录下生成一个 `genesis.json` 文件,包含默认的创世块配置。

 3. 配置创世块

3.1 使用文本编辑器(如 Notepad++)打开 `genesis.json` 文件。根据需要修改内容,特别是alloc 部分,用于设置预分配账户的余额。替换coinbase地址为生成的账户地址,示例如下:
{
    "config": {
        "chainId": 1337,
        "homesteadBlock": 0,
        "eip150Block": 0,
        "eip155Block": 0,
        "eip158Block": 0,
        "byzantiumBlock": 0,
        "constantinopleBlock": 0,
        "petersburgBlock": 0,
        "istanbulBlock": 0,
        "muirGlacierBlock": 0,
        "berlinBlock": 0,
        "londonBlock": 0,
        "arrowGlacierBlock": 0,
        "grayGlacierBlock": 0,
        "shanghaiTime": 0,
        "terminalTotalDifficulty": 0,
        "terminalTotalDifficultyPassed": true
    },
    "nonce": "0x0",
    "timestamp": "0x0",
    "extraData": "0x",
    "gasLimit": "0xaf79e0",
    "difficulty": "0x1",
    "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "coinbase": "0x1234567890abcdef1234567890abcdef12345678",
    "alloc": {"0x1234567890abcdef1234567890abcdef12345678": { "balance": "100000000000000000000000" }},
    "number": "0x0",
    "gasUsed": "0x0",
    "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "baseFeePerGas": "0x3b9aca00",
    "excessBlobGas": null,
    "blobGasUsed": null
}
  • 这些字段共同定义了区块链的初始状态及其行为规则,确保网络在不同节点上统一运行。

3.2将修改后的 `genesis.json` 保存。

 4. 初始化创世块

4.1 运行以下命令初始化区块链数据目录:
geth --datadir . init .\genesis.json
这将会在当前目录下创建 `geth` 和 `keystore` 文件夹,其中 `geth` 文件夹包含区块链数据,`keystore` 文件夹用于存储账户文件。

 5. 导入账户文件

5.1 将之前创建的账户文件(位于 `C:\Geth\keystore` 目录)复制到 `.\keystore` 文件夹中。

 6. 启动 Geth 节点

6.1 使用以下命令启动 Geth 节点,设置 HTTP 接口、CORS 规则等:
geth --datadir "." --dev --dev.period 2 --http --http.api eth,web3,net --http.corsdomain "http://remix.ethereum.org" --password password.txt --http.port 8888
6.2 参数解释:
`--datadir "."`: 指定数据目录为当前目录。
`--dev`: 使用开发模式,自动生成区块。
`--dev.period 2`: 每2秒生成一个区块。
`--http`: 启用 HTTP-RPC 接口。
`--http.api eth,web3,net`: 启用的 API。
`--http.corsdomain "http://remix.ethereum.org"`: 设置允许的跨域资源共享(CORS)域。
`--password password.txt`: 指定密码文件。
`--http.port 8888`: 设置 HTTP-RPC 的端口。

 7. 打开控制台

7.1 在启动 Geth 的同一目录下,打开一个新的命令提示符窗口。
7.2 运行以下命令连接到 Geth 控制台:
geth attach \\.\pipe\geth.ipc

 8. 一些其他常用控制台命令(Geth 控制台上操作)

8.1 查看账户:
eth.accounts
8.2 查询账户余额:
eth.getBalance(eth.accounts[0])/1e18

这是以太坊中最小单位的转换(wei 转为 ether)。

8.3 解锁账户:
personal.unlockAccount(eth.accounts[0], "your-password", 600)
解锁时间为600秒。
8.4 转账:
eth.sendTransaction({from: eth.accounts[0], to: "0x0000000000000000000", value: web3.toWei(1, "ether")})
此命令将 1 ether 从 eth.accounts[0] 发送到 0x00000000000000000000
8.5 查看区块信息:
eth.getBlock(1)
8.6 查看当前区块号:
eth.blockNumber
8.7 启动:
miner.start() // 默认启动
miner.start(1)  // 启动一个线程
miner.stop()    // 停止
8.8 查询交易信息
eth.getTransaction("0xb9d8523f18f878822d48762aa58a63e86e4889147a4e20e12a77d620553faae3")

9. 终止 Geth 节点

9.1 在命令提示符中按下 `Ctrl + C` 可以停止运行中的 Geth 节点。

  • 11
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值