Go-Ethereum
使用 Linux 套接字連接到 JavaScript 控制台
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 。