Когда создается файл geth.ipc?

Я хочу получить доступ к файлу geth.ipc, чтобы подключить geth через IPC. У меня есть совет , и он предложил мне получить доступ к geth.ipc, но я не нашел его на своем Mac. Не могли бы вы сказать мне, когда этот файл создается? Кстати, я установил go-ethereum с помощью git следующим образом.

git clone https://github.com/ethereum/go-ethereum

На изображении показан мой каталог Ethereum. Разве он не содержит geth.ipc?введите описание изображения здесь

Ответы (3)

Файл IPC присутствует только тогда, когда Geth действительно работает. Поэтому обязательно запустите Geth, и вы должны увидеть сообщение вроде.

I0219 09:45:48.128503 node/node.go:290] IPC endpoint opened: /Users/username/Library/Ethereum/geth.ipc

Местоположение, отображаемое здесь, зависит от вашей операционной системы. Это другие варианты.

macOS

~/Library/Ethereum/

линукс

~/.ethereum/

Окна

~/AppData/Roaming/Ethereum

Спасибо, Маран. Но я не могу найти его в ~/Library/Ethereum. Не могли бы вы сказать мне, когда была установлена ​​директория (~/Library/Ethereum)? Когда я это сделал git clone https://github.com/ethereum/go-ethereum?
Ты уже запускал Geth? Его нужно запустить для создания папок.
Я сделал. Похоже, что, поскольку я не обновлял Эфириум, geth.ipc не существовал на моем Mac. Теперь я запускаю обновление brew.
Я обновил вопрос. Я проверил каталог Ethereum после brew update && brew upgradeи brew update && brew reinstall ethereum. Однако он содержит geth.ipc. Должен ли я переустановить Эфириум?
Пожалуйста, запустите Geth и продолжайте его работу. Файл должен быть там.
Данные для Windows неверны, эта папка используется для хранения данных блокчейна. Но правильный путь для ipc — \\.\pipe\geth.ipc.

IPC — это сокращение от межпроцессного взаимодействия, и это не стандартный файл в вашей установке или среде, а скорее доменный сокет .

После установки gethсокет ipc не создается автоматически и не является постоянным ресурсом.

geth.ipcСокет существует только до тех пор , gethпока работает . Вы можете указать путь ipc с --ipcpath "/path/to/my/geth.ipc"флагом. Вы можете управлять доступными API с помощью --ipcapiфлага. Вы можете отключить IPC с помощью --ipcdisable. Откуда geth --help:

--ipcdisable                            Disable the IPC-RPC server
--ipcapi "admin,eth,debug,miner,net,shh,txpool,personal,web3"   API's offered over the IPC-RPC interface
--ipcpath "geth.ipc"                        Filename for IPC socket/pipe within the datadir (explicit paths escape it)

Подробнее читайте на вики go-ethereum по API управления .

geth attach ipc:path/to/geth.ipcНе уверен, что --ipcpathфлаг все еще работает
geth attach <путь к ipc>
Похоже, это и есть правильный ответ. Этот файл не является постоянным файлом, а сокетом и не существует как файл. По крайней мере, не в файловой системе macOS. Я искал везде в своей системе, включая невидимые файлы, и их не существует. В настоящее время я запускаю geth. Кто-нибудь может подтвердить, что этот файл на самом деле не находится в файловой системе?
@tymac Я могу подтвердить, что это согласуется с тем, что я наблюдал на своем Mac.
@FugueWeb geth attachподключается к удаленному экземпляру geth. У меня нет файла .ipc, так как geth почему-то отказывается его создавать... Он нужен мне для создания этого файла рандеву/сокета. И geth attachдает просто это (путь не важен, так как у меня нет другого экземпляра geth):Fatal: Unable to attach to remote geth: dial unix path/to/geth.ipc: connect: no such file or directory

Для окна 10,

путь имеет формат \.\pipe\xxxxx.ipc

Если у вас есть это в вашем config.toml

[Node]
IPCPath = "geth.ipc"

ты мог бы сделать

geth_windows.exe attach \\.\pipe\geth.ipc