2

I'm on Windows 10 pro. Using a reasonable genesis block, I have set up 3 geth instances (01,02, 03) on the same laptop called as follows:

geth ^
 --identity "XxxxxTest01" ^
 --genesis C:\WORK\Ethereum\Geth\XxxxxTest_Genesis.json ^
 --datadir C:\WORK\Ethereum\Data\XxxxxTest01 ^
 --networkid 4999 ^
 --rpc ^
 --rpcport 40901 ^
 --rpccorsdomain "*" ^
 --rpcapi "db,eth,net,web3" ^
 --port 30901 ^
 --nodiscover ^
 --maxpeers 10 ^
 --ipcpath \\.\pipe\geth.XxxxxTest01.ipc ^
 --gasprice 1 ^
 --etherbase "0x37...." ^
 --unlock "0x37...." ^
 --password C:\WORK\Ethereum\Geth\Xxxxx01.pw.txt ^
 --cache 1024 ^
 --verbosity 6 ^
 2> C:\WORK\Ethereum\Geth\Xxxxx01.log ^
 console

Once these are running, I can open three consoles like this:

geth --preload C:\WORK\Ethereum\Geth\Xxxxx01Peers.js ^
attach ipc:\\.\pipe\geth.XxxxxTest01.ipc

The .js contains the necessary admin.addPeer(..) calls. The output of admin.peers looks ok. I have two problems:

1) I can only mine on one of the 3 eth instances. Once I have mined on one, and stopped mining via miner.stop(), any attempt to start mining on one of the other instances results in

I0628 15:53:41.873442 ethash.go:259] Generating DAG for epoch 0 (size 1073739904) (0000000000000000000000000000000000000000000000000000000000000000)
panic: ethash_full_new IO or memory error

goroutine 228 [running]:
panic(0xcfc560, 0xc0841b2c40)
....

Note that whatever is mined does show in the 2 other instances in real time, so the instances do communicate with each other. In terms of memory, only about 6 of 16 GB is used.

2) the nodes do not synchronize correctly, so if a transfer is done on node 2, this shows in the log as

I0628 16:01:30.481569 eth/handler.go:776] broadcast tx to 2 peers

but the other two logs show nothing. If I then mine on node 2, then the transaction appears in nodes 1 and 3. If I mine in another node, then the transaction is lost.

NB after closing all instances, and restarting, I can start mining on any one (but only one) instance.

Any ideas what the problem might be?

0

Your problem might be related to one I had : How to send transactions to a private network?

You have to provide different port numbers for each node as explained there : https://github.com/ethereum/go-ethereum/wiki/Setting-up-private-network-or-local-cluster

  • Thanks, this solves issue my 2). The relevant quote from @karalabe concerning 1.4.6 is "If you have a single miner, that node will never get new blocks from the outside, so it might never consider itself completing the initial sync cycle." So I set up a node on another PC, did a bit of mining on it and things started syncing. – Alex K Jun 30 '16 at 18:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.