В чем разница между этими скриптами для "geth attach"? - PullRequest
0 голосов
/ 28 января 2020

Я использую capegemini ethereum docker: https://github.com/Capgemini-AIE/ethereum-docker

  1. geth attach http://localhost: 8545
  2. docker exe c -it ethereum -docker_eth_1 geth attach ip c: //root/.ethereum/devchain/geth.ipc
  3. sudo docker exe c -it fa78bf925a6b bash geth attach /root/.ethereum/devchain/geth.ipc

Все вышеперечисленные сценарии присоединяются к geth и открывают консоль javascript. Но когда я проверяю «eth.hashrate», только первый скрипт дает некоторый результат, остальные выводят ноль.

Все они должны иметь одинаковое поведение, но разное, почему?

1 Ответ

0 голосов
/ 20 февраля 2020

Вы используете двоичный файл на своем хосте и общаетесь через rp c. Это работает, только если вы предоставили хост-порт свой контейнерный порт. Если вы не открыли порт своего контейнера, это означает, что вы подключаете его, чтобы он работал на локальном компьютере (а не на вашем контейнере). Попробуйте остановить контейнер docker и снова запустить команду, если она работает, это означает, что у вас есть локальный geth, работающий

  • docker exe c -it ethereum -docker_eth_1 geth attach ip c: //root/.ethereum/devchain/geth.ipc

Вы запускаете geth attach прямо в своем контейнере, используя ip c. IP C - это способ связи между процессами с использованием файла (я могу ошибаться в этом вопросе)

  • sudo docker exe c -it fa78bf925a6b bash geth attach / root / .ethereum / devchain / geth.ip c

Вам не нужно запускать эту команду под sudo, если у вас нет ошибки отказа в разрешении. То же, что и до подключения geth через ip c внутри контейнера. bash означает, что вы запускаете команду через bash, вам это не нужно (кроме случаев, когда у вас возникают проблемы с поиском двоичного файла geth).

Надеюсь, это поможет вам устранить проблему.

...