所有内容来自 Geth Documentation,如果错漏,请以官方文档为准。
概述
Geth 是以太坊协议的官方 Go 实现,可以用作以太坊的独立客户端。
交互示例
clef 生成账号:
clef init geth-tutorial/keystore
clef newaccount --keystore geth-tutorial/keystore
启动 clef:
clef --keystore geth-tutorial/keystore --configdir geth-tutorial/clef --chainid 5 --http
启动 geth:
geth --goerli --datadir geth-tutorial --authrpc.addr localhost --authrpc.port 8551 --authrpc.vhosts localhost --authrpc.jwtsecret geth-tutorial/jwtsecret --http --http.api eth,net --signer=geth-tutorial/clef/clef.ipc --http
启动 consensus client:
下载 Prater genesis state from Github
./prysm.sh beacon-chain --execution-endpoint=http://localhost:8551 --prater --jwt-secret=/Users/lsl/go/src/github/ethereum/go-ethereum/build/bin/geth-tutorial/jwtsecret --genesis-state=genesis.ssz
注意: Sepolia genesis state from Github 当前不可用,提了一个 Issue。
或者也可以参考下面的代码:
主网 (mainnet)
关于连接网络,更多可以参考 Connecting To The Network。
测试网络 (testnet)
- Goerli: Proof-of-authority test network
- 专用网 (private net)
连接goerli
测试网络:geth --goerli --syncmode "light" --http
,更多命令命令行参数参见 Command-line Options
等待节点同步完成。
可信节点
Geth 支持始终允许重新连接的受信任节点,即使已达到对等限制。它们可以通过配置文件<datadir>/geth/trusted-nodes.json
永久添加,也可以通过 RPC 调用临时添加。配置文件的格式与用于静态节点的格式相同。可以通过 js 控制台使用admin.addTrustedPeer()
RPC 调用添加节点,并使用admin.removeTrustedPeer()
调用删除节点。
admin.addTrustedPeer("enode://f4642fa65af50cfdea8fa7414a5def7bb7991478b768e296f5e4a54e8b995de102e0ceae2e826f293c481b5325f89be6d207b003382e18a8ecba66fbaf6416c0@33.4.2.1:30303")
Merge
以太坊 Merge 后应该如何接入网络参见 Connecting to Consensus Clients。
评论