Go-Ethereum

geth RPC API 來檢查 geth 是在 testnet 還是 mainnet 中執行?

  • December 8, 2016

簡單的問題:有沒有辦法查詢geth它是否是用--testnet標誌啟動的?

2016 年 12 月 9 日更新

測試網被重置為 Ropsten 網路

使用以下命令獲取將唯一標識兩個獨立網路的創世塊的雜湊:

主網

> eth.getBlock(0).hash
"0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3"

測試網

> eth.getBlock(0).hash
"0x41941023680923e0fe4d74a34bdac8141f2540e3ae90623718e47d66d1ca4a2d"

我的新答案

admin.nodeInfo您可以在不使用需要通過 RPC 啟用API的呼叫的情況下獲取創世塊雜湊admin,如我的舊答案所示。

使用以下命令獲取將唯一標識兩個獨立網路的創世塊的雜湊:

主網

> eth.getBlock(0).hash
"0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3"

測試網

> eth.getBlock(0).hash
"0x0cd786a2425d16f152c658316c423e6ce1181e15c3295826d7c9904cba9ce303"

下面是我的舊答案

您可以使用這些admin.nodeInfo資訊來確定您連接到哪個網路。

主網

> admin.nodeInfo.protocols.eth.genesis
"0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3"

測試網

> admin.nodeInfo.protocols.eth.genesis
"0x0cd786a2425d16f152c658316c423e6ce1181e15c3295826d7c9904cba9ce303"

雖然adminAPI 在 IPC 協議上預設可用,但admin如果您想使用 JSON-RPC 訪問此資訊,則必須專門通過 RPC 協議啟用 API。

請注意admin通過 RPC 協議啟用 API 的含義。

要通過 RPC 協議啟用adminAPI:

geth --rpc --rpcaddr localhost --rpcapi "eth,net,web3,admin" console

要測試您的 RPC 連接對管理 API 的訪問:

geth attach rpc:http://localhost:8545
> admin.nodeInfo.protocols.eth.genesis
"0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3"

引用自:https://ethereum.stackexchange.com/questions/4342