W3Schools



我想连接到我的跑步geth --testnet.

如果我跑geth --testnet attach, just like geth attach I get :

Fatal: Unable to attach to remote geth: dial unix /user/.ethereum/geth.ipc: connect: no such file or directory

这是正常的,因为geth.ipc is not in .ethereum but in .ethereum/testnet.

有没有办法使用一个选项来使geth寻找geth.ipc in the right folder when I'm using the testnet ?

每次写完整的ipc路径可能有点重(现在我用geth attach ipc:/path/to/ipc and often start it by hand).

编辑: 我发现一个公开的问题 on github that suggests there is no way to use options with attach yet. I'm now only asking for ways to do it faster than writing full path.

go-ethereum
7个回答
4

您可以使用指定ipc路径--ipcpath "/path/to/my/geth.ipc" option

--ipcpath "geth.ipc"     Filename for IPC socket/pipe within the datadir (explicit paths escape it)

0

因为你通常只会运行testnet或主网 - 为什么不在主要调用geth的同一个地方修复你的ipc? 然后geth attach(和MIST)知道在哪里寻找它....


12

我的计算机(Linux)上有一个别名,可以让我快速完成。我只是说

alias gat='geth attach ipc://${HOME}/.ethereum/testnet/geth.ipc'

在我的.bashrc.

或者,您也可以将geth本身别名,即

alias geth='geth --ipcpath ipc://${HOME}/.ethereum/geth.ipc'

这样ipc文件就会被放置在默认位置,无论您使用的是哪个网络。你总是可以打电话\geth --args if you want to use the raw command without the alias.

在Windows上,我相信你可以使用

doskey gat=geth attach ipc://%APPDATA%\Ethereum\geth.ipc or something of the sort


4

您可以在附加时指定创建ipc文件的位置以及在何处查找它:

$ geth --testnet --ipcpath /tmp/geth
$ geth attach /tmp/geth

另一种选择是通过HTTP-RPC连接:

$ geth --testnet --rpc
$ geth attach http://:8545

请注意,仅限eth,net,web3 API modules are provided via HTTP-RPC by default. You need to specify additional modules explicitly if you require them:

$ geth --testnet -rpc --rpcapi "admin,eth,miner,net,personal,web3"

1

这是一个核选项,但您可以创建一个名为的符号链接geth.ipc in .ethereum which points to the actual, testnet geth.ipc. I can confirm this works, as I've done this myself.


1

你可以加--rpc in geth command line

然后你可以附上geth attach http://localhost:8454.


1

要么

如果你能从日志中学习

INFO [03-19|15:31:25] IPC endpoint opened                      
url=/Users/XXXX/dataEth2/geth.ipc

然后

您可以geth attach ipc:/Users/XXXX/dataEth2/geth.ipc