Following this answer, I'm running
$ geth --dev
to start a testnet, which works as expected, returning INFO [08-01|14:32:29] IPC endpoint opened: /Users/mcansado/Users/Desktop/private/datadir/geth.ipc
. When I run
$ geth --dev attach
from another console though, I get back
Fatal: Unable to attach to remote geth: dial unix /Users/mcansado/Library/Ethereum/geth.ipc: connect: no such file or directory
After googling, I found this issue here but the solution doesn't work either. I tried starting geth with
$ geth --datadir ~/Users/Desktop/private/datadir --dev
to go to a file I have in my desktop and then attaching with
$ geth attach --datadir ~/Users/Desktop/private/datadir
or
$ geth attach --datadir ~/Users/Desktop/private/datadir/geth.ipc
or
$ geth attach --datadir ~/Users/Desktop/private/datadir/geth.ipc
or
$ geth attach ipc: ~/Users/Desktop/private/datadir/geth.ipc
(as mentioned here)
For the last one, I just get Fatal: Unable to attach to remote geth: dial unix: missing address
back.
Nothing works and I'm really running out of ideas. Could anyone please explain what I'm doing wrong?
EDIT: Just including the structure of the directory I'm passing in geth
├── geth
│ ├── LOCK
│ ├── chaindata
│ │ ├── 000027.ldb
│ │ ├── 000028.ldb
│ │ ├── 000031.ldb
│ │ ├── 000032.log
│ │ ├── CURRENT
│ │ ├── LOCK
│ │ ├── LOG
│ │ └── MANIFEST-000033
│ ├── lightchaindata
│ │ ├── 000002.ldb
│ │ ├── 000003.log
│ │ ├── CURRENT
│ │ ├── LOCK
│ │ ├── LOG
│ │ └── MANIFEST-000004
│ ├── nodekey
│ └── nodes
│ ├── 000006.log
│ ├── 000008.ldb
│ ├── CURRENT
│ ├── LOCK
│ ├── LOG
│ └── MANIFEST-000007
├── geth.ipc
├── history
└── keystore
├── UTC--2017-07-31T16-52-20.478037541Z--7ca3a0da3345506f15c603eba011c8f354155ee9
├── UTC--2017-07-31T18-17-31.814205896Z--f0a63da28af8a8aece135d8c5a268ffc261e2d36
└── UTC--2017-07-31T21-46-55.452893142Z--1918ced27804f6b83acf0587a81e9f56020620d1
where there is clearly a geth.ipc file.
Best Answer
The answer you are linking to is pretty old, and a lot of things will have changed since then in the ecosystem.
DevMode seems to be very strict. See source code here: https://github.com/ethereum/go-ethereum/blob/master/cmd/utils/flags.go, in particular the following lines:
Starting at line 798:
At line 816:
At line 991:
Based on my reading of that source code, your attempts to set a datadir would all have been overridden. Also I don't fully understand the purpose of not allowing any peers, etc, but it seems that DevMode is pretty restrictive in its networking and is geared towards geth developers, not towards developers who want to build Dapps using geth.
For your purposes, you might find something like this to be more straightforward (apologies for pimping a post of mine): https://alanbuxton.wordpress.com/2017/07/19/first-steps-with-ethereum-private-networks-and-smart-contracts-on-ubuntu-16-04/