Go-Ethereum

使用 Linux 套接字連接到 JavaScript 控制台

  • October 25, 2018

geth attach我正在嘗試使用在 chaindata 文件夾中創建的 geth.ipc 文件以程式方式連接到 JavaScript 控制台(就像你得到的一樣)。在 Linux 上,它是一個套接字文件,所以我想我可以用這樣的東西(在 Python 中)連接到它:

import socket

client = socket.socket( socket.AF_UNIX, socket.SOCK_STREAM )
client.connect("/home/john/Desktop/EthPrivateChain/chaindata/geth.ipc")

client.send(str.encode("admin.nodeInfo.enode"))
print(str(client.recv(1024)))

client.close()

但是,這給了我 JSON RPC,而不是 JavaScript 控制台。該程式碼有效,但當我嘗試此操作時端點返回錯誤。相同的程式碼,但帶有 JSON 請求,可以工作。我想要 JavaScript 控制台,因為我希望能夠訪問一些無法通過 JSON RPC 獲得的東西,特別是本例中的 enode。我認為必須有一種方法可以以這種方式連接到該文件,因為我可以使用它來啟動控制台geth attach /home/john/Desktop/EthPrivateChain/chaindata/geth.ipc。當我用自己的程式碼訪問它時,有什麼方法可以讓這個套接字文件訪問 JavaScript API?

該命令geth attach僅創建自己的 javascript read-eval-loop,但仍使用 JSON-RPC 命令通過 ipc 文件與 geth 節點對話。

Geth 提供了一組更高級的命令,這些命令只能使用 JSON-RPC 訪問,它們geth只是管理 API

可以使用web3Admin從 javascript 訪問其中一些 API 。

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