Care este diferența dintre aceste scripturi pentru „geth attach”? (Programare, Docker, Ethereum, Geth)

Amit Kumar a intrebat.
a intrebat.

Folosesc folosind Capegemini ethereum docker : https://github.com/Capgemini-AIE/ethereum-docker

  1. geth attach http://localhost:8545
  2. docker exec -it ethereum-docker_eth_1 geth attach ipc://root/.ethereum/devchain/geth.ipc
  3. sudo docker exec -it fa78bf925a6b bashgeth attach /root/.ethereum/devchain/geth.ipc

Toate scripturile de mai sus se atașează la geth și deschide consola javascript. dar când verific „eth.hashrate” numai primul script produce un rezultat, restul produce zero.

Toate acestea ar trebui să aibă același comportament, dar este diferit, de ce ?

1 răspunsuri
Noé

Folosești binarul pe gazda ta și comunici prin rpc. Funcționează doar dacă ai expus portul containerului tău la gazdă. Dacă nu ați expus portul containerului, înseamnă că îl atașați la geth care rulează pe mașina locală (nu pe containerul dvs.). Încercați să opriți containerul docker și să rulați din nou comanda, dacă funcționează, înseamnă că aveți un geth local care rulează

  • docker exec -it ethereum-docker_eth_1 geth attach ipc://root/.ethereum/devchain/geth.ipc

Rulați geth attach direct în containerul dvs. folosind ipc. IPC este o modalitate de a comunica între procese folosind fișiere (este posibil să greșesc în acest punct)

  • sudo docker exec -it fa78bf925a6b bash geth attach /root/.ethereum/devchain/geth.ipc

Nu este necesar să executați această comandă sub sudo dacă nu aveți o eroare de permisiune refuzată. La fel ca înainte de a vă atașa geth prin ipc în interiorul containerului. bash înseamnă că rulați comanda în prin bash, nu aveți nevoie de acest lucru (cu excepția cazului în care aveți probleme în găsirea binarului geth).

Sper că acest lucru vă ajută să vă rezolvați problema.